ZGlmZiAtLWdpdCBhL0FwcHMtY29uZmlnLWhvc3QubWsgYi9BcHBzLWNvbmZpZy1ob3N0Lm1rCmluZGV4IDVjMTYwNGUuLjI1MjBmMTEgMTAwNjQ0Ci0tLSBhL0FwcHMtY29uZmlnLWhvc3QubWsKKysrIGIvQXBwcy1jb25maWctaG9zdC5tawpAQCAtMSw2ICsxLDYgQEAKICMgQXV0by1nZW5lcmF0ZWQgLSBETyBOT1QgRURJVCEKICMgVG8gcmVnZW5lcmF0ZSwgZWRpdCBvcGVuc3NsLmNvbmZpZywgdGhlbiBydW46Ci0jICAgICAuL2ltcG9ydF9vcGVuc3NsLnNoIGltcG9ydCAvcGF0aC90by9vcGVuc3NsLTEuMC4xaC50YXIuZ3oKKyMgICAgIC4vaW1wb3J0X29wZW5zc2wuc2ggaW1wb3J0IC9wYXRoL3RvL29wZW5zc2wtMS4wLjFqLnRhci5negogIwogIyBUaGlzIHNjcmlwdCB3aWxsIGFwcGVuZCB0byB0aGUgZm9sbG93aW5nIHZhcmlhYmxlczoKICMKZGlmZiAtLWdpdCBhL0FwcHMtY29uZmlnLXRhcmdldC5tayBiL0FwcHMtY29uZmlnLXRhcmdldC5tawppbmRleCAwYzU2N2Q0Li5iNzRjM2JhIDEwMDY0NAotLS0gYS9BcHBzLWNvbmZpZy10YXJnZXQubWsKKysrIGIvQXBwcy1jb25maWctdGFyZ2V0Lm1rCkBAIC0xLDYgKzEsNiBAQAogIyBBdXRvLWdlbmVyYXRlZCAtIERPIE5PVCBFRElUIQogIyBUbyByZWdlbmVyYXRlLCBlZGl0IG9wZW5zc2wuY29uZmlnLCB0aGVuIHJ1bjoKLSMgICAgIC4vaW1wb3J0X29wZW5zc2wuc2ggaW1wb3J0IC9wYXRoL3RvL29wZW5zc2wtMS4wLjFoLnRhci5negorIyAgICAgLi9pbXBvcnRfb3BlbnNzbC5zaCBpbXBvcnQgL3BhdGgvdG8vb3BlbnNzbC0xLjAuMWoudGFyLmd6CiAjCiAjIFRoaXMgc2NyaXB0IHdpbGwgYXBwZW5kIHRvIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzOgogIwpkaWZmIC0tZ2l0IGEvQ3J5cHRvLWNvbmZpZy1ob3N0Lm1rIGIvQ3J5cHRvLWNvbmZpZy1ob3N0Lm1rCmluZGV4IDViNjQzNzkuLmVhZmY3YmIgMTAwNjQ0Ci0tLSBhL0NyeXB0by1jb25maWctaG9zdC5taworKysgYi9DcnlwdG8tY29uZmlnLWhvc3QubWsKQEAgLTEsNiArMSw2IEBACiAjIEF1dG8tZ2VuZXJhdGVkIC0gRE8gTk9UIEVESVQhCiAjIFRvIHJlZ2VuZXJhdGUsIGVkaXQgb3BlbnNzbC5jb25maWcsIHRoZW4gcnVuOgotIyAgICAgLi9pbXBvcnRfb3BlbnNzbC5zaCBpbXBvcnQgL3BhdGgvdG8vb3BlbnNzbC0xLjAuMWgudGFyLmd6CisjICAgICAuL2ltcG9ydF9vcGVuc3NsLnNoIGltcG9ydCAvcGF0aC90by9vcGVuc3NsLTEuMC4xai50YXIuZ3oKICMKICMgVGhpcyBzY3JpcHQgd2lsbCBhcHBlbmQgdG8gdGhlIGZvbGxvd2luZyB2YXJpYWJsZXM6CiAjCkBAIC0xODQsNiArMTg0LDcgQEAKICAgY3J5cHRvL2NvbmYvY29uZl9tYWxsLmMgXAogICBjcnlwdG8vY29uZi9jb25mX21vZC5jIFwKICAgY3J5cHRvL2NvbmYvY29uZl9zYXAuYyBcCisgIGNyeXB0by9jb25zdGFudF90aW1lX2xvY2wuaCBcCiAgIGNyeXB0by9jcHRfZXJyLmMgXAogICBjcnlwdG8vY3J5cHRsaWIuYyBcCiAgIGNyeXB0by9jdmVyc2lvbi5jIFwKZGlmZiAtLWdpdCBhL0NyeXB0by1jb25maWctdGFyZ2V0Lm1rIGIvQ3J5cHRvLWNvbmZpZy10YXJnZXQubWsKaW5kZXggOTIwY2E2NC4uZTNiODY3ZiAxMDA2NDQKLS0tIGEvQ3J5cHRvLWNvbmZpZy10YXJnZXQubWsKKysrIGIvQ3J5cHRvLWNvbmZpZy10YXJnZXQubWsKQEAgLTEsNiArMSw2IEBACiAjIEF1dG8tZ2VuZXJhdGVkIC0gRE8gTk9UIEVESVQhCiAjIFRvIHJlZ2VuZXJhdGUsIGVkaXQgb3BlbnNzbC5jb25maWcsIHRoZW4gcnVuOgotIyAgICAgLi9pbXBvcnRfb3BlbnNzbC5zaCBpbXBvcnQgL3BhdGgvdG8vb3BlbnNzbC0xLjAuMWgudGFyLmd6CisjICAgICAuL2ltcG9ydF9vcGVuc3NsLnNoIGltcG9ydCAvcGF0aC90by9vcGVuc3NsLTEuMC4xai50YXIuZ3oKICMKICMgVGhpcyBzY3JpcHQgd2lsbCBhcHBlbmQgdG8gdGhlIGZvbGxvd2luZyB2YXJpYWJsZXM6CiAjCkBAIC0xODQsNiArMTg0LDcgQEAKICAgY3J5cHRvL2NvbmYvY29uZl9tYWxsLmMgXAogICBjcnlwdG8vY29uZi9jb25mX21vZC5jIFwKICAgY3J5cHRvL2NvbmYvY29uZl9zYXAuYyBcCisgIGNyeXB0by9jb25zdGFudF90aW1lX2xvY2wuaCBcCiAgIGNyeXB0by9jcHRfZXJyLmMgXAogICBjcnlwdG8vY3J5cHRsaWIuYyBcCiAgIGNyeXB0by9jdmVyc2lvbi5jIFwKZGlmZiAtLWdpdCBhL0NyeXB0by1jb25maWctdHJ1c3R5Lm1rIGIvQ3J5cHRvLWNvbmZpZy10cnVzdHkubWsKaW5kZXggNTk5MTU5OC4uYWE2N2VkZSAxMDA2NDQKLS0tIGEvQ3J5cHRvLWNvbmZpZy10cnVzdHkubWsKKysrIGIvQ3J5cHRvLWNvbmZpZy10cnVzdHkubWsKQEAgLTEsNiArMSw2IEBACiAjIEF1dG8tZ2VuZXJhdGVkIC0gRE8gTk9UIEVESVQhCiAjIFRvIHJlZ2VuZXJhdGUsIGVkaXQgb3BlbnNzbC5jb25maWcsIHRoZW4gcnVuOgotIyAgICAgLi9pbXBvcnRfb3BlbnNzbC5zaCBpbXBvcnQgL3BhdGgvdG8vb3BlbnNzbC0xLjAuMWgudGFyLmd6CisjICAgICAuL2ltcG9ydF9vcGVuc3NsLnNoIGltcG9ydCAvcGF0aC90by9vcGVuc3NsLTEuMC4xai50YXIuZ3oKICMKICMgVGhpcyBzY3JpcHQgd2lsbCBhcHBlbmQgdG8gdGhlIGZvbGxvd2luZyB2YXJpYWJsZXM6CiAjCmRpZmYgLS1naXQgYS9Tc2wtY29uZmlnLWhvc3QubWsgYi9Tc2wtY29uZmlnLWhvc3QubWsKaW5kZXggNTdlYTM3Ny4uMTc4NWVhMiAxMDA2NDQKLS0tIGEvU3NsLWNvbmZpZy1ob3N0Lm1rCisrKyBiL1NzbC1jb25maWctaG9zdC5tawpAQCAtMSw2ICsxLDYgQEAKICMgQXV0by1nZW5lcmF0ZWQgLSBETyBOT1QgRURJVCEKICMgVG8gcmVnZW5lcmF0ZSwgZWRpdCBvcGVuc3NsLmNvbmZpZywgdGhlbiBydW46Ci0jICAgICAuL2ltcG9ydF9vcGVuc3NsLnNoIGltcG9ydCAvcGF0aC90by9vcGVuc3NsLTEuMC4xaC50YXIuZ3oKKyMgICAgIC4vaW1wb3J0X29wZW5zc2wuc2ggaW1wb3J0IC9wYXRoL3RvL29wZW5zc2wtMS4wLjFqLnRhci5negogIwogIyBUaGlzIHNjcmlwdCB3aWxsIGFwcGVuZCB0byB0aGUgZm9sbG93aW5nIHZhcmlhYmxlczoKICMKZGlmZiAtLWdpdCBhL1NzbC1jb25maWctdGFyZ2V0Lm1rIGIvU3NsLWNvbmZpZy10YXJnZXQubWsKaW5kZXggYjM5ZTMyOS4uMjg4YjQyYiAxMDA2NDQKLS0tIGEvU3NsLWNvbmZpZy10YXJnZXQubWsKKysrIGIvU3NsLWNvbmZpZy10YXJnZXQubWsKQEAgLTEsNiArMSw2IEBACiAjIEF1dG8tZ2VuZXJhdGVkIC0gRE8gTk9UIEVESVQhCiAjIFRvIHJlZ2VuZXJhdGUsIGVkaXQgb3BlbnNzbC5jb25maWcsIHRoZW4gcnVuOgotIyAgICAgLi9pbXBvcnRfb3BlbnNzbC5zaCBpbXBvcnQgL3BhdGgvdG8vb3BlbnNzbC0xLjAuMWgudGFyLmd6CisjICAgICAuL2ltcG9ydF9vcGVuc3NsLnNoIGltcG9ydCAvcGF0aC90by9vcGVuc3NsLTEuMC4xai50YXIuZ3oKICMKICMgVGhpcyBzY3JpcHQgd2lsbCBhcHBlbmQgdG8gdGhlIGZvbGxvd2luZyB2YXJpYWJsZXM6CiAjCmRpZmYgLS1naXQgYS9hbmRyb2lkLnRlc3Rzc2wvdGVzdHNzbCBiL2FuZHJvaWQudGVzdHNzbC90ZXN0c3NsCmluZGV4IDVmZjQ4NjAuLjY2Yjg3MzYgMTAwNzU1Ci0tLSBhL2FuZHJvaWQudGVzdHNzbC90ZXN0c3NsCisrKyBiL2FuZHJvaWQudGVzdHNzbC90ZXN0c3NsCkBAIC0xNzYsNiArMTc2LDEyIEBACiAKICAgZWNobyB0ZXN0IHRsczEgd2l0aCBTUlAgdmlhIEJJTyBwYWlyCiAgICRzc2x0ZXN0IC1iaW9fcGFpciAtdGxzMSAtY2lwaGVyIFNSUCAtc3JwdXNlciB0ZXN0IC1zcnBwYXNzIGFiYzEyMworCisgIGVjaG8gdGVzdCB0bHMxIHdpdGggU1JQIGF1dGgKKyAgJHNzbHRlc3QgLXRsczEgLWNpcGhlciBhU1JQIC1zcnB1c2VyIHRlc3QgLXNycHBhc3MgYWJjMTIzCisKKyAgZWNobyB0ZXN0IHRsczEgd2l0aCBTUlAgYXV0aCB2aWEgQklPIHBhaXIKKyAgJHNzbHRlc3QgLWJpb19wYWlyIC10bHMxIC1jaXBoZXIgYVNSUCAtc3JwdXNlciB0ZXN0IC1zcnBwYXNzIGFiYzEyMwogZmkKIAogZXhpdCAwCmRpZmYgLS1naXQgYS9hcHBzL2FwcHMuYyBiL2FwcHMvYXBwcy5jCmluZGV4IGI3NmRiMTAuLjNlMTgyODkgMTAwNjQ0Ci0tLSBhL2FwcHMvYXBwcy5jCisrKyBiL2FwcHMvYXBwcy5jCkBAIC0zOTAsNiArMzkwLDggQEAKIAkJewogCQlhcmctPmNvdW50PTIwOwogCQlhcmctPmRhdGE9KGNoYXIgKiopT1BFTlNTTF9tYWxsb2Moc2l6ZW9mKGNoYXIgKikqYXJnLT5jb3VudCk7CisJCWlmIChhcmctPmRhdGEgPT0gTlVMTCkKKwkJCXJldHVybiAwOwogCQl9CiAJZm9yIChpPTA7IGk8YXJnLT5jb3VudDsgaSsrKQogCQlhcmctPmRhdGFbaV09TlVMTDsKQEAgLTE1NDIsNiArMTU0NCw4IEBACiAKIAlsZW49c3RybGVuKHQpK3N0cmxlbihPUEVOU1NMX0NPTkYpKzI7CiAJcD1PUEVOU1NMX21hbGxvYyhsZW4pOworCWlmIChwID09IE5VTEwpCisJCXJldHVybiBOVUxMOwogCUJVRl9zdHJsY3B5KHAsdCxsZW4pOwogI2lmbmRlZiBPUEVOU1NMX1NZU19WTVMKIAlCVUZfc3RybGNhdChwLCIvIixsZW4pOwpkaWZmIC0tZ2l0IGEvYXBwcy9jYS5jIGIvYXBwcy9jYS5jCmluZGV4IDFjZjUwZTAuLjljMjUwMjYgMTAwNjQ0Ci0tLSBhL2FwcHMvY2EuYworKysgYi9hcHBzL2NhLmMKQEAgLTE2MjAsMTIgKzE2MjAsMTQgQEAKIAkJewogCQlvaz0wOwogCQlCSU9fcHJpbnRmKGJpb19lcnIsIlNpZ25hdHVyZSB2ZXJpZmljYXRpb24gcHJvYmxlbXMuLi4uXG4iKTsKKwkJRVJSX3ByaW50X2Vycm9ycyhiaW9fZXJyKTsKIAkJZ290byBlcnI7CiAJCX0KIAlpZiAoaSA9PSAwKQogCQl7CiAJCW9rPTA7CiAJCUJJT19wcmludGYoYmlvX2VyciwiU2lnbmF0dXJlIGRpZCBub3QgbWF0Y2ggdGhlIGNlcnRpZmljYXRlIHJlcXVlc3RcbiIpOworCQlFUlJfcHJpbnRfZXJyb3JzKGJpb19lcnIpOwogCQlnb3RvIGVycjsKIAkJfQogCWVsc2UKQEAgLTI3NzcsNiArMjc3OSw5IEBACiAKIAlyZXZ0bSA9IFg1MDlfZ210aW1lX2FkaihOVUxMLCAwKTsKIAorCWlmICghcmV2dG0pCisJCXJldHVybiBOVUxMOworCiAJaSA9IHJldnRtLT5sZW5ndGggKyAxOwogCiAJaWYgKHJlYXNvbikgaSArPSBzdHJsZW4ocmVhc29uKSArIDE7CmRpZmYgLS1naXQgYS9hcHBzL2NpcGhlcnMuYyBiL2FwcHMvY2lwaGVycy5jCmluZGV4IDVmMmI3MzkuLjkzZGNlMWMgMTAwNjQ0Ci0tLSBhL2FwcHMvY2lwaGVycy5jCisrKyBiL2FwcHMvY2lwaGVycy5jCkBAIC05NiwxMyArOTYsNyBAQAogCWNoYXIgYnVmWzUxMl07CiAJQklPICpTVERvdXQ9TlVMTDsKIAotI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fU1NMMikgJiYgIWRlZmluZWQoT1BFTlNTTF9OT19TU0wzKQogCW1ldGg9U1NMdjIzX3NlcnZlcl9tZXRob2QoKTsKLSNlbGlmICFkZWZpbmVkKE9QRU5TU0xfTk9fU1NMMykKLQltZXRoPVNTTHYzX3NlcnZlcl9tZXRob2QoKTsKLSNlbGlmICFkZWZpbmVkKE9QRU5TU0xfTk9fU1NMMikKLQltZXRoPVNTTHYyX3NlcnZlcl9tZXRob2QoKTsKLSNlbmRpZgogCiAJYXBwc19zdGFydHVwKCk7CiAKZGlmZiAtLWdpdCBhL2FwcHMvY3JsMnA3LmMgYi9hcHBzL2NybDJwNy5jCmluZGV4IGJiYzgzNzcuLjQyYzY4ODYgMTAwNjQ0Ci0tLSBhL2FwcHMvY3JsMnA3LmMKKysrIGIvYXBwcy9jcmwycDcuYwpAQCAtMTQxLDcgKzE0MSwxMyBAQAogCQkJewogCQkJaWYgKC0tYXJnYyA8IDEpIGdvdG8gYmFkOwogCQkJaWYoIWNlcnRmbHN0KSBjZXJ0ZmxzdCA9IHNrX09QRU5TU0xfU1RSSU5HX25ld19udWxsKCk7Ci0JCQlza19PUEVOU1NMX1NUUklOR19wdXNoKGNlcnRmbHN0LCooKythcmd2KSk7CisJCQlpZiAoIWNlcnRmbHN0KQorCQkJCWdvdG8gZW5kOworCQkJaWYgKCFza19PUEVOU1NMX1NUUklOR19wdXNoKGNlcnRmbHN0LCooKythcmd2KSkpCisJCQkJeworCQkJCXNrX09QRU5TU0xfU1RSSU5HX2ZyZWUoY2VydGZsc3QpOworCQkJCWdvdG8gZW5kOworCQkJCX0KIAkJCX0KIAkJZWxzZQogCQkJewpkaWZmIC0tZ2l0IGEvYXBwcy9lbmMuYyBiL2FwcHMvZW5jLmMKaW5kZXggMTllYTNkZi4uYzhjYjAyMSAxMDA2NDQKLS0tIGEvYXBwcy9lbmMuYworKysgYi9hcHBzL2VuYy5jCkBAIC02Nyw3ICs2Nyw5IEBACiAjaW5jbHVkZSA8b3BlbnNzbC94NTA5Lmg+CiAjaW5jbHVkZSA8b3BlbnNzbC9yYW5kLmg+CiAjaW5jbHVkZSA8b3BlbnNzbC9wZW0uaD4KKyNpZm5kZWYgT1BFTlNTTF9OT19DT01QCiAjaW5jbHVkZSA8b3BlbnNzbC9jb21wLmg+CisjZW5kaWYKICNpbmNsdWRlIDxjdHlwZS5oPgogCiBpbnQgc2V0X2hleChjaGFyICppbix1bnNpZ25lZCBjaGFyICpvdXQsaW50IHNpemUpOwpAQCAtMzM3LDYgKzMzOSwxMiBAQAogCQlnb3RvIGVuZDsKIAkJfQogCisJaWYgKGNpcGhlciAmJiAoRVZQX0NJUEhFUl9tb2RlKGNpcGhlcikgPT0gRVZQX0NJUEhfWFRTX01PREUpKQorCQl7CisJCUJJT19wcmludGYoYmlvX2VyciwgIkNpcGhlcnMgaW4gWFRTIG1vZGUgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVuYyB1dGlsaXR5XG4iKTsKKwkJZ290byBlbmQ7CisJCX0KKwogCWlmIChtZCAmJiAoZGdzdD1FVlBfZ2V0X2RpZ2VzdGJ5bmFtZShtZCkpID09IE5VTEwpCiAJCXsKIAkJQklPX3ByaW50ZihiaW9fZXJyLCIlcyBpcyBhbiB1bnN1cHBvcnRlZCBtZXNzYWdlIGRpZ2VzdCB0eXBlXG4iLG1kKTsKZGlmZiAtLWdpdCBhL2FwcHMvb2NzcC5jIGIvYXBwcy9vY3NwLmMKaW5kZXggNzY3ZjEyYy4uMDQyNjNmZiAxMDA2NDQKLS0tIGEvYXBwcy9vY3NwLmMKKysrIGIvYXBwcy9vY3NwLmMKQEAgLTE0MTksNyArMTQxOSw3IEBACiAJCX0KIAlyZXNwID0gcXVlcnlfcmVzcG9uZGVyKGVyciwgY2JpbywgcGF0aCwgaGVhZGVycywgcmVxLCByZXFfdGltZW91dCk7CiAJaWYgKCFyZXNwKQotCQlCSU9fcHJpbnRmKGJpb19lcnIsICJFcnJvciBxdWVyeWluZyBPQ1NQIHJlc3BvbnNkZXJcbiIpOworCQlCSU9fcHJpbnRmKGJpb19lcnIsICJFcnJvciBxdWVyeWluZyBPQ1NQIHJlc3BvbmRlclxuIik7CiAJZW5kOgogCWlmIChjYmlvKQogCQlCSU9fZnJlZV9hbGwoY2Jpbyk7CmRpZmYgLS1naXQgYS9hcHBzL3Byb2dzLmggYi9hcHBzL3Byb2dzLmgKaW5kZXggZGQyMjk4Yi4uYjE2MjA1NSAxMDA2NDQKLS0tIGEvYXBwcy9wcm9ncy5oCisrKyBiL2FwcHMvcHJvZ3MuaApAQCAtMTA3LDE2ICsxMDcsMTYgQEAKIAl7RlVOQ19UWVBFX0dFTkVSQUwsImdlbmRzYSIsZ2VuZHNhX21haW59LAogI2VuZGlmCiAJe0ZVTkNfVFlQRV9HRU5FUkFMLCJnZW5wa2V5IixnZW5wa2V5X21haW59LAotI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fU09DSykgJiYgIShkZWZpbmVkKE9QRU5TU0xfTk9fU1NMMikgJiYgZGVmaW5lZChPUEVOU1NMX05PX1NTTDMpKQorI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fU09DSykKIAl7RlVOQ19UWVBFX0dFTkVSQUwsInNfc2VydmVyIixzX3NlcnZlcl9tYWlufSwKICNlbmRpZgotI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fU09DSykgJiYgIShkZWZpbmVkKE9QRU5TU0xfTk9fU1NMMikgJiYgZGVmaW5lZChPUEVOU1NMX05PX1NTTDMpKQorI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fU09DSykKIAl7RlVOQ19UWVBFX0dFTkVSQUwsInNfY2xpZW50IixzX2NsaWVudF9tYWlufSwKICNlbmRpZgogI2lmbmRlZiBPUEVOU1NMX05PX1NQRUVECiAJe0ZVTkNfVFlQRV9HRU5FUkFMLCJzcGVlZCIsc3BlZWRfbWFpbn0sCiAjZW5kaWYKLSNpZiAhZGVmaW5lZChPUEVOU1NMX05PX1NPQ0spICYmICEoZGVmaW5lZChPUEVOU1NMX05PX1NTTDIpICYmIGRlZmluZWQoT1BFTlNTTF9OT19TU0wzKSkKKyNpZiAhZGVmaW5lZChPUEVOU1NMX05PX1NPQ0spCiAJe0ZVTkNfVFlQRV9HRU5FUkFMLCJzX3RpbWUiLHNfdGltZV9tYWlufSwKICNlbmRpZgogCXtGVU5DX1RZUEVfR0VORVJBTCwidmVyc2lvbiIsdmVyc2lvbl9tYWlufSwKQEAgLTEyNiw3ICsxMjYsNyBAQAogI2VuZGlmCiAJe0ZVTkNfVFlQRV9HRU5FUkFMLCJjcmwycGtjczciLGNybDJwa2NzN19tYWlufSwKIAl7RlVOQ19UWVBFX0dFTkVSQUwsInNlc3NfaWQiLHNlc3NfaWRfbWFpbn0sCi0jaWYgIWRlZmluZWQoT1BFTlNTTF9OT19TT0NLKSAmJiAhKGRlZmluZWQoT1BFTlNTTF9OT19TU0wyKSAmJiBkZWZpbmVkKE9QRU5TU0xfTk9fU1NMMykpCisjaWYgIWRlZmluZWQoT1BFTlNTTF9OT19TT0NLKQogCXtGVU5DX1RZUEVfR0VORVJBTCwiY2lwaGVycyIsY2lwaGVyc19tYWlufSwKICNlbmRpZgogCXtGVU5DX1RZUEVfR0VORVJBTCwibnNlcSIsbnNlcV9tYWlufSwKZGlmZiAtLWdpdCBhL2FwcHMvcHJvZ3MucGwgYi9hcHBzL3Byb2dzLnBsCmluZGV4IDM5Y2E4ZjcuLmZhNjI1OGMgMTAwNjQ0Ci0tLSBhL2FwcHMvcHJvZ3MucGwKKysrIGIvYXBwcy9wcm9ncy5wbApAQCAtMzIsNyArMzIsNyBAQAogCXB1c2goQGZpbGVzLCRfKTsKIAkkc3RyPSJcdHtGVU5DX1RZUEVfR0VORVJBTCxcIiRfXCIsJHtffV9tYWlufSxcbiI7CiAJaWYgKCgkXyA9fiAvXnNfLykgfHwgKCRfID1+IC9eY2lwaGVycyQvKSkKLQkJeyBwcmludCAiI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fU09DSykgJiYgIShkZWZpbmVkKE9QRU5TU0xfTk9fU1NMMikgJiYgZGVmaW5lZChPUEVOU1NMX05PX1NTTDMpKVxuJHtzdHJ9I2VuZGlmXG4iOyB9IAorCQl7IHByaW50ICIjaWYgIWRlZmluZWQoT1BFTlNTTF9OT19TT0NLKVxuJHtzdHJ9I2VuZGlmXG4iOyB9IAogCWVsc2lmICggKCRfID1+IC9ec3BlZWQkLykpCiAJCXsgcHJpbnQgIiNpZm5kZWYgT1BFTlNTTF9OT19TUEVFRFxuJHtzdHJ9I2VuZGlmXG4iOyB9CiAJZWxzaWYgKCAoJF8gPX4gL15lbmdpbmUkLykpCmRpZmYgLS1naXQgYS9hcHBzL3NfY2xpZW50LmMgYi9hcHBzL3NfY2xpZW50LmMKaW5kZXggMjk5ZmFjZC4uZGZlMmRlMSAxMDA2NDQKLS0tIGEvYXBwcy9zX2NsaWVudC5jCisrKyBiL2FwcHMvc19jbGllbnQuYwpAQCAtMjkwLDYgKzI5MCw3IEBACiAJQklPX3ByaW50ZihiaW9fZXJyLCIgLWNvbm5lY3QgaG9zdDpwb3J0IC0gd2hvIHRvIGNvbm5lY3QgdG8gKGRlZmF1bHQgaXMgJXM6JXMpXG4iLFNTTF9IT1NUX05BTUUsUE9SVF9TVFIpOwogCiAJQklPX3ByaW50ZihiaW9fZXJyLCIgLXZlcmlmeSBhcmcgICAtIHR1cm4gb24gcGVlciBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb25cbiIpOworCUJJT19wcmludGYoYmlvX2VyciwiIC12ZXJpZnlfcmV0dXJuX2Vycm9yIC0gcmV0dXJuIHZlcmlmaWNhdGlvbiBlcnJvcnNcbiIpOwogCUJJT19wcmludGYoYmlvX2VyciwiIC1jZXJ0IGFyZyAgICAgLSBjZXJ0aWZpY2F0ZSBmaWxlIHRvIHVzZSwgUEVNIGZvcm1hdCBhc3N1bWVkXG4iKTsKIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtY2VydGZvcm0gYXJnIC0gY2VydGlmaWNhdGUgZm9ybWF0IChQRU0gb3IgREVSKSBQRU0gZGVmYXVsdFxuIik7CiAJQklPX3ByaW50ZihiaW9fZXJyLCIgLWtleSBhcmcgICAgICAtIFByaXZhdGUga2V5IGZpbGUgdG8gdXNlLCBpbiBjZXJ0IGZpbGUgaWZcbiIpOwpAQCAtMzAwLDYgKzMwMSw3IEBACiAJQklPX3ByaW50ZihiaW9fZXJyLCIgLUNBZmlsZSBhcmcgICAtIFBFTSBmb3JtYXQgZmlsZSBvZiBDQSdzXG4iKTsKIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtcmVjb25uZWN0ICAgIC0gRHJvcCBhbmQgcmUtbWFrZSB0aGUgY29ubmVjdGlvbiB3aXRoIHRoZSBzYW1lIFNlc3Npb24tSURcbiIpOwogCUJJT19wcmludGYoYmlvX2VyciwiIC1wYXVzZSAgICAgICAgLSBzbGVlcCgxKSBhZnRlciBlYWNoIHJlYWQoMikgYW5kIHdyaXRlKDIpIHN5c3RlbSBjYWxsXG4iKTsKKwlCSU9fcHJpbnRmKGJpb19lcnIsIiAtcHJleGl0ICAgICAgIC0gcHJpbnQgc2Vzc2lvbiBpbmZvcm1hdGlvbiBldmVuIG9uIGNvbm5lY3Rpb24gZmFpbHVyZVxuIik7CiAJQklPX3ByaW50ZihiaW9fZXJyLCIgLXNob3djZXJ0cyAgICAtIHNob3cgYWxsIGNlcnRpZmljYXRlcyBpbiB0aGUgY2hhaW5cbiIpOwogCUJJT19wcmludGYoYmlvX2VyciwiIC1kZWJ1ZyAgICAgICAgLSBleHRyYSBvdXRwdXRcbiIpOwogI2lmZGVmIFdBVFQzMgpkaWZmIC0tZ2l0IGEvYXBwcy9zX3NlcnZlci5jIGIvYXBwcy9zX3NlcnZlci5jCmluZGV4IDgxOThkN2YuLmZlN2FkODggMTAwNjQ0Ci0tLSBhL2FwcHMvc19zZXJ2ZXIuYworKysgYi9hcHBzL3Nfc2VydmVyLmMKQEAgLTQ2Myw2ICs0NjMsNyBAQAogCUJJT19wcmludGYoYmlvX2VyciwiIC1jb250ZXh0IGFyZyAgLSBzZXQgc2Vzc2lvbiBJRCBjb250ZXh0XG4iKTsKIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtdmVyaWZ5IGFyZyAgIC0gdHVybiBvbiBwZWVyIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvblxuIik7CiAJQklPX3ByaW50ZihiaW9fZXJyLCIgLVZlcmlmeSBhcmcgICAtIHR1cm4gb24gcGVlciBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24sIG11c3QgaGF2ZSBhIGNlcnQuXG4iKTsKKwlCSU9fcHJpbnRmKGJpb19lcnIsIiAtdmVyaWZ5X3JldHVybl9lcnJvciAtIHJldHVybiB2ZXJpZmljYXRpb24gZXJyb3JzXG4iKTsKIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtY2VydCBhcmcgICAgIC0gY2VydGlmaWNhdGUgZmlsZSB0byB1c2VcbiIpOwogCUJJT19wcmludGYoYmlvX2VyciwiICAgICAgICAgICAgICAgICAoZGVmYXVsdCBpcyAlcylcbiIsVEVTVF9DRVJUKTsKIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtY3JsX2NoZWNrICAgIC0gY2hlY2sgdGhlIHBlZXIgY2VydGlmaWNhdGUgaGFzIG5vdCBiZWVuIHJldm9rZWQgYnkgaXRzIENBLlxuIiBcCkBAIC01MzQsNiArNTM1LDcgQEAKIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtbm9fZWNkaGUgICAgIC0gRGlzYWJsZSBlcGhlbWVyYWwgRUNESFxuIik7CiAjZW5kaWYKIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtYnVncyAgICAgICAgIC0gVHVybiBvbiBTU0wgYnVnIGNvbXBhdGliaWxpdHlcbiIpOworCUJJT19wcmludGYoYmlvX2VyciwiIC1oYWNrICAgICAgICAgLSB3b3JrYXJvdW5kIGZvciBlYXJseSBOZXRzY2FwZSBjb2RlXG4iKTsKIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtd3d3ICAgICAgICAgIC0gUmVzcG9uZCB0byBhICdHRVQgLycgd2l0aCBhIHN0YXR1cyBwYWdlXG4iKTsKIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtV1dXICAgICAgICAgIC0gUmVzcG9uZCB0byBhICdHRVQgLzxwYXRoPiBIVFRQLzEuMCcgd2l0aCBmaWxlIC4vPHBhdGg+XG4iKTsKIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtSFRUUCAgICAgICAgIC0gUmVzcG9uZCB0byBhICdHRVQgLzxwYXRoPiBIVFRQLzEuMCcgd2l0aCBmaWxlIC4vPHBhdGg+XG4iKTsKQEAgLTU2Miw2ICs1NjQsMTAgQEAKICNlbmRpZgogCUJJT19wcmludGYoYmlvX2VyciwiIC1rZXltYXRleHBvcnQgbGFiZWwgICAtIEV4cG9ydCBrZXlpbmcgbWF0ZXJpYWwgdXNpbmcgbGFiZWxcbiIpOwogCUJJT19wcmludGYoYmlvX2VyciwiIC1rZXltYXRleHBvcnRsZW4gbGVuICAtIEV4cG9ydCBsZW4gYnl0ZXMgb2Yga2V5aW5nIG1hdGVyaWFsIChkZWZhdWx0IDIwKVxuIik7CisJQklPX3ByaW50ZihiaW9fZXJyLCIgLXN0YXR1cyAgICAgICAgICAgLSByZXNwb25kIHRvIGNlcnRpZmljYXRlIHN0YXR1cyByZXF1ZXN0c1xuIik7CisJQklPX3ByaW50ZihiaW9fZXJyLCIgLXN0YXR1c192ZXJib3NlICAgLSBlbmFibGUgc3RhdHVzIHJlcXVlc3QgdmVyYm9zZSBwcmludG91dFxuIik7CisJQklPX3ByaW50ZihiaW9fZXJyLCIgLXN0YXR1c190aW1lb3V0IG4gLSBzdGF0dXMgcmVxdWVzdCByZXNwb25kZXIgdGltZW91dFxuIik7CisJQklPX3ByaW50ZihiaW9fZXJyLCIgLXN0YXR1c191cmwgVVJMICAgLSBzdGF0dXMgcmVxdWVzdCBmYWxsYmFjayBVUkxcbiIpOwogCX0KIAogc3RhdGljIGludCBsb2NhbF9hcmdjPTA7CkBAIC03MzksNyArNzQ1LDcgQEAKIAkKIAlpZiAoc2VydmVybmFtZSkKIAkJewotICAgIAkJaWYgKHN0cmNtcChzZXJ2ZXJuYW1lLHAtPnNlcnZlcm5hbWUpKSAKKyAgICAJCWlmIChzdHJjYXNlY21wKHNlcnZlcm5hbWUscC0+c2VydmVybmFtZSkpIAogCQkJcmV0dXJuIHAtPmV4dGVuc2lvbl9lcnJvcjsKIAkJaWYgKGN0eDIpCiAJCQl7CkBAIC0xMzU2LDYgKzEzNjIsMTQgQEAKIAkJc3ZfdXNhZ2UoKTsKIAkJZ290byBlbmQ7CiAJCX0KKyNpZm5kZWYgT1BFTlNTTF9OT19EVExTMQorCWlmICh3d3cgJiYgc29ja2V0X3R5cGUgPT0gU09DS19ER1JBTSkKKwkJeworCQlCSU9fcHJpbnRmKGJpb19lcnIsCisJCQkJIkNhbid0IHVzZSAtSFRUUCwgLXd3dyBvciAtV1dXIHdpdGggRFRMU1xuIik7CisJCWdvdG8gZW5kOworCQl9CisjZW5kaWYKIAogI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fSlBBS0UpICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fUFNLKQogCWlmIChqcGFrZV9zZWNyZXQpCmRpZmYgLS1naXQgYS9idWlsZC1jb25maWctMzIubWsgYi9idWlsZC1jb25maWctMzIubWsKaW5kZXggZDAzNWYxZS4uOWYxMzgwYiAxMDA2NDQKLS0tIGEvYnVpbGQtY29uZmlnLTMyLm1rCisrKyBiL2J1aWxkLWNvbmZpZy0zMi5tawpAQCAtMSw2ICsxLDYgQEAKICMgQXV0by1nZW5lcmF0ZWQgLSBETyBOT1QgRURJVCEKICMgVG8gcmVnZW5lcmF0ZSwgZWRpdCBvcGVuc3NsLmNvbmZpZywgdGhlbiBydW46Ci0jICAgICAuL2ltcG9ydF9vcGVuc3NsLnNoIGltcG9ydCAvcGF0aC90by9vcGVuc3NsLTEuMC4xaC50YXIuZ3oKKyMgICAgIC4vaW1wb3J0X29wZW5zc2wuc2ggaW1wb3J0IC9wYXRoL3RvL29wZW5zc2wtMS4wLjFqLnRhci5negogIwogb3BlbnNzbF9jZmxhZ3NfMzIgOj0gXAogICAtRE9QRU5TU0xfVEhSRUFEUyBcCkBAIC0zMSw2ICszMSw3IEBACiAgIC1ET1BFTlNTTF9OT19TSEEwIFwKICAgLURPUEVOU1NMX05PX1NUQVRJQ19FTkdJTkUgXAogICAtRE9QRU5TU0xfTk9fU1RPUkUgXAorICAtRE9QRU5TU0xfTk9fVU5JVF9URVNUIFwKICAgLURPUEVOU1NMX05PX1dISVJMUE9PTCBcCiAKIG9wZW5zc2xfY2ZsYWdzX3N0YXRpY18zMiA6PSBcCkBAIC02MCw1ICs2MSw2IEBACiAgIC1ET1BFTlNTTF9OT19TSEEwIFwKICAgLURPUEVOU1NMX05PX1NUQVRJQ19FTkdJTkUgXAogICAtRE9QRU5TU0xfTk9fU1RPUkUgXAorICAtRE9QRU5TU0xfTk9fVU5JVF9URVNUIFwKICAgLURPUEVOU1NMX05PX1dISVJMUE9PTCBcCiAKZGlmZiAtLWdpdCBhL2J1aWxkLWNvbmZpZy02NC5tayBiL2J1aWxkLWNvbmZpZy02NC5tawppbmRleCA0NWE4MTQxLi4yNDc1YzJlIDEwMDY0NAotLS0gYS9idWlsZC1jb25maWctNjQubWsKKysrIGIvYnVpbGQtY29uZmlnLTY0Lm1rCkBAIC0xLDYgKzEsNiBAQAogIyBBdXRvLWdlbmVyYXRlZCAtIERPIE5PVCBFRElUIQogIyBUbyByZWdlbmVyYXRlLCBlZGl0IG9wZW5zc2wuY29uZmlnLCB0aGVuIHJ1bjoKLSMgICAgIC4vaW1wb3J0X29wZW5zc2wuc2ggaW1wb3J0IC9wYXRoL3RvL29wZW5zc2wtMS4wLjFoLnRhci5negorIyAgICAgLi9pbXBvcnRfb3BlbnNzbC5zaCBpbXBvcnQgL3BhdGgvdG8vb3BlbnNzbC0xLjAuMWoudGFyLmd6CiAjCiBvcGVuc3NsX2NmbGFnc182NCA6PSBcCiAgIC1ET1BFTlNTTF9USFJFQURTIFwKQEAgLTMxLDYgKzMxLDcgQEAKICAgLURPUEVOU1NMX05PX1NIQTAgXAogICAtRE9QRU5TU0xfTk9fU1RBVElDX0VOR0lORSBcCiAgIC1ET1BFTlNTTF9OT19TVE9SRSBcCisgIC1ET1BFTlNTTF9OT19VTklUX1RFU1QgXAogICAtRE9QRU5TU0xfTk9fV0hJUkxQT09MIFwKIAogb3BlbnNzbF9jZmxhZ3Nfc3RhdGljXzY0IDo9IFwKQEAgLTYwLDUgKzYxLDYgQEAKICAgLURPUEVOU1NMX05PX1NIQTAgXAogICAtRE9QRU5TU0xfTk9fU1RBVElDX0VOR0lORSBcCiAgIC1ET1BFTlNTTF9OT19TVE9SRSBcCisgIC1ET1BFTlNTTF9OT19VTklUX1RFU1QgXAogICAtRE9QRU5TU0xfTk9fV0hJUkxQT09MIFwKIApkaWZmIC0tZ2l0IGEvYnVpbGQtY29uZmlnLXRydXN0eS5tayBiL2J1aWxkLWNvbmZpZy10cnVzdHkubWsKaW5kZXggNGQ2ZmI1OC4uMzQ1NzRmMyAxMDA2NDQKLS0tIGEvYnVpbGQtY29uZmlnLXRydXN0eS5taworKysgYi9idWlsZC1jb25maWctdHJ1c3R5Lm1rCkBAIC0xLDYgKzEsNiBAQAogIyBBdXRvLWdlbmVyYXRlZCAtIERPIE5PVCBFRElUIQogIyBUbyByZWdlbmVyYXRlLCBlZGl0IG9wZW5zc2wuY29uZmlnLCB0aGVuIHJ1bjoKLSMgICAgIC4vaW1wb3J0X29wZW5zc2wuc2ggaW1wb3J0IC9wYXRoL3RvL29wZW5zc2wtMS4wLjFoLnRhci5negorIyAgICAgLi9pbXBvcnRfb3BlbnNzbC5zaCBpbXBvcnQgL3BhdGgvdG8vb3BlbnNzbC0xLjAuMWoudGFyLmd6CiAjCiBvcGVuc3NsX2NmbGFnc190cnVzdHkgOj0gXAogICAtRExfRU5ESUFOIFwKQEAgLTQ4LDYgKzQ4LDcgQEAKICAgLURPUEVOU1NMX05PX1RTIFwKICAgLURPUEVOU1NMX05PX1RYVF9EQiBcCiAgIC1ET1BFTlNTTF9OT19VSSBcCisgIC1ET1BFTlNTTF9OT19VTklUX1RFU1QgXAogICAtRE9QRU5TU0xfTk9fV0hJUkxQT09MIFwKIAogb3BlbnNzbF9jZmxhZ3Nfc3RhdGljX3RydXN0eSA6PSBcCkBAIC05Niw1ICs5Nyw2IEBACiAgIC1ET1BFTlNTTF9OT19UUyBcCiAgIC1ET1BFTlNTTF9OT19UWFRfREIgXAogICAtRE9QRU5TU0xfTk9fVUkgXAorICAtRE9QRU5TU0xfTk9fVU5JVF9URVNUIFwKICAgLURPUEVOU1NMX05PX1dISVJMUE9PTCBcCiAKZGlmZiAtLWdpdCBhL2NyeXB0by9MUGRpcl93aW4uYyBiL2NyeXB0by9MUGRpcl93aW4uYwppbmRleCA3MDJkYmM3Li5kNWI1ZTJjIDEwMDY0NAotLS0gYS9jcnlwdG8vTFBkaXJfd2luLmMKKysrIGIvY3J5cHRvL0xQZGlyX3dpbi5jCkBAIC0xLDQgKzEsMyBAQAotLyogJExQOiBMUGxpYi9zb3VyY2UvTFBkaXJfd2luLmMsdiAxLjEwIDIwMDQvMDgvMjYgMTM6MzY6MDUgX2N2c19sZXZpdHRlIEV4cCAkICovCiAvKgogICogQ29weXJpZ2h0IChjKSAyMDA0LCBSaWNoYXJkIExldml0dGUgPHJpY2hhcmRAbGV2aXR0ZS5vcmc+CiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtNjMsNiArNjIsMTYgQEAKICAgZXJybm8gPSAwOwogICBpZiAoKmN0eCA9PSBOVUxMKQogICAgIHsKKyAgICAgIGNvbnN0IGNoYXIgKmV4dGRpciA9IGRpcmVjdG9yeTsKKyAgICAgIGNoYXIgKmV4dGRpcmJ1ZiA9IE5VTEw7CisgICAgICBzaXplX3QgZGlybGVuID0gc3RybGVuIChkaXJlY3RvcnkpOworCisgICAgICBpZiAoZGlybGVuID09IDApCisJeworCSAgZXJybm8gPSBFTk9FTlQ7CisJICByZXR1cm4gMDsKKwl9CisKICAgICAgICpjdHggPSAoTFBfRElSX0NUWCAqKW1hbGxvYyhzaXplb2YoTFBfRElSX0NUWCkpOwogICAgICAgaWYgKCpjdHggPT0gTlVMTCkKIAl7CkBAIC03MSwxNSArODAsMzUgQEAKIAl9CiAgICAgICBtZW1zZXQoKmN0eCwgJ1wwJywgc2l6ZW9mKExQX0RJUl9DVFgpKTsKIAorICAgICAgaWYgKGRpcmVjdG9yeVtkaXJsZW4tMV0gIT0gJyonKQorCXsKKwkgIGV4dGRpcmJ1ZiA9IChjaGFyICopbWFsbG9jKGRpcmxlbiArIDMpOworCSAgaWYgKGV4dGRpcmJ1ZiA9PSBOVUxMKQorCSAgICB7CisJICAgICAgZnJlZSgqY3R4KTsKKwkgICAgICAqY3R4ID0gTlVMTDsKKwkgICAgICBlcnJubyA9IEVOT01FTTsKKwkgICAgICByZXR1cm4gMDsKKwkgICAgfQorCSAgaWYgKGRpcmVjdG9yeVtkaXJsZW4tMV0gIT0gJy8nICYmIGRpcmVjdG9yeVtkaXJsZW4tMV0gIT0gJ1xcJykKKwkgICAgZXh0ZGlyID0gc3RyY2F0KHN0cmNweSAoZXh0ZGlyYnVmLGRpcmVjdG9yeSksIi8qIik7CisJICBlbHNlCisJICAgIGV4dGRpciA9IHN0cmNhdChzdHJjcHkgKGV4dGRpcmJ1ZixkaXJlY3RvcnkpLCIqIik7CisJfQorCiAgICAgICBpZiAoc2l6ZW9mKFRDSEFSKSAhPSBzaXplb2YoY2hhcikpCiAJewogCSAgVENIQVIgKndkaXIgPSBOVUxMOwogCSAgLyogbGVuXzAgZGVub3RlcyBzdHJpbmcgbGVuZ3RoICp3aXRoKiB0cmFpbGluZyAwICovIAotCSAgc2l6ZV90IGluZGV4ID0gMCxsZW5fMCA9IHN0cmxlbihkaXJlY3RvcnkpICsgMTsKKwkgIHNpemVfdCBpbmRleCA9IDAsbGVuXzAgPSBzdHJsZW4oZXh0ZGlyKSArIDE7CiAKLQkgIHdkaXIgPSAoVENIQVIgKiltYWxsb2MobGVuXzAgKiBzaXplb2YoVENIQVIpKTsKKwkgIHdkaXIgPSAoVENIQVIgKiljYWxsb2MobGVuXzAsIHNpemVvZihUQ0hBUikpOwogCSAgaWYgKHdkaXIgPT0gTlVMTCkKIAkgICAgeworCSAgICAgIGlmIChleHRkaXJidWYgIT0gTlVMTCkKKwkJeworCQkgIGZyZWUgKGV4dGRpcmJ1Zik7CisJCX0KIAkgICAgICBmcmVlKCpjdHgpOwogCSAgICAgICpjdHggPSBOVUxMOwogCSAgICAgIGVycm5vID0gRU5PTUVNOwpAQCAtODcsMTcgKzExNiwyMyBAQAogCSAgICB9CiAKICNpZmRlZiBMUF9NVUxUSUJZVEVfQVZBSUxBQkxFCi0JICBpZiAoIU11bHRpQnl0ZVRvV2lkZUNoYXIoQ1BfQUNQLCAwLCBkaXJlY3RvcnksIGxlbl8wLCAoV0NIQVIgKil3ZGlyLCBsZW5fMCkpCisJICBpZiAoIU11bHRpQnl0ZVRvV2lkZUNoYXIoQ1BfQUNQLCAwLCBleHRkaXIsIGxlbl8wLCAoV0NIQVIgKil3ZGlyLCBsZW5fMCkpCiAjZW5kaWYKIAkgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgbGVuXzA7IGluZGV4KyspCi0JICAgICAgd2RpcltpbmRleF0gPSAoVENIQVIpZGlyZWN0b3J5W2luZGV4XTsKKwkgICAgICB3ZGlyW2luZGV4XSA9IChUQ0hBUilleHRkaXJbaW5kZXhdOwogCiAJICAoKmN0eCktPmhhbmRsZSA9IEZpbmRGaXJzdEZpbGUod2RpciwgJigqY3R4KS0+Y3R4KTsKIAogCSAgZnJlZSh3ZGlyKTsKIAl9CiAgICAgICBlbHNlCi0JKCpjdHgpLT5oYW5kbGUgPSBGaW5kRmlyc3RGaWxlKChUQ0hBUiAqKWRpcmVjdG9yeSwgJigqY3R4KS0+Y3R4KTsKKwl7CisJICAoKmN0eCktPmhhbmRsZSA9IEZpbmRGaXJzdEZpbGUoKFRDSEFSICopZXh0ZGlyLCAmKCpjdHgpLT5jdHgpOworCX0KKyAgICAgIGlmIChleHRkaXJidWYgIT0gTlVMTCkKKwl7CisJICBmcmVlIChleHRkaXJidWYpOworCX0KIAogICAgICAgaWYgKCgqY3R4KS0+aGFuZGxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKQogCXsKQEAgLTExNCw3ICsxNDksNiBAQAogCSAgcmV0dXJuIDA7CiAJfQogICAgIH0KLQogICBpZiAoc2l6ZW9mKFRDSEFSKSAhPSBzaXplb2YoY2hhcikpCiAgICAgewogICAgICAgVENIQVIgKndkaXIgPSAoKmN0eCktPmN0eC5jRmlsZU5hbWU7CmRpZmYgLS1naXQgYS9jcnlwdG8vYWVzL2FzbS9hZXNuaS14ODZfNjQucGwgYi9jcnlwdG8vYWVzL2FzbS9hZXNuaS14ODZfNjQucGwKaW5kZXggMGRiYjE5NC4uYzkyNzBkZiAxMDA2NDQKLS0tIGEvY3J5cHRvL2Flcy9hc20vYWVzbmkteDg2XzY0LnBsCisrKyBiL2NyeXB0by9hZXMvYXNtL2Flc25pLXg4Nl82NC5wbApAQCAtNTI1LDYgKzUyNSwxNiBAQAogLnR5cGUJYWVzbmlfZWNiX2VuY3J5cHQsXEBmdW5jdGlvbiw1CiAuYWxpZ24JMTYKIGFlc25pX2VjYl9lbmNyeXB0OgorX19fCiskY29kZS49PDxfX18gaWYgKCR3aW42NCk7CisJbGVhCS0weDU4KCVyc3ApLCVyc3AKKwltb3ZhcHMJJXhtbTYsKCVyc3ApCisJbW92YXBzCSV4bW03LDB4MTAoJXJzcCkKKwltb3ZhcHMJJXhtbTgsMHgyMCglcnNwKQorCW1vdmFwcwkleG1tOSwweDMwKCVyc3ApCisuTGVjYl9lbmNfYm9keToKK19fXworJGNvZGUuPTw8X19fOwogCWFuZAlcJC0xNiwkbGVuCiAJanoJLkxlY2JfcmV0CiAKQEAgLTgwNSw2ICs4MTUsMTYgQEAKIAltb3Z1cHMJJGlub3V0NSwweDUwKCRvdXQpCiAKIC5MZWNiX3JldDoKK19fXworJGNvZGUuPTw8X19fIGlmICgkd2luNjQpOworCW1vdmFwcwkoJXJzcCksJXhtbTYKKwltb3ZhcHMJMHgxMCglcnNwKSwleG1tNworCW1vdmFwcwkweDIwKCVyc3ApLCV4bW04CisJbW92YXBzCTB4MzAoJXJzcCksJXhtbTkKKwlsZWEJMHg1OCglcnNwKSwlcnNwCisuTGVjYl9lbmNfcmV0OgorX19fCiskY29kZS49PDxfX187CiAJcmV0CiAuc2l6ZQlhZXNuaV9lY2JfZW5jcnlwdCwuLWFlc25pX2VjYl9lbmNyeXB0CiBfX18KQEAgLTI3MzAsMjggKzI3NTAsOSBAQAogLmV4dGVybglfX2ltcF9SdGxWaXJ0dWFsVW53aW5kCiBfX18KICRjb2RlLj08PF9fXyBpZiAoJFBSRUZJWCBlcSAiYWVzbmkiKTsKLS50eXBlCWVjYl9zZV9oYW5kbGVyLFxAYWJpLW9tbmlwb3RlbnQKKy50eXBlCWVjYl9jY202NF9zZV9oYW5kbGVyLFxAYWJpLW9tbmlwb3RlbnQKIC5hbGlnbgkxNgotZWNiX3NlX2hhbmRsZXI6Ci0JcHVzaAklcnNpCi0JcHVzaAklcmRpCi0JcHVzaAklcmJ4Ci0JcHVzaAklcmJwCi0JcHVzaAklcjEyCi0JcHVzaAklcjEzCi0JcHVzaAklcjE0Ci0JcHVzaAklcjE1Ci0JcHVzaGZxCi0Jc3ViCVwkNjQsJXJzcAotCi0JbW92CTE1MigkY29udGV4dCksJXJheAkjIHB1bGwgY29udGV4dC0+UnNwCi0KLQlqbXAJLkxjb21tb25fc2VoX3RhaWwKLS5zaXplCWVjYl9zZV9oYW5kbGVyLC4tZWNiX3NlX2hhbmRsZXIKLQotLnR5cGUJY2NtNjRfc2VfaGFuZGxlcixcQGFiaS1vbW5pcG90ZW50Ci0uYWxpZ24JMTYKLWNjbTY0X3NlX2hhbmRsZXI6CitlY2JfY2NtNjRfc2VfaGFuZGxlcjoKIAlwdXNoCSVyc2kKIAlwdXNoCSVyZGkKIAlwdXNoCSVyYngKQEAgLTI3ODgsNyArMjc4OSw3IEBACiAJbGVhCTB4NTgoJXJheCksJXJheAkJIyBhZGp1c3Qgc3RhY2sgcG9pbnRlcgogCiAJam1wCS5MY29tbW9uX3NlaF90YWlsCi0uc2l6ZQljY202NF9zZV9oYW5kbGVyLC4tY2NtNjRfc2VfaGFuZGxlcgorLnNpemUJZWNiX2NjbTY0X3NlX2hhbmRsZXIsLi1lY2JfY2NtNjRfc2VfaGFuZGxlcgogCiAudHlwZQljdHIzMl9zZV9oYW5kbGVyLFxAYWJpLW9tbmlwb3RlbnQKIC5hbGlnbgkxNgpAQCAtMjk5MywxNCArMjk5NCwxNSBAQAogJGNvZGUuPTw8X19fIGlmICgkUFJFRklYIGVxICJhZXNuaSIpOwogLkxTRUhfaW5mb19lY2I6CiAJLmJ5dGUJOSwwLDAsMAotCS5ydmEJZWNiX3NlX2hhbmRsZXIKKwkucnZhCWVjYl9jY202NF9zZV9oYW5kbGVyCisJLnJ2YQkuTGVjYl9lbmNfYm9keSwuTGVjYl9lbmNfcmV0CQkjIEhhbmRsZXJEYXRhW10KIC5MU0VIX2luZm9fY2NtNjRfZW5jOgogCS5ieXRlCTksMCwwLDAKLQkucnZhCWNjbTY0X3NlX2hhbmRsZXIKKwkucnZhCWVjYl9jY202NF9zZV9oYW5kbGVyCiAJLnJ2YQkuTGNjbTY0X2VuY19ib2R5LC5MY2NtNjRfZW5jX3JldAkjIEhhbmRsZXJEYXRhW10KIC5MU0VIX2luZm9fY2NtNjRfZGVjOgogCS5ieXRlCTksMCwwLDAKLQkucnZhCWNjbTY0X3NlX2hhbmRsZXIKKwkucnZhCWVjYl9jY202NF9zZV9oYW5kbGVyCiAJLnJ2YQkuTGNjbTY0X2RlY19ib2R5LC5MY2NtNjRfZGVjX3JldAkjIEhhbmRsZXJEYXRhW10KIC5MU0VIX2luZm9fY3RyMzI6CiAJLmJ5dGUJOSwwLDAsMApkaWZmIC0tZ2l0IGEvY3J5cHRvL2FzbjEvYV9vYmplY3QuYyBiL2NyeXB0by9hc24xL2Ffb2JqZWN0LmMKaW5kZXggMzk3OGM5MS4uNzdiMjc2OCAxMDA2NDQKLS0tIGEvY3J5cHRvL2FzbjEvYV9vYmplY3QuYworKysgYi9jcnlwdG8vYXNuMS9hX29iamVjdC5jCkBAIC0yODMsMTcgKzI4MywyOSBAQAogCUFTTjFlcnIoQVNOMV9GX0QySV9BU04xX09CSkVDVCxpKTsKIAlyZXR1cm4oTlVMTCk7CiB9CisKIEFTTjFfT0JKRUNUICpjMmlfQVNOMV9PQkpFQ1QoQVNOMV9PQkpFQ1QgKiphLCBjb25zdCB1bnNpZ25lZCBjaGFyICoqcHAsCiAJICAgICBsb25nIGxlbikKIAl7CiAJQVNOMV9PQkpFQ1QgKnJldD1OVUxMOwogCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnA7CiAJdW5zaWduZWQgY2hhciAqZGF0YTsKLQlpbnQgaTsKLQkvKiBTYW5pdHkgY2hlY2sgT0lEIGVuY29kaW5nOiBjYW4ndCBoYXZlIGxlYWRpbmcgMHg4MCBpbgotCSAqIHN1YmlkZW50aWZpZXJzLCBzZWU6IFguNjkwIDguMTkuMgorCWludCBpLCBsZW5ndGg7CisKKwkvKiBTYW5pdHkgY2hlY2sgT0lEIGVuY29kaW5nLgorCSAqIE5lZWQgYXQgbGVhc3Qgb25lIGNvbnRlbnQgb2N0ZXQuCisJICogTVNCIG11c3QgYmUgY2xlYXIgaW4gdGhlIGxhc3Qgb2N0ZXQuCisJICogY2FuJ3QgaGF2ZSBsZWFkaW5nIDB4ODAgaW4gc3ViaWRlbnRpZmllcnMsIHNlZTogWC42OTAgOC4xOS4yCiAJICovCi0JZm9yIChpID0gMCwgcCA9ICpwcDsgaSA8IGxlbjsgaSsrLCBwKyspCisJaWYgKGxlbiA8PSAwIHx8IGxlbiA+IElOVF9NQVggfHwgcHAgPT0gTlVMTCB8fCAocCA9ICpwcCkgPT0gTlVMTCB8fAorCSAgICBwW2xlbiAtIDFdICYgMHg4MCkKKwkJeworCQlBU04xZXJyKEFTTjFfRl9DMklfQVNOMV9PQkpFQ1QsQVNOMV9SX0lOVkFMSURfT0JKRUNUX0VOQ09ESU5HKTsKKwkJcmV0dXJuIE5VTEw7CisJCX0KKwkvKiBOb3cgMCA8IGxlbiA8PSBJTlRfTUFYLCBzbyB0aGUgY2FzdCBpcyBzYWZlLiAqLworCWxlbmd0aCA9IChpbnQpbGVuOworCWZvciAoaSA9IDA7IGkgPCBsZW5ndGg7IGkrKywgcCsrKQogCQl7CiAJCWlmICgqcCA9PSAweDgwICYmICghaSB8fCAhKHBbLTFdICYgMHg4MCkpKQogCQkJewpAQCAtMzE2LDIzICszMjgsMjMgQEAKIAlkYXRhID0gKHVuc2lnbmVkIGNoYXIgKilyZXQtPmRhdGE7CiAJcmV0LT5kYXRhID0gTlVMTDsKIAkvKiBvbmNlIGRldGFjaGVkIHdlIGNhbiBjaGFuZ2UgaXQgKi8KLQlpZiAoKGRhdGEgPT0gTlVMTCkgfHwgKHJldC0+bGVuZ3RoIDwgbGVuKSkKKwlpZiAoKGRhdGEgPT0gTlVMTCkgfHwgKHJldC0+bGVuZ3RoIDwgbGVuZ3RoKSkKIAkJewogCQlyZXQtPmxlbmd0aD0wOwogCQlpZiAoZGF0YSAhPSBOVUxMKSBPUEVOU1NMX2ZyZWUoZGF0YSk7Ci0JCWRhdGE9KHVuc2lnbmVkIGNoYXIgKilPUEVOU1NMX21hbGxvYyhsZW4gPyAoaW50KWxlbiA6IDEpOworCQlkYXRhPSh1bnNpZ25lZCBjaGFyICopT1BFTlNTTF9tYWxsb2MobGVuZ3RoKTsKIAkJaWYgKGRhdGEgPT0gTlVMTCkKIAkJCXsgaT1FUlJfUl9NQUxMT0NfRkFJTFVSRTsgZ290byBlcnI7IH0KIAkJcmV0LT5mbGFnc3w9QVNOMV9PQkpFQ1RfRkxBR19EWU5BTUlDX0RBVEE7CiAJCX0KLQltZW1jcHkoZGF0YSxwLChpbnQpbGVuKTsKKwltZW1jcHkoZGF0YSxwLGxlbmd0aCk7CiAJLyogcmVhdHRhY2ggZGF0YSB0byBvYmplY3QsIGFmdGVyIHdoaWNoIGl0IHJlbWFpbnMgY29uc3QgKi8KIAlyZXQtPmRhdGEgID1kYXRhOwotCXJldC0+bGVuZ3RoPShpbnQpbGVuOworCXJldC0+bGVuZ3RoPWxlbmd0aDsKIAlyZXQtPnNuPU5VTEw7CiAJcmV0LT5sbj1OVUxMOwogCS8qIHJldC0+ZmxhZ3M9QVNOMV9PQkpFQ1RfRkxBR19EWU5BTUlDOyB3ZSBrbm93IGl0IGlzIGR5bmFtaWMgKi8KLQlwKz1sZW47CisJcCs9bGVuZ3RoOwogCiAJaWYgKGEgIT0gTlVMTCkgKCphKT1yZXQ7CiAJKnBwPXA7CmRpZmYgLS1naXQgYS9jcnlwdG8vYXNuMS9hX3N0cmV4LmMgYi9jcnlwdG8vYXNuMS9hX3N0cmV4LmMKaW5kZXggZWFkMzdhYy4uOGZiNDE5MyAxMDA2NDQKLS0tIGEvY3J5cHRvL2FzbjEvYV9zdHJleC5jCisrKyBiL2NyeXB0by9hc24xL2Ffc3RyZXguYwpAQCAtNTY4LDYgKzU2OCw3IEBACiAJbWJmbGFnIHw9IE1CU1RSSU5HX0ZMQUc7CiAJc3RtcC5kYXRhID0gTlVMTDsKIAlzdG1wLmxlbmd0aCA9IDA7CisJc3RtcC5mbGFncyA9IDA7CiAJcmV0ID0gQVNOMV9tYnN0cmluZ19jb3B5KCZzdHIsIGluLT5kYXRhLCBpbi0+bGVuZ3RoLCBtYmZsYWcsIEJfQVNOMV9VVEY4U1RSSU5HKTsKIAlpZihyZXQgPCAwKSByZXR1cm4gcmV0OwogCSpvdXQgPSBzdG1wLmRhdGE7CmRpZmYgLS1naXQgYS9jcnlwdG8vYXNuMS9hX3V0Y3RtLmMgYi9jcnlwdG8vYXNuMS9hX3V0Y3RtLmMKaW5kZXggMDcyZTIzNi4uYmJkYzliMyAxMDA2NDQKLS0tIGEvY3J5cHRvL2FzbjEvYV91dGN0bS5jCisrKyBiL2NyeXB0by9hc24xL2FfdXRjdG0uYwpAQCAtMTk2LDI0ICsxOTYsMjkgQEAKIAlzdHJ1Y3QgdG0gKnRzOwogCXN0cnVjdCB0bSBkYXRhOwogCXNpemVfdCBsZW4gPSAyMDsKKwlpbnQgZnJlZV9zID0gMDsKIAogCWlmIChzID09IE5VTEwpCisJCXsKKwkJZnJlZV9zID0gMTsKIAkJcz1NX0FTTjFfVVRDVElNRV9uZXcoKTsKKwkJfQogCWlmIChzID09IE5VTEwpCi0JCXJldHVybihOVUxMKTsKKwkJZ290byBlcnI7CisKIAogCXRzPU9QRU5TU0xfZ210aW1lKCZ0LCAmZGF0YSk7CiAJaWYgKHRzID09IE5VTEwpCi0JCXJldHVybihOVUxMKTsKKwkJZ290byBlcnI7CiAKIAlpZiAob2Zmc2V0X2RheSB8fCBvZmZzZXRfc2VjKQogCQl7IAogCQlpZiAoIU9QRU5TU0xfZ210aW1lX2Fkaih0cywgb2Zmc2V0X2RheSwgb2Zmc2V0X3NlYykpCi0JCQlyZXR1cm4gTlVMTDsKKwkJCWdvdG8gZXJyOwogCQl9CiAKIAlpZigodHMtPnRtX3llYXIgPCA1MCkgfHwgKHRzLT50bV95ZWFyID49IDE1MCkpCi0JCXJldHVybiBOVUxMOworCQlnb3RvIGVycjsKIAogCXA9KGNoYXIgKilzLT5kYXRhOwogCWlmICgocCA9PSBOVUxMKSB8fCAoKHNpemVfdClzLT5sZW5ndGggPCBsZW4pKQpAQCAtMjIyLDcgKzIyNyw3IEBACiAJCWlmIChwID09IE5VTEwpCiAJCQl7CiAJCQlBU04xZXJyKEFTTjFfRl9BU04xX1VUQ1RJTUVfQURKLEVSUl9SX01BTExPQ19GQUlMVVJFKTsKLQkJCXJldHVybihOVUxMKTsKKwkJCWdvdG8gZXJyOwogCQkJfQogCQlpZiAocy0+ZGF0YSAhPSBOVUxMKQogCQkJT1BFTlNTTF9mcmVlKHMtPmRhdGEpOwpAQCAtMjM3LDYgKzI0MiwxMCBAQAogCWViY2RpYzJhc2NpaShzLT5kYXRhLCBzLT5kYXRhLCBzLT5sZW5ndGgpOwogI2VuZGlmCiAJcmV0dXJuKHMpOworCWVycjoKKwlpZiAoZnJlZV9zICYmIHMpCisJCU1fQVNOMV9VVENUSU1FX2ZyZWUocyk7CisJcmV0dXJuIE5VTEw7CiAJfQogCiAKQEAgLTI2MSw2ICsyNzAsMTEgQEAKIAl0IC09IG9mZnNldCo2MDsgLyogRklYTUU6IG1heSBvdmVyZmxvdyBpbiBleHRyZW1lIGNhc2VzICovCiAKIAl0bSA9IE9QRU5TU0xfZ210aW1lKCZ0LCAmZGF0YSk7CisJLyogTkI6IC0xLCAwLCAxIGFscmVhZHkgdmFsaWQgcmV0dXJuIHZhbHVlcyBzbyB1c2UgLTIgdG8KKwkgKiBpbmRpY2F0ZSBlcnJvci4KKwkgKi8KKwlpZiAodG0gPT0gTlVMTCkKKwkJcmV0dXJuIC0yOwogCQogI2RlZmluZSByZXR1cm5fY21wKGEsYikgaWYgKChhKTwoYikpIHJldHVybiAtMTsgZWxzZSBpZiAoKGEpPihiKSkgcmV0dXJuIDEKIAl5ZWFyID0gZzIocy0+ZGF0YSk7CmRpZmYgLS1naXQgYS9jcnlwdG8vYXNuMS9hbWV0aF9saWIuYyBiL2NyeXB0by9hc24xL2FtZXRoX2xpYi5jCmluZGV4IGExOWUwNTguLmVmMTUzZDQgMTAwNjQ0Ci0tLSBhL2NyeXB0by9hc24xL2FtZXRoX2xpYi5jCisrKyBiL2NyeXB0by9hc24xL2FtZXRoX2xpYi5jCkBAIC0yNTgsNyArMjU4LDEyIEBACiAJaWYgKCFhbWV0aCkKIAkJcmV0dXJuIDA7CiAJYW1ldGgtPnBrZXlfYmFzZV9pZCA9IHRvOwotCXJldHVybiBFVlBfUEtFWV9hc24xX2FkZDAoYW1ldGgpOworCWlmICghRVZQX1BLRVlfYXNuMV9hZGQwKGFtZXRoKSkKKwkJeworCQlFVlBfUEtFWV9hc24xX2ZyZWUoYW1ldGgpOworCQlyZXR1cm4gMDsKKwkJfQorCXJldHVybiAxOwogCX0KIAogaW50IEVWUF9QS0VZX2FzbjFfZ2V0MF9pbmZvKGludCAqcHBrZXlfaWQsIGludCAqcHBrZXlfYmFzZV9pZCwgaW50ICpwcGtleV9mbGFncywKZGlmZiAtLWdpdCBhL2NyeXB0by9hc24xL2FzbjFfbGliLmMgYi9jcnlwdG8vYXNuMS9hc24xX2xpYi5jCmluZGV4IDFiY2I0NGEuLmZhMDRiMDggMTAwNjQ0Ci0tLSBhL2NyeXB0by9hc24xL2FzbjFfbGliLmMKKysrIGIvY3J5cHRvL2FzbjEvYXNuMV9saWIuYwpAQCAtMTMxLDYgKzEzMSw5IEBACiAJKnBjbGFzcz14Y2xhc3M7CiAJaWYgKCFhc24xX2dldF9sZW5ndGgoJnAsJmluZixwbGVuZ3RoLChpbnQpbWF4KSkgZ290byBlcnI7CiAKKwlpZiAoaW5mICYmICEocmV0ICYgVl9BU04xX0NPTlNUUlVDVEVEKSkKKwkJZ290byBlcnI7CisKICNpZiAwCiAJZnByaW50ZihzdGRlcnIsInA9JWQgKyAqcGxlbmd0aD0lbGQgPiBvbWF4PSVsZCArICpwcD0lZCAgKCVkID4gJWQpXG4iLCAKIAkJKGludClwLCpwbGVuZ3RoLG9tYXgsKGludCkqcHAsKGludCkocCsgKnBsZW5ndGgpLApkaWZmIC0tZ2l0IGEvY3J5cHRvL2FzbjEvYXNuX21pbWUuYyBiL2NyeXB0by9hc24xL2Fzbl9taW1lLmMKaW5kZXggNTRhNzA0YS4uMTNkMDAzYiAxMDA2NDQKLS0tIGEvY3J5cHRvL2FzbjEvYXNuX21pbWUuYworKysgYi9jcnlwdG8vYXNuMS9hc25fbWltZS5jCkBAIC02NjcsNiArNjY3LDggQEAKIAlpbnQgbGVuLCBzdGF0ZSwgc2F2ZV9zdGF0ZSA9IDA7CiAKIAloZWFkZXJzID0gc2tfTUlNRV9IRUFERVJfbmV3KG1pbWVfaGRyX2NtcCk7CisJaWYgKCFoZWFkZXJzKQorCQlyZXR1cm4gTlVMTDsKIAl3aGlsZSAoKGxlbiA9IEJJT19nZXRzKGJpbywgbGluZWJ1ZiwgTUFYX1NNTEVOKSkgPiAwKSB7CiAJLyogSWYgd2hpdGVzcGFjZSBhdCBsaW5lIHN0YXJ0IHRoZW4gY29udGludWF0aW9uIGxpbmUgKi8KIAlpZihtaGRyICYmIGlzc3BhY2UoKHVuc2lnbmVkIGNoYXIpbGluZWJ1ZlswXSkpIHN0YXRlID0gTUlNRV9OQU1FOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2FzbjEvYXNuX3BhY2suYyBiL2NyeXB0by9hc24xL2Fzbl9wYWNrLmMKaW5kZXggYWQ3MzgyMS4uMDBkYmY1YSAxMDA2NDQKLS0tIGEvY3J5cHRvL2FzbjEvYXNuX3BhY2suYworKysgYi9jcnlwdG8vYXNuMS9hc25fcGFjay5jCkBAIC0xMzQsMTUgKzEzNCwyMyBAQAogCQkKIAlpZiAoIShvY3RtcC0+bGVuZ3RoID0gaTJkKG9iaiwgTlVMTCkpKSB7CiAJCUFTTjFlcnIoQVNOMV9GX0FTTjFfUEFDS19TVFJJTkcsQVNOMV9SX0VOQ09ERV9FUlJPUik7Ci0JCXJldHVybiBOVUxMOworCQlnb3RvIGVycjsKIAl9CiAJaWYgKCEocCA9IE9QRU5TU0xfbWFsbG9jIChvY3RtcC0+bGVuZ3RoKSkpIHsKIAkJQVNOMWVycihBU04xX0ZfQVNOMV9QQUNLX1NUUklORyxFUlJfUl9NQUxMT0NfRkFJTFVSRSk7Ci0JCXJldHVybiBOVUxMOworCQlnb3RvIGVycjsKIAl9CiAJb2N0bXAtPmRhdGEgPSBwOwogCWkyZCAob2JqLCAmcCk7CiAJcmV0dXJuIG9jdG1wOworCWVycjoKKwlpZiAoIW9jdCB8fCAhKm9jdCkKKwkJeworCQlBU04xX1NUUklOR19mcmVlKG9jdG1wKTsKKwkJaWYgKG9jdCkKKwkJCSpvY3QgPSBOVUxMOworCQl9CisJcmV0dXJuIE5VTEw7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvY3J5cHRvL2FzbjEvYmlvX2FzbjEuYyBiL2NyeXB0by9hc24xL2Jpb19hc24xLmMKaW5kZXggZGM3ZWZkNS4uYmNhNGVlYiAxMDA2NDQKLS0tIGEvY3J5cHRvL2FzbjEvYmlvX2FzbjEuYworKysgYi9jcnlwdG8vYXNuMS9iaW9fYXNuMS5jCkBAIC0xNTQsNyArMTU0LDEwIEBACiAJaWYgKCFjdHgpCiAJCXJldHVybiAwOwogCWlmICghYXNuMV9iaW9faW5pdChjdHgsIERFRkFVTFRfQVNOMV9CVUZfU0laRSkpCisJCXsKKwkJT1BFTlNTTF9mcmVlKGN0eCk7CiAJCXJldHVybiAwOworCQl9CiAJYi0+aW5pdCA9IDE7CiAJYi0+cHRyID0gKGNoYXIgKiljdHg7CiAJYi0+ZmxhZ3MgPSAwOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2FzbjEvY2hhcm1hcC5wbCBiL2NyeXB0by9hc24xL2NoYXJtYXAucGwKaW5kZXggMjg3NWM1OS4uMjVlYmYyYyAxMDA2NDQKLS0tIGEvY3J5cHRvL2FzbjEvY2hhcm1hcC5wbAorKysgYi9jcnlwdG8vYXNuMS9jaGFybWFwLnBsCkBAIC0xLDUgKzEsOCBAQAogIyEvdXNyL2xvY2FsL2Jpbi9wZXJsIC13CiAKKyMgV3JpdHRlbiBieSBEciBTdGVwaGVuIE4gSGVuc29uIChzdGV2ZUBvcGVuc3NsLm9yZykuCisjIExpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgT3BlblNTTCBsaWNlbnNlLgorCiB1c2Ugc3RyaWN0OwogCiBteSAoJGksIEBhcnIpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2FzbjEvZXZwX2FzbjEuYyBiL2NyeXB0by9hc24xL2V2cF9hc24xLmMKaW5kZXggZjNkOTgwNC4uMWI5NDQ1OSAxMDA2NDQKLS0tIGEvY3J5cHRvL2FzbjEvZXZwX2FzbjEuYworKysgYi9jcnlwdG8vYXNuMS9ldnBfYXNuMS5jCkBAIC02Niw3ICs2NiwxMSBAQAogCUFTTjFfU1RSSU5HICpvczsKIAogCWlmICgob3M9TV9BU04xX09DVEVUX1NUUklOR19uZXcoKSkgPT0gTlVMTCkgcmV0dXJuKDApOwotCWlmICghTV9BU04xX09DVEVUX1NUUklOR19zZXQob3MsZGF0YSxsZW4pKSByZXR1cm4oMCk7CisJaWYgKCFNX0FTTjFfT0NURVRfU1RSSU5HX3NldChvcyxkYXRhLGxlbikpCisJCXsKKwkJTV9BU04xX09DVEVUX1NUUklOR19mcmVlKG9zKTsKKwkJcmV0dXJuIDA7CisJCX0KIAlBU04xX1RZUEVfc2V0KGEsVl9BU04xX09DVEVUX1NUUklORyxvcyk7CiAJcmV0dXJuKDEpOwogCX0KZGlmZiAtLWdpdCBhL2NyeXB0by9hc24xL3RfeDUwOS5jIGIvY3J5cHRvL2FzbjEvdF94NTA5LmMKaW5kZXggZWRiYjM5YS4uOGU5NjFmNSAxMDA2NDQKLS0tIGEvY3J5cHRvL2FzbjEvdF94NTA5LmMKKysrIGIvY3J5cHRvL2FzbjEvdF94NTA5LmMKQEAgLTQ3NSw2ICs0NzUsOCBAQAogCWw9ODAtMi1vYmFzZTsKIAogCWI9WDUwOV9OQU1FX29uZWxpbmUobmFtZSxOVUxMLDApOworCWlmICghYikKKwkJcmV0dXJuIDA7CiAJaWYgKCEqYikKIAkJewogCQlPUEVOU1NMX2ZyZWUoYik7CmRpZmYgLS1naXQgYS9jcnlwdG8vYXNuMS90YXNuX2VuYy5jIGIvY3J5cHRvL2FzbjEvdGFzbl9lbmMuYwppbmRleCA5MzZhZDFmLi4xMzkwZTVlIDEwMDY0NAotLS0gYS9jcnlwdG8vYXNuMS90YXNuX2VuYy5jCisrKyBiL2NyeXB0by9hc24xL3Rhc25fZW5jLmMKQEAgLTQ1Myw5ICs0NTMsMTQgQEAKIAkJCXsKIAkJCWRlcmxzdCA9IE9QRU5TU0xfbWFsbG9jKHNrX0FTTjFfVkFMVUVfbnVtKHNrKQogCQkJCQkJKiBzaXplb2YoKmRlcmxzdCkpOwotCQkJdG1wZGF0ID0gT1BFTlNTTF9tYWxsb2Moc2tjb250bGVuKTsKLQkJCWlmICghZGVybHN0IHx8ICF0bXBkYXQpCisJCQlpZiAoIWRlcmxzdCkKIAkJCQlyZXR1cm4gMDsKKwkJCXRtcGRhdCA9IE9QRU5TU0xfbWFsbG9jKHNrY29udGxlbik7CisJCQlpZiAoIXRtcGRhdCkKKwkJCQl7CisJCQkJT1BFTlNTTF9mcmVlKGRlcmxzdCk7CisJCQkJcmV0dXJuIDA7CisJCQkJfQogCQkJfQogCQl9CiAJLyogSWYgbm90IHNvcnRpbmcganVzdCBvdXRwdXQgZWFjaCBpdGVtICovCmRpZmYgLS1naXQgYS9jcnlwdG8vYXNuMS94X2NybC5jIGIvY3J5cHRvL2FzbjEveF9jcmwuYwppbmRleCBjNTFjNjkwLi4zZjAzZWZiIDEwMDY0NAotLS0gYS9jcnlwdG8vYXNuMS94X2NybC5jCisrKyBiL2NyeXB0by9hc24xL3hfY3JsLmMKQEAgLTI3MCw2ICsyNzAsNyBAQAogCQkJCXsKIAkJCQkvKiBXZSBoYW5kbGUgSURQIGFuZCBkZWx0YXMgKi8KIAkJCQlpZiAoKG5pZCA9PSBOSURfaXNzdWluZ19kaXN0cmlidXRpb25fcG9pbnQpCisJCQkJCXx8IChuaWQgPT0gTklEX2F1dGhvcml0eV9rZXlfaWRlbnRpZmllcikKIAkJCQkJfHwgKG5pZCA9PSBOSURfZGVsdGFfY3JsKSkKIAkJCQkJYnJlYWs7OwogCQkJCWNybC0+ZmxhZ3MgfD0gRVhGTEFHX0NSSVRJQ0FMOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2Jpby9iaW9fbGliLmMgYi9jcnlwdG8vYmlvL2Jpb19saWIuYwppbmRleCA5Yzk2NDZhLi40NzkzYTQ1IDEwMDY0NAotLS0gYS9jcnlwdG8vYmlvL2Jpb19saWIuYworKysgYi9jcnlwdG8vYmlvL2Jpb19saWIuYwpAQCAtMTMyLDggKzEzMiw4IEBACiAKIAlDUllQVE9fZnJlZV9leF9kYXRhKENSWVBUT19FWF9JTkRFWF9CSU8sIGEsICZhLT5leF9kYXRhKTsKIAotCWlmICgoYS0+bWV0aG9kID09IE5VTEwpIHx8IChhLT5tZXRob2QtPmRlc3Ryb3kgPT0gTlVMTCkpIHJldHVybigxKTsKLQlhLT5tZXRob2QtPmRlc3Ryb3koYSk7CisJaWYgKChhLT5tZXRob2QgIT0gTlVMTCkgJiYgKGEtPm1ldGhvZC0+ZGVzdHJveSAhPSBOVUxMKSkKKwkJYS0+bWV0aG9kLT5kZXN0cm95KGEpOwogCU9QRU5TU0xfZnJlZShhKTsKIAlyZXR1cm4oMSk7CiAJfQpkaWZmIC0tZ2l0IGEvY3J5cHRvL2JuL2FzbS94ODZfNjQtZ2NjLmMgYi9jcnlwdG8vYm4vYXNtL3g4Nl82NC1nY2MuYwppbmRleCAzMjk5NDZlLi42YmNmMzJmIDEwMDY0NAotLS0gYS9jcnlwdG8vYm4vYXNtL3g4Nl82NC1nY2MuYworKysgYi9jcnlwdG8vYm4vYXNtL3g4Nl82NC1nY2MuYwpAQCAtMTg5LDcgKzE4OSw3IEBACiAKIAlpZiAobiA8PSAwKSByZXR1cm4gMDsKIAotCWFzbSAoCisJYXNtIHZvbGF0aWxlICgKIAkiCXN1YnEJJTIsJTIJCVxuIgogCSIucDJhbGlnbiA0CQkJXG4iCiAJIjE6CW1vdnEJKCU0LCUyLDgpLCUwCVxuIgpAQCAtMjAwLDcgKzIwMCw3IEBACiAJIglzYmJxCSUwLCUwCQlcbiIKIAkJOiAiPSZhIihyZXQpLCIrYyIobiksIj0mciIoaSkKIAkJOiAiciIocnApLCJyIihhcCksInIiKGJwKQotCQk6ICJjYyIKKwkJOiAiY2MiLCAibWVtb3J5IgogCSk7CiAKICAgcmV0dXJuIHJldCYxOwpAQCAtMjEyLDcgKzIxMiw3IEBACiAKIAlpZiAobiA8PSAwKSByZXR1cm4gMDsKIAotCWFzbSAoCisJYXNtIHZvbGF0aWxlICgKIAkiCXN1YnEJJTIsJTIJCVxuIgogCSIucDJhbGlnbiA0CQkJXG4iCiAJIjE6CW1vdnEJKCU0LCUyLDgpLCUwCVxuIgpAQCAtMjIzLDcgKzIyMyw3IEBACiAJIglzYmJxCSUwLCUwCQlcbiIKIAkJOiAiPSZhIihyZXQpLCIrYyIobiksIj0mciIoaSkKIAkJOiAiciIocnApLCJyIihhcCksInIiKGJwKQotCQk6ICJjYyIKKwkJOiAiY2MiLCAibWVtb3J5IgogCSk7CiAKICAgcmV0dXJuIHJldCYxOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2JuL2JuX2V4cC5jIGIvY3J5cHRvL2JuL2JuX2V4cC5jCmluZGV4IDJhYmY2ZmQuLjYxMWZhMzIgMTAwNjQ0Ci0tLSBhL2NyeXB0by9ibi9ibl9leHAuYworKysgYi9jcnlwdG8vYm4vYm5fZXhwLmMKQEAgLTY4MCw3ICs2ODAsNyBAQAogCiAgICAgLyogRGVkaWNhdGVkIHdpbmRvdz09NCBjYXNlIGltcHJvdmVzIDUxMi1iaXQgUlNBIHNpZ24gYnkgfjE1JSwgYnV0IGFzCiAgICAgICogNTEyLWJpdCBSU0EgaXMgaGFyZGx5IHJlbGV2YW50LCB3ZSBvbWl0IGl0IHRvIHNwYXJlIHNpemUuLi4gKi8gCi0gICAgaWYgKHdpbmRvdz09NSkKKyAgICBpZiAod2luZG93PT01ICYmIHRvcD4xKQogCXsKIAl2b2lkIGJuX211bF9tb250X2dhdGhlcjUoQk5fVUxPTkcgKnJwLGNvbnN0IEJOX1VMT05HICphcCwKIAkJCWNvbnN0IHZvaWQgKnRhYmxlLGNvbnN0IEJOX1VMT05HICpucCwKQEAgLTg3NCw3ICs4NzQsMTQgQEAKIAliaXRzID0gQk5fbnVtX2JpdHMocCk7CiAJaWYgKGJpdHMgPT0gMCkKIAkJewotCQlyZXQgPSBCTl9vbmUocnIpOworCQkvKiB4KiowIG1vZCAxIGlzIHN0aWxsIHplcm8uICovCisJCWlmIChCTl9pc19vbmUobSkpCisJCQl7CisJCQlyZXQgPSAxOworCQkJQk5femVybyhycik7CisJCQl9CisJCWVsc2UKKwkJCXJldCA9IEJOX29uZShycik7CiAJCXJldHVybiByZXQ7CiAJCX0KIAlpZiAoYSA9PSAwKQpkaWZmIC0tZ2l0IGEvY3J5cHRvL2JuL2JuX2xpYi5jIGIvY3J5cHRvL2JuL2JuX2xpYi5jCmluZGV4IDU0NjFlNmUuLmQ1YTIxMWUgMTAwNjQ0Ci0tLSBhL2NyeXB0by9ibi9ibl9saWIuYworKysgYi9jcnlwdG8vYm4vYm5fbGliLmMKQEAgLTMyMCw2ICszMjAsMTUgQEAKIAkJQk5lcnIoQk5fRl9CTl9FWFBBTkRfSU5URVJOQUwsRVJSX1JfTUFMTE9DX0ZBSUxVUkUpOwogCQlyZXR1cm4oTlVMTCk7CiAJCX0KKyNpZmRlZiBQVVJJRlkKKwkvKiBWYWxncmluZCBjb21wbGFpbnMgaW4gQk5fY29uc3R0aW1lX3N3YXAgYmVjYXVzZSB3ZSBwcm9jZXNzIHRoZSB3aG9sZQorCSAqIGFycmF5IGV2ZW4gaWYgaXQncyBub3QgaW5pdGlhbGlzZWQgeWV0LiBUaGlzIGRvZXNuJ3QgbWF0dGVyIGluIHRoYXQKKwkgKiBmdW5jdGlvbiAtIHdoYXQncyBpbXBvcnRhbnQgaXMgY29uc3RhbnQgdGltZSBvcGVyYXRpb24gKHdlJ3JlIG5vdAorCSAqIGFjdHVhbGx5IGdvaW5nIHRvIHVzZSB0aGUgZGF0YSkKKwkqLworCW1lbXNldChhLCAwLCBzaXplb2YoQk5fVUxPTkcpKndvcmRzKTsKKyNlbmRpZgorCiAjaWYgMQogCUI9Yi0+ZDsKIAkvKiBDaGVjayBpZiB0aGUgcHJldmlvdXMgbnVtYmVyIG5lZWRzIHRvIGJlIGNvcGllZCAqLwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2JuL2JuX25pc3QuYyBiL2NyeXB0by9ibi9ibl9uaXN0LmMKaW5kZXggZTIyOTY4ZC4uYWJiMTU3MCAxMDA2NDQKLS0tIGEvY3J5cHRvL2JuL2JuX25pc3QuYworKysgYi9jcnlwdG8vYm4vYm5fbmlzdC5jCkBAIC0xMDg4LDkgKzEwODgsOSBAQAogCS8qIC4uLiBhbmQgcmlnaHQgc2hpZnQgKi8KIAlmb3IgKHZhbD10X2RbMF0saT0wOyBpPEJOX05JU1RfNTIxX1RPUC0xOyBpKyspCiAJCXsKLQkJdG1wID0gdmFsPj5CTl9OSVNUXzUyMV9SU0hJRlQ7Ci0JCXZhbCA9IHRfZFtpKzFdOwotCQl0X2RbaV0gPSAodG1wIHwgdmFsPDxCTl9OSVNUXzUyMV9MU0hJRlQpICYgQk5fTUFTSzI7CisJCXRfZFtpXSA9ICggdmFsPj5CTl9OSVNUXzUyMV9SU0hJRlQgfAorCQkJICAodG1wPXRfZFtpKzFdKTw8Qk5fTklTVF81MjFfTFNISUZUICkgJiBCTl9NQVNLMjsKKwkJdmFsPXRtcDsKIAkJfQogCXRfZFtpXSA9IHZhbD4+Qk5fTklTVF81MjFfUlNISUZUOwogCS8qIGxvd2VyIDUyMSBiaXRzICovCmRpZmYgLS1naXQgYS9jcnlwdG8vYm4vYm5fc3FyLmMgYi9jcnlwdG8vYm4vYm5fc3FyLmMKaW5kZXggMjcwZDBjZC4uNjViYmYxNiAxMDA2NDQKLS0tIGEvY3J5cHRvL2JuL2JuX3Nxci5jCisrKyBiL2NyeXB0by9ibi9ibl9zcXIuYwpAQCAtNzcsNiArNzcsNyBAQAogCWlmIChhbCA8PSAwKQogCQl7CiAJCXItPnRvcD0wOworCQlyLT5uZWcgPSAwOwogCQlyZXR1cm4gMTsKIAkJfQogCmRpZmYgLS1naXQgYS9jcnlwdG8vYm4vZXhwdGVzdC5jIGIvY3J5cHRvL2JuL2V4cHRlc3QuYwppbmRleCAwNzRhOGU4Li41ZmEwMmExIDEwMDY0NAotLS0gYS9jcnlwdG8vYm4vZXhwdGVzdC5jCisrKyBiL2NyeXB0by9ibi9leHB0ZXN0LmMKQEAgLTcxLDYgKzcxLDQzIEBACiAKIHN0YXRpYyBjb25zdCBjaGFyIHJuZF9zZWVkW10gPSAic3RyaW5nIHRvIG1ha2UgdGhlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yIHRoaW5rIGl0IGhhcyBlbnRyb3B5IjsKIAorLyogdGVzdF9leHBfbW9kX3plcm8gdGVzdHMgdGhhdCB4KiowIG1vZCAxID09IDAuIEl0IHJldHVybnMgemVybyBvbiBzdWNjZXNzLiAqLworc3RhdGljIGludCB0ZXN0X2V4cF9tb2RfemVybygpIHsKKwlCSUdOVU0gYSwgcCwgbTsKKwlCSUdOVU0gcjsKKwlCTl9DVFggKmN0eCA9IEJOX0NUWF9uZXcoKTsKKwlpbnQgcmV0ID0gMTsKKworCUJOX2luaXQoJm0pOworCUJOX29uZSgmbSk7CisKKwlCTl9pbml0KCZhKTsKKwlCTl9vbmUoJmEpOworCisJQk5faW5pdCgmcCk7CisJQk5femVybygmcCk7CisKKwlCTl9pbml0KCZyKTsKKwlCTl9tb2RfZXhwKCZyLCAmYSwgJnAsICZtLCBjdHgpOworCUJOX0NUWF9mcmVlKGN0eCk7CisKKwlpZiAoQk5faXNfemVybygmcikpCisJCXJldCA9IDA7CisJZWxzZQorCQl7CisJCXByaW50ZigiMSoqMCBtb2QgMSA9ICIpOworCQlCTl9wcmludF9mcChzdGRvdXQsICZyKTsKKwkJcHJpbnRmKCIsIHNob3VsZCBiZSAwXG4iKTsKKwkJfQorCisJQk5fZnJlZSgmcik7CisJQk5fZnJlZSgmYSk7CisJQk5fZnJlZSgmcCk7CisJQk5fZnJlZSgmbSk7CisKKwlyZXR1cm4gcmV0OworfQorCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCXsKIAlCTl9DVFggKmN0eDsKQEAgLTE5MCw3ICsyMjcsMTMgQEAKIAlFUlJfcmVtb3ZlX3RocmVhZF9zdGF0ZShOVUxMKTsKIAlDUllQVE9fbWVtX2xlYWtzKG91dCk7CiAJQklPX2ZyZWUob3V0KTsKLQlwcmludGYoIiBkb25lXG4iKTsKKwlwcmludGYoIlxuIik7CisKKwlpZiAodGVzdF9leHBfbW9kX3plcm8oKSAhPSAwKQorCQlnb3RvIGVycjsKKworCXByaW50ZigiZG9uZVxuIik7CisKIAlFWElUKDApOwogZXJyOgogCUVSUl9sb2FkX2NyeXB0b19zdHJpbmdzKCk7CmRpZmYgLS1naXQgYS9jcnlwdG8vY21zL2Ntc19wd3JpLmMgYi9jcnlwdG8vY21zL2Ntc19wd3JpLmMKaW5kZXggYjc5NjEyYS4uNzFmMmRkYiAxMDA2NDQKLS0tIGEvY3J5cHRvL2Ntcy9jbXNfcHdyaS5jCisrKyBiL2NyeXB0by9jbXMvY21zX3B3cmkuYwpAQCAtOTMsOSArOTMsMTAgQEAKIAlYNTA5X0FMR09SICplbmNhbGcgPSBOVUxMOwogCXVuc2lnbmVkIGNoYXIgaXZbRVZQX01BWF9JVl9MRU5HVEhdOwogCWludCBpdmxlbjsKKwogCWVudiA9IGNtc19nZXQwX2VudmVsb3BlZChjbXMpOwogCWlmICghZW52KQotCQlnb3RvIGVycjsKKwkJcmV0dXJuIE5VTEw7CiAKIAlpZiAod3JhcF9uaWQgPD0gMCkKIAkJd3JhcF9uaWQgPSBOSURfaWRfYWxnX1BXUklfS0VLOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2NvbmYvY29uZl9kZWYuYyBiL2NyeXB0by9jb25mL2NvbmZfZGVmLmMKaW5kZXggY2Y5NTEzMi4uZjBiMjc2OCAxMDA2NDQKLS0tIGEvY3J5cHRvL2NvbmYvY29uZl9kZWYuYworKysgYi9jcnlwdG8vY29uZi9jb25mX2RlZi5jCkBAIC0zMjEsNyArMzIxLDcgQEAKIAkJCXA9ZWF0X3dzKGNvbmYsIGVuZCk7CiAJCQlpZiAoKnAgIT0gJ10nKQogCQkJCXsKLQkJCQlpZiAoKnAgIT0gJ1wwJykKKwkJCQlpZiAoKnAgIT0gJ1wwJyAmJiBzcyAhPSBwKQogCQkJCQl7CiAJCQkJCXNzPXA7CiAJCQkJCWdvdG8gYWdhaW47CmRpZmYgLS1naXQgYS9jcnlwdG8vY29uc3RhbnRfdGltZV9sb2NsLmggYi9jcnlwdG8vY29uc3RhbnRfdGltZV9sb2NsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzA0ODM5MwotLS0gL2Rldi9udWxsCisrKyBiL2NyeXB0by9jb25zdGFudF90aW1lX2xvY2wuaApAQCAtMCwwICsxLDIxNiBAQAorLyogY3J5cHRvL2NvbnN0YW50X3RpbWVfbG9jbC5oICovCisvKgorICogVXRpbGl0aWVzIGZvciBjb25zdGFudC10aW1lIGNyeXB0b2dyYXBoeS4KKyAqCisgKiBBdXRob3I6IEVtaWxpYSBLYXNwZXIgKGVtaWxpYUBvcGVuc3NsLm9yZykKKyAqIEJhc2VkIG9uIHByZXZpb3VzIHdvcmsgYnkgQm9kbyBNb2VsbGVyLCBFbWlsaWEgS2FzcGVyLCBBZGFtIExhbmdsZXkKKyAqIChHb29nbGUpLgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIENvcHlyaWdodCAoYykgMjAxNCBUaGUgT3BlblNTTCBQcm9qZWN0LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorICogICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorICogICAgIlRoaXMgcHJvZHVjdCBpbmNsdWRlcyBjcnlwdG9ncmFwaGljIHNvZnR3YXJlIHdyaXR0ZW4gYnkKKyAqICAgICBFcmljIFlvdW5nIChlYXlAY3J5cHRzb2Z0LmNvbSkiCisgKiAgICBUaGUgd29yZCAnY3J5cHRvZ3JhcGhpYycgY2FuIGJlIGxlZnQgb3V0IGlmIHRoZSByb3VpbmVzIGZyb20gdGhlIGxpYnJhcnkKKyAqICAgIGJlaW5nIHVzZWQgYXJlIG5vdCBjcnlwdG9ncmFwaGljIHJlbGF0ZWQgOi0pLgorICogNC4gSWYgeW91IGluY2x1ZGUgYW55IFdpbmRvd3Mgc3BlY2lmaWMgY29kZSAob3IgYSBkZXJpdmF0aXZlIHRoZXJlb2YpIGZyb20KKyAqICAgIHRoZSBhcHBzIGRpcmVjdG9yeSAoYXBwbGljYXRpb24gY29kZSkgeW91IG11c3QgaW5jbHVkZSBhbiBhY2tub3dsZWRnZW1lbnQ6CisgKiAgICAiVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIHdyaXR0ZW4gYnkgVGltIEh1ZHNvbiAodGpoQGNyeXB0c29mdC5jb20pIgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgRVJJQyBZT1VORyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGUgbGljZW5jZSBhbmQgZGlzdHJpYnV0aW9uIHRlcm1zIGZvciBhbnkgcHVibGljYWxseSBhdmFpbGFibGUgdmVyc2lvbiBvcgorICogZGVyaXZhdGl2ZSBvZiB0aGlzIGNvZGUgY2Fubm90IGJlIGNoYW5nZWQuICBpLmUuIHRoaXMgY29kZSBjYW5ub3Qgc2ltcGx5IGJlCisgKiBjb3BpZWQgYW5kIHB1dCB1bmRlciBhbm90aGVyIGRpc3RyaWJ1dGlvbiBsaWNlbmNlCisgKiBbaW5jbHVkaW5nIHRoZSBHTlUgUHVibGljIExpY2VuY2UuXQorICovCisKKyNpZm5kZWYgSEVBREVSX0NPTlNUQU5UX1RJTUVfTE9DTF9ICisjZGVmaW5lIEhFQURFUl9DT05TVEFOVF9USU1FX0xPQ0xfSAorCisjaW5jbHVkZSAiZV9vcy5oIiAgLyogRm9yICdpbmxpbmUnICovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoKKyAqIFRoZSBib29sZWFuIG1ldGhvZHMgcmV0dXJuIGEgYml0bWFzayBvZiBhbGwgb25lcyAoMHhmZi4uLmYpIGZvciB0cnVlCisgKiBhbmQgMCBmb3IgZmFsc2UuIFRoaXMgaXMgdXNlZnVsIGZvciBjaG9vc2luZyBhIHZhbHVlIGJhc2VkIG9uIHRoZSByZXN1bHQKKyAqIG9mIGEgY29uZGl0aW9uYWwgaW4gY29uc3RhbnQgdGltZS4gRm9yIGV4YW1wbGUsCisgKgorICogaWYgKGEgPCBiKSB7CisgKiAgIGMgPSBhOworICogfSBlbHNlIHsKKyAqICAgYyA9IGI7CisgKiB9CisgKgorICogY2FuIGJlIHdyaXR0ZW4gYXMKKyAqCisgKiB1bnNpZ25lZCBpbnQgbHQgPSBjb25zdGFudF90aW1lX2x0KGEsIGIpOworICogYyA9IGNvbnN0YW50X3RpbWVfc2VsZWN0KGx0LCBhLCBiKTsKKyAqLworCisvKgorICogUmV0dXJucyB0aGUgZ2l2ZW4gdmFsdWUgd2l0aCB0aGUgTVNCIGNvcGllZCB0byBhbGwgdGhlIG90aGVyCisgKiBiaXRzLiBVc2VzIHRoZSBmYWN0IHRoYXQgYXJpdGhtZXRpYyBzaGlmdCBzaGlmdHMtaW4gdGhlIHNpZ24gYml0LgorICogSG93ZXZlciwgdGhpcyBpcyBub3QgZW5zdXJlZCBieSB0aGUgQyBzdGFuZGFyZCBzbyB5b3UgbWF5IG5lZWQgdG8KKyAqIHJlcGxhY2UgdGhpcyB3aXRoIHNvbWV0aGluZyBlbHNlIG9uIG9kZCBDUFVzLgorICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjb25zdGFudF90aW1lX21zYih1bnNpZ25lZCBpbnQgYSk7CisKKy8qCisgKiBSZXR1cm5zIDB4ZmYuLmYgaWYgYSA8IGIgYW5kIDAgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjb25zdGFudF90aW1lX2x0KHVuc2lnbmVkIGludCBhLCB1bnNpZ25lZCBpbnQgYik7CisvKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIGdldHRpbmcgYW4gOC1iaXQgbWFzay4gKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciBjb25zdGFudF90aW1lX2x0XzgodW5zaWduZWQgaW50IGEsIHVuc2lnbmVkIGludCBiKTsKKworLyoKKyAqIFJldHVybnMgMHhmZi4uZiBpZiBhID49IGIgYW5kIDAgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjb25zdGFudF90aW1lX2dlKHVuc2lnbmVkIGludCBhLCB1bnNpZ25lZCBpbnQgYik7CisvKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIGdldHRpbmcgYW4gOC1iaXQgbWFzay4gKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciBjb25zdGFudF90aW1lX2dlXzgodW5zaWduZWQgaW50IGEsIHVuc2lnbmVkIGludCBiKTsKKworLyoKKyAqIFJldHVybnMgMHhmZi4uZiBpZiBhID09IDAgYW5kIDAgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjb25zdGFudF90aW1lX2lzX3plcm8odW5zaWduZWQgaW50IGEpOworLyogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBnZXR0aW5nIGFuIDgtYml0IG1hc2suICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNoYXIgY29uc3RhbnRfdGltZV9pc196ZXJvXzgodW5zaWduZWQgaW50IGEpOworCisKKy8qCisgKiBSZXR1cm5zIDB4ZmYuLmYgaWYgYSA9PSBiIGFuZCAwIG90aGVyd2lzZS4KKyAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgY29uc3RhbnRfdGltZV9lcSh1bnNpZ25lZCBpbnQgYSwgdW5zaWduZWQgaW50IGIpOworLyogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBnZXR0aW5nIGFuIDgtYml0IG1hc2suICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNoYXIgY29uc3RhbnRfdGltZV9lcV84KHVuc2lnbmVkIGludCBhLCB1bnNpZ25lZCBpbnQgYik7CisvKiBTaWduZWQgaW50ZWdlcnMuICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjb25zdGFudF90aW1lX2VxX2ludChpbnQgYSwgaW50IGIpOworLyogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBnZXR0aW5nIGFuIDgtYml0IG1hc2suICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNoYXIgY29uc3RhbnRfdGltZV9lcV9pbnRfOChpbnQgYSwgaW50IGIpOworCisKKy8qCisgKiBSZXR1cm5zIChtYXNrICYgYSkgfCAofm1hc2sgJiBiKS4KKyAqCisgKiBXaGVuIHxtYXNrfCBpcyBhbGwgMXMgb3IgYWxsIDBzIChhcyByZXR1cm5lZCBieSB0aGUgbWV0aG9kcyBhYm92ZSksCisgKiB0aGUgc2VsZWN0IG1ldGhvZHMgcmV0dXJuIGVpdGhlciB8YXwgKGlmIHxtYXNrfCBpcyBub256ZXJvKSBvciB8YnwKKyAqIChpZiB8bWFza3wgaXMgemVybykuCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGNvbnN0YW50X3RpbWVfc2VsZWN0KHVuc2lnbmVkIGludCBtYXNrLAorCXVuc2lnbmVkIGludCBhLCB1bnNpZ25lZCBpbnQgYik7CisvKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIHVuc2lnbmVkIGNoYXJzLiAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBjaGFyIGNvbnN0YW50X3RpbWVfc2VsZWN0XzgodW5zaWduZWQgY2hhciBtYXNrLAorCXVuc2lnbmVkIGNoYXIgYSwgdW5zaWduZWQgY2hhciBiKTsKKy8qIENvbnZlbmllbmNlIG1ldGhvZCBmb3Igc2lnbmVkIGludGVnZXJzLiAqLworc3RhdGljIGlubGluZSBpbnQgY29uc3RhbnRfdGltZV9zZWxlY3RfaW50KHVuc2lnbmVkIGludCBtYXNrLCBpbnQgYSwgaW50IGIpOworCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjb25zdGFudF90aW1lX21zYih1bnNpZ25lZCBpbnQgYSkKKwl7CisJcmV0dXJuICh1bnNpZ25lZCBpbnQpKChpbnQpKGEpID4+IChzaXplb2YoaW50KSAqIDggLSAxKSk7CisJfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjb25zdGFudF90aW1lX2x0KHVuc2lnbmVkIGludCBhLCB1bnNpZ25lZCBpbnQgYikKKwl7CisJdW5zaWduZWQgaW50IGx0OworCS8qIENhc2UgMTogbXNiKGEpID09IG1zYihiKS4gYSA8IGIgaWZmIHRoZSBNU0Igb2YgYSAtIGIgaXMgc2V0LiovCisJbHQgPSB+KGEgXiBiKSAmIChhIC0gYik7CisJLyogQ2FzZSAyOiBtc2IoYSkgIT0gbXNiKGIpLiBhIDwgYiBpZmYgdGhlIE1TQiBvZiBiIGlzIHNldC4gKi8KKwlsdCB8PSB+YSAmIGI7CisJcmV0dXJuIGNvbnN0YW50X3RpbWVfbXNiKGx0KTsKKwl9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciBjb25zdGFudF90aW1lX2x0XzgodW5zaWduZWQgaW50IGEsIHVuc2lnbmVkIGludCBiKQorCXsKKwlyZXR1cm4gKHVuc2lnbmVkIGNoYXIpKGNvbnN0YW50X3RpbWVfbHQoYSwgYikpOworCX0KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgY29uc3RhbnRfdGltZV9nZSh1bnNpZ25lZCBpbnQgYSwgdW5zaWduZWQgaW50IGIpCisJeworCXVuc2lnbmVkIGludCBnZTsKKwkvKiBDYXNlIDE6IG1zYihhKSA9PSBtc2IoYikuIGEgPj0gYiBpZmYgdGhlIE1TQiBvZiBhIC0gYiBpcyBub3Qgc2V0LiovCisJZ2UgPSB+KChhIF4gYikgfCAoYSAtIGIpKTsKKwkvKiBDYXNlIDI6IG1zYihhKSAhPSBtc2IoYikuIGEgPj0gYiBpZmYgdGhlIE1TQiBvZiBhIGlzIHNldC4gKi8KKwlnZSB8PSBhICYgfmI7CisJcmV0dXJuIGNvbnN0YW50X3RpbWVfbXNiKGdlKTsKKwl9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciBjb25zdGFudF90aW1lX2dlXzgodW5zaWduZWQgaW50IGEsIHVuc2lnbmVkIGludCBiKQorCXsKKwlyZXR1cm4gKHVuc2lnbmVkIGNoYXIpKGNvbnN0YW50X3RpbWVfZ2UoYSwgYikpOworCX0KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgY29uc3RhbnRfdGltZV9pc196ZXJvKHVuc2lnbmVkIGludCBhKQorCXsKKwlyZXR1cm4gY29uc3RhbnRfdGltZV9tc2IofmEgJiAoYSAtIDEpKTsKKwl9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciBjb25zdGFudF90aW1lX2lzX3plcm9fOCh1bnNpZ25lZCBpbnQgYSkKKwl7CisJcmV0dXJuICh1bnNpZ25lZCBjaGFyKShjb25zdGFudF90aW1lX2lzX3plcm8oYSkpOworCX0KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgY29uc3RhbnRfdGltZV9lcSh1bnNpZ25lZCBpbnQgYSwgdW5zaWduZWQgaW50IGIpCisJeworCXJldHVybiBjb25zdGFudF90aW1lX2lzX3plcm8oYSBeIGIpOworCX0KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBjaGFyIGNvbnN0YW50X3RpbWVfZXFfOCh1bnNpZ25lZCBpbnQgYSwgdW5zaWduZWQgaW50IGIpCisJeworCXJldHVybiAodW5zaWduZWQgY2hhcikoY29uc3RhbnRfdGltZV9lcShhLCBiKSk7CisJfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjb25zdGFudF90aW1lX2VxX2ludChpbnQgYSwgaW50IGIpCisJeworCXJldHVybiBjb25zdGFudF90aW1lX2VxKCh1bnNpZ25lZCkoYSksICh1bnNpZ25lZCkoYikpOworCX0KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBjaGFyIGNvbnN0YW50X3RpbWVfZXFfaW50XzgoaW50IGEsIGludCBiKQorCXsKKwlyZXR1cm4gY29uc3RhbnRfdGltZV9lcV84KCh1bnNpZ25lZCkoYSksICh1bnNpZ25lZCkoYikpOworCX0KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgY29uc3RhbnRfdGltZV9zZWxlY3QodW5zaWduZWQgaW50IG1hc2ssCisJdW5zaWduZWQgaW50IGEsIHVuc2lnbmVkIGludCBiKQorCXsKKwlyZXR1cm4gKG1hc2sgJiBhKSB8ICh+bWFzayAmIGIpOworCX0KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBjaGFyIGNvbnN0YW50X3RpbWVfc2VsZWN0XzgodW5zaWduZWQgY2hhciBtYXNrLAorCXVuc2lnbmVkIGNoYXIgYSwgdW5zaWduZWQgY2hhciBiKQorCXsKKwlyZXR1cm4gKHVuc2lnbmVkIGNoYXIpKGNvbnN0YW50X3RpbWVfc2VsZWN0KG1hc2ssIGEsIGIpKTsKKwl9CisKK2lubGluZSBpbnQgY29uc3RhbnRfdGltZV9zZWxlY3RfaW50KHVuc2lnbmVkIGludCBtYXNrLCBpbnQgYSwgaW50IGIpCisJeworCXJldHVybiAoaW50KShjb25zdGFudF90aW1lX3NlbGVjdChtYXNrLCAodW5zaWduZWQpKGEpLCAodW5zaWduZWQpKGIpKSk7CisJfQorCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgIC8qIEhFQURFUl9DT05TVEFOVF9USU1FX0xPQ0xfSCAqLwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2RzYS9kc2FfYW1ldGguYyBiL2NyeXB0by9kc2EvZHNhX2FtZXRoLmMKaW5kZXggMzc2MTU2ZS4uNWFmNzZlYSAxMDA2NDQKLS0tIGEvY3J5cHRvL2RzYS9kc2FfYW1ldGguYworKysgYi9jcnlwdG8vZHNhL2RzYV9hbWV0aC5jCkBAIC0zMDcsNiArMzA3LDEyIEBACiAJdW5zaWduZWQgY2hhciAqZHAgPSBOVUxMOwogCWludCBkcGxlbjsKIAorCWlmICghcGtleS0+cGtleS5kc2EgfHwgIXBrZXktPnBrZXkuZHNhLT5wcml2X2tleSkKKwkJeworCQlEU0FlcnIoRFNBX0ZfRFNBX1BSSVZfRU5DT0RFLERTQV9SX01JU1NJTkdfUEFSQU1FVEVSUyk7CisJCWdvdG8gZXJyOworCQl9CisKIAlwYXJhbXMgPSBBU04xX1NUUklOR19uZXcoKTsKIAogCWlmICghcGFyYW1zKQpAQCAtNzAxLDQgKzcwNywzIEBACiAJCW9sZF9kc2FfcHJpdl9lbmNvZGUKIAkJfQogCX07Ci0KZGlmZiAtLWdpdCBhL2NyeXB0by9lYmNkaWMuaCBiL2NyeXB0by9lYmNkaWMuaAppbmRleCA2ZDY1YWZjLi44NWYzY2Y3IDEwMDY0NAotLS0gYS9jcnlwdG8vZWJjZGljLmgKKysrIGIvY3J5cHRvL2ViY2RpYy5oCkBAIC01LDYgKzUsMTAgQEAKIAogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogCisjaWZkZWYgIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCiAvKiBBdm9pZCBuYW1lIGNsYXNoZXMgd2l0aCBvdGhlciBhcHBsaWNhdGlvbnMgKi8KICNkZWZpbmUgb3NfdG9hc2NpaSAgIF9vcGVuc3NsX29zX3RvYXNjaWkKICNkZWZpbmUgb3NfdG9lYmNkaWMgIF9vcGVuc3NsX29zX3RvZWJjZGljCkBAIC0xNiw0ICsyMCw3IEBACiB2b2lkICplYmNkaWMyYXNjaWkodm9pZCAqZGVzdCwgY29uc3Qgdm9pZCAqc3JjZSwgc2l6ZV90IGNvdW50KTsKIHZvaWQgKmFzY2lpMmViY2RpYyh2b2lkICpkZXN0LCBjb25zdCB2b2lkICpzcmNlLCBzaXplX3QgY291bnQpOwogCisjaWZkZWYgIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvY3J5cHRvL2VjL2VjLmggYi9jcnlwdG8vZWMvZWMuaAppbmRleCBkMDA4YTBkLi5iNmU3NDViIDEwMDY0NAotLS0gYS9jcnlwdG8vZWMvZWMuaAorKysgYi9jcnlwdG8vZWMvZWMuaApAQCAtNjI5LDcgKzYyOSw3IEBACiBpbnQgRUNfUE9JTlRfbWFrZV9hZmZpbmUoY29uc3QgRUNfR1JPVVAgKmdyb3VwLCBFQ19QT0lOVCAqcG9pbnQsIEJOX0NUWCAqY3R4KTsKIGludCBFQ19QT0lOVHNfbWFrZV9hZmZpbmUoY29uc3QgRUNfR1JPVVAgKmdyb3VwLCBzaXplX3QgbnVtLCBFQ19QT0lOVCAqcG9pbnRzW10sIEJOX0NUWCAqY3R4KTsKIAotLyoqIENvbXB1dGVzIHIgPSBnZW5lcmF0b3IgKiBuIHN1bV97aT0wfV5udW0gcFtpXSAqIG1baV0KKy8qKiBDb21wdXRlcyByID0gZ2VuZXJhdG9yICogbiBzdW1fe2k9MH1ee251bS0xfSBwW2ldICogbVtpXQogICogIFxwYXJhbSAgZ3JvdXAgIHVuZGVybHlpbmcgRUNfR1JPVVAgb2JqZWN0CiAgKiAgXHBhcmFtICByICAgICAgRUNfUE9JTlQgb2JqZWN0IGZvciB0aGUgcmVzdWx0CiAgKiAgXHBhcmFtICBuICAgICAgQklHTlVNIHdpdGggdGhlIG11bHRpcGxpZXIgZm9yIHRoZSBncm91cCBnZW5lcmF0b3IgKG9wdGlvbmFsKQpkaWZmIC0tZ2l0IGEvY3J5cHRvL2VjL2VjMl9zbXBsLmMgYi9jcnlwdG8vZWMvZWMyX3NtcGwuYwppbmRleCBlMGU1OWM3Li42MjIyM2NiIDEwMDY0NAotLS0gYS9jcnlwdG8vZWMvZWMyX3NtcGwuYworKysgYi9jcnlwdG8vZWMvZWMyX3NtcGwuYwpAQCAtODAsOSArODAsNiBAQAogCiBjb25zdCBFQ19NRVRIT0QgKkVDX0dGMm1fc2ltcGxlX21ldGhvZCh2b2lkKQogCXsKLSNpZmRlZiBPUEVOU1NMX0ZJUFMKLQlyZXR1cm4gZmlwc19lY19nZjJtX3NpbXBsZV9tZXRob2QoKTsKLSNlbHNlCiAJc3RhdGljIGNvbnN0IEVDX01FVEhPRCByZXQgPSB7CiAJCUVDX0ZMQUdTX0RFRkFVTFRfT0NULAogCQlOSURfWDlfNjJfY2hhcmFjdGVyaXN0aWNfdHdvX2ZpZWxkLApAQCAtMTI1LDggKzEyMiwxMiBAQAogCQkwIC8qIGZpZWxkX2RlY29kZSAqLywKIAkJMCAvKiBmaWVsZF9zZXRfdG9fb25lICovIH07CiAKLQlyZXR1cm4gJnJldDsKKyNpZmRlZiBPUEVOU1NMX0ZJUFMKKwlpZiAoRklQU19tb2RlKCkpCisJCXJldHVybiBmaXBzX2VjX2dmMm1fc2ltcGxlX21ldGhvZCgpOwogI2VuZGlmCisKKwlyZXR1cm4gJnJldDsKIAl9CiAKIApkaWZmIC0tZ2l0IGEvY3J5cHRvL2VjL2VjX2FtZXRoLmMgYi9jcnlwdG8vZWMvZWNfYW1ldGguYwppbmRleCBmNzE1YTIzLi4xMTI4Mzc2IDEwMDY0NAotLS0gYS9jcnlwdG8vZWMvZWNfYW1ldGguYworKysgYi9jcnlwdG8vZWMvZWNfYW1ldGguYwpAQCAtNDUzLDE0ICs0NTMsMTYgQEAKIAlpZiAoa3R5cGUgPiAwKQogCQl7CiAJCXB1YmxpY19rZXkgPSBFQ19LRVlfZ2V0MF9wdWJsaWNfa2V5KHgpOwotCQlpZiAoKHB1Yl9rZXkgPSBFQ19QT0lOVF9wb2ludDJibihncm91cCwgcHVibGljX2tleSwKLQkJCUVDX0tFWV9nZXRfY29udl9mb3JtKHgpLCBOVUxMLCBjdHgpKSA9PSBOVUxMKQorCQlpZiAocHVibGljX2tleSAhPSBOVUxMKQogCQkJewotCQkJcmVhc29uID0gRVJSX1JfRUNfTElCOwotCQkJZ290byBlcnI7Ci0JCQl9Ci0JCWlmIChwdWJfa2V5KQorCQkJaWYgKChwdWJfa2V5ID0gRUNfUE9JTlRfcG9pbnQyYm4oZ3JvdXAsIHB1YmxpY19rZXksCisJCQkJRUNfS0VZX2dldF9jb252X2Zvcm0oeCksIE5VTEwsIGN0eCkpID09IE5VTEwpCisJCQkJeworCQkJCXJlYXNvbiA9IEVSUl9SX0VDX0xJQjsKKwkJCQlnb3RvIGVycjsKKwkJCQl9CiAJCQlidWZfbGVuID0gKHNpemVfdClCTl9udW1fYnl0ZXMocHViX2tleSk7CisJCQl9CiAJCX0KIAogCWlmIChrdHlwZSA9PSAyKQpkaWZmIC0tZ2l0IGEvY3J5cHRvL2VjL2VjX2FzbjEuYyBiL2NyeXB0by9lYy9lY19hc24xLmMKaW5kZXggZTk0ZjM0ZS4uNTJkMzFjMiAxMDA2NDQKLS0tIGEvY3J5cHRvL2VjL2VjX2FzbjEuYworKysgYi9jcnlwdG8vZWMvZWNfYXNuMS5jCkBAIC0xMTgzLDMwICsxMTgzLDQ3IEBACiAJCWdvdG8gZXJyOwogCQl9CiAKKwlpZiAocmV0LT5wdWJfa2V5KQorCQlFQ19QT0lOVF9jbGVhcl9mcmVlKHJldC0+cHViX2tleSk7CisJcmV0LT5wdWJfa2V5ID0gRUNfUE9JTlRfbmV3KHJldC0+Z3JvdXApOworCWlmIChyZXQtPnB1Yl9rZXkgPT0gTlVMTCkKKwkJeworCQlFQ2VycihFQ19GX0QySV9FQ1BSSVZBVEVLRVksIEVSUl9SX0VDX0xJQik7CisJCWdvdG8gZXJyOworCQl9CisKIAlpZiAocHJpdl9rZXktPnB1YmxpY0tleSkKIAkJewogCQljb25zdCB1bnNpZ25lZCBjaGFyICpwdWJfb2N0OwotCQlzaXplX3QgcHViX29jdF9sZW47CisJCWludCBwdWJfb2N0X2xlbjsKIAotCQlpZiAocmV0LT5wdWJfa2V5KQotCQkJRUNfUE9JTlRfY2xlYXJfZnJlZShyZXQtPnB1Yl9rZXkpOwotCQlyZXQtPnB1Yl9rZXkgPSBFQ19QT0lOVF9uZXcocmV0LT5ncm91cCk7Ci0JCWlmIChyZXQtPnB1Yl9rZXkgPT0gTlVMTCkKLQkJCXsKLQkJCUVDZXJyKEVDX0ZfRDJJX0VDUFJJVkFURUtFWSwgRVJSX1JfRUNfTElCKTsKLQkJCWdvdG8gZXJyOwotCQkJfQogCQlwdWJfb2N0ICAgICA9IE1fQVNOMV9TVFJJTkdfZGF0YShwcml2X2tleS0+cHVibGljS2V5KTsKIAkJcHViX29jdF9sZW4gPSBNX0FTTjFfU1RSSU5HX2xlbmd0aChwcml2X2tleS0+cHVibGljS2V5KTsKLQkJLyogc2F2ZSB0aGUgcG9pbnQgY29udmVyc2lvbiBmb3JtICovCisJCS8qIFRoZSBmaXJzdCBieXRlIC0gcG9pbnQgY29udmVyc2lvbiBmb3JtIC0gbXVzdCBiZSBwcmVzZW50LiAqLworICAgICAgICAgICAgICAgIGlmIChwdWJfb2N0X2xlbiA8PSAwKQorCQkJeworCQkJRUNlcnIoRUNfRl9EMklfRUNQUklWQVRFS0VZLCBFQ19SX0JVRkZFUl9UT09fU01BTEwpOworCQkJZ290byBlcnI7CisJCQl9CisJCS8qIFNhdmUgdGhlIHBvaW50IGNvbnZlcnNpb24gZm9ybS4gKi8KIAkJcmV0LT5jb252X2Zvcm0gPSAocG9pbnRfY29udmVyc2lvbl9mb3JtX3QpKHB1Yl9vY3RbMF0gJiB+MHgwMSk7CiAJCWlmICghRUNfUE9JTlRfb2N0MnBvaW50KHJldC0+Z3JvdXAsIHJldC0+cHViX2tleSwKLQkJCXB1Yl9vY3QsIHB1Yl9vY3RfbGVuLCBOVUxMKSkKKwkJCQkJcHViX29jdCwgKHNpemVfdCkocHViX29jdF9sZW4pLCBOVUxMKSkKIAkJCXsKIAkJCUVDZXJyKEVDX0ZfRDJJX0VDUFJJVkFURUtFWSwgRVJSX1JfRUNfTElCKTsKIAkJCWdvdG8gZXJyOwogCQkJfQogCQl9CisJZWxzZQorCQl7CisJCWlmICghRUNfUE9JTlRfbXVsKHJldC0+Z3JvdXAsIHJldC0+cHViX2tleSwgcmV0LT5wcml2X2tleSwgTlVMTCwgTlVMTCwgTlVMTCkpCisJCQl7CisJCQlFQ2VycihFQ19GX0QySV9FQ1BSSVZBVEVLRVksIEVSUl9SX0VDX0xJQik7CisJCQlnb3RvIGVycjsKKwkJCX0KKwkJLyogUmVtZW1iZXIgdGhlIG9yaWdpbmFsIHByaXZhdGUta2V5LW9ubHkgZW5jb2RpbmcuICovCisJCXJldC0+ZW5jX2ZsYWcgfD0gRUNfUEtFWV9OT19QVUJLRVk7CisJCX0KIAogCW9rID0gMTsKIGVycjoKQEAgLTEyMzAsNyArMTI0Nyw4IEBACiAJc2l6ZV90ICAgICAgICAgIGJ1Zl9sZW49MCwgdG1wX2xlbjsKIAlFQ19QUklWQVRFS0VZICAgKnByaXZfa2V5PU5VTEw7CiAKLQlpZiAoYSA9PSBOVUxMIHx8IGEtPmdyb3VwID09IE5VTEwgfHwgYS0+cHJpdl9rZXkgPT0gTlVMTCkKKwlpZiAoYSA9PSBOVUxMIHx8IGEtPmdyb3VwID09IE5VTEwgfHwgYS0+cHJpdl9rZXkgPT0gTlVMTCB8fAorCSAgICAoIShhLT5lbmNfZmxhZyAmIEVDX1BLRVlfTk9fUFVCS0VZKSAmJiBhLT5wdWJfa2V5ID09IE5VTEwpKQogCQl7CiAJCUVDZXJyKEVDX0ZfSTJEX0VDUFJJVkFURUtFWSwKICAgICAgICAgICAgICAgICAgICAgICBFUlJfUl9QQVNTRURfTlVMTF9QQVJBTUVURVIpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2VjL2VjX2xpYi5jIGIvY3J5cHRvL2VjL2VjX2xpYi5jCmluZGV4IGRlOWEwY2MuLmUyYzQ3NDEgMTAwNjQ0Ci0tLSBhL2NyeXB0by9lYy9lY19saWIuYworKysgYi9jcnlwdG8vZWMvZWNfbGliLmMKQEAgLTk0Miw3ICs5NDIsNyBAQAogCiBpbnQgRUNfUE9JTlRfaW52ZXJ0KGNvbnN0IEVDX0dST1VQICpncm91cCwgRUNfUE9JTlQgKmEsIEJOX0NUWCAqY3R4KQogCXsKLQlpZiAoZ3JvdXAtPm1ldGgtPmRibCA9PSAwKQorCWlmIChncm91cC0+bWV0aC0+aW52ZXJ0ID09IDApCiAJCXsKIAkJRUNlcnIoRUNfRl9FQ19QT0lOVF9JTlZFUlQsIEVSUl9SX1NIT1VMRF9OT1RfSEFWRV9CRUVOX0NBTExFRCk7CiAJCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2VjL2VjcF9tb250LmMgYi9jcnlwdG8vZWMvZWNwX21vbnQuYwppbmRleCBmMDRmMTMyLi4zYzVlYzE5IDEwMDY0NAotLS0gYS9jcnlwdG8vZWMvZWNwX21vbnQuYworKysgYi9jcnlwdG8vZWMvZWNwX21vbnQuYwpAQCAtNzIsOSArNzIsNiBAQAogCiBjb25zdCBFQ19NRVRIT0QgKkVDX0dGcF9tb250X21ldGhvZCh2b2lkKQogCXsKLSNpZmRlZiBPUEVOU1NMX0ZJUFMKLQlyZXR1cm4gZmlwc19lY19nZnBfbW9udF9tZXRob2QoKTsKLSNlbHNlCiAJc3RhdGljIGNvbnN0IEVDX01FVEhPRCByZXQgPSB7CiAJCUVDX0ZMQUdTX0RFRkFVTFRfT0NULAogCQlOSURfWDlfNjJfcHJpbWVfZmllbGQsCkBAIC0xMTQsOCArMTExLDEyIEBACiAJCWVjX0dGcF9tb250X2ZpZWxkX2RlY29kZSwKIAkJZWNfR0ZwX21vbnRfZmllbGRfc2V0X3RvX29uZSB9OwogCi0JcmV0dXJuICZyZXQ7CisjaWZkZWYgT1BFTlNTTF9GSVBTCisJaWYgKEZJUFNfbW9kZSgpKQorCQlyZXR1cm4gZmlwc19lY19nZnBfbW9udF9tZXRob2QoKTsKICNlbmRpZgorCisJcmV0dXJuICZyZXQ7CiAJfQogCiAKZGlmZiAtLWdpdCBhL2NyeXB0by9lYy9lY3BfbmlzdC5jIGIvY3J5cHRvL2VjL2VjcF9uaXN0LmMKaW5kZXggYWFkMmQ1Zi4uZGIzYjk5ZSAxMDA2NDQKLS0tIGEvY3J5cHRvL2VjL2VjcF9uaXN0LmMKKysrIGIvY3J5cHRvL2VjL2VjcF9uaXN0LmMKQEAgLTczLDkgKzczLDYgQEAKIAogY29uc3QgRUNfTUVUSE9EICpFQ19HRnBfbmlzdF9tZXRob2Qodm9pZCkKIAl7Ci0jaWZkZWYgT1BFTlNTTF9GSVBTCi0JcmV0dXJuIGZpcHNfZWNfZ2ZwX25pc3RfbWV0aG9kKCk7Ci0jZWxzZQogCXN0YXRpYyBjb25zdCBFQ19NRVRIT0QgcmV0ID0gewogCQlFQ19GTEFHU19ERUZBVUxUX09DVCwKIAkJTklEX1g5XzYyX3ByaW1lX2ZpZWxkLApAQCAtMTE1LDggKzExMiwxMiBAQAogCQkwIC8qIGZpZWxkX2RlY29kZSAqLywKIAkJMCAvKiBmaWVsZF9zZXRfdG9fb25lICovIH07CiAKLQlyZXR1cm4gJnJldDsKKyNpZmRlZiBPUEVOU1NMX0ZJUFMKKwlpZiAoRklQU19tb2RlKCkpCisJCXJldHVybiBmaXBzX2VjX2dmcF9uaXN0X21ldGhvZCgpOwogI2VuZGlmCisKKwlyZXR1cm4gJnJldDsKIAl9CiAKIGludCBlY19HRnBfbmlzdF9ncm91cF9jb3B5KEVDX0dST1VQICpkZXN0LCBjb25zdCBFQ19HUk9VUCAqc3JjKQpkaWZmIC0tZ2l0IGEvY3J5cHRvL2VjL2VjcF9zbXBsLmMgYi9jcnlwdG8vZWMvZWNwX3NtcGwuYwppbmRleCA3Y2JiMzIxLi4yZDFmMzU3IDEwMDY0NAotLS0gYS9jcnlwdG8vZWMvZWNwX3NtcGwuYworKysgYi9jcnlwdG8vZWMvZWNwX3NtcGwuYwpAQCAtNzMsOSArNzMsNiBAQAogCiBjb25zdCBFQ19NRVRIT0QgKkVDX0dGcF9zaW1wbGVfbWV0aG9kKHZvaWQpCiAJewotI2lmZGVmIE9QRU5TU0xfRklQUwotCXJldHVybiBmaXBzX2VjX2dmcF9zaW1wbGVfbWV0aG9kKCk7Ci0jZWxzZQogCXN0YXRpYyBjb25zdCBFQ19NRVRIT0QgcmV0ID0gewogCQlFQ19GTEFHU19ERUZBVUxUX09DVCwKIAkJTklEX1g5XzYyX3ByaW1lX2ZpZWxkLApAQCAtMTE1LDggKzExMiwxMiBAQAogCQkwIC8qIGZpZWxkX2RlY29kZSAqLywKIAkJMCAvKiBmaWVsZF9zZXRfdG9fb25lICovIH07CiAKLQlyZXR1cm4gJnJldDsKKyNpZmRlZiBPUEVOU1NMX0ZJUFMKKwlpZiAoRklQU19tb2RlKCkpCisJCXJldHVybiBmaXBzX2VjX2dmcF9zaW1wbGVfbWV0aG9kKCk7CiAjZW5kaWYKKworCXJldHVybiAmcmV0OwogCX0KIAogCkBAIC0xMTgxLDkgKzExODIsOCBAQAogaW50IGVjX0dGcF9zaW1wbGVfcG9pbnRzX21ha2VfYWZmaW5lKGNvbnN0IEVDX0dST1VQICpncm91cCwgc2l6ZV90IG51bSwgRUNfUE9JTlQgKnBvaW50c1tdLCBCTl9DVFggKmN0eCkKIAl7CiAJQk5fQ1RYICpuZXdfY3R4ID0gTlVMTDsKLQlCSUdOVU0gKnRtcDAsICp0bXAxOwotCXNpemVfdCBwb3cyID0gMDsKLQlCSUdOVU0gKipoZWFwID0gTlVMTDsKKwlCSUdOVU0gKnRtcCwgKnRtcF9aOworCUJJR05VTSAqKnByb2RfWiA9IE5VTEw7CiAJc2l6ZV90IGk7CiAJaW50IHJldCA9IDA7CiAKQEAgLTExOTgsMTI0ICsxMTk4LDEwNCBAQAogCQl9CiAKIAlCTl9DVFhfc3RhcnQoY3R4KTsKLQl0bXAwID0gQk5fQ1RYX2dldChjdHgpOwotCXRtcDEgPSBCTl9DVFhfZ2V0KGN0eCk7Ci0JaWYgKHRtcDAgID09IE5VTEwgfHwgdG1wMSA9PSBOVUxMKSBnb3RvIGVycjsKKwl0bXAgPSBCTl9DVFhfZ2V0KGN0eCk7CisJdG1wX1ogPSBCTl9DVFhfZ2V0KGN0eCk7CisJaWYgKHRtcCA9PSBOVUxMIHx8IHRtcF9aID09IE5VTEwpIGdvdG8gZXJyOwogCi0JLyogQmVmb3JlIGNvbnZlcnRpbmcgdGhlIGluZGl2aWR1YWwgcG9pbnRzLCBjb21wdXRlIGludmVyc2VzIG9mIGFsbCBaIHZhbHVlcy4KLQkgKiBNb2R1bGFyIGludmVyc2lvbiBpcyByYXRoZXIgc2xvdywgYnV0IGx1Y2tpbHkgd2UgY2FuIGRvIHdpdGggYSBzaW5nbGUKLQkgKiBleHBsaWNpdCBpbnZlcnNpb24sIHBsdXMgYWJvdXQgMyBtdWx0aXBsaWNhdGlvbnMgcGVyIGlucHV0IHZhbHVlLgotCSAqLwotCi0JcG93MiA9IDE7Ci0Jd2hpbGUgKG51bSA+IHBvdzIpCi0JCXBvdzIgPDw9IDE7Ci0JLyogTm93IHBvdzIgaXMgdGhlIHNtYWxsZXN0IHBvd2VyIG9mIDIgc2F0aWZzeWluZyBwb3cyID49IG51bS4KLQkgKiBXZSBuZWVkIHR3aWNlIHRoYXQuICovCi0JcG93MiA8PD0gMTsKLQotCWhlYXAgPSBPUEVOU1NMX21hbGxvYyhwb3cyICogc2l6ZW9mIGhlYXBbMF0pOwotCWlmIChoZWFwID09IE5VTEwpIGdvdG8gZXJyOwotCQotCS8qIFRoZSBhcnJheSBpcyB1c2VkIGFzIGEgYmluYXJ5IHRyZWUsIGV4YWN0bHkgYXMgaW4gaGVhcHNvcnQ6Ci0JICoKLQkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFwWzFdCi0JICogICAgICAgICAgICAgICAgIGhlYXBbMl0gICAgICAgICAgICAgICAgICAgICBoZWFwWzNdCi0JICogICAgICAgICAgaGVhcFs0XSAgICAgICBoZWFwWzVdICAgICAgIGhlYXBbNl0gICAgICAgaGVhcFs3XQotCSAqICAgaGVhcFs4XWhlYXBbOV0gaGVhcFsxMF1oZWFwWzExXSBoZWFwWzEyXWhlYXBbMTNdIGhlYXBbMTRdIGhlYXBbMTVdCi0JICoKLQkgKiBXZSBwdXQgdGhlIFoncyBpbiB0aGUgbGFzdCBsaW5lOwotCSAqIHRoZW4gd2Ugc2V0IGVhY2ggb3RoZXIgbm9kZSB0byB0aGUgcHJvZHVjdCBvZiBpdHMgdHdvIGNoaWxkLW5vZGVzICh3aGVyZQotCSAqIGVtcHR5IG9yIDAgZW50cmllcyBhcmUgdHJlYXRlZCBhcyBvbmVzKTsKLQkgKiB0aGVuIHdlIGludmVydCBoZWFwWzFdOwotCSAqIHRoZW4gd2UgaW52ZXJ0IGVhY2ggb3RoZXIgbm9kZSBieSByZXBsYWNpbmcgaXQgYnkgdGhlIHByb2R1Y3Qgb2YgaXRzCi0JICogcGFyZW50IChhZnRlciBpbnZlcnNpb24pIGFuZCBpdHMgc2libGluZyAoYmVmb3JlIGludmVyc2lvbikuCi0JICovCi0JaGVhcFswXSA9IE5VTEw7Ci0JZm9yIChpID0gcG93Mi8yIC0gMTsgaSA+IDA7IGktLSkKLQkJaGVhcFtpXSA9IE5VTEw7CisJcHJvZF9aID0gT1BFTlNTTF9tYWxsb2MobnVtICogc2l6ZW9mIHByb2RfWlswXSk7CisJaWYgKHByb2RfWiA9PSBOVUxMKSBnb3RvIGVycjsKIAlmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspCi0JCWhlYXBbcG93Mi8yICsgaV0gPSAmcG9pbnRzW2ldLT5aOwotCWZvciAoaSA9IHBvdzIvMiArIG51bTsgaSA8IHBvdzI7IGkrKykKLQkJaGVhcFtpXSA9IE5VTEw7Ci0JCi0JLyogc2V0IGVhY2ggbm9kZSB0byB0aGUgcHJvZHVjdCBvZiBpdHMgY2hpbGRyZW4gKi8KLQlmb3IgKGkgPSBwb3cyLzIgLSAxOyBpID4gMDsgaS0tKQogCQl7Ci0JCWhlYXBbaV0gPSBCTl9uZXcoKTsKLQkJaWYgKGhlYXBbaV0gPT0gTlVMTCkgZ290byBlcnI7Ci0JCQotCQlpZiAoaGVhcFsyKmldICE9IE5VTEwpCi0JCQl7Ci0JCQlpZiAoKGhlYXBbMippICsgMV0gPT0gTlVMTCkgfHwgQk5faXNfemVybyhoZWFwWzIqaSArIDFdKSkKLQkJCQl7Ci0JCQkJaWYgKCFCTl9jb3B5KGhlYXBbaV0sIGhlYXBbMippXSkpIGdvdG8gZXJyOwotCQkJCX0KLQkJCWVsc2UKLQkJCQl7Ci0JCQkJaWYgKEJOX2lzX3plcm8oaGVhcFsyKmldKSkKLQkJCQkJewotCQkJCQlpZiAoIUJOX2NvcHkoaGVhcFtpXSwgaGVhcFsyKmkgKyAxXSkpIGdvdG8gZXJyOwotCQkJCQl9Ci0JCQkJZWxzZQotCQkJCQl7Ci0JCQkJCWlmICghZ3JvdXAtPm1ldGgtPmZpZWxkX211bChncm91cCwgaGVhcFtpXSwKLQkJCQkJCWhlYXBbMippXSwgaGVhcFsyKmkgKyAxXSwgY3R4KSkgZ290byBlcnI7Ci0JCQkJCX0KLQkJCQl9Ci0JCQl9CisJCXByb2RfWltpXSA9IEJOX25ldygpOworCQlpZiAocHJvZF9aW2ldID09IE5VTEwpIGdvdG8gZXJyOwogCQl9CiAKLQkvKiBpbnZlcnQgaGVhcFsxXSAqLwotCWlmICghQk5faXNfemVybyhoZWFwWzFdKSkKLQkJewotCQlpZiAoIUJOX21vZF9pbnZlcnNlKGhlYXBbMV0sIGhlYXBbMV0sICZncm91cC0+ZmllbGQsIGN0eCkpCi0JCQl7Ci0JCQlFQ2VycihFQ19GX0VDX0dGUF9TSU1QTEVfUE9JTlRTX01BS0VfQUZGSU5FLCBFUlJfUl9CTl9MSUIpOwotCQkJZ290byBlcnI7Ci0JCQl9Ci0JCX0KLQlpZiAoZ3JvdXAtPm1ldGgtPmZpZWxkX2VuY29kZSAhPSAwKQotCQl7Ci0JCS8qIGluIHRoZSBNb250Z29tZXJ5IGNhc2UsIHdlIGp1c3QgdHVybmVkICBSKkggIChyZXByZXNlbnRpbmcgSCkKLQkJICogaW50byAgMS8oUipIKSwgIGJ1dCB3ZSBuZWVkICBSKigxL0gpICAocmVwcmVzZW50aW5nIDEvSCk7Ci0JCSAqIGkuZS4gd2UgaGF2ZSBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBNb250Z29tZXJ5IGZhY3RvciB0d2ljZSAqLwotCQlpZiAoIWdyb3VwLT5tZXRoLT5maWVsZF9lbmNvZGUoZ3JvdXAsIGhlYXBbMV0sIGhlYXBbMV0sIGN0eCkpIGdvdG8gZXJyOwotCQlpZiAoIWdyb3VwLT5tZXRoLT5maWVsZF9lbmNvZGUoZ3JvdXAsIGhlYXBbMV0sIGhlYXBbMV0sIGN0eCkpIGdvdG8gZXJyOwotCQl9CisJLyogU2V0IGVhY2ggcHJvZF9aW2ldIHRvIHRoZSBwcm9kdWN0IG9mIHBvaW50c1swXS0+WiAuLiBwb2ludHNbaV0tPlosCisJICogc2tpcHBpbmcgYW55IHplcm8tdmFsdWVkIGlucHV0cyAocHJldGVuZCB0aGF0IHRoZXkncmUgMSkuICovCiAKLQkvKiBzZXQgb3RoZXIgaGVhcFtpXSdzIHRvIHRoZWlyIGludmVyc2VzICovCi0JZm9yIChpID0gMjsgaSA8IHBvdzIvMiArIG51bTsgaSArPSAyKQorCWlmICghQk5faXNfemVybygmcG9pbnRzWzBdLT5aKSkKIAkJewotCQkvKiBpIGlzIGV2ZW4gKi8KLQkJaWYgKChoZWFwW2kgKyAxXSAhPSBOVUxMKSAmJiAhQk5faXNfemVybyhoZWFwW2kgKyAxXSkpCisJCWlmICghQk5fY29weShwcm9kX1pbMF0sICZwb2ludHNbMF0tPlopKSBnb3RvIGVycjsKKwkJfQorCWVsc2UKKwkJeworCQlpZiAoZ3JvdXAtPm1ldGgtPmZpZWxkX3NldF90b19vbmUgIT0gMCkKIAkJCXsKLQkJCWlmICghZ3JvdXAtPm1ldGgtPmZpZWxkX211bChncm91cCwgdG1wMCwgaGVhcFtpLzJdLCBoZWFwW2kgKyAxXSwgY3R4KSkgZ290byBlcnI7Ci0JCQlpZiAoIWdyb3VwLT5tZXRoLT5maWVsZF9tdWwoZ3JvdXAsIHRtcDEsIGhlYXBbaS8yXSwgaGVhcFtpXSwgY3R4KSkgZ290byBlcnI7Ci0JCQlpZiAoIUJOX2NvcHkoaGVhcFtpXSwgdG1wMCkpIGdvdG8gZXJyOwotCQkJaWYgKCFCTl9jb3B5KGhlYXBbaSArIDFdLCB0bXAxKSkgZ290byBlcnI7CisJCQlpZiAoIWdyb3VwLT5tZXRoLT5maWVsZF9zZXRfdG9fb25lKGdyb3VwLCBwcm9kX1pbMF0sIGN0eCkpIGdvdG8gZXJyOwogCQkJfQogCQllbHNlCiAJCQl7Ci0JCQlpZiAoIUJOX2NvcHkoaGVhcFtpXSwgaGVhcFtpLzJdKSkgZ290byBlcnI7CisJCQlpZiAoIUJOX29uZShwcm9kX1pbMF0pKSBnb3RvIGVycjsKIAkJCX0KIAkJfQogCi0JLyogd2UgaGF2ZSByZXBsYWNlZCBhbGwgbm9uLXplcm8gWidzIGJ5IHRoZWlyIGludmVyc2VzLCBub3cgZml4IHVwIGFsbCB0aGUgcG9pbnRzICovCisJZm9yIChpID0gMTsgaSA8IG51bTsgaSsrKQorCQl7CisJCWlmICghQk5faXNfemVybygmcG9pbnRzW2ldLT5aKSkKKwkJCXsKKwkJCWlmICghZ3JvdXAtPm1ldGgtPmZpZWxkX211bChncm91cCwgcHJvZF9aW2ldLCBwcm9kX1pbaSAtIDFdLCAmcG9pbnRzW2ldLT5aLCBjdHgpKSBnb3RvIGVycjsKKwkJCX0KKwkJZWxzZQorCQkJeworCQkJaWYgKCFCTl9jb3B5KHByb2RfWltpXSwgcHJvZF9aW2kgLSAxXSkpIGdvdG8gZXJyOworCQkJfQorCQl9CisKKwkvKiBOb3cgdXNlIGEgc2luZ2xlIGV4cGxpY2l0IGludmVyc2lvbiB0byByZXBsYWNlIGV2ZXJ5CisJICogbm9uLXplcm8gcG9pbnRzW2ldLT5aIGJ5IGl0cyBpbnZlcnNlLiAqLworCisJaWYgKCFCTl9tb2RfaW52ZXJzZSh0bXAsIHByb2RfWltudW0gLSAxXSwgJmdyb3VwLT5maWVsZCwgY3R4KSkKKwkJeworCQlFQ2VycihFQ19GX0VDX0dGUF9TSU1QTEVfUE9JTlRTX01BS0VfQUZGSU5FLCBFUlJfUl9CTl9MSUIpOworCQlnb3RvIGVycjsKKwkJfQorCWlmIChncm91cC0+bWV0aC0+ZmllbGRfZW5jb2RlICE9IDApCisJCXsKKwkJLyogSW4gdGhlIE1vbnRnb21lcnkgY2FzZSwgd2UganVzdCB0dXJuZWQgIFIqSCAgKHJlcHJlc2VudGluZyBIKQorCQkgKiBpbnRvICAxLyhSKkgpLCAgYnV0IHdlIG5lZWQgIFIqKDEvSCkgIChyZXByZXNlbnRpbmcgMS9IKTsKKwkJICogaS5lLiB3ZSBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBNb250Z29tZXJ5IGZhY3RvciB0d2ljZS4gKi8KKwkJaWYgKCFncm91cC0+bWV0aC0+ZmllbGRfZW5jb2RlKGdyb3VwLCB0bXAsIHRtcCwgY3R4KSkgZ290byBlcnI7CisJCWlmICghZ3JvdXAtPm1ldGgtPmZpZWxkX2VuY29kZShncm91cCwgdG1wLCB0bXAsIGN0eCkpIGdvdG8gZXJyOworCQl9CisKKwlmb3IgKGkgPSBudW0gLSAxOyBpID4gMDsgLS1pKQorCQl7CisJCS8qIExvb3AgaW52YXJpYW50OiB0bXAgaXMgdGhlIHByb2R1Y3Qgb2YgdGhlIGludmVyc2VzIG9mCisJCSAqIHBvaW50c1swXS0+WiAuLiBwb2ludHNbaV0tPlogKHplcm8tdmFsdWVkIGlucHV0cyBza2lwcGVkKS4gKi8KKwkJaWYgKCFCTl9pc196ZXJvKCZwb2ludHNbaV0tPlopKQorCQkJeworCQkJLyogU2V0IHRtcF9aIHRvIHRoZSBpbnZlcnNlIG9mIHBvaW50c1tpXS0+WiAoYXMgcHJvZHVjdAorCQkJICogb2YgWiBpbnZlcnNlcyAwIC4uIGksIFogdmFsdWVzIDAgLi4gaSAtIDEpLiAqLworCQkJaWYgKCFncm91cC0+bWV0aC0+ZmllbGRfbXVsKGdyb3VwLCB0bXBfWiwgcHJvZF9aW2kgLSAxXSwgdG1wLCBjdHgpKSBnb3RvIGVycjsKKwkJCS8qIFVwZGF0ZSB0bXAgdG8gc2F0aXNmeSB0aGUgbG9vcCBpbnZhcmlhbnQgZm9yIGkgLSAxLiAqLworCQkJaWYgKCFncm91cC0+bWV0aC0+ZmllbGRfbXVsKGdyb3VwLCB0bXAsIHRtcCwgJnBvaW50c1tpXS0+WiwgY3R4KSkgZ290byBlcnI7CisJCQkvKiBSZXBsYWNlIHBvaW50c1tpXS0+WiBieSBpdHMgaW52ZXJzZS4gKi8KKwkJCWlmICghQk5fY29weSgmcG9pbnRzW2ldLT5aLCB0bXBfWikpIGdvdG8gZXJyOworCQkJfQorCQl9CisKKwlpZiAoIUJOX2lzX3plcm8oJnBvaW50c1swXS0+WikpCisJCXsKKwkJLyogUmVwbGFjZSBwb2ludHNbMF0tPlogYnkgaXRzIGludmVyc2UuICovCisJCWlmICghQk5fY29weSgmcG9pbnRzWzBdLT5aLCB0bXApKSBnb3RvIGVycjsKKwkJfQorCisJLyogRmluYWxseSwgZml4IHVwIHRoZSBYIGFuZCBZIGNvb3JkaW5hdGVzIGZvciBhbGwgcG9pbnRzLiAqLworCiAJZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKQogCQl7CiAJCUVDX1BPSU5UICpwID0gcG9pbnRzW2ldOwotCQkKKwogCQlpZiAoIUJOX2lzX3plcm8oJnAtPlopKQogCQkJewogCQkJLyogdHVybiAgKFgsIFksIDEvWikgIGludG8gIChYL1peMiwgWS9aXjMsIDEpICovCiAKLQkJCWlmICghZ3JvdXAtPm1ldGgtPmZpZWxkX3Nxcihncm91cCwgdG1wMSwgJnAtPlosIGN0eCkpIGdvdG8gZXJyOwotCQkJaWYgKCFncm91cC0+bWV0aC0+ZmllbGRfbXVsKGdyb3VwLCAmcC0+WCwgJnAtPlgsIHRtcDEsIGN0eCkpIGdvdG8gZXJyOworCQkJaWYgKCFncm91cC0+bWV0aC0+ZmllbGRfc3FyKGdyb3VwLCB0bXAsICZwLT5aLCBjdHgpKSBnb3RvIGVycjsKKwkJCWlmICghZ3JvdXAtPm1ldGgtPmZpZWxkX211bChncm91cCwgJnAtPlgsICZwLT5YLCB0bXAsIGN0eCkpIGdvdG8gZXJyOwogCi0JCQlpZiAoIWdyb3VwLT5tZXRoLT5maWVsZF9tdWwoZ3JvdXAsIHRtcDEsIHRtcDEsICZwLT5aLCBjdHgpKSBnb3RvIGVycjsKLQkJCWlmICghZ3JvdXAtPm1ldGgtPmZpZWxkX211bChncm91cCwgJnAtPlksICZwLT5ZLCB0bXAxLCBjdHgpKSBnb3RvIGVycjsKLQkJCisJCQlpZiAoIWdyb3VwLT5tZXRoLT5maWVsZF9tdWwoZ3JvdXAsIHRtcCwgdG1wLCAmcC0+WiwgY3R4KSkgZ290byBlcnI7CisJCQlpZiAoIWdyb3VwLT5tZXRoLT5maWVsZF9tdWwoZ3JvdXAsICZwLT5ZLCAmcC0+WSwgdG1wLCBjdHgpKSBnb3RvIGVycjsKKwogCQkJaWYgKGdyb3VwLT5tZXRoLT5maWVsZF9zZXRfdG9fb25lICE9IDApCiAJCQkJewogCQkJCWlmICghZ3JvdXAtPm1ldGgtPmZpZWxkX3NldF90b19vbmUoZ3JvdXAsICZwLT5aLCBjdHgpKSBnb3RvIGVycjsKQEAgLTEzMjksMjAgKzEzMDksMTkgQEAKIAkJfQogCiAJcmV0ID0gMTsKLQkJCisKICBlcnI6CiAJQk5fQ1RYX2VuZChjdHgpOwogCWlmIChuZXdfY3R4ICE9IE5VTEwpCiAJCUJOX0NUWF9mcmVlKG5ld19jdHgpOwotCWlmIChoZWFwICE9IE5VTEwpCisJaWYgKHByb2RfWiAhPSBOVUxMKQogCQl7Ci0JCS8qIGhlYXBbcG93Mi8yXSAuLiBoZWFwW3BvdzItMV0gaGF2ZSBub3QgYmVlbiBhbGxvY2F0ZWQgbG9jYWxseSEgKi8KLQkJZm9yIChpID0gcG93Mi8yIC0gMTsgaSA+IDA7IGktLSkKKwkJZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKQogCQkJewotCQkJaWYgKGhlYXBbaV0gIT0gTlVMTCkKLQkJCQlCTl9jbGVhcl9mcmVlKGhlYXBbaV0pOworCQkJaWYgKHByb2RfWltpXSA9PSBOVUxMKSBicmVhazsKKwkJCUJOX2NsZWFyX2ZyZWUocHJvZF9aW2ldKTsKIAkJCX0KLQkJT1BFTlNTTF9mcmVlKGhlYXApOworCQlPUEVOU1NMX2ZyZWUocHJvZF9aKTsKIAkJfQogCXJldHVybiByZXQ7CiAJfQpkaWZmIC0tZ2l0IGEvY3J5cHRvL2VjL2VjdGVzdC5jIGIvY3J5cHRvL2VjL2VjdGVzdC5jCmluZGV4IDEwMmVhYTkuLmQxYmY5ODAgMTAwNjQ0Ci0tLSBhL2NyeXB0by9lYy9lY3Rlc3QuYworKysgYi9jcnlwdG8vZWMvZWN0ZXN0LmMKQEAgLTE5OSw2ICsxOTksNyBAQAogCUVDX1BPSU5UICpQID0gRUNfUE9JTlRfbmV3KGdyb3VwKTsKIAlFQ19QT0lOVCAqUSA9IEVDX1BPSU5UX25ldyhncm91cCk7CiAJQk5fQ1RYICpjdHggPSBCTl9DVFhfbmV3KCk7CisJaW50IGk7CiAKIAluMSA9IEJOX25ldygpOyBuMiA9IEJOX25ldygpOyBvcmRlciA9IEJOX25ldygpOwogCWZwcmludGYoc3Rkb3V0LCAidmVyaWZ5IGdyb3VwIG9yZGVyIC4uLiIpOwpAQCAtMjEyLDIxICsyMTMsNTYgQEAKIAlpZiAoIUVDX1BPSU5UX211bChncm91cCwgUSwgb3JkZXIsIE5VTEwsIE5VTEwsIGN0eCkpIEFCT1JUOwogCWlmICghRUNfUE9JTlRfaXNfYXRfaW5maW5pdHkoZ3JvdXAsIFEpKSBBQk9SVDsKIAlmcHJpbnRmKHN0ZG91dCwgIiBva1xuIik7Ci0JZnByaW50ZihzdGRvdXQsICJsb25nL25lZ2F0aXZlIHNjYWxhciB0ZXN0cyAuLi4gIik7Ci0JaWYgKCFCTl9vbmUobjEpKSBBQk9SVDsKLQkvKiBuMSA9IDEgLSBvcmRlciAqLwotCWlmICghQk5fc3ViKG4xLCBuMSwgb3JkZXIpKSBBQk9SVDsKLQlpZighRUNfUE9JTlRfbXVsKGdyb3VwLCBRLCBOVUxMLCBQLCBuMSwgY3R4KSkgQUJPUlQ7Ci0JaWYgKDAgIT0gRUNfUE9JTlRfY21wKGdyb3VwLCBRLCBQLCBjdHgpKSBBQk9SVDsKLQkvKiBuMiA9IDEgKyBvcmRlciAqLwotCWlmICghQk5fYWRkKG4yLCBvcmRlciwgQk5fdmFsdWVfb25lKCkpKSBBQk9SVDsKLQlpZighRUNfUE9JTlRfbXVsKGdyb3VwLCBRLCBOVUxMLCBQLCBuMiwgY3R4KSkgQUJPUlQ7Ci0JaWYgKDAgIT0gRUNfUE9JTlRfY21wKGdyb3VwLCBRLCBQLCBjdHgpKSBBQk9SVDsKLQkvKiBuMiA9ICgxIC0gb3JkZXIpICogKDEgKyBvcmRlcikgKi8KLQlpZiAoIUJOX211bChuMiwgbjEsIG4yLCBjdHgpKSBBQk9SVDsKLQlpZighRUNfUE9JTlRfbXVsKGdyb3VwLCBRLCBOVUxMLCBQLCBuMiwgY3R4KSkgQUJPUlQ7Ci0JaWYgKDAgIT0gRUNfUE9JTlRfY21wKGdyb3VwLCBRLCBQLCBjdHgpKSBBQk9SVDsKKwlmcHJpbnRmKHN0ZG91dCwgImxvbmcvbmVnYXRpdmUgc2NhbGFyIHRlc3RzICIpOworICAgICAgICBmb3IgKGkgPSAxOyBpIDw9IDI7IGkrKykKKwkJeworCQljb25zdCBCSUdOVU0gKnNjYWxhcnNbNl07CisJCWNvbnN0IEVDX1BPSU5UICpwb2ludHNbNl07CisKKwkJZnByaW50ZihzdGRvdXQsIGkgPT0gMSA/CisJCQkiYWxsb3dpbmcgcHJlY29tcHV0YXRpb24gLi4uICIgOgorCQkJIndpdGhvdXQgcHJlY29tcHV0YXRpb24gLi4uICIpOworCQlpZiAoIUJOX3NldF93b3JkKG4xLCBpKSkgQUJPUlQ7CisJCS8qIElmIGkgPT0gMSwgUCB3aWxsIGJlIHRoZSBwcmVkZWZpbmVkIGdlbmVyYXRvciBmb3Igd2hpY2gKKwkJICogRUNfR1JPVVBfcHJlY29tcHV0ZV9tdWx0IGhhcyBzZXQgdXAgcHJlY29tcHV0YXRpb24uICovCisJCWlmICghRUNfUE9JTlRfbXVsKGdyb3VwLCBQLCBuMSwgTlVMTCwgTlVMTCwgY3R4KSkgQUJPUlQ7CisKKwkJaWYgKCFCTl9vbmUobjEpKSBBQk9SVDsKKwkJLyogbjEgPSAxIC0gb3JkZXIgKi8KKwkJaWYgKCFCTl9zdWIobjEsIG4xLCBvcmRlcikpIEFCT1JUOworCQlpZiAoIUVDX1BPSU5UX211bChncm91cCwgUSwgTlVMTCwgUCwgbjEsIGN0eCkpIEFCT1JUOworCQlpZiAoMCAhPSBFQ19QT0lOVF9jbXAoZ3JvdXAsIFEsIFAsIGN0eCkpIEFCT1JUOworCisJCS8qIG4yID0gMSArIG9yZGVyICovCisJCWlmICghQk5fYWRkKG4yLCBvcmRlciwgQk5fdmFsdWVfb25lKCkpKSBBQk9SVDsKKwkJaWYgKCFFQ19QT0lOVF9tdWwoZ3JvdXAsIFEsIE5VTEwsIFAsIG4yLCBjdHgpKSBBQk9SVDsKKwkJaWYgKDAgIT0gRUNfUE9JTlRfY21wKGdyb3VwLCBRLCBQLCBjdHgpKSBBQk9SVDsKKworCQkvKiBuMiA9ICgxIC0gb3JkZXIpICogKDEgKyBvcmRlcikgPSAxIC0gb3JkZXJeMiAqLworCQlpZiAoIUJOX211bChuMiwgbjEsIG4yLCBjdHgpKSBBQk9SVDsKKwkJaWYgKCFFQ19QT0lOVF9tdWwoZ3JvdXAsIFEsIE5VTEwsIFAsIG4yLCBjdHgpKSBBQk9SVDsKKwkJaWYgKDAgIT0gRUNfUE9JTlRfY21wKGdyb3VwLCBRLCBQLCBjdHgpKSBBQk9SVDsKKworCQkvKiBuMiA9IG9yZGVyXjIgLSAxICovCisJCUJOX3NldF9uZWdhdGl2ZShuMiwgMCk7CisJCWlmICghRUNfUE9JTlRfbXVsKGdyb3VwLCBRLCBOVUxMLCBQLCBuMiwgY3R4KSkgQUJPUlQ7CisJCS8qIEFkZCBQIHRvIHZlcmlmeSB0aGUgcmVzdWx0LiAqLworCQlpZiAoIUVDX1BPSU5UX2FkZChncm91cCwgUSwgUSwgUCwgY3R4KSkgQUJPUlQ7CisJCWlmICghRUNfUE9JTlRfaXNfYXRfaW5maW5pdHkoZ3JvdXAsIFEpKSBBQk9SVDsKKworCQkvKiBFeGVyY2lzZSBFQ19QT0lOVHNfbXVsLCBpbmNsdWRpbmcgY29ybmVyIGNhc2VzLiAqLworCQlpZiAoRUNfUE9JTlRfaXNfYXRfaW5maW5pdHkoZ3JvdXAsIFApKSBBQk9SVDsKKwkJc2NhbGFyc1swXSA9IG4xOyBwb2ludHNbMF0gPSBROyAvKiA9PiBpbmZpbml0eSAqLworCQlzY2FsYXJzWzFdID0gbjI7IHBvaW50c1sxXSA9IFA7IC8qID0+IC1QICovCisJCXNjYWxhcnNbMl0gPSBuMTsgcG9pbnRzWzJdID0gUTsgLyogPT4gaW5maW5pdHkgKi8KKwkJc2NhbGFyc1szXSA9IG4yOyBwb2ludHNbM10gPSBROyAvKiA9PiBpbmZpbml0eSAqLworCQlzY2FsYXJzWzRdID0gbjE7IHBvaW50c1s0XSA9IFA7IC8qID0+IFAgKi8KKwkJc2NhbGFyc1s1XSA9IG4yOyBwb2ludHNbNV0gPSBROyAvKiA9PiBpbmZpbml0eSAqLworCQlpZiAoIUVDX1BPSU5Uc19tdWwoZ3JvdXAsIFAsIE5VTEwsIDYsIHBvaW50cywgc2NhbGFycywgY3R4KSkgQUJPUlQ7CisJCWlmICghRUNfUE9JTlRfaXNfYXRfaW5maW5pdHkoZ3JvdXAsIFApKSBBQk9SVDsKKwkJfQogCWZwcmludGYoc3Rkb3V0LCAib2tcbiIpOworCiAJRUNfUE9JTlRfZnJlZShQKTsKIAlFQ19QT0lOVF9mcmVlKFEpOwogCUJOX2ZyZWUobjEpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2Vyci9vcGVuc3NsLmVjIGIvY3J5cHRvL2Vyci9vcGVuc3NsLmVjCmluZGV4IDM0NzU0ZTUuLmJhZmJjMzUgMTAwNjQ0Ci0tLSBhL2NyeXB0by9lcnIvb3BlbnNzbC5lYworKysgYi9jcnlwdG8vZXJyL29wZW5zc2wuZWMKQEAgLTcxLDcgKzcxLDcgQEAKIFIgU1NMX1JfVExTVjFfQUxFUlRfUFJPVE9DT0xfVkVSU0lPTgkJMTA3MAogUiBTU0xfUl9UTFNWMV9BTEVSVF9JTlNVRkZJQ0lFTlRfU0VDVVJJVFkJMTA3MQogUiBTU0xfUl9UTFNWMV9BTEVSVF9JTlRFUk5BTF9FUlJPUgkJMTA4MAotUiBTU0xfUl9TU0xWM19BTEVSVF9JTkFQUFJPUFJJQVRFX0ZBTExCQUNLCTEwODYKK1IgU1NMX1JfVExTVjFfQUxFUlRfSU5BUFBST1BSSUFURV9GQUxMQkFDSwkxMDg2CiBSIFNTTF9SX1RMU1YxX0FMRVJUX1VTRVJfQ0FOQ0VMTEVECQkxMDkwCiBSIFNTTF9SX1RMU1YxX0FMRVJUX05PX1JFTkVHT1RJQVRJT04JCTExMDAKIFIgU1NMX1JfVExTVjFfVU5TVVBQT1JURURfRVhURU5TSU9OCQkxMTEwCmRpZmYgLS1naXQgYS9jcnlwdG8vZXZwL2VfYWVzLmMgYi9jcnlwdG8vZXZwL2VfYWVzLmMKaW5kZXggYWQwZjdhNC4uODVkNWFhYSAxMDA2NDQKLS0tIGEvY3J5cHRvL2V2cC9lX2Flcy5jCisrKyBiL2NyeXB0by9ldnAvZV9hZXMuYwpAQCAtMTY2LDcgKzE2Niw3IEBACiAjZGVmaW5lIFZQQUVTX0NBUEFCTEUJKE9QRU5TU0xfaWEzMmNhcF9QWzFdJigxPDwoNDEtMzIpKSkKICNlbmRpZgogI2lmZGVmIEJTQUVTX0FTTQotI2RlZmluZSBCU0FFU19DQVBBQkxFCVZQQUVTX0NBUEFCTEUKKyNkZWZpbmUgQlNBRVNfQ0FQQUJMRQkoT1BFTlNTTF9pYTMyY2FwX1BbMV0mKDE8PCg0MS0zMikpKQogI2VuZGlmCiAvKgogICogQUVTLU5JIHNlY3Rpb24KQEAgLTg3Myw2ICs4NzMsMjggQEAKIAkJLyogRXh0cmEgcGFkZGluZzogdGFnIGFwcGVuZGVkIHRvIHJlY29yZCAqLwogCQlyZXR1cm4gRVZQX0dDTV9UTFNfVEFHX0xFTjsKIAorCWNhc2UgRVZQX0NUUkxfQ09QWToKKwkJeworCQkJRVZQX0NJUEhFUl9DVFggKm91dCA9IHB0cjsKKwkJCUVWUF9BRVNfR0NNX0NUWCAqZ2N0eF9vdXQgPSBvdXQtPmNpcGhlcl9kYXRhOworCQkJaWYgKGdjdHgtPmdjbS5rZXkpCisJCQkJeworCQkJCWlmIChnY3R4LT5nY20ua2V5ICE9ICZnY3R4LT5rcykKKwkJCQkJcmV0dXJuIDA7CisJCQkJZ2N0eF9vdXQtPmdjbS5rZXkgPSAmZ2N0eF9vdXQtPmtzOworCQkJCX0KKwkJCWlmIChnY3R4LT5pdiA9PSBjLT5pdikKKwkJCQlnY3R4X291dC0+aXYgPSBvdXQtPml2OworCQkJZWxzZQorCQkJeworCQkJCWdjdHhfb3V0LT5pdiA9IE9QRU5TU0xfbWFsbG9jKGdjdHgtPml2bGVuKTsKKwkJCQlpZiAoIWdjdHhfb3V0LT5pdikKKwkJCQkJcmV0dXJuIDA7CisJCQkJbWVtY3B5KGdjdHhfb3V0LT5pdiwgZ2N0eC0+aXYsIGdjdHgtPml2bGVuKTsKKwkJCX0KKwkJCXJldHVybiAxOworCQl9CisKIAlkZWZhdWx0OgogCQlyZXR1cm4gLTE7CiAKQEAgLTExMTIsNyArMTEzNCw4IEBACiAKICNkZWZpbmUgQ1VTVE9NX0ZMQUdTCShFVlBfQ0lQSF9GTEFHX0RFRkFVTFRfQVNOMSBcCiAJCXwgRVZQX0NJUEhfQ1VTVE9NX0lWIHwgRVZQX0NJUEhfRkxBR19DVVNUT01fQ0lQSEVSIFwKLQkJfCBFVlBfQ0lQSF9BTFdBWVNfQ0FMTF9JTklUIHwgRVZQX0NJUEhfQ1RSTF9JTklUKQorCQl8IEVWUF9DSVBIX0FMV0FZU19DQUxMX0lOSVQgfCBFVlBfQ0lQSF9DVFJMX0lOSVQgXAorCQl8IEVWUF9DSVBIX0NVU1RPTV9DT1BZKQogCiBCTE9DS19DSVBIRVJfY3VzdG9tKE5JRF9hZXMsMTI4LDEsMTIsZ2NtLEdDTSwKIAkJRVZQX0NJUEhfRkxBR19GSVBTfEVWUF9DSVBIX0ZMQUdfQUVBRF9DSVBIRVJ8Q1VTVE9NX0ZMQUdTKQpAQCAtMTEyNCw3ICsxMTQ3LDI1IEBACiBzdGF0aWMgaW50IGFlc194dHNfY3RybChFVlBfQ0lQSEVSX0NUWCAqYywgaW50IHR5cGUsIGludCBhcmcsIHZvaWQgKnB0cikKIAl7CiAJRVZQX0FFU19YVFNfQ1RYICp4Y3R4ID0gYy0+Y2lwaGVyX2RhdGE7Ci0JaWYgKHR5cGUgIT0gRVZQX0NUUkxfSU5JVCkKKwlpZiAodHlwZSA9PSBFVlBfQ1RSTF9DT1BZKQorCQl7CisJCUVWUF9DSVBIRVJfQ1RYICpvdXQgPSBwdHI7CisJCUVWUF9BRVNfWFRTX0NUWCAqeGN0eF9vdXQgPSBvdXQtPmNpcGhlcl9kYXRhOworCQlpZiAoeGN0eC0+eHRzLmtleTEpCisJCQl7CisJCQlpZiAoeGN0eC0+eHRzLmtleTEgIT0gJnhjdHgtPmtzMSkKKwkJCQlyZXR1cm4gMDsKKwkJCXhjdHhfb3V0LT54dHMua2V5MSA9ICZ4Y3R4X291dC0+a3MxOworCQkJfQorCQlpZiAoeGN0eC0+eHRzLmtleTIpCisJCQl7CisJCQlpZiAoeGN0eC0+eHRzLmtleTIgIT0gJnhjdHgtPmtzMikKKwkJCQlyZXR1cm4gMDsKKwkJCXhjdHhfb3V0LT54dHMua2V5MiA9ICZ4Y3R4X291dC0+a3MyOworCQkJfQorCQlyZXR1cm4gMTsKKwkJfQorCWVsc2UgaWYgKHR5cGUgIT0gRVZQX0NUUkxfSU5JVCkKIAkJcmV0dXJuIC0xOwogCS8qIGtleTEgYW5kIGtleTIgYXJlIHVzZWQgYXMgYW4gaW5kaWNhdG9yIGJvdGgga2V5IGFuZCBJViBhcmUgc2V0ICovCiAJeGN0eC0+eHRzLmtleTEgPSBOVUxMOwpAQCAtMTI1Niw3ICsxMjk3LDggQEAKICNkZWZpbmUgYWVzX3h0c19jbGVhbnVwIE5VTEwKIAogI2RlZmluZSBYVFNfRkxBR1MJKEVWUF9DSVBIX0ZMQUdfREVGQVVMVF9BU04xIHwgRVZQX0NJUEhfQ1VTVE9NX0lWIFwKLQkJCSB8IEVWUF9DSVBIX0FMV0FZU19DQUxMX0lOSVQgfCBFVlBfQ0lQSF9DVFJMX0lOSVQpCisJCQkgfCBFVlBfQ0lQSF9BTFdBWVNfQ0FMTF9JTklUIHwgRVZQX0NJUEhfQ1RSTF9JTklUIFwKKwkJCSB8IEVWUF9DSVBIX0NVU1RPTV9DT1BZKQogCiBCTE9DS19DSVBIRVJfY3VzdG9tKE5JRF9hZXMsMTI4LDEsMTYseHRzLFhUUyxFVlBfQ0lQSF9GTEFHX0ZJUFN8WFRTX0ZMQUdTKQogQkxPQ0tfQ0lQSEVSX2N1c3RvbShOSURfYWVzLDI1NiwxLDE2LHh0cyxYVFMsRVZQX0NJUEhfRkxBR19GSVBTfFhUU19GTEFHUykKQEAgLTEzMDYsNiArMTM0OCwxOSBAQAogCQljY3R4LT5sZW5fc2V0ID0gMDsKIAkJcmV0dXJuIDE7CiAKKwljYXNlIEVWUF9DVFJMX0NPUFk6CisJCXsKKwkJCUVWUF9DSVBIRVJfQ1RYICpvdXQgPSBwdHI7CisJCQlFVlBfQUVTX0NDTV9DVFggKmNjdHhfb3V0ID0gb3V0LT5jaXBoZXJfZGF0YTsKKwkJCWlmIChjY3R4LT5jY20ua2V5KQorCQkJCXsKKwkJCQlpZiAoY2N0eC0+Y2NtLmtleSAhPSAmY2N0eC0+a3MpCisJCQkJCXJldHVybiAwOworCQkJCWNjdHhfb3V0LT5jY20ua2V5ID0gJmNjdHhfb3V0LT5rczsKKwkJCQl9CisJCQlyZXR1cm4gMTsKKwkJfQorCiAJZGVmYXVsdDoKIAkJcmV0dXJuIC0xOwogCmRpZmYgLS1naXQgYS9jcnlwdG8vZXZwL2V2cF9lbmMuYyBiL2NyeXB0by9ldnAvZXZwX2VuYy5jCmluZGV4IDBjNTRmMDUuLjdiMTg0MmEgMTAwNjQ0Ci0tLSBhL2NyeXB0by9ldnAvZXZwX2VuYy5jCisrKyBiL2NyeXB0by9ldnAvZXZwX2VuYy5jCkBAIC02Nyw2ICs2Nyw3IEBACiAjaWZkZWYgT1BFTlNTTF9GSVBTCiAjaW5jbHVkZSA8b3BlbnNzbC9maXBzLmg+CiAjZW5kaWYKKyNpbmNsdWRlICJjb25zdGFudF90aW1lX2xvY2wuaCIKICNpbmNsdWRlICJldnBfbG9jbC5oIgogCiAjaWZkZWYgT1BFTlNTTF9GSVBTCkBAIC01MDAsMjEgKzUwMSwyMSBAQAogCiBpbnQgRVZQX0RlY3J5cHRGaW5hbF9leChFVlBfQ0lQSEVSX0NUWCAqY3R4LCB1bnNpZ25lZCBjaGFyICpvdXQsIGludCAqb3V0bCkKIAl7Ci0JaW50IGksbjsKLQl1bnNpZ25lZCBpbnQgYjsKKwl1bnNpZ25lZCBpbnQgaSwgYjsKKyAgICAgICAgdW5zaWduZWQgY2hhciBwYWQsIHBhZGRpbmdfZ29vZDsKIAkqb3V0bD0wOwogCiAJaWYgKGN0eC0+Y2lwaGVyLT5mbGFncyAmIEVWUF9DSVBIX0ZMQUdfQ1VTVE9NX0NJUEhFUikKIAkJewotCQlpID0gTV9kb19jaXBoZXIoY3R4LCBvdXQsIE5VTEwsIDApOwotCQlpZiAoaSA8IDApCisJCWludCByZXQgPSBNX2RvX2NpcGhlcihjdHgsIG91dCwgTlVMTCwgMCk7CisJCWlmIChyZXQgPCAwKQogCQkJcmV0dXJuIDA7CiAJCWVsc2UKLQkJCSpvdXRsID0gaTsKKwkJCSpvdXRsID0gcmV0OwogCQlyZXR1cm4gMTsKIAkJfQogCi0JYj1jdHgtPmNpcGhlci0+YmxvY2tfc2l6ZTsKKwliPSh1bnNpZ25lZCBpbnQpKGN0eC0+Y2lwaGVyLT5ibG9ja19zaXplKTsKIAlpZiAoY3R4LT5mbGFncyAmIEVWUF9DSVBIX05PX1BBRERJTkcpCiAJCXsKIAkJaWYoY3R4LT5idWZfbGVuKQpAQCAtNTMzLDI4ICs1MzQsMzQgQEAKIAkJCXJldHVybigwKTsKIAkJCX0KIAkJT1BFTlNTTF9hc3NlcnQoYiA8PSBzaXplb2YgY3R4LT5maW5hbCk7Ci0JCW49Y3R4LT5maW5hbFtiLTFdOwotCQlpZiAobiA9PSAwIHx8IG4gPiAoaW50KWIpCisJCXBhZD1jdHgtPmZpbmFsW2ItMV07CisKKwkJcGFkZGluZ19nb29kID0gKHVuc2lnbmVkIGNoYXIpKH5jb25zdGFudF90aW1lX2lzX3plcm9fOChwYWQpKTsKKwkJcGFkZGluZ19nb29kICY9IGNvbnN0YW50X3RpbWVfZ2VfOChiLCBwYWQpOworCisgICAgICAgICAgICAgICAgZm9yIChpID0gMTsgaSA8IGI7ICsraSkKIAkJCXsKLQkJCUVWUGVycihFVlBfRl9FVlBfREVDUllQVEZJTkFMX0VYLEVWUF9SX0JBRF9ERUNSWVBUKTsKLQkJCXJldHVybigwKTsKKwkJCXVuc2lnbmVkIGNoYXIgaXNfcGFkX2luZGV4ID0gY29uc3RhbnRfdGltZV9sdF84KGksIHBhZCk7CisJCQl1bnNpZ25lZCBjaGFyIHBhZF9ieXRlX2dvb2QgPSBjb25zdGFudF90aW1lX2VxXzgoY3R4LT5maW5hbFtiLWktMV0sIHBhZCk7CisJCQlwYWRkaW5nX2dvb2QgJj0gY29uc3RhbnRfdGltZV9zZWxlY3RfOChpc19wYWRfaW5kZXgsIHBhZF9ieXRlX2dvb2QsIDB4ZmYpOwogCQkJfQotCQlmb3IgKGk9MDsgaTxuOyBpKyspCi0JCQl7Ci0JCQlpZiAoY3R4LT5maW5hbFstLWJdICE9IG4pCi0JCQkJewotCQkJCUVWUGVycihFVlBfRl9FVlBfREVDUllQVEZJTkFMX0VYLEVWUF9SX0JBRF9ERUNSWVBUKTsKLQkJCQlyZXR1cm4oMCk7Ci0JCQkJfQotCQkJfQotCQluPWN0eC0+Y2lwaGVyLT5ibG9ja19zaXplLW47Ci0JCWZvciAoaT0wOyBpPG47IGkrKykKLQkJCW91dFtpXT1jdHgtPmZpbmFsW2ldOwotCQkqb3V0bD1uOworCisJCS8qCisJCSAqIEF0IGxlYXN0IDEgYnl0ZSBpcyBhbHdheXMgcGFkZGluZywgc28gd2UgYWx3YXlzIHdyaXRlIGIgLSAxCisJCSAqIGJ5dGVzIHRvIGF2b2lkIGEgdGltaW5nIGxlYWsuIFRoZSBjYWxsZXIgaXMgcmVxdWlyZWQgdG8gaGF2ZSB8YnwKKwkJICogYnl0ZXMgc3BhY2UgaW4gfG91dHwgYnkgdGhlIEFQSSBjb250cmFjdC4KKwkJICovCisJCWZvciAoaSA9IDA7IGkgPCBiIC0gMTsgKytpKQorCQkJb3V0W2ldID0gY3R4LT5maW5hbFtpXSAmIHBhZGRpbmdfZ29vZDsKKwkJLyogU2FmZSBjYXN0OiBmb3IgYSBnb29kIHBhZGRpbmcsIEVWUF9NQVhfSVZfTEVOR1RIID49IGIgPj0gcGFkICovCisJCSpvdXRsID0gcGFkZGluZ19nb29kICYgKCh1bnNpZ25lZCBjaGFyKShiIC0gcGFkKSk7CisJCXJldHVybiBwYWRkaW5nX2dvb2QgJiAxOwogCQl9CiAJZWxzZQotCQkqb3V0bD0wOwotCXJldHVybigxKTsKKwkJeworCQkqb3V0bCA9IDA7CisJCXJldHVybiAxOworCQl9CiAJfQogCiB2b2lkIEVWUF9DSVBIRVJfQ1RYX2ZyZWUoRVZQX0NJUEhFUl9DVFggKmN0eCkKQEAgLTY3OCw0ICs2ODUsMyBAQAogCQlyZXR1cm4gaW4tPmNpcGhlci0+Y3RybCgoRVZQX0NJUEhFUl9DVFggKilpbiwgRVZQX0NUUkxfQ09QWSwgMCwgb3V0KTsKIAlyZXR1cm4gMTsKIAl9Ci0KZGlmZiAtLWdpdCBhL2NyeXB0by9ldnAvZXZwX3BiZS5jIGIvY3J5cHRvL2V2cC9ldnBfcGJlLmMKaW5kZXggZjhjMzJkOC4uNTk2OTY5NSAxMDA2NDQKLS0tIGEvY3J5cHRvL2V2cC9ldnBfcGJlLmMKKysrIGIvY3J5cHRvL2V2cC9ldnBfcGJlLmMKQEAgLTI1OSw3ICsyNTksNyBAQAogCXsKIAlpbnQgY2lwaGVyX25pZCwgbWRfbmlkOwogCWlmIChjaXBoZXIpCi0JCWNpcGhlcl9uaWQgPSBFVlBfQ0lQSEVSX3R5cGUoY2lwaGVyKTsKKwkJY2lwaGVyX25pZCA9IEVWUF9DSVBIRVJfbmlkKGNpcGhlcik7CiAJZWxzZQogCQljaXBoZXJfbmlkID0gLTE7CiAJaWYgKG1kKQpkaWZmIC0tZ2l0IGEvY3J5cHRvL21kNS9hc20vbWQ1LXg4Nl82NC5wbCBiL2NyeXB0by9tZDUvYXNtL21kNS14ODZfNjQucGwKaW5kZXggZjExMjI0ZC4uMzgxYmY3NyAxMDA3NTUKLS0tIGEvY3J5cHRvL21kNS9hc20vbWQ1LXg4Nl82NC5wbAorKysgYi9jcnlwdG8vbWQ1L2FzbS9tZDUteDg2XzY0LnBsCkBAIC0xMDgsNiArMTA4LDcgQEAKIEVPRgogfQogCitubyB3YXJuaW5ncyBxdyh1bmluaXRpYWxpemVkKTsKIG15ICRmbGF2b3VyID0gc2hpZnQ7CiBteSAkb3V0cHV0ICA9IHNoaWZ0OwogaWYgKCRmbGF2b3VyID1+IC9cLi8pIHsgJG91dHB1dCA9ICRmbGF2b3VyOyB1bmRlZiAkZmxhdm91cjsgfQpAQCAtMTE5LDcgKzEyMCw2IEBACiAoICR4bGF0ZT0iJHtkaXJ9Li4vLi4vcGVybGFzbS94ODZfNjQteGxhdGUucGwiIGFuZCAtZiAkeGxhdGUpIG9yCiBkaWUgImNhbid0IGxvY2F0ZSB4ODZfNjQteGxhdGUucGwiOwogCi1ubyB3YXJuaW5ncyBxdyh1bmluaXRpYWxpemVkKTsKIG9wZW4gT1VULCJ8IFwiJF5YXCIgJHhsYXRlICRmbGF2b3VyICRvdXRwdXQiOwogKlNURE9VVD0qT1VUOwogCmRpZmYgLS1naXQgYS9jcnlwdG8vb2JqZWN0cy9vYmpfZGF0LmMgYi9jcnlwdG8vb2JqZWN0cy9vYmpfZGF0LmMKaW5kZXggOGEzNDJiYS4uMGIyZjQ0MiAxMDA2NDQKLS0tIGEvY3J5cHRvL29iamVjdHMvb2JqX2RhdC5jCisrKyBiL2NyeXB0by9vYmplY3RzL29ial9kYXQuYwpAQCAtNDcxLDExICs0NzEsMTIgQEAKIAljb25zdCB1bnNpZ25lZCBjaGFyICpwOwogCWNoYXIgdGJ1ZltERUNJTUFMX1NJWkUoaSkrREVDSU1BTF9TSVpFKGwpKzJdOwogCi0JaWYgKChhID09IE5VTEwpIHx8IChhLT5kYXRhID09IE5VTEwpKSB7Ci0JCWJ1ZlswXT0nXDAnOwotCQlyZXR1cm4oMCk7Ci0JfQorCS8qIEVuc3VyZSB0aGF0LCBhdCBldmVyeSBzdGF0ZSwgfGJ1ZnwgaXMgTlVMLXRlcm1pbmF0ZWQuICovCisJaWYgKGJ1ZiAmJiBidWZfbGVuID4gMCkKKwkJYnVmWzBdID0gJ1wwJzsKIAorCWlmICgoYSA9PSBOVUxMKSB8fCAoYS0+ZGF0YSA9PSBOVUxMKSkKKwkJcmV0dXJuKDApOwogCiAJaWYgKCFub19uYW1lICYmIChuaWQ9T0JKX29iajJuaWQoYSkpICE9IE5JRF91bmRlZikKIAkJewpAQCAtNTU0LDkgKzU1NSwxMCBAQAogCQkJCWk9KGludCkobC80MCk7CiAJCQkJbC09KGxvbmcpKGkqNDApOwogCQkJCX0KLQkJCWlmIChidWYgJiYgKGJ1Zl9sZW4gPiAwKSkKKwkJCWlmIChidWYgJiYgKGJ1Zl9sZW4gPiAxKSkKIAkJCQl7CiAJCQkJKmJ1ZisrID0gaSArICcwJzsKKwkJCQkqYnVmID0gJ1wwJzsKIAkJCQlidWZfbGVuLS07CiAJCQkJfQogCQkJbisrOwpAQCAtNTcxLDkgKzU3MywxMCBAQAogCQkJaSA9IHN0cmxlbihibmRlYyk7CiAJCQlpZiAoYnVmKQogCQkJCXsKLQkJCQlpZiAoYnVmX2xlbiA+IDApCisJCQkJaWYgKGJ1Zl9sZW4gPiAxKQogCQkJCQl7CiAJCQkJCSpidWYrKyA9ICcuJzsKKwkJCQkJKmJ1ZiA9ICdcMCc7CiAJCQkJCWJ1Zl9sZW4tLTsKIAkJCQkJfQogCQkJCUJVRl9zdHJsY3B5KGJ1ZixibmRlYyxidWZfbGVuKTsKQEAgLTgwNyw0ICs4MTAsMyBAQAogCU9QRU5TU0xfZnJlZShidWYpOwogCXJldHVybihvayk7CiAJfQotCmRpZmYgLS1naXQgYS9jcnlwdG8vb2JqZWN0cy9vYmpfZGF0LmggYi9jcnlwdG8vb2JqZWN0cy9vYmpfZGF0LmgKaW5kZXggZDQwNGFkMC4uYmM2OTY2NSAxMDA2NDQKLS0tIGEvY3J5cHRvL29iamVjdHMvb2JqX2RhdC5oCisrKyBiL2NyeXB0by9vYmplY3RzL29ial9kYXQuaApAQCAtNjcsMTkwOCArNjcsMTkwMSBAQAogI2RlZmluZSBOVU1fTE4gOTEzCiAjZGVmaW5lIE5VTV9PQkogODU3CiAKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGx2YWx1ZXNbNTk4MF09ewotMHgwMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWyAgMF0gT0JKX3VuZGVmICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwgICAgICAgICAgICAgICAvKiBbICAxXSBPQkpfcnNhZHNpICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLCAgICAgICAgICAvKiBbICA3XSBPQkpfcGtjcyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMiwweDAyLCAgICAgLyogWyAxNF0gT0JKX21kMiAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMiwweDA1LCAgICAgLyogWyAyMl0gT0JKX21kNSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMywweDA0LCAgICAgLyogWyAzMF0gT0JKX3JjNCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLDB4MDEsLyogWyAzOF0gT0JKX3JzYUVuY3J5cHRpb24gKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwMSwweDAyLC8qIFsgNDddIE9CSl9tZDJXaXRoUlNBRW5jcnlwdGlvbiAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLDB4MDQsLyogWyA1Nl0gT0JKX21kNVdpdGhSU0FFbmNyeXB0aW9uICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDUsMHgwMSwvKiBbIDY1XSBPQkpfcGJlV2l0aE1EMkFuZERFU19DQkMgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwNSwweDAzLC8qIFsgNzRdIE9CSl9wYmVXaXRoTUQ1QW5kREVTX0NCQyAqLwotMHg1NSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWyA4M10gT0JKX1g1MDAgKi8KLTB4NTUsMHgwNCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsgODRdIE9CSl9YNTA5ICovCi0weDU1LDB4MDQsMHgwMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbIDg2XSBPQkpfY29tbW9uTmFtZSAqLwotMHg1NSwweDA0LDB4MDYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWyA4OV0gT0JKX2NvdW50cnlOYW1lICovCi0weDU1LDB4MDQsMHgwNywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbIDkyXSBPQkpfbG9jYWxpdHlOYW1lICovCi0weDU1LDB4MDQsMHgwOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbIDk1XSBPQkpfc3RhdGVPclByb3ZpbmNlTmFtZSAqLwotMHg1NSwweDA0LDB4MEEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWyA5OF0gT0JKX29yZ2FuaXphdGlvbk5hbWUgKi8KLTB4NTUsMHgwNCwweDBCLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsxMDFdIE9CSl9vcmdhbml6YXRpb25hbFVuaXROYW1lICovCi0weDU1LDB4MDgsMHgwMSwweDAxLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMTA0XSBPQkpfcnNhICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDcsICAgICAvKiBbMTA4XSBPQkpfcGtjczcgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwNywweDAxLC8qIFsxMTZdIE9CSl9wa2NzN19kYXRhICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDcsMHgwMiwvKiBbMTI1XSBPQkpfcGtjczdfc2lnbmVkICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDcsMHgwMywvKiBbMTM0XSBPQkpfcGtjczdfZW52ZWxvcGVkICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDcsMHgwNCwvKiBbMTQzXSBPQkpfcGtjczdfc2lnbmVkQW5kRW52ZWxvcGVkICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDcsMHgwNSwvKiBbMTUyXSBPQkpfcGtjczdfZGlnZXN0ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDcsMHgwNiwvKiBbMTYxXSBPQkpfcGtjczdfZW5jcnlwdGVkICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDMsICAgICAvKiBbMTcwXSBPQkpfcGtjczMgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwMywweDAxLC8qIFsxNzhdIE9CSl9kaEtleUFncmVlbWVudCAqLwotMHgyQiwweDBFLDB4MDMsMHgwMiwweDA2LCAgICAgICAgICAgICAgICAgICAgLyogWzE4N10gT0JKX2Rlc19lY2IgKi8KLTB4MkIsMHgwRSwweDAzLDB4MDIsMHgwOSwgICAgICAgICAgICAgICAgICAgIC8qIFsxOTJdIE9CSl9kZXNfY2ZiNjQgKi8KLTB4MkIsMHgwRSwweDAzLDB4MDIsMHgwNywgICAgICAgICAgICAgICAgICAgIC8qIFsxOTddIE9CSl9kZXNfY2JjICovCi0weDJCLDB4MEUsMHgwMywweDAyLDB4MTEsICAgICAgICAgICAgICAgICAgICAvKiBbMjAyXSBPQkpfZGVzX2VkZV9lY2IgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDQsMHgwMSwweDgxLDB4M0MsMHgwNywweDAxLDB4MDEsMHgwMiwvKiBbMjA3XSBPQkpfaWRlYV9jYmMgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDMsMHgwMiwgICAgIC8qIFsyMThdIE9CSl9yYzJfY2JjICovCi0weDJCLDB4MEUsMHgwMywweDAyLDB4MTIsICAgICAgICAgICAgICAgICAgICAvKiBbMjI2XSBPQkpfc2hhICovCi0weDJCLDB4MEUsMHgwMywweDAyLDB4MEYsICAgICAgICAgICAgICAgICAgICAvKiBbMjMxXSBPQkpfc2hhV2l0aFJTQUVuY3J5cHRpb24gKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDMsMHgwNywgICAgIC8qIFsyMzZdIE9CSl9kZXNfZWRlM19jYmMgKi8KLTB4MkIsMHgwRSwweDAzLDB4MDIsMHgwOCwgICAgICAgICAgICAgICAgICAgIC8qIFsyNDRdIE9CSl9kZXNfb2ZiNjQgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwgICAgIC8qIFsyNDldIE9CSl9wa2NzOSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MDEsLyogWzI1N10gT0JKX3BrY3M5X2VtYWlsQWRkcmVzcyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MDIsLyogWzI2Nl0gT0JKX3BrY3M5X3Vuc3RydWN0dXJlZE5hbWUgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDAzLC8qIFsyNzVdIE9CSl9wa2NzOV9jb250ZW50VHlwZSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MDQsLyogWzI4NF0gT0JKX3BrY3M5X21lc3NhZ2VEaWdlc3QgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDA1LC8qIFsyOTNdIE9CSl9wa2NzOV9zaWduaW5nVGltZSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MDYsLyogWzMwMl0gT0JKX3BrY3M5X2NvdW50ZXJzaWduYXR1cmUgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDA3LC8qIFszMTFdIE9CSl9wa2NzOV9jaGFsbGVuZ2VQYXNzd29yZCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MDgsLyogWzMyMF0gT0JKX3BrY3M5X3Vuc3RydWN0dXJlZEFkZHJlc3MgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDA5LC8qIFszMjldIE9CSl9wa2NzOV9leHRDZXJ0QXR0cmlidXRlcyAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDg2LDB4RjgsMHg0MiwgICAgICAgICAgLyogWzMzOF0gT0JKX25ldHNjYXBlICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4ODYsMHhGOCwweDQyLDB4MDEsICAgICAvKiBbMzQ1XSBPQkpfbmV0c2NhcGVfY2VydF9leHRlbnNpb24gKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg4NiwweEY4LDB4NDIsMHgwMiwgICAgIC8qIFszNTNdIE9CSl9uZXRzY2FwZV9kYXRhX3R5cGUgKi8KLTB4MkIsMHgwRSwweDAzLDB4MDIsMHgxQSwgICAgICAgICAgICAgICAgICAgIC8qIFszNjFdIE9CSl9zaGExICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDEsMHgwNSwvKiBbMzY2XSBPQkpfc2hhMVdpdGhSU0FFbmNyeXB0aW9uICovCi0weDJCLDB4MEUsMHgwMywweDAyLDB4MEQsICAgICAgICAgICAgICAgICAgICAvKiBbMzc1XSBPQkpfZHNhV2l0aFNIQSAqLwotMHgyQiwweDBFLDB4MDMsMHgwMiwweDBDLCAgICAgICAgICAgICAgICAgICAgLyogWzM4MF0gT0JKX2RzYV8yICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDUsMHgwQiwvKiBbMzg1XSBPQkpfcGJlV2l0aFNIQTFBbmRSQzJfQ0JDICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDUsMHgwQywvKiBbMzk0XSBPQkpfaWRfcGJrZGYyICovCi0weDJCLDB4MEUsMHgwMywweDAyLDB4MUIsICAgICAgICAgICAgICAgICAgICAvKiBbNDAzXSBPQkpfZHNhV2l0aFNIQTFfMiAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDg2LDB4RjgsMHg0MiwweDAxLDB4MDEsLyogWzQwOF0gT0JKX25ldHNjYXBlX2NlcnRfdHlwZSAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDg2LDB4RjgsMHg0MiwweDAxLDB4MDIsLyogWzQxN10gT0JKX25ldHNjYXBlX2Jhc2VfdXJsICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4ODYsMHhGOCwweDQyLDB4MDEsMHgwMywvKiBbNDI2XSBPQkpfbmV0c2NhcGVfcmV2b2NhdGlvbl91cmwgKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg4NiwweEY4LDB4NDIsMHgwMSwweDA0LC8qIFs0MzVdIE9CSl9uZXRzY2FwZV9jYV9yZXZvY2F0aW9uX3VybCAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDg2LDB4RjgsMHg0MiwweDAxLDB4MDcsLyogWzQ0NF0gT0JKX25ldHNjYXBlX3JlbmV3YWxfdXJsICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4ODYsMHhGOCwweDQyLDB4MDEsMHgwOCwvKiBbNDUzXSBPQkpfbmV0c2NhcGVfY2FfcG9saWN5X3VybCAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDg2LDB4RjgsMHg0MiwweDAxLDB4MEMsLyogWzQ2Ml0gT0JKX25ldHNjYXBlX3NzbF9zZXJ2ZXJfbmFtZSAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDg2LDB4RjgsMHg0MiwweDAxLDB4MEQsLyogWzQ3MV0gT0JKX25ldHNjYXBlX2NvbW1lbnQgKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg4NiwweEY4LDB4NDIsMHgwMiwweDA1LC8qIFs0ODBdIE9CSl9uZXRzY2FwZV9jZXJ0X3NlcXVlbmNlICovCi0weDU1LDB4MUQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDg5XSBPQkpfaWRfY2UgKi8KLTB4NTUsMHgxRCwweDBFLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0OTFdIE9CSl9zdWJqZWN0X2tleV9pZGVudGlmaWVyICovCi0weDU1LDB4MUQsMHgwRiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDk0XSBPQkpfa2V5X3VzYWdlICovCi0weDU1LDB4MUQsMHgxMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDk3XSBPQkpfcHJpdmF0ZV9rZXlfdXNhZ2VfcGVyaW9kICovCi0weDU1LDB4MUQsMHgxMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTAwXSBPQkpfc3ViamVjdF9hbHRfbmFtZSAqLwotMHg1NSwweDFELDB4MTIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUwM10gT0JKX2lzc3Vlcl9hbHRfbmFtZSAqLwotMHg1NSwweDFELDB4MTMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUwNl0gT0JKX2Jhc2ljX2NvbnN0cmFpbnRzICovCi0weDU1LDB4MUQsMHgxNCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTA5XSBPQkpfY3JsX251bWJlciAqLwotMHg1NSwweDFELDB4MjAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUxMl0gT0JKX2NlcnRpZmljYXRlX3BvbGljaWVzICovCi0weDU1LDB4MUQsMHgyMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTE1XSBPQkpfYXV0aG9yaXR5X2tleV9pZGVudGlmaWVyICovCi0weDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsMHg5NywweDU1LDB4MDEsMHgwMiwvKiBbNTE4XSBPQkpfYmZfY2JjICovCi0weDU1LDB4MDgsMHgwMywweDY1LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTI3XSBPQkpfbWRjMiAqLwotMHg1NSwweDA4LDB4MDMsMHg2NCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUzMV0gT0JKX21kYzJXaXRoUlNBICovCi0weDU1LDB4MDQsMHgyQSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTM1XSBPQkpfZ2l2ZW5OYW1lICovCi0weDU1LDB4MDQsMHgwNCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTM4XSBPQkpfc3VybmFtZSAqLwotMHg1NSwweDA0LDB4MkIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU0MV0gT0JKX2luaXRpYWxzICovCi0weDU1LDB4MUQsMHgxRiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTQ0XSBPQkpfY3JsX2Rpc3RyaWJ1dGlvbl9wb2ludHMgKi8KLTB4MkIsMHgwRSwweDAzLDB4MDIsMHgwMywgICAgICAgICAgICAgICAgICAgIC8qIFs1NDddIE9CSl9tZDVXaXRoUlNBICovCi0weDU1LDB4MDQsMHgwNSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTUyXSBPQkpfc2VyaWFsTnVtYmVyICovCi0weDU1LDB4MDQsMHgwQywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTU1XSBPQkpfdGl0bGUgKi8KLTB4NTUsMHgwNCwweDBELCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NThdIE9CSl9kZXNjcmlwdGlvbiAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY2LDB4N0QsMHgwNywweDQyLDB4MEEsLyogWzU2MV0gT0JKX2Nhc3Q1X2NiYyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY2LDB4N0QsMHgwNywweDQyLDB4MEMsLyogWzU3MF0gT0JKX3BiZVdpdGhNRDVBbmRDYXN0NV9DQkMgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzOCwweDA0LDB4MDMsICAgICAgICAgIC8qIFs1NzldIE9CSl9kc2FXaXRoU0hBMSAqLwotMHgyQiwweDBFLDB4MDMsMHgwMiwweDFELCAgICAgICAgICAgICAgICAgICAgLyogWzU4Nl0gT0JKX3NoYTFXaXRoUlNBICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4MzgsMHgwNCwweDAxLCAgICAgICAgICAvKiBbNTkxXSBPQkpfZHNhICovCi0weDJCLDB4MjQsMHgwMywweDAyLDB4MDEsICAgICAgICAgICAgICAgICAgICAvKiBbNTk4XSBPQkpfcmlwZW1kMTYwICovCi0weDJCLDB4MjQsMHgwMywweDAzLDB4MDEsMHgwMiwgICAgICAgICAgICAgICAvKiBbNjAzXSBPQkpfcmlwZW1kMTYwV2l0aFJTQSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMywweDA4LCAgICAgLyogWzYwOV0gT0JKX3JjNV9jYmMgKi8KLTB4MjksMHgwMSwweDAxLDB4ODUsMHgxQSwweDAxLCAgICAgICAgICAgICAgIC8qIFs2MTddIE9CSl9ybGVfY29tcHJlc3Npb24gKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDMsMHgwOCwvKiBbNjIzXSBPQkpfemxpYl9jb21wcmVzc2lvbiAqLwotMHg1NSwweDFELDB4MjUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzYzNF0gT0JKX2V4dF9rZXlfdXNhZ2UgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LCAgICAgICAgICAgICAgIC8qIFs2MzddIE9CSl9pZF9wa2l4ICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAzLCAgICAgICAgICAvKiBbNjQzXSBPQkpfaWRfa3AgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDMsMHgwMSwgICAgIC8qIFs2NTBdIE9CSl9zZXJ2ZXJfYXV0aCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMywweDAyLCAgICAgLyogWzY1OF0gT0JKX2NsaWVudF9hdXRoICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAzLDB4MDMsICAgICAvKiBbNjY2XSBPQkpfY29kZV9zaWduICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAzLDB4MDQsICAgICAvKiBbNjc0XSBPQkpfZW1haWxfcHJvdGVjdCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMywweDA4LCAgICAgLyogWzY4Ml0gT0JKX3RpbWVfc3RhbXAgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDQsMHgwMSwweDgyLDB4MzcsMHgwMiwweDAxLDB4MTUsLyogWzY5MF0gT0JKX21zX2NvZGVfaW5kICovCi0weDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsMHg4MiwweDM3LDB4MDIsMHgwMSwweDE2LC8qIFs3MDBdIE9CSl9tc19jb2RlX2NvbSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNCwweDAxLDB4ODIsMHgzNywweDBBLDB4MDMsMHgwMSwvKiBbNzEwXSBPQkpfbXNfY3RsX3NpZ24gKi8KLTB4MkIsMHgwNiwweDAxLDB4MDQsMHgwMSwweDgyLDB4MzcsMHgwQSwweDAzLDB4MDMsLyogWzcyMF0gT0JKX21zX3NnYyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNCwweDAxLDB4ODIsMHgzNywweDBBLDB4MDMsMHgwNCwvKiBbNzMwXSBPQkpfbXNfZWZzICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4ODYsMHhGOCwweDQyLDB4MDQsMHgwMSwvKiBbNzQwXSBPQkpfbnNfc2djICovCi0weDU1LDB4MUQsMHgxQiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNzQ5XSBPQkpfZGVsdGFfY3JsICovCi0weDU1LDB4MUQsMHgxNSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNzUyXSBPQkpfY3JsX3JlYXNvbiAqLwotMHg1NSwweDFELDB4MTgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzc1NV0gT0JKX2ludmFsaWRpdHlfZGF0ZSAqLwotMHgyQiwweDY1LDB4MDEsMHgwNCwweDAxLCAgICAgICAgICAgICAgICAgICAgLyogWzc1OF0gT0JKX3N4bmV0ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MEMsMHgwMSwweDAxLC8qIFs3NjNdIE9CSl9wYmVfV2l0aFNIQTFBbmQxMjhCaXRSQzQgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwQywweDAxLDB4MDIsLyogWzc3M10gT0JKX3BiZV9XaXRoU0hBMUFuZDQwQml0UkM0ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MEMsMHgwMSwweDAzLC8qIFs3ODNdIE9CSl9wYmVfV2l0aFNIQTFBbmQzX0tleV9UcmlwbGVERVNfQ0JDICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MEMsMHgwMSwweDA0LC8qIFs3OTNdIE9CSl9wYmVfV2l0aFNIQTFBbmQyX0tleV9UcmlwbGVERVNfQ0JDICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MEMsMHgwMSwweDA1LC8qIFs4MDNdIE9CSl9wYmVfV2l0aFNIQTFBbmQxMjhCaXRSQzJfQ0JDICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MEMsMHgwMSwweDA2LC8qIFs4MTNdIE9CSl9wYmVfV2l0aFNIQTFBbmQ0MEJpdFJDMl9DQkMgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwQywweDBBLDB4MDEsMHgwMSwvKiBbODIzXSBPQkpfa2V5QmFnICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MEMsMHgwQSwweDAxLDB4MDIsLyogWzgzNF0gT0JKX3BrY3M4U2hyb3VkZWRLZXlCYWcgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwQywweDBBLDB4MDEsMHgwMywvKiBbODQ1XSBPQkpfY2VydEJhZyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDBDLDB4MEEsMHgwMSwweDA0LC8qIFs4NTZdIE9CSl9jcmxCYWcgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwQywweDBBLDB4MDEsMHgwNSwvKiBbODY3XSBPQkpfc2VjcmV0QmFnICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MEMsMHgwQSwweDAxLDB4MDYsLyogWzg3OF0gT0JKX3NhZmVDb250ZW50c0JhZyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTQsLyogWzg4OV0gT0JKX2ZyaWVuZGx5TmFtZSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTUsLyogWzg5OF0gT0JKX2xvY2FsS2V5SUQgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDE2LDB4MDEsLyogWzkwN10gT0JKX3g1MDlDZXJ0aWZpY2F0ZSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTYsMHgwMiwvKiBbOTE3XSBPQkpfc2RzaUNlcnRpZmljYXRlICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxNywweDAxLC8qIFs5MjddIE9CSl94NTA5Q3JsICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDUsMHgwRCwvKiBbOTM3XSBPQkpfcGJlczIgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwNSwweDBFLC8qIFs5NDZdIE9CSl9wYm1hYzEgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDIsMHgwNywgICAgIC8qIFs5NTVdIE9CSl9obWFjV2l0aFNIQTEgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDIsMHgwMSwgICAgIC8qIFs5NjNdIE9CSl9pZF9xdF9jcHMgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDIsMHgwMiwgICAgIC8qIFs5NzFdIE9CSl9pZF9xdF91bm90aWNlICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgwRiwvKiBbOTc5XSBPQkpfU01JTUVDYXBhYmlsaXRpZXMgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwNSwweDA0LC8qIFs5ODhdIE9CSl9wYmVXaXRoTUQyQW5kUkMyX0NCQyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA1LDB4MDYsLyogWzk5N10gT0JKX3BiZVdpdGhNRDVBbmRSQzJfQ0JDICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDUsMHgwQSwvKiBbMTAwNl0gT0JKX3BiZVdpdGhTSEExQW5kREVTX0NCQyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNCwweDAxLDB4ODIsMHgzNywweDAyLDB4MDEsMHgwRSwvKiBbMTAxNV0gT0JKX21zX2V4dF9yZXEgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDBFLC8qIFsxMDI1XSBPQkpfZXh0X3JlcSAqLwotMHg1NSwweDA0LDB4MjksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzEwMzRdIE9CSl9uYW1lICovCi0weDU1LDB4MDQsMHgyRSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMTAzN10gT0JKX2RuUXVhbGlmaWVyICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLCAgICAgICAgICAvKiBbMTA0MF0gT0JKX2lkX3BlICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDMwLCAgICAgICAgICAvKiBbMTA0N10gT0JKX2lkX2FkICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLDB4MDEsICAgICAvKiBbMTA1NF0gT0JKX2luZm9fYWNjZXNzICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDMwLDB4MDEsICAgICAvKiBbMTA2Ml0gT0JKX2FkX09DU1AgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMiwgICAgIC8qIFsxMDcwXSBPQkpfYWRfY2FfaXNzdWVycyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMywweDA5LCAgICAgLyogWzEwNzhdIE9CSl9PQ1NQX3NpZ24gKi8KLTB4MjgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsxMDg2XSBPQkpfaXNvICovCi0weDJBLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMTA4N10gT0JKX21lbWJlcl9ib2R5ICovCi0weDJBLDB4ODYsMHg0OCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMTA4OF0gT0JKX0lTT19VUyAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDM4LCAgICAgICAgICAgICAgICAgICAgLyogWzEwOTFdIE9CSl9YOV81NyAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDM4LDB4MDQsICAgICAgICAgICAgICAgLyogWzEwOTZdIE9CSl9YOWNtICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDEsICAgICAvKiBbMTEwMl0gT0JKX3BrY3MxICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDUsICAgICAvKiBbMTExMF0gT0JKX3BrY3M1ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwvKiBbMTExOF0gT0JKX1NNSU1FICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAwLC8qIFsxMTI3XSBPQkpfaWRfc21pbWVfbW9kICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAxLC8qIFsxMTM3XSBPQkpfaWRfc21pbWVfY3QgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsLyogWzExNDddIE9CSl9pZF9zbWltZV9hYSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMywvKiBbMTE1N10gT0JKX2lkX3NtaW1lX2FsZyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwNCwvKiBbMTE2N10gT0JKX2lkX3NtaW1lX2NkICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDA1LC8qIFsxMTc3XSBPQkpfaWRfc21pbWVfc3BxICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDA2LC8qIFsxMTg3XSBPQkpfaWRfc21pbWVfY3RpICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAwLDB4MDEsLyogWzExOTddIE9CSl9pZF9zbWltZV9tb2RfY21zICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAwLDB4MDIsLyogWzEyMDhdIE9CSl9pZF9zbWltZV9tb2RfZXNzICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAwLDB4MDMsLyogWzEyMTldIE9CSl9pZF9zbWltZV9tb2Rfb2lkICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAwLDB4MDQsLyogWzEyMzBdIE9CSl9pZF9zbWltZV9tb2RfbXNnX3YzICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAwLDB4MDUsLyogWzEyNDFdIE9CSl9pZF9zbWltZV9tb2RfZXRzX2VTaWduYXR1cmVfODggKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDAsMHgwNiwvKiBbMTI1Ml0gT0JKX2lkX3NtaW1lX21vZF9ldHNfZVNpZ25hdHVyZV85NyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMCwweDA3LC8qIFsxMjYzXSBPQkpfaWRfc21pbWVfbW9kX2V0c19lU2lnUG9saWN5Xzg4ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAwLDB4MDgsLyogWzEyNzRdIE9CSl9pZF9zbWltZV9tb2RfZXRzX2VTaWdQb2xpY3lfOTcgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDEsMHgwMSwvKiBbMTI4NV0gT0JKX2lkX3NtaW1lX2N0X3JlY2VpcHQgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDEsMHgwMiwvKiBbMTI5Nl0gT0JKX2lkX3NtaW1lX2N0X2F1dGhEYXRhICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAxLDB4MDMsLyogWzEzMDddIE9CSl9pZF9zbWltZV9jdF9wdWJsaXNoQ2VydCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMSwweDA0LC8qIFsxMzE4XSBPQkpfaWRfc21pbWVfY3RfVFNUSW5mbyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMSwweDA1LC8qIFsxMzI5XSBPQkpfaWRfc21pbWVfY3RfVERUSW5mbyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMSwweDA2LC8qIFsxMzQwXSBPQkpfaWRfc21pbWVfY3RfY29udGVudEluZm8gKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDEsMHgwNywvKiBbMTM1MV0gT0JKX2lkX3NtaW1lX2N0X0RWQ1NSZXF1ZXN0RGF0YSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMSwweDA4LC8qIFsxMzYyXSBPQkpfaWRfc21pbWVfY3RfRFZDU1Jlc3BvbnNlRGF0YSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDAxLC8qIFsxMzczXSBPQkpfaWRfc21pbWVfYWFfcmVjZWlwdFJlcXVlc3QgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgwMiwvKiBbMTM4NF0gT0JKX2lkX3NtaW1lX2FhX3NlY3VyaXR5TGFiZWwgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgwMywvKiBbMTM5NV0gT0JKX2lkX3NtaW1lX2FhX21sRXhwYW5kSGlzdG9yeSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDA0LC8qIFsxNDA2XSBPQkpfaWRfc21pbWVfYWFfY29udGVudEhpbnQgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgwNSwvKiBbMTQxN10gT0JKX2lkX3NtaW1lX2FhX21zZ1NpZ0RpZ2VzdCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDA2LC8qIFsxNDI4XSBPQkpfaWRfc21pbWVfYWFfZW5jYXBDb250ZW50VHlwZSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDA3LC8qIFsxNDM5XSBPQkpfaWRfc21pbWVfYWFfY29udGVudElkZW50aWZpZXIgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgwOCwvKiBbMTQ1MF0gT0JKX2lkX3NtaW1lX2FhX21hY1ZhbHVlICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MDksLyogWzE0NjFdIE9CSl9pZF9zbWltZV9hYV9lcXVpdmFsZW50TGFiZWxzICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MEEsLyogWzE0NzJdIE9CSl9pZF9zbWltZV9hYV9jb250ZW50UmVmZXJlbmNlICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MEIsLyogWzE0ODNdIE9CSl9pZF9zbWltZV9hYV9lbmNyeXBLZXlQcmVmICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MEMsLyogWzE0OTRdIE9CSl9pZF9zbWltZV9hYV9zaWduaW5nQ2VydGlmaWNhdGUgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgwRCwvKiBbMTUwNV0gT0JKX2lkX3NtaW1lX2FhX3NtaW1lRW5jcnlwdENlcnRzICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MEUsLyogWzE1MTZdIE9CSl9pZF9zbWltZV9hYV90aW1lU3RhbXBUb2tlbiAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDBGLC8qIFsxNTI3XSBPQkpfaWRfc21pbWVfYWFfZXRzX3NpZ1BvbGljeUlkICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MTAsLyogWzE1MzhdIE9CSl9pZF9zbWltZV9hYV9ldHNfY29tbWl0bWVudFR5cGUgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgxMSwvKiBbMTU0OV0gT0JKX2lkX3NtaW1lX2FhX2V0c19zaWduZXJMb2NhdGlvbiAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDEyLC8qIFsxNTYwXSBPQkpfaWRfc21pbWVfYWFfZXRzX3NpZ25lckF0dHIgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgxMywvKiBbMTU3MV0gT0JKX2lkX3NtaW1lX2FhX2V0c19vdGhlclNpZ0NlcnQgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgxNCwvKiBbMTU4Ml0gT0JKX2lkX3NtaW1lX2FhX2V0c19jb250ZW50VGltZXN0YW1wICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MTUsLyogWzE1OTNdIE9CSl9pZF9zbWltZV9hYV9ldHNfQ2VydGlmaWNhdGVSZWZzICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MTYsLyogWzE2MDRdIE9CSl9pZF9zbWltZV9hYV9ldHNfUmV2b2NhdGlvblJlZnMgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgxNywvKiBbMTYxNV0gT0JKX2lkX3NtaW1lX2FhX2V0c19jZXJ0VmFsdWVzICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MTgsLyogWzE2MjZdIE9CSl9pZF9zbWltZV9hYV9ldHNfcmV2b2NhdGlvblZhbHVlcyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDE5LC8qIFsxNjM3XSBPQkpfaWRfc21pbWVfYWFfZXRzX2VzY1RpbWVTdGFtcCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDFBLC8qIFsxNjQ4XSBPQkpfaWRfc21pbWVfYWFfZXRzX2NlcnRDUkxUaW1lc3RhbXAgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgxQiwvKiBbMTY1OV0gT0JKX2lkX3NtaW1lX2FhX2V0c19hcmNoaXZlVGltZVN0YW1wICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MUMsLyogWzE2NzBdIE9CSl9pZF9zbWltZV9hYV9zaWduYXR1cmVUeXBlICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MUQsLyogWzE2ODFdIE9CSl9pZF9zbWltZV9hYV9kdmNzX2R2YyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMywweDAxLC8qIFsxNjkyXSBPQkpfaWRfc21pbWVfYWxnX0VTREh3aXRoM0RFUyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMywweDAyLC8qIFsxNzAzXSBPQkpfaWRfc21pbWVfYWxnX0VTREh3aXRoUkMyICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAzLDB4MDMsLyogWzE3MTRdIE9CSl9pZF9zbWltZV9hbGdfM0RFU3dyYXAgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDMsMHgwNCwvKiBbMTcyNV0gT0JKX2lkX3NtaW1lX2FsZ19SQzJ3cmFwICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAzLDB4MDUsLyogWzE3MzZdIE9CSl9pZF9zbWltZV9hbGdfRVNESCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMywweDA2LC8qIFsxNzQ3XSBPQkpfaWRfc21pbWVfYWxnX0NNUzNERVN3cmFwICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAzLDB4MDcsLyogWzE3NThdIE9CSl9pZF9zbWltZV9hbGdfQ01TUkMyd3JhcCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwNCwweDAxLC8qIFsxNzY5XSBPQkpfaWRfc21pbWVfY2RfbGRhcCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwNSwweDAxLC8qIFsxNzgwXSBPQkpfaWRfc21pbWVfc3BxX2V0c19zcXRfdXJpICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDA1LDB4MDIsLyogWzE3OTFdIE9CSl9pZF9zbWltZV9zcHFfZXRzX3NxdF91bm90aWNlICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDA2LDB4MDEsLyogWzE4MDJdIE9CSl9pZF9zbWltZV9jdGlfZXRzX3Byb29mT2ZPcmlnaW4gKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDYsMHgwMiwvKiBbMTgxM10gT0JKX2lkX3NtaW1lX2N0aV9ldHNfcHJvb2ZPZlJlY2VpcHQgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDYsMHgwMywvKiBbMTgyNF0gT0JKX2lkX3NtaW1lX2N0aV9ldHNfcHJvb2ZPZkRlbGl2ZXJ5ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDA2LDB4MDQsLyogWzE4MzVdIE9CSl9pZF9zbWltZV9jdGlfZXRzX3Byb29mT2ZTZW5kZXIgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDYsMHgwNSwvKiBbMTg0Nl0gT0JKX2lkX3NtaW1lX2N0aV9ldHNfcHJvb2ZPZkFwcHJvdmFsICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDA2LDB4MDYsLyogWzE4NTddIE9CSl9pZF9zbWltZV9jdGlfZXRzX3Byb29mT2ZDcmVhdGlvbiAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMiwweDA0LCAgICAgLyogWzE4NjhdIE9CSl9tZDQgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsICAgICAgICAgIC8qIFsxODc2XSBPQkpfaWRfcGtpeF9tb2QgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDIsICAgICAgICAgIC8qIFsxODgzXSBPQkpfaWRfcXQgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsICAgICAgICAgIC8qIFsxODkwXSBPQkpfaWRfaXQgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDUsICAgICAgICAgIC8qIFsxODk3XSBPQkpfaWRfcGtpcCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNiwgICAgICAgICAgLyogWzE5MDRdIE9CSl9pZF9hbGcgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsICAgICAgICAgIC8qIFsxOTExXSBPQkpfaWRfY21jICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA4LCAgICAgICAgICAvKiBbMTkxOF0gT0JKX2lkX29uICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA5LCAgICAgICAgICAvKiBbMTkyNV0gT0JKX2lkX3BkYSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwQSwgICAgICAgICAgLyogWzE5MzJdIE9CSl9pZF9hY2EgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MEIsICAgICAgICAgIC8qIFsxOTM5XSBPQkpfaWRfcWNzICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDBDLCAgICAgICAgICAvKiBbMTk0Nl0gT0JKX2lkX2NjdCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDAxLCAgICAgLyogWzE5NTNdIE9CSl9pZF9wa2l4MV9leHBsaWNpdF84OCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDAyLCAgICAgLyogWzE5NjFdIE9CSl9pZF9wa2l4MV9pbXBsaWNpdF84OCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDAzLCAgICAgLyogWzE5NjldIE9CSl9pZF9wa2l4MV9leHBsaWNpdF85MyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDA0LCAgICAgLyogWzE5NzddIE9CSl9pZF9wa2l4MV9pbXBsaWNpdF85MyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDA1LCAgICAgLyogWzE5ODVdIE9CSl9pZF9tb2RfY3JtZiAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDA2LCAgICAgLyogWzE5OTNdIE9CSl9pZF9tb2RfY21jICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAwLDB4MDcsICAgICAvKiBbMjAwMV0gT0JKX2lkX21vZF9rZWFfcHJvZmlsZV84OCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDA4LCAgICAgLyogWzIwMDldIE9CSl9pZF9tb2Rfa2VhX3Byb2ZpbGVfOTMgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwOSwgICAgIC8qIFsyMDE3XSBPQkpfaWRfbW9kX2NtcCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDBBLCAgICAgLyogWzIwMjVdIE9CSl9pZF9tb2RfcXVhbGlmaWVkX2NlcnRfODggKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwQiwgICAgIC8qIFsyMDMzXSBPQkpfaWRfbW9kX3F1YWxpZmllZF9jZXJ0XzkzICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAwLDB4MEMsICAgICAvKiBbMjA0MV0gT0JKX2lkX21vZF9hdHRyaWJ1dGVfY2VydCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDBELCAgICAgLyogWzIwNDldIE9CSl9pZF9tb2RfdGltZXN0YW1wX3Byb3RvY29sICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAwLDB4MEUsICAgICAvKiBbMjA1N10gT0JKX2lkX21vZF9vY3NwICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAwLDB4MEYsICAgICAvKiBbMjA2NV0gT0JKX2lkX21vZF9kdmNzICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAwLDB4MTAsICAgICAvKiBbMjA3M10gT0JKX2lkX21vZF9jbXAyMDAwICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLDB4MDIsICAgICAvKiBbMjA4MV0gT0JKX2Jpb21ldHJpY0luZm8gKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDEsMHgwMywgICAgIC8qIFsyMDg5XSBPQkpfcWNTdGF0ZW1lbnRzICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLDB4MDQsICAgICAvKiBbMjA5N10gT0JKX2FjX2F1ZGl0RW50aXR5ICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLDB4MDUsICAgICAvKiBbMjEwNV0gT0JKX2FjX3RhcmdldGluZyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMSwweDA2LCAgICAgLyogWzIxMTNdIE9CSl9hYUNvbnRyb2xzICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLDB4MDcsICAgICAvKiBbMjEyMV0gT0JKX3NiZ3BfaXBBZGRyQmxvY2sgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDEsMHgwOCwgICAgIC8qIFsyMTI5XSBPQkpfc2JncF9hdXRvbm9tb3VzU3lzTnVtICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLDB4MDksICAgICAvKiBbMjEzN10gT0JKX3NiZ3Bfcm91dGVySWRlbnRpZmllciAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMiwweDAzLCAgICAgLyogWzIxNDVdIE9CSl90ZXh0Tm90aWNlICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAzLDB4MDUsICAgICAvKiBbMjE1M10gT0JKX2lwc2VjRW5kU3lzdGVtICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAzLDB4MDYsICAgICAvKiBbMjE2MV0gT0JKX2lwc2VjVHVubmVsICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAzLDB4MDcsICAgICAvKiBbMjE2OV0gT0JKX2lwc2VjVXNlciAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMywweDBBLCAgICAgLyogWzIxNzddIE9CSl9kdmNzICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LDB4MDEsICAgICAvKiBbMjE4NV0gT0JKX2lkX2l0X2NhUHJvdEVuY0NlcnQgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwMiwgICAgIC8qIFsyMTkzXSBPQkpfaWRfaXRfc2lnbktleVBhaXJUeXBlcyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNCwweDAzLCAgICAgLyogWzIyMDFdIE9CSl9pZF9pdF9lbmNLZXlQYWlyVHlwZXMgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwNCwgICAgIC8qIFsyMjA5XSBPQkpfaWRfaXRfcHJlZmVycmVkU3ltbUFsZyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNCwweDA1LCAgICAgLyogWzIyMTddIE9CSl9pZF9pdF9jYUtleVVwZGF0ZUluZm8gKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwNiwgICAgIC8qIFsyMjI1XSBPQkpfaWRfaXRfY3VycmVudENSTCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNCwweDA3LCAgICAgLyogWzIyMzNdIE9CSl9pZF9pdF91bnN1cHBvcnRlZE9JRHMgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwOCwgICAgIC8qIFsyMjQxXSBPQkpfaWRfaXRfc3Vic2NyaXB0aW9uUmVxdWVzdCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNCwweDA5LCAgICAgLyogWzIyNDldIE9CSl9pZF9pdF9zdWJzY3JpcHRpb25SZXNwb25zZSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNCwweDBBLCAgICAgLyogWzIyNTddIE9CSl9pZF9pdF9rZXlQYWlyUGFyYW1SZXEgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwQiwgICAgIC8qIFsyMjY1XSBPQkpfaWRfaXRfa2V5UGFpclBhcmFtUmVwICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LDB4MEMsICAgICAvKiBbMjI3M10gT0JKX2lkX2l0X3JldlBhc3NwaHJhc2UgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwRCwgICAgIC8qIFsyMjgxXSBPQkpfaWRfaXRfaW1wbGljaXRDb25maXJtICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LDB4MEUsICAgICAvKiBbMjI4OV0gT0JKX2lkX2l0X2NvbmZpcm1XYWl0VGltZSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNCwweDBGLCAgICAgLyogWzIyOTddIE9CSl9pZF9pdF9vcmlnUEtJTWVzc2FnZSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNSwweDAxLCAgICAgLyogWzIzMDVdIE9CSl9pZF9yZWdDdHJsICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA1LDB4MDIsICAgICAvKiBbMjMxM10gT0JKX2lkX3JlZ0luZm8gKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDUsMHgwMSwweDAxLC8qIFsyMzIxXSBPQkpfaWRfcmVnQ3RybF9yZWdUb2tlbiAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNSwweDAxLDB4MDIsLyogWzIzMzBdIE9CSl9pZF9yZWdDdHJsX2F1dGhlbnRpY2F0b3IgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDUsMHgwMSwweDAzLC8qIFsyMzM5XSBPQkpfaWRfcmVnQ3RybF9wa2lQdWJsaWNhdGlvbkluZm8gKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDUsMHgwMSwweDA0LC8qIFsyMzQ4XSBPQkpfaWRfcmVnQ3RybF9wa2lBcmNoaXZlT3B0aW9ucyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNSwweDAxLDB4MDUsLyogWzIzNTddIE9CSl9pZF9yZWdDdHJsX29sZENlcnRJRCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNSwweDAxLDB4MDYsLyogWzIzNjZdIE9CSl9pZF9yZWdDdHJsX3Byb3RvY29sRW5jcktleSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNSwweDAyLDB4MDEsLyogWzIzNzVdIE9CSl9pZF9yZWdJbmZvX3V0ZjhQYWlycyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNSwweDAyLDB4MDIsLyogWzIzODRdIE9CSl9pZF9yZWdJbmZvX2NlcnRSZXEgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDYsMHgwMSwgICAgIC8qIFsyMzkzXSBPQkpfaWRfYWxnX2RlczQwICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA2LDB4MDIsICAgICAvKiBbMjQwMV0gT0JKX2lkX2FsZ19ub1NpZ25hdHVyZSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNiwweDAzLCAgICAgLyogWzI0MDldIE9CSl9pZF9hbGdfZGhfc2lnX2htYWNfc2hhMSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNiwweDA0LCAgICAgLyogWzI0MTddIE9CSl9pZF9hbGdfZGhfcG9wICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MDEsICAgICAvKiBbMjQyNV0gT0JKX2lkX2NtY19zdGF0dXNJbmZvICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MDIsICAgICAvKiBbMjQzM10gT0JKX2lkX2NtY19pZGVudGlmaWNhdGlvbiAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDAzLCAgICAgLyogWzI0NDFdIE9CSl9pZF9jbWNfaWRlbnRpdHlQcm9vZiAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDA0LCAgICAgLyogWzI0NDldIE9CSl9pZF9jbWNfZGF0YVJldHVybiAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDA1LCAgICAgLyogWzI0NTddIE9CSl9pZF9jbWNfdHJhbnNhY3Rpb25JZCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDA2LCAgICAgLyogWzI0NjVdIE9CSl9pZF9jbWNfc2VuZGVyTm9uY2UgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgwNywgICAgIC8qIFsyNDczXSBPQkpfaWRfY21jX3JlY2lwaWVudE5vbmNlICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MDgsICAgICAvKiBbMjQ4MV0gT0JKX2lkX2NtY19hZGRFeHRlbnNpb25zICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MDksICAgICAvKiBbMjQ4OV0gT0JKX2lkX2NtY19lbmNyeXB0ZWRQT1AgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgwQSwgICAgIC8qIFsyNDk3XSBPQkpfaWRfY21jX2RlY3J5cHRlZFBPUCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDBCLCAgICAgLyogWzI1MDVdIE9CSl9pZF9jbWNfbHJhUE9QV2l0bmVzcyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDBGLCAgICAgLyogWzI1MTNdIE9CSl9pZF9jbWNfZ2V0Q2VydCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDEwLCAgICAgLyogWzI1MjFdIE9CSl9pZF9jbWNfZ2V0Q1JMICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MTEsICAgICAvKiBbMjUyOV0gT0JKX2lkX2NtY19yZXZva2VSZXF1ZXN0ICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MTIsICAgICAvKiBbMjUzN10gT0JKX2lkX2NtY19yZWdJbmZvICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MTMsICAgICAvKiBbMjU0NV0gT0JKX2lkX2NtY19yZXNwb25zZUluZm8gKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgxNSwgICAgIC8qIFsyNTUzXSBPQkpfaWRfY21jX3F1ZXJ5UGVuZGluZyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDE2LCAgICAgLyogWzI1NjFdIE9CSl9pZF9jbWNfcG9wTGlua1JhbmRvbSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDE3LCAgICAgLyogWzI1NjldIE9CSl9pZF9jbWNfcG9wTGlua1dpdG5lc3MgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgxOCwgICAgIC8qIFsyNTc3XSBPQkpfaWRfY21jX2NvbmZpcm1DZXJ0QWNjZXB0YW5jZSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwOCwweDAxLCAgICAgLyogWzI1ODVdIE9CSl9pZF9vbl9wZXJzb25hbERhdGEgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDksMHgwMSwgICAgIC8qIFsyNTkzXSBPQkpfaWRfcGRhX2RhdGVPZkJpcnRoICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA5LDB4MDIsICAgICAvKiBbMjYwMV0gT0JKX2lkX3BkYV9wbGFjZU9mQmlydGggKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDksMHgwMywgICAgIC8qIFsyNjA5XSBPQkpfaWRfcGRhX2dlbmRlciAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwOSwweDA0LCAgICAgLyogWzI2MTddIE9CSl9pZF9wZGFfY291bnRyeU9mQ2l0aXplbnNoaXAgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDksMHgwNSwgICAgIC8qIFsyNjI1XSBPQkpfaWRfcGRhX2NvdW50cnlPZlJlc2lkZW5jZSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwQSwweDAxLCAgICAgLyogWzI2MzNdIE9CSl9pZF9hY2FfYXV0aGVudGljYXRpb25JbmZvICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDBBLDB4MDIsICAgICAvKiBbMjY0MV0gT0JKX2lkX2FjYV9hY2Nlc3NJZGVudGl0eSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwQSwweDAzLCAgICAgLyogWzI2NDldIE9CSl9pZF9hY2FfY2hhcmdpbmdJZGVudGl0eSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwQSwweDA0LCAgICAgLyogWzI2NTddIE9CSl9pZF9hY2FfZ3JvdXAgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MEEsMHgwNSwgICAgIC8qIFsyNjY1XSBPQkpfaWRfYWNhX3JvbGUgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MEIsMHgwMSwgICAgIC8qIFsyNjczXSBPQkpfaWRfcWNzX3BraXhRQ1N5bnRheF92MSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwQywweDAxLCAgICAgLyogWzI2ODFdIE9CSl9pZF9jY3RfY3JzICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDBDLDB4MDIsICAgICAvKiBbMjY4OV0gT0JKX2lkX2NjdF9QS0lEYXRhICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDBDLDB4MDMsICAgICAvKiBbMjY5N10gT0JKX2lkX2NjdF9QS0lSZXNwb25zZSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAzLCAgICAgLyogWzI3MDVdIE9CSl9hZF90aW1lU3RhbXBpbmcgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwNCwgICAgIC8qIFsyNzEzXSBPQkpfYWRfZHZjcyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAxLDB4MDEsLyogWzI3MjFdIE9CSl9pZF9wa2l4X09DU1BfYmFzaWMgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMSwweDAyLC8qIFsyNzMwXSBPQkpfaWRfcGtpeF9PQ1NQX05vbmNlICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDMwLDB4MDEsMHgwMywvKiBbMjczOV0gT0JKX2lkX3BraXhfT0NTUF9DcmxJRCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAxLDB4MDQsLyogWzI3NDhdIE9CSl9pZF9wa2l4X09DU1BfYWNjZXB0YWJsZVJlc3BvbnNlcyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAxLDB4MDUsLyogWzI3NTddIE9CSl9pZF9wa2l4X09DU1Bfbm9DaGVjayAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAxLDB4MDYsLyogWzI3NjZdIE9CSl9pZF9wa2l4X09DU1BfYXJjaGl2ZUN1dG9mZiAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAxLDB4MDcsLyogWzI3NzVdIE9CSl9pZF9wa2l4X09DU1Bfc2VydmljZUxvY2F0b3IgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMSwweDA4LC8qIFsyNzg0XSBPQkpfaWRfcGtpeF9PQ1NQX2V4dGVuZGVkU3RhdHVzICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDMwLDB4MDEsMHgwOSwvKiBbMjc5M10gT0JKX2lkX3BraXhfT0NTUF92YWxpZCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAxLDB4MEEsLyogWzI4MDJdIE9CSl9pZF9wa2l4X09DU1BfcGF0aCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAxLDB4MEIsLyogWzI4MTFdIE9CSl9pZF9wa2l4X09DU1BfdHJ1c3RSb290ICovCi0weDJCLDB4MEUsMHgwMywweDAyLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjgyMF0gT0JKX2FsZ29yaXRobSAqLwotMHgyQiwweDBFLDB4MDMsMHgwMiwweDBCLCAgICAgICAgICAgICAgICAgICAgLyogWzI4MjRdIE9CSl9yc2FTaWduYXR1cmUgKi8KLTB4NTUsMHgwOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyODI5XSBPQkpfWDUwMGFsZ29yaXRobXMgKi8KLTB4MkIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyODMxXSBPQkpfb3JnICovCi0weDJCLDB4MDYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjgzMl0gT0JKX2RvZCAqLwotMHgyQiwweDA2LDB4MDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4MzRdIE9CSl9pYW5hICovCi0weDJCLDB4MDYsMHgwMSwweDAxLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjgzN10gT0JKX0RpcmVjdG9yeSAqLwotMHgyQiwweDA2LDB4MDEsMHgwMiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4NDFdIE9CSl9NYW5hZ2VtZW50ICovCi0weDJCLDB4MDYsMHgwMSwweDAzLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjg0NV0gT0JKX0V4cGVyaW1lbnRhbCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4NDldIE9CSl9Qcml2YXRlICovCi0weDJCLDB4MDYsMHgwMSwweDA1LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjg1M10gT0JKX1NlY3VyaXR5ICovCi0weDJCLDB4MDYsMHgwMSwweDA2LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjg1N10gT0JKX1NOTVB2MiAqLwotMHgyQiwweDA2LDB4MDEsMHgwNywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4NjFdIE9CSl9NYWlsICovCi0weDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsICAgICAgICAgICAgICAgICAgICAvKiBbMjg2NV0gT0JKX0VudGVycHJpc2VzICovCi0weDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsMHg4QiwweDNBLDB4ODIsMHg1OCwvKiBbMjg3MF0gT0JKX2RjT2JqZWN0ICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDE5LC8qIFsyODc5XSBPQkpfZG9tYWluQ29tcG9uZW50ICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDBELC8qIFsyODg5XSBPQkpfRG9tYWluICovCi0weDAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjg5OV0gT0JKX2pvaW50X2lzb19jY2l0dCAqLwotMHg1NSwweDAxLDB4MDUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI5MDBdIE9CSl9zZWxlY3RlZF9hdHRyaWJ1dGVfdHlwZXMgKi8KLTB4NTUsMHgwMSwweDA1LDB4MzcsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyOTAzXSBPQkpfY2xlYXJhbmNlICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDEsMHgwMywvKiBbMjkwN10gT0JKX21kNFdpdGhSU0FFbmNyeXB0aW9uICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLDB4MEEsICAgICAvKiBbMjkxNl0gT0JKX2FjX3Byb3h5aW5nICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLDB4MEIsICAgICAvKiBbMjkyNF0gT0JKX3NpbmZvX2FjY2VzcyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwQSwweDA2LCAgICAgLyogWzI5MzJdIE9CSl9pZF9hY2FfZW5jQXR0cnMgKi8KLTB4NTUsMHgwNCwweDQ4LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyOTQwXSBPQkpfcm9sZSAqLwotMHg1NSwweDFELDB4MjQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI5NDNdIE9CSl9wb2xpY3lfY29uc3RyYWludHMgKi8KLTB4NTUsMHgxRCwweDM3LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyOTQ2XSBPQkpfdGFyZ2V0X2luZm9ybWF0aW9uICovCi0weDU1LDB4MUQsMHgzOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjk0OV0gT0JKX25vX3Jldl9hdmFpbCAqLwotMHgwMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI5NTJdIE9CSl9jY2l0dCAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELCAgICAgICAgICAgICAgICAgICAgLyogWzI5NTNdIE9CSl9hbnNpX1g5XzYyICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMSwweDAxLCAgICAgICAgICAvKiBbMjk1OF0gT0JKX1g5XzYyX3ByaW1lX2ZpZWxkICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMSwweDAyLCAgICAgICAgICAvKiBbMjk2NV0gT0JKX1g5XzYyX2NoYXJhY3RlcmlzdGljX3R3b19maWVsZCAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDIsMHgwMSwgICAgICAgICAgLyogWzI5NzJdIE9CSl9YOV82Ml9pZF9lY1B1YmxpY0tleSAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMSwweDAxLCAgICAgLyogWzI5NzldIE9CSl9YOV82Ml9wcmltZTE5MnYxICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAxLDB4MDIsICAgICAvKiBbMjk4N10gT0JKX1g5XzYyX3ByaW1lMTkydjIgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDEsMHgwMywgICAgIC8qIFsyOTk1XSBPQkpfWDlfNjJfcHJpbWUxOTJ2MyAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMSwweDA0LCAgICAgLyogWzMwMDNdIE9CSl9YOV82Ml9wcmltZTIzOXYxICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAxLDB4MDUsICAgICAvKiBbMzAxMV0gT0JKX1g5XzYyX3ByaW1lMjM5djIgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDEsMHgwNiwgICAgIC8qIFszMDE5XSBPQkpfWDlfNjJfcHJpbWUyMzl2MyAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMSwweDA3LCAgICAgLyogWzMwMjddIE9CSl9YOV82Ml9wcmltZTI1NnYxICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwNCwweDAxLCAgICAgICAgICAvKiBbMzAzNV0gT0JKX2VjZHNhX3dpdGhfU0hBMSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNCwweDAxLDB4ODIsMHgzNywweDExLDB4MDEsLyogWzMwNDJdIE9CSl9tc19jc3BfbmFtZSAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MDEsLyogWzMwNTFdIE9CSl9hZXNfMTI4X2VjYiAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MDIsLyogWzMwNjBdIE9CSl9hZXNfMTI4X2NiYyAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MDMsLyogWzMwNjldIE9CSl9hZXNfMTI4X29mYjEyOCAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MDQsLyogWzMwNzhdIE9CSl9hZXNfMTI4X2NmYjEyOCAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MTUsLyogWzMwODddIE9CSl9hZXNfMTkyX2VjYiAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MTYsLyogWzMwOTZdIE9CSl9hZXNfMTkyX2NiYyAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MTcsLyogWzMxMDVdIE9CSl9hZXNfMTkyX29mYjEyOCAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MTgsLyogWzMxMTRdIE9CSl9hZXNfMTkyX2NmYjEyOCAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MjksLyogWzMxMjNdIE9CSl9hZXNfMjU2X2VjYiAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MkEsLyogWzMxMzJdIE9CSl9hZXNfMjU2X2NiYyAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MkIsLyogWzMxNDFdIE9CSl9hZXNfMjU2X29mYjEyOCAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MkMsLyogWzMxNTBdIE9CSl9hZXNfMjU2X2NmYjEyOCAqLwotMHg1NSwweDFELDB4MTcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzMxNTldIE9CSl9ob2xkX2luc3RydWN0aW9uX2NvZGUgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzOCwweDAyLDB4MDEsICAgICAgICAgIC8qIFszMTYyXSBPQkpfaG9sZF9pbnN0cnVjdGlvbl9ub25lICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4MzgsMHgwMiwweDAyLCAgICAgICAgICAvKiBbMzE2OV0gT0JKX2hvbGRfaW5zdHJ1Y3Rpb25fY2FsbF9pc3N1ZXIgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzOCwweDAyLDB4MDMsICAgICAgICAgIC8qIFszMTc2XSBPQkpfaG9sZF9pbnN0cnVjdGlvbl9yZWplY3QgKi8KLTB4MDksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszMTgzXSBPQkpfZGF0YSAqLwotMHgwOSwweDkyLDB4MjYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzMxODRdIE9CSl9wc3MgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsICAgICAgICAgIC8qIFszMTg3XSBPQkpfdWNsICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsICAgICAvKiBbMzE5NF0gT0JKX3BpbG90ICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwvKiBbMzIwMl0gT0JKX3BpbG90QXR0cmlidXRlVHlwZSAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDMsLyogWzMyMTFdIE9CSl9waWxvdEF0dHJpYnV0ZVN5bnRheCAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDQsLyogWzMyMjBdIE9CSl9waWxvdE9iamVjdENsYXNzICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwQSwvKiBbMzIyOV0gT0JKX3BpbG90R3JvdXBzICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMywweDA0LC8qIFszMjM4XSBPQkpfaUE1U3RyaW5nU3ludGF4ICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMywweDA1LC8qIFszMjQ4XSBPQkpfY2FzZUlnbm9yZUlBNVN0cmluZ1N5bnRheCAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDQsMHgwMywvKiBbMzI1OF0gT0JKX3BpbG90T2JqZWN0ICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDA0LC8qIFszMjY4XSBPQkpfcGlsb3RQZXJzb24gKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LDB4MDUsLyogWzMyNzhdIE9CSl9hY2NvdW50ICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDA2LC8qIFszMjg4XSBPQkpfZG9jdW1lbnQgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LDB4MDcsLyogWzMyOThdIE9CSl9yb29tICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDA5LC8qIFszMzA4XSBPQkpfZG9jdW1lbnRTZXJpZXMgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LDB4MEUsLyogWzMzMThdIE9CSl9yRkM4MjJsb2NhbFBhcnQgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LDB4MEYsLyogWzMzMjhdIE9CSl9kTlNEb21haW4gKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LDB4MTEsLyogWzMzMzhdIE9CSl9kb21haW5SZWxhdGVkT2JqZWN0ICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDEyLC8qIFszMzQ4XSBPQkpfZnJpZW5kbHlDb3VudHJ5ICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDEzLC8qIFszMzU4XSBPQkpfc2ltcGxlU2VjdXJpdHlPYmplY3QgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LDB4MTQsLyogWzMzNjhdIE9CSl9waWxvdE9yZ2FuaXphdGlvbiAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDQsMHgxNSwvKiBbMzM3OF0gT0JKX3BpbG90RFNBICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDE2LC8qIFszMzg4XSBPQkpfcXVhbGl0eUxhYmVsbGVkRGF0YSAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwMSwvKiBbMzM5OF0gT0JKX3VzZXJJZCAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwMiwvKiBbMzQwOF0gT0JKX3RleHRFbmNvZGVkT1JBZGRyZXNzICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDAzLC8qIFszNDE4XSBPQkpfcmZjODIyTWFpbGJveCAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwNCwvKiBbMzQyOF0gT0JKX2luZm8gKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MDUsLyogWzM0MzhdIE9CSl9mYXZvdXJpdGVEcmluayAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwNiwvKiBbMzQ0OF0gT0JKX3Jvb21OdW1iZXIgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MDcsLyogWzM0NThdIE9CSl9waG90byAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwOCwvKiBbMzQ2OF0gT0JKX3VzZXJDbGFzcyAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwOSwvKiBbMzQ3OF0gT0JKX2hvc3QgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MEEsLyogWzM0ODhdIE9CSl9tYW5hZ2VyICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDBCLC8qIFszNDk4XSBPQkpfZG9jdW1lbnRJZGVudGlmaWVyICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDBDLC8qIFszNTA4XSBPQkpfZG9jdW1lbnRUaXRsZSAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwRCwvKiBbMzUxOF0gT0JKX2RvY3VtZW50VmVyc2lvbiAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwRSwvKiBbMzUyOF0gT0JKX2RvY3VtZW50QXV0aG9yICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDBGLC8qIFszNTM4XSBPQkpfZG9jdW1lbnRMb2NhdGlvbiAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgxNCwvKiBbMzU0OF0gT0JKX2hvbWVUZWxlcGhvbmVOdW1iZXIgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MTUsLyogWzM1NThdIE9CSl9zZWNyZXRhcnkgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MTYsLyogWzM1NjhdIE9CSl9vdGhlck1haWxib3ggKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MTcsLyogWzM1NzhdIE9CSl9sYXN0TW9kaWZpZWRUaW1lICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDE4LC8qIFszNTg4XSBPQkpfbGFzdE1vZGlmaWVkQnkgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MUEsLyogWzM1OThdIE9CSl9hUmVjb3JkICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDFCLC8qIFszNjA4XSBPQkpfcGlsb3RBdHRyaWJ1dGVUeXBlMjcgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MUMsLyogWzM2MThdIE9CSl9tWFJlY29yZCAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgxRCwvKiBbMzYyOF0gT0JKX25TUmVjb3JkICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDFFLC8qIFszNjM4XSBPQkpfc09BUmVjb3JkICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDFGLC8qIFszNjQ4XSBPQkpfY05BTUVSZWNvcmQgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MjUsLyogWzM2NThdIE9CSl9hc3NvY2lhdGVkRG9tYWluICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDI2LC8qIFszNjY4XSBPQkpfYXNzb2NpYXRlZE5hbWUgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MjcsLyogWzM2NzhdIE9CSl9ob21lUG9zdGFsQWRkcmVzcyAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgyOCwvKiBbMzY4OF0gT0JKX3BlcnNvbmFsVGl0bGUgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MjksLyogWzM2OThdIE9CSl9tb2JpbGVUZWxlcGhvbmVOdW1iZXIgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MkEsLyogWzM3MDhdIE9CSl9wYWdlclRlbGVwaG9uZU51bWJlciAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgyQiwvKiBbMzcxOF0gT0JKX2ZyaWVuZGx5Q291bnRyeU5hbWUgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MkQsLyogWzM3MjhdIE9CSl9vcmdhbml6YXRpb25hbFN0YXR1cyAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgyRSwvKiBbMzczOF0gT0JKX2phbmV0TWFpbGJveCAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgyRiwvKiBbMzc0OF0gT0JKX21haWxQcmVmZXJlbmNlT3B0aW9uICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDMwLC8qIFszNzU4XSBPQkpfYnVpbGRpbmdOYW1lICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDMxLC8qIFszNzY4XSBPQkpfZFNBUXVhbGl0eSAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgzMiwvKiBbMzc3OF0gT0JKX3NpbmdsZUxldmVsUXVhbGl0eSAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgzMywvKiBbMzc4OF0gT0JKX3N1YnRyZWVNaW5pbXVtUXVhbGl0eSAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgzNCwvKiBbMzc5OF0gT0JKX3N1YnRyZWVNYXhpbXVtUXVhbGl0eSAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgzNSwvKiBbMzgwOF0gT0JKX3BlcnNvbmFsU2lnbmF0dXJlICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDM2LC8qIFszODE4XSBPQkpfZElUUmVkaXJlY3QgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MzcsLyogWzM4MjhdIE9CSl9hdWRpbyAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgzOCwvKiBbMzgzOF0gT0JKX2RvY3VtZW50UHVibGlzaGVyICovCi0weDU1LDB4MDQsMHgyRCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzg0OF0gT0JKX3g1MDBVbmlxdWVJZGVudGlmaWVyICovCi0weDJCLDB4MDYsMHgwMSwweDA3LDB4MDEsICAgICAgICAgICAgICAgICAgICAvKiBbMzg1MV0gT0JKX21pbWVfbWhzICovCi0weDJCLDB4MDYsMHgwMSwweDA3LDB4MDEsMHgwMSwgICAgICAgICAgICAgICAvKiBbMzg1Nl0gT0JKX21pbWVfbWhzX2hlYWRpbmdzICovCi0weDJCLDB4MDYsMHgwMSwweDA3LDB4MDEsMHgwMiwgICAgICAgICAgICAgICAvKiBbMzg2Ml0gT0JKX21pbWVfbWhzX2JvZGllcyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNywweDAxLDB4MDEsMHgwMSwgICAgICAgICAgLyogWzM4NjhdIE9CSl9pZF9oZXhfcGFydGlhbF9tZXNzYWdlICovCi0weDJCLDB4MDYsMHgwMSwweDA3LDB4MDEsMHgwMSwweDAyLCAgICAgICAgICAvKiBbMzg3NV0gT0JKX2lkX2hleF9tdWx0aXBhcnRfbWVzc2FnZSAqLwotMHg1NSwweDA0LDB4MkMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM4ODJdIE9CSl9nZW5lcmF0aW9uUXVhbGlmaWVyICovCi0weDU1LDB4MDQsMHg0MSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzg4NV0gT0JKX3BzZXVkb255bSAqLwotMHg2NywweDJBLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM4ODhdIE9CSl9pZF9zZXQgKi8KLTB4NjcsMHgyQSwweDAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszODkwXSBPQkpfc2V0X2N0eXBlICovCi0weDY3LDB4MkEsMHgwMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzg5M10gT0JKX3NldF9tc2dFeHQgKi8KLTB4NjcsMHgyQSwweDAzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszODk2XSBPQkpfc2V0X2F0dHIgKi8KLTB4NjcsMHgyQSwweDA1LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszODk5XSBPQkpfc2V0X3BvbGljeSAqLwotMHg2NywweDJBLDB4MDcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5MDJdIE9CSl9zZXRfY2VydEV4dCAqLwotMHg2NywweDJBLDB4MDgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5MDVdIE9CSl9zZXRfYnJhbmQgKi8KLTB4NjcsMHgyQSwweDAwLDB4MDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTA4XSBPQkpfc2V0Y3RfUEFORGF0YSAqLwotMHg2NywweDJBLDB4MDAsMHgwMSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5MTJdIE9CSl9zZXRjdF9QQU5Ub2tlbiAqLwotMHg2NywweDJBLDB4MDAsMHgwMiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5MTZdIE9CSl9zZXRjdF9QQU5Pbmx5ICovCi0weDY3LDB4MkEsMHgwMCwweDAzLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzkyMF0gT0JKX3NldGN0X09JRGF0YSAqLwotMHg2NywweDJBLDB4MDAsMHgwNCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5MjRdIE9CSl9zZXRjdF9QSSAqLwotMHg2NywweDJBLDB4MDAsMHgwNSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5MjhdIE9CSl9zZXRjdF9QSURhdGEgKi8KLTB4NjcsMHgyQSwweDAwLDB4MDYsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTMyXSBPQkpfc2V0Y3RfUElEYXRhVW5zaWduZWQgKi8KLTB4NjcsMHgyQSwweDAwLDB4MDcsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTM2XSBPQkpfc2V0Y3RfSE9ESW5wdXQgKi8KLTB4NjcsMHgyQSwweDAwLDB4MDgsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTQwXSBPQkpfc2V0Y3RfQXV0aFJlc0JhZ2dhZ2UgKi8KLTB4NjcsMHgyQSwweDAwLDB4MDksICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTQ0XSBPQkpfc2V0Y3RfQXV0aFJldlJlcUJhZ2dhZ2UgKi8KLTB4NjcsMHgyQSwweDAwLDB4MEEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTQ4XSBPQkpfc2V0Y3RfQXV0aFJldlJlc0JhZ2dhZ2UgKi8KLTB4NjcsMHgyQSwweDAwLDB4MEIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTUyXSBPQkpfc2V0Y3RfQ2FwVG9rZW5TZXEgKi8KLTB4NjcsMHgyQSwweDAwLDB4MEMsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTU2XSBPQkpfc2V0Y3RfUEluaXRSZXNEYXRhICovCi0weDY3LDB4MkEsMHgwMCwweDBELCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzk2MF0gT0JKX3NldGN0X1BJX1RCUyAqLwotMHg2NywweDJBLDB4MDAsMHgwRSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5NjRdIE9CSl9zZXRjdF9QUmVzRGF0YSAqLwotMHg2NywweDJBLDB4MDAsMHgxMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5NjhdIE9CSl9zZXRjdF9BdXRoUmVxVEJTICovCi0weDY3LDB4MkEsMHgwMCwweDExLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzk3Ml0gT0JKX3NldGN0X0F1dGhSZXNUQlMgKi8KLTB4NjcsMHgyQSwweDAwLDB4MTIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTc2XSBPQkpfc2V0Y3RfQXV0aFJlc1RCU1ggKi8KLTB4NjcsMHgyQSwweDAwLDB4MTMsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTgwXSBPQkpfc2V0Y3RfQXV0aFRva2VuVEJTICovCi0weDY3LDB4MkEsMHgwMCwweDE0LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzk4NF0gT0JKX3NldGN0X0NhcFRva2VuRGF0YSAqLwotMHg2NywweDJBLDB4MDAsMHgxNSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5ODhdIE9CSl9zZXRjdF9DYXBUb2tlblRCUyAqLwotMHg2NywweDJBLDB4MDAsMHgxNiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5OTJdIE9CSl9zZXRjdF9BY3FDYXJkQ29kZU1zZyAqLwotMHg2NywweDJBLDB4MDAsMHgxNywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5OTZdIE9CSl9zZXRjdF9BdXRoUmV2UmVxVEJTICovCi0weDY3LDB4MkEsMHgwMCwweDE4LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDAwMF0gT0JKX3NldGN0X0F1dGhSZXZSZXNEYXRhICovCi0weDY3LDB4MkEsMHgwMCwweDE5LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDAwNF0gT0JKX3NldGN0X0F1dGhSZXZSZXNUQlMgKi8KLTB4NjcsMHgyQSwweDAwLDB4MUEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDA4XSBPQkpfc2V0Y3RfQ2FwUmVxVEJTICovCi0weDY3LDB4MkEsMHgwMCwweDFCLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDAxMl0gT0JKX3NldGN0X0NhcFJlcVRCU1ggKi8KLTB4NjcsMHgyQSwweDAwLDB4MUMsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDE2XSBPQkpfc2V0Y3RfQ2FwUmVzRGF0YSAqLwotMHg2NywweDJBLDB4MDAsMHgxRCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwMjBdIE9CSl9zZXRjdF9DYXBSZXZSZXFUQlMgKi8KLTB4NjcsMHgyQSwweDAwLDB4MUUsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDI0XSBPQkpfc2V0Y3RfQ2FwUmV2UmVxVEJTWCAqLwotMHg2NywweDJBLDB4MDAsMHgxRiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwMjhdIE9CSl9zZXRjdF9DYXBSZXZSZXNEYXRhICovCi0weDY3LDB4MkEsMHgwMCwweDIwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDAzMl0gT0JKX3NldGN0X0NyZWRSZXFUQlMgKi8KLTB4NjcsMHgyQSwweDAwLDB4MjEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDM2XSBPQkpfc2V0Y3RfQ3JlZFJlcVRCU1ggKi8KLTB4NjcsMHgyQSwweDAwLDB4MjIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDQwXSBPQkpfc2V0Y3RfQ3JlZFJlc0RhdGEgKi8KLTB4NjcsMHgyQSwweDAwLDB4MjMsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDQ0XSBPQkpfc2V0Y3RfQ3JlZFJldlJlcVRCUyAqLwotMHg2NywweDJBLDB4MDAsMHgyNCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwNDhdIE9CSl9zZXRjdF9DcmVkUmV2UmVxVEJTWCAqLwotMHg2NywweDJBLDB4MDAsMHgyNSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwNTJdIE9CSl9zZXRjdF9DcmVkUmV2UmVzRGF0YSAqLwotMHg2NywweDJBLDB4MDAsMHgyNiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwNTZdIE9CSl9zZXRjdF9QQ2VydFJlcURhdGEgKi8KLTB4NjcsMHgyQSwweDAwLDB4MjcsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDYwXSBPQkpfc2V0Y3RfUENlcnRSZXNUQlMgKi8KLTB4NjcsMHgyQSwweDAwLDB4MjgsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDY0XSBPQkpfc2V0Y3RfQmF0Y2hBZG1pblJlcURhdGEgKi8KLTB4NjcsMHgyQSwweDAwLDB4MjksICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDY4XSBPQkpfc2V0Y3RfQmF0Y2hBZG1pblJlc0RhdGEgKi8KLTB4NjcsMHgyQSwweDAwLDB4MkEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDcyXSBPQkpfc2V0Y3RfQ2FyZENJbml0UmVzVEJTICovCi0weDY3LDB4MkEsMHgwMCwweDJCLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDA3Nl0gT0JKX3NldGN0X01lQXFDSW5pdFJlc1RCUyAqLwotMHg2NywweDJBLDB4MDAsMHgyQywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwODBdIE9CSl9zZXRjdF9SZWdGb3JtUmVzVEJTICovCi0weDY3LDB4MkEsMHgwMCwweDJELCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDA4NF0gT0JKX3NldGN0X0NlcnRSZXFEYXRhICovCi0weDY3LDB4MkEsMHgwMCwweDJFLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDA4OF0gT0JKX3NldGN0X0NlcnRSZXFUQlMgKi8KLTB4NjcsMHgyQSwweDAwLDB4MkYsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDkyXSBPQkpfc2V0Y3RfQ2VydFJlc0RhdGEgKi8KLTB4NjcsMHgyQSwweDAwLDB4MzAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDk2XSBPQkpfc2V0Y3RfQ2VydElucVJlcVRCUyAqLwotMHg2NywweDJBLDB4MDAsMHgzMSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxMDBdIE9CSl9zZXRjdF9FcnJvclRCUyAqLwotMHg2NywweDJBLDB4MDAsMHgzMiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxMDRdIE9CSl9zZXRjdF9QSUR1YWxTaWduZWRUQkUgKi8KLTB4NjcsMHgyQSwweDAwLDB4MzMsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTA4XSBPQkpfc2V0Y3RfUElVbnNpZ25lZFRCRSAqLwotMHg2NywweDJBLDB4MDAsMHgzNCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxMTJdIE9CSl9zZXRjdF9BdXRoUmVxVEJFICovCi0weDY3LDB4MkEsMHgwMCwweDM1LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDExNl0gT0JKX3NldGN0X0F1dGhSZXNUQkUgKi8KLTB4NjcsMHgyQSwweDAwLDB4MzYsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTIwXSBPQkpfc2V0Y3RfQXV0aFJlc1RCRVggKi8KLTB4NjcsMHgyQSwweDAwLDB4MzcsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTI0XSBPQkpfc2V0Y3RfQXV0aFRva2VuVEJFICovCi0weDY3LDB4MkEsMHgwMCwweDM4LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDEyOF0gT0JKX3NldGN0X0NhcFRva2VuVEJFICovCi0weDY3LDB4MkEsMHgwMCwweDM5LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDEzMl0gT0JKX3NldGN0X0NhcFRva2VuVEJFWCAqLwotMHg2NywweDJBLDB4MDAsMHgzQSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxMzZdIE9CSl9zZXRjdF9BY3FDYXJkQ29kZU1zZ1RCRSAqLwotMHg2NywweDJBLDB4MDAsMHgzQiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxNDBdIE9CSl9zZXRjdF9BdXRoUmV2UmVxVEJFICovCi0weDY3LDB4MkEsMHgwMCwweDNDLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE0NF0gT0JKX3NldGN0X0F1dGhSZXZSZXNUQkUgKi8KLTB4NjcsMHgyQSwweDAwLDB4M0QsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTQ4XSBPQkpfc2V0Y3RfQXV0aFJldlJlc1RCRUIgKi8KLTB4NjcsMHgyQSwweDAwLDB4M0UsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTUyXSBPQkpfc2V0Y3RfQ2FwUmVxVEJFICovCi0weDY3LDB4MkEsMHgwMCwweDNGLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE1Nl0gT0JKX3NldGN0X0NhcFJlcVRCRVggKi8KLTB4NjcsMHgyQSwweDAwLDB4NDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTYwXSBPQkpfc2V0Y3RfQ2FwUmVzVEJFICovCi0weDY3LDB4MkEsMHgwMCwweDQxLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE2NF0gT0JKX3NldGN0X0NhcFJldlJlcVRCRSAqLwotMHg2NywweDJBLDB4MDAsMHg0MiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxNjhdIE9CSl9zZXRjdF9DYXBSZXZSZXFUQkVYICovCi0weDY3LDB4MkEsMHgwMCwweDQzLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE3Ml0gT0JKX3NldGN0X0NhcFJldlJlc1RCRSAqLwotMHg2NywweDJBLDB4MDAsMHg0NCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxNzZdIE9CSl9zZXRjdF9DcmVkUmVxVEJFICovCi0weDY3LDB4MkEsMHgwMCwweDQ1LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE4MF0gT0JKX3NldGN0X0NyZWRSZXFUQkVYICovCi0weDY3LDB4MkEsMHgwMCwweDQ2LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE4NF0gT0JKX3NldGN0X0NyZWRSZXNUQkUgKi8KLTB4NjcsMHgyQSwweDAwLDB4NDcsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTg4XSBPQkpfc2V0Y3RfQ3JlZFJldlJlcVRCRSAqLwotMHg2NywweDJBLDB4MDAsMHg0OCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxOTJdIE9CSl9zZXRjdF9DcmVkUmV2UmVxVEJFWCAqLwotMHg2NywweDJBLDB4MDAsMHg0OSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxOTZdIE9CSl9zZXRjdF9DcmVkUmV2UmVzVEJFICovCi0weDY3LDB4MkEsMHgwMCwweDRBLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDIwMF0gT0JKX3NldGN0X0JhdGNoQWRtaW5SZXFUQkUgKi8KLTB4NjcsMHgyQSwweDAwLDB4NEIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjA0XSBPQkpfc2V0Y3RfQmF0Y2hBZG1pblJlc1RCRSAqLwotMHg2NywweDJBLDB4MDAsMHg0QywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyMDhdIE9CSl9zZXRjdF9SZWdGb3JtUmVxVEJFICovCi0weDY3LDB4MkEsMHgwMCwweDRELCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDIxMl0gT0JKX3NldGN0X0NlcnRSZXFUQkUgKi8KLTB4NjcsMHgyQSwweDAwLDB4NEUsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjE2XSBPQkpfc2V0Y3RfQ2VydFJlcVRCRVggKi8KLTB4NjcsMHgyQSwweDAwLDB4NEYsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjIwXSBPQkpfc2V0Y3RfQ2VydFJlc1RCRSAqLwotMHg2NywweDJBLDB4MDAsMHg1MCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyMjRdIE9CSl9zZXRjdF9DUkxOb3RpZmljYXRpb25UQlMgKi8KLTB4NjcsMHgyQSwweDAwLDB4NTEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjI4XSBPQkpfc2V0Y3RfQ1JMTm90aWZpY2F0aW9uUmVzVEJTICovCi0weDY3LDB4MkEsMHgwMCwweDUyLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDIzMl0gT0JKX3NldGN0X0JDSURpc3RyaWJ1dGlvblRCUyAqLwotMHg2NywweDJBLDB4MDEsMHgwMSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyMzZdIE9CSl9zZXRleHRfZ2VuQ3J5cHQgKi8KLTB4NjcsMHgyQSwweDAxLDB4MDMsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjQwXSBPQkpfc2V0ZXh0X21pQXV0aCAqLwotMHg2NywweDJBLDB4MDEsMHgwNCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyNDRdIE9CSl9zZXRleHRfcGluU2VjdXJlICovCi0weDY3LDB4MkEsMHgwMSwweDA1LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI0OF0gT0JKX3NldGV4dF9waW5BbnkgKi8KLTB4NjcsMHgyQSwweDAxLDB4MDcsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjUyXSBPQkpfc2V0ZXh0X3RyYWNrMiAqLwotMHg2NywweDJBLDB4MDEsMHgwOCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyNTZdIE9CSl9zZXRleHRfY3YgKi8KLTB4NjcsMHgyQSwweDA1LDB4MDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjYwXSBPQkpfc2V0X3BvbGljeV9yb290ICovCi0weDY3LDB4MkEsMHgwNywweDAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI2NF0gT0JKX3NldENleHRfaGFzaGVkUm9vdCAqLwotMHg2NywweDJBLDB4MDcsMHgwMSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyNjhdIE9CSl9zZXRDZXh0X2NlcnRUeXBlICovCi0weDY3LDB4MkEsMHgwNywweDAyLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI3Ml0gT0JKX3NldENleHRfbWVyY2hEYXRhICovCi0weDY3LDB4MkEsMHgwNywweDAzLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI3Nl0gT0JKX3NldENleHRfY0NlcnRSZXF1aXJlZCAqLwotMHg2NywweDJBLDB4MDcsMHgwNCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyODBdIE9CSl9zZXRDZXh0X3R1bm5lbGluZyAqLwotMHg2NywweDJBLDB4MDcsMHgwNSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyODRdIE9CSl9zZXRDZXh0X3NldEV4dCAqLwotMHg2NywweDJBLDB4MDcsMHgwNiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyODhdIE9CSl9zZXRDZXh0X3NldFF1YWxmICovCi0weDY3LDB4MkEsMHgwNywweDA3LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI5Ml0gT0JKX3NldENleHRfUEdXWWNhcGFiaWxpdGllcyAqLwotMHg2NywweDJBLDB4MDcsMHgwOCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyOTZdIE9CSl9zZXRDZXh0X1Rva2VuSWRlbnRpZmllciAqLwotMHg2NywweDJBLDB4MDcsMHgwOSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQzMDBdIE9CSl9zZXRDZXh0X1RyYWNrMkRhdGEgKi8KLTB4NjcsMHgyQSwweDA3LDB4MEEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MzA0XSBPQkpfc2V0Q2V4dF9Ub2tlblR5cGUgKi8KLTB4NjcsMHgyQSwweDA3LDB4MEIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MzA4XSBPQkpfc2V0Q2V4dF9Jc3N1ZXJDYXBhYmlsaXRpZXMgKi8KLTB4NjcsMHgyQSwweDAzLDB4MDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MzEyXSBPQkpfc2V0QXR0cl9DZXJ0ICovCi0weDY3LDB4MkEsMHgwMywweDAxLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDMxNl0gT0JKX3NldEF0dHJfUEdXWWNhcCAqLwotMHg2NywweDJBLDB4MDMsMHgwMiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQzMjBdIE9CSl9zZXRBdHRyX1Rva2VuVHlwZSAqLwotMHg2NywweDJBLDB4MDMsMHgwMywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQzMjRdIE9CSl9zZXRBdHRyX0lzc0NhcCAqLwotMHg2NywweDJBLDB4MDMsMHgwMCwweDAwLCAgICAgICAgICAgICAgICAgICAgLyogWzQzMjhdIE9CSl9zZXRfcm9vdEtleVRodW1iICovCi0weDY3LDB4MkEsMHgwMywweDAwLDB4MDEsICAgICAgICAgICAgICAgICAgICAvKiBbNDMzM10gT0JKX3NldF9hZGRQb2xpY3kgKi8KLTB4NjcsMHgyQSwweDAzLDB4MDIsMHgwMSwgICAgICAgICAgICAgICAgICAgIC8qIFs0MzM4XSBPQkpfc2V0QXR0cl9Ub2tlbl9FTVYgKi8KLTB4NjcsMHgyQSwweDAzLDB4MDIsMHgwMiwgICAgICAgICAgICAgICAgICAgIC8qIFs0MzQzXSBPQkpfc2V0QXR0cl9Ub2tlbl9CMFByaW1lICovCi0weDY3LDB4MkEsMHgwMywweDAzLDB4MDMsICAgICAgICAgICAgICAgICAgICAvKiBbNDM0OF0gT0JKX3NldEF0dHJfSXNzQ2FwX0NWTSAqLwotMHg2NywweDJBLDB4MDMsMHgwMywweDA0LCAgICAgICAgICAgICAgICAgICAgLyogWzQzNTNdIE9CSl9zZXRBdHRyX0lzc0NhcF9UMiAqLwotMHg2NywweDJBLDB4MDMsMHgwMywweDA1LCAgICAgICAgICAgICAgICAgICAgLyogWzQzNThdIE9CSl9zZXRBdHRyX0lzc0NhcF9TaWcgKi8KLTB4NjcsMHgyQSwweDAzLDB4MDMsMHgwMywweDAxLCAgICAgICAgICAgICAgIC8qIFs0MzYzXSBPQkpfc2V0QXR0cl9HZW5DcnlwdGdybSAqLwotMHg2NywweDJBLDB4MDMsMHgwMywweDA0LDB4MDEsICAgICAgICAgICAgICAgLyogWzQzNjldIE9CSl9zZXRBdHRyX1QyRW5jICovCi0weDY3LDB4MkEsMHgwMywweDAzLDB4MDQsMHgwMiwgICAgICAgICAgICAgICAvKiBbNDM3NV0gT0JKX3NldEF0dHJfVDJjbGVhcnR4dCAqLwotMHg2NywweDJBLDB4MDMsMHgwMywweDA1LDB4MDEsICAgICAgICAgICAgICAgLyogWzQzODFdIE9CSl9zZXRBdHRyX1Rva0lDQ3NpZyAqLwotMHg2NywweDJBLDB4MDMsMHgwMywweDA1LDB4MDIsICAgICAgICAgICAgICAgLyogWzQzODddIE9CSl9zZXRBdHRyX1NlY0RldlNpZyAqLwotMHg2NywweDJBLDB4MDgsMHgwMSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQzOTNdIE9CSl9zZXRfYnJhbmRfSUFUQV9BVEEgKi8KLTB4NjcsMHgyQSwweDA4LDB4MUUsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0Mzk3XSBPQkpfc2V0X2JyYW5kX0RpbmVycyAqLwotMHg2NywweDJBLDB4MDgsMHgyMiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ0MDFdIE9CSl9zZXRfYnJhbmRfQW1lcmljYW5FeHByZXNzICovCi0weDY3LDB4MkEsMHgwOCwweDIzLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDQwNV0gT0JKX3NldF9icmFuZF9KQ0IgKi8KLTB4NjcsMHgyQSwweDA4LDB4MDQsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0NDA5XSBPQkpfc2V0X2JyYW5kX1Zpc2EgKi8KLTB4NjcsMHgyQSwweDA4LDB4MDUsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0NDEzXSBPQkpfc2V0X2JyYW5kX01hc3RlckNhcmQgKi8KLTB4NjcsMHgyQSwweDA4LDB4QUUsMHg3QiwgICAgICAgICAgICAgICAgICAgIC8qIFs0NDE3XSBPQkpfc2V0X2JyYW5kX05vdnVzICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAzLDB4MEEsICAgICAvKiBbNDQyMl0gT0JKX2Rlc19jZG1mICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDEsMHgwNiwvKiBbNDQzMF0gT0JKX3JzYU9BRVBFbmNyeXB0aW9uU0VUICovCi0weDAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDQzOV0gT0JKX2l0dV90ICovCi0weDUwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDQ0MF0gT0JKX2pvaW50X2lzb19pdHVfdCAqLwotMHg2NywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ0NDFdIE9CSl9pbnRlcm5hdGlvbmFsX29yZ2FuaXphdGlvbnMgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDQsMHgwMSwweDgyLDB4MzcsMHgxNCwweDAyLDB4MDIsLyogWzQ0NDJdIE9CSl9tc19zbWFydGNhcmRfbG9naW4gKi8KLTB4MkIsMHgwNiwweDAxLDB4MDQsMHgwMSwweDgyLDB4MzcsMHgxNCwweDAyLDB4MDMsLyogWzQ0NTJdIE9CSl9tc191cG4gKi8KLTB4NTUsMHgwNCwweDA5LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0NDYyXSBPQkpfc3RyZWV0QWRkcmVzcyAqLwotMHg1NSwweDA0LDB4MTEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ0NjVdIE9CSl9wb3N0YWxDb2RlICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDE1LCAgICAgICAgICAvKiBbNDQ2OF0gT0JKX2lkX3BwbCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMSwweDBFLCAgICAgLyogWzQ0NzVdIE9CSl9wcm94eUNlcnRJbmZvICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDE1LDB4MDAsICAgICAvKiBbNDQ4M10gT0JKX2lkX3BwbF9hbnlMYW5ndWFnZSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgxNSwweDAxLCAgICAgLyogWzQ0OTFdIE9CSl9pZF9wcGxfaW5oZXJpdEFsbCAqLwotMHg1NSwweDFELDB4MUUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ0OTldIE9CSl9uYW1lX2NvbnN0cmFpbnRzICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDE1LDB4MDIsICAgICAvKiBbNDUwMl0gT0JKX0luZGVwZW5kZW50ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDEsMHgwQiwvKiBbNDUxMF0gT0JKX3NoYTI1NldpdGhSU0FFbmNyeXB0aW9uICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDEsMHgwQywvKiBbNDUxOV0gT0JKX3NoYTM4NFdpdGhSU0FFbmNyeXB0aW9uICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDEsMHgwRCwvKiBbNDUyOF0gT0JKX3NoYTUxMldpdGhSU0FFbmNyeXB0aW9uICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDEsMHgwRSwvKiBbNDUzN10gT0JKX3NoYTIyNFdpdGhSU0FFbmNyeXB0aW9uICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDIsMHgwMSwvKiBbNDU0Nl0gT0JKX3NoYTI1NiAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAyLDB4MDIsLyogWzQ1NTVdIE9CSl9zaGEzODQgKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMiwweDAzLC8qIFs0NTY0XSBPQkpfc2hhNTEyICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDIsMHgwNCwvKiBbNDU3M10gT0JKX3NoYTIyNCAqLwotMHgyQiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ1ODJdIE9CSl9pZGVudGlmaWVkX29yZ2FuaXphdGlvbiAqLwotMHgyQiwweDgxLDB4MDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ1ODNdIE9CSl9jZXJ0aWNvbV9hcmMgKi8KLTB4NjcsMHgyQiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0NTg2XSBPQkpfd2FwICovCi0weDY3LDB4MkIsMHgwMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDU4OF0gT0JKX3dhcF93c2cgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAxLDB4MDIsMHgwMywgICAgIC8qIFs0NTkxXSBPQkpfWDlfNjJfaWRfY2hhcmFjdGVyaXN0aWNfdHdvX2Jhc2lzICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMSwweDAyLDB4MDMsMHgwMSwvKiBbNDU5OV0gT0JKX1g5XzYyX29uQmFzaXMgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAxLDB4MDIsMHgwMywweDAyLC8qIFs0NjA4XSBPQkpfWDlfNjJfdHBCYXNpcyAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDEsMHgwMiwweDAzLDB4MDMsLyogWzQ2MTddIE9CSl9YOV82Ml9wcEJhc2lzICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MDEsICAgICAvKiBbNDYyNl0gT0JKX1g5XzYyX2MycG5iMTYzdjEgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgwMiwgICAgIC8qIFs0NjM0XSBPQkpfWDlfNjJfYzJwbmIxNjN2MiAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDAzLCAgICAgLyogWzQ2NDJdIE9CSl9YOV82Ml9jMnBuYjE2M3YzICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MDQsICAgICAvKiBbNDY1MF0gT0JKX1g5XzYyX2MycG5iMTc2djEgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgwNSwgICAgIC8qIFs0NjU4XSBPQkpfWDlfNjJfYzJ0bmIxOTF2MSAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDA2LCAgICAgLyogWzQ2NjZdIE9CSl9YOV82Ml9jMnRuYjE5MXYyICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MDcsICAgICAvKiBbNDY3NF0gT0JKX1g5XzYyX2MydG5iMTkxdjMgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgwOCwgICAgIC8qIFs0NjgyXSBPQkpfWDlfNjJfYzJvbmIxOTF2NCAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDA5LCAgICAgLyogWzQ2OTBdIE9CSl9YOV82Ml9jMm9uYjE5MXY1ICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MEEsICAgICAvKiBbNDY5OF0gT0JKX1g5XzYyX2MycG5iMjA4dzEgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgwQiwgICAgIC8qIFs0NzA2XSBPQkpfWDlfNjJfYzJ0bmIyMzl2MSAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDBDLCAgICAgLyogWzQ3MTRdIE9CSl9YOV82Ml9jMnRuYjIzOXYyICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MEQsICAgICAvKiBbNDcyMl0gT0JKX1g5XzYyX2MydG5iMjM5djMgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgwRSwgICAgIC8qIFs0NzMwXSBPQkpfWDlfNjJfYzJvbmIyMzl2NCAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDBGLCAgICAgLyogWzQ3MzhdIE9CSl9YOV82Ml9jMm9uYjIzOXY1ICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MTAsICAgICAvKiBbNDc0Nl0gT0JKX1g5XzYyX2MycG5iMjcydzEgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgxMSwgICAgIC8qIFs0NzU0XSBPQkpfWDlfNjJfYzJwbmIzMDR3MSAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDEyLCAgICAgLyogWzQ3NjJdIE9CSl9YOV82Ml9jMnRuYjM1OXYxICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MTMsICAgICAvKiBbNDc3MF0gT0JKX1g5XzYyX2MycG5iMzY4dzEgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgxNCwgICAgIC8qIFs0Nzc4XSBPQkpfWDlfNjJfYzJ0bmI0MzFyMSAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDA2LCAgICAgICAgICAgICAgICAgICAgLyogWzQ3ODZdIE9CSl9zZWNwMTEycjEgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgwNywgICAgICAgICAgICAgICAgICAgIC8qIFs0NzkxXSBPQkpfc2VjcDExMnIyICovCi0weDJCLDB4ODEsMHgwNCwweDAwLDB4MUMsICAgICAgICAgICAgICAgICAgICAvKiBbNDc5Nl0gT0JKX3NlY3AxMjhyMSAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDFELCAgICAgICAgICAgICAgICAgICAgLyogWzQ4MDFdIE9CSl9zZWNwMTI4cjIgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgwOSwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODA2XSBPQkpfc2VjcDE2MGsxICovCi0weDJCLDB4ODEsMHgwNCwweDAwLDB4MDgsICAgICAgICAgICAgICAgICAgICAvKiBbNDgxMV0gT0JKX3NlY3AxNjByMSAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDFFLCAgICAgICAgICAgICAgICAgICAgLyogWzQ4MTZdIE9CSl9zZWNwMTYwcjIgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgxRiwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODIxXSBPQkpfc2VjcDE5MmsxICovCi0weDJCLDB4ODEsMHgwNCwweDAwLDB4MjAsICAgICAgICAgICAgICAgICAgICAvKiBbNDgyNl0gT0JKX3NlY3AyMjRrMSAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDIxLCAgICAgICAgICAgICAgICAgICAgLyogWzQ4MzFdIE9CSl9zZWNwMjI0cjEgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgwQSwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODM2XSBPQkpfc2VjcDI1NmsxICovCi0weDJCLDB4ODEsMHgwNCwweDAwLDB4MjIsICAgICAgICAgICAgICAgICAgICAvKiBbNDg0MV0gT0JKX3NlY3AzODRyMSAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDIzLCAgICAgICAgICAgICAgICAgICAgLyogWzQ4NDZdIE9CSl9zZWNwNTIxcjEgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgwNCwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODUxXSBPQkpfc2VjdDExM3IxICovCi0weDJCLDB4ODEsMHgwNCwweDAwLDB4MDUsICAgICAgICAgICAgICAgICAgICAvKiBbNDg1Nl0gT0JKX3NlY3QxMTNyMiAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDE2LCAgICAgICAgICAgICAgICAgICAgLyogWzQ4NjFdIE9CSl9zZWN0MTMxcjEgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgxNywgICAgICAgICAgICAgICAgICAgIC8qIFs0ODY2XSBPQkpfc2VjdDEzMXIyICovCi0weDJCLDB4ODEsMHgwNCwweDAwLDB4MDEsICAgICAgICAgICAgICAgICAgICAvKiBbNDg3MV0gT0JKX3NlY3QxNjNrMSAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDAyLCAgICAgICAgICAgICAgICAgICAgLyogWzQ4NzZdIE9CSl9zZWN0MTYzcjEgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgwRiwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODgxXSBPQkpfc2VjdDE2M3IyICovCi0weDJCLDB4ODEsMHgwNCwweDAwLDB4MTgsICAgICAgICAgICAgICAgICAgICAvKiBbNDg4Nl0gT0JKX3NlY3QxOTNyMSAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDE5LCAgICAgICAgICAgICAgICAgICAgLyogWzQ4OTFdIE9CSl9zZWN0MTkzcjIgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgxQSwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODk2XSBPQkpfc2VjdDIzM2sxICovCi0weDJCLDB4ODEsMHgwNCwweDAwLDB4MUIsICAgICAgICAgICAgICAgICAgICAvKiBbNDkwMV0gT0JKX3NlY3QyMzNyMSAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDAzLCAgICAgICAgICAgICAgICAgICAgLyogWzQ5MDZdIE9CSl9zZWN0MjM5azEgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgxMCwgICAgICAgICAgICAgICAgICAgIC8qIFs0OTExXSBPQkpfc2VjdDI4M2sxICovCi0weDJCLDB4ODEsMHgwNCwweDAwLDB4MTEsICAgICAgICAgICAgICAgICAgICAvKiBbNDkxNl0gT0JKX3NlY3QyODNyMSAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDI0LCAgICAgICAgICAgICAgICAgICAgLyogWzQ5MjFdIE9CSl9zZWN0NDA5azEgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgyNSwgICAgICAgICAgICAgICAgICAgIC8qIFs0OTI2XSBPQkpfc2VjdDQwOXIxICovCi0weDJCLDB4ODEsMHgwNCwweDAwLDB4MjYsICAgICAgICAgICAgICAgICAgICAvKiBbNDkzMV0gT0JKX3NlY3Q1NzFrMSAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDI3LCAgICAgICAgICAgICAgICAgICAgLyogWzQ5MzZdIE9CSl9zZWN0NTcxcjEgKi8KLTB4NjcsMHgyQiwweDAxLDB4MDQsMHgwMSwgICAgICAgICAgICAgICAgICAgIC8qIFs0OTQxXSBPQkpfd2FwX3dzZ19pZG1fZWNpZF93dGxzMSAqLwotMHg2NywweDJCLDB4MDEsMHgwNCwweDAzLCAgICAgICAgICAgICAgICAgICAgLyogWzQ5NDZdIE9CSl93YXBfd3NnX2lkbV9lY2lkX3d0bHMzICovCi0weDY3LDB4MkIsMHgwMSwweDA0LDB4MDQsICAgICAgICAgICAgICAgICAgICAvKiBbNDk1MV0gT0JKX3dhcF93c2dfaWRtX2VjaWRfd3RsczQgKi8KLTB4NjcsMHgyQiwweDAxLDB4MDQsMHgwNSwgICAgICAgICAgICAgICAgICAgIC8qIFs0OTU2XSBPQkpfd2FwX3dzZ19pZG1fZWNpZF93dGxzNSAqLwotMHg2NywweDJCLDB4MDEsMHgwNCwweDA2LCAgICAgICAgICAgICAgICAgICAgLyogWzQ5NjFdIE9CSl93YXBfd3NnX2lkbV9lY2lkX3d0bHM2ICovCi0weDY3LDB4MkIsMHgwMSwweDA0LDB4MDcsICAgICAgICAgICAgICAgICAgICAvKiBbNDk2Nl0gT0JKX3dhcF93c2dfaWRtX2VjaWRfd3RsczcgKi8KLTB4NjcsMHgyQiwweDAxLDB4MDQsMHgwOCwgICAgICAgICAgICAgICAgICAgIC8qIFs0OTcxXSBPQkpfd2FwX3dzZ19pZG1fZWNpZF93dGxzOCAqLwotMHg2NywweDJCLDB4MDEsMHgwNCwweDA5LCAgICAgICAgICAgICAgICAgICAgLyogWzQ5NzZdIE9CSl93YXBfd3NnX2lkbV9lY2lkX3d0bHM5ICovCi0weDY3LDB4MkIsMHgwMSwweDA0LDB4MEEsICAgICAgICAgICAgICAgICAgICAvKiBbNDk4MV0gT0JKX3dhcF93c2dfaWRtX2VjaWRfd3RsczEwICovCi0weDY3LDB4MkIsMHgwMSwweDA0LDB4MEIsICAgICAgICAgICAgICAgICAgICAvKiBbNDk4Nl0gT0JKX3dhcF93c2dfaWRtX2VjaWRfd3RsczExICovCi0weDY3LDB4MkIsMHgwMSwweDA0LDB4MEMsICAgICAgICAgICAgICAgICAgICAvKiBbNDk5MV0gT0JKX3dhcF93c2dfaWRtX2VjaWRfd3RsczEyICovCi0weDU1LDB4MUQsMHgyMCwweDAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDk5Nl0gT0JKX2FueV9wb2xpY3kgKi8KLTB4NTUsMHgxRCwweDIxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1MDAwXSBPQkpfcG9saWN5X21hcHBpbmdzICovCi0weDU1LDB4MUQsMHgzNiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTAwM10gT0JKX2luaGliaXRfYW55X3BvbGljeSAqLwotMHgyQSwweDgzLDB4MDgsMHg4QywweDlBLDB4NEIsMHgzRCwweDAxLDB4MDEsMHgwMSwweDAyLC8qIFs1MDA2XSBPQkpfY2FtZWxsaWFfMTI4X2NiYyAqLwotMHgyQSwweDgzLDB4MDgsMHg4QywweDlBLDB4NEIsMHgzRCwweDAxLDB4MDEsMHgwMSwweDAzLC8qIFs1MDE3XSBPQkpfY2FtZWxsaWFfMTkyX2NiYyAqLwotMHgyQSwweDgzLDB4MDgsMHg4QywweDlBLDB4NEIsMHgzRCwweDAxLDB4MDEsMHgwMSwweDA0LC8qIFs1MDI4XSBPQkpfY2FtZWxsaWFfMjU2X2NiYyAqLwotMHgwMywweEEyLDB4MzEsMHgwNSwweDAzLDB4MDEsMHgwOSwweDAxLCAgICAgLyogWzUwMzldIE9CSl9jYW1lbGxpYV8xMjhfZWNiICovCi0weDAzLDB4QTIsMHgzMSwweDA1LDB4MDMsMHgwMSwweDA5LDB4MTUsICAgICAvKiBbNTA0N10gT0JKX2NhbWVsbGlhXzE5Ml9lY2IgKi8KLTB4MDMsMHhBMiwweDMxLDB4MDUsMHgwMywweDAxLDB4MDksMHgyOSwgICAgIC8qIFs1MDU1XSBPQkpfY2FtZWxsaWFfMjU2X2VjYiAqLwotMHgwMywweEEyLDB4MzEsMHgwNSwweDAzLDB4MDEsMHgwOSwweDA0LCAgICAgLyogWzUwNjNdIE9CSl9jYW1lbGxpYV8xMjhfY2ZiMTI4ICovCi0weDAzLDB4QTIsMHgzMSwweDA1LDB4MDMsMHgwMSwweDA5LDB4MTgsICAgICAvKiBbNTA3MV0gT0JKX2NhbWVsbGlhXzE5Ml9jZmIxMjggKi8KLTB4MDMsMHhBMiwweDMxLDB4MDUsMHgwMywweDAxLDB4MDksMHgyQywgICAgIC8qIFs1MDc5XSBPQkpfY2FtZWxsaWFfMjU2X2NmYjEyOCAqLwotMHgwMywweEEyLDB4MzEsMHgwNSwweDAzLDB4MDEsMHgwOSwweDAzLCAgICAgLyogWzUwODddIE9CSl9jYW1lbGxpYV8xMjhfb2ZiMTI4ICovCi0weDAzLDB4QTIsMHgzMSwweDA1LDB4MDMsMHgwMSwweDA5LDB4MTcsICAgICAvKiBbNTA5NV0gT0JKX2NhbWVsbGlhXzE5Ml9vZmIxMjggKi8KLTB4MDMsMHhBMiwweDMxLDB4MDUsMHgwMywweDAxLDB4MDksMHgyQiwgICAgIC8qIFs1MTAzXSBPQkpfY2FtZWxsaWFfMjU2X29mYjEyOCAqLwotMHg1NSwweDFELDB4MDksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUxMTFdIE9CSl9zdWJqZWN0X2RpcmVjdG9yeV9hdHRyaWJ1dGVzICovCi0weDU1LDB4MUQsMHgxQywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTExNF0gT0JKX2lzc3VpbmdfZGlzdHJpYnV0aW9uX3BvaW50ICovCi0weDU1LDB4MUQsMHgxRCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTExN10gT0JKX2NlcnRpZmljYXRlX2lzc3VlciAqLwotMHgyQSwweDgzLDB4MUEsMHg4QywweDlBLDB4NDQsICAgICAgICAgICAgICAgLyogWzUxMjBdIE9CSl9raXNhICovCi0weDJBLDB4ODMsMHgxQSwweDhDLDB4OUEsMHg0NCwweDAxLDB4MDMsICAgICAvKiBbNTEyNl0gT0JKX3NlZWRfZWNiICovCi0weDJBLDB4ODMsMHgxQSwweDhDLDB4OUEsMHg0NCwweDAxLDB4MDQsICAgICAvKiBbNTEzNF0gT0JKX3NlZWRfY2JjICovCi0weDJBLDB4ODMsMHgxQSwweDhDLDB4OUEsMHg0NCwweDAxLDB4MDYsICAgICAvKiBbNTE0Ml0gT0JKX3NlZWRfb2ZiMTI4ICovCi0weDJBLDB4ODMsMHgxQSwweDhDLDB4OUEsMHg0NCwweDAxLDB4MDUsICAgICAvKiBbNTE1MF0gT0JKX3NlZWRfY2ZiMTI4ICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwOCwweDAxLDB4MDEsICAgICAvKiBbNTE1OF0gT0JKX2htYWNfbWQ1ICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwOCwweDAxLDB4MDIsICAgICAvKiBbNTE2Nl0gT0JKX2htYWNfc2hhMSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY2LDB4N0QsMHgwNywweDQyLDB4MEQsLyogWzUxNzRdIE9CSl9pZF9QYXNzd29yZEJhc2VkTUFDICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjYsMHg3RCwweDA3LDB4NDIsMHgxRSwvKiBbNTE4M10gT0JKX2lkX0RIQmFzZWRNYWMgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgxMCwgICAgIC8qIFs1MTkyXSBPQkpfaWRfaXRfc3VwcExhbmdUYWdzICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDMwLDB4MDUsICAgICAvKiBbNTIwMF0gT0JKX2NhUmVwb3NpdG9yeSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMSwweDA5LC8qIFs1MjA4XSBPQkpfaWRfc21pbWVfY3RfY29tcHJlc3NlZERhdGEgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDEsMHgxQiwvKiBbNTIxOV0gT0JKX2lkX2N0X2FzY2lpVGV4dFdpdGhDUkxGICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgwNSwvKiBbNTIzMF0gT0JKX2lkX2FlczEyOF93cmFwICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgxOSwvKiBbNTIzOV0gT0JKX2lkX2FlczE5Ml93cmFwICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgyRCwvKiBbNTI0OF0gT0JKX2lkX2FlczI1Nl93cmFwICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwNCwweDAyLCAgICAgICAgICAvKiBbNTI1N10gT0JKX2VjZHNhX3dpdGhfUmVjb21tZW5kZWQgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDA0LDB4MDMsICAgICAgICAgIC8qIFs1MjY0XSBPQkpfZWNkc2Ffd2l0aF9TcGVjaWZpZWQgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDA0LDB4MDMsMHgwMSwgICAgIC8qIFs1MjcxXSBPQkpfZWNkc2Ffd2l0aF9TSEEyMjQgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDA0LDB4MDMsMHgwMiwgICAgIC8qIFs1Mjc5XSBPQkpfZWNkc2Ffd2l0aF9TSEEyNTYgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDA0LDB4MDMsMHgwMywgICAgIC8qIFs1Mjg3XSBPQkpfZWNkc2Ffd2l0aF9TSEEzODQgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDA0LDB4MDMsMHgwNCwgICAgIC8qIFs1Mjk1XSBPQkpfZWNkc2Ffd2l0aF9TSEE1MTIgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDIsMHgwNiwgICAgIC8qIFs1MzAzXSBPQkpfaG1hY1dpdGhNRDUgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDIsMHgwOCwgICAgIC8qIFs1MzExXSBPQkpfaG1hY1dpdGhTSEEyMjQgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDIsMHgwOSwgICAgIC8qIFs1MzE5XSBPQkpfaG1hY1dpdGhTSEEyNTYgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDIsMHgwQSwgICAgIC8qIFs1MzI3XSBPQkpfaG1hY1dpdGhTSEEzODQgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDIsMHgwQiwgICAgIC8qIFs1MzM1XSBPQkpfaG1hY1dpdGhTSEE1MTIgKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMywweDAxLC8qIFs1MzQzXSBPQkpfZHNhX3dpdGhfU0hBMjI0ICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDMsMHgwMiwvKiBbNTM1Ml0gT0JKX2RzYV93aXRoX1NIQTI1NiAqLwotMHgyOCwweENGLDB4MDYsMHgwMywweDAwLDB4MzcsICAgICAgICAgICAgICAgLyogWzUzNjFdIE9CSl93aGlybHBvb2wgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwgICAgICAgICAgICAgICAgICAgIC8qIFs1MzY3XSBPQkpfY3J5cHRvcHJvICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDksICAgICAgICAgICAgICAgICAgICAvKiBbNTM3Ml0gT0JKX2NyeXB0b2NvbSAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MDMsICAgICAgICAgICAgICAgLyogWzUzNzddIE9CSl9pZF9Hb3N0UjM0MTFfOTRfd2l0aF9Hb3N0UjM0MTBfMjAwMSAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MDQsICAgICAgICAgICAgICAgLyogWzUzODNdIE9CSl9pZF9Hb3N0UjM0MTFfOTRfd2l0aF9Hb3N0UjM0MTBfOTQgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDA5LCAgICAgICAgICAgICAgIC8qIFs1Mzg5XSBPQkpfaWRfR29zdFIzNDExXzk0ICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgwQSwgICAgICAgICAgICAgICAvKiBbNTM5NV0gT0JKX2lkX0hNQUNHb3N0UjM0MTFfOTQgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDEzLCAgICAgICAgICAgICAgIC8qIFs1NDAxXSBPQkpfaWRfR29zdFIzNDEwXzIwMDEgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDE0LCAgICAgICAgICAgICAgIC8qIFs1NDA3XSBPQkpfaWRfR29zdFIzNDEwXzk0ICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxNSwgICAgICAgICAgICAgICAvKiBbNTQxM10gT0JKX2lkX0dvc3QyODE0N184OSAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MTYsICAgICAgICAgICAgICAgLyogWzU0MTldIE9CSl9pZF9Hb3N0MjgxNDdfODlfTUFDICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxNywgICAgICAgICAgICAgICAvKiBbNTQyNV0gT0JKX2lkX0dvc3RSMzQxMV85NF9wcmYgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDYyLCAgICAgICAgICAgICAgIC8qIFs1NDMxXSBPQkpfaWRfR29zdFIzNDEwXzIwMDFESCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4NjMsICAgICAgICAgICAgICAgLyogWzU0MzddIE9CSl9pZF9Hb3N0UjM0MTBfOTRESCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MEUsMHgwMSwgICAgICAgICAgLyogWzU0NDNdIE9CSl9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX0tleU1lc2hpbmcgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDBFLDB4MDAsICAgICAgICAgIC8qIFs1NDUwXSBPQkpfaWRfR29zdDI4MTQ3Xzg5X05vbmVfS2V5TWVzaGluZyAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MUUsMHgwMCwgICAgICAgICAgLyogWzU0NTddIE9CSl9pZF9Hb3N0UjM0MTFfOTRfVGVzdFBhcmFtU2V0ICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxRSwweDAxLCAgICAgICAgICAvKiBbNTQ2NF0gT0JKX2lkX0dvc3RSMzQxMV85NF9DcnlwdG9Qcm9QYXJhbVNldCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MUYsMHgwMCwgICAgICAgICAgLyogWzU0NzFdIE9CSl9pZF9Hb3N0MjgxNDdfODlfVGVzdFBhcmFtU2V0ICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxRiwweDAxLCAgICAgICAgICAvKiBbNTQ3OF0gT0JKX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fQV9QYXJhbVNldCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MUYsMHgwMiwgICAgICAgICAgLyogWzU0ODVdIE9CSl9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX0JfUGFyYW1TZXQgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDFGLDB4MDMsICAgICAgICAgIC8qIFs1NDkyXSBPQkpfaWRfR29zdDI4MTQ3Xzg5X0NyeXB0b1Byb19DX1BhcmFtU2V0ICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxRiwweDA0LCAgICAgICAgICAvKiBbNTQ5OV0gT0JKX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fRF9QYXJhbVNldCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MUYsMHgwNSwgICAgICAgICAgLyogWzU1MDZdIE9CSl9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX09zY2FyXzFfMV9QYXJhbVNldCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MUYsMHgwNiwgICAgICAgICAgLyogWzU1MTNdIE9CSl9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX09zY2FyXzFfMF9QYXJhbVNldCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MUYsMHgwNywgICAgICAgICAgLyogWzU1MjBdIE9CSl9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX1JJQ18xX1BhcmFtU2V0ICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgyMCwweDAwLCAgICAgICAgICAvKiBbNTUyN10gT0JKX2lkX0dvc3RSMzQxMF85NF9UZXN0UGFyYW1TZXQgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDIwLDB4MDIsICAgICAgICAgIC8qIFs1NTM0XSBPQkpfaWRfR29zdFIzNDEwXzk0X0NyeXB0b1Byb19BX1BhcmFtU2V0ICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgyMCwweDAzLCAgICAgICAgICAvKiBbNTU0MV0gT0JKX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fQl9QYXJhbVNldCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MjAsMHgwNCwgICAgICAgICAgLyogWzU1NDhdIE9CSl9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX0NfUGFyYW1TZXQgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDIwLDB4MDUsICAgICAgICAgIC8qIFs1NTU1XSBPQkpfaWRfR29zdFIzNDEwXzk0X0NyeXB0b1Byb19EX1BhcmFtU2V0ICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgyMSwweDAxLCAgICAgICAgICAvKiBbNTU2Ml0gT0JKX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fWGNoQV9QYXJhbVNldCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MjEsMHgwMiwgICAgICAgICAgLyogWzU1NjldIE9CSl9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX1hjaEJfUGFyYW1TZXQgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDIxLDB4MDMsICAgICAgICAgIC8qIFs1NTc2XSBPQkpfaWRfR29zdFIzNDEwXzk0X0NyeXB0b1Byb19YY2hDX1BhcmFtU2V0ICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgyMywweDAwLCAgICAgICAgICAvKiBbNTU4M10gT0JKX2lkX0dvc3RSMzQxMF8yMDAxX1Rlc3RQYXJhbVNldCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MjMsMHgwMSwgICAgICAgICAgLyogWzU1OTBdIE9CSl9pZF9Hb3N0UjM0MTBfMjAwMV9DcnlwdG9Qcm9fQV9QYXJhbVNldCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MjMsMHgwMiwgICAgICAgICAgLyogWzU1OTddIE9CSl9pZF9Hb3N0UjM0MTBfMjAwMV9DcnlwdG9Qcm9fQl9QYXJhbVNldCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MjMsMHgwMywgICAgICAgICAgLyogWzU2MDRdIE9CSl9pZF9Hb3N0UjM0MTBfMjAwMV9DcnlwdG9Qcm9fQ19QYXJhbVNldCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MjQsMHgwMCwgICAgICAgICAgLyogWzU2MTFdIE9CSl9pZF9Hb3N0UjM0MTBfMjAwMV9DcnlwdG9Qcm9fWGNoQV9QYXJhbVNldCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MjQsMHgwMSwgICAgICAgICAgLyogWzU2MThdIE9CSl9pZF9Hb3N0UjM0MTBfMjAwMV9DcnlwdG9Qcm9fWGNoQl9QYXJhbVNldCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MTQsMHgwMSwgICAgICAgICAgLyogWzU2MjVdIE9CSl9pZF9Hb3N0UjM0MTBfOTRfYSAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MTQsMHgwMiwgICAgICAgICAgLyogWzU2MzJdIE9CSl9pZF9Hb3N0UjM0MTBfOTRfYUJpcyAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MTQsMHgwMywgICAgICAgICAgLyogWzU2MzldIE9CSl9pZF9Hb3N0UjM0MTBfOTRfYiAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MTQsMHgwNCwgICAgICAgICAgLyogWzU2NDZdIE9CSl9pZF9Hb3N0UjM0MTBfOTRfYkJpcyAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDA5LDB4MDEsMHgwNiwweDAxLCAgICAgLyogWzU2NTNdIE9CSl9pZF9Hb3N0MjgxNDdfODlfY2MgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwOSwweDAxLDB4MDUsMHgwMywgICAgIC8qIFs1NjYxXSBPQkpfaWRfR29zdFIzNDEwXzk0X2NjICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDksMHgwMSwweDA1LDB4MDQsICAgICAvKiBbNTY2OV0gT0JKX2lkX0dvc3RSMzQxMF8yMDAxX2NjICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDksMHgwMSwweDAzLDB4MDMsICAgICAvKiBbNTY3N10gT0JKX2lkX0dvc3RSMzQxMV85NF93aXRoX0dvc3RSMzQxMF85NF9jYyAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDA5LDB4MDEsMHgwMywweDA0LCAgICAgLyogWzU2ODVdIE9CSl9pZF9Hb3N0UjM0MTFfOTRfd2l0aF9Hb3N0UjM0MTBfMjAwMV9jYyAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDA5LDB4MDEsMHgwOCwweDAxLCAgICAgLyogWzU2OTNdIE9CSl9pZF9Hb3N0UjM0MTBfMjAwMV9QYXJhbVNldF9jYyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNCwweDAxLDB4ODIsMHgzNywweDExLDB4MDIsLyogWzU3MDFdIE9CSl9Mb2NhbEtleVNldCAqLwotMHg1NSwweDFELDB4MkUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3MTBdIE9CSl9mcmVzaGVzdF9jcmwgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDgsMHgwMywgICAgIC8qIFs1NzEzXSBPQkpfaWRfb25fcGVybWFuZW50SWRlbnRpZmllciAqLwotMHg1NSwweDA0LDB4MEUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3MjFdIE9CSl9zZWFyY2hHdWlkZSAqLwotMHg1NSwweDA0LDB4MEYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3MjRdIE9CSl9idXNpbmVzc0NhdGVnb3J5ICovCi0weDU1LDB4MDQsMHgxMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTcyN10gT0JKX3Bvc3RhbEFkZHJlc3MgKi8KLTB4NTUsMHgwNCwweDEyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzMwXSBPQkpfcG9zdE9mZmljZUJveCAqLwotMHg1NSwweDA0LDB4MTMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3MzNdIE9CSl9waHlzaWNhbERlbGl2ZXJ5T2ZmaWNlTmFtZSAqLwotMHg1NSwweDA0LDB4MTQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3MzZdIE9CSl90ZWxlcGhvbmVOdW1iZXIgKi8KLTB4NTUsMHgwNCwweDE1LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzM5XSBPQkpfdGVsZXhOdW1iZXIgKi8KLTB4NTUsMHgwNCwweDE2LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzQyXSBPQkpfdGVsZXRleFRlcm1pbmFsSWRlbnRpZmllciAqLwotMHg1NSwweDA0LDB4MTcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3NDVdIE9CSl9mYWNzaW1pbGVUZWxlcGhvbmVOdW1iZXIgKi8KLTB4NTUsMHgwNCwweDE4LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzQ4XSBPQkpfeDEyMUFkZHJlc3MgKi8KLTB4NTUsMHgwNCwweDE5LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzUxXSBPQkpfaW50ZXJuYXRpb25hbGlTRE5OdW1iZXIgKi8KLTB4NTUsMHgwNCwweDFBLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzU0XSBPQkpfcmVnaXN0ZXJlZEFkZHJlc3MgKi8KLTB4NTUsMHgwNCwweDFCLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzU3XSBPQkpfZGVzdGluYXRpb25JbmRpY2F0b3IgKi8KLTB4NTUsMHgwNCwweDFDLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzYwXSBPQkpfcHJlZmVycmVkRGVsaXZlcnlNZXRob2QgKi8KLTB4NTUsMHgwNCwweDFELCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzYzXSBPQkpfcHJlc2VudGF0aW9uQWRkcmVzcyAqLwotMHg1NSwweDA0LDB4MUUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3NjZdIE9CSl9zdXBwb3J0ZWRBcHBsaWNhdGlvbkNvbnRleHQgKi8KLTB4NTUsMHgwNCwweDFGLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzY5XSBPQkpfbWVtYmVyICovCi0weDU1LDB4MDQsMHgyMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc3Ml0gT0JKX293bmVyICovCi0weDU1LDB4MDQsMHgyMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc3NV0gT0JKX3JvbGVPY2N1cGFudCAqLwotMHg1NSwweDA0LDB4MjIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3NzhdIE9CSl9zZWVBbHNvICovCi0weDU1LDB4MDQsMHgyMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc4MV0gT0JKX3VzZXJQYXNzd29yZCAqLwotMHg1NSwweDA0LDB4MjQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3ODRdIE9CSl91c2VyQ2VydGlmaWNhdGUgKi8KLTB4NTUsMHgwNCwweDI1LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1Nzg3XSBPQkpfY0FDZXJ0aWZpY2F0ZSAqLwotMHg1NSwweDA0LDB4MjYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3OTBdIE9CSl9hdXRob3JpdHlSZXZvY2F0aW9uTGlzdCAqLwotMHg1NSwweDA0LDB4MjcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3OTNdIE9CSl9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0ICovCi0weDU1LDB4MDQsMHgyOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc5Nl0gT0JKX2Nyb3NzQ2VydGlmaWNhdGVQYWlyICovCi0weDU1LDB4MDQsMHgyRiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc5OV0gT0JKX2VuaGFuY2VkU2VhcmNoR3VpZGUgKi8KLTB4NTUsMHgwNCwweDMwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1ODAyXSBPQkpfcHJvdG9jb2xJbmZvcm1hdGlvbiAqLwotMHg1NSwweDA0LDB4MzEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU4MDVdIE9CSl9kaXN0aW5ndWlzaGVkTmFtZSAqLwotMHg1NSwweDA0LDB4MzIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU4MDhdIE9CSl91bmlxdWVNZW1iZXIgKi8KLTB4NTUsMHgwNCwweDMzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1ODExXSBPQkpfaG91c2VJZGVudGlmaWVyICovCi0weDU1LDB4MDQsMHgzNCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTgxNF0gT0JKX3N1cHBvcnRlZEFsZ29yaXRobXMgKi8KLTB4NTUsMHgwNCwweDM1LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1ODE3XSBPQkpfZGVsdGFSZXZvY2F0aW9uTGlzdCAqLwotMHg1NSwweDA0LDB4MzYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU4MjBdIE9CSl9kbWROYW1lICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAzLDB4MDksLyogWzU4MjNdIE9CSl9pZF9hbGdfUFdSSV9LRUsgKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDA2LC8qIFs1ODM0XSBPQkpfYWVzXzEyOF9nY20gKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDA3LC8qIFs1ODQzXSBPQkpfYWVzXzEyOF9jY20gKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDA4LC8qIFs1ODUyXSBPQkpfaWRfYWVzMTI4X3dyYXBfcGFkICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgxQSwvKiBbNTg2MV0gT0JKX2Flc18xOTJfZ2NtICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgxQiwvKiBbNTg3MF0gT0JKX2Flc18xOTJfY2NtICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgxQywvKiBbNTg3OV0gT0JKX2lkX2FlczE5Ml93cmFwX3BhZCAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MkUsLyogWzU4ODhdIE9CSl9hZXNfMjU2X2djbSAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MkYsLyogWzU4OTddIE9CSl9hZXNfMjU2X2NjbSAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MzAsLyogWzU5MDZdIE9CSl9pZF9hZXMyNTZfd3JhcF9wYWQgKi8KLTB4MkEsMHg4MywweDA4LDB4OEMsMHg5QSwweDRCLDB4M0QsMHgwMSwweDAxLDB4MDMsMHgwMiwvKiBbNTkxNV0gT0JKX2lkX2NhbWVsbGlhMTI4X3dyYXAgKi8KLTB4MkEsMHg4MywweDA4LDB4OEMsMHg5QSwweDRCLDB4M0QsMHgwMSwweDAxLDB4MDMsMHgwMywvKiBbNTkyNl0gT0JKX2lkX2NhbWVsbGlhMTkyX3dyYXAgKi8KLTB4MkEsMHg4MywweDA4LDB4OEMsMHg5QSwweDRCLDB4M0QsMHgwMSwweDAxLDB4MDMsMHgwNCwvKiBbNTkzN10gT0JKX2lkX2NhbWVsbGlhMjU2X3dyYXAgKi8KLTB4NTUsMHgxRCwweDI1LDB4MDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1OTQ4XSBPQkpfYW55RXh0ZW5kZWRLZXlVc2FnZSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLDB4MDgsLyogWzU5NTJdIE9CSl9tZ2YxICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDEsMHgwQSwvKiBbNTk2MV0gT0JKX3JzYXNzYVBzcyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLDB4MDcsLyogWzU5NzBdIE9CSl9yc2Flc09hZXAgKi8KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGx2YWx1ZXNbNTk3NF09eworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsICAgICAgICAgICAgICAgLyogWyAgMF0gT0JKX3JzYWRzaSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwgICAgICAgICAgLyogWyAgNl0gT0JKX3BrY3MgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDIsMHgwMiwgICAgIC8qIFsgMTNdIE9CSl9tZDIgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDIsMHgwNSwgICAgIC8qIFsgMjFdIE9CSl9tZDUgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDMsMHgwNCwgICAgIC8qIFsgMjldIE9CSl9yYzQgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwMSwweDAxLC8qIFsgMzddIE9CSl9yc2FFbmNyeXB0aW9uICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDEsMHgwMiwvKiBbIDQ2XSBPQkpfbWQyV2l0aFJTQUVuY3J5cHRpb24gKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwMSwweDA0LC8qIFsgNTVdIE9CSl9tZDVXaXRoUlNBRW5jcnlwdGlvbiAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA1LDB4MDEsLyogWyA2NF0gT0JKX3BiZVdpdGhNRDJBbmRERVNfQ0JDICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDUsMHgwMywvKiBbIDczXSBPQkpfcGJlV2l0aE1ENUFuZERFU19DQkMgKi8KKzB4NTUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsgODJdIE9CSl9YNTAwICovCisweDU1LDB4MDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbIDgzXSBPQkpfWDUwOSAqLworMHg1NSwweDA0LDB4MDMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWyA4NV0gT0JKX2NvbW1vbk5hbWUgKi8KKzB4NTUsMHgwNCwweDA2LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsgODhdIE9CSl9jb3VudHJ5TmFtZSAqLworMHg1NSwweDA0LDB4MDcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWyA5MV0gT0JKX2xvY2FsaXR5TmFtZSAqLworMHg1NSwweDA0LDB4MDgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWyA5NF0gT0JKX3N0YXRlT3JQcm92aW5jZU5hbWUgKi8KKzB4NTUsMHgwNCwweDBBLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsgOTddIE9CSl9vcmdhbml6YXRpb25OYW1lICovCisweDU1LDB4MDQsMHgwQiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMTAwXSBPQkpfb3JnYW5pemF0aW9uYWxVbml0TmFtZSAqLworMHg1NSwweDA4LDB4MDEsMHgwMSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzEwM10gT0JKX3JzYSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA3LCAgICAgLyogWzEwN10gT0JKX3BrY3M3ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDcsMHgwMSwvKiBbMTE1XSBPQkpfcGtjczdfZGF0YSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA3LDB4MDIsLyogWzEyNF0gT0JKX3BrY3M3X3NpZ25lZCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA3LDB4MDMsLyogWzEzM10gT0JKX3BrY3M3X2VudmVsb3BlZCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA3LDB4MDQsLyogWzE0Ml0gT0JKX3BrY3M3X3NpZ25lZEFuZEVudmVsb3BlZCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA3LDB4MDUsLyogWzE1MV0gT0JKX3BrY3M3X2RpZ2VzdCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA3LDB4MDYsLyogWzE2MF0gT0JKX3BrY3M3X2VuY3J5cHRlZCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAzLCAgICAgLyogWzE2OV0gT0JKX3BrY3MzICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDMsMHgwMSwvKiBbMTc3XSBPQkpfZGhLZXlBZ3JlZW1lbnQgKi8KKzB4MkIsMHgwRSwweDAzLDB4MDIsMHgwNiwgICAgICAgICAgICAgICAgICAgIC8qIFsxODZdIE9CSl9kZXNfZWNiICovCisweDJCLDB4MEUsMHgwMywweDAyLDB4MDksICAgICAgICAgICAgICAgICAgICAvKiBbMTkxXSBPQkpfZGVzX2NmYjY0ICovCisweDJCLDB4MEUsMHgwMywweDAyLDB4MDcsICAgICAgICAgICAgICAgICAgICAvKiBbMTk2XSBPQkpfZGVzX2NiYyAqLworMHgyQiwweDBFLDB4MDMsMHgwMiwweDExLCAgICAgICAgICAgICAgICAgICAgLyogWzIwMV0gT0JKX2Rlc19lZGVfZWNiICovCisweDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsMHg4MSwweDNDLDB4MDcsMHgwMSwweDAxLDB4MDIsLyogWzIwNl0gT0JKX2lkZWFfY2JjICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAzLDB4MDIsICAgICAvKiBbMjE3XSBPQkpfcmMyX2NiYyAqLworMHgyQiwweDBFLDB4MDMsMHgwMiwweDEyLCAgICAgICAgICAgICAgICAgICAgLyogWzIyNV0gT0JKX3NoYSAqLworMHgyQiwweDBFLDB4MDMsMHgwMiwweDBGLCAgICAgICAgICAgICAgICAgICAgLyogWzIzMF0gT0JKX3NoYVdpdGhSU0FFbmNyeXB0aW9uICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAzLDB4MDcsICAgICAvKiBbMjM1XSBPQkpfZGVzX2VkZTNfY2JjICovCisweDJCLDB4MEUsMHgwMywweDAyLDB4MDgsICAgICAgICAgICAgICAgICAgICAvKiBbMjQzXSBPQkpfZGVzX29mYjY0ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksICAgICAvKiBbMjQ4XSBPQkpfcGtjczkgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDAxLC8qIFsyNTZdIE9CSl9wa2NzOV9lbWFpbEFkZHJlc3MgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDAyLC8qIFsyNjVdIE9CSl9wa2NzOV91bnN0cnVjdHVyZWROYW1lICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgwMywvKiBbMjc0XSBPQkpfcGtjczlfY29udGVudFR5cGUgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDA0LC8qIFsyODNdIE9CSl9wa2NzOV9tZXNzYWdlRGlnZXN0ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgwNSwvKiBbMjkyXSBPQkpfcGtjczlfc2lnbmluZ1RpbWUgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDA2LC8qIFszMDFdIE9CSl9wa2NzOV9jb3VudGVyc2lnbmF0dXJlICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgwNywvKiBbMzEwXSBPQkpfcGtjczlfY2hhbGxlbmdlUGFzc3dvcmQgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDA4LC8qIFszMTldIE9CSl9wa2NzOV91bnN0cnVjdHVyZWRBZGRyZXNzICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgwOSwvKiBbMzI4XSBPQkpfcGtjczlfZXh0Q2VydEF0dHJpYnV0ZXMgKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg4NiwweEY4LDB4NDIsICAgICAgICAgIC8qIFszMzddIE9CSl9uZXRzY2FwZSAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDg2LDB4RjgsMHg0MiwweDAxLCAgICAgLyogWzM0NF0gT0JKX25ldHNjYXBlX2NlcnRfZXh0ZW5zaW9uICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4ODYsMHhGOCwweDQyLDB4MDIsICAgICAvKiBbMzUyXSBPQkpfbmV0c2NhcGVfZGF0YV90eXBlICovCisweDJCLDB4MEUsMHgwMywweDAyLDB4MUEsICAgICAgICAgICAgICAgICAgICAvKiBbMzYwXSBPQkpfc2hhMSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLDB4MDUsLyogWzM2NV0gT0JKX3NoYTFXaXRoUlNBRW5jcnlwdGlvbiAqLworMHgyQiwweDBFLDB4MDMsMHgwMiwweDBELCAgICAgICAgICAgICAgICAgICAgLyogWzM3NF0gT0JKX2RzYVdpdGhTSEEgKi8KKzB4MkIsMHgwRSwweDAzLDB4MDIsMHgwQywgICAgICAgICAgICAgICAgICAgIC8qIFszNzldIE9CSl9kc2FfMiAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA1LDB4MEIsLyogWzM4NF0gT0JKX3BiZVdpdGhTSEExQW5kUkMyX0NCQyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA1LDB4MEMsLyogWzM5M10gT0JKX2lkX3Bia2RmMiAqLworMHgyQiwweDBFLDB4MDMsMHgwMiwweDFCLCAgICAgICAgICAgICAgICAgICAgLyogWzQwMl0gT0JKX2RzYVdpdGhTSEExXzIgKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg4NiwweEY4LDB4NDIsMHgwMSwweDAxLC8qIFs0MDddIE9CSl9uZXRzY2FwZV9jZXJ0X3R5cGUgKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg4NiwweEY4LDB4NDIsMHgwMSwweDAyLC8qIFs0MTZdIE9CSl9uZXRzY2FwZV9iYXNlX3VybCAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDg2LDB4RjgsMHg0MiwweDAxLDB4MDMsLyogWzQyNV0gT0JKX25ldHNjYXBlX3Jldm9jYXRpb25fdXJsICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4ODYsMHhGOCwweDQyLDB4MDEsMHgwNCwvKiBbNDM0XSBPQkpfbmV0c2NhcGVfY2FfcmV2b2NhdGlvbl91cmwgKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg4NiwweEY4LDB4NDIsMHgwMSwweDA3LC8qIFs0NDNdIE9CSl9uZXRzY2FwZV9yZW5ld2FsX3VybCAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDg2LDB4RjgsMHg0MiwweDAxLDB4MDgsLyogWzQ1Ml0gT0JKX25ldHNjYXBlX2NhX3BvbGljeV91cmwgKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg4NiwweEY4LDB4NDIsMHgwMSwweDBDLC8qIFs0NjFdIE9CSl9uZXRzY2FwZV9zc2xfc2VydmVyX25hbWUgKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg4NiwweEY4LDB4NDIsMHgwMSwweDBELC8qIFs0NzBdIE9CSl9uZXRzY2FwZV9jb21tZW50ICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4ODYsMHhGOCwweDQyLDB4MDIsMHgwNSwvKiBbNDc5XSBPQkpfbmV0c2NhcGVfY2VydF9zZXF1ZW5jZSAqLworMHg1NSwweDFELCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ4OF0gT0JKX2lkX2NlICovCisweDU1LDB4MUQsMHgwRSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDkwXSBPQkpfc3ViamVjdF9rZXlfaWRlbnRpZmllciAqLworMHg1NSwweDFELDB4MEYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ5M10gT0JKX2tleV91c2FnZSAqLworMHg1NSwweDFELDB4MTAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ5Nl0gT0JKX3ByaXZhdGVfa2V5X3VzYWdlX3BlcmlvZCAqLworMHg1NSwweDFELDB4MTEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ5OV0gT0JKX3N1YmplY3RfYWx0X25hbWUgKi8KKzB4NTUsMHgxRCwweDEyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1MDJdIE9CSl9pc3N1ZXJfYWx0X25hbWUgKi8KKzB4NTUsMHgxRCwweDEzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1MDVdIE9CSl9iYXNpY19jb25zdHJhaW50cyAqLworMHg1NSwweDFELDB4MTQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUwOF0gT0JKX2NybF9udW1iZXIgKi8KKzB4NTUsMHgxRCwweDIwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1MTFdIE9CSl9jZXJ0aWZpY2F0ZV9wb2xpY2llcyAqLworMHg1NSwweDFELDB4MjMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUxNF0gT0JKX2F1dGhvcml0eV9rZXlfaWRlbnRpZmllciAqLworMHgyQiwweDA2LDB4MDEsMHgwNCwweDAxLDB4OTcsMHg1NSwweDAxLDB4MDIsLyogWzUxN10gT0JKX2JmX2NiYyAqLworMHg1NSwweDA4LDB4MDMsMHg2NSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUyNl0gT0JKX21kYzIgKi8KKzB4NTUsMHgwOCwweDAzLDB4NjQsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1MzBdIE9CSl9tZGMyV2l0aFJTQSAqLworMHg1NSwweDA0LDB4MkEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUzNF0gT0JKX2dpdmVuTmFtZSAqLworMHg1NSwweDA0LDB4MDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUzN10gT0JKX3N1cm5hbWUgKi8KKzB4NTUsMHgwNCwweDJCLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NDBdIE9CSl9pbml0aWFscyAqLworMHg1NSwweDFELDB4MUYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU0M10gT0JKX2NybF9kaXN0cmlidXRpb25fcG9pbnRzICovCisweDJCLDB4MEUsMHgwMywweDAyLDB4MDMsICAgICAgICAgICAgICAgICAgICAvKiBbNTQ2XSBPQkpfbWQ1V2l0aFJTQSAqLworMHg1NSwweDA0LDB4MDUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU1MV0gT0JKX3NlcmlhbE51bWJlciAqLworMHg1NSwweDA0LDB4MEMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU1NF0gT0JKX3RpdGxlICovCisweDU1LDB4MDQsMHgwRCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTU3XSBPQkpfZGVzY3JpcHRpb24gKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNiwweDdELDB4MDcsMHg0MiwweDBBLC8qIFs1NjBdIE9CSl9jYXN0NV9jYmMgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNiwweDdELDB4MDcsMHg0MiwweDBDLC8qIFs1NjldIE9CSl9wYmVXaXRoTUQ1QW5kQ2FzdDVfQ0JDICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4MzgsMHgwNCwweDAzLCAgICAgICAgICAvKiBbNTc4XSBPQkpfZHNhV2l0aFNIQTEgKi8KKzB4MkIsMHgwRSwweDAzLDB4MDIsMHgxRCwgICAgICAgICAgICAgICAgICAgIC8qIFs1ODVdIE9CSl9zaGExV2l0aFJTQSAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDM4LDB4MDQsMHgwMSwgICAgICAgICAgLyogWzU5MF0gT0JKX2RzYSAqLworMHgyQiwweDI0LDB4MDMsMHgwMiwweDAxLCAgICAgICAgICAgICAgICAgICAgLyogWzU5N10gT0JKX3JpcGVtZDE2MCAqLworMHgyQiwweDI0LDB4MDMsMHgwMywweDAxLDB4MDIsICAgICAgICAgICAgICAgLyogWzYwMl0gT0JKX3JpcGVtZDE2MFdpdGhSU0EgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDMsMHgwOCwgICAgIC8qIFs2MDhdIE9CSl9yYzVfY2JjICovCisweDI5LDB4MDEsMHgwMSwweDg1LDB4MUEsMHgwMSwgICAgICAgICAgICAgICAvKiBbNjE2XSBPQkpfcmxlX2NvbXByZXNzaW9uICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAzLDB4MDgsLyogWzYyMl0gT0JKX3psaWJfY29tcHJlc3Npb24gKi8KKzB4NTUsMHgxRCwweDI1LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs2MzNdIE9CSl9leHRfa2V5X3VzYWdlICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywgICAgICAgICAgICAgICAvKiBbNjM2XSBPQkpfaWRfcGtpeCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMywgICAgICAgICAgLyogWzY0Ml0gT0JKX2lkX2twICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAzLDB4MDEsICAgICAvKiBbNjQ5XSBPQkpfc2VydmVyX2F1dGggKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDMsMHgwMiwgICAgIC8qIFs2NTddIE9CSl9jbGllbnRfYXV0aCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMywweDAzLCAgICAgLyogWzY2NV0gT0JKX2NvZGVfc2lnbiAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMywweDA0LCAgICAgLyogWzY3M10gT0JKX2VtYWlsX3Byb3RlY3QgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDMsMHgwOCwgICAgIC8qIFs2ODFdIE9CSl90aW1lX3N0YW1wICovCisweDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsMHg4MiwweDM3LDB4MDIsMHgwMSwweDE1LC8qIFs2ODldIE9CSl9tc19jb2RlX2luZCAqLworMHgyQiwweDA2LDB4MDEsMHgwNCwweDAxLDB4ODIsMHgzNywweDAyLDB4MDEsMHgxNiwvKiBbNjk5XSBPQkpfbXNfY29kZV9jb20gKi8KKzB4MkIsMHgwNiwweDAxLDB4MDQsMHgwMSwweDgyLDB4MzcsMHgwQSwweDAzLDB4MDEsLyogWzcwOV0gT0JKX21zX2N0bF9zaWduICovCisweDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsMHg4MiwweDM3LDB4MEEsMHgwMywweDAzLC8qIFs3MTldIE9CSl9tc19zZ2MgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDQsMHgwMSwweDgyLDB4MzcsMHgwQSwweDAzLDB4MDQsLyogWzcyOV0gT0JKX21zX2VmcyAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDg2LDB4RjgsMHg0MiwweDA0LDB4MDEsLyogWzczOV0gT0JKX25zX3NnYyAqLworMHg1NSwweDFELDB4MUIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzc0OF0gT0JKX2RlbHRhX2NybCAqLworMHg1NSwweDFELDB4MTUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzc1MV0gT0JKX2NybF9yZWFzb24gKi8KKzB4NTUsMHgxRCwweDE4LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs3NTRdIE9CSl9pbnZhbGlkaXR5X2RhdGUgKi8KKzB4MkIsMHg2NSwweDAxLDB4MDQsMHgwMSwgICAgICAgICAgICAgICAgICAgIC8qIFs3NTddIE9CSl9zeG5ldCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDBDLDB4MDEsMHgwMSwvKiBbNzYyXSBPQkpfcGJlX1dpdGhTSEExQW5kMTI4Qml0UkM0ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MEMsMHgwMSwweDAyLC8qIFs3NzJdIE9CSl9wYmVfV2l0aFNIQTFBbmQ0MEJpdFJDNCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDBDLDB4MDEsMHgwMywvKiBbNzgyXSBPQkpfcGJlX1dpdGhTSEExQW5kM19LZXlfVHJpcGxlREVTX0NCQyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDBDLDB4MDEsMHgwNCwvKiBbNzkyXSBPQkpfcGJlX1dpdGhTSEExQW5kMl9LZXlfVHJpcGxlREVTX0NCQyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDBDLDB4MDEsMHgwNSwvKiBbODAyXSBPQkpfcGJlX1dpdGhTSEExQW5kMTI4Qml0UkMyX0NCQyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDBDLDB4MDEsMHgwNiwvKiBbODEyXSBPQkpfcGJlX1dpdGhTSEExQW5kNDBCaXRSQzJfQ0JDICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MEMsMHgwQSwweDAxLDB4MDEsLyogWzgyMl0gT0JKX2tleUJhZyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDBDLDB4MEEsMHgwMSwweDAyLC8qIFs4MzNdIE9CSl9wa2NzOFNocm91ZGVkS2V5QmFnICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MEMsMHgwQSwweDAxLDB4MDMsLyogWzg0NF0gT0JKX2NlcnRCYWcgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwQywweDBBLDB4MDEsMHgwNCwvKiBbODU1XSBPQkpfY3JsQmFnICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MEMsMHgwQSwweDAxLDB4MDUsLyogWzg2Nl0gT0JKX3NlY3JldEJhZyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDBDLDB4MEEsMHgwMSwweDA2LC8qIFs4NzddIE9CSl9zYWZlQ29udGVudHNCYWcgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDE0LC8qIFs4ODhdIE9CSl9mcmllbmRseU5hbWUgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDE1LC8qIFs4OTddIE9CSl9sb2NhbEtleUlEICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxNiwweDAxLC8qIFs5MDZdIE9CSl94NTA5Q2VydGlmaWNhdGUgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDE2LDB4MDIsLyogWzkxNl0gT0JKX3Nkc2lDZXJ0aWZpY2F0ZSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTcsMHgwMSwvKiBbOTI2XSBPQkpfeDUwOUNybCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA1LDB4MEQsLyogWzkzNl0gT0JKX3BiZXMyICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDUsMHgwRSwvKiBbOTQ1XSBPQkpfcGJtYWMxICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAyLDB4MDcsICAgICAvKiBbOTU0XSBPQkpfaG1hY1dpdGhTSEExICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAyLDB4MDEsICAgICAvKiBbOTYyXSBPQkpfaWRfcXRfY3BzICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAyLDB4MDIsICAgICAvKiBbOTcwXSBPQkpfaWRfcXRfdW5vdGljZSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MEYsLyogWzk3OF0gT0JKX1NNSU1FQ2FwYWJpbGl0aWVzICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDUsMHgwNCwvKiBbOTg3XSBPQkpfcGJlV2l0aE1EMkFuZFJDMl9DQkMgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwNSwweDA2LC8qIFs5OTZdIE9CSl9wYmVXaXRoTUQ1QW5kUkMyX0NCQyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA1LDB4MEEsLyogWzEwMDVdIE9CSl9wYmVXaXRoU0hBMUFuZERFU19DQkMgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDQsMHgwMSwweDgyLDB4MzcsMHgwMiwweDAxLDB4MEUsLyogWzEwMTRdIE9CSl9tc19leHRfcmVxICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgwRSwvKiBbMTAyNF0gT0JKX2V4dF9yZXEgKi8KKzB4NTUsMHgwNCwweDI5LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsxMDMzXSBPQkpfbmFtZSAqLworMHg1NSwweDA0LDB4MkUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzEwMzZdIE9CSl9kblF1YWxpZmllciAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMSwgICAgICAgICAgLyogWzEwMzldIE9CSl9pZF9wZSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwgICAgICAgICAgLyogWzEwNDZdIE9CSl9pZF9hZCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMSwweDAxLCAgICAgLyogWzEwNTNdIE9CSl9pbmZvX2FjY2VzcyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAxLCAgICAgLyogWzEwNjFdIE9CSl9hZF9PQ1NQICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDMwLDB4MDIsICAgICAvKiBbMTA2OV0gT0JKX2FkX2NhX2lzc3VlcnMgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDMsMHgwOSwgICAgIC8qIFsxMDc3XSBPQkpfT0NTUF9zaWduICovCisweDJBLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMTA4NV0gT0JKX21lbWJlcl9ib2R5ICovCisweDJBLDB4ODYsMHg0OCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMTA4Nl0gT0JKX0lTT19VUyAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDM4LCAgICAgICAgICAgICAgICAgICAgLyogWzEwODldIE9CSl9YOV81NyAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDM4LDB4MDQsICAgICAgICAgICAgICAgLyogWzEwOTRdIE9CSl9YOWNtICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDEsICAgICAvKiBbMTEwMF0gT0JKX3BrY3MxICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDUsICAgICAvKiBbMTEwOF0gT0JKX3BrY3M1ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwvKiBbMTExNl0gT0JKX1NNSU1FICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAwLC8qIFsxMTI1XSBPQkpfaWRfc21pbWVfbW9kICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAxLC8qIFsxMTM1XSBPQkpfaWRfc21pbWVfY3QgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsLyogWzExNDVdIE9CSl9pZF9zbWltZV9hYSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMywvKiBbMTE1NV0gT0JKX2lkX3NtaW1lX2FsZyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwNCwvKiBbMTE2NV0gT0JKX2lkX3NtaW1lX2NkICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDA1LC8qIFsxMTc1XSBPQkpfaWRfc21pbWVfc3BxICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDA2LC8qIFsxMTg1XSBPQkpfaWRfc21pbWVfY3RpICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAwLDB4MDEsLyogWzExOTVdIE9CSl9pZF9zbWltZV9tb2RfY21zICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAwLDB4MDIsLyogWzEyMDZdIE9CSl9pZF9zbWltZV9tb2RfZXNzICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAwLDB4MDMsLyogWzEyMTddIE9CSl9pZF9zbWltZV9tb2Rfb2lkICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAwLDB4MDQsLyogWzEyMjhdIE9CSl9pZF9zbWltZV9tb2RfbXNnX3YzICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAwLDB4MDUsLyogWzEyMzldIE9CSl9pZF9zbWltZV9tb2RfZXRzX2VTaWduYXR1cmVfODggKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDAsMHgwNiwvKiBbMTI1MF0gT0JKX2lkX3NtaW1lX21vZF9ldHNfZVNpZ25hdHVyZV85NyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMCwweDA3LC8qIFsxMjYxXSBPQkpfaWRfc21pbWVfbW9kX2V0c19lU2lnUG9saWN5Xzg4ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAwLDB4MDgsLyogWzEyNzJdIE9CSl9pZF9zbWltZV9tb2RfZXRzX2VTaWdQb2xpY3lfOTcgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDEsMHgwMSwvKiBbMTI4M10gT0JKX2lkX3NtaW1lX2N0X3JlY2VpcHQgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDEsMHgwMiwvKiBbMTI5NF0gT0JKX2lkX3NtaW1lX2N0X2F1dGhEYXRhICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAxLDB4MDMsLyogWzEzMDVdIE9CSl9pZF9zbWltZV9jdF9wdWJsaXNoQ2VydCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMSwweDA0LC8qIFsxMzE2XSBPQkpfaWRfc21pbWVfY3RfVFNUSW5mbyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMSwweDA1LC8qIFsxMzI3XSBPQkpfaWRfc21pbWVfY3RfVERUSW5mbyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMSwweDA2LC8qIFsxMzM4XSBPQkpfaWRfc21pbWVfY3RfY29udGVudEluZm8gKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDEsMHgwNywvKiBbMTM0OV0gT0JKX2lkX3NtaW1lX2N0X0RWQ1NSZXF1ZXN0RGF0YSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMSwweDA4LC8qIFsxMzYwXSBPQkpfaWRfc21pbWVfY3RfRFZDU1Jlc3BvbnNlRGF0YSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDAxLC8qIFsxMzcxXSBPQkpfaWRfc21pbWVfYWFfcmVjZWlwdFJlcXVlc3QgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgwMiwvKiBbMTM4Ml0gT0JKX2lkX3NtaW1lX2FhX3NlY3VyaXR5TGFiZWwgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgwMywvKiBbMTM5M10gT0JKX2lkX3NtaW1lX2FhX21sRXhwYW5kSGlzdG9yeSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDA0LC8qIFsxNDA0XSBPQkpfaWRfc21pbWVfYWFfY29udGVudEhpbnQgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgwNSwvKiBbMTQxNV0gT0JKX2lkX3NtaW1lX2FhX21zZ1NpZ0RpZ2VzdCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDA2LC8qIFsxNDI2XSBPQkpfaWRfc21pbWVfYWFfZW5jYXBDb250ZW50VHlwZSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDA3LC8qIFsxNDM3XSBPQkpfaWRfc21pbWVfYWFfY29udGVudElkZW50aWZpZXIgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgwOCwvKiBbMTQ0OF0gT0JKX2lkX3NtaW1lX2FhX21hY1ZhbHVlICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MDksLyogWzE0NTldIE9CSl9pZF9zbWltZV9hYV9lcXVpdmFsZW50TGFiZWxzICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MEEsLyogWzE0NzBdIE9CSl9pZF9zbWltZV9hYV9jb250ZW50UmVmZXJlbmNlICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MEIsLyogWzE0ODFdIE9CSl9pZF9zbWltZV9hYV9lbmNyeXBLZXlQcmVmICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MEMsLyogWzE0OTJdIE9CSl9pZF9zbWltZV9hYV9zaWduaW5nQ2VydGlmaWNhdGUgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgwRCwvKiBbMTUwM10gT0JKX2lkX3NtaW1lX2FhX3NtaW1lRW5jcnlwdENlcnRzICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MEUsLyogWzE1MTRdIE9CSl9pZF9zbWltZV9hYV90aW1lU3RhbXBUb2tlbiAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDBGLC8qIFsxNTI1XSBPQkpfaWRfc21pbWVfYWFfZXRzX3NpZ1BvbGljeUlkICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MTAsLyogWzE1MzZdIE9CSl9pZF9zbWltZV9hYV9ldHNfY29tbWl0bWVudFR5cGUgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgxMSwvKiBbMTU0N10gT0JKX2lkX3NtaW1lX2FhX2V0c19zaWduZXJMb2NhdGlvbiAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDEyLC8qIFsxNTU4XSBPQkpfaWRfc21pbWVfYWFfZXRzX3NpZ25lckF0dHIgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgxMywvKiBbMTU2OV0gT0JKX2lkX3NtaW1lX2FhX2V0c19vdGhlclNpZ0NlcnQgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgxNCwvKiBbMTU4MF0gT0JKX2lkX3NtaW1lX2FhX2V0c19jb250ZW50VGltZXN0YW1wICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MTUsLyogWzE1OTFdIE9CSl9pZF9zbWltZV9hYV9ldHNfQ2VydGlmaWNhdGVSZWZzICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MTYsLyogWzE2MDJdIE9CSl9pZF9zbWltZV9hYV9ldHNfUmV2b2NhdGlvblJlZnMgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgxNywvKiBbMTYxM10gT0JKX2lkX3NtaW1lX2FhX2V0c19jZXJ0VmFsdWVzICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MTgsLyogWzE2MjRdIE9CSl9pZF9zbWltZV9hYV9ldHNfcmV2b2NhdGlvblZhbHVlcyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDE5LC8qIFsxNjM1XSBPQkpfaWRfc21pbWVfYWFfZXRzX2VzY1RpbWVTdGFtcCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDFBLC8qIFsxNjQ2XSBPQkpfaWRfc21pbWVfYWFfZXRzX2NlcnRDUkxUaW1lc3RhbXAgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgxQiwvKiBbMTY1N10gT0JKX2lkX3NtaW1lX2FhX2V0c19hcmNoaXZlVGltZVN0YW1wICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MUMsLyogWzE2NjhdIE9CSl9pZF9zbWltZV9hYV9zaWduYXR1cmVUeXBlICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MUQsLyogWzE2NzldIE9CSl9pZF9zbWltZV9hYV9kdmNzX2R2YyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMywweDAxLC8qIFsxNjkwXSBPQkpfaWRfc21pbWVfYWxnX0VTREh3aXRoM0RFUyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMywweDAyLC8qIFsxNzAxXSBPQkpfaWRfc21pbWVfYWxnX0VTREh3aXRoUkMyICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAzLDB4MDMsLyogWzE3MTJdIE9CSl9pZF9zbWltZV9hbGdfM0RFU3dyYXAgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDMsMHgwNCwvKiBbMTcyM10gT0JKX2lkX3NtaW1lX2FsZ19SQzJ3cmFwICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAzLDB4MDUsLyogWzE3MzRdIE9CSl9pZF9zbWltZV9hbGdfRVNESCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMywweDA2LC8qIFsxNzQ1XSBPQkpfaWRfc21pbWVfYWxnX0NNUzNERVN3cmFwICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAzLDB4MDcsLyogWzE3NTZdIE9CSl9pZF9zbWltZV9hbGdfQ01TUkMyd3JhcCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwNCwweDAxLC8qIFsxNzY3XSBPQkpfaWRfc21pbWVfY2RfbGRhcCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwNSwweDAxLC8qIFsxNzc4XSBPQkpfaWRfc21pbWVfc3BxX2V0c19zcXRfdXJpICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDA1LDB4MDIsLyogWzE3ODldIE9CSl9pZF9zbWltZV9zcHFfZXRzX3NxdF91bm90aWNlICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDA2LDB4MDEsLyogWzE4MDBdIE9CSl9pZF9zbWltZV9jdGlfZXRzX3Byb29mT2ZPcmlnaW4gKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDYsMHgwMiwvKiBbMTgxMV0gT0JKX2lkX3NtaW1lX2N0aV9ldHNfcHJvb2ZPZlJlY2VpcHQgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDYsMHgwMywvKiBbMTgyMl0gT0JKX2lkX3NtaW1lX2N0aV9ldHNfcHJvb2ZPZkRlbGl2ZXJ5ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDA2LDB4MDQsLyogWzE4MzNdIE9CSl9pZF9zbWltZV9jdGlfZXRzX3Byb29mT2ZTZW5kZXIgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDYsMHgwNSwvKiBbMTg0NF0gT0JKX2lkX3NtaW1lX2N0aV9ldHNfcHJvb2ZPZkFwcHJvdmFsICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDA2LDB4MDYsLyogWzE4NTVdIE9CSl9pZF9zbWltZV9jdGlfZXRzX3Byb29mT2ZDcmVhdGlvbiAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMiwweDA0LCAgICAgLyogWzE4NjZdIE9CSl9tZDQgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsICAgICAgICAgIC8qIFsxODc0XSBPQkpfaWRfcGtpeF9tb2QgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDIsICAgICAgICAgIC8qIFsxODgxXSBPQkpfaWRfcXQgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsICAgICAgICAgIC8qIFsxODg4XSBPQkpfaWRfaXQgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDUsICAgICAgICAgIC8qIFsxODk1XSBPQkpfaWRfcGtpcCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNiwgICAgICAgICAgLyogWzE5MDJdIE9CSl9pZF9hbGcgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsICAgICAgICAgIC8qIFsxOTA5XSBPQkpfaWRfY21jICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA4LCAgICAgICAgICAvKiBbMTkxNl0gT0JKX2lkX29uICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA5LCAgICAgICAgICAvKiBbMTkyM10gT0JKX2lkX3BkYSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwQSwgICAgICAgICAgLyogWzE5MzBdIE9CSl9pZF9hY2EgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MEIsICAgICAgICAgIC8qIFsxOTM3XSBPQkpfaWRfcWNzICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDBDLCAgICAgICAgICAvKiBbMTk0NF0gT0JKX2lkX2NjdCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDAxLCAgICAgLyogWzE5NTFdIE9CSl9pZF9wa2l4MV9leHBsaWNpdF84OCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDAyLCAgICAgLyogWzE5NTldIE9CSl9pZF9wa2l4MV9pbXBsaWNpdF84OCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDAzLCAgICAgLyogWzE5NjddIE9CSl9pZF9wa2l4MV9leHBsaWNpdF85MyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDA0LCAgICAgLyogWzE5NzVdIE9CSl9pZF9wa2l4MV9pbXBsaWNpdF85MyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDA1LCAgICAgLyogWzE5ODNdIE9CSl9pZF9tb2RfY3JtZiAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDA2LCAgICAgLyogWzE5OTFdIE9CSl9pZF9tb2RfY21jICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAwLDB4MDcsICAgICAvKiBbMTk5OV0gT0JKX2lkX21vZF9rZWFfcHJvZmlsZV84OCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDA4LCAgICAgLyogWzIwMDddIE9CSl9pZF9tb2Rfa2VhX3Byb2ZpbGVfOTMgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwOSwgICAgIC8qIFsyMDE1XSBPQkpfaWRfbW9kX2NtcCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDBBLCAgICAgLyogWzIwMjNdIE9CSl9pZF9tb2RfcXVhbGlmaWVkX2NlcnRfODggKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwQiwgICAgIC8qIFsyMDMxXSBPQkpfaWRfbW9kX3F1YWxpZmllZF9jZXJ0XzkzICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAwLDB4MEMsICAgICAvKiBbMjAzOV0gT0JKX2lkX21vZF9hdHRyaWJ1dGVfY2VydCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDBELCAgICAgLyogWzIwNDddIE9CSl9pZF9tb2RfdGltZXN0YW1wX3Byb3RvY29sICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAwLDB4MEUsICAgICAvKiBbMjA1NV0gT0JKX2lkX21vZF9vY3NwICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAwLDB4MEYsICAgICAvKiBbMjA2M10gT0JKX2lkX21vZF9kdmNzICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAwLDB4MTAsICAgICAvKiBbMjA3MV0gT0JKX2lkX21vZF9jbXAyMDAwICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLDB4MDIsICAgICAvKiBbMjA3OV0gT0JKX2Jpb21ldHJpY0luZm8gKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDEsMHgwMywgICAgIC8qIFsyMDg3XSBPQkpfcWNTdGF0ZW1lbnRzICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLDB4MDQsICAgICAvKiBbMjA5NV0gT0JKX2FjX2F1ZGl0RW50aXR5ICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLDB4MDUsICAgICAvKiBbMjEwM10gT0JKX2FjX3RhcmdldGluZyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMSwweDA2LCAgICAgLyogWzIxMTFdIE9CSl9hYUNvbnRyb2xzICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLDB4MDcsICAgICAvKiBbMjExOV0gT0JKX3NiZ3BfaXBBZGRyQmxvY2sgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDEsMHgwOCwgICAgIC8qIFsyMTI3XSBPQkpfc2JncF9hdXRvbm9tb3VzU3lzTnVtICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLDB4MDksICAgICAvKiBbMjEzNV0gT0JKX3NiZ3Bfcm91dGVySWRlbnRpZmllciAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMiwweDAzLCAgICAgLyogWzIxNDNdIE9CSl90ZXh0Tm90aWNlICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAzLDB4MDUsICAgICAvKiBbMjE1MV0gT0JKX2lwc2VjRW5kU3lzdGVtICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAzLDB4MDYsICAgICAvKiBbMjE1OV0gT0JKX2lwc2VjVHVubmVsICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAzLDB4MDcsICAgICAvKiBbMjE2N10gT0JKX2lwc2VjVXNlciAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMywweDBBLCAgICAgLyogWzIxNzVdIE9CSl9kdmNzICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LDB4MDEsICAgICAvKiBbMjE4M10gT0JKX2lkX2l0X2NhUHJvdEVuY0NlcnQgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwMiwgICAgIC8qIFsyMTkxXSBPQkpfaWRfaXRfc2lnbktleVBhaXJUeXBlcyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNCwweDAzLCAgICAgLyogWzIxOTldIE9CSl9pZF9pdF9lbmNLZXlQYWlyVHlwZXMgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwNCwgICAgIC8qIFsyMjA3XSBPQkpfaWRfaXRfcHJlZmVycmVkU3ltbUFsZyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNCwweDA1LCAgICAgLyogWzIyMTVdIE9CSl9pZF9pdF9jYUtleVVwZGF0ZUluZm8gKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwNiwgICAgIC8qIFsyMjIzXSBPQkpfaWRfaXRfY3VycmVudENSTCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNCwweDA3LCAgICAgLyogWzIyMzFdIE9CSl9pZF9pdF91bnN1cHBvcnRlZE9JRHMgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwOCwgICAgIC8qIFsyMjM5XSBPQkpfaWRfaXRfc3Vic2NyaXB0aW9uUmVxdWVzdCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNCwweDA5LCAgICAgLyogWzIyNDddIE9CSl9pZF9pdF9zdWJzY3JpcHRpb25SZXNwb25zZSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNCwweDBBLCAgICAgLyogWzIyNTVdIE9CSl9pZF9pdF9rZXlQYWlyUGFyYW1SZXEgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwQiwgICAgIC8qIFsyMjYzXSBPQkpfaWRfaXRfa2V5UGFpclBhcmFtUmVwICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LDB4MEMsICAgICAvKiBbMjI3MV0gT0JKX2lkX2l0X3JldlBhc3NwaHJhc2UgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwRCwgICAgIC8qIFsyMjc5XSBPQkpfaWRfaXRfaW1wbGljaXRDb25maXJtICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LDB4MEUsICAgICAvKiBbMjI4N10gT0JKX2lkX2l0X2NvbmZpcm1XYWl0VGltZSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNCwweDBGLCAgICAgLyogWzIyOTVdIE9CSl9pZF9pdF9vcmlnUEtJTWVzc2FnZSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNSwweDAxLCAgICAgLyogWzIzMDNdIE9CSl9pZF9yZWdDdHJsICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA1LDB4MDIsICAgICAvKiBbMjMxMV0gT0JKX2lkX3JlZ0luZm8gKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDUsMHgwMSwweDAxLC8qIFsyMzE5XSBPQkpfaWRfcmVnQ3RybF9yZWdUb2tlbiAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNSwweDAxLDB4MDIsLyogWzIzMjhdIE9CSl9pZF9yZWdDdHJsX2F1dGhlbnRpY2F0b3IgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDUsMHgwMSwweDAzLC8qIFsyMzM3XSBPQkpfaWRfcmVnQ3RybF9wa2lQdWJsaWNhdGlvbkluZm8gKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDUsMHgwMSwweDA0LC8qIFsyMzQ2XSBPQkpfaWRfcmVnQ3RybF9wa2lBcmNoaXZlT3B0aW9ucyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNSwweDAxLDB4MDUsLyogWzIzNTVdIE9CSl9pZF9yZWdDdHJsX29sZENlcnRJRCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNSwweDAxLDB4MDYsLyogWzIzNjRdIE9CSl9pZF9yZWdDdHJsX3Byb3RvY29sRW5jcktleSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNSwweDAyLDB4MDEsLyogWzIzNzNdIE9CSl9pZF9yZWdJbmZvX3V0ZjhQYWlycyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNSwweDAyLDB4MDIsLyogWzIzODJdIE9CSl9pZF9yZWdJbmZvX2NlcnRSZXEgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDYsMHgwMSwgICAgIC8qIFsyMzkxXSBPQkpfaWRfYWxnX2RlczQwICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA2LDB4MDIsICAgICAvKiBbMjM5OV0gT0JKX2lkX2FsZ19ub1NpZ25hdHVyZSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNiwweDAzLCAgICAgLyogWzI0MDddIE9CSl9pZF9hbGdfZGhfc2lnX2htYWNfc2hhMSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNiwweDA0LCAgICAgLyogWzI0MTVdIE9CSl9pZF9hbGdfZGhfcG9wICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MDEsICAgICAvKiBbMjQyM10gT0JKX2lkX2NtY19zdGF0dXNJbmZvICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MDIsICAgICAvKiBbMjQzMV0gT0JKX2lkX2NtY19pZGVudGlmaWNhdGlvbiAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDAzLCAgICAgLyogWzI0MzldIE9CSl9pZF9jbWNfaWRlbnRpdHlQcm9vZiAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDA0LCAgICAgLyogWzI0NDddIE9CSl9pZF9jbWNfZGF0YVJldHVybiAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDA1LCAgICAgLyogWzI0NTVdIE9CSl9pZF9jbWNfdHJhbnNhY3Rpb25JZCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDA2LCAgICAgLyogWzI0NjNdIE9CSl9pZF9jbWNfc2VuZGVyTm9uY2UgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgwNywgICAgIC8qIFsyNDcxXSBPQkpfaWRfY21jX3JlY2lwaWVudE5vbmNlICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MDgsICAgICAvKiBbMjQ3OV0gT0JKX2lkX2NtY19hZGRFeHRlbnNpb25zICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MDksICAgICAvKiBbMjQ4N10gT0JKX2lkX2NtY19lbmNyeXB0ZWRQT1AgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgwQSwgICAgIC8qIFsyNDk1XSBPQkpfaWRfY21jX2RlY3J5cHRlZFBPUCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDBCLCAgICAgLyogWzI1MDNdIE9CSl9pZF9jbWNfbHJhUE9QV2l0bmVzcyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDBGLCAgICAgLyogWzI1MTFdIE9CSl9pZF9jbWNfZ2V0Q2VydCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDEwLCAgICAgLyogWzI1MTldIE9CSl9pZF9jbWNfZ2V0Q1JMICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MTEsICAgICAvKiBbMjUyN10gT0JKX2lkX2NtY19yZXZva2VSZXF1ZXN0ICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MTIsICAgICAvKiBbMjUzNV0gT0JKX2lkX2NtY19yZWdJbmZvICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MTMsICAgICAvKiBbMjU0M10gT0JKX2lkX2NtY19yZXNwb25zZUluZm8gKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgxNSwgICAgIC8qIFsyNTUxXSBPQkpfaWRfY21jX3F1ZXJ5UGVuZGluZyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDE2LCAgICAgLyogWzI1NTldIE9CSl9pZF9jbWNfcG9wTGlua1JhbmRvbSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDE3LCAgICAgLyogWzI1NjddIE9CSl9pZF9jbWNfcG9wTGlua1dpdG5lc3MgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgxOCwgICAgIC8qIFsyNTc1XSBPQkpfaWRfY21jX2NvbmZpcm1DZXJ0QWNjZXB0YW5jZSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwOCwweDAxLCAgICAgLyogWzI1ODNdIE9CSl9pZF9vbl9wZXJzb25hbERhdGEgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDksMHgwMSwgICAgIC8qIFsyNTkxXSBPQkpfaWRfcGRhX2RhdGVPZkJpcnRoICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA5LDB4MDIsICAgICAvKiBbMjU5OV0gT0JKX2lkX3BkYV9wbGFjZU9mQmlydGggKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDksMHgwMywgICAgIC8qIFsyNjA3XSBPQkpfaWRfcGRhX2dlbmRlciAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwOSwweDA0LCAgICAgLyogWzI2MTVdIE9CSl9pZF9wZGFfY291bnRyeU9mQ2l0aXplbnNoaXAgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDksMHgwNSwgICAgIC8qIFsyNjIzXSBPQkpfaWRfcGRhX2NvdW50cnlPZlJlc2lkZW5jZSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwQSwweDAxLCAgICAgLyogWzI2MzFdIE9CSl9pZF9hY2FfYXV0aGVudGljYXRpb25JbmZvICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDBBLDB4MDIsICAgICAvKiBbMjYzOV0gT0JKX2lkX2FjYV9hY2Nlc3NJZGVudGl0eSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwQSwweDAzLCAgICAgLyogWzI2NDddIE9CSl9pZF9hY2FfY2hhcmdpbmdJZGVudGl0eSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwQSwweDA0LCAgICAgLyogWzI2NTVdIE9CSl9pZF9hY2FfZ3JvdXAgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MEEsMHgwNSwgICAgIC8qIFsyNjYzXSBPQkpfaWRfYWNhX3JvbGUgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MEIsMHgwMSwgICAgIC8qIFsyNjcxXSBPQkpfaWRfcWNzX3BraXhRQ1N5bnRheF92MSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwQywweDAxLCAgICAgLyogWzI2NzldIE9CSl9pZF9jY3RfY3JzICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDBDLDB4MDIsICAgICAvKiBbMjY4N10gT0JKX2lkX2NjdF9QS0lEYXRhICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDBDLDB4MDMsICAgICAvKiBbMjY5NV0gT0JKX2lkX2NjdF9QS0lSZXNwb25zZSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAzLCAgICAgLyogWzI3MDNdIE9CSl9hZF90aW1lU3RhbXBpbmcgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwNCwgICAgIC8qIFsyNzExXSBPQkpfYWRfZHZjcyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAxLDB4MDEsLyogWzI3MTldIE9CSl9pZF9wa2l4X09DU1BfYmFzaWMgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMSwweDAyLC8qIFsyNzI4XSBPQkpfaWRfcGtpeF9PQ1NQX05vbmNlICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDMwLDB4MDEsMHgwMywvKiBbMjczN10gT0JKX2lkX3BraXhfT0NTUF9DcmxJRCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAxLDB4MDQsLyogWzI3NDZdIE9CSl9pZF9wa2l4X09DU1BfYWNjZXB0YWJsZVJlc3BvbnNlcyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAxLDB4MDUsLyogWzI3NTVdIE9CSl9pZF9wa2l4X09DU1Bfbm9DaGVjayAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAxLDB4MDYsLyogWzI3NjRdIE9CSl9pZF9wa2l4X09DU1BfYXJjaGl2ZUN1dG9mZiAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAxLDB4MDcsLyogWzI3NzNdIE9CSl9pZF9wa2l4X09DU1Bfc2VydmljZUxvY2F0b3IgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMSwweDA4LC8qIFsyNzgyXSBPQkpfaWRfcGtpeF9PQ1NQX2V4dGVuZGVkU3RhdHVzICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDMwLDB4MDEsMHgwOSwvKiBbMjc5MV0gT0JKX2lkX3BraXhfT0NTUF92YWxpZCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAxLDB4MEEsLyogWzI4MDBdIE9CSl9pZF9wa2l4X09DU1BfcGF0aCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAxLDB4MEIsLyogWzI4MDldIE9CSl9pZF9wa2l4X09DU1BfdHJ1c3RSb290ICovCisweDJCLDB4MEUsMHgwMywweDAyLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjgxOF0gT0JKX2FsZ29yaXRobSAqLworMHgyQiwweDBFLDB4MDMsMHgwMiwweDBCLCAgICAgICAgICAgICAgICAgICAgLyogWzI4MjJdIE9CSl9yc2FTaWduYXR1cmUgKi8KKzB4NTUsMHgwOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyODI3XSBPQkpfWDUwMGFsZ29yaXRobXMgKi8KKzB4MkIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyODI5XSBPQkpfb3JnICovCisweDJCLDB4MDYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjgzMF0gT0JKX2RvZCAqLworMHgyQiwweDA2LDB4MDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4MzJdIE9CSl9pYW5hICovCisweDJCLDB4MDYsMHgwMSwweDAxLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjgzNV0gT0JKX0RpcmVjdG9yeSAqLworMHgyQiwweDA2LDB4MDEsMHgwMiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4MzldIE9CSl9NYW5hZ2VtZW50ICovCisweDJCLDB4MDYsMHgwMSwweDAzLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjg0M10gT0JKX0V4cGVyaW1lbnRhbCAqLworMHgyQiwweDA2LDB4MDEsMHgwNCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4NDddIE9CSl9Qcml2YXRlICovCisweDJCLDB4MDYsMHgwMSwweDA1LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjg1MV0gT0JKX1NlY3VyaXR5ICovCisweDJCLDB4MDYsMHgwMSwweDA2LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjg1NV0gT0JKX1NOTVB2MiAqLworMHgyQiwweDA2LDB4MDEsMHgwNywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4NTldIE9CSl9NYWlsICovCisweDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsICAgICAgICAgICAgICAgICAgICAvKiBbMjg2M10gT0JKX0VudGVycHJpc2VzICovCisweDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsMHg4QiwweDNBLDB4ODIsMHg1OCwvKiBbMjg2OF0gT0JKX2RjT2JqZWN0ICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDE5LC8qIFsyODc3XSBPQkpfZG9tYWluQ29tcG9uZW50ICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDBELC8qIFsyODg3XSBPQkpfRG9tYWluICovCisweDU1LDB4MDEsMHgwNSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjg5N10gT0JKX3NlbGVjdGVkX2F0dHJpYnV0ZV90eXBlcyAqLworMHg1NSwweDAxLDB4MDUsMHgzNywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI5MDBdIE9CSl9jbGVhcmFuY2UgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwMSwweDAzLC8qIFsyOTA0XSBPQkpfbWQ0V2l0aFJTQUVuY3J5cHRpb24gKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDEsMHgwQSwgICAgIC8qIFsyOTEzXSBPQkpfYWNfcHJveHlpbmcgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDEsMHgwQiwgICAgIC8qIFsyOTIxXSBPQkpfc2luZm9fYWNjZXNzICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDBBLDB4MDYsICAgICAvKiBbMjkyOV0gT0JKX2lkX2FjYV9lbmNBdHRycyAqLworMHg1NSwweDA0LDB4NDgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI5MzddIE9CSl9yb2xlICovCisweDU1LDB4MUQsMHgyNCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjk0MF0gT0JKX3BvbGljeV9jb25zdHJhaW50cyAqLworMHg1NSwweDFELDB4MzcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI5NDNdIE9CSl90YXJnZXRfaW5mb3JtYXRpb24gKi8KKzB4NTUsMHgxRCwweDM4LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyOTQ2XSBPQkpfbm9fcmV2X2F2YWlsICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsICAgICAgICAgICAgICAgICAgICAvKiBbMjk0OV0gT0JKX2Fuc2lfWDlfNjIgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAxLDB4MDEsICAgICAgICAgIC8qIFsyOTU0XSBPQkpfWDlfNjJfcHJpbWVfZmllbGQgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAxLDB4MDIsICAgICAgICAgIC8qIFsyOTYxXSBPQkpfWDlfNjJfY2hhcmFjdGVyaXN0aWNfdHdvX2ZpZWxkICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMiwweDAxLCAgICAgICAgICAvKiBbMjk2OF0gT0JKX1g5XzYyX2lkX2VjUHVibGljS2V5ICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAxLDB4MDEsICAgICAvKiBbMjk3NV0gT0JKX1g5XzYyX3ByaW1lMTkydjEgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDEsMHgwMiwgICAgIC8qIFsyOTgzXSBPQkpfWDlfNjJfcHJpbWUxOTJ2MiAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMSwweDAzLCAgICAgLyogWzI5OTFdIE9CSl9YOV82Ml9wcmltZTE5MnYzICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAxLDB4MDQsICAgICAvKiBbMjk5OV0gT0JKX1g5XzYyX3ByaW1lMjM5djEgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDEsMHgwNSwgICAgIC8qIFszMDA3XSBPQkpfWDlfNjJfcHJpbWUyMzl2MiAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMSwweDA2LCAgICAgLyogWzMwMTVdIE9CSl9YOV82Ml9wcmltZTIzOXYzICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAxLDB4MDcsICAgICAvKiBbMzAyM10gT0JKX1g5XzYyX3ByaW1lMjU2djEgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDA0LDB4MDEsICAgICAgICAgIC8qIFszMDMxXSBPQkpfZWNkc2Ffd2l0aF9TSEExICovCisweDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsMHg4MiwweDM3LDB4MTEsMHgwMSwvKiBbMzAzOF0gT0JKX21zX2NzcF9uYW1lICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgwMSwvKiBbMzA0N10gT0JKX2Flc18xMjhfZWNiICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgwMiwvKiBbMzA1Nl0gT0JKX2Flc18xMjhfY2JjICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgwMywvKiBbMzA2NV0gT0JKX2Flc18xMjhfb2ZiMTI4ICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgwNCwvKiBbMzA3NF0gT0JKX2Flc18xMjhfY2ZiMTI4ICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgxNSwvKiBbMzA4M10gT0JKX2Flc18xOTJfZWNiICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgxNiwvKiBbMzA5Ml0gT0JKX2Flc18xOTJfY2JjICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgxNywvKiBbMzEwMV0gT0JKX2Flc18xOTJfb2ZiMTI4ICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgxOCwvKiBbMzExMF0gT0JKX2Flc18xOTJfY2ZiMTI4ICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgyOSwvKiBbMzExOV0gT0JKX2Flc18yNTZfZWNiICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgyQSwvKiBbMzEyOF0gT0JKX2Flc18yNTZfY2JjICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgyQiwvKiBbMzEzN10gT0JKX2Flc18yNTZfb2ZiMTI4ICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgyQywvKiBbMzE0Nl0gT0JKX2Flc18yNTZfY2ZiMTI4ICovCisweDU1LDB4MUQsMHgxNywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzE1NV0gT0JKX2hvbGRfaW5zdHJ1Y3Rpb25fY29kZSAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDM4LDB4MDIsMHgwMSwgICAgICAgICAgLyogWzMxNThdIE9CSl9ob2xkX2luc3RydWN0aW9uX25vbmUgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzOCwweDAyLDB4MDIsICAgICAgICAgIC8qIFszMTY1XSBPQkpfaG9sZF9pbnN0cnVjdGlvbl9jYWxsX2lzc3VlciAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDM4LDB4MDIsMHgwMywgICAgICAgICAgLyogWzMxNzJdIE9CSl9ob2xkX2luc3RydWN0aW9uX3JlamVjdCAqLworMHgwOSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzMxNzldIE9CSl9kYXRhICovCisweDA5LDB4OTIsMHgyNiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzE4MF0gT0JKX3BzcyAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywgICAgICAgICAgLyogWzMxODNdIE9CSl91Y2wgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwgICAgIC8qIFszMTkwXSBPQkpfcGlsb3QgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLC8qIFszMTk4XSBPQkpfcGlsb3RBdHRyaWJ1dGVUeXBlICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMywvKiBbMzIwN10gT0JKX3BpbG90QXR0cmlidXRlU3ludGF4ICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwvKiBbMzIxNl0gT0JKX3BpbG90T2JqZWN0Q2xhc3MgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDBBLC8qIFszMjI1XSBPQkpfcGlsb3RHcm91cHMgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAzLDB4MDQsLyogWzMyMzRdIE9CSl9pQTVTdHJpbmdTeW50YXggKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAzLDB4MDUsLyogWzMyNDRdIE9CSl9jYXNlSWdub3JlSUE1U3RyaW5nU3ludGF4ICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDAzLC8qIFszMjU0XSBPQkpfcGlsb3RPYmplY3QgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LDB4MDQsLyogWzMyNjRdIE9CSl9waWxvdFBlcnNvbiAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDQsMHgwNSwvKiBbMzI3NF0gT0JKX2FjY291bnQgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LDB4MDYsLyogWzMyODRdIE9CSl9kb2N1bWVudCAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDQsMHgwNywvKiBbMzI5NF0gT0JKX3Jvb20gKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LDB4MDksLyogWzMzMDRdIE9CSl9kb2N1bWVudFNlcmllcyAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDQsMHgwRSwvKiBbMzMxNF0gT0JKX3JGQzgyMmxvY2FsUGFydCAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDQsMHgwRiwvKiBbMzMyNF0gT0JKX2ROU0RvbWFpbiAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDQsMHgxMSwvKiBbMzMzNF0gT0JKX2RvbWFpblJlbGF0ZWRPYmplY3QgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LDB4MTIsLyogWzMzNDRdIE9CSl9mcmllbmRseUNvdW50cnkgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LDB4MTMsLyogWzMzNTRdIE9CSl9zaW1wbGVTZWN1cml0eU9iamVjdCAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDQsMHgxNCwvKiBbMzM2NF0gT0JKX3BpbG90T3JnYW5pemF0aW9uICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDE1LC8qIFszMzc0XSBPQkpfcGlsb3REU0EgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LDB4MTYsLyogWzMzODRdIE9CSl9xdWFsaXR5TGFiZWxsZWREYXRhICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDAxLC8qIFszMzk0XSBPQkpfdXNlcklkICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDAyLC8qIFszNDA0XSBPQkpfdGV4dEVuY29kZWRPUkFkZHJlc3MgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MDMsLyogWzM0MTRdIE9CSl9yZmM4MjJNYWlsYm94ICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDA0LC8qIFszNDI0XSBPQkpfaW5mbyAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwNSwvKiBbMzQzNF0gT0JKX2Zhdm91cml0ZURyaW5rICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDA2LC8qIFszNDQ0XSBPQkpfcm9vbU51bWJlciAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwNywvKiBbMzQ1NF0gT0JKX3Bob3RvICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDA4LC8qIFszNDY0XSBPQkpfdXNlckNsYXNzICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDA5LC8qIFszNDc0XSBPQkpfaG9zdCAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwQSwvKiBbMzQ4NF0gT0JKX21hbmFnZXIgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MEIsLyogWzM0OTRdIE9CSl9kb2N1bWVudElkZW50aWZpZXIgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MEMsLyogWzM1MDRdIE9CSl9kb2N1bWVudFRpdGxlICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDBELC8qIFszNTE0XSBPQkpfZG9jdW1lbnRWZXJzaW9uICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDBFLC8qIFszNTI0XSBPQkpfZG9jdW1lbnRBdXRob3IgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MEYsLyogWzM1MzRdIE9CSl9kb2N1bWVudExvY2F0aW9uICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDE0LC8qIFszNTQ0XSBPQkpfaG9tZVRlbGVwaG9uZU51bWJlciAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgxNSwvKiBbMzU1NF0gT0JKX3NlY3JldGFyeSAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgxNiwvKiBbMzU2NF0gT0JKX290aGVyTWFpbGJveCAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgxNywvKiBbMzU3NF0gT0JKX2xhc3RNb2RpZmllZFRpbWUgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MTgsLyogWzM1ODRdIE9CSl9sYXN0TW9kaWZpZWRCeSAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgxQSwvKiBbMzU5NF0gT0JKX2FSZWNvcmQgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MUIsLyogWzM2MDRdIE9CSl9waWxvdEF0dHJpYnV0ZVR5cGUyNyAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgxQywvKiBbMzYxNF0gT0JKX21YUmVjb3JkICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDFELC8qIFszNjI0XSBPQkpfblNSZWNvcmQgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MUUsLyogWzM2MzRdIE9CSl9zT0FSZWNvcmQgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MUYsLyogWzM2NDRdIE9CSl9jTkFNRVJlY29yZCAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgyNSwvKiBbMzY1NF0gT0JKX2Fzc29jaWF0ZWREb21haW4gKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MjYsLyogWzM2NjRdIE9CSl9hc3NvY2lhdGVkTmFtZSAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgyNywvKiBbMzY3NF0gT0JKX2hvbWVQb3N0YWxBZGRyZXNzICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDI4LC8qIFszNjg0XSBPQkpfcGVyc29uYWxUaXRsZSAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgyOSwvKiBbMzY5NF0gT0JKX21vYmlsZVRlbGVwaG9uZU51bWJlciAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgyQSwvKiBbMzcwNF0gT0JKX3BhZ2VyVGVsZXBob25lTnVtYmVyICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDJCLC8qIFszNzE0XSBPQkpfZnJpZW5kbHlDb3VudHJ5TmFtZSAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgyRCwvKiBbMzcyNF0gT0JKX29yZ2FuaXphdGlvbmFsU3RhdHVzICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDJFLC8qIFszNzM0XSBPQkpfamFuZXRNYWlsYm94ICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDJGLC8qIFszNzQ0XSBPQkpfbWFpbFByZWZlcmVuY2VPcHRpb24gKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MzAsLyogWzM3NTRdIE9CSl9idWlsZGluZ05hbWUgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MzEsLyogWzM3NjRdIE9CSl9kU0FRdWFsaXR5ICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDMyLC8qIFszNzc0XSBPQkpfc2luZ2xlTGV2ZWxRdWFsaXR5ICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDMzLC8qIFszNzg0XSBPQkpfc3VidHJlZU1pbmltdW1RdWFsaXR5ICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDM0LC8qIFszNzk0XSBPQkpfc3VidHJlZU1heGltdW1RdWFsaXR5ICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDM1LC8qIFszODA0XSBPQkpfcGVyc29uYWxTaWduYXR1cmUgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MzYsLyogWzM4MTRdIE9CSl9kSVRSZWRpcmVjdCAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgzNywvKiBbMzgyNF0gT0JKX2F1ZGlvICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDM4LC8qIFszODM0XSBPQkpfZG9jdW1lbnRQdWJsaXNoZXIgKi8KKzB4NTUsMHgwNCwweDJELCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszODQ0XSBPQkpfeDUwMFVuaXF1ZUlkZW50aWZpZXIgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDcsMHgwMSwgICAgICAgICAgICAgICAgICAgIC8qIFszODQ3XSBPQkpfbWltZV9taHMgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDcsMHgwMSwweDAxLCAgICAgICAgICAgICAgIC8qIFszODUyXSBPQkpfbWltZV9taHNfaGVhZGluZ3MgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDcsMHgwMSwweDAyLCAgICAgICAgICAgICAgIC8qIFszODU4XSBPQkpfbWltZV9taHNfYm9kaWVzICovCisweDJCLDB4MDYsMHgwMSwweDA3LDB4MDEsMHgwMSwweDAxLCAgICAgICAgICAvKiBbMzg2NF0gT0JKX2lkX2hleF9wYXJ0aWFsX21lc3NhZ2UgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDcsMHgwMSwweDAxLDB4MDIsICAgICAgICAgIC8qIFszODcxXSBPQkpfaWRfaGV4X211bHRpcGFydF9tZXNzYWdlICovCisweDU1LDB4MDQsMHgyQywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzg3OF0gT0JKX2dlbmVyYXRpb25RdWFsaWZpZXIgKi8KKzB4NTUsMHgwNCwweDQxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszODgxXSBPQkpfcHNldWRvbnltICovCisweDY3LDB4MkEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzg4NF0gT0JKX2lkX3NldCAqLworMHg2NywweDJBLDB4MDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM4ODZdIE9CSl9zZXRfY3R5cGUgKi8KKzB4NjcsMHgyQSwweDAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszODg5XSBPQkpfc2V0X21zZ0V4dCAqLworMHg2NywweDJBLDB4MDMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM4OTJdIE9CSl9zZXRfYXR0ciAqLworMHg2NywweDJBLDB4MDUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM4OTVdIE9CSl9zZXRfcG9saWN5ICovCisweDY3LDB4MkEsMHgwNywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzg5OF0gT0JKX3NldF9jZXJ0RXh0ICovCisweDY3LDB4MkEsMHgwOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzkwMV0gT0JKX3NldF9icmFuZCAqLworMHg2NywweDJBLDB4MDAsMHgwMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5MDRdIE9CSl9zZXRjdF9QQU5EYXRhICovCisweDY3LDB4MkEsMHgwMCwweDAxLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzkwOF0gT0JKX3NldGN0X1BBTlRva2VuICovCisweDY3LDB4MkEsMHgwMCwweDAyLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzkxMl0gT0JKX3NldGN0X1BBTk9ubHkgKi8KKzB4NjcsMHgyQSwweDAwLDB4MDMsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTE2XSBPQkpfc2V0Y3RfT0lEYXRhICovCisweDY3LDB4MkEsMHgwMCwweDA0LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzkyMF0gT0JKX3NldGN0X1BJICovCisweDY3LDB4MkEsMHgwMCwweDA1LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzkyNF0gT0JKX3NldGN0X1BJRGF0YSAqLworMHg2NywweDJBLDB4MDAsMHgwNiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5MjhdIE9CSl9zZXRjdF9QSURhdGFVbnNpZ25lZCAqLworMHg2NywweDJBLDB4MDAsMHgwNywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5MzJdIE9CSl9zZXRjdF9IT0RJbnB1dCAqLworMHg2NywweDJBLDB4MDAsMHgwOCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5MzZdIE9CSl9zZXRjdF9BdXRoUmVzQmFnZ2FnZSAqLworMHg2NywweDJBLDB4MDAsMHgwOSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5NDBdIE9CSl9zZXRjdF9BdXRoUmV2UmVxQmFnZ2FnZSAqLworMHg2NywweDJBLDB4MDAsMHgwQSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5NDRdIE9CSl9zZXRjdF9BdXRoUmV2UmVzQmFnZ2FnZSAqLworMHg2NywweDJBLDB4MDAsMHgwQiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5NDhdIE9CSl9zZXRjdF9DYXBUb2tlblNlcSAqLworMHg2NywweDJBLDB4MDAsMHgwQywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5NTJdIE9CSl9zZXRjdF9QSW5pdFJlc0RhdGEgKi8KKzB4NjcsMHgyQSwweDAwLDB4MEQsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTU2XSBPQkpfc2V0Y3RfUElfVEJTICovCisweDY3LDB4MkEsMHgwMCwweDBFLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzk2MF0gT0JKX3NldGN0X1BSZXNEYXRhICovCisweDY3LDB4MkEsMHgwMCwweDEwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzk2NF0gT0JKX3NldGN0X0F1dGhSZXFUQlMgKi8KKzB4NjcsMHgyQSwweDAwLDB4MTEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTY4XSBPQkpfc2V0Y3RfQXV0aFJlc1RCUyAqLworMHg2NywweDJBLDB4MDAsMHgxMiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5NzJdIE9CSl9zZXRjdF9BdXRoUmVzVEJTWCAqLworMHg2NywweDJBLDB4MDAsMHgxMywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5NzZdIE9CSl9zZXRjdF9BdXRoVG9rZW5UQlMgKi8KKzB4NjcsMHgyQSwweDAwLDB4MTQsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTgwXSBPQkpfc2V0Y3RfQ2FwVG9rZW5EYXRhICovCisweDY3LDB4MkEsMHgwMCwweDE1LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzk4NF0gT0JKX3NldGN0X0NhcFRva2VuVEJTICovCisweDY3LDB4MkEsMHgwMCwweDE2LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzk4OF0gT0JKX3NldGN0X0FjcUNhcmRDb2RlTXNnICovCisweDY3LDB4MkEsMHgwMCwweDE3LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzk5Ml0gT0JKX3NldGN0X0F1dGhSZXZSZXFUQlMgKi8KKzB4NjcsMHgyQSwweDAwLDB4MTgsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTk2XSBPQkpfc2V0Y3RfQXV0aFJldlJlc0RhdGEgKi8KKzB4NjcsMHgyQSwweDAwLDB4MTksICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDAwXSBPQkpfc2V0Y3RfQXV0aFJldlJlc1RCUyAqLworMHg2NywweDJBLDB4MDAsMHgxQSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwMDRdIE9CSl9zZXRjdF9DYXBSZXFUQlMgKi8KKzB4NjcsMHgyQSwweDAwLDB4MUIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDA4XSBPQkpfc2V0Y3RfQ2FwUmVxVEJTWCAqLworMHg2NywweDJBLDB4MDAsMHgxQywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwMTJdIE9CSl9zZXRjdF9DYXBSZXNEYXRhICovCisweDY3LDB4MkEsMHgwMCwweDFELCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDAxNl0gT0JKX3NldGN0X0NhcFJldlJlcVRCUyAqLworMHg2NywweDJBLDB4MDAsMHgxRSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwMjBdIE9CSl9zZXRjdF9DYXBSZXZSZXFUQlNYICovCisweDY3LDB4MkEsMHgwMCwweDFGLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDAyNF0gT0JKX3NldGN0X0NhcFJldlJlc0RhdGEgKi8KKzB4NjcsMHgyQSwweDAwLDB4MjAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDI4XSBPQkpfc2V0Y3RfQ3JlZFJlcVRCUyAqLworMHg2NywweDJBLDB4MDAsMHgyMSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwMzJdIE9CSl9zZXRjdF9DcmVkUmVxVEJTWCAqLworMHg2NywweDJBLDB4MDAsMHgyMiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwMzZdIE9CSl9zZXRjdF9DcmVkUmVzRGF0YSAqLworMHg2NywweDJBLDB4MDAsMHgyMywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwNDBdIE9CSl9zZXRjdF9DcmVkUmV2UmVxVEJTICovCisweDY3LDB4MkEsMHgwMCwweDI0LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDA0NF0gT0JKX3NldGN0X0NyZWRSZXZSZXFUQlNYICovCisweDY3LDB4MkEsMHgwMCwweDI1LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDA0OF0gT0JKX3NldGN0X0NyZWRSZXZSZXNEYXRhICovCisweDY3LDB4MkEsMHgwMCwweDI2LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDA1Ml0gT0JKX3NldGN0X1BDZXJ0UmVxRGF0YSAqLworMHg2NywweDJBLDB4MDAsMHgyNywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwNTZdIE9CSl9zZXRjdF9QQ2VydFJlc1RCUyAqLworMHg2NywweDJBLDB4MDAsMHgyOCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwNjBdIE9CSl9zZXRjdF9CYXRjaEFkbWluUmVxRGF0YSAqLworMHg2NywweDJBLDB4MDAsMHgyOSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwNjRdIE9CSl9zZXRjdF9CYXRjaEFkbWluUmVzRGF0YSAqLworMHg2NywweDJBLDB4MDAsMHgyQSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwNjhdIE9CSl9zZXRjdF9DYXJkQ0luaXRSZXNUQlMgKi8KKzB4NjcsMHgyQSwweDAwLDB4MkIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDcyXSBPQkpfc2V0Y3RfTWVBcUNJbml0UmVzVEJTICovCisweDY3LDB4MkEsMHgwMCwweDJDLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDA3Nl0gT0JKX3NldGN0X1JlZ0Zvcm1SZXNUQlMgKi8KKzB4NjcsMHgyQSwweDAwLDB4MkQsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDgwXSBPQkpfc2V0Y3RfQ2VydFJlcURhdGEgKi8KKzB4NjcsMHgyQSwweDAwLDB4MkUsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDg0XSBPQkpfc2V0Y3RfQ2VydFJlcVRCUyAqLworMHg2NywweDJBLDB4MDAsMHgyRiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwODhdIE9CSl9zZXRjdF9DZXJ0UmVzRGF0YSAqLworMHg2NywweDJBLDB4MDAsMHgzMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwOTJdIE9CSl9zZXRjdF9DZXJ0SW5xUmVxVEJTICovCisweDY3LDB4MkEsMHgwMCwweDMxLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDA5Nl0gT0JKX3NldGN0X0Vycm9yVEJTICovCisweDY3LDB4MkEsMHgwMCwweDMyLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDEwMF0gT0JKX3NldGN0X1BJRHVhbFNpZ25lZFRCRSAqLworMHg2NywweDJBLDB4MDAsMHgzMywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxMDRdIE9CSl9zZXRjdF9QSVVuc2lnbmVkVEJFICovCisweDY3LDB4MkEsMHgwMCwweDM0LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDEwOF0gT0JKX3NldGN0X0F1dGhSZXFUQkUgKi8KKzB4NjcsMHgyQSwweDAwLDB4MzUsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTEyXSBPQkpfc2V0Y3RfQXV0aFJlc1RCRSAqLworMHg2NywweDJBLDB4MDAsMHgzNiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxMTZdIE9CSl9zZXRjdF9BdXRoUmVzVEJFWCAqLworMHg2NywweDJBLDB4MDAsMHgzNywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxMjBdIE9CSl9zZXRjdF9BdXRoVG9rZW5UQkUgKi8KKzB4NjcsMHgyQSwweDAwLDB4MzgsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTI0XSBPQkpfc2V0Y3RfQ2FwVG9rZW5UQkUgKi8KKzB4NjcsMHgyQSwweDAwLDB4MzksICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTI4XSBPQkpfc2V0Y3RfQ2FwVG9rZW5UQkVYICovCisweDY3LDB4MkEsMHgwMCwweDNBLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDEzMl0gT0JKX3NldGN0X0FjcUNhcmRDb2RlTXNnVEJFICovCisweDY3LDB4MkEsMHgwMCwweDNCLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDEzNl0gT0JKX3NldGN0X0F1dGhSZXZSZXFUQkUgKi8KKzB4NjcsMHgyQSwweDAwLDB4M0MsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTQwXSBPQkpfc2V0Y3RfQXV0aFJldlJlc1RCRSAqLworMHg2NywweDJBLDB4MDAsMHgzRCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxNDRdIE9CSl9zZXRjdF9BdXRoUmV2UmVzVEJFQiAqLworMHg2NywweDJBLDB4MDAsMHgzRSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxNDhdIE9CSl9zZXRjdF9DYXBSZXFUQkUgKi8KKzB4NjcsMHgyQSwweDAwLDB4M0YsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTUyXSBPQkpfc2V0Y3RfQ2FwUmVxVEJFWCAqLworMHg2NywweDJBLDB4MDAsMHg0MCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxNTZdIE9CSl9zZXRjdF9DYXBSZXNUQkUgKi8KKzB4NjcsMHgyQSwweDAwLDB4NDEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTYwXSBPQkpfc2V0Y3RfQ2FwUmV2UmVxVEJFICovCisweDY3LDB4MkEsMHgwMCwweDQyLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE2NF0gT0JKX3NldGN0X0NhcFJldlJlcVRCRVggKi8KKzB4NjcsMHgyQSwweDAwLDB4NDMsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTY4XSBPQkpfc2V0Y3RfQ2FwUmV2UmVzVEJFICovCisweDY3LDB4MkEsMHgwMCwweDQ0LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE3Ml0gT0JKX3NldGN0X0NyZWRSZXFUQkUgKi8KKzB4NjcsMHgyQSwweDAwLDB4NDUsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTc2XSBPQkpfc2V0Y3RfQ3JlZFJlcVRCRVggKi8KKzB4NjcsMHgyQSwweDAwLDB4NDYsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTgwXSBPQkpfc2V0Y3RfQ3JlZFJlc1RCRSAqLworMHg2NywweDJBLDB4MDAsMHg0NywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxODRdIE9CSl9zZXRjdF9DcmVkUmV2UmVxVEJFICovCisweDY3LDB4MkEsMHgwMCwweDQ4LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE4OF0gT0JKX3NldGN0X0NyZWRSZXZSZXFUQkVYICovCisweDY3LDB4MkEsMHgwMCwweDQ5LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE5Ml0gT0JKX3NldGN0X0NyZWRSZXZSZXNUQkUgKi8KKzB4NjcsMHgyQSwweDAwLDB4NEEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTk2XSBPQkpfc2V0Y3RfQmF0Y2hBZG1pblJlcVRCRSAqLworMHg2NywweDJBLDB4MDAsMHg0QiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyMDBdIE9CSl9zZXRjdF9CYXRjaEFkbWluUmVzVEJFICovCisweDY3LDB4MkEsMHgwMCwweDRDLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDIwNF0gT0JKX3NldGN0X1JlZ0Zvcm1SZXFUQkUgKi8KKzB4NjcsMHgyQSwweDAwLDB4NEQsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjA4XSBPQkpfc2V0Y3RfQ2VydFJlcVRCRSAqLworMHg2NywweDJBLDB4MDAsMHg0RSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyMTJdIE9CSl9zZXRjdF9DZXJ0UmVxVEJFWCAqLworMHg2NywweDJBLDB4MDAsMHg0RiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyMTZdIE9CSl9zZXRjdF9DZXJ0UmVzVEJFICovCisweDY3LDB4MkEsMHgwMCwweDUwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDIyMF0gT0JKX3NldGN0X0NSTE5vdGlmaWNhdGlvblRCUyAqLworMHg2NywweDJBLDB4MDAsMHg1MSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyMjRdIE9CSl9zZXRjdF9DUkxOb3RpZmljYXRpb25SZXNUQlMgKi8KKzB4NjcsMHgyQSwweDAwLDB4NTIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjI4XSBPQkpfc2V0Y3RfQkNJRGlzdHJpYnV0aW9uVEJTICovCisweDY3LDB4MkEsMHgwMSwweDAxLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDIzMl0gT0JKX3NldGV4dF9nZW5DcnlwdCAqLworMHg2NywweDJBLDB4MDEsMHgwMywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyMzZdIE9CSl9zZXRleHRfbWlBdXRoICovCisweDY3LDB4MkEsMHgwMSwweDA0LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI0MF0gT0JKX3NldGV4dF9waW5TZWN1cmUgKi8KKzB4NjcsMHgyQSwweDAxLDB4MDUsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjQ0XSBPQkpfc2V0ZXh0X3BpbkFueSAqLworMHg2NywweDJBLDB4MDEsMHgwNywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyNDhdIE9CSl9zZXRleHRfdHJhY2syICovCisweDY3LDB4MkEsMHgwMSwweDA4LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI1Ml0gT0JKX3NldGV4dF9jdiAqLworMHg2NywweDJBLDB4MDUsMHgwMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyNTZdIE9CSl9zZXRfcG9saWN5X3Jvb3QgKi8KKzB4NjcsMHgyQSwweDA3LDB4MDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjYwXSBPQkpfc2V0Q2V4dF9oYXNoZWRSb290ICovCisweDY3LDB4MkEsMHgwNywweDAxLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI2NF0gT0JKX3NldENleHRfY2VydFR5cGUgKi8KKzB4NjcsMHgyQSwweDA3LDB4MDIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjY4XSBPQkpfc2V0Q2V4dF9tZXJjaERhdGEgKi8KKzB4NjcsMHgyQSwweDA3LDB4MDMsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjcyXSBPQkpfc2V0Q2V4dF9jQ2VydFJlcXVpcmVkICovCisweDY3LDB4MkEsMHgwNywweDA0LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI3Nl0gT0JKX3NldENleHRfdHVubmVsaW5nICovCisweDY3LDB4MkEsMHgwNywweDA1LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI4MF0gT0JKX3NldENleHRfc2V0RXh0ICovCisweDY3LDB4MkEsMHgwNywweDA2LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI4NF0gT0JKX3NldENleHRfc2V0UXVhbGYgKi8KKzB4NjcsMHgyQSwweDA3LDB4MDcsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0Mjg4XSBPQkpfc2V0Q2V4dF9QR1dZY2FwYWJpbGl0aWVzICovCisweDY3LDB4MkEsMHgwNywweDA4LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI5Ml0gT0JKX3NldENleHRfVG9rZW5JZGVudGlmaWVyICovCisweDY3LDB4MkEsMHgwNywweDA5LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI5Nl0gT0JKX3NldENleHRfVHJhY2syRGF0YSAqLworMHg2NywweDJBLDB4MDcsMHgwQSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQzMDBdIE9CSl9zZXRDZXh0X1Rva2VuVHlwZSAqLworMHg2NywweDJBLDB4MDcsMHgwQiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQzMDRdIE9CSl9zZXRDZXh0X0lzc3VlckNhcGFiaWxpdGllcyAqLworMHg2NywweDJBLDB4MDMsMHgwMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQzMDhdIE9CSl9zZXRBdHRyX0NlcnQgKi8KKzB4NjcsMHgyQSwweDAzLDB4MDEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MzEyXSBPQkpfc2V0QXR0cl9QR1dZY2FwICovCisweDY3LDB4MkEsMHgwMywweDAyLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDMxNl0gT0JKX3NldEF0dHJfVG9rZW5UeXBlICovCisweDY3LDB4MkEsMHgwMywweDAzLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDMyMF0gT0JKX3NldEF0dHJfSXNzQ2FwICovCisweDY3LDB4MkEsMHgwMywweDAwLDB4MDAsICAgICAgICAgICAgICAgICAgICAvKiBbNDMyNF0gT0JKX3NldF9yb290S2V5VGh1bWIgKi8KKzB4NjcsMHgyQSwweDAzLDB4MDAsMHgwMSwgICAgICAgICAgICAgICAgICAgIC8qIFs0MzI5XSBPQkpfc2V0X2FkZFBvbGljeSAqLworMHg2NywweDJBLDB4MDMsMHgwMiwweDAxLCAgICAgICAgICAgICAgICAgICAgLyogWzQzMzRdIE9CSl9zZXRBdHRyX1Rva2VuX0VNViAqLworMHg2NywweDJBLDB4MDMsMHgwMiwweDAyLCAgICAgICAgICAgICAgICAgICAgLyogWzQzMzldIE9CSl9zZXRBdHRyX1Rva2VuX0IwUHJpbWUgKi8KKzB4NjcsMHgyQSwweDAzLDB4MDMsMHgwMywgICAgICAgICAgICAgICAgICAgIC8qIFs0MzQ0XSBPQkpfc2V0QXR0cl9Jc3NDYXBfQ1ZNICovCisweDY3LDB4MkEsMHgwMywweDAzLDB4MDQsICAgICAgICAgICAgICAgICAgICAvKiBbNDM0OV0gT0JKX3NldEF0dHJfSXNzQ2FwX1QyICovCisweDY3LDB4MkEsMHgwMywweDAzLDB4MDUsICAgICAgICAgICAgICAgICAgICAvKiBbNDM1NF0gT0JKX3NldEF0dHJfSXNzQ2FwX1NpZyAqLworMHg2NywweDJBLDB4MDMsMHgwMywweDAzLDB4MDEsICAgICAgICAgICAgICAgLyogWzQzNTldIE9CSl9zZXRBdHRyX0dlbkNyeXB0Z3JtICovCisweDY3LDB4MkEsMHgwMywweDAzLDB4MDQsMHgwMSwgICAgICAgICAgICAgICAvKiBbNDM2NV0gT0JKX3NldEF0dHJfVDJFbmMgKi8KKzB4NjcsMHgyQSwweDAzLDB4MDMsMHgwNCwweDAyLCAgICAgICAgICAgICAgIC8qIFs0MzcxXSBPQkpfc2V0QXR0cl9UMmNsZWFydHh0ICovCisweDY3LDB4MkEsMHgwMywweDAzLDB4MDUsMHgwMSwgICAgICAgICAgICAgICAvKiBbNDM3N10gT0JKX3NldEF0dHJfVG9rSUNDc2lnICovCisweDY3LDB4MkEsMHgwMywweDAzLDB4MDUsMHgwMiwgICAgICAgICAgICAgICAvKiBbNDM4M10gT0JKX3NldEF0dHJfU2VjRGV2U2lnICovCisweDY3LDB4MkEsMHgwOCwweDAxLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDM4OV0gT0JKX3NldF9icmFuZF9JQVRBX0FUQSAqLworMHg2NywweDJBLDB4MDgsMHgxRSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQzOTNdIE9CSl9zZXRfYnJhbmRfRGluZXJzICovCisweDY3LDB4MkEsMHgwOCwweDIyLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDM5N10gT0JKX3NldF9icmFuZF9BbWVyaWNhbkV4cHJlc3MgKi8KKzB4NjcsMHgyQSwweDA4LDB4MjMsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0NDAxXSBPQkpfc2V0X2JyYW5kX0pDQiAqLworMHg2NywweDJBLDB4MDgsMHgwNCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ0MDVdIE9CSl9zZXRfYnJhbmRfVmlzYSAqLworMHg2NywweDJBLDB4MDgsMHgwNSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ0MDldIE9CSl9zZXRfYnJhbmRfTWFzdGVyQ2FyZCAqLworMHg2NywweDJBLDB4MDgsMHhBRSwweDdCLCAgICAgICAgICAgICAgICAgICAgLyogWzQ0MTNdIE9CSl9zZXRfYnJhbmRfTm92dXMgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDMsMHgwQSwgICAgIC8qIFs0NDE4XSBPQkpfZGVzX2NkbWYgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwMSwweDA2LC8qIFs0NDI2XSBPQkpfcnNhT0FFUEVuY3J5cHRpb25TRVQgKi8KKzB4NjcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0NDM1XSBPQkpfaW50ZXJuYXRpb25hbF9vcmdhbml6YXRpb25zICovCisweDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsMHg4MiwweDM3LDB4MTQsMHgwMiwweDAyLC8qIFs0NDM2XSBPQkpfbXNfc21hcnRjYXJkX2xvZ2luICovCisweDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsMHg4MiwweDM3LDB4MTQsMHgwMiwweDAzLC8qIFs0NDQ2XSBPQkpfbXNfdXBuICovCisweDU1LDB4MDQsMHgwOSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDQ1Nl0gT0JKX3N0cmVldEFkZHJlc3MgKi8KKzB4NTUsMHgwNCwweDExLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0NDU5XSBPQkpfcG9zdGFsQ29kZSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgxNSwgICAgICAgICAgLyogWzQ0NjJdIE9CSl9pZF9wcGwgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDEsMHgwRSwgICAgIC8qIFs0NDY5XSBPQkpfcHJveHlDZXJ0SW5mbyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgxNSwweDAwLCAgICAgLyogWzQ0NzddIE9CSl9pZF9wcGxfYW55TGFuZ3VhZ2UgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MTUsMHgwMSwgICAgIC8qIFs0NDg1XSBPQkpfaWRfcHBsX2luaGVyaXRBbGwgKi8KKzB4NTUsMHgxRCwweDFFLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0NDkzXSBPQkpfbmFtZV9jb25zdHJhaW50cyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgxNSwweDAyLCAgICAgLyogWzQ0OTZdIE9CSl9JbmRlcGVuZGVudCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLDB4MEIsLyogWzQ1MDRdIE9CSl9zaGEyNTZXaXRoUlNBRW5jcnlwdGlvbiAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLDB4MEMsLyogWzQ1MTNdIE9CSl9zaGEzODRXaXRoUlNBRW5jcnlwdGlvbiAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLDB4MEQsLyogWzQ1MjJdIE9CSl9zaGE1MTJXaXRoUlNBRW5jcnlwdGlvbiAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLDB4MEUsLyogWzQ1MzFdIE9CSl9zaGEyMjRXaXRoUlNBRW5jcnlwdGlvbiAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAyLDB4MDEsLyogWzQ1NDBdIE9CSl9zaGEyNTYgKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMiwweDAyLC8qIFs0NTQ5XSBPQkpfc2hhMzg0ICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDIsMHgwMywvKiBbNDU1OF0gT0JKX3NoYTUxMiAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAyLDB4MDQsLyogWzQ1NjddIE9CSl9zaGEyMjQgKi8KKzB4MkIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0NTc2XSBPQkpfaWRlbnRpZmllZF9vcmdhbml6YXRpb24gKi8KKzB4MkIsMHg4MSwweDA0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0NTc3XSBPQkpfY2VydGljb21fYXJjICovCisweDY3LDB4MkIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDU4MF0gT0JKX3dhcCAqLworMHg2NywweDJCLDB4MDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ1ODJdIE9CSl93YXBfd3NnICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMSwweDAyLDB4MDMsICAgICAvKiBbNDU4NV0gT0JKX1g5XzYyX2lkX2NoYXJhY3RlcmlzdGljX3R3b19iYXNpcyAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDEsMHgwMiwweDAzLDB4MDEsLyogWzQ1OTNdIE9CSl9YOV82Ml9vbkJhc2lzICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMSwweDAyLDB4MDMsMHgwMiwvKiBbNDYwMl0gT0JKX1g5XzYyX3RwQmFzaXMgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAxLDB4MDIsMHgwMywweDAzLC8qIFs0NjExXSBPQkpfWDlfNjJfcHBCYXNpcyAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDAxLCAgICAgLyogWzQ2MjBdIE9CSl9YOV82Ml9jMnBuYjE2M3YxICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MDIsICAgICAvKiBbNDYyOF0gT0JKX1g5XzYyX2MycG5iMTYzdjIgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgwMywgICAgIC8qIFs0NjM2XSBPQkpfWDlfNjJfYzJwbmIxNjN2MyAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDA0LCAgICAgLyogWzQ2NDRdIE9CSl9YOV82Ml9jMnBuYjE3NnYxICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MDUsICAgICAvKiBbNDY1Ml0gT0JKX1g5XzYyX2MydG5iMTkxdjEgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgwNiwgICAgIC8qIFs0NjYwXSBPQkpfWDlfNjJfYzJ0bmIxOTF2MiAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDA3LCAgICAgLyogWzQ2NjhdIE9CSl9YOV82Ml9jMnRuYjE5MXYzICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MDgsICAgICAvKiBbNDY3Nl0gT0JKX1g5XzYyX2Myb25iMTkxdjQgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgwOSwgICAgIC8qIFs0Njg0XSBPQkpfWDlfNjJfYzJvbmIxOTF2NSAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDBBLCAgICAgLyogWzQ2OTJdIE9CSl9YOV82Ml9jMnBuYjIwOHcxICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MEIsICAgICAvKiBbNDcwMF0gT0JKX1g5XzYyX2MydG5iMjM5djEgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgwQywgICAgIC8qIFs0NzA4XSBPQkpfWDlfNjJfYzJ0bmIyMzl2MiAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDBELCAgICAgLyogWzQ3MTZdIE9CSl9YOV82Ml9jMnRuYjIzOXYzICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MEUsICAgICAvKiBbNDcyNF0gT0JKX1g5XzYyX2Myb25iMjM5djQgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgwRiwgICAgIC8qIFs0NzMyXSBPQkpfWDlfNjJfYzJvbmIyMzl2NSAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDEwLCAgICAgLyogWzQ3NDBdIE9CSl9YOV82Ml9jMnBuYjI3MncxICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MTEsICAgICAvKiBbNDc0OF0gT0JKX1g5XzYyX2MycG5iMzA0dzEgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgxMiwgICAgIC8qIFs0NzU2XSBPQkpfWDlfNjJfYzJ0bmIzNTl2MSAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDEzLCAgICAgLyogWzQ3NjRdIE9CSl9YOV82Ml9jMnBuYjM2OHcxICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MTQsICAgICAvKiBbNDc3Ml0gT0JKX1g5XzYyX2MydG5iNDMxcjEgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgwNiwgICAgICAgICAgICAgICAgICAgIC8qIFs0NzgwXSBPQkpfc2VjcDExMnIxICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MDcsICAgICAgICAgICAgICAgICAgICAvKiBbNDc4NV0gT0JKX3NlY3AxMTJyMiAqLworMHgyQiwweDgxLDB4MDQsMHgwMCwweDFDLCAgICAgICAgICAgICAgICAgICAgLyogWzQ3OTBdIE9CSl9zZWNwMTI4cjEgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgxRCwgICAgICAgICAgICAgICAgICAgIC8qIFs0Nzk1XSBPQkpfc2VjcDEyOHIyICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MDksICAgICAgICAgICAgICAgICAgICAvKiBbNDgwMF0gT0JKX3NlY3AxNjBrMSAqLworMHgyQiwweDgxLDB4MDQsMHgwMCwweDA4LCAgICAgICAgICAgICAgICAgICAgLyogWzQ4MDVdIE9CSl9zZWNwMTYwcjEgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgxRSwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODEwXSBPQkpfc2VjcDE2MHIyICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MUYsICAgICAgICAgICAgICAgICAgICAvKiBbNDgxNV0gT0JKX3NlY3AxOTJrMSAqLworMHgyQiwweDgxLDB4MDQsMHgwMCwweDIwLCAgICAgICAgICAgICAgICAgICAgLyogWzQ4MjBdIE9CSl9zZWNwMjI0azEgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgyMSwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODI1XSBPQkpfc2VjcDIyNHIxICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MEEsICAgICAgICAgICAgICAgICAgICAvKiBbNDgzMF0gT0JKX3NlY3AyNTZrMSAqLworMHgyQiwweDgxLDB4MDQsMHgwMCwweDIyLCAgICAgICAgICAgICAgICAgICAgLyogWzQ4MzVdIE9CSl9zZWNwMzg0cjEgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgyMywgICAgICAgICAgICAgICAgICAgIC8qIFs0ODQwXSBPQkpfc2VjcDUyMXIxICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MDQsICAgICAgICAgICAgICAgICAgICAvKiBbNDg0NV0gT0JKX3NlY3QxMTNyMSAqLworMHgyQiwweDgxLDB4MDQsMHgwMCwweDA1LCAgICAgICAgICAgICAgICAgICAgLyogWzQ4NTBdIE9CSl9zZWN0MTEzcjIgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgxNiwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODU1XSBPQkpfc2VjdDEzMXIxICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MTcsICAgICAgICAgICAgICAgICAgICAvKiBbNDg2MF0gT0JKX3NlY3QxMzFyMiAqLworMHgyQiwweDgxLDB4MDQsMHgwMCwweDAxLCAgICAgICAgICAgICAgICAgICAgLyogWzQ4NjVdIE9CSl9zZWN0MTYzazEgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgwMiwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODcwXSBPQkpfc2VjdDE2M3IxICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MEYsICAgICAgICAgICAgICAgICAgICAvKiBbNDg3NV0gT0JKX3NlY3QxNjNyMiAqLworMHgyQiwweDgxLDB4MDQsMHgwMCwweDE4LCAgICAgICAgICAgICAgICAgICAgLyogWzQ4ODBdIE9CSl9zZWN0MTkzcjEgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgxOSwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODg1XSBPQkpfc2VjdDE5M3IyICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MUEsICAgICAgICAgICAgICAgICAgICAvKiBbNDg5MF0gT0JKX3NlY3QyMzNrMSAqLworMHgyQiwweDgxLDB4MDQsMHgwMCwweDFCLCAgICAgICAgICAgICAgICAgICAgLyogWzQ4OTVdIE9CSl9zZWN0MjMzcjEgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgwMywgICAgICAgICAgICAgICAgICAgIC8qIFs0OTAwXSBPQkpfc2VjdDIzOWsxICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MTAsICAgICAgICAgICAgICAgICAgICAvKiBbNDkwNV0gT0JKX3NlY3QyODNrMSAqLworMHgyQiwweDgxLDB4MDQsMHgwMCwweDExLCAgICAgICAgICAgICAgICAgICAgLyogWzQ5MTBdIE9CSl9zZWN0MjgzcjEgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgyNCwgICAgICAgICAgICAgICAgICAgIC8qIFs0OTE1XSBPQkpfc2VjdDQwOWsxICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MjUsICAgICAgICAgICAgICAgICAgICAvKiBbNDkyMF0gT0JKX3NlY3Q0MDlyMSAqLworMHgyQiwweDgxLDB4MDQsMHgwMCwweDI2LCAgICAgICAgICAgICAgICAgICAgLyogWzQ5MjVdIE9CSl9zZWN0NTcxazEgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgyNywgICAgICAgICAgICAgICAgICAgIC8qIFs0OTMwXSBPQkpfc2VjdDU3MXIxICovCisweDY3LDB4MkIsMHgwMSwweDA0LDB4MDEsICAgICAgICAgICAgICAgICAgICAvKiBbNDkzNV0gT0JKX3dhcF93c2dfaWRtX2VjaWRfd3RsczEgKi8KKzB4NjcsMHgyQiwweDAxLDB4MDQsMHgwMywgICAgICAgICAgICAgICAgICAgIC8qIFs0OTQwXSBPQkpfd2FwX3dzZ19pZG1fZWNpZF93dGxzMyAqLworMHg2NywweDJCLDB4MDEsMHgwNCwweDA0LCAgICAgICAgICAgICAgICAgICAgLyogWzQ5NDVdIE9CSl93YXBfd3NnX2lkbV9lY2lkX3d0bHM0ICovCisweDY3LDB4MkIsMHgwMSwweDA0LDB4MDUsICAgICAgICAgICAgICAgICAgICAvKiBbNDk1MF0gT0JKX3dhcF93c2dfaWRtX2VjaWRfd3RsczUgKi8KKzB4NjcsMHgyQiwweDAxLDB4MDQsMHgwNiwgICAgICAgICAgICAgICAgICAgIC8qIFs0OTU1XSBPQkpfd2FwX3dzZ19pZG1fZWNpZF93dGxzNiAqLworMHg2NywweDJCLDB4MDEsMHgwNCwweDA3LCAgICAgICAgICAgICAgICAgICAgLyogWzQ5NjBdIE9CSl93YXBfd3NnX2lkbV9lY2lkX3d0bHM3ICovCisweDY3LDB4MkIsMHgwMSwweDA0LDB4MDgsICAgICAgICAgICAgICAgICAgICAvKiBbNDk2NV0gT0JKX3dhcF93c2dfaWRtX2VjaWRfd3RsczggKi8KKzB4NjcsMHgyQiwweDAxLDB4MDQsMHgwOSwgICAgICAgICAgICAgICAgICAgIC8qIFs0OTcwXSBPQkpfd2FwX3dzZ19pZG1fZWNpZF93dGxzOSAqLworMHg2NywweDJCLDB4MDEsMHgwNCwweDBBLCAgICAgICAgICAgICAgICAgICAgLyogWzQ5NzVdIE9CSl93YXBfd3NnX2lkbV9lY2lkX3d0bHMxMCAqLworMHg2NywweDJCLDB4MDEsMHgwNCwweDBCLCAgICAgICAgICAgICAgICAgICAgLyogWzQ5ODBdIE9CSl93YXBfd3NnX2lkbV9lY2lkX3d0bHMxMSAqLworMHg2NywweDJCLDB4MDEsMHgwNCwweDBDLCAgICAgICAgICAgICAgICAgICAgLyogWzQ5ODVdIE9CSl93YXBfd3NnX2lkbV9lY2lkX3d0bHMxMiAqLworMHg1NSwweDFELDB4MjAsMHgwMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ5OTBdIE9CSl9hbnlfcG9saWN5ICovCisweDU1LDB4MUQsMHgyMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDk5NF0gT0JKX3BvbGljeV9tYXBwaW5ncyAqLworMHg1NSwweDFELDB4MzYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ5OTddIE9CSl9pbmhpYml0X2FueV9wb2xpY3kgKi8KKzB4MkEsMHg4MywweDA4LDB4OEMsMHg5QSwweDRCLDB4M0QsMHgwMSwweDAxLDB4MDEsMHgwMiwvKiBbNTAwMF0gT0JKX2NhbWVsbGlhXzEyOF9jYmMgKi8KKzB4MkEsMHg4MywweDA4LDB4OEMsMHg5QSwweDRCLDB4M0QsMHgwMSwweDAxLDB4MDEsMHgwMywvKiBbNTAxMV0gT0JKX2NhbWVsbGlhXzE5Ml9jYmMgKi8KKzB4MkEsMHg4MywweDA4LDB4OEMsMHg5QSwweDRCLDB4M0QsMHgwMSwweDAxLDB4MDEsMHgwNCwvKiBbNTAyMl0gT0JKX2NhbWVsbGlhXzI1Nl9jYmMgKi8KKzB4MDMsMHhBMiwweDMxLDB4MDUsMHgwMywweDAxLDB4MDksMHgwMSwgICAgIC8qIFs1MDMzXSBPQkpfY2FtZWxsaWFfMTI4X2VjYiAqLworMHgwMywweEEyLDB4MzEsMHgwNSwweDAzLDB4MDEsMHgwOSwweDE1LCAgICAgLyogWzUwNDFdIE9CSl9jYW1lbGxpYV8xOTJfZWNiICovCisweDAzLDB4QTIsMHgzMSwweDA1LDB4MDMsMHgwMSwweDA5LDB4MjksICAgICAvKiBbNTA0OV0gT0JKX2NhbWVsbGlhXzI1Nl9lY2IgKi8KKzB4MDMsMHhBMiwweDMxLDB4MDUsMHgwMywweDAxLDB4MDksMHgwNCwgICAgIC8qIFs1MDU3XSBPQkpfY2FtZWxsaWFfMTI4X2NmYjEyOCAqLworMHgwMywweEEyLDB4MzEsMHgwNSwweDAzLDB4MDEsMHgwOSwweDE4LCAgICAgLyogWzUwNjVdIE9CSl9jYW1lbGxpYV8xOTJfY2ZiMTI4ICovCisweDAzLDB4QTIsMHgzMSwweDA1LDB4MDMsMHgwMSwweDA5LDB4MkMsICAgICAvKiBbNTA3M10gT0JKX2NhbWVsbGlhXzI1Nl9jZmIxMjggKi8KKzB4MDMsMHhBMiwweDMxLDB4MDUsMHgwMywweDAxLDB4MDksMHgwMywgICAgIC8qIFs1MDgxXSBPQkpfY2FtZWxsaWFfMTI4X29mYjEyOCAqLworMHgwMywweEEyLDB4MzEsMHgwNSwweDAzLDB4MDEsMHgwOSwweDE3LCAgICAgLyogWzUwODldIE9CSl9jYW1lbGxpYV8xOTJfb2ZiMTI4ICovCisweDAzLDB4QTIsMHgzMSwweDA1LDB4MDMsMHgwMSwweDA5LDB4MkIsICAgICAvKiBbNTA5N10gT0JKX2NhbWVsbGlhXzI1Nl9vZmIxMjggKi8KKzB4NTUsMHgxRCwweDA5LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1MTA1XSBPQkpfc3ViamVjdF9kaXJlY3RvcnlfYXR0cmlidXRlcyAqLworMHg1NSwweDFELDB4MUMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUxMDhdIE9CSl9pc3N1aW5nX2Rpc3RyaWJ1dGlvbl9wb2ludCAqLworMHg1NSwweDFELDB4MUQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUxMTFdIE9CSl9jZXJ0aWZpY2F0ZV9pc3N1ZXIgKi8KKzB4MkEsMHg4MywweDFBLDB4OEMsMHg5QSwweDQ0LCAgICAgICAgICAgICAgIC8qIFs1MTE0XSBPQkpfa2lzYSAqLworMHgyQSwweDgzLDB4MUEsMHg4QywweDlBLDB4NDQsMHgwMSwweDAzLCAgICAgLyogWzUxMjBdIE9CSl9zZWVkX2VjYiAqLworMHgyQSwweDgzLDB4MUEsMHg4QywweDlBLDB4NDQsMHgwMSwweDA0LCAgICAgLyogWzUxMjhdIE9CSl9zZWVkX2NiYyAqLworMHgyQSwweDgzLDB4MUEsMHg4QywweDlBLDB4NDQsMHgwMSwweDA2LCAgICAgLyogWzUxMzZdIE9CSl9zZWVkX29mYjEyOCAqLworMHgyQSwweDgzLDB4MUEsMHg4QywweDlBLDB4NDQsMHgwMSwweDA1LCAgICAgLyogWzUxNDRdIE9CSl9zZWVkX2NmYjEyOCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDgsMHgwMSwweDAxLCAgICAgLyogWzUxNTJdIE9CSl9obWFjX21kNSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDgsMHgwMSwweDAyLCAgICAgLyogWzUxNjBdIE9CSl9obWFjX3NoYTEgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNiwweDdELDB4MDcsMHg0MiwweDBELC8qIFs1MTY4XSBPQkpfaWRfUGFzc3dvcmRCYXNlZE1BQyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY2LDB4N0QsMHgwNywweDQyLDB4MUUsLyogWzUxNzddIE9CSl9pZF9ESEJhc2VkTWFjICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LDB4MTAsICAgICAvKiBbNTE4Nl0gT0JKX2lkX2l0X3N1cHBMYW5nVGFncyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDA1LCAgICAgLyogWzUxOTRdIE9CSl9jYVJlcG9zaXRvcnkgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDEsMHgwOSwvKiBbNTIwMl0gT0JKX2lkX3NtaW1lX2N0X2NvbXByZXNzZWREYXRhICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAxLDB4MUIsLyogWzUyMTNdIE9CSl9pZF9jdF9hc2NpaVRleHRXaXRoQ1JMRiAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MDUsLyogWzUyMjRdIE9CSl9pZF9hZXMxMjhfd3JhcCAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MTksLyogWzUyMzNdIE9CSl9pZF9hZXMxOTJfd3JhcCAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MkQsLyogWzUyNDJdIE9CSl9pZF9hZXMyNTZfd3JhcCAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDQsMHgwMiwgICAgICAgICAgLyogWzUyNTFdIE9CSl9lY2RzYV93aXRoX1JlY29tbWVuZGVkICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwNCwweDAzLCAgICAgICAgICAvKiBbNTI1OF0gT0JKX2VjZHNhX3dpdGhfU3BlY2lmaWVkICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwNCwweDAzLDB4MDEsICAgICAvKiBbNTI2NV0gT0JKX2VjZHNhX3dpdGhfU0hBMjI0ICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwNCwweDAzLDB4MDIsICAgICAvKiBbNTI3M10gT0JKX2VjZHNhX3dpdGhfU0hBMjU2ICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwNCwweDAzLDB4MDMsICAgICAvKiBbNTI4MV0gT0JKX2VjZHNhX3dpdGhfU0hBMzg0ICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwNCwweDAzLDB4MDQsICAgICAvKiBbNTI4OV0gT0JKX2VjZHNhX3dpdGhfU0hBNTEyICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAyLDB4MDYsICAgICAvKiBbNTI5N10gT0JKX2htYWNXaXRoTUQ1ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAyLDB4MDgsICAgICAvKiBbNTMwNV0gT0JKX2htYWNXaXRoU0hBMjI0ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAyLDB4MDksICAgICAvKiBbNTMxM10gT0JKX2htYWNXaXRoU0hBMjU2ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAyLDB4MEEsICAgICAvKiBbNTMyMV0gT0JKX2htYWNXaXRoU0hBMzg0ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAyLDB4MEIsICAgICAvKiBbNTMyOV0gT0JKX2htYWNXaXRoU0hBNTEyICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDMsMHgwMSwvKiBbNTMzN10gT0JKX2RzYV93aXRoX1NIQTIyNCAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAzLDB4MDIsLyogWzUzNDZdIE9CSl9kc2Ffd2l0aF9TSEEyNTYgKi8KKzB4MjgsMHhDRiwweDA2LDB4MDMsMHgwMCwweDM3LCAgICAgICAgICAgICAgIC8qIFs1MzU1XSBPQkpfd2hpcmxwb29sICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsICAgICAgICAgICAgICAgICAgICAvKiBbNTM2MV0gT0JKX2NyeXB0b3BybyAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDA5LCAgICAgICAgICAgICAgICAgICAgLyogWzUzNjZdIE9CSl9jcnlwdG9jb20gKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDAzLCAgICAgICAgICAgICAgIC8qIFs1MzcxXSBPQkpfaWRfR29zdFIzNDExXzk0X3dpdGhfR29zdFIzNDEwXzIwMDEgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDA0LCAgICAgICAgICAgICAgIC8qIFs1Mzc3XSBPQkpfaWRfR29zdFIzNDExXzk0X3dpdGhfR29zdFIzNDEwXzk0ICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgwOSwgICAgICAgICAgICAgICAvKiBbNTM4M10gT0JKX2lkX0dvc3RSMzQxMV85NCAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MEEsICAgICAgICAgICAgICAgLyogWzUzODldIE9CSl9pZF9ITUFDR29zdFIzNDExXzk0ICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxMywgICAgICAgICAgICAgICAvKiBbNTM5NV0gT0JKX2lkX0dvc3RSMzQxMF8yMDAxICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxNCwgICAgICAgICAgICAgICAvKiBbNTQwMV0gT0JKX2lkX0dvc3RSMzQxMF85NCAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MTUsICAgICAgICAgICAgICAgLyogWzU0MDddIE9CSl9pZF9Hb3N0MjgxNDdfODkgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDE2LCAgICAgICAgICAgICAgIC8qIFs1NDEzXSBPQkpfaWRfR29zdDI4MTQ3Xzg5X01BQyAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MTcsICAgICAgICAgICAgICAgLyogWzU0MTldIE9CSl9pZF9Hb3N0UjM0MTFfOTRfcHJmICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHg2MiwgICAgICAgICAgICAgICAvKiBbNTQyNV0gT0JKX2lkX0dvc3RSMzQxMF8yMDAxREggKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDYzLCAgICAgICAgICAgICAgIC8qIFs1NDMxXSBPQkpfaWRfR29zdFIzNDEwXzk0REggKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDBFLDB4MDEsICAgICAgICAgIC8qIFs1NDM3XSBPQkpfaWRfR29zdDI4MTQ3Xzg5X0NyeXB0b1Byb19LZXlNZXNoaW5nICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgwRSwweDAwLCAgICAgICAgICAvKiBbNTQ0NF0gT0JKX2lkX0dvc3QyODE0N184OV9Ob25lX0tleU1lc2hpbmcgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDFFLDB4MDAsICAgICAgICAgIC8qIFs1NDUxXSBPQkpfaWRfR29zdFIzNDExXzk0X1Rlc3RQYXJhbVNldCAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MUUsMHgwMSwgICAgICAgICAgLyogWzU0NThdIE9CSl9pZF9Hb3N0UjM0MTFfOTRfQ3J5cHRvUHJvUGFyYW1TZXQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDFGLDB4MDAsICAgICAgICAgIC8qIFs1NDY1XSBPQkpfaWRfR29zdDI4MTQ3Xzg5X1Rlc3RQYXJhbVNldCAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MUYsMHgwMSwgICAgICAgICAgLyogWzU0NzJdIE9CSl9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX0FfUGFyYW1TZXQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDFGLDB4MDIsICAgICAgICAgIC8qIFs1NDc5XSBPQkpfaWRfR29zdDI4MTQ3Xzg5X0NyeXB0b1Byb19CX1BhcmFtU2V0ICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxRiwweDAzLCAgICAgICAgICAvKiBbNTQ4Nl0gT0JKX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fQ19QYXJhbVNldCAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MUYsMHgwNCwgICAgICAgICAgLyogWzU0OTNdIE9CSl9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX0RfUGFyYW1TZXQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDFGLDB4MDUsICAgICAgICAgIC8qIFs1NTAwXSBPQkpfaWRfR29zdDI4MTQ3Xzg5X0NyeXB0b1Byb19Pc2Nhcl8xXzFfUGFyYW1TZXQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDFGLDB4MDYsICAgICAgICAgIC8qIFs1NTA3XSBPQkpfaWRfR29zdDI4MTQ3Xzg5X0NyeXB0b1Byb19Pc2Nhcl8xXzBfUGFyYW1TZXQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDFGLDB4MDcsICAgICAgICAgIC8qIFs1NTE0XSBPQkpfaWRfR29zdDI4MTQ3Xzg5X0NyeXB0b1Byb19SSUNfMV9QYXJhbVNldCAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MjAsMHgwMCwgICAgICAgICAgLyogWzU1MjFdIE9CSl9pZF9Hb3N0UjM0MTBfOTRfVGVzdFBhcmFtU2V0ICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgyMCwweDAyLCAgICAgICAgICAvKiBbNTUyOF0gT0JKX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fQV9QYXJhbVNldCAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MjAsMHgwMywgICAgICAgICAgLyogWzU1MzVdIE9CSl9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX0JfUGFyYW1TZXQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDIwLDB4MDQsICAgICAgICAgIC8qIFs1NTQyXSBPQkpfaWRfR29zdFIzNDEwXzk0X0NyeXB0b1Byb19DX1BhcmFtU2V0ICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgyMCwweDA1LCAgICAgICAgICAvKiBbNTU0OV0gT0JKX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fRF9QYXJhbVNldCAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MjEsMHgwMSwgICAgICAgICAgLyogWzU1NTZdIE9CSl9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX1hjaEFfUGFyYW1TZXQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDIxLDB4MDIsICAgICAgICAgIC8qIFs1NTYzXSBPQkpfaWRfR29zdFIzNDEwXzk0X0NyeXB0b1Byb19YY2hCX1BhcmFtU2V0ICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgyMSwweDAzLCAgICAgICAgICAvKiBbNTU3MF0gT0JKX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fWGNoQ19QYXJhbVNldCAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MjMsMHgwMCwgICAgICAgICAgLyogWzU1NzddIE9CSl9pZF9Hb3N0UjM0MTBfMjAwMV9UZXN0UGFyYW1TZXQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDIzLDB4MDEsICAgICAgICAgIC8qIFs1NTg0XSBPQkpfaWRfR29zdFIzNDEwXzIwMDFfQ3J5cHRvUHJvX0FfUGFyYW1TZXQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDIzLDB4MDIsICAgICAgICAgIC8qIFs1NTkxXSBPQkpfaWRfR29zdFIzNDEwXzIwMDFfQ3J5cHRvUHJvX0JfUGFyYW1TZXQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDIzLDB4MDMsICAgICAgICAgIC8qIFs1NTk4XSBPQkpfaWRfR29zdFIzNDEwXzIwMDFfQ3J5cHRvUHJvX0NfUGFyYW1TZXQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDI0LDB4MDAsICAgICAgICAgIC8qIFs1NjA1XSBPQkpfaWRfR29zdFIzNDEwXzIwMDFfQ3J5cHRvUHJvX1hjaEFfUGFyYW1TZXQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDI0LDB4MDEsICAgICAgICAgIC8qIFs1NjEyXSBPQkpfaWRfR29zdFIzNDEwXzIwMDFfQ3J5cHRvUHJvX1hjaEJfUGFyYW1TZXQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDE0LDB4MDEsICAgICAgICAgIC8qIFs1NjE5XSBPQkpfaWRfR29zdFIzNDEwXzk0X2EgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDE0LDB4MDIsICAgICAgICAgIC8qIFs1NjI2XSBPQkpfaWRfR29zdFIzNDEwXzk0X2FCaXMgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDE0LDB4MDMsICAgICAgICAgIC8qIFs1NjMzXSBPQkpfaWRfR29zdFIzNDEwXzk0X2IgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDE0LDB4MDQsICAgICAgICAgIC8qIFs1NjQwXSBPQkpfaWRfR29zdFIzNDEwXzk0X2JCaXMgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwOSwweDAxLDB4MDYsMHgwMSwgICAgIC8qIFs1NjQ3XSBPQkpfaWRfR29zdDI4MTQ3Xzg5X2NjICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDksMHgwMSwweDA1LDB4MDMsICAgICAvKiBbNTY1NV0gT0JKX2lkX0dvc3RSMzQxMF85NF9jYyAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDA5LDB4MDEsMHgwNSwweDA0LCAgICAgLyogWzU2NjNdIE9CSl9pZF9Hb3N0UjM0MTBfMjAwMV9jYyAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDA5LDB4MDEsMHgwMywweDAzLCAgICAgLyogWzU2NzFdIE9CSl9pZF9Hb3N0UjM0MTFfOTRfd2l0aF9Hb3N0UjM0MTBfOTRfY2MgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwOSwweDAxLDB4MDMsMHgwNCwgICAgIC8qIFs1Njc5XSBPQkpfaWRfR29zdFIzNDExXzk0X3dpdGhfR29zdFIzNDEwXzIwMDFfY2MgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwOSwweDAxLDB4MDgsMHgwMSwgICAgIC8qIFs1Njg3XSBPQkpfaWRfR29zdFIzNDEwXzIwMDFfUGFyYW1TZXRfY2MgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDQsMHgwMSwweDgyLDB4MzcsMHgxMSwweDAyLC8qIFs1Njk1XSBPQkpfTG9jYWxLZXlTZXQgKi8KKzB4NTUsMHgxRCwweDJFLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzA0XSBPQkpfZnJlc2hlc3RfY3JsICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA4LDB4MDMsICAgICAvKiBbNTcwN10gT0JKX2lkX29uX3Blcm1hbmVudElkZW50aWZpZXIgKi8KKzB4NTUsMHgwNCwweDBFLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzE1XSBPQkpfc2VhcmNoR3VpZGUgKi8KKzB4NTUsMHgwNCwweDBGLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzE4XSBPQkpfYnVzaW5lc3NDYXRlZ29yeSAqLworMHg1NSwweDA0LDB4MTAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3MjFdIE9CSl9wb3N0YWxBZGRyZXNzICovCisweDU1LDB4MDQsMHgxMiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTcyNF0gT0JKX3Bvc3RPZmZpY2VCb3ggKi8KKzB4NTUsMHgwNCwweDEzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzI3XSBPQkpfcGh5c2ljYWxEZWxpdmVyeU9mZmljZU5hbWUgKi8KKzB4NTUsMHgwNCwweDE0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzMwXSBPQkpfdGVsZXBob25lTnVtYmVyICovCisweDU1LDB4MDQsMHgxNSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTczM10gT0JKX3RlbGV4TnVtYmVyICovCisweDU1LDB4MDQsMHgxNiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTczNl0gT0JKX3RlbGV0ZXhUZXJtaW5hbElkZW50aWZpZXIgKi8KKzB4NTUsMHgwNCwweDE3LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzM5XSBPQkpfZmFjc2ltaWxlVGVsZXBob25lTnVtYmVyICovCisweDU1LDB4MDQsMHgxOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc0Ml0gT0JKX3gxMjFBZGRyZXNzICovCisweDU1LDB4MDQsMHgxOSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc0NV0gT0JKX2ludGVybmF0aW9uYWxpU0ROTnVtYmVyICovCisweDU1LDB4MDQsMHgxQSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc0OF0gT0JKX3JlZ2lzdGVyZWRBZGRyZXNzICovCisweDU1LDB4MDQsMHgxQiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc1MV0gT0JKX2Rlc3RpbmF0aW9uSW5kaWNhdG9yICovCisweDU1LDB4MDQsMHgxQywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc1NF0gT0JKX3ByZWZlcnJlZERlbGl2ZXJ5TWV0aG9kICovCisweDU1LDB4MDQsMHgxRCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc1N10gT0JKX3ByZXNlbnRhdGlvbkFkZHJlc3MgKi8KKzB4NTUsMHgwNCwweDFFLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzYwXSBPQkpfc3VwcG9ydGVkQXBwbGljYXRpb25Db250ZXh0ICovCisweDU1LDB4MDQsMHgxRiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc2M10gT0JKX21lbWJlciAqLworMHg1NSwweDA0LDB4MjAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3NjZdIE9CSl9vd25lciAqLworMHg1NSwweDA0LDB4MjEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3NjldIE9CSl9yb2xlT2NjdXBhbnQgKi8KKzB4NTUsMHgwNCwweDIyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzcyXSBPQkpfc2VlQWxzbyAqLworMHg1NSwweDA0LDB4MjMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3NzVdIE9CSl91c2VyUGFzc3dvcmQgKi8KKzB4NTUsMHgwNCwweDI0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1Nzc4XSBPQkpfdXNlckNlcnRpZmljYXRlICovCisweDU1LDB4MDQsMHgyNSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc4MV0gT0JKX2NBQ2VydGlmaWNhdGUgKi8KKzB4NTUsMHgwNCwweDI2LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1Nzg0XSBPQkpfYXV0aG9yaXR5UmV2b2NhdGlvbkxpc3QgKi8KKzB4NTUsMHgwNCwweDI3LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1Nzg3XSBPQkpfY2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdCAqLworMHg1NSwweDA0LDB4MjgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3OTBdIE9CSl9jcm9zc0NlcnRpZmljYXRlUGFpciAqLworMHg1NSwweDA0LDB4MkYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3OTNdIE9CSl9lbmhhbmNlZFNlYXJjaEd1aWRlICovCisweDU1LDB4MDQsMHgzMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc5Nl0gT0JKX3Byb3RvY29sSW5mb3JtYXRpb24gKi8KKzB4NTUsMHgwNCwweDMxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1Nzk5XSBPQkpfZGlzdGluZ3Vpc2hlZE5hbWUgKi8KKzB4NTUsMHgwNCwweDMyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1ODAyXSBPQkpfdW5pcXVlTWVtYmVyICovCisweDU1LDB4MDQsMHgzMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTgwNV0gT0JKX2hvdXNlSWRlbnRpZmllciAqLworMHg1NSwweDA0LDB4MzQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU4MDhdIE9CSl9zdXBwb3J0ZWRBbGdvcml0aG1zICovCisweDU1LDB4MDQsMHgzNSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTgxMV0gT0JKX2RlbHRhUmV2b2NhdGlvbkxpc3QgKi8KKzB4NTUsMHgwNCwweDM2LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1ODE0XSBPQkpfZG1kTmFtZSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMywweDA5LC8qIFs1ODE3XSBPQkpfaWRfYWxnX1BXUklfS0VLICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgwNiwvKiBbNTgyOF0gT0JKX2Flc18xMjhfZ2NtICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgwNywvKiBbNTgzN10gT0JKX2Flc18xMjhfY2NtICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgwOCwvKiBbNTg0Nl0gT0JKX2lkX2FlczEyOF93cmFwX3BhZCAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MUEsLyogWzU4NTVdIE9CSl9hZXNfMTkyX2djbSAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MUIsLyogWzU4NjRdIE9CSl9hZXNfMTkyX2NjbSAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MUMsLyogWzU4NzNdIE9CSl9pZF9hZXMxOTJfd3JhcF9wYWQgKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDJFLC8qIFs1ODgyXSBPQkpfYWVzXzI1Nl9nY20gKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDJGLC8qIFs1ODkxXSBPQkpfYWVzXzI1Nl9jY20gKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDMwLC8qIFs1OTAwXSBPQkpfaWRfYWVzMjU2X3dyYXBfcGFkICovCisweDJBLDB4ODMsMHgwOCwweDhDLDB4OUEsMHg0QiwweDNELDB4MDEsMHgwMSwweDAzLDB4MDIsLyogWzU5MDldIE9CSl9pZF9jYW1lbGxpYTEyOF93cmFwICovCisweDJBLDB4ODMsMHgwOCwweDhDLDB4OUEsMHg0QiwweDNELDB4MDEsMHgwMSwweDAzLDB4MDMsLyogWzU5MjBdIE9CSl9pZF9jYW1lbGxpYTE5Ml93cmFwICovCisweDJBLDB4ODMsMHgwOCwweDhDLDB4OUEsMHg0QiwweDNELDB4MDEsMHgwMSwweDAzLDB4MDQsLyogWzU5MzFdIE9CSl9pZF9jYW1lbGxpYTI1Nl93cmFwICovCisweDU1LDB4MUQsMHgyNSwweDAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTk0Ml0gT0JKX2FueUV4dGVuZGVkS2V5VXNhZ2UgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwMSwweDA4LC8qIFs1OTQ2XSBPQkpfbWdmMSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLDB4MEEsLyogWzU5NTVdIE9CSl9yc2Fzc2FQc3MgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwMSwweDA3LC8qIFs1OTY0XSBPQkpfcnNhZXNPYWVwICovCiB9OwogCiBzdGF0aWMgY29uc3QgQVNOMV9PQkpFQ1QgbmlkX29ianNbTlVNX05JRF09ewoteyJVTkRFRiIsInVuZGVmaW5lZCIsTklEX3VuZGVmLDEsJihsdmFsdWVzWzBdKSwwfSwKLXsicnNhZHNpIiwiUlNBIERhdGEgU2VjdXJpdHksIEluYy4iLE5JRF9yc2Fkc2ksNiwmKGx2YWx1ZXNbMV0pLDB9LAoteyJwa2NzIiwiUlNBIERhdGEgU2VjdXJpdHksIEluYy4gUEtDUyIsTklEX3BrY3MsNywmKGx2YWx1ZXNbN10pLDB9LAoteyJNRDIiLCJtZDIiLE5JRF9tZDIsOCwmKGx2YWx1ZXNbMTRdKSwwfSwKLXsiTUQ1IiwibWQ1IixOSURfbWQ1LDgsJihsdmFsdWVzWzIyXSksMH0sCi17IlJDNCIsInJjNCIsTklEX3JjNCw4LCYobHZhbHVlc1szMF0pLDB9LAoteyJyc2FFbmNyeXB0aW9uIiwicnNhRW5jcnlwdGlvbiIsTklEX3JzYUVuY3J5cHRpb24sOSwmKGx2YWx1ZXNbMzhdKSwwfSwKK3siVU5ERUYiLCJ1bmRlZmluZWQiLE5JRF91bmRlZiwwLE5VTEwsMH0sCit7InJzYWRzaSIsIlJTQSBEYXRhIFNlY3VyaXR5LCBJbmMuIixOSURfcnNhZHNpLDYsJihsdmFsdWVzWzBdKSwwfSwKK3sicGtjcyIsIlJTQSBEYXRhIFNlY3VyaXR5LCBJbmMuIFBLQ1MiLE5JRF9wa2NzLDcsJihsdmFsdWVzWzZdKSwwfSwKK3siTUQyIiwibWQyIixOSURfbWQyLDgsJihsdmFsdWVzWzEzXSksMH0sCit7Ik1ENSIsIm1kNSIsTklEX21kNSw4LCYobHZhbHVlc1syMV0pLDB9LAoreyJSQzQiLCJyYzQiLE5JRF9yYzQsOCwmKGx2YWx1ZXNbMjldKSwwfSwKK3sicnNhRW5jcnlwdGlvbiIsInJzYUVuY3J5cHRpb24iLE5JRF9yc2FFbmNyeXB0aW9uLDksJihsdmFsdWVzWzM3XSksMH0sCiB7IlJTQS1NRDIiLCJtZDJXaXRoUlNBRW5jcnlwdGlvbiIsTklEX21kMldpdGhSU0FFbmNyeXB0aW9uLDksCi0JJihsdmFsdWVzWzQ3XSksMH0sCisJJihsdmFsdWVzWzQ2XSksMH0sCiB7IlJTQS1NRDUiLCJtZDVXaXRoUlNBRW5jcnlwdGlvbiIsTklEX21kNVdpdGhSU0FFbmNyeXB0aW9uLDksCi0JJihsdmFsdWVzWzU2XSksMH0sCisJJihsdmFsdWVzWzU1XSksMH0sCiB7IlBCRS1NRDItREVTIiwicGJlV2l0aE1EMkFuZERFUy1DQkMiLE5JRF9wYmVXaXRoTUQyQW5kREVTX0NCQyw5LAotCSYobHZhbHVlc1s2NV0pLDB9LAorCSYobHZhbHVlc1s2NF0pLDB9LAogeyJQQkUtTUQ1LURFUyIsInBiZVdpdGhNRDVBbmRERVMtQ0JDIixOSURfcGJlV2l0aE1ENUFuZERFU19DQkMsOSwKLQkmKGx2YWx1ZXNbNzRdKSwwfSwKLXsiWDUwMCIsImRpcmVjdG9yeSBzZXJ2aWNlcyAoWC41MDApIixOSURfWDUwMCwxLCYobHZhbHVlc1s4M10pLDB9LAoteyJYNTA5IiwiWDUwOSIsTklEX1g1MDksMiwmKGx2YWx1ZXNbODRdKSwwfSwKLXsiQ04iLCJjb21tb25OYW1lIixOSURfY29tbW9uTmFtZSwzLCYobHZhbHVlc1s4Nl0pLDB9LAoteyJDIiwiY291bnRyeU5hbWUiLE5JRF9jb3VudHJ5TmFtZSwzLCYobHZhbHVlc1s4OV0pLDB9LAoteyJMIiwibG9jYWxpdHlOYW1lIixOSURfbG9jYWxpdHlOYW1lLDMsJihsdmFsdWVzWzkyXSksMH0sCi17IlNUIiwic3RhdGVPclByb3ZpbmNlTmFtZSIsTklEX3N0YXRlT3JQcm92aW5jZU5hbWUsMywmKGx2YWx1ZXNbOTVdKSwwfSwKLXsiTyIsIm9yZ2FuaXphdGlvbk5hbWUiLE5JRF9vcmdhbml6YXRpb25OYW1lLDMsJihsdmFsdWVzWzk4XSksMH0sCisJJihsdmFsdWVzWzczXSksMH0sCit7Ilg1MDAiLCJkaXJlY3Rvcnkgc2VydmljZXMgKFguNTAwKSIsTklEX1g1MDAsMSwmKGx2YWx1ZXNbODJdKSwwfSwKK3siWDUwOSIsIlg1MDkiLE5JRF9YNTA5LDIsJihsdmFsdWVzWzgzXSksMH0sCit7IkNOIiwiY29tbW9uTmFtZSIsTklEX2NvbW1vbk5hbWUsMywmKGx2YWx1ZXNbODVdKSwwfSwKK3siQyIsImNvdW50cnlOYW1lIixOSURfY291bnRyeU5hbWUsMywmKGx2YWx1ZXNbODhdKSwwfSwKK3siTCIsImxvY2FsaXR5TmFtZSIsTklEX2xvY2FsaXR5TmFtZSwzLCYobHZhbHVlc1s5MV0pLDB9LAoreyJTVCIsInN0YXRlT3JQcm92aW5jZU5hbWUiLE5JRF9zdGF0ZU9yUHJvdmluY2VOYW1lLDMsJihsdmFsdWVzWzk0XSksMH0sCit7Ik8iLCJvcmdhbml6YXRpb25OYW1lIixOSURfb3JnYW5pemF0aW9uTmFtZSwzLCYobHZhbHVlc1s5N10pLDB9LAogeyJPVSIsIm9yZ2FuaXphdGlvbmFsVW5pdE5hbWUiLE5JRF9vcmdhbml6YXRpb25hbFVuaXROYW1lLDMsCi0JJihsdmFsdWVzWzEwMV0pLDB9LAoteyJSU0EiLCJyc2EiLE5JRF9yc2EsNCwmKGx2YWx1ZXNbMTA0XSksMH0sCi17InBrY3M3IiwicGtjczciLE5JRF9wa2NzNyw4LCYobHZhbHVlc1sxMDhdKSwwfSwKLXsicGtjczctZGF0YSIsInBrY3M3LWRhdGEiLE5JRF9wa2NzN19kYXRhLDksJihsdmFsdWVzWzExNl0pLDB9LAorCSYobHZhbHVlc1sxMDBdKSwwfSwKK3siUlNBIiwicnNhIixOSURfcnNhLDQsJihsdmFsdWVzWzEwM10pLDB9LAoreyJwa2NzNyIsInBrY3M3IixOSURfcGtjczcsOCwmKGx2YWx1ZXNbMTA3XSksMH0sCit7InBrY3M3LWRhdGEiLCJwa2NzNy1kYXRhIixOSURfcGtjczdfZGF0YSw5LCYobHZhbHVlc1sxMTVdKSwwfSwKIHsicGtjczctc2lnbmVkRGF0YSIsInBrY3M3LXNpZ25lZERhdGEiLE5JRF9wa2NzN19zaWduZWQsOSwKLQkmKGx2YWx1ZXNbMTI1XSksMH0sCisJJihsdmFsdWVzWzEyNF0pLDB9LAogeyJwa2NzNy1lbnZlbG9wZWREYXRhIiwicGtjczctZW52ZWxvcGVkRGF0YSIsTklEX3BrY3M3X2VudmVsb3BlZCw5LAotCSYobHZhbHVlc1sxMzRdKSwwfSwKKwkmKGx2YWx1ZXNbMTMzXSksMH0sCiB7InBrY3M3LXNpZ25lZEFuZEVudmVsb3BlZERhdGEiLCJwa2NzNy1zaWduZWRBbmRFbnZlbG9wZWREYXRhIiwKLQlOSURfcGtjczdfc2lnbmVkQW5kRW52ZWxvcGVkLDksJihsdmFsdWVzWzE0M10pLDB9LAorCU5JRF9wa2NzN19zaWduZWRBbmRFbnZlbG9wZWQsOSwmKGx2YWx1ZXNbMTQyXSksMH0sCiB7InBrY3M3LWRpZ2VzdERhdGEiLCJwa2NzNy1kaWdlc3REYXRhIixOSURfcGtjczdfZGlnZXN0LDksCi0JJihsdmFsdWVzWzE1Ml0pLDB9LAorCSYobHZhbHVlc1sxNTFdKSwwfSwKIHsicGtjczctZW5jcnlwdGVkRGF0YSIsInBrY3M3LWVuY3J5cHRlZERhdGEiLE5JRF9wa2NzN19lbmNyeXB0ZWQsOSwKLQkmKGx2YWx1ZXNbMTYxXSksMH0sCi17InBrY3MzIiwicGtjczMiLE5JRF9wa2NzMyw4LCYobHZhbHVlc1sxNzBdKSwwfSwKKwkmKGx2YWx1ZXNbMTYwXSksMH0sCit7InBrY3MzIiwicGtjczMiLE5JRF9wa2NzMyw4LCYobHZhbHVlc1sxNjldKSwwfSwKIHsiZGhLZXlBZ3JlZW1lbnQiLCJkaEtleUFncmVlbWVudCIsTklEX2RoS2V5QWdyZWVtZW50LDksCi0JJihsdmFsdWVzWzE3OF0pLDB9LAoteyJERVMtRUNCIiwiZGVzLWVjYiIsTklEX2Rlc19lY2IsNSwmKGx2YWx1ZXNbMTg3XSksMH0sCi17IkRFUy1DRkIiLCJkZXMtY2ZiIixOSURfZGVzX2NmYjY0LDUsJihsdmFsdWVzWzE5Ml0pLDB9LAoteyJERVMtQ0JDIiwiZGVzLWNiYyIsTklEX2Rlc19jYmMsNSwmKGx2YWx1ZXNbMTk3XSksMH0sCi17IkRFUy1FREUiLCJkZXMtZWRlIixOSURfZGVzX2VkZV9lY2IsNSwmKGx2YWx1ZXNbMjAyXSksMH0sCisJJihsdmFsdWVzWzE3N10pLDB9LAoreyJERVMtRUNCIiwiZGVzLWVjYiIsTklEX2Rlc19lY2IsNSwmKGx2YWx1ZXNbMTg2XSksMH0sCit7IkRFUy1DRkIiLCJkZXMtY2ZiIixOSURfZGVzX2NmYjY0LDUsJihsdmFsdWVzWzE5MV0pLDB9LAoreyJERVMtQ0JDIiwiZGVzLWNiYyIsTklEX2Rlc19jYmMsNSwmKGx2YWx1ZXNbMTk2XSksMH0sCit7IkRFUy1FREUiLCJkZXMtZWRlIixOSURfZGVzX2VkZV9lY2IsNSwmKGx2YWx1ZXNbMjAxXSksMH0sCiB7IkRFUy1FREUzIiwiZGVzLWVkZTMiLE5JRF9kZXNfZWRlM19lY2IsMCxOVUxMLDB9LAoteyJJREVBLUNCQyIsImlkZWEtY2JjIixOSURfaWRlYV9jYmMsMTEsJihsdmFsdWVzWzIwN10pLDB9LAoreyJJREVBLUNCQyIsImlkZWEtY2JjIixOSURfaWRlYV9jYmMsMTEsJihsdmFsdWVzWzIwNl0pLDB9LAogeyJJREVBLUNGQiIsImlkZWEtY2ZiIixOSURfaWRlYV9jZmI2NCwwLE5VTEwsMH0sCiB7IklERUEtRUNCIiwiaWRlYS1lY2IiLE5JRF9pZGVhX2VjYiwwLE5VTEwsMH0sCi17IlJDMi1DQkMiLCJyYzItY2JjIixOSURfcmMyX2NiYyw4LCYobHZhbHVlc1syMThdKSwwfSwKK3siUkMyLUNCQyIsInJjMi1jYmMiLE5JRF9yYzJfY2JjLDgsJihsdmFsdWVzWzIxN10pLDB9LAogeyJSQzItRUNCIiwicmMyLWVjYiIsTklEX3JjMl9lY2IsMCxOVUxMLDB9LAogeyJSQzItQ0ZCIiwicmMyLWNmYiIsTklEX3JjMl9jZmI2NCwwLE5VTEwsMH0sCiB7IlJDMi1PRkIiLCJyYzItb2ZiIixOSURfcmMyX29mYjY0LDAsTlVMTCwwfSwKLXsiU0hBIiwic2hhIixOSURfc2hhLDUsJihsdmFsdWVzWzIyNl0pLDB9LAoreyJTSEEiLCJzaGEiLE5JRF9zaGEsNSwmKGx2YWx1ZXNbMjI1XSksMH0sCiB7IlJTQS1TSEEiLCJzaGFXaXRoUlNBRW5jcnlwdGlvbiIsTklEX3NoYVdpdGhSU0FFbmNyeXB0aW9uLDUsCi0JJihsdmFsdWVzWzIzMV0pLDB9LAorCSYobHZhbHVlc1syMzBdKSwwfSwKIHsiREVTLUVERS1DQkMiLCJkZXMtZWRlLWNiYyIsTklEX2Rlc19lZGVfY2JjLDAsTlVMTCwwfSwKLXsiREVTLUVERTMtQ0JDIiwiZGVzLWVkZTMtY2JjIixOSURfZGVzX2VkZTNfY2JjLDgsJihsdmFsdWVzWzIzNl0pLDB9LAoteyJERVMtT0ZCIiwiZGVzLW9mYiIsTklEX2Rlc19vZmI2NCw1LCYobHZhbHVlc1syNDRdKSwwfSwKK3siREVTLUVERTMtQ0JDIiwiZGVzLWVkZTMtY2JjIixOSURfZGVzX2VkZTNfY2JjLDgsJihsdmFsdWVzWzIzNV0pLDB9LAoreyJERVMtT0ZCIiwiZGVzLW9mYiIsTklEX2Rlc19vZmI2NCw1LCYobHZhbHVlc1syNDNdKSwwfSwKIHsiSURFQS1PRkIiLCJpZGVhLW9mYiIsTklEX2lkZWFfb2ZiNjQsMCxOVUxMLDB9LAoteyJwa2NzOSIsInBrY3M5IixOSURfcGtjczksOCwmKGx2YWx1ZXNbMjQ5XSksMH0sCit7InBrY3M5IiwicGtjczkiLE5JRF9wa2NzOSw4LCYobHZhbHVlc1syNDhdKSwwfSwKIHsiZW1haWxBZGRyZXNzIiwiZW1haWxBZGRyZXNzIixOSURfcGtjczlfZW1haWxBZGRyZXNzLDksCi0JJihsdmFsdWVzWzI1N10pLDB9LAorCSYobHZhbHVlc1syNTZdKSwwfSwKIHsidW5zdHJ1Y3R1cmVkTmFtZSIsInVuc3RydWN0dXJlZE5hbWUiLE5JRF9wa2NzOV91bnN0cnVjdHVyZWROYW1lLDksCi0JJihsdmFsdWVzWzI2Nl0pLDB9LAoteyJjb250ZW50VHlwZSIsImNvbnRlbnRUeXBlIixOSURfcGtjczlfY29udGVudFR5cGUsOSwmKGx2YWx1ZXNbMjc1XSksMH0sCisJJihsdmFsdWVzWzI2NV0pLDB9LAoreyJjb250ZW50VHlwZSIsImNvbnRlbnRUeXBlIixOSURfcGtjczlfY29udGVudFR5cGUsOSwmKGx2YWx1ZXNbMjc0XSksMH0sCiB7Im1lc3NhZ2VEaWdlc3QiLCJtZXNzYWdlRGlnZXN0IixOSURfcGtjczlfbWVzc2FnZURpZ2VzdCw5LAotCSYobHZhbHVlc1syODRdKSwwfSwKLXsic2lnbmluZ1RpbWUiLCJzaWduaW5nVGltZSIsTklEX3BrY3M5X3NpZ25pbmdUaW1lLDksJihsdmFsdWVzWzI5M10pLDB9LAorCSYobHZhbHVlc1syODNdKSwwfSwKK3sic2lnbmluZ1RpbWUiLCJzaWduaW5nVGltZSIsTklEX3BrY3M5X3NpZ25pbmdUaW1lLDksJihsdmFsdWVzWzI5Ml0pLDB9LAogeyJjb3VudGVyc2lnbmF0dXJlIiwiY291bnRlcnNpZ25hdHVyZSIsTklEX3BrY3M5X2NvdW50ZXJzaWduYXR1cmUsOSwKLQkmKGx2YWx1ZXNbMzAyXSksMH0sCisJJihsdmFsdWVzWzMwMV0pLDB9LAogeyJjaGFsbGVuZ2VQYXNzd29yZCIsImNoYWxsZW5nZVBhc3N3b3JkIixOSURfcGtjczlfY2hhbGxlbmdlUGFzc3dvcmQsCi0JOSwmKGx2YWx1ZXNbMzExXSksMH0sCisJOSwmKGx2YWx1ZXNbMzEwXSksMH0sCiB7InVuc3RydWN0dXJlZEFkZHJlc3MiLCJ1bnN0cnVjdHVyZWRBZGRyZXNzIiwKLQlOSURfcGtjczlfdW5zdHJ1Y3R1cmVkQWRkcmVzcyw5LCYobHZhbHVlc1szMjBdKSwwfSwKKwlOSURfcGtjczlfdW5zdHJ1Y3R1cmVkQWRkcmVzcyw5LCYobHZhbHVlc1szMTldKSwwfSwKIHsiZXh0ZW5kZWRDZXJ0aWZpY2F0ZUF0dHJpYnV0ZXMiLCJleHRlbmRlZENlcnRpZmljYXRlQXR0cmlidXRlcyIsCi0JTklEX3BrY3M5X2V4dENlcnRBdHRyaWJ1dGVzLDksJihsdmFsdWVzWzMyOV0pLDB9LAorCU5JRF9wa2NzOV9leHRDZXJ0QXR0cmlidXRlcyw5LCYobHZhbHVlc1szMjhdKSwwfSwKIHsiTmV0c2NhcGUiLCJOZXRzY2FwZSBDb21tdW5pY2F0aW9ucyBDb3JwLiIsTklEX25ldHNjYXBlLDcsCi0JJihsdmFsdWVzWzMzOF0pLDB9LAorCSYobHZhbHVlc1szMzddKSwwfSwKIHsibnNDZXJ0RXh0IiwiTmV0c2NhcGUgQ2VydGlmaWNhdGUgRXh0ZW5zaW9uIiwKLQlOSURfbmV0c2NhcGVfY2VydF9leHRlbnNpb24sOCwmKGx2YWx1ZXNbMzQ1XSksMH0sCisJTklEX25ldHNjYXBlX2NlcnRfZXh0ZW5zaW9uLDgsJihsdmFsdWVzWzM0NF0pLDB9LAogeyJuc0RhdGFUeXBlIiwiTmV0c2NhcGUgRGF0YSBUeXBlIixOSURfbmV0c2NhcGVfZGF0YV90eXBlLDgsCi0JJihsdmFsdWVzWzM1M10pLDB9LAorCSYobHZhbHVlc1szNTJdKSwwfSwKIHsiREVTLUVERS1DRkIiLCJkZXMtZWRlLWNmYiIsTklEX2Rlc19lZGVfY2ZiNjQsMCxOVUxMLDB9LAogeyJERVMtRURFMy1DRkIiLCJkZXMtZWRlMy1jZmIiLE5JRF9kZXNfZWRlM19jZmI2NCwwLE5VTEwsMH0sCiB7IkRFUy1FREUtT0ZCIiwiZGVzLWVkZS1vZmIiLE5JRF9kZXNfZWRlX29mYjY0LDAsTlVMTCwwfSwKIHsiREVTLUVERTMtT0ZCIiwiZGVzLWVkZTMtb2ZiIixOSURfZGVzX2VkZTNfb2ZiNjQsMCxOVUxMLDB9LAoteyJTSEExIiwic2hhMSIsTklEX3NoYTEsNSwmKGx2YWx1ZXNbMzYxXSksMH0sCit7IlNIQTEiLCJzaGExIixOSURfc2hhMSw1LCYobHZhbHVlc1szNjBdKSwwfSwKIHsiUlNBLVNIQTEiLCJzaGExV2l0aFJTQUVuY3J5cHRpb24iLE5JRF9zaGExV2l0aFJTQUVuY3J5cHRpb24sOSwKLQkmKGx2YWx1ZXNbMzY2XSksMH0sCi17IkRTQS1TSEEiLCJkc2FXaXRoU0hBIixOSURfZHNhV2l0aFNIQSw1LCYobHZhbHVlc1szNzVdKSwwfSwKLXsiRFNBLW9sZCIsImRzYUVuY3J5cHRpb24tb2xkIixOSURfZHNhXzIsNSwmKGx2YWx1ZXNbMzgwXSksMH0sCisJJihsdmFsdWVzWzM2NV0pLDB9LAoreyJEU0EtU0hBIiwiZHNhV2l0aFNIQSIsTklEX2RzYVdpdGhTSEEsNSwmKGx2YWx1ZXNbMzc0XSksMH0sCit7IkRTQS1vbGQiLCJkc2FFbmNyeXB0aW9uLW9sZCIsTklEX2RzYV8yLDUsJihsdmFsdWVzWzM3OV0pLDB9LAogeyJQQkUtU0hBMS1SQzItNjQiLCJwYmVXaXRoU0hBMUFuZFJDMi1DQkMiLE5JRF9wYmVXaXRoU0hBMUFuZFJDMl9DQkMsCi0JOSwmKGx2YWx1ZXNbMzg1XSksMH0sCi17IlBCS0RGMiIsIlBCS0RGMiIsTklEX2lkX3Bia2RmMiw5LCYobHZhbHVlc1szOTRdKSwwfSwKLXsiRFNBLVNIQTEtb2xkIiwiZHNhV2l0aFNIQTEtb2xkIixOSURfZHNhV2l0aFNIQTFfMiw1LCYobHZhbHVlc1s0MDNdKSwwfSwKKwk5LCYobHZhbHVlc1szODRdKSwwfSwKK3siUEJLREYyIiwiUEJLREYyIixOSURfaWRfcGJrZGYyLDksJihsdmFsdWVzWzM5M10pLDB9LAoreyJEU0EtU0hBMS1vbGQiLCJkc2FXaXRoU0hBMS1vbGQiLE5JRF9kc2FXaXRoU0hBMV8yLDUsJihsdmFsdWVzWzQwMl0pLDB9LAogeyJuc0NlcnRUeXBlIiwiTmV0c2NhcGUgQ2VydCBUeXBlIixOSURfbmV0c2NhcGVfY2VydF90eXBlLDksCi0JJihsdmFsdWVzWzQwOF0pLDB9LAorCSYobHZhbHVlc1s0MDddKSwwfSwKIHsibnNCYXNlVXJsIiwiTmV0c2NhcGUgQmFzZSBVcmwiLE5JRF9uZXRzY2FwZV9iYXNlX3VybCw5LAotCSYobHZhbHVlc1s0MTddKSwwfSwKKwkmKGx2YWx1ZXNbNDE2XSksMH0sCiB7Im5zUmV2b2NhdGlvblVybCIsIk5ldHNjYXBlIFJldm9jYXRpb24gVXJsIiwKLQlOSURfbmV0c2NhcGVfcmV2b2NhdGlvbl91cmwsOSwmKGx2YWx1ZXNbNDI2XSksMH0sCisJTklEX25ldHNjYXBlX3Jldm9jYXRpb25fdXJsLDksJihsdmFsdWVzWzQyNV0pLDB9LAogeyJuc0NhUmV2b2NhdGlvblVybCIsIk5ldHNjYXBlIENBIFJldm9jYXRpb24gVXJsIiwKLQlOSURfbmV0c2NhcGVfY2FfcmV2b2NhdGlvbl91cmwsOSwmKGx2YWx1ZXNbNDM1XSksMH0sCisJTklEX25ldHNjYXBlX2NhX3Jldm9jYXRpb25fdXJsLDksJihsdmFsdWVzWzQzNF0pLDB9LAogeyJuc1JlbmV3YWxVcmwiLCJOZXRzY2FwZSBSZW5ld2FsIFVybCIsTklEX25ldHNjYXBlX3JlbmV3YWxfdXJsLDksCi0JJihsdmFsdWVzWzQ0NF0pLDB9LAorCSYobHZhbHVlc1s0NDNdKSwwfSwKIHsibnNDYVBvbGljeVVybCIsIk5ldHNjYXBlIENBIFBvbGljeSBVcmwiLE5JRF9uZXRzY2FwZV9jYV9wb2xpY3lfdXJsLAotCTksJihsdmFsdWVzWzQ1M10pLDB9LAorCTksJihsdmFsdWVzWzQ1Ml0pLDB9LAogeyJuc1NzbFNlcnZlck5hbWUiLCJOZXRzY2FwZSBTU0wgU2VydmVyIE5hbWUiLAotCU5JRF9uZXRzY2FwZV9zc2xfc2VydmVyX25hbWUsOSwmKGx2YWx1ZXNbNDYyXSksMH0sCi17Im5zQ29tbWVudCIsIk5ldHNjYXBlIENvbW1lbnQiLE5JRF9uZXRzY2FwZV9jb21tZW50LDksJihsdmFsdWVzWzQ3MV0pLDB9LAorCU5JRF9uZXRzY2FwZV9zc2xfc2VydmVyX25hbWUsOSwmKGx2YWx1ZXNbNDYxXSksMH0sCit7Im5zQ29tbWVudCIsIk5ldHNjYXBlIENvbW1lbnQiLE5JRF9uZXRzY2FwZV9jb21tZW50LDksJihsdmFsdWVzWzQ3MF0pLDB9LAogeyJuc0NlcnRTZXF1ZW5jZSIsIk5ldHNjYXBlIENlcnRpZmljYXRlIFNlcXVlbmNlIiwKLQlOSURfbmV0c2NhcGVfY2VydF9zZXF1ZW5jZSw5LCYobHZhbHVlc1s0ODBdKSwwfSwKKwlOSURfbmV0c2NhcGVfY2VydF9zZXF1ZW5jZSw5LCYobHZhbHVlc1s0NzldKSwwfSwKIHsiREVTWC1DQkMiLCJkZXN4LWNiYyIsTklEX2Rlc3hfY2JjLDAsTlVMTCwwfSwKLXsiaWQtY2UiLCJpZC1jZSIsTklEX2lkX2NlLDIsJihsdmFsdWVzWzQ4OV0pLDB9LAoreyJpZC1jZSIsImlkLWNlIixOSURfaWRfY2UsMiwmKGx2YWx1ZXNbNDg4XSksMH0sCiB7InN1YmplY3RLZXlJZGVudGlmaWVyIiwiWDUwOXYzIFN1YmplY3QgS2V5IElkZW50aWZpZXIiLAotCU5JRF9zdWJqZWN0X2tleV9pZGVudGlmaWVyLDMsJihsdmFsdWVzWzQ5MV0pLDB9LAoteyJrZXlVc2FnZSIsIlg1MDl2MyBLZXkgVXNhZ2UiLE5JRF9rZXlfdXNhZ2UsMywmKGx2YWx1ZXNbNDk0XSksMH0sCisJTklEX3N1YmplY3Rfa2V5X2lkZW50aWZpZXIsMywmKGx2YWx1ZXNbNDkwXSksMH0sCit7ImtleVVzYWdlIiwiWDUwOXYzIEtleSBVc2FnZSIsTklEX2tleV91c2FnZSwzLCYobHZhbHVlc1s0OTNdKSwwfSwKIHsicHJpdmF0ZUtleVVzYWdlUGVyaW9kIiwiWDUwOXYzIFByaXZhdGUgS2V5IFVzYWdlIFBlcmlvZCIsCi0JTklEX3ByaXZhdGVfa2V5X3VzYWdlX3BlcmlvZCwzLCYobHZhbHVlc1s0OTddKSwwfSwKKwlOSURfcHJpdmF0ZV9rZXlfdXNhZ2VfcGVyaW9kLDMsJihsdmFsdWVzWzQ5Nl0pLDB9LAogeyJzdWJqZWN0QWx0TmFtZSIsIlg1MDl2MyBTdWJqZWN0IEFsdGVybmF0aXZlIE5hbWUiLAotCU5JRF9zdWJqZWN0X2FsdF9uYW1lLDMsJihsdmFsdWVzWzUwMF0pLDB9LAorCU5JRF9zdWJqZWN0X2FsdF9uYW1lLDMsJihsdmFsdWVzWzQ5OV0pLDB9LAogeyJpc3N1ZXJBbHROYW1lIiwiWDUwOXYzIElzc3VlciBBbHRlcm5hdGl2ZSBOYW1lIixOSURfaXNzdWVyX2FsdF9uYW1lLAotCTMsJihsdmFsdWVzWzUwM10pLDB9LAorCTMsJihsdmFsdWVzWzUwMl0pLDB9LAogeyJiYXNpY0NvbnN0cmFpbnRzIiwiWDUwOXYzIEJhc2ljIENvbnN0cmFpbnRzIixOSURfYmFzaWNfY29uc3RyYWludHMsCi0JMywmKGx2YWx1ZXNbNTA2XSksMH0sCi17ImNybE51bWJlciIsIlg1MDl2MyBDUkwgTnVtYmVyIixOSURfY3JsX251bWJlciwzLCYobHZhbHVlc1s1MDldKSwwfSwKKwkzLCYobHZhbHVlc1s1MDVdKSwwfSwKK3siY3JsTnVtYmVyIiwiWDUwOXYzIENSTCBOdW1iZXIiLE5JRF9jcmxfbnVtYmVyLDMsJihsdmFsdWVzWzUwOF0pLDB9LAogeyJjZXJ0aWZpY2F0ZVBvbGljaWVzIiwiWDUwOXYzIENlcnRpZmljYXRlIFBvbGljaWVzIiwKLQlOSURfY2VydGlmaWNhdGVfcG9saWNpZXMsMywmKGx2YWx1ZXNbNTEyXSksMH0sCisJTklEX2NlcnRpZmljYXRlX3BvbGljaWVzLDMsJihsdmFsdWVzWzUxMV0pLDB9LAogeyJhdXRob3JpdHlLZXlJZGVudGlmaWVyIiwiWDUwOXYzIEF1dGhvcml0eSBLZXkgSWRlbnRpZmllciIsCi0JTklEX2F1dGhvcml0eV9rZXlfaWRlbnRpZmllciwzLCYobHZhbHVlc1s1MTVdKSwwfSwKLXsiQkYtQ0JDIiwiYmYtY2JjIixOSURfYmZfY2JjLDksJihsdmFsdWVzWzUxOF0pLDB9LAorCU5JRF9hdXRob3JpdHlfa2V5X2lkZW50aWZpZXIsMywmKGx2YWx1ZXNbNTE0XSksMH0sCit7IkJGLUNCQyIsImJmLWNiYyIsTklEX2JmX2NiYyw5LCYobHZhbHVlc1s1MTddKSwwfSwKIHsiQkYtRUNCIiwiYmYtZWNiIixOSURfYmZfZWNiLDAsTlVMTCwwfSwKIHsiQkYtQ0ZCIiwiYmYtY2ZiIixOSURfYmZfY2ZiNjQsMCxOVUxMLDB9LAogeyJCRi1PRkIiLCJiZi1vZmIiLE5JRF9iZl9vZmI2NCwwLE5VTEwsMH0sCi17Ik1EQzIiLCJtZGMyIixOSURfbWRjMiw0LCYobHZhbHVlc1s1MjddKSwwfSwKLXsiUlNBLU1EQzIiLCJtZGMyV2l0aFJTQSIsTklEX21kYzJXaXRoUlNBLDQsJihsdmFsdWVzWzUzMV0pLDB9LAoreyJNREMyIiwibWRjMiIsTklEX21kYzIsNCwmKGx2YWx1ZXNbNTI2XSksMH0sCit7IlJTQS1NREMyIiwibWRjMldpdGhSU0EiLE5JRF9tZGMyV2l0aFJTQSw0LCYobHZhbHVlc1s1MzBdKSwwfSwKIHsiUkM0LTQwIiwicmM0LTQwIixOSURfcmM0XzQwLDAsTlVMTCwwfSwKIHsiUkMyLTQwLUNCQyIsInJjMi00MC1jYmMiLE5JRF9yYzJfNDBfY2JjLDAsTlVMTCwwfSwKLXsiR04iLCJnaXZlbk5hbWUiLE5JRF9naXZlbk5hbWUsMywmKGx2YWx1ZXNbNTM1XSksMH0sCi17IlNOIiwic3VybmFtZSIsTklEX3N1cm5hbWUsMywmKGx2YWx1ZXNbNTM4XSksMH0sCi17ImluaXRpYWxzIiwiaW5pdGlhbHMiLE5JRF9pbml0aWFscywzLCYobHZhbHVlc1s1NDFdKSwwfSwKK3siR04iLCJnaXZlbk5hbWUiLE5JRF9naXZlbk5hbWUsMywmKGx2YWx1ZXNbNTM0XSksMH0sCit7IlNOIiwic3VybmFtZSIsTklEX3N1cm5hbWUsMywmKGx2YWx1ZXNbNTM3XSksMH0sCit7ImluaXRpYWxzIiwiaW5pdGlhbHMiLE5JRF9pbml0aWFscywzLCYobHZhbHVlc1s1NDBdKSwwfSwKIHtOVUxMLE5VTEwsTklEX3VuZGVmLDAsTlVMTCwwfSwKIHsiY3JsRGlzdHJpYnV0aW9uUG9pbnRzIiwiWDUwOXYzIENSTCBEaXN0cmlidXRpb24gUG9pbnRzIiwKLQlOSURfY3JsX2Rpc3RyaWJ1dGlvbl9wb2ludHMsMywmKGx2YWx1ZXNbNTQ0XSksMH0sCi17IlJTQS1OUC1NRDUiLCJtZDVXaXRoUlNBIixOSURfbWQ1V2l0aFJTQSw1LCYobHZhbHVlc1s1NDddKSwwfSwKLXsic2VyaWFsTnVtYmVyIiwic2VyaWFsTnVtYmVyIixOSURfc2VyaWFsTnVtYmVyLDMsJihsdmFsdWVzWzU1Ml0pLDB9LAoteyJ0aXRsZSIsInRpdGxlIixOSURfdGl0bGUsMywmKGx2YWx1ZXNbNTU1XSksMH0sCi17ImRlc2NyaXB0aW9uIiwiZGVzY3JpcHRpb24iLE5JRF9kZXNjcmlwdGlvbiwzLCYobHZhbHVlc1s1NThdKSwwfSwKLXsiQ0FTVDUtQ0JDIiwiY2FzdDUtY2JjIixOSURfY2FzdDVfY2JjLDksJihsdmFsdWVzWzU2MV0pLDB9LAorCU5JRF9jcmxfZGlzdHJpYnV0aW9uX3BvaW50cywzLCYobHZhbHVlc1s1NDNdKSwwfSwKK3siUlNBLU5QLU1ENSIsIm1kNVdpdGhSU0EiLE5JRF9tZDVXaXRoUlNBLDUsJihsdmFsdWVzWzU0Nl0pLDB9LAoreyJzZXJpYWxOdW1iZXIiLCJzZXJpYWxOdW1iZXIiLE5JRF9zZXJpYWxOdW1iZXIsMywmKGx2YWx1ZXNbNTUxXSksMH0sCit7InRpdGxlIiwidGl0bGUiLE5JRF90aXRsZSwzLCYobHZhbHVlc1s1NTRdKSwwfSwKK3siZGVzY3JpcHRpb24iLCJkZXNjcmlwdGlvbiIsTklEX2Rlc2NyaXB0aW9uLDMsJihsdmFsdWVzWzU1N10pLDB9LAoreyJDQVNUNS1DQkMiLCJjYXN0NS1jYmMiLE5JRF9jYXN0NV9jYmMsOSwmKGx2YWx1ZXNbNTYwXSksMH0sCiB7IkNBU1Q1LUVDQiIsImNhc3Q1LWVjYiIsTklEX2Nhc3Q1X2VjYiwwLE5VTEwsMH0sCiB7IkNBU1Q1LUNGQiIsImNhc3Q1LWNmYiIsTklEX2Nhc3Q1X2NmYjY0LDAsTlVMTCwwfSwKIHsiQ0FTVDUtT0ZCIiwiY2FzdDUtb2ZiIixOSURfY2FzdDVfb2ZiNjQsMCxOVUxMLDB9LAogeyJwYmVXaXRoTUQ1QW5kQ2FzdDVDQkMiLCJwYmVXaXRoTUQ1QW5kQ2FzdDVDQkMiLAotCU5JRF9wYmVXaXRoTUQ1QW5kQ2FzdDVfQ0JDLDksJihsdmFsdWVzWzU3MF0pLDB9LAoteyJEU0EtU0hBMSIsImRzYVdpdGhTSEExIixOSURfZHNhV2l0aFNIQTEsNywmKGx2YWx1ZXNbNTc5XSksMH0sCisJTklEX3BiZVdpdGhNRDVBbmRDYXN0NV9DQkMsOSwmKGx2YWx1ZXNbNTY5XSksMH0sCit7IkRTQS1TSEExIiwiZHNhV2l0aFNIQTEiLE5JRF9kc2FXaXRoU0hBMSw3LCYobHZhbHVlc1s1NzhdKSwwfSwKIHsiTUQ1LVNIQTEiLCJtZDUtc2hhMSIsTklEX21kNV9zaGExLDAsTlVMTCwwfSwKLXsiUlNBLVNIQTEtMiIsInNoYTFXaXRoUlNBIixOSURfc2hhMVdpdGhSU0EsNSwmKGx2YWx1ZXNbNTg2XSksMH0sCi17IkRTQSIsImRzYUVuY3J5cHRpb24iLE5JRF9kc2EsNywmKGx2YWx1ZXNbNTkxXSksMH0sCi17IlJJUEVNRDE2MCIsInJpcGVtZDE2MCIsTklEX3JpcGVtZDE2MCw1LCYobHZhbHVlc1s1OThdKSwwfSwKK3siUlNBLVNIQTEtMiIsInNoYTFXaXRoUlNBIixOSURfc2hhMVdpdGhSU0EsNSwmKGx2YWx1ZXNbNTg1XSksMH0sCit7IkRTQSIsImRzYUVuY3J5cHRpb24iLE5JRF9kc2EsNywmKGx2YWx1ZXNbNTkwXSksMH0sCit7IlJJUEVNRDE2MCIsInJpcGVtZDE2MCIsTklEX3JpcGVtZDE2MCw1LCYobHZhbHVlc1s1OTddKSwwfSwKIHtOVUxMLE5VTEwsTklEX3VuZGVmLDAsTlVMTCwwfSwKIHsiUlNBLVJJUEVNRDE2MCIsInJpcGVtZDE2MFdpdGhSU0EiLE5JRF9yaXBlbWQxNjBXaXRoUlNBLDYsCi0JJihsdmFsdWVzWzYwM10pLDB9LAoteyJSQzUtQ0JDIiwicmM1LWNiYyIsTklEX3JjNV9jYmMsOCwmKGx2YWx1ZXNbNjA5XSksMH0sCisJJihsdmFsdWVzWzYwMl0pLDB9LAoreyJSQzUtQ0JDIiwicmM1LWNiYyIsTklEX3JjNV9jYmMsOCwmKGx2YWx1ZXNbNjA4XSksMH0sCiB7IlJDNS1FQ0IiLCJyYzUtZWNiIixOSURfcmM1X2VjYiwwLE5VTEwsMH0sCiB7IlJDNS1DRkIiLCJyYzUtY2ZiIixOSURfcmM1X2NmYjY0LDAsTlVMTCwwfSwKIHsiUkM1LU9GQiIsInJjNS1vZmIiLE5JRF9yYzVfb2ZiNjQsMCxOVUxMLDB9LAoteyJSTEUiLCJydW4gbGVuZ3RoIGNvbXByZXNzaW9uIixOSURfcmxlX2NvbXByZXNzaW9uLDYsJihsdmFsdWVzWzYxN10pLDB9LAoteyJaTElCIiwiemxpYiBjb21wcmVzc2lvbiIsTklEX3psaWJfY29tcHJlc3Npb24sMTEsJihsdmFsdWVzWzYyM10pLDB9LAoreyJSTEUiLCJydW4gbGVuZ3RoIGNvbXByZXNzaW9uIixOSURfcmxlX2NvbXByZXNzaW9uLDYsJihsdmFsdWVzWzYxNl0pLDB9LAoreyJaTElCIiwiemxpYiBjb21wcmVzc2lvbiIsTklEX3psaWJfY29tcHJlc3Npb24sMTEsJihsdmFsdWVzWzYyMl0pLDB9LAogeyJleHRlbmRlZEtleVVzYWdlIiwiWDUwOXYzIEV4dGVuZGVkIEtleSBVc2FnZSIsTklEX2V4dF9rZXlfdXNhZ2UsMywKLQkmKGx2YWx1ZXNbNjM0XSksMH0sCi17IlBLSVgiLCJQS0lYIixOSURfaWRfcGtpeCw2LCYobHZhbHVlc1s2MzddKSwwfSwKLXsiaWQta3AiLCJpZC1rcCIsTklEX2lkX2twLDcsJihsdmFsdWVzWzY0M10pLDB9LAorCSYobHZhbHVlc1s2MzNdKSwwfSwKK3siUEtJWCIsIlBLSVgiLE5JRF9pZF9wa2l4LDYsJihsdmFsdWVzWzYzNl0pLDB9LAoreyJpZC1rcCIsImlkLWtwIixOSURfaWRfa3AsNywmKGx2YWx1ZXNbNjQyXSksMH0sCiB7InNlcnZlckF1dGgiLCJUTFMgV2ViIFNlcnZlciBBdXRoZW50aWNhdGlvbiIsTklEX3NlcnZlcl9hdXRoLDgsCi0JJihsdmFsdWVzWzY1MF0pLDB9LAorCSYobHZhbHVlc1s2NDldKSwwfSwKIHsiY2xpZW50QXV0aCIsIlRMUyBXZWIgQ2xpZW50IEF1dGhlbnRpY2F0aW9uIixOSURfY2xpZW50X2F1dGgsOCwKLQkmKGx2YWx1ZXNbNjU4XSksMH0sCi17ImNvZGVTaWduaW5nIiwiQ29kZSBTaWduaW5nIixOSURfY29kZV9zaWduLDgsJihsdmFsdWVzWzY2Nl0pLDB9LAorCSYobHZhbHVlc1s2NTddKSwwfSwKK3siY29kZVNpZ25pbmciLCJDb2RlIFNpZ25pbmciLE5JRF9jb2RlX3NpZ24sOCwmKGx2YWx1ZXNbNjY1XSksMH0sCiB7ImVtYWlsUHJvdGVjdGlvbiIsIkUtbWFpbCBQcm90ZWN0aW9uIixOSURfZW1haWxfcHJvdGVjdCw4LAotCSYobHZhbHVlc1s2NzRdKSwwfSwKLXsidGltZVN0YW1waW5nIiwiVGltZSBTdGFtcGluZyIsTklEX3RpbWVfc3RhbXAsOCwmKGx2YWx1ZXNbNjgyXSksMH0sCisJJihsdmFsdWVzWzY3M10pLDB9LAoreyJ0aW1lU3RhbXBpbmciLCJUaW1lIFN0YW1waW5nIixOSURfdGltZV9zdGFtcCw4LCYobHZhbHVlc1s2ODFdKSwwfSwKIHsibXNDb2RlSW5kIiwiTWljcm9zb2Z0IEluZGl2aWR1YWwgQ29kZSBTaWduaW5nIixOSURfbXNfY29kZV9pbmQsMTAsCi0JJihsdmFsdWVzWzY5MF0pLDB9LAorCSYobHZhbHVlc1s2ODldKSwwfSwKIHsibXNDb2RlQ29tIiwiTWljcm9zb2Z0IENvbW1lcmNpYWwgQ29kZSBTaWduaW5nIixOSURfbXNfY29kZV9jb20sMTAsCi0JJihsdmFsdWVzWzcwMF0pLDB9LAorCSYobHZhbHVlc1s2OTldKSwwfSwKIHsibXNDVExTaWduIiwiTWljcm9zb2Z0IFRydXN0IExpc3QgU2lnbmluZyIsTklEX21zX2N0bF9zaWduLDEwLAotCSYobHZhbHVlc1s3MTBdKSwwfSwKLXsibXNTR0MiLCJNaWNyb3NvZnQgU2VydmVyIEdhdGVkIENyeXB0byIsTklEX21zX3NnYywxMCwmKGx2YWx1ZXNbNzIwXSksMH0sCisJJihsdmFsdWVzWzcwOV0pLDB9LAoreyJtc1NHQyIsIk1pY3Jvc29mdCBTZXJ2ZXIgR2F0ZWQgQ3J5cHRvIixOSURfbXNfc2djLDEwLCYobHZhbHVlc1s3MTldKSwwfSwKIHsibXNFRlMiLCJNaWNyb3NvZnQgRW5jcnlwdGVkIEZpbGUgU3lzdGVtIixOSURfbXNfZWZzLDEwLAotCSYobHZhbHVlc1s3MzBdKSwwfSwKLXsibnNTR0MiLCJOZXRzY2FwZSBTZXJ2ZXIgR2F0ZWQgQ3J5cHRvIixOSURfbnNfc2djLDksJihsdmFsdWVzWzc0MF0pLDB9LAorCSYobHZhbHVlc1s3MjldKSwwfSwKK3sibnNTR0MiLCJOZXRzY2FwZSBTZXJ2ZXIgR2F0ZWQgQ3J5cHRvIixOSURfbnNfc2djLDksJihsdmFsdWVzWzczOV0pLDB9LAogeyJkZWx0YUNSTCIsIlg1MDl2MyBEZWx0YSBDUkwgSW5kaWNhdG9yIixOSURfZGVsdGFfY3JsLDMsCi0JJihsdmFsdWVzWzc0OV0pLDB9LAoteyJDUkxSZWFzb24iLCJYNTA5djMgQ1JMIFJlYXNvbiBDb2RlIixOSURfY3JsX3JlYXNvbiwzLCYobHZhbHVlc1s3NTJdKSwwfSwKKwkmKGx2YWx1ZXNbNzQ4XSksMH0sCit7IkNSTFJlYXNvbiIsIlg1MDl2MyBDUkwgUmVhc29uIENvZGUiLE5JRF9jcmxfcmVhc29uLDMsJihsdmFsdWVzWzc1MV0pLDB9LAogeyJpbnZhbGlkaXR5RGF0ZSIsIkludmFsaWRpdHkgRGF0ZSIsTklEX2ludmFsaWRpdHlfZGF0ZSwzLAotCSYobHZhbHVlc1s3NTVdKSwwfSwKLXsiU1hOZXRJRCIsIlN0cm9uZyBFeHRyYW5ldCBJRCIsTklEX3N4bmV0LDUsJihsdmFsdWVzWzc1OF0pLDB9LAorCSYobHZhbHVlc1s3NTRdKSwwfSwKK3siU1hOZXRJRCIsIlN0cm9uZyBFeHRyYW5ldCBJRCIsTklEX3N4bmV0LDUsJihsdmFsdWVzWzc1N10pLDB9LAogeyJQQkUtU0hBMS1SQzQtMTI4IiwicGJlV2l0aFNIQTFBbmQxMjhCaXRSQzQiLAotCU5JRF9wYmVfV2l0aFNIQTFBbmQxMjhCaXRSQzQsMTAsJihsdmFsdWVzWzc2M10pLDB9LAorCU5JRF9wYmVfV2l0aFNIQTFBbmQxMjhCaXRSQzQsMTAsJihsdmFsdWVzWzc2Ml0pLDB9LAogeyJQQkUtU0hBMS1SQzQtNDAiLCJwYmVXaXRoU0hBMUFuZDQwQml0UkM0IiwKLQlOSURfcGJlX1dpdGhTSEExQW5kNDBCaXRSQzQsMTAsJihsdmFsdWVzWzc3M10pLDB9LAorCU5JRF9wYmVfV2l0aFNIQTFBbmQ0MEJpdFJDNCwxMCwmKGx2YWx1ZXNbNzcyXSksMH0sCiB7IlBCRS1TSEExLTNERVMiLCJwYmVXaXRoU0hBMUFuZDMtS2V5VHJpcGxlREVTLUNCQyIsCi0JTklEX3BiZV9XaXRoU0hBMUFuZDNfS2V5X1RyaXBsZURFU19DQkMsMTAsJihsdmFsdWVzWzc4M10pLDB9LAorCU5JRF9wYmVfV2l0aFNIQTFBbmQzX0tleV9UcmlwbGVERVNfQ0JDLDEwLCYobHZhbHVlc1s3ODJdKSwwfSwKIHsiUEJFLVNIQTEtMkRFUyIsInBiZVdpdGhTSEExQW5kMi1LZXlUcmlwbGVERVMtQ0JDIiwKLQlOSURfcGJlX1dpdGhTSEExQW5kMl9LZXlfVHJpcGxlREVTX0NCQywxMCwmKGx2YWx1ZXNbNzkzXSksMH0sCisJTklEX3BiZV9XaXRoU0hBMUFuZDJfS2V5X1RyaXBsZURFU19DQkMsMTAsJihsdmFsdWVzWzc5Ml0pLDB9LAogeyJQQkUtU0hBMS1SQzItMTI4IiwicGJlV2l0aFNIQTFBbmQxMjhCaXRSQzItQ0JDIiwKLQlOSURfcGJlX1dpdGhTSEExQW5kMTI4Qml0UkMyX0NCQywxMCwmKGx2YWx1ZXNbODAzXSksMH0sCisJTklEX3BiZV9XaXRoU0hBMUFuZDEyOEJpdFJDMl9DQkMsMTAsJihsdmFsdWVzWzgwMl0pLDB9LAogeyJQQkUtU0hBMS1SQzItNDAiLCJwYmVXaXRoU0hBMUFuZDQwQml0UkMyLUNCQyIsCi0JTklEX3BiZV9XaXRoU0hBMUFuZDQwQml0UkMyX0NCQywxMCwmKGx2YWx1ZXNbODEzXSksMH0sCi17ImtleUJhZyIsImtleUJhZyIsTklEX2tleUJhZywxMSwmKGx2YWx1ZXNbODIzXSksMH0sCisJTklEX3BiZV9XaXRoU0hBMUFuZDQwQml0UkMyX0NCQywxMCwmKGx2YWx1ZXNbODEyXSksMH0sCit7ImtleUJhZyIsImtleUJhZyIsTklEX2tleUJhZywxMSwmKGx2YWx1ZXNbODIyXSksMH0sCiB7InBrY3M4U2hyb3VkZWRLZXlCYWciLCJwa2NzOFNocm91ZGVkS2V5QmFnIixOSURfcGtjczhTaHJvdWRlZEtleUJhZywKLQkxMSwmKGx2YWx1ZXNbODM0XSksMH0sCi17ImNlcnRCYWciLCJjZXJ0QmFnIixOSURfY2VydEJhZywxMSwmKGx2YWx1ZXNbODQ1XSksMH0sCi17ImNybEJhZyIsImNybEJhZyIsTklEX2NybEJhZywxMSwmKGx2YWx1ZXNbODU2XSksMH0sCi17InNlY3JldEJhZyIsInNlY3JldEJhZyIsTklEX3NlY3JldEJhZywxMSwmKGx2YWx1ZXNbODY3XSksMH0sCisJMTEsJihsdmFsdWVzWzgzM10pLDB9LAoreyJjZXJ0QmFnIiwiY2VydEJhZyIsTklEX2NlcnRCYWcsMTEsJihsdmFsdWVzWzg0NF0pLDB9LAoreyJjcmxCYWciLCJjcmxCYWciLE5JRF9jcmxCYWcsMTEsJihsdmFsdWVzWzg1NV0pLDB9LAoreyJzZWNyZXRCYWciLCJzZWNyZXRCYWciLE5JRF9zZWNyZXRCYWcsMTEsJihsdmFsdWVzWzg2Nl0pLDB9LAogeyJzYWZlQ29udGVudHNCYWciLCJzYWZlQ29udGVudHNCYWciLE5JRF9zYWZlQ29udGVudHNCYWcsMTEsCi0JJihsdmFsdWVzWzg3OF0pLDB9LAoteyJmcmllbmRseU5hbWUiLCJmcmllbmRseU5hbWUiLE5JRF9mcmllbmRseU5hbWUsOSwmKGx2YWx1ZXNbODg5XSksMH0sCi17ImxvY2FsS2V5SUQiLCJsb2NhbEtleUlEIixOSURfbG9jYWxLZXlJRCw5LCYobHZhbHVlc1s4OThdKSwwfSwKKwkmKGx2YWx1ZXNbODc3XSksMH0sCit7ImZyaWVuZGx5TmFtZSIsImZyaWVuZGx5TmFtZSIsTklEX2ZyaWVuZGx5TmFtZSw5LCYobHZhbHVlc1s4ODhdKSwwfSwKK3sibG9jYWxLZXlJRCIsImxvY2FsS2V5SUQiLE5JRF9sb2NhbEtleUlELDksJihsdmFsdWVzWzg5N10pLDB9LAogeyJ4NTA5Q2VydGlmaWNhdGUiLCJ4NTA5Q2VydGlmaWNhdGUiLE5JRF94NTA5Q2VydGlmaWNhdGUsMTAsCi0JJihsdmFsdWVzWzkwN10pLDB9LAorCSYobHZhbHVlc1s5MDZdKSwwfSwKIHsic2RzaUNlcnRpZmljYXRlIiwic2RzaUNlcnRpZmljYXRlIixOSURfc2RzaUNlcnRpZmljYXRlLDEwLAotCSYobHZhbHVlc1s5MTddKSwwfSwKLXsieDUwOUNybCIsIng1MDlDcmwiLE5JRF94NTA5Q3JsLDEwLCYobHZhbHVlc1s5MjddKSwwfSwKLXsiUEJFUzIiLCJQQkVTMiIsTklEX3BiZXMyLDksJihsdmFsdWVzWzkzN10pLDB9LAoteyJQQk1BQzEiLCJQQk1BQzEiLE5JRF9wYm1hYzEsOSwmKGx2YWx1ZXNbOTQ2XSksMH0sCi17ImhtYWNXaXRoU0hBMSIsImhtYWNXaXRoU0hBMSIsTklEX2htYWNXaXRoU0hBMSw4LCYobHZhbHVlc1s5NTVdKSwwfSwKLXsiaWQtcXQtY3BzIiwiUG9saWN5IFF1YWxpZmllciBDUFMiLE5JRF9pZF9xdF9jcHMsOCwmKGx2YWx1ZXNbOTYzXSksMH0sCisJJihsdmFsdWVzWzkxNl0pLDB9LAoreyJ4NTA5Q3JsIiwieDUwOUNybCIsTklEX3g1MDlDcmwsMTAsJihsdmFsdWVzWzkyNl0pLDB9LAoreyJQQkVTMiIsIlBCRVMyIixOSURfcGJlczIsOSwmKGx2YWx1ZXNbOTM2XSksMH0sCit7IlBCTUFDMSIsIlBCTUFDMSIsTklEX3BibWFjMSw5LCYobHZhbHVlc1s5NDVdKSwwfSwKK3siaG1hY1dpdGhTSEExIiwiaG1hY1dpdGhTSEExIixOSURfaG1hY1dpdGhTSEExLDgsJihsdmFsdWVzWzk1NF0pLDB9LAoreyJpZC1xdC1jcHMiLCJQb2xpY3kgUXVhbGlmaWVyIENQUyIsTklEX2lkX3F0X2Nwcyw4LCYobHZhbHVlc1s5NjJdKSwwfSwKIHsiaWQtcXQtdW5vdGljZSIsIlBvbGljeSBRdWFsaWZpZXIgVXNlciBOb3RpY2UiLE5JRF9pZF9xdF91bm90aWNlLDgsCi0JJihsdmFsdWVzWzk3MV0pLDB9LAorCSYobHZhbHVlc1s5NzBdKSwwfSwKIHsiUkMyLTY0LUNCQyIsInJjMi02NC1jYmMiLE5JRF9yYzJfNjRfY2JjLDAsTlVMTCwwfSwKIHsiU01JTUUtQ0FQUyIsIlMvTUlNRSBDYXBhYmlsaXRpZXMiLE5JRF9TTUlNRUNhcGFiaWxpdGllcyw5LAotCSYobHZhbHVlc1s5NzldKSwwfSwKKwkmKGx2YWx1ZXNbOTc4XSksMH0sCiB7IlBCRS1NRDItUkMyLTY0IiwicGJlV2l0aE1EMkFuZFJDMi1DQkMiLE5JRF9wYmVXaXRoTUQyQW5kUkMyX0NCQyw5LAotCSYobHZhbHVlc1s5ODhdKSwwfSwKKwkmKGx2YWx1ZXNbOTg3XSksMH0sCiB7IlBCRS1NRDUtUkMyLTY0IiwicGJlV2l0aE1ENUFuZFJDMi1DQkMiLE5JRF9wYmVXaXRoTUQ1QW5kUkMyX0NCQyw5LAotCSYobHZhbHVlc1s5OTddKSwwfSwKKwkmKGx2YWx1ZXNbOTk2XSksMH0sCiB7IlBCRS1TSEExLURFUyIsInBiZVdpdGhTSEExQW5kREVTLUNCQyIsTklEX3BiZVdpdGhTSEExQW5kREVTX0NCQyw5LAotCSYobHZhbHVlc1sxMDA2XSksMH0sCisJJihsdmFsdWVzWzEwMDVdKSwwfSwKIHsibXNFeHRSZXEiLCJNaWNyb3NvZnQgRXh0ZW5zaW9uIFJlcXVlc3QiLE5JRF9tc19leHRfcmVxLDEwLAotCSYobHZhbHVlc1sxMDE1XSksMH0sCi17ImV4dFJlcSIsIkV4dGVuc2lvbiBSZXF1ZXN0IixOSURfZXh0X3JlcSw5LCYobHZhbHVlc1sxMDI1XSksMH0sCi17Im5hbWUiLCJuYW1lIixOSURfbmFtZSwzLCYobHZhbHVlc1sxMDM0XSksMH0sCi17ImRuUXVhbGlmaWVyIiwiZG5RdWFsaWZpZXIiLE5JRF9kblF1YWxpZmllciwzLCYobHZhbHVlc1sxMDM3XSksMH0sCi17ImlkLXBlIiwiaWQtcGUiLE5JRF9pZF9wZSw3LCYobHZhbHVlc1sxMDQwXSksMH0sCi17ImlkLWFkIiwiaWQtYWQiLE5JRF9pZF9hZCw3LCYobHZhbHVlc1sxMDQ3XSksMH0sCisJJihsdmFsdWVzWzEwMTRdKSwwfSwKK3siZXh0UmVxIiwiRXh0ZW5zaW9uIFJlcXVlc3QiLE5JRF9leHRfcmVxLDksJihsdmFsdWVzWzEwMjRdKSwwfSwKK3sibmFtZSIsIm5hbWUiLE5JRF9uYW1lLDMsJihsdmFsdWVzWzEwMzNdKSwwfSwKK3siZG5RdWFsaWZpZXIiLCJkblF1YWxpZmllciIsTklEX2RuUXVhbGlmaWVyLDMsJihsdmFsdWVzWzEwMzZdKSwwfSwKK3siaWQtcGUiLCJpZC1wZSIsTklEX2lkX3BlLDcsJihsdmFsdWVzWzEwMzldKSwwfSwKK3siaWQtYWQiLCJpZC1hZCIsTklEX2lkX2FkLDcsJihsdmFsdWVzWzEwNDZdKSwwfSwKIHsiYXV0aG9yaXR5SW5mb0FjY2VzcyIsIkF1dGhvcml0eSBJbmZvcm1hdGlvbiBBY2Nlc3MiLE5JRF9pbmZvX2FjY2VzcywKLQk4LCYobHZhbHVlc1sxMDU0XSksMH0sCi17Ik9DU1AiLCJPQ1NQIixOSURfYWRfT0NTUCw4LCYobHZhbHVlc1sxMDYyXSksMH0sCi17ImNhSXNzdWVycyIsIkNBIElzc3VlcnMiLE5JRF9hZF9jYV9pc3N1ZXJzLDgsJihsdmFsdWVzWzEwNzBdKSwwfSwKLXsiT0NTUFNpZ25pbmciLCJPQ1NQIFNpZ25pbmciLE5JRF9PQ1NQX3NpZ24sOCwmKGx2YWx1ZXNbMTA3OF0pLDB9LAoteyJJU08iLCJpc28iLE5JRF9pc28sMSwmKGx2YWx1ZXNbMTA4Nl0pLDB9LAoteyJtZW1iZXItYm9keSIsIklTTyBNZW1iZXIgQm9keSIsTklEX21lbWJlcl9ib2R5LDEsJihsdmFsdWVzWzEwODddKSwwfSwKLXsiSVNPLVVTIiwiSVNPIFVTIE1lbWJlciBCb2R5IixOSURfSVNPX1VTLDMsJihsdmFsdWVzWzEwODhdKSwwfSwKLXsiWDktNTciLCJYOS41NyIsTklEX1g5XzU3LDUsJihsdmFsdWVzWzEwOTFdKSwwfSwKLXsiWDljbSIsIlg5LjU3IENNID8iLE5JRF9YOWNtLDYsJihsdmFsdWVzWzEwOTZdKSwwfSwKLXsicGtjczEiLCJwa2NzMSIsTklEX3BrY3MxLDgsJihsdmFsdWVzWzExMDJdKSwwfSwKLXsicGtjczUiLCJwa2NzNSIsTklEX3BrY3M1LDgsJihsdmFsdWVzWzExMTBdKSwwfSwKLXsiU01JTUUiLCJTL01JTUUiLE5JRF9TTUlNRSw5LCYobHZhbHVlc1sxMTE4XSksMH0sCi17ImlkLXNtaW1lLW1vZCIsImlkLXNtaW1lLW1vZCIsTklEX2lkX3NtaW1lX21vZCwxMCwmKGx2YWx1ZXNbMTEyN10pLDB9LAoteyJpZC1zbWltZS1jdCIsImlkLXNtaW1lLWN0IixOSURfaWRfc21pbWVfY3QsMTAsJihsdmFsdWVzWzExMzddKSwwfSwKLXsiaWQtc21pbWUtYWEiLCJpZC1zbWltZS1hYSIsTklEX2lkX3NtaW1lX2FhLDEwLCYobHZhbHVlc1sxMTQ3XSksMH0sCi17ImlkLXNtaW1lLWFsZyIsImlkLXNtaW1lLWFsZyIsTklEX2lkX3NtaW1lX2FsZywxMCwmKGx2YWx1ZXNbMTE1N10pLDB9LAoteyJpZC1zbWltZS1jZCIsImlkLXNtaW1lLWNkIixOSURfaWRfc21pbWVfY2QsMTAsJihsdmFsdWVzWzExNjddKSwwfSwKLXsiaWQtc21pbWUtc3BxIiwiaWQtc21pbWUtc3BxIixOSURfaWRfc21pbWVfc3BxLDEwLCYobHZhbHVlc1sxMTc3XSksMH0sCi17ImlkLXNtaW1lLWN0aSIsImlkLXNtaW1lLWN0aSIsTklEX2lkX3NtaW1lX2N0aSwxMCwmKGx2YWx1ZXNbMTE4N10pLDB9LAorCTgsJihsdmFsdWVzWzEwNTNdKSwwfSwKK3siT0NTUCIsIk9DU1AiLE5JRF9hZF9PQ1NQLDgsJihsdmFsdWVzWzEwNjFdKSwwfSwKK3siY2FJc3N1ZXJzIiwiQ0EgSXNzdWVycyIsTklEX2FkX2NhX2lzc3VlcnMsOCwmKGx2YWx1ZXNbMTA2OV0pLDB9LAoreyJPQ1NQU2lnbmluZyIsIk9DU1AgU2lnbmluZyIsTklEX09DU1Bfc2lnbiw4LCYobHZhbHVlc1sxMDc3XSksMH0sCit7IklTTyIsImlzbyIsTklEX2lzbywwLE5VTEwsMH0sCit7Im1lbWJlci1ib2R5IiwiSVNPIE1lbWJlciBCb2R5IixOSURfbWVtYmVyX2JvZHksMSwmKGx2YWx1ZXNbMTA4NV0pLDB9LAoreyJJU08tVVMiLCJJU08gVVMgTWVtYmVyIEJvZHkiLE5JRF9JU09fVVMsMywmKGx2YWx1ZXNbMTA4Nl0pLDB9LAoreyJYOS01NyIsIlg5LjU3IixOSURfWDlfNTcsNSwmKGx2YWx1ZXNbMTA4OV0pLDB9LAoreyJYOWNtIiwiWDkuNTcgQ00gPyIsTklEX1g5Y20sNiwmKGx2YWx1ZXNbMTA5NF0pLDB9LAoreyJwa2NzMSIsInBrY3MxIixOSURfcGtjczEsOCwmKGx2YWx1ZXNbMTEwMF0pLDB9LAoreyJwa2NzNSIsInBrY3M1IixOSURfcGtjczUsOCwmKGx2YWx1ZXNbMTEwOF0pLDB9LAoreyJTTUlNRSIsIlMvTUlNRSIsTklEX1NNSU1FLDksJihsdmFsdWVzWzExMTZdKSwwfSwKK3siaWQtc21pbWUtbW9kIiwiaWQtc21pbWUtbW9kIixOSURfaWRfc21pbWVfbW9kLDEwLCYobHZhbHVlc1sxMTI1XSksMH0sCit7ImlkLXNtaW1lLWN0IiwiaWQtc21pbWUtY3QiLE5JRF9pZF9zbWltZV9jdCwxMCwmKGx2YWx1ZXNbMTEzNV0pLDB9LAoreyJpZC1zbWltZS1hYSIsImlkLXNtaW1lLWFhIixOSURfaWRfc21pbWVfYWEsMTAsJihsdmFsdWVzWzExNDVdKSwwfSwKK3siaWQtc21pbWUtYWxnIiwiaWQtc21pbWUtYWxnIixOSURfaWRfc21pbWVfYWxnLDEwLCYobHZhbHVlc1sxMTU1XSksMH0sCit7ImlkLXNtaW1lLWNkIiwiaWQtc21pbWUtY2QiLE5JRF9pZF9zbWltZV9jZCwxMCwmKGx2YWx1ZXNbMTE2NV0pLDB9LAoreyJpZC1zbWltZS1zcHEiLCJpZC1zbWltZS1zcHEiLE5JRF9pZF9zbWltZV9zcHEsMTAsJihsdmFsdWVzWzExNzVdKSwwfSwKK3siaWQtc21pbWUtY3RpIiwiaWQtc21pbWUtY3RpIixOSURfaWRfc21pbWVfY3RpLDEwLCYobHZhbHVlc1sxMTg1XSksMH0sCiB7ImlkLXNtaW1lLW1vZC1jbXMiLCJpZC1zbWltZS1tb2QtY21zIixOSURfaWRfc21pbWVfbW9kX2NtcywxMSwKLQkmKGx2YWx1ZXNbMTE5N10pLDB9LAorCSYobHZhbHVlc1sxMTk1XSksMH0sCiB7ImlkLXNtaW1lLW1vZC1lc3MiLCJpZC1zbWltZS1tb2QtZXNzIixOSURfaWRfc21pbWVfbW9kX2VzcywxMSwKLQkmKGx2YWx1ZXNbMTIwOF0pLDB9LAorCSYobHZhbHVlc1sxMjA2XSksMH0sCiB7ImlkLXNtaW1lLW1vZC1vaWQiLCJpZC1zbWltZS1tb2Qtb2lkIixOSURfaWRfc21pbWVfbW9kX29pZCwxMSwKLQkmKGx2YWx1ZXNbMTIxOV0pLDB9LAorCSYobHZhbHVlc1sxMjE3XSksMH0sCiB7ImlkLXNtaW1lLW1vZC1tc2ctdjMiLCJpZC1zbWltZS1tb2QtbXNnLXYzIixOSURfaWRfc21pbWVfbW9kX21zZ192MywKLQkxMSwmKGx2YWx1ZXNbMTIzMF0pLDB9LAorCTExLCYobHZhbHVlc1sxMjI4XSksMH0sCiB7ImlkLXNtaW1lLW1vZC1ldHMtZVNpZ25hdHVyZS04OCIsImlkLXNtaW1lLW1vZC1ldHMtZVNpZ25hdHVyZS04OCIsCi0JTklEX2lkX3NtaW1lX21vZF9ldHNfZVNpZ25hdHVyZV84OCwxMSwmKGx2YWx1ZXNbMTI0MV0pLDB9LAorCU5JRF9pZF9zbWltZV9tb2RfZXRzX2VTaWduYXR1cmVfODgsMTEsJihsdmFsdWVzWzEyMzldKSwwfSwKIHsiaWQtc21pbWUtbW9kLWV0cy1lU2lnbmF0dXJlLTk3IiwiaWQtc21pbWUtbW9kLWV0cy1lU2lnbmF0dXJlLTk3IiwKLQlOSURfaWRfc21pbWVfbW9kX2V0c19lU2lnbmF0dXJlXzk3LDExLCYobHZhbHVlc1sxMjUyXSksMH0sCisJTklEX2lkX3NtaW1lX21vZF9ldHNfZVNpZ25hdHVyZV85NywxMSwmKGx2YWx1ZXNbMTI1MF0pLDB9LAogeyJpZC1zbWltZS1tb2QtZXRzLWVTaWdQb2xpY3ktODgiLCJpZC1zbWltZS1tb2QtZXRzLWVTaWdQb2xpY3ktODgiLAotCU5JRF9pZF9zbWltZV9tb2RfZXRzX2VTaWdQb2xpY3lfODgsMTEsJihsdmFsdWVzWzEyNjNdKSwwfSwKKwlOSURfaWRfc21pbWVfbW9kX2V0c19lU2lnUG9saWN5Xzg4LDExLCYobHZhbHVlc1sxMjYxXSksMH0sCiB7ImlkLXNtaW1lLW1vZC1ldHMtZVNpZ1BvbGljeS05NyIsImlkLXNtaW1lLW1vZC1ldHMtZVNpZ1BvbGljeS05NyIsCi0JTklEX2lkX3NtaW1lX21vZF9ldHNfZVNpZ1BvbGljeV85NywxMSwmKGx2YWx1ZXNbMTI3NF0pLDB9LAorCU5JRF9pZF9zbWltZV9tb2RfZXRzX2VTaWdQb2xpY3lfOTcsMTEsJihsdmFsdWVzWzEyNzJdKSwwfSwKIHsiaWQtc21pbWUtY3QtcmVjZWlwdCIsImlkLXNtaW1lLWN0LXJlY2VpcHQiLE5JRF9pZF9zbWltZV9jdF9yZWNlaXB0LAotCTExLCYobHZhbHVlc1sxMjg1XSksMH0sCisJMTEsJihsdmFsdWVzWzEyODNdKSwwfSwKIHsiaWQtc21pbWUtY3QtYXV0aERhdGEiLCJpZC1zbWltZS1jdC1hdXRoRGF0YSIsCi0JTklEX2lkX3NtaW1lX2N0X2F1dGhEYXRhLDExLCYobHZhbHVlc1sxMjk2XSksMH0sCisJTklEX2lkX3NtaW1lX2N0X2F1dGhEYXRhLDExLCYobHZhbHVlc1sxMjk0XSksMH0sCiB7ImlkLXNtaW1lLWN0LXB1Ymxpc2hDZXJ0IiwiaWQtc21pbWUtY3QtcHVibGlzaENlcnQiLAotCU5JRF9pZF9zbWltZV9jdF9wdWJsaXNoQ2VydCwxMSwmKGx2YWx1ZXNbMTMwN10pLDB9LAorCU5JRF9pZF9zbWltZV9jdF9wdWJsaXNoQ2VydCwxMSwmKGx2YWx1ZXNbMTMwNV0pLDB9LAogeyJpZC1zbWltZS1jdC1UU1RJbmZvIiwiaWQtc21pbWUtY3QtVFNUSW5mbyIsTklEX2lkX3NtaW1lX2N0X1RTVEluZm8sCi0JMTEsJihsdmFsdWVzWzEzMThdKSwwfSwKKwkxMSwmKGx2YWx1ZXNbMTMxNl0pLDB9LAogeyJpZC1zbWltZS1jdC1URFRJbmZvIiwiaWQtc21pbWUtY3QtVERUSW5mbyIsTklEX2lkX3NtaW1lX2N0X1REVEluZm8sCi0JMTEsJihsdmFsdWVzWzEzMjldKSwwfSwKKwkxMSwmKGx2YWx1ZXNbMTMyN10pLDB9LAogeyJpZC1zbWltZS1jdC1jb250ZW50SW5mbyIsImlkLXNtaW1lLWN0LWNvbnRlbnRJbmZvIiwKLQlOSURfaWRfc21pbWVfY3RfY29udGVudEluZm8sMTEsJihsdmFsdWVzWzEzNDBdKSwwfSwKKwlOSURfaWRfc21pbWVfY3RfY29udGVudEluZm8sMTEsJihsdmFsdWVzWzEzMzhdKSwwfSwKIHsiaWQtc21pbWUtY3QtRFZDU1JlcXVlc3REYXRhIiwiaWQtc21pbWUtY3QtRFZDU1JlcXVlc3REYXRhIiwKLQlOSURfaWRfc21pbWVfY3RfRFZDU1JlcXVlc3REYXRhLDExLCYobHZhbHVlc1sxMzUxXSksMH0sCisJTklEX2lkX3NtaW1lX2N0X0RWQ1NSZXF1ZXN0RGF0YSwxMSwmKGx2YWx1ZXNbMTM0OV0pLDB9LAogeyJpZC1zbWltZS1jdC1EVkNTUmVzcG9uc2VEYXRhIiwiaWQtc21pbWUtY3QtRFZDU1Jlc3BvbnNlRGF0YSIsCi0JTklEX2lkX3NtaW1lX2N0X0RWQ1NSZXNwb25zZURhdGEsMTEsJihsdmFsdWVzWzEzNjJdKSwwfSwKKwlOSURfaWRfc21pbWVfY3RfRFZDU1Jlc3BvbnNlRGF0YSwxMSwmKGx2YWx1ZXNbMTM2MF0pLDB9LAogeyJpZC1zbWltZS1hYS1yZWNlaXB0UmVxdWVzdCIsImlkLXNtaW1lLWFhLXJlY2VpcHRSZXF1ZXN0IiwKLQlOSURfaWRfc21pbWVfYWFfcmVjZWlwdFJlcXVlc3QsMTEsJihsdmFsdWVzWzEzNzNdKSwwfSwKKwlOSURfaWRfc21pbWVfYWFfcmVjZWlwdFJlcXVlc3QsMTEsJihsdmFsdWVzWzEzNzFdKSwwfSwKIHsiaWQtc21pbWUtYWEtc2VjdXJpdHlMYWJlbCIsImlkLXNtaW1lLWFhLXNlY3VyaXR5TGFiZWwiLAotCU5JRF9pZF9zbWltZV9hYV9zZWN1cml0eUxhYmVsLDExLCYobHZhbHVlc1sxMzg0XSksMH0sCisJTklEX2lkX3NtaW1lX2FhX3NlY3VyaXR5TGFiZWwsMTEsJihsdmFsdWVzWzEzODJdKSwwfSwKIHsiaWQtc21pbWUtYWEtbWxFeHBhbmRIaXN0b3J5IiwiaWQtc21pbWUtYWEtbWxFeHBhbmRIaXN0b3J5IiwKLQlOSURfaWRfc21pbWVfYWFfbWxFeHBhbmRIaXN0b3J5LDExLCYobHZhbHVlc1sxMzk1XSksMH0sCisJTklEX2lkX3NtaW1lX2FhX21sRXhwYW5kSGlzdG9yeSwxMSwmKGx2YWx1ZXNbMTM5M10pLDB9LAogeyJpZC1zbWltZS1hYS1jb250ZW50SGludCIsImlkLXNtaW1lLWFhLWNvbnRlbnRIaW50IiwKLQlOSURfaWRfc21pbWVfYWFfY29udGVudEhpbnQsMTEsJihsdmFsdWVzWzE0MDZdKSwwfSwKKwlOSURfaWRfc21pbWVfYWFfY29udGVudEhpbnQsMTEsJihsdmFsdWVzWzE0MDRdKSwwfSwKIHsiaWQtc21pbWUtYWEtbXNnU2lnRGlnZXN0IiwiaWQtc21pbWUtYWEtbXNnU2lnRGlnZXN0IiwKLQlOSURfaWRfc21pbWVfYWFfbXNnU2lnRGlnZXN0LDExLCYobHZhbHVlc1sxNDE3XSksMH0sCisJTklEX2lkX3NtaW1lX2FhX21zZ1NpZ0RpZ2VzdCwxMSwmKGx2YWx1ZXNbMTQxNV0pLDB9LAogeyJpZC1zbWltZS1hYS1lbmNhcENvbnRlbnRUeXBlIiwiaWQtc21pbWUtYWEtZW5jYXBDb250ZW50VHlwZSIsCi0JTklEX2lkX3NtaW1lX2FhX2VuY2FwQ29udGVudFR5cGUsMTEsJihsdmFsdWVzWzE0MjhdKSwwfSwKKwlOSURfaWRfc21pbWVfYWFfZW5jYXBDb250ZW50VHlwZSwxMSwmKGx2YWx1ZXNbMTQyNl0pLDB9LAogeyJpZC1zbWltZS1hYS1jb250ZW50SWRlbnRpZmllciIsImlkLXNtaW1lLWFhLWNvbnRlbnRJZGVudGlmaWVyIiwKLQlOSURfaWRfc21pbWVfYWFfY29udGVudElkZW50aWZpZXIsMTEsJihsdmFsdWVzWzE0MzldKSwwfSwKKwlOSURfaWRfc21pbWVfYWFfY29udGVudElkZW50aWZpZXIsMTEsJihsdmFsdWVzWzE0MzddKSwwfSwKIHsiaWQtc21pbWUtYWEtbWFjVmFsdWUiLCJpZC1zbWltZS1hYS1tYWNWYWx1ZSIsCi0JTklEX2lkX3NtaW1lX2FhX21hY1ZhbHVlLDExLCYobHZhbHVlc1sxNDUwXSksMH0sCisJTklEX2lkX3NtaW1lX2FhX21hY1ZhbHVlLDExLCYobHZhbHVlc1sxNDQ4XSksMH0sCiB7ImlkLXNtaW1lLWFhLWVxdWl2YWxlbnRMYWJlbHMiLCJpZC1zbWltZS1hYS1lcXVpdmFsZW50TGFiZWxzIiwKLQlOSURfaWRfc21pbWVfYWFfZXF1aXZhbGVudExhYmVscywxMSwmKGx2YWx1ZXNbMTQ2MV0pLDB9LAorCU5JRF9pZF9zbWltZV9hYV9lcXVpdmFsZW50TGFiZWxzLDExLCYobHZhbHVlc1sxNDU5XSksMH0sCiB7ImlkLXNtaW1lLWFhLWNvbnRlbnRSZWZlcmVuY2UiLCJpZC1zbWltZS1hYS1jb250ZW50UmVmZXJlbmNlIiwKLQlOSURfaWRfc21pbWVfYWFfY29udGVudFJlZmVyZW5jZSwxMSwmKGx2YWx1ZXNbMTQ3Ml0pLDB9LAorCU5JRF9pZF9zbWltZV9hYV9jb250ZW50UmVmZXJlbmNlLDExLCYobHZhbHVlc1sxNDcwXSksMH0sCiB7ImlkLXNtaW1lLWFhLWVuY3J5cEtleVByZWYiLCJpZC1zbWltZS1hYS1lbmNyeXBLZXlQcmVmIiwKLQlOSURfaWRfc21pbWVfYWFfZW5jcnlwS2V5UHJlZiwxMSwmKGx2YWx1ZXNbMTQ4M10pLDB9LAorCU5JRF9pZF9zbWltZV9hYV9lbmNyeXBLZXlQcmVmLDExLCYobHZhbHVlc1sxNDgxXSksMH0sCiB7ImlkLXNtaW1lLWFhLXNpZ25pbmdDZXJ0aWZpY2F0ZSIsImlkLXNtaW1lLWFhLXNpZ25pbmdDZXJ0aWZpY2F0ZSIsCi0JTklEX2lkX3NtaW1lX2FhX3NpZ25pbmdDZXJ0aWZpY2F0ZSwxMSwmKGx2YWx1ZXNbMTQ5NF0pLDB9LAorCU5JRF9pZF9zbWltZV9hYV9zaWduaW5nQ2VydGlmaWNhdGUsMTEsJihsdmFsdWVzWzE0OTJdKSwwfSwKIHsiaWQtc21pbWUtYWEtc21pbWVFbmNyeXB0Q2VydHMiLCJpZC1zbWltZS1hYS1zbWltZUVuY3J5cHRDZXJ0cyIsCi0JTklEX2lkX3NtaW1lX2FhX3NtaW1lRW5jcnlwdENlcnRzLDExLCYobHZhbHVlc1sxNTA1XSksMH0sCisJTklEX2lkX3NtaW1lX2FhX3NtaW1lRW5jcnlwdENlcnRzLDExLCYobHZhbHVlc1sxNTAzXSksMH0sCiB7ImlkLXNtaW1lLWFhLXRpbWVTdGFtcFRva2VuIiwiaWQtc21pbWUtYWEtdGltZVN0YW1wVG9rZW4iLAotCU5JRF9pZF9zbWltZV9hYV90aW1lU3RhbXBUb2tlbiwxMSwmKGx2YWx1ZXNbMTUxNl0pLDB9LAorCU5JRF9pZF9zbWltZV9hYV90aW1lU3RhbXBUb2tlbiwxMSwmKGx2YWx1ZXNbMTUxNF0pLDB9LAogeyJpZC1zbWltZS1hYS1ldHMtc2lnUG9saWN5SWQiLCJpZC1zbWltZS1hYS1ldHMtc2lnUG9saWN5SWQiLAotCU5JRF9pZF9zbWltZV9hYV9ldHNfc2lnUG9saWN5SWQsMTEsJihsdmFsdWVzWzE1MjddKSwwfSwKKwlOSURfaWRfc21pbWVfYWFfZXRzX3NpZ1BvbGljeUlkLDExLCYobHZhbHVlc1sxNTI1XSksMH0sCiB7ImlkLXNtaW1lLWFhLWV0cy1jb21taXRtZW50VHlwZSIsImlkLXNtaW1lLWFhLWV0cy1jb21taXRtZW50VHlwZSIsCi0JTklEX2lkX3NtaW1lX2FhX2V0c19jb21taXRtZW50VHlwZSwxMSwmKGx2YWx1ZXNbMTUzOF0pLDB9LAorCU5JRF9pZF9zbWltZV9hYV9ldHNfY29tbWl0bWVudFR5cGUsMTEsJihsdmFsdWVzWzE1MzZdKSwwfSwKIHsiaWQtc21pbWUtYWEtZXRzLXNpZ25lckxvY2F0aW9uIiwiaWQtc21pbWUtYWEtZXRzLXNpZ25lckxvY2F0aW9uIiwKLQlOSURfaWRfc21pbWVfYWFfZXRzX3NpZ25lckxvY2F0aW9uLDExLCYobHZhbHVlc1sxNTQ5XSksMH0sCisJTklEX2lkX3NtaW1lX2FhX2V0c19zaWduZXJMb2NhdGlvbiwxMSwmKGx2YWx1ZXNbMTU0N10pLDB9LAogeyJpZC1zbWltZS1hYS1ldHMtc2lnbmVyQXR0ciIsImlkLXNtaW1lLWFhLWV0cy1zaWduZXJBdHRyIiwKLQlOSURfaWRfc21pbWVfYWFfZXRzX3NpZ25lckF0dHIsMTEsJihsdmFsdWVzWzE1NjBdKSwwfSwKKwlOSURfaWRfc21pbWVfYWFfZXRzX3NpZ25lckF0dHIsMTEsJihsdmFsdWVzWzE1NThdKSwwfSwKIHsiaWQtc21pbWUtYWEtZXRzLW90aGVyU2lnQ2VydCIsImlkLXNtaW1lLWFhLWV0cy1vdGhlclNpZ0NlcnQiLAotCU5JRF9pZF9zbWltZV9hYV9ldHNfb3RoZXJTaWdDZXJ0LDExLCYobHZhbHVlc1sxNTcxXSksMH0sCisJTklEX2lkX3NtaW1lX2FhX2V0c19vdGhlclNpZ0NlcnQsMTEsJihsdmFsdWVzWzE1NjldKSwwfSwKIHsiaWQtc21pbWUtYWEtZXRzLWNvbnRlbnRUaW1lc3RhbXAiLAogCSJpZC1zbWltZS1hYS1ldHMtY29udGVudFRpbWVzdGFtcCIsCi0JTklEX2lkX3NtaW1lX2FhX2V0c19jb250ZW50VGltZXN0YW1wLDExLCYobHZhbHVlc1sxNTgyXSksMH0sCisJTklEX2lkX3NtaW1lX2FhX2V0c19jb250ZW50VGltZXN0YW1wLDExLCYobHZhbHVlc1sxNTgwXSksMH0sCiB7ImlkLXNtaW1lLWFhLWV0cy1DZXJ0aWZpY2F0ZVJlZnMiLCJpZC1zbWltZS1hYS1ldHMtQ2VydGlmaWNhdGVSZWZzIiwKLQlOSURfaWRfc21pbWVfYWFfZXRzX0NlcnRpZmljYXRlUmVmcywxMSwmKGx2YWx1ZXNbMTU5M10pLDB9LAorCU5JRF9pZF9zbWltZV9hYV9ldHNfQ2VydGlmaWNhdGVSZWZzLDExLCYobHZhbHVlc1sxNTkxXSksMH0sCiB7ImlkLXNtaW1lLWFhLWV0cy1SZXZvY2F0aW9uUmVmcyIsImlkLXNtaW1lLWFhLWV0cy1SZXZvY2F0aW9uUmVmcyIsCi0JTklEX2lkX3NtaW1lX2FhX2V0c19SZXZvY2F0aW9uUmVmcywxMSwmKGx2YWx1ZXNbMTYwNF0pLDB9LAorCU5JRF9pZF9zbWltZV9hYV9ldHNfUmV2b2NhdGlvblJlZnMsMTEsJihsdmFsdWVzWzE2MDJdKSwwfSwKIHsiaWQtc21pbWUtYWEtZXRzLWNlcnRWYWx1ZXMiLCJpZC1zbWltZS1hYS1ldHMtY2VydFZhbHVlcyIsCi0JTklEX2lkX3NtaW1lX2FhX2V0c19jZXJ0VmFsdWVzLDExLCYobHZhbHVlc1sxNjE1XSksMH0sCisJTklEX2lkX3NtaW1lX2FhX2V0c19jZXJ0VmFsdWVzLDExLCYobHZhbHVlc1sxNjEzXSksMH0sCiB7ImlkLXNtaW1lLWFhLWV0cy1yZXZvY2F0aW9uVmFsdWVzIiwKIAkiaWQtc21pbWUtYWEtZXRzLXJldm9jYXRpb25WYWx1ZXMiLAotCU5JRF9pZF9zbWltZV9hYV9ldHNfcmV2b2NhdGlvblZhbHVlcywxMSwmKGx2YWx1ZXNbMTYyNl0pLDB9LAorCU5JRF9pZF9zbWltZV9hYV9ldHNfcmV2b2NhdGlvblZhbHVlcywxMSwmKGx2YWx1ZXNbMTYyNF0pLDB9LAogeyJpZC1zbWltZS1hYS1ldHMtZXNjVGltZVN0YW1wIiwiaWQtc21pbWUtYWEtZXRzLWVzY1RpbWVTdGFtcCIsCi0JTklEX2lkX3NtaW1lX2FhX2V0c19lc2NUaW1lU3RhbXAsMTEsJihsdmFsdWVzWzE2MzddKSwwfSwKKwlOSURfaWRfc21pbWVfYWFfZXRzX2VzY1RpbWVTdGFtcCwxMSwmKGx2YWx1ZXNbMTYzNV0pLDB9LAogeyJpZC1zbWltZS1hYS1ldHMtY2VydENSTFRpbWVzdGFtcCIsCiAJImlkLXNtaW1lLWFhLWV0cy1jZXJ0Q1JMVGltZXN0YW1wIiwKLQlOSURfaWRfc21pbWVfYWFfZXRzX2NlcnRDUkxUaW1lc3RhbXAsMTEsJihsdmFsdWVzWzE2NDhdKSwwfSwKKwlOSURfaWRfc21pbWVfYWFfZXRzX2NlcnRDUkxUaW1lc3RhbXAsMTEsJihsdmFsdWVzWzE2NDZdKSwwfSwKIHsiaWQtc21pbWUtYWEtZXRzLWFyY2hpdmVUaW1lU3RhbXAiLAogCSJpZC1zbWltZS1hYS1ldHMtYXJjaGl2ZVRpbWVTdGFtcCIsCi0JTklEX2lkX3NtaW1lX2FhX2V0c19hcmNoaXZlVGltZVN0YW1wLDExLCYobHZhbHVlc1sxNjU5XSksMH0sCisJTklEX2lkX3NtaW1lX2FhX2V0c19hcmNoaXZlVGltZVN0YW1wLDExLCYobHZhbHVlc1sxNjU3XSksMH0sCiB7ImlkLXNtaW1lLWFhLXNpZ25hdHVyZVR5cGUiLCJpZC1zbWltZS1hYS1zaWduYXR1cmVUeXBlIiwKLQlOSURfaWRfc21pbWVfYWFfc2lnbmF0dXJlVHlwZSwxMSwmKGx2YWx1ZXNbMTY3MF0pLDB9LAorCU5JRF9pZF9zbWltZV9hYV9zaWduYXR1cmVUeXBlLDExLCYobHZhbHVlc1sxNjY4XSksMH0sCiB7ImlkLXNtaW1lLWFhLWR2Y3MtZHZjIiwiaWQtc21pbWUtYWEtZHZjcy1kdmMiLAotCU5JRF9pZF9zbWltZV9hYV9kdmNzX2R2YywxMSwmKGx2YWx1ZXNbMTY4MV0pLDB9LAorCU5JRF9pZF9zbWltZV9hYV9kdmNzX2R2YywxMSwmKGx2YWx1ZXNbMTY3OV0pLDB9LAogeyJpZC1zbWltZS1hbGctRVNESHdpdGgzREVTIiwiaWQtc21pbWUtYWxnLUVTREh3aXRoM0RFUyIsCi0JTklEX2lkX3NtaW1lX2FsZ19FU0RId2l0aDNERVMsMTEsJihsdmFsdWVzWzE2OTJdKSwwfSwKKwlOSURfaWRfc21pbWVfYWxnX0VTREh3aXRoM0RFUywxMSwmKGx2YWx1ZXNbMTY5MF0pLDB9LAogeyJpZC1zbWltZS1hbGctRVNESHdpdGhSQzIiLCJpZC1zbWltZS1hbGctRVNESHdpdGhSQzIiLAotCU5JRF9pZF9zbWltZV9hbGdfRVNESHdpdGhSQzIsMTEsJihsdmFsdWVzWzE3MDNdKSwwfSwKKwlOSURfaWRfc21pbWVfYWxnX0VTREh3aXRoUkMyLDExLCYobHZhbHVlc1sxNzAxXSksMH0sCiB7ImlkLXNtaW1lLWFsZy0zREVTd3JhcCIsImlkLXNtaW1lLWFsZy0zREVTd3JhcCIsCi0JTklEX2lkX3NtaW1lX2FsZ18zREVTd3JhcCwxMSwmKGx2YWx1ZXNbMTcxNF0pLDB9LAorCU5JRF9pZF9zbWltZV9hbGdfM0RFU3dyYXAsMTEsJihsdmFsdWVzWzE3MTJdKSwwfSwKIHsiaWQtc21pbWUtYWxnLVJDMndyYXAiLCJpZC1zbWltZS1hbGctUkMyd3JhcCIsCi0JTklEX2lkX3NtaW1lX2FsZ19SQzJ3cmFwLDExLCYobHZhbHVlc1sxNzI1XSksMH0sCisJTklEX2lkX3NtaW1lX2FsZ19SQzJ3cmFwLDExLCYobHZhbHVlc1sxNzIzXSksMH0sCiB7ImlkLXNtaW1lLWFsZy1FU0RIIiwiaWQtc21pbWUtYWxnLUVTREgiLE5JRF9pZF9zbWltZV9hbGdfRVNESCwxMSwKLQkmKGx2YWx1ZXNbMTczNl0pLDB9LAorCSYobHZhbHVlc1sxNzM0XSksMH0sCiB7ImlkLXNtaW1lLWFsZy1DTVMzREVTd3JhcCIsImlkLXNtaW1lLWFsZy1DTVMzREVTd3JhcCIsCi0JTklEX2lkX3NtaW1lX2FsZ19DTVMzREVTd3JhcCwxMSwmKGx2YWx1ZXNbMTc0N10pLDB9LAorCU5JRF9pZF9zbWltZV9hbGdfQ01TM0RFU3dyYXAsMTEsJihsdmFsdWVzWzE3NDVdKSwwfSwKIHsiaWQtc21pbWUtYWxnLUNNU1JDMndyYXAiLCJpZC1zbWltZS1hbGctQ01TUkMyd3JhcCIsCi0JTklEX2lkX3NtaW1lX2FsZ19DTVNSQzJ3cmFwLDExLCYobHZhbHVlc1sxNzU4XSksMH0sCisJTklEX2lkX3NtaW1lX2FsZ19DTVNSQzJ3cmFwLDExLCYobHZhbHVlc1sxNzU2XSksMH0sCiB7ImlkLXNtaW1lLWNkLWxkYXAiLCJpZC1zbWltZS1jZC1sZGFwIixOSURfaWRfc21pbWVfY2RfbGRhcCwxMSwKLQkmKGx2YWx1ZXNbMTc2OV0pLDB9LAorCSYobHZhbHVlc1sxNzY3XSksMH0sCiB7ImlkLXNtaW1lLXNwcS1ldHMtc3F0LXVyaSIsImlkLXNtaW1lLXNwcS1ldHMtc3F0LXVyaSIsCi0JTklEX2lkX3NtaW1lX3NwcV9ldHNfc3F0X3VyaSwxMSwmKGx2YWx1ZXNbMTc4MF0pLDB9LAorCU5JRF9pZF9zbWltZV9zcHFfZXRzX3NxdF91cmksMTEsJihsdmFsdWVzWzE3NzhdKSwwfSwKIHsiaWQtc21pbWUtc3BxLWV0cy1zcXQtdW5vdGljZSIsImlkLXNtaW1lLXNwcS1ldHMtc3F0LXVub3RpY2UiLAotCU5JRF9pZF9zbWltZV9zcHFfZXRzX3NxdF91bm90aWNlLDExLCYobHZhbHVlc1sxNzkxXSksMH0sCisJTklEX2lkX3NtaW1lX3NwcV9ldHNfc3F0X3Vub3RpY2UsMTEsJihsdmFsdWVzWzE3ODldKSwwfSwKIHsiaWQtc21pbWUtY3RpLWV0cy1wcm9vZk9mT3JpZ2luIiwiaWQtc21pbWUtY3RpLWV0cy1wcm9vZk9mT3JpZ2luIiwKLQlOSURfaWRfc21pbWVfY3RpX2V0c19wcm9vZk9mT3JpZ2luLDExLCYobHZhbHVlc1sxODAyXSksMH0sCisJTklEX2lkX3NtaW1lX2N0aV9ldHNfcHJvb2ZPZk9yaWdpbiwxMSwmKGx2YWx1ZXNbMTgwMF0pLDB9LAogeyJpZC1zbWltZS1jdGktZXRzLXByb29mT2ZSZWNlaXB0IiwiaWQtc21pbWUtY3RpLWV0cy1wcm9vZk9mUmVjZWlwdCIsCi0JTklEX2lkX3NtaW1lX2N0aV9ldHNfcHJvb2ZPZlJlY2VpcHQsMTEsJihsdmFsdWVzWzE4MTNdKSwwfSwKKwlOSURfaWRfc21pbWVfY3RpX2V0c19wcm9vZk9mUmVjZWlwdCwxMSwmKGx2YWx1ZXNbMTgxMV0pLDB9LAogeyJpZC1zbWltZS1jdGktZXRzLXByb29mT2ZEZWxpdmVyeSIsCiAJImlkLXNtaW1lLWN0aS1ldHMtcHJvb2ZPZkRlbGl2ZXJ5IiwKLQlOSURfaWRfc21pbWVfY3RpX2V0c19wcm9vZk9mRGVsaXZlcnksMTEsJihsdmFsdWVzWzE4MjRdKSwwfSwKKwlOSURfaWRfc21pbWVfY3RpX2V0c19wcm9vZk9mRGVsaXZlcnksMTEsJihsdmFsdWVzWzE4MjJdKSwwfSwKIHsiaWQtc21pbWUtY3RpLWV0cy1wcm9vZk9mU2VuZGVyIiwiaWQtc21pbWUtY3RpLWV0cy1wcm9vZk9mU2VuZGVyIiwKLQlOSURfaWRfc21pbWVfY3RpX2V0c19wcm9vZk9mU2VuZGVyLDExLCYobHZhbHVlc1sxODM1XSksMH0sCisJTklEX2lkX3NtaW1lX2N0aV9ldHNfcHJvb2ZPZlNlbmRlciwxMSwmKGx2YWx1ZXNbMTgzM10pLDB9LAogeyJpZC1zbWltZS1jdGktZXRzLXByb29mT2ZBcHByb3ZhbCIsCiAJImlkLXNtaW1lLWN0aS1ldHMtcHJvb2ZPZkFwcHJvdmFsIiwKLQlOSURfaWRfc21pbWVfY3RpX2V0c19wcm9vZk9mQXBwcm92YWwsMTEsJihsdmFsdWVzWzE4NDZdKSwwfSwKKwlOSURfaWRfc21pbWVfY3RpX2V0c19wcm9vZk9mQXBwcm92YWwsMTEsJihsdmFsdWVzWzE4NDRdKSwwfSwKIHsiaWQtc21pbWUtY3RpLWV0cy1wcm9vZk9mQ3JlYXRpb24iLAogCSJpZC1zbWltZS1jdGktZXRzLXByb29mT2ZDcmVhdGlvbiIsCi0JTklEX2lkX3NtaW1lX2N0aV9ldHNfcHJvb2ZPZkNyZWF0aW9uLDExLCYobHZhbHVlc1sxODU3XSksMH0sCi17Ik1ENCIsIm1kNCIsTklEX21kNCw4LCYobHZhbHVlc1sxODY4XSksMH0sCi17ImlkLXBraXgtbW9kIiwiaWQtcGtpeC1tb2QiLE5JRF9pZF9wa2l4X21vZCw3LCYobHZhbHVlc1sxODc2XSksMH0sCi17ImlkLXF0IiwiaWQtcXQiLE5JRF9pZF9xdCw3LCYobHZhbHVlc1sxODgzXSksMH0sCi17ImlkLWl0IiwiaWQtaXQiLE5JRF9pZF9pdCw3LCYobHZhbHVlc1sxODkwXSksMH0sCi17ImlkLXBraXAiLCJpZC1wa2lwIixOSURfaWRfcGtpcCw3LCYobHZhbHVlc1sxODk3XSksMH0sCi17ImlkLWFsZyIsImlkLWFsZyIsTklEX2lkX2FsZyw3LCYobHZhbHVlc1sxOTA0XSksMH0sCi17ImlkLWNtYyIsImlkLWNtYyIsTklEX2lkX2NtYyw3LCYobHZhbHVlc1sxOTExXSksMH0sCi17ImlkLW9uIiwiaWQtb24iLE5JRF9pZF9vbiw3LCYobHZhbHVlc1sxOTE4XSksMH0sCi17ImlkLXBkYSIsImlkLXBkYSIsTklEX2lkX3BkYSw3LCYobHZhbHVlc1sxOTI1XSksMH0sCi17ImlkLWFjYSIsImlkLWFjYSIsTklEX2lkX2FjYSw3LCYobHZhbHVlc1sxOTMyXSksMH0sCi17ImlkLXFjcyIsImlkLXFjcyIsTklEX2lkX3Fjcyw3LCYobHZhbHVlc1sxOTM5XSksMH0sCi17ImlkLWNjdCIsImlkLWNjdCIsTklEX2lkX2NjdCw3LCYobHZhbHVlc1sxOTQ2XSksMH0sCisJTklEX2lkX3NtaW1lX2N0aV9ldHNfcHJvb2ZPZkNyZWF0aW9uLDExLCYobHZhbHVlc1sxODU1XSksMH0sCit7Ik1ENCIsIm1kNCIsTklEX21kNCw4LCYobHZhbHVlc1sxODY2XSksMH0sCit7ImlkLXBraXgtbW9kIiwiaWQtcGtpeC1tb2QiLE5JRF9pZF9wa2l4X21vZCw3LCYobHZhbHVlc1sxODc0XSksMH0sCit7ImlkLXF0IiwiaWQtcXQiLE5JRF9pZF9xdCw3LCYobHZhbHVlc1sxODgxXSksMH0sCit7ImlkLWl0IiwiaWQtaXQiLE5JRF9pZF9pdCw3LCYobHZhbHVlc1sxODg4XSksMH0sCit7ImlkLXBraXAiLCJpZC1wa2lwIixOSURfaWRfcGtpcCw3LCYobHZhbHVlc1sxODk1XSksMH0sCit7ImlkLWFsZyIsImlkLWFsZyIsTklEX2lkX2FsZyw3LCYobHZhbHVlc1sxOTAyXSksMH0sCit7ImlkLWNtYyIsImlkLWNtYyIsTklEX2lkX2NtYyw3LCYobHZhbHVlc1sxOTA5XSksMH0sCit7ImlkLW9uIiwiaWQtb24iLE5JRF9pZF9vbiw3LCYobHZhbHVlc1sxOTE2XSksMH0sCit7ImlkLXBkYSIsImlkLXBkYSIsTklEX2lkX3BkYSw3LCYobHZhbHVlc1sxOTIzXSksMH0sCit7ImlkLWFjYSIsImlkLWFjYSIsTklEX2lkX2FjYSw3LCYobHZhbHVlc1sxOTMwXSksMH0sCit7ImlkLXFjcyIsImlkLXFjcyIsTklEX2lkX3Fjcyw3LCYobHZhbHVlc1sxOTM3XSksMH0sCit7ImlkLWNjdCIsImlkLWNjdCIsTklEX2lkX2NjdCw3LCYobHZhbHVlc1sxOTQ0XSksMH0sCiB7ImlkLXBraXgxLWV4cGxpY2l0LTg4IiwiaWQtcGtpeDEtZXhwbGljaXQtODgiLAotCU5JRF9pZF9wa2l4MV9leHBsaWNpdF84OCw4LCYobHZhbHVlc1sxOTUzXSksMH0sCisJTklEX2lkX3BraXgxX2V4cGxpY2l0Xzg4LDgsJihsdmFsdWVzWzE5NTFdKSwwfSwKIHsiaWQtcGtpeDEtaW1wbGljaXQtODgiLCJpZC1wa2l4MS1pbXBsaWNpdC04OCIsCi0JTklEX2lkX3BraXgxX2ltcGxpY2l0Xzg4LDgsJihsdmFsdWVzWzE5NjFdKSwwfSwKKwlOSURfaWRfcGtpeDFfaW1wbGljaXRfODgsOCwmKGx2YWx1ZXNbMTk1OV0pLDB9LAogeyJpZC1wa2l4MS1leHBsaWNpdC05MyIsImlkLXBraXgxLWV4cGxpY2l0LTkzIiwKLQlOSURfaWRfcGtpeDFfZXhwbGljaXRfOTMsOCwmKGx2YWx1ZXNbMTk2OV0pLDB9LAorCU5JRF9pZF9wa2l4MV9leHBsaWNpdF85Myw4LCYobHZhbHVlc1sxOTY3XSksMH0sCiB7ImlkLXBraXgxLWltcGxpY2l0LTkzIiwiaWQtcGtpeDEtaW1wbGljaXQtOTMiLAotCU5JRF9pZF9wa2l4MV9pbXBsaWNpdF85Myw4LCYobHZhbHVlc1sxOTc3XSksMH0sCi17ImlkLW1vZC1jcm1mIiwiaWQtbW9kLWNybWYiLE5JRF9pZF9tb2RfY3JtZiw4LCYobHZhbHVlc1sxOTg1XSksMH0sCi17ImlkLW1vZC1jbWMiLCJpZC1tb2QtY21jIixOSURfaWRfbW9kX2NtYyw4LCYobHZhbHVlc1sxOTkzXSksMH0sCisJTklEX2lkX3BraXgxX2ltcGxpY2l0XzkzLDgsJihsdmFsdWVzWzE5NzVdKSwwfSwKK3siaWQtbW9kLWNybWYiLCJpZC1tb2QtY3JtZiIsTklEX2lkX21vZF9jcm1mLDgsJihsdmFsdWVzWzE5ODNdKSwwfSwKK3siaWQtbW9kLWNtYyIsImlkLW1vZC1jbWMiLE5JRF9pZF9tb2RfY21jLDgsJihsdmFsdWVzWzE5OTFdKSwwfSwKIHsiaWQtbW9kLWtlYS1wcm9maWxlLTg4IiwiaWQtbW9kLWtlYS1wcm9maWxlLTg4IiwKLQlOSURfaWRfbW9kX2tlYV9wcm9maWxlXzg4LDgsJihsdmFsdWVzWzIwMDFdKSwwfSwKKwlOSURfaWRfbW9kX2tlYV9wcm9maWxlXzg4LDgsJihsdmFsdWVzWzE5OTldKSwwfSwKIHsiaWQtbW9kLWtlYS1wcm9maWxlLTkzIiwiaWQtbW9kLWtlYS1wcm9maWxlLTkzIiwKLQlOSURfaWRfbW9kX2tlYV9wcm9maWxlXzkzLDgsJihsdmFsdWVzWzIwMDldKSwwfSwKLXsiaWQtbW9kLWNtcCIsImlkLW1vZC1jbXAiLE5JRF9pZF9tb2RfY21wLDgsJihsdmFsdWVzWzIwMTddKSwwfSwKKwlOSURfaWRfbW9kX2tlYV9wcm9maWxlXzkzLDgsJihsdmFsdWVzWzIwMDddKSwwfSwKK3siaWQtbW9kLWNtcCIsImlkLW1vZC1jbXAiLE5JRF9pZF9tb2RfY21wLDgsJihsdmFsdWVzWzIwMTVdKSwwfSwKIHsiaWQtbW9kLXF1YWxpZmllZC1jZXJ0LTg4IiwiaWQtbW9kLXF1YWxpZmllZC1jZXJ0LTg4IiwKLQlOSURfaWRfbW9kX3F1YWxpZmllZF9jZXJ0Xzg4LDgsJihsdmFsdWVzWzIwMjVdKSwwfSwKKwlOSURfaWRfbW9kX3F1YWxpZmllZF9jZXJ0Xzg4LDgsJihsdmFsdWVzWzIwMjNdKSwwfSwKIHsiaWQtbW9kLXF1YWxpZmllZC1jZXJ0LTkzIiwiaWQtbW9kLXF1YWxpZmllZC1jZXJ0LTkzIiwKLQlOSURfaWRfbW9kX3F1YWxpZmllZF9jZXJ0XzkzLDgsJihsdmFsdWVzWzIwMzNdKSwwfSwKKwlOSURfaWRfbW9kX3F1YWxpZmllZF9jZXJ0XzkzLDgsJihsdmFsdWVzWzIwMzFdKSwwfSwKIHsiaWQtbW9kLWF0dHJpYnV0ZS1jZXJ0IiwiaWQtbW9kLWF0dHJpYnV0ZS1jZXJ0IiwKLQlOSURfaWRfbW9kX2F0dHJpYnV0ZV9jZXJ0LDgsJihsdmFsdWVzWzIwNDFdKSwwfSwKKwlOSURfaWRfbW9kX2F0dHJpYnV0ZV9jZXJ0LDgsJihsdmFsdWVzWzIwMzldKSwwfSwKIHsiaWQtbW9kLXRpbWVzdGFtcC1wcm90b2NvbCIsImlkLW1vZC10aW1lc3RhbXAtcHJvdG9jb2wiLAotCU5JRF9pZF9tb2RfdGltZXN0YW1wX3Byb3RvY29sLDgsJihsdmFsdWVzWzIwNDldKSwwfSwKLXsiaWQtbW9kLW9jc3AiLCJpZC1tb2Qtb2NzcCIsTklEX2lkX21vZF9vY3NwLDgsJihsdmFsdWVzWzIwNTddKSwwfSwKLXsiaWQtbW9kLWR2Y3MiLCJpZC1tb2QtZHZjcyIsTklEX2lkX21vZF9kdmNzLDgsJihsdmFsdWVzWzIwNjVdKSwwfSwKKwlOSURfaWRfbW9kX3RpbWVzdGFtcF9wcm90b2NvbCw4LCYobHZhbHVlc1syMDQ3XSksMH0sCit7ImlkLW1vZC1vY3NwIiwiaWQtbW9kLW9jc3AiLE5JRF9pZF9tb2Rfb2NzcCw4LCYobHZhbHVlc1syMDU1XSksMH0sCit7ImlkLW1vZC1kdmNzIiwiaWQtbW9kLWR2Y3MiLE5JRF9pZF9tb2RfZHZjcyw4LCYobHZhbHVlc1syMDYzXSksMH0sCiB7ImlkLW1vZC1jbXAyMDAwIiwiaWQtbW9kLWNtcDIwMDAiLE5JRF9pZF9tb2RfY21wMjAwMCw4LAotCSYobHZhbHVlc1syMDczXSksMH0sCi17ImJpb21ldHJpY0luZm8iLCJCaW9tZXRyaWMgSW5mbyIsTklEX2Jpb21ldHJpY0luZm8sOCwmKGx2YWx1ZXNbMjA4MV0pLDB9LAoteyJxY1N0YXRlbWVudHMiLCJxY1N0YXRlbWVudHMiLE5JRF9xY1N0YXRlbWVudHMsOCwmKGx2YWx1ZXNbMjA4OV0pLDB9LAorCSYobHZhbHVlc1syMDcxXSksMH0sCit7ImJpb21ldHJpY0luZm8iLCJCaW9tZXRyaWMgSW5mbyIsTklEX2Jpb21ldHJpY0luZm8sOCwmKGx2YWx1ZXNbMjA3OV0pLDB9LAoreyJxY1N0YXRlbWVudHMiLCJxY1N0YXRlbWVudHMiLE5JRF9xY1N0YXRlbWVudHMsOCwmKGx2YWx1ZXNbMjA4N10pLDB9LAogeyJhYy1hdWRpdEVudGl0eSIsImFjLWF1ZGl0RW50aXR5IixOSURfYWNfYXVkaXRFbnRpdHksOCwKLQkmKGx2YWx1ZXNbMjA5N10pLDB9LAoteyJhYy10YXJnZXRpbmciLCJhYy10YXJnZXRpbmciLE5JRF9hY190YXJnZXRpbmcsOCwmKGx2YWx1ZXNbMjEwNV0pLDB9LAoteyJhYUNvbnRyb2xzIiwiYWFDb250cm9scyIsTklEX2FhQ29udHJvbHMsOCwmKGx2YWx1ZXNbMjExM10pLDB9LAorCSYobHZhbHVlc1syMDk1XSksMH0sCit7ImFjLXRhcmdldGluZyIsImFjLXRhcmdldGluZyIsTklEX2FjX3RhcmdldGluZyw4LCYobHZhbHVlc1syMTAzXSksMH0sCit7ImFhQ29udHJvbHMiLCJhYUNvbnRyb2xzIixOSURfYWFDb250cm9scyw4LCYobHZhbHVlc1syMTExXSksMH0sCiB7InNiZ3AtaXBBZGRyQmxvY2siLCJzYmdwLWlwQWRkckJsb2NrIixOSURfc2JncF9pcEFkZHJCbG9jayw4LAotCSYobHZhbHVlc1syMTIxXSksMH0sCisJJihsdmFsdWVzWzIxMTldKSwwfSwKIHsic2JncC1hdXRvbm9tb3VzU3lzTnVtIiwic2JncC1hdXRvbm9tb3VzU3lzTnVtIiwKLQlOSURfc2JncF9hdXRvbm9tb3VzU3lzTnVtLDgsJihsdmFsdWVzWzIxMjldKSwwfSwKKwlOSURfc2JncF9hdXRvbm9tb3VzU3lzTnVtLDgsJihsdmFsdWVzWzIxMjddKSwwfSwKIHsic2JncC1yb3V0ZXJJZGVudGlmaWVyIiwic2JncC1yb3V0ZXJJZGVudGlmaWVyIiwKLQlOSURfc2JncF9yb3V0ZXJJZGVudGlmaWVyLDgsJihsdmFsdWVzWzIxMzddKSwwfSwKLXsidGV4dE5vdGljZSIsInRleHROb3RpY2UiLE5JRF90ZXh0Tm90aWNlLDgsJihsdmFsdWVzWzIxNDVdKSwwfSwKKwlOSURfc2JncF9yb3V0ZXJJZGVudGlmaWVyLDgsJihsdmFsdWVzWzIxMzVdKSwwfSwKK3sidGV4dE5vdGljZSIsInRleHROb3RpY2UiLE5JRF90ZXh0Tm90aWNlLDgsJihsdmFsdWVzWzIxNDNdKSwwfSwKIHsiaXBzZWNFbmRTeXN0ZW0iLCJJUFNlYyBFbmQgU3lzdGVtIixOSURfaXBzZWNFbmRTeXN0ZW0sOCwKLQkmKGx2YWx1ZXNbMjE1M10pLDB9LAoteyJpcHNlY1R1bm5lbCIsIklQU2VjIFR1bm5lbCIsTklEX2lwc2VjVHVubmVsLDgsJihsdmFsdWVzWzIxNjFdKSwwfSwKLXsiaXBzZWNVc2VyIiwiSVBTZWMgVXNlciIsTklEX2lwc2VjVXNlciw4LCYobHZhbHVlc1syMTY5XSksMH0sCi17IkRWQ1MiLCJkdmNzIixOSURfZHZjcyw4LCYobHZhbHVlc1syMTc3XSksMH0sCisJJihsdmFsdWVzWzIxNTFdKSwwfSwKK3siaXBzZWNUdW5uZWwiLCJJUFNlYyBUdW5uZWwiLE5JRF9pcHNlY1R1bm5lbCw4LCYobHZhbHVlc1syMTU5XSksMH0sCit7Imlwc2VjVXNlciIsIklQU2VjIFVzZXIiLE5JRF9pcHNlY1VzZXIsOCwmKGx2YWx1ZXNbMjE2N10pLDB9LAoreyJEVkNTIiwiZHZjcyIsTklEX2R2Y3MsOCwmKGx2YWx1ZXNbMjE3NV0pLDB9LAogeyJpZC1pdC1jYVByb3RFbmNDZXJ0IiwiaWQtaXQtY2FQcm90RW5jQ2VydCIsTklEX2lkX2l0X2NhUHJvdEVuY0NlcnQsCi0JOCwmKGx2YWx1ZXNbMjE4NV0pLDB9LAorCTgsJihsdmFsdWVzWzIxODNdKSwwfSwKIHsiaWQtaXQtc2lnbktleVBhaXJUeXBlcyIsImlkLWl0LXNpZ25LZXlQYWlyVHlwZXMiLAotCU5JRF9pZF9pdF9zaWduS2V5UGFpclR5cGVzLDgsJihsdmFsdWVzWzIxOTNdKSwwfSwKKwlOSURfaWRfaXRfc2lnbktleVBhaXJUeXBlcyw4LCYobHZhbHVlc1syMTkxXSksMH0sCiB7ImlkLWl0LWVuY0tleVBhaXJUeXBlcyIsImlkLWl0LWVuY0tleVBhaXJUeXBlcyIsCi0JTklEX2lkX2l0X2VuY0tleVBhaXJUeXBlcyw4LCYobHZhbHVlc1syMjAxXSksMH0sCisJTklEX2lkX2l0X2VuY0tleVBhaXJUeXBlcyw4LCYobHZhbHVlc1syMTk5XSksMH0sCiB7ImlkLWl0LXByZWZlcnJlZFN5bW1BbGciLCJpZC1pdC1wcmVmZXJyZWRTeW1tQWxnIiwKLQlOSURfaWRfaXRfcHJlZmVycmVkU3ltbUFsZyw4LCYobHZhbHVlc1syMjA5XSksMH0sCisJTklEX2lkX2l0X3ByZWZlcnJlZFN5bW1BbGcsOCwmKGx2YWx1ZXNbMjIwN10pLDB9LAogeyJpZC1pdC1jYUtleVVwZGF0ZUluZm8iLCJpZC1pdC1jYUtleVVwZGF0ZUluZm8iLAotCU5JRF9pZF9pdF9jYUtleVVwZGF0ZUluZm8sOCwmKGx2YWx1ZXNbMjIxN10pLDB9LAorCU5JRF9pZF9pdF9jYUtleVVwZGF0ZUluZm8sOCwmKGx2YWx1ZXNbMjIxNV0pLDB9LAogeyJpZC1pdC1jdXJyZW50Q1JMIiwiaWQtaXQtY3VycmVudENSTCIsTklEX2lkX2l0X2N1cnJlbnRDUkwsOCwKLQkmKGx2YWx1ZXNbMjIyNV0pLDB9LAorCSYobHZhbHVlc1syMjIzXSksMH0sCiB7ImlkLWl0LXVuc3VwcG9ydGVkT0lEcyIsImlkLWl0LXVuc3VwcG9ydGVkT0lEcyIsCi0JTklEX2lkX2l0X3Vuc3VwcG9ydGVkT0lEcyw4LCYobHZhbHVlc1syMjMzXSksMH0sCisJTklEX2lkX2l0X3Vuc3VwcG9ydGVkT0lEcyw4LCYobHZhbHVlc1syMjMxXSksMH0sCiB7ImlkLWl0LXN1YnNjcmlwdGlvblJlcXVlc3QiLCJpZC1pdC1zdWJzY3JpcHRpb25SZXF1ZXN0IiwKLQlOSURfaWRfaXRfc3Vic2NyaXB0aW9uUmVxdWVzdCw4LCYobHZhbHVlc1syMjQxXSksMH0sCisJTklEX2lkX2l0X3N1YnNjcmlwdGlvblJlcXVlc3QsOCwmKGx2YWx1ZXNbMjIzOV0pLDB9LAogeyJpZC1pdC1zdWJzY3JpcHRpb25SZXNwb25zZSIsImlkLWl0LXN1YnNjcmlwdGlvblJlc3BvbnNlIiwKLQlOSURfaWRfaXRfc3Vic2NyaXB0aW9uUmVzcG9uc2UsOCwmKGx2YWx1ZXNbMjI0OV0pLDB9LAorCU5JRF9pZF9pdF9zdWJzY3JpcHRpb25SZXNwb25zZSw4LCYobHZhbHVlc1syMjQ3XSksMH0sCiB7ImlkLWl0LWtleVBhaXJQYXJhbVJlcSIsImlkLWl0LWtleVBhaXJQYXJhbVJlcSIsCi0JTklEX2lkX2l0X2tleVBhaXJQYXJhbVJlcSw4LCYobHZhbHVlc1syMjU3XSksMH0sCisJTklEX2lkX2l0X2tleVBhaXJQYXJhbVJlcSw4LCYobHZhbHVlc1syMjU1XSksMH0sCiB7ImlkLWl0LWtleVBhaXJQYXJhbVJlcCIsImlkLWl0LWtleVBhaXJQYXJhbVJlcCIsCi0JTklEX2lkX2l0X2tleVBhaXJQYXJhbVJlcCw4LCYobHZhbHVlc1syMjY1XSksMH0sCisJTklEX2lkX2l0X2tleVBhaXJQYXJhbVJlcCw4LCYobHZhbHVlc1syMjYzXSksMH0sCiB7ImlkLWl0LXJldlBhc3NwaHJhc2UiLCJpZC1pdC1yZXZQYXNzcGhyYXNlIixOSURfaWRfaXRfcmV2UGFzc3BocmFzZSwKLQk4LCYobHZhbHVlc1syMjczXSksMH0sCisJOCwmKGx2YWx1ZXNbMjI3MV0pLDB9LAogeyJpZC1pdC1pbXBsaWNpdENvbmZpcm0iLCJpZC1pdC1pbXBsaWNpdENvbmZpcm0iLAotCU5JRF9pZF9pdF9pbXBsaWNpdENvbmZpcm0sOCwmKGx2YWx1ZXNbMjI4MV0pLDB9LAorCU5JRF9pZF9pdF9pbXBsaWNpdENvbmZpcm0sOCwmKGx2YWx1ZXNbMjI3OV0pLDB9LAogeyJpZC1pdC1jb25maXJtV2FpdFRpbWUiLCJpZC1pdC1jb25maXJtV2FpdFRpbWUiLAotCU5JRF9pZF9pdF9jb25maXJtV2FpdFRpbWUsOCwmKGx2YWx1ZXNbMjI4OV0pLDB9LAorCU5JRF9pZF9pdF9jb25maXJtV2FpdFRpbWUsOCwmKGx2YWx1ZXNbMjI4N10pLDB9LAogeyJpZC1pdC1vcmlnUEtJTWVzc2FnZSIsImlkLWl0LW9yaWdQS0lNZXNzYWdlIiwKLQlOSURfaWRfaXRfb3JpZ1BLSU1lc3NhZ2UsOCwmKGx2YWx1ZXNbMjI5N10pLDB9LAoteyJpZC1yZWdDdHJsIiwiaWQtcmVnQ3RybCIsTklEX2lkX3JlZ0N0cmwsOCwmKGx2YWx1ZXNbMjMwNV0pLDB9LAoteyJpZC1yZWdJbmZvIiwiaWQtcmVnSW5mbyIsTklEX2lkX3JlZ0luZm8sOCwmKGx2YWx1ZXNbMjMxM10pLDB9LAorCU5JRF9pZF9pdF9vcmlnUEtJTWVzc2FnZSw4LCYobHZhbHVlc1syMjk1XSksMH0sCit7ImlkLXJlZ0N0cmwiLCJpZC1yZWdDdHJsIixOSURfaWRfcmVnQ3RybCw4LCYobHZhbHVlc1syMzAzXSksMH0sCit7ImlkLXJlZ0luZm8iLCJpZC1yZWdJbmZvIixOSURfaWRfcmVnSW5mbyw4LCYobHZhbHVlc1syMzExXSksMH0sCiB7ImlkLXJlZ0N0cmwtcmVnVG9rZW4iLCJpZC1yZWdDdHJsLXJlZ1Rva2VuIixOSURfaWRfcmVnQ3RybF9yZWdUb2tlbiwKLQk5LCYobHZhbHVlc1syMzIxXSksMH0sCisJOSwmKGx2YWx1ZXNbMjMxOV0pLDB9LAogeyJpZC1yZWdDdHJsLWF1dGhlbnRpY2F0b3IiLCJpZC1yZWdDdHJsLWF1dGhlbnRpY2F0b3IiLAotCU5JRF9pZF9yZWdDdHJsX2F1dGhlbnRpY2F0b3IsOSwmKGx2YWx1ZXNbMjMzMF0pLDB9LAorCU5JRF9pZF9yZWdDdHJsX2F1dGhlbnRpY2F0b3IsOSwmKGx2YWx1ZXNbMjMyOF0pLDB9LAogeyJpZC1yZWdDdHJsLXBraVB1YmxpY2F0aW9uSW5mbyIsImlkLXJlZ0N0cmwtcGtpUHVibGljYXRpb25JbmZvIiwKLQlOSURfaWRfcmVnQ3RybF9wa2lQdWJsaWNhdGlvbkluZm8sOSwmKGx2YWx1ZXNbMjMzOV0pLDB9LAorCU5JRF9pZF9yZWdDdHJsX3BraVB1YmxpY2F0aW9uSW5mbyw5LCYobHZhbHVlc1syMzM3XSksMH0sCiB7ImlkLXJlZ0N0cmwtcGtpQXJjaGl2ZU9wdGlvbnMiLCJpZC1yZWdDdHJsLXBraUFyY2hpdmVPcHRpb25zIiwKLQlOSURfaWRfcmVnQ3RybF9wa2lBcmNoaXZlT3B0aW9ucyw5LCYobHZhbHVlc1syMzQ4XSksMH0sCisJTklEX2lkX3JlZ0N0cmxfcGtpQXJjaGl2ZU9wdGlvbnMsOSwmKGx2YWx1ZXNbMjM0Nl0pLDB9LAogeyJpZC1yZWdDdHJsLW9sZENlcnRJRCIsImlkLXJlZ0N0cmwtb2xkQ2VydElEIiwKLQlOSURfaWRfcmVnQ3RybF9vbGRDZXJ0SUQsOSwmKGx2YWx1ZXNbMjM1N10pLDB9LAorCU5JRF9pZF9yZWdDdHJsX29sZENlcnRJRCw5LCYobHZhbHVlc1syMzU1XSksMH0sCiB7ImlkLXJlZ0N0cmwtcHJvdG9jb2xFbmNyS2V5IiwiaWQtcmVnQ3RybC1wcm90b2NvbEVuY3JLZXkiLAotCU5JRF9pZF9yZWdDdHJsX3Byb3RvY29sRW5jcktleSw5LCYobHZhbHVlc1syMzY2XSksMH0sCisJTklEX2lkX3JlZ0N0cmxfcHJvdG9jb2xFbmNyS2V5LDksJihsdmFsdWVzWzIzNjRdKSwwfSwKIHsiaWQtcmVnSW5mby11dGY4UGFpcnMiLCJpZC1yZWdJbmZvLXV0ZjhQYWlycyIsCi0JTklEX2lkX3JlZ0luZm9fdXRmOFBhaXJzLDksJihsdmFsdWVzWzIzNzVdKSwwfSwKKwlOSURfaWRfcmVnSW5mb191dGY4UGFpcnMsOSwmKGx2YWx1ZXNbMjM3M10pLDB9LAogeyJpZC1yZWdJbmZvLWNlcnRSZXEiLCJpZC1yZWdJbmZvLWNlcnRSZXEiLE5JRF9pZF9yZWdJbmZvX2NlcnRSZXEsOSwKLQkmKGx2YWx1ZXNbMjM4NF0pLDB9LAoteyJpZC1hbGctZGVzNDAiLCJpZC1hbGctZGVzNDAiLE5JRF9pZF9hbGdfZGVzNDAsOCwmKGx2YWx1ZXNbMjM5M10pLDB9LAorCSYobHZhbHVlc1syMzgyXSksMH0sCit7ImlkLWFsZy1kZXM0MCIsImlkLWFsZy1kZXM0MCIsTklEX2lkX2FsZ19kZXM0MCw4LCYobHZhbHVlc1syMzkxXSksMH0sCiB7ImlkLWFsZy1ub1NpZ25hdHVyZSIsImlkLWFsZy1ub1NpZ25hdHVyZSIsTklEX2lkX2FsZ19ub1NpZ25hdHVyZSw4LAotCSYobHZhbHVlc1syNDAxXSksMH0sCisJJihsdmFsdWVzWzIzOTldKSwwfSwKIHsiaWQtYWxnLWRoLXNpZy1obWFjLXNoYTEiLCJpZC1hbGctZGgtc2lnLWhtYWMtc2hhMSIsCi0JTklEX2lkX2FsZ19kaF9zaWdfaG1hY19zaGExLDgsJihsdmFsdWVzWzI0MDldKSwwfSwKLXsiaWQtYWxnLWRoLXBvcCIsImlkLWFsZy1kaC1wb3AiLE5JRF9pZF9hbGdfZGhfcG9wLDgsJihsdmFsdWVzWzI0MTddKSwwfSwKKwlOSURfaWRfYWxnX2RoX3NpZ19obWFjX3NoYTEsOCwmKGx2YWx1ZXNbMjQwN10pLDB9LAoreyJpZC1hbGctZGgtcG9wIiwiaWQtYWxnLWRoLXBvcCIsTklEX2lkX2FsZ19kaF9wb3AsOCwmKGx2YWx1ZXNbMjQxNV0pLDB9LAogeyJpZC1jbWMtc3RhdHVzSW5mbyIsImlkLWNtYy1zdGF0dXNJbmZvIixOSURfaWRfY21jX3N0YXR1c0luZm8sOCwKLQkmKGx2YWx1ZXNbMjQyNV0pLDB9LAorCSYobHZhbHVlc1syNDIzXSksMH0sCiB7ImlkLWNtYy1pZGVudGlmaWNhdGlvbiIsImlkLWNtYy1pZGVudGlmaWNhdGlvbiIsCi0JTklEX2lkX2NtY19pZGVudGlmaWNhdGlvbiw4LCYobHZhbHVlc1syNDMzXSksMH0sCisJTklEX2lkX2NtY19pZGVudGlmaWNhdGlvbiw4LCYobHZhbHVlc1syNDMxXSksMH0sCiB7ImlkLWNtYy1pZGVudGl0eVByb29mIiwiaWQtY21jLWlkZW50aXR5UHJvb2YiLAotCU5JRF9pZF9jbWNfaWRlbnRpdHlQcm9vZiw4LCYobHZhbHVlc1syNDQxXSksMH0sCisJTklEX2lkX2NtY19pZGVudGl0eVByb29mLDgsJihsdmFsdWVzWzI0MzldKSwwfSwKIHsiaWQtY21jLWRhdGFSZXR1cm4iLCJpZC1jbWMtZGF0YVJldHVybiIsTklEX2lkX2NtY19kYXRhUmV0dXJuLDgsCi0JJihsdmFsdWVzWzI0NDldKSwwfSwKKwkmKGx2YWx1ZXNbMjQ0N10pLDB9LAogeyJpZC1jbWMtdHJhbnNhY3Rpb25JZCIsImlkLWNtYy10cmFuc2FjdGlvbklkIiwKLQlOSURfaWRfY21jX3RyYW5zYWN0aW9uSWQsOCwmKGx2YWx1ZXNbMjQ1N10pLDB9LAorCU5JRF9pZF9jbWNfdHJhbnNhY3Rpb25JZCw4LCYobHZhbHVlc1syNDU1XSksMH0sCiB7ImlkLWNtYy1zZW5kZXJOb25jZSIsImlkLWNtYy1zZW5kZXJOb25jZSIsTklEX2lkX2NtY19zZW5kZXJOb25jZSw4LAotCSYobHZhbHVlc1syNDY1XSksMH0sCisJJihsdmFsdWVzWzI0NjNdKSwwfSwKIHsiaWQtY21jLXJlY2lwaWVudE5vbmNlIiwiaWQtY21jLXJlY2lwaWVudE5vbmNlIiwKLQlOSURfaWRfY21jX3JlY2lwaWVudE5vbmNlLDgsJihsdmFsdWVzWzI0NzNdKSwwfSwKKwlOSURfaWRfY21jX3JlY2lwaWVudE5vbmNlLDgsJihsdmFsdWVzWzI0NzFdKSwwfSwKIHsiaWQtY21jLWFkZEV4dGVuc2lvbnMiLCJpZC1jbWMtYWRkRXh0ZW5zaW9ucyIsCi0JTklEX2lkX2NtY19hZGRFeHRlbnNpb25zLDgsJihsdmFsdWVzWzI0ODFdKSwwfSwKKwlOSURfaWRfY21jX2FkZEV4dGVuc2lvbnMsOCwmKGx2YWx1ZXNbMjQ3OV0pLDB9LAogeyJpZC1jbWMtZW5jcnlwdGVkUE9QIiwiaWQtY21jLWVuY3J5cHRlZFBPUCIsTklEX2lkX2NtY19lbmNyeXB0ZWRQT1AsCi0JOCwmKGx2YWx1ZXNbMjQ4OV0pLDB9LAorCTgsJihsdmFsdWVzWzI0ODddKSwwfSwKIHsiaWQtY21jLWRlY3J5cHRlZFBPUCIsImlkLWNtYy1kZWNyeXB0ZWRQT1AiLE5JRF9pZF9jbWNfZGVjcnlwdGVkUE9QLAotCTgsJihsdmFsdWVzWzI0OTddKSwwfSwKKwk4LCYobHZhbHVlc1syNDk1XSksMH0sCiB7ImlkLWNtYy1scmFQT1BXaXRuZXNzIiwiaWQtY21jLWxyYVBPUFdpdG5lc3MiLAotCU5JRF9pZF9jbWNfbHJhUE9QV2l0bmVzcyw4LCYobHZhbHVlc1syNTA1XSksMH0sCisJTklEX2lkX2NtY19scmFQT1BXaXRuZXNzLDgsJihsdmFsdWVzWzI1MDNdKSwwfSwKIHsiaWQtY21jLWdldENlcnQiLCJpZC1jbWMtZ2V0Q2VydCIsTklEX2lkX2NtY19nZXRDZXJ0LDgsCi0JJihsdmFsdWVzWzI1MTNdKSwwfSwKLXsiaWQtY21jLWdldENSTCIsImlkLWNtYy1nZXRDUkwiLE5JRF9pZF9jbWNfZ2V0Q1JMLDgsJihsdmFsdWVzWzI1MjFdKSwwfSwKKwkmKGx2YWx1ZXNbMjUxMV0pLDB9LAoreyJpZC1jbWMtZ2V0Q1JMIiwiaWQtY21jLWdldENSTCIsTklEX2lkX2NtY19nZXRDUkwsOCwmKGx2YWx1ZXNbMjUxOV0pLDB9LAogeyJpZC1jbWMtcmV2b2tlUmVxdWVzdCIsImlkLWNtYy1yZXZva2VSZXF1ZXN0IiwKLQlOSURfaWRfY21jX3Jldm9rZVJlcXVlc3QsOCwmKGx2YWx1ZXNbMjUyOV0pLDB9LAorCU5JRF9pZF9jbWNfcmV2b2tlUmVxdWVzdCw4LCYobHZhbHVlc1syNTI3XSksMH0sCiB7ImlkLWNtYy1yZWdJbmZvIiwiaWQtY21jLXJlZ0luZm8iLE5JRF9pZF9jbWNfcmVnSW5mbyw4LAotCSYobHZhbHVlc1syNTM3XSksMH0sCisJJihsdmFsdWVzWzI1MzVdKSwwfSwKIHsiaWQtY21jLXJlc3BvbnNlSW5mbyIsImlkLWNtYy1yZXNwb25zZUluZm8iLE5JRF9pZF9jbWNfcmVzcG9uc2VJbmZvLAotCTgsJihsdmFsdWVzWzI1NDVdKSwwfSwKKwk4LCYobHZhbHVlc1syNTQzXSksMH0sCiB7ImlkLWNtYy1xdWVyeVBlbmRpbmciLCJpZC1jbWMtcXVlcnlQZW5kaW5nIixOSURfaWRfY21jX3F1ZXJ5UGVuZGluZywKLQk4LCYobHZhbHVlc1syNTUzXSksMH0sCisJOCwmKGx2YWx1ZXNbMjU1MV0pLDB9LAogeyJpZC1jbWMtcG9wTGlua1JhbmRvbSIsImlkLWNtYy1wb3BMaW5rUmFuZG9tIiwKLQlOSURfaWRfY21jX3BvcExpbmtSYW5kb20sOCwmKGx2YWx1ZXNbMjU2MV0pLDB9LAorCU5JRF9pZF9jbWNfcG9wTGlua1JhbmRvbSw4LCYobHZhbHVlc1syNTU5XSksMH0sCiB7ImlkLWNtYy1wb3BMaW5rV2l0bmVzcyIsImlkLWNtYy1wb3BMaW5rV2l0bmVzcyIsCi0JTklEX2lkX2NtY19wb3BMaW5rV2l0bmVzcyw4LCYobHZhbHVlc1syNTY5XSksMH0sCisJTklEX2lkX2NtY19wb3BMaW5rV2l0bmVzcyw4LCYobHZhbHVlc1syNTY3XSksMH0sCiB7ImlkLWNtYy1jb25maXJtQ2VydEFjY2VwdGFuY2UiLCJpZC1jbWMtY29uZmlybUNlcnRBY2NlcHRhbmNlIiwKLQlOSURfaWRfY21jX2NvbmZpcm1DZXJ0QWNjZXB0YW5jZSw4LCYobHZhbHVlc1syNTc3XSksMH0sCisJTklEX2lkX2NtY19jb25maXJtQ2VydEFjY2VwdGFuY2UsOCwmKGx2YWx1ZXNbMjU3NV0pLDB9LAogeyJpZC1vbi1wZXJzb25hbERhdGEiLCJpZC1vbi1wZXJzb25hbERhdGEiLE5JRF9pZF9vbl9wZXJzb25hbERhdGEsOCwKLQkmKGx2YWx1ZXNbMjU4NV0pLDB9LAorCSYobHZhbHVlc1syNTgzXSksMH0sCiB7ImlkLXBkYS1kYXRlT2ZCaXJ0aCIsImlkLXBkYS1kYXRlT2ZCaXJ0aCIsTklEX2lkX3BkYV9kYXRlT2ZCaXJ0aCw4LAotCSYobHZhbHVlc1syNTkzXSksMH0sCisJJihsdmFsdWVzWzI1OTFdKSwwfSwKIHsiaWQtcGRhLXBsYWNlT2ZCaXJ0aCIsImlkLXBkYS1wbGFjZU9mQmlydGgiLE5JRF9pZF9wZGFfcGxhY2VPZkJpcnRoLAotCTgsJihsdmFsdWVzWzI2MDFdKSwwfSwKKwk4LCYobHZhbHVlc1syNTk5XSksMH0sCiB7TlVMTCxOVUxMLE5JRF91bmRlZiwwLE5VTEwsMH0sCi17ImlkLXBkYS1nZW5kZXIiLCJpZC1wZGEtZ2VuZGVyIixOSURfaWRfcGRhX2dlbmRlciw4LCYobHZhbHVlc1syNjA5XSksMH0sCit7ImlkLXBkYS1nZW5kZXIiLCJpZC1wZGEtZ2VuZGVyIixOSURfaWRfcGRhX2dlbmRlciw4LCYobHZhbHVlc1syNjA3XSksMH0sCiB7ImlkLXBkYS1jb3VudHJ5T2ZDaXRpemVuc2hpcCIsImlkLXBkYS1jb3VudHJ5T2ZDaXRpemVuc2hpcCIsCi0JTklEX2lkX3BkYV9jb3VudHJ5T2ZDaXRpemVuc2hpcCw4LCYobHZhbHVlc1syNjE3XSksMH0sCisJTklEX2lkX3BkYV9jb3VudHJ5T2ZDaXRpemVuc2hpcCw4LCYobHZhbHVlc1syNjE1XSksMH0sCiB7ImlkLXBkYS1jb3VudHJ5T2ZSZXNpZGVuY2UiLCJpZC1wZGEtY291bnRyeU9mUmVzaWRlbmNlIiwKLQlOSURfaWRfcGRhX2NvdW50cnlPZlJlc2lkZW5jZSw4LCYobHZhbHVlc1syNjI1XSksMH0sCisJTklEX2lkX3BkYV9jb3VudHJ5T2ZSZXNpZGVuY2UsOCwmKGx2YWx1ZXNbMjYyM10pLDB9LAogeyJpZC1hY2EtYXV0aGVudGljYXRpb25JbmZvIiwiaWQtYWNhLWF1dGhlbnRpY2F0aW9uSW5mbyIsCi0JTklEX2lkX2FjYV9hdXRoZW50aWNhdGlvbkluZm8sOCwmKGx2YWx1ZXNbMjYzM10pLDB9LAorCU5JRF9pZF9hY2FfYXV0aGVudGljYXRpb25JbmZvLDgsJihsdmFsdWVzWzI2MzFdKSwwfSwKIHsiaWQtYWNhLWFjY2Vzc0lkZW50aXR5IiwiaWQtYWNhLWFjY2Vzc0lkZW50aXR5IiwKLQlOSURfaWRfYWNhX2FjY2Vzc0lkZW50aXR5LDgsJihsdmFsdWVzWzI2NDFdKSwwfSwKKwlOSURfaWRfYWNhX2FjY2Vzc0lkZW50aXR5LDgsJihsdmFsdWVzWzI2MzldKSwwfSwKIHsiaWQtYWNhLWNoYXJnaW5nSWRlbnRpdHkiLCJpZC1hY2EtY2hhcmdpbmdJZGVudGl0eSIsCi0JTklEX2lkX2FjYV9jaGFyZ2luZ0lkZW50aXR5LDgsJihsdmFsdWVzWzI2NDldKSwwfSwKLXsiaWQtYWNhLWdyb3VwIiwiaWQtYWNhLWdyb3VwIixOSURfaWRfYWNhX2dyb3VwLDgsJihsdmFsdWVzWzI2NTddKSwwfSwKLXsiaWQtYWNhLXJvbGUiLCJpZC1hY2Etcm9sZSIsTklEX2lkX2FjYV9yb2xlLDgsJihsdmFsdWVzWzI2NjVdKSwwfSwKKwlOSURfaWRfYWNhX2NoYXJnaW5nSWRlbnRpdHksOCwmKGx2YWx1ZXNbMjY0N10pLDB9LAoreyJpZC1hY2EtZ3JvdXAiLCJpZC1hY2EtZ3JvdXAiLE5JRF9pZF9hY2FfZ3JvdXAsOCwmKGx2YWx1ZXNbMjY1NV0pLDB9LAoreyJpZC1hY2Etcm9sZSIsImlkLWFjYS1yb2xlIixOSURfaWRfYWNhX3JvbGUsOCwmKGx2YWx1ZXNbMjY2M10pLDB9LAogeyJpZC1xY3MtcGtpeFFDU3ludGF4LXYxIiwiaWQtcWNzLXBraXhRQ1N5bnRheC12MSIsCi0JTklEX2lkX3Fjc19wa2l4UUNTeW50YXhfdjEsOCwmKGx2YWx1ZXNbMjY3M10pLDB9LAoteyJpZC1jY3QtY3JzIiwiaWQtY2N0LWNycyIsTklEX2lkX2NjdF9jcnMsOCwmKGx2YWx1ZXNbMjY4MV0pLDB9LAorCU5JRF9pZF9xY3NfcGtpeFFDU3ludGF4X3YxLDgsJihsdmFsdWVzWzI2NzFdKSwwfSwKK3siaWQtY2N0LWNycyIsImlkLWNjdC1jcnMiLE5JRF9pZF9jY3RfY3JzLDgsJihsdmFsdWVzWzI2NzldKSwwfSwKIHsiaWQtY2N0LVBLSURhdGEiLCJpZC1jY3QtUEtJRGF0YSIsTklEX2lkX2NjdF9QS0lEYXRhLDgsCi0JJihsdmFsdWVzWzI2ODldKSwwfSwKKwkmKGx2YWx1ZXNbMjY4N10pLDB9LAogeyJpZC1jY3QtUEtJUmVzcG9uc2UiLCJpZC1jY3QtUEtJUmVzcG9uc2UiLE5JRF9pZF9jY3RfUEtJUmVzcG9uc2UsOCwKLQkmKGx2YWx1ZXNbMjY5N10pLDB9LAorCSYobHZhbHVlc1syNjk1XSksMH0sCiB7ImFkX3RpbWVzdGFtcGluZyIsIkFEIFRpbWUgU3RhbXBpbmciLE5JRF9hZF90aW1lU3RhbXBpbmcsOCwKLQkmKGx2YWx1ZXNbMjcwNV0pLDB9LAoteyJBRF9EVkNTIiwiYWQgZHZjcyIsTklEX2FkX2R2Y3MsOCwmKGx2YWx1ZXNbMjcxM10pLDB9LAorCSYobHZhbHVlc1syNzAzXSksMH0sCit7IkFEX0RWQ1MiLCJhZCBkdmNzIixOSURfYWRfZHZjcyw4LCYobHZhbHVlc1syNzExXSksMH0sCiB7ImJhc2ljT0NTUFJlc3BvbnNlIiwiQmFzaWMgT0NTUCBSZXNwb25zZSIsTklEX2lkX3BraXhfT0NTUF9iYXNpYyw5LAotCSYobHZhbHVlc1syNzIxXSksMH0sCi17Ik5vbmNlIiwiT0NTUCBOb25jZSIsTklEX2lkX3BraXhfT0NTUF9Ob25jZSw5LCYobHZhbHVlc1syNzMwXSksMH0sCi17IkNybElEIiwiT0NTUCBDUkwgSUQiLE5JRF9pZF9wa2l4X09DU1BfQ3JsSUQsOSwmKGx2YWx1ZXNbMjczOV0pLDB9LAorCSYobHZhbHVlc1syNzE5XSksMH0sCit7Ik5vbmNlIiwiT0NTUCBOb25jZSIsTklEX2lkX3BraXhfT0NTUF9Ob25jZSw5LCYobHZhbHVlc1syNzI4XSksMH0sCit7IkNybElEIiwiT0NTUCBDUkwgSUQiLE5JRF9pZF9wa2l4X09DU1BfQ3JsSUQsOSwmKGx2YWx1ZXNbMjczN10pLDB9LAogeyJhY2NlcHRhYmxlUmVzcG9uc2VzIiwiQWNjZXB0YWJsZSBPQ1NQIFJlc3BvbnNlcyIsCi0JTklEX2lkX3BraXhfT0NTUF9hY2NlcHRhYmxlUmVzcG9uc2VzLDksJihsdmFsdWVzWzI3NDhdKSwwfSwKLXsibm9DaGVjayIsIk9DU1AgTm8gQ2hlY2siLE5JRF9pZF9wa2l4X09DU1Bfbm9DaGVjayw5LCYobHZhbHVlc1syNzU3XSksMH0sCisJTklEX2lkX3BraXhfT0NTUF9hY2NlcHRhYmxlUmVzcG9uc2VzLDksJihsdmFsdWVzWzI3NDZdKSwwfSwKK3sibm9DaGVjayIsIk9DU1AgTm8gQ2hlY2siLE5JRF9pZF9wa2l4X09DU1Bfbm9DaGVjayw5LCYobHZhbHVlc1syNzU1XSksMH0sCiB7ImFyY2hpdmVDdXRvZmYiLCJPQ1NQIEFyY2hpdmUgQ3V0b2ZmIixOSURfaWRfcGtpeF9PQ1NQX2FyY2hpdmVDdXRvZmYsCi0JOSwmKGx2YWx1ZXNbMjc2Nl0pLDB9LAorCTksJihsdmFsdWVzWzI3NjRdKSwwfSwKIHsic2VydmljZUxvY2F0b3IiLCJPQ1NQIFNlcnZpY2UgTG9jYXRvciIsCi0JTklEX2lkX3BraXhfT0NTUF9zZXJ2aWNlTG9jYXRvciw5LCYobHZhbHVlc1syNzc1XSksMH0sCisJTklEX2lkX3BraXhfT0NTUF9zZXJ2aWNlTG9jYXRvciw5LCYobHZhbHVlc1syNzczXSksMH0sCiB7ImV4dGVuZGVkU3RhdHVzIiwiRXh0ZW5kZWQgT0NTUCBTdGF0dXMiLAotCU5JRF9pZF9wa2l4X09DU1BfZXh0ZW5kZWRTdGF0dXMsOSwmKGx2YWx1ZXNbMjc4NF0pLDB9LAoteyJ2YWxpZCIsInZhbGlkIixOSURfaWRfcGtpeF9PQ1NQX3ZhbGlkLDksJihsdmFsdWVzWzI3OTNdKSwwfSwKLXsicGF0aCIsInBhdGgiLE5JRF9pZF9wa2l4X09DU1BfcGF0aCw5LCYobHZhbHVlc1syODAyXSksMH0sCisJTklEX2lkX3BraXhfT0NTUF9leHRlbmRlZFN0YXR1cyw5LCYobHZhbHVlc1syNzgyXSksMH0sCit7InZhbGlkIiwidmFsaWQiLE5JRF9pZF9wa2l4X09DU1BfdmFsaWQsOSwmKGx2YWx1ZXNbMjc5MV0pLDB9LAoreyJwYXRoIiwicGF0aCIsTklEX2lkX3BraXhfT0NTUF9wYXRoLDksJihsdmFsdWVzWzI4MDBdKSwwfSwKIHsidHJ1c3RSb290IiwiVHJ1c3QgUm9vdCIsTklEX2lkX3BraXhfT0NTUF90cnVzdFJvb3QsOSwKLQkmKGx2YWx1ZXNbMjgxMV0pLDB9LAoteyJhbGdvcml0aG0iLCJhbGdvcml0aG0iLE5JRF9hbGdvcml0aG0sNCwmKGx2YWx1ZXNbMjgyMF0pLDB9LAoteyJyc2FTaWduYXR1cmUiLCJyc2FTaWduYXR1cmUiLE5JRF9yc2FTaWduYXR1cmUsNSwmKGx2YWx1ZXNbMjgyNF0pLDB9LAorCSYobHZhbHVlc1syODA5XSksMH0sCit7ImFsZ29yaXRobSIsImFsZ29yaXRobSIsTklEX2FsZ29yaXRobSw0LCYobHZhbHVlc1syODE4XSksMH0sCit7InJzYVNpZ25hdHVyZSIsInJzYVNpZ25hdHVyZSIsTklEX3JzYVNpZ25hdHVyZSw1LCYobHZhbHVlc1syODIyXSksMH0sCiB7Ilg1MDBhbGdvcml0aG1zIiwiZGlyZWN0b3J5IHNlcnZpY2VzIC0gYWxnb3JpdGhtcyIsCi0JTklEX1g1MDBhbGdvcml0aG1zLDIsJihsdmFsdWVzWzI4MjldKSwwfSwKLXsiT1JHIiwib3JnIixOSURfb3JnLDEsJihsdmFsdWVzWzI4MzFdKSwwfSwKLXsiRE9EIiwiZG9kIixOSURfZG9kLDIsJihsdmFsdWVzWzI4MzJdKSwwfSwKLXsiSUFOQSIsImlhbmEiLE5JRF9pYW5hLDMsJihsdmFsdWVzWzI4MzRdKSwwfSwKLXsiZGlyZWN0b3J5IiwiRGlyZWN0b3J5IixOSURfRGlyZWN0b3J5LDQsJihsdmFsdWVzWzI4MzddKSwwfSwKLXsibWdtdCIsIk1hbmFnZW1lbnQiLE5JRF9NYW5hZ2VtZW50LDQsJihsdmFsdWVzWzI4NDFdKSwwfSwKLXsiZXhwZXJpbWVudGFsIiwiRXhwZXJpbWVudGFsIixOSURfRXhwZXJpbWVudGFsLDQsJihsdmFsdWVzWzI4NDVdKSwwfSwKLXsicHJpdmF0ZSIsIlByaXZhdGUiLE5JRF9Qcml2YXRlLDQsJihsdmFsdWVzWzI4NDldKSwwfSwKLXsic2VjdXJpdHkiLCJTZWN1cml0eSIsTklEX1NlY3VyaXR5LDQsJihsdmFsdWVzWzI4NTNdKSwwfSwKLXsic25tcHYyIiwiU05NUHYyIixOSURfU05NUHYyLDQsJihsdmFsdWVzWzI4NTddKSwwfSwKLXsiTWFpbCIsIk1haWwiLE5JRF9NYWlsLDQsJihsdmFsdWVzWzI4NjFdKSwwfSwKLXsiZW50ZXJwcmlzZXMiLCJFbnRlcnByaXNlcyIsTklEX0VudGVycHJpc2VzLDUsJihsdmFsdWVzWzI4NjVdKSwwfSwKLXsiZGNvYmplY3QiLCJkY09iamVjdCIsTklEX2RjT2JqZWN0LDksJihsdmFsdWVzWzI4NzBdKSwwfSwKLXsiREMiLCJkb21haW5Db21wb25lbnQiLE5JRF9kb21haW5Db21wb25lbnQsMTAsJihsdmFsdWVzWzI4NzldKSwwfSwKLXsiZG9tYWluIiwiRG9tYWluIixOSURfRG9tYWluLDEwLCYobHZhbHVlc1syODg5XSksMH0sCi17Ik5VTEwiLCJOVUxMIixOSURfam9pbnRfaXNvX2NjaXR0LDEsJihsdmFsdWVzWzI4OTldKSwwfSwKKwlOSURfWDUwMGFsZ29yaXRobXMsMiwmKGx2YWx1ZXNbMjgyN10pLDB9LAoreyJPUkciLCJvcmciLE5JRF9vcmcsMSwmKGx2YWx1ZXNbMjgyOV0pLDB9LAoreyJET0QiLCJkb2QiLE5JRF9kb2QsMiwmKGx2YWx1ZXNbMjgzMF0pLDB9LAoreyJJQU5BIiwiaWFuYSIsTklEX2lhbmEsMywmKGx2YWx1ZXNbMjgzMl0pLDB9LAoreyJkaXJlY3RvcnkiLCJEaXJlY3RvcnkiLE5JRF9EaXJlY3RvcnksNCwmKGx2YWx1ZXNbMjgzNV0pLDB9LAoreyJtZ210IiwiTWFuYWdlbWVudCIsTklEX01hbmFnZW1lbnQsNCwmKGx2YWx1ZXNbMjgzOV0pLDB9LAoreyJleHBlcmltZW50YWwiLCJFeHBlcmltZW50YWwiLE5JRF9FeHBlcmltZW50YWwsNCwmKGx2YWx1ZXNbMjg0M10pLDB9LAoreyJwcml2YXRlIiwiUHJpdmF0ZSIsTklEX1ByaXZhdGUsNCwmKGx2YWx1ZXNbMjg0N10pLDB9LAoreyJzZWN1cml0eSIsIlNlY3VyaXR5IixOSURfU2VjdXJpdHksNCwmKGx2YWx1ZXNbMjg1MV0pLDB9LAoreyJzbm1wdjIiLCJTTk1QdjIiLE5JRF9TTk1QdjIsNCwmKGx2YWx1ZXNbMjg1NV0pLDB9LAoreyJNYWlsIiwiTWFpbCIsTklEX01haWwsNCwmKGx2YWx1ZXNbMjg1OV0pLDB9LAoreyJlbnRlcnByaXNlcyIsIkVudGVycHJpc2VzIixOSURfRW50ZXJwcmlzZXMsNSwmKGx2YWx1ZXNbMjg2M10pLDB9LAoreyJkY29iamVjdCIsImRjT2JqZWN0IixOSURfZGNPYmplY3QsOSwmKGx2YWx1ZXNbMjg2OF0pLDB9LAoreyJEQyIsImRvbWFpbkNvbXBvbmVudCIsTklEX2RvbWFpbkNvbXBvbmVudCwxMCwmKGx2YWx1ZXNbMjg3N10pLDB9LAoreyJkb21haW4iLCJEb21haW4iLE5JRF9Eb21haW4sMTAsJihsdmFsdWVzWzI4ODddKSwwfSwKK3siTlVMTCIsIk5VTEwiLE5JRF9qb2ludF9pc29fY2NpdHQsMCxOVUxMLDB9LAogeyJzZWxlY3RlZC1hdHRyaWJ1dGUtdHlwZXMiLCJTZWxlY3RlZCBBdHRyaWJ1dGUgVHlwZXMiLAotCU5JRF9zZWxlY3RlZF9hdHRyaWJ1dGVfdHlwZXMsMywmKGx2YWx1ZXNbMjkwMF0pLDB9LAoteyJjbGVhcmFuY2UiLCJjbGVhcmFuY2UiLE5JRF9jbGVhcmFuY2UsNCwmKGx2YWx1ZXNbMjkwM10pLDB9LAorCU5JRF9zZWxlY3RlZF9hdHRyaWJ1dGVfdHlwZXMsMywmKGx2YWx1ZXNbMjg5N10pLDB9LAoreyJjbGVhcmFuY2UiLCJjbGVhcmFuY2UiLE5JRF9jbGVhcmFuY2UsNCwmKGx2YWx1ZXNbMjkwMF0pLDB9LAogeyJSU0EtTUQ0IiwibWQ0V2l0aFJTQUVuY3J5cHRpb24iLE5JRF9tZDRXaXRoUlNBRW5jcnlwdGlvbiw5LAotCSYobHZhbHVlc1syOTA3XSksMH0sCi17ImFjLXByb3h5aW5nIiwiYWMtcHJveHlpbmciLE5JRF9hY19wcm94eWluZyw4LCYobHZhbHVlc1syOTE2XSksMH0sCisJJihsdmFsdWVzWzI5MDRdKSwwfSwKK3siYWMtcHJveHlpbmciLCJhYy1wcm94eWluZyIsTklEX2FjX3Byb3h5aW5nLDgsJihsdmFsdWVzWzI5MTNdKSwwfSwKIHsic3ViamVjdEluZm9BY2Nlc3MiLCJTdWJqZWN0IEluZm9ybWF0aW9uIEFjY2VzcyIsTklEX3NpbmZvX2FjY2Vzcyw4LAotCSYobHZhbHVlc1syOTI0XSksMH0sCisJJihsdmFsdWVzWzI5MjFdKSwwfSwKIHsiaWQtYWNhLWVuY0F0dHJzIiwiaWQtYWNhLWVuY0F0dHJzIixOSURfaWRfYWNhX2VuY0F0dHJzLDgsCi0JJihsdmFsdWVzWzI5MzJdKSwwfSwKLXsicm9sZSIsInJvbGUiLE5JRF9yb2xlLDMsJihsdmFsdWVzWzI5NDBdKSwwfSwKKwkmKGx2YWx1ZXNbMjkyOV0pLDB9LAoreyJyb2xlIiwicm9sZSIsTklEX3JvbGUsMywmKGx2YWx1ZXNbMjkzN10pLDB9LAogeyJwb2xpY3lDb25zdHJhaW50cyIsIlg1MDl2MyBQb2xpY3kgQ29uc3RyYWludHMiLAotCU5JRF9wb2xpY3lfY29uc3RyYWludHMsMywmKGx2YWx1ZXNbMjk0M10pLDB9LAorCU5JRF9wb2xpY3lfY29uc3RyYWludHMsMywmKGx2YWx1ZXNbMjk0MF0pLDB9LAogeyJ0YXJnZXRJbmZvcm1hdGlvbiIsIlg1MDl2MyBBQyBUYXJnZXRpbmciLE5JRF90YXJnZXRfaW5mb3JtYXRpb24sMywKLQkmKGx2YWx1ZXNbMjk0Nl0pLDB9LAorCSYobHZhbHVlc1syOTQzXSksMH0sCiB7Im5vUmV2QXZhaWwiLCJYNTA5djMgTm8gUmV2b2NhdGlvbiBBdmFpbGFibGUiLE5JRF9ub19yZXZfYXZhaWwsMywKLQkmKGx2YWx1ZXNbMjk0OV0pLDB9LAoteyJOVUxMIiwiTlVMTCIsTklEX2NjaXR0LDEsJihsdmFsdWVzWzI5NTJdKSwwfSwKLXsiYW5zaS1YOS02MiIsIkFOU0kgWDkuNjIiLE5JRF9hbnNpX1g5XzYyLDUsJihsdmFsdWVzWzI5NTNdKSwwfSwKLXsicHJpbWUtZmllbGQiLCJwcmltZS1maWVsZCIsTklEX1g5XzYyX3ByaW1lX2ZpZWxkLDcsJihsdmFsdWVzWzI5NThdKSwwfSwKKwkmKGx2YWx1ZXNbMjk0Nl0pLDB9LAoreyJOVUxMIiwiTlVMTCIsTklEX2NjaXR0LDAsTlVMTCwwfSwKK3siYW5zaS1YOS02MiIsIkFOU0kgWDkuNjIiLE5JRF9hbnNpX1g5XzYyLDUsJihsdmFsdWVzWzI5NDldKSwwfSwKK3sicHJpbWUtZmllbGQiLCJwcmltZS1maWVsZCIsTklEX1g5XzYyX3ByaW1lX2ZpZWxkLDcsJihsdmFsdWVzWzI5NTRdKSwwfSwKIHsiY2hhcmFjdGVyaXN0aWMtdHdvLWZpZWxkIiwiY2hhcmFjdGVyaXN0aWMtdHdvLWZpZWxkIiwKLQlOSURfWDlfNjJfY2hhcmFjdGVyaXN0aWNfdHdvX2ZpZWxkLDcsJihsdmFsdWVzWzI5NjVdKSwwfSwKKwlOSURfWDlfNjJfY2hhcmFjdGVyaXN0aWNfdHdvX2ZpZWxkLDcsJihsdmFsdWVzWzI5NjFdKSwwfSwKIHsiaWQtZWNQdWJsaWNLZXkiLCJpZC1lY1B1YmxpY0tleSIsTklEX1g5XzYyX2lkX2VjUHVibGljS2V5LDcsCi0JJihsdmFsdWVzWzI5NzJdKSwwfSwKLXsicHJpbWUxOTJ2MSIsInByaW1lMTkydjEiLE5JRF9YOV82Ml9wcmltZTE5MnYxLDgsJihsdmFsdWVzWzI5NzldKSwwfSwKLXsicHJpbWUxOTJ2MiIsInByaW1lMTkydjIiLE5JRF9YOV82Ml9wcmltZTE5MnYyLDgsJihsdmFsdWVzWzI5ODddKSwwfSwKLXsicHJpbWUxOTJ2MyIsInByaW1lMTkydjMiLE5JRF9YOV82Ml9wcmltZTE5MnYzLDgsJihsdmFsdWVzWzI5OTVdKSwwfSwKLXsicHJpbWUyMzl2MSIsInByaW1lMjM5djEiLE5JRF9YOV82Ml9wcmltZTIzOXYxLDgsJihsdmFsdWVzWzMwMDNdKSwwfSwKLXsicHJpbWUyMzl2MiIsInByaW1lMjM5djIiLE5JRF9YOV82Ml9wcmltZTIzOXYyLDgsJihsdmFsdWVzWzMwMTFdKSwwfSwKLXsicHJpbWUyMzl2MyIsInByaW1lMjM5djMiLE5JRF9YOV82Ml9wcmltZTIzOXYzLDgsJihsdmFsdWVzWzMwMTldKSwwfSwKLXsicHJpbWUyNTZ2MSIsInByaW1lMjU2djEiLE5JRF9YOV82Ml9wcmltZTI1NnYxLDgsJihsdmFsdWVzWzMwMjddKSwwfSwKKwkmKGx2YWx1ZXNbMjk2OF0pLDB9LAoreyJwcmltZTE5MnYxIiwicHJpbWUxOTJ2MSIsTklEX1g5XzYyX3ByaW1lMTkydjEsOCwmKGx2YWx1ZXNbMjk3NV0pLDB9LAoreyJwcmltZTE5MnYyIiwicHJpbWUxOTJ2MiIsTklEX1g5XzYyX3ByaW1lMTkydjIsOCwmKGx2YWx1ZXNbMjk4M10pLDB9LAoreyJwcmltZTE5MnYzIiwicHJpbWUxOTJ2MyIsTklEX1g5XzYyX3ByaW1lMTkydjMsOCwmKGx2YWx1ZXNbMjk5MV0pLDB9LAoreyJwcmltZTIzOXYxIiwicHJpbWUyMzl2MSIsTklEX1g5XzYyX3ByaW1lMjM5djEsOCwmKGx2YWx1ZXNbMjk5OV0pLDB9LAoreyJwcmltZTIzOXYyIiwicHJpbWUyMzl2MiIsTklEX1g5XzYyX3ByaW1lMjM5djIsOCwmKGx2YWx1ZXNbMzAwN10pLDB9LAoreyJwcmltZTIzOXYzIiwicHJpbWUyMzl2MyIsTklEX1g5XzYyX3ByaW1lMjM5djMsOCwmKGx2YWx1ZXNbMzAxNV0pLDB9LAoreyJwcmltZTI1NnYxIiwicHJpbWUyNTZ2MSIsTklEX1g5XzYyX3ByaW1lMjU2djEsOCwmKGx2YWx1ZXNbMzAyM10pLDB9LAogeyJlY2RzYS13aXRoLVNIQTEiLCJlY2RzYS13aXRoLVNIQTEiLE5JRF9lY2RzYV93aXRoX1NIQTEsNywKLQkmKGx2YWx1ZXNbMzAzNV0pLDB9LAoteyJDU1BOYW1lIiwiTWljcm9zb2Z0IENTUCBOYW1lIixOSURfbXNfY3NwX25hbWUsOSwmKGx2YWx1ZXNbMzA0Ml0pLDB9LAoteyJBRVMtMTI4LUVDQiIsImFlcy0xMjgtZWNiIixOSURfYWVzXzEyOF9lY2IsOSwmKGx2YWx1ZXNbMzA1MV0pLDB9LAoteyJBRVMtMTI4LUNCQyIsImFlcy0xMjgtY2JjIixOSURfYWVzXzEyOF9jYmMsOSwmKGx2YWx1ZXNbMzA2MF0pLDB9LAoteyJBRVMtMTI4LU9GQiIsImFlcy0xMjgtb2ZiIixOSURfYWVzXzEyOF9vZmIxMjgsOSwmKGx2YWx1ZXNbMzA2OV0pLDB9LAoteyJBRVMtMTI4LUNGQiIsImFlcy0xMjgtY2ZiIixOSURfYWVzXzEyOF9jZmIxMjgsOSwmKGx2YWx1ZXNbMzA3OF0pLDB9LAoteyJBRVMtMTkyLUVDQiIsImFlcy0xOTItZWNiIixOSURfYWVzXzE5Ml9lY2IsOSwmKGx2YWx1ZXNbMzA4N10pLDB9LAoteyJBRVMtMTkyLUNCQyIsImFlcy0xOTItY2JjIixOSURfYWVzXzE5Ml9jYmMsOSwmKGx2YWx1ZXNbMzA5Nl0pLDB9LAoteyJBRVMtMTkyLU9GQiIsImFlcy0xOTItb2ZiIixOSURfYWVzXzE5Ml9vZmIxMjgsOSwmKGx2YWx1ZXNbMzEwNV0pLDB9LAoteyJBRVMtMTkyLUNGQiIsImFlcy0xOTItY2ZiIixOSURfYWVzXzE5Ml9jZmIxMjgsOSwmKGx2YWx1ZXNbMzExNF0pLDB9LAoteyJBRVMtMjU2LUVDQiIsImFlcy0yNTYtZWNiIixOSURfYWVzXzI1Nl9lY2IsOSwmKGx2YWx1ZXNbMzEyM10pLDB9LAoteyJBRVMtMjU2LUNCQyIsImFlcy0yNTYtY2JjIixOSURfYWVzXzI1Nl9jYmMsOSwmKGx2YWx1ZXNbMzEzMl0pLDB9LAoteyJBRVMtMjU2LU9GQiIsImFlcy0yNTYtb2ZiIixOSURfYWVzXzI1Nl9vZmIxMjgsOSwmKGx2YWx1ZXNbMzE0MV0pLDB9LAoteyJBRVMtMjU2LUNGQiIsImFlcy0yNTYtY2ZiIixOSURfYWVzXzI1Nl9jZmIxMjgsOSwmKGx2YWx1ZXNbMzE1MF0pLDB9LAorCSYobHZhbHVlc1szMDMxXSksMH0sCit7IkNTUE5hbWUiLCJNaWNyb3NvZnQgQ1NQIE5hbWUiLE5JRF9tc19jc3BfbmFtZSw5LCYobHZhbHVlc1szMDM4XSksMH0sCit7IkFFUy0xMjgtRUNCIiwiYWVzLTEyOC1lY2IiLE5JRF9hZXNfMTI4X2VjYiw5LCYobHZhbHVlc1szMDQ3XSksMH0sCit7IkFFUy0xMjgtQ0JDIiwiYWVzLTEyOC1jYmMiLE5JRF9hZXNfMTI4X2NiYyw5LCYobHZhbHVlc1szMDU2XSksMH0sCit7IkFFUy0xMjgtT0ZCIiwiYWVzLTEyOC1vZmIiLE5JRF9hZXNfMTI4X29mYjEyOCw5LCYobHZhbHVlc1szMDY1XSksMH0sCit7IkFFUy0xMjgtQ0ZCIiwiYWVzLTEyOC1jZmIiLE5JRF9hZXNfMTI4X2NmYjEyOCw5LCYobHZhbHVlc1szMDc0XSksMH0sCit7IkFFUy0xOTItRUNCIiwiYWVzLTE5Mi1lY2IiLE5JRF9hZXNfMTkyX2VjYiw5LCYobHZhbHVlc1szMDgzXSksMH0sCit7IkFFUy0xOTItQ0JDIiwiYWVzLTE5Mi1jYmMiLE5JRF9hZXNfMTkyX2NiYyw5LCYobHZhbHVlc1szMDkyXSksMH0sCit7IkFFUy0xOTItT0ZCIiwiYWVzLTE5Mi1vZmIiLE5JRF9hZXNfMTkyX29mYjEyOCw5LCYobHZhbHVlc1szMTAxXSksMH0sCit7IkFFUy0xOTItQ0ZCIiwiYWVzLTE5Mi1jZmIiLE5JRF9hZXNfMTkyX2NmYjEyOCw5LCYobHZhbHVlc1szMTEwXSksMH0sCit7IkFFUy0yNTYtRUNCIiwiYWVzLTI1Ni1lY2IiLE5JRF9hZXNfMjU2X2VjYiw5LCYobHZhbHVlc1szMTE5XSksMH0sCit7IkFFUy0yNTYtQ0JDIiwiYWVzLTI1Ni1jYmMiLE5JRF9hZXNfMjU2X2NiYyw5LCYobHZhbHVlc1szMTI4XSksMH0sCit7IkFFUy0yNTYtT0ZCIiwiYWVzLTI1Ni1vZmIiLE5JRF9hZXNfMjU2X29mYjEyOCw5LCYobHZhbHVlc1szMTM3XSksMH0sCit7IkFFUy0yNTYtQ0ZCIiwiYWVzLTI1Ni1jZmIiLE5JRF9hZXNfMjU2X2NmYjEyOCw5LCYobHZhbHVlc1szMTQ2XSksMH0sCiB7ImhvbGRJbnN0cnVjdGlvbkNvZGUiLCJIb2xkIEluc3RydWN0aW9uIENvZGUiLAotCU5JRF9ob2xkX2luc3RydWN0aW9uX2NvZGUsMywmKGx2YWx1ZXNbMzE1OV0pLDB9LAorCU5JRF9ob2xkX2luc3RydWN0aW9uX2NvZGUsMywmKGx2YWx1ZXNbMzE1NV0pLDB9LAogeyJob2xkSW5zdHJ1Y3Rpb25Ob25lIiwiSG9sZCBJbnN0cnVjdGlvbiBOb25lIiwKLQlOSURfaG9sZF9pbnN0cnVjdGlvbl9ub25lLDcsJihsdmFsdWVzWzMxNjJdKSwwfSwKKwlOSURfaG9sZF9pbnN0cnVjdGlvbl9ub25lLDcsJihsdmFsdWVzWzMxNThdKSwwfSwKIHsiaG9sZEluc3RydWN0aW9uQ2FsbElzc3VlciIsIkhvbGQgSW5zdHJ1Y3Rpb24gQ2FsbCBJc3N1ZXIiLAotCU5JRF9ob2xkX2luc3RydWN0aW9uX2NhbGxfaXNzdWVyLDcsJihsdmFsdWVzWzMxNjldKSwwfSwKKwlOSURfaG9sZF9pbnN0cnVjdGlvbl9jYWxsX2lzc3Vlciw3LCYobHZhbHVlc1szMTY1XSksMH0sCiB7ImhvbGRJbnN0cnVjdGlvblJlamVjdCIsIkhvbGQgSW5zdHJ1Y3Rpb24gUmVqZWN0IiwKLQlOSURfaG9sZF9pbnN0cnVjdGlvbl9yZWplY3QsNywmKGx2YWx1ZXNbMzE3Nl0pLDB9LAoteyJkYXRhIiwiZGF0YSIsTklEX2RhdGEsMSwmKGx2YWx1ZXNbMzE4M10pLDB9LAoteyJwc3MiLCJwc3MiLE5JRF9wc3MsMywmKGx2YWx1ZXNbMzE4NF0pLDB9LAoteyJ1Y2wiLCJ1Y2wiLE5JRF91Y2wsNywmKGx2YWx1ZXNbMzE4N10pLDB9LAoteyJwaWxvdCIsInBpbG90IixOSURfcGlsb3QsOCwmKGx2YWx1ZXNbMzE5NF0pLDB9LAorCU5JRF9ob2xkX2luc3RydWN0aW9uX3JlamVjdCw3LCYobHZhbHVlc1szMTcyXSksMH0sCit7ImRhdGEiLCJkYXRhIixOSURfZGF0YSwxLCYobHZhbHVlc1szMTc5XSksMH0sCit7InBzcyIsInBzcyIsTklEX3BzcywzLCYobHZhbHVlc1szMTgwXSksMH0sCit7InVjbCIsInVjbCIsTklEX3VjbCw3LCYobHZhbHVlc1szMTgzXSksMH0sCit7InBpbG90IiwicGlsb3QiLE5JRF9waWxvdCw4LCYobHZhbHVlc1szMTkwXSksMH0sCiB7InBpbG90QXR0cmlidXRlVHlwZSIsInBpbG90QXR0cmlidXRlVHlwZSIsTklEX3BpbG90QXR0cmlidXRlVHlwZSw5LAotCSYobHZhbHVlc1szMjAyXSksMH0sCisJJihsdmFsdWVzWzMxOThdKSwwfSwKIHsicGlsb3RBdHRyaWJ1dGVTeW50YXgiLCJwaWxvdEF0dHJpYnV0ZVN5bnRheCIsCi0JTklEX3BpbG90QXR0cmlidXRlU3ludGF4LDksJihsdmFsdWVzWzMyMTFdKSwwfSwKKwlOSURfcGlsb3RBdHRyaWJ1dGVTeW50YXgsOSwmKGx2YWx1ZXNbMzIwN10pLDB9LAogeyJwaWxvdE9iamVjdENsYXNzIiwicGlsb3RPYmplY3RDbGFzcyIsTklEX3BpbG90T2JqZWN0Q2xhc3MsOSwKLQkmKGx2YWx1ZXNbMzIyMF0pLDB9LAoteyJwaWxvdEdyb3VwcyIsInBpbG90R3JvdXBzIixOSURfcGlsb3RHcm91cHMsOSwmKGx2YWx1ZXNbMzIyOV0pLDB9LAorCSYobHZhbHVlc1szMjE2XSksMH0sCit7InBpbG90R3JvdXBzIiwicGlsb3RHcm91cHMiLE5JRF9waWxvdEdyb3Vwcyw5LCYobHZhbHVlc1szMjI1XSksMH0sCiB7ImlBNVN0cmluZ1N5bnRheCIsImlBNVN0cmluZ1N5bnRheCIsTklEX2lBNVN0cmluZ1N5bnRheCwxMCwKLQkmKGx2YWx1ZXNbMzIzOF0pLDB9LAorCSYobHZhbHVlc1szMjM0XSksMH0sCiB7ImNhc2VJZ25vcmVJQTVTdHJpbmdTeW50YXgiLCJjYXNlSWdub3JlSUE1U3RyaW5nU3ludGF4IiwKLQlOSURfY2FzZUlnbm9yZUlBNVN0cmluZ1N5bnRheCwxMCwmKGx2YWx1ZXNbMzI0OF0pLDB9LAoteyJwaWxvdE9iamVjdCIsInBpbG90T2JqZWN0IixOSURfcGlsb3RPYmplY3QsMTAsJihsdmFsdWVzWzMyNThdKSwwfSwKLXsicGlsb3RQZXJzb24iLCJwaWxvdFBlcnNvbiIsTklEX3BpbG90UGVyc29uLDEwLCYobHZhbHVlc1szMjY4XSksMH0sCi17ImFjY291bnQiLCJhY2NvdW50IixOSURfYWNjb3VudCwxMCwmKGx2YWx1ZXNbMzI3OF0pLDB9LAoteyJkb2N1bWVudCIsImRvY3VtZW50IixOSURfZG9jdW1lbnQsMTAsJihsdmFsdWVzWzMyODhdKSwwfSwKLXsicm9vbSIsInJvb20iLE5JRF9yb29tLDEwLCYobHZhbHVlc1szMjk4XSksMH0sCisJTklEX2Nhc2VJZ25vcmVJQTVTdHJpbmdTeW50YXgsMTAsJihsdmFsdWVzWzMyNDRdKSwwfSwKK3sicGlsb3RPYmplY3QiLCJwaWxvdE9iamVjdCIsTklEX3BpbG90T2JqZWN0LDEwLCYobHZhbHVlc1szMjU0XSksMH0sCit7InBpbG90UGVyc29uIiwicGlsb3RQZXJzb24iLE5JRF9waWxvdFBlcnNvbiwxMCwmKGx2YWx1ZXNbMzI2NF0pLDB9LAoreyJhY2NvdW50IiwiYWNjb3VudCIsTklEX2FjY291bnQsMTAsJihsdmFsdWVzWzMyNzRdKSwwfSwKK3siZG9jdW1lbnQiLCJkb2N1bWVudCIsTklEX2RvY3VtZW50LDEwLCYobHZhbHVlc1szMjg0XSksMH0sCit7InJvb20iLCJyb29tIixOSURfcm9vbSwxMCwmKGx2YWx1ZXNbMzI5NF0pLDB9LAogeyJkb2N1bWVudFNlcmllcyIsImRvY3VtZW50U2VyaWVzIixOSURfZG9jdW1lbnRTZXJpZXMsMTAsCi0JJihsdmFsdWVzWzMzMDhdKSwwfSwKKwkmKGx2YWx1ZXNbMzMwNF0pLDB9LAogeyJyRkM4MjJsb2NhbFBhcnQiLCJyRkM4MjJsb2NhbFBhcnQiLE5JRF9yRkM4MjJsb2NhbFBhcnQsMTAsCi0JJihsdmFsdWVzWzMzMThdKSwwfSwKLXsiZE5TRG9tYWluIiwiZE5TRG9tYWluIixOSURfZE5TRG9tYWluLDEwLCYobHZhbHVlc1szMzI4XSksMH0sCisJJihsdmFsdWVzWzMzMTRdKSwwfSwKK3siZE5TRG9tYWluIiwiZE5TRG9tYWluIixOSURfZE5TRG9tYWluLDEwLCYobHZhbHVlc1szMzI0XSksMH0sCiB7ImRvbWFpblJlbGF0ZWRPYmplY3QiLCJkb21haW5SZWxhdGVkT2JqZWN0IixOSURfZG9tYWluUmVsYXRlZE9iamVjdCwKLQkxMCwmKGx2YWx1ZXNbMzMzOF0pLDB9LAorCTEwLCYobHZhbHVlc1szMzM0XSksMH0sCiB7ImZyaWVuZGx5Q291bnRyeSIsImZyaWVuZGx5Q291bnRyeSIsTklEX2ZyaWVuZGx5Q291bnRyeSwxMCwKLQkmKGx2YWx1ZXNbMzM0OF0pLDB9LAorCSYobHZhbHVlc1szMzQ0XSksMH0sCiB7InNpbXBsZVNlY3VyaXR5T2JqZWN0Iiwic2ltcGxlU2VjdXJpdHlPYmplY3QiLAotCU5JRF9zaW1wbGVTZWN1cml0eU9iamVjdCwxMCwmKGx2YWx1ZXNbMzM1OF0pLDB9LAorCU5JRF9zaW1wbGVTZWN1cml0eU9iamVjdCwxMCwmKGx2YWx1ZXNbMzM1NF0pLDB9LAogeyJwaWxvdE9yZ2FuaXphdGlvbiIsInBpbG90T3JnYW5pemF0aW9uIixOSURfcGlsb3RPcmdhbml6YXRpb24sMTAsCi0JJihsdmFsdWVzWzMzNjhdKSwwfSwKLXsicGlsb3REU0EiLCJwaWxvdERTQSIsTklEX3BpbG90RFNBLDEwLCYobHZhbHVlc1szMzc4XSksMH0sCisJJihsdmFsdWVzWzMzNjRdKSwwfSwKK3sicGlsb3REU0EiLCJwaWxvdERTQSIsTklEX3BpbG90RFNBLDEwLCYobHZhbHVlc1szMzc0XSksMH0sCiB7InF1YWxpdHlMYWJlbGxlZERhdGEiLCJxdWFsaXR5TGFiZWxsZWREYXRhIixOSURfcXVhbGl0eUxhYmVsbGVkRGF0YSwKLQkxMCwmKGx2YWx1ZXNbMzM4OF0pLDB9LAoteyJVSUQiLCJ1c2VySWQiLE5JRF91c2VySWQsMTAsJihsdmFsdWVzWzMzOThdKSwwfSwKKwkxMCwmKGx2YWx1ZXNbMzM4NF0pLDB9LAoreyJVSUQiLCJ1c2VySWQiLE5JRF91c2VySWQsMTAsJihsdmFsdWVzWzMzOTRdKSwwfSwKIHsidGV4dEVuY29kZWRPUkFkZHJlc3MiLCJ0ZXh0RW5jb2RlZE9SQWRkcmVzcyIsCi0JTklEX3RleHRFbmNvZGVkT1JBZGRyZXNzLDEwLCYobHZhbHVlc1szNDA4XSksMH0sCi17Im1haWwiLCJyZmM4MjJNYWlsYm94IixOSURfcmZjODIyTWFpbGJveCwxMCwmKGx2YWx1ZXNbMzQxOF0pLDB9LAoteyJpbmZvIiwiaW5mbyIsTklEX2luZm8sMTAsJihsdmFsdWVzWzM0MjhdKSwwfSwKKwlOSURfdGV4dEVuY29kZWRPUkFkZHJlc3MsMTAsJihsdmFsdWVzWzM0MDRdKSwwfSwKK3sibWFpbCIsInJmYzgyMk1haWxib3giLE5JRF9yZmM4MjJNYWlsYm94LDEwLCYobHZhbHVlc1szNDE0XSksMH0sCit7ImluZm8iLCJpbmZvIixOSURfaW5mbywxMCwmKGx2YWx1ZXNbMzQyNF0pLDB9LAogeyJmYXZvdXJpdGVEcmluayIsImZhdm91cml0ZURyaW5rIixOSURfZmF2b3VyaXRlRHJpbmssMTAsCi0JJihsdmFsdWVzWzM0MzhdKSwwfSwKLXsicm9vbU51bWJlciIsInJvb21OdW1iZXIiLE5JRF9yb29tTnVtYmVyLDEwLCYobHZhbHVlc1szNDQ4XSksMH0sCi17InBob3RvIiwicGhvdG8iLE5JRF9waG90bywxMCwmKGx2YWx1ZXNbMzQ1OF0pLDB9LAoteyJ1c2VyQ2xhc3MiLCJ1c2VyQ2xhc3MiLE5JRF91c2VyQ2xhc3MsMTAsJihsdmFsdWVzWzM0NjhdKSwwfSwKLXsiaG9zdCIsImhvc3QiLE5JRF9ob3N0LDEwLCYobHZhbHVlc1szNDc4XSksMH0sCi17Im1hbmFnZXIiLCJtYW5hZ2VyIixOSURfbWFuYWdlciwxMCwmKGx2YWx1ZXNbMzQ4OF0pLDB9LAorCSYobHZhbHVlc1szNDM0XSksMH0sCit7InJvb21OdW1iZXIiLCJyb29tTnVtYmVyIixOSURfcm9vbU51bWJlciwxMCwmKGx2YWx1ZXNbMzQ0NF0pLDB9LAoreyJwaG90byIsInBob3RvIixOSURfcGhvdG8sMTAsJihsdmFsdWVzWzM0NTRdKSwwfSwKK3sidXNlckNsYXNzIiwidXNlckNsYXNzIixOSURfdXNlckNsYXNzLDEwLCYobHZhbHVlc1szNDY0XSksMH0sCit7Imhvc3QiLCJob3N0IixOSURfaG9zdCwxMCwmKGx2YWx1ZXNbMzQ3NF0pLDB9LAoreyJtYW5hZ2VyIiwibWFuYWdlciIsTklEX21hbmFnZXIsMTAsJihsdmFsdWVzWzM0ODRdKSwwfSwKIHsiZG9jdW1lbnRJZGVudGlmaWVyIiwiZG9jdW1lbnRJZGVudGlmaWVyIixOSURfZG9jdW1lbnRJZGVudGlmaWVyLDEwLAotCSYobHZhbHVlc1szNDk4XSksMH0sCi17ImRvY3VtZW50VGl0bGUiLCJkb2N1bWVudFRpdGxlIixOSURfZG9jdW1lbnRUaXRsZSwxMCwmKGx2YWx1ZXNbMzUwOF0pLDB9LAorCSYobHZhbHVlc1szNDk0XSksMH0sCit7ImRvY3VtZW50VGl0bGUiLCJkb2N1bWVudFRpdGxlIixOSURfZG9jdW1lbnRUaXRsZSwxMCwmKGx2YWx1ZXNbMzUwNF0pLDB9LAogeyJkb2N1bWVudFZlcnNpb24iLCJkb2N1bWVudFZlcnNpb24iLE5JRF9kb2N1bWVudFZlcnNpb24sMTAsCi0JJihsdmFsdWVzWzM1MThdKSwwfSwKKwkmKGx2YWx1ZXNbMzUxNF0pLDB9LAogeyJkb2N1bWVudEF1dGhvciIsImRvY3VtZW50QXV0aG9yIixOSURfZG9jdW1lbnRBdXRob3IsMTAsCi0JJihsdmFsdWVzWzM1MjhdKSwwfSwKKwkmKGx2YWx1ZXNbMzUyNF0pLDB9LAogeyJkb2N1bWVudExvY2F0aW9uIiwiZG9jdW1lbnRMb2NhdGlvbiIsTklEX2RvY3VtZW50TG9jYXRpb24sMTAsCi0JJihsdmFsdWVzWzM1MzhdKSwwfSwKKwkmKGx2YWx1ZXNbMzUzNF0pLDB9LAogeyJob21lVGVsZXBob25lTnVtYmVyIiwiaG9tZVRlbGVwaG9uZU51bWJlciIsTklEX2hvbWVUZWxlcGhvbmVOdW1iZXIsCi0JMTAsJihsdmFsdWVzWzM1NDhdKSwwfSwKLXsic2VjcmV0YXJ5Iiwic2VjcmV0YXJ5IixOSURfc2VjcmV0YXJ5LDEwLCYobHZhbHVlc1szNTU4XSksMH0sCi17Im90aGVyTWFpbGJveCIsIm90aGVyTWFpbGJveCIsTklEX290aGVyTWFpbGJveCwxMCwmKGx2YWx1ZXNbMzU2OF0pLDB9LAorCTEwLCYobHZhbHVlc1szNTQ0XSksMH0sCit7InNlY3JldGFyeSIsInNlY3JldGFyeSIsTklEX3NlY3JldGFyeSwxMCwmKGx2YWx1ZXNbMzU1NF0pLDB9LAoreyJvdGhlck1haWxib3giLCJvdGhlck1haWxib3giLE5JRF9vdGhlck1haWxib3gsMTAsJihsdmFsdWVzWzM1NjRdKSwwfSwKIHsibGFzdE1vZGlmaWVkVGltZSIsImxhc3RNb2RpZmllZFRpbWUiLE5JRF9sYXN0TW9kaWZpZWRUaW1lLDEwLAotCSYobHZhbHVlc1szNTc4XSksMH0sCisJJihsdmFsdWVzWzM1NzRdKSwwfSwKIHsibGFzdE1vZGlmaWVkQnkiLCJsYXN0TW9kaWZpZWRCeSIsTklEX2xhc3RNb2RpZmllZEJ5LDEwLAotCSYobHZhbHVlc1szNTg4XSksMH0sCi17ImFSZWNvcmQiLCJhUmVjb3JkIixOSURfYVJlY29yZCwxMCwmKGx2YWx1ZXNbMzU5OF0pLDB9LAorCSYobHZhbHVlc1szNTg0XSksMH0sCit7ImFSZWNvcmQiLCJhUmVjb3JkIixOSURfYVJlY29yZCwxMCwmKGx2YWx1ZXNbMzU5NF0pLDB9LAogeyJwaWxvdEF0dHJpYnV0ZVR5cGUyNyIsInBpbG90QXR0cmlidXRlVHlwZTI3IiwKLQlOSURfcGlsb3RBdHRyaWJ1dGVUeXBlMjcsMTAsJihsdmFsdWVzWzM2MDhdKSwwfSwKLXsibVhSZWNvcmQiLCJtWFJlY29yZCIsTklEX21YUmVjb3JkLDEwLCYobHZhbHVlc1szNjE4XSksMH0sCi17Im5TUmVjb3JkIiwiblNSZWNvcmQiLE5JRF9uU1JlY29yZCwxMCwmKGx2YWx1ZXNbMzYyOF0pLDB9LAoteyJzT0FSZWNvcmQiLCJzT0FSZWNvcmQiLE5JRF9zT0FSZWNvcmQsMTAsJihsdmFsdWVzWzM2MzhdKSwwfSwKLXsiY05BTUVSZWNvcmQiLCJjTkFNRVJlY29yZCIsTklEX2NOQU1FUmVjb3JkLDEwLCYobHZhbHVlc1szNjQ4XSksMH0sCisJTklEX3BpbG90QXR0cmlidXRlVHlwZTI3LDEwLCYobHZhbHVlc1szNjA0XSksMH0sCit7Im1YUmVjb3JkIiwibVhSZWNvcmQiLE5JRF9tWFJlY29yZCwxMCwmKGx2YWx1ZXNbMzYxNF0pLDB9LAoreyJuU1JlY29yZCIsIm5TUmVjb3JkIixOSURfblNSZWNvcmQsMTAsJihsdmFsdWVzWzM2MjRdKSwwfSwKK3sic09BUmVjb3JkIiwic09BUmVjb3JkIixOSURfc09BUmVjb3JkLDEwLCYobHZhbHVlc1szNjM0XSksMH0sCit7ImNOQU1FUmVjb3JkIiwiY05BTUVSZWNvcmQiLE5JRF9jTkFNRVJlY29yZCwxMCwmKGx2YWx1ZXNbMzY0NF0pLDB9LAogeyJhc3NvY2lhdGVkRG9tYWluIiwiYXNzb2NpYXRlZERvbWFpbiIsTklEX2Fzc29jaWF0ZWREb21haW4sMTAsCi0JJihsdmFsdWVzWzM2NThdKSwwfSwKKwkmKGx2YWx1ZXNbMzY1NF0pLDB9LAogeyJhc3NvY2lhdGVkTmFtZSIsImFzc29jaWF0ZWROYW1lIixOSURfYXNzb2NpYXRlZE5hbWUsMTAsCi0JJihsdmFsdWVzWzM2NjhdKSwwfSwKKwkmKGx2YWx1ZXNbMzY2NF0pLDB9LAogeyJob21lUG9zdGFsQWRkcmVzcyIsImhvbWVQb3N0YWxBZGRyZXNzIixOSURfaG9tZVBvc3RhbEFkZHJlc3MsMTAsCi0JJihsdmFsdWVzWzM2NzhdKSwwfSwKLXsicGVyc29uYWxUaXRsZSIsInBlcnNvbmFsVGl0bGUiLE5JRF9wZXJzb25hbFRpdGxlLDEwLCYobHZhbHVlc1szNjg4XSksMH0sCisJJihsdmFsdWVzWzM2NzRdKSwwfSwKK3sicGVyc29uYWxUaXRsZSIsInBlcnNvbmFsVGl0bGUiLE5JRF9wZXJzb25hbFRpdGxlLDEwLCYobHZhbHVlc1szNjg0XSksMH0sCiB7Im1vYmlsZVRlbGVwaG9uZU51bWJlciIsIm1vYmlsZVRlbGVwaG9uZU51bWJlciIsCi0JTklEX21vYmlsZVRlbGVwaG9uZU51bWJlciwxMCwmKGx2YWx1ZXNbMzY5OF0pLDB9LAorCU5JRF9tb2JpbGVUZWxlcGhvbmVOdW1iZXIsMTAsJihsdmFsdWVzWzM2OTRdKSwwfSwKIHsicGFnZXJUZWxlcGhvbmVOdW1iZXIiLCJwYWdlclRlbGVwaG9uZU51bWJlciIsCi0JTklEX3BhZ2VyVGVsZXBob25lTnVtYmVyLDEwLCYobHZhbHVlc1szNzA4XSksMH0sCisJTklEX3BhZ2VyVGVsZXBob25lTnVtYmVyLDEwLCYobHZhbHVlc1szNzA0XSksMH0sCiB7ImZyaWVuZGx5Q291bnRyeU5hbWUiLCJmcmllbmRseUNvdW50cnlOYW1lIixOSURfZnJpZW5kbHlDb3VudHJ5TmFtZSwKLQkxMCwmKGx2YWx1ZXNbMzcxOF0pLDB9LAorCTEwLCYobHZhbHVlc1szNzE0XSksMH0sCiB7Im9yZ2FuaXphdGlvbmFsU3RhdHVzIiwib3JnYW5pemF0aW9uYWxTdGF0dXMiLAotCU5JRF9vcmdhbml6YXRpb25hbFN0YXR1cywxMCwmKGx2YWx1ZXNbMzcyOF0pLDB9LAoteyJqYW5ldE1haWxib3giLCJqYW5ldE1haWxib3giLE5JRF9qYW5ldE1haWxib3gsMTAsJihsdmFsdWVzWzM3MzhdKSwwfSwKKwlOSURfb3JnYW5pemF0aW9uYWxTdGF0dXMsMTAsJihsdmFsdWVzWzM3MjRdKSwwfSwKK3siamFuZXRNYWlsYm94IiwiamFuZXRNYWlsYm94IixOSURfamFuZXRNYWlsYm94LDEwLCYobHZhbHVlc1szNzM0XSksMH0sCiB7Im1haWxQcmVmZXJlbmNlT3B0aW9uIiwibWFpbFByZWZlcmVuY2VPcHRpb24iLAotCU5JRF9tYWlsUHJlZmVyZW5jZU9wdGlvbiwxMCwmKGx2YWx1ZXNbMzc0OF0pLDB9LAoteyJidWlsZGluZ05hbWUiLCJidWlsZGluZ05hbWUiLE5JRF9idWlsZGluZ05hbWUsMTAsJihsdmFsdWVzWzM3NThdKSwwfSwKLXsiZFNBUXVhbGl0eSIsImRTQVF1YWxpdHkiLE5JRF9kU0FRdWFsaXR5LDEwLCYobHZhbHVlc1szNzY4XSksMH0sCisJTklEX21haWxQcmVmZXJlbmNlT3B0aW9uLDEwLCYobHZhbHVlc1szNzQ0XSksMH0sCit7ImJ1aWxkaW5nTmFtZSIsImJ1aWxkaW5nTmFtZSIsTklEX2J1aWxkaW5nTmFtZSwxMCwmKGx2YWx1ZXNbMzc1NF0pLDB9LAoreyJkU0FRdWFsaXR5IiwiZFNBUXVhbGl0eSIsTklEX2RTQVF1YWxpdHksMTAsJihsdmFsdWVzWzM3NjRdKSwwfSwKIHsic2luZ2xlTGV2ZWxRdWFsaXR5Iiwic2luZ2xlTGV2ZWxRdWFsaXR5IixOSURfc2luZ2xlTGV2ZWxRdWFsaXR5LDEwLAotCSYobHZhbHVlc1szNzc4XSksMH0sCisJJihsdmFsdWVzWzM3NzRdKSwwfSwKIHsic3VidHJlZU1pbmltdW1RdWFsaXR5Iiwic3VidHJlZU1pbmltdW1RdWFsaXR5IiwKLQlOSURfc3VidHJlZU1pbmltdW1RdWFsaXR5LDEwLCYobHZhbHVlc1szNzg4XSksMH0sCisJTklEX3N1YnRyZWVNaW5pbXVtUXVhbGl0eSwxMCwmKGx2YWx1ZXNbMzc4NF0pLDB9LAogeyJzdWJ0cmVlTWF4aW11bVF1YWxpdHkiLCJzdWJ0cmVlTWF4aW11bVF1YWxpdHkiLAotCU5JRF9zdWJ0cmVlTWF4aW11bVF1YWxpdHksMTAsJihsdmFsdWVzWzM3OThdKSwwfSwKKwlOSURfc3VidHJlZU1heGltdW1RdWFsaXR5LDEwLCYobHZhbHVlc1szNzk0XSksMH0sCiB7InBlcnNvbmFsU2lnbmF0dXJlIiwicGVyc29uYWxTaWduYXR1cmUiLE5JRF9wZXJzb25hbFNpZ25hdHVyZSwxMCwKLQkmKGx2YWx1ZXNbMzgwOF0pLDB9LAoteyJkSVRSZWRpcmVjdCIsImRJVFJlZGlyZWN0IixOSURfZElUUmVkaXJlY3QsMTAsJihsdmFsdWVzWzM4MThdKSwwfSwKLXsiYXVkaW8iLCJhdWRpbyIsTklEX2F1ZGlvLDEwLCYobHZhbHVlc1szODI4XSksMH0sCisJJihsdmFsdWVzWzM4MDRdKSwwfSwKK3siZElUUmVkaXJlY3QiLCJkSVRSZWRpcmVjdCIsTklEX2RJVFJlZGlyZWN0LDEwLCYobHZhbHVlc1szODE0XSksMH0sCit7ImF1ZGlvIiwiYXVkaW8iLE5JRF9hdWRpbywxMCwmKGx2YWx1ZXNbMzgyNF0pLDB9LAogeyJkb2N1bWVudFB1Ymxpc2hlciIsImRvY3VtZW50UHVibGlzaGVyIixOSURfZG9jdW1lbnRQdWJsaXNoZXIsMTAsCi0JJihsdmFsdWVzWzM4MzhdKSwwfSwKKwkmKGx2YWx1ZXNbMzgzNF0pLDB9LAogeyJ4NTAwVW5pcXVlSWRlbnRpZmllciIsIng1MDBVbmlxdWVJZGVudGlmaWVyIiwKLQlOSURfeDUwMFVuaXF1ZUlkZW50aWZpZXIsMywmKGx2YWx1ZXNbMzg0OF0pLDB9LAoteyJtaW1lLW1ocyIsIk1JTUUgTUhTIixOSURfbWltZV9taHMsNSwmKGx2YWx1ZXNbMzg1MV0pLDB9LAorCU5JRF94NTAwVW5pcXVlSWRlbnRpZmllciwzLCYobHZhbHVlc1szODQ0XSksMH0sCit7Im1pbWUtbWhzIiwiTUlNRSBNSFMiLE5JRF9taW1lX21ocyw1LCYobHZhbHVlc1szODQ3XSksMH0sCiB7Im1pbWUtbWhzLWhlYWRpbmdzIiwibWltZS1taHMtaGVhZGluZ3MiLE5JRF9taW1lX21oc19oZWFkaW5ncyw2LAotCSYobHZhbHVlc1szODU2XSksMH0sCisJJihsdmFsdWVzWzM4NTJdKSwwfSwKIHsibWltZS1taHMtYm9kaWVzIiwibWltZS1taHMtYm9kaWVzIixOSURfbWltZV9taHNfYm9kaWVzLDYsCi0JJihsdmFsdWVzWzM4NjJdKSwwfSwKKwkmKGx2YWx1ZXNbMzg1OF0pLDB9LAogeyJpZC1oZXgtcGFydGlhbC1tZXNzYWdlIiwiaWQtaGV4LXBhcnRpYWwtbWVzc2FnZSIsCi0JTklEX2lkX2hleF9wYXJ0aWFsX21lc3NhZ2UsNywmKGx2YWx1ZXNbMzg2OF0pLDB9LAorCU5JRF9pZF9oZXhfcGFydGlhbF9tZXNzYWdlLDcsJihsdmFsdWVzWzM4NjRdKSwwfSwKIHsiaWQtaGV4LW11bHRpcGFydC1tZXNzYWdlIiwiaWQtaGV4LW11bHRpcGFydC1tZXNzYWdlIiwKLQlOSURfaWRfaGV4X211bHRpcGFydF9tZXNzYWdlLDcsJihsdmFsdWVzWzM4NzVdKSwwfSwKKwlOSURfaWRfaGV4X211bHRpcGFydF9tZXNzYWdlLDcsJihsdmFsdWVzWzM4NzFdKSwwfSwKIHsiZ2VuZXJhdGlvblF1YWxpZmllciIsImdlbmVyYXRpb25RdWFsaWZpZXIiLE5JRF9nZW5lcmF0aW9uUXVhbGlmaWVyLAotCTMsJihsdmFsdWVzWzM4ODJdKSwwfSwKLXsicHNldWRvbnltIiwicHNldWRvbnltIixOSURfcHNldWRvbnltLDMsJihsdmFsdWVzWzM4ODVdKSwwfSwKKwkzLCYobHZhbHVlc1szODc4XSksMH0sCit7InBzZXVkb255bSIsInBzZXVkb255bSIsTklEX3BzZXVkb255bSwzLCYobHZhbHVlc1szODgxXSksMH0sCiB7TlVMTCxOVUxMLE5JRF91bmRlZiwwLE5VTEwsMH0sCiB7ImlkLXNldCIsIlNlY3VyZSBFbGVjdHJvbmljIFRyYW5zYWN0aW9ucyIsTklEX2lkX3NldCwyLAotCSYobHZhbHVlc1szODg4XSksMH0sCi17InNldC1jdHlwZSIsImNvbnRlbnQgdHlwZXMiLE5JRF9zZXRfY3R5cGUsMywmKGx2YWx1ZXNbMzg5MF0pLDB9LAoteyJzZXQtbXNnRXh0IiwibWVzc2FnZSBleHRlbnNpb25zIixOSURfc2V0X21zZ0V4dCwzLCYobHZhbHVlc1szODkzXSksMH0sCi17InNldC1hdHRyIiwic2V0LWF0dHIiLE5JRF9zZXRfYXR0ciwzLCYobHZhbHVlc1szODk2XSksMH0sCi17InNldC1wb2xpY3kiLCJzZXQtcG9saWN5IixOSURfc2V0X3BvbGljeSwzLCYobHZhbHVlc1szODk5XSksMH0sCisJJihsdmFsdWVzWzM4ODRdKSwwfSwKK3sic2V0LWN0eXBlIiwiY29udGVudCB0eXBlcyIsTklEX3NldF9jdHlwZSwzLCYobHZhbHVlc1szODg2XSksMH0sCit7InNldC1tc2dFeHQiLCJtZXNzYWdlIGV4dGVuc2lvbnMiLE5JRF9zZXRfbXNnRXh0LDMsJihsdmFsdWVzWzM4ODldKSwwfSwKK3sic2V0LWF0dHIiLCJzZXQtYXR0ciIsTklEX3NldF9hdHRyLDMsJihsdmFsdWVzWzM4OTJdKSwwfSwKK3sic2V0LXBvbGljeSIsInNldC1wb2xpY3kiLE5JRF9zZXRfcG9saWN5LDMsJihsdmFsdWVzWzM4OTVdKSwwfSwKIHsic2V0LWNlcnRFeHQiLCJjZXJ0aWZpY2F0ZSBleHRlbnNpb25zIixOSURfc2V0X2NlcnRFeHQsMywKLQkmKGx2YWx1ZXNbMzkwMl0pLDB9LAoteyJzZXQtYnJhbmQiLCJzZXQtYnJhbmQiLE5JRF9zZXRfYnJhbmQsMywmKGx2YWx1ZXNbMzkwNV0pLDB9LAoteyJzZXRjdC1QQU5EYXRhIiwic2V0Y3QtUEFORGF0YSIsTklEX3NldGN0X1BBTkRhdGEsNCwmKGx2YWx1ZXNbMzkwOF0pLDB9LAorCSYobHZhbHVlc1szODk4XSksMH0sCit7InNldC1icmFuZCIsInNldC1icmFuZCIsTklEX3NldF9icmFuZCwzLCYobHZhbHVlc1szOTAxXSksMH0sCit7InNldGN0LVBBTkRhdGEiLCJzZXRjdC1QQU5EYXRhIixOSURfc2V0Y3RfUEFORGF0YSw0LCYobHZhbHVlc1szOTA0XSksMH0sCiB7InNldGN0LVBBTlRva2VuIiwic2V0Y3QtUEFOVG9rZW4iLE5JRF9zZXRjdF9QQU5Ub2tlbiw0LAotCSYobHZhbHVlc1szOTEyXSksMH0sCi17InNldGN0LVBBTk9ubHkiLCJzZXRjdC1QQU5Pbmx5IixOSURfc2V0Y3RfUEFOT25seSw0LCYobHZhbHVlc1szOTE2XSksMH0sCi17InNldGN0LU9JRGF0YSIsInNldGN0LU9JRGF0YSIsTklEX3NldGN0X09JRGF0YSw0LCYobHZhbHVlc1szOTIwXSksMH0sCi17InNldGN0LVBJIiwic2V0Y3QtUEkiLE5JRF9zZXRjdF9QSSw0LCYobHZhbHVlc1szOTI0XSksMH0sCi17InNldGN0LVBJRGF0YSIsInNldGN0LVBJRGF0YSIsTklEX3NldGN0X1BJRGF0YSw0LCYobHZhbHVlc1szOTI4XSksMH0sCisJJihsdmFsdWVzWzM5MDhdKSwwfSwKK3sic2V0Y3QtUEFOT25seSIsInNldGN0LVBBTk9ubHkiLE5JRF9zZXRjdF9QQU5Pbmx5LDQsJihsdmFsdWVzWzM5MTJdKSwwfSwKK3sic2V0Y3QtT0lEYXRhIiwic2V0Y3QtT0lEYXRhIixOSURfc2V0Y3RfT0lEYXRhLDQsJihsdmFsdWVzWzM5MTZdKSwwfSwKK3sic2V0Y3QtUEkiLCJzZXRjdC1QSSIsTklEX3NldGN0X1BJLDQsJihsdmFsdWVzWzM5MjBdKSwwfSwKK3sic2V0Y3QtUElEYXRhIiwic2V0Y3QtUElEYXRhIixOSURfc2V0Y3RfUElEYXRhLDQsJihsdmFsdWVzWzM5MjRdKSwwfSwKIHsic2V0Y3QtUElEYXRhVW5zaWduZWQiLCJzZXRjdC1QSURhdGFVbnNpZ25lZCIsCi0JTklEX3NldGN0X1BJRGF0YVVuc2lnbmVkLDQsJihsdmFsdWVzWzM5MzJdKSwwfSwKKwlOSURfc2V0Y3RfUElEYXRhVW5zaWduZWQsNCwmKGx2YWx1ZXNbMzkyOF0pLDB9LAogeyJzZXRjdC1IT0RJbnB1dCIsInNldGN0LUhPRElucHV0IixOSURfc2V0Y3RfSE9ESW5wdXQsNCwKLQkmKGx2YWx1ZXNbMzkzNl0pLDB9LAorCSYobHZhbHVlc1szOTMyXSksMH0sCiB7InNldGN0LUF1dGhSZXNCYWdnYWdlIiwic2V0Y3QtQXV0aFJlc0JhZ2dhZ2UiLAotCU5JRF9zZXRjdF9BdXRoUmVzQmFnZ2FnZSw0LCYobHZhbHVlc1szOTQwXSksMH0sCisJTklEX3NldGN0X0F1dGhSZXNCYWdnYWdlLDQsJihsdmFsdWVzWzM5MzZdKSwwfSwKIHsic2V0Y3QtQXV0aFJldlJlcUJhZ2dhZ2UiLCJzZXRjdC1BdXRoUmV2UmVxQmFnZ2FnZSIsCi0JTklEX3NldGN0X0F1dGhSZXZSZXFCYWdnYWdlLDQsJihsdmFsdWVzWzM5NDRdKSwwfSwKKwlOSURfc2V0Y3RfQXV0aFJldlJlcUJhZ2dhZ2UsNCwmKGx2YWx1ZXNbMzk0MF0pLDB9LAogeyJzZXRjdC1BdXRoUmV2UmVzQmFnZ2FnZSIsInNldGN0LUF1dGhSZXZSZXNCYWdnYWdlIiwKLQlOSURfc2V0Y3RfQXV0aFJldlJlc0JhZ2dhZ2UsNCwmKGx2YWx1ZXNbMzk0OF0pLDB9LAorCU5JRF9zZXRjdF9BdXRoUmV2UmVzQmFnZ2FnZSw0LCYobHZhbHVlc1szOTQ0XSksMH0sCiB7InNldGN0LUNhcFRva2VuU2VxIiwic2V0Y3QtQ2FwVG9rZW5TZXEiLE5JRF9zZXRjdF9DYXBUb2tlblNlcSw0LAotCSYobHZhbHVlc1szOTUyXSksMH0sCisJJihsdmFsdWVzWzM5NDhdKSwwfSwKIHsic2V0Y3QtUEluaXRSZXNEYXRhIiwic2V0Y3QtUEluaXRSZXNEYXRhIixOSURfc2V0Y3RfUEluaXRSZXNEYXRhLDQsCi0JJihsdmFsdWVzWzM5NTZdKSwwfSwKLXsic2V0Y3QtUEktVEJTIiwic2V0Y3QtUEktVEJTIixOSURfc2V0Y3RfUElfVEJTLDQsJihsdmFsdWVzWzM5NjBdKSwwfSwKKwkmKGx2YWx1ZXNbMzk1Ml0pLDB9LAoreyJzZXRjdC1QSS1UQlMiLCJzZXRjdC1QSS1UQlMiLE5JRF9zZXRjdF9QSV9UQlMsNCwmKGx2YWx1ZXNbMzk1Nl0pLDB9LAogeyJzZXRjdC1QUmVzRGF0YSIsInNldGN0LVBSZXNEYXRhIixOSURfc2V0Y3RfUFJlc0RhdGEsNCwKLQkmKGx2YWx1ZXNbMzk2NF0pLDB9LAorCSYobHZhbHVlc1szOTYwXSksMH0sCiB7InNldGN0LUF1dGhSZXFUQlMiLCJzZXRjdC1BdXRoUmVxVEJTIixOSURfc2V0Y3RfQXV0aFJlcVRCUyw0LAotCSYobHZhbHVlc1szOTY4XSksMH0sCisJJihsdmFsdWVzWzM5NjRdKSwwfSwKIHsic2V0Y3QtQXV0aFJlc1RCUyIsInNldGN0LUF1dGhSZXNUQlMiLE5JRF9zZXRjdF9BdXRoUmVzVEJTLDQsCi0JJihsdmFsdWVzWzM5NzJdKSwwfSwKKwkmKGx2YWx1ZXNbMzk2OF0pLDB9LAogeyJzZXRjdC1BdXRoUmVzVEJTWCIsInNldGN0LUF1dGhSZXNUQlNYIixOSURfc2V0Y3RfQXV0aFJlc1RCU1gsNCwKLQkmKGx2YWx1ZXNbMzk3Nl0pLDB9LAorCSYobHZhbHVlc1szOTcyXSksMH0sCiB7InNldGN0LUF1dGhUb2tlblRCUyIsInNldGN0LUF1dGhUb2tlblRCUyIsTklEX3NldGN0X0F1dGhUb2tlblRCUyw0LAotCSYobHZhbHVlc1szOTgwXSksMH0sCisJJihsdmFsdWVzWzM5NzZdKSwwfSwKIHsic2V0Y3QtQ2FwVG9rZW5EYXRhIiwic2V0Y3QtQ2FwVG9rZW5EYXRhIixOSURfc2V0Y3RfQ2FwVG9rZW5EYXRhLDQsCi0JJihsdmFsdWVzWzM5ODRdKSwwfSwKKwkmKGx2YWx1ZXNbMzk4MF0pLDB9LAogeyJzZXRjdC1DYXBUb2tlblRCUyIsInNldGN0LUNhcFRva2VuVEJTIixOSURfc2V0Y3RfQ2FwVG9rZW5UQlMsNCwKLQkmKGx2YWx1ZXNbMzk4OF0pLDB9LAorCSYobHZhbHVlc1szOTg0XSksMH0sCiB7InNldGN0LUFjcUNhcmRDb2RlTXNnIiwic2V0Y3QtQWNxQ2FyZENvZGVNc2ciLAotCU5JRF9zZXRjdF9BY3FDYXJkQ29kZU1zZyw0LCYobHZhbHVlc1szOTkyXSksMH0sCisJTklEX3NldGN0X0FjcUNhcmRDb2RlTXNnLDQsJihsdmFsdWVzWzM5ODhdKSwwfSwKIHsic2V0Y3QtQXV0aFJldlJlcVRCUyIsInNldGN0LUF1dGhSZXZSZXFUQlMiLE5JRF9zZXRjdF9BdXRoUmV2UmVxVEJTLAotCTQsJihsdmFsdWVzWzM5OTZdKSwwfSwKKwk0LCYobHZhbHVlc1szOTkyXSksMH0sCiB7InNldGN0LUF1dGhSZXZSZXNEYXRhIiwic2V0Y3QtQXV0aFJldlJlc0RhdGEiLAotCU5JRF9zZXRjdF9BdXRoUmV2UmVzRGF0YSw0LCYobHZhbHVlc1s0MDAwXSksMH0sCisJTklEX3NldGN0X0F1dGhSZXZSZXNEYXRhLDQsJihsdmFsdWVzWzM5OTZdKSwwfSwKIHsic2V0Y3QtQXV0aFJldlJlc1RCUyIsInNldGN0LUF1dGhSZXZSZXNUQlMiLE5JRF9zZXRjdF9BdXRoUmV2UmVzVEJTLAotCTQsJihsdmFsdWVzWzQwMDRdKSwwfSwKKwk0LCYobHZhbHVlc1s0MDAwXSksMH0sCiB7InNldGN0LUNhcFJlcVRCUyIsInNldGN0LUNhcFJlcVRCUyIsTklEX3NldGN0X0NhcFJlcVRCUyw0LAotCSYobHZhbHVlc1s0MDA4XSksMH0sCisJJihsdmFsdWVzWzQwMDRdKSwwfSwKIHsic2V0Y3QtQ2FwUmVxVEJTWCIsInNldGN0LUNhcFJlcVRCU1giLE5JRF9zZXRjdF9DYXBSZXFUQlNYLDQsCi0JJihsdmFsdWVzWzQwMTJdKSwwfSwKKwkmKGx2YWx1ZXNbNDAwOF0pLDB9LAogeyJzZXRjdC1DYXBSZXNEYXRhIiwic2V0Y3QtQ2FwUmVzRGF0YSIsTklEX3NldGN0X0NhcFJlc0RhdGEsNCwKLQkmKGx2YWx1ZXNbNDAxNl0pLDB9LAorCSYobHZhbHVlc1s0MDEyXSksMH0sCiB7InNldGN0LUNhcFJldlJlcVRCUyIsInNldGN0LUNhcFJldlJlcVRCUyIsTklEX3NldGN0X0NhcFJldlJlcVRCUyw0LAotCSYobHZhbHVlc1s0MDIwXSksMH0sCisJJihsdmFsdWVzWzQwMTZdKSwwfSwKIHsic2V0Y3QtQ2FwUmV2UmVxVEJTWCIsInNldGN0LUNhcFJldlJlcVRCU1giLE5JRF9zZXRjdF9DYXBSZXZSZXFUQlNYLAotCTQsJihsdmFsdWVzWzQwMjRdKSwwfSwKKwk0LCYobHZhbHVlc1s0MDIwXSksMH0sCiB7InNldGN0LUNhcFJldlJlc0RhdGEiLCJzZXRjdC1DYXBSZXZSZXNEYXRhIixOSURfc2V0Y3RfQ2FwUmV2UmVzRGF0YSwKLQk0LCYobHZhbHVlc1s0MDI4XSksMH0sCisJNCwmKGx2YWx1ZXNbNDAyNF0pLDB9LAogeyJzZXRjdC1DcmVkUmVxVEJTIiwic2V0Y3QtQ3JlZFJlcVRCUyIsTklEX3NldGN0X0NyZWRSZXFUQlMsNCwKLQkmKGx2YWx1ZXNbNDAzMl0pLDB9LAorCSYobHZhbHVlc1s0MDI4XSksMH0sCiB7InNldGN0LUNyZWRSZXFUQlNYIiwic2V0Y3QtQ3JlZFJlcVRCU1giLE5JRF9zZXRjdF9DcmVkUmVxVEJTWCw0LAotCSYobHZhbHVlc1s0MDM2XSksMH0sCisJJihsdmFsdWVzWzQwMzJdKSwwfSwKIHsic2V0Y3QtQ3JlZFJlc0RhdGEiLCJzZXRjdC1DcmVkUmVzRGF0YSIsTklEX3NldGN0X0NyZWRSZXNEYXRhLDQsCi0JJihsdmFsdWVzWzQwNDBdKSwwfSwKKwkmKGx2YWx1ZXNbNDAzNl0pLDB9LAogeyJzZXRjdC1DcmVkUmV2UmVxVEJTIiwic2V0Y3QtQ3JlZFJldlJlcVRCUyIsTklEX3NldGN0X0NyZWRSZXZSZXFUQlMsCi0JNCwmKGx2YWx1ZXNbNDA0NF0pLDB9LAorCTQsJihsdmFsdWVzWzQwNDBdKSwwfSwKIHsic2V0Y3QtQ3JlZFJldlJlcVRCU1giLCJzZXRjdC1DcmVkUmV2UmVxVEJTWCIsCi0JTklEX3NldGN0X0NyZWRSZXZSZXFUQlNYLDQsJihsdmFsdWVzWzQwNDhdKSwwfSwKKwlOSURfc2V0Y3RfQ3JlZFJldlJlcVRCU1gsNCwmKGx2YWx1ZXNbNDA0NF0pLDB9LAogeyJzZXRjdC1DcmVkUmV2UmVzRGF0YSIsInNldGN0LUNyZWRSZXZSZXNEYXRhIiwKLQlOSURfc2V0Y3RfQ3JlZFJldlJlc0RhdGEsNCwmKGx2YWx1ZXNbNDA1Ml0pLDB9LAorCU5JRF9zZXRjdF9DcmVkUmV2UmVzRGF0YSw0LCYobHZhbHVlc1s0MDQ4XSksMH0sCiB7InNldGN0LVBDZXJ0UmVxRGF0YSIsInNldGN0LVBDZXJ0UmVxRGF0YSIsTklEX3NldGN0X1BDZXJ0UmVxRGF0YSw0LAotCSYobHZhbHVlc1s0MDU2XSksMH0sCisJJihsdmFsdWVzWzQwNTJdKSwwfSwKIHsic2V0Y3QtUENlcnRSZXNUQlMiLCJzZXRjdC1QQ2VydFJlc1RCUyIsTklEX3NldGN0X1BDZXJ0UmVzVEJTLDQsCi0JJihsdmFsdWVzWzQwNjBdKSwwfSwKKwkmKGx2YWx1ZXNbNDA1Nl0pLDB9LAogeyJzZXRjdC1CYXRjaEFkbWluUmVxRGF0YSIsInNldGN0LUJhdGNoQWRtaW5SZXFEYXRhIiwKLQlOSURfc2V0Y3RfQmF0Y2hBZG1pblJlcURhdGEsNCwmKGx2YWx1ZXNbNDA2NF0pLDB9LAorCU5JRF9zZXRjdF9CYXRjaEFkbWluUmVxRGF0YSw0LCYobHZhbHVlc1s0MDYwXSksMH0sCiB7InNldGN0LUJhdGNoQWRtaW5SZXNEYXRhIiwic2V0Y3QtQmF0Y2hBZG1pblJlc0RhdGEiLAotCU5JRF9zZXRjdF9CYXRjaEFkbWluUmVzRGF0YSw0LCYobHZhbHVlc1s0MDY4XSksMH0sCisJTklEX3NldGN0X0JhdGNoQWRtaW5SZXNEYXRhLDQsJihsdmFsdWVzWzQwNjRdKSwwfSwKIHsic2V0Y3QtQ2FyZENJbml0UmVzVEJTIiwic2V0Y3QtQ2FyZENJbml0UmVzVEJTIiwKLQlOSURfc2V0Y3RfQ2FyZENJbml0UmVzVEJTLDQsJihsdmFsdWVzWzQwNzJdKSwwfSwKKwlOSURfc2V0Y3RfQ2FyZENJbml0UmVzVEJTLDQsJihsdmFsdWVzWzQwNjhdKSwwfSwKIHsic2V0Y3QtTWVBcUNJbml0UmVzVEJTIiwic2V0Y3QtTWVBcUNJbml0UmVzVEJTIiwKLQlOSURfc2V0Y3RfTWVBcUNJbml0UmVzVEJTLDQsJihsdmFsdWVzWzQwNzZdKSwwfSwKKwlOSURfc2V0Y3RfTWVBcUNJbml0UmVzVEJTLDQsJihsdmFsdWVzWzQwNzJdKSwwfSwKIHsic2V0Y3QtUmVnRm9ybVJlc1RCUyIsInNldGN0LVJlZ0Zvcm1SZXNUQlMiLE5JRF9zZXRjdF9SZWdGb3JtUmVzVEJTLAotCTQsJihsdmFsdWVzWzQwODBdKSwwfSwKKwk0LCYobHZhbHVlc1s0MDc2XSksMH0sCiB7InNldGN0LUNlcnRSZXFEYXRhIiwic2V0Y3QtQ2VydFJlcURhdGEiLE5JRF9zZXRjdF9DZXJ0UmVxRGF0YSw0LAotCSYobHZhbHVlc1s0MDg0XSksMH0sCisJJihsdmFsdWVzWzQwODBdKSwwfSwKIHsic2V0Y3QtQ2VydFJlcVRCUyIsInNldGN0LUNlcnRSZXFUQlMiLE5JRF9zZXRjdF9DZXJ0UmVxVEJTLDQsCi0JJihsdmFsdWVzWzQwODhdKSwwfSwKKwkmKGx2YWx1ZXNbNDA4NF0pLDB9LAogeyJzZXRjdC1DZXJ0UmVzRGF0YSIsInNldGN0LUNlcnRSZXNEYXRhIixOSURfc2V0Y3RfQ2VydFJlc0RhdGEsNCwKLQkmKGx2YWx1ZXNbNDA5Ml0pLDB9LAorCSYobHZhbHVlc1s0MDg4XSksMH0sCiB7InNldGN0LUNlcnRJbnFSZXFUQlMiLCJzZXRjdC1DZXJ0SW5xUmVxVEJTIixOSURfc2V0Y3RfQ2VydElucVJlcVRCUywKLQk0LCYobHZhbHVlc1s0MDk2XSksMH0sCisJNCwmKGx2YWx1ZXNbNDA5Ml0pLDB9LAogeyJzZXRjdC1FcnJvclRCUyIsInNldGN0LUVycm9yVEJTIixOSURfc2V0Y3RfRXJyb3JUQlMsNCwKLQkmKGx2YWx1ZXNbNDEwMF0pLDB9LAorCSYobHZhbHVlc1s0MDk2XSksMH0sCiB7InNldGN0LVBJRHVhbFNpZ25lZFRCRSIsInNldGN0LVBJRHVhbFNpZ25lZFRCRSIsCi0JTklEX3NldGN0X1BJRHVhbFNpZ25lZFRCRSw0LCYobHZhbHVlc1s0MTA0XSksMH0sCisJTklEX3NldGN0X1BJRHVhbFNpZ25lZFRCRSw0LCYobHZhbHVlc1s0MTAwXSksMH0sCiB7InNldGN0LVBJVW5zaWduZWRUQkUiLCJzZXRjdC1QSVVuc2lnbmVkVEJFIixOSURfc2V0Y3RfUElVbnNpZ25lZFRCRSwKLQk0LCYobHZhbHVlc1s0MTA4XSksMH0sCisJNCwmKGx2YWx1ZXNbNDEwNF0pLDB9LAogeyJzZXRjdC1BdXRoUmVxVEJFIiwic2V0Y3QtQXV0aFJlcVRCRSIsTklEX3NldGN0X0F1dGhSZXFUQkUsNCwKLQkmKGx2YWx1ZXNbNDExMl0pLDB9LAorCSYobHZhbHVlc1s0MTA4XSksMH0sCiB7InNldGN0LUF1dGhSZXNUQkUiLCJzZXRjdC1BdXRoUmVzVEJFIixOSURfc2V0Y3RfQXV0aFJlc1RCRSw0LAotCSYobHZhbHVlc1s0MTE2XSksMH0sCisJJihsdmFsdWVzWzQxMTJdKSwwfSwKIHsic2V0Y3QtQXV0aFJlc1RCRVgiLCJzZXRjdC1BdXRoUmVzVEJFWCIsTklEX3NldGN0X0F1dGhSZXNUQkVYLDQsCi0JJihsdmFsdWVzWzQxMjBdKSwwfSwKKwkmKGx2YWx1ZXNbNDExNl0pLDB9LAogeyJzZXRjdC1BdXRoVG9rZW5UQkUiLCJzZXRjdC1BdXRoVG9rZW5UQkUiLE5JRF9zZXRjdF9BdXRoVG9rZW5UQkUsNCwKLQkmKGx2YWx1ZXNbNDEyNF0pLDB9LAorCSYobHZhbHVlc1s0MTIwXSksMH0sCiB7InNldGN0LUNhcFRva2VuVEJFIiwic2V0Y3QtQ2FwVG9rZW5UQkUiLE5JRF9zZXRjdF9DYXBUb2tlblRCRSw0LAotCSYobHZhbHVlc1s0MTI4XSksMH0sCisJJihsdmFsdWVzWzQxMjRdKSwwfSwKIHsic2V0Y3QtQ2FwVG9rZW5UQkVYIiwic2V0Y3QtQ2FwVG9rZW5UQkVYIixOSURfc2V0Y3RfQ2FwVG9rZW5UQkVYLDQsCi0JJihsdmFsdWVzWzQxMzJdKSwwfSwKKwkmKGx2YWx1ZXNbNDEyOF0pLDB9LAogeyJzZXRjdC1BY3FDYXJkQ29kZU1zZ1RCRSIsInNldGN0LUFjcUNhcmRDb2RlTXNnVEJFIiwKLQlOSURfc2V0Y3RfQWNxQ2FyZENvZGVNc2dUQkUsNCwmKGx2YWx1ZXNbNDEzNl0pLDB9LAorCU5JRF9zZXRjdF9BY3FDYXJkQ29kZU1zZ1RCRSw0LCYobHZhbHVlc1s0MTMyXSksMH0sCiB7InNldGN0LUF1dGhSZXZSZXFUQkUiLCJzZXRjdC1BdXRoUmV2UmVxVEJFIixOSURfc2V0Y3RfQXV0aFJldlJlcVRCRSwKLQk0LCYobHZhbHVlc1s0MTQwXSksMH0sCisJNCwmKGx2YWx1ZXNbNDEzNl0pLDB9LAogeyJzZXRjdC1BdXRoUmV2UmVzVEJFIiwic2V0Y3QtQXV0aFJldlJlc1RCRSIsTklEX3NldGN0X0F1dGhSZXZSZXNUQkUsCi0JNCwmKGx2YWx1ZXNbNDE0NF0pLDB9LAorCTQsJihsdmFsdWVzWzQxNDBdKSwwfSwKIHsic2V0Y3QtQXV0aFJldlJlc1RCRUIiLCJzZXRjdC1BdXRoUmV2UmVzVEJFQiIsCi0JTklEX3NldGN0X0F1dGhSZXZSZXNUQkVCLDQsJihsdmFsdWVzWzQxNDhdKSwwfSwKKwlOSURfc2V0Y3RfQXV0aFJldlJlc1RCRUIsNCwmKGx2YWx1ZXNbNDE0NF0pLDB9LAogeyJzZXRjdC1DYXBSZXFUQkUiLCJzZXRjdC1DYXBSZXFUQkUiLE5JRF9zZXRjdF9DYXBSZXFUQkUsNCwKLQkmKGx2YWx1ZXNbNDE1Ml0pLDB9LAorCSYobHZhbHVlc1s0MTQ4XSksMH0sCiB7InNldGN0LUNhcFJlcVRCRVgiLCJzZXRjdC1DYXBSZXFUQkVYIixOSURfc2V0Y3RfQ2FwUmVxVEJFWCw0LAotCSYobHZhbHVlc1s0MTU2XSksMH0sCisJJihsdmFsdWVzWzQxNTJdKSwwfSwKIHsic2V0Y3QtQ2FwUmVzVEJFIiwic2V0Y3QtQ2FwUmVzVEJFIixOSURfc2V0Y3RfQ2FwUmVzVEJFLDQsCi0JJihsdmFsdWVzWzQxNjBdKSwwfSwKKwkmKGx2YWx1ZXNbNDE1Nl0pLDB9LAogeyJzZXRjdC1DYXBSZXZSZXFUQkUiLCJzZXRjdC1DYXBSZXZSZXFUQkUiLE5JRF9zZXRjdF9DYXBSZXZSZXFUQkUsNCwKLQkmKGx2YWx1ZXNbNDE2NF0pLDB9LAorCSYobHZhbHVlc1s0MTYwXSksMH0sCiB7InNldGN0LUNhcFJldlJlcVRCRVgiLCJzZXRjdC1DYXBSZXZSZXFUQkVYIixOSURfc2V0Y3RfQ2FwUmV2UmVxVEJFWCwKLQk0LCYobHZhbHVlc1s0MTY4XSksMH0sCisJNCwmKGx2YWx1ZXNbNDE2NF0pLDB9LAogeyJzZXRjdC1DYXBSZXZSZXNUQkUiLCJzZXRjdC1DYXBSZXZSZXNUQkUiLE5JRF9zZXRjdF9DYXBSZXZSZXNUQkUsNCwKLQkmKGx2YWx1ZXNbNDE3Ml0pLDB9LAorCSYobHZhbHVlc1s0MTY4XSksMH0sCiB7InNldGN0LUNyZWRSZXFUQkUiLCJzZXRjdC1DcmVkUmVxVEJFIixOSURfc2V0Y3RfQ3JlZFJlcVRCRSw0LAotCSYobHZhbHVlc1s0MTc2XSksMH0sCisJJihsdmFsdWVzWzQxNzJdKSwwfSwKIHsic2V0Y3QtQ3JlZFJlcVRCRVgiLCJzZXRjdC1DcmVkUmVxVEJFWCIsTklEX3NldGN0X0NyZWRSZXFUQkVYLDQsCi0JJihsdmFsdWVzWzQxODBdKSwwfSwKKwkmKGx2YWx1ZXNbNDE3Nl0pLDB9LAogeyJzZXRjdC1DcmVkUmVzVEJFIiwic2V0Y3QtQ3JlZFJlc1RCRSIsTklEX3NldGN0X0NyZWRSZXNUQkUsNCwKLQkmKGx2YWx1ZXNbNDE4NF0pLDB9LAorCSYobHZhbHVlc1s0MTgwXSksMH0sCiB7InNldGN0LUNyZWRSZXZSZXFUQkUiLCJzZXRjdC1DcmVkUmV2UmVxVEJFIixOSURfc2V0Y3RfQ3JlZFJldlJlcVRCRSwKLQk0LCYobHZhbHVlc1s0MTg4XSksMH0sCisJNCwmKGx2YWx1ZXNbNDE4NF0pLDB9LAogeyJzZXRjdC1DcmVkUmV2UmVxVEJFWCIsInNldGN0LUNyZWRSZXZSZXFUQkVYIiwKLQlOSURfc2V0Y3RfQ3JlZFJldlJlcVRCRVgsNCwmKGx2YWx1ZXNbNDE5Ml0pLDB9LAorCU5JRF9zZXRjdF9DcmVkUmV2UmVxVEJFWCw0LCYobHZhbHVlc1s0MTg4XSksMH0sCiB7InNldGN0LUNyZWRSZXZSZXNUQkUiLCJzZXRjdC1DcmVkUmV2UmVzVEJFIixOSURfc2V0Y3RfQ3JlZFJldlJlc1RCRSwKLQk0LCYobHZhbHVlc1s0MTk2XSksMH0sCisJNCwmKGx2YWx1ZXNbNDE5Ml0pLDB9LAogeyJzZXRjdC1CYXRjaEFkbWluUmVxVEJFIiwic2V0Y3QtQmF0Y2hBZG1pblJlcVRCRSIsCi0JTklEX3NldGN0X0JhdGNoQWRtaW5SZXFUQkUsNCwmKGx2YWx1ZXNbNDIwMF0pLDB9LAorCU5JRF9zZXRjdF9CYXRjaEFkbWluUmVxVEJFLDQsJihsdmFsdWVzWzQxOTZdKSwwfSwKIHsic2V0Y3QtQmF0Y2hBZG1pblJlc1RCRSIsInNldGN0LUJhdGNoQWRtaW5SZXNUQkUiLAotCU5JRF9zZXRjdF9CYXRjaEFkbWluUmVzVEJFLDQsJihsdmFsdWVzWzQyMDRdKSwwfSwKKwlOSURfc2V0Y3RfQmF0Y2hBZG1pblJlc1RCRSw0LCYobHZhbHVlc1s0MjAwXSksMH0sCiB7InNldGN0LVJlZ0Zvcm1SZXFUQkUiLCJzZXRjdC1SZWdGb3JtUmVxVEJFIixOSURfc2V0Y3RfUmVnRm9ybVJlcVRCRSwKLQk0LCYobHZhbHVlc1s0MjA4XSksMH0sCisJNCwmKGx2YWx1ZXNbNDIwNF0pLDB9LAogeyJzZXRjdC1DZXJ0UmVxVEJFIiwic2V0Y3QtQ2VydFJlcVRCRSIsTklEX3NldGN0X0NlcnRSZXFUQkUsNCwKLQkmKGx2YWx1ZXNbNDIxMl0pLDB9LAorCSYobHZhbHVlc1s0MjA4XSksMH0sCiB7InNldGN0LUNlcnRSZXFUQkVYIiwic2V0Y3QtQ2VydFJlcVRCRVgiLE5JRF9zZXRjdF9DZXJ0UmVxVEJFWCw0LAotCSYobHZhbHVlc1s0MjE2XSksMH0sCisJJihsdmFsdWVzWzQyMTJdKSwwfSwKIHsic2V0Y3QtQ2VydFJlc1RCRSIsInNldGN0LUNlcnRSZXNUQkUiLE5JRF9zZXRjdF9DZXJ0UmVzVEJFLDQsCi0JJihsdmFsdWVzWzQyMjBdKSwwfSwKKwkmKGx2YWx1ZXNbNDIxNl0pLDB9LAogeyJzZXRjdC1DUkxOb3RpZmljYXRpb25UQlMiLCJzZXRjdC1DUkxOb3RpZmljYXRpb25UQlMiLAotCU5JRF9zZXRjdF9DUkxOb3RpZmljYXRpb25UQlMsNCwmKGx2YWx1ZXNbNDIyNF0pLDB9LAorCU5JRF9zZXRjdF9DUkxOb3RpZmljYXRpb25UQlMsNCwmKGx2YWx1ZXNbNDIyMF0pLDB9LAogeyJzZXRjdC1DUkxOb3RpZmljYXRpb25SZXNUQlMiLCJzZXRjdC1DUkxOb3RpZmljYXRpb25SZXNUQlMiLAotCU5JRF9zZXRjdF9DUkxOb3RpZmljYXRpb25SZXNUQlMsNCwmKGx2YWx1ZXNbNDIyOF0pLDB9LAorCU5JRF9zZXRjdF9DUkxOb3RpZmljYXRpb25SZXNUQlMsNCwmKGx2YWx1ZXNbNDIyNF0pLDB9LAogeyJzZXRjdC1CQ0lEaXN0cmlidXRpb25UQlMiLCJzZXRjdC1CQ0lEaXN0cmlidXRpb25UQlMiLAotCU5JRF9zZXRjdF9CQ0lEaXN0cmlidXRpb25UQlMsNCwmKGx2YWx1ZXNbNDIzMl0pLDB9LAorCU5JRF9zZXRjdF9CQ0lEaXN0cmlidXRpb25UQlMsNCwmKGx2YWx1ZXNbNDIyOF0pLDB9LAogeyJzZXRleHQtZ2VuQ3J5cHQiLCJnZW5lcmljIGNyeXB0b2dyYW0iLE5JRF9zZXRleHRfZ2VuQ3J5cHQsNCwKLQkmKGx2YWx1ZXNbNDIzNl0pLDB9LAorCSYobHZhbHVlc1s0MjMyXSksMH0sCiB7InNldGV4dC1taUF1dGgiLCJtZXJjaGFudCBpbml0aWF0ZWQgYXV0aCIsTklEX3NldGV4dF9taUF1dGgsNCwKLQkmKGx2YWx1ZXNbNDI0MF0pLDB9LAorCSYobHZhbHVlc1s0MjM2XSksMH0sCiB7InNldGV4dC1waW5TZWN1cmUiLCJzZXRleHQtcGluU2VjdXJlIixOSURfc2V0ZXh0X3BpblNlY3VyZSw0LAotCSYobHZhbHVlc1s0MjQ0XSksMH0sCi17InNldGV4dC1waW5BbnkiLCJzZXRleHQtcGluQW55IixOSURfc2V0ZXh0X3BpbkFueSw0LCYobHZhbHVlc1s0MjQ4XSksMH0sCi17InNldGV4dC10cmFjazIiLCJzZXRleHQtdHJhY2syIixOSURfc2V0ZXh0X3RyYWNrMiw0LCYobHZhbHVlc1s0MjUyXSksMH0sCisJJihsdmFsdWVzWzQyNDBdKSwwfSwKK3sic2V0ZXh0LXBpbkFueSIsInNldGV4dC1waW5BbnkiLE5JRF9zZXRleHRfcGluQW55LDQsJihsdmFsdWVzWzQyNDRdKSwwfSwKK3sic2V0ZXh0LXRyYWNrMiIsInNldGV4dC10cmFjazIiLE5JRF9zZXRleHRfdHJhY2syLDQsJihsdmFsdWVzWzQyNDhdKSwwfSwKIHsic2V0ZXh0LWN2IiwiYWRkaXRpb25hbCB2ZXJpZmljYXRpb24iLE5JRF9zZXRleHRfY3YsNCwKLQkmKGx2YWx1ZXNbNDI1Nl0pLDB9LAorCSYobHZhbHVlc1s0MjUyXSksMH0sCiB7InNldC1wb2xpY3ktcm9vdCIsInNldC1wb2xpY3ktcm9vdCIsTklEX3NldF9wb2xpY3lfcm9vdCw0LAotCSYobHZhbHVlc1s0MjYwXSksMH0sCisJJihsdmFsdWVzWzQyNTZdKSwwfSwKIHsic2V0Q2V4dC1oYXNoZWRSb290Iiwic2V0Q2V4dC1oYXNoZWRSb290IixOSURfc2V0Q2V4dF9oYXNoZWRSb290LDQsCi0JJihsdmFsdWVzWzQyNjRdKSwwfSwKKwkmKGx2YWx1ZXNbNDI2MF0pLDB9LAogeyJzZXRDZXh0LWNlcnRUeXBlIiwic2V0Q2V4dC1jZXJ0VHlwZSIsTklEX3NldENleHRfY2VydFR5cGUsNCwKLQkmKGx2YWx1ZXNbNDI2OF0pLDB9LAorCSYobHZhbHVlc1s0MjY0XSksMH0sCiB7InNldENleHQtbWVyY2hEYXRhIiwic2V0Q2V4dC1tZXJjaERhdGEiLE5JRF9zZXRDZXh0X21lcmNoRGF0YSw0LAotCSYobHZhbHVlc1s0MjcyXSksMH0sCisJJihsdmFsdWVzWzQyNjhdKSwwfSwKIHsic2V0Q2V4dC1jQ2VydFJlcXVpcmVkIiwic2V0Q2V4dC1jQ2VydFJlcXVpcmVkIiwKLQlOSURfc2V0Q2V4dF9jQ2VydFJlcXVpcmVkLDQsJihsdmFsdWVzWzQyNzZdKSwwfSwKKwlOSURfc2V0Q2V4dF9jQ2VydFJlcXVpcmVkLDQsJihsdmFsdWVzWzQyNzJdKSwwfSwKIHsic2V0Q2V4dC10dW5uZWxpbmciLCJzZXRDZXh0LXR1bm5lbGluZyIsTklEX3NldENleHRfdHVubmVsaW5nLDQsCi0JJihsdmFsdWVzWzQyODBdKSwwfSwKKwkmKGx2YWx1ZXNbNDI3Nl0pLDB9LAogeyJzZXRDZXh0LXNldEV4dCIsInNldENleHQtc2V0RXh0IixOSURfc2V0Q2V4dF9zZXRFeHQsNCwKLQkmKGx2YWx1ZXNbNDI4NF0pLDB9LAorCSYobHZhbHVlc1s0MjgwXSksMH0sCiB7InNldENleHQtc2V0UXVhbGYiLCJzZXRDZXh0LXNldFF1YWxmIixOSURfc2V0Q2V4dF9zZXRRdWFsZiw0LAotCSYobHZhbHVlc1s0Mjg4XSksMH0sCisJJihsdmFsdWVzWzQyODRdKSwwfSwKIHsic2V0Q2V4dC1QR1dZY2FwYWJpbGl0aWVzIiwic2V0Q2V4dC1QR1dZY2FwYWJpbGl0aWVzIiwKLQlOSURfc2V0Q2V4dF9QR1dZY2FwYWJpbGl0aWVzLDQsJihsdmFsdWVzWzQyOTJdKSwwfSwKKwlOSURfc2V0Q2V4dF9QR1dZY2FwYWJpbGl0aWVzLDQsJihsdmFsdWVzWzQyODhdKSwwfSwKIHsic2V0Q2V4dC1Ub2tlbklkZW50aWZpZXIiLCJzZXRDZXh0LVRva2VuSWRlbnRpZmllciIsCi0JTklEX3NldENleHRfVG9rZW5JZGVudGlmaWVyLDQsJihsdmFsdWVzWzQyOTZdKSwwfSwKKwlOSURfc2V0Q2V4dF9Ub2tlbklkZW50aWZpZXIsNCwmKGx2YWx1ZXNbNDI5Ml0pLDB9LAogeyJzZXRDZXh0LVRyYWNrMkRhdGEiLCJzZXRDZXh0LVRyYWNrMkRhdGEiLE5JRF9zZXRDZXh0X1RyYWNrMkRhdGEsNCwKLQkmKGx2YWx1ZXNbNDMwMF0pLDB9LAorCSYobHZhbHVlc1s0Mjk2XSksMH0sCiB7InNldENleHQtVG9rZW5UeXBlIiwic2V0Q2V4dC1Ub2tlblR5cGUiLE5JRF9zZXRDZXh0X1Rva2VuVHlwZSw0LAotCSYobHZhbHVlc1s0MzA0XSksMH0sCisJJihsdmFsdWVzWzQzMDBdKSwwfSwKIHsic2V0Q2V4dC1Jc3N1ZXJDYXBhYmlsaXRpZXMiLCJzZXRDZXh0LUlzc3VlckNhcGFiaWxpdGllcyIsCi0JTklEX3NldENleHRfSXNzdWVyQ2FwYWJpbGl0aWVzLDQsJihsdmFsdWVzWzQzMDhdKSwwfSwKLXsic2V0QXR0ci1DZXJ0Iiwic2V0QXR0ci1DZXJ0IixOSURfc2V0QXR0cl9DZXJ0LDQsJihsdmFsdWVzWzQzMTJdKSwwfSwKKwlOSURfc2V0Q2V4dF9Jc3N1ZXJDYXBhYmlsaXRpZXMsNCwmKGx2YWx1ZXNbNDMwNF0pLDB9LAoreyJzZXRBdHRyLUNlcnQiLCJzZXRBdHRyLUNlcnQiLE5JRF9zZXRBdHRyX0NlcnQsNCwmKGx2YWx1ZXNbNDMwOF0pLDB9LAogeyJzZXRBdHRyLVBHV1ljYXAiLCJwYXltZW50IGdhdGV3YXkgY2FwYWJpbGl0aWVzIixOSURfc2V0QXR0cl9QR1dZY2FwLAotCTQsJihsdmFsdWVzWzQzMTZdKSwwfSwKKwk0LCYobHZhbHVlc1s0MzEyXSksMH0sCiB7InNldEF0dHItVG9rZW5UeXBlIiwic2V0QXR0ci1Ub2tlblR5cGUiLE5JRF9zZXRBdHRyX1Rva2VuVHlwZSw0LAotCSYobHZhbHVlc1s0MzIwXSksMH0sCisJJihsdmFsdWVzWzQzMTZdKSwwfSwKIHsic2V0QXR0ci1Jc3NDYXAiLCJpc3N1ZXIgY2FwYWJpbGl0aWVzIixOSURfc2V0QXR0cl9Jc3NDYXAsNCwKLQkmKGx2YWx1ZXNbNDMyNF0pLDB9LAorCSYobHZhbHVlc1s0MzIwXSksMH0sCiB7InNldC1yb290S2V5VGh1bWIiLCJzZXQtcm9vdEtleVRodW1iIixOSURfc2V0X3Jvb3RLZXlUaHVtYiw1LAotCSYobHZhbHVlc1s0MzI4XSksMH0sCi17InNldC1hZGRQb2xpY3kiLCJzZXQtYWRkUG9saWN5IixOSURfc2V0X2FkZFBvbGljeSw1LCYobHZhbHVlc1s0MzMzXSksMH0sCisJJihsdmFsdWVzWzQzMjRdKSwwfSwKK3sic2V0LWFkZFBvbGljeSIsInNldC1hZGRQb2xpY3kiLE5JRF9zZXRfYWRkUG9saWN5LDUsJihsdmFsdWVzWzQzMjldKSwwfSwKIHsic2V0QXR0ci1Ub2tlbi1FTVYiLCJzZXRBdHRyLVRva2VuLUVNViIsTklEX3NldEF0dHJfVG9rZW5fRU1WLDUsCi0JJihsdmFsdWVzWzQzMzhdKSwwfSwKKwkmKGx2YWx1ZXNbNDMzNF0pLDB9LAogeyJzZXRBdHRyLVRva2VuLUIwUHJpbWUiLCJzZXRBdHRyLVRva2VuLUIwUHJpbWUiLAotCU5JRF9zZXRBdHRyX1Rva2VuX0IwUHJpbWUsNSwmKGx2YWx1ZXNbNDM0M10pLDB9LAorCU5JRF9zZXRBdHRyX1Rva2VuX0IwUHJpbWUsNSwmKGx2YWx1ZXNbNDMzOV0pLDB9LAogeyJzZXRBdHRyLUlzc0NhcC1DVk0iLCJzZXRBdHRyLUlzc0NhcC1DVk0iLE5JRF9zZXRBdHRyX0lzc0NhcF9DVk0sNSwKLQkmKGx2YWx1ZXNbNDM0OF0pLDB9LAorCSYobHZhbHVlc1s0MzQ0XSksMH0sCiB7InNldEF0dHItSXNzQ2FwLVQyIiwic2V0QXR0ci1Jc3NDYXAtVDIiLE5JRF9zZXRBdHRyX0lzc0NhcF9UMiw1LAotCSYobHZhbHVlc1s0MzUzXSksMH0sCisJJihsdmFsdWVzWzQzNDldKSwwfSwKIHsic2V0QXR0ci1Jc3NDYXAtU2lnIiwic2V0QXR0ci1Jc3NDYXAtU2lnIixOSURfc2V0QXR0cl9Jc3NDYXBfU2lnLDUsCi0JJihsdmFsdWVzWzQzNThdKSwwfSwKKwkmKGx2YWx1ZXNbNDM1NF0pLDB9LAogeyJzZXRBdHRyLUdlbkNyeXB0Z3JtIiwiZ2VuZXJhdGUgY3J5cHRvZ3JhbSIsTklEX3NldEF0dHJfR2VuQ3J5cHRncm0sCi0JNiwmKGx2YWx1ZXNbNDM2M10pLDB9LAorCTYsJihsdmFsdWVzWzQzNTldKSwwfSwKIHsic2V0QXR0ci1UMkVuYyIsImVuY3J5cHRlZCB0cmFjayAyIixOSURfc2V0QXR0cl9UMkVuYyw2LAotCSYobHZhbHVlc1s0MzY5XSksMH0sCisJJihsdmFsdWVzWzQzNjVdKSwwfSwKIHsic2V0QXR0ci1UMmNsZWFydHh0IiwiY2xlYXJ0ZXh0IHRyYWNrIDIiLE5JRF9zZXRBdHRyX1QyY2xlYXJ0eHQsNiwKLQkmKGx2YWx1ZXNbNDM3NV0pLDB9LAorCSYobHZhbHVlc1s0MzcxXSksMH0sCiB7InNldEF0dHItVG9rSUNDc2lnIiwiSUNDIG9yIHRva2VuIHNpZ25hdHVyZSIsTklEX3NldEF0dHJfVG9rSUNDc2lnLDYsCi0JJihsdmFsdWVzWzQzODFdKSwwfSwKKwkmKGx2YWx1ZXNbNDM3N10pLDB9LAogeyJzZXRBdHRyLVNlY0RldlNpZyIsInNlY3VyZSBkZXZpY2Ugc2lnbmF0dXJlIixOSURfc2V0QXR0cl9TZWNEZXZTaWcsCi0JNiwmKGx2YWx1ZXNbNDM4N10pLDB9LAorCTYsJihsdmFsdWVzWzQzODNdKSwwfSwKIHsic2V0LWJyYW5kLUlBVEEtQVRBIiwic2V0LWJyYW5kLUlBVEEtQVRBIixOSURfc2V0X2JyYW5kX0lBVEFfQVRBLDQsCi0JJihsdmFsdWVzWzQzOTNdKSwwfSwKKwkmKGx2YWx1ZXNbNDM4OV0pLDB9LAogeyJzZXQtYnJhbmQtRGluZXJzIiwic2V0LWJyYW5kLURpbmVycyIsTklEX3NldF9icmFuZF9EaW5lcnMsNCwKLQkmKGx2YWx1ZXNbNDM5N10pLDB9LAorCSYobHZhbHVlc1s0MzkzXSksMH0sCiB7InNldC1icmFuZC1BbWVyaWNhbkV4cHJlc3MiLCJzZXQtYnJhbmQtQW1lcmljYW5FeHByZXNzIiwKLQlOSURfc2V0X2JyYW5kX0FtZXJpY2FuRXhwcmVzcyw0LCYobHZhbHVlc1s0NDAxXSksMH0sCi17InNldC1icmFuZC1KQ0IiLCJzZXQtYnJhbmQtSkNCIixOSURfc2V0X2JyYW5kX0pDQiw0LCYobHZhbHVlc1s0NDA1XSksMH0sCisJTklEX3NldF9icmFuZF9BbWVyaWNhbkV4cHJlc3MsNCwmKGx2YWx1ZXNbNDM5N10pLDB9LAoreyJzZXQtYnJhbmQtSkNCIiwic2V0LWJyYW5kLUpDQiIsTklEX3NldF9icmFuZF9KQ0IsNCwmKGx2YWx1ZXNbNDQwMV0pLDB9LAogeyJzZXQtYnJhbmQtVmlzYSIsInNldC1icmFuZC1WaXNhIixOSURfc2V0X2JyYW5kX1Zpc2EsNCwKLQkmKGx2YWx1ZXNbNDQwOV0pLDB9LAorCSYobHZhbHVlc1s0NDA1XSksMH0sCiB7InNldC1icmFuZC1NYXN0ZXJDYXJkIiwic2V0LWJyYW5kLU1hc3RlckNhcmQiLAotCU5JRF9zZXRfYnJhbmRfTWFzdGVyQ2FyZCw0LCYobHZhbHVlc1s0NDEzXSksMH0sCisJTklEX3NldF9icmFuZF9NYXN0ZXJDYXJkLDQsJihsdmFsdWVzWzQ0MDldKSwwfSwKIHsic2V0LWJyYW5kLU5vdnVzIiwic2V0LWJyYW5kLU5vdnVzIixOSURfc2V0X2JyYW5kX05vdnVzLDUsCi0JJihsdmFsdWVzWzQ0MTddKSwwfSwKLXsiREVTLUNETUYiLCJkZXMtY2RtZiIsTklEX2Rlc19jZG1mLDgsJihsdmFsdWVzWzQ0MjJdKSwwfSwKKwkmKGx2YWx1ZXNbNDQxM10pLDB9LAoreyJERVMtQ0RNRiIsImRlcy1jZG1mIixOSURfZGVzX2NkbWYsOCwmKGx2YWx1ZXNbNDQxOF0pLDB9LAogeyJyc2FPQUVQRW5jcnlwdGlvblNFVCIsInJzYU9BRVBFbmNyeXB0aW9uU0VUIiwKLQlOSURfcnNhT0FFUEVuY3J5cHRpb25TRVQsOSwmKGx2YWx1ZXNbNDQzMF0pLDB9LAoteyJJVFUtVCIsIml0dS10IixOSURfaXR1X3QsMSwmKGx2YWx1ZXNbNDQzOV0pLDB9LAoteyJKT0lOVC1JU08tSVRVLVQiLCJqb2ludC1pc28taXR1LXQiLE5JRF9qb2ludF9pc29faXR1X3QsMSwKLQkmKGx2YWx1ZXNbNDQ0MF0pLDB9LAorCU5JRF9yc2FPQUVQRW5jcnlwdGlvblNFVCw5LCYobHZhbHVlc1s0NDI2XSksMH0sCit7IklUVS1UIiwiaXR1LXQiLE5JRF9pdHVfdCwwLE5VTEwsMH0sCit7IkpPSU5ULUlTTy1JVFUtVCIsImpvaW50LWlzby1pdHUtdCIsTklEX2pvaW50X2lzb19pdHVfdCwwLE5VTEwsMH0sCiB7ImludGVybmF0aW9uYWwtb3JnYW5pemF0aW9ucyIsIkludGVybmF0aW9uYWwgT3JnYW5pemF0aW9ucyIsCi0JTklEX2ludGVybmF0aW9uYWxfb3JnYW5pemF0aW9ucywxLCYobHZhbHVlc1s0NDQxXSksMH0sCisJTklEX2ludGVybmF0aW9uYWxfb3JnYW5pemF0aW9ucywxLCYobHZhbHVlc1s0NDM1XSksMH0sCiB7Im1zU21hcnRjYXJkTG9naW4iLCJNaWNyb3NvZnQgU21hcnRjYXJkbG9naW4iLE5JRF9tc19zbWFydGNhcmRfbG9naW4sCi0JMTAsJihsdmFsdWVzWzQ0NDJdKSwwfSwKKwkxMCwmKGx2YWx1ZXNbNDQzNl0pLDB9LAogeyJtc1VQTiIsIk1pY3Jvc29mdCBVbml2ZXJzYWwgUHJpbmNpcGFsIE5hbWUiLE5JRF9tc191cG4sMTAsCi0JJihsdmFsdWVzWzQ0NTJdKSwwfSwKKwkmKGx2YWx1ZXNbNDQ0Nl0pLDB9LAogeyJBRVMtMTI4LUNGQjEiLCJhZXMtMTI4LWNmYjEiLE5JRF9hZXNfMTI4X2NmYjEsMCxOVUxMLDB9LAogeyJBRVMtMTkyLUNGQjEiLCJhZXMtMTkyLWNmYjEiLE5JRF9hZXNfMTkyX2NmYjEsMCxOVUxMLDB9LAogeyJBRVMtMjU2LUNGQjEiLCJhZXMtMjU2LWNmYjEiLE5JRF9hZXNfMjU2X2NmYjEsMCxOVUxMLDB9LApAQCAtMTk3OSwxMzggKzE5NzIsMTM4IEBACiB7IkRFUy1DRkI4IiwiZGVzLWNmYjgiLE5JRF9kZXNfY2ZiOCwwLE5VTEwsMH0sCiB7IkRFUy1FREUzLUNGQjEiLCJkZXMtZWRlMy1jZmIxIixOSURfZGVzX2VkZTNfY2ZiMSwwLE5VTEwsMH0sCiB7IkRFUy1FREUzLUNGQjgiLCJkZXMtZWRlMy1jZmI4IixOSURfZGVzX2VkZTNfY2ZiOCwwLE5VTEwsMH0sCi17InN0cmVldCIsInN0cmVldEFkZHJlc3MiLE5JRF9zdHJlZXRBZGRyZXNzLDMsJihsdmFsdWVzWzQ0NjJdKSwwfSwKLXsicG9zdGFsQ29kZSIsInBvc3RhbENvZGUiLE5JRF9wb3N0YWxDb2RlLDMsJihsdmFsdWVzWzQ0NjVdKSwwfSwKLXsiaWQtcHBsIiwiaWQtcHBsIixOSURfaWRfcHBsLDcsJihsdmFsdWVzWzQ0NjhdKSwwfSwKK3sic3RyZWV0Iiwic3RyZWV0QWRkcmVzcyIsTklEX3N0cmVldEFkZHJlc3MsMywmKGx2YWx1ZXNbNDQ1Nl0pLDB9LAoreyJwb3N0YWxDb2RlIiwicG9zdGFsQ29kZSIsTklEX3Bvc3RhbENvZGUsMywmKGx2YWx1ZXNbNDQ1OV0pLDB9LAoreyJpZC1wcGwiLCJpZC1wcGwiLE5JRF9pZF9wcGwsNywmKGx2YWx1ZXNbNDQ2Ml0pLDB9LAogeyJwcm94eUNlcnRJbmZvIiwiUHJveHkgQ2VydGlmaWNhdGUgSW5mb3JtYXRpb24iLE5JRF9wcm94eUNlcnRJbmZvLDgsCi0JJihsdmFsdWVzWzQ0NzVdKSwwfSwKKwkmKGx2YWx1ZXNbNDQ2OV0pLDB9LAogeyJpZC1wcGwtYW55TGFuZ3VhZ2UiLCJBbnkgbGFuZ3VhZ2UiLE5JRF9pZF9wcGxfYW55TGFuZ3VhZ2UsOCwKLQkmKGx2YWx1ZXNbNDQ4M10pLDB9LAorCSYobHZhbHVlc1s0NDc3XSksMH0sCiB7ImlkLXBwbC1pbmhlcml0QWxsIiwiSW5oZXJpdCBhbGwiLE5JRF9pZF9wcGxfaW5oZXJpdEFsbCw4LAotCSYobHZhbHVlc1s0NDkxXSksMH0sCisJJihsdmFsdWVzWzQ0ODVdKSwwfSwKIHsibmFtZUNvbnN0cmFpbnRzIiwiWDUwOXYzIE5hbWUgQ29uc3RyYWludHMiLE5JRF9uYW1lX2NvbnN0cmFpbnRzLDMsCi0JJihsdmFsdWVzWzQ0OTldKSwwfSwKLXsiaWQtcHBsLWluZGVwZW5kZW50IiwiSW5kZXBlbmRlbnQiLE5JRF9JbmRlcGVuZGVudCw4LCYobHZhbHVlc1s0NTAyXSksMH0sCisJJihsdmFsdWVzWzQ0OTNdKSwwfSwKK3siaWQtcHBsLWluZGVwZW5kZW50IiwiSW5kZXBlbmRlbnQiLE5JRF9JbmRlcGVuZGVudCw4LCYobHZhbHVlc1s0NDk2XSksMH0sCiB7IlJTQS1TSEEyNTYiLCJzaGEyNTZXaXRoUlNBRW5jcnlwdGlvbiIsTklEX3NoYTI1NldpdGhSU0FFbmNyeXB0aW9uLDksCi0JJihsdmFsdWVzWzQ1MTBdKSwwfSwKKwkmKGx2YWx1ZXNbNDUwNF0pLDB9LAogeyJSU0EtU0hBMzg0Iiwic2hhMzg0V2l0aFJTQUVuY3J5cHRpb24iLE5JRF9zaGEzODRXaXRoUlNBRW5jcnlwdGlvbiw5LAotCSYobHZhbHVlc1s0NTE5XSksMH0sCisJJihsdmFsdWVzWzQ1MTNdKSwwfSwKIHsiUlNBLVNIQTUxMiIsInNoYTUxMldpdGhSU0FFbmNyeXB0aW9uIixOSURfc2hhNTEyV2l0aFJTQUVuY3J5cHRpb24sOSwKLQkmKGx2YWx1ZXNbNDUyOF0pLDB9LAorCSYobHZhbHVlc1s0NTIyXSksMH0sCiB7IlJTQS1TSEEyMjQiLCJzaGEyMjRXaXRoUlNBRW5jcnlwdGlvbiIsTklEX3NoYTIyNFdpdGhSU0FFbmNyeXB0aW9uLDksCi0JJihsdmFsdWVzWzQ1MzddKSwwfSwKLXsiU0hBMjU2Iiwic2hhMjU2IixOSURfc2hhMjU2LDksJihsdmFsdWVzWzQ1NDZdKSwwfSwKLXsiU0hBMzg0Iiwic2hhMzg0IixOSURfc2hhMzg0LDksJihsdmFsdWVzWzQ1NTVdKSwwfSwKLXsiU0hBNTEyIiwic2hhNTEyIixOSURfc2hhNTEyLDksJihsdmFsdWVzWzQ1NjRdKSwwfSwKLXsiU0hBMjI0Iiwic2hhMjI0IixOSURfc2hhMjI0LDksJihsdmFsdWVzWzQ1NzNdKSwwfSwKKwkmKGx2YWx1ZXNbNDUzMV0pLDB9LAoreyJTSEEyNTYiLCJzaGEyNTYiLE5JRF9zaGEyNTYsOSwmKGx2YWx1ZXNbNDU0MF0pLDB9LAoreyJTSEEzODQiLCJzaGEzODQiLE5JRF9zaGEzODQsOSwmKGx2YWx1ZXNbNDU0OV0pLDB9LAoreyJTSEE1MTIiLCJzaGE1MTIiLE5JRF9zaGE1MTIsOSwmKGx2YWx1ZXNbNDU1OF0pLDB9LAoreyJTSEEyMjQiLCJzaGEyMjQiLE5JRF9zaGEyMjQsOSwmKGx2YWx1ZXNbNDU2N10pLDB9LAogeyJpZGVudGlmaWVkLW9yZ2FuaXphdGlvbiIsImlkZW50aWZpZWQtb3JnYW5pemF0aW9uIiwKLQlOSURfaWRlbnRpZmllZF9vcmdhbml6YXRpb24sMSwmKGx2YWx1ZXNbNDU4Ml0pLDB9LAoteyJjZXJ0aWNvbS1hcmMiLCJjZXJ0aWNvbS1hcmMiLE5JRF9jZXJ0aWNvbV9hcmMsMywmKGx2YWx1ZXNbNDU4M10pLDB9LAoteyJ3YXAiLCJ3YXAiLE5JRF93YXAsMiwmKGx2YWx1ZXNbNDU4Nl0pLDB9LAoteyJ3YXAtd3NnIiwid2FwLXdzZyIsTklEX3dhcF93c2csMywmKGx2YWx1ZXNbNDU4OF0pLDB9LAorCU5JRF9pZGVudGlmaWVkX29yZ2FuaXphdGlvbiwxLCYobHZhbHVlc1s0NTc2XSksMH0sCit7ImNlcnRpY29tLWFyYyIsImNlcnRpY29tLWFyYyIsTklEX2NlcnRpY29tX2FyYywzLCYobHZhbHVlc1s0NTc3XSksMH0sCit7IndhcCIsIndhcCIsTklEX3dhcCwyLCYobHZhbHVlc1s0NTgwXSksMH0sCit7IndhcC13c2ciLCJ3YXAtd3NnIixOSURfd2FwX3dzZywzLCYobHZhbHVlc1s0NTgyXSksMH0sCiB7ImlkLWNoYXJhY3RlcmlzdGljLXR3by1iYXNpcyIsImlkLWNoYXJhY3RlcmlzdGljLXR3by1iYXNpcyIsCi0JTklEX1g5XzYyX2lkX2NoYXJhY3RlcmlzdGljX3R3b19iYXNpcyw4LCYobHZhbHVlc1s0NTkxXSksMH0sCi17Im9uQmFzaXMiLCJvbkJhc2lzIixOSURfWDlfNjJfb25CYXNpcyw5LCYobHZhbHVlc1s0NTk5XSksMH0sCi17InRwQmFzaXMiLCJ0cEJhc2lzIixOSURfWDlfNjJfdHBCYXNpcyw5LCYobHZhbHVlc1s0NjA4XSksMH0sCi17InBwQmFzaXMiLCJwcEJhc2lzIixOSURfWDlfNjJfcHBCYXNpcyw5LCYobHZhbHVlc1s0NjE3XSksMH0sCi17ImMycG5iMTYzdjEiLCJjMnBuYjE2M3YxIixOSURfWDlfNjJfYzJwbmIxNjN2MSw4LCYobHZhbHVlc1s0NjI2XSksMH0sCi17ImMycG5iMTYzdjIiLCJjMnBuYjE2M3YyIixOSURfWDlfNjJfYzJwbmIxNjN2Miw4LCYobHZhbHVlc1s0NjM0XSksMH0sCi17ImMycG5iMTYzdjMiLCJjMnBuYjE2M3YzIixOSURfWDlfNjJfYzJwbmIxNjN2Myw4LCYobHZhbHVlc1s0NjQyXSksMH0sCi17ImMycG5iMTc2djEiLCJjMnBuYjE3NnYxIixOSURfWDlfNjJfYzJwbmIxNzZ2MSw4LCYobHZhbHVlc1s0NjUwXSksMH0sCi17ImMydG5iMTkxdjEiLCJjMnRuYjE5MXYxIixOSURfWDlfNjJfYzJ0bmIxOTF2MSw4LCYobHZhbHVlc1s0NjU4XSksMH0sCi17ImMydG5iMTkxdjIiLCJjMnRuYjE5MXYyIixOSURfWDlfNjJfYzJ0bmIxOTF2Miw4LCYobHZhbHVlc1s0NjY2XSksMH0sCi17ImMydG5iMTkxdjMiLCJjMnRuYjE5MXYzIixOSURfWDlfNjJfYzJ0bmIxOTF2Myw4LCYobHZhbHVlc1s0Njc0XSksMH0sCi17ImMyb25iMTkxdjQiLCJjMm9uYjE5MXY0IixOSURfWDlfNjJfYzJvbmIxOTF2NCw4LCYobHZhbHVlc1s0NjgyXSksMH0sCi17ImMyb25iMTkxdjUiLCJjMm9uYjE5MXY1IixOSURfWDlfNjJfYzJvbmIxOTF2NSw4LCYobHZhbHVlc1s0NjkwXSksMH0sCi17ImMycG5iMjA4dzEiLCJjMnBuYjIwOHcxIixOSURfWDlfNjJfYzJwbmIyMDh3MSw4LCYobHZhbHVlc1s0Njk4XSksMH0sCi17ImMydG5iMjM5djEiLCJjMnRuYjIzOXYxIixOSURfWDlfNjJfYzJ0bmIyMzl2MSw4LCYobHZhbHVlc1s0NzA2XSksMH0sCi17ImMydG5iMjM5djIiLCJjMnRuYjIzOXYyIixOSURfWDlfNjJfYzJ0bmIyMzl2Miw4LCYobHZhbHVlc1s0NzE0XSksMH0sCi17ImMydG5iMjM5djMiLCJjMnRuYjIzOXYzIixOSURfWDlfNjJfYzJ0bmIyMzl2Myw4LCYobHZhbHVlc1s0NzIyXSksMH0sCi17ImMyb25iMjM5djQiLCJjMm9uYjIzOXY0IixOSURfWDlfNjJfYzJvbmIyMzl2NCw4LCYobHZhbHVlc1s0NzMwXSksMH0sCi17ImMyb25iMjM5djUiLCJjMm9uYjIzOXY1IixOSURfWDlfNjJfYzJvbmIyMzl2NSw4LCYobHZhbHVlc1s0NzM4XSksMH0sCi17ImMycG5iMjcydzEiLCJjMnBuYjI3MncxIixOSURfWDlfNjJfYzJwbmIyNzJ3MSw4LCYobHZhbHVlc1s0NzQ2XSksMH0sCi17ImMycG5iMzA0dzEiLCJjMnBuYjMwNHcxIixOSURfWDlfNjJfYzJwbmIzMDR3MSw4LCYobHZhbHVlc1s0NzU0XSksMH0sCi17ImMydG5iMzU5djEiLCJjMnRuYjM1OXYxIixOSURfWDlfNjJfYzJ0bmIzNTl2MSw4LCYobHZhbHVlc1s0NzYyXSksMH0sCi17ImMycG5iMzY4dzEiLCJjMnBuYjM2OHcxIixOSURfWDlfNjJfYzJwbmIzNjh3MSw4LCYobHZhbHVlc1s0NzcwXSksMH0sCi17ImMydG5iNDMxcjEiLCJjMnRuYjQzMXIxIixOSURfWDlfNjJfYzJ0bmI0MzFyMSw4LCYobHZhbHVlc1s0Nzc4XSksMH0sCi17InNlY3AxMTJyMSIsInNlY3AxMTJyMSIsTklEX3NlY3AxMTJyMSw1LCYobHZhbHVlc1s0Nzg2XSksMH0sCi17InNlY3AxMTJyMiIsInNlY3AxMTJyMiIsTklEX3NlY3AxMTJyMiw1LCYobHZhbHVlc1s0NzkxXSksMH0sCi17InNlY3AxMjhyMSIsInNlY3AxMjhyMSIsTklEX3NlY3AxMjhyMSw1LCYobHZhbHVlc1s0Nzk2XSksMH0sCi17InNlY3AxMjhyMiIsInNlY3AxMjhyMiIsTklEX3NlY3AxMjhyMiw1LCYobHZhbHVlc1s0ODAxXSksMH0sCi17InNlY3AxNjBrMSIsInNlY3AxNjBrMSIsTklEX3NlY3AxNjBrMSw1LCYobHZhbHVlc1s0ODA2XSksMH0sCi17InNlY3AxNjByMSIsInNlY3AxNjByMSIsTklEX3NlY3AxNjByMSw1LCYobHZhbHVlc1s0ODExXSksMH0sCi17InNlY3AxNjByMiIsInNlY3AxNjByMiIsTklEX3NlY3AxNjByMiw1LCYobHZhbHVlc1s0ODE2XSksMH0sCi17InNlY3AxOTJrMSIsInNlY3AxOTJrMSIsTklEX3NlY3AxOTJrMSw1LCYobHZhbHVlc1s0ODIxXSksMH0sCi17InNlY3AyMjRrMSIsInNlY3AyMjRrMSIsTklEX3NlY3AyMjRrMSw1LCYobHZhbHVlc1s0ODI2XSksMH0sCi17InNlY3AyMjRyMSIsInNlY3AyMjRyMSIsTklEX3NlY3AyMjRyMSw1LCYobHZhbHVlc1s0ODMxXSksMH0sCi17InNlY3AyNTZrMSIsInNlY3AyNTZrMSIsTklEX3NlY3AyNTZrMSw1LCYobHZhbHVlc1s0ODM2XSksMH0sCi17InNlY3AzODRyMSIsInNlY3AzODRyMSIsTklEX3NlY3AzODRyMSw1LCYobHZhbHVlc1s0ODQxXSksMH0sCi17InNlY3A1MjFyMSIsInNlY3A1MjFyMSIsTklEX3NlY3A1MjFyMSw1LCYobHZhbHVlc1s0ODQ2XSksMH0sCi17InNlY3QxMTNyMSIsInNlY3QxMTNyMSIsTklEX3NlY3QxMTNyMSw1LCYobHZhbHVlc1s0ODUxXSksMH0sCi17InNlY3QxMTNyMiIsInNlY3QxMTNyMiIsTklEX3NlY3QxMTNyMiw1LCYobHZhbHVlc1s0ODU2XSksMH0sCi17InNlY3QxMzFyMSIsInNlY3QxMzFyMSIsTklEX3NlY3QxMzFyMSw1LCYobHZhbHVlc1s0ODYxXSksMH0sCi17InNlY3QxMzFyMiIsInNlY3QxMzFyMiIsTklEX3NlY3QxMzFyMiw1LCYobHZhbHVlc1s0ODY2XSksMH0sCi17InNlY3QxNjNrMSIsInNlY3QxNjNrMSIsTklEX3NlY3QxNjNrMSw1LCYobHZhbHVlc1s0ODcxXSksMH0sCi17InNlY3QxNjNyMSIsInNlY3QxNjNyMSIsTklEX3NlY3QxNjNyMSw1LCYobHZhbHVlc1s0ODc2XSksMH0sCi17InNlY3QxNjNyMiIsInNlY3QxNjNyMiIsTklEX3NlY3QxNjNyMiw1LCYobHZhbHVlc1s0ODgxXSksMH0sCi17InNlY3QxOTNyMSIsInNlY3QxOTNyMSIsTklEX3NlY3QxOTNyMSw1LCYobHZhbHVlc1s0ODg2XSksMH0sCi17InNlY3QxOTNyMiIsInNlY3QxOTNyMiIsTklEX3NlY3QxOTNyMiw1LCYobHZhbHVlc1s0ODkxXSksMH0sCi17InNlY3QyMzNrMSIsInNlY3QyMzNrMSIsTklEX3NlY3QyMzNrMSw1LCYobHZhbHVlc1s0ODk2XSksMH0sCi17InNlY3QyMzNyMSIsInNlY3QyMzNyMSIsTklEX3NlY3QyMzNyMSw1LCYobHZhbHVlc1s0OTAxXSksMH0sCi17InNlY3QyMzlrMSIsInNlY3QyMzlrMSIsTklEX3NlY3QyMzlrMSw1LCYobHZhbHVlc1s0OTA2XSksMH0sCi17InNlY3QyODNrMSIsInNlY3QyODNrMSIsTklEX3NlY3QyODNrMSw1LCYobHZhbHVlc1s0OTExXSksMH0sCi17InNlY3QyODNyMSIsInNlY3QyODNyMSIsTklEX3NlY3QyODNyMSw1LCYobHZhbHVlc1s0OTE2XSksMH0sCi17InNlY3Q0MDlrMSIsInNlY3Q0MDlrMSIsTklEX3NlY3Q0MDlrMSw1LCYobHZhbHVlc1s0OTIxXSksMH0sCi17InNlY3Q0MDlyMSIsInNlY3Q0MDlyMSIsTklEX3NlY3Q0MDlyMSw1LCYobHZhbHVlc1s0OTI2XSksMH0sCi17InNlY3Q1NzFrMSIsInNlY3Q1NzFrMSIsTklEX3NlY3Q1NzFrMSw1LCYobHZhbHVlc1s0OTMxXSksMH0sCi17InNlY3Q1NzFyMSIsInNlY3Q1NzFyMSIsTklEX3NlY3Q1NzFyMSw1LCYobHZhbHVlc1s0OTM2XSksMH0sCisJTklEX1g5XzYyX2lkX2NoYXJhY3RlcmlzdGljX3R3b19iYXNpcyw4LCYobHZhbHVlc1s0NTg1XSksMH0sCit7Im9uQmFzaXMiLCJvbkJhc2lzIixOSURfWDlfNjJfb25CYXNpcyw5LCYobHZhbHVlc1s0NTkzXSksMH0sCit7InRwQmFzaXMiLCJ0cEJhc2lzIixOSURfWDlfNjJfdHBCYXNpcyw5LCYobHZhbHVlc1s0NjAyXSksMH0sCit7InBwQmFzaXMiLCJwcEJhc2lzIixOSURfWDlfNjJfcHBCYXNpcyw5LCYobHZhbHVlc1s0NjExXSksMH0sCit7ImMycG5iMTYzdjEiLCJjMnBuYjE2M3YxIixOSURfWDlfNjJfYzJwbmIxNjN2MSw4LCYobHZhbHVlc1s0NjIwXSksMH0sCit7ImMycG5iMTYzdjIiLCJjMnBuYjE2M3YyIixOSURfWDlfNjJfYzJwbmIxNjN2Miw4LCYobHZhbHVlc1s0NjI4XSksMH0sCit7ImMycG5iMTYzdjMiLCJjMnBuYjE2M3YzIixOSURfWDlfNjJfYzJwbmIxNjN2Myw4LCYobHZhbHVlc1s0NjM2XSksMH0sCit7ImMycG5iMTc2djEiLCJjMnBuYjE3NnYxIixOSURfWDlfNjJfYzJwbmIxNzZ2MSw4LCYobHZhbHVlc1s0NjQ0XSksMH0sCit7ImMydG5iMTkxdjEiLCJjMnRuYjE5MXYxIixOSURfWDlfNjJfYzJ0bmIxOTF2MSw4LCYobHZhbHVlc1s0NjUyXSksMH0sCit7ImMydG5iMTkxdjIiLCJjMnRuYjE5MXYyIixOSURfWDlfNjJfYzJ0bmIxOTF2Miw4LCYobHZhbHVlc1s0NjYwXSksMH0sCit7ImMydG5iMTkxdjMiLCJjMnRuYjE5MXYzIixOSURfWDlfNjJfYzJ0bmIxOTF2Myw4LCYobHZhbHVlc1s0NjY4XSksMH0sCit7ImMyb25iMTkxdjQiLCJjMm9uYjE5MXY0IixOSURfWDlfNjJfYzJvbmIxOTF2NCw4LCYobHZhbHVlc1s0Njc2XSksMH0sCit7ImMyb25iMTkxdjUiLCJjMm9uYjE5MXY1IixOSURfWDlfNjJfYzJvbmIxOTF2NSw4LCYobHZhbHVlc1s0Njg0XSksMH0sCit7ImMycG5iMjA4dzEiLCJjMnBuYjIwOHcxIixOSURfWDlfNjJfYzJwbmIyMDh3MSw4LCYobHZhbHVlc1s0NjkyXSksMH0sCit7ImMydG5iMjM5djEiLCJjMnRuYjIzOXYxIixOSURfWDlfNjJfYzJ0bmIyMzl2MSw4LCYobHZhbHVlc1s0NzAwXSksMH0sCit7ImMydG5iMjM5djIiLCJjMnRuYjIzOXYyIixOSURfWDlfNjJfYzJ0bmIyMzl2Miw4LCYobHZhbHVlc1s0NzA4XSksMH0sCit7ImMydG5iMjM5djMiLCJjMnRuYjIzOXYzIixOSURfWDlfNjJfYzJ0bmIyMzl2Myw4LCYobHZhbHVlc1s0NzE2XSksMH0sCit7ImMyb25iMjM5djQiLCJjMm9uYjIzOXY0IixOSURfWDlfNjJfYzJvbmIyMzl2NCw4LCYobHZhbHVlc1s0NzI0XSksMH0sCit7ImMyb25iMjM5djUiLCJjMm9uYjIzOXY1IixOSURfWDlfNjJfYzJvbmIyMzl2NSw4LCYobHZhbHVlc1s0NzMyXSksMH0sCit7ImMycG5iMjcydzEiLCJjMnBuYjI3MncxIixOSURfWDlfNjJfYzJwbmIyNzJ3MSw4LCYobHZhbHVlc1s0NzQwXSksMH0sCit7ImMycG5iMzA0dzEiLCJjMnBuYjMwNHcxIixOSURfWDlfNjJfYzJwbmIzMDR3MSw4LCYobHZhbHVlc1s0NzQ4XSksMH0sCit7ImMydG5iMzU5djEiLCJjMnRuYjM1OXYxIixOSURfWDlfNjJfYzJ0bmIzNTl2MSw4LCYobHZhbHVlc1s0NzU2XSksMH0sCit7ImMycG5iMzY4dzEiLCJjMnBuYjM2OHcxIixOSURfWDlfNjJfYzJwbmIzNjh3MSw4LCYobHZhbHVlc1s0NzY0XSksMH0sCit7ImMydG5iNDMxcjEiLCJjMnRuYjQzMXIxIixOSURfWDlfNjJfYzJ0bmI0MzFyMSw4LCYobHZhbHVlc1s0NzcyXSksMH0sCit7InNlY3AxMTJyMSIsInNlY3AxMTJyMSIsTklEX3NlY3AxMTJyMSw1LCYobHZhbHVlc1s0NzgwXSksMH0sCit7InNlY3AxMTJyMiIsInNlY3AxMTJyMiIsTklEX3NlY3AxMTJyMiw1LCYobHZhbHVlc1s0Nzg1XSksMH0sCit7InNlY3AxMjhyMSIsInNlY3AxMjhyMSIsTklEX3NlY3AxMjhyMSw1LCYobHZhbHVlc1s0NzkwXSksMH0sCit7InNlY3AxMjhyMiIsInNlY3AxMjhyMiIsTklEX3NlY3AxMjhyMiw1LCYobHZhbHVlc1s0Nzk1XSksMH0sCit7InNlY3AxNjBrMSIsInNlY3AxNjBrMSIsTklEX3NlY3AxNjBrMSw1LCYobHZhbHVlc1s0ODAwXSksMH0sCit7InNlY3AxNjByMSIsInNlY3AxNjByMSIsTklEX3NlY3AxNjByMSw1LCYobHZhbHVlc1s0ODA1XSksMH0sCit7InNlY3AxNjByMiIsInNlY3AxNjByMiIsTklEX3NlY3AxNjByMiw1LCYobHZhbHVlc1s0ODEwXSksMH0sCit7InNlY3AxOTJrMSIsInNlY3AxOTJrMSIsTklEX3NlY3AxOTJrMSw1LCYobHZhbHVlc1s0ODE1XSksMH0sCit7InNlY3AyMjRrMSIsInNlY3AyMjRrMSIsTklEX3NlY3AyMjRrMSw1LCYobHZhbHVlc1s0ODIwXSksMH0sCit7InNlY3AyMjRyMSIsInNlY3AyMjRyMSIsTklEX3NlY3AyMjRyMSw1LCYobHZhbHVlc1s0ODI1XSksMH0sCit7InNlY3AyNTZrMSIsInNlY3AyNTZrMSIsTklEX3NlY3AyNTZrMSw1LCYobHZhbHVlc1s0ODMwXSksMH0sCit7InNlY3AzODRyMSIsInNlY3AzODRyMSIsTklEX3NlY3AzODRyMSw1LCYobHZhbHVlc1s0ODM1XSksMH0sCit7InNlY3A1MjFyMSIsInNlY3A1MjFyMSIsTklEX3NlY3A1MjFyMSw1LCYobHZhbHVlc1s0ODQwXSksMH0sCit7InNlY3QxMTNyMSIsInNlY3QxMTNyMSIsTklEX3NlY3QxMTNyMSw1LCYobHZhbHVlc1s0ODQ1XSksMH0sCit7InNlY3QxMTNyMiIsInNlY3QxMTNyMiIsTklEX3NlY3QxMTNyMiw1LCYobHZhbHVlc1s0ODUwXSksMH0sCit7InNlY3QxMzFyMSIsInNlY3QxMzFyMSIsTklEX3NlY3QxMzFyMSw1LCYobHZhbHVlc1s0ODU1XSksMH0sCit7InNlY3QxMzFyMiIsInNlY3QxMzFyMiIsTklEX3NlY3QxMzFyMiw1LCYobHZhbHVlc1s0ODYwXSksMH0sCit7InNlY3QxNjNrMSIsInNlY3QxNjNrMSIsTklEX3NlY3QxNjNrMSw1LCYobHZhbHVlc1s0ODY1XSksMH0sCit7InNlY3QxNjNyMSIsInNlY3QxNjNyMSIsTklEX3NlY3QxNjNyMSw1LCYobHZhbHVlc1s0ODcwXSksMH0sCit7InNlY3QxNjNyMiIsInNlY3QxNjNyMiIsTklEX3NlY3QxNjNyMiw1LCYobHZhbHVlc1s0ODc1XSksMH0sCit7InNlY3QxOTNyMSIsInNlY3QxOTNyMSIsTklEX3NlY3QxOTNyMSw1LCYobHZhbHVlc1s0ODgwXSksMH0sCit7InNlY3QxOTNyMiIsInNlY3QxOTNyMiIsTklEX3NlY3QxOTNyMiw1LCYobHZhbHVlc1s0ODg1XSksMH0sCit7InNlY3QyMzNrMSIsInNlY3QyMzNrMSIsTklEX3NlY3QyMzNrMSw1LCYobHZhbHVlc1s0ODkwXSksMH0sCit7InNlY3QyMzNyMSIsInNlY3QyMzNyMSIsTklEX3NlY3QyMzNyMSw1LCYobHZhbHVlc1s0ODk1XSksMH0sCit7InNlY3QyMzlrMSIsInNlY3QyMzlrMSIsTklEX3NlY3QyMzlrMSw1LCYobHZhbHVlc1s0OTAwXSksMH0sCit7InNlY3QyODNrMSIsInNlY3QyODNrMSIsTklEX3NlY3QyODNrMSw1LCYobHZhbHVlc1s0OTA1XSksMH0sCit7InNlY3QyODNyMSIsInNlY3QyODNyMSIsTklEX3NlY3QyODNyMSw1LCYobHZhbHVlc1s0OTEwXSksMH0sCit7InNlY3Q0MDlrMSIsInNlY3Q0MDlrMSIsTklEX3NlY3Q0MDlrMSw1LCYobHZhbHVlc1s0OTE1XSksMH0sCit7InNlY3Q0MDlyMSIsInNlY3Q0MDlyMSIsTklEX3NlY3Q0MDlyMSw1LCYobHZhbHVlc1s0OTIwXSksMH0sCit7InNlY3Q1NzFrMSIsInNlY3Q1NzFrMSIsTklEX3NlY3Q1NzFrMSw1LCYobHZhbHVlc1s0OTI1XSksMH0sCit7InNlY3Q1NzFyMSIsInNlY3Q1NzFyMSIsTklEX3NlY3Q1NzFyMSw1LCYobHZhbHVlc1s0OTMwXSksMH0sCiB7IndhcC13c2ctaWRtLWVjaWQtd3RsczEiLCJ3YXAtd3NnLWlkbS1lY2lkLXd0bHMxIiwKLQlOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzMSw1LCYobHZhbHVlc1s0OTQxXSksMH0sCisJTklEX3dhcF93c2dfaWRtX2VjaWRfd3RsczEsNSwmKGx2YWx1ZXNbNDkzNV0pLDB9LAogeyJ3YXAtd3NnLWlkbS1lY2lkLXd0bHMzIiwid2FwLXdzZy1pZG0tZWNpZC13dGxzMyIsCi0JTklEX3dhcF93c2dfaWRtX2VjaWRfd3RsczMsNSwmKGx2YWx1ZXNbNDk0Nl0pLDB9LAorCU5JRF93YXBfd3NnX2lkbV9lY2lkX3d0bHMzLDUsJihsdmFsdWVzWzQ5NDBdKSwwfSwKIHsid2FwLXdzZy1pZG0tZWNpZC13dGxzNCIsIndhcC13c2ctaWRtLWVjaWQtd3RsczQiLAotCU5JRF93YXBfd3NnX2lkbV9lY2lkX3d0bHM0LDUsJihsdmFsdWVzWzQ5NTFdKSwwfSwKKwlOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzNCw1LCYobHZhbHVlc1s0OTQ1XSksMH0sCiB7IndhcC13c2ctaWRtLWVjaWQtd3RsczUiLCJ3YXAtd3NnLWlkbS1lY2lkLXd0bHM1IiwKLQlOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzNSw1LCYobHZhbHVlc1s0OTU2XSksMH0sCisJTklEX3dhcF93c2dfaWRtX2VjaWRfd3RsczUsNSwmKGx2YWx1ZXNbNDk1MF0pLDB9LAogeyJ3YXAtd3NnLWlkbS1lY2lkLXd0bHM2Iiwid2FwLXdzZy1pZG0tZWNpZC13dGxzNiIsCi0JTklEX3dhcF93c2dfaWRtX2VjaWRfd3RsczYsNSwmKGx2YWx1ZXNbNDk2MV0pLDB9LAorCU5JRF93YXBfd3NnX2lkbV9lY2lkX3d0bHM2LDUsJihsdmFsdWVzWzQ5NTVdKSwwfSwKIHsid2FwLXdzZy1pZG0tZWNpZC13dGxzNyIsIndhcC13c2ctaWRtLWVjaWQtd3RsczciLAotCU5JRF93YXBfd3NnX2lkbV9lY2lkX3d0bHM3LDUsJihsdmFsdWVzWzQ5NjZdKSwwfSwKKwlOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzNyw1LCYobHZhbHVlc1s0OTYwXSksMH0sCiB7IndhcC13c2ctaWRtLWVjaWQtd3RsczgiLCJ3YXAtd3NnLWlkbS1lY2lkLXd0bHM4IiwKLQlOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzOCw1LCYobHZhbHVlc1s0OTcxXSksMH0sCisJTklEX3dhcF93c2dfaWRtX2VjaWRfd3RsczgsNSwmKGx2YWx1ZXNbNDk2NV0pLDB9LAogeyJ3YXAtd3NnLWlkbS1lY2lkLXd0bHM5Iiwid2FwLXdzZy1pZG0tZWNpZC13dGxzOSIsCi0JTklEX3dhcF93c2dfaWRtX2VjaWRfd3RsczksNSwmKGx2YWx1ZXNbNDk3Nl0pLDB9LAorCU5JRF93YXBfd3NnX2lkbV9lY2lkX3d0bHM5LDUsJihsdmFsdWVzWzQ5NzBdKSwwfSwKIHsid2FwLXdzZy1pZG0tZWNpZC13dGxzMTAiLCJ3YXAtd3NnLWlkbS1lY2lkLXd0bHMxMCIsCi0JTklEX3dhcF93c2dfaWRtX2VjaWRfd3RsczEwLDUsJihsdmFsdWVzWzQ5ODFdKSwwfSwKKwlOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzMTAsNSwmKGx2YWx1ZXNbNDk3NV0pLDB9LAogeyJ3YXAtd3NnLWlkbS1lY2lkLXd0bHMxMSIsIndhcC13c2ctaWRtLWVjaWQtd3RsczExIiwKLQlOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzMTEsNSwmKGx2YWx1ZXNbNDk4Nl0pLDB9LAorCU5JRF93YXBfd3NnX2lkbV9lY2lkX3d0bHMxMSw1LCYobHZhbHVlc1s0OTgwXSksMH0sCiB7IndhcC13c2ctaWRtLWVjaWQtd3RsczEyIiwid2FwLXdzZy1pZG0tZWNpZC13dGxzMTIiLAotCU5JRF93YXBfd3NnX2lkbV9lY2lkX3d0bHMxMiw1LCYobHZhbHVlc1s0OTkxXSksMH0sCi17ImFueVBvbGljeSIsIlg1MDl2MyBBbnkgUG9saWN5IixOSURfYW55X3BvbGljeSw0LCYobHZhbHVlc1s0OTk2XSksMH0sCisJTklEX3dhcF93c2dfaWRtX2VjaWRfd3RsczEyLDUsJihsdmFsdWVzWzQ5ODVdKSwwfSwKK3siYW55UG9saWN5IiwiWDUwOXYzIEFueSBQb2xpY3kiLE5JRF9hbnlfcG9saWN5LDQsJihsdmFsdWVzWzQ5OTBdKSwwfSwKIHsicG9saWN5TWFwcGluZ3MiLCJYNTA5djMgUG9saWN5IE1hcHBpbmdzIixOSURfcG9saWN5X21hcHBpbmdzLDMsCi0JJihsdmFsdWVzWzUwMDBdKSwwfSwKKwkmKGx2YWx1ZXNbNDk5NF0pLDB9LAogeyJpbmhpYml0QW55UG9saWN5IiwiWDUwOXYzIEluaGliaXQgQW55IFBvbGljeSIsCi0JTklEX2luaGliaXRfYW55X3BvbGljeSwzLCYobHZhbHVlc1s1MDAzXSksMH0sCisJTklEX2luaGliaXRfYW55X3BvbGljeSwzLCYobHZhbHVlc1s0OTk3XSksMH0sCiB7Ik9ha2xleS1FQzJOLTMiLCJpcHNlYzMiLE5JRF9pcHNlYzMsMCxOVUxMLDB9LAogeyJPYWtsZXktRUMyTi00IiwiaXBzZWM0IixOSURfaXBzZWM0LDAsTlVMTCwwfSwKIHsiQ0FNRUxMSUEtMTI4LUNCQyIsImNhbWVsbGlhLTEyOC1jYmMiLE5JRF9jYW1lbGxpYV8xMjhfY2JjLDExLAotCSYobHZhbHVlc1s1MDA2XSksMH0sCisJJihsdmFsdWVzWzUwMDBdKSwwfSwKIHsiQ0FNRUxMSUEtMTkyLUNCQyIsImNhbWVsbGlhLTE5Mi1jYmMiLE5JRF9jYW1lbGxpYV8xOTJfY2JjLDExLAotCSYobHZhbHVlc1s1MDE3XSksMH0sCisJJihsdmFsdWVzWzUwMTFdKSwwfSwKIHsiQ0FNRUxMSUEtMjU2LUNCQyIsImNhbWVsbGlhLTI1Ni1jYmMiLE5JRF9jYW1lbGxpYV8yNTZfY2JjLDExLAotCSYobHZhbHVlc1s1MDI4XSksMH0sCisJJihsdmFsdWVzWzUwMjJdKSwwfSwKIHsiQ0FNRUxMSUEtMTI4LUVDQiIsImNhbWVsbGlhLTEyOC1lY2IiLE5JRF9jYW1lbGxpYV8xMjhfZWNiLDgsCi0JJihsdmFsdWVzWzUwMzldKSwwfSwKKwkmKGx2YWx1ZXNbNTAzM10pLDB9LAogeyJDQU1FTExJQS0xOTItRUNCIiwiY2FtZWxsaWEtMTkyLWVjYiIsTklEX2NhbWVsbGlhXzE5Ml9lY2IsOCwKLQkmKGx2YWx1ZXNbNTA0N10pLDB9LAorCSYobHZhbHVlc1s1MDQxXSksMH0sCiB7IkNBTUVMTElBLTI1Ni1FQ0IiLCJjYW1lbGxpYS0yNTYtZWNiIixOSURfY2FtZWxsaWFfMjU2X2VjYiw4LAotCSYobHZhbHVlc1s1MDU1XSksMH0sCisJJihsdmFsdWVzWzUwNDldKSwwfSwKIHsiQ0FNRUxMSUEtMTI4LUNGQiIsImNhbWVsbGlhLTEyOC1jZmIiLE5JRF9jYW1lbGxpYV8xMjhfY2ZiMTI4LDgsCi0JJihsdmFsdWVzWzUwNjNdKSwwfSwKKwkmKGx2YWx1ZXNbNTA1N10pLDB9LAogeyJDQU1FTExJQS0xOTItQ0ZCIiwiY2FtZWxsaWEtMTkyLWNmYiIsTklEX2NhbWVsbGlhXzE5Ml9jZmIxMjgsOCwKLQkmKGx2YWx1ZXNbNTA3MV0pLDB9LAorCSYobHZhbHVlc1s1MDY1XSksMH0sCiB7IkNBTUVMTElBLTI1Ni1DRkIiLCJjYW1lbGxpYS0yNTYtY2ZiIixOSURfY2FtZWxsaWFfMjU2X2NmYjEyOCw4LAotCSYobHZhbHVlc1s1MDc5XSksMH0sCisJJihsdmFsdWVzWzUwNzNdKSwwfSwKIHsiQ0FNRUxMSUEtMTI4LUNGQjEiLCJjYW1lbGxpYS0xMjgtY2ZiMSIsTklEX2NhbWVsbGlhXzEyOF9jZmIxLDAsTlVMTCwwfSwKIHsiQ0FNRUxMSUEtMTkyLUNGQjEiLCJjYW1lbGxpYS0xOTItY2ZiMSIsTklEX2NhbWVsbGlhXzE5Ml9jZmIxLDAsTlVMTCwwfSwKIHsiQ0FNRUxMSUEtMjU2LUNGQjEiLCJjYW1lbGxpYS0yNTYtY2ZiMSIsTklEX2NhbWVsbGlhXzI1Nl9jZmIxLDAsTlVMTCwwfSwKQEAgLTIxMTgsMjg0ICsyMTExLDI4NCBAQAogeyJDQU1FTExJQS0xOTItQ0ZCOCIsImNhbWVsbGlhLTE5Mi1jZmI4IixOSURfY2FtZWxsaWFfMTkyX2NmYjgsMCxOVUxMLDB9LAogeyJDQU1FTExJQS0yNTYtQ0ZCOCIsImNhbWVsbGlhLTI1Ni1jZmI4IixOSURfY2FtZWxsaWFfMjU2X2NmYjgsMCxOVUxMLDB9LAogeyJDQU1FTExJQS0xMjgtT0ZCIiwiY2FtZWxsaWEtMTI4LW9mYiIsTklEX2NhbWVsbGlhXzEyOF9vZmIxMjgsOCwKLQkmKGx2YWx1ZXNbNTA4N10pLDB9LAorCSYobHZhbHVlc1s1MDgxXSksMH0sCiB7IkNBTUVMTElBLTE5Mi1PRkIiLCJjYW1lbGxpYS0xOTItb2ZiIixOSURfY2FtZWxsaWFfMTkyX29mYjEyOCw4LAotCSYobHZhbHVlc1s1MDk1XSksMH0sCisJJihsdmFsdWVzWzUwODldKSwwfSwKIHsiQ0FNRUxMSUEtMjU2LU9GQiIsImNhbWVsbGlhLTI1Ni1vZmIiLE5JRF9jYW1lbGxpYV8yNTZfb2ZiMTI4LDgsCi0JJihsdmFsdWVzWzUxMDNdKSwwfSwKKwkmKGx2YWx1ZXNbNTA5N10pLDB9LAogeyJzdWJqZWN0RGlyZWN0b3J5QXR0cmlidXRlcyIsIlg1MDl2MyBTdWJqZWN0IERpcmVjdG9yeSBBdHRyaWJ1dGVzIiwKLQlOSURfc3ViamVjdF9kaXJlY3RvcnlfYXR0cmlidXRlcywzLCYobHZhbHVlc1s1MTExXSksMH0sCisJTklEX3N1YmplY3RfZGlyZWN0b3J5X2F0dHJpYnV0ZXMsMywmKGx2YWx1ZXNbNTEwNV0pLDB9LAogeyJpc3N1aW5nRGlzdHJpYnV0aW9uUG9pbnQiLCJYNTA5djMgSXNzdWluZyBEaXN0cnVidXRpb24gUG9pbnQiLAotCU5JRF9pc3N1aW5nX2Rpc3RyaWJ1dGlvbl9wb2ludCwzLCYobHZhbHVlc1s1MTE0XSksMH0sCisJTklEX2lzc3VpbmdfZGlzdHJpYnV0aW9uX3BvaW50LDMsJihsdmFsdWVzWzUxMDhdKSwwfSwKIHsiY2VydGlmaWNhdGVJc3N1ZXIiLCJYNTA5djMgQ2VydGlmaWNhdGUgSXNzdWVyIiwKLQlOSURfY2VydGlmaWNhdGVfaXNzdWVyLDMsJihsdmFsdWVzWzUxMTddKSwwfSwKKwlOSURfY2VydGlmaWNhdGVfaXNzdWVyLDMsJihsdmFsdWVzWzUxMTFdKSwwfSwKIHtOVUxMLE5VTEwsTklEX3VuZGVmLDAsTlVMTCwwfSwKLXsiS0lTQSIsImtpc2EiLE5JRF9raXNhLDYsJihsdmFsdWVzWzUxMjBdKSwwfSwKK3siS0lTQSIsImtpc2EiLE5JRF9raXNhLDYsJihsdmFsdWVzWzUxMTRdKSwwfSwKIHtOVUxMLE5VTEwsTklEX3VuZGVmLDAsTlVMTCwwfSwKIHtOVUxMLE5VTEwsTklEX3VuZGVmLDAsTlVMTCwwfSwKLXsiU0VFRC1FQ0IiLCJzZWVkLWVjYiIsTklEX3NlZWRfZWNiLDgsJihsdmFsdWVzWzUxMjZdKSwwfSwKLXsiU0VFRC1DQkMiLCJzZWVkLWNiYyIsTklEX3NlZWRfY2JjLDgsJihsdmFsdWVzWzUxMzRdKSwwfSwKLXsiU0VFRC1PRkIiLCJzZWVkLW9mYiIsTklEX3NlZWRfb2ZiMTI4LDgsJihsdmFsdWVzWzUxNDJdKSwwfSwKLXsiU0VFRC1DRkIiLCJzZWVkLWNmYiIsTklEX3NlZWRfY2ZiMTI4LDgsJihsdmFsdWVzWzUxNTBdKSwwfSwKLXsiSE1BQy1NRDUiLCJobWFjLW1kNSIsTklEX2htYWNfbWQ1LDgsJihsdmFsdWVzWzUxNThdKSwwfSwKLXsiSE1BQy1TSEExIiwiaG1hYy1zaGExIixOSURfaG1hY19zaGExLDgsJihsdmFsdWVzWzUxNjZdKSwwfSwKK3siU0VFRC1FQ0IiLCJzZWVkLWVjYiIsTklEX3NlZWRfZWNiLDgsJihsdmFsdWVzWzUxMjBdKSwwfSwKK3siU0VFRC1DQkMiLCJzZWVkLWNiYyIsTklEX3NlZWRfY2JjLDgsJihsdmFsdWVzWzUxMjhdKSwwfSwKK3siU0VFRC1PRkIiLCJzZWVkLW9mYiIsTklEX3NlZWRfb2ZiMTI4LDgsJihsdmFsdWVzWzUxMzZdKSwwfSwKK3siU0VFRC1DRkIiLCJzZWVkLWNmYiIsTklEX3NlZWRfY2ZiMTI4LDgsJihsdmFsdWVzWzUxNDRdKSwwfSwKK3siSE1BQy1NRDUiLCJobWFjLW1kNSIsTklEX2htYWNfbWQ1LDgsJihsdmFsdWVzWzUxNTJdKSwwfSwKK3siSE1BQy1TSEExIiwiaG1hYy1zaGExIixOSURfaG1hY19zaGExLDgsJihsdmFsdWVzWzUxNjBdKSwwfSwKIHsiaWQtUGFzc3dvcmRCYXNlZE1BQyIsInBhc3N3b3JkIGJhc2VkIE1BQyIsTklEX2lkX1Bhc3N3b3JkQmFzZWRNQUMsOSwKLQkmKGx2YWx1ZXNbNTE3NF0pLDB9LAorCSYobHZhbHVlc1s1MTY4XSksMH0sCiB7ImlkLURIQmFzZWRNYWMiLCJEaWZmaWUtSGVsbG1hbiBiYXNlZCBNQUMiLE5JRF9pZF9ESEJhc2VkTWFjLDksCi0JJihsdmFsdWVzWzUxODNdKSwwfSwKKwkmKGx2YWx1ZXNbNTE3N10pLDB9LAogeyJpZC1pdC1zdXBwTGFuZ1RhZ3MiLCJpZC1pdC1zdXBwTGFuZ1RhZ3MiLE5JRF9pZF9pdF9zdXBwTGFuZ1RhZ3MsOCwKLQkmKGx2YWx1ZXNbNTE5Ml0pLDB9LAoteyJjYVJlcG9zaXRvcnkiLCJDQSBSZXBvc2l0b3J5IixOSURfY2FSZXBvc2l0b3J5LDgsJihsdmFsdWVzWzUyMDBdKSwwfSwKKwkmKGx2YWx1ZXNbNTE4Nl0pLDB9LAoreyJjYVJlcG9zaXRvcnkiLCJDQSBSZXBvc2l0b3J5IixOSURfY2FSZXBvc2l0b3J5LDgsJihsdmFsdWVzWzUxOTRdKSwwfSwKIHsiaWQtc21pbWUtY3QtY29tcHJlc3NlZERhdGEiLCJpZC1zbWltZS1jdC1jb21wcmVzc2VkRGF0YSIsCi0JTklEX2lkX3NtaW1lX2N0X2NvbXByZXNzZWREYXRhLDExLCYobHZhbHVlc1s1MjA4XSksMH0sCisJTklEX2lkX3NtaW1lX2N0X2NvbXByZXNzZWREYXRhLDExLCYobHZhbHVlc1s1MjAyXSksMH0sCiB7ImlkLWN0LWFzY2lpVGV4dFdpdGhDUkxGIiwiaWQtY3QtYXNjaWlUZXh0V2l0aENSTEYiLAotCU5JRF9pZF9jdF9hc2NpaVRleHRXaXRoQ1JMRiwxMSwmKGx2YWx1ZXNbNTIxOV0pLDB9LAorCU5JRF9pZF9jdF9hc2NpaVRleHRXaXRoQ1JMRiwxMSwmKGx2YWx1ZXNbNTIxM10pLDB9LAogeyJpZC1hZXMxMjgtd3JhcCIsImlkLWFlczEyOC13cmFwIixOSURfaWRfYWVzMTI4X3dyYXAsOSwKLQkmKGx2YWx1ZXNbNTIzMF0pLDB9LAorCSYobHZhbHVlc1s1MjI0XSksMH0sCiB7ImlkLWFlczE5Mi13cmFwIiwiaWQtYWVzMTkyLXdyYXAiLE5JRF9pZF9hZXMxOTJfd3JhcCw5LAotCSYobHZhbHVlc1s1MjM5XSksMH0sCisJJihsdmFsdWVzWzUyMzNdKSwwfSwKIHsiaWQtYWVzMjU2LXdyYXAiLCJpZC1hZXMyNTYtd3JhcCIsTklEX2lkX2FlczI1Nl93cmFwLDksCi0JJihsdmFsdWVzWzUyNDhdKSwwfSwKKwkmKGx2YWx1ZXNbNTI0Ml0pLDB9LAogeyJlY2RzYS13aXRoLVJlY29tbWVuZGVkIiwiZWNkc2Etd2l0aC1SZWNvbW1lbmRlZCIsCi0JTklEX2VjZHNhX3dpdGhfUmVjb21tZW5kZWQsNywmKGx2YWx1ZXNbNTI1N10pLDB9LAorCU5JRF9lY2RzYV93aXRoX1JlY29tbWVuZGVkLDcsJihsdmFsdWVzWzUyNTFdKSwwfSwKIHsiZWNkc2Etd2l0aC1TcGVjaWZpZWQiLCJlY2RzYS13aXRoLVNwZWNpZmllZCIsCi0JTklEX2VjZHNhX3dpdGhfU3BlY2lmaWVkLDcsJihsdmFsdWVzWzUyNjRdKSwwfSwKKwlOSURfZWNkc2Ffd2l0aF9TcGVjaWZpZWQsNywmKGx2YWx1ZXNbNTI1OF0pLDB9LAogeyJlY2RzYS13aXRoLVNIQTIyNCIsImVjZHNhLXdpdGgtU0hBMjI0IixOSURfZWNkc2Ffd2l0aF9TSEEyMjQsOCwKLQkmKGx2YWx1ZXNbNTI3MV0pLDB9LAorCSYobHZhbHVlc1s1MjY1XSksMH0sCiB7ImVjZHNhLXdpdGgtU0hBMjU2IiwiZWNkc2Etd2l0aC1TSEEyNTYiLE5JRF9lY2RzYV93aXRoX1NIQTI1Niw4LAotCSYobHZhbHVlc1s1Mjc5XSksMH0sCisJJihsdmFsdWVzWzUyNzNdKSwwfSwKIHsiZWNkc2Etd2l0aC1TSEEzODQiLCJlY2RzYS13aXRoLVNIQTM4NCIsTklEX2VjZHNhX3dpdGhfU0hBMzg0LDgsCi0JJihsdmFsdWVzWzUyODddKSwwfSwKKwkmKGx2YWx1ZXNbNTI4MV0pLDB9LAogeyJlY2RzYS13aXRoLVNIQTUxMiIsImVjZHNhLXdpdGgtU0hBNTEyIixOSURfZWNkc2Ffd2l0aF9TSEE1MTIsOCwKLQkmKGx2YWx1ZXNbNTI5NV0pLDB9LAoteyJobWFjV2l0aE1ENSIsImhtYWNXaXRoTUQ1IixOSURfaG1hY1dpdGhNRDUsOCwmKGx2YWx1ZXNbNTMwM10pLDB9LAorCSYobHZhbHVlc1s1Mjg5XSksMH0sCit7ImhtYWNXaXRoTUQ1IiwiaG1hY1dpdGhNRDUiLE5JRF9obWFjV2l0aE1ENSw4LCYobHZhbHVlc1s1Mjk3XSksMH0sCiB7ImhtYWNXaXRoU0hBMjI0IiwiaG1hY1dpdGhTSEEyMjQiLE5JRF9obWFjV2l0aFNIQTIyNCw4LAotCSYobHZhbHVlc1s1MzExXSksMH0sCisJJihsdmFsdWVzWzUzMDVdKSwwfSwKIHsiaG1hY1dpdGhTSEEyNTYiLCJobWFjV2l0aFNIQTI1NiIsTklEX2htYWNXaXRoU0hBMjU2LDgsCi0JJihsdmFsdWVzWzUzMTldKSwwfSwKKwkmKGx2YWx1ZXNbNTMxM10pLDB9LAogeyJobWFjV2l0aFNIQTM4NCIsImhtYWNXaXRoU0hBMzg0IixOSURfaG1hY1dpdGhTSEEzODQsOCwKLQkmKGx2YWx1ZXNbNTMyN10pLDB9LAorCSYobHZhbHVlc1s1MzIxXSksMH0sCiB7ImhtYWNXaXRoU0hBNTEyIiwiaG1hY1dpdGhTSEE1MTIiLE5JRF9obWFjV2l0aFNIQTUxMiw4LAotCSYobHZhbHVlc1s1MzM1XSksMH0sCisJJihsdmFsdWVzWzUzMjldKSwwfSwKIHsiZHNhX3dpdGhfU0hBMjI0IiwiZHNhX3dpdGhfU0hBMjI0IixOSURfZHNhX3dpdGhfU0hBMjI0LDksCi0JJihsdmFsdWVzWzUzNDNdKSwwfSwKKwkmKGx2YWx1ZXNbNTMzN10pLDB9LAogeyJkc2Ffd2l0aF9TSEEyNTYiLCJkc2Ffd2l0aF9TSEEyNTYiLE5JRF9kc2Ffd2l0aF9TSEEyNTYsOSwKLQkmKGx2YWx1ZXNbNTM1Ml0pLDB9LAoteyJ3aGlybHBvb2wiLCJ3aGlybHBvb2wiLE5JRF93aGlybHBvb2wsNiwmKGx2YWx1ZXNbNTM2MV0pLDB9LAoteyJjcnlwdG9wcm8iLCJjcnlwdG9wcm8iLE5JRF9jcnlwdG9wcm8sNSwmKGx2YWx1ZXNbNTM2N10pLDB9LAoteyJjcnlwdG9jb20iLCJjcnlwdG9jb20iLE5JRF9jcnlwdG9jb20sNSwmKGx2YWx1ZXNbNTM3Ml0pLDB9LAorCSYobHZhbHVlc1s1MzQ2XSksMH0sCit7IndoaXJscG9vbCIsIndoaXJscG9vbCIsTklEX3doaXJscG9vbCw2LCYobHZhbHVlc1s1MzU1XSksMH0sCit7ImNyeXB0b3BybyIsImNyeXB0b3BybyIsTklEX2NyeXB0b3Bybyw1LCYobHZhbHVlc1s1MzYxXSksMH0sCit7ImNyeXB0b2NvbSIsImNyeXB0b2NvbSIsTklEX2NyeXB0b2NvbSw1LCYobHZhbHVlc1s1MzY2XSksMH0sCiB7ImlkLUdvc3RSMzQxMS05NC13aXRoLUdvc3RSMzQxMC0yMDAxIiwKIAkiR09TVCBSIDM0LjExLTk0IHdpdGggR09TVCBSIDM0LjEwLTIwMDEiLAotCU5JRF9pZF9Hb3N0UjM0MTFfOTRfd2l0aF9Hb3N0UjM0MTBfMjAwMSw2LCYobHZhbHVlc1s1Mzc3XSksMH0sCisJTklEX2lkX0dvc3RSMzQxMV85NF93aXRoX0dvc3RSMzQxMF8yMDAxLDYsJihsdmFsdWVzWzUzNzFdKSwwfSwKIHsiaWQtR29zdFIzNDExLTk0LXdpdGgtR29zdFIzNDEwLTk0IiwKIAkiR09TVCBSIDM0LjExLTk0IHdpdGggR09TVCBSIDM0LjEwLTk0IiwKLQlOSURfaWRfR29zdFIzNDExXzk0X3dpdGhfR29zdFIzNDEwXzk0LDYsJihsdmFsdWVzWzUzODNdKSwwfSwKLXsibWRfZ29zdDk0IiwiR09TVCBSIDM0LjExLTk0IixOSURfaWRfR29zdFIzNDExXzk0LDYsJihsdmFsdWVzWzUzODldKSwwfSwKKwlOSURfaWRfR29zdFIzNDExXzk0X3dpdGhfR29zdFIzNDEwXzk0LDYsJihsdmFsdWVzWzUzNzddKSwwfSwKK3sibWRfZ29zdDk0IiwiR09TVCBSIDM0LjExLTk0IixOSURfaWRfR29zdFIzNDExXzk0LDYsJihsdmFsdWVzWzUzODNdKSwwfSwKIHsiaWQtSE1BQ0dvc3RSMzQxMS05NCIsIkhNQUMgR09TVCAzNC4xMS05NCIsTklEX2lkX0hNQUNHb3N0UjM0MTFfOTQsNiwKLQkmKGx2YWx1ZXNbNTM5NV0pLDB9LAorCSYobHZhbHVlc1s1Mzg5XSksMH0sCiB7Imdvc3QyMDAxIiwiR09TVCBSIDM0LjEwLTIwMDEiLE5JRF9pZF9Hb3N0UjM0MTBfMjAwMSw2LAotCSYobHZhbHVlc1s1NDAxXSksMH0sCi17Imdvc3Q5NCIsIkdPU1QgUiAzNC4xMC05NCIsTklEX2lkX0dvc3RSMzQxMF85NCw2LCYobHZhbHVlc1s1NDA3XSksMH0sCi17Imdvc3Q4OSIsIkdPU1QgMjgxNDctODkiLE5JRF9pZF9Hb3N0MjgxNDdfODksNiwmKGx2YWx1ZXNbNTQxM10pLDB9LAorCSYobHZhbHVlc1s1Mzk1XSksMH0sCit7Imdvc3Q5NCIsIkdPU1QgUiAzNC4xMC05NCIsTklEX2lkX0dvc3RSMzQxMF85NCw2LCYobHZhbHVlc1s1NDAxXSksMH0sCit7Imdvc3Q4OSIsIkdPU1QgMjgxNDctODkiLE5JRF9pZF9Hb3N0MjgxNDdfODksNiwmKGx2YWx1ZXNbNTQwN10pLDB9LAogeyJnb3N0ODktY250IiwiZ29zdDg5LWNudCIsTklEX2dvc3Q4OV9jbnQsMCxOVUxMLDB9LAogeyJnb3N0LW1hYyIsIkdPU1QgMjgxNDctODkgTUFDIixOSURfaWRfR29zdDI4MTQ3Xzg5X01BQyw2LAotCSYobHZhbHVlc1s1NDE5XSksMH0sCisJJihsdmFsdWVzWzU0MTNdKSwwfSwKIHsicHJmLWdvc3RyMzQxMS05NCIsIkdPU1QgUiAzNC4xMS05NCBQUkYiLE5JRF9pZF9Hb3N0UjM0MTFfOTRfcHJmLDYsCi0JJihsdmFsdWVzWzU0MjVdKSwwfSwKKwkmKGx2YWx1ZXNbNTQxOV0pLDB9LAogeyJpZC1Hb3N0UjM0MTAtMjAwMURIIiwiR09TVCBSIDM0LjEwLTIwMDEgREgiLE5JRF9pZF9Hb3N0UjM0MTBfMjAwMURILAotCTYsJihsdmFsdWVzWzU0MzFdKSwwfSwKKwk2LCYobHZhbHVlc1s1NDI1XSksMH0sCiB7ImlkLUdvc3RSMzQxMC05NERIIiwiR09TVCBSIDM0LjEwLTk0IERIIixOSURfaWRfR29zdFIzNDEwXzk0REgsNiwKLQkmKGx2YWx1ZXNbNTQzN10pLDB9LAorCSYobHZhbHVlc1s1NDMxXSksMH0sCiB7ImlkLUdvc3QyODE0Ny04OS1DcnlwdG9Qcm8tS2V5TWVzaGluZyIsCiAJImlkLUdvc3QyODE0Ny04OS1DcnlwdG9Qcm8tS2V5TWVzaGluZyIsCi0JTklEX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fS2V5TWVzaGluZyw3LCYobHZhbHVlc1s1NDQzXSksMH0sCisJTklEX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fS2V5TWVzaGluZyw3LCYobHZhbHVlc1s1NDM3XSksMH0sCiB7ImlkLUdvc3QyODE0Ny04OS1Ob25lLUtleU1lc2hpbmciLCJpZC1Hb3N0MjgxNDctODktTm9uZS1LZXlNZXNoaW5nIiwKLQlOSURfaWRfR29zdDI4MTQ3Xzg5X05vbmVfS2V5TWVzaGluZyw3LCYobHZhbHVlc1s1NDUwXSksMH0sCisJTklEX2lkX0dvc3QyODE0N184OV9Ob25lX0tleU1lc2hpbmcsNywmKGx2YWx1ZXNbNTQ0NF0pLDB9LAogeyJpZC1Hb3N0UjM0MTEtOTQtVGVzdFBhcmFtU2V0IiwiaWQtR29zdFIzNDExLTk0LVRlc3RQYXJhbVNldCIsCi0JTklEX2lkX0dvc3RSMzQxMV85NF9UZXN0UGFyYW1TZXQsNywmKGx2YWx1ZXNbNTQ1N10pLDB9LAorCU5JRF9pZF9Hb3N0UjM0MTFfOTRfVGVzdFBhcmFtU2V0LDcsJihsdmFsdWVzWzU0NTFdKSwwfSwKIHsiaWQtR29zdFIzNDExLTk0LUNyeXB0b1Byb1BhcmFtU2V0IiwKIAkiaWQtR29zdFIzNDExLTk0LUNyeXB0b1Byb1BhcmFtU2V0IiwKLQlOSURfaWRfR29zdFIzNDExXzk0X0NyeXB0b1Byb1BhcmFtU2V0LDcsJihsdmFsdWVzWzU0NjRdKSwwfSwKKwlOSURfaWRfR29zdFIzNDExXzk0X0NyeXB0b1Byb1BhcmFtU2V0LDcsJihsdmFsdWVzWzU0NThdKSwwfSwKIHsiaWQtR29zdDI4MTQ3LTg5LVRlc3RQYXJhbVNldCIsImlkLUdvc3QyODE0Ny04OS1UZXN0UGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0MjgxNDdfODlfVGVzdFBhcmFtU2V0LDcsJihsdmFsdWVzWzU0NzFdKSwwfSwKKwlOSURfaWRfR29zdDI4MTQ3Xzg5X1Rlc3RQYXJhbVNldCw3LCYobHZhbHVlc1s1NDY1XSksMH0sCiB7ImlkLUdvc3QyODE0Ny04OS1DcnlwdG9Qcm8tQS1QYXJhbVNldCIsCiAJImlkLUdvc3QyODE0Ny04OS1DcnlwdG9Qcm8tQS1QYXJhbVNldCIsCi0JTklEX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fQV9QYXJhbVNldCw3LCYobHZhbHVlc1s1NDc4XSksMH0sCisJTklEX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fQV9QYXJhbVNldCw3LCYobHZhbHVlc1s1NDcyXSksMH0sCiB7ImlkLUdvc3QyODE0Ny04OS1DcnlwdG9Qcm8tQi1QYXJhbVNldCIsCiAJImlkLUdvc3QyODE0Ny04OS1DcnlwdG9Qcm8tQi1QYXJhbVNldCIsCi0JTklEX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fQl9QYXJhbVNldCw3LCYobHZhbHVlc1s1NDg1XSksMH0sCisJTklEX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fQl9QYXJhbVNldCw3LCYobHZhbHVlc1s1NDc5XSksMH0sCiB7ImlkLUdvc3QyODE0Ny04OS1DcnlwdG9Qcm8tQy1QYXJhbVNldCIsCiAJImlkLUdvc3QyODE0Ny04OS1DcnlwdG9Qcm8tQy1QYXJhbVNldCIsCi0JTklEX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fQ19QYXJhbVNldCw3LCYobHZhbHVlc1s1NDkyXSksMH0sCisJTklEX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fQ19QYXJhbVNldCw3LCYobHZhbHVlc1s1NDg2XSksMH0sCiB7ImlkLUdvc3QyODE0Ny04OS1DcnlwdG9Qcm8tRC1QYXJhbVNldCIsCiAJImlkLUdvc3QyODE0Ny04OS1DcnlwdG9Qcm8tRC1QYXJhbVNldCIsCi0JTklEX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fRF9QYXJhbVNldCw3LCYobHZhbHVlc1s1NDk5XSksMH0sCisJTklEX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fRF9QYXJhbVNldCw3LCYobHZhbHVlc1s1NDkzXSksMH0sCiB7ImlkLUdvc3QyODE0Ny04OS1DcnlwdG9Qcm8tT3NjYXItMS0xLVBhcmFtU2V0IiwKIAkiaWQtR29zdDI4MTQ3LTg5LUNyeXB0b1Byby1Pc2Nhci0xLTEtUGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX09zY2FyXzFfMV9QYXJhbVNldCw3LCYobHZhbHVlc1s1NTA2XSksCisJTklEX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fT3NjYXJfMV8xX1BhcmFtU2V0LDcsJihsdmFsdWVzWzU1MDBdKSwKIAkwfSwKIHsiaWQtR29zdDI4MTQ3LTg5LUNyeXB0b1Byby1Pc2Nhci0xLTAtUGFyYW1TZXQiLAogCSJpZC1Hb3N0MjgxNDctODktQ3J5cHRvUHJvLU9zY2FyLTEtMC1QYXJhbVNldCIsCi0JTklEX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fT3NjYXJfMV8wX1BhcmFtU2V0LDcsJihsdmFsdWVzWzU1MTNdKSwKKwlOSURfaWRfR29zdDI4MTQ3Xzg5X0NyeXB0b1Byb19Pc2Nhcl8xXzBfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTUwN10pLAogCTB9LAogeyJpZC1Hb3N0MjgxNDctODktQ3J5cHRvUHJvLVJJQy0xLVBhcmFtU2V0IiwKIAkiaWQtR29zdDI4MTQ3LTg5LUNyeXB0b1Byby1SSUMtMS1QYXJhbVNldCIsCi0JTklEX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fUklDXzFfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTUyMF0pLDB9LAorCU5JRF9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX1JJQ18xX1BhcmFtU2V0LDcsJihsdmFsdWVzWzU1MTRdKSwwfSwKIHsiaWQtR29zdFIzNDEwLTk0LVRlc3RQYXJhbVNldCIsImlkLUdvc3RSMzQxMC05NC1UZXN0UGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0UjM0MTBfOTRfVGVzdFBhcmFtU2V0LDcsJihsdmFsdWVzWzU1MjddKSwwfSwKKwlOSURfaWRfR29zdFIzNDEwXzk0X1Rlc3RQYXJhbVNldCw3LCYobHZhbHVlc1s1NTIxXSksMH0sCiB7ImlkLUdvc3RSMzQxMC05NC1DcnlwdG9Qcm8tQS1QYXJhbVNldCIsCiAJImlkLUdvc3RSMzQxMC05NC1DcnlwdG9Qcm8tQS1QYXJhbVNldCIsCi0JTklEX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fQV9QYXJhbVNldCw3LCYobHZhbHVlc1s1NTM0XSksMH0sCisJTklEX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fQV9QYXJhbVNldCw3LCYobHZhbHVlc1s1NTI4XSksMH0sCiB7ImlkLUdvc3RSMzQxMC05NC1DcnlwdG9Qcm8tQi1QYXJhbVNldCIsCiAJImlkLUdvc3RSMzQxMC05NC1DcnlwdG9Qcm8tQi1QYXJhbVNldCIsCi0JTklEX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fQl9QYXJhbVNldCw3LCYobHZhbHVlc1s1NTQxXSksMH0sCisJTklEX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fQl9QYXJhbVNldCw3LCYobHZhbHVlc1s1NTM1XSksMH0sCiB7ImlkLUdvc3RSMzQxMC05NC1DcnlwdG9Qcm8tQy1QYXJhbVNldCIsCiAJImlkLUdvc3RSMzQxMC05NC1DcnlwdG9Qcm8tQy1QYXJhbVNldCIsCi0JTklEX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fQ19QYXJhbVNldCw3LCYobHZhbHVlc1s1NTQ4XSksMH0sCisJTklEX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fQ19QYXJhbVNldCw3LCYobHZhbHVlc1s1NTQyXSksMH0sCiB7ImlkLUdvc3RSMzQxMC05NC1DcnlwdG9Qcm8tRC1QYXJhbVNldCIsCiAJImlkLUdvc3RSMzQxMC05NC1DcnlwdG9Qcm8tRC1QYXJhbVNldCIsCi0JTklEX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fRF9QYXJhbVNldCw3LCYobHZhbHVlc1s1NTU1XSksMH0sCisJTklEX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fRF9QYXJhbVNldCw3LCYobHZhbHVlc1s1NTQ5XSksMH0sCiB7ImlkLUdvc3RSMzQxMC05NC1DcnlwdG9Qcm8tWGNoQS1QYXJhbVNldCIsCiAJImlkLUdvc3RSMzQxMC05NC1DcnlwdG9Qcm8tWGNoQS1QYXJhbVNldCIsCi0JTklEX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fWGNoQV9QYXJhbVNldCw3LCYobHZhbHVlc1s1NTYyXSksMH0sCisJTklEX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fWGNoQV9QYXJhbVNldCw3LCYobHZhbHVlc1s1NTU2XSksMH0sCiB7ImlkLUdvc3RSMzQxMC05NC1DcnlwdG9Qcm8tWGNoQi1QYXJhbVNldCIsCiAJImlkLUdvc3RSMzQxMC05NC1DcnlwdG9Qcm8tWGNoQi1QYXJhbVNldCIsCi0JTklEX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fWGNoQl9QYXJhbVNldCw3LCYobHZhbHVlc1s1NTY5XSksMH0sCisJTklEX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fWGNoQl9QYXJhbVNldCw3LCYobHZhbHVlc1s1NTYzXSksMH0sCiB7ImlkLUdvc3RSMzQxMC05NC1DcnlwdG9Qcm8tWGNoQy1QYXJhbVNldCIsCiAJImlkLUdvc3RSMzQxMC05NC1DcnlwdG9Qcm8tWGNoQy1QYXJhbVNldCIsCi0JTklEX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fWGNoQ19QYXJhbVNldCw3LCYobHZhbHVlc1s1NTc2XSksMH0sCisJTklEX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fWGNoQ19QYXJhbVNldCw3LCYobHZhbHVlc1s1NTcwXSksMH0sCiB7ImlkLUdvc3RSMzQxMC0yMDAxLVRlc3RQYXJhbVNldCIsImlkLUdvc3RSMzQxMC0yMDAxLVRlc3RQYXJhbVNldCIsCi0JTklEX2lkX0dvc3RSMzQxMF8yMDAxX1Rlc3RQYXJhbVNldCw3LCYobHZhbHVlc1s1NTgzXSksMH0sCisJTklEX2lkX0dvc3RSMzQxMF8yMDAxX1Rlc3RQYXJhbVNldCw3LCYobHZhbHVlc1s1NTc3XSksMH0sCiB7ImlkLUdvc3RSMzQxMC0yMDAxLUNyeXB0b1Byby1BLVBhcmFtU2V0IiwKIAkiaWQtR29zdFIzNDEwLTIwMDEtQ3J5cHRvUHJvLUEtUGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0UjM0MTBfMjAwMV9DcnlwdG9Qcm9fQV9QYXJhbVNldCw3LCYobHZhbHVlc1s1NTkwXSksMH0sCisJTklEX2lkX0dvc3RSMzQxMF8yMDAxX0NyeXB0b1Byb19BX1BhcmFtU2V0LDcsJihsdmFsdWVzWzU1ODRdKSwwfSwKIHsiaWQtR29zdFIzNDEwLTIwMDEtQ3J5cHRvUHJvLUItUGFyYW1TZXQiLAogCSJpZC1Hb3N0UjM0MTAtMjAwMS1DcnlwdG9Qcm8tQi1QYXJhbVNldCIsCi0JTklEX2lkX0dvc3RSMzQxMF8yMDAxX0NyeXB0b1Byb19CX1BhcmFtU2V0LDcsJihsdmFsdWVzWzU1OTddKSwwfSwKKwlOSURfaWRfR29zdFIzNDEwXzIwMDFfQ3J5cHRvUHJvX0JfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTU5MV0pLDB9LAogeyJpZC1Hb3N0UjM0MTAtMjAwMS1DcnlwdG9Qcm8tQy1QYXJhbVNldCIsCiAJImlkLUdvc3RSMzQxMC0yMDAxLUNyeXB0b1Byby1DLVBhcmFtU2V0IiwKLQlOSURfaWRfR29zdFIzNDEwXzIwMDFfQ3J5cHRvUHJvX0NfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTYwNF0pLDB9LAorCU5JRF9pZF9Hb3N0UjM0MTBfMjAwMV9DcnlwdG9Qcm9fQ19QYXJhbVNldCw3LCYobHZhbHVlc1s1NTk4XSksMH0sCiB7ImlkLUdvc3RSMzQxMC0yMDAxLUNyeXB0b1Byby1YY2hBLVBhcmFtU2V0IiwKIAkiaWQtR29zdFIzNDEwLTIwMDEtQ3J5cHRvUHJvLVhjaEEtUGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0UjM0MTBfMjAwMV9DcnlwdG9Qcm9fWGNoQV9QYXJhbVNldCw3LCYobHZhbHVlc1s1NjExXSksMH0sCisJTklEX2lkX0dvc3RSMzQxMF8yMDAxX0NyeXB0b1Byb19YY2hBX1BhcmFtU2V0LDcsJihsdmFsdWVzWzU2MDVdKSwwfSwKIAkKIHsiaWQtR29zdFIzNDEwLTIwMDEtQ3J5cHRvUHJvLVhjaEItUGFyYW1TZXQiLAogCSJpZC1Hb3N0UjM0MTAtMjAwMS1DcnlwdG9Qcm8tWGNoQi1QYXJhbVNldCIsCi0JTklEX2lkX0dvc3RSMzQxMF8yMDAxX0NyeXB0b1Byb19YY2hCX1BhcmFtU2V0LDcsJihsdmFsdWVzWzU2MThdKSwwfSwKKwlOSURfaWRfR29zdFIzNDEwXzIwMDFfQ3J5cHRvUHJvX1hjaEJfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTYxMl0pLDB9LAogCQogeyJpZC1Hb3N0UjM0MTAtOTQtYSIsImlkLUdvc3RSMzQxMC05NC1hIixOSURfaWRfR29zdFIzNDEwXzk0X2EsNywKLQkmKGx2YWx1ZXNbNTYyNV0pLDB9LAorCSYobHZhbHVlc1s1NjE5XSksMH0sCiB7ImlkLUdvc3RSMzQxMC05NC1hQmlzIiwiaWQtR29zdFIzNDEwLTk0LWFCaXMiLAotCU5JRF9pZF9Hb3N0UjM0MTBfOTRfYUJpcyw3LCYobHZhbHVlc1s1NjMyXSksMH0sCisJTklEX2lkX0dvc3RSMzQxMF85NF9hQmlzLDcsJihsdmFsdWVzWzU2MjZdKSwwfSwKIHsiaWQtR29zdFIzNDEwLTk0LWIiLCJpZC1Hb3N0UjM0MTAtOTQtYiIsTklEX2lkX0dvc3RSMzQxMF85NF9iLDcsCi0JJihsdmFsdWVzWzU2MzldKSwwfSwKKwkmKGx2YWx1ZXNbNTYzM10pLDB9LAogeyJpZC1Hb3N0UjM0MTAtOTQtYkJpcyIsImlkLUdvc3RSMzQxMC05NC1iQmlzIiwKLQlOSURfaWRfR29zdFIzNDEwXzk0X2JCaXMsNywmKGx2YWx1ZXNbNTY0Nl0pLDB9LAorCU5JRF9pZF9Hb3N0UjM0MTBfOTRfYkJpcyw3LCYobHZhbHVlc1s1NjQwXSksMH0sCiB7ImlkLUdvc3QyODE0Ny04OS1jYyIsIkdPU1QgMjgxNDctODkgQ3J5cHRvY29tIFBhcmFtU2V0IiwKLQlOSURfaWRfR29zdDI4MTQ3Xzg5X2NjLDgsJihsdmFsdWVzWzU2NTNdKSwwfSwKKwlOSURfaWRfR29zdDI4MTQ3Xzg5X2NjLDgsJihsdmFsdWVzWzU2NDddKSwwfSwKIHsiZ29zdDk0Y2MiLCJHT1NUIDM0LjEwLTk0IENyeXB0b2NvbSIsTklEX2lkX0dvc3RSMzQxMF85NF9jYyw4LAotCSYobHZhbHVlc1s1NjYxXSksMH0sCisJJihsdmFsdWVzWzU2NTVdKSwwfSwKIHsiZ29zdDIwMDFjYyIsIkdPU1QgMzQuMTAtMjAwMSBDcnlwdG9jb20iLE5JRF9pZF9Hb3N0UjM0MTBfMjAwMV9jYyw4LAotCSYobHZhbHVlc1s1NjY5XSksMH0sCisJJihsdmFsdWVzWzU2NjNdKSwwfSwKIHsiaWQtR29zdFIzNDExLTk0LXdpdGgtR29zdFIzNDEwLTk0LWNjIiwKIAkiR09TVCBSIDM0LjExLTk0IHdpdGggR09TVCBSIDM0LjEwLTk0IENyeXB0b2NvbSIsCi0JTklEX2lkX0dvc3RSMzQxMV85NF93aXRoX0dvc3RSMzQxMF85NF9jYyw4LCYobHZhbHVlc1s1Njc3XSksMH0sCisJTklEX2lkX0dvc3RSMzQxMV85NF93aXRoX0dvc3RSMzQxMF85NF9jYyw4LCYobHZhbHVlc1s1NjcxXSksMH0sCiB7ImlkLUdvc3RSMzQxMS05NC13aXRoLUdvc3RSMzQxMC0yMDAxLWNjIiwKIAkiR09TVCBSIDM0LjExLTk0IHdpdGggR09TVCBSIDM0LjEwLTIwMDEgQ3J5cHRvY29tIiwKLQlOSURfaWRfR29zdFIzNDExXzk0X3dpdGhfR29zdFIzNDEwXzIwMDFfY2MsOCwmKGx2YWx1ZXNbNTY4NV0pLDB9LAorCU5JRF9pZF9Hb3N0UjM0MTFfOTRfd2l0aF9Hb3N0UjM0MTBfMjAwMV9jYyw4LCYobHZhbHVlc1s1Njc5XSksMH0sCiB7ImlkLUdvc3RSMzQxMC0yMDAxLVBhcmFtU2V0LWNjIiwKIAkiR09TVCBSIDM0MTAtMjAwMSBQYXJhbWV0ZXIgU2V0IENyeXB0b2NvbSIsCi0JTklEX2lkX0dvc3RSMzQxMF8yMDAxX1BhcmFtU2V0X2NjLDgsJihsdmFsdWVzWzU2OTNdKSwwfSwKKwlOSURfaWRfR29zdFIzNDEwXzIwMDFfUGFyYW1TZXRfY2MsOCwmKGx2YWx1ZXNbNTY4N10pLDB9LAogeyJITUFDIiwiaG1hYyIsTklEX2htYWMsMCxOVUxMLDB9LAogeyJMb2NhbEtleVNldCIsIk1pY3Jvc29mdCBMb2NhbCBLZXkgc2V0IixOSURfTG9jYWxLZXlTZXQsOSwKLQkmKGx2YWx1ZXNbNTcwMV0pLDB9LAorCSYobHZhbHVlc1s1Njk1XSksMH0sCiB7ImZyZXNoZXN0Q1JMIiwiWDUwOXYzIEZyZXNoZXN0IENSTCIsTklEX2ZyZXNoZXN0X2NybCwzLAotCSYobHZhbHVlc1s1NzEwXSksMH0sCisJJihsdmFsdWVzWzU3MDRdKSwwfSwKIHsiaWQtb24tcGVybWFuZW50SWRlbnRpZmllciIsIlBlcm1hbmVudCBJZGVudGlmaWVyIiwKLQlOSURfaWRfb25fcGVybWFuZW50SWRlbnRpZmllciw4LCYobHZhbHVlc1s1NzEzXSksMH0sCi17InNlYXJjaEd1aWRlIiwic2VhcmNoR3VpZGUiLE5JRF9zZWFyY2hHdWlkZSwzLCYobHZhbHVlc1s1NzIxXSksMH0sCisJTklEX2lkX29uX3Blcm1hbmVudElkZW50aWZpZXIsOCwmKGx2YWx1ZXNbNTcwN10pLDB9LAoreyJzZWFyY2hHdWlkZSIsInNlYXJjaEd1aWRlIixOSURfc2VhcmNoR3VpZGUsMywmKGx2YWx1ZXNbNTcxNV0pLDB9LAogeyJidXNpbmVzc0NhdGVnb3J5IiwiYnVzaW5lc3NDYXRlZ29yeSIsTklEX2J1c2luZXNzQ2F0ZWdvcnksMywKLQkmKGx2YWx1ZXNbNTcyNF0pLDB9LAoteyJwb3N0YWxBZGRyZXNzIiwicG9zdGFsQWRkcmVzcyIsTklEX3Bvc3RhbEFkZHJlc3MsMywmKGx2YWx1ZXNbNTcyN10pLDB9LAoteyJwb3N0T2ZmaWNlQm94IiwicG9zdE9mZmljZUJveCIsTklEX3Bvc3RPZmZpY2VCb3gsMywmKGx2YWx1ZXNbNTczMF0pLDB9LAorCSYobHZhbHVlc1s1NzE4XSksMH0sCit7InBvc3RhbEFkZHJlc3MiLCJwb3N0YWxBZGRyZXNzIixOSURfcG9zdGFsQWRkcmVzcywzLCYobHZhbHVlc1s1NzIxXSksMH0sCit7InBvc3RPZmZpY2VCb3giLCJwb3N0T2ZmaWNlQm94IixOSURfcG9zdE9mZmljZUJveCwzLCYobHZhbHVlc1s1NzI0XSksMH0sCiB7InBoeXNpY2FsRGVsaXZlcnlPZmZpY2VOYW1lIiwicGh5c2ljYWxEZWxpdmVyeU9mZmljZU5hbWUiLAotCU5JRF9waHlzaWNhbERlbGl2ZXJ5T2ZmaWNlTmFtZSwzLCYobHZhbHVlc1s1NzMzXSksMH0sCisJTklEX3BoeXNpY2FsRGVsaXZlcnlPZmZpY2VOYW1lLDMsJihsdmFsdWVzWzU3MjddKSwwfSwKIHsidGVsZXBob25lTnVtYmVyIiwidGVsZXBob25lTnVtYmVyIixOSURfdGVsZXBob25lTnVtYmVyLDMsCi0JJihsdmFsdWVzWzU3MzZdKSwwfSwKLXsidGVsZXhOdW1iZXIiLCJ0ZWxleE51bWJlciIsTklEX3RlbGV4TnVtYmVyLDMsJihsdmFsdWVzWzU3MzldKSwwfSwKKwkmKGx2YWx1ZXNbNTczMF0pLDB9LAoreyJ0ZWxleE51bWJlciIsInRlbGV4TnVtYmVyIixOSURfdGVsZXhOdW1iZXIsMywmKGx2YWx1ZXNbNTczM10pLDB9LAogeyJ0ZWxldGV4VGVybWluYWxJZGVudGlmaWVyIiwidGVsZXRleFRlcm1pbmFsSWRlbnRpZmllciIsCi0JTklEX3RlbGV0ZXhUZXJtaW5hbElkZW50aWZpZXIsMywmKGx2YWx1ZXNbNTc0Ml0pLDB9LAorCU5JRF90ZWxldGV4VGVybWluYWxJZGVudGlmaWVyLDMsJihsdmFsdWVzWzU3MzZdKSwwfSwKIHsiZmFjc2ltaWxlVGVsZXBob25lTnVtYmVyIiwiZmFjc2ltaWxlVGVsZXBob25lTnVtYmVyIiwKLQlOSURfZmFjc2ltaWxlVGVsZXBob25lTnVtYmVyLDMsJihsdmFsdWVzWzU3NDVdKSwwfSwKLXsieDEyMUFkZHJlc3MiLCJ4MTIxQWRkcmVzcyIsTklEX3gxMjFBZGRyZXNzLDMsJihsdmFsdWVzWzU3NDhdKSwwfSwKKwlOSURfZmFjc2ltaWxlVGVsZXBob25lTnVtYmVyLDMsJihsdmFsdWVzWzU3MzldKSwwfSwKK3sieDEyMUFkZHJlc3MiLCJ4MTIxQWRkcmVzcyIsTklEX3gxMjFBZGRyZXNzLDMsJihsdmFsdWVzWzU3NDJdKSwwfSwKIHsiaW50ZXJuYXRpb25hbGlTRE5OdW1iZXIiLCJpbnRlcm5hdGlvbmFsaVNETk51bWJlciIsCi0JTklEX2ludGVybmF0aW9uYWxpU0ROTnVtYmVyLDMsJihsdmFsdWVzWzU3NTFdKSwwfSwKKwlOSURfaW50ZXJuYXRpb25hbGlTRE5OdW1iZXIsMywmKGx2YWx1ZXNbNTc0NV0pLDB9LAogeyJyZWdpc3RlcmVkQWRkcmVzcyIsInJlZ2lzdGVyZWRBZGRyZXNzIixOSURfcmVnaXN0ZXJlZEFkZHJlc3MsMywKLQkmKGx2YWx1ZXNbNTc1NF0pLDB9LAorCSYobHZhbHVlc1s1NzQ4XSksMH0sCiB7ImRlc3RpbmF0aW9uSW5kaWNhdG9yIiwiZGVzdGluYXRpb25JbmRpY2F0b3IiLAotCU5JRF9kZXN0aW5hdGlvbkluZGljYXRvciwzLCYobHZhbHVlc1s1NzU3XSksMH0sCisJTklEX2Rlc3RpbmF0aW9uSW5kaWNhdG9yLDMsJihsdmFsdWVzWzU3NTFdKSwwfSwKIHsicHJlZmVycmVkRGVsaXZlcnlNZXRob2QiLCJwcmVmZXJyZWREZWxpdmVyeU1ldGhvZCIsCi0JTklEX3ByZWZlcnJlZERlbGl2ZXJ5TWV0aG9kLDMsJihsdmFsdWVzWzU3NjBdKSwwfSwKKwlOSURfcHJlZmVycmVkRGVsaXZlcnlNZXRob2QsMywmKGx2YWx1ZXNbNTc1NF0pLDB9LAogeyJwcmVzZW50YXRpb25BZGRyZXNzIiwicHJlc2VudGF0aW9uQWRkcmVzcyIsTklEX3ByZXNlbnRhdGlvbkFkZHJlc3MsCi0JMywmKGx2YWx1ZXNbNTc2M10pLDB9LAorCTMsJihsdmFsdWVzWzU3NTddKSwwfSwKIHsic3VwcG9ydGVkQXBwbGljYXRpb25Db250ZXh0Iiwic3VwcG9ydGVkQXBwbGljYXRpb25Db250ZXh0IiwKLQlOSURfc3VwcG9ydGVkQXBwbGljYXRpb25Db250ZXh0LDMsJihsdmFsdWVzWzU3NjZdKSwwfSwKLXsibWVtYmVyIiwibWVtYmVyIixOSURfbWVtYmVyLDMsJihsdmFsdWVzWzU3NjldKSwwfSwKLXsib3duZXIiLCJvd25lciIsTklEX293bmVyLDMsJihsdmFsdWVzWzU3NzJdKSwwfSwKLXsicm9sZU9jY3VwYW50Iiwicm9sZU9jY3VwYW50IixOSURfcm9sZU9jY3VwYW50LDMsJihsdmFsdWVzWzU3NzVdKSwwfSwKLXsic2VlQWxzbyIsInNlZUFsc28iLE5JRF9zZWVBbHNvLDMsJihsdmFsdWVzWzU3NzhdKSwwfSwKLXsidXNlclBhc3N3b3JkIiwidXNlclBhc3N3b3JkIixOSURfdXNlclBhc3N3b3JkLDMsJihsdmFsdWVzWzU3ODFdKSwwfSwKKwlOSURfc3VwcG9ydGVkQXBwbGljYXRpb25Db250ZXh0LDMsJihsdmFsdWVzWzU3NjBdKSwwfSwKK3sibWVtYmVyIiwibWVtYmVyIixOSURfbWVtYmVyLDMsJihsdmFsdWVzWzU3NjNdKSwwfSwKK3sib3duZXIiLCJvd25lciIsTklEX293bmVyLDMsJihsdmFsdWVzWzU3NjZdKSwwfSwKK3sicm9sZU9jY3VwYW50Iiwicm9sZU9jY3VwYW50IixOSURfcm9sZU9jY3VwYW50LDMsJihsdmFsdWVzWzU3NjldKSwwfSwKK3sic2VlQWxzbyIsInNlZUFsc28iLE5JRF9zZWVBbHNvLDMsJihsdmFsdWVzWzU3NzJdKSwwfSwKK3sidXNlclBhc3N3b3JkIiwidXNlclBhc3N3b3JkIixOSURfdXNlclBhc3N3b3JkLDMsJihsdmFsdWVzWzU3NzVdKSwwfSwKIHsidXNlckNlcnRpZmljYXRlIiwidXNlckNlcnRpZmljYXRlIixOSURfdXNlckNlcnRpZmljYXRlLDMsCi0JJihsdmFsdWVzWzU3ODRdKSwwfSwKLXsiY0FDZXJ0aWZpY2F0ZSIsImNBQ2VydGlmaWNhdGUiLE5JRF9jQUNlcnRpZmljYXRlLDMsJihsdmFsdWVzWzU3ODddKSwwfSwKKwkmKGx2YWx1ZXNbNTc3OF0pLDB9LAoreyJjQUNlcnRpZmljYXRlIiwiY0FDZXJ0aWZpY2F0ZSIsTklEX2NBQ2VydGlmaWNhdGUsMywmKGx2YWx1ZXNbNTc4MV0pLDB9LAogeyJhdXRob3JpdHlSZXZvY2F0aW9uTGlzdCIsImF1dGhvcml0eVJldm9jYXRpb25MaXN0IiwKLQlOSURfYXV0aG9yaXR5UmV2b2NhdGlvbkxpc3QsMywmKGx2YWx1ZXNbNTc5MF0pLDB9LAorCU5JRF9hdXRob3JpdHlSZXZvY2F0aW9uTGlzdCwzLCYobHZhbHVlc1s1Nzg0XSksMH0sCiB7ImNlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3QiLCJjZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0IiwKLQlOSURfY2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdCwzLCYobHZhbHVlc1s1NzkzXSksMH0sCisJTklEX2NlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3QsMywmKGx2YWx1ZXNbNTc4N10pLDB9LAogeyJjcm9zc0NlcnRpZmljYXRlUGFpciIsImNyb3NzQ2VydGlmaWNhdGVQYWlyIiwKLQlOSURfY3Jvc3NDZXJ0aWZpY2F0ZVBhaXIsMywmKGx2YWx1ZXNbNTc5Nl0pLDB9LAorCU5JRF9jcm9zc0NlcnRpZmljYXRlUGFpciwzLCYobHZhbHVlc1s1NzkwXSksMH0sCiB7ImVuaGFuY2VkU2VhcmNoR3VpZGUiLCJlbmhhbmNlZFNlYXJjaEd1aWRlIixOSURfZW5oYW5jZWRTZWFyY2hHdWlkZSwKLQkzLCYobHZhbHVlc1s1Nzk5XSksMH0sCisJMywmKGx2YWx1ZXNbNTc5M10pLDB9LAogeyJwcm90b2NvbEluZm9ybWF0aW9uIiwicHJvdG9jb2xJbmZvcm1hdGlvbiIsTklEX3Byb3RvY29sSW5mb3JtYXRpb24sCi0JMywmKGx2YWx1ZXNbNTgwMl0pLDB9LAorCTMsJihsdmFsdWVzWzU3OTZdKSwwfSwKIHsiZGlzdGluZ3Vpc2hlZE5hbWUiLCJkaXN0aW5ndWlzaGVkTmFtZSIsTklEX2Rpc3Rpbmd1aXNoZWROYW1lLDMsCi0JJihsdmFsdWVzWzU4MDVdKSwwfSwKLXsidW5pcXVlTWVtYmVyIiwidW5pcXVlTWVtYmVyIixOSURfdW5pcXVlTWVtYmVyLDMsJihsdmFsdWVzWzU4MDhdKSwwfSwKKwkmKGx2YWx1ZXNbNTc5OV0pLDB9LAoreyJ1bmlxdWVNZW1iZXIiLCJ1bmlxdWVNZW1iZXIiLE5JRF91bmlxdWVNZW1iZXIsMywmKGx2YWx1ZXNbNTgwMl0pLDB9LAogeyJob3VzZUlkZW50aWZpZXIiLCJob3VzZUlkZW50aWZpZXIiLE5JRF9ob3VzZUlkZW50aWZpZXIsMywKLQkmKGx2YWx1ZXNbNTgxMV0pLDB9LAorCSYobHZhbHVlc1s1ODA1XSksMH0sCiB7InN1cHBvcnRlZEFsZ29yaXRobXMiLCJzdXBwb3J0ZWRBbGdvcml0aG1zIixOSURfc3VwcG9ydGVkQWxnb3JpdGhtcywKLQkzLCYobHZhbHVlc1s1ODE0XSksMH0sCisJMywmKGx2YWx1ZXNbNTgwOF0pLDB9LAogeyJkZWx0YVJldm9jYXRpb25MaXN0IiwiZGVsdGFSZXZvY2F0aW9uTGlzdCIsTklEX2RlbHRhUmV2b2NhdGlvbkxpc3QsCi0JMywmKGx2YWx1ZXNbNTgxN10pLDB9LAoteyJkbWROYW1lIiwiZG1kTmFtZSIsTklEX2RtZE5hbWUsMywmKGx2YWx1ZXNbNTgyMF0pLDB9LAorCTMsJihsdmFsdWVzWzU4MTFdKSwwfSwKK3siZG1kTmFtZSIsImRtZE5hbWUiLE5JRF9kbWROYW1lLDMsJihsdmFsdWVzWzU4MTRdKSwwfSwKIHsiaWQtYWxnLVBXUkktS0VLIiwiaWQtYWxnLVBXUkktS0VLIixOSURfaWRfYWxnX1BXUklfS0VLLDExLAotCSYobHZhbHVlc1s1ODIzXSksMH0sCisJJihsdmFsdWVzWzU4MTddKSwwfSwKIHsiQ01BQyIsImNtYWMiLE5JRF9jbWFjLDAsTlVMTCwwfSwKLXsiaWQtYWVzMTI4LUdDTSIsImFlcy0xMjgtZ2NtIixOSURfYWVzXzEyOF9nY20sOSwmKGx2YWx1ZXNbNTgzNF0pLDB9LAoteyJpZC1hZXMxMjgtQ0NNIiwiYWVzLTEyOC1jY20iLE5JRF9hZXNfMTI4X2NjbSw5LCYobHZhbHVlc1s1ODQzXSksMH0sCit7ImlkLWFlczEyOC1HQ00iLCJhZXMtMTI4LWdjbSIsTklEX2Flc18xMjhfZ2NtLDksJihsdmFsdWVzWzU4MjhdKSwwfSwKK3siaWQtYWVzMTI4LUNDTSIsImFlcy0xMjgtY2NtIixOSURfYWVzXzEyOF9jY20sOSwmKGx2YWx1ZXNbNTgzN10pLDB9LAogeyJpZC1hZXMxMjgtd3JhcC1wYWQiLCJpZC1hZXMxMjgtd3JhcC1wYWQiLE5JRF9pZF9hZXMxMjhfd3JhcF9wYWQsOSwKLQkmKGx2YWx1ZXNbNTg1Ml0pLDB9LAoteyJpZC1hZXMxOTItR0NNIiwiYWVzLTE5Mi1nY20iLE5JRF9hZXNfMTkyX2djbSw5LCYobHZhbHVlc1s1ODYxXSksMH0sCi17ImlkLWFlczE5Mi1DQ00iLCJhZXMtMTkyLWNjbSIsTklEX2Flc18xOTJfY2NtLDksJihsdmFsdWVzWzU4NzBdKSwwfSwKKwkmKGx2YWx1ZXNbNTg0Nl0pLDB9LAoreyJpZC1hZXMxOTItR0NNIiwiYWVzLTE5Mi1nY20iLE5JRF9hZXNfMTkyX2djbSw5LCYobHZhbHVlc1s1ODU1XSksMH0sCit7ImlkLWFlczE5Mi1DQ00iLCJhZXMtMTkyLWNjbSIsTklEX2Flc18xOTJfY2NtLDksJihsdmFsdWVzWzU4NjRdKSwwfSwKIHsiaWQtYWVzMTkyLXdyYXAtcGFkIiwiaWQtYWVzMTkyLXdyYXAtcGFkIixOSURfaWRfYWVzMTkyX3dyYXBfcGFkLDksCi0JJihsdmFsdWVzWzU4NzldKSwwfSwKLXsiaWQtYWVzMjU2LUdDTSIsImFlcy0yNTYtZ2NtIixOSURfYWVzXzI1Nl9nY20sOSwmKGx2YWx1ZXNbNTg4OF0pLDB9LAoteyJpZC1hZXMyNTYtQ0NNIiwiYWVzLTI1Ni1jY20iLE5JRF9hZXNfMjU2X2NjbSw5LCYobHZhbHVlc1s1ODk3XSksMH0sCisJJihsdmFsdWVzWzU4NzNdKSwwfSwKK3siaWQtYWVzMjU2LUdDTSIsImFlcy0yNTYtZ2NtIixOSURfYWVzXzI1Nl9nY20sOSwmKGx2YWx1ZXNbNTg4Ml0pLDB9LAoreyJpZC1hZXMyNTYtQ0NNIiwiYWVzLTI1Ni1jY20iLE5JRF9hZXNfMjU2X2NjbSw5LCYobHZhbHVlc1s1ODkxXSksMH0sCiB7ImlkLWFlczI1Ni13cmFwLXBhZCIsImlkLWFlczI1Ni13cmFwLXBhZCIsTklEX2lkX2FlczI1Nl93cmFwX3BhZCw5LAotCSYobHZhbHVlc1s1OTA2XSksMH0sCisJJihsdmFsdWVzWzU5MDBdKSwwfSwKIHsiQUVTLTEyOC1DVFIiLCJhZXMtMTI4LWN0ciIsTklEX2Flc18xMjhfY3RyLDAsTlVMTCwwfSwKIHsiQUVTLTE5Mi1DVFIiLCJhZXMtMTkyLWN0ciIsTklEX2Flc18xOTJfY3RyLDAsTlVMTCwwfSwKIHsiQUVTLTI1Ni1DVFIiLCJhZXMtMjU2LWN0ciIsTklEX2Flc18yNTZfY3RyLDAsTlVMTCwwfSwKIHsiaWQtY2FtZWxsaWExMjgtd3JhcCIsImlkLWNhbWVsbGlhMTI4LXdyYXAiLE5JRF9pZF9jYW1lbGxpYTEyOF93cmFwLAotCTExLCYobHZhbHVlc1s1OTE1XSksMH0sCisJMTEsJihsdmFsdWVzWzU5MDldKSwwfSwKIHsiaWQtY2FtZWxsaWExOTItd3JhcCIsImlkLWNhbWVsbGlhMTkyLXdyYXAiLE5JRF9pZF9jYW1lbGxpYTE5Ml93cmFwLAotCTExLCYobHZhbHVlc1s1OTI2XSksMH0sCisJMTEsJihsdmFsdWVzWzU5MjBdKSwwfSwKIHsiaWQtY2FtZWxsaWEyNTYtd3JhcCIsImlkLWNhbWVsbGlhMjU2LXdyYXAiLE5JRF9pZF9jYW1lbGxpYTI1Nl93cmFwLAotCTExLCYobHZhbHVlc1s1OTM3XSksMH0sCisJMTEsJihsdmFsdWVzWzU5MzFdKSwwfSwKIHsiYW55RXh0ZW5kZWRLZXlVc2FnZSIsIkFueSBFeHRlbmRlZCBLZXkgVXNhZ2UiLAotCU5JRF9hbnlFeHRlbmRlZEtleVVzYWdlLDQsJihsdmFsdWVzWzU5NDhdKSwwfSwKLXsiTUdGMSIsIm1nZjEiLE5JRF9tZ2YxLDksJihsdmFsdWVzWzU5NTJdKSwwfSwKLXsiUlNBU1NBLVBTUyIsInJzYXNzYVBzcyIsTklEX3JzYXNzYVBzcyw5LCYobHZhbHVlc1s1OTYxXSksMH0sCisJTklEX2FueUV4dGVuZGVkS2V5VXNhZ2UsNCwmKGx2YWx1ZXNbNTk0Ml0pLDB9LAoreyJNR0YxIiwibWdmMSIsTklEX21nZjEsOSwmKGx2YWx1ZXNbNTk0Nl0pLDB9LAoreyJSU0FTU0EtUFNTIiwicnNhc3NhUHNzIixOSURfcnNhc3NhUHNzLDksJihsdmFsdWVzWzU5NTVdKSwwfSwKIHsiQUVTLTEyOC1YVFMiLCJhZXMtMTI4LXh0cyIsTklEX2Flc18xMjhfeHRzLDAsTlVMTCwwfSwKIHsiQUVTLTI1Ni1YVFMiLCJhZXMtMjU2LXh0cyIsTklEX2Flc18yNTZfeHRzLDAsTlVMTCwwfSwKIHsiUkM0LUhNQUMtTUQ1IiwicmM0LWhtYWMtbWQ1IixOSURfcmM0X2htYWNfbWQ1LDAsTlVMTCwwfSwKQEAgLTI0MDUsNyArMjM5OCw3IEBACiAJTklEX2Flc18xOTJfY2JjX2htYWNfc2hhMSwwLE5VTEwsMH0sCiB7IkFFUy0yNTYtQ0JDLUhNQUMtU0hBMSIsImFlcy0yNTYtY2JjLWhtYWMtc2hhMSIsCiAJTklEX2Flc18yNTZfY2JjX2htYWNfc2hhMSwwLE5VTEwsMH0sCi17IlJTQUVTLU9BRVAiLCJyc2Flc09hZXAiLE5JRF9yc2Flc09hZXAsOSwmKGx2YWx1ZXNbNTk3MF0pLDB9LAoreyJSU0FFUy1PQUVQIiwicnNhZXNPYWVwIixOSURfcnNhZXNPYWVwLDksJihsdmFsdWVzWzU5NjRdKSwwfSwKIH07CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgc25fb2Jqc1tOVU1fU05dPXsKQEAgLTQyNDIsMTUgKzQyMzUsMTUgQEAKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBvYmpfb2Jqc1tOVU1fT0JKXT17CiAgMCwJLyogT0JKX3VuZGVmICAgICAgICAgICAgICAgICAgICAgICAgMCAqLworMTgxLAkvKiBPQkpfaXNvICAgICAgICAgICAgICAgICAgICAgICAgICAxICovCiAzOTMsCS8qIE9CSl9qb2ludF9pc29fY2NpdHQgICAgICAgICAgICAgIE9CSl9qb2ludF9pc29faXR1X3QgKi8KIDQwNCwJLyogT0JKX2NjaXR0ICAgICAgICAgICAgICAgICAgICAgICAgT0JKX2l0dV90ICovCiA2NDUsCS8qIE9CSl9pdHVfdCAgICAgICAgICAgICAgICAgICAgICAgIDAgKi8KKzY0NiwJLyogT0JKX2pvaW50X2lzb19pdHVfdCAgICAgICAgICAgICAgMiAqLwogNDM0LAkvKiBPQkpfZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAwIDkgKi8KLTE4MSwJLyogT0JKX2lzbyAgICAgICAgICAgICAgICAgICAgICAgICAgMSAqLwogMTgyLAkvKiBPQkpfbWVtYmVyX2JvZHkgICAgICAgICAgICAgICAgICAxIDIgKi8KIDM3OSwJLyogT0JKX29yZyAgICAgICAgICAgICAgICAgICAgICAgICAgMSAzICovCiA2NzYsCS8qIE9CSl9pZGVudGlmaWVkX29yZ2FuaXphdGlvbiAgICAgIDEgMyAqLwotNjQ2LAkvKiBPQkpfam9pbnRfaXNvX2l0dV90ICAgICAgICAgICAgICAyICovCiAxMSwJLyogT0JKX1g1MDAgICAgICAgICAgICAgICAgICAgICAgICAgMiA1ICovCiA2NDcsCS8qIE9CSl9pbnRlcm5hdGlvbmFsX29yZ2FuaXphdGlvbnMgIDIgMjMgKi8KIDM4MCwJLyogT0JKX2RvZCAgICAgICAgICAgICAgICAgICAgICAgICAgMSAzIDYgKi8KZGlmZiAtLWdpdCBhL2NyeXB0by9vYmplY3RzL29ial9kYXQucGwgYi9jcnlwdG8vb2JqZWN0cy9vYmpfZGF0LnBsCmluZGV4IGM2N2Y3MWMuLjg2YmNlZmIgMTAwNjQ0Ci0tLSBhL2NyeXB0by9vYmplY3RzL29ial9kYXQucGwKKysrIGIvY3J5cHRvL29iamVjdHMvb2JqX2RhdC5wbApAQCAtMTE1LDcgKzExNSw3IEBACiAJCSRvdXQuPSJcIiRzblwiIjsKIAkJJG91dC49IiwiLiJcIiRsblwiIjsKIAkJJG91dC49IixOSURfJG5pZHskaX0sIjsKLQkJaWYgKGRlZmluZWQoJG9ianskbmlkeyRpfX0pKQorCQlpZiAoZGVmaW5lZCgkb2JqeyRuaWR7JGl9fSkgJiYgJG9iamR7JG9ianskbmlkeyRpfX19ID1+IC8sLykKIAkJCXsKIAkJCSR2PSRvYmpkeyRvYmp7JG5pZHskaX19fTsKIAkJCSR2ID1+IHMvTC8vZzsKZGlmZiAtLWdpdCBhL2NyeXB0by9vY3NwL29jc3BfaHQuYyBiL2NyeXB0by9vY3NwL29jc3BfaHQuYwppbmRleCBhZjVmYzE2Li4wOWViODU1IDEwMDY0NAotLS0gYS9jcnlwdG8vb2NzcC9vY3NwX2h0LmMKKysrIGIvY3J5cHRvL29jc3Avb2NzcF9odC5jCkBAIC0xNTgsNiArMTU4LDggQEAKIAogCU9DU1BfUkVRX0NUWCAqcmN0eDsKIAlyY3R4ID0gT1BFTlNTTF9tYWxsb2Moc2l6ZW9mKE9DU1BfUkVRX0NUWCkpOworCWlmICghcmN0eCkKKwkJcmV0dXJuIE5VTEw7CiAJcmN0eC0+c3RhdGUgPSBPSFNfRVJST1I7CiAJcmN0eC0+bWVtID0gQklPX25ldyhCSU9fc19tZW0oKSk7CiAJcmN0eC0+aW8gPSBpbzsKQEAgLTE2NywxOCArMTY5LDIxIEBACiAJZWxzZQogCQlyY3R4LT5pb2J1ZmxlbiA9IE9DU1BfTUFYX0xJTkVfTEVOOwogCXJjdHgtPmlvYnVmID0gT1BFTlNTTF9tYWxsb2MocmN0eC0+aW9idWZsZW4pOwotCWlmICghcmN0eC0+aW9idWYpCi0JCXJldHVybiAwOworCWlmICghcmN0eC0+bWVtIHx8ICFyY3R4LT5pb2J1ZikKKwkJZ290byBlcnI7CiAJaWYgKCFwYXRoKQogCQlwYXRoID0gIi8iOwogCiAgICAgICAgIGlmIChCSU9fcHJpbnRmKHJjdHgtPm1lbSwgcG9zdF9oZHIsIHBhdGgpIDw9IDApCi0JCXJldHVybiAwOworCQlnb3RvIGVycjsKIAogCWlmIChyZXEgJiYgIU9DU1BfUkVRX0NUWF9zZXQxX3JlcShyY3R4LCByZXEpKQotCQlyZXR1cm4gMDsKKwkJZ290byBlcnI7CiAKIAlyZXR1cm4gcmN0eDsKKwllcnI6CisJT0NTUF9SRVFfQ1RYX2ZyZWUocmN0eCk7CisJcmV0dXJuIE5VTEw7CiAJfQogCiAvKiBQYXJzZSB0aGUgSFRUUCByZXNwb25zZS4gVGhpcyB3aWxsIGxvb2sgbGlrZSB0aGlzOgpAQCAtNDkwLDYgKzQ5NSw5IEBACiAKIAljdHggPSBPQ1NQX3NlbmRyZXFfbmV3KGIsIHBhdGgsIHJlcSwgLTEpOwogCisJaWYgKCFjdHgpCisJCXJldHVybiBOVUxMOworCiAJZG8KIAkJewogCQlydiA9IE9DU1Bfc2VuZHJlcV9uYmlvKCZyZXNwLCBjdHgpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL29jc3Avb2NzcF9saWIuYyBiL2NyeXB0by9vY3NwL29jc3BfbGliLmMKaW5kZXggYTk0ZGM4My4uNTA2MWMwNSAxMDA2NDQKLS0tIGEvY3J5cHRvL29jc3Avb2NzcF9saWIuYworKysgYi9jcnlwdG8vb2NzcC9vY3NwX2xpYi5jCkBAIC0yMjIsOCArMjIyLDE5IEBACiAKIAlpZiAoISpwcGF0aCkgZ290byBtZW1fZXJyOwogCisJcCA9IGhvc3Q7CisJaWYoaG9zdFswXSA9PSAnWycpCisJCXsKKwkJLyogaXB2NiBsaXRlcmFsICovCisJCWhvc3QrKzsKKwkJcCA9IHN0cmNocihob3N0LCAnXScpOworCQlpZighcCkgZ290byBwYXJzZV9lcnI7CisJCSpwID0gJ1wwJzsKKwkJcCsrOworCQl9CisKIAkvKiBMb29rIGZvciBvcHRpb25hbCAnOicgZm9yIHBvcnQgbnVtYmVyICovCi0JaWYgKChwID0gc3RyY2hyKGhvc3QsICc6JykpKQorCWlmICgocCA9IHN0cmNocihwLCAnOicpKSkKIAkJewogCQkqcCA9IDA7CiAJCXBvcnQgPSBwICsgMTsKZGlmZiAtLWdpdCBhL2NyeXB0by9vY3NwL29jc3BfdmZ5LmMgYi9jcnlwdG8vb2NzcC9vY3NwX3ZmeS5jCmluZGV4IDI3NjcxODMuLmZjMGQ0Y2MgMTAwNjQ0Ci0tLSBhL2NyeXB0by9vY3NwL29jc3BfdmZ5LmMKKysrIGIvY3J5cHRvL29jc3Avb2NzcF92ZnkuYwpAQCAtNDM2LDggKzQzNiwxMSBAQAogCWlmKCEoZmxhZ3MgJiBPQ1NQX05PSU5URVJOKSkKIAkJewogCQlzaWduZXIgPSBYNTA5X2ZpbmRfYnlfc3ViamVjdChyZXEtPm9wdGlvbmFsU2lnbmF0dXJlLT5jZXJ0cywgbm0pOwotCQkqcHNpZ25lciA9IHNpZ25lcjsKLQkJcmV0dXJuIDE7CisJCWlmIChzaWduZXIpCisJCQl7CisJCQkqcHNpZ25lciA9IHNpZ25lcjsKKwkJCXJldHVybiAxOworCQkJfQogCQl9CiAKIAlzaWduZXIgPSBYNTA5X2ZpbmRfYnlfc3ViamVjdChjZXJ0cywgbm0pOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL29wZW5zc2xjb25mLTMyLmggYi9jcnlwdG8vb3BlbnNzbGNvbmYtMzIuaAppbmRleCBjYWY2ZjFiLi5iNWIzZGQyIDEwMDY0NAotLS0gYS9jcnlwdG8vb3BlbnNzbGNvbmYtMzIuaAorKysgYi9jcnlwdG8vb3BlbnNzbGNvbmYtMzIuaApAQCAtMSw2ICsxLDkgQEAKIC8qIG9wZW5zc2xjb25mLmggKi8KIC8qIFdBUk5JTkc6IEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gb3BlbnNzbGNvbmYuaC5pbiBieSBDb25maWd1cmUuICovCiAKKyNpZmRlZiAgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCiAvKiBPcGVuU1NMIHdhcyBjb25maWd1cmVkIHdpdGggdGhlIGZvbGxvd2luZyBvcHRpb25zOiAqLwogI2lmbmRlZiBPUEVOU1NMX0RPSU5HX01BS0VERVBFTkQKIApAQCAtNzQsNiArNzcsOSBAQAogI2lmbmRlZiBPUEVOU1NMX05PX1NUT1JFCiAjIGRlZmluZSBPUEVOU1NMX05PX1NUT1JFCiAjZW5kaWYKKyNpZm5kZWYgT1BFTlNTTF9OT19VTklUX1RFU1QKKyMgZGVmaW5lIE9QRU5TU0xfTk9fVU5JVF9URVNUCisjZW5kaWYKICNpZm5kZWYgT1BFTlNTTF9OT19XSElSTFBPT0wKICMgZGVmaW5lIE9QRU5TU0xfTk9fV0hJUkxQT09MCiAjZW5kaWYKQEAgLTE2MSw2ICsxNjcsOSBAQAogIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fU1RPUkUpICYmICFkZWZpbmVkKE5PX1NUT1JFKQogIyAgZGVmaW5lIE5PX1NUT1JFCiAjIGVuZGlmCisjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19VTklUX1RFU1QpICYmICFkZWZpbmVkKE5PX1VOSVRfVEVTVCkKKyMgIGRlZmluZSBOT19VTklUX1RFU1QKKyMgZW5kaWYKICMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1dISVJMUE9PTCkgJiYgIWRlZmluZWQoTk9fV0hJUkxQT09MKQogIyAgZGVmaW5lIE5PX1dISVJMUE9PTAogIyBlbmRpZgpAQCAtMzIwLDMgKzMyOSw2IEBACiAKICNlbmRpZiAvKiBERVNfREVGQVVMVF9PUFRJT05TICovCiAjZW5kaWYgLyogSEVBREVSX0RFU19MT0NMX0ggKi8KKyNpZmRlZiAgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvY3J5cHRvL29wZW5zc2xjb25mLTY0LmggYi9jcnlwdG8vb3BlbnNzbGNvbmYtNjQuaAppbmRleCA4OGZiMDQxLi4zMGU3YWQ4IDEwMDY0NAotLS0gYS9jcnlwdG8vb3BlbnNzbGNvbmYtNjQuaAorKysgYi9jcnlwdG8vb3BlbnNzbGNvbmYtNjQuaApAQCAtMSw2ICsxLDkgQEAKIC8qIG9wZW5zc2xjb25mLmggKi8KIC8qIFdBUk5JTkc6IEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gb3BlbnNzbGNvbmYuaC5pbiBieSBDb25maWd1cmUuICovCiAKKyNpZmRlZiAgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCiAvKiBPcGVuU1NMIHdhcyBjb25maWd1cmVkIHdpdGggdGhlIGZvbGxvd2luZyBvcHRpb25zOiAqLwogI2lmbmRlZiBPUEVOU1NMX0RPSU5HX01BS0VERVBFTkQKIApAQCAtNzQsNiArNzcsOSBAQAogI2lmbmRlZiBPUEVOU1NMX05PX1NUT1JFCiAjIGRlZmluZSBPUEVOU1NMX05PX1NUT1JFCiAjZW5kaWYKKyNpZm5kZWYgT1BFTlNTTF9OT19VTklUX1RFU1QKKyMgZGVmaW5lIE9QRU5TU0xfTk9fVU5JVF9URVNUCisjZW5kaWYKICNpZm5kZWYgT1BFTlNTTF9OT19XSElSTFBPT0wKICMgZGVmaW5lIE9QRU5TU0xfTk9fV0hJUkxQT09MCiAjZW5kaWYKQEAgLTE2MSw2ICsxNjcsOSBAQAogIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fU1RPUkUpICYmICFkZWZpbmVkKE5PX1NUT1JFKQogIyAgZGVmaW5lIE5PX1NUT1JFCiAjIGVuZGlmCisjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19VTklUX1RFU1QpICYmICFkZWZpbmVkKE5PX1VOSVRfVEVTVCkKKyMgIGRlZmluZSBOT19VTklUX1RFU1QKKyMgZW5kaWYKICMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1dISVJMUE9PTCkgJiYgIWRlZmluZWQoTk9fV0hJUkxQT09MKQogIyAgZGVmaW5lIE5PX1dISVJMUE9PTAogIyBlbmRpZgpAQCAtMzIwLDMgKzMyOSw2IEBACiAKICNlbmRpZiAvKiBERVNfREVGQVVMVF9PUFRJT05TICovCiAjZW5kaWYgLyogSEVBREVSX0RFU19MT0NMX0ggKi8KKyNpZmRlZiAgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvY3J5cHRvL29wZW5zc2xjb25mLXN0YXRpYy0zMi5oIGIvY3J5cHRvL29wZW5zc2xjb25mLXN0YXRpYy0zMi5oCmluZGV4IGNhZjZmMWIuLmI1YjNkZDIgMTAwNjQ0Ci0tLSBhL2NyeXB0by9vcGVuc3NsY29uZi1zdGF0aWMtMzIuaAorKysgYi9jcnlwdG8vb3BlbnNzbGNvbmYtc3RhdGljLTMyLmgKQEAgLTEsNiArMSw5IEBACiAvKiBvcGVuc3NsY29uZi5oICovCiAvKiBXQVJOSU5HOiBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBmcm9tIG9wZW5zc2xjb25mLmguaW4gYnkgQ29uZmlndXJlLiAqLwogCisjaWZkZWYgIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgogLyogT3BlblNTTCB3YXMgY29uZmlndXJlZCB3aXRoIHRoZSBmb2xsb3dpbmcgb3B0aW9uczogKi8KICNpZm5kZWYgT1BFTlNTTF9ET0lOR19NQUtFREVQRU5ECiAKQEAgLTc0LDYgKzc3LDkgQEAKICNpZm5kZWYgT1BFTlNTTF9OT19TVE9SRQogIyBkZWZpbmUgT1BFTlNTTF9OT19TVE9SRQogI2VuZGlmCisjaWZuZGVmIE9QRU5TU0xfTk9fVU5JVF9URVNUCisjIGRlZmluZSBPUEVOU1NMX05PX1VOSVRfVEVTVAorI2VuZGlmCiAjaWZuZGVmIE9QRU5TU0xfTk9fV0hJUkxQT09MCiAjIGRlZmluZSBPUEVOU1NMX05PX1dISVJMUE9PTAogI2VuZGlmCkBAIC0xNjEsNiArMTY3LDkgQEAKICMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1NUT1JFKSAmJiAhZGVmaW5lZChOT19TVE9SRSkKICMgIGRlZmluZSBOT19TVE9SRQogIyBlbmRpZgorIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fVU5JVF9URVNUKSAmJiAhZGVmaW5lZChOT19VTklUX1RFU1QpCisjICBkZWZpbmUgTk9fVU5JVF9URVNUCisjIGVuZGlmCiAjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19XSElSTFBPT0wpICYmICFkZWZpbmVkKE5PX1dISVJMUE9PTCkKICMgIGRlZmluZSBOT19XSElSTFBPT0wKICMgZW5kaWYKQEAgLTMyMCwzICszMjksNiBAQAogCiAjZW5kaWYgLyogREVTX0RFRkFVTFRfT1BUSU9OUyAqLwogI2VuZGlmIC8qIEhFQURFUl9ERVNfTE9DTF9IICovCisjaWZkZWYgIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL2NyeXB0by9vcGVuc3NsY29uZi1zdGF0aWMtNjQuaCBiL2NyeXB0by9vcGVuc3NsY29uZi1zdGF0aWMtNjQuaAppbmRleCA4OGZiMDQxLi4zMGU3YWQ4IDEwMDY0NAotLS0gYS9jcnlwdG8vb3BlbnNzbGNvbmYtc3RhdGljLTY0LmgKKysrIGIvY3J5cHRvL29wZW5zc2xjb25mLXN0YXRpYy02NC5oCkBAIC0xLDYgKzEsOSBAQAogLyogb3BlbnNzbGNvbmYuaCAqLwogLyogV0FSTklORzogR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgZnJvbSBvcGVuc3NsY29uZi5oLmluIGJ5IENvbmZpZ3VyZS4gKi8KIAorI2lmZGVmICBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKIC8qIE9wZW5TU0wgd2FzIGNvbmZpZ3VyZWQgd2l0aCB0aGUgZm9sbG93aW5nIG9wdGlvbnM6ICovCiAjaWZuZGVmIE9QRU5TU0xfRE9JTkdfTUFLRURFUEVORAogCkBAIC03NCw2ICs3Nyw5IEBACiAjaWZuZGVmIE9QRU5TU0xfTk9fU1RPUkUKICMgZGVmaW5lIE9QRU5TU0xfTk9fU1RPUkUKICNlbmRpZgorI2lmbmRlZiBPUEVOU1NMX05PX1VOSVRfVEVTVAorIyBkZWZpbmUgT1BFTlNTTF9OT19VTklUX1RFU1QKKyNlbmRpZgogI2lmbmRlZiBPUEVOU1NMX05PX1dISVJMUE9PTAogIyBkZWZpbmUgT1BFTlNTTF9OT19XSElSTFBPT0wKICNlbmRpZgpAQCAtMTYxLDYgKzE2Nyw5IEBACiAjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19TVE9SRSkgJiYgIWRlZmluZWQoTk9fU1RPUkUpCiAjICBkZWZpbmUgTk9fU1RPUkUKICMgZW5kaWYKKyMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1VOSVRfVEVTVCkgJiYgIWRlZmluZWQoTk9fVU5JVF9URVNUKQorIyAgZGVmaW5lIE5PX1VOSVRfVEVTVAorIyBlbmRpZgogIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fV0hJUkxQT09MKSAmJiAhZGVmaW5lZChOT19XSElSTFBPT0wpCiAjICBkZWZpbmUgTk9fV0hJUkxQT09MCiAjIGVuZGlmCkBAIC0zMjAsMyArMzI5LDYgQEAKIAogI2VuZGlmIC8qIERFU19ERUZBVUxUX09QVElPTlMgKi8KICNlbmRpZiAvKiBIRUFERVJfREVTX0xPQ0xfSCAqLworI2lmZGVmICBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9jcnlwdG8vb3BlbnNzbGNvbmYtc3RhdGljLXRydXN0eS5oIGIvY3J5cHRvL29wZW5zc2xjb25mLXN0YXRpYy10cnVzdHkuaAppbmRleCAwNmY5Zjk4Li5iZmY1OTEwIDEwMDY0NAotLS0gYS9jcnlwdG8vb3BlbnNzbGNvbmYtc3RhdGljLXRydXN0eS5oCisrKyBiL2NyeXB0by9vcGVuc3NsY29uZi1zdGF0aWMtdHJ1c3R5LmgKQEAgLTEsNiArMSw5IEBACiAvKiBvcGVuc3NsY29uZi5oICovCiAvKiBXQVJOSU5HOiBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBmcm9tIG9wZW5zc2xjb25mLmguaW4gYnkgQ29uZmlndXJlLiAqLwogCisjaWZkZWYgIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgogLyogT3BlblNTTCB3YXMgY29uZmlndXJlZCB3aXRoIHRoZSBmb2xsb3dpbmcgb3B0aW9uczogKi8KICNpZm5kZWYgT1BFTlNTTF9ET0lOR19NQUtFREVQRU5ECiAKQEAgLTEzNyw2ICsxNDAsOSBAQAogI2lmbmRlZiBPUEVOU1NMX05PX1VJCiAjIGRlZmluZSBPUEVOU1NMX05PX1VJCiAjZW5kaWYKKyNpZm5kZWYgT1BFTlNTTF9OT19VTklUX1RFU1QKKyMgZGVmaW5lIE9QRU5TU0xfTk9fVU5JVF9URVNUCisjZW5kaWYKICNpZm5kZWYgT1BFTlNTTF9OT19XSElSTFBPT0wKICMgZGVmaW5lIE9QRU5TU0xfTk9fV0hJUkxQT09MCiAjZW5kaWYKQEAgLTI4Nyw2ICsyOTMsOSBAQAogIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fVUkpICYmICFkZWZpbmVkKE5PX1VJKQogIyAgZGVmaW5lIE5PX1VJCiAjIGVuZGlmCisjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19VTklUX1RFU1QpICYmICFkZWZpbmVkKE5PX1VOSVRfVEVTVCkKKyMgIGRlZmluZSBOT19VTklUX1RFU1QKKyMgZW5kaWYKICMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1dISVJMUE9PTCkgJiYgIWRlZmluZWQoTk9fV0hJUkxQT09MKQogIyAgZGVmaW5lIE5PX1dISVJMUE9PTAogIyBlbmRpZgpAQCAtNDQ2LDMgKzQ1NSw2IEBACiAKICNlbmRpZiAvKiBERVNfREVGQVVMVF9PUFRJT05TICovCiAjZW5kaWYgLyogSEVBREVSX0RFU19MT0NMX0ggKi8KKyNpZmRlZiAgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvY3J5cHRvL29wZW5zc2xjb25mLXRydXN0eS5oIGIvY3J5cHRvL29wZW5zc2xjb25mLXRydXN0eS5oCmluZGV4IDA2ZjlmOTguLmJmZjU5MTAgMTAwNjQ0Ci0tLSBhL2NyeXB0by9vcGVuc3NsY29uZi10cnVzdHkuaAorKysgYi9jcnlwdG8vb3BlbnNzbGNvbmYtdHJ1c3R5LmgKQEAgLTEsNiArMSw5IEBACiAvKiBvcGVuc3NsY29uZi5oICovCiAvKiBXQVJOSU5HOiBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBmcm9tIG9wZW5zc2xjb25mLmguaW4gYnkgQ29uZmlndXJlLiAqLwogCisjaWZkZWYgIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgogLyogT3BlblNTTCB3YXMgY29uZmlndXJlZCB3aXRoIHRoZSBmb2xsb3dpbmcgb3B0aW9uczogKi8KICNpZm5kZWYgT1BFTlNTTF9ET0lOR19NQUtFREVQRU5ECiAKQEAgLTEzNyw2ICsxNDAsOSBAQAogI2lmbmRlZiBPUEVOU1NMX05PX1VJCiAjIGRlZmluZSBPUEVOU1NMX05PX1VJCiAjZW5kaWYKKyNpZm5kZWYgT1BFTlNTTF9OT19VTklUX1RFU1QKKyMgZGVmaW5lIE9QRU5TU0xfTk9fVU5JVF9URVNUCisjZW5kaWYKICNpZm5kZWYgT1BFTlNTTF9OT19XSElSTFBPT0wKICMgZGVmaW5lIE9QRU5TU0xfTk9fV0hJUkxQT09MCiAjZW5kaWYKQEAgLTI4Nyw2ICsyOTMsOSBAQAogIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fVUkpICYmICFkZWZpbmVkKE5PX1VJKQogIyAgZGVmaW5lIE5PX1VJCiAjIGVuZGlmCisjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19VTklUX1RFU1QpICYmICFkZWZpbmVkKE5PX1VOSVRfVEVTVCkKKyMgIGRlZmluZSBOT19VTklUX1RFU1QKKyMgZW5kaWYKICMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1dISVJMUE9PTCkgJiYgIWRlZmluZWQoTk9fV0hJUkxQT09MKQogIyAgZGVmaW5lIE5PX1dISVJMUE9PTAogIyBlbmRpZgpAQCAtNDQ2LDMgKzQ1NSw2IEBACiAKICNlbmRpZiAvKiBERVNfREVGQVVMVF9PUFRJT05TICovCiAjZW5kaWYgLyogSEVBREVSX0RFU19MT0NMX0ggKi8KKyNpZmRlZiAgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvY3J5cHRvL29wZW5zc2x2LmggYi9jcnlwdG8vb3BlbnNzbHYuaAppbmRleCBjM2I2YWNlLi5mMzc1OTY3IDEwMDY0NAotLS0gYS9jcnlwdG8vb3BlbnNzbHYuaAorKysgYi9jcnlwdG8vb3BlbnNzbHYuaApAQCAtMSw2ICsxLDEwIEBACiAjaWZuZGVmIEhFQURFUl9PUEVOU1NMVl9ICiAjZGVmaW5lIEhFQURFUl9PUEVOU1NMVl9ICiAKKyNpZmRlZiAgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKIC8qIE51bWVyaWMgcmVsZWFzZSB2ZXJzaW9uIGlkZW50aWZpZXI6CiAgKiBNTk5GRlBQUzogbWFqb3IgbWlub3IgZml4IHBhdGNoIHN0YXR1cwogICogVGhlIHN0YXR1cyBuaWJibGUgaGFzIG9uZSBvZiB0aGUgdmFsdWVzIDAgZm9yIGRldmVsb3BtZW50LCAxIHRvIGUgZm9yIGJldGFzCkBAIC0yNSwxMSArMjksMTEgQEAKICAqIChQcmlvciB0byAwLjkuNWEgYmV0YTEsIGEgZGlmZmVyZW50IHNjaGVtZSB3YXMgdXNlZDogTU1OTkZGUkJCIGZvcgogICogIG1ham9yIG1pbm9yIGZpeCBmaW5hbCBwYXRjaC9iZXRhKQogICovCi0jZGVmaW5lIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIJMHgxMDAwMTA4ZkwKKyNkZWZpbmUgT1BFTlNTTF9WRVJTSU9OX05VTUJFUgkweDEwMDAxMGFmTAogI2lmZGVmIE9QRU5TU0xfRklQUwotI2RlZmluZSBPUEVOU1NMX1ZFUlNJT05fVEVYVAkiT3BlblNTTCAxLjAuMWgtZmlwcyA1IEp1biAyMDE0IgorI2RlZmluZSBPUEVOU1NMX1ZFUlNJT05fVEVYVAkiT3BlblNTTCAxLjAuMWotZmlwcyAxNSBPY3QgMjAxNCIKICNlbHNlCi0jZGVmaW5lIE9QRU5TU0xfVkVSU0lPTl9URVhUCSJPcGVuU1NMIDEuMC4xaCA1IEp1biAyMDE0IgorI2RlZmluZSBPUEVOU1NMX1ZFUlNJT05fVEVYVAkiT3BlblNTTCAxLjAuMWogMTUgT2N0IDIwMTQiCiAjZW5kaWYKICNkZWZpbmUgT1BFTlNTTF9WRVJTSU9OX1BURVhUCSIgcGFydCBvZiAiIE9QRU5TU0xfVkVSU0lPTl9URVhUCiAKQEAgLTg2LDQgKzkwLDcgQEAKICNkZWZpbmUgU0hMSUJfVkVSU0lPTl9OVU1CRVIgIjEuMC4wIgogCiAKKyNpZmRlZiAgX19jcGx1c3BsdXMKK30KKyNlbmRpZgogI2VuZGlmIC8qIEhFQURFUl9PUEVOU1NMVl9IICovCmRpZmYgLS1naXQgYS9jcnlwdG8vb3NzbF90eXAuaCBiL2NyeXB0by9vc3NsX3R5cC5oCmluZGV4IGVhOTIyN2YuLjEyY2RkNDMgMTAwNjQ0Ci0tLSBhL2NyeXB0by9vc3NsX3R5cC5oCisrKyBiL2NyeXB0by9vc3NsX3R5cC5oCkBAIC01NSw2ICs1NSwxMCBAQAogI2lmbmRlZiBIRUFERVJfT1BFTlNTTF9UWVBFU19ICiAjZGVmaW5lIEhFQURFUl9PUEVOU1NMX1RZUEVTX0gKIAorI2lmZGVmICBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwogI2luY2x1ZGUgPG9wZW5zc2wvZV9vczIuaD4KIAogI2lmZGVmIE5PX0FTTjFfVFlQRURFRlMKQEAgLTE5OSw0ICsyMDMsNyBAQAogdHlwZWRlZiBzdHJ1Y3Qgb2NzcF9yZXNwb25zZV9zdCBPQ1NQX1JFU1BPTlNFOwogdHlwZWRlZiBzdHJ1Y3Qgb2NzcF9yZXNwb25kZXJfaWRfc3QgT0NTUF9SRVNQSUQ7CiAKKyNpZmRlZiAgX19jcGx1c3BsdXMKK30KKyNlbmRpZgogI2VuZGlmIC8qIGRlZiBIRUFERVJfT1BFTlNTTF9UWVBFU19IICovCmRpZmYgLS1naXQgYS9jcnlwdG8vcGVtL3B2a2ZtdC5jIGIvY3J5cHRvL3BlbS9wdmtmbXQuYwppbmRleCBiMWJmNzFhLi5hZTg5ZjgyIDEwMDY0NAotLS0gYS9jcnlwdG8vcGVtL3B2a2ZtdC5jCisrKyBiL2NyeXB0by9wZW0vcHZrZm10LmMKQEAgLTc1OSw2ICs3NTksMTEgQEAKIAkJLyogQ29weSBCTE9CSEVBREVSIGFjcm9zcywgZGVjcnlwdCByZXN0ICovCiAJCW1lbWNweShlbmN0bXAsIHAsIDgpOwogCQlwICs9IDg7CisJCWlmIChrZXlsZW4gPCA4KQorCQkJeworCQkJUEVNZXJyKFBFTV9GX0RPX1BWS19CT0RZLCBQRU1fUl9QVktfVE9PX1NIT1JUKTsKKwkJCXJldHVybiBOVUxMOworCQkJfQogCQlpbmxlbiA9IGtleWxlbiAtIDg7CiAJCXEgPSBlbmN0bXAgKyA4OwogCQlpZiAoIUVWUF9EZWNyeXB0SW5pdF9leCgmY2N0eCwgRVZQX3JjNCgpLCBOVUxMLCBrZXlidWYsIE5VTEwpKQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L2Jpb19iZXIuYyBiL2NyeXB0by9wa2NzNy9iaW9fYmVyLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxOTczZmMuLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L2Jpb19iZXIuYworKysgL2Rldi9udWxsCkBAIC0xLDQ2NiArMCwwIEBACi0vKiBjcnlwdG8vZXZwL2Jpb19iZXIuYyAqLwotLyogQ29weXJpZ2h0IChDKSAxOTk1LTE5OTggRXJpYyBZb3VuZyAoZWF5QGNyeXB0c29mdC5jb20pCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgcGFja2FnZSBpcyBhbiBTU0wgaW1wbGVtZW50YXRpb24gd3JpdHRlbgotICogYnkgRXJpYyBZb3VuZyAoZWF5QGNyeXB0c29mdC5jb20pLgotICogVGhlIGltcGxlbWVudGF0aW9uIHdhcyB3cml0dGVuIHNvIGFzIHRvIGNvbmZvcm0gd2l0aCBOZXRzY2FwZXMgU1NMLgotICogCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBmb3IgY29tbWVyY2lhbCBhbmQgbm9uLWNvbW1lcmNpYWwgdXNlIGFzIGxvbmcgYXMKLSAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgYWhlYXJlZCB0by4gIFRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXBwbHkgdG8gYWxsIGNvZGUgZm91bmQgaW4gdGhpcyBkaXN0cmlidXRpb24sIGJlIGl0IHRoZSBSQzQsIFJTQSwKLSAqIGxoYXNoLCBERVMsIGV0Yy4sIGNvZGU7IG5vdCBqdXN0IHRoZSBTU0wgY29kZS4gIFRoZSBTU0wgZG9jdW1lbnRhdGlvbgotICogaW5jbHVkZWQgd2l0aCB0aGlzIGRpc3RyaWJ1dGlvbiBpcyBjb3ZlcmVkIGJ5IHRoZSBzYW1lIGNvcHlyaWdodCB0ZXJtcwotICogZXhjZXB0IHRoYXQgdGhlIGhvbGRlciBpcyBUaW0gSHVkc29uICh0amhAY3J5cHRzb2Z0LmNvbSkuCi0gKiAKLSAqIENvcHlyaWdodCByZW1haW5zIEVyaWMgWW91bmcncywgYW5kIGFzIHN1Y2ggYW55IENvcHlyaWdodCBub3RpY2VzIGluCi0gKiB0aGUgY29kZSBhcmUgbm90IHRvIGJlIHJlbW92ZWQuCi0gKiBJZiB0aGlzIHBhY2thZ2UgaXMgdXNlZCBpbiBhIHByb2R1Y3QsIEVyaWMgWW91bmcgc2hvdWxkIGJlIGdpdmVuIGF0dHJpYnV0aW9uCi0gKiBhcyB0aGUgYXV0aG9yIG9mIHRoZSBwYXJ0cyBvZiB0aGUgbGlicmFyeSB1c2VkLgotICogVGhpcyBjYW4gYmUgaW4gdGhlIGZvcm0gb2YgYSB0ZXh0dWFsIG1lc3NhZ2UgYXQgcHJvZ3JhbSBzdGFydHVwIG9yCi0gKiBpbiBkb2N1bWVudGF0aW9uIChvbmxpbmUgb3IgdGV4dHVhbCkgcHJvdmlkZWQgd2l0aCB0aGUgcGFja2FnZS4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKLSAqICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKLSAqICAgICJUaGlzIHByb2R1Y3QgaW5jbHVkZXMgY3J5cHRvZ3JhcGhpYyBzb2Z0d2FyZSB3cml0dGVuIGJ5Ci0gKiAgICAgRXJpYyBZb3VuZyAoZWF5QGNyeXB0c29mdC5jb20pIgotICogICAgVGhlIHdvcmQgJ2NyeXB0b2dyYXBoaWMnIGNhbiBiZSBsZWZ0IG91dCBpZiB0aGUgcm91aW5lcyBmcm9tIHRoZSBsaWJyYXJ5Ci0gKiAgICBiZWluZyB1c2VkIGFyZSBub3QgY3J5cHRvZ3JhcGhpYyByZWxhdGVkIDotKS4KLSAqIDQuIElmIHlvdSBpbmNsdWRlIGFueSBXaW5kb3dzIHNwZWNpZmljIGNvZGUgKG9yIGEgZGVyaXZhdGl2ZSB0aGVyZW9mKSBmcm9tIAotICogICAgdGhlIGFwcHMgZGlyZWN0b3J5IChhcHBsaWNhdGlvbiBjb2RlKSB5b3UgbXVzdCBpbmNsdWRlIGFuIGFja25vd2xlZGdlbWVudDoKLSAqICAgICJUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgd3JpdHRlbiBieSBUaW0gSHVkc29uICh0amhAY3J5cHRzb2Z0LmNvbSkiCi0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgRVJJQyBZT1VORyBgYEFTIElTJycgQU5ECi0gKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi0gKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQotICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCi0gKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKLSAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCi0gKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCi0gKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqIAotICogVGhlIGxpY2VuY2UgYW5kIGRpc3RyaWJ1dGlvbiB0ZXJtcyBmb3IgYW55IHB1YmxpY2FsbHkgYXZhaWxhYmxlIHZlcnNpb24gb3IKLSAqIGRlcml2YXRpdmUgb2YgdGhpcyBjb2RlIGNhbm5vdCBiZSBjaGFuZ2VkLiAgaS5lLiB0aGlzIGNvZGUgY2Fubm90IHNpbXBseSBiZQotICogY29waWVkIGFuZCBwdXQgdW5kZXIgYW5vdGhlciBkaXN0cmlidXRpb24gbGljZW5jZQotICogW2luY2x1ZGluZyB0aGUgR05VIFB1YmxpYyBMaWNlbmNlLl0KLSAqLwotCi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgImNyeXB0bGliLmgiCi0jaW5jbHVkZSA8b3BlbnNzbC9idWZmZXIuaD4KLSNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgotCi1zdGF0aWMgaW50IGJlcl93cml0ZShCSU8gKmgsY2hhciAqYnVmLGludCBudW0pOwotc3RhdGljIGludCBiZXJfcmVhZChCSU8gKmgsY2hhciAqYnVmLGludCBzaXplKTsKLS8qc3RhdGljIGludCBiZXJfcHV0cyhCSU8gKmgsY2hhciAqc3RyKTsgKi8KLS8qc3RhdGljIGludCBiZXJfZ2V0cyhCSU8gKmgsY2hhciAqc3RyLGludCBzaXplKTsgKi8KLXN0YXRpYyBsb25nIGJlcl9jdHJsKEJJTyAqaCxpbnQgY21kLGxvbmcgYXJnMSxjaGFyICphcmcyKTsKLXN0YXRpYyBpbnQgYmVyX25ldyhCSU8gKmgpOwotc3RhdGljIGludCBiZXJfZnJlZShCSU8gKmRhdGEpOwotc3RhdGljIGxvbmcgYmVyX2NhbGxiYWNrX2N0cmwoQklPICpoLGludCBjbWQsdm9pZCAqKCpmcCkoKSk7Ci0jZGVmaW5lIEJFUl9CVUZfU0laRQkoMzIpCi0KLS8qIFRoaXMgaXMgdXNlZCB0byBob2xkIHRoZSBzdGF0ZSBvZiB0aGUgQkVSIG9iamVjdHMgYmVpbmcgcmVhZC4gKi8KLXR5cGVkZWYgc3RydWN0IGJlcl9zdHJ1Y3QKLQl7Ci0JaW50IHRhZzsKLQlpbnQgY2xhc3M7Ci0JbG9uZyBsZW5ndGg7Ci0JaW50IGluZjsKLQlpbnQgbnVtX2xlZnQ7Ci0JaW50IGRlcHRoOwotCX0gQkVSX0NUWDsKLQotdHlwZWRlZiBzdHJ1Y3QgYmlvX2Jlcl9zdHJ1Y3QKLQl7Ci0JaW50IHRhZzsKLQlpbnQgY2xhc3M7Ci0JbG9uZyBsZW5ndGg7Ci0JaW50IGluZjsKLQotCS8qIG1vc3Qgb2YgdGhlIGZvbGxvd2luZyBhcmUgdXNlZCB3aGVuIGRvaW5nIG5vbi1ibG9ja2luZyBJTyAqLwotCS8qIHJlYWRpbmcgKi8KLQlsb25nIG51bV9sZWZ0OwkvKiBudW1iZXIgb2YgYnl0ZXMgc3RpbGwgdG8gcmVhZC93cml0ZSBpbiBibG9jayAqLwotCWludCBkZXB0aDsJLyogdXNlZCB3aXRoIGluZGVmaW5pdGUgZW5jb2RpbmcuICovCi0JaW50IGZpbmlzaGVkOwkvKiBObyBtb3JlIHJlYWQgZGF0YSAqLwotCi0JLyogd3JpdHRpbmcgKi8gCi0JY2hhciAqd19hZGRyOwotCWludCB3X29mZnNldDsKLQlpbnQgd19sZWZ0OwotCi0JaW50IGJ1Zl9sZW47Ci0JaW50IGJ1Zl9vZmY7Ci0JdW5zaWduZWQgY2hhciBidWZbQkVSX0JVRl9TSVpFXTsKLQl9IEJJT19CRVJfQ1RYOwotCi1zdGF0aWMgQklPX01FVEhPRCBtZXRob2RzX2Jlcj0KLQl7Ci0JQklPX1RZUEVfQ0lQSEVSLCJjaXBoZXIiLAotCWJlcl93cml0ZSwKLQliZXJfcmVhZCwKLQlOVUxMLCAvKiBiZXJfcHV0cywgKi8KLQlOVUxMLCAvKiBiZXJfZ2V0cywgKi8KLQliZXJfY3RybCwKLQliZXJfbmV3LAotCWJlcl9mcmVlLAotCWJlcl9jYWxsYmFja19jdHJsLAotCX07Ci0KLUJJT19NRVRIT0QgKkJJT19mX2Jlcih2b2lkKQotCXsKLQlyZXR1cm4oJm1ldGhvZHNfYmVyKTsKLQl9Ci0KLXN0YXRpYyBpbnQgYmVyX25ldyhCSU8gKmJpKQotCXsKLQlCSU9fQkVSX0NUWCAqY3R4OwotCi0JY3R4PShCSU9fQkVSX0NUWCAqKU9QRU5TU0xfbWFsbG9jKHNpemVvZihCSU9fQkVSX0NUWCkpOwotCWlmIChjdHggPT0gTlVMTCkgcmV0dXJuKDApOwotCi0JbWVtc2V0KChjaGFyICopY3R4LDAsc2l6ZW9mKEJJT19CRVJfQ1RYKSk7Ci0KLQliaS0+aW5pdD0wOwotCWJpLT5wdHI9KGNoYXIgKiljdHg7Ci0JYmktPmZsYWdzPTA7Ci0JcmV0dXJuKDEpOwotCX0KLQotc3RhdGljIGludCBiZXJfZnJlZShCSU8gKmEpCi0JewotCUJJT19CRVJfQ1RYICpiOwotCi0JaWYgKGEgPT0gTlVMTCkgcmV0dXJuKDApOwotCWI9KEJJT19CRVJfQ1RYICopYS0+cHRyOwotCU9QRU5TU0xfY2xlYW5zZShhLT5wdHIsc2l6ZW9mKEJJT19CRVJfQ1RYKSk7Ci0JT1BFTlNTTF9mcmVlKGEtPnB0cik7Ci0JYS0+cHRyPU5VTEw7Ci0JYS0+aW5pdD0wOwotCWEtPmZsYWdzPTA7Ci0JcmV0dXJuKDEpOwotCX0KLQotaW50IGJpb19iZXJfZ2V0X2hlYWRlcihCSU8gKmJpbywgQklPX0JFUl9DVFggKmN0eCkKLQl7Ci0JY2hhciBidWZbNjRdOwotCWludCBpLGosbjsKLQlpbnQgcmV0OwotCXVuc2lnbmVkIGNoYXIgKnA7Ci0JdW5zaWduZWQgbG9uZyBsZW5ndGgKLQlpbnQgdGFnOwotCWludCBjbGFzczsKLQlsb25nIG1heDsKLQotCUJJT19jbGVhcl9yZXRyeV9mbGFncyhiKTsKLQotCS8qIFBhY2sgdGhlIGJ1ZmZlciBkb3duIGlmIHRoZXJlIGlzIGEgaG9sZSBhdCB0aGUgZnJvbnQgKi8KLQlpZiAoY3R4LT5idWZfb2ZmICE9IDApCi0JCXsKLQkJcD1jdHgtPmJ1ZjsKLQkJaj1jdHgtPmJ1Zl9vZmY7Ci0JCW49Y3R4LT5idWZfbGVuLWo7Ci0JCWZvciAoaT0wOyBpPG47IGkrKykKLQkJCXsKLQkJCXBbMF09cFtqXTsKLQkJCXArKzsKLQkJCX0KLQkJY3R4LT5idWZfbGVuLWo7Ci0JCWN0eC0+YnVmX29mZj0wOwotCQl9Ci0KLQkvKiBJZiB0aGVyZSBpcyBtb3JlIHJvb20sIHJlYWQgc29tZSBtb3JlIGRhdGEgKi8KLQlpPUJFUl9CVUZfU0laRS1jdHgtPmJ1Zl9sZW47Ci0JaWYgKGkpCi0JCXsKLQkJaT1CSU9fcmVhZChiaW8tPm5leHRfYmlvLCYoY3R4LT5idWZbY3R4LT5idWZfbGVuXSksaSk7Ci0JCWlmIChpIDw9IDApCi0JCQl7Ci0JCQlCSU9fY29weV9uZXh0X3JldHJ5KGIpOwotCQkJcmV0dXJuKGkpOwotCQkJfQotCQllbHNlCi0JCQljdHgtPmJ1Zl9sZW4rPWk7Ci0JCX0KLQotCW1heD1jdHgtPmJ1Zl9sZW47Ci0JcD1jdHgtPmJ1ZjsKLQlyZXQ9QVNOMV9nZXRfb2JqZWN0KCZwLCZsZW5ndGgsJnRhZywmY2xhc3MsbWF4KTsKLQotCWlmIChyZXQgJiAweDgwKQotCQl7Ci0JCWlmICgoY3R4LT5idWZfbGVuIDwgQkVSX0JVRl9TSVpFKSAmJgotCQkJKEVSUl9HRVRfUkVBU09OKEVSUl9wZWVrX2Vycm9yKCkpID09IEFTTjFfUl9UT09fTE9ORykpCi0JCQl7Ci0JCQlFUlJfY2xlYXJfZXJyb3IoKTsgLyogY2xlYXIgdGhlIGVycm9yICovCi0JCQlCSU9fc2V0X3JldHJ5X3JlYWQoYik7Ci0JCQl9Ci0JCXJldHVybigtMSk7Ci0JCX0KLQotCS8qIFdlIGhhdmUgbm8gZXJyb3IsIHdlIGhhdmUgYSBoZWFkZXIsIHNvIG1ha2UgdXNlIG9mIGl0ICovCi0KLQlpZiAoKGN0eC0+dGFnICA+PSAwKSAmJiAoY3R4LT50YWcgIT0gdGFnKSkKLQkJewotCQlCSU9lcnIoQklPX0ZfQklPX0JFUl9HRVRfSEVBREVSLEJJT19SX1RBR19NSVNNQVRDSCk7Ci0JCXNwcmludGYoYnVmLCJ0YWc9JWQsIGdvdCAlZCIsY3R4LT50YWcsdGFnKTsKLQkJRVJSX2FkZF9lcnJvcl9kYXRhKDEsYnVmKTsKLQkJcmV0dXJuKC0xKTsKLQkJfQotCWlmIChyZXQgJiAweDAxKQotCWlmIChyZXQgJiBWX0FTTjFfQ09OU1RSVUNURUQpCi0JfQotCQotc3RhdGljIGludCBiZXJfcmVhZChCSU8gKmIsIGNoYXIgKm91dCwgaW50IG91dGwpCi0JewotCWludCByZXQ9MCxpLG47Ci0JQklPX0JFUl9DVFggKmN0eDsKLQotCUJJT19jbGVhcl9yZXRyeV9mbGFncyhiKTsKLQotCWlmIChvdXQgPT0gTlVMTCkgcmV0dXJuKDApOwotCWN0eD0oQklPX0JFUl9DVFggKiliLT5wdHI7Ci0KLQlpZiAoKGN0eCA9PSBOVUxMKSB8fCAoYi0+bmV4dF9iaW8gPT0gTlVMTCkpIHJldHVybigwKTsKLQotCWlmIChjdHgtPmZpbmlzaGVkKSByZXR1cm4oMCk7Ci0KLWFnYWluOgotCS8qIEZpcnN0IHNlZSBpZiB3ZSBhcmUgaGFsZiB3YXkgdGhyb3VnaCByZWFkaW5nIGEgYmxvY2sgKi8KLQlpZiAoY3R4LT5udW1fbGVmdCA+IDApCi0JCXsKLQkJaWYgKGN0eC0+bnVtX2xlZnQgPCBvdXRsKQotCQkJbj1jdHgtPm51bV9sZWZ0OwotCQllbHNlCi0JCQluPW91dGw7Ci0JCWk9QklPX3JlYWQoYi0+bmV4dF9iaW8sb3V0LG4pOwotCQlpZiAoaSA8PSAwKQotCQkJewotCQkJQklPX2NvcHlfbmV4dF9yZXRyeShiKTsKLQkJCXJldHVybihpKTsKLQkJCX0KLQkJY3R4LT5udW1fbGVmdC09aTsKLQkJb3V0bC09aTsKLQkJcmV0Kz1pOwotCQlpZiAoY3R4LT5udW1fbGVmdCA8PSAwKQotCQkJewotCQkJY3R4LT5kZXB0aC0tOwotCQkJaWYgKGN0eC0+ZGVwdGggPD0gMCkKLQkJCQljdHgtPmZpbmlzaGVkPTE7Ci0JCQl9Ci0JCWlmIChvdXRsIDw9IDApCi0JCQlyZXR1cm4ocmV0KTsKLQkJZWxzZQotCQkJZ290byBhZ2FpbjsKLQkJfQotCWVsc2UJLyogd2UgbmVlZCB0byByZWFkIGFub3RoZXIgQkVSIGhlYWRlciAqLwotCQl7Ci0JCX0KLQl9Ci0KLXN0YXRpYyBpbnQgYmVyX3dyaXRlKEJJTyAqYiwgY2hhciAqaW4sIGludCBpbmwpCi0JewotCWludCByZXQ9MCxuLGk7Ci0JQklPX0VOQ19DVFggKmN0eDsKLQotCWN0eD0oQklPX0VOQ19DVFggKiliLT5wdHI7Ci0JcmV0PWlubDsKLQotCUJJT19jbGVhcl9yZXRyeV9mbGFncyhiKTsKLQluPWN0eC0+YnVmX2xlbi1jdHgtPmJ1Zl9vZmY7Ci0Jd2hpbGUgKG4gPiAwKQotCQl7Ci0JCWk9QklPX3dyaXRlKGItPm5leHRfYmlvLCYoY3R4LT5idWZbY3R4LT5idWZfb2ZmXSksbik7Ci0JCWlmIChpIDw9IDApCi0JCQl7Ci0JCQlCSU9fY29weV9uZXh0X3JldHJ5KGIpOwotCQkJcmV0dXJuKGkpOwotCQkJfQotCQljdHgtPmJ1Zl9vZmYrPWk7Ci0JCW4tPWk7Ci0JCX0KLQkvKiBhdCB0aGlzIHBvaW50IGFsbCBwZW5kaW5nIGRhdGEgaGFzIGJlZW4gd3JpdHRlbiAqLwotCi0JaWYgKChpbiA9PSBOVUxMKSB8fCAoaW5sIDw9IDApKSByZXR1cm4oMCk7Ci0KLQljdHgtPmJ1Zl9vZmY9MDsKLQl3aGlsZSAoaW5sID4gMCkKLQkJewotCQluPShpbmwgPiBFTkNfQkxPQ0tfU0laRSk/RU5DX0JMT0NLX1NJWkU6aW5sOwotCQlFVlBfQ2lwaGVyVXBkYXRlKCYoY3R4LT5jaXBoZXIpLAotCQkJKHVuc2lnbmVkIGNoYXIgKiljdHgtPmJ1ZiwmY3R4LT5idWZfbGVuLAotCQkJKHVuc2lnbmVkIGNoYXIgKilpbixuKTsKLQkJaW5sLT1uOwotCQlpbis9bjsKLQotCQljdHgtPmJ1Zl9vZmY9MDsKLQkJbj1jdHgtPmJ1Zl9sZW47Ci0JCXdoaWxlIChuID4gMCkKLQkJCXsKLQkJCWk9QklPX3dyaXRlKGItPm5leHRfYmlvLCYoY3R4LT5idWZbY3R4LT5idWZfb2ZmXSksbik7Ci0JCQlpZiAoaSA8PSAwKQotCQkJCXsKLQkJCQlCSU9fY29weV9uZXh0X3JldHJ5KGIpOwotCQkJCXJldHVybihpKTsKLQkJCQl9Ci0JCQluLT1pOwotCQkJY3R4LT5idWZfb2ZmKz1pOwotCQkJfQotCQljdHgtPmJ1Zl9sZW49MDsKLQkJY3R4LT5idWZfb2ZmPTA7Ci0JCX0KLQlCSU9fY29weV9uZXh0X3JldHJ5KGIpOwotCXJldHVybihyZXQpOwotCX0KLQotc3RhdGljIGxvbmcgYmVyX2N0cmwoQklPICpiLCBpbnQgY21kLCBsb25nIG51bSwgY2hhciAqcHRyKQotCXsKLQlCSU8gKmRiaW87Ci0JQklPX0VOQ19DVFggKmN0eCwqZGN0eDsKLQlsb25nIHJldD0xOwotCWludCBpOwotCi0JY3R4PShCSU9fRU5DX0NUWCAqKWItPnB0cjsKLQotCXN3aXRjaCAoY21kKQotCQl7Ci0JY2FzZSBCSU9fQ1RSTF9SRVNFVDoKLQkJY3R4LT5vaz0xOwotCQljdHgtPmZpbmlzaGVkPTA7Ci0JCUVWUF9DaXBoZXJJbml0X2V4KCYoY3R4LT5jaXBoZXIpLE5VTEwsTlVMTCxOVUxMLE5VTEwsCi0JCQljdHgtPmNpcGhlci5iZXJyeXB0KTsKLQkJcmV0PUJJT19jdHJsKGItPm5leHRfYmlvLGNtZCxudW0scHRyKTsKLQkJYnJlYWs7Ci0JY2FzZSBCSU9fQ1RSTF9FT0Y6CS8qIE1vcmUgdG8gcmVhZCAqLwotCQlpZiAoY3R4LT5jb250IDw9IDApCi0JCQlyZXQ9MTsKLQkJZWxzZQotCQkJcmV0PUJJT19jdHJsKGItPm5leHRfYmlvLGNtZCxudW0scHRyKTsKLQkJYnJlYWs7Ci0JY2FzZSBCSU9fQ1RSTF9XUEVORElORzoKLQkJcmV0PWN0eC0+YnVmX2xlbi1jdHgtPmJ1Zl9vZmY7Ci0JCWlmIChyZXQgPD0gMCkKLQkJCXJldD1CSU9fY3RybChiLT5uZXh0X2JpbyxjbWQsbnVtLHB0cik7Ci0JCWJyZWFrOwotCWNhc2UgQklPX0NUUkxfUEVORElORzogLyogTW9yZSB0byByZWFkIGluIGJ1ZmZlciAqLwotCQlyZXQ9Y3R4LT5idWZfbGVuLWN0eC0+YnVmX29mZjsKLQkJaWYgKHJldCA8PSAwKQotCQkJcmV0PUJJT19jdHJsKGItPm5leHRfYmlvLGNtZCxudW0scHRyKTsKLQkJYnJlYWs7Ci0JY2FzZSBCSU9fQ1RSTF9GTFVTSDoKLQkJLyogZG8gYSBmaW5hbCB3cml0ZSAqLwotYWdhaW46Ci0JCXdoaWxlIChjdHgtPmJ1Zl9sZW4gIT0gY3R4LT5idWZfb2ZmKQotCQkJewotCQkJaT1iZXJfd3JpdGUoYixOVUxMLDApOwotCQkJaWYgKGkgPCAwKQotCQkJCXsKLQkJCQlyZXQ9aTsKLQkJCQlicmVhazsKLQkJCQl9Ci0JCQl9Ci0KLQkJaWYgKCFjdHgtPmZpbmlzaGVkKQotCQkJewotCQkJY3R4LT5maW5pc2hlZD0xOwotCQkJY3R4LT5idWZfb2ZmPTA7Ci0JCQlyZXQ9RVZQX0NpcGhlckZpbmFsX2V4KCYoY3R4LT5jaXBoZXIpLAotCQkJCSh1bnNpZ25lZCBjaGFyICopY3R4LT5idWYsCi0JCQkJJihjdHgtPmJ1Zl9sZW4pKTsKLQkJCWN0eC0+b2s9KGludClyZXQ7Ci0JCQlpZiAocmV0IDw9IDApIGJyZWFrOwotCi0JCQkvKiBwdXNoIG91dCB0aGUgYnl0ZXMgKi8KLQkJCWdvdG8gYWdhaW47Ci0JCQl9Ci0JCQotCQkvKiBGaW5hbGx5IGZsdXNoIHRoZSB1bmRlcmx5aW5nIEJJTyAqLwotCQlyZXQ9QklPX2N0cmwoYi0+bmV4dF9iaW8sY21kLG51bSxwdHIpOwotCQlicmVhazsKLQljYXNlIEJJT19DX0dFVF9DSVBIRVJfU1RBVFVTOgotCQlyZXQ9KGxvbmcpY3R4LT5vazsKLQkJYnJlYWs7Ci0JY2FzZSBCSU9fQ19ET19TVEFURV9NQUNISU5FOgotCQlCSU9fY2xlYXJfcmV0cnlfZmxhZ3MoYik7Ci0JCXJldD1CSU9fY3RybChiLT5uZXh0X2JpbyxjbWQsbnVtLHB0cik7Ci0JCUJJT19jb3B5X25leHRfcmV0cnkoYik7Ci0JCWJyZWFrOwotCi0JY2FzZSBCSU9fQ1RSTF9EVVA6Ci0JCWRiaW89KEJJTyAqKXB0cjsKLQkJZGN0eD0oQklPX0VOQ19DVFggKilkYmlvLT5wdHI7Ci0JCW1lbWNweSgmKGRjdHgtPmNpcGhlciksJihjdHgtPmNpcGhlciksc2l6ZW9mKGN0eC0+Y2lwaGVyKSk7Ci0JCWRiaW8tPmluaXQ9MTsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJcmV0PUJJT19jdHJsKGItPm5leHRfYmlvLGNtZCxudW0scHRyKTsKLQkJYnJlYWs7Ci0JCX0KLQlyZXR1cm4ocmV0KTsKLQl9Ci0KLXN0YXRpYyBsb25nIGJlcl9jYWxsYmFja19jdHJsKEJJTyAqYiwgaW50IGNtZCwgdm9pZCAqKCpmcCkoKSkKLQl7Ci0JbG9uZyByZXQ9MTsKLQotCWlmIChiLT5uZXh0X2JpbyA9PSBOVUxMKSByZXR1cm4oMCk7Ci0Jc3dpdGNoIChjbWQpCi0JCXsKLQlkZWZhdWx0OgotCQlyZXQ9QklPX2NhbGxiYWNrX2N0cmwoYi0+bmV4dF9iaW8sY21kLGZwKTsKLQkJYnJlYWs7Ci0JCX0KLQlyZXR1cm4ocmV0KTsKLQl9Ci0KLS8qCi12b2lkIEJJT19zZXRfY2lwaGVyX2N0eChiLGMpCi1CSU8gKmI7Ci1FVlBfQ0lQSEVSX2N0eCAqYzsKLQl7Ci0JaWYgKGIgPT0gTlVMTCkgcmV0dXJuOwotCi0JaWYgKChiLT5jYWxsYmFjayAhPSBOVUxMKSAmJgotCQkoYi0+Y2FsbGJhY2soYixCSU9fQ0JfQ1RSTCwoY2hhciAqKWMsQklPX0NUUkxfU0VULGUsMEwpIDw9IDApKQotCQlyZXR1cm47Ci0KLQliLT5pbml0PTE7Ci0JY3R4PShCSU9fRU5DX0NUWCAqKWItPnB0cjsKLQltZW1jcHkoY3R4LT5jaXBoZXIsYyxzaXplb2YoRVZQX0NJUEhFUl9DVFgpKTsKLQkKLQlpZiAoYi0+Y2FsbGJhY2sgIT0gTlVMTCkKLQkJYi0+Y2FsbGJhY2soYixCSU9fQ0JfQ1RSTCwoY2hhciAqKWMsQklPX0NUUkxfU0VULGUsMUwpOwotCX0KLSovCi0KLXZvaWQgQklPX3NldF9jaXBoZXIoQklPICpiLCBFVlBfQ0lQSEVSICpjLCB1bnNpZ25lZCBjaGFyICprLCB1bnNpZ25lZCBjaGFyICppLAotCSAgICAgaW50IGUpCi0JewotCUJJT19FTkNfQ1RYICpjdHg7Ci0KLQlpZiAoYiA9PSBOVUxMKSByZXR1cm47Ci0KLQlpZiAoKGItPmNhbGxiYWNrICE9IE5VTEwpICYmCi0JCShiLT5jYWxsYmFjayhiLEJJT19DQl9DVFJMLChjaGFyICopYyxCSU9fQ1RSTF9TRVQsZSwwTCkgPD0gMCkpCi0JCXJldHVybjsKLQotCWItPmluaXQ9MTsKLQljdHg9KEJJT19FTkNfQ1RYICopYi0+cHRyOwotCUVWUF9DaXBoZXJJbml0X2V4KCYoY3R4LT5jaXBoZXIpLGMsTlVMTCxrLGksZSk7Ci0JCi0JaWYgKGItPmNhbGxiYWNrICE9IE5VTEwpCi0JCWItPmNhbGxiYWNrKGIsQklPX0NCX0NUUkwsKGNoYXIgKiljLEJJT19DVFJMX1NFVCxlLDFMKTsKLQl9Ci0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy9kZWMuYyBiL2NyeXB0by9wa2NzNy9kZWMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjc1MmVjNS4uMDAwMDAwMAotLS0gYS9jcnlwdG8vcGtjczcvZGVjLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyNDggKzAsMCBAQAotLyogY3J5cHRvL3BrY3M3L3ZlcmlmeS5jICovCi0vKiBDb3B5cmlnaHQgKEMpIDE5OTUtMTk5OCBFcmljIFlvdW5nIChlYXlAY3J5cHRzb2Z0LmNvbSkKLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBwYWNrYWdlIGlzIGFuIFNTTCBpbXBsZW1lbnRhdGlvbiB3cml0dGVuCi0gKiBieSBFcmljIFlvdW5nIChlYXlAY3J5cHRzb2Z0LmNvbSkuCi0gKiBUaGUgaW1wbGVtZW50YXRpb24gd2FzIHdyaXR0ZW4gc28gYXMgdG8gY29uZm9ybSB3aXRoIE5ldHNjYXBlcyBTU0wuCi0gKiAKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIGZvciBjb21tZXJjaWFsIGFuZCBub24tY29tbWVyY2lhbCB1c2UgYXMgbG9uZyBhcwotICogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBhaGVhcmVkIHRvLiAgVGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcHBseSB0byBhbGwgY29kZSBmb3VuZCBpbiB0aGlzIGRpc3RyaWJ1dGlvbiwgYmUgaXQgdGhlIFJDNCwgUlNBLAotICogbGhhc2gsIERFUywgZXRjLiwgY29kZTsgbm90IGp1c3QgdGhlIFNTTCBjb2RlLiAgVGhlIFNTTCBkb2N1bWVudGF0aW9uCi0gKiBpbmNsdWRlZCB3aXRoIHRoaXMgZGlzdHJpYnV0aW9uIGlzIGNvdmVyZWQgYnkgdGhlIHNhbWUgY29weXJpZ2h0IHRlcm1zCi0gKiBleGNlcHQgdGhhdCB0aGUgaG9sZGVyIGlzIFRpbSBIdWRzb24gKHRqaEBjcnlwdHNvZnQuY29tKS4KLSAqIAotICogQ29weXJpZ2h0IHJlbWFpbnMgRXJpYyBZb3VuZydzLCBhbmQgYXMgc3VjaCBhbnkgQ29weXJpZ2h0IG5vdGljZXMgaW4KLSAqIHRoZSBjb2RlIGFyZSBub3QgdG8gYmUgcmVtb3ZlZC4KLSAqIElmIHRoaXMgcGFja2FnZSBpcyB1c2VkIGluIGEgcHJvZHVjdCwgRXJpYyBZb3VuZyBzaG91bGQgYmUgZ2l2ZW4gYXR0cmlidXRpb24KLSAqIGFzIHRoZSBhdXRob3Igb2YgdGhlIHBhcnRzIG9mIHRoZSBsaWJyYXJ5IHVzZWQuCi0gKiBUaGlzIGNhbiBiZSBpbiB0aGUgZm9ybSBvZiBhIHRleHR1YWwgbWVzc2FnZSBhdCBwcm9ncmFtIHN0YXJ0dXAgb3IKLSAqIGluIGRvY3VtZW50YXRpb24gKG9ubGluZSBvciB0ZXh0dWFsKSBwcm92aWRlZCB3aXRoIHRoZSBwYWNrYWdlLgotICogCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQotICogICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgotICogICAgIlRoaXMgcHJvZHVjdCBpbmNsdWRlcyBjcnlwdG9ncmFwaGljIHNvZnR3YXJlIHdyaXR0ZW4gYnkKLSAqICAgICBFcmljIFlvdW5nIChlYXlAY3J5cHRzb2Z0LmNvbSkiCi0gKiAgICBUaGUgd29yZCAnY3J5cHRvZ3JhcGhpYycgY2FuIGJlIGxlZnQgb3V0IGlmIHRoZSByb3VpbmVzIGZyb20gdGhlIGxpYnJhcnkKLSAqICAgIGJlaW5nIHVzZWQgYXJlIG5vdCBjcnlwdG9ncmFwaGljIHJlbGF0ZWQgOi0pLgotICogNC4gSWYgeW91IGluY2x1ZGUgYW55IFdpbmRvd3Mgc3BlY2lmaWMgY29kZSAob3IgYSBkZXJpdmF0aXZlIHRoZXJlb2YpIGZyb20gCi0gKiAgICB0aGUgYXBwcyBkaXJlY3RvcnkgKGFwcGxpY2F0aW9uIGNvZGUpIHlvdSBtdXN0IGluY2x1ZGUgYW4gYWNrbm93bGVkZ2VtZW50OgotICogICAgIlRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSB3cml0dGVuIGJ5IFRpbSBIdWRzb24gKHRqaEBjcnlwdHNvZnQuY29tKSIKLSAqIAotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBFUklDIFlPVU5HIGBgQVMgSVMnJyBBTkQKLSAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKLSAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCi0gKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKLSAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQotICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLSAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKLSAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICogCi0gKiBUaGUgbGljZW5jZSBhbmQgZGlzdHJpYnV0aW9uIHRlcm1zIGZvciBhbnkgcHVibGljYWxseSBhdmFpbGFibGUgdmVyc2lvbiBvcgotICogZGVyaXZhdGl2ZSBvZiB0aGlzIGNvZGUgY2Fubm90IGJlIGNoYW5nZWQuICBpLmUuIHRoaXMgY29kZSBjYW5ub3Qgc2ltcGx5IGJlCi0gKiBjb3BpZWQgYW5kIHB1dCB1bmRlciBhbm90aGVyIGRpc3RyaWJ1dGlvbiBsaWNlbmNlCi0gKiBbaW5jbHVkaW5nIHRoZSBHTlUgUHVibGljIExpY2VuY2UuXQotICovCi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxvcGVuc3NsL2Jpby5oPgotI2luY2x1ZGUgPG9wZW5zc2wveDUwOS5oPgotI2luY2x1ZGUgPG9wZW5zc2wvcGVtLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9lcnIuaD4KLSNpbmNsdWRlIDxvcGVuc3NsL2FzbjEuaD4KLQotaW50IHZlcmlmeV9jYWxsYmFjayhpbnQgb2ssIFg1MDlfU1RPUkVfQ1RYICpjdHgpOwotCi1CSU8gKmJpb19lcnI9TlVMTDsKLQotaW50IG1haW4oYXJnYyxhcmd2KQotaW50IGFyZ2M7Ci1jaGFyICphcmd2W107Ci0JewotCWNoYXIgKmtleWZpbGU9TlVMTDsKLQlCSU8gKmluOwotCUVWUF9QS0VZICpwa2V5OwotCVg1MDkgKng1MDk7Ci0JUEtDUzcgKnA3OwotCVBLQ1M3X1NJR05FUl9JTkZPICpzaTsKLQlYNTA5X1NUT1JFX0NUWCBjZXJ0X2N0eDsKLQlYNTA5X1NUT1JFICpjZXJ0X3N0b3JlPU5VTEw7Ci0JQklPICpkYXRhLCpkZXRhY2hlZD1OVUxMLCpwN2Jpbz1OVUxMOwotCWNoYXIgYnVmWzEwMjQqNF07Ci0JdW5zaWduZWQgY2hhciAqcHA7Ci0JaW50IGkscHJpbnRpdD0wOwotCVNUQUNLX09GKFBLQ1M3X1NJR05FUl9JTkZPKSAqc2s7Ci0KLQlPcGVuU1NMX2FkZF9hbGxfYWxnb3JpdGhtcygpOwotCWJpb19lcnI9QklPX25ld19mcChzdGRlcnIsQklPX05PQ0xPU0UpOwotCi0JZGF0YT1CSU9fbmV3KEJJT19zX2ZpbGUoKSk7Ci0JcHA9TlVMTDsKLQl3aGlsZSAoYXJnYyA+IDEpCi0JCXsKLQkJYXJnYy0tOwotCQlhcmd2Kys7Ci0JCWlmIChzdHJjbXAoYXJndlswXSwiLXAiKSA9PSAwKQotCQkJewotCQkJcHJpbnRpdD0xOwotCQkJfQotCQllbHNlIGlmICgoc3RyY21wKGFyZ3ZbMF0sIi1rIikgPT0gMCkgJiYgKGFyZ2MgPj0gMikpIHsKLQkJCWtleWZpbGUgPSBhcmd2WzFdOwotCQkJYXJnYy09MTsKLQkJCWFyZ3YrPTE7Ci0JCX0gZWxzZSBpZiAoKHN0cmNtcChhcmd2WzBdLCItZCIpID09IDApICYmIChhcmdjID49IDIpKQotCQkJewotCQkJZGV0YWNoZWQ9QklPX25ldyhCSU9fc19maWxlKCkpOwotCQkJaWYgKCFCSU9fcmVhZF9maWxlbmFtZShkZXRhY2hlZCxhcmd2WzFdKSkKLQkJCQlnb3RvIGVycjsKLQkJCWFyZ2MtPTE7Ci0JCQlhcmd2Kz0xOwotCQkJfQotCQllbHNlIGJyZWFrOwotCQl9Ci0KLQkgaWYgKCFCSU9fcmVhZF9maWxlbmFtZShkYXRhLGFyZ3ZbMF0pKSBnb3RvIGVycjsgCi0KLQlpZigha2V5ZmlsZSkgewotCQlmcHJpbnRmKHN0ZGVyciwgIk5vIHByaXZhdGUga2V5IGZpbGUgc3BlY2lmaWVkXG4iKTsKLQkJZ290byBlcnI7Ci0JfQotCi0gICAgICAgIGlmICgoaW49QklPX25ld19maWxlKGtleWZpbGUsInIiKSkgPT0gTlVMTCkgZ290byBlcnI7Ci0gICAgICAgIGlmICgoeDUwOT1QRU1fcmVhZF9iaW9fWDUwOShpbixOVUxMLE5VTEwsTlVMTCkpID09IE5VTEwpIGdvdG8gZXJyOwotICAgICAgICBCSU9fcmVzZXQoaW4pOwotICAgICAgICBpZiAoKHBrZXk9UEVNX3JlYWRfYmlvX1ByaXZhdGVLZXkoaW4sTlVMTCxOVUxMLE5VTEwpKSA9PSBOVUxMKQotCQlnb3RvIGVycjsKLSAgICAgICAgQklPX2ZyZWUoaW4pOwotCi0JaWYgKHBwID09IE5VTEwpCi0JCUJJT19zZXRfZnAoZGF0YSxzdGRpbixCSU9fTk9DTE9TRSk7Ci0KLQotCS8qIExvYWQgdGhlIFBLQ1M3IG9iamVjdCBmcm9tIGEgZmlsZSAqLwotCWlmICgocDc9UEVNX3JlYWRfYmlvX1BLQ1M3KGRhdGEsTlVMTCxOVUxMLE5VTEwpKSA9PSBOVUxMKSBnb3RvIGVycjsKLQotCi0KLQkvKiBUaGlzIHN0dWZmIGlzIGJlaW5nIHNldHVwIGZvciBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24uCi0JICogV2hlbiB1c2luZyBTU0wsIGl0IGNvdWxkIGJlIHJlcGxhY2VkIHdpdGggYSAKLQkgKiBjZXJ0X3N0cmU9U1NMX0NUWF9nZXRfY2VydF9zdG9yZShzc2xfY3R4KTsgKi8KLQljZXJ0X3N0b3JlPVg1MDlfU1RPUkVfbmV3KCk7Ci0JWDUwOV9TVE9SRV9zZXRfZGVmYXVsdF9wYXRocyhjZXJ0X3N0b3JlKTsKLQlYNTA5X1NUT1JFX2xvYWRfbG9jYXRpb25zKGNlcnRfc3RvcmUsTlVMTCwiLi4vLi4vY2VydHMiKTsKLQlYNTA5X1NUT1JFX3NldF92ZXJpZnlfY2JfZnVuYyhjZXJ0X3N0b3JlLHZlcmlmeV9jYWxsYmFjayk7Ci0KLQlFUlJfY2xlYXJfZXJyb3IoKTsKLQotCS8qIFdlIG5lZWQgdG8gcHJvY2VzcyB0aGUgZGF0YSAqLwotCS8qIFdlIGNhbm5vdCBzdXBwb3J0IGRldGFjaGVkIGVuY3J5cHRpb24gKi8KLQlwN2Jpbz1QS0NTN19kYXRhRGVjb2RlKHA3LHBrZXksZGV0YWNoZWQseDUwOSk7Ci0KLQlpZiAocDdiaW8gPT0gTlVMTCkKLQkJewotCQlwcmludGYoInByb2JsZW1zIGRlY29kaW5nXG4iKTsKLQkJZ290byBlcnI7Ci0JCX0KLQotCS8qIFdlIG5vdyBoYXZlIHRvICdyZWFkJyBmcm9tIHA3YmlvIHRvIGNhbGN1bGF0ZSBkaWdlc3RzIGV0Yy4gKi8KLQlmb3IgKDs7KQotCQl7Ci0JCWk9QklPX3JlYWQocDdiaW8sYnVmLHNpemVvZihidWYpKTsKLQkJLyogcHJpbnQgaXQ/ICovCi0JCWlmIChpIDw9IDApIGJyZWFrOwotCQlmd3JpdGUoYnVmLDEsIGksIHN0ZG91dCk7Ci0JCX0KLQotCS8qIFdlIGNhbiBub3cgdmVyaWZ5IHNpZ25hdHVyZXMgKi8KLQlzaz1QS0NTN19nZXRfc2lnbmVyX2luZm8ocDcpOwotCWlmIChzayA9PSBOVUxMKQotCQl7Ci0JCWZwcmludGYoc3RkZXJyLCAidGhlcmUgYXJlIG5vIHNpZ25hdHVyZXMgb24gdGhpcyBkYXRhXG4iKTsKLQkJfQotCWVsc2UKLQkJewotCQkvKiBPaywgZmlyc3Qgd2UgbmVlZCB0bywgZm9yIGVhY2ggc3ViamVjdCBlbnRyeSwKLQkJICogc2VlIGlmIHdlIGNhbiB2ZXJpZnkgKi8KLQkJRVJSX2NsZWFyX2Vycm9yKCk7Ci0JCWZvciAoaT0wOyBpPHNrX1BLQ1M3X1NJR05FUl9JTkZPX251bShzayk7IGkrKykKLQkJCXsKLQkJCXNpPXNrX1BLQ1M3X1NJR05FUl9JTkZPX3ZhbHVlKHNrLGkpOwotCQkJaT1QS0NTN19kYXRhVmVyaWZ5KGNlcnRfc3RvcmUsJmNlcnRfY3R4LHA3YmlvLHA3LHNpKTsKLQkJCWlmIChpIDw9IDApCi0JCQkJZ290byBlcnI7Ci0JCQllbHNlCi0JCQkJZnByaW50ZihzdGRlcnIsIlNpZ25hdHVyZSB2ZXJpZmllZFxuIik7Ci0JCQl9Ci0JCX0KLQlYNTA5X1NUT1JFX2ZyZWUoY2VydF9zdG9yZSk7Ci0KLQlleGl0KDApOwotZXJyOgotCUVSUl9sb2FkX2NyeXB0b19zdHJpbmdzKCk7Ci0JRVJSX3ByaW50X2Vycm9yc19mcChzdGRlcnIpOwotCWV4aXQoMSk7Ci0JfQotCi0vKiBzaG91bGQgYmUgWDUwOSAqIGJ1dCB3ZSBjYW4ganVzdCBoYXZlIHRoZW0gYXMgY2hhciAqLiAqLwotaW50IHZlcmlmeV9jYWxsYmFjayhpbnQgb2ssIFg1MDlfU1RPUkVfQ1RYICpjdHgpCi0JewotCWNoYXIgYnVmWzI1Nl07Ci0JWDUwOSAqZXJyX2NlcnQ7Ci0JaW50IGVycixkZXB0aDsKLQotCWVycl9jZXJ0PVg1MDlfU1RPUkVfQ1RYX2dldF9jdXJyZW50X2NlcnQoY3R4KTsKLQllcnI9CVg1MDlfU1RPUkVfQ1RYX2dldF9lcnJvcihjdHgpOwotCWRlcHRoPQlYNTA5X1NUT1JFX0NUWF9nZXRfZXJyb3JfZGVwdGgoY3R4KTsKLQotCVg1MDlfTkFNRV9vbmVsaW5lKFg1MDlfZ2V0X3N1YmplY3RfbmFtZShlcnJfY2VydCksYnVmLDI1Nik7Ci0JQklPX3ByaW50ZihiaW9fZXJyLCJkZXB0aD0lZCAlc1xuIixkZXB0aCxidWYpOwotCWlmICghb2spCi0JCXsKLQkJQklPX3ByaW50ZihiaW9fZXJyLCJ2ZXJpZnkgZXJyb3I6bnVtPSVkOiVzXG4iLGVyciwKLQkJCVg1MDlfdmVyaWZ5X2NlcnRfZXJyb3Jfc3RyaW5nKGVycikpOwotCQlpZiAoZGVwdGggPCA2KQotCQkJewotCQkJb2s9MTsKLQkJCVg1MDlfU1RPUkVfQ1RYX3NldF9lcnJvcihjdHgsWDUwOV9WX09LKTsKLQkJCX0KLQkJZWxzZQotCQkJewotCQkJb2s9MDsKLQkJCVg1MDlfU1RPUkVfQ1RYX3NldF9lcnJvcihjdHgsWDUwOV9WX0VSUl9DRVJUX0NIQUlOX1RPT19MT05HKTsKLQkJCX0KLQkJfQotCXN3aXRjaCAoY3R4LT5lcnJvcikKLQkJewotCWNhc2UgWDUwOV9WX0VSUl9VTkFCTEVfVE9fR0VUX0lTU1VFUl9DRVJUOgotCQlYNTA5X05BTUVfb25lbGluZShYNTA5X2dldF9pc3N1ZXJfbmFtZShjdHgtPmN1cnJlbnRfY2VydCksYnVmLDI1Nik7Ci0JCUJJT19wcmludGYoYmlvX2VyciwiaXNzdWVyPSAlc1xuIixidWYpOwotCQlicmVhazsKLQljYXNlIFg1MDlfVl9FUlJfQ0VSVF9OT1RfWUVUX1ZBTElEOgotCWNhc2UgWDUwOV9WX0VSUl9FUlJPUl9JTl9DRVJUX05PVF9CRUZPUkVfRklFTEQ6Ci0JCUJJT19wcmludGYoYmlvX2Vyciwibm90QmVmb3JlPSIpOwotCQlBU04xX1VUQ1RJTUVfcHJpbnQoYmlvX2VycixYNTA5X2dldF9ub3RCZWZvcmUoY3R4LT5jdXJyZW50X2NlcnQpKTsKLQkJQklPX3ByaW50ZihiaW9fZXJyLCJcbiIpOwotCQlicmVhazsKLQljYXNlIFg1MDlfVl9FUlJfQ0VSVF9IQVNfRVhQSVJFRDoKLQljYXNlIFg1MDlfVl9FUlJfRVJST1JfSU5fQ0VSVF9OT1RfQUZURVJfRklFTEQ6Ci0JCUJJT19wcmludGYoYmlvX2Vyciwibm90QWZ0ZXI9Iik7Ci0JCUFTTjFfVVRDVElNRV9wcmludChiaW9fZXJyLFg1MDlfZ2V0X25vdEFmdGVyKGN0eC0+Y3VycmVudF9jZXJ0KSk7Ci0JCUJJT19wcmludGYoYmlvX2VyciwiXG4iKTsKLQkJYnJlYWs7Ci0JCX0KLQlCSU9fcHJpbnRmKGJpb19lcnIsInZlcmlmeSByZXR1cm46JWRcbiIsb2spOwotCXJldHVybihvayk7Ci0JfQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L2Rlcy5wZW0gYi9jcnlwdG8vcGtjczcvZGVzLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjJkMTY1Ny4uMDAwMDAwMAotLS0gYS9jcnlwdG8vcGtjczcvZGVzLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLQotTUlBR0NTcUdTSWIzRFFFSEE2Q0FNSUFDQVFBeGdnSG1NSUh3QWdFQU1JR1pNSUdTTVFzd0NRWURWUVFHRXdKQlZURVRNQkVHCi1BMVVFQ0JNS1VYVmxaVzV6YkdGdVpERVJNQThHQTFVRUJ4TUlRbkpwYzJKaGJtVXhHakFZQmdOVkJBb1RFVU55ZVhCMGMyOW0KLWRDQlFkSGtnVEhSa01TSXdJQVlEVlFRTEV4bEVSVTFQVGxOVVVrRlVTVTlPSUVGT1JDQlVSVk5VU1U1SE1Sc3dHUVlEVlFRRAotRXhKRVJVMVBJRnBGVWs4Z1ZrRk1WVVVnUTBFQ0FnUitNQTBHQ1NxR1NJYjNEUUVCQVFVQUJFQzJ2WEkxeFFEVzZsVUhNM3pRCi0vOXVCRUJPTzVBM1R0a3JrbEFYcTd2MDFnc0lDMjF0NTJxU2szNlJFWFkrc2xoTlowT1EzNDl0Z2tUc29FVEhGTG9Fd01JSHcKLUFnRUFNSUdaTUlHU01Rc3dDUVlEVlFRR0V3SkJWVEVUTUJFR0ExVUVDQk1LVVhWbFpXNXpiR0Z1WkRFUk1BOEdBMVVFQnhNSQotUW5KcGMySmhibVV4R2pBWUJnTlZCQW9URVVOeWVYQjBjMjltZENCUWRIa2dUSFJrTVNJd0lBWURWUVFMRXhsRVJVMVBUbE5VCi1Va0ZVU1U5T0lFRk9SQ0JVUlZOVVNVNUhNUnN3R1FZRFZRUURFeEpFUlUxUElGcEZVazhnVmtGTVZVVWdRMEVDQWdSOU1BMEcKLUNTcUdTSWIzRFFFQkFRVUFCRUI4dWp4YmFieFhVWUpob3B1RG0zb0RxNEpOcVg2SW80cDNybytTaHFmSW5kc1hUWjF2NWEyTgotV3RMTENXbEhuL2hhYmpCd1ovRGdRZ2NLQVNiWjdReE5NSUFHQ1NxR1NJYjNEUUVIQVRBYUJnZ3Foa2lHOXcwREFqQU9BZ0lBCi1vQVFJYnNMNXYxd1g5OEtnZ0FRb0FhSjRXSG02OGZYWTFXRTVPSWpmVkJJRHBPMUsraThkbUtoam5BanJqb3laOUJ3YzhyREwKLWxnUWc0Q1hiODA1aDV4bCtHZnZTd1VhSEpheXRlMW0ybWNPaHMzSjJZeXFiUStNRUlNSWlKUWNjbWhPM29ES20zNkNGdllSOAotNVBqcGNsVmNaeVgybmdid1BGTW5CQWd5MGNsT0FFNlVLQUFBQUFBQUFBQUFBQUE9Ci0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy9kb2MgYi9jcnlwdG8vcGtjczcvZG9jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMmU4YjdiLi4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy9kb2MKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1pbnQgUEtDUzdfc2V0X2NvbnRlbnRfdHlwZShQS0NTNyAqcDcsIGludCB0eXBlKTsKLUNhbGwgdG8gc2V0IHRoZSB0eXBlIG9mIFBLQ1M3IG9iamVjdCB3ZSBhcmUgd29ya2luZyBvbgotCi1pbnQgUEtDUzdfU0lHTkVSX0lORk9fc2V0KFBLQ1M3X1NJR05FUl9JTkZPICpwN2ksIFg1MDkgKng1MDksIEVWUF9QS0VZICpwa2V5LAotCUVWUF9NRCAqZGdzdCk7Ci1Vc2UgdGhpcyB0byBzZXR1cCBhIHNpZ25lciBpbmZvCi1UaGVyZSB3aWxsIGFsc28gYmUgZnVuY3Rpb25zIHRvIGFkZCBzaWduZWQgYW5kIHVuc2lnbmVkIGF0dHJpYnV0ZXMuCi0KLWludCBQS0NTN19hZGRfc2lnbmVyKFBLQ1M3ICpwNywgUEtDUzdfU0lHTkVSX0lORk8gKnA3aSk7Ci1BZGQgYSBzaWduZXIgaW5mbyB0byB0aGUgY29udGVudC4KLQotaW50IFBLQ1M3X2FkZF9jZXJ0aWZpY2FlKFBLQ1M3ICpwNywgWDUwOSAqeDUwOSk7Ci1pbnQgUEtDUzdfYWRkX2NybChQS0NTNyAqcDcsIFg1MDlfQ1JMICp4NTA5KTsKLQotLS0tLQotCi1wNz1QS0NTN19uZXcoKTsKLVBLQ1M3X3NldF9jb250ZW50X3R5cGUocDcsTklEX3BrY3M3X3NpZ25lZCk7Ci0KLXNpZ25lcj1QS0NTN19TSU5HTkVSX0lORk9fbmV3KCk7Ci1QS0NTN19TSUdORVJfSU5GT19zZXQoc2lnbmVyLHg1MDkscGtleSxFVlBfbWQ1KCkpOwotUEtDUzdfYWRkX3NpZ25lcihweSxzaWduZXIpOwotCi13ZSBhcmUgbm93IHNldHVwLgpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L2VuYy5jIGIvY3J5cHRvL3BrY3M3L2VuYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NDE3ZjhhLi4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy9lbmMuYworKysgL2Rldi9udWxsCkBAIC0xLDE3NCArMCwwIEBACi0vKiBjcnlwdG8vcGtjczcvZW5jLmMgKi8KLS8qIENvcHlyaWdodCAoQykgMTk5NS0xOTk4IEVyaWMgWW91bmcgKGVheUBjcnlwdHNvZnQuY29tKQotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIHBhY2thZ2UgaXMgYW4gU1NMIGltcGxlbWVudGF0aW9uIHdyaXR0ZW4KLSAqIGJ5IEVyaWMgWW91bmcgKGVheUBjcnlwdHNvZnQuY29tKS4KLSAqIFRoZSBpbXBsZW1lbnRhdGlvbiB3YXMgd3JpdHRlbiBzbyBhcyB0byBjb25mb3JtIHdpdGggTmV0c2NhcGVzIFNTTC4KLSAqIAotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgZm9yIGNvbW1lcmNpYWwgYW5kIG5vbi1jb21tZXJjaWFsIHVzZSBhcyBsb25nIGFzCi0gKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIGFoZWFyZWQgdG8uICBUaGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFwcGx5IHRvIGFsbCBjb2RlIGZvdW5kIGluIHRoaXMgZGlzdHJpYnV0aW9uLCBiZSBpdCB0aGUgUkM0LCBSU0EsCi0gKiBsaGFzaCwgREVTLCBldGMuLCBjb2RlOyBub3QganVzdCB0aGUgU1NMIGNvZGUuICBUaGUgU1NMIGRvY3VtZW50YXRpb24KLSAqIGluY2x1ZGVkIHdpdGggdGhpcyBkaXN0cmlidXRpb24gaXMgY292ZXJlZCBieSB0aGUgc2FtZSBjb3B5cmlnaHQgdGVybXMKLSAqIGV4Y2VwdCB0aGF0IHRoZSBob2xkZXIgaXMgVGltIEh1ZHNvbiAodGpoQGNyeXB0c29mdC5jb20pLgotICogCi0gKiBDb3B5cmlnaHQgcmVtYWlucyBFcmljIFlvdW5nJ3MsIGFuZCBhcyBzdWNoIGFueSBDb3B5cmlnaHQgbm90aWNlcyBpbgotICogdGhlIGNvZGUgYXJlIG5vdCB0byBiZSByZW1vdmVkLgotICogSWYgdGhpcyBwYWNrYWdlIGlzIHVzZWQgaW4gYSBwcm9kdWN0LCBFcmljIFlvdW5nIHNob3VsZCBiZSBnaXZlbiBhdHRyaWJ1dGlvbgotICogYXMgdGhlIGF1dGhvciBvZiB0aGUgcGFydHMgb2YgdGhlIGxpYnJhcnkgdXNlZC4KLSAqIFRoaXMgY2FuIGJlIGluIHRoZSBmb3JtIG9mIGEgdGV4dHVhbCBtZXNzYWdlIGF0IHByb2dyYW0gc3RhcnR1cCBvcgotICogaW4gZG9jdW1lbnRhdGlvbiAob25saW5lIG9yIHRleHR1YWwpIHByb3ZpZGVkIHdpdGggdGhlIHBhY2thZ2UuCi0gKiAKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCi0gKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6Ci0gKiAgICAiVGhpcyBwcm9kdWN0IGluY2x1ZGVzIGNyeXB0b2dyYXBoaWMgc29mdHdhcmUgd3JpdHRlbiBieQotICogICAgIEVyaWMgWW91bmcgKGVheUBjcnlwdHNvZnQuY29tKSIKLSAqICAgIFRoZSB3b3JkICdjcnlwdG9ncmFwaGljJyBjYW4gYmUgbGVmdCBvdXQgaWYgdGhlIHJvdWluZXMgZnJvbSB0aGUgbGlicmFyeQotICogICAgYmVpbmcgdXNlZCBhcmUgbm90IGNyeXB0b2dyYXBoaWMgcmVsYXRlZCA6LSkuCi0gKiA0LiBJZiB5b3UgaW5jbHVkZSBhbnkgV2luZG93cyBzcGVjaWZpYyBjb2RlIChvciBhIGRlcml2YXRpdmUgdGhlcmVvZikgZnJvbSAKLSAqICAgIHRoZSBhcHBzIGRpcmVjdG9yeSAoYXBwbGljYXRpb24gY29kZSkgeW91IG11c3QgaW5jbHVkZSBhbiBhY2tub3dsZWRnZW1lbnQ6Ci0gKiAgICAiVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIHdyaXR0ZW4gYnkgVGltIEh1ZHNvbiAodGpoQGNyeXB0c29mdC5jb20pIgotICogCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEVSSUMgWU9VTkcgYGBBUyBJUycnIEFORAotICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKLSAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0gKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwotICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCi0gKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAotICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQotICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotICogU1VDSCBEQU1BR0UuCi0gKiAKLSAqIFRoZSBsaWNlbmNlIGFuZCBkaXN0cmlidXRpb24gdGVybXMgZm9yIGFueSBwdWJsaWNhbGx5IGF2YWlsYWJsZSB2ZXJzaW9uIG9yCi0gKiBkZXJpdmF0aXZlIG9mIHRoaXMgY29kZSBjYW5ub3QgYmUgY2hhbmdlZC4gIGkuZS4gdGhpcyBjb2RlIGNhbm5vdCBzaW1wbHkgYmUKLSAqIGNvcGllZCBhbmQgcHV0IHVuZGVyIGFub3RoZXIgZGlzdHJpYnV0aW9uIGxpY2VuY2UKLSAqIFtpbmNsdWRpbmcgdGhlIEdOVSBQdWJsaWMgTGljZW5jZS5dCi0gKi8KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPG9wZW5zc2wvYmlvLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC94NTA5Lmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9wZW0uaD4KLSNpbmNsdWRlIDxvcGVuc3NsL2Vyci5oPgotCi1pbnQgbWFpbihhcmdjLGFyZ3YpCi1pbnQgYXJnYzsKLWNoYXIgKmFyZ3ZbXTsKLQl7Ci0JWDUwOSAqeDUwOTsKLQlQS0NTNyAqcDc7Ci0JQklPICppbjsKLQlCSU8gKmRhdGEsKnA3YmlvOwotCWNoYXIgYnVmWzEwMjQqNF07Ci0JaW50IGk7Ci0JaW50IG5vZGV0YWNoPTE7Ci0JY2hhciAqa2V5ZmlsZSA9IE5VTEw7Ci0JY29uc3QgRVZQX0NJUEhFUiAqY2lwaGVyPU5VTEw7Ci0JU1RBQ0tfT0YoWDUwOSkgKnJlY2lwcz1OVUxMOwotCi0JT3BlblNTTF9hZGRfYWxsX2FsZ29yaXRobXMoKTsKLQotCWRhdGE9QklPX25ldyhCSU9fc19maWxlKCkpOwotCXdoaWxlKGFyZ2MgPiAxKQotCQl7Ci0JCWlmIChzdHJjbXAoYXJndlsxXSwiLW5kIikgPT0gMCkKLQkJCXsKLQkJCW5vZGV0YWNoPTE7Ci0JCQlhcmd2Kys7IGFyZ2MtLTsKLQkJCX0KLQkJZWxzZSBpZiAoKHN0cmNtcChhcmd2WzFdLCItYyIpID09IDApICYmIChhcmdjID49IDIpKSB7Ci0JCQlpZighKGNpcGhlciA9IEVWUF9nZXRfY2lwaGVyYnluYW1lKGFyZ3ZbMl0pKSkgewotCQkJCWZwcmludGYoc3RkZXJyLCAiVW5rbm93biBjaXBoZXIgJXNcbiIsIGFyZ3ZbMl0pOwotCQkJCWdvdG8gZXJyOwotCQkJfQotCQkJYXJnYy09MjsKLQkJCWFyZ3YrPTI7Ci0JCX0gZWxzZSBpZiAoKHN0cmNtcChhcmd2WzFdLCItayIpID09IDApICYmIChhcmdjID49IDIpKSB7Ci0JCQlrZXlmaWxlID0gYXJndlsyXTsKLQkJCWFyZ2MtPTI7Ci0JCQlhcmd2Kz0yOwotCQkJaWYgKCEoaW49QklPX25ld19maWxlKGtleWZpbGUsInIiKSkpIGdvdG8gZXJyOwotCQkJaWYgKCEoeDUwOT1QRU1fcmVhZF9iaW9fWDUwOShpbixOVUxMLE5VTEwsTlVMTCkpKQotCQkJCWdvdG8gZXJyOwotCQkJaWYoIXJlY2lwcykgcmVjaXBzID0gc2tfWDUwOV9uZXdfbnVsbCgpOwotCQkJc2tfWDUwOV9wdXNoKHJlY2lwcywgeDUwOSk7Ci0JCQlCSU9fZnJlZShpbik7Ci0JCX0gZWxzZSBicmVhazsKLQl9Ci0KLQlpZighcmVjaXBzKSB7Ci0JCWZwcmludGYoc3RkZXJyLCAiTm8gcmVjaXBpZW50c1xuIik7Ci0JCWdvdG8gZXJyOwotCX0KLQotCWlmICghQklPX3JlYWRfZmlsZW5hbWUoZGF0YSxhcmd2WzFdKSkgZ290byBlcnI7Ci0KLQlwNz1QS0NTN19uZXcoKTsKLSNpZiAwCi0JQklPX3Jlc2V0KGluKTsKLQlpZiAoKHBrZXk9UEVNX3JlYWRfYmlvX1ByaXZhdGVLZXkoaW4sTlVMTCxOVUxMKSkgPT0gTlVMTCkgZ290byBlcnI7Ci0JQklPX2ZyZWUoaW4pOwotCVBLQ1M3X3NldF90eXBlKHA3LE5JRF9wa2NzN19zaWduZWRBbmRFbnZlbG9wZWQpOwotCSAKLQlpZiAoUEtDUzdfYWRkX3NpZ25hdHVyZShwNyx4NTA5LHBrZXksRVZQX3NoYTEoKSkgPT0gTlVMTCkgZ290byBlcnI7Ci0JLyogd2UgbWF5IHdhbnQgdG8gYWRkIG1vcmUgKi8KLQlQS0NTN19hZGRfY2VydGlmaWNhdGUocDcseDUwOSk7Ci0jZWxzZQotCVBLQ1M3X3NldF90eXBlKHA3LE5JRF9wa2NzN19lbnZlbG9wZWQpOwotI2VuZGlmCi0JaWYoIWNpcGhlcikJewotI2lmbmRlZiBPUEVOU1NMX05PX0RFUwotCQljaXBoZXIgPSBFVlBfZGVzX2VkZTNfY2JjKCk7Ci0jZWxzZQotCQlmcHJpbnRmKHN0ZGVyciwgIk5vIGNpcGhlciBzZWxlY3RlZFxuIik7Ci0JCWdvdG8gZXJyOwotI2VuZGlmCi0JfQotCi0JaWYgKCFQS0NTN19zZXRfY2lwaGVyKHA3LGNpcGhlcikpIGdvdG8gZXJyOwotCWZvcihpID0gMDsgaSA8IHNrX1g1MDlfbnVtKHJlY2lwcyk7IGkrKykgewotCQlpZiAoIVBLQ1M3X2FkZF9yZWNpcGllbnQocDcsc2tfWDUwOV92YWx1ZShyZWNpcHMsIGkpKSkgZ290byBlcnI7Ci0JfQotCXNrX1g1MDlfcG9wX2ZyZWUocmVjaXBzLCBYNTA5X2ZyZWUpOwotCi0JLyogU2V0IHRoZSBjb250ZW50IG9mIHRoZSBzaWduZWQgdG8gJ2RhdGEnICovCi0JLyogUEtDUzdfY29udGVudF9uZXcocDcsTklEX3BrY3M3X2RhdGEpOyBub3QgdXNlZCBpbiBlbnZlbG9wZSAqLwotCi0JLyogY291bGQgYmUgdXNlZCwgYnV0IG5vdCBpbiB0aGlzIHZlcnNpb24gOi0pCi0JaWYgKCFub2RldGFjaCkgUEtDUzdfc2V0X2RldGFjaGVkKHA3LDEpOwotCSovCi0KLQlpZiAoKHA3YmlvPVBLQ1M3X2RhdGFJbml0KHA3LE5VTEwpKSA9PSBOVUxMKSBnb3RvIGVycjsKLQotCWZvciAoOzspCi0JCXsKLQkJaT1CSU9fcmVhZChkYXRhLGJ1ZixzaXplb2YoYnVmKSk7Ci0JCWlmIChpIDw9IDApIGJyZWFrOwotCQlCSU9fd3JpdGUocDdiaW8sYnVmLGkpOwotCQl9Ci0JQklPX2ZsdXNoKHA3YmlvKTsKLQotCWlmICghUEtDUzdfZGF0YUZpbmFsKHA3LHA3YmlvKSkgZ290byBlcnI7Ci0JQklPX2ZyZWUocDdiaW8pOwotCi0JUEVNX3dyaXRlX1BLQ1M3KHN0ZG91dCxwNyk7Ci0JUEtDUzdfZnJlZShwNyk7Ci0KLQlleGl0KDApOwotZXJyOgotCUVSUl9sb2FkX2NyeXB0b19zdHJpbmdzKCk7Ci0JRVJSX3ByaW50X2Vycm9yc19mcChzdGRlcnIpOwotCWV4aXQoMSk7Ci0JfQotCmRpZmYgLS1naXQgYS9jcnlwdG8vcGtjczcvZXMxLnBlbSBiL2NyeXB0by9wa2NzNy9lczEucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NzExMmEyLi4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy9lczEucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotLS0tLS1CRUdJTiBQS0NTNy0tLS0tCi1NSUFHQ1NxR1NJYjNEUUVIQTZDQU1JQUNBUUF4Z2dIbU1JSHdBZ0VBTUlHWk1JR1NNUXN3Q1FZRFZRUUdFd0pCVlRFVE1CRUcKLUExVUVDQk1LVVhWbFpXNXpiR0Z1WkRFUk1BOEdBMVVFQnhNSVFuSnBjMkpoYm1VeEdqQVlCZ05WQkFvVEVVTnllWEIwYzI5bQotZENCUWRIa2dUSFJrTVNJd0lBWURWUVFMRXhsRVJVMVBUbE5VVWtGVVNVOU9JRUZPUkNCVVJWTlVTVTVITVJzd0dRWURWUVFECi1FeEpFUlUxUElGcEZVazhnVmtGTVZVVWdRMEVDQWdSdU1BMEdDU3FHU0liM0RRRUJBUVVBQkVEV2FrMHkvNVhaSmhRSmVDTG8KLUtFQ2NIWGtURWJqellrWU5ISWluYmlQbVJLNFFiTmZzOXoybUEzei9jMnlrUTRlQXFGUjJqeU5yVU1OLytJNVhFaXY2TUlIdwotQWdFQU1JR1pNSUdTTVFzd0NRWURWUVFHRXdKQlZURVRNQkVHQTFVRUNCTUtVWFZsWlc1emJHRnVaREVSTUE4R0ExVUVCeE1JCi1RbkpwYzJKaGJtVXhHakFZQmdOVkJBb1RFVU55ZVhCMGMyOW1kQ0JRZEhrZ1RIUmtNU0l3SUFZRFZRUUxFeGxFUlUxUFRsTlUKLVVrRlVTVTlPSUVGT1JDQlVSVk5VU1U1SE1Sc3dHUVlEVlFRREV4SkVSVTFQSUZwRlVrOGdWa0ZNVlVVZ1EwRUNBZ1I5TUEwRwotQ1NxR1NJYjNEUUVCQVFVQUJFQVdnOStLZ3RDamM3N0pkajFWZTR3R2dIalZIYmJTWUVBMVpxS0ZEb2kxNXZTcjloZnBIbUM0Ci15Y1p6Y1JvMTZKa1Rmb2xlZmlIWnpteWpWejk0dlNONk1JQUdDU3FHU0liM0RRRUhBVEFhQmdncWhraUc5dzBEQWpBT0FnSUEKLW9BUUk3WDRUazRtY2JWNmdnQVNCc0hsMW1DYUozUmhYV2xOUENnQ1JVNTNkN001eDZURFpSa3Z3ZHRkdlc5Nm0xbHVwVDAzRgotWHRvbmtCcWs3b01rSDdrR2ZzNS9SRVFPUGp4MFFFMkl4bWd0MVczc3p1bTgyRVp3QTdwWk5wcGNyYUs3Vy9vZHcvN2JZWk8rCi1JSTNIUG1Sa2xFMk45cWl1MUxQYVBVc25Zb2drTzZTZW5ueWVMNXRaMzgydkJ3ZUwvOHBuRzBxc2JUMU9CYjY1ditsbG5zalQKLXBhMVQvcCtmSXgvaUpKR0U2SzlmWUZva0M2Z1hMUTZvelhSZE91NW9CREI4bVBDWVl2QXFLeWNpZE0vTXJHR1VrcEV0UzRmMAotbFMzMVB3UWk1WVRpbThJZzMvVE93VnBQWDMyaTQ2RlR1RUlFSU1Ia0QvT3ZwZndDQ3pYVUhISm5LbktVQVV2SXNTWTN2R0JzCi04ZXpwVURmQkJCajlMSER5MzJoWjJ0UWlsa0RlZlA1Vk0yTExkcldnYW1ZRWdmaXlJVFF2bjA4VWw1bFFPUXhiRktCaGVGcTUKLW90Q0NONE1SK3c1ZXExMnhRdTZ5K2Y5ejAxNTlhZzJydTg3RDBsTHRVdFhYdENFTGJPMW5Va1Qyc0oway9pRHM5VE9YcjZDeAotZ28xWEtZaG84M2hsa1hZaUN0ZVZpemRBYmdWR05zTlJENHd0SWRhanNvckVUL0x1SkVDZ3AxMVllTDl3MWRsREIwSExFWmZpCi1YQ3NVcGhINGpHYWdiYTNoRGVVU2libmpTaUpsTjB1a2Z1UXVyQkJiSTJVa0JBdWppRUF1YktQbjdDMUZaSlJTdzZDUFBYNXQKLUtFcG1jcVQxSk5rNkxPOEpzNi8xc0NtbUJoMVZHQ3kxK0V1VEk5SjFwN0RhZ2Y0blE4Y0hpdG9DUnBIdUtabEZIblp5djd0dwotUm4vS09oSGFZUDJWekFoNDBnUUl2S01BQVdoOW9Gc0VFSU13SW9PbUx3TEg1d2YrOFFkYkRob0VDSDhId1p0OWExMmRCQWpMCi1yNGoyemx2dGZnUUl0N25tRU0zd3oxRUVDS2xjM0VJeTFpckNCQkNBS0lOY2VybUszQStqSTZJU04yUnpCRkEzZHNoL3h3TXUKLWw2MWFXTUJCWnpFei9TRjkyazZuMzVLWmhDQzBkNmZJVkMvMVdNdjBmbkN3UThvRUR5blNyZTIxNlZFRmlZS0JhUUxKZTVvLwotbVRBeEM3SHQzZ29YbnVjK2kxRkl0T2tMcmdSSS93eXZUSUNFbjJXc05aaU1BRG5HYWVlMmJxUG5Vb3BvK1ZNR2V4SkV0Q1BrCi1sMFpObERKR3F1UERrcFV3YUV0ZWNWWnpDTnlWUFl5eUY0Si9sOHJtR0RoRGRZVUlDOElLQkVnL2lwL0UwQnV1YkJMV1ZidisKLUhSbDRRcm5HcHlDeWVYUlhYSzYwM1FQM3NUMVpiYm0xdjVwSS9sb09oVkhpNzI0TG10WEhTeXA1cXY5TURjeEUxUG9YMTBMWQotZ0JSdGx3d0VTUGVDRjhiSzVqazR4SVFNaEs1Tk1IajFZMUtRV1RaOU5HSVRCTDRoalJxMnFwNFFrNUdJcEdnT1ZQb3BBdUNvCi1USXlQaWtwcUJSTnRMU1BSU3NEczZRUFVQeldCaDZKZ3h3UlFibG5ES0tVa3hVY25KaUQ0aTlRdEdhL1phYk1uNEt4dE5PQkwKLTVKU2gxbkprYUxYQ1pZMDcwMTMxV1dQQUJ5TGNkNVRpWHE4eDg0cG16VjVOTms0dGlNcG9YaEpOc3g4ZTRyc2tRUWxLZDZNRQotU0NlMmVZREhLY0tQWDNXSmJVemhySlNROTIvYVduSTJpVVk4V1Era1NOeWlaMlFVanl1VWc5WjY2Zy8wZDJTVGx2UE9CSFQvCi15NU9EUDJDd2JjV1g0UW1DYlVjOVRUNjZmUVJJclJWdXd2dE9mblV1ZXlHZ1loSjNIcEFKZlZhQi83a2FwNWJqN0ZpL2F6VzQKLTlKRGZkMWJDL1c5aDBLeWs3Uk8yZ3h2RTBoSUhjMjZtWkpIVG05TU5QNUQzMjhNbk0yTWRCRWpLalFCdGdycCtsRklpaTdNUAotbkdIRlRLVWtHNFdBSVpKQ2YvQ3NUK3A2L1NXMHFHNzFNZS9ZY1N3NVNUQjI0aithK0hnTVY4UlZJZVVsa1A0ejBJV1dyU29CCi1HaDRkL1owRVVNQ1ZIcy9IWi9iV2dpeWh0SHB2dVZBemlkbThEODFwMUxKNUJRWDUvNWYvbStxNStmUy9ucEwyN2RURWJOcXMKLUxTQjZpajNNWkFpN0x3SFdwVG45elduRGFqQ01Fajl2bGFWN21jS3RISzVpQkVnODVhZ0ZpMWgzTXZpY3FMdG9GZTVoVnY5VAotdEcwajZDUmtqa2l4UHppdmx0bHJmNDRLSHYxNGdMTTBYSnhDR3lxN3ZkM2w4UVlyMys5YXQwek5uWC95cVRpQm5zbkU1ZFVFCi1TSWdyWXV6ODdNMmdpL0VSOVBjRG9UdE9OSDMrQ2tjcVZ5MDNxL1NqOGNWV0QvYjFLZ0VocW5OT2ZjOEFrOVBjdHlSL0l0Y1IKLThNZTVYVm4xR0pLa1FKazRPMjlmeHZnTm9BUUlySUVTdlVXR3NoQUVRQnlYaUZvRlREVUJ5alRsZ2pjeTc3SDFsckgreTNQLwotd0FJbkpqSkF1dDlrQ055R0pWMFBBNGtkUEI1VVNXbHR1TzZ0OGdrNFBkMllCTWwwOXpxVVdrQUVVQ2pGcnRaM21hcGpjR1pJCi11UVRBU0tSNUxTalhvV3hUVDVnYWUvKzY0TWVyRi9vQ0VlTzNlaFJUcGpuUHJzaVJEbzByV0lRVGFqOStOcm84WjJ4dFdzdHcKLVJuZm9BSEl4VjFsRWFtUHdqc2NlQkVpMlNEOWhpaWZGZU81RUNpVm9hRTFGZFhVWGhVK2p3WUFNeDZqSFdPOWhNa1l6UzlwTQotWTNJeVdSNXlidE9qaVFna1VkdlJKUFVQR2Y1RFZWTVBueW1HWDI1YURoNVBZcElFU1Bic005YWtDcE9PVnVzY3l3Y1Vzd21VCi1vN2RYdmxCNDhXV0NmZy9hbDNCUUtBWmJuNVpYdFdOd3BVWmtyRWRIc3J4QVZ2M3J4UmNka1QzWjFmelViSXVZa0xKTjIwMG8KLVdnUklKdm42Uk84S0VqNy9IT2cyc1l1dU04bnoxa1IwVFNnd1g3LzB5LzdKZmpCYTBKSWxQN283NXNOSnNjRThveW9JTXp1eQotRHZuNi9VOWczQkNEWG44M0EvcytrZTYwcW45Z0JGQzZOQWVMT2xYYWwxWVZXWWhNUU5PcUN5VWZBamlYQlRhd2F5c1FiMU1rCi1ZZ2VObEY4eHVFRmNVUVdJUCt2Tkc3Rko1SlBNYU1STDRZRW9hUTNzVkZoWU9FUkpSMWNTYis4eHQ0UUNZdEJLUWdSSVVPbUoKLUNIVzVvMWhYSldKaVRrWksycVdGY0VNelRJTlNqNUVwWUZ5U3I4YVZCamtSbkk3dnhlZ1JULytYWlpYb1llZFEzVU5zbkdJMwotRGRrV2lpNVZ6WDBQTkY2QzYwcGZCRWlWcGF1c1l1WDdXamIzTGZtOGNCajdHZ042OWk2UG0yZ3h0b2JWY21wbzJuUzRENzE0Ci1lUHlobFg5bjhrSjZRQWNxV01SajIyc21EUHJIVkdOVGl6ZnpIQmg1ek5sbEs5Z0VTSml6SUxPV0kzMjdvZzNaV3ArcVVodDUKLWtOREpDek1LN1owOVVBeStoK3ZxMFZUUXVFbzNGZ0x6VmRxa0p1ampTTDROeDk3bFhnNTFBb3ZyRW4zbmQ0ZXZ5ZHdjaktMWAotMXdSSW83Mk5hZVd1VUVRK3J0MVNsQ3NPSjdrMWlvSlNxaHJQT2Z2d2NhRmNiNGJlVmV0MUpXaXk0eXZvd1RqTERHYlVqZTJzCi14anJsVnQ0QkpXSS91QTZqYlFzcnhTZTg5QURaQkFpNVlBbFI0cXN6ZUFRSVhEM1ZTQlZLYlJVRUNOVHR5dnc5dnZxWEJBaGIKLUlaTm40SDRjeGdRSStYVzdHa2ZMK2VrRUNDQ0NnMnJlTXlHREJBaDFQWXFrZzNsdzNnUVFrTmxnZ0VQVStCSDhlaDdHbTduNwotN0FRSWpDNUVXYmtpbDVjRUVLY3B1cXdUV3d3L1g4OUtuUUFnOFRjRUNKUG9tcUh2cmxaRkJCaVJTdUlpSHBtTitQYXVqWHB2Ci1xWlYyVmhqa0IyajA5R0VFQ09JZHY4QVZPSmdLQkFqbEhnSXFBRDlqWlFRSVhIYnM0NCt3b2djRUlHR3FUQUNSSnhyaE1jTUcKLVg4ZHJOamtzSVB0K3NueFRYVUJJa1RWcFpXb0FCQWg2dW5YUFR5SXI4UVFnQkY4eEtvWDI3TVdrN2lUTm1rU05aZ2daWGEyYQotRFdDR0hTWUxuZ2JTT0hJRUNEOVhtTzZWc3ZUZ0JBamZxQjcwQ0VXNFd3UUlWSUJrYkNvY3puVUVFSEIvekZYeS9zUjRPWUhlCi1VZmJOUG5JRUVEV0JCL05UQ0xNR0UrbzhCZnl1amNBRUNGaWs3R1FubkY5VkJCQWhMWEV4UWVXQW9mWk5jNk50TjdxWkJDQzEKLWdWSVMzcnVUd0tsdG1jcmd4M2hlVDNNOFpKaENmV2ErNkt6Y2hubUt5Z1FRKzFOTDVzU3pSNG0vZmRycXhIRnlVQVFZQ1QyeAotUGFtUXIzd0szaDBseVpFUis0SDB6UE04NkFoRkJCQzNDa212TDJ2amZsTWZ1am56UEJWcEJCZ2U5ck1iSTUrMHE5RExyVGlUCi01RjNBSWdYTHBEOFBRV0FFQ0hrSFZvNlJvbVYzQkFnTWJpOEUyNzFVZUFRSXF0Uzh3bkkzWG5nRUNHM1RXbU9NYjMvaUJFaGEKLXkrbXZDUzZJM24zSmZMOGUxQjVQNHFYOS9jekpSYUVSTHVLcEdOakxpTDRBK3p4TjBMWjBVSGQwcWZtSmp3T1R4QXgzaUpBQwotbEdYWDRuQjlBVFlQVVQ1RVUrbzFZNHNFQ04wMXBQNnZXTklkQkRBc2lFMFRzOC85bHRKbHFYMkIzQW9PTTRxT3Q5RWFDalhmCi1sQithRW1yaHRqVXd1WjZHcVM1S2U3UDZYbmFrVGs0RUNDTElNYXROZG9vdEFBQUFBQUFBQUFBQUFBPT0KLS0tLS0tRU5EIFBLQ1M3LS0tLS0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy9leGFtcGxlLmMgYi9jcnlwdG8vcGtjczcvZXhhbXBsZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOTUzZDA0Li4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy9leGFtcGxlLmMKKysrIC9kZXYvbnVsbApAQCAtMSwzMjkgKzAsMCBAQAotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9wa2NzNy5oPgotI2luY2x1ZGUgPG9wZW5zc2wvYXNuMV9tYWMuaD4KLSNpbmNsdWRlIDxvcGVuc3NsL3g1MDkuaD4KLQotaW50IGFkZF9zaWduZWRfdGltZShQS0NTN19TSUdORVJfSU5GTyAqc2kpCi0JewotCUFTTjFfVVRDVElNRSAqc2lnbl90aW1lOwotCi0JLyogVGhlIGxhc3QgcGFyYW1ldGVyIGlzIHRoZSBhbW91bnQgdG8gYWRkL3N1YnRyYWN0IGZyb20gdGhlIGN1cnJlbnQKLQkgKiB0aW1lIChpbiBzZWNvbmRzKSAqLwotCXNpZ25fdGltZT1YNTA5X2dtdGltZV9hZGooTlVMTCwwKTsKLQlQS0NTN19hZGRfc2lnbmVkX2F0dHJpYnV0ZShzaSxOSURfcGtjczlfc2lnbmluZ1RpbWUsCi0JCVZfQVNOMV9VVENUSU1FLChjaGFyICopc2lnbl90aW1lKTsKLQlyZXR1cm4oMSk7Ci0JfQotCi1BU04xX1VUQ1RJTUUgKmdldF9zaWduZWRfdGltZShQS0NTN19TSUdORVJfSU5GTyAqc2kpCi0JewotCUFTTjFfVFlQRSAqc287Ci0KLQlzbz1QS0NTN19nZXRfc2lnbmVkX2F0dHJpYnV0ZShzaSxOSURfcGtjczlfc2lnbmluZ1RpbWUpOwotCWlmIChzby0+dHlwZSA9PSBWX0FTTjFfVVRDVElNRSkKLQkgICAgcmV0dXJuIHNvLT52YWx1ZS51dGN0aW1lOwotCXJldHVybiBOVUxMOwotCX0KLQkKLXN0YXRpYyBpbnQgc2lnbmVkX3N0cmluZ19uaWQ9IC0xOwotCi12b2lkIGFkZF9zaWduZWRfc3RyaW5nKFBLQ1M3X1NJR05FUl9JTkZPICpzaSwgY2hhciAqc3RyKQotCXsKLQlBU04xX09DVEVUX1NUUklORyAqb3M7Ci0KLQkvKiBUbyBhIGFuIG9iamVjdCBvZiBPSUQgMS4yLjMuNC41LCB3aGljaCBpcyBhbiBvY3RldCBzdHJpbmcgKi8KLQlpZiAoc2lnbmVkX3N0cmluZ19uaWQgPT0gLTEpCi0JCXNpZ25lZF9zdHJpbmdfbmlkPQotCQkJT0JKX2NyZWF0ZSgiMS4yLjMuNC41IiwiT0lEX2V4YW1wbGUiLCJPdXIgZXhhbXBsZSBPSUQiKTsKLQlvcz1BU04xX09DVEVUX1NUUklOR19uZXcoKTsKLQlBU04xX09DVEVUX1NUUklOR19zZXQob3MsKHVuc2lnbmVkIGNoYXIqKXN0cixzdHJsZW4oc3RyKSk7Ci0JLyogV2hlbiB3ZSBhZGQsIHdlIGRvIG5vdCBmcmVlICovCi0JUEtDUzdfYWRkX3NpZ25lZF9hdHRyaWJ1dGUoc2ksc2lnbmVkX3N0cmluZ19uaWQsCi0JCVZfQVNOMV9PQ1RFVF9TVFJJTkcsKGNoYXIgKilvcyk7Ci0JfQotCi1pbnQgZ2V0X3NpZ25lZF9zdHJpbmcoUEtDUzdfU0lHTkVSX0lORk8gKnNpLCBjaGFyICpidWYsIGludCBsZW4pCi0JewotCUFTTjFfVFlQRSAqc287Ci0JQVNOMV9PQ1RFVF9TVFJJTkcgKm9zOwotCWludCBpOwotCi0JaWYgKHNpZ25lZF9zdHJpbmdfbmlkID09IC0xKQotCQlzaWduZWRfc3RyaW5nX25pZD0KLQkJCU9CSl9jcmVhdGUoIjEuMi4zLjQuNSIsIk9JRF9leGFtcGxlIiwiT3VyIGV4YW1wbGUgT0lEIik7Ci0JLyogVG8gcmV0cmlldmUgKi8KLQlzbz1QS0NTN19nZXRfc2lnbmVkX2F0dHJpYnV0ZShzaSxzaWduZWRfc3RyaW5nX25pZCk7Ci0JaWYgKHNvICE9IE5VTEwpCi0JCXsKLQkJaWYgKHNvLT50eXBlID09IFZfQVNOMV9PQ1RFVF9TVFJJTkcpCi0JCQl7Ci0JCQlvcz1zby0+dmFsdWUub2N0ZXRfc3RyaW5nOwotCQkJaT1vcy0+bGVuZ3RoOwotCQkJaWYgKChpKzEpID4gbGVuKQotCQkJCWk9bGVuLTE7Ci0JCQltZW1jcHkoYnVmLG9zLT5kYXRhLGkpOwotCQkJcmV0dXJuKGkpOwotCQkJfQotCQl9Ci0JcmV0dXJuKDApOwotCX0KLQotc3RhdGljIGludCBzaWduZWRfc2VxMnN0cmluZ19uaWQ9IC0xOwotLyogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAqLwotaW50IGFkZF9zaWduZWRfc2VxMnN0cmluZyhQS0NTN19TSUdORVJfSU5GTyAqc2ksIGNoYXIgKnN0cjEsIGNoYXIgKnN0cjIpCi0JewotCS8qIFRvIGFkZCBhbiBvYmplY3Qgb2YgT0lEIDEuOS45OTksIHdoaWNoIGlzIGEgc2VxdWVuY2UgY29udGFpbmluZwotCSAqIDIgb2N0ZXQgc3RyaW5ncyAqLwotCXVuc2lnbmVkIGNoYXIgKnA7Ci0JQVNOMV9PQ1RFVF9TVFJJTkcgKm9zMSwqb3MyOwotCUFTTjFfU1RSSU5HICpzZXE7Ci0JdW5zaWduZWQgY2hhciAqZGF0YTsKLQlpbnQgaSx0b3RhbDsKLQotCWlmIChzaWduZWRfc2VxMnN0cmluZ19uaWQgPT0gLTEpCi0JCXNpZ25lZF9zZXEyc3RyaW5nX25pZD0KLQkJCU9CSl9jcmVhdGUoIjEuOS45OTk5IiwiT0lEX2V4YW1wbGUiLCJPdXIgZXhhbXBsZSBPSUQiKTsKLQotCW9zMT1BU04xX09DVEVUX1NUUklOR19uZXcoKTsKLQlvczI9QVNOMV9PQ1RFVF9TVFJJTkdfbmV3KCk7Ci0JQVNOMV9PQ1RFVF9TVFJJTkdfc2V0KG9zMSwodW5zaWduZWQgY2hhciopc3RyMSxzdHJsZW4oc3RyMSkpOwotCUFTTjFfT0NURVRfU1RSSU5HX3NldChvczIsKHVuc2lnbmVkIGNoYXIqKXN0cjEsc3RybGVuKHN0cjEpKTsKLQlpID1pMmRfQVNOMV9PQ1RFVF9TVFJJTkcob3MxLE5VTEwpOwotCWkrPWkyZF9BU04xX09DVEVUX1NUUklORyhvczIsTlVMTCk7Ci0JdG90YWw9QVNOMV9vYmplY3Rfc2l6ZSgxLGksVl9BU04xX1NFUVVFTkNFKTsKLQotCWRhdGE9bWFsbG9jKHRvdGFsKTsKLQlwPWRhdGE7Ci0JQVNOMV9wdXRfb2JqZWN0KCZwLDEsaSxWX0FTTjFfU0VRVUVOQ0UsVl9BU04xX1VOSVZFUlNBTCk7Ci0JaTJkX0FTTjFfT0NURVRfU1RSSU5HKG9zMSwmcCk7Ci0JaTJkX0FTTjFfT0NURVRfU1RSSU5HKG9zMiwmcCk7Ci0KLQlzZXE9QVNOMV9TVFJJTkdfbmV3KCk7Ci0JQVNOMV9TVFJJTkdfc2V0KHNlcSxkYXRhLHRvdGFsKTsKLQlmcmVlKGRhdGEpOwotCUFTTjFfT0NURVRfU1RSSU5HX2ZyZWUob3MxKTsKLQlBU04xX09DVEVUX1NUUklOR19mcmVlKG9zMik7Ci0KLQlQS0NTN19hZGRfc2lnbmVkX2F0dHJpYnV0ZShzaSxzaWduZWRfc2VxMnN0cmluZ19uaWQsCi0JCVZfQVNOMV9TRVFVRU5DRSwoY2hhciAqKXNlcSk7Ci0JcmV0dXJuKDEpOwotCX0KLQotLyogRm9yIHRoaXMgY2FzZSwgSSB3aWxsIG1hbGxvYyB0aGUgcmV0dXJuIHN0cmluZ3MgKi8KLWludCBnZXRfc2lnbmVkX3NlcTJzdHJpbmcoUEtDUzdfU0lHTkVSX0lORk8gKnNpLCBjaGFyICoqc3RyMSwgY2hhciAqKnN0cjIpCi0JewotCUFTTjFfVFlQRSAqc287Ci0KLQlpZiAoc2lnbmVkX3NlcTJzdHJpbmdfbmlkID09IC0xKQotCQlzaWduZWRfc2VxMnN0cmluZ19uaWQ9Ci0JCQlPQkpfY3JlYXRlKCIxLjkuOTk5OSIsIk9JRF9leGFtcGxlIiwiT3VyIGV4YW1wbGUgT0lEIik7Ci0JLyogVG8gcmV0cmlldmUgKi8KLQlzbz1QS0NTN19nZXRfc2lnbmVkX2F0dHJpYnV0ZShzaSxzaWduZWRfc2VxMnN0cmluZ19uaWQpOwotCWlmIChzbyAmJiAoc28tPnR5cGUgPT0gVl9BU04xX1NFUVVFTkNFKSkKLQkJewotCQlBU04xX2NvbnN0X0NUWCBjOwotCQlBU04xX1NUUklORyAqczsKLQkJbG9uZyBsZW5ndGg7Ci0JCUFTTjFfT0NURVRfU1RSSU5HICpvczEsKm9zMjsKLQotCQlzPXNvLT52YWx1ZS5zZXF1ZW5jZTsKLQkJYy5wPUFTTjFfU1RSSU5HX2RhdGEocyk7Ci0JCWMubWF4PWMucCtBU04xX1NUUklOR19sZW5ndGgocyk7Ci0JCWlmICghYXNuMV9HZXRTZXF1ZW5jZSgmYywmbGVuZ3RoKSkgZ290byBlcnI7Ci0JCS8qIExlbmd0aCBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBzZXFlbmNlICovCi0KLQkJYy5xPWMucDsKLQkJaWYgKChvczE9ZDJpX0FTTjFfT0NURVRfU1RSSU5HKE5VTEwsJmMucCxjLnNsZW4pKSA9PSBOVUxMKSAKLQkJCWdvdG8gZXJyOwotCQljLnNsZW4tPShjLnAtYy5xKTsKLQotCQljLnE9Yy5wOwotCQlpZiAoKG9zMj1kMmlfQVNOMV9PQ1RFVF9TVFJJTkcoTlVMTCwmYy5wLGMuc2xlbikpID09IE5VTEwpIAotCQkJZ290byBlcnI7Ci0JCWMuc2xlbi09KGMucC1jLnEpOwotCi0JCWlmICghYXNuMV9jb25zdF9GaW5pc2goJmMpKSBnb3RvIGVycjsKLQkJKnN0cjE9bWFsbG9jKG9zMS0+bGVuZ3RoKzEpOwotCQkqc3RyMj1tYWxsb2Mob3MyLT5sZW5ndGgrMSk7Ci0JCW1lbWNweSgqc3RyMSxvczEtPmRhdGEsb3MxLT5sZW5ndGgpOwotCQltZW1jcHkoKnN0cjIsb3MyLT5kYXRhLG9zMi0+bGVuZ3RoKTsKLQkJKCpzdHIxKVtvczEtPmxlbmd0aF09J1wwJzsKLQkJKCpzdHIyKVtvczItPmxlbmd0aF09J1wwJzsKLQkJQVNOMV9PQ1RFVF9TVFJJTkdfZnJlZShvczEpOwotCQlBU04xX09DVEVUX1NUUklOR19mcmVlKG9zMik7Ci0JCXJldHVybigxKTsKLQkJfQotZXJyOgotCXJldHVybigwKTsKLQl9Ci0KLQotLyogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gKiBUSEUgT1RIRVIgV0FZIFRPIERPIFRISU5HUwotICogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gKi8KLVg1MDlfQVRUUklCVVRFICpjcmVhdGVfdGltZSh2b2lkKQotCXsKLQlBU04xX1VUQ1RJTUUgKnNpZ25fdGltZTsKLQlYNTA5X0FUVFJJQlVURSAqcmV0OwotCi0JLyogVGhlIGxhc3QgcGFyYW1ldGVyIGlzIHRoZSBhbW91bnQgdG8gYWRkL3N1YnRyYWN0IGZyb20gdGhlIGN1cnJlbnQKLQkgKiB0aW1lIChpbiBzZWNvbmRzKSAqLwotCXNpZ25fdGltZT1YNTA5X2dtdGltZV9hZGooTlVMTCwwKTsKLQlyZXQ9WDUwOV9BVFRSSUJVVEVfY3JlYXRlKE5JRF9wa2NzOV9zaWduaW5nVGltZSwKLQkJVl9BU04xX1VUQ1RJTUUsKGNoYXIgKilzaWduX3RpbWUpOwotCXJldHVybihyZXQpOwotCX0KLQotQVNOMV9VVENUSU1FICpza19nZXRfdGltZShTVEFDS19PRihYNTA5X0FUVFJJQlVURSkgKnNrKQotCXsKLQlBU04xX1RZUEUgKnNvOwotCVBLQ1M3X1NJR05FUl9JTkZPIHNpOwotCi0Jc2kuYXV0aF9hdHRyPXNrOwotCXNvPVBLQ1M3X2dldF9zaWduZWRfYXR0cmlidXRlKCZzaSxOSURfcGtjczlfc2lnbmluZ1RpbWUpOwotCWlmIChzby0+dHlwZSA9PSBWX0FTTjFfVVRDVElNRSkKLQkgICAgcmV0dXJuIHNvLT52YWx1ZS51dGN0aW1lOwotCXJldHVybiBOVUxMOwotCX0KLQkKLVg1MDlfQVRUUklCVVRFICpjcmVhdGVfc3RyaW5nKGNoYXIgKnN0cikKLQl7Ci0JQVNOMV9PQ1RFVF9TVFJJTkcgKm9zOwotCVg1MDlfQVRUUklCVVRFICpyZXQ7Ci0KLQkvKiBUbyBhIGFuIG9iamVjdCBvZiBPSUQgMS4yLjMuNC41LCB3aGljaCBpcyBhbiBvY3RldCBzdHJpbmcgKi8KLQlpZiAoc2lnbmVkX3N0cmluZ19uaWQgPT0gLTEpCi0JCXNpZ25lZF9zdHJpbmdfbmlkPQotCQkJT0JKX2NyZWF0ZSgiMS4yLjMuNC41IiwiT0lEX2V4YW1wbGUiLCJPdXIgZXhhbXBsZSBPSUQiKTsKLQlvcz1BU04xX09DVEVUX1NUUklOR19uZXcoKTsKLQlBU04xX09DVEVUX1NUUklOR19zZXQob3MsKHVuc2lnbmVkIGNoYXIqKXN0cixzdHJsZW4oc3RyKSk7Ci0JLyogV2hlbiB3ZSBhZGQsIHdlIGRvIG5vdCBmcmVlICovCi0JcmV0PVg1MDlfQVRUUklCVVRFX2NyZWF0ZShzaWduZWRfc3RyaW5nX25pZCwKLQkJVl9BU04xX09DVEVUX1NUUklORywoY2hhciAqKW9zKTsKLQlyZXR1cm4ocmV0KTsKLQl9Ci0KLWludCBza19nZXRfc3RyaW5nKFNUQUNLX09GKFg1MDlfQVRUUklCVVRFKSAqc2ssIGNoYXIgKmJ1ZiwgaW50IGxlbikKLQl7Ci0JQVNOMV9UWVBFICpzbzsKLQlBU04xX09DVEVUX1NUUklORyAqb3M7Ci0JaW50IGk7Ci0JUEtDUzdfU0lHTkVSX0lORk8gc2k7Ci0KLQlzaS5hdXRoX2F0dHI9c2s7Ci0KLQlpZiAoc2lnbmVkX3N0cmluZ19uaWQgPT0gLTEpCi0JCXNpZ25lZF9zdHJpbmdfbmlkPQotCQkJT0JKX2NyZWF0ZSgiMS4yLjMuNC41IiwiT0lEX2V4YW1wbGUiLCJPdXIgZXhhbXBsZSBPSUQiKTsKLQkvKiBUbyByZXRyaWV2ZSAqLwotCXNvPVBLQ1M3X2dldF9zaWduZWRfYXR0cmlidXRlKCZzaSxzaWduZWRfc3RyaW5nX25pZCk7Ci0JaWYgKHNvICE9IE5VTEwpCi0JCXsKLQkJaWYgKHNvLT50eXBlID09IFZfQVNOMV9PQ1RFVF9TVFJJTkcpCi0JCQl7Ci0JCQlvcz1zby0+dmFsdWUub2N0ZXRfc3RyaW5nOwotCQkJaT1vcy0+bGVuZ3RoOwotCQkJaWYgKChpKzEpID4gbGVuKQotCQkJCWk9bGVuLTE7Ci0JCQltZW1jcHkoYnVmLG9zLT5kYXRhLGkpOwotCQkJcmV0dXJuKGkpOwotCQkJfQotCQl9Ci0JcmV0dXJuKDApOwotCX0KLQotWDUwOV9BVFRSSUJVVEUgKmFkZF9zZXEyc3RyaW5nKFBLQ1M3X1NJR05FUl9JTkZPICpzaSwgY2hhciAqc3RyMSwgY2hhciAqc3RyMikKLQl7Ci0JLyogVG8gYWRkIGFuIG9iamVjdCBvZiBPSUQgMS45Ljk5OSwgd2hpY2ggaXMgYSBzZXF1ZW5jZSBjb250YWluaW5nCi0JICogMiBvY3RldCBzdHJpbmdzICovCi0JdW5zaWduZWQgY2hhciAqcDsKLQlBU04xX09DVEVUX1NUUklORyAqb3MxLCpvczI7Ci0JQVNOMV9TVFJJTkcgKnNlcTsKLQlYNTA5X0FUVFJJQlVURSAqcmV0OwotCXVuc2lnbmVkIGNoYXIgKmRhdGE7Ci0JaW50IGksdG90YWw7Ci0KLQlpZiAoc2lnbmVkX3NlcTJzdHJpbmdfbmlkID09IC0xKQotCQlzaWduZWRfc2VxMnN0cmluZ19uaWQ9Ci0JCQlPQkpfY3JlYXRlKCIxLjkuOTk5OSIsIk9JRF9leGFtcGxlIiwiT3VyIGV4YW1wbGUgT0lEIik7Ci0KLQlvczE9QVNOMV9PQ1RFVF9TVFJJTkdfbmV3KCk7Ci0Jb3MyPUFTTjFfT0NURVRfU1RSSU5HX25ldygpOwotCUFTTjFfT0NURVRfU1RSSU5HX3NldChvczEsKHVuc2lnbmVkIGNoYXIqKXN0cjEsc3RybGVuKHN0cjEpKTsKLQlBU04xX09DVEVUX1NUUklOR19zZXQob3MyLCh1bnNpZ25lZCBjaGFyKilzdHIxLHN0cmxlbihzdHIxKSk7Ci0JaSA9aTJkX0FTTjFfT0NURVRfU1RSSU5HKG9zMSxOVUxMKTsKLQlpKz1pMmRfQVNOMV9PQ1RFVF9TVFJJTkcob3MyLE5VTEwpOwotCXRvdGFsPUFTTjFfb2JqZWN0X3NpemUoMSxpLFZfQVNOMV9TRVFVRU5DRSk7Ci0KLQlkYXRhPW1hbGxvYyh0b3RhbCk7Ci0JcD1kYXRhOwotCUFTTjFfcHV0X29iamVjdCgmcCwxLGksVl9BU04xX1NFUVVFTkNFLFZfQVNOMV9VTklWRVJTQUwpOwotCWkyZF9BU04xX09DVEVUX1NUUklORyhvczEsJnApOwotCWkyZF9BU04xX09DVEVUX1NUUklORyhvczIsJnApOwotCi0Jc2VxPUFTTjFfU1RSSU5HX25ldygpOwotCUFTTjFfU1RSSU5HX3NldChzZXEsZGF0YSx0b3RhbCk7Ci0JZnJlZShkYXRhKTsKLQlBU04xX09DVEVUX1NUUklOR19mcmVlKG9zMSk7Ci0JQVNOMV9PQ1RFVF9TVFJJTkdfZnJlZShvczIpOwotCi0JcmV0PVg1MDlfQVRUUklCVVRFX2NyZWF0ZShzaWduZWRfc2VxMnN0cmluZ19uaWQsCi0JCVZfQVNOMV9TRVFVRU5DRSwoY2hhciAqKXNlcSk7Ci0JcmV0dXJuKHJldCk7Ci0JfQotCi0vKiBGb3IgdGhpcyBjYXNlLCBJIHdpbGwgbWFsbG9jIHRoZSByZXR1cm4gc3RyaW5ncyAqLwotaW50IHNrX2dldF9zZXEyc3RyaW5nKFNUQUNLX09GKFg1MDlfQVRUUklCVVRFKSAqc2ssIGNoYXIgKipzdHIxLCBjaGFyICoqc3RyMikKLQl7Ci0JQVNOMV9UWVBFICpzbzsKLQlQS0NTN19TSUdORVJfSU5GTyBzaTsKLQotCWlmIChzaWduZWRfc2VxMnN0cmluZ19uaWQgPT0gLTEpCi0JCXNpZ25lZF9zZXEyc3RyaW5nX25pZD0KLQkJCU9CSl9jcmVhdGUoIjEuOS45OTk5IiwiT0lEX2V4YW1wbGUiLCJPdXIgZXhhbXBsZSBPSUQiKTsKLQotCXNpLmF1dGhfYXR0cj1zazsKLQkvKiBUbyByZXRyaWV2ZSAqLwotCXNvPVBLQ1M3X2dldF9zaWduZWRfYXR0cmlidXRlKCZzaSxzaWduZWRfc2VxMnN0cmluZ19uaWQpOwotCWlmIChzby0+dHlwZSA9PSBWX0FTTjFfU0VRVUVOQ0UpCi0JCXsKLQkJQVNOMV9jb25zdF9DVFggYzsKLQkJQVNOMV9TVFJJTkcgKnM7Ci0JCWxvbmcgbGVuZ3RoOwotCQlBU04xX09DVEVUX1NUUklORyAqb3MxLCpvczI7Ci0KLQkJcz1zby0+dmFsdWUuc2VxdWVuY2U7Ci0JCWMucD1BU04xX1NUUklOR19kYXRhKHMpOwotCQljLm1heD1jLnArQVNOMV9TVFJJTkdfbGVuZ3RoKHMpOwotCQlpZiAoIWFzbjFfR2V0U2VxdWVuY2UoJmMsJmxlbmd0aCkpIGdvdG8gZXJyOwotCQkvKiBMZW5ndGggaXMgdGhlIGxlbmd0aCBvZiB0aGUgc2VxZW5jZSAqLwotCi0JCWMucT1jLnA7Ci0JCWlmICgob3MxPWQyaV9BU04xX09DVEVUX1NUUklORyhOVUxMLCZjLnAsYy5zbGVuKSkgPT0gTlVMTCkgCi0JCQlnb3RvIGVycjsKLQkJYy5zbGVuLT0oYy5wLWMucSk7Ci0KLQkJYy5xPWMucDsKLQkJaWYgKChvczI9ZDJpX0FTTjFfT0NURVRfU1RSSU5HKE5VTEwsJmMucCxjLnNsZW4pKSA9PSBOVUxMKSAKLQkJCWdvdG8gZXJyOwotCQljLnNsZW4tPShjLnAtYy5xKTsKLQotCQlpZiAoIWFzbjFfY29uc3RfRmluaXNoKCZjKSkgZ290byBlcnI7Ci0JCSpzdHIxPW1hbGxvYyhvczEtPmxlbmd0aCsxKTsKLQkJKnN0cjI9bWFsbG9jKG9zMi0+bGVuZ3RoKzEpOwotCQltZW1jcHkoKnN0cjEsb3MxLT5kYXRhLG9zMS0+bGVuZ3RoKTsKLQkJbWVtY3B5KCpzdHIyLG9zMi0+ZGF0YSxvczItPmxlbmd0aCk7Ci0JCSgqc3RyMSlbb3MxLT5sZW5ndGhdPSdcMCc7Ci0JCSgqc3RyMilbb3MyLT5sZW5ndGhdPSdcMCc7Ci0JCUFTTjFfT0NURVRfU1RSSU5HX2ZyZWUob3MxKTsKLQkJQVNOMV9PQ1RFVF9TVFJJTkdfZnJlZShvczIpOwotCQlyZXR1cm4oMSk7Ci0JCX0KLWVycjoKLQlyZXR1cm4oMCk7Ci0JfQotCi0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy9leGFtcGxlLmggYi9jcnlwdG8vcGtjczcvZXhhbXBsZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjE2N2RlLi4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy9leGFtcGxlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICogQ29weXJpZ2h0IChjKSAxOTk5IFRoZSBPcGVuU1NMIFByb2plY3QuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAotICoKLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KLSAqICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqICAgIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMKLSAqICAgIHNvZnR3YXJlIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdtZW50OgotICogICAgIlRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlIE9wZW5TU0wgUHJvamVjdAotICogICAgZm9yIHVzZSBpbiB0aGUgT3BlblNTTCBUb29sa2l0LiAoaHR0cDovL3d3dy5vcGVuc3NsLm9yZy8pIgotICoKLSAqIDQuIFRoZSBuYW1lcyAiT3BlblNTTCBUb29sa2l0IiBhbmQgIk9wZW5TU0wgUHJvamVjdCIgbXVzdCBub3QgYmUgdXNlZCB0bwotICogICAgZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKLSAqICAgIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gRm9yIHdyaXR0ZW4gcGVybWlzc2lvbiwgcGxlYXNlIGNvbnRhY3QKLSAqICAgIG9wZW5zc2wtY29yZUBvcGVuc3NsLm9yZy4KLSAqCi0gKiA1LiBQcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSBtYXkgbm90IGJlIGNhbGxlZCAiT3BlblNTTCIKLSAqICAgIG5vciBtYXkgIk9wZW5TU0wiIGFwcGVhciBpbiB0aGVpciBuYW1lcyB3aXRob3V0IHByaW9yIHdyaXR0ZW4KLSAqICAgIHBlcm1pc3Npb24gb2YgdGhlIE9wZW5TU0wgUHJvamVjdC4KLSAqCi0gKiA2LiBSZWRpc3RyaWJ1dGlvbnMgb2YgYW55IGZvcm0gd2hhdHNvZXZlciBtdXN0IHJldGFpbiB0aGUgZm9sbG93aW5nCi0gKiAgICBhY2tub3dsZWRnbWVudDoKLSAqICAgICJUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBPcGVuU1NMIFByb2plY3QKLSAqICAgIGZvciB1c2UgaW4gdGhlIE9wZW5TU0wgVG9vbGtpdCAoaHR0cDovL3d3dy5vcGVuc3NsLm9yZy8pIgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIE9wZW5TU0wgUFJPSkVDVCBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTU0VEIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIE9wZW5TU0wgUFJPSkVDVCBPUgotICogSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCi0gKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsCi0gKiBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VECi0gKiBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICoKLSAqIFRoaXMgcHJvZHVjdCBpbmNsdWRlcyBjcnlwdG9ncmFwaGljIHNvZnR3YXJlIHdyaXR0ZW4gYnkgRXJpYyBZb3VuZwotICogKGVheUBjcnlwdHNvZnQuY29tKS4gIFRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSB3cml0dGVuIGJ5IFRpbQotICogSHVkc29uICh0amhAY3J5cHRzb2Z0LmNvbSkuCi0gKgotICovCi0KLWludCBhZGRfc2lnbmVkX3RpbWUoUEtDUzdfU0lHTkVSX0lORk8gKnNpKTsKLUFTTjFfVVRDVElNRSAqZ2V0X3NpZ25lZF90aW1lKFBLQ1M3X1NJR05FUl9JTkZPICpzaSk7Ci1pbnQgZ2V0X3NpZ25lZF9zZXEyc3RyaW5nKFBLQ1M3X1NJR05FUl9JTkZPICpzaSwgY2hhciAqKnN0cjEsIGNoYXIgKipzdHIyKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy9pbmZvLnBlbSBiL2NyeXB0by9wa2NzNy9pbmZvLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTg5YmFmOC4uMDAwMDAwMAotLS0gYS9jcnlwdG8vcGtjczcvaW5mby5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi1pc3N1ZXIgOi9DPUFVL1NQPVF1ZWVuc2xhbmQvTD1CcmlzYmFuZS9PPUNyeXB0c29mdCBQdHkgTHRkL09VPURFTU9OU1RSQVRJT04gQU5EIFRFU1RJTkcvQ049REVNTyBaRVJPIFZBTFVFIENBCi1zdWJqZWN0Oi9DPUFVL1NQPVF1ZWVuc2xhbmQvTD1CcmlzYmFuZS9PPUNyeXB0c29mdCBQdHkgTHRkL09VPVNNSU1FIDAwMy9DTj1JbmZvcm1hdGlvbi9FbWFpbD1pbmZvQGNyeXB0c29mdC5jb20KLXNlcmlhbCA6MDQ3RAotCi1DZXJ0aWZpY2F0ZToKLSAgICBEYXRhOgotICAgICAgICBWZXJzaW9uOiAzICgweDIpCi0gICAgICAgIFNlcmlhbCBOdW1iZXI6IDExNDkgKDB4NDdkKQotICAgICAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBtZDV3aXRoUlNBRW5jcnlwdGlvbgotICAgICAgICBJc3N1ZXI6IEM9QVUsIFNQPVF1ZWVuc2xhbmQsIEw9QnJpc2JhbmUsIE89Q3J5cHRzb2Z0IFB0eSBMdGQsIE9VPURFTU9OU1RSQVRJT04gQU5EIFRFU1RJTkcsIENOPURFTU8gWkVSTyBWQUxVRSBDQQotICAgICAgICBWYWxpZGl0eQotICAgICAgICAgICAgTm90IEJlZm9yZTogTWF5IDEzIDA1OjQwOjU4IDE5OTggR01UCi0gICAgICAgICAgICBOb3QgQWZ0ZXIgOiBNYXkgMTIgMDU6NDA6NTggMjAwMCBHTVQKLSAgICAgICAgU3ViamVjdDogQz1BVSwgU1A9UXVlZW5zbGFuZCwgTD1CcmlzYmFuZSwgTz1DcnlwdHNvZnQgUHR5IEx0ZCwgT1U9U01JTUUgMDAzLCBDTj1JbmZvcm1hdGlvbi9FbWFpbD1pbmZvQGNyeXB0c29mdC5jb20KLSAgICAgICAgU3ViamVjdCBQdWJsaWMgS2V5IEluZm86Ci0gICAgICAgICAgICBQdWJsaWMgS2V5IEFsZ29yaXRobTogcnNhRW5jcnlwdGlvbgotICAgICAgICAgICAgICAgIE1vZHVsdXM6Ci0gICAgICAgICAgICAgICAgICAgIDAwOmFkOmU3OjIzOjg5OmVlOjBkOjg3OmI3OjljOjMyOjQ0OjRiOjk1OjgxOgotICAgICAgICAgICAgICAgICAgICA3MzpkZDoyMjo4MDo0YjoyZDpjNTo2MDpiODpmZToxZToxODo2MzplZjpkYzoKLSAgICAgICAgICAgICAgICAgICAgODk6ODk6MjI6ZGY6OTU6M2M6N2E6ZGI6M2Q6OWE6MDY6YTg6MDg6ZDY6Mjk6Ci0gICAgICAgICAgICAgICAgICAgIGZkOmVmOjQxOjA5OjkxOmVkOmJjOmFkOjk4OmY5OmY2OjI4OjkwOjYyOjZmOgotICAgICAgICAgICAgICAgICAgICBlNzplNzowYzo0ZDowYgotICAgICAgICAgICAgICAgIEV4cG9uZW50OiA2NTUzNyAoMHgxMDAwMSkKLSAgICAgICAgWDUwOXYzIGV4dGVuc2lvbnM6Ci0gICAgICAgICAgICBOZXRzY2FwZSBDb21tZW50OiAKLSAgICAgICAgICAgICAgICBHZW5lcmF0ZWQgd2l0aCBTU0xlYXkKLSAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBtZDV3aXRoUlNBRW5jcnlwdGlvbgotICAgICAgICA1MjoxNTplYTo4ODpmNDpmMDpmOTowYjplZjpjZTpkNTpmODo4Mzo0MDo2MToxNjo1ZTo1NToKLSAgICAgICAgZjk6Y2U6MmQ6ZDE6OGI6MzE6NWM6MDM6YzY6MmQ6MTA6N2M6NjE6ZDU6NWM6MGE6NDI6OTc6Ci0gICAgICAgIGQxOmZkOjY1OmI2OmI2Ojg0OmE1OjM5OmVjOjQ2OmVjOmZjOmUwOjBkOmQ5OjIyOmRhOjFiOgotICAgICAgICA1MDo3NDphZDo5MjpjYjo0ZTo5MDplNTpmYTo3ZAotCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUNURENDQWZhZ0F3SUJBZ0lDQkgwd0RRWUpLb1pJaHZjTkFRRUVCUUF3Z1pJeEN6QUpCZ05WQkFZVEFrRlYKLU1STXdFUVlEVlFRSUV3cFJkV1ZsYm5Oc1lXNWtNUkV3RHdZRFZRUUhFd2hDY21selltRnVaVEVhTUJnR0ExVUUKLUNoTVJRM0o1Y0hSemIyWjBJRkIwZVNCTWRHUXhJakFnQmdOVkJBc1RHVVJGVFU5T1UxUlNRVlJKVDA0Z1FVNUUKLUlGUkZVMVJKVGtjeEd6QVpCZ05WQkFNVEVrUkZUVThnV2tWU1R5QldRVXhWUlNCRFFUQWVGdzA1T0RBMU1UTXcKLU5UUXdOVGhhRncwd01EQTFNVEl3TlRRd05UaGFNSUdlTVFzd0NRWURWUVFHRXdKQlZURVRNQkVHQTFVRUNCTUsKLVVYVmxaVzV6YkdGdVpERVJNQThHQTFVRUJ4TUlRbkpwYzJKaGJtVXhHakFZQmdOVkJBb1RFVU55ZVhCMGMyOW0KLWRDQlFkSGtnVEhSa01SSXdFQVlEVlFRTEV3bFRUVWxOUlNBd01ETXhGREFTQmdOVkJBTVRDMGx1Wm05eWJXRjAKLWFXOXVNU0V3SHdZSktvWklodmNOQVFrQkZoSnBibVp2UUdOeWVYQjBjMjltZEM1amIyMHdYREFOQmdrcWhraUcKLTl3MEJBUUVGQUFOTEFEQklBa0VBcmVjamllNE5oN2VjTWtSTGxZRnozU0tBU3kzRllMaitIaGhqNzl5SmlTTGYKLWxUeDYyejJhQnFnSTFpbjk3MEVKa2UyOHJaajU5aWlRWW0vbjV3eE5Dd0lEQVFBQm95Z3dKakFrQmdsZ2hrZ0IKLWh2aENBUTBFRnhZVlIyVnVaWEpoZEdWa0lIZHBkR2dnVTFOTVpXRjVNQTBHQ1NxR1NJYjNEUUVCQkFVQUEwRUEKLVVoWHFpUFR3K1F2dnp0WDRnMEJoRmw1VitjNHQwWXN4WEFQR0xSQjhZZFZjQ2tLWDBmMWx0cmFFcFRuc1J1ejgKLTRBM1pJdG9iVUhTdGtzdE9rT1g2ZlE9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotCi0tLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCi1NSUlCT2dJQkFBSkJBSzNuSTRudURZZTNuREpFUzVXQmM5MGlnRXN0eFdDNC9oNFlZKy9jaVlraTM1VThldHM5Ci1tZ2FvQ05ZcC9lOUJDWkh0dksyWStmWW9rR0p2NStjTVRRc0NBd0VBQVFKQkFJSHB2WHZxRWNPRW9EUlJIdUlHCi1ma2NCNGpQSGNyOUtFOVRweGFiSDZ4czliZU42T0pua2VQWEFId2F6NU1uVWdTbmJwT0txK2N3OG1pS2pYd2UvCi16VkVDSVFEVkx3bmNUMmxSbVhhckVZSHpiK3EvMHVhU3ZLaFdLS3Qza0phc0xOVHJBd0loQU5EVWMvZ2h1dDI5Ci1wM2pKWWp1cnpVS3VHNzc0LzVlTGpQTHN4UFBJWnpOWkFpQS8xMGhTcTQxVW5HcUhMRVVJUzltMi9FZUVaZTdiCi1ibTU2N2RmUlU5T25WUUlnRG84Uk9yWlhTY2hFR2Jhb2c1SjVyL0ZsZTgzdU84bDkzUjNHcVZ4S1haa0NJRmZrCi1JUEQ1UElZUUF5eW9kM2h5S0t6YTdaUDRDR1k0b09mWmV0YmtTR0dHCi0tLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L2luZm9rZXkucGVtIGIvY3J5cHRvL3BrY3M3L2luZm9rZXkucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZTJhY2M5Li4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy9pbmZva2V5LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotTUlJQk9nSUJBQUpCQUszbkk0bnVEWWUzbkRKRVM1V0JjOTBpZ0VzdHhXQzQvaDRZWSsvY2lZa2kzNVU4ZXRzOQotbWdhb0NOWXAvZTlCQ1pIdHZLMlkrZllva0dKdjUrY01UUXNDQXdFQUFRSkJBSUhwdlh2cUVjT0VvRFJSSHVJRwotZmtjQjRqUEhjcjlLRTlUcHhhYkg2eHM5YmVONk9KbmtlUFhBSHdhejVNblVnU25icE9LcStjdzhtaUtqWHdlLwotelZFQ0lRRFZMd25jVDJsUm1YYXJFWUh6YitxLzB1YVN2S2hXS0t0M2tKYXNMTlRyQXdJaEFORFVjL2dodXQyOQotcDNqSllqdXJ6VUt1Rzc3NC81ZUxqUExzeFBQSVp6TlpBaUEvMTBoU3E0MVVuR3FITEVVSVM5bTIvRWVFWmU3YgotYm01NjdkZlJVOU9uVlFJZ0RvOFJPclpYU2NoRUdiYW9nNUo1ci9GbGU4M3VPOGw5M1IzR3FWeEtYWmtDSUZmawotSVBENVBJWVFBeXlvZDNoeUtLemE3WlA0Q0dZNG9PZlpldGJrU0dHRwotLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy9wNy9hMSBiL2NyeXB0by9wa2NzNy9wNy9hMQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTZjYTk0My4uMDAwMDAwMAotLS0gYS9jcnlwdG8vcGtjczcvcDcvYTEKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLWosBEg+El8V5uEQX61E9HoRBg9F7kycCVZKs9/op6wQpJQdlEUz++FZCOR4JRpfwGsKLTPqKURMU2PxOBklDPRNClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3A3L2EyIGIvY3J5cHRvL3BrY3M3L3A3L2EyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyM2Q4ZmI1Li4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy9wNy9hMgorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWt+QGGULE7iTQYVHc25vAkBPE8oIEtQl+mooKRLsj6t1xZVv29fvRABBEJxcm3OP9mgdD9094HPgelJZAUyiYoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jcnlwdG8vcGtjczcvcDcvY2VydC5wN2MgYi9jcnlwdG8vcGtjczcvcDcvY2VydC5wN2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNzVlYzAuLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3A3L2NlcnQucDdjCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3A3L3NtaW1lLnA3bSBiL2NyeXB0by9wa2NzNy9wNy9zbWltZS5wN20KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNmU2ZjguLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3A3L3NtaW1lLnA3bQorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy9wNy9zbWltZS5wN3MgYi9jcnlwdG8vcGtjczcvcDcvc21pbWUucDdzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjVkNGZiLi4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy9wNy9zbWltZS5wN3MKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jcnlwdG8vcGtjczcvcGtjczcuaCBiL2NyeXB0by9wa2NzNy9wa2NzNy5oCmluZGV4IDA0ZjYwMzcuLjVkNTRjNGEgMTAwNjQ0Ci0tLSBhL2NyeXB0by9wa2NzNy9wa2NzNy5oCisrKyBiL2NyeXB0by9wa2NzNy9wa2NzNy5oCkBAIC0yMzMsMTAgKzIzMyw2IEBACiAJCShPQkpfb2JqMm5pZCgoYSktPnR5cGUpID09IE5JRF9wa2NzN19zaWduZWRBbmRFbnZlbG9wZWQpCiAjZGVmaW5lIFBLQ1M3X3R5cGVfaXNfZGF0YShhKSAgIChPQkpfb2JqMm5pZCgoYSktPnR5cGUpID09IE5JRF9wa2NzN19kYXRhKQogI2RlZmluZSBQS0NTN190eXBlX2lzX2RpZ2VzdChhKSAgIChPQkpfb2JqMm5pZCgoYSktPnR5cGUpID09IE5JRF9wa2NzN19kaWdlc3QpCi0jZGVmaW5lIFBLQ1M3X3R5cGVfaXNfZW5jcnlwdGVkKGEpIFwKLQkJKE9CSl9vYmoybmlkKChhKS0+dHlwZSkgPT0gTklEX3BrY3M3X2VuY3J5cHRlZCkKLQotI2RlZmluZSBQS0NTN190eXBlX2lzX2RpZ2VzdChhKSAgIChPQkpfb2JqMm5pZCgoYSktPnR5cGUpID09IE5JRF9wa2NzN19kaWdlc3QpCiAKICNkZWZpbmUgUEtDUzdfc2V0X2RldGFjaGVkKHAsdikgXAogCQlQS0NTN19jdHJsKHAsUEtDUzdfT1BfU0VUX0RFVEFDSEVEX1NJR05BVFVSRSx2LE5VTEwpCmRpZmYgLS1naXQgYS9jcnlwdG8vcGtjczcvc2VydmVyLnBlbSBiL2NyeXB0by9wa2NzNy9zZXJ2ZXIucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NTBhYWMyLi4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy9zZXJ2ZXIucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotaXNzdWVyPSAvQz1BVS9TVD1RdWVlbnNsYW5kL089Q3J5cHRTb2Z0IFB0eSBMdGQvQ049VGVzdCBDQSAoMTAyNCBiaXQpCi1zdWJqZWN0PS9DPUFVL1NUPVF1ZWVuc2xhbmQvTz1DcnlwdFNvZnQgUHR5IEx0ZC9DTj1TZXJ2ZXIgdGVzdCBjZXJ0ICg1MTIgYml0KQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCNlRDQ0FWSUNBUUF3RFFZSktvWklodmNOQVFFRUJRQXdXekVMTUFrR0ExVUVCaE1DUVZVeEV6QVJCZ05WCi1CQWdUQ2xGMVpXVnVjMnhoYm1ReEdqQVlCZ05WQkFvVEVVTnllWEIwVTI5bWRDQlFkSGtnVEhSa01Sc3dHUVlECi1WUVFERXhKVVpYTjBJRU5CSUNneE1ESTBJR0pwZENrd0hoY05PVGN3TmpBNU1UTTFOelEyV2hjTk9UZ3dOakE1Ci1NVE0xTnpRMldqQmpNUXN3Q1FZRFZRUUdFd0pCVlRFVE1CRUdBMVVFQ0JNS1VYVmxaVzV6YkdGdVpERWFNQmdHCi1BMVVFQ2hNUlEzSjVjSFJUYjJaMElGQjBlU0JNZEdReEl6QWhCZ05WQkFNVEdsTmxjblpsY2lCMFpYTjBJR05sCi1jblFnS0RVeE1pQmlhWFFwTUZ3d0RRWUpLb1pJaHZjTkFRRUJCUUFEU3dBd1NBSkJBSit6dzRRbmxmOFNNVklQCi1GZTlHRWNTdGdPWTJXdy9kZ05kaGplRDhja1VKTlA1VlprVkRUR2lYYXY2b29LWGZYM2ovN3Rka3VEOEV5Mi8vCi1LdjcrdWUwQ0F3RUFBVEFOQmdrcWhraUc5dzBCQVFRRkFBT0JnUUI0VE1SMkN2YWNLRTl3QXN1OWp5Q1g4WWlXCi1tZ0NNK1lvUDZrdDRaa2oyejVJUmZtN1dyeWNLc25wbk9SK3RHZXFBamtDZVo2LzM2bzlsOTFSdlBuTjFWSi9pCi14UXYyZGYwS0ZlTXIwMElrRGRUTkFkSVdxRmtTc1pUQVkyUUFkZ2VuYjdNQjFqb2VqcXVZek8yRFFJTzcrd3BICi1pck9icEVTeEFaTHlTQ21QUGc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotTUlJQlBBSUJBQUpCQUorenc0UW5sZjhTTVZJUEZlOUdFY1N0Z09ZMld3L2RnTmRoamVEOGNrVUpOUDVWWmtWRAotVEdpWGF2Nm9vS1hmWDNqLzd0ZGt1RDhFeTIvL0t2Nyt1ZTBDQXdFQUFRSkFONlczMXZERVAyRGpkcWh6Q0REdQotT0E0TkFDcW9pRnF5YmxvN3ljMnRNNGg0eE1iQzNZeDVVS01OOVprQ3RYMGd6cno2RHlGNDdiZEtjV0J6TldDagotZ1FJaEFORW9valZ0N2hxK1NRNk1DTjZGVEF5c0dnUWY1NlEzVFlvSk1vV3ZkaVhWQWlFQXczZTNyYytWSnBPegotckh1RG82YmdwalVBQVhNK3YzZmNwc2ZaU05PNlY3a0NJUUN0YlZqYW5wVXd2WmtNSTlieTAyb1VrOXRha2kzYgotUHpQZkFmTlBZQWJDSlFJaEFKWE5RRFd5cXduL2xHbVIxMWNxWTJ5OW5aMSs1dzN5SEdhdExyY0RuUUh4QWlFQQotdm5sRUdvOEs4NXUrS3dJT2ltTTQ4Wkc4b1RrN2lGZGtxTEpSMXV0VDNhVT0KLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS9jcnlwdG8vcGtjczcvc2lnbi5jIGIvY3J5cHRvL3BrY3M3L3NpZ24uYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGI1OTg4NS4uMDAwMDAwMAotLS0gYS9jcnlwdG8vcGtjczcvc2lnbi5jCisrKyAvZGV2L251bGwKQEAgLTEsMTU0ICswLDAgQEAKLS8qIGNyeXB0by9wa2NzNy9zaWduLmMgKi8KLS8qIENvcHlyaWdodCAoQykgMTk5NS0xOTk4IEVyaWMgWW91bmcgKGVheUBjcnlwdHNvZnQuY29tKQotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIHBhY2thZ2UgaXMgYW4gU1NMIGltcGxlbWVudGF0aW9uIHdyaXR0ZW4KLSAqIGJ5IEVyaWMgWW91bmcgKGVheUBjcnlwdHNvZnQuY29tKS4KLSAqIFRoZSBpbXBsZW1lbnRhdGlvbiB3YXMgd3JpdHRlbiBzbyBhcyB0byBjb25mb3JtIHdpdGggTmV0c2NhcGVzIFNTTC4KLSAqIAotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgZm9yIGNvbW1lcmNpYWwgYW5kIG5vbi1jb21tZXJjaWFsIHVzZSBhcyBsb25nIGFzCi0gKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIGFoZWFyZWQgdG8uICBUaGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFwcGx5IHRvIGFsbCBjb2RlIGZvdW5kIGluIHRoaXMgZGlzdHJpYnV0aW9uLCBiZSBpdCB0aGUgUkM0LCBSU0EsCi0gKiBsaGFzaCwgREVTLCBldGMuLCBjb2RlOyBub3QganVzdCB0aGUgU1NMIGNvZGUuICBUaGUgU1NMIGRvY3VtZW50YXRpb24KLSAqIGluY2x1ZGVkIHdpdGggdGhpcyBkaXN0cmlidXRpb24gaXMgY292ZXJlZCBieSB0aGUgc2FtZSBjb3B5cmlnaHQgdGVybXMKLSAqIGV4Y2VwdCB0aGF0IHRoZSBob2xkZXIgaXMgVGltIEh1ZHNvbiAodGpoQGNyeXB0c29mdC5jb20pLgotICogCi0gKiBDb3B5cmlnaHQgcmVtYWlucyBFcmljIFlvdW5nJ3MsIGFuZCBhcyBzdWNoIGFueSBDb3B5cmlnaHQgbm90aWNlcyBpbgotICogdGhlIGNvZGUgYXJlIG5vdCB0byBiZSByZW1vdmVkLgotICogSWYgdGhpcyBwYWNrYWdlIGlzIHVzZWQgaW4gYSBwcm9kdWN0LCBFcmljIFlvdW5nIHNob3VsZCBiZSBnaXZlbiBhdHRyaWJ1dGlvbgotICogYXMgdGhlIGF1dGhvciBvZiB0aGUgcGFydHMgb2YgdGhlIGxpYnJhcnkgdXNlZC4KLSAqIFRoaXMgY2FuIGJlIGluIHRoZSBmb3JtIG9mIGEgdGV4dHVhbCBtZXNzYWdlIGF0IHByb2dyYW0gc3RhcnR1cCBvcgotICogaW4gZG9jdW1lbnRhdGlvbiAob25saW5lIG9yIHRleHR1YWwpIHByb3ZpZGVkIHdpdGggdGhlIHBhY2thZ2UuCi0gKiAKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCi0gKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6Ci0gKiAgICAiVGhpcyBwcm9kdWN0IGluY2x1ZGVzIGNyeXB0b2dyYXBoaWMgc29mdHdhcmUgd3JpdHRlbiBieQotICogICAgIEVyaWMgWW91bmcgKGVheUBjcnlwdHNvZnQuY29tKSIKLSAqICAgIFRoZSB3b3JkICdjcnlwdG9ncmFwaGljJyBjYW4gYmUgbGVmdCBvdXQgaWYgdGhlIHJvdWluZXMgZnJvbSB0aGUgbGlicmFyeQotICogICAgYmVpbmcgdXNlZCBhcmUgbm90IGNyeXB0b2dyYXBoaWMgcmVsYXRlZCA6LSkuCi0gKiA0LiBJZiB5b3UgaW5jbHVkZSBhbnkgV2luZG93cyBzcGVjaWZpYyBjb2RlIChvciBhIGRlcml2YXRpdmUgdGhlcmVvZikgZnJvbSAKLSAqICAgIHRoZSBhcHBzIGRpcmVjdG9yeSAoYXBwbGljYXRpb24gY29kZSkgeW91IG11c3QgaW5jbHVkZSBhbiBhY2tub3dsZWRnZW1lbnQ6Ci0gKiAgICAiVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIHdyaXR0ZW4gYnkgVGltIEh1ZHNvbiAodGpoQGNyeXB0c29mdC5jb20pIgotICogCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEVSSUMgWU9VTkcgYGBBUyBJUycnIEFORAotICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKLSAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0gKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwotICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCi0gKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAotICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQotICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotICogU1VDSCBEQU1BR0UuCi0gKiAKLSAqIFRoZSBsaWNlbmNlIGFuZCBkaXN0cmlidXRpb24gdGVybXMgZm9yIGFueSBwdWJsaWNhbGx5IGF2YWlsYWJsZSB2ZXJzaW9uIG9yCi0gKiBkZXJpdmF0aXZlIG9mIHRoaXMgY29kZSBjYW5ub3QgYmUgY2hhbmdlZC4gIGkuZS4gdGhpcyBjb2RlIGNhbm5vdCBzaW1wbHkgYmUKLSAqIGNvcGllZCBhbmQgcHV0IHVuZGVyIGFub3RoZXIgZGlzdHJpYnV0aW9uIGxpY2VuY2UKLSAqIFtpbmNsdWRpbmcgdGhlIEdOVSBQdWJsaWMgTGljZW5jZS5dCi0gKi8KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPG9wZW5zc2wvYmlvLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC94NTA5Lmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9wZW0uaD4KLSNpbmNsdWRlIDxvcGVuc3NsL2Vyci5oPgotCi1pbnQgbWFpbihhcmdjLGFyZ3YpCi1pbnQgYXJnYzsKLWNoYXIgKmFyZ3ZbXTsKLQl7Ci0JWDUwOSAqeDUwOTsKLQlFVlBfUEtFWSAqcGtleTsKLQlQS0NTNyAqcDc7Ci0JUEtDUzdfU0lHTkVSX0lORk8gKnNpOwotCUJJTyAqaW47Ci0JQklPICpkYXRhLCpwN2JpbzsKLQljaGFyIGJ1ZlsxMDI0KjRdOwotCWludCBpOwotCWludCBub2RldGFjaD0wOwotCi0jaWZuZGVmIE9QRU5TU0xfTk9fTUQyCi0JRVZQX2FkZF9kaWdlc3QoRVZQX21kMigpKTsKLSNlbmRpZgotI2lmbmRlZiBPUEVOU1NMX05PX01ENQotCUVWUF9hZGRfZGlnZXN0KEVWUF9tZDUoKSk7Ci0jZW5kaWYKLSNpZm5kZWYgT1BFTlNTTF9OT19TSEExCi0JRVZQX2FkZF9kaWdlc3QoRVZQX3NoYTEoKSk7Ci0jZW5kaWYKLSNpZm5kZWYgT1BFTlNTTF9OT19NREMyCi0JRVZQX2FkZF9kaWdlc3QoRVZQX21kYzIoKSk7Ci0jZW5kaWYKLQotCWRhdGE9QklPX25ldyhCSU9fc19maWxlKCkpOwotYWdhaW46Ci0JaWYgKGFyZ2MgPiAxKQotCQl7Ci0JCWlmIChzdHJjbXAoYXJndlsxXSwiLW5kIikgPT0gMCkKLQkJCXsKLQkJCW5vZGV0YWNoPTE7Ci0JCQlhcmd2Kys7IGFyZ2MtLTsKLQkJCWdvdG8gYWdhaW47Ci0JCQl9Ci0JCWlmICghQklPX3JlYWRfZmlsZW5hbWUoZGF0YSxhcmd2WzFdKSkKLQkJCWdvdG8gZXJyOwotCQl9Ci0JZWxzZQotCQlCSU9fc2V0X2ZwKGRhdGEsc3RkaW4sQklPX05PQ0xPU0UpOwotCi0JaWYgKChpbj1CSU9fbmV3X2ZpbGUoInNlcnZlci5wZW0iLCJyIikpID09IE5VTEwpIGdvdG8gZXJyOwotCWlmICgoeDUwOT1QRU1fcmVhZF9iaW9fWDUwOShpbixOVUxMLE5VTEwsTlVMTCkpID09IE5VTEwpIGdvdG8gZXJyOwotCUJJT19yZXNldChpbik7Ci0JaWYgKChwa2V5PVBFTV9yZWFkX2Jpb19Qcml2YXRlS2V5KGluLE5VTEwsTlVMTCxOVUxMKSkgPT0gTlVMTCkgZ290byBlcnI7Ci0JQklPX2ZyZWUoaW4pOwotCi0JcDc9UEtDUzdfbmV3KCk7Ci0JUEtDUzdfc2V0X3R5cGUocDcsTklEX3BrY3M3X3NpZ25lZCk7Ci0JIAotCXNpPVBLQ1M3X2FkZF9zaWduYXR1cmUocDcseDUwOSxwa2V5LEVWUF9zaGExKCkpOwotCWlmIChzaSA9PSBOVUxMKSBnb3RvIGVycjsKLQotCS8qIElmIHlvdSBkbyB0aGlzIHRoZW4geW91IGdldCBzaWduaW5nIHRpbWUgYXV0b21hdGljYWxseSBhZGRlZCAqLwotCVBLQ1M3X2FkZF9zaWduZWRfYXR0cmlidXRlKHNpLCBOSURfcGtjczlfY29udGVudFR5cGUsIFZfQVNOMV9PQkpFQ1QsCi0JCQkJCQlPQkpfbmlkMm9iaihOSURfcGtjczdfZGF0YSkpOwotCi0JLyogd2UgbWF5IHdhbnQgdG8gYWRkIG1vcmUgKi8KLQlQS0NTN19hZGRfY2VydGlmaWNhdGUocDcseDUwOSk7Ci0KLQkvKiBTZXQgdGhlIGNvbnRlbnQgb2YgdGhlIHNpZ25lZCB0byAnZGF0YScgKi8KLQlQS0NTN19jb250ZW50X25ldyhwNyxOSURfcGtjczdfZGF0YSk7Ci0KLQlpZiAoIW5vZGV0YWNoKQotCQlQS0NTN19zZXRfZGV0YWNoZWQocDcsMSk7Ci0KLQlpZiAoKHA3YmlvPVBLQ1M3X2RhdGFJbml0KHA3LE5VTEwpKSA9PSBOVUxMKSBnb3RvIGVycjsKLQotCWZvciAoOzspCi0JCXsKLQkJaT1CSU9fcmVhZChkYXRhLGJ1ZixzaXplb2YoYnVmKSk7Ci0JCWlmIChpIDw9IDApIGJyZWFrOwotCQlCSU9fd3JpdGUocDdiaW8sYnVmLGkpOwotCQl9Ci0KLQlpZiAoIVBLQ1M3X2RhdGFGaW5hbChwNyxwN2JpbykpIGdvdG8gZXJyOwotCUJJT19mcmVlKHA3YmlvKTsKLQotCVBFTV93cml0ZV9QS0NTNyhzdGRvdXQscDcpOwotCVBLQ1M3X2ZyZWUocDcpOwotCi0JZXhpdCgwKTsKLWVycjoKLQlFUlJfbG9hZF9jcnlwdG9fc3RyaW5ncygpOwotCUVSUl9wcmludF9lcnJvcnNfZnAoc3RkZXJyKTsKLQlleGl0KDEpOwotCX0KLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3QvM2Rlcy5wZW0gYi9jcnlwdG8vcGtjczcvdC8zZGVzLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjJiNTA4MS4uMDAwMDAwMAotLS0gYS9jcnlwdG8vcGtjczcvdC8zZGVzLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLS0tLS0tQkVHSU4gUEtDUzctLS0tLQotTUlBR0NTcUdTSWIzRFFFSEE2Q0FNSUFDQVFBeGdnSG1NSUh3QWdFQU1JR1pNSUdTTVFzd0NRWURWUVFHRXdKQlZURVRNQkVHCi1BMVVFQ0JNS1VYVmxaVzV6YkdGdVpERVJNQThHQTFVRUJ4TUlRbkpwYzJKaGJtVXhHakFZQmdOVkJBb1RFVU55ZVhCMGMyOW0KLWRDQlFkSGtnVEhSa01TSXdJQVlEVlFRTEV4bEVSVTFQVGxOVVVrRlVTVTlPSUVGT1JDQlVSVk5VU1U1SE1Sc3dHUVlEVlFRRAotRXhKRVJVMVBJRnBGVWs4Z1ZrRk1WVVVnUTBFQ0FnUitNQTBHQ1NxR1NJYjNEUUVCQVFVQUJFQzJ2WEkxeFFEVzZsVUhNM3pRCi0vOXVCRUJPTzVBM1R0a3JrbEFYcTd2MDFnc0lDMjF0NTJxU2szNlJFWFkrc2xoTlowT1EzNDl0Z2tUc29FVEhGTG9Fd01JSHcKLUFnRUFNSUdaTUlHU01Rc3dDUVlEVlFRR0V3SkJWVEVUTUJFR0ExVUVDQk1LVVhWbFpXNXpiR0Z1WkRFUk1BOEdBMVVFQnhNSQotUW5KcGMySmhibVV4R2pBWUJnTlZCQW9URVVOeWVYQjBjMjltZENCUWRIa2dUSFJrTVNJd0lBWURWUVFMRXhsRVJVMVBUbE5VCi1Va0ZVU1U5T0lFRk9SQ0JVUlZOVVNVNUhNUnN3R1FZRFZRUURFeEpFUlUxUElGcEZVazhnVmtGTVZVVWdRMEVDQWdSOU1BMEcKLUNTcUdTSWIzRFFFQkFRVUFCRUI4dWp4YmFieFhVWUpob3B1RG0zb0RxNEpOcVg2SW80cDNybytTaHFmSW5kc1hUWjF2NWEyTgotV3RMTENXbEhuL2hhYmpCd1ovRGdRZ2NLQVNiWjdReE5NSUFHQ1NxR1NJYjNEUUVIQVRBYUJnZ3Foa2lHOXcwREFqQU9BZ0lBCi1vQVFJYnNMNXYxd1g5OEtnZ0FRb0FhSjRXSG02OGZYWTFXRTVPSWpmVkJJRHBPMUsraThkbUtoam5BanJqb3laOUJ3YzhyREwKLWxnUWc0Q1hiODA1aDV4bCtHZnZTd1VhSEpheXRlMW0ybWNPaHMzSjJZeXFiUStNRUlNSWlKUWNjbWhPM29ES20zNkNGdllSOAotNVBqcGNsVmNaeVgybmdid1BGTW5CQWd5MGNsT0FFNlVLQUFBQUFBQUFBQUFBQUE9Ci0tLS0tLUVORCBQS0NTNy0tLS0tCi0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy90LzNkZXNzLnBlbSBiL2NyeXB0by9wa2NzNy90LzNkZXNzLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjNmMDEzNS4uMDAwMDAwMAotLS0gYS9jcnlwdG8vcGtjczcvdC8zZGVzcy5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi0tLS0tLUJFR0lOIFBLQ1M3LS0tLS0KLU1JSUdIZ1lKS29aSWh2Y05BUWNDb0lJR0R6Q0NCZ3NDQVFFeEN6QUpCZ1VyRGdNQ0dnVUFNQXNHQ1NxR1NJYjNEUUVIQWFDQwotQkdzd2dnSlRNSUlCL2FBREFnRUNBZ0lFZmpBTkJna3Foa2lHOXcwQkFRUUZBRENCa2pFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSCi1CZ05WQkFnVENsRjFaV1Z1YzJ4aGJtUXhFVEFQQmdOVkJBY1RDRUp5YVhOaVlXNWxNUm93R0FZRFZRUUtFeEZEY25sd2RITnYKLVpuUWdVSFI1SUV4MFpERWlNQ0FHQTFVRUN4TVpSRVZOVDA1VFZGSkJWRWxQVGlCQlRrUWdWRVZUVkVsT1J6RWJNQmtHQTFVRQotQXhNU1JFVk5UeUJhUlZKUElGWkJURlZGSUVOQk1CNFhEVGs0TURVeE16QTJNalkxTmxvWERUQXdNRFV4TWpBMk1qWTFObG93Ci1nYVV4Q3pBSkJnTlZCQVlUQWtGVk1STXdFUVlEVlFRSUV3cFJkV1ZsYm5Oc1lXNWtNUkV3RHdZRFZRUUhFd2hDY21selltRnUKLVpURWFNQmdHQTFVRUNoTVJRM0o1Y0hSemIyWjBJRkIwZVNCTWRHUXhFakFRQmdOVkJBc1RDVk5OU1UxRklEQXdNekVaTUJjRwotQTFVRUF4TVFRVzVuWld4aElIWmhiaUJNWldWdWRERWpNQ0VHQ1NxR1NJYjNEUUVKQVJZVVlXNW5aV3hoUUdOeWVYQjBjMjltCi1kQzVqYjIwd1hEQU5CZ2txaGtpRzl3MEJBUUVGQUFOTEFEQklBa0VBdUMzKzdkQWIyTGh1TzdndDJjVE04dnNOamhHNUpmRGgKLWhYMVZsL3dWR2JLRUVqME1BNnZXRW9sdmVmUWx4QitFendDdFIwWVo3ZUVDL1QvNEpvQ3llUUlEQVFBQm95Z3dKakFrQmdsZwotaGtnQmh2aENBUTBFRnhZVlIyVnVaWEpoZEdWa0lIZHBkR2dnVTFOTVpXRjVNQTBHQ1NxR1NJYjNEUUVCQkFVQUEwRUFVblNQCi1pZ3M2VE1GSVNUanc4Y0J0SlliOThjemdBVmtWRmpLeUpRd1lNSDhGYkRuQ3l4Nk5vY001NTVuc3lEc3RhdzhmS1IxMUtoZHMKLXN5ZDNpa2tyaERDQ0FoQXdnZ0c2QWdFRE1BMEdDU3FHU0liM0RRRUJCQVVBTUlHU01Rc3dDUVlEVlFRR0V3SkJWVEVUTUJFRwotQTFVRUNCTUtVWFZsWlc1emJHRnVaREVSTUE4R0ExVUVCeE1JUW5KcGMySmhibVV4R2pBWUJnTlZCQW9URVVOeWVYQjBjMjltCi1kQ0JRZEhrZ1RIUmtNU0l3SUFZRFZRUUxFeGxFUlUxUFRsTlVVa0ZVU1U5T0lFRk9SQ0JVUlZOVVNVNUhNUnN3R1FZRFZRUUQKLUV4SkVSVTFQSUZwRlVrOGdWa0ZNVlVVZ1EwRXdIaGNOT1Rnd016QXpNRGMwTVRNeVdoY05NRGd3TWpJNU1EYzBNVE15V2pDQgota2pFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSQmdOVkJBZ1RDbEYxWldWdWMyeGhibVF4RVRBUEJnTlZCQWNUQ0VKeWFYTmlZVzVsCi1NUm93R0FZRFZRUUtFeEZEY25sd2RITnZablFnVUhSNUlFeDBaREVpTUNBR0ExVUVDeE1aUkVWTlQwNVRWRkpCVkVsUFRpQkIKLVRrUWdWRVZUVkVsT1J6RWJNQmtHQTFVRUF4TVNSRVZOVHlCYVJWSlBJRlpCVEZWRklFTkJNRnd3RFFZSktvWklodmNOQVFFQgotQlFBRFN3QXdTQUpCQUwrMEUyZkxlajNGU0N3ZTJBMmlSbk11QzN6MTJxSElwNkt5MXdvMnpaY3hmdDdBSStSZmtyV3JTR3RmCi1tZnpCRXVQckxkZnVsbmNDNVkxcE5jTThSVFVDQXdFQUFUQU5CZ2txaGtpRzl3MEJBUVFGQUFOQkFHU2JMTXBoTDZGNXBwM3MKLThvMFh5aDg2RkhGZHBWT3dZeDA5RUxMa3VHMTdWL1A5cGdJYzBFby9nRE1iTitLVDNJZGdFQ2Y4Uy8vcENSQTZSck5qY1hJeAotZ2dGN01JSUJkd0lCQVRDQm1UQ0JrakVMTUFrR0ExVUVCaE1DUVZVeEV6QVJCZ05WQkFnVENsRjFaV1Z1YzJ4aGJtUXhFVEFQCi1CZ05WQkFjVENFSnlhWE5pWVc1bE1Sb3dHQVlEVlFRS0V4RkRjbmx3ZEhOdlpuUWdVSFI1SUV4MFpERWlNQ0FHQTFVRUN4TVoKLVJFVk5UMDVUVkZKQlZFbFBUaUJCVGtRZ1ZFVlRWRWxPUnpFYk1Ca0dBMVVFQXhNU1JFVk5UeUJhUlZKUElGWkJURlZGSUVOQgotQWdJRWZqQUpCZ1VyRGdNQ0dnVUFvSG93R0FZSktvWklodmNOQVFrRE1Rc0dDU3FHU0liM0RRRUhBVEFiQmdrcWhraUc5dzBCCi1DUTh4RGpBTU1Bb0dDQ3FHU0liM0RRTUhNQndHQ1NxR1NJYjNEUUVKQlRFUEZ3MDVPREExTVRRd016TTVNemRhTUNNR0NTcUcKLVNJYjNEUUVKQkRFV0JCUXN0Tk1uU1YyNmJhOFBhcFFFRGhPMjF5TkZyakFOQmdrcWhraUc5dzBCQVFFRkFBUkFXOVhiOVlYdgotQmZjTmt1dGdGWDlHcjhpWGhCVnNOdEdFVnJqcnBrUXdwS2E3akhJOFNqQWxMaGsvNFJGd0RIZitJU0I5TnAzWjFXRFduTGNBCi05Q1dSNmc9PQotLS0tLS1FTkQgUEtDUzctLS0tLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3QvYy5wZW0gYi9jcnlwdG8vcGtjczcvdC9jLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTRiNTVlMy4uMDAwMDAwMAotLS0gYS9jcnlwdG8vcGtjczcvdC9jLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLWlzc3VlciA6L0M9QVUvU1A9UXVlZW5zbGFuZC9MPUJyaXNiYW5lL089Q3J5cHRzb2Z0IFB0eSBMdGQvT1U9REVNT05TVFJBVElPTiBBTkQgVEVTVElORy9DTj1ERU1PIFpFUk8gVkFMVUUgQ0EKLXN1YmplY3Q6L0M9QVUvU1A9UXVlZW5zbGFuZC9MPUJyaXNiYW5lL089Q3J5cHRzb2Z0IFB0eSBMdGQvT1U9U01JTUUgMDAzL0NOPUluZm9ybWF0aW9uL0VtYWlsPWluZm9AY3J5cHRzb2Z0LmNvbQotc2VyaWFsIDowNDdECi0KLUNlcnRpZmljYXRlOgotICAgIERhdGE6Ci0gICAgICAgIFZlcnNpb246IDMgKDB4MikKLSAgICAgICAgU2VyaWFsIE51bWJlcjogMTE0OSAoMHg0N2QpCi0gICAgICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IG1kNXdpdGhSU0FFbmNyeXB0aW9uCi0gICAgICAgIElzc3VlcjogQz1BVSwgU1A9UXVlZW5zbGFuZCwgTD1CcmlzYmFuZSwgTz1DcnlwdHNvZnQgUHR5IEx0ZCwgT1U9REVNT05TVFJBVElPTiBBTkQgVEVTVElORywgQ049REVNTyBaRVJPIFZBTFVFIENBCi0gICAgICAgIFZhbGlkaXR5Ci0gICAgICAgICAgICBOb3QgQmVmb3JlOiBNYXkgMTMgMDU6NDA6NTggMTk5OCBHTVQKLSAgICAgICAgICAgIE5vdCBBZnRlciA6IE1heSAxMiAwNTo0MDo1OCAyMDAwIEdNVAotICAgICAgICBTdWJqZWN0OiBDPUFVLCBTUD1RdWVlbnNsYW5kLCBMPUJyaXNiYW5lLCBPPUNyeXB0c29mdCBQdHkgTHRkLCBPVT1TTUlNRSAwMDMsIENOPUluZm9ybWF0aW9uL0VtYWlsPWluZm9AY3J5cHRzb2Z0LmNvbQotICAgICAgICBTdWJqZWN0IFB1YmxpYyBLZXkgSW5mbzoKLSAgICAgICAgICAgIFB1YmxpYyBLZXkgQWxnb3JpdGhtOiByc2FFbmNyeXB0aW9uCi0gICAgICAgICAgICAgICAgTW9kdWx1czoKLSAgICAgICAgICAgICAgICAgICAgMDA6YWQ6ZTc6MjM6ODk6ZWU6MGQ6ODc6Yjc6OWM6MzI6NDQ6NGI6OTU6ODE6Ci0gICAgICAgICAgICAgICAgICAgIDczOmRkOjIyOjgwOjRiOjJkOmM1OjYwOmI4OmZlOjFlOjE4OjYzOmVmOmRjOgotICAgICAgICAgICAgICAgICAgICA4OTo4OToyMjpkZjo5NTozYzo3YTpkYjozZDo5YTowNjphODowODpkNjoyOToKLSAgICAgICAgICAgICAgICAgICAgZmQ6ZWY6NDE6MDk6OTE6ZWQ6YmM6YWQ6OTg6Zjk6ZjY6Mjg6OTA6NjI6NmY6Ci0gICAgICAgICAgICAgICAgICAgIGU3OmU3OjBjOjRkOjBiCi0gICAgICAgICAgICAgICAgRXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQotICAgICAgICBYNTA5djMgZXh0ZW5zaW9uczoKLSAgICAgICAgICAgIE5ldHNjYXBlIENvbW1lbnQ6IAotICAgICAgICAgICAgICAgIEdlbmVyYXRlZCB3aXRoIFNTTGVheQotICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IG1kNXdpdGhSU0FFbmNyeXB0aW9uCi0gICAgICAgIDUyOjE1OmVhOjg4OmY0OmYwOmY5OjBiOmVmOmNlOmQ1OmY4OjgzOjQwOjYxOjE2OjVlOjU1OgotICAgICAgICBmOTpjZToyZDpkMTo4YjozMTo1YzowMzpjNjoyZDoxMDo3Yzo2MTpkNTo1YzowYTo0Mjo5NzoKLSAgICAgICAgZDE6ZmQ6NjU6YjY6YjY6ODQ6YTU6Mzk6ZWM6NDY6ZWM6ZmM6ZTA6MGQ6ZDk6MjI6ZGE6MWI6Ci0gICAgICAgIDUwOjc0OmFkOjkyOmNiOjRlOjkwOmU1OmZhOjdkCi0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQ1REQ0NBZmFnQXdJQkFnSUNCSDB3RFFZSktvWklodmNOQVFFRUJRQXdnWkl4Q3pBSkJnTlZCQVlUQWtGVgotTVJNd0VRWURWUVFJRXdwUmRXVmxibk5zWVc1a01SRXdEd1lEVlFRSEV3aENjbWx6WW1GdVpURWFNQmdHQTFVRQotQ2hNUlEzSjVjSFJ6YjJaMElGQjBlU0JNZEdReElqQWdCZ05WQkFzVEdVUkZUVTlPVTFSU1FWUkpUMDRnUVU1RQotSUZSRlUxUkpUa2N4R3pBWkJnTlZCQU1URWtSRlRVOGdXa1ZTVHlCV1FVeFZSU0JEUVRBZUZ3MDVPREExTVRNdwotTlRRd05UaGFGdzB3TURBMU1USXdOVFF3TlRoYU1JR2VNUXN3Q1FZRFZRUUdFd0pCVlRFVE1CRUdBMVVFQ0JNSwotVVhWbFpXNXpiR0Z1WkRFUk1BOEdBMVVFQnhNSVFuSnBjMkpoYm1VeEdqQVlCZ05WQkFvVEVVTnllWEIwYzI5bQotZENCUWRIa2dUSFJrTVJJd0VBWURWUVFMRXdsVFRVbE5SU0F3TURNeEZEQVNCZ05WQkFNVEMwbHVabTl5YldGMAotYVc5dU1TRXdId1lKS29aSWh2Y05BUWtCRmhKcGJtWnZRR055ZVhCMGMyOW1kQzVqYjIwd1hEQU5CZ2txaGtpRwotOXcwQkFRRUZBQU5MQURCSUFrRUFyZWNqaWU0Tmg3ZWNNa1JMbFlGejNTS0FTeTNGWUxqK0hoaGo3OXlKaVNMZgotbFR4NjJ6MmFCcWdJMWluOTcwRUprZTI4clpqNTlpaVFZbS9uNXd4TkN3SURBUUFCb3lnd0pqQWtCZ2xnaGtnQgotaHZoQ0FRMEVGeFlWUjJWdVpYSmhkR1ZrSUhkcGRHZ2dVMU5NWldGNU1BMEdDU3FHU0liM0RRRUJCQVVBQTBFQQotVWhYcWlQVHcrUXZ2enRYNGcwQmhGbDVWK2M0dDBZc3hYQVBHTFJCOFlkVmNDa0tYMGYxbHRyYUVwVG5zUnV6OAotNEEzWkl0b2JVSFN0a3N0T2tPWDZmUT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy90L2ZmIGIvY3J5cHRvL3BrY3M3L3QvZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzZjAxMzUuLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3QvZmYKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi0tLS0tLUJFR0lOIFBLQ1M3LS0tLS0KLU1JSUdIZ1lKS29aSWh2Y05BUWNDb0lJR0R6Q0NCZ3NDQVFFeEN6QUpCZ1VyRGdNQ0dnVUFNQXNHQ1NxR1NJYjNEUUVIQWFDQwotQkdzd2dnSlRNSUlCL2FBREFnRUNBZ0lFZmpBTkJna3Foa2lHOXcwQkFRUUZBRENCa2pFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSCi1CZ05WQkFnVENsRjFaV1Z1YzJ4aGJtUXhFVEFQQmdOVkJBY1RDRUp5YVhOaVlXNWxNUm93R0FZRFZRUUtFeEZEY25sd2RITnYKLVpuUWdVSFI1SUV4MFpERWlNQ0FHQTFVRUN4TVpSRVZOVDA1VFZGSkJWRWxQVGlCQlRrUWdWRVZUVkVsT1J6RWJNQmtHQTFVRQotQXhNU1JFVk5UeUJhUlZKUElGWkJURlZGSUVOQk1CNFhEVGs0TURVeE16QTJNalkxTmxvWERUQXdNRFV4TWpBMk1qWTFObG93Ci1nYVV4Q3pBSkJnTlZCQVlUQWtGVk1STXdFUVlEVlFRSUV3cFJkV1ZsYm5Oc1lXNWtNUkV3RHdZRFZRUUhFd2hDY21selltRnUKLVpURWFNQmdHQTFVRUNoTVJRM0o1Y0hSemIyWjBJRkIwZVNCTWRHUXhFakFRQmdOVkJBc1RDVk5OU1UxRklEQXdNekVaTUJjRwotQTFVRUF4TVFRVzVuWld4aElIWmhiaUJNWldWdWRERWpNQ0VHQ1NxR1NJYjNEUUVKQVJZVVlXNW5aV3hoUUdOeWVYQjBjMjltCi1kQzVqYjIwd1hEQU5CZ2txaGtpRzl3MEJBUUVGQUFOTEFEQklBa0VBdUMzKzdkQWIyTGh1TzdndDJjVE04dnNOamhHNUpmRGgKLWhYMVZsL3dWR2JLRUVqME1BNnZXRW9sdmVmUWx4QitFendDdFIwWVo3ZUVDL1QvNEpvQ3llUUlEQVFBQm95Z3dKakFrQmdsZwotaGtnQmh2aENBUTBFRnhZVlIyVnVaWEpoZEdWa0lIZHBkR2dnVTFOTVpXRjVNQTBHQ1NxR1NJYjNEUUVCQkFVQUEwRUFVblNQCi1pZ3M2VE1GSVNUanc4Y0J0SlliOThjemdBVmtWRmpLeUpRd1lNSDhGYkRuQ3l4Nk5vY001NTVuc3lEc3RhdzhmS1IxMUtoZHMKLXN5ZDNpa2tyaERDQ0FoQXdnZ0c2QWdFRE1BMEdDU3FHU0liM0RRRUJCQVVBTUlHU01Rc3dDUVlEVlFRR0V3SkJWVEVUTUJFRwotQTFVRUNCTUtVWFZsWlc1emJHRnVaREVSTUE4R0ExVUVCeE1JUW5KcGMySmhibVV4R2pBWUJnTlZCQW9URVVOeWVYQjBjMjltCi1kQ0JRZEhrZ1RIUmtNU0l3SUFZRFZRUUxFeGxFUlUxUFRsTlVVa0ZVU1U5T0lFRk9SQ0JVUlZOVVNVNUhNUnN3R1FZRFZRUUQKLUV4SkVSVTFQSUZwRlVrOGdWa0ZNVlVVZ1EwRXdIaGNOT1Rnd016QXpNRGMwTVRNeVdoY05NRGd3TWpJNU1EYzBNVE15V2pDQgota2pFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSQmdOVkJBZ1RDbEYxWldWdWMyeGhibVF4RVRBUEJnTlZCQWNUQ0VKeWFYTmlZVzVsCi1NUm93R0FZRFZRUUtFeEZEY25sd2RITnZablFnVUhSNUlFeDBaREVpTUNBR0ExVUVDeE1aUkVWTlQwNVRWRkpCVkVsUFRpQkIKLVRrUWdWRVZUVkVsT1J6RWJNQmtHQTFVRUF4TVNSRVZOVHlCYVJWSlBJRlpCVEZWRklFTkJNRnd3RFFZSktvWklodmNOQVFFQgotQlFBRFN3QXdTQUpCQUwrMEUyZkxlajNGU0N3ZTJBMmlSbk11QzN6MTJxSElwNkt5MXdvMnpaY3hmdDdBSStSZmtyV3JTR3RmCi1tZnpCRXVQckxkZnVsbmNDNVkxcE5jTThSVFVDQXdFQUFUQU5CZ2txaGtpRzl3MEJBUVFGQUFOQkFHU2JMTXBoTDZGNXBwM3MKLThvMFh5aDg2RkhGZHBWT3dZeDA5RUxMa3VHMTdWL1A5cGdJYzBFby9nRE1iTitLVDNJZGdFQ2Y4Uy8vcENSQTZSck5qY1hJeAotZ2dGN01JSUJkd0lCQVRDQm1UQ0JrakVMTUFrR0ExVUVCaE1DUVZVeEV6QVJCZ05WQkFnVENsRjFaV1Z1YzJ4aGJtUXhFVEFQCi1CZ05WQkFjVENFSnlhWE5pWVc1bE1Sb3dHQVlEVlFRS0V4RkRjbmx3ZEhOdlpuUWdVSFI1SUV4MFpERWlNQ0FHQTFVRUN4TVoKLVJFVk5UMDVUVkZKQlZFbFBUaUJCVGtRZ1ZFVlRWRWxPUnpFYk1Ca0dBMVVFQXhNU1JFVk5UeUJhUlZKUElGWkJURlZGSUVOQgotQWdJRWZqQUpCZ1VyRGdNQ0dnVUFvSG93R0FZSktvWklodmNOQVFrRE1Rc0dDU3FHU0liM0RRRUhBVEFiQmdrcWhraUc5dzBCCi1DUTh4RGpBTU1Bb0dDQ3FHU0liM0RRTUhNQndHQ1NxR1NJYjNEUUVKQlRFUEZ3MDVPREExTVRRd016TTVNemRhTUNNR0NTcUcKLVNJYjNEUUVKQkRFV0JCUXN0Tk1uU1YyNmJhOFBhcFFFRGhPMjF5TkZyakFOQmdrcWhraUc5dzBCQVFFRkFBUkFXOVhiOVlYdgotQmZjTmt1dGdGWDlHcjhpWGhCVnNOdEdFVnJqcnBrUXdwS2E3akhJOFNqQWxMaGsvNFJGd0RIZitJU0I5TnAzWjFXRFduTGNBCi05Q1dSNmc9PQotLS0tLS1FTkQgUEtDUzctLS0tLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3QvbXNpZS1lIGIvY3J5cHRvL3BrY3M3L3QvbXNpZS1lCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYWZhZTY5Li4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy90L21zaWUtZQorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLQotTUlBR0NTcUdTSWIzRFFFSEE2Q0FNSUFDQVFBeGdnSENNSUhNQWdFQU1IWXdZakVSTUE4R0ExVUVCeE1JU1c1MFpYSnVaWFF4RnpBVgotQmdOVkJBb1REbFpsY21sVGFXZHVMQ0JKYm1NdU1UUXdNZ1lEVlFRTEV5dFdaWEpwVTJsbmJpQkRiR0Z6Y3lBeElFTkJJQzBnU1c1awotYVhacFpIVmhiQ0JUZFdKelkzSnBZbVZ5QWhCZ1FKaUMzcWZiQ2JqZGo1SU5ZTG5LTUEwR0NTcUdTSWIzRFFFQkFRVUFCRUNNenU4eQotd1EvcVpiTzhjQUdNUkJGK21QcnV2MytEdmI5YVdOWjJrOG5qVWdxRjZtY2RoVkIyTWtHY3NHM21lbVJYSkJpeHZNWVdWa1UzcUs0WgotVnVLc01JSHdBZ0VBTUlHWk1JR1NNUXN3Q1FZRFZRUUdFd0pCVlRFVE1CRUdBMVVFQ0JNS1VYVmxaVzV6YkdGdVpERVJNQThHQTFVRQotQnhNSVFuSnBjMkpoYm1VeEdqQVlCZ05WQkFvVEVVTnllWEIwYzI5bWRDQlFkSGtnVEhSa01TSXdJQVlEVlFRTEV4bEVSVTFQVGxOVQotVWtGVVNVOU9JRUZPUkNCVVJWTlVTVTVITVJzd0dRWURWUVFERXhKRVJVMVBJRnBGVWs4Z1ZrRk1WVVVnUTBFQ0FnUnVNQTBHQ1NxRwotU0liM0RRRUJBUVVBQkVCY1d3WUZISmJKR2hpenR0N2x6dWUzTGM5Q0g1V0FieVIrMkJaM3V2K0p4WmZSczFQdWFXUE93UmEwVmdzMwotWXdTSm9SZnhRajJHazB3RnFHMXF0NmQxTUlBR0NTcUdTSWIzRFFFSEFUQWFCZ2dxaGtpRzl3MERBakFPQWdJQW9BUUk4dlJsUC9OeAotMmlTZ2dBU0NBWmhSNXNyeHlzcHk3RGZvbVJKOWZmOGVNQ3RhTndFb0V4N0cyNVBaUm9uQzU3aEJ2R29TY0x0RVBVM1dwOUZFYlBONwotb0pFU2VDK0FxTVR5VExOeThhUXN5QzVzNTNFOVVrb0l2ZzYyZWtZWkJiWFpxWHNyeHg0UGhpaVgzTkg4R1ZoNDJwaEIwQ2hqdzBuSwotSFplUkRteEdZM0NtaytKK2wwdVZLeGJOSWZKSUtPZ3VMQm5ocW1uS0gvUHJuekR0NTkxdTBVTHkyYVRMcVJtKzQvMVlhdC9RUGI2SgotZW9LR3dOUEJiUzlvZ0JkckNOQ3A5WkZnM1hhcjJBdFFIenlUUUlmWWVIM1NSUVVwS21SbTVVNW85cDVlbWdFZFQrWmZKbS9KNHRTSAotT21iZ0FGc2JIUWFrQTRNQlo0SjVxZkRKaE9BMmc1bFdrMWhJZXU1RG4vQWFMUlpkMHl6M29ZMEllby9lclBXeC9iQ3F0QnpZYk1lOQotcVNGVGVkS2xiYzlFR2Uzb3BPVGRCWlZ6SzhLSDN3M3pzeTVsdXhLZE9VRzU5WVliNUYxSVppV0dpRHl1by9IdWFjWCtncml1NUxlRAotYkV6T3RabmtvK1RaWHZXSWtvMzBmRDc5ajNUNE1SUmhXWGJnajJIS3phKzR2SjBtemNDLzErR1BzSmpBRUFBL0pnSUVEVTR3Ni9ESQotL0hRSGhMQU8zRys5eEtEN012bXJ6a29BQUFBQUFBQUFBQUFBCi0KLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3QvbXNpZS1lLnBlbSBiL2NyeXB0by9wa2NzNy90L21zaWUtZS5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyYTVlMjQuLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3QvbXNpZS1lLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLS0tLS0tQkVHSU4gUEtDUzctLS0tLQotTUlBR0NTcUdTSWIzRFFFSEE2Q0FNSUlEa0FJQkFER0NBY0l3Z2N3Q0FRQXdkakJpTVJFd0R3WURWUVFIRXdoSgotYm5SbGNtNWxkREVYTUJVR0ExVUVDaE1PVm1WeWFWTnBaMjRzSUVsdVl5NHhOREF5QmdOVkJBc1RLMVpsY21sVAotYVdkdUlFTnNZWE56SURFZ1EwRWdMU0JKYm1ScGRtbGtkV0ZzSUZOMVluTmpjbWxpWlhJQ0VHQkFtSUxlcDlzSgotdU4yUGtnMWd1Y293RFFZSktvWklodmNOQVFFQkJRQUVRSXpPN3pMQkQrcGxzN3h3QVl4RUVYNlkrdTYvZjRPOQotdjFwWTFuYVR5ZU5TQ29YcVp4MkZVSFl5UVp5d2JlWjZaRmNrR0xHOHhoWldSVGVvcmhsVzRxd3dnZkFDQVFBdwotZ1prd2daSXhDekFKQmdOVkJBWVRBa0ZWTVJNd0VRWURWUVFJRXdwUmRXVmxibk5zWVc1a01SRXdEd1lEVlFRSAotRXdoQ2NtbHpZbUZ1WlRFYU1CZ0dBMVVFQ2hNUlEzSjVjSFJ6YjJaMElGQjBlU0JNZEdReElqQWdCZ05WQkFzVAotR1VSRlRVOU9VMVJTUVZSSlQwNGdRVTVFSUZSRlUxUkpUa2N4R3pBWkJnTlZCQU1URWtSRlRVOGdXa1ZTVHlCVwotUVV4VlJTQkRRUUlDQkc0d0RRWUpLb1pJaHZjTkFRRUJCUUFFUUZ4YkJnVWNsc2thR0xPMjN1WE81N2N0ejBJZgotbFlCdkpIN1lGbmU2LzRuRmw5R3pVKzVwWTg3QkZyUldDemRqQkltaEYvRkNQWWFUVEFXb2JXcTNwM1V3Z2dIRAotQmdrcWhraUc5dzBCQndFd0dnWUlLb1pJaHZjTkF3SXdEZ0lDQUtBRUNQTDBaVC96Y2Rva2dJSUJtRkhteXZISwoteW5Mc04raVpFbjE5L3g0d0sxbzNBU2dUSHNiYms5bEdpY0xudUVHOGFoSnd1MFE5VGRhbjBVUnM4M3Vna1JKNAotTDRDb3hQSk1zM0x4cEN6SUxtem5jVDFTU2dpK0RyWjZSaGtGdGRtcGV5dkhIZytHS0pmYzBmd1pXSGphbUVIUQotS0dQRFNjb2RsNUVPYkVaamNLYVQ0bjZYUzVVckZzMGg4a2dvNkM0c0dlR3FhY29mOCt1Zk1PM24zVzdSUXZMWgotcE11cEdiN2ovVmhxMzlBOXZvbDZnb2JBMDhGdEwyaUFGMnNJMEtuMWtXRGRkcXZZQzFBZlBKTkFoOWg0ZmRKRgotQlNrcVpHYmxUbWoybmw2YUFSMVA1bDhtYjhuaTFJYzZadUFBV3hzZEJxUURnd0ZuZ25tcDhNbUU0RGFEbVZhVAotV0VoNjdrT2Y4Qm90RmwzVExQZWhqUWg2ajk2czliSDlzS3EwSE5oc3g3MnBJVk41MHFWdHowUVo3ZWlrNU4wRgotbFhNcndvZmZEZk96TG1XN0VwMDVRYm4xaGh2a1hVaG1KWWFJUEs2ajhlNXB4ZjZDdUs3a3Q0TnNUTTYxbWVTagotNU5sZTlZaVNqZlI4UHYyUGRQZ3hGR0ZaZHVDUFljck5yN2k4blNiTndML1g0WSt3bU1BUUFEOG1BZ1FOVGpEcgotOE1qOGRBZUVzQTdjYjczRW9Qc3krYXZPU2dBQUFBQT0KLS0tLS0tRU5EIFBLQ1M3LS0tLS0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy90L21zaWUtZW5jLTAxIGIvY3J5cHRvL3BrY3M3L3QvbXNpZS1lbmMtMDEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjOTNhYjYuLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3QvbXNpZS1lbmMtMDEKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0KLU1JQUdDU3FHU0liM0RRRUhBNkNBTUlBQ0FRQXhnZk13Z2ZBQ0FRQXdnWmt3Z1pJeEN6QUpCZ05WQkFZVEFrRlZNUk13RVFZRAotVlFRSUV3cFJkV1ZsYm5Oc1lXNWtNUkV3RHdZRFZRUUhFd2hDY21selltRnVaVEVhTUJnR0ExVUVDaE1SUTNKNWNIUnpiMlowCi1JRkIwZVNCTWRHUXhJakFnQmdOVkJBc1RHVVJGVFU5T1UxUlNRVlJKVDA0Z1FVNUVJRlJGVTFSSlRrY3hHekFaQmdOVkJBTVQKLUVrUkZUVThnV2tWU1R5QldRVXhWUlNCRFFRSUNCRzR3RFFZSktvWklodmNOQVFFQkJRQUVRS3ZNYVc4eGg2b0YvWCtDSml2egotSVpWN3lIeGxwNE8zTkhRdFdHMEE4TU9aQitDdEtsVTcvNmc1ZS9hOUR1L1RPcXhSTXF0WVJwNjNwYTJRL21NNElZTXdnQVlKCi1Lb1pJaHZjTkFRY0JNQm9HQ0NxR1NJYjNEUU1DTUE0Q0FnQ2dCQWlmejZSdnpPUFlsS0NBQklHd3h0R0EvRkxCQlJzMXdiQlAKLWdEQ2JTRzB5Q3dqSk5zRmc4OS9rNnh1WG84YzVZVHdzdzgrWGxJVnEwM25hdnBldzZYeHh6WTA5MHJEMk9KMHQ2SEE2R3FySQotcGQ4V2lTaC9BdHFuMHlmTEZta0xxZ0lBUFJmenhVeHFVb2N4THBRc0xJRnAyWU5VR0UreXBzK1VabUlqdy9XSGZkcXJjV1RtCi1TVFN2S3V5M1VrSUpaQ2tHREJwVHZxazRCRmFIaDRvVFhFcGdwTlkrR0t4amY5VEROOUdRUHFRWlI3c2dRa2k0dDJnNC9TYXEKLUtsNEVNSVNnbHVrNnN3ZE5EMHRpSFk3djVkNllSMjllUENsMi9TVEo5OGVKcFdrRUVDMjJHTk52T3k3cnUvUnYySGU0TWdRZwotb3B0ZDdzazlNTWQ5eGhKcHBnN0NjSC95RHgvL0hydGdwT2NXbW42VnhwZ0VDRnFvbjR1WGtRdElCSUg0UGFOY2xGbjcvaEx4Ci1QdzJWbUJHYUMwU1lGM1UxanlOOTZFQnhkanF5OEFhNkJ5TVhZRFc1QmNmcW5pRDVtWVhmdytiODFsaDFrdXR4YVBhVjRZSjkKLVpsUlVXNzUyTjdWSG8vZkcwL2Z1a29lNVc5YThrSWhnTHB5Z2xsYi9HUDRvU0Y0d002bjEvT2dSelpqMklXRmlvYktPNGQvdAotTW5oK0MrUG9FVkF1RlpjeFF3aTlHcXZzSzVPb0lqVndOeDBYY1ZTT2wxVFRZUzlTd0M3dWdNQkNhYjczSmlydUMyNHBMNzhZCi1NK05hSXBJUTNPbjREb2tKQTJaSHRqQmpaSXhGNHRLQTE0NFJ2Rk42cEJkNlRWRTVYTTZLRC9WaDlialNtdWp0RUFmZFEzVGUKLWR2S0pzYlp1dTBzdEVyYnZXY1J5MTFJMzI4bDU1N0VFQ0FKVDdkNDRPSjNyQkJCajZibm54NmREVTJTUnFwMkNFb1FhQkFoSwotUkJ1eWhOeGt5Z1FJT1k5L05od3FBSkFFQ092WDBaZDBEcWdvQkFqb2JQcE1IaFZWM2dRUVdMVTJ2RW9aNTFCd3p4ZHpDbXhPCi13d1FJNG9LZnVkYU5xb0FFU0t6Qk5BcXY1a0d1bUhPbE1Lc1JmcnM3alpDY1NhT3VFajk3cFl4MDhGTEVnRjIzY2F2MzlNT1EKLU5VRU0xZE5VK0VZc2xMNG8zUm9TSFJqVWdQVSsydDljMHByUzlBL2JQQVJJRU9QOTRQeW5hVE54d0hpM1ZUSzdTenVRbWd6QQotNG45NDJFOWpvU2lxc1FQbHNLQWIzc1BVYUxDM1N1VXhTak5CZ2ZwdkQwYm1yQS81aCtXWm9ZWHZJb2dGcHdqa1NtbkZCRWllCi0wbGg1T3YxYVJydkN3NS9qM1EvVy80WnRONVUrYWVWQkpNdEE4bjBNeGQ1a1B4SGJOVmg0b0dwclo2d0VlZ1Y4aHQzdm95WmEKLW1aNUN5eGM4ZmZNWW5NL0pKSTYvb0VZRVVFTXl5aVM1Rm5ZeXZ4S3pmTXR5bjJsWjJzdDluWkdOTmdNYzlONjJyNUhnTmJkRAotRkh1UmRLS3pWKzhrUWZ1TWMzbU9QcEsxdDlURlkrUWdyeGlCNXA2UzdWb29JOTdZdFAzUGJma25zekNFQkVoNFBkWFliYmFSCi0zQWFjTjNRNWtZWW1Xc3EzV1c2eGdyZzBtbUVHb3NHdndTUXhCQnVpWFpyeFNjQ2E0aXZFcTA1VVp3eVNoZVB2S2R1T3ZuVUUKLTJ6RE82SVhGTFp4aFRaQUVTRW05L0ZvdkxnR0FpSjdpTUdtWXZzSVNMSlNjd0c0bit3clNhUU5RWGl6czlOM3lreXM1NHdCTgotZC8rQlE0RjdwbmNIaERRMkR5dDVNZWtCOFk4aU5Pb2NVVEZDdTUyNHZRUklhV0NYbVhQM3ZVN0QyMWRwMFhuQU16UlFKNTY1Ci1KVjNhSFJvWTdYRGE0TGVQYTdQUDl5d3lhZk9FNXlDVzduZHF4M0orMkpoVER2U0ZzVzgvcTNIM2l5ZUZoeWt1SlZTNkJGREsKLTZDbUtibnl5ak9mRTJpTEdKbVRGYTkwNVYyS3JWRENtbEV1L3h5R01zODB5VHlaQyt5U3pNODNGTVZ2TEVRbVN6Y1ROVVpWcAotRGZBMWtOWGJYa1BvdUJYWFQ2ZzhyOEpDUmxqYUtLQUJtZ1JJbE1oZU9KUVJVVVU0Y2d2aE1yZVhQYXlocTVBbzRWTVNDa0E1Ci1oWVJDQmN6bTREaS9NTW9oRjBTeElzZFJZNmdZOUNQbnJCWEFzWTZoMVJiUjdUdzBpUVptZVhpNTJEQ2lCRWowYnkrU1lNQWEKLTl6MENSZUl6bDhKTEw2RVZJRno4a0Z4bGtHV2pyNGRuT3poaFBPcS9tQ3BwMFd4YmF2RGZkaEU4N01kWEpaQm5Md29UNjJRRwotOTU1SGxBb0VRQk9HSmJjRVNDZ2Q1WFNpclo5WTNBYkNmdUtPcW9NQnZFVUduK3cvcE1hcW5Hdm5yNUZaaHVCREtyaFJYcXR4Ci1Rc3hBLy9kckdVeHNyWk91U0wvMCtmYnZvN24yaDFaOE55ODZqT3ZWWkFRSUFqdzJsMVljNVJBRVNOYzlpM0k4cEtFT1ZRZi8KLVVCY3pKME5SOWFURUY4MGRSZzJscFh3RDBobzROMEF2U2lWYmd4QzdjUFpIUXdJcXZxOUxIUlVzLzRuK1Z1M1NWWVUzY0F4bwotbFVUaUNHVVNsQVJJRitURDU3U0k1K1JJK01OdG5EOXJzNEUxbWw1MVlvSEdXRmozVVByaURtWTBGS0V3SWdxdE1YTVkzZlo5Ci1LcThkODNiakR6eHdiRFg3V3dSN0tiU2VKV1Q0MnBDejdrTStCRWpqUHNPblpIdXVzWFQzeDJycnNCbll0WXNidDk4bVNGaVMKLUt6VHRGbVhma09CYkNRZGl0MVA3NlFuWUoxYVhNR3M2elA2R3lwUVRhZEsvellXdmxtMzhRa1Z3dWVhSjB3b0VTS1cycHFLQQotNzBoMlVNREhPcnBlcFUxbGowWU16bW90REhTVFUzTDkwOVZ2VU1OZzl1cWZyUTZtU2tiOWo1VGw4b0Yyb3RPdzVFekExWWRhCi1LUG1nc3Y2MlJXTFlsODB3WFFSUXdHMGUvbWdHNzVqcDlsT2hKZFZYcWNZYlFwUzl2aXdWYVZrd0grNjltdS9iUUk0Z2pvRXMKLVVZWDZPNzFSZTJ6K2NZaGNtOVVySytEWHVTRkJYUU9JbEFGeEtNVzRCMGFwZDZmVTg0RnNaTE1FU09vclhFNU9FMEEyQjJqaQotSjhRSTBFeGs0aFV2V3JNTkpmVVp3RnlTN0UwNXhWOU9SdVgxeG1zS3FrVDR0VlI1TnFsbjR2aHZBWTg2MFZCb2xvejBDRGtkCi04c2VTQkVqZU1nUkk5RnZwWXVmbEllSGc5dXJrd3A2TisxZjBEckpKaEpZOVpRMEhUUWh6aUptSWZ2YkVqTnFDbDdoRUMyOCsKLUY4STV0dVZpTGdmU3djRkZDdm5TNldGb040WDZRZEZkcU1DYkJFamRsSTFjK0lRR0EvSXVURE1KWUN1US92KzhCRzVaZVdWSAotaWNQWm1YZlJhdDllRksxZEdLQUplZjYrVGY5SFB1RGpTcER5ZmZyaWZzcDdEYzM0bG1tN0dOMStPTjNaTXR3RVVObTZlcGI4Ci0xUktXam9JN2pJS1VWL00ycC8wZWVHU3FzNGIwNktGL1ZSNmRCd3NKVkw1RHBuVHNwM01WNGovQ0FPbFJkU1BaNSsrdHNLYk0KLWFwbGsrY2VxUXRwRUZ6MU1ZVHRWVjQrcmxyV2FCRUExb2tKeU5aNS90Tk93TTdCK1hmT1oweHcrdXlWaTl2NGJ5VFpNMlFkcwotSitkM1lHWUxBdWdUR0hJU0xxUUVlckQ4L2dHSysvU0wwNmIyZ05lZFhQSHRCQWlCS1grTWR5M3dGUVFJcUU5Z1ZndnJGTlVFCi1DS0tvVEZvTUdxblBCQWpEUGdMQ2tsTmZyd1FJM0VrMXZTcTY4dzhFQ0JvZHUyRk9aSlZrQkFnendqZlNyMk45V1FRUVRDb1EKLUtrQWJyUzl0bmpYbjFJMytad1FJclB4M2VJTm8vWVVFQ0llWVdDRnNreGxZQkFpRFVkdlpYd0QzdmdRSWtFeVpiYlpXYlVVRQotQ0g0K29kbDFJc2szQkJqNjhma3FKMGZLSlJXVkxXdVcvTzNWRTRCT1BLd0ZsYUlFQ0ZzZVZUZERVaG84QkFqK2NPS3ZWMldBCi1oZ1FnYVhyK3d3cStJdGJsRzBReHo4SVZVWFg2UFYybUlkSHd6NFNDQ3ZuQ3NhSUVDSmhCWXhkZkxJL1hCQ0Rzd2FtUG45TVIKLXlYaTJIVlFCaW5lVitHdFdWa0lvWjJkQ0xGQjltUVJNb0FRSTBuVVI1YTVBT0pvRUNBK0F1bktsQWx4OEJBaTVSdEZlRjRnMQotRlFRSXovaWUrMTZMbFFjRUNPbU51Vmc1RFhqTUJBakgybmtmcFhaZ1d3UUlWZEx1Ty8ra3VIQUVDTy81ckVIbXlJOXZCQkQ0Ci0xNkJVNFJkM1llckRRbkh0cndPUUJDQ2tobzFYeEs1TWF6OEtMQ05pMjB3dmNHdDh3c0lYbGoyaDVxOUlUQnE3SWdRUXZLVlkKLTRPZko3YktiSXRQMmR5bHdRZ1FZUElHeHdra2JSWE5yYU9OWXZOMTlHOFVkRjM1ckZPdUlCQWpmMHNLei82MThaUVFJeE9icgoteEprUmUwc0VDSUMrc3NuakViMk5CQkJJK1hNNE9udFZXR3NSVjlUZDNzRmdCQWluR3dJcm9vOE8wZ1FRTUdBd2djOVBhTGFHCi1nQkNpd1NUcllRUUlWSGpmQ1FnT3R5Z0VVSW9yYUZvQU5maFpnSVNocE9kL1JSeEZVNC83eFpSNXRNZEdvWXovZzB0aFIwbE0KLStIaTg4RnRGRDRtQWgvT2F0NFJpOEI3YnYwNGFva2pOMlVIejZuUGJISGpaOHpJcXBiWVRDeTA0M0dOWkJBaE9xanlCMkpiRAotTndRb1IyM1hDWUQ5eDZFMjBDaEhKUlhtYUh3eU1kWVhLbDVDVXh5cGw3b2lzK3N5MkQ3akR1a1Mzd1FJc1R5eVBnSmkwR3NBCi1BQUFBQUFBQUFBQUEKLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3QvbXNpZS1lbmMtMDEucGVtIGIvY3J5cHRvL3BrY3M3L3QvbXNpZS1lbmMtMDEucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YWJmMDBiLi4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy90L21zaWUtZW5jLTAxLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS0tLS0tQkVHSU4gUEtDUzctLS0tLQotTUlBR0NTcUdTSWIzRFFFSEE2Q0FNSUlMeUFJQkFER0I4ekNCOEFJQkFEQ0JtVENCa2pFTE1Ba0dBMVVFQmhNQwotUVZVeEV6QVJCZ05WQkFnVENsRjFaV1Z1YzJ4aGJtUXhFVEFQQmdOVkJBY1RDRUp5YVhOaVlXNWxNUm93R0FZRAotVlFRS0V4RkRjbmx3ZEhOdlpuUWdVSFI1SUV4MFpERWlNQ0FHQTFVRUN4TVpSRVZOVDA1VFZGSkJWRWxQVGlCQgotVGtRZ1ZFVlRWRWxPUnpFYk1Ca0dBMVVFQXhNU1JFVk5UeUJhUlZKUElGWkJURlZGSUVOQkFnSUViakFOQmdrcQotaGtpRzl3MEJBUUVGQUFSQXE4eHBiekdIcWdYOWY0SW1LL01obFh2SWZHV25nN2MwZEMxWWJRRHd3NWtINEswcQotVlR2L3FEbDc5cjBPNzlNNnJGRXlxMWhHbnJlbHJaRCtZemdoZ3pDQ0Nzc0dDU3FHU0liM0RRRUhBVEFhQmdncQotaGtpRzl3MERBakFPQWdJQW9BUUluOCtrYjh6ajJKU0FnZ3FneHRHQS9GTEJCUnMxd2JCUGdEQ2JTRzB5Q3dqSgotTnNGZzg5L2s2eHVYbzhjNVlUd3N3OCtYbElWcTAzbmF2cGV3Nlh4eHpZMDkwckQyT0owdDZIQTZHcXJJcGQ4VwotaVNoL0F0cW4weWZMRm1rTHFnSUFQUmZ6eFV4cVVvY3hMcFFzTElGcDJZTlVHRSt5cHMrVVptSWp3L1dIZmRxcgotY1dUbVNUU3ZLdXkzVWtJSlpDa0dEQnBUdnFrNEJGYUhoNG9UWEVwZ3BOWStHS3hqZjlURE45R1FQcVFaUjdzZwotUWtpNHQyZzQvU2FxS2w2RW9KYnBPck1IVFE5TFloMk83K1hlbUVkdlhqd3BkdjBreWZmSGlhVnBCQkF0dGhqVAotYnpzdTY3djBiOWgzdURLaW0xM3V5VDB3eDMzR0VtbW1Ec0p3Zi9JUEgvOGV1MkNrNXhhYWZwWEdtRnFvbjR1WAota1F0SVBhTmNsRm43L2hMeFB3MlZtQkdhQzBTWUYzVTFqeU45NkVCeGRqcXk4QWE2QnlNWFlEVzVCY2ZxbmlENQotbVlYZncrYjgxbGgxa3V0eGFQYVY0WUo5WmxSVVc3NTJON1ZIby9mRzAvZnVrb2U1VzlhOGtJaGdMcHlnbGxiLwotR1A0b1NGNHdNNm4xL09nUnpaajJJV0Zpb2JLTzRkL3RNbmgrQytQb0VWQXVGWmN4UXdpOUdxdnNLNU9vSWpWdwotTngwWGNWU09sMVRUWVM5U3dDN3VnTUJDYWI3M0ppcnVDMjRwTDc4WU0rTmFJcElRM09uNERva0pBMlpIdGpCagotWkl4RjR0S0ExNDRSdkZONnBCZDZUVkU1WE02S0QvVmg5YmpTbXVqdEVBZmRRM1RlZHZLSnNiWnV1MHN0RXJidgotV2NSeTExSTMyOGw1NTdFQ1UrM2VPRGlkNjJQcHVlZkhwME5UWkpHcW5ZSVNoQnBLUkJ1eWhOeGt5am1QZnpZYwotS2dDUTY5ZlJsM1FPcUNqb2JQcE1IaFZWM2xpMU5yeEtHZWRRY004WGN3cHNUc1BpZ3ArNTFvMnFnS3pCTkFxdgotNWtHdW1IT2xNS3NSZnJzN2paQ2NTYU91RWo5N3BZeDA4RkxFZ0YyM2NhdjM5TU9RTlVFTTFkTlUrRVlzbEw0bwotM1JvU0hSalVnUFUrMnQ5YzBwclM5QS9iUEJEai9lRDhwMmt6Y2NCNHQxVXl1MHM3a0pvTXdPSi9lTmhQWTZFbwotcXJFRDViQ2dHOTdEMUdpd3QwcmxNVW96UVlINmJ3OUc1cXdQK1lmbG1hR0Y3eUtJQmFjSTVFcHB4WjdTV0hrNgotL1ZwR3U4TERuK1BkRDliL2htMDNsVDVwNVVFa3kwRHlmUXpGM21RL0VkczFXSGlnYW10bnJBUjZCWHlHM2UragotSmxxWm5rTExGeng5OHhpY3o4a2tqcitnUmtNeXlpUzVGbll5dnhLemZNdHluMmxaMnN0OW5aR05OZ01jOU42MgotcjVIZ05iZERGSHVSZEtLelYrOGtRZnVNYzNtT1BwSzF0OVRGWStRZ3J4aUI1cDZTN1Zvb0k5N1l0UDNQYmZrbgotc3pDRWVEM1YyRzIya2R3R25EZDBPWkdHSmxyS3QxbHVzWUs0TkpwaEJxTEJyOEVrTVFRYm9sMmE4VW5BbXVJcgoteEt0T1ZHY01rb1hqN3luYmpyNTFCTnN3enVpRnhTMmNZVTJRU2IzOFdpOHVBWUNJbnVJd2FaaSt3aElzbEp6QQotYmlmN0N0SnBBMUJlTE96MDNmS1RLem5qQUUxMy80RkRnWHVtZHdlRU5EWVBLM2t4NlFIeGp5STA2aHhSTVVLNwotbmJpOWFXQ1htWFAzdlU3RDIxZHAwWG5BTXpSUUo1NjVKVjNhSFJvWTdYRGE0TGVQYTdQUDl5d3lhZk9FNXlDVwotN25kcXgzSisySmhURHZTRnNXOC9xM0gzaXllRmh5a3VKVlM2eXVncGltNThzb3pueE5vaXhpWmt4V3ZkT1ZkaQotcTFRd3BwUkx2OGNoakxQTk1rOG1RdnNrc3pQTnhURmJ5eEVKa3MzRXpWR1ZhUTN3TlpEVjIxNUQ2TGdWMTArbwotUEsvQ1FrWlkyaWlnQVpxVXlGNDRsQkZSUlRoeUMrRXl0NWM5cktHcmtDamhVeElLUURtRmhFSUZ6T2JnT0w4dwoteWlFWFJMRWl4MUZqcUJqMEkrZXNGY0N4anFIVkZ0SHRQRFNKQm1aNWVMbllNS0wwYnkrU1lNQWE5ejBDUmVJegotbDhKTEw2RVZJRno4a0Z4bGtHV2pyNGRuT3poaFBPcS9tQ3BwMFd4YmF2RGZkaEU4N01kWEpaQm5Md29UNjJRRwotOTU1SGxBb0VRQk9HSmJjb0hlVjBvcTJmV053R3duN2lqcXFEQWJ4RkJwL3NQNlRHcXB4cjU2K1JXWWJnUXlxNAotVVY2cmNVTE1RUC8zYXhsTWJLMlRya2kvOVBuMjc2TzU5b2RXZkRjdk9venIxV1FDUERhWFZoemxFTmM5aTNJOAotcEtFT1ZRZi9VQmN6SjBOUjlhVEVGODBkUmcybHBYd0QwaG80TjBBdlNpVmJneEM3Y1BaSFF3SXF2cTlMSFJVcwotLzRuK1Z1M1NWWVUzY0F4b2xVVGlDR1VTbEJma3crZTBpT2ZrU1BqRGJady9hN09CTlpwZWRXS0J4bGhZOTFENgotNGc1bU5CU2hNQ0lLclRGekdOMzJmU3F2SGZOMjR3ODhjR3cxKzFzRWV5bTBuaVZrK05xUXMrNURQdU0rdzZkawotZTY2eGRQZkhhdXV3R2RpMWl4dTMzeVpJV0pJck5PMFdaZCtRNEZzSkIySzNVL3ZwQ2RnblZwY3dhenJNL29iSwotbEJOcDByL05oYStXYmZ4Q1JYQzU1b25UQ3FXMnBxS0E3MGgyVU1ESE9ycGVwVTFsajBZTXptb3RESFNUVTNMOQotMDlWdlVNTmc5dXFmclE2bVNrYjlqNVRsOG9GMm90T3c1RXpBMVlkYUtQbWdzdjYyUldMWWw4MHdYY0J0SHY1bwotQnUrWTZmWlRvU1hWVjZuR0cwS1V2YjRzRldsWk1CL3V2WnJ2MjBDT0lJNkJMRkdGK2p1OVVYdHMvbkdJWEp2VgotS3l2ZzE3a2hRVjBEaUpRQmNTakZ1QWRHcVhlbjFQT0JiR1N6Nml0Y1RrNFRRRFlIYU9JbnhBalFUR1RpRlM5YQotc3cwbDlSbkFYSkxzVFRuRlgwNUc1ZlhHYXdxcVJQaTFWSGsycVdmaStHOEJqenJSVUdpV2pQUUlPUjN5eDVJRQotU040eTlGdnBZdWZsSWVIZzl1cmt3cDZOKzFmMERySkpoSlk5WlEwSFRRaHppSm1JZnZiRWpOcUNsN2hFQzI4KwotRjhJNXR1VmlMZ2ZTd2NGRkN2blM2V0ZvTjRYNlFkRmRxTUNiM1pTTlhQaUVCZ1B5TGt3ekNXQXJrUDcvdkFSdQotV1hsbFI0bkQyWmwzMFdyZlhoU3RYUmlnQ1huK3ZrMy9SejdnNDBxUThuMzY0bjdLZXczTitKWnB1eGpkZmpqZAotMlRMYzJicDZsdnpWRXBhT2dqdU1ncFJYOHphbi9SNTRaS3F6aHZUb29YOVZIcDBIQ3dsVXZrT21kT3luY3hYaQotUDhJQTZWRjFJOW5uNzYyd3BzeHFtV1Q1eDZwQzJrUVhQVXhoTzFWWGo2dVd0Wm8xb2tKeU5aNS90Tk93TTdCKwotWGZPWjB4dyt1eVZpOXY0YnlUWk0yUWRzSitkM1lHWUxBdWdUR0hJU0xxUUVlckQ4L2dHSysvU0wwNmIyZ05lZAotWFBIdGdTbC9qSGN0OEJXb1QyQldDK3NVMWFLb1RGb01HcW5Qd3o0Q3dwSlRYNi9jU1RXOUtycnpEeG9kdTJGTwotWkpWa004STMwcTlqZlZsTUtoQXFRQnV0TDIyZU5lZlVqZjVuclB4M2VJTm8vWVdIbUZnaGJKTVpXSU5SMjlsZgotQVBlK2tFeVpiYlpXYlVWK1BxSFpkU0xKTi9yeCtTb25SOG9sRlpVdGE1Yjg3ZFVUZ0U0OHJBV1ZvbHNlVlRkRAotVWhvOC9uRGlyMWRsZ0lacGV2N0RDcjRpMXVVYlJESFB3aFZSZGZvOVhhWWgwZkRQaElJSytjS3hvcGhCWXhkZgotTEkvWDdNR3BqNS9URWNsNHRoMVVBWXAzbGZoclZsWkNLR2RuUWl4UWZaa0VUS0RTZFJIbHJrQTRtZytBdW5LbAotQWx4OHVVYlJYaGVJTlJYUCtKNzdYb3VWQittTnVWZzVEWGpNeDlwNUg2VjJZRnRWMHU0Ny82UzRjTy81ckVIbQoteUk5ditOZWdWT0VYZDJIcXcwSng3YThEa0tTR2pWZkVya3hyUHdvc0kyTGJUQzl3YTN6Q3doZVdQYUhtcjBoTQotR3JzaXZLVlk0T2ZKN2JLYkl0UDJkeWx3UWp5QnNjSkpHMFZ6YTJqaldMemRmUnZGSFJkK2F4VHJpTi9Td3JQLwotclh4bHhPYnJ4SmtSZTB1QXZyTEo0eEc5alVqNWN6ZzZlMVZZYXhGWDFOM2V3V0NuR3dJcm9vOE8wakJnTUlIUAotVDJpMmhvQVFvc0VrNjJGVWVOOEpDQTYzS0lvcmFGb0FOZmhaZ0lTaHBPZC9SUnhGVTQvN3haUjV0TWRHb1l6LwotZzB0aFIwbE0rSGk4OEZ0RkQ0bUFoL09hdDRSaThCN2J2MDRhb2tqTjJVSHo2blBiSEhqWjh6SXFwYllUQ3kwNAotM0dOWlRxbzhnZGlXd3pkSGJkY0pnUDNIb1RiUUtFY2xGZVpvZkRJeDFoY3FYa0pUSEttWHVpS3o2ekxZUHVNTwotNlJMZnNUeXlQZ0ppMEdzQUFBQUEKLS0tLS0tRU5EIFBLQ1M3LS0tLS0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy90L21zaWUtZW5jLTAyIGIvY3J5cHRvL3BrY3M3L3QvbXNpZS1lbmMtMDIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwMTcwNTUuLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3QvbXNpZS1lbmMtMDIKKysrIC9kZXYvbnVsbApAQCAtMSw5MCArMCwwIEBACi0KLU1JQUdDU3FHU0liM0RRRUhBNkNBTUlBQ0FRQXhnZ0hDTUlITUFnRUFNSFl3WWpFUk1BOEdBMVVFQnhNSVNXNTBaWEp1WlhReEZ6QVYKLUJnTlZCQW9URGxabGNtbFRhV2R1TENCSmJtTXVNVFF3TWdZRFZRUUxFeXRXWlhKcFUybG5iaUJEYkdGemN5QXhJRU5CSUMwZ1NXNWsKLWFYWnBaSFZoYkNCVGRXSnpZM0pwWW1WeUFoQmdRSmlDM3FmYkNiamRqNUlOWUxuS01BMEdDU3FHU0liM0RRRUJBUVVBQkVBQ3I0dG4KLWtTenZvM2FJbEhmSkxHYmZva05DVjZGamREUDF2UWhMK2tkWE9OcWNGQ0VmOVJlRVRDdmFIc2xJci9XZXBjNWoyaGpac2VsemdxTG4KLXJNMVpNSUh3QWdFQU1JR1pNSUdTTVFzd0NRWURWUVFHRXdKQlZURVRNQkVHQTFVRUNCTUtVWFZsWlc1emJHRnVaREVSTUE4R0ExVUUKLUJ4TUlRbkpwYzJKaGJtVXhHakFZQmdOVkJBb1RFVU55ZVhCMGMyOW1kQ0JRZEhrZ1RIUmtNU0l3SUFZRFZRUUxFeGxFUlUxUFRsTlUKLVVrRlVTVTlPSUVGT1JDQlVSVk5VU1U1SE1Sc3dHUVlEVlFRREV4SkVSVTFQSUZwRlVrOGdWa0ZNVlVVZ1EwRUNBZ1J1TUEwR0NTcUcKLVNJYjNEUUVCQVFVQUJFQmFuQnhLT3ZVb1JuM0RpRlk1NWxseTJUUHUyQ3YrZEkvR0xyelc2cXZuVU1aUFdHUEdhVWxQeVdMTVpyWEoKLXhHWFpVaVJKS1RCd0R1OTFmbm9kVUVLOU1JQUdDU3FHU0liM0RRRUhBVEFhQmdncWhraUc5dzBEQWpBT0FnSUFvQVFJbXhLWkVEV1AKLUV1T2dnQVNDQkFDQmkxYlgvcWMzZ2VxRnlmUnBYN0p5SW8vZzRDRHI2Mkdsd3Zhc3NBR2xJTzh6SjVaL1VESUlvb2VWNlFTNEQ0T1cKLVB5bUtkMFdYaHdjSkkweUJjSlRXRW94TkQyN0xNN0NXRkpwQTA3QW94VkNSSFRPUGdtNzk0TnluTGVjTlVPcVZURnlTNENSdUxoVkcKLVBBazBuRlpHL1JFMnlNdHg0ckFrU2lWZ09leEVTN3dxL3hXdW9EU1NtdVRNTlFPVGJLZmtFS3FkRkxrTS9kNjJnRDJ3bmFwaDd2S2sKLVBQSzgyd2RaUDhyRjNuVVVDNWM0YWhiTm9hOGcrNUIzdElGL0p6M1paSzN2R0xVMElXTytpN1c0NTFkbmExM01nbEREalhPZWlrTmwKLVhMc1FkQVZvMG5zamZHdStmNjZiZXNKb2pQenlzTkErSUVabDZnTldVZXRsOWxpbTRTcXJ4dWJVRXhkUzJybVhuWFhtRXVFVy9IQzcKLWRsVEFlWXE1Q2xxeDVpZDZzbGhDMkMyb2VnTXd3M1hIOXl4SHc2T3F6dlhZNnBWUEVTY0V0Qk1RTGdhS0ZRVCttMlNSdGJUVkZHN2MKLVFjblVPRHlWQjFJYnBRVEYxREhlZU9YMVcvSGZwV1p5bThkemt0aTZTQ3lldW1IbXFPNDA2eERpSU1WS3RIT3FNODZuRUh1QU1ac3IKLWNMeStleTZURUp2UjZTNE44UVJ6bmc4SkpEWkRUSlhRTjZxODRhRXVkc25PcncyS3lPVndQcEk2ZXk0cUJzSFVnUThrQUZ5NWxzUWEKLVdWNDVoNmV4Z1V3YkJjS0xnUFpHRmorT2REMlJLSnNUYjgzL1VxYkpTNVEvbEdYaHpCbG5hWXVjeUp4RXByUnhibnRtY25PRVBGSmUKLSt0UkRVd09UZDdxbEpsamRoSUpMK3VEY29vTDlBaGdvNkN3ZXA2dGR1ZWt2MmNTRW9oSmVURThEdnkzNFlSaE1iTHZuRk5kbW5wTnkKLXJOWkRZVlZ4eGFLb3lkMkFmQjhOUEZaaDFWZEFZZkkzUjFRQVEya1hFZWY1Tk5JZlZRZk16RDlha0puNFJQK0t2MzJRYXhtNEZybksKLXhtd1J5R0pTaGF2SUJjMmF4K0YxcjErTlpYdVNCSG41dmZvUlR4T2swU1Q0ZFhzdzc0ZG5sWVVNUmFTdTRxcVVkTTlqc1hTeWVYNFoKLWdRZ2tSMmJrYVlPNmV6RmdlbkZJYTdRV1Z3OHJYWkFFWjVhaWJDeGJuWTFWRTQxUFlJdmhsTGRiRkpoSDlnWTIycytmRkF1d256eUEKLVNSakM0MEE5YUFFSXRSbGFQU3RXU0dpcWxMUmdOa0JCd2RwdjJsMllQQmQyUXpIeDZlazZYR3J2Ukp1QUMrTmg2MnJ0UUt3cE5INTQKLVlBT0hXNTVtYUJGVzJTUTNURitjWjZOYmJxaENtSFR5eVI3bWNTWWM5c1hTVkRXRWhZS1ExaXlVODcwemhIV1ZwdmdsWml6WmV0SkMKLVpGallleDNiMW5nVmRjZ2FyZ092cFBxOXVyQ0tLaTJtYmtxdi9FRnB6U1dHWGtLU3BmQ0cvWGZNbkVPdGtOckI4UzA2dm5rMkpjSkIKLU9CcUpvdCt1dVNINWhPZzB2VHB4WDJEdU9OSlNpV1NXeWZSRS9sVGZKSkZYd2hvZDdTWGNsVXlYUGVTeWliY1NpYzJoVkF6RG13akQKLTMxanMvajJrMDJQSS9hZ1BocjNVUThjTWdjTkFpYW9DS2JOYVdmbjZCR2JDQWJUY2h4elVsbzJjU0ppTGxyWDJJRFptZlhiWG1aQ28KLW0xc21XSUcrQklJRUFMaXVBeERiNmRXTEFZeVZCb045aFlJNEFpUGVaQVk5TXR2UTZBVjhvMi9FRm02UHZZR1h5M0hlaTU4MzBDSDAKLVBCZVg3S2RkNmZmMXkzM1RXL2w1cVNrSUwxVUxUR1I3b2tGZkplUEhEbXExZEZ0Ni9KT01wdGlROFdTdTdDc0pRdlo5VlRGWGVZRmMKLVpxQ1BQWmMxTnJQZWdOSzcwWmY5UXhXSWJEQWV2SjVLTEJmMWM2ajhwVTIvNkxudkRZNlZqYVR2WVNncjd2VFI4ZVZ6SDRSbTc3VzAKLWlPSHhnNVZjT0R2NmNHU1Z5dXZiWDhVQUdvOENtYjU4RVJEdEJESkJRWFZwV0tMTkF1REo5R1g4bjJ6TmtwalpMYlBTa2NtdWhxR2EKLUJKQkUvQmFDVGtVUVdsWTlkSWJSdEVueElVMW1mYlBQZHgxUHBhOERxR0RqU09zUWRLY0tZTk5adGF5RXcrK0VJcG1wZEJOc0twaEMKLWZCOFVFSzJXa2s0WlZXK3F5R29pL3IwTUZzdk8xTm1TT09aMG8vankvWUhtb2VVUkhoUHk5N0FPM2VWVGtFQWE1Q2ZKRUp5Ym1vNTYKLTdDRHcvRndvR0FVQ2dzb3o3cmx4ek11ZHIvSWhISUgrQVBpbm5jeFhsSE8yZWN2SEQ5aThEYUhHQTh0VmlmZ3NVaHFRb1ppZVVMdXQKLWVGOTRPNVVBeE9rdjQxVVpzc1lUd040bllyTjFRa2VzWmwzQlg0T1JTNEVFMzAvUFEyM0FSZjNXWnB0WnJDSmV2R20yWll6R2VoOHgKLWcxN21DRGZpTE8rYmZmNHFQLzRtQzk2UHU0aWE2ajR0bzVCd0tJSlMvK0RDdW9EOFdlU0tGNHB1Z1hRa01VaUhkUW5OblZQOVNwMk8KLS80bHk1bU84SnpyUUM1OVYyYm5UTkJxUGhwbm84a2ZKdks1VHlwUFNWQytiVHplcm4zcko2VWNlQjNzcmNuOXp4S3g5R2ROeWRKUWoKLXlXanY4ZWMzbjNkMW51UXdoejVRMDUzTkJoSWp3b0dnM0dvN0xPNmk3OFpPbHBGN2Rjb0FPMTNOZkhMeU5qbnlIQ2FpV3RWUlRjdDkKLXJMZjV2TjAwdXJTbjhZSm5nSGsxZVRLSzhuSEdJY09nNllkWURPRDJuRTVYd1JpakttaWVHOFhhM2VLUnpmYkwwNkdyQlFFTmxlNkoKLW1DMTMxYnAzY1JWeHBqcStvNlJBYkdvTW00eUlDc0w0ZVRhckNRcnN5SG1vUEhxcjkxVUhvOTFhdnl4VTdrbldtRWhYMjd5Ym1zcnMKLThhZVp3UEhpeEwxNFRleWhydUNxUlZ2a2YxS3M3UCt6OE1QVWJvR05xUWUyV0xOOGt0Q0dFcjE1TzhNSlIvZW04NkcwM0pmbzRvYXcKLS9EVlVINVJ3TFQ2YWNlZE9HdXpNaC8ycjhCY21lbWhWUTgvY1d2VjRZSjB0T1c0aHp5VkhDNWhRZjhzWjNMenhYTEg2T2hucmJwcmgKLXh2cmRiYVNkQ2hXWkREUDBiQ0NieEVoa3d1QmtCZUtack1id1JUUCtUUFRQWUxWVEgvQ21LTHpLaC8xMTR0a0dreU8zaEhTNHFFeFUKLVYzOUYyU2o0bXlseCtoRDArMjBEOXBudHBOaTdodGNjR2xPbTZ5Tk02OWF0LzMra0xnSkp5b0lsYXhMY0NVWUhOTWlmRHQrVDNwL3QKLTVVNFhtRDUzdVVRNk04ZHZqL3VkcVBla05TVWZzZTE1eXJkOXBqT3Q1UGNKdXFXMjhxMHNGSGY5cEhJZ3ozWFpGTWU1UEQ3cHB3NnIKLVMrQzZJcjRQcllJRWdnUUE3WkRWdGlDbStCYnROTkIvVUptNzkvT1E1bXA1YlRJMGtQbURleWNhV1RhME9qcHVtK2MvZHBHL2lKT0IKLURJQ2o3akhPWFNIVDdKbEd5WDZhU0ZKVWx0dWNBblp2d3poUERtZERhSURpS1NrODVHcWdkRFdWZkdvc1NDWDlQaC9UM1dwSXhud2YKLVdTRFJ0SUhrV1RqbHkrcGU0eXk1SzYvWElTeS9MNVpoL2ZoaUk1ZmpIamd6bWxpYnMycnU0blZ3NmhCaFV2bFNTZTJCRXM1ZDloL3kKLU5IOFd5M3F2YjJEM2poN2hrZXBGdFpKR05USHA4WlVDN05zMkpJcFFZT2JzYXhkSTY1aTNtTU91N2ZSd0krMC80ZWpzV2hQNktDRWkKLUxnd3ZMZzBxTTgybWE2WUI3cUhBSGJvYWN6UlZFZmZEY0pVRzRhNXV5Y0IwRG9aRm4rdUVhRUZ5aWxpMjBoQ240aFZmc3FVUWsyUFQKLThNbzF0U2w1ZTMweEkxWUpaclJnaUptOW5IUlg2Zkxpem5nUCtJTEpMUEhac1B2bFNWSWZZKy92L0ZSOGZlS09qYUdoeUdGNTFCQXgKLWFNMk5JUTRqTVA1L1grVTVnUXliaTBFNnU3cnJvRGhhSHNLbUNNZ1hxc3p3WFdDcGVkQS9zRWJlSHBpVEM1OVlsUFBTbElPTWM5dlAKLUtvL21RQ2ZXeS85aWNVYUlmS1FsZHZrbGxVeHhOa3F1NkFiSXBIVnNjYkFFelNQczV4YlFYVThFWk5OQ0Rpc0ZubnBZM25RM2VMbmwKLW04OXNhVEp4UmI3TldIUk1sbVB2N3FnRDd1TUlxM3ZkT0dBN2k1d1Q5TWVvTklnSzEvRHNnSDMwczZSV2pKeTRZeXlMbVJUWFB6YmoKLWhiUVZwRW1pTVJiRWlkSXZVeDJPaktWeFZRSWNndExzYTJsdkhRNFhMMWNwTHI1R1Z0T2d5MGZNZzVPQ0RVVURzdmpnamdMUTNQMlUKLXAyblZZNUZNNi9RcFBjNURUTHV1Ujlla0kyL2M5Qml6MDlSdGNZRFVRSzJhamRvOGgxSXlLcUhGb0I3aDQ4T1h4WEtLWTk0RFkwVEcKLXg2UG9uQi9lcGo4b3JBdzRRS21tNU0wdlhZd0JPcVJ5bUNUSFRxT0pHT2JkTHgxZXVGRnlxZ3V6SEpPVTJnQUdaSTB6OUxnMXlSdUYKLXloZFBaeXVuaUljbXRMTnhSWjFkdVlIRXJjQXlYNTZxbmRtTFh0N1VWa0FUYWkvcklNdW9KTGZBc1VuVnVUVVM1cDd0Sk03NTRVWlQKLTdsVGNYdkRKZ09VTm5CUmFJY3hDM3B4dmJyWURKMmlGSjcyeGt4VVAycDc0Z3VjcWcyNVhuQ1ZtUXVMZzZ6RER4RjZDTHV3OWlzeHkKLVhnNHBrbmVNTi8vN2ZwcDhHWWw5bnlabTJ5cVlZTStqY3cwZmNWYzY0TCtYNHcvZ0wzSDJVTUdneElIU0pwN0hJRzdWS0h0WHJOeWoKLWRQWFhQVlVzTXNBQWltcU9yMExyMnNaV2lyZnVpdkxhUFRxaGJrdkc1UEY3SzNnVDgwQU9JY2QvNkVJSEJ5MmhaN3VrZmpIbWRQNEwKLXlRT2hUUWtsYUt6R0hJMG15cHEwdUZMV0pPVWxablZyTWlMUDF4cldrcEM4Um85ZW82bWZqalE0NXo4YWRDNDNhNDdrbHdURXp2b2QKLTNyTkVGSUdKSlVFakFOM21icWllN0l4b1NKa25CQkpLMEQ5bFpFUThsWldscTd2dU44SmRxUE02eGgxNTVqTVZzUHdqTEs2VHprajUKLUJwUkQ5VGdtM3U2SFBRU0NCQURna1dFTjc1TXU5VEdvc1hZMHhtMWs2SzZzUHY4TDk0OUNyTFdvNHIxSTJMQTA3MmJUR3ZRUDI4VnMKLWhVQTc2amdjVDFvY0MrKzlQb2t0SUsxMFlDcTV3K0ZmTUFRMDRLZUNYdUFkbWlZMmlBVDRTbGVhNjFQTUNNdGEzbVZHeUxVWkNMRW0KLVArSTBVS1I1bWxPMGZHRWNqVTlqOFRtYmpacXhORnFsb0xzVTdvU2k3T3MwRXRZSGtkQVZyRXhVeU9jL1pEaWU2ZkJqZExUbUxkQ20KLWJFOUpOd2psYlh5cGRUWnVwR2dMTmhLR0RJc2tVQUFNd1pZYXlJNllmU0lNa05DZUFZVG5qT3VHWloxbXNDWEdYc2ZNQlIxc2ZVSWoKLTlVZUdqd0Q4Z3ErVVZWSFgvb2VvSC9tMGVKNXBwcWkzK25VbGdjOUR2cFlzQy9GZzBHMkt1WWI5QitWSithNEdNelFTUFJFb0Z0UXAKLUI5ZHRMa0JiN0hhL2hwR1dUSWRxelcwZUFvNWxseU44Rk52bDJGdTJJY0xhTm1XRk82OWdMalJLUW9wcDBkdkZPdXdBVkk2ZnZHRGoKLXAxV2lnb05iRlpsOE4raWlXbXpLT2pvRzJaTGJlejFjbFpDbXMvSlBKclhoRU1NT3hXcFZ6a1F5TjMzNlZXSG1HZ01jamFLQ0dTZUEKLTJubkVTSUd1aUNYTXJrSGxHZmFiWUlzS2NIRkNvMnQxM3VYeVpQZjB6U1BUa3VEMEVoOTJ3cUM5cHZBM2d2cnJDVWZvOU1uM2JzK2UKLUtXS21EbHBjczhtRG4wMzJvSWcrenJRaElkdU1xWFZuM2V2emVWTTNCNU1CT0dNdmc1MS9TWGc3UitNQy80NjNqdVFRRWI5SVZlL0kKLVlHbk8vL29XbTlsdy8zNzdBZi9xSCtGbk4wMm9iSncxRnZlc1FJczllNVJITlF5a0tiTyt2bVZKUWwxbmQ5RFpXckhETk83LzgwWXoKLTJoQ203VHdzNW5TUk4yaUZseVJhWUpIcjd5cHhrVTJyQ2FrMnI2dWE3WER3dTFxVTJSVDMrcVBqVDFSdXhRMm9UbEh5R2tLUE1aR0MKLVJjK0NTV3o1YWVlQ21IWlZ3ZGIzbkM4WXBmc3VqTWlZcXlnTGV1UTgycGpLdVI3RElLR21uZmNPTGR2NUYrRWsyV3l5MEQ5OGlTZ2sKLSthb1FHWUxoTDlsbFUxM3BuMjF1UnNEWTV1R2NYaUl3MUlFVEZsVGRnRU5FdjhmdXRadUpzZWdycDdmbUZYeU5vTnlGTnl5cGVEck0KLTZacVI0dkt4RmpnM3RLS2VWcGt3L1c0RUFrbHpNeG1OaWF6R05EQkhzbllWM3J3UGxLYStIZWVFMll4bnNLd0dMQ05nUllVWFRhSmsKLTQ2MXZTMTYwejNkdmgvbUxmZFo3TVlDa21PM2JORTNFTFVEQXc3WVFrU3VvOXVqemRGS3RlOUxDMzRzamc5Zk9leDNUaEFnNVk1MG4KLXdZbTR6Qm1HTTd5RXFMOE82UWduTTZ0SURGUzlYcnlEYUxOemNHaE1XcU12aHpPNnNDL0FBMldmTGd3UzUxN0NwMDNJa0pRV3FHOXEKLXc1MitFK0dBdHBpb0pmY3pFaGx2OUJyaGp0dGR1Z1JTakpyRzhTWVZZRTR6RzNBdXI1ZU5Cb0dhQUxJT0hPdFB3OCtKb3ZRbUlXY0YKLW9hSi9XUXVnbEZyV3RldzUxSUs2RjhSaUhBT0JWYXZaT3VaY083dFYrNWVuVmZyZU9kMHJYOFpPeTRoWW1IaG1GMWhPcnJXT24rRWUKLUUwU1lLb25YTjAxQk05eE1CSUlCU0xDdk5BcHBuR1BUVUdqd2JNSlJnMVZKMktNaUJXSDVvSnA4dHlmSUF4TXVXRmR0YUxZYlJTT0QKLVhiT0FzaFBWSzhKQVk4RFFEa3pxYUNUQWtMVGZTUkF0OXlZNlNiVXBNc1J2N3hhOG5NWk5KQkp6SlQ5Yi93TmpnaU9KZ2FHdUpNa1YKLTJnL0RYMmpmUDNQck1NL1Nibno3ZWRPUlhIajFQYTVYVFQ4bkc1TVMwRnVaZ3ZldmRxM28vZ1ZWQXorWkNLT0gzU2hNelp2ZnAwMWwKLVNYNWdhSlRmbG1VNmNkTnd0bjJ5WjZJU2NGN09yalVlQTlpRW9TVlI5ZFFjQSs0bEIzUkFHM0xNd2NueFhZMzVENytQTUp6SElaZEYKLWNTbnErbjAzQUNZMi9FL1QzMWlpalJIMjlydllIR0krbVAvaWVZczQ1aXE0ZlRXbzZpMUhvZmVXTGRQMGZYN3hXM1hPMC9oV1lGaXcKLUJ4S3U2NndoQWJSaGFpYjNYSk52ZXRWczI1VG9ZWHlpRHBqRytjZDVyQ01laThzR1F3VEJqOVplaDBVUm9lTVcxaW5UUDBKdkNtTVUKLXJaZ0FBQUFBQUFBQUFBQUEKLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3QvbXNpZS1lbmMtMDIucGVtIGIvY3J5cHRvL3BrY3M3L3QvbXNpZS1lbmMtMDIucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNzljNWQ4Li4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy90L21zaWUtZW5jLTAyLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDEwNiArMCwwIEBACi0tLS0tLUJFR0lOIFBLQ1M3LS0tLS0KLU1JQUdDU3FHU0liM0RRRUhBNkNBTUlJVFFBSUJBREdDQWNJd2djd0NBUUF3ZGpCaU1SRXdEd1lEVlFRSEV3aEoKLWJuUmxjbTVsZERFWE1CVUdBMVVFQ2hNT1ZtVnlhVk5wWjI0c0lFbHVZeTR4TkRBeUJnTlZCQXNUSzFabGNtbFQKLWFXZHVJRU5zWVhOeklERWdRMEVnTFNCSmJtUnBkbWxrZFdGc0lGTjFZbk5qY21saVpYSUNFR0JBbUlMZXA5c0oKLXVOMlBrZzFndWNvd0RRWUpLb1pJaHZjTkFRRUJCUUFFUUFLdmkyZVJMTytqZG9pVWQ4a3NadCtpUTBKWG9XTjAKLU0vVzlDRXY2UjFjNDJwd1VJUi8xRjRSTUs5b2V5VWl2OVo2bHptUGFHTm14NlhPQ291ZXN6Vmt3Z2ZBQ0FRQXcKLWdaa3dnWkl4Q3pBSkJnTlZCQVlUQWtGVk1STXdFUVlEVlFRSUV3cFJkV1ZsYm5Oc1lXNWtNUkV3RHdZRFZRUUgKLUV3aENjbWx6WW1GdVpURWFNQmdHQTFVRUNoTVJRM0o1Y0hSemIyWjBJRkIwZVNCTWRHUXhJakFnQmdOVkJBc1QKLUdVUkZUVTlPVTFSU1FWUkpUMDRnUVU1RUlGUkZVMVJKVGtjeEd6QVpCZ05WQkFNVEVrUkZUVThnV2tWU1R5QlcKLVFVeFZSU0JEUVFJQ0JHNHdEUVlKS29aSWh2Y05BUUVCQlFBRVFGcWNIRW82OVNoR2ZjT0lWam5tV1hMWk0rN1kKLUsvNTBqOFl1dk5icXErZFF4azlZWThacFNVL0pZc3htdGNuRVpkbFNKRWtwTUhBTzczVitlaDFRUXIwd2doRnoKLUJna3Foa2lHOXcwQkJ3RXdHZ1lJS29aSWh2Y05Bd0l3RGdJQ0FLQUVDSnNTbVJBMWp4TGpnSUlSU0lHTFZ0ZisKLXB6ZUI2b1hKOUdsZnNuSWlqK0RnSU92cllhWEM5cXl3QWFVZzd6TW5sbjlRTWdpaWg1WHBCTGdQZzVZL0tZcDMKLVJaZUhCd2tqVElGd2xOWVNqRTBQYnNzenNKWVVta0RUc0NqRlVKRWRNNCtDYnYzZzNLY3Q1dzFRNnBWTVhKTGcKLUpHNHVGVVk4Q1RTY1ZrYjlFVGJJeTNIaXNDUktKV0E1N0VSTHZDci9GYTZnTkpLYTVNdzFBNU5zcCtRUXFwMFUKLXVRejkzcmFBUGJDZHFtSHU4cVE4OHJ6YkIxay95c1hlZFJRTGx6aHFGczJocnlEN2tIZTBnWDhuUGRsa3JlOFkKLXRUUWhZNzZMdGJqblYyZHJYY3lDVU1PTmM1NktRMlZjdXhCMEJXalNleU44YTc1L3JwdDZ3bWlNL1BLdzBENGcKLVJtWHFBMVpSNjJYMldLYmhLcXZHNXRRVEYxTGF1WmVkZGVZUzRSYjhjTHQyVk1CNWlya0tXckhtSjNxeVdFTFkKLUxhaDZBekREZGNmM0xFZkRvNnJPOWRqcWxVOFJKd1MwRXhBdUJvb1ZCUDZiWkpHMXROVVVidHhCeWRRNFBKVUgKLVVodWxCTVhVTWQ1NDVmVmI4ZCtsWm5LYngzT1MyTHBJTEo2NlllYW83alRyRU9JZ3hVcTBjNm96enFjUWU0QXgKLW15dHd2TDU3THBNUW05SHBMZzN4QkhPZUR3a2tOa05NbGRBM3FyemhvUzUyeWM2dkRZckk1WEEra2pwN0xpb0cKLXdkU0JEeVFBWExtV3hCcFpYam1IcDdHQlRCc0Z3b3VBOWtZV1A0NTBQWkVvbXhOdnpmOVNwc2xMbEQrVVplSE0KLUdXZHBpNXpJbkVTbXRIRnVlMlp5YzRROFVsNzYxRU5UQTVOM3VxVW1XTjJFZ2t2NjROeWlndjBDR0Nqb0xCNm4KLXExMjU2Uy9aeElTaUVsNU1Ud08vTGZoaEdFeHN1K2NVMTJhZWszS3Mxa05oVlhIRm9xakozWUI4SHcwOFZtSFYKLVYwQmg4amRIVkFCRGFSY1I1L2swMGg5VkI4ek1QMXFRbWZoRS80cS9mWkJyR2JnV3VjckdiQkhJWWxLRnE4Z0YKLXpackg0WFd2WDQxbGU1SUVlZm05K2hGUEU2VFJKUGgxZXpEdmgyZVZoUXhGcEs3aXFwUjB6Mk94ZExKNWZobUIKLUNDUkhadVJwZzdwN01XQjZjVWhydEJaWER5dGRrQVJubHFKc0xGdWRqVlVUalU5Z2krR1V0MXNVbUVmMkJqYmEKLXo1OFVDN0NmUElCSkdNTGpRRDFvQVFpMUdWbzlLMVpJYUtxVXRHQTJRRUhCMm0vYVhaZzhGM1pETWZIcDZUcGMKLWF1OUVtNEFMNDJIcmF1MUFyQ2swZm5oZ0E0ZGJubVpvRVZiWkpEZE1YNXhubzF0dXFFS1lkUExKSHVaeEpoejIKLXhkSlVOWVNGZ3BEV0xKVHp2VE9FZFpXbStDVm1MTmw2MGtKa1dOaDdIZHZXZUJWMXlCcXVBNitrK3IyNnNJb3EKLUxhWnVTcS84UVduTkpZWmVRcEtsOEliOWQ4eWNRNjJRMnNIeExUcStlVFlsd2tFNEdvbWkzNjY1SWZtRTZEUzkKLU9uRmZZTzQ0MGxLSlpKYko5RVQrVk44a2tWZkNHaDN0SmR5VlRKYzk1TEtKdHhLSnphRlVETU9iQ01QZldPeisKLVBhVFRZOGo5cUErR3ZkUkR4d3lCdzBDSnFnSXBzMXBaK2ZvRVpzSUJ0TnlISE5TV2paeEltSXVXdGZZZ05tWjkKLWR0ZVprS2liV3laWWdiNjRyZ01RMituVml3R01sUWFEZllXQ09BSWozbVFHUFRMYjBPZ0ZmS052eEJadWo3MkIKLWw4dHgzb3VmTjlBaDlEd1hsK3luWGVuMzljdDkwMXY1ZWFrcENDOVZDMHhrZTZKQlh5WGp4dzVxdFhSYmV2eVQKLWpLYllrUEZrcnV3ckNVTDJmVlV4VjNtQlhHYWdqejJYTlRhejNvRFN1OUdYL1VNVmlHd3dIcnllU2l3WDlYT28KLS9LVk52K2k1N3cyT2xZMms3MkVvSys3MDBmSGxjeCtFWnUrMXRJamg4WU9WWERnNytuQmtsY3JyMjEvRkFCcVAKLUFwbStmQkVRN1FReVFVRjFhVmlpelFMZ3lmUmwvSjlzelpLWTJTMnowcEhKcm9haG1nU1FSUHdXZ2s1RkVGcFcKLVBYU0cwYlJKOFNGTlpuMnp6M2NkVDZXdkE2aGc0MGpyRUhTbkNtRFRXYldzaE1QdmhDS1pxWFFUYkNxWVFud2YKLUZCQ3RscEpPR1ZWdnFzaHFJdjY5REJiTHp0VFpramptZEtQNDh2MkI1cUhsRVI0VDh2ZXdEdDNsVTVCQUd1UW4KLXlSQ2NtNXFPZXV3ZzhQeGNLQmdGQW9MS00rNjVjY3pMbmEveUlSeUIvZ0Q0cDUzTVY1Unp0bm5MeHcvWXZBMmgKLXhnUExWWW40TEZJYWtLR1lubEM3clhoZmVEdVZBTVRwTCtOVkdiTEdFOERlSjJLemRVSkhyR1pkd1YrRGtVdUIKLUJOOVB6ME50d0VYOTFtYWJXYXdpWHJ4cHRtV014bm9mTVlOZTVnZzM0aXp2bTMzK0tqLytKZ3Zlajd1SW11bysKLUxhT1FjQ2lDVXYvZ3dycUEvRm5raWhlS2JvRjBKREZJaDNVSnpaMVQvVXFkanYrSmN1Wmp2Q2M2MEF1ZlZkbTUKLTB6UWFqNGFaNlBKSHlieXVVOHFUMGxRdm0wODNxNTk2eWVsSEhnZDdLM0ovYzhTc2ZSblRjblNVSThsbzcvSG4KLU41OTNkWjdrTUljK1VOT2R6UVlTSThLQm9OeHFPeXp1b3UvR1RwYVJlM1hLQUR0ZHpYeHk4alk1OGh3bW9sclYKLVVVM0xmYXkzK2J6ZE5McTBwL0dDWjRCNU5Ya3lpdkp4eGlIRG9PbUhXQXpnOXB4T1Y4RVlveXBvbmh2RjJ0M2kKLWtjMzJ5OU9ocXdVQkRaWHVpWmd0ZDlXNmQzRVZjYVk2dnFPa1FHeHFESnVNaUFyQytIazJxd2tLN01oNXFEeDYKLXEvZFZCNlBkV3I4c1ZPNUoxcGhJVjl1OG01cks3UEdubWNEeDRzUzllRTNzb2E3Z3FrVmI1SDlTck96L3MvREQKLTFHNkJqYWtIdGxpemZKTFFoaEs5ZVR2RENVZjNwdk9odE55WDZPS0dzUHcxVkIrVWNDMCttbkhuVGhyc3pJZjkKLXEvQVhKbnBvVlVQUDNGcjFlR0NkTFRsdUljOGxSd3VZVUgvTEdkeTg4Vnl4K2pvWjYyNmE0Y2I2M1cya25Rb1YKLW1Rd3o5R3dnbThSSVpNTGdaQVhpbWF6RzhFVXova3owejJDMVV4L3dwaWk4eW9mOWRlTFpCcE1qdDRSMHVLaE0KLVZGZC9SZGtvK0pzcGNmb1E5UHR0QS9hWjdhVFl1NGJYSEJwVHB1c2pUT3ZXcmY5L3BDNENTY3FDSldzUzNBbEcKLUJ6VEludzdmazk2ZjdlVk9GNWcrZDdsRU9qUEhiNC83bmFqM3BEVWxIN0h0ZWNxM2ZhWXpyZVQzQ2JxbHR2S3QKLUxCUjMvYVJ5SU05MTJSVEh1VHcrNmFjT3Ewdmd1aUsrRDYyQzdaRFZ0aUNtK0JidE5OQi9VSm03OS9PUTVtcDUKLWJUSTBrUG1EZXljYVdUYTBPanB1bStjL2RwRy9pSk9CRElDajdqSE9YU0hUN0psR3lYNmFTRkpVbHR1Y0FuWnYKLXd6aFBEbWREYUlEaUtTazg1R3FnZERXVmZHb3NTQ1g5UGgvVDNXcEl4bndmV1NEUnRJSGtXVGpseStwZTR5eTUKLUs2L1hJU3kvTDVaaC9maGlJNWZqSGpnem1saWJzMnJ1NG5WdzZoQmhVdmxTU2UyQkVzNWQ5aC95Tkg4V3kzcXYKLWIyRDNqaDdoa2VwRnRaSkdOVEhwOFpVQzdOczJKSXBRWU9ic2F4ZEk2NWkzbU1PdTdmUndJKzAvNGVqc1doUDYKLUtDRWlMZ3d2TGcwcU04Mm1hNllCN3FIQUhib2FjelJWRWZmRGNKVUc0YTV1eWNCMERvWkZuK3VFYUVGeWlsaTIKLTBoQ240aFZmc3FVUWsyUFQ4TW8xdFNsNWUzMHhJMVlKWnJSZ2lKbTluSFJYNmZMaXpuZ1ArSUxKTFBIWnNQdmwKLVNWSWZZKy92L0ZSOGZlS09qYUdoeUdGNTFCQXhhTTJOSVE0ak1QNS9YK1U1Z1F5YmkwRTZ1N3Jyb0RoYUhzS20KLUNNZ1hxc3p3WFdDcGVkQS9zRWJlSHBpVEM1OVlsUFBTbElPTWM5dlBLby9tUUNmV3kvOWljVWFJZktRbGR2a2wKLWxVeHhOa3F1NkFiSXBIVnNjYkFFelNQczV4YlFYVThFWk5OQ0Rpc0ZubnBZM25RM2VMbmxtODlzYVRKeFJiN04KLVdIUk1sbVB2N3FnRDd1TUlxM3ZkT0dBN2k1d1Q5TWVvTklnSzEvRHNnSDMwczZSV2pKeTRZeXlMbVJUWFB6YmoKLWhiUVZwRW1pTVJiRWlkSXZVeDJPaktWeFZRSWNndExzYTJsdkhRNFhMMWNwTHI1R1Z0T2d5MGZNZzVPQ0RVVUQKLXN2amdqZ0xRM1AyVXAyblZZNUZNNi9RcFBjNURUTHV1Ujlla0kyL2M5Qml6MDlSdGNZRFVRSzJhamRvOGgxSXkKLUtxSEZvQjdoNDhPWHhYS0tZOTREWTBUR3g2UG9uQi9lcGo4b3JBdzRRS21tNU0wdlhZd0JPcVJ5bUNUSFRxT0oKLUdPYmRMeDFldUZGeXFndXpISk9VMmdBR1pJMHo5TGcxeVJ1RnloZFBaeXVuaUljbXRMTnhSWjFkdVlIRXJjQXkKLVg1NnFuZG1MWHQ3VVZrQVRhaS9ySU11b0pMZkFzVW5WdVRVUzVwN3RKTTc1NFVaVDdsVGNYdkRKZ09VTm5CUmEKLUljeEMzcHh2YnJZREoyaUZKNzJ4a3hVUDJwNzRndWNxZzI1WG5DVm1RdUxnNnpERHhGNkNMdXc5aXN4eVhnNHAKLWtuZU1OLy83ZnBwOEdZbDlueVptMnlxWVlNK2pjdzBmY1ZjNjRMK1g0dy9nTDNIMlVNR2d4SUhTSnA3SElHN1YKLUtIdFhyTnlqZFBYWFBWVXNNc0FBaW1xT3IwTHIyc1pXaXJmdWl2TGFQVHFoYmt2RzVQRjdLM2dUODBBT0ljZC8KLTZFSUhCeTJoWjd1a2ZqSG1kUDRMeVFPaFRRa2xhS3pHSEkwbXlwcTB1RkxXSk9VbFpuVnJNaUxQMXhyV2twQzgKLVJvOWVvNm1mampRNDV6OGFkQzQzYTQ3a2x3VEV6dm9kM3JORUZJR0pKVUVqQU4zbWJxaWU3SXhvU0prbkJCSksKLTBEOWxaRVE4bFpXbHE3dnVOOEpkcVBNNnhoMTU1ak1Wc1B3akxLNlR6a2o1QnBSRDlUZ20zdTZIUGVDUllRM3YKLWt5NzFNYWl4ZGpUR2JXVG9ycXcrL3d2M2owS3N0YWppdlVqWXNEVHZadE1hOUEvYnhXeUZRRHZxT0J4UFdod0wKLTc3MCtpUzBnclhSZ0tybkQ0Vjh3QkRUZ3A0SmU0QjJhSmphSUJQaEtWNXJyVTh3SXkxcmVaVWJJdFJrSXNTWS8KLTRqUlFwSG1hVTdSOFlSeU5UMlB4T1p1Tm1yRTBXcVdndXhUdWhLTHM2elFTMWdlUjBCV3NURlRJNXo5a09KN3AKLThHTjB0T1l0MEtac1QwazNDT1Z0ZktsMU5tNmthQXMyRW9ZTWl5UlFBQXpCbGhySWpwaDlJZ3lRMEo0QmhPZU0KLTY0WmxuV2F3SmNaZXg4d0ZIV3g5UWlQMVI0YVBBUHlDcjVSVlVkZitoNmdmK2JSNG5tbW1xTGY2ZFNXQnowTysKLWxpd0w4V0RRYllxNWh2MEg1VW41cmdZek5CSTlFU2dXMUNrSDEyMHVRRnZzZHIrR2taWk1oMnJOYlI0Q2ptV1gKLUkzd1UyK1hZVzdZaHd0bzJaWVU3cjJBdU5FcENpbW5SMjhVNjdBQlVqcCs4WU9PblZhS0NnMXNWbVh3MzZLSmEKLWJNbzZPZ2Jaa3R0N1BWeVZrS2F6OGs4bXRlRVF3dzdGYWxYT1JESTNmZnBWWWVZYUF4eU5vb0laSjREYWVjUkkKLWdhNklKY3l1UWVVWjlwdGdpd3B3Y1VLamEzWGU1ZkprOS9UTkk5T1M0UFFTSDNiQ29MMm04RGVDK3VzSlIrajAKLXlmZHV6NTRwWXFZT1dseXp5WU9mVGZhZ2lEN090Q0VoMjR5cGRXZmQ2L041VXpjSGt3RTRZeStEblg5SmVEdEgKLTR3TC9qcmVPNUJBUnYwaFY3OGhnYWM3LytoYWIyWEQvZnZzQi8rb2Y0V2MzVGFoc25EVVc5NnhBaXoxN2xFYzEKLURLUXBzNzYrWlVsQ1hXZDMwTmxhc2NNMDd2L3pSalBhRUtidFBDem1kSkUzYUlXWEpGcGdrZXZ2S25HUlRhc0oKLXFUYXZxNXJ0Y1BDN1dwVFpGUGY2bytOUFZHN0ZEYWhPVWZJYVFvOHhrWUpGejRKSmJQbHA1NEtZZGxYQjF2ZWMKLUx4aWwreTZNeUppcktBdDY1RHphbU1xNUhzTWdvYWFkOXc0dDIva1g0U1RaYkxMUVAzeUpLQ1Q1cWhBWmd1RXYKLTJXVlRYZW1mYlc1R3dOam00WnhlSWpEVWdSTVdWTjJBUTBTL3grNjFtNG14NkN1bnQrWVZmSTJnM0lVM0xLbDQKLU9zenBtcEhpOHJFV09EZTBvcDVXbVREOWJnUUNTWE16R1kySnJNWTBNRWV5ZGhYZXZBK1VwcjRkNTRUWmpHZXcKLXJBWXNJMkJGaFJkTm9tVGpyVzlMWHJUUGQyK0grWXQ5MW5zeGdLU1k3ZHMwVGNRdFFNRER0aENSSzZqMjZQTjAKLVVxMTcwc0xmaXlPRDE4NTdIZE9FQ0Rsam5TZkJpYmpNR1lZenZJU292dzdwQ0NjenEwZ01WTDFldklOb3MzTncKLWFFeGFveStITTdxd0w4QURaWjh1REJMblhzS25UY2lRbEJhb2IyckRuYjRUNFlDMm1LZ2w5ek1TR1cvMEd1R08KLTIxMjZCRktNbXNieEpoVmdUak1iY0M2dmw0MEdnWm9Bc2c0YzYwL0R6NG1pOUNZaFp3V2hvbjlaQzZDVVd0YTEKLTdEblVncm9YeEdJY0E0RlZxOWs2NWx3N3UxWDdsNmRWK3Q0NTNTdGZ4azdMaUZpWWVHWVhXRTZ1dFk2ZjRSNFQKLVJKZ3FpZGMzVFVFejNFeXdyelFLYVp4ajAxQm84R3pDVVlOVlNkaWpJZ1ZoK2FDYWZMY255QU1UTGxoWGJXaTIKLUcwVWpnMTJ6Z0xJVDFTdkNRR1BBMEE1TTZtZ2t3SkMwMzBrUUxmY21Pa20xS1RMRWIrOFd2SnpHVFNRU2N5VS8KLVcvOERZNElqaVlHaHJpVEpGZG9QdzE5bzN6OXo2ekRQMG01OCszblRrVng0OVQydVYwMC9KeHVURXRCYm1ZTDMKLXIzYXQ2UDRGVlFNL21RaWpoOTBvVE0yYjM2ZE5aVWwrWUdpVTM1WmxPbkhUY0xaOXNtZWlFbkJlenE0MUhnUFkKLWhLRWxVZlhVSEFQdUpRZDBRQnR5ek1ISjhWMk4rUSsvanpDY3h5R1hSWEVwNnZwOU53QW1OdnhQMDk5WW9vMFIKLTl2YTcyQnhpUHBqLzRubUxPT1lxdUgwMXFPb3RSNkgzbGkzVDlIMSs4VnQxenRQNFZtQllzQWNTcnV1c0lRRzAKLVlXb205MXlUYjNyVmJOdVU2R0Y4b2c2WXh2bkhlYXdqSG92TEJrTUV3WS9XWG9kRkVhSGpGdFlwMHo5Q2J3cGoKLUZLMllBQUFBQUE9PQotLS0tLS1FTkQgUEtDUzctLS0tLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3QvbXNpZS1zLWEtZSBiL2NyeXB0by9wa2NzNy90L21zaWUtcy1hLWUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwNjc3OTQuLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3QvbXNpZS1zLWEtZQorKysgL2Rldi9udWxsCkBAIC0xLDkxICswLDAgQEAKLQotTUlBR0NTcUdTSWIzRFFFSEE2Q0FNSUFDQVFBeGdnSENNSUhNQWdFQU1IWXdZakVSTUE4R0ExVUVCeE1JU1c1MFpYSnVaWFF4RnpBVgotQmdOVkJBb1REbFpsY21sVGFXZHVMQ0JKYm1NdU1UUXdNZ1lEVlFRTEV5dFdaWEpwVTJsbmJpQkRiR0Z6Y3lBeElFTkJJQzBnU1c1awotYVhacFpIVmhiQ0JUZFdKelkzSnBZbVZ5QWhCZ1FKaUMzcWZiQ2JqZGo1SU5ZTG5LTUEwR0NTcUdTSWIzRFFFQkFRVUFCRUNqc2NhUwotRzBVMjk5ZnFpRUFnVHFURlFCcDhBaTZ6empsNTU3Y1ZiM2s2ejRRWjdDYnFCalNYQWpMYmg1ZTdTNUhkL0ZyRmNEbnhsMUthMDZoYQotVkhHUE1JSHdBZ0VBTUlHWk1JR1NNUXN3Q1FZRFZRUUdFd0pCVlRFVE1CRUdBMVVFQ0JNS1VYVmxaVzV6YkdGdVpERVJNQThHQTFVRQotQnhNSVFuSnBjMkpoYm1VeEdqQVlCZ05WQkFvVEVVTnllWEIwYzI5bWRDQlFkSGtnVEhSa01TSXdJQVlEVlFRTEV4bEVSVTFQVGxOVQotVWtGVVNVOU9JRUZPUkNCVVJWTlVTVTVITVJzd0dRWURWUVFERXhKRVJVMVBJRnBGVWs4Z1ZrRk1WVVVnUTBFQ0FnUnVNQTBHQ1NxRwotU0liM0RRRUJBUVVBQkVDc3lIWFoxeGFpdjBVUVJ2T21WWXNhRjM4QUwyWFg3NXd4YkNzejUvd09nN2czUlA0YWljWnhhUjRzQm9nMAotZjJHMW85b20vaHUrQTBySVlGL0w0L0dVTUlBR0NTcUdTSWIzRFFFSEFUQWFCZ2dxaGtpRzl3MERBakFPQWdJQW9BUUlzb3pRcm53agotY2MyZ2dBU0NCQUFRei9MUG9KZS8raVlXZVR3U2ViejZROVVlS1p6UTJVV203R0x0RU0zczNjOVNDdnBta3dJUmRFaExqV2FCSk15SQotRGlMN3QxSTF2TWY5aW5COExYZ0FjSUVZa3BOU2NqUzhFUkE5RWJiN2llTktTQmc3dzdCOEFUSEZ4TFNsREFEcVJnb1pyQjFDdGZnZgoteGltcDNFZ3hUZ25odHlRaFp4WFc3a0JReUZSd3VtcGxySlhPcDdhbGJQN0lvdGhyT0tuY3czMElKVDFmd1B4V05NSXRJOWp1WEYwVQotQ2JXVlNqUHpHQm80K1hOWE12VU82TXBsT1FFei95d0VROUU4T1pBUWV4MVp3OXFxNXBwc1hCMnBNc1lWNXNMSkdpa3VrTVlLcXVpegotM1lLK3RONko4YWhMY0RVcytWR3dxdlppMTdncEJUbGJFUCtabVhKcG5PNjN0MXlURUIwVjVBWmNSS1dVT2h6bENCTTVZVWFncU5vWQotY3BzbVN2T0s2Yll6a1VLT3J6V3BEQ0F0R1ovRHZ1bDVkVFpabXhzMldwTStpeWVIWE14TzNodXk4SzFiclBUcXQxZjFzSGh1cTFqRAotMWVYZWRhQ2pJZ1VXOXFWMTh2TkFRQ29mL1liNlQvMWZ4enRmL2pEN3BQTFFKKzdMSmtLQ0FFSEdjYWl6cG9LcWhZY3R0YUVoTHExRwotTytPaHFmN3lGZWdNZFRKM3d3UDMyNHc1WllTVTVmTG8yWjM0L0VkZjZFR3ZYeVRJcVZmQW1FQkFMZDZKR1ZkTjVHbFlZVHhyTCtlTwotUDgwWjRhbzRZS294d0VtUnA1Ym1Rc1E4QjI5UWhPRkttQzZlaUc1Qjk2cUxNdHA3Wm11MWdyRE54VGQ2T1hTaFdWd1lBUkQwL0IxUAotU3kwUEFmazlHYjRmQWtPOWZaSkRRWVo3czBtTTVpT1BFZVNSNzgyMFRvbE9iK0tmUmFiTEE5ZDcxNGpzYzJqRXlrS2xwUDY2Qmg0agotYUNzeXFKMHVVUWNFOFNuenJLQXFHd2dXaUNHUXBpVGErSEJpUDZlUmxSR09LUWo1WTA2dmNOeDZJamE0Y0dlNit5Q044SFY4dENZMAotb2taSzk4TlFDbDV0NzlSL1pCMmMzTnZCSkgrL2czdWxVNDhpa1QzdFZtRHhFM21PWm9mWnlHRkVNOTlQK1lDTVNjTER4VGwzaHpHeQotMFlrSThVODU1UDdxT0FiY0ZmaDJUNW4rTFNFTHdMaGJreW1FZlpUOTE3R1dUZm15cEJXTXZKeDBXSGVEaEt3UVlQZHpiS2dXRVRuYwoteWVLYXNhQ1crb0xkaEJ3cmQ2V3MycjRNQThjd2lZWERMYndZbUN4SkE4VkYrKzhrdWJGMkhKT2pTeU1CUytRVDJQU1YvMEQ5VVdvaQotVmZrN1I0T3ZXQkpWdnE3blYrbFhTME81aWdqRXh4bG14MU9hQmZnNytDci9NYks0elZOcktTSm44Mk5uS0t0NkxDNlJhVG12RllheQotMHNERnhRN1hvK1RoNnRETkttS1dKdDZLZWdmamMrcVRXSlRLYjNrTCtVSTh2UzB6VEx5MStNL3JaNGVrb3MvSmlTNXJZSWNBc3d2ZwotNThrQmdwLzByYzZ1cEJlV2pCYUs1TzBhTEFlQlFmTHVsbzFheFdYMDRPU1ZLbVllb0FsdHlSNlVPOU1FM2FjdXJReWc3VGEyNHlxTwotd2hpL1BySWFFaU83ZHNXdkZ0enNzaFZ6QkxpYzAyTmxBa1BrTVV6bGlQWW5aSFdRZ2xEQVZ4TDVLMnFodksxT0ZDa1FwSWdCc0JETQotNktZUkwvbWtCSUlFQUxJbDkyN3JJa2FOMzcvQlFJY3hMY1NhMDVZZkMwSGwzbXhXRVN0MUEwRDRsQTM3QTlTOEViWW1EZkFZbE1jMAotM0hoWkdkWkV0YXdmcEpGeURIek5aY2VOV0JjaDZueGVOWkNZNFlGZHNienVHUzBSS3B3TkE5Uy9jek9KNHA5eW1CQ3h1aEdlcEkzVQotUEtiQzhDNzQ5V3d3MS93TWRBb3QxbitLN00vUEJHUjhoV21hSDVTUzdVM3lNd0FCMWZxMk5Eang0dXIrVW0rTWNsU2ROMDFNRFh6RwotRU8rZUFvMXBkQVk4NDc5MjM0bDhkQjJZVkFoWjFabEo0S21icU1LSnJHSlhuUVVFWVM2L2NURFJqc1VvY3NvVzd1R2cxY2kyR2lIYQotcWpsa2ZwQmZpZTNTZGhGVy9LOGh3QUgwSEFMczU2b0ZONjZ3VWtQL0FhSkFQZklVTmhSNlJwSEt6Wjl6Q0M0Mm9CMm1OYXdRUk1uRgotRVRCbDFzL1N3TXhMS1JwN2pBZktzNE5aeFNZNkk5ei8yZFRwelMzdHNITWp4VkR1eGtvbHZSTldCSUxFTWVMMUNCdmlwMkhobW9VdwotL1N6NU5EZ3l6azFhUUxWNkRRTkoyUlpMTVpEUkN0U3daU0J1NmxoaFNnVEpHYXpQMCtOYnFYWEM1YVFUcnFyRkljV3lEWHorQURsZQota3N6ellNL2dTYVFUQ0FMVHdmRERhVTlFazN4VmdXK1hCdEV4dEozVSswQU4zbDBqODZyVUlkSXZwNmVXZHhXUXF2OUx0cG9vcktNRAotS2ZVYzVQWVYwOVoxSmdzVDRYNTFaenErNzRsNWR6N3VkSU03VU5iZFRwbVJtOVBEajNUVWJHQ3ZOUjlocU9FR1RMYmt2YjFaUjI0YQotaDZ1R1JsMnpuQjI1SXBEQUdSaE5SYjlpcy9wTzJ0dkh3SFRETU9qcmd2WkcvcE52WGdTVXh6MHBSalVqWEljcUJlMlgyZ2NRZmVhbAotcjhnWTc2bzgzV0VHTDZPRHJ5Vjl2VFFWSHQ1MitpemdwWW9CWmFWbHBncWJabDU0YytPRTBaeGY5UndYd0RiY1l1NUt1NUUwTVBMMAotcVVqYzB5MitZNkU0UDViQVdhWkdNR1QrT1JreVZVemNhV21NLytYbE83UEVSNXdyV2xDSU1aQ1gxTC9udmlvWTBxMENLcUFMbjdESgotUVUrcWVuYndyYjZ1d1M3dU5aWTZWODZzMGFEWXBVN3lSeXF4QzVTYnV5TkpiMDJnZHhVQ2dwSXNjRmFNVWpNVlJtbDRNNEJJalgvYgotVStIZ0hvVk1VbThTbk45Z1JjVDJpelByZ09HVmNNVEpqZmVuem9DS29DUG85UmpnR01jdGdCNER2S2FtRXJOVTdPcmlsSWZ1b3F6RQotUE5TZVA5U1B3L3prRG1Odk1lYk00OTlXZTlDVm5zSFVXcUYwMC9aSldvdWE3NyswZjFiTFMvdG1jaTFKQnZJY01vLzRTSnZnSCtLRgotbzBnaWpQOWdxQVBkNWlDT25wbkpsSFVxUkl5bTQyU215S0VEdXpkU3dYS2pBUjZqN3VYZGEzOUp5TUpyOGdHekVzdTBqWVJrQW1qMQotWWRpcXdLWFVjTE1rY2oxQUtlVS9QeFRVVncwWUtzdi9yb3dyUFl3dzN4UVVXcU5pdnJYQjdHQ0hFM0J6c1lOZEhzbXppYUdJWFFiQQotK0VCSGRrdUtyTThCY0MrZnhoRi9sL0tVeG5nc0QxRTc1SWNVdjh6RkRGK3NrNENCWUhxa3M5UzRKWWxjdWJ1aXpxc0lMYmRHeklNTgotWjd3MzRrMFhUK3NFZ2dRQXl6cjhNSGVJSkdzVCtBWW5acjA4UGVUYnlyMDFKRW9UN2xQWVQ2UHpYNEY2M1FLS0RsK21CK1B3TE16WQotQ1hyeFpjVW11YXk2L01WOHcvZjVUNnZRWGRvU3c1cHVXb2RCWXdWUmVZaDFJYUVOK2ppVGFwbTlZQlZtY0lzSlBPNmFiSG93a25TVgotT1dTdlNUMEF0QVg1N2ZGT1Rja20rZmFjZkJLOXM5VDFsVVVnRjQ0Qmg1ZThmOXFLcWZPVjQ0bnFkQ09FeVVtMERhbzQ5N2llTjRFZwotWEJMTnZPWlk5K2lyTWlYanAwbGN5RnZockpPY3pmeUNyOUVpaWFpSDFUZlN6S0dLc2YyVzg0aUtuL0pINngyZU9vN3hqd0o0MEJRRAotYzZTMWNVTkV1cUJoUDZieTBGaW9PWFlPS1Z5aWZweGs4NEViK0YvNENOZFRKVHZDUHdzaWVnZGZzWC9RNTNEdktWdFhwOVljYW01SgotVG1LUkhYSy9iTUhGNE9OdjNwL08va24vQnFSeCtmYmJQMmVNWDhaMUYvbHRIS2ZwNkIrMDZIbGpVd1FMQkpzOVh0Q2ZxSDVaZ2R6OQotZ2FkNVdaRjV5a0ZBcm1IRGdlRmxnZ2d2Ylo3ejl2cW5qTi9USDY4VHhKemF1WVE1dkxIUTZ3R1hpazQvNHVxNy9UcU5taHhsUUVNNAotelZrd3NuMjAzYlVtS0x5eit5bDF6SXREcG41enkxdVhmR285OXJCZFV6ZGJkRTlMbUVGUE1hRnNhSGQ0YThvRGFVcm9EN0ZnQ2JlRAotSkpWbGQzYWM2RjgrM1FiRXhQczQ4T3JnQTFrSTMvVXdYcjUybGRqaVl6VExmQUdSOUJqcU5GVHc0NUZVSHVNZjhURU01aGNIeDU2dwotOTVlS0FxcmFEazI4bzlrK00yVUtwY21yZGxXb1d6ZHFWVkZlV0dwTTh4OVk5TnQwbGYvNFZVUWdyWGpxVGtVQ1FrSnlxVGVUZUdnSAotcm4zUUJrMlhBZ3B4WmhhSnMzSW5XMEJrQWxCbUs5OWNNaW5VaUplRnQ1YTRwNXdQZVhyVnVoNlY5bTdNcGw5aHpwb2dnKytFWnFhaAotZnp6Tm5EZ3hPWmZXMzQyRFgwNTJQZGdYbzBObmtoQ2swMDVMdkZ0Nk0ybVJuMGZMZ05WZnlVWlpvT3A4Y081WldiaFhYbHJocmdVdAotajJ6S1BLNlE5NFpqNGtkWEhCR3BBa3JCOFpRNEVHR09ERTBEcXVzbThXUFh6Qis5MjM2SU1IUFU3bEZieWpCckZOSTdPNGpnK3FSSQotSXBpKzd0WDBGc2lscUVibWpHK09Qd2haWHJkcVVxeUYrcmpLUXVTUnE3bE9lREI0YzZTMmRxNE9PbnkwMWk1SENiYnljOVV2U0hSbQotaE9oR3FVbHpIeUhMbzNXN2orMjZWL01oa0RYSitUeCtxZnlsdjRwYmxpd1R0ZUpKaitDWnd6anYyOXFiNmx4WWkrMzhCdzEwRVJhcAotbThVQ1JGQmVjVk43eFhsY0lmeWVBbDY2NlZpN0VCSlp2M0VkRk5yeDFubEx3TTY1bll5YTd1ajZMN0l3SldvdElVeDhFMFhIMC9jVQoteFMvZEc4YnhmOUwvODY1Mmg1Z3EzTEkrd1ROR3VFWDBETXV6N0JHUUcrTnRnYWJyWjZTc0tHdGhHYTdlVUxUcHowTWNXVExSVTB5LwotL3RrY2twbTVwRG5YU0ZiSU1za3d3akVDejgyVVpCU1BwaWdkTi9Qamc1ZCsweVd1N3MzVkp4dzRFTldQUHB6WitqN3NPWG1kdm45UAotTzF0UWQ2MEVPKzNhd0FTQ0JBQVpRdldWMy95SjZGeFB0dGJQK3FlVVJwSm9QRVpmcE4yVVlabWQ4SHF0UjBZYmFPWjZSbG45bnZwZAotSzlmeWxYZHc5ejJ4ZUNiakRXVXR0SkI0VnFaeEdKTThlQ1RDMVZEVnlBT3NRNW43U1k1NWRNa1FiVStvNFovNEo1bTgrd3o1MEJCSQotTGZydUwxZVo2L0NGNkNkdnhWUmlKMTBzWGMwVG4yc1ZNWHFrdzdBZHAxR1lvQ0k5YzZWRlNGSzc0K24reTdMVkZRNUhCbmJReUtKYwotZHZkTE9Yd1pPUGFGSEM1VU5YUm1PcGN3ZFBxeVhVZSt4SXNPTVliemRsQW5JOWVHRE5lUkRrdFVhL1JoMENiWkN4am1Kem9aRVlPRQotWmpzWVpsRWZwMUtiNjF0OHo0bTI4aEdMRWc4OFQxSWhteGEySGVVV2VzMVJwbWdJT1ArLzJMYjNzbWovbC9mcFN1NGdhYkZneUNBVgotSDVIZENZTVNjVXY4U1Z1NTUrdHBlTzhFTG9ISFFVWFY0cnIwODRPNGJ1ZHpoZ05TT1B5TEdEbDVzZkRVWGl5dXNQQ3hTNEpWTy9LWQotNlYyUXJ0Zy9xMnd0bVhwRWtabkdUK1FpM1dEend0NFc4MWFsenRuWU1QMTdvR0xteFg3MUtWOU9FaU1aakk0V2FhR3QrT09JTkx0UgotcWVmaW9aMU5JMkwxczVNMHR5YndUc3lVOVdFUk0rM3BVd1hJZkpWc2JNWlJsTmFPMk9vZ2NIYmFSNFVXdmhPaiszQ1RHMXNUaGlZUQotTXhNbnAxUnBxeDNuaHl6cUxPM1RScmtZdnhuQTNjZFBCbjlFZXFwZ0JNZzdYM2hDaU1WM0ZsNWNqL1dPTWh0SFlnWTdCZ2VDWG80NgotRUZWWjQrV3JvR1o0NnhHaVJEaUlibG84YnpMZDdRQ3h2dWt6eHkzbVVEZ3NaUThwZHM0TjI4d2VTVWhCazVNQVBiZkJwUnZYVVZKeAotTWhLcVh1Y1FVMU1kMXFTR0xidXVJUXV6OXBBR3AxSkZVeC92RWtDZ203NGRhU29WV0NadUIrMVpFNGY0OGNsdnJCajUxeE1OZjhDUAotRUZFN3Z5U3pWYjZYMkgxaTVYM1orWTNEZEljV3c0WTJGQ2xmY0prNE13cThDcTJHQUxHRkVnZTlZU0VFOVlteXVVNk9GZVUwSUNvbgotaVhBZ1o3MlNNOGZCd0pQcnVMRmJkc05ZS1crb0FmbVBpc1hTV01jWm1kU2JmazBHWXYrdkt0dTNlZWdTYld3MVVzQ1Z0Wk9oOUU1WgotdVE4M2w1OUNCcU85c1YvU0ZVM1dyckowcU5XeHJtWHU5bkpuNVFmNWlDUm9GR1lOSFlIa0lHNUZTNk4wMEdFRFp4R2t4bXJvMmQrKwotQWRqNUxWSGMvYjFjWVdtcnV4K2pFcUk4Wks4Y3lUQjBYTWJCQS9IWWJ4OU5YYXpyN3puUDQvTWx2M3BaVG9FY1l0K2xnTEhBQXJ0VQotQWRoeWJoYkxJd05NcTBncjZFd3REa2xCYTNuczRXeC9ySlU4SDdMR3M2Z1Y4dXFlYVNrZXR2K256K3NRaGZjdHhaMXJ4KzVxelhmeQotRk9RVnBPMjNLRFF1bkJpMUJsOWs2MURpNHE5SldjeUFEQlhQSFhKenA3bUw4Rms3emR2TUFFZnVFRDFwaGRSbTZHZ0RZb1lVczR5UQotSXJoU2pGbFd5azdoVDg0NzV4azNCSXYrK29idldTQXYvMytwRjZBNlUyUlhEQ2hWbW5HMEpuUGE5d1lZdGR6Qm1MZlpLQmpYK0RqRAoteUVNc3VoUHNDenVONFI2dEJJSUJXQ1ZSS21Ld2RrYXRtcHNRQmdEdzQ4dTAvQXJmZmw1L0RSbFM5ZWUrUWZmRmVjVWl0RGRDSytrdAotWDVMMmZHWXJMNWc2U2x0bmNNSWVWMXB0eDRudVNqQy9POTQ0cTFLWXRxdlFpUEZXSnFFWElSTU5iYllPQzQ3c2pMemEwdEVGcmltTgotd3hjcldHU3pzeTVSOWJlRlExYUhQY01yRFdmQ292aU5SazJxUHR4dUtJQzVRazJadU9tSkxqQ2lMd1VHRWIwLzFNcHp2M01xUWE3ZAotbVJheVhnM0RaV0pQYWp4Tlp2NmVTMzU3RWxNdndHUW1xYWZiMm1sUUp3V0xzZzltOVBHN3VxRW95cnFTYzZNaXVZK2ljTEVGaWI5agotT2ZSUXJ4NzByVFNLVWZUcjRNdFAwYVpaQWVmakNycFZJeVRla2hGRE9rME5teDA1N2Vvbmx5R2dtR3BsNS9Vbyt0MUoxWjExWWEvbAotYk5iZm1lYlJJU0plVFZXMEk4RmhzZUFaTUkxR1N3cC9sdWRKeFNMWU9neVJraCtHWDEzNE1leE5vN085RjFTeExDZldhU0c5RmMzcwotNWlmeTA0dWE5L3Q4U0dyWVpQbS9sM01rQUFBQUFBQUFBQUFBQUE9PQotCi0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy90L21zaWUtcy1hLWUucGVtIGIvY3J5cHRvL3BrY3M3L3QvbXNpZS1zLWEtZS5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1ZGJkOGYuLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3QvbXNpZS1zLWEtZS5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxMDYgKzAsMCBAQAotLS0tLS1CRUdJTiBQS0NTNy0tLS0tCi1NSUFHQ1NxR1NJYjNEUUVIQTZDQU1JSVRVQUlCQURHQ0FjSXdnY3dDQVFBd2RqQmlNUkV3RHdZRFZRUUhFd2hKCi1iblJsY201bGRERVhNQlVHQTFVRUNoTU9WbVZ5YVZOcFoyNHNJRWx1WXk0eE5EQXlCZ05WQkFzVEsxWmxjbWxUCi1hV2R1SUVOc1lYTnpJREVnUTBFZ0xTQkpibVJwZG1sa2RXRnNJRk4xWW5OamNtbGlaWElDRUdCQW1JTGVwOXNKCi11TjJQa2cxZ3Vjb3dEUVlKS29aSWh2Y05BUUVCQlFBRVFLT3h4cEliUlRiMzErcUlRQ0JPcE1WQUdud0NMclBPCi1PWG5udHhWdmVUclBoQm5zSnVvR05KY0NNdHVIbDd0TGtkMzhXc1Z3T2ZHWFVwclRxRnBVY1k4d2dmQUNBUUF3Ci1nWmt3Z1pJeEN6QUpCZ05WQkFZVEFrRlZNUk13RVFZRFZRUUlFd3BSZFdWbGJuTnNZVzVrTVJFd0R3WURWUVFICi1Fd2hDY21selltRnVaVEVhTUJnR0ExVUVDaE1SUTNKNWNIUnpiMlowSUZCMGVTQk1kR1F4SWpBZ0JnTlZCQXNUCi1HVVJGVFU5T1UxUlNRVlJKVDA0Z1FVNUVJRlJGVTFSSlRrY3hHekFaQmdOVkJBTVRFa1JGVFU4Z1drVlNUeUJXCi1RVXhWUlNCRFFRSUNCRzR3RFFZSktvWklodmNOQVFFQkJRQUVRS3pJZGRuWEZxSy9SUkJHODZaVml4b1hmd0F2Ci1aZGZ2bkRGc0t6UG4vQTZEdURkRS9ocUp4bkZwSGl3R2lEUi9ZYldqMmliK0c3NERTc2hnWDh2ajhaUXdnaEdECi1CZ2txaGtpRzl3MEJCd0V3R2dZSUtvWklodmNOQXdJd0RnSUNBS0FFQ0xLTTBLNThJM0hOZ0lJUldCRFA4cytnCi1sNy82SmhaNVBCSjV2UHBEMVI0cG5ORFpSYWJzWXUwUXplemR6MUlLK21hVEFoRjBTRXVOWm9Fa3pJZ09JdnUzCi1Valc4eC8yS2NId3RlQUJ3Z1JpU2sxSnlOTHdSRUQwUnR2dUo0MHBJR0R2RHNId0JNY1hFdEtVTUFPcEdDaG1zCi1IVUsxK0IvR0thbmNTREZPQ2VHM0pDRm5GZGJ1UUZESVZIQzZhbVdzbGM2bnRxVnMvc2lpMkdzNHFkekRmUWdsCi1QVi9BL0ZZMHdpMGoyTzVjWFJRSnRaVktNL01ZR2pqNWMxY3k5UTdveW1VNUFUUC9MQVJEMFR3NWtCQjdIVm5ECi0ycXJtbW14Y0hha3l4aFhtd3NrYUtTNlF4Z3FxNkxQZGdyNjAzb254cUV0d05TejVVYkNxOW1MWHVDa0ZPVnNRCi0vNW1aY21tYzdyZTNYSk1RSFJYa0JseEVwWlE2SE9VSUV6bGhScUNvMmhoeW15Wks4NHJwdGpPUlFvNnZOYWtNCi1JQzBabjhPKzZYbDFObG1iR3paYWt6NkxKNGRjekU3ZUc3THdyVnVzOU9xM1YvV3dlRzZyV01QVjVkNTFvS01pCi1CUmIycFhYeTgwQkFLaC85aHZwUC9WL0hPMS8rTVB1azh0QW43c3NtUW9JQVFjWnhxTE9tZ3FxRmh5MjFvU0V1Ci1yVVk3NDZHcC92SVY2QXgxTW5mREEvZmJqRGxsaEpUbDh1alpuZmo4UjEvb1FhOWZKTWlwVjhDWVFFQXQzb2taCi1WMDNrYVZoaFBHc3Y1NDQvelJuaHFqaGdxakhBU1pHbmx1WkN4RHdIYjFDRTRVcVlMcDZJYmtIM3Fvc3kybnRtCi1hN1dDc00zRk4zbzVkS0ZaWEJnQkVQVDhIVTlMTFE4QitUMFp2aDhDUTcxOWtrTkJobnV6U1l6bUk0OFI1Skh2Ci16YlJPaVU1djRwOUZwc3NEMTN2WGlPeHphTVRLUXFXay9yb0dIaU5vS3pLb25TNVJCd1R4S2ZPc29Db2JDQmFJCi1JWkNtSk5yNGNHSS9wNUdWRVk0cENQbGpUcTl3M0hvaU5yaHdaN3I3SUkzd2RYeTBKalNpUmtyM3cxQUtYbTN2Ci0xSDlrSFp6YzI4RWtmNytEZTZWVGp5S1JQZTFXWVBFVGVZNW1oOW5JWVVRejMwLzVnSXhKd3NQRk9YZUhNYkxSCi1pUWp4VHpuay91bzRCdHdWK0haUG1mNHRJUXZBdUZ1VEtZUjlsUDNYc1paTitiS2tGWXk4bkhSWWQ0T0VyQkJnCi05M05zcUJZUk9keko0cHF4b0piNmd0MkVIQ3QzcGF6YXZnd0R4ekNKaGNNdHZCaVlMRWtEeFVYNzd5UzVzWFljCi1rNk5MSXdGTDVCUFk5SlgvUVAxUmFpSlYrVHRIZzY5WUVsVytydWRYNlZkTFE3bUtDTVRIR1diSFU1b0YrRHY0Ci1Ldjh4c3JqTlUyc3BJbWZ6WTJjb3Ezb3NMcEZwT2E4VmhyTFN3TVhGRHRlajVPSHEwTTBxWXBZbTNvcDZCK056Ci02cE5ZbE1wdmVRdjVRank5TFROTXZMWDR6K3RuaDZTaXo4bUpMbXRnaHdDekMrRG55UUdDbi9TdHpxNmtGNWFNCi1Gb3JrN1Jvc0I0RkI4dTZXalZyRlpmVGc1SlVxWmg2Z0NXM0pIcFE3MHdUZHB5NnRES0R0TnJiaktvN0NHTDgrCi1zaG9TSTd0MnhhOFczT3l5RlhNRXVKelRZMlVDUStReFRPV0k5aWRrZFpDQ1VNQlhFdmtyYXFHOHJVNFVLUkNrCi1pQUd3RU16b3BoRXYrYVN5SmZkdTZ5SkdqZCsvd1VDSE1TM0VtdE9XSHd0QjVkNXNWaEVyZFFOQStKUU4rd1BVCi12QkcySmczd0dKVEhOTng0V1JuV1JMV3NINlNSY2d4OHpXWEhqVmdYSWVwOFhqV1FtT0dCWGJHODdoa3RFU3FjCi1EUVBVdjNNemllS2ZjcGdRc2JvUm5xU04xRHltd3ZBdStQVnNNTmY4REhRS0xkWi9pdXpQendSa2ZJVnBtaCtVCi1rdTFOOGpNQUFkWDZ0alE0OGVMcS9sSnZqSEpVblRkTlRBMTh4aER2bmdLTmFYUUdQT08vZHQrSmZIUWRtRlFJCi1XZFdaU2VDcG02akNpYXhpVjUwRkJHRXV2M0V3MFk3RktITEtGdTdob05YSXRob2gycW81Wkg2UVg0bnQwbllSCi1Wdnl2SWNBQjlCd0M3T2VxQlRldXNGSkQvd0dpUUQzeUZEWVVla2FSeXMyZmN3Z3VOcUFkcGpXc0VFVEp4UkV3Ci1aZGJQMHNETVN5a2FlNHdIeXJPRFdjVW1PaVBjLzluVTZjMHQ3YkJ6SThWUTdzWktKYjBUVmdTQ3hESGk5UWdiCi00cWRoNFpxRk1QMHMrVFE0TXM1TldrQzFlZzBEU2RrV1N6R1EwUXJVc0dVZ2J1cFlZVW9FeVJtc3o5UGpXNmwxCi13dVdrRTY2cXhTSEZzZzE4L2dBNVhwTE04MkRQNEVta0V3Z0MwOEh3dzJsUFJKTjhWWUZ2bHdiUk1iU2QxUHRBCi1EZDVkSS9PcTFDSFNMNmVubG5jVmtLci9TN2FhS0t5akF5bjFIT1QyRmRQV2RTWUxFK0YrZFdjNnZ1K0plWGMrCi03blNETzFEVzNVNlprWnZUdzQ5MDFHeGdyelVmWWFqaEJreTI1TDI5V1VkdUdvZXJoa1pkczV3ZHVTS1F3QmtZCi1UVVcvWXJQNlR0cmJ4OEIwd3pEbzY0TDJSdjZUYjE0RWxNYzlLVVkxSTF5SEtnWHRsOW9IRUgzbXBhL0lHTytxCi1QTjFoQmkramc2OGxmYjAwRlI3ZWR2b3M0S1dLQVdXbFphWUttMlplZUhQamhOR2NYL1VjRjhBMjNHTHVTcnVSCi1ORER5OUtsSTNOTXR2bU9oT0QrV3dGbW1SakJrL2prWk1sVk0zR2xwalAvbDVUdXp4RWVjSzFwUWlER1FsOVMvCi01NzRxR05LdEFpcWdDNSt3eVVGUHFucDI4SzIrcnNFdTdqV1dPbGZPck5HZzJLVk84a2Nxc1F1VW03c2pTVzlOCi1vSGNWQW9LU0xIQldqRkl6RlVacGVET0FTSTEvMjFQaDRCNkZURkp2RXB6ZllFWEU5b3N6NjREaGxYREV5WTMzCi1wODZBaXFBajZQVVk0QmpITFlBZUE3eW1waEt6Vk96cTRwU0g3cUtzeER6VW5qL1VqOFA4NUE1amJ6SG16T1BmCi1WbnZRbFo3QjFGcWhkTlAyU1ZxTG11Ky90SDlXeTB2N1puSXRTUWJ5SERLUCtFaWI0Qi9paGFOSUlvei9ZS2dECi0zZVlnanA2WnlaUjFLa1NNcHVOa3BzaWhBN3MzVXNGeW93RWVvKzdsM1d0L1NjakNhL0lCc3hMTHRJMkVaQUpvCi05V0hZcXNDbDFIQ3pKSEk5UUNubFB6OFUxRmNOR0NyTC82Nk1LejJNTU44VUZGcWpZcjYxd2V4Z2h4TndjN0dECi1YUjdKczRtaGlGMEd3UGhBUjNaTGlxelBBWEF2bjhZUmY1ZnlsTVo0TEE5Uk8rU0hGTC9NeFF4ZnJKT0FnV0I2Ci1wTFBVdUNXSlhMbTdvczZyQ0MyM1JzeUREV2U4TitKTkYwL3J5enI4TUhlSUpHc1QrQVluWnIwOFBlVGJ5cjAxCi1KRW9UN2xQWVQ2UHpYNEY2M1FLS0RsK21CK1B3TE16WUNYcnhaY1VtdWF5Ni9NVjh3L2Y1VDZ2UVhkb1N3NXB1Ci1Xb2RCWXdWUmVZaDFJYUVOK2ppVGFwbTlZQlZtY0lzSlBPNmFiSG93a25TVk9XU3ZTVDBBdEFYNTdmRk9UY2ttCi0rZmFjZkJLOXM5VDFsVVVnRjQ0Qmg1ZThmOXFLcWZPVjQ0bnFkQ09FeVVtMERhbzQ5N2llTjRFZ1hCTE52T1pZCi05K2lyTWlYanAwbGN5RnZockpPY3pmeUNyOUVpaWFpSDFUZlN6S0dLc2YyVzg0aUtuL0pINngyZU9vN3hqd0o0Ci0wQlFEYzZTMWNVTkV1cUJoUDZieTBGaW9PWFlPS1Z5aWZweGs4NEViK0YvNENOZFRKVHZDUHdzaWVnZGZzWC9RCi01M0R2S1Z0WHA5WWNhbTVKVG1LUkhYSy9iTUhGNE9OdjNwL08va24vQnFSeCtmYmJQMmVNWDhaMUYvbHRIS2ZwCi02QiswNkhsalV3UUxCSnM5WHRDZnFINVpnZHo5Z2FkNVdaRjV5a0ZBcm1IRGdlRmxnZ2d2Ylo3ejl2cW5qTi9UCi1INjhUeEp6YXVZUTV2TEhRNndHWGlrNC80dXE3L1RxTm1oeGxRRU00elZrd3NuMjAzYlVtS0x5eit5bDF6SXRECi1wbjV6eTF1WGZHbzk5ckJkVXpkYmRFOUxtRUZQTWFGc2FIZDRhOG9EYVVyb0Q3RmdDYmVESkpWbGQzYWM2RjgrCi0zUWJFeFBzNDhPcmdBMWtJMy9Vd1hyNTJsZGppWXpUTGZBR1I5QmpxTkZUdzQ1RlVIdU1mOFRFTTVoY0h4NTZ3Ci05NWVLQXFyYURrMjhvOWsrTTJVS3BjbXJkbFdvV3pkcVZWRmVXR3BNOHg5WTlOdDBsZi80VlVRZ3JYanFUa1VDCi1Ra0p5cVRlVGVHZ0hybjNRQmsyWEFncHhaaGFKczNJblcwQmtBbEJtSzk5Y01pblVpSmVGdDVhNHA1d1BlWHJWCi11aDZWOW03TXBsOWh6cG9nZysrRVpxYWhmenpObkRneE9aZlczNDJEWDA1MlBkZ1hvME5ua2hDazAwNUx2RnQ2Ci1NMm1SbjBmTGdOVmZ5VVpab09wOGNPNVpXYmhYWGxyaHJnVXRqMnpLUEs2UTk0Wmo0a2RYSEJHcEFrckI4WlE0Ci1FR0dPREUwRHF1c204V1BYekIrOTIzNklNSFBVN2xGYnlqQnJGTkk3TzRqZytxUklJcGkrN3RYMEZzaWxxRWJtCi1qRytPUHdoWlhyZHFVcXlGK3JqS1F1U1JxN2xPZURCNGM2UzJkcTRPT255MDFpNUhDYmJ5YzlVdlNIUm1oT2hHCi1xVWx6SHlITG8zVzdqKzI2Vi9NaGtEWEorVHgrcWZ5bHY0cGJsaXdUdGVKSmorQ1p3emp2MjlxYjZseFlpKzM4Ci1CdzEwRVJhcG04VUNSRkJlY1ZON3hYbGNJZnllQWw2NjZWaTdFQkpadjNFZEZOcngxbmxMd002NW5ZeWE3dWo2Ci1MN0l3SldvdElVeDhFMFhIMC9jVXhTL2RHOGJ4ZjlMLzg2NTJoNWdxM0xJK3dUTkd1RVgwRE11ejdCR1FHK050Ci1nYWJyWjZTc0tHdGhHYTdlVUxUcHowTWNXVExSVTB5Ly90a2NrcG01cERuWFNGYklNc2t3d2pFQ3o4MlVaQlNQCi1waWdkTi9Qamc1ZCsweVd1N3MzVkp4dzRFTldQUHB6WitqN3NPWG1kdm45UE8xdFFkNjBFTyszYXdCbEM5WlhmCi0vSW5vWEUrMjFzLzZwNVJHa21nOFJsK2szWlJobVozd2VxMUhSaHRvNW5wR1dmMmUrbDByMS9LVmQzRDNQYkY0Ci1KdU1OWlMyMGtIaFdwbkVZa3p4NEpNTFZVTlhJQTZ4RG1mdEpqbmwweVJCdFQ2amhuL2dubWJ6N0RQblFFRWd0Ci0rdTR2VjVucjhJWG9KMi9GVkdJblhTeGR6Uk9mYXhVeGVxVERzQjJuVVppZ0lqMXpwVVZJVXJ2ajZmN0xzdFVWCi1Ea2NHZHRESW9seDI5MHM1ZkJrNDlvVWNMbFExZEdZNmx6QjArckpkUjc3RWl3NHhodk4yVUNjajE0WU0xNUVPCi1TMVJyOUdIUUp0a0xHT1luT2hrUmc0Um1PeGhtVVIrblVwdnJXM3pQaWJieUVZc1NEenhQVWlHYkZyWWQ1Ulo2Ci16VkdtYUFnNC83L1l0dmV5YVArWDkrbEs3aUJwc1dESUlCVWZrZDBKZ3hKeFMveEpXN25uNjJsNDd3UXVnY2RCCi1SZFhpdXZUemc3aHU1M09HQTFJNC9Jc1lPWG14OE5SZUxLNnc4TEZMZ2xVNzhwanBYWkN1MkQrcmJDMlpla1NSCi1tY1pQNUNMZFlQUEMzaGJ6VnFYTzJkZ3cvWHVnWXViRmZ2VXBYMDRTSXhtTWpoWnBvYTM0NDRnMHUxR3A1K0toCi1uVTBqWXZXemt6UzNKdkJPekpUMVlSRXo3ZWxUQmNoOGxXeHN4bEdVMW83WTZpQndkdHBIaFJhK0U2UDdjSk1iCi1XeE9HSmhBekV5ZW5WR21ySGVlSExPb3M3ZE5HdVJpL0djRGR4MDhHZjBSNnFtQUV5RHRmZUVLSXhYY1dYbHlQCi05WTR5RzBkaUJqc0dCNEplampvUVZWbmo1YXVnWm5qckVhSkVPSWh1V2p4dk10M3RBTEcrNlRQSExlWlFPQ3hsCi1EeWwyemczYnpCNUpTRUdUa3dBOXQ4R2xHOWRSVW5FeUVxcGU1eEJUVXgzV3BJWXR1NjRoQzdQMmtBYW5Va1ZUCi1IKzhTUUtDYnZoMXBLaFZZSm00SDdWa1RoL2p4eVcrc0dQblhFdzEvd0k4UVVUdS9KTE5WdnBmWWZXTGxmZG41Ci1qY04waHhiRGhqWVVLVjl3bVRnekNyd0tyWVlBc1lVU0I3MWhJUVQxaWJLNVRvNFY1VFFnS2llSmNDQm52Wkl6Ci14OEhBayt1NHNWdDJ3MWdwYjZnQitZK0t4ZEpZeHhtWjFKdCtUUVppLzY4cTI3ZDU2Qkp0YkRWU3dKVzFrNkgwCi1UbG01RHplWG4wSUdvNzJ4WDlJVlRkYXVzblNvMWJHdVplNzJjbWZsQi9tSUpHZ1VaZzBkZ2VRZ2JrVkxvM1RRCi1ZUU5uRWFUR2F1alozNzRCMlBrdFVkejl2VnhoYWF1N0g2TVNvanhrcnh6Sk1IUmN4c0VEOGRodkgwMWRyT3Z2Ci1PYy9qOHlXL2VsbE9nUnhpMzZXQXNjQUN1MVFCMkhKdUZzc2pBMHlyU0N2b1RDME9TVUZyZWV6aGJIK3NsVHdmCi1zc2F6cUJYeTZwNXBLUjYyLzZmUDZ4Q0Y5eTNGbld2SDdtck5kL0lVNUJXazdiY29OQzZjR0xVR1gyVHJVT0xpCi1yMGxaeklBTUZjOGRjbk9udVl2d1dUdk4yOHdBUis0UVBXbUYxR2JvYUFOaWhoU3pqSkFpdUZLTVdWYktUdUZQCi16anZuR1RjRWkvNzZodTlaSUMvL2Y2a1hvRHBUWkZjTUtGV2FjYlFtYzlyM0JoaTEzTUdZdDlrb0dOZjRPTVBJCi1ReXk2RSt3TE80M2hIcTBsVVNwaXNIWkdyWnFiRUFZQThPUEx0UHdLMzM1ZWZ3MFpVdlhudmtIM3hYbkZJclEzCi1RaXZwTFYrUzlueG1LeStZT2twYlozRENIbGRhYmNlSjdrb3d2enZlT0t0U21MYXIwSWp4VmlhaEZ5RVREVzIyCi1EZ3VPN0l5ODJ0TFJCYTRwamNNWEsxaGtzN011VWZXM2hVTldoejNES3cxbndxTDRqVVpOcWo3Y2JpaUF1VUpOCi1tYmpwaVM0d29pOEZCaEc5UDlUS2M3OXpLa0d1M1prV3NsNE53MlZpVDJvOFRXYitua3QrZXhKVEw4QmtKcW1uCi0yOXBwVUNjRmk3SVBadlR4dTdxaEtNcTZrbk9qSXJtUG9uQ3hCWW0vWXpuMFVLOGU5SzAwaWxIMDYrRExUOUdtCi1XUUhuNHdxNlZTTWszcElSUXpwTkRac2RPZTNxSjVjaG9KaHFaZWYxS1ByZFNkV2RkV0d2NVd6VzM1bm0wU0VpCi1YazFWdENQQlliSGdHVENOUmtzS2Y1Ym5TY1VpMkRvTWtaSWZobDlkK0RIc1RhT3p2UmRVc1N3bjFta2h2UlhOCi03T1luOHRPTG12ZjdmRWhxMkdUNXY1ZHpKQUFBQUFBPQotLS0tLS1FTkQgUEtDUzctLS0tLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3QvbmF2LXNtaW1lIGIvY3J5cHRvL3BrY3M3L3QvbmF2LXNtaW1lCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZWU0YjU5Li4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy90L25hdi1zbWltZQorKysgL2Rldi9udWxsCkBAIC0xLDE1NyArMCwwIEBACi1Gcm9tIGFuZ2VsYUBjMi5uZXQuYXUgVGh1IE1heSAxNCAxMzozMjoyNyAxOTk4Ci1YLVVJREw6IDgzYzk0ZGQ1NTBlNTQzMjliZjk1NzFiNzIwMzhiOGM4Ci1SZXR1cm4tUGF0aDogYW5nZWxhQGMyLm5ldC5hdQotUmVjZWl2ZWQ6IGZyb20gY3J5cHRzb2Z0LmNvbSAocGxheS5jcnlwdHNvZnQuY29tIFsyMDMuNTYuNDQuM10pIGJ5IHBhbmRvcmEuY3J5cHRzb2Z0LmNvbSAoOC44LjMvOC43LjMpIHdpdGggRVNNVFAgaWQgTkFBMjc4MzggZm9yIDx0amhAY3J5cHRzb2Z0LmNvbT47IFRodSwgMTQgTWF5IDE5OTggMTM6MzI6MjYgKzEwMDAgKEVTVCkKLU1lc3NhZ2UtSUQ6IDwzNTVBNjc3OS40QjYzRTY0Q0BjcnlwdHNvZnQuY29tPgotRGF0ZTogVGh1LCAxNCBNYXkgMTk5OCAxMzozOTozNyArMTAwMAotRnJvbTogQW5nZWxhIHZhbiBMZW50IDxhbmdlbGFAYzIubmV0LmF1PgotWC1NYWlsZXI6IE1vemlsbGEgNC4wMyBbZW5dIChXaW45NTsgVSkKLU1JTUUtVmVyc2lvbjogMS4wCi1UbzogdGpoQGNyeXB0c29mdC5jb20KLVN1YmplY3Q6IHNpZ25lZAotQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvc2lnbmVkOyBwcm90b2NvbD0iYXBwbGljYXRpb24veC1wa2NzNy1zaWduYXR1cmUiOyBtaWNhbGc9c2hhMTsgYm91bmRhcnk9Ii0tLS0tLS0tLS0tLW1zOUE1ODg0NEM5NTk0OUVDQzc4QTFDNTRDIgotQ29udGVudC1MZW5ndGg6IDI2MDQKLVN0YXR1czogT1IKLQotVGhpcyBpcyBhIGNyeXB0b2dyYXBoaWNhbGx5IHNpZ25lZCBtZXNzYWdlIGluIE1JTUUgZm9ybWF0LgotCi0tLS0tLS0tLS0tLS0tLW1zOUE1ODg0NEM5NTk0OUVDQzc4QTFDNTRDCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKLQotc2lnbmVkIGJvZHkKLQotLS0tLS0tLS0tLS0tLS1tczlBNTg4NDRDOTU5NDlFQ0M3OEExQzU0QwotQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXBrY3M3LXNpZ25hdHVyZTsgbmFtZT0ic21pbWUucDdzIgotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0Ci1Db250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0ic21pbWUucDdzIgotQ29udGVudC1EZXNjcmlwdGlvbjogUy9NSU1FIENyeXB0b2dyYXBoaWMgU2lnbmF0dXJlCi0KLU1JSUdIZ1lKS29aSWh2Y05BUWNDb0lJR0R6Q0NCZ3NDQVFFeEN6QUpCZ1VyRGdNQ0dnVUFNQXNHQ1NxR1NJYjNEUUVIQWFDQwotQkdzd2dnSlRNSUlCL2FBREFnRUNBZ0lFZmpBTkJna3Foa2lHOXcwQkFRUUZBRENCa2pFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSCi1CZ05WQkFnVENsRjFaV1Z1YzJ4aGJtUXhFVEFQQmdOVkJBY1RDRUp5YVhOaVlXNWxNUm93R0FZRFZRUUtFeEZEY25sd2RITnYKLVpuUWdVSFI1SUV4MFpERWlNQ0FHQTFVRUN4TVpSRVZOVDA1VFZGSkJWRWxQVGlCQlRrUWdWRVZUVkVsT1J6RWJNQmtHQTFVRQotQXhNU1JFVk5UeUJhUlZKUElGWkJURlZGSUVOQk1CNFhEVGs0TURVeE16QTJNalkxTmxvWERUQXdNRFV4TWpBMk1qWTFObG93Ci1nYVV4Q3pBSkJnTlZCQVlUQWtGVk1STXdFUVlEVlFRSUV3cFJkV1ZsYm5Oc1lXNWtNUkV3RHdZRFZRUUhFd2hDY21selltRnUKLVpURWFNQmdHQTFVRUNoTVJRM0o1Y0hSemIyWjBJRkIwZVNCTWRHUXhFakFRQmdOVkJBc1RDVk5OU1UxRklEQXdNekVaTUJjRwotQTFVRUF4TVFRVzVuWld4aElIWmhiaUJNWldWdWRERWpNQ0VHQ1NxR1NJYjNEUUVKQVJZVVlXNW5aV3hoUUdOeWVYQjBjMjltCi1kQzVqYjIwd1hEQU5CZ2txaGtpRzl3MEJBUUVGQUFOTEFEQklBa0VBdUMzKzdkQWIyTGh1TzdndDJjVE04dnNOamhHNUpmRGgKLWhYMVZsL3dWR2JLRUVqME1BNnZXRW9sdmVmUWx4QitFendDdFIwWVo3ZUVDL1QvNEpvQ3llUUlEQVFBQm95Z3dKakFrQmdsZwotaGtnQmh2aENBUTBFRnhZVlIyVnVaWEpoZEdWa0lIZHBkR2dnVTFOTVpXRjVNQTBHQ1NxR1NJYjNEUUVCQkFVQUEwRUFVblNQCi1pZ3M2VE1GSVNUanc4Y0J0SlliOThjemdBVmtWRmpLeUpRd1lNSDhGYkRuQ3l4Nk5vY001NTVuc3lEc3RhdzhmS1IxMUtoZHMKLXN5ZDNpa2tyaERDQ0FoQXdnZ0c2QWdFRE1BMEdDU3FHU0liM0RRRUJCQVVBTUlHU01Rc3dDUVlEVlFRR0V3SkJWVEVUTUJFRwotQTFVRUNCTUtVWFZsWlc1emJHRnVaREVSTUE4R0ExVUVCeE1JUW5KcGMySmhibVV4R2pBWUJnTlZCQW9URVVOeWVYQjBjMjltCi1kQ0JRZEhrZ1RIUmtNU0l3SUFZRFZRUUxFeGxFUlUxUFRsTlVVa0ZVU1U5T0lFRk9SQ0JVUlZOVVNVNUhNUnN3R1FZRFZRUUQKLUV4SkVSVTFQSUZwRlVrOGdWa0ZNVlVVZ1EwRXdIaGNOT1Rnd016QXpNRGMwTVRNeVdoY05NRGd3TWpJNU1EYzBNVE15V2pDQgota2pFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSQmdOVkJBZ1RDbEYxWldWdWMyeGhibVF4RVRBUEJnTlZCQWNUQ0VKeWFYTmlZVzVsCi1NUm93R0FZRFZRUUtFeEZEY25sd2RITnZablFnVUhSNUlFeDBaREVpTUNBR0ExVUVDeE1aUkVWTlQwNVRWRkpCVkVsUFRpQkIKLVRrUWdWRVZUVkVsT1J6RWJNQmtHQTFVRUF4TVNSRVZOVHlCYVJWSlBJRlpCVEZWRklFTkJNRnd3RFFZSktvWklodmNOQVFFQgotQlFBRFN3QXdTQUpCQUwrMEUyZkxlajNGU0N3ZTJBMmlSbk11QzN6MTJxSElwNkt5MXdvMnpaY3hmdDdBSStSZmtyV3JTR3RmCi1tZnpCRXVQckxkZnVsbmNDNVkxcE5jTThSVFVDQXdFQUFUQU5CZ2txaGtpRzl3MEJBUVFGQUFOQkFHU2JMTXBoTDZGNXBwM3MKLThvMFh5aDg2RkhGZHBWT3dZeDA5RUxMa3VHMTdWL1A5cGdJYzBFby9nRE1iTitLVDNJZGdFQ2Y4Uy8vcENSQTZSck5qY1hJeAotZ2dGN01JSUJkd0lCQVRDQm1UQ0JrakVMTUFrR0ExVUVCaE1DUVZVeEV6QVJCZ05WQkFnVENsRjFaV1Z1YzJ4aGJtUXhFVEFQCi1CZ05WQkFjVENFSnlhWE5pWVc1bE1Sb3dHQVlEVlFRS0V4RkRjbmx3ZEhOdlpuUWdVSFI1SUV4MFpERWlNQ0FHQTFVRUN4TVoKLVJFVk5UMDVUVkZKQlZFbFBUaUJCVGtRZ1ZFVlRWRWxPUnpFYk1Ca0dBMVVFQXhNU1JFVk5UeUJhUlZKUElGWkJURlZGSUVOQgotQWdJRWZqQUpCZ1VyRGdNQ0dnVUFvSG93R0FZSktvWklodmNOQVFrRE1Rc0dDU3FHU0liM0RRRUhBVEFiQmdrcWhraUc5dzBCCi1DUTh4RGpBTU1Bb0dDQ3FHU0liM0RRTUhNQndHQ1NxR1NJYjNEUUVKQlRFUEZ3MDVPREExTVRRd016TTVNemRhTUNNR0NTcUcKLVNJYjNEUUVKQkRFV0JCUXN0Tk1uU1YyNmJhOFBhcFFFRGhPMjF5TkZyakFOQmdrcWhraUc5dzBCQVFFRkFBUkFXOVhiOVlYdgotQmZjTmt1dGdGWDlHcjhpWGhCVnNOdEdFVnJqcnBrUXdwS2E3akhJOFNqQWxMaGsvNFJGd0RIZitJU0I5TnAzWjFXRFduTGNBCi05Q1dSNmc9PQotLS0tLS0tLS0tLS0tLS1tczlBNTg4NDRDOTU5NDlFQ0M3OEExQzU0Qy0tCi0KLQotRnJvbSBhbmdlbGFAYzIubmV0LmF1IFRodSBNYXkgMTQgMTM6MzM6MTYgMTk5OAotWC1VSURMOiA4ZjA3NmM0NGZmN2M1OTY3ZmQ1YjAwYzQ1ODhhODczMQotUmV0dXJuLVBhdGg6IGFuZ2VsYUBjMi5uZXQuYXUKLVJlY2VpdmVkOiBmcm9tIGNyeXB0c29mdC5jb20gKHBsYXkuY3J5cHRzb2Z0LmNvbSBbMjAzLjU2LjQ0LjNdKSBieSBwYW5kb3JhLmNyeXB0c29mdC5jb20gKDguOC4zLzguNy4zKSB3aXRoIEVTTVRQIGlkIE5BQTI3ODQ3IGZvciA8dGpoQGNyeXB0c29mdC5jb20+OyBUaHUsIDE0IE1heSAxOTk4IDEzOjMzOjE1ICsxMDAwIChFU1QpCi1NZXNzYWdlLUlEOiA8MzU1QTY3QUIuMkFGMzg4MDZAY3J5cHRzb2Z0LmNvbT4KLURhdGU6IFRodSwgMTQgTWF5IDE5OTggMTM6NDA6MjcgKzEwMDAKLUZyb206IEFuZ2VsYSB2YW4gTGVudCA8YW5nZWxhQGMyLm5ldC5hdT4KLVgtTWFpbGVyOiBNb3ppbGxhIDQuMDMgW2VuXSAoV2luOTU7IFUpCi1NSU1FLVZlcnNpb246IDEuMAotVG86IHRqaEBjcnlwdHNvZnQuY29tCi1TdWJqZWN0OiBzaWduZWQKLUNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L3NpZ25lZDsgcHJvdG9jb2w9ImFwcGxpY2F0aW9uL3gtcGtjczctc2lnbmF0dXJlIjsgbWljYWxnPXNoYTE7IGJvdW5kYXJ5PSItLS0tLS0tLS0tLS1tc0Q3ODYzQjg0QkQ2MUUwMkM0MDdGMkY1RSIKLUNvbnRlbnQtTGVuZ3RoOiAyNjc5Ci1TdGF0dXM6IE9SCi0KLVRoaXMgaXMgYSBjcnlwdG9ncmFwaGljYWxseSBzaWduZWQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4KLQotLS0tLS0tLS0tLS0tLS1tc0Q3ODYzQjg0QkQ2MUUwMkM0MDdGMkY1RQotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCi1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0Ci0KLXNpZ25lZCBib2R5IDIKLQotLS0tLS0tLS0tLS0tLS1tc0Q3ODYzQjg0QkQ2MUUwMkM0MDdGMkY1RQotQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXBrY3M3LXNpZ25hdHVyZTsgbmFtZT0ic21pbWUucDdzIgotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0Ci1Db250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0ic21pbWUucDdzIgotQ29udGVudC1EZXNjcmlwdGlvbjogUy9NSU1FIENyeXB0b2dyYXBoaWMgU2lnbmF0dXJlCi0KLU1JSUdWZ1lKS29aSWh2Y05BUWNDb0lJR1J6Q0NCa01DQVFFeEN6QUpCZ1VyRGdNQ0dnVUFNQXNHQ1NxR1NJYjNEUUVIQWFDQwotQkdzd2dnSlRNSUlCL2FBREFnRUNBZ0lFZmpBTkJna3Foa2lHOXcwQkFRUUZBRENCa2pFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSCi1CZ05WQkFnVENsRjFaV1Z1YzJ4aGJtUXhFVEFQQmdOVkJBY1RDRUp5YVhOaVlXNWxNUm93R0FZRFZRUUtFeEZEY25sd2RITnYKLVpuUWdVSFI1SUV4MFpERWlNQ0FHQTFVRUN4TVpSRVZOVDA1VFZGSkJWRWxQVGlCQlRrUWdWRVZUVkVsT1J6RWJNQmtHQTFVRQotQXhNU1JFVk5UeUJhUlZKUElGWkJURlZGSUVOQk1CNFhEVGs0TURVeE16QTJNalkxTmxvWERUQXdNRFV4TWpBMk1qWTFObG93Ci1nYVV4Q3pBSkJnTlZCQVlUQWtGVk1STXdFUVlEVlFRSUV3cFJkV1ZsYm5Oc1lXNWtNUkV3RHdZRFZRUUhFd2hDY21selltRnUKLVpURWFNQmdHQTFVRUNoTVJRM0o1Y0hSemIyWjBJRkIwZVNCTWRHUXhFakFRQmdOVkJBc1RDVk5OU1UxRklEQXdNekVaTUJjRwotQTFVRUF4TVFRVzVuWld4aElIWmhiaUJNWldWdWRERWpNQ0VHQ1NxR1NJYjNEUUVKQVJZVVlXNW5aV3hoUUdOeWVYQjBjMjltCi1kQzVqYjIwd1hEQU5CZ2txaGtpRzl3MEJBUUVGQUFOTEFEQklBa0VBdUMzKzdkQWIyTGh1TzdndDJjVE04dnNOamhHNUpmRGgKLWhYMVZsL3dWR2JLRUVqME1BNnZXRW9sdmVmUWx4QitFendDdFIwWVo3ZUVDL1QvNEpvQ3llUUlEQVFBQm95Z3dKakFrQmdsZwotaGtnQmh2aENBUTBFRnhZVlIyVnVaWEpoZEdWa0lIZHBkR2dnVTFOTVpXRjVNQTBHQ1NxR1NJYjNEUUVCQkFVQUEwRUFVblNQCi1pZ3M2VE1GSVNUanc4Y0J0SlliOThjemdBVmtWRmpLeUpRd1lNSDhGYkRuQ3l4Nk5vY001NTVuc3lEc3RhdzhmS1IxMUtoZHMKLXN5ZDNpa2tyaERDQ0FoQXdnZ0c2QWdFRE1BMEdDU3FHU0liM0RRRUJCQVVBTUlHU01Rc3dDUVlEVlFRR0V3SkJWVEVUTUJFRwotQTFVRUNCTUtVWFZsWlc1emJHRnVaREVSTUE4R0ExVUVCeE1JUW5KcGMySmhibVV4R2pBWUJnTlZCQW9URVVOeWVYQjBjMjltCi1kQ0JRZEhrZ1RIUmtNU0l3SUFZRFZRUUxFeGxFUlUxUFRsTlVVa0ZVU1U5T0lFRk9SQ0JVUlZOVVNVNUhNUnN3R1FZRFZRUUQKLUV4SkVSVTFQSUZwRlVrOGdWa0ZNVlVVZ1EwRXdIaGNOT1Rnd016QXpNRGMwTVRNeVdoY05NRGd3TWpJNU1EYzBNVE15V2pDQgota2pFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSQmdOVkJBZ1RDbEYxWldWdWMyeGhibVF4RVRBUEJnTlZCQWNUQ0VKeWFYTmlZVzVsCi1NUm93R0FZRFZRUUtFeEZEY25sd2RITnZablFnVUhSNUlFeDBaREVpTUNBR0ExVUVDeE1aUkVWTlQwNVRWRkpCVkVsUFRpQkIKLVRrUWdWRVZUVkVsT1J6RWJNQmtHQTFVRUF4TVNSRVZOVHlCYVJWSlBJRlpCVEZWRklFTkJNRnd3RFFZSktvWklodmNOQVFFQgotQlFBRFN3QXdTQUpCQUwrMEUyZkxlajNGU0N3ZTJBMmlSbk11QzN6MTJxSElwNkt5MXdvMnpaY3hmdDdBSStSZmtyV3JTR3RmCi1tZnpCRXVQckxkZnVsbmNDNVkxcE5jTThSVFVDQXdFQUFUQU5CZ2txaGtpRzl3MEJBUVFGQUFOQkFHU2JMTXBoTDZGNXBwM3MKLThvMFh5aDg2RkhGZHBWT3dZeDA5RUxMa3VHMTdWL1A5cGdJYzBFby9nRE1iTitLVDNJZGdFQ2Y4Uy8vcENSQTZSck5qY1hJeAotZ2dHek1JSUJyd0lCQVRDQm1UQ0JrakVMTUFrR0ExVUVCaE1DUVZVeEV6QVJCZ05WQkFnVENsRjFaV1Z1YzJ4aGJtUXhFVEFQCi1CZ05WQkFjVENFSnlhWE5pWVc1bE1Sb3dHQVlEVlFRS0V4RkRjbmx3ZEhOdlpuUWdVSFI1SUV4MFpERWlNQ0FHQTFVRUN4TVoKLVJFVk5UMDVUVkZKQlZFbFBUaUJCVGtRZ1ZFVlRWRWxPUnpFYk1Ca0dBMVVFQXhNU1JFVk5UeUJhUlZKUElGWkJURlZGSUVOQgotQWdJRWZqQUpCZ1VyRGdNQ0dnVUFvSUd4TUJnR0NTcUdTSWIzRFFFSkF6RUxCZ2txaGtpRzl3MEJCd0V3SEFZSktvWklodmNOCi1BUWtGTVE4WERUazRNRFV4TkRBek5EQXlOMW93SXdZSktvWklodmNOQVFrRU1SWUVGT0tjVjhtTllKbk04ckhRYWpjU0VxSk4KLXJ3ZERNRklHQ1NxR1NJYjNEUUVKRHpGRk1FTXdDZ1lJS29aSWh2Y05Bd2N3RGdZSUtvWklodmNOQXdJQ0FnQ0FNQWNHQlNzTwotQXdJSE1BMEdDQ3FHU0liM0RRTUNBZ0ZBTUEwR0NDcUdTSWIzRFFNQ0FnRW9NQTBHQ1NxR1NJYjNEUUVCQVFVQUJFQURQRS9OCi1jb0grelRGdVg1WXBvbHVwVEt4S0s4ZUVqYzQ4VHVBRHVPOGJJSEhERS9mRVlhV3VubHdEdVRsY0ZKbDFpZzBpZGZmUEIxcUMKLVpwOFNTVlZZCi0tLS0tLS0tLS0tLS0tLW1zRDc4NjNCODRCRDYxRTAyQzQwN0YyRjVFLS0KLQotCi1Gcm9tIGFuZ2VsYUBjMi5uZXQuYXUgVGh1IE1heSAxNCAxNDowNTozMiAxOTk4Ci1YLVVJREw6IGE3ZDYyOWI0YjlhY2FjYWVlOGIzOTM3MWI4NjBhMzJhCi1SZXR1cm4tUGF0aDogYW5nZWxhQGMyLm5ldC5hdQotUmVjZWl2ZWQ6IGZyb20gY3J5cHRzb2Z0LmNvbSAocGxheS5jcnlwdHNvZnQuY29tIFsyMDMuNTYuNDQuM10pIGJ5IHBhbmRvcmEuY3J5cHRzb2Z0LmNvbSAoOC44LjMvOC43LjMpIHdpdGggRVNNVFAgaWQgT0FBMjgwMzMgZm9yIDx0amhAY3J5cHRzb2Z0LmNvbT47IFRodSwgMTQgTWF5IDE5OTggMTQ6MDU6MzIgKzEwMDAgKEVTVCkKLU1lc3NhZ2UtSUQ6IDwzNTVBNkYzQi5BQzM4NTk4MUBjcnlwdHNvZnQuY29tPgotRGF0ZTogVGh1LCAxNCBNYXkgMTk5OCAxNDoxMjo0MyArMTAwMAotRnJvbTogQW5nZWxhIHZhbiBMZW50IDxhbmdlbGFAYzIubmV0LmF1PgotWC1NYWlsZXI6IE1vemlsbGEgNC4wMyBbZW5dIChXaW45NTsgVSkKLU1JTUUtVmVyc2lvbjogMS4wCi1UbzogdGpoQGNyeXB0c29mdC5jb20KLVN1YmplY3Q6IGVuY3J5cHRlZAotQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXBrY3M3LW1pbWU7IG5hbWU9InNtaW1lLnA3bSIKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NAotQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9InNtaW1lLnA3bSIKLUNvbnRlbnQtRGVzY3JpcHRpb246IFMvTUlNRSBFbmNyeXB0ZWQgTWVzc2FnZQotQ29udGVudC1MZW5ndGg6IDkwNQotU3RhdHVzOiBPUgotCi1NSUFHQ1NxR1NJYjNEUUVIQTZDQU1JQUNBUUF4Z2dIbU1JSHdBZ0VBTUlHWk1JR1NNUXN3Q1FZRFZRUUdFd0pCVlRFVE1CRUcKLUExVUVDQk1LVVhWbFpXNXpiR0Z1WkRFUk1BOEdBMVVFQnhNSVFuSnBjMkpoYm1VeEdqQVlCZ05WQkFvVEVVTnllWEIwYzI5bQotZENCUWRIa2dUSFJrTVNJd0lBWURWUVFMRXhsRVJVMVBUbE5VVWtGVVNVOU9JRUZPUkNCVVJWTlVTVTVITVJzd0dRWURWUVFECi1FeEpFUlUxUElGcEZVazhnVmtGTVZVVWdRMEVDQWdSK01BMEdDU3FHU0liM0RRRUJBUVVBQkVBOTJOMjlZazM5UlVZMnRJVmQKLWV4R1QyTUZYM0o2SDhMQjhhRFJKanc3ODQzQUxnSjV6WHBNNStmODBRa0FXd0VOMkE2UGwzVnhpQ2VLTGk0MzV6WFZ5TUlIdwotQWdFQU1JR1pNSUdTTVFzd0NRWURWUVFHRXdKQlZURVRNQkVHQTFVRUNCTUtVWFZsWlc1emJHRnVaREVSTUE4R0ExVUVCeE1JCi1RbkpwYzJKaGJtVXhHakFZQmdOVkJBb1RFVU55ZVhCMGMyOW1kQ0JRZEhrZ1RIUmtNU0l3SUFZRFZRUUxFeGxFUlUxUFRsTlUKLVVrRlVTVTlPSUVGT1JDQlVSVk5VU1U1SE1Sc3dHUVlEVlFRREV4SkVSVTFQSUZwRlVrOGdWa0ZNVlVVZ1EwRUNBZ1J1TUEwRwotQ1NxR1NJYjNEUUVCQVFVQUJFQ1I5SWZ5SHR2bmpGbVo4QjJvVUNFczF2eE1zRzB1MWt4S0U0Uk1QRnlEcURDRUFScTd6WE1nCi1uelNVSTdXZ3Y1VVNTS0RxY0xSSmVXK2p2WVVSdi9uSk1JQUdDU3FHU0liM0RRRUhBVEFhQmdncWhraUc5dzBEQWpBT0FnSUEKLW9BUUlyTHFyaWoyWk1wZWdnQVFvaWJ0bjZyZVJaV3VXazVJdjVJQWhnaXRyOEVZRTR3NHlTUTdFTUI2bVRsQm9GcGNjVU1XWAotQndRZ1FuMVVvV0N2WUFsaER6VVJkYnVpNjREYzByUzJ3dGora0UvSW5TNnkyNUVFRVBlNE5VS2FGOC9VbEUrbG8zTHRJTFFFCi1DTDN1VjhrN20waXFBQUFBQUFBQUFBQUFBQT09Ci0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy90L3MucGVtIGIvY3J5cHRvL3BrY3M3L3Qvcy5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmYTkyNWIuLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3Qvcy5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0tLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCi1NSUlCT2dJQkFBSkJBSzNuSTRudURZZTNuREpFUzVXQmM5MGlnRXN0eFdDNC9oNFlZKy9jaVlraTM1VThldHM5Ci1tZ2FvQ05ZcC9lOUJDWkh0dksyWStmWW9rR0p2NStjTVRRc0NBd0VBQVFKQkFJSHB2WHZxRWNPRW9EUlJIdUlHCi1ma2NCNGpQSGNyOUtFOVRweGFiSDZ4czliZU42T0pua2VQWEFId2F6NU1uVWdTbmJwT0txK2N3OG1pS2pYd2UvCi16VkVDSVFEVkx3bmNUMmxSbVhhckVZSHpiK3EvMHVhU3ZLaFdLS3Qza0phc0xOVHJBd0loQU5EVWMvZ2h1dDI5Ci1wM2pKWWp1cnpVS3VHNzc0LzVlTGpQTHN4UFBJWnpOWkFpQS8xMGhTcTQxVW5HcUhMRVVJUzltMi9FZUVaZTdiCi1ibTU2N2RmUlU5T25WUUlnRG84Uk9yWlhTY2hFR2Jhb2c1SjVyL0ZsZTgzdU84bDkzUjNHcVZ4S1haa0NJRmZrCi1JUEQ1UElZUUF5eW9kM2h5S0t6YTdaUDRDR1k0b09mWmV0YmtTR0dHCi0tLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQotaXNzdWVyIDovQz1BVS9TUD1RdWVlbnNsYW5kL0w9QnJpc2JhbmUvTz1DcnlwdHNvZnQgUHR5IEx0ZC9PVT1ERU1PTlNUUkFUSU9OIEFORCBURVNUSU5HL0NOPURFTU8gWkVSTyBWQUxVRSBDQQotc3ViamVjdDovQz1BVS9TUD1RdWVlbnNsYW5kL0w9QnJpc2JhbmUvTz1DcnlwdHNvZnQgUHR5IEx0ZC9PVT1TTUlNRSAwMDMvQ049SW5mb3JtYXRpb24vRW1haWw9aW5mb0BjcnlwdHNvZnQuY29tCi1zZXJpYWwgOjA0N0QKLQotQ2VydGlmaWNhdGU6Ci0gICAgRGF0YToKLSAgICAgICAgVmVyc2lvbjogMyAoMHgyKQotICAgICAgICBTZXJpYWwgTnVtYmVyOiAxMTQ5ICgweDQ3ZCkKLSAgICAgICAgU2lnbmF0dXJlIEFsZ29yaXRobTogbWQ1d2l0aFJTQUVuY3J5cHRpb24KLSAgICAgICAgSXNzdWVyOiBDPUFVLCBTUD1RdWVlbnNsYW5kLCBMPUJyaXNiYW5lLCBPPUNyeXB0c29mdCBQdHkgTHRkLCBPVT1ERU1PTlNUUkFUSU9OIEFORCBURVNUSU5HLCBDTj1ERU1PIFpFUk8gVkFMVUUgQ0EKLSAgICAgICAgVmFsaWRpdHkKLSAgICAgICAgICAgIE5vdCBCZWZvcmU6IE1heSAxMyAwNTo0MDo1OCAxOTk4IEdNVAotICAgICAgICAgICAgTm90IEFmdGVyIDogTWF5IDEyIDA1OjQwOjU4IDIwMDAgR01UCi0gICAgICAgIFN1YmplY3Q6IEM9QVUsIFNQPVF1ZWVuc2xhbmQsIEw9QnJpc2JhbmUsIE89Q3J5cHRzb2Z0IFB0eSBMdGQsIE9VPVNNSU1FIDAwMywgQ049SW5mb3JtYXRpb24vRW1haWw9aW5mb0BjcnlwdHNvZnQuY29tCi0gICAgICAgIFN1YmplY3QgUHVibGljIEtleSBJbmZvOgotICAgICAgICAgICAgUHVibGljIEtleSBBbGdvcml0aG06IHJzYUVuY3J5cHRpb24KLSAgICAgICAgICAgICAgICBNb2R1bHVzOgotICAgICAgICAgICAgICAgICAgICAwMDphZDplNzoyMzo4OTplZTowZDo4NzpiNzo5YzozMjo0NDo0Yjo5NTo4MToKLSAgICAgICAgICAgICAgICAgICAgNzM6ZGQ6MjI6ODA6NGI6MmQ6YzU6NjA6Yjg6ZmU6MWU6MTg6NjM6ZWY6ZGM6Ci0gICAgICAgICAgICAgICAgICAgIDg5Ojg5OjIyOmRmOjk1OjNjOjdhOmRiOjNkOjlhOjA2OmE4OjA4OmQ2OjI5OgotICAgICAgICAgICAgICAgICAgICBmZDplZjo0MTowOTo5MTplZDpiYzphZDo5ODpmOTpmNjoyODo5MDo2Mjo2ZjoKLSAgICAgICAgICAgICAgICAgICAgZTc6ZTc6MGM6NGQ6MGIKLSAgICAgICAgICAgICAgICBFeHBvbmVudDogNjU1MzcgKDB4MTAwMDEpCi0gICAgICAgIFg1MDl2MyBleHRlbnNpb25zOgotICAgICAgICAgICAgTmV0c2NhcGUgQ29tbWVudDogCi0gICAgICAgICAgICAgICAgR2VuZXJhdGVkIHdpdGggU1NMZWF5Ci0gICAgU2lnbmF0dXJlIEFsZ29yaXRobTogbWQ1d2l0aFJTQUVuY3J5cHRpb24KLSAgICAgICAgNTI6MTU6ZWE6ODg6ZjQ6ZjA6Zjk6MGI6ZWY6Y2U6ZDU6Zjg6ODM6NDA6NjE6MTY6NWU6NTU6Ci0gICAgICAgIGY5OmNlOjJkOmQxOjhiOjMxOjVjOjAzOmM2OjJkOjEwOjdjOjYxOmQ1OjVjOjBhOjQyOjk3OgotICAgICAgICBkMTpmZDo2NTpiNjpiNjo4NDphNTozOTplYzo0NjplYzpmYzplMDowZDpkOToyMjpkYToxYjoKLSAgICAgICAgNTA6NzQ6YWQ6OTI6Y2I6NGU6OTA6ZTU6ZmE6N2QKLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDVERDQ0FmYWdBd0lCQWdJQ0JIMHdEUVlKS29aSWh2Y05BUUVFQlFBd2daSXhDekFKQmdOVkJBWVRBa0ZWCi1NUk13RVFZRFZRUUlFd3BSZFdWbGJuTnNZVzVrTVJFd0R3WURWUVFIRXdoQ2NtbHpZbUZ1WlRFYU1CZ0dBMVVFCi1DaE1SUTNKNWNIUnpiMlowSUZCMGVTQk1kR1F4SWpBZ0JnTlZCQXNUR1VSRlRVOU9VMVJTUVZSSlQwNGdRVTVFCi1JRlJGVTFSSlRrY3hHekFaQmdOVkJBTVRFa1JGVFU4Z1drVlNUeUJXUVV4VlJTQkRRVEFlRncwNU9EQTFNVE13Ci1OVFF3TlRoYUZ3MHdNREExTVRJd05UUXdOVGhhTUlHZU1Rc3dDUVlEVlFRR0V3SkJWVEVUTUJFR0ExVUVDQk1LCi1VWFZsWlc1emJHRnVaREVSTUE4R0ExVUVCeE1JUW5KcGMySmhibVV4R2pBWUJnTlZCQW9URVVOeWVYQjBjMjltCi1kQ0JRZEhrZ1RIUmtNUkl3RUFZRFZRUUxFd2xUVFVsTlJTQXdNRE14RkRBU0JnTlZCQU1UQzBsdVptOXliV0YwCi1hVzl1TVNFd0h3WUpLb1pJaHZjTkFRa0JGaEpwYm1adlFHTnllWEIwYzI5bWRDNWpiMjB3WERBTkJna3Foa2lHCi05dzBCQVFFRkFBTkxBREJJQWtFQXJlY2ppZTROaDdlY01rUkxsWUZ6M1NLQVN5M0ZZTGorSGhoajc5eUppU0xmCi1sVHg2MnoyYUJxZ0kxaW45NzBFSmtlMjhyWmo1OWlpUVltL241d3hOQ3dJREFRQUJveWd3SmpBa0JnbGdoa2dCCi1odmhDQVEwRUZ4WVZSMlZ1WlhKaGRHVmtJSGRwZEdnZ1UxTk1aV0Y1TUEwR0NTcUdTSWIzRFFFQkJBVUFBMEVBCi1VaFhxaVBUdytRdnZ6dFg0ZzBCaEZsNVYrYzR0MFlzeFhBUEdMUkI4WWRWY0NrS1gwZjFsdHJhRXBUbnNSdXo4Ci00QTNaSXRvYlVIU3Rrc3RPa09YNmZRPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3Qvc2VydmVyLnBlbSBiL2NyeXB0by9wa2NzNy90L3NlcnZlci5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4OWJhZjguLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3Qvc2VydmVyLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLWlzc3VlciA6L0M9QVUvU1A9UXVlZW5zbGFuZC9MPUJyaXNiYW5lL089Q3J5cHRzb2Z0IFB0eSBMdGQvT1U9REVNT05TVFJBVElPTiBBTkQgVEVTVElORy9DTj1ERU1PIFpFUk8gVkFMVUUgQ0EKLXN1YmplY3Q6L0M9QVUvU1A9UXVlZW5zbGFuZC9MPUJyaXNiYW5lL089Q3J5cHRzb2Z0IFB0eSBMdGQvT1U9U01JTUUgMDAzL0NOPUluZm9ybWF0aW9uL0VtYWlsPWluZm9AY3J5cHRzb2Z0LmNvbQotc2VyaWFsIDowNDdECi0KLUNlcnRpZmljYXRlOgotICAgIERhdGE6Ci0gICAgICAgIFZlcnNpb246IDMgKDB4MikKLSAgICAgICAgU2VyaWFsIE51bWJlcjogMTE0OSAoMHg0N2QpCi0gICAgICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IG1kNXdpdGhSU0FFbmNyeXB0aW9uCi0gICAgICAgIElzc3VlcjogQz1BVSwgU1A9UXVlZW5zbGFuZCwgTD1CcmlzYmFuZSwgTz1DcnlwdHNvZnQgUHR5IEx0ZCwgT1U9REVNT05TVFJBVElPTiBBTkQgVEVTVElORywgQ049REVNTyBaRVJPIFZBTFVFIENBCi0gICAgICAgIFZhbGlkaXR5Ci0gICAgICAgICAgICBOb3QgQmVmb3JlOiBNYXkgMTMgMDU6NDA6NTggMTk5OCBHTVQKLSAgICAgICAgICAgIE5vdCBBZnRlciA6IE1heSAxMiAwNTo0MDo1OCAyMDAwIEdNVAotICAgICAgICBTdWJqZWN0OiBDPUFVLCBTUD1RdWVlbnNsYW5kLCBMPUJyaXNiYW5lLCBPPUNyeXB0c29mdCBQdHkgTHRkLCBPVT1TTUlNRSAwMDMsIENOPUluZm9ybWF0aW9uL0VtYWlsPWluZm9AY3J5cHRzb2Z0LmNvbQotICAgICAgICBTdWJqZWN0IFB1YmxpYyBLZXkgSW5mbzoKLSAgICAgICAgICAgIFB1YmxpYyBLZXkgQWxnb3JpdGhtOiByc2FFbmNyeXB0aW9uCi0gICAgICAgICAgICAgICAgTW9kdWx1czoKLSAgICAgICAgICAgICAgICAgICAgMDA6YWQ6ZTc6MjM6ODk6ZWU6MGQ6ODc6Yjc6OWM6MzI6NDQ6NGI6OTU6ODE6Ci0gICAgICAgICAgICAgICAgICAgIDczOmRkOjIyOjgwOjRiOjJkOmM1OjYwOmI4OmZlOjFlOjE4OjYzOmVmOmRjOgotICAgICAgICAgICAgICAgICAgICA4OTo4OToyMjpkZjo5NTozYzo3YTpkYjozZDo5YTowNjphODowODpkNjoyOToKLSAgICAgICAgICAgICAgICAgICAgZmQ6ZWY6NDE6MDk6OTE6ZWQ6YmM6YWQ6OTg6Zjk6ZjY6Mjg6OTA6NjI6NmY6Ci0gICAgICAgICAgICAgICAgICAgIGU3OmU3OjBjOjRkOjBiCi0gICAgICAgICAgICAgICAgRXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQotICAgICAgICBYNTA5djMgZXh0ZW5zaW9uczoKLSAgICAgICAgICAgIE5ldHNjYXBlIENvbW1lbnQ6IAotICAgICAgICAgICAgICAgIEdlbmVyYXRlZCB3aXRoIFNTTGVheQotICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IG1kNXdpdGhSU0FFbmNyeXB0aW9uCi0gICAgICAgIDUyOjE1OmVhOjg4OmY0OmYwOmY5OjBiOmVmOmNlOmQ1OmY4OjgzOjQwOjYxOjE2OjVlOjU1OgotICAgICAgICBmOTpjZToyZDpkMTo4YjozMTo1YzowMzpjNjoyZDoxMDo3Yzo2MTpkNTo1YzowYTo0Mjo5NzoKLSAgICAgICAgZDE6ZmQ6NjU6YjY6YjY6ODQ6YTU6Mzk6ZWM6NDY6ZWM6ZmM6ZTA6MGQ6ZDk6MjI6ZGE6MWI6Ci0gICAgICAgIDUwOjc0OmFkOjkyOmNiOjRlOjkwOmU1OmZhOjdkCi0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQ1REQ0NBZmFnQXdJQkFnSUNCSDB3RFFZSktvWklodmNOQVFFRUJRQXdnWkl4Q3pBSkJnTlZCQVlUQWtGVgotTVJNd0VRWURWUVFJRXdwUmRXVmxibk5zWVc1a01SRXdEd1lEVlFRSEV3aENjbWx6WW1GdVpURWFNQmdHQTFVRQotQ2hNUlEzSjVjSFJ6YjJaMElGQjBlU0JNZEdReElqQWdCZ05WQkFzVEdVUkZUVTlPVTFSU1FWUkpUMDRnUVU1RQotSUZSRlUxUkpUa2N4R3pBWkJnTlZCQU1URWtSRlRVOGdXa1ZTVHlCV1FVeFZSU0JEUVRBZUZ3MDVPREExTVRNdwotTlRRd05UaGFGdzB3TURBMU1USXdOVFF3TlRoYU1JR2VNUXN3Q1FZRFZRUUdFd0pCVlRFVE1CRUdBMVVFQ0JNSwotVVhWbFpXNXpiR0Z1WkRFUk1BOEdBMVVFQnhNSVFuSnBjMkpoYm1VeEdqQVlCZ05WQkFvVEVVTnllWEIwYzI5bQotZENCUWRIa2dUSFJrTVJJd0VBWURWUVFMRXdsVFRVbE5SU0F3TURNeEZEQVNCZ05WQkFNVEMwbHVabTl5YldGMAotYVc5dU1TRXdId1lKS29aSWh2Y05BUWtCRmhKcGJtWnZRR055ZVhCMGMyOW1kQzVqYjIwd1hEQU5CZ2txaGtpRwotOXcwQkFRRUZBQU5MQURCSUFrRUFyZWNqaWU0Tmg3ZWNNa1JMbFlGejNTS0FTeTNGWUxqK0hoaGo3OXlKaVNMZgotbFR4NjJ6MmFCcWdJMWluOTcwRUprZTI4clpqNTlpaVFZbS9uNXd4TkN3SURBUUFCb3lnd0pqQWtCZ2xnaGtnQgotaHZoQ0FRMEVGeFlWUjJWdVpYSmhkR1ZrSUhkcGRHZ2dVMU5NWldGNU1BMEdDU3FHU0liM0RRRUJCQVVBQTBFQQotVWhYcWlQVHcrUXZ2enRYNGcwQmhGbDVWK2M0dDBZc3hYQVBHTFJCOFlkVmNDa0tYMGYxbHRyYUVwVG5zUnV6OAotNEEzWkl0b2JVSFN0a3N0T2tPWDZmUT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0KLS0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUJPZ0lCQUFKQkFLM25JNG51RFllM25ESkVTNVdCYzkwaWdFc3R4V0M0L2g0WVkrL2NpWWtpMzVVOGV0czkKLW1nYW9DTllwL2U5QkNaSHR2SzJZK2ZZb2tHSnY1K2NNVFFzQ0F3RUFBUUpCQUlIcHZYdnFFY09Fb0RSUkh1SUcKLWZrY0I0alBIY3I5S0U5VHB4YWJINnhzOWJlTjZPSm5rZVBYQUh3YXo1TW5VZ1NuYnBPS3ErY3c4bWlLalh3ZS8KLXpWRUNJUURWTHduY1QybFJtWGFyRVlIemIrcS8wdWFTdktoV0tLdDNrSmFzTE5UckF3SWhBTkRVYy9naHV0MjkKLXAzakpZanVyelVLdUc3NzQvNWVMalBMc3hQUElaek5aQWlBLzEwaFNxNDFVbkdxSExFVUlTOW0yL0VlRVplN2IKLWJtNTY3ZGZSVTlPblZRSWdEbzhST3JaWFNjaEVHYmFvZzVKNXIvRmxlODN1TzhsOTNSM0dxVnhLWFprQ0lGZmsKLUlQRDVQSVlRQXl5b2QzaHlLS3phN1pQNENHWTRvT2ZaZXRia1NHR0cKLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS9jcnlwdG8vcGtjczcvdmVyaWZ5LmMgYi9jcnlwdG8vcGtjczcvdmVyaWZ5LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0MGYyNjAuLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3ZlcmlmeS5jCisrKyAvZGV2L251bGwKQEAgLTEsMjYzICswLDAgQEAKLS8qIGNyeXB0by9wa2NzNy92ZXJpZnkuYyAqLwotLyogQ29weXJpZ2h0IChDKSAxOTk1LTE5OTggRXJpYyBZb3VuZyAoZWF5QGNyeXB0c29mdC5jb20pCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgcGFja2FnZSBpcyBhbiBTU0wgaW1wbGVtZW50YXRpb24gd3JpdHRlbgotICogYnkgRXJpYyBZb3VuZyAoZWF5QGNyeXB0c29mdC5jb20pLgotICogVGhlIGltcGxlbWVudGF0aW9uIHdhcyB3cml0dGVuIHNvIGFzIHRvIGNvbmZvcm0gd2l0aCBOZXRzY2FwZXMgU1NMLgotICogCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBmb3IgY29tbWVyY2lhbCBhbmQgbm9uLWNvbW1lcmNpYWwgdXNlIGFzIGxvbmcgYXMKLSAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgYWhlYXJlZCB0by4gIFRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXBwbHkgdG8gYWxsIGNvZGUgZm91bmQgaW4gdGhpcyBkaXN0cmlidXRpb24sIGJlIGl0IHRoZSBSQzQsIFJTQSwKLSAqIGxoYXNoLCBERVMsIGV0Yy4sIGNvZGU7IG5vdCBqdXN0IHRoZSBTU0wgY29kZS4gIFRoZSBTU0wgZG9jdW1lbnRhdGlvbgotICogaW5jbHVkZWQgd2l0aCB0aGlzIGRpc3RyaWJ1dGlvbiBpcyBjb3ZlcmVkIGJ5IHRoZSBzYW1lIGNvcHlyaWdodCB0ZXJtcwotICogZXhjZXB0IHRoYXQgdGhlIGhvbGRlciBpcyBUaW0gSHVkc29uICh0amhAY3J5cHRzb2Z0LmNvbSkuCi0gKiAKLSAqIENvcHlyaWdodCByZW1haW5zIEVyaWMgWW91bmcncywgYW5kIGFzIHN1Y2ggYW55IENvcHlyaWdodCBub3RpY2VzIGluCi0gKiB0aGUgY29kZSBhcmUgbm90IHRvIGJlIHJlbW92ZWQuCi0gKiBJZiB0aGlzIHBhY2thZ2UgaXMgdXNlZCBpbiBhIHByb2R1Y3QsIEVyaWMgWW91bmcgc2hvdWxkIGJlIGdpdmVuIGF0dHJpYnV0aW9uCi0gKiBhcyB0aGUgYXV0aG9yIG9mIHRoZSBwYXJ0cyBvZiB0aGUgbGlicmFyeSB1c2VkLgotICogVGhpcyBjYW4gYmUgaW4gdGhlIGZvcm0gb2YgYSB0ZXh0dWFsIG1lc3NhZ2UgYXQgcHJvZ3JhbSBzdGFydHVwIG9yCi0gKiBpbiBkb2N1bWVudGF0aW9uIChvbmxpbmUgb3IgdGV4dHVhbCkgcHJvdmlkZWQgd2l0aCB0aGUgcGFja2FnZS4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKLSAqICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKLSAqICAgICJUaGlzIHByb2R1Y3QgaW5jbHVkZXMgY3J5cHRvZ3JhcGhpYyBzb2Z0d2FyZSB3cml0dGVuIGJ5Ci0gKiAgICAgRXJpYyBZb3VuZyAoZWF5QGNyeXB0c29mdC5jb20pIgotICogICAgVGhlIHdvcmQgJ2NyeXB0b2dyYXBoaWMnIGNhbiBiZSBsZWZ0IG91dCBpZiB0aGUgcm91aW5lcyBmcm9tIHRoZSBsaWJyYXJ5Ci0gKiAgICBiZWluZyB1c2VkIGFyZSBub3QgY3J5cHRvZ3JhcGhpYyByZWxhdGVkIDotKS4KLSAqIDQuIElmIHlvdSBpbmNsdWRlIGFueSBXaW5kb3dzIHNwZWNpZmljIGNvZGUgKG9yIGEgZGVyaXZhdGl2ZSB0aGVyZW9mKSBmcm9tIAotICogICAgdGhlIGFwcHMgZGlyZWN0b3J5IChhcHBsaWNhdGlvbiBjb2RlKSB5b3UgbXVzdCBpbmNsdWRlIGFuIGFja25vd2xlZGdlbWVudDoKLSAqICAgICJUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgd3JpdHRlbiBieSBUaW0gSHVkc29uICh0amhAY3J5cHRzb2Z0LmNvbSkiCi0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgRVJJQyBZT1VORyBgYEFTIElTJycgQU5ECi0gKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi0gKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQotICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCi0gKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKLSAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCi0gKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCi0gKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqIAotICogVGhlIGxpY2VuY2UgYW5kIGRpc3RyaWJ1dGlvbiB0ZXJtcyBmb3IgYW55IHB1YmxpY2FsbHkgYXZhaWxhYmxlIHZlcnNpb24gb3IKLSAqIGRlcml2YXRpdmUgb2YgdGhpcyBjb2RlIGNhbm5vdCBiZSBjaGFuZ2VkLiAgaS5lLiB0aGlzIGNvZGUgY2Fubm90IHNpbXBseSBiZQotICogY29waWVkIGFuZCBwdXQgdW5kZXIgYW5vdGhlciBkaXN0cmlidXRpb24gbGljZW5jZQotICogW2luY2x1ZGluZyB0aGUgR05VIFB1YmxpYyBMaWNlbmNlLl0KLSAqLwotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9iaW8uaD4KLSNpbmNsdWRlIDxvcGVuc3NsL2FzbjEuaD4KLSNpbmNsdWRlIDxvcGVuc3NsL3g1MDkuaD4KLSNpbmNsdWRlIDxvcGVuc3NsL3BlbS5oPgotI2luY2x1ZGUgPG9wZW5zc2wvZXJyLmg+Ci0jaW5jbHVkZSAiZXhhbXBsZS5oIgotCi1pbnQgdmVyaWZ5X2NhbGxiYWNrKGludCBvaywgWDUwOV9TVE9SRV9DVFggKmN0eCk7Ci0KLUJJTyAqYmlvX2Vycj1OVUxMOwotQklPICpiaW9fb3V0PU5VTEw7Ci0KLWludCBtYWluKGFyZ2MsYXJndikKLWludCBhcmdjOwotY2hhciAqYXJndltdOwotCXsKLQlQS0NTNyAqcDc7Ci0JUEtDUzdfU0lHTkVSX0lORk8gKnNpOwotCVg1MDlfU1RPUkVfQ1RYIGNlcnRfY3R4OwotCVg1MDlfU1RPUkUgKmNlcnRfc3RvcmU9TlVMTDsKLQlCSU8gKmRhdGEsKmRldGFjaGVkPU5VTEwsKnA3YmlvPU5VTEw7Ci0JY2hhciBidWZbMTAyNCo0XTsKLQljaGFyICpwcDsKLQlpbnQgaSxwcmludGl0PTA7Ci0JU1RBQ0tfT0YoUEtDUzdfU0lHTkVSX0lORk8pICpzazsKLQotCWJpb19lcnI9QklPX25ld19mcChzdGRlcnIsQklPX05PQ0xPU0UpOwotCWJpb19vdXQ9QklPX25ld19mcChzdGRvdXQsQklPX05PQ0xPU0UpOwotI2lmbmRlZiBPUEVOU1NMX05PX01EMgotCUVWUF9hZGRfZGlnZXN0KEVWUF9tZDIoKSk7Ci0jZW5kaWYKLSNpZm5kZWYgT1BFTlNTTF9OT19NRDUKLQlFVlBfYWRkX2RpZ2VzdChFVlBfbWQ1KCkpOwotI2VuZGlmCi0jaWZuZGVmIE9QRU5TU0xfTk9fU0hBMQotCUVWUF9hZGRfZGlnZXN0KEVWUF9zaGExKCkpOwotI2VuZGlmCi0jaWZuZGVmIE9QRU5TU0xfTk9fTURDMgotCUVWUF9hZGRfZGlnZXN0KEVWUF9tZGMyKCkpOwotI2VuZGlmCi0KLQlkYXRhPUJJT19uZXcoQklPX3NfZmlsZSgpKTsKLQotCXBwPU5VTEw7Ci0Jd2hpbGUgKGFyZ2MgPiAxKQotCQl7Ci0JCWFyZ2MtLTsKLQkJYXJndisrOwotCQlpZiAoc3RyY21wKGFyZ3ZbMF0sIi1wIikgPT0gMCkKLQkJCXsKLQkJCXByaW50aXQ9MTsKLQkJCX0KLQkJZWxzZSBpZiAoKHN0cmNtcChhcmd2WzBdLCItZCIpID09IDApICYmIChhcmdjID49IDIpKQotCQkJewotCQkJZGV0YWNoZWQ9QklPX25ldyhCSU9fc19maWxlKCkpOwotCQkJaWYgKCFCSU9fcmVhZF9maWxlbmFtZShkZXRhY2hlZCxhcmd2WzFdKSkKLQkJCQlnb3RvIGVycjsKLQkJCWFyZ2MtLTsKLQkJCWFyZ3YrKzsKLQkJCX0KLQkJZWxzZQotCQkJewotCQkJcHA9YXJndlswXTsKLQkJCWlmICghQklPX3JlYWRfZmlsZW5hbWUoZGF0YSxhcmd2WzBdKSkKLQkJCQlnb3RvIGVycjsKLQkJCX0KLQkJfQotCi0JaWYgKHBwID09IE5VTEwpCi0JCUJJT19zZXRfZnAoZGF0YSxzdGRpbixCSU9fTk9DTE9TRSk7Ci0KLQotCS8qIExvYWQgdGhlIFBLQ1M3IG9iamVjdCBmcm9tIGEgZmlsZSAqLwotCWlmICgocDc9UEVNX3JlYWRfYmlvX1BLQ1M3KGRhdGEsTlVMTCxOVUxMLE5VTEwpKSA9PSBOVUxMKSBnb3RvIGVycjsKLQotCS8qIFRoaXMgc3R1ZmYgaXMgYmVpbmcgc2V0dXAgZm9yIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbi4KLQkgKiBXaGVuIHVzaW5nIFNTTCwgaXQgY291bGQgYmUgcmVwbGFjZWQgd2l0aCBhIAotCSAqIGNlcnRfc3RyZT1TU0xfQ1RYX2dldF9jZXJ0X3N0b3JlKHNzbF9jdHgpOyAqLwotCWNlcnRfc3RvcmU9WDUwOV9TVE9SRV9uZXcoKTsKLQlYNTA5X1NUT1JFX3NldF9kZWZhdWx0X3BhdGhzKGNlcnRfc3RvcmUpOwotCVg1MDlfU1RPUkVfbG9hZF9sb2NhdGlvbnMoY2VydF9zdG9yZSxOVUxMLCIuLi8uLi9jZXJ0cyIpOwotCVg1MDlfU1RPUkVfc2V0X3ZlcmlmeV9jYl9mdW5jKGNlcnRfc3RvcmUsdmVyaWZ5X2NhbGxiYWNrKTsKLQotCUVSUl9jbGVhcl9lcnJvcigpOwotCi0JLyogV2UgbmVlZCB0byBwcm9jZXNzIHRoZSBkYXRhICovCi0JaWYgKChQS0NTN19nZXRfZGV0YWNoZWQocDcpIHx8IGRldGFjaGVkKSkKLQkJewotCQlpZiAoZGV0YWNoZWQgPT0gTlVMTCkKLQkJCXsKLQkJCXByaW50Zigibm8gZGF0YSB0byB2ZXJpZnkgdGhlIHNpZ25hdHVyZSBvblxuIik7Ci0JCQlleGl0KDEpOwotCQkJfQotCQllbHNlCi0JCQlwN2Jpbz1QS0NTN19kYXRhSW5pdChwNyxkZXRhY2hlZCk7Ci0JCX0KLQllbHNlCi0JCXsKLQkJcDdiaW89UEtDUzdfZGF0YUluaXQocDcsTlVMTCk7Ci0JCX0KLQotCS8qIFdlIG5vdyBoYXZlIHRvICdyZWFkJyBmcm9tIHA3YmlvIHRvIGNhbGN1bGF0ZSBkaWdlc3RzIGV0Yy4gKi8KLQlmb3IgKDs7KQotCQl7Ci0JCWk9QklPX3JlYWQocDdiaW8sYnVmLHNpemVvZihidWYpKTsKLQkJLyogcHJpbnQgaXQ/ICovCi0JCWlmIChpIDw9IDApIGJyZWFrOwotCQl9Ci0KLQkvKiBXZSBjYW4gbm93IHZlcmlmeSBzaWduYXR1cmVzICovCi0Jc2s9UEtDUzdfZ2V0X3NpZ25lcl9pbmZvKHA3KTsKLQlpZiAoc2sgPT0gTlVMTCkKLQkJewotCQlwcmludGYoInRoZXJlIGFyZSBubyBzaWduYXR1cmVzIG9uIHRoaXMgZGF0YVxuIik7Ci0JCWV4aXQoMSk7Ci0JCX0KLQotCS8qIE9rLCBmaXJzdCB3ZSBuZWVkIHRvLCBmb3IgZWFjaCBzdWJqZWN0IGVudHJ5LCBzZWUgaWYgd2UgY2FuIHZlcmlmeSAqLwotCWZvciAoaT0wOyBpPHNrX1BLQ1M3X1NJR05FUl9JTkZPX251bShzayk7IGkrKykKLQkJewotCQlBU04xX1VUQ1RJTUUgKnRtOwotCQljaGFyICpzdHIxLCpzdHIyOwotCQlpbnQgcmM7Ci0KLQkJc2k9c2tfUEtDUzdfU0lHTkVSX0lORk9fdmFsdWUoc2ssaSk7Ci0JCXJjPVBLQ1M3X2RhdGFWZXJpZnkoY2VydF9zdG9yZSwmY2VydF9jdHgscDdiaW8scDcsc2kpOwotCQlpZiAocmMgPD0gMCkKLQkJCWdvdG8gZXJyOwotCQlwcmludGYoInNpZ25lciBpbmZvXG4iKTsKLQkJaWYgKCh0bT1nZXRfc2lnbmVkX3RpbWUoc2kpKSAhPSBOVUxMKQotCQkJewotCQkJQklPX3ByaW50ZihiaW9fb3V0LCJTaWduZWQgdGltZToiKTsKLQkJCUFTTjFfVVRDVElNRV9wcmludChiaW9fb3V0LHRtKTsKLQkJCUFTTjFfVVRDVElNRV9mcmVlKHRtKTsKLQkJCUJJT19wcmludGYoYmlvX291dCwiXG4iKTsKLQkJCX0KLQkJaWYgKGdldF9zaWduZWRfc2VxMnN0cmluZyhzaSwmc3RyMSwmc3RyMikpCi0JCQl7Ci0JCQlCSU9fcHJpbnRmKGJpb19vdXQsIlN0cmluZyAxIGlzICVzXG4iLHN0cjEpOwotCQkJQklPX3ByaW50ZihiaW9fb3V0LCJTdHJpbmcgMiBpcyAlc1xuIixzdHIyKTsKLQkJCX0KLQotCQl9Ci0KLQlYNTA5X1NUT1JFX2ZyZWUoY2VydF9zdG9yZSk7Ci0KLQlwcmludGYoImRvbmVcbiIpOwotCWV4aXQoMCk7Ci1lcnI6Ci0JRVJSX2xvYWRfY3J5cHRvX3N0cmluZ3MoKTsKLQlFUlJfcHJpbnRfZXJyb3JzX2ZwKHN0ZGVycik7Ci0JZXhpdCgxKTsKLQl9Ci0KLS8qIHNob3VsZCBiZSBYNTA5ICogYnV0IHdlIGNhbiBqdXN0IGhhdmUgdGhlbSBhcyBjaGFyICouICovCi1pbnQgdmVyaWZ5X2NhbGxiYWNrKGludCBvaywgWDUwOV9TVE9SRV9DVFggKmN0eCkKLQl7Ci0JY2hhciBidWZbMjU2XTsKLQlYNTA5ICplcnJfY2VydDsKLQlpbnQgZXJyLGRlcHRoOwotCi0JZXJyX2NlcnQ9WDUwOV9TVE9SRV9DVFhfZ2V0X2N1cnJlbnRfY2VydChjdHgpOwotCWVycj0JWDUwOV9TVE9SRV9DVFhfZ2V0X2Vycm9yKGN0eCk7Ci0JZGVwdGg9CVg1MDlfU1RPUkVfQ1RYX2dldF9lcnJvcl9kZXB0aChjdHgpOwotCi0JWDUwOV9OQU1FX29uZWxpbmUoWDUwOV9nZXRfc3ViamVjdF9uYW1lKGVycl9jZXJ0KSxidWYsMjU2KTsKLQlCSU9fcHJpbnRmKGJpb19lcnIsImRlcHRoPSVkICVzXG4iLGRlcHRoLGJ1Zik7Ci0JaWYgKCFvaykKLQkJewotCQlCSU9fcHJpbnRmKGJpb19lcnIsInZlcmlmeSBlcnJvcjpudW09JWQ6JXNcbiIsZXJyLAotCQkJWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmcoZXJyKSk7Ci0JCWlmIChkZXB0aCA8IDYpCi0JCQl7Ci0JCQlvaz0xOwotCQkJWDUwOV9TVE9SRV9DVFhfc2V0X2Vycm9yKGN0eCxYNTA5X1ZfT0spOwotCQkJfQotCQllbHNlCi0JCQl7Ci0JCQlvaz0wOwotCQkJWDUwOV9TVE9SRV9DVFhfc2V0X2Vycm9yKGN0eCxYNTA5X1ZfRVJSX0NFUlRfQ0hBSU5fVE9PX0xPTkcpOwotCQkJfQotCQl9Ci0Jc3dpdGNoIChjdHgtPmVycm9yKQotCQl7Ci0JY2FzZSBYNTA5X1ZfRVJSX1VOQUJMRV9UT19HRVRfSVNTVUVSX0NFUlQ6Ci0JCVg1MDlfTkFNRV9vbmVsaW5lKFg1MDlfZ2V0X2lzc3Vlcl9uYW1lKGN0eC0+Y3VycmVudF9jZXJ0KSxidWYsMjU2KTsKLQkJQklPX3ByaW50ZihiaW9fZXJyLCJpc3N1ZXI9ICVzXG4iLGJ1Zik7Ci0JCWJyZWFrOwotCWNhc2UgWDUwOV9WX0VSUl9DRVJUX05PVF9ZRVRfVkFMSUQ6Ci0JY2FzZSBYNTA5X1ZfRVJSX0VSUk9SX0lOX0NFUlRfTk9UX0JFRk9SRV9GSUVMRDoKLQkJQklPX3ByaW50ZihiaW9fZXJyLCJub3RCZWZvcmU9Iik7Ci0JCUFTTjFfVVRDVElNRV9wcmludChiaW9fZXJyLFg1MDlfZ2V0X25vdEJlZm9yZShjdHgtPmN1cnJlbnRfY2VydCkpOwotCQlCSU9fcHJpbnRmKGJpb19lcnIsIlxuIik7Ci0JCWJyZWFrOwotCWNhc2UgWDUwOV9WX0VSUl9DRVJUX0hBU19FWFBJUkVEOgotCWNhc2UgWDUwOV9WX0VSUl9FUlJPUl9JTl9DRVJUX05PVF9BRlRFUl9GSUVMRDoKLQkJQklPX3ByaW50ZihiaW9fZXJyLCJub3RBZnRlcj0iKTsKLQkJQVNOMV9VVENUSU1FX3ByaW50KGJpb19lcnIsWDUwOV9nZXRfbm90QWZ0ZXIoY3R4LT5jdXJyZW50X2NlcnQpKTsKLQkJQklPX3ByaW50ZihiaW9fZXJyLCJcbiIpOwotCQlicmVhazsKLQkJfQotCUJJT19wcmludGYoYmlvX2VyciwidmVyaWZ5IHJldHVybjolZFxuIixvayk7Ci0JcmV0dXJuKG9rKTsKLQl9CmRpZmYgLS1naXQgYS9jcnlwdG8vcHF1ZXVlL3BxdWV1ZS5oIGIvY3J5cHRvL3BxdWV1ZS9wcXVldWUuaAppbmRleCA4N2ZjOTAzLi4yNmI1MzQ4IDEwMDY0NAotLS0gYS9jcnlwdG8vcHF1ZXVlL3BxdWV1ZS5oCisrKyBiL2NyeXB0by9wcXVldWUvcHF1ZXVlLmgKQEAgLTY0LDYgKzY0LDkgQEAKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KIAorI2lmZGVmICBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKIHR5cGVkZWYgc3RydWN0IF9wcXVldWUgKnBxdWV1ZTsKIAogdHlwZWRlZiBzdHJ1Y3QgX3BpdGVtCkBAIC05MSw0ICs5NCw3IEBACiB2b2lkICAgcHF1ZXVlX3ByaW50KHBxdWV1ZSBwcSk7CiBpbnQgICAgcHF1ZXVlX3NpemUocHF1ZXVlIHBxKTsKIAorI2lmZGVmICBfX2NwbHVzcGx1cworfQorI2VuZGlmCiAjZW5kaWYgLyogISBIRUFERVJfUFFVRVVFX0ggKi8KZGlmZiAtLWdpdCBhL2NyeXB0by9yYW5kL21kX3JhbmQuYyBiL2NyeXB0by9yYW5kL21kX3JhbmQuYwppbmRleCBhZWUxYzMwLi44ODhiNGViIDEwMDY0NAotLS0gYS9jcnlwdG8vcmFuZC9tZF9yYW5kLmMKKysrIGIvY3J5cHRvL3JhbmQvbWRfcmFuZC5jCkBAIC0xNTksNyArMTU5LDYgQEAKIHN0YXRpYyB2b2lkIHNzbGVheV9yYW5kX2NsZWFudXAodm9pZCk7CiBzdGF0aWMgdm9pZCBzc2xlYXlfcmFuZF9zZWVkKGNvbnN0IHZvaWQgKmJ1ZiwgaW50IG51bSk7CiBzdGF0aWMgdm9pZCBzc2xlYXlfcmFuZF9hZGQoY29uc3Qgdm9pZCAqYnVmLCBpbnQgbnVtLCBkb3VibGUgYWRkX2VudHJvcHkpOwotc3RhdGljIGludCBzc2xlYXlfcmFuZF9ieXRlcyh1bnNpZ25lZCBjaGFyICpidWYsIGludCBudW0sIGludCBwc2V1ZG8pOwogc3RhdGljIGludCBzc2xlYXlfcmFuZF9ub3BzZXVkb19ieXRlcyh1bnNpZ25lZCBjaGFyICpidWYsIGludCBudW0pOwogc3RhdGljIGludCBzc2xlYXlfcmFuZF9wc2V1ZG9fYnl0ZXModW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbnVtKTsKIHN0YXRpYyBpbnQgc3NsZWF5X3JhbmRfc3RhdHVzKHZvaWQpOwpAQCAtMzM0LDcgKzMzMyw3IEBACiAJc3NsZWF5X3JhbmRfYWRkKGJ1ZiwgbnVtLCAoZG91YmxlKW51bSk7CiAJfQogCi1zdGF0aWMgaW50IHNzbGVheV9yYW5kX2J5dGVzKHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG51bSwgaW50IHBzZXVkbykKK2ludCBzc2xlYXlfcmFuZF9ieXRlcyh1bnNpZ25lZCBjaGFyICpidWYsIGludCBudW0sIGludCBwc2V1ZG8sIGludCBsb2NrKQogCXsKIAlzdGF0aWMgdm9sYXRpbGUgaW50IHN0aXJyZWRfcG9vbCA9IDA7CiAJaW50IGksaixrLHN0X251bSxzdF9pZHg7CkBAIC0zODMsMTAgKzM4Miw3IEBACiAJICogYXJlIGZlZCBpbnRvIHRoZSBoYXNoIGZ1bmN0aW9uIGFuZCB0aGUgcmVzdWx0cyBhcmUga2VwdCBpbiB0aGUKIAkgKiBnbG9iYWwgJ21kJy4KIAkgKi8KLSNpZmRlZiBPUEVOU1NMX0ZJUFMKLQkvKiBOQjogaW4gRklQUyBtb2RlIHdlIGFyZSBhbHJlYWR5IHVuZGVyIGEgbG9jayAqLwotCWlmICghRklQU19tb2RlKCkpCi0jZW5kaWYKKwlpZiAobG9jaykKIAkJQ1JZUFRPX3dfbG9jayhDUllQVE9fTE9DS19SQU5EKTsKIAogCS8qIHByZXZlbnQgc3NsZWF5X3JhbmRfYnl0ZXMoKSBmcm9tIHRyeWluZyB0byBvYnRhaW4gdGhlIGxvY2sgYWdhaW4gKi8KQEAgLTQ2Niw5ICs0NjIsNyBAQAogCiAJLyogYmVmb3JlIHVubG9ja2luZywgd2UgbXVzdCBjbGVhciAnY3J5cHRvX2xvY2tfcmFuZCcgKi8KIAljcnlwdG9fbG9ja19yYW5kID0gMDsKLSNpZmRlZiBPUEVOU1NMX0ZJUFMKLQlpZiAoIUZJUFNfbW9kZSgpKQotI2VuZGlmCisJaWYgKGxvY2spCiAJCUNSWVBUT193X3VubG9jayhDUllQVE9fTE9DS19SQU5EKTsKIAogCXdoaWxlIChudW0gPiAwKQpAQCAtNTIxLDE1ICs1MTUsMTEgQEAKIAlNRF9Jbml0KCZtKTsKIAlNRF9VcGRhdGUoJm0sKHVuc2lnbmVkIGNoYXIgKikmKG1kX2NbMF0pLHNpemVvZihtZF9jKSk7CiAJTURfVXBkYXRlKCZtLGxvY2FsX21kLE1EX0RJR0VTVF9MRU5HVEgpOwotI2lmZGVmIE9QRU5TU0xfRklQUwotCWlmICghRklQU19tb2RlKCkpCi0jZW5kaWYKKwlpZiAobG9jaykKIAkJQ1JZUFRPX3dfbG9jayhDUllQVE9fTE9DS19SQU5EKTsKIAlNRF9VcGRhdGUoJm0sbWQsTURfRElHRVNUX0xFTkdUSCk7CiAJTURfRmluYWwoJm0sbWQpOwotI2lmZGVmIE9QRU5TU0xfRklQUwotCWlmICghRklQU19tb2RlKCkpCi0jZW5kaWYKKwlpZiAobG9jaykKIAkJQ1JZUFRPX3dfdW5sb2NrKENSWVBUT19MT0NLX1JBTkQpOwogCiAJRVZQX01EX0NUWF9jbGVhbnVwKCZtKTsKQEAgLTU0OCwxNCArNTM4LDE0IEBACiAKIHN0YXRpYyBpbnQgc3NsZWF5X3JhbmRfbm9wc2V1ZG9fYnl0ZXModW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbnVtKQogCXsKLQlyZXR1cm4gc3NsZWF5X3JhbmRfYnl0ZXMoYnVmLCBudW0sIDApOworCXJldHVybiBzc2xlYXlfcmFuZF9ieXRlcyhidWYsIG51bSwgMCwgMSk7CiAJfQogCiAvKiBwc2V1ZG8tcmFuZG9tIGJ5dGVzIHRoYXQgYXJlIGd1YXJhbnRlZWQgdG8gYmUgdW5pcXVlIGJ1dCBub3QKICAgIHVucHJlZGljdGFibGUgKi8KIHN0YXRpYyBpbnQgc3NsZWF5X3JhbmRfcHNldWRvX2J5dGVzKHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG51bSkgCiAJewotCXJldHVybiBzc2xlYXlfcmFuZF9ieXRlcyhidWYsIG51bSwgMSk7CisJcmV0dXJuIHNzbGVheV9yYW5kX2J5dGVzKGJ1ZiwgbnVtLCAxLCAxKTsKIAl9CiAKIHN0YXRpYyBpbnQgc3NsZWF5X3JhbmRfc3RhdHVzKHZvaWQpCmRpZmYgLS1naXQgYS9jcnlwdG8vcmFuZC9yYW5kX2xjbC5oIGIvY3J5cHRvL3JhbmQvcmFuZF9sY2wuaAppbmRleCA2MThhOGVjLi4wZmFiZjhkIDEwMDY0NAotLS0gYS9jcnlwdG8vcmFuZC9yYW5kX2xjbC5oCisrKyBiL2NyeXB0by9yYW5kL3JhbmRfbGNsLmgKQEAgLTE1NCw1ICsxNTQsNiBAQAogI2RlZmluZQlNRChhLGIsYykJCUVWUF9EaWdlc3QoYSxiLGMsTlVMTCxFVlBfbWQyKCksIE5VTEwpCiAjZW5kaWYKIAoraW50IHNzbGVheV9yYW5kX2J5dGVzKHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG51bSwgaW50IHBzZXVkbywgaW50IGxvY2spOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2NyeXB0by9yYW5kL3JhbmRfbGliLmMgYi9jcnlwdG8vcmFuZC9yYW5kX2xpYi5jCmluZGV4IDVhYzBlMTQuLjIzOWExY2QgMTAwNjQ0Ci0tLSBhL2NyeXB0by9yYW5kL3JhbmRfbGliLmMKKysrIGIvY3J5cHRvL3JhbmQvcmFuZF9saWIuYwpAQCAtNjgsNiArNjgsNyBAQAogI2lmZGVmIE9QRU5TU0xfRklQUwogI2luY2x1ZGUgPG9wZW5zc2wvZmlwcy5oPgogI2luY2x1ZGUgPG9wZW5zc2wvZmlwc19yYW5kLmg+CisjaW5jbHVkZSAicmFuZF9sY2wuaCIKICNlbmRpZgogCiAjaWZuZGVmIE9QRU5TU0xfTk9fRU5HSU5FCkBAIC0xOTksNyArMjAwLDcgQEAKIAkqcG91dCA9IE9QRU5TU0xfbWFsbG9jKG1pbl9sZW4pOwogCWlmICghKnBvdXQpCiAJCXJldHVybiAwOwotCWlmIChSQU5EX1NTTGVheSgpLT5ieXRlcygqcG91dCwgbWluX2xlbikgPD0gMCkKKwlpZiAoc3NsZWF5X3JhbmRfYnl0ZXMoKnBvdXQsIG1pbl9sZW4sIDAsIDApIDw9IDApCiAJCXsKIAkJT1BFTlNTTF9mcmVlKCpwb3V0KTsKIAkJKnBvdXQgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL3JhbmQvcmFuZGZpbGUuYyBiL2NyeXB0by9yYW5kL3JhbmRmaWxlLmMKaW5kZXggN2YxNDI4MC4uMTRiYTY5ZCAxMDA2NDQKLS0tIGEvY3J5cHRvL3JhbmQvcmFuZGZpbGUuYworKysgYi9jcnlwdG8vcmFuZC9yYW5kZmlsZS5jCkBAIC03OSw2ICs3OSw3IEBACiAjZW5kaWYKICNpZm5kZWYgT1BFTlNTTF9OT19QT1NJWF9JTwogIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgorIyBpbmNsdWRlIDxmY250bC5oPgogI2VuZGlmCiAKICNpZmRlZiBfV0lOMzIKZGlmZiAtLWdpdCBhL2NyeXB0by9yc2EvcnNhLmggYi9jcnlwdG8vcnNhL3JzYS5oCmluZGV4IDVmMjY5ZTUuLjExODUzZmUgMTAwNjQ0Ci0tLSBhL2NyeXB0by9yc2EvcnNhLmgKKysrIGIvY3J5cHRvL3JzYS9yc2EuaApAQCAtNTU5LDYgKzU1OSw3IEBACiAjZGVmaW5lIFJTQV9SX09QRVJBVElPTl9OT1RfQUxMT1dFRF9JTl9GSVBTX01PREUJIDE1OAogI2RlZmluZSBSU0FfUl9PUEVSQVRJT05fTk9UX1NVUFBPUlRFRF9GT1JfVEhJU19LRVlUWVBFCSAxNDgKICNkZWZpbmUgUlNBX1JfUEFERElOR19DSEVDS19GQUlMRUQJCQkgMTE0CisjZGVmaW5lIFJTQV9SX1BLQ1NfREVDT0RJTkdfRVJST1IJCQkgMTU5CiAjZGVmaW5lIFJTQV9SX1BfTk9UX1BSSU1FCQkJCSAxMjgKICNkZWZpbmUgUlNBX1JfUV9OT1RfUFJJTUUJCQkJIDEyOQogI2RlZmluZSBSU0FfUl9SU0FfT1BFUkFUSU9OU19OT1RfU1VQUE9SVEVECQkgMTMwCmRpZmYgLS1naXQgYS9jcnlwdG8vcnNhL3JzYV9lYXkuYyBiL2NyeXB0by9yc2EvcnNhX2VheS5jCmluZGV4IDg4ZWUyY2IuLmFhODEwNDUgMTAwNjQ0Ci0tLSBhL2NyeXB0by9yc2EvcnNhX2VheS5jCisrKyBiL2NyeXB0by9yc2EvcnNhX2VheS5jCkBAIC00NTksNyArNDU5LDcgQEAKIAlpZiAocGFkZGluZyA9PSBSU0FfWDkzMV9QQURESU5HKQogCQl7CiAJCUJOX3N1YihmLCByc2EtPm4sIHJldCk7Ci0JCWlmIChCTl9jbXAocmV0LCBmKSkKKwkJaWYgKEJOX2NtcChyZXQsIGYpID4gMCkKIAkJCXJlcyA9IGY7CiAJCWVsc2UKIAkJCXJlcyA9IHJldDsKZGlmZiAtLWdpdCBhL2NyeXB0by9yc2EvcnNhX2Vyci5jIGIvY3J5cHRvL3JzYS9yc2FfZXJyLmMKaW5kZXggNDZlMGJmOS4uOWRhNzlkOSAxMDA2NDQKLS0tIGEvY3J5cHRvL3JzYS9yc2FfZXJyLmMKKysrIGIvY3J5cHRvL3JzYS9yc2FfZXJyLmMKQEAgLTE3NSw2ICsxNzUsNyBAQAoge0VSUl9SRUFTT04oUlNBX1JfT1BFUkFUSU9OX05PVF9BTExPV0VEX0lOX0ZJUFNfTU9ERSksIm9wZXJhdGlvbiBub3QgYWxsb3dlZCBpbiBmaXBzIG1vZGUifSwKIHtFUlJfUkVBU09OKFJTQV9SX09QRVJBVElPTl9OT1RfU1VQUE9SVEVEX0ZPUl9USElTX0tFWVRZUEUpLCJvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBrZXl0eXBlIn0sCiB7RVJSX1JFQVNPTihSU0FfUl9QQURESU5HX0NIRUNLX0ZBSUxFRCkgICwicGFkZGluZyBjaGVjayBmYWlsZWQifSwKK3tFUlJfUkVBU09OKFJTQV9SX1BLQ1NfREVDT0RJTkdfRVJST1IpICAgLCJwa2NzIGRlY29kaW5nIGVycm9yIn0sCiB7RVJSX1JFQVNPTihSU0FfUl9QX05PVF9QUklNRSkgICAgICAgICAgICwicCBub3QgcHJpbWUifSwKIHtFUlJfUkVBU09OKFJTQV9SX1FfTk9UX1BSSU1FKSAgICAgICAgICAgLCJxIG5vdCBwcmltZSJ9LAoge0VSUl9SRUFTT04oUlNBX1JfUlNBX09QRVJBVElPTlNfTk9UX1NVUFBPUlRFRCksInJzYSBvcGVyYXRpb25zIG5vdCBzdXBwb3J0ZWQifSwKZGlmZiAtLWdpdCBhL2NyeXB0by9yc2EvcnNhX29hZXAuYyBiL2NyeXB0by9yc2EvcnNhX29hZXAuYwppbmRleCBhZjRkMjRhLi5jMzYzMzMxIDEwMDY0NAotLS0gYS9jcnlwdG8vcnNhL3JzYV9vYWVwLmMKKysrIGIvY3J5cHRvL3JzYS9yc2Ffb2FlcC5jCkBAIC0xOCw2ICsxOCw3IEBACiAgKiBhbiBlcXVpdmFsZW50IG5vdGlvbi4KICAqLwogCisjaW5jbHVkZSAiY29uc3RhbnRfdGltZV9sb2NsLmgiCiAKICNpZiAhZGVmaW5lZChPUEVOU1NMX05PX1NIQSkgJiYgIWRlZmluZWQoT1BFTlNTTF9OT19TSEExKQogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC05NSw5MiArOTYsMTE3IEBACiAJY29uc3QgdW5zaWduZWQgY2hhciAqZnJvbSwgaW50IGZsZW4sIGludCBudW0sCiAJY29uc3QgdW5zaWduZWQgY2hhciAqcGFyYW0sIGludCBwbGVuKQogCXsKLQlpbnQgaSwgZGJsZW4sIG1sZW4gPSAtMTsKLQljb25zdCB1bnNpZ25lZCBjaGFyICptYXNrZWRkYjsKLQlpbnQgbHplcm87Ci0JdW5zaWduZWQgY2hhciAqZGIgPSBOVUxMLCBzZWVkW1NIQV9ESUdFU1RfTEVOR1RIXSwgcGhhc2hbU0hBX0RJR0VTVF9MRU5HVEhdOwotCXVuc2lnbmVkIGNoYXIgKnBhZGRlZF9mcm9tOwotCWludCBiYWQgPSAwOworCWludCBpLCBkYmxlbiwgbWxlbiA9IC0xLCBvbmVfaW5kZXggPSAwLCBtc2dfaW5kZXg7CisJdW5zaWduZWQgaW50IGdvb2QsIGZvdW5kX29uZV9ieXRlOworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKm1hc2tlZHNlZWQsICptYXNrZWRkYjsKKwkvKiB8ZW18IGlzIHRoZSBlbmNvZGVkIG1lc3NhZ2UsIHplcm8tcGFkZGVkIHRvIGV4YWN0bHkgfG51bXwgYnl0ZXM6CisJICogZW0gPSBZIHx8IG1hc2tlZFNlZWQgfHwgbWFza2VkREIgKi8KKwl1bnNpZ25lZCBjaGFyICpkYiA9IE5VTEwsICplbSA9IE5VTEwsIHNlZWRbRVZQX01BWF9NRF9TSVpFXSwKKwkJcGhhc2hbRVZQX01BWF9NRF9TSVpFXTsKIAotCWlmICgtLW51bSA8IDIgKiBTSEFfRElHRVNUX0xFTkdUSCArIDEpCi0JCS8qICdudW0nIGlzIHRoZSBsZW5ndGggb2YgdGhlIG1vZHVsdXMsIGkuZS4gZG9lcyBub3QgZGVwZW5kIG9uIHRoZQotCQkgKiBwYXJ0aWN1bGFyIGNpcGhlcnRleHQuICovCisgICAgICAgIGlmICh0bGVuIDw9IDAgfHwgZmxlbiA8PSAwKQorCQlyZXR1cm4gLTE7CisKKwkvKgorCSAqIHxudW18IGlzIHRoZSBsZW5ndGggb2YgdGhlIG1vZHVsdXM7IHxmbGVufCBpcyB0aGUgbGVuZ3RoIG9mIHRoZQorCSAqIGVuY29kZWQgbWVzc2FnZS4gVGhlcmVmb3JlLCBmb3IgYW55IHxmcm9tfCB0aGF0IHdhcyBvYnRhaW5lZCBieQorCSAqIGRlY3J5cHRpbmcgYSBjaXBoZXJ0ZXh0LCB3ZSBtdXN0IGhhdmUgfGZsZW58IDw9IHxudW18LiBTaW1pbGFybHksCisJICogbnVtIDwgMiAqIFNIQV9ESUdFU1RfTEVOR1RIICsgMiBtdXN0IGhvbGQgZm9yIHRoZSBtb2R1bHVzCisJICogaXJyZXNwZWN0aXZlIG9mIHRoZSBjaXBoZXJ0ZXh0LCBzZWUgUEtDUyAjMSB2Mi4yLCBzZWN0aW9uIDcuMS4yLgorCSAqIFRoaXMgZG9lcyBub3QgbGVhayBhbnkgc2lkZS1jaGFubmVsIGluZm9ybWF0aW9uLgorCSAqLworCWlmIChudW0gPCBmbGVuIHx8IG51bSA8IDIgKiBTSEFfRElHRVNUX0xFTkdUSCArIDIpCiAJCWdvdG8gZGVjb2RpbmdfZXJyOwogCi0JbHplcm8gPSBudW0gLSBmbGVuOwotCWlmIChsemVybyA8IDApCi0JCXsKLQkJLyogc2lnbmFsbGluZyB0aGlzIGVycm9yIGltbWVkaWF0ZWx5IGFmdGVyIGRldGVjdGlvbiBtaWdodCBhbGxvdwotCQkgKiBmb3Igc2lkZS1jaGFubmVsIGF0dGFja3MgKGUuZy4gdGltaW5nIGlmICdwbGVuJyBpcyBodWdlCi0JCSAqIC0tIGNmLiBKYW1lcyBILiBNYW5nZXIsICJBIENob3NlbiBDaXBoZXJ0ZXh0IEF0dGFjayBvbiBSU0EgT3B0aW1hbAotCQkgKiBBc3ltbWV0cmljIEVuY3J5cHRpb24gUGFkZGluZyAoT0FFUCkgWy4uLl0iLCBDUllQVE8gMjAwMSksCi0JCSAqIHNvIHdlIHVzZSBhICdiYWQnIGZsYWcgKi8KLQkJYmFkID0gMTsKLQkJbHplcm8gPSAwOwotCQlmbGVuID0gbnVtOyAvKiBkb24ndCBvdmVyZmxvdyB0aGUgbWVtY3B5IHRvIHBhZGRlZF9mcm9tICovCi0JCX0KLQotCWRibGVuID0gbnVtIC0gU0hBX0RJR0VTVF9MRU5HVEg7Ci0JZGIgPSBPUEVOU1NMX21hbGxvYyhkYmxlbiArIG51bSk7Ci0JaWYgKGRiID09IE5VTEwpCisJZGJsZW4gPSBudW0gLSBTSEFfRElHRVNUX0xFTkdUSCAtIDE7CisJZGIgPSBPUEVOU1NMX21hbGxvYyhkYmxlbik7CisJZW0gPSBPUEVOU1NMX21hbGxvYyhudW0pOworCWlmIChkYiA9PSBOVUxMIHx8IGVtID09IE5VTEwpCiAJCXsKIAkJUlNBZXJyKFJTQV9GX1JTQV9QQURESU5HX0NIRUNLX1BLQ1MxX09BRVAsIEVSUl9SX01BTExPQ19GQUlMVVJFKTsKLQkJcmV0dXJuIC0xOworCQlnb3RvIGNsZWFudXA7CiAJCX0KIAotCS8qIEFsd2F5cyBkbyB0aGlzIHplcm8tcGFkZGluZyBjb3B5IChldmVuIHdoZW4gbHplcm8gPT0gMCkKLQkgKiB0byBhdm9pZCBsZWFraW5nIHRpbWluZyBpbmZvIGFib3V0IHRoZSB2YWx1ZSBvZiBsemVyby4gKi8KLQlwYWRkZWRfZnJvbSA9IGRiICsgZGJsZW47Ci0JbWVtc2V0KHBhZGRlZF9mcm9tLCAwLCBsemVybyk7Ci0JbWVtY3B5KHBhZGRlZF9mcm9tICsgbHplcm8sIGZyb20sIGZsZW4pOworCS8qCisJICogQWx3YXlzIGRvIHRoaXMgemVyby1wYWRkaW5nIGNvcHkgKGV2ZW4gd2hlbiBudW0gPT0gZmxlbikgdG8gYXZvaWQKKwkgKiBsZWFraW5nIHRoYXQgaW5mb3JtYXRpb24uIFRoZSBjb3B5IHN0aWxsIGxlYWtzIHNvbWUgc2lkZS1jaGFubmVsCisJICogaW5mb3JtYXRpb24sIGJ1dCBpdCdzIGltcG9zc2libGUgdG8gaGF2ZSBhIGZpeGVkICBtZW1vcnkgYWNjZXNzCisJICogcGF0dGVybiBzaW5jZSB3ZSBjYW4ndCByZWFkIG91dCBvZiB0aGUgYm91bmRzIG9mIHxmcm9tfC4KKwkgKgorCSAqIFRPRE8oZW1pbGlhKTogQ29uc2lkZXIgcG9ydGluZyBCTl9ibjJiaW5fcGFkZGVkIGZyb20gQm9yaW5nU1NMLgorCSAqLworCW1lbXNldChlbSwgMCwgbnVtKTsKKwltZW1jcHkoZW0gKyBudW0gLSBmbGVuLCBmcm9tLCBmbGVuKTsKIAotCW1hc2tlZGRiID0gcGFkZGVkX2Zyb20gKyBTSEFfRElHRVNUX0xFTkdUSDsKKwkvKgorCSAqIFRoZSBmaXJzdCBieXRlIG11c3QgYmUgemVybywgaG93ZXZlciB3ZSBtdXN0IG5vdCBsZWFrIGlmIHRoaXMgaXMKKwkgKiB0cnVlLiBTZWUgSmFtZXMgSC4gTWFuZ2VyLCAiQSBDaG9zZW4gQ2lwaGVydGV4dCAgQXR0YWNrIG9uIFJTQQorCSAqIE9wdGltYWwgQXN5bW1ldHJpYyBFbmNyeXB0aW9uIFBhZGRpbmcgKE9BRVApIFsuLi5dIiwgQ1JZUFRPIDIwMDEpLgorCSAqLworCWdvb2QgPSBjb25zdGFudF90aW1lX2lzX3plcm8oZW1bMF0pOworCisJbWFza2Vkc2VlZCA9IGVtICsgMTsKKwltYXNrZWRkYiA9IGVtICsgMSArIFNIQV9ESUdFU1RfTEVOR1RIOwogCiAJaWYgKE1HRjEoc2VlZCwgU0hBX0RJR0VTVF9MRU5HVEgsIG1hc2tlZGRiLCBkYmxlbikpCi0JCXJldHVybiAtMTsKKwkJZ290byBjbGVhbnVwOwogCWZvciAoaSA9IDA7IGkgPCBTSEFfRElHRVNUX0xFTkdUSDsgaSsrKQotCQlzZWVkW2ldIF49IHBhZGRlZF9mcm9tW2ldOwotICAKKwkJc2VlZFtpXSBePSBtYXNrZWRzZWVkW2ldOworCiAJaWYgKE1HRjEoZGIsIGRibGVuLCBzZWVkLCBTSEFfRElHRVNUX0xFTkdUSCkpCi0JCXJldHVybiAtMTsKKwkJZ290byBjbGVhbnVwOwogCWZvciAoaSA9IDA7IGkgPCBkYmxlbjsgaSsrKQogCQlkYltpXSBePSBtYXNrZWRkYltpXTsKIAogCWlmICghRVZQX0RpZ2VzdCgodm9pZCAqKXBhcmFtLCBwbGVuLCBwaGFzaCwgTlVMTCwgRVZQX3NoYTEoKSwgTlVMTCkpCi0JCXJldHVybiAtMTsKKwkJZ290byBjbGVhbnVwOwogCi0JaWYgKENSWVBUT19tZW1jbXAoZGIsIHBoYXNoLCBTSEFfRElHRVNUX0xFTkdUSCkgIT0gMCB8fCBiYWQpCisJZ29vZCAmPSBjb25zdGFudF90aW1lX2lzX3plcm8oQ1JZUFRPX21lbWNtcChkYiwgcGhhc2gsIFNIQV9ESUdFU1RfTEVOR1RIKSk7CisKKwlmb3VuZF9vbmVfYnl0ZSA9IDA7CisJZm9yIChpID0gU0hBX0RJR0VTVF9MRU5HVEg7IGkgPCBkYmxlbjsgaSsrKQorCQl7CisJCS8qIFBhZGRpbmcgY29uc2lzdHMgb2YgYSBudW1iZXIgb2YgMC1ieXRlcywgZm9sbG93ZWQgYnkgYSAxLiAqLworCQl1bnNpZ25lZCBpbnQgZXF1YWxzMSA9IGNvbnN0YW50X3RpbWVfZXEoZGJbaV0sIDEpOworCQl1bnNpZ25lZCBpbnQgZXF1YWxzMCA9IGNvbnN0YW50X3RpbWVfaXNfemVybyhkYltpXSk7CisJCW9uZV9pbmRleCA9IGNvbnN0YW50X3RpbWVfc2VsZWN0X2ludCh+Zm91bmRfb25lX2J5dGUgJiBlcXVhbHMxLAorCQkJaSwgb25lX2luZGV4KTsKKwkJZm91bmRfb25lX2J5dGUgfD0gZXF1YWxzMTsKKwkJZ29vZCAmPSAoZm91bmRfb25lX2J5dGUgfCBlcXVhbHMwKTsKKwkJfQorCisJZ29vZCAmPSBmb3VuZF9vbmVfYnl0ZTsKKworCS8qCisJICogQXQgdGhpcyBwb2ludCB8Z29vZHwgaXMgemVybyB1bmxlc3MgdGhlIHBsYWludGV4dCB3YXMgdmFsaWQsCisJICogc28gcGxhaW50ZXh0LWF3YXJlbmVzcyBlbnN1cmVzIHRpbWluZyBzaWRlLWNoYW5uZWxzIGFyZSBubyBsb25nZXIgYQorCSAqIGNvbmNlcm4uCisJICovCisJaWYgKCFnb29kKQogCQlnb3RvIGRlY29kaW5nX2VycjsKKworCW1zZ19pbmRleCA9IG9uZV9pbmRleCArIDE7CisJbWxlbiA9IGRibGVuIC0gbXNnX2luZGV4OworCisJaWYgKHRsZW4gPCBtbGVuKQorCQl7CisJCVJTQWVycihSU0FfRl9SU0FfUEFERElOR19DSEVDS19QS0NTMV9PQUVQLCBSU0FfUl9EQVRBX1RPT19MQVJHRSk7CisJCW1sZW4gPSAtMTsKKwkJfQogCWVsc2UKIAkJewotCQlmb3IgKGkgPSBTSEFfRElHRVNUX0xFTkdUSDsgaSA8IGRibGVuOyBpKyspCi0JCQlpZiAoZGJbaV0gIT0gMHgwMCkKLQkJCQlicmVhazsKLQkJaWYgKGkgPT0gZGJsZW4gfHwgZGJbaV0gIT0gMHgwMSkKLQkJCWdvdG8gZGVjb2RpbmdfZXJyOwotCQllbHNlCi0JCQl7Ci0JCQkvKiBldmVyeXRoaW5nIGxvb2tzIE9LICovCi0KLQkJCW1sZW4gPSBkYmxlbiAtICsraTsKLQkJCWlmICh0bGVuIDwgbWxlbikKLQkJCQl7Ci0JCQkJUlNBZXJyKFJTQV9GX1JTQV9QQURESU5HX0NIRUNLX1BLQ1MxX09BRVAsIFJTQV9SX0RBVEFfVE9PX0xBUkdFKTsKLQkJCQltbGVuID0gLTE7Ci0JCQkJfQotCQkJZWxzZQotCQkJCW1lbWNweSh0bywgZGIgKyBpLCBtbGVuKTsKLQkJCX0KKwkJbWVtY3B5KHRvLCBkYiArIG1zZ19pbmRleCwgbWxlbik7CisJCWdvdG8gY2xlYW51cDsKIAkJfQotCU9QRU5TU0xfZnJlZShkYik7Ci0JcmV0dXJuIG1sZW47CiAKIGRlY29kaW5nX2VycjoKLQkvKiB0byBhdm9pZCBjaG9zZW4gY2lwaGVydGV4dCBhdHRhY2tzLCB0aGUgZXJyb3IgbWVzc2FnZSBzaG91bGQgbm90IHJldmVhbAotCSAqIHdoaWNoIGtpbmQgb2YgZGVjb2RpbmcgZXJyb3IgaGFwcGVuZWQgKi8KKwkvKiBUbyBhdm9pZCBjaG9zZW4gY2lwaGVydGV4dCBhdHRhY2tzLCB0aGUgZXJyb3IgbWVzc2FnZSBzaG91bGQgbm90IHJldmVhbAorCSAqIHdoaWNoIGtpbmQgb2YgZGVjb2RpbmcgZXJyb3IgaGFwcGVuZWQuICovCiAJUlNBZXJyKFJTQV9GX1JTQV9QQURESU5HX0NIRUNLX1BLQ1MxX09BRVAsIFJTQV9SX09BRVBfREVDT0RJTkdfRVJST1IpOworY2xlYW51cDoKIAlpZiAoZGIgIT0gTlVMTCkgT1BFTlNTTF9mcmVlKGRiKTsKLQlyZXR1cm4gLTE7CisJaWYgKGVtICE9IE5VTEwpIE9QRU5TU0xfZnJlZShlbSk7CisJcmV0dXJuIG1sZW47CiAJfQogCiBpbnQgUEtDUzFfTUdGMSh1bnNpZ25lZCBjaGFyICptYXNrLCBsb25nIGxlbiwKZGlmZiAtLWdpdCBhL2NyeXB0by9yc2EvcnNhX3BrMS5jIGIvY3J5cHRvL3JzYS9yc2FfcGsxLmMKaW5kZXggODU2MDc1NS4uYzJkYTU2ZiAxMDA2NDQKLS0tIGEvY3J5cHRvL3JzYS9yc2FfcGsxLmMKKysrIGIvY3J5cHRvL3JzYS9yc2FfcGsxLmMKQEAgLTU2LDYgKzU2LDggQEAKICAqIFtpbmNsdWRpbmcgdGhlIEdOVSBQdWJsaWMgTGljZW5jZS5dCiAgKi8KIAorI2luY2x1ZGUgImNvbnN0YW50X3RpbWVfbG9jbC5oIgorCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlICJjcnlwdGxpYi5oIgogI2luY2x1ZGUgPG9wZW5zc2wvYm4uaD4KQEAgLTE4MSw0NCArMTgzLDg3IEBACiBpbnQgUlNBX3BhZGRpbmdfY2hlY2tfUEtDUzFfdHlwZV8yKHVuc2lnbmVkIGNoYXIgKnRvLCBpbnQgdGxlbiwKIAkgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmZyb20sIGludCBmbGVuLCBpbnQgbnVtKQogCXsKLQlpbnQgaSxqOwotCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnA7CisJaW50IGk7CisJLyogfGVtfCBpcyB0aGUgZW5jb2RlZCBtZXNzYWdlLCB6ZXJvLXBhZGRlZCB0byBleGFjdGx5IHxudW18IGJ5dGVzICovCisJdW5zaWduZWQgY2hhciAqZW0gPSBOVUxMOworCXVuc2lnbmVkIGludCBnb29kLCBmb3VuZF96ZXJvX2J5dGU7CisJaW50IHplcm9faW5kZXggPSAwLCBtc2dfaW5kZXgsIG1sZW4gPSAtMTsKIAotCXA9ZnJvbTsKLQlpZiAoKG51bSAhPSAoZmxlbisxKSkgfHwgKCoocCsrKSAhPSAwMikpCisgICAgICAgIGlmICh0bGVuIDwgMCB8fCBmbGVuIDwgMCkKKwkJcmV0dXJuIC0xOworCisJLyogUEtDUyMxIHYxLjUgZGVjcnlwdGlvbi4gU2VlICJQS0NTICMxIHYyLjI6IFJTQSBDcnlwdG9ncmFwaHkKKwkgKiBTdGFuZGFyZCIsIHNlY3Rpb24gNy4yLjIuICovCisKKwlpZiAoZmxlbiA+IG51bSkKKwkJZ290byBlcnI7CisKKwlpZiAobnVtIDwgMTEpCisJCWdvdG8gZXJyOworCisJZW0gPSBPUEVOU1NMX21hbGxvYyhudW0pOworCWlmIChlbSA9PSBOVUxMKQogCQl7Ci0JCVJTQWVycihSU0FfRl9SU0FfUEFERElOR19DSEVDS19QS0NTMV9UWVBFXzIsUlNBX1JfQkxPQ0tfVFlQRV9JU19OT1RfMDIpOwotCQlyZXR1cm4oLTEpOworCQlSU0FlcnIoUlNBX0ZfUlNBX1BBRERJTkdfQ0hFQ0tfUEtDUzFfVFlQRV8yLCBFUlJfUl9NQUxMT0NfRkFJTFVSRSk7CisJCXJldHVybiAtMTsKIAkJfQotI2lmZGVmIFBLQ1MxX0NIRUNLCi0JcmV0dXJuKG51bS0xMSk7Ci0jZW5kaWYKKwltZW1zZXQoZW0sIDAsIG51bSk7CisJLyoKKwkgKiBBbHdheXMgZG8gdGhpcyB6ZXJvLXBhZGRpbmcgY29weSAoZXZlbiB3aGVuIG51bSA9PSBmbGVuKSB0byBhdm9pZAorCSAqIGxlYWtpbmcgdGhhdCBpbmZvcm1hdGlvbi4gVGhlIGNvcHkgc3RpbGwgbGVha3Mgc29tZSBzaWRlLWNoYW5uZWwKKwkgKiBpbmZvcm1hdGlvbiwgYnV0IGl0J3MgaW1wb3NzaWJsZSB0byBoYXZlIGEgZml4ZWQgIG1lbW9yeSBhY2Nlc3MKKwkgKiBwYXR0ZXJuIHNpbmNlIHdlIGNhbid0IHJlYWQgb3V0IG9mIHRoZSBib3VuZHMgb2YgfGZyb218LgorCSAqCisJICogVE9ETyhlbWlsaWEpOiBDb25zaWRlciBwb3J0aW5nIEJOX2JuMmJpbl9wYWRkZWQgZnJvbSBCb3JpbmdTU0wuCisJICovCisJbWVtY3B5KGVtICsgbnVtIC0gZmxlbiwgZnJvbSwgZmxlbik7CiAKLQkvKiBzY2FuIG92ZXIgcGFkZGluZyBkYXRhICovCi0Jaj1mbGVuLTE7IC8qIG9uZSBmb3IgdHlwZS4gKi8KLQlmb3IgKGk9MDsgaTxqOyBpKyspCi0JCWlmICgqKHArKykgPT0gMCkgYnJlYWs7CisJZ29vZCA9IGNvbnN0YW50X3RpbWVfaXNfemVybyhlbVswXSk7CisJZ29vZCAmPSBjb25zdGFudF90aW1lX2VxKGVtWzFdLCAyKTsKIAotCWlmIChpID09IGopCisJZm91bmRfemVyb19ieXRlID0gMDsKKwlmb3IgKGkgPSAyOyBpIDwgbnVtOyBpKyspCiAJCXsKLQkJUlNBZXJyKFJTQV9GX1JTQV9QQURESU5HX0NIRUNLX1BLQ1MxX1RZUEVfMixSU0FfUl9OVUxMX0JFRk9SRV9CTE9DS19NSVNTSU5HKTsKLQkJcmV0dXJuKC0xKTsKKwkJdW5zaWduZWQgaW50IGVxdWFsczAgPSBjb25zdGFudF90aW1lX2lzX3plcm8oZW1baV0pOworCQl6ZXJvX2luZGV4ID0gY29uc3RhbnRfdGltZV9zZWxlY3RfaW50KH5mb3VuZF96ZXJvX2J5dGUgJiBlcXVhbHMwLCBpLCB6ZXJvX2luZGV4KTsKKwkJZm91bmRfemVyb19ieXRlIHw9IGVxdWFsczA7CiAJCX0KIAotCWlmIChpIDwgOCkKLQkJewotCQlSU0FlcnIoUlNBX0ZfUlNBX1BBRERJTkdfQ0hFQ0tfUEtDUzFfVFlQRV8yLFJTQV9SX0JBRF9QQURfQllURV9DT1VOVCk7Ci0JCXJldHVybigtMSk7Ci0JCX0KLQlpKys7IC8qIFNraXAgb3ZlciB0aGUgJ1wwJyAqLwotCWotPWk7Ci0JaWYgKGogPiB0bGVuKQotCQl7Ci0JCVJTQWVycihSU0FfRl9SU0FfUEFERElOR19DSEVDS19QS0NTMV9UWVBFXzIsUlNBX1JfREFUQV9UT09fTEFSR0UpOwotCQlyZXR1cm4oLTEpOwotCQl9Ci0JbWVtY3B5KHRvLHAsKHVuc2lnbmVkIGludClqKTsKKwkvKgorCSAqIFBTIG11c3QgYmUgYXQgbGVhc3QgOCBieXRlcyBsb25nLCBhbmQgaXQgc3RhcnRzIHR3byBieXRlcyBpbnRvIHxlbXwuCisgICAgICAgICAqIElmIHdlIG5ldmVyIGZvdW5kIGEgMC1ieXRlLCB0aGVuIHx6ZXJvX2luZGV4fCBpcyAwIGFuZCB0aGUgY2hlY2sKKwkgKiBhbHNvIGZhaWxzLgorCSAqLworCWdvb2QgJj0gY29uc3RhbnRfdGltZV9nZSgodW5zaWduZWQgaW50KSh6ZXJvX2luZGV4KSwgMiArIDgpOwogCi0JcmV0dXJuKGopOworCS8qIFNraXAgdGhlIHplcm8gYnl0ZS4gVGhpcyBpcyBpbmNvcnJlY3QgaWYgd2UgbmV2ZXIgZm91bmQgYSB6ZXJvLWJ5dGUKKwkgKiBidXQgaW4gdGhpcyBjYXNlIHdlIGFsc28gZG8gbm90IGNvcHkgdGhlIG1lc3NhZ2Ugb3V0LiAqLworCW1zZ19pbmRleCA9IHplcm9faW5kZXggKyAxOworCW1sZW4gPSBudW0gLSBtc2dfaW5kZXg7CisKKwkvKiBGb3IgZ29vZCBtZWFzdXJlLCBkbyB0aGlzIGNoZWNrIGluIGNvbnN0YW50IHRpbWUgYXMgd2VsbDsgaXQgY291bGQKKwkgKiBsZWFrIHNvbWV0aGluZyBpZiB8dGxlbnwgd2FzIGFzc3VtaW5nIHZhbGlkIHBhZGRpbmcuICovCisJZ29vZCAmPSBjb25zdGFudF90aW1lX2dlKCh1bnNpZ25lZCBpbnQpKHRsZW4pLCAodW5zaWduZWQgaW50KShtbGVuKSk7CisKKwkvKgorCSAqIFdlIGNhbid0IGNvbnRpbnVlIGluIGNvbnN0YW50LXRpbWUgYmVjYXVzZSB3ZSBuZWVkIHRvIGNvcHkgdGhlIHJlc3VsdAorCSAqIGFuZCB3ZSBjYW5ub3QgZmFrZSBpdHMgbGVuZ3RoLiBUaGlzIHVuYXZvaWRhYmx5IGxlYWtzIHRpbWluZworCSAqIGluZm9ybWF0aW9uIGF0IHRoZSBBUEkgYm91bmRhcnkuCisJICogVE9ETyhlbWlsaWEpOiB0aGlzIGNvdWxkIGJlIGFkZHJlc3NlZCBhdCB0aGUgY2FsbCBzaXRlLAorCSAqIHNlZSBCb3JpbmdTU0wgY29tbWl0IDBhYTA3NjczNDBiYWY5MjViZGE0ODA0ODgyYWFiMGNiOTc0YjJkMjYuCisJICovCisJaWYgKCFnb29kKQorCQl7CisJCW1sZW4gPSAtMTsKKwkJZ290byBlcnI7CisJCX0KKworCW1lbWNweSh0bywgZW0gKyBtc2dfaW5kZXgsIG1sZW4pOworCitlcnI6CisJaWYgKGVtICE9IE5VTEwpCisJCU9QRU5TU0xfZnJlZShlbSk7CisJaWYgKG1sZW4gPT0gLTEpCisJCVJTQWVycihSU0FfRl9SU0FfUEFERElOR19DSEVDS19QS0NTMV9UWVBFXzIsIFJTQV9SX1BLQ1NfREVDT0RJTkdfRVJST1IpOworCXJldHVybiBtbGVuOwogCX0KLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3JzYS9yc2Ffc2lnbi5jIGIvY3J5cHRvL3JzYS9yc2Ffc2lnbi5jCmluZGV4IGI2ZjYwMzcuLjIyNWJjZmUgMTAwNjQ0Ci0tLSBhL2NyeXB0by9yc2EvcnNhX3NpZ24uYworKysgYi9jcnlwdG8vcnNhL3JzYV9zaWduLmMKQEAgLTE1MSw2ICsxNTEsMjUgQEAKIAlyZXR1cm4ocmV0KTsKIAl9CiAKKy8qCisgKiBDaGVjayBEaWdlc3RJbmZvIHN0cnVjdHVyZSBkb2VzIG5vdCBjb250YWluIGV4dHJhbmVvdXMgZGF0YSBieSByZWVuY29kaW5nCisgKiB1c2luZyBERVIgYW5kIGNoZWNraW5nIGVuY29kaW5nIGFnYWluc3Qgb3JpZ2luYWwuIAorICovCitzdGF0aWMgaW50IHJzYV9jaGVja19kaWdlc3RpbmZvKFg1MDlfU0lHICpzaWcsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRpbmZvLCBpbnQgZGluZm9sZW4pCisJeworCXVuc2lnbmVkIGNoYXIgKmRlciA9IE5VTEw7CisJaW50IGRlcmxlbjsKKwlpbnQgcmV0ID0gMDsKKwlkZXJsZW4gPSBpMmRfWDUwOV9TSUcoc2lnLCAmZGVyKTsKKwlpZiAoZGVybGVuIDw9IDApCisJCXJldHVybiAwOworCWlmIChkZXJsZW4gPT0gZGluZm9sZW4gJiYgIW1lbWNtcChkaW5mbywgZGVyLCBkZXJsZW4pKQorCQlyZXQgPSAxOworCU9QRU5TU0xfY2xlYW5zZShkZXIsIGRlcmxlbik7CisJT1BFTlNTTF9mcmVlKGRlcik7CisJcmV0dXJuIHJldDsKKwl9CisKIGludCBpbnRfcnNhX3ZlcmlmeShpbnQgZHR5cGUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm0sCiAJCQkgIHVuc2lnbmVkIGludCBtX2xlbiwKIAkJCSAgdW5zaWduZWQgY2hhciAqcm0sIHNpemVfdCAqcHJtX2xlbiwKQEAgLTIyOCw3ICsyNDcsNyBAQAogCQlpZiAoc2lnID09IE5VTEwpIGdvdG8gZXJyOwogCiAJCS8qIEV4Y2VzcyBkYXRhIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBmb3JnZXJpZXMgKi8KLQkJaWYocCAhPSBzK2kpCisJCWlmKHAgIT0gcytpIHx8ICFyc2FfY2hlY2tfZGlnZXN0aW5mbyhzaWcsIHMsIGkpKQogCQkJewogCQkJUlNBZXJyKFJTQV9GX0lOVF9SU0FfVkVSSUZZLFJTQV9SX0JBRF9TSUdOQVRVUkUpOwogCQkJZ290byBlcnI7CmRpZmYgLS1naXQgYS9jcnlwdG8vc3JwL3NycF9saWIuYyBiL2NyeXB0by9zcnAvc3JwX2xpYi5jCmluZGV4IDdjMWRjYzUuLjgzZDQxN2EgMTAwNjQ0Ci0tLSBhL2NyeXB0by9zcnAvc3JwX2xpYi5jCisrKyBiL2NyeXB0by9zcnAvc3JwX2xpYi5jCkBAIC04OSw2ICs4OSw5IEBACiAJaW50IGxvbmdnIDsKIAlpbnQgbG9uZ04gPSBCTl9udW1fYnl0ZXMoTik7CiAKKwlpZiAoQk5fdWNtcChnLCBOKSA+PSAwKQorCQlyZXR1cm4gTlVMTDsKKwogCWlmICgodG1wID0gT1BFTlNTTF9tYWxsb2MobG9uZ04pKSA9PSBOVUxMKQogCQlyZXR1cm4gTlVMTDsKIAlCTl9ibjJiaW4oTix0bXApIDsKQEAgLTEyMSw2ICsxMjQsOSBAQAogCWlmICgoQSA9PSBOVUxMKSB8fChCID09IE5VTEwpIHx8IChOID09IE5VTEwpKQogCQlyZXR1cm4gTlVMTDsKIAorCWlmIChCTl91Y21wKEEsIE4pID49IDAgfHwgQk5fdWNtcChCLCBOKSA+PSAwKQorCQlyZXR1cm4gTlVMTDsKKwogCWxvbmdOPSBCTl9udW1fYnl0ZXMoTik7CiAKIAlpZiAoKGNBQiA9IE9QRU5TU0xfbWFsbG9jKDIqbG9uZ04pKSA9PSBOVUxMKSAKZGlmZiAtLWdpdCBhL2NyeXB0by9zdGFjay9zYWZlc3RhY2suaCBiL2NyeXB0by9zdGFjay9zYWZlc3RhY2suaAppbmRleCBlYTNhYTBkLi5iYzE5NGNiIDEwMDY0NAotLS0gYS9jcnlwdG8vc3RhY2svc2FmZXN0YWNrLmgKKysrIGIvY3J5cHRvL3N0YWNrL3NhZmVzdGFjay5oCkBAIC01Nyw2ICs1NywxMCBAQAogCiAjaW5jbHVkZSA8b3BlbnNzbC9zdGFjay5oPgogCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKICNpZm5kZWYgQ0hFQ0tFRF9QVFJfT0YKICNkZWZpbmUgQ0hFQ0tFRF9QVFJfT0YodHlwZSwgcCkgXAogICAgICgodm9pZCopICgxID8gcCA6ICh0eXBlKikwKSkKQEAgLTI2NjAsNCArMjY2NCw4IEBACiAjZGVmaW5lIGxoX1NTTF9TRVNTSU9OX2ZyZWUobGgpIExITV9saF9mcmVlKFNTTF9TRVNTSU9OLGxoKQogLyogRW5kIG9mIHV0aWwvbWtzdGFjay5wbCBibG9jaywgeW91IG1heSBub3cgZWRpdCA6LSkgKi8KIAorCisjaWZkZWYgIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKICNlbmRpZiAvKiAhZGVmaW5lZCBIRUFERVJfU0FGRVNUQUNLX0ggKi8KZGlmZiAtLWdpdCBhL2NyeXB0by91aS91aV9saWIuYyBiL2NyeXB0by91aS91aV9saWIuYwppbmRleCBhOGFiYzI3Li4xNjdkYTAwIDEwMDY0NAotLS0gYS9jcnlwdG8vdWkvdWlfbGliLmMKKysrIGIvY3J5cHRvL3VpL3VpX2xpYi5jCkBAIC05MTYsOSArOTE2LDkgQEAKIAkJCQlicmVhazsKIAkJCQl9CiAJCQl9CisJCX0KIAlkZWZhdWx0OgogCQlicmVhazsKIAkJfQotCQl9CiAJcmV0dXJuIDA7CiAJfQpkaWZmIC0tZ2l0IGEvZV9vcy5oIGIvZV9vcy5oCmluZGV4IDZhMGFhZDEuLjczMzE1NWUgMTAwNjQ0Ci0tLSBhL2Vfb3MuaAorKysgYi9lX29zLmgKQEAgLTM3Myw3ICszNzMsMTYgQEAKICMgIGRlZmluZSBjaGVja193aW5udCgpICgxKQogI2Vsc2UKICMgIGRlZmluZSBjaGVja193aW5udCgpIChHZXRWZXJzaW9uKCkgPCAweDgwMDAwMDAwKQotI2VuZGlmIAorI2VuZGlmCisKKy8qCisgKiBWaXN1YWwgU3R1ZGlvOiBpbmxpbmUgaXMgYXZhaWxhYmxlIGluIEMrKyBvbmx5LCBob3dldmVyCisgKiBfX2lubGluZSBpcyBhdmFpbGFibGUgZm9yIEMsIHNlZQorICogaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3o4eTF5eTg4LmFzcHgKKyAqLworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmICFkZWZpbmVkKF9fY3BsdXNwbHVzKSAmJiAhZGVmaW5lZChpbmxpbmUpCisjICBkZWZpbmUgaW5saW5lIF9faW5saW5lCisjZW5kaWYKIAogI2Vsc2UgLyogVGhlIG5vbi1taWNyb3NvZnQgd29ybGQgKi8KIApAQCAtNzM4LDQgKzc0NywzIEBACiAjZW5kaWYKIAogI2VuZGlmCi0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvb3BlbnNzbC9lYmNkaWMuaCBiL2luY2x1ZGUvb3BlbnNzbC9lYmNkaWMuaAppbmRleCA2ZDY1YWZjLi44NWYzY2Y3IDEwMDY0NAotLS0gYS9pbmNsdWRlL29wZW5zc2wvZWJjZGljLmgKKysrIGIvaW5jbHVkZS9vcGVuc3NsL2ViY2RpYy5oCkBAIC01LDYgKzUsMTAgQEAKIAogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogCisjaWZkZWYgIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCiAvKiBBdm9pZCBuYW1lIGNsYXNoZXMgd2l0aCBvdGhlciBhcHBsaWNhdGlvbnMgKi8KICNkZWZpbmUgb3NfdG9hc2NpaSAgIF9vcGVuc3NsX29zX3RvYXNjaWkKICNkZWZpbmUgb3NfdG9lYmNkaWMgIF9vcGVuc3NsX29zX3RvZWJjZGljCkBAIC0xNiw0ICsyMCw3IEBACiB2b2lkICplYmNkaWMyYXNjaWkodm9pZCAqZGVzdCwgY29uc3Qgdm9pZCAqc3JjZSwgc2l6ZV90IGNvdW50KTsKIHZvaWQgKmFzY2lpMmViY2RpYyh2b2lkICpkZXN0LCBjb25zdCB2b2lkICpzcmNlLCBzaXplX3QgY291bnQpOwogCisjaWZkZWYgIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9vcGVuc3NsL2VjLmggYi9pbmNsdWRlL29wZW5zc2wvZWMuaAppbmRleCBkMDA4YTBkLi5iNmU3NDViIDEwMDY0NAotLS0gYS9pbmNsdWRlL29wZW5zc2wvZWMuaAorKysgYi9pbmNsdWRlL29wZW5zc2wvZWMuaApAQCAtNjI5LDcgKzYyOSw3IEBACiBpbnQgRUNfUE9JTlRfbWFrZV9hZmZpbmUoY29uc3QgRUNfR1JPVVAgKmdyb3VwLCBFQ19QT0lOVCAqcG9pbnQsIEJOX0NUWCAqY3R4KTsKIGludCBFQ19QT0lOVHNfbWFrZV9hZmZpbmUoY29uc3QgRUNfR1JPVVAgKmdyb3VwLCBzaXplX3QgbnVtLCBFQ19QT0lOVCAqcG9pbnRzW10sIEJOX0NUWCAqY3R4KTsKIAotLyoqIENvbXB1dGVzIHIgPSBnZW5lcmF0b3IgKiBuIHN1bV97aT0wfV5udW0gcFtpXSAqIG1baV0KKy8qKiBDb21wdXRlcyByID0gZ2VuZXJhdG9yICogbiBzdW1fe2k9MH1ee251bS0xfSBwW2ldICogbVtpXQogICogIFxwYXJhbSAgZ3JvdXAgIHVuZGVybHlpbmcgRUNfR1JPVVAgb2JqZWN0CiAgKiAgXHBhcmFtICByICAgICAgRUNfUE9JTlQgb2JqZWN0IGZvciB0aGUgcmVzdWx0CiAgKiAgXHBhcmFtICBuICAgICAgQklHTlVNIHdpdGggdGhlIG11bHRpcGxpZXIgZm9yIHRoZSBncm91cCBnZW5lcmF0b3IgKG9wdGlvbmFsKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9vcGVuc3NsL21vZGVzLmggYi9pbmNsdWRlL29wZW5zc2wvbW9kZXMuaAppbmRleCBmMTgyMTViLi43NzczYzI1IDEwMDY0NAotLS0gYS9pbmNsdWRlL29wZW5zc2wvbW9kZXMuaAorKysgYi9pbmNsdWRlL29wZW5zc2wvbW9kZXMuaApAQCAtNyw2ICs3LDkgQEAKIAogI2luY2x1ZGUgPHN0ZGRlZi5oPgogCisjaWZkZWYgIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgogdHlwZWRlZiB2b2lkICgqYmxvY2sxMjhfZikoY29uc3QgdW5zaWduZWQgY2hhciBpblsxNl0sCiAJCQl1bnNpZ25lZCBjaGFyIG91dFsxNl0sCiAJCQljb25zdCB2b2lkICprZXkpOwpAQCAtMTMzLDMgKzEzNiw2IEBACiAKIGludCBDUllQVE9feHRzMTI4X2VuY3J5cHQoY29uc3QgWFRTMTI4X0NPTlRFWFQgKmN0eCwgY29uc3QgdW5zaWduZWQgY2hhciBpdlsxNl0sCiAJY29uc3QgdW5zaWduZWQgY2hhciAqaW5wLCB1bnNpZ25lZCBjaGFyICpvdXQsIHNpemVfdCBsZW4sIGludCBlbmMpOworI2lmZGVmICBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYtMzIuaCBiL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3NsY29uZi0zMi5oCmluZGV4IGNhZjZmMWIuLmI1YjNkZDIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3NsY29uZi0zMi5oCisrKyBiL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3NsY29uZi0zMi5oCkBAIC0xLDYgKzEsOSBAQAogLyogb3BlbnNzbGNvbmYuaCAqLwogLyogV0FSTklORzogR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgZnJvbSBvcGVuc3NsY29uZi5oLmluIGJ5IENvbmZpZ3VyZS4gKi8KIAorI2lmZGVmICBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKIC8qIE9wZW5TU0wgd2FzIGNvbmZpZ3VyZWQgd2l0aCB0aGUgZm9sbG93aW5nIG9wdGlvbnM6ICovCiAjaWZuZGVmIE9QRU5TU0xfRE9JTkdfTUFLRURFUEVORAogCkBAIC03NCw2ICs3Nyw5IEBACiAjaWZuZGVmIE9QRU5TU0xfTk9fU1RPUkUKICMgZGVmaW5lIE9QRU5TU0xfTk9fU1RPUkUKICNlbmRpZgorI2lmbmRlZiBPUEVOU1NMX05PX1VOSVRfVEVTVAorIyBkZWZpbmUgT1BFTlNTTF9OT19VTklUX1RFU1QKKyNlbmRpZgogI2lmbmRlZiBPUEVOU1NMX05PX1dISVJMUE9PTAogIyBkZWZpbmUgT1BFTlNTTF9OT19XSElSTFBPT0wKICNlbmRpZgpAQCAtMTYxLDYgKzE2Nyw5IEBACiAjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19TVE9SRSkgJiYgIWRlZmluZWQoTk9fU1RPUkUpCiAjICBkZWZpbmUgTk9fU1RPUkUKICMgZW5kaWYKKyMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1VOSVRfVEVTVCkgJiYgIWRlZmluZWQoTk9fVU5JVF9URVNUKQorIyAgZGVmaW5lIE5PX1VOSVRfVEVTVAorIyBlbmRpZgogIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fV0hJUkxQT09MKSAmJiAhZGVmaW5lZChOT19XSElSTFBPT0wpCiAjICBkZWZpbmUgTk9fV0hJUkxQT09MCiAjIGVuZGlmCkBAIC0zMjAsMyArMzI5LDYgQEAKIAogI2VuZGlmIC8qIERFU19ERUZBVUxUX09QVElPTlMgKi8KICNlbmRpZiAvKiBIRUFERVJfREVTX0xPQ0xfSCAqLworI2lmZGVmICBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYtNjQuaCBiL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3NsY29uZi02NC5oCmluZGV4IDg4ZmIwNDEuLjMwZTdhZDggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3NsY29uZi02NC5oCisrKyBiL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3NsY29uZi02NC5oCkBAIC0xLDYgKzEsOSBAQAogLyogb3BlbnNzbGNvbmYuaCAqLwogLyogV0FSTklORzogR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgZnJvbSBvcGVuc3NsY29uZi5oLmluIGJ5IENvbmZpZ3VyZS4gKi8KIAorI2lmZGVmICBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKIC8qIE9wZW5TU0wgd2FzIGNvbmZpZ3VyZWQgd2l0aCB0aGUgZm9sbG93aW5nIG9wdGlvbnM6ICovCiAjaWZuZGVmIE9QRU5TU0xfRE9JTkdfTUFLRURFUEVORAogCkBAIC03NCw2ICs3Nyw5IEBACiAjaWZuZGVmIE9QRU5TU0xfTk9fU1RPUkUKICMgZGVmaW5lIE9QRU5TU0xfTk9fU1RPUkUKICNlbmRpZgorI2lmbmRlZiBPUEVOU1NMX05PX1VOSVRfVEVTVAorIyBkZWZpbmUgT1BFTlNTTF9OT19VTklUX1RFU1QKKyNlbmRpZgogI2lmbmRlZiBPUEVOU1NMX05PX1dISVJMUE9PTAogIyBkZWZpbmUgT1BFTlNTTF9OT19XSElSTFBPT0wKICNlbmRpZgpAQCAtMTYxLDYgKzE2Nyw5IEBACiAjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19TVE9SRSkgJiYgIWRlZmluZWQoTk9fU1RPUkUpCiAjICBkZWZpbmUgTk9fU1RPUkUKICMgZW5kaWYKKyMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1VOSVRfVEVTVCkgJiYgIWRlZmluZWQoTk9fVU5JVF9URVNUKQorIyAgZGVmaW5lIE5PX1VOSVRfVEVTVAorIyBlbmRpZgogIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fV0hJUkxQT09MKSAmJiAhZGVmaW5lZChOT19XSElSTFBPT0wpCiAjICBkZWZpbmUgTk9fV0hJUkxQT09MCiAjIGVuZGlmCkBAIC0zMjAsMyArMzI5LDYgQEAKIAogI2VuZGlmIC8qIERFU19ERUZBVUxUX09QVElPTlMgKi8KICNlbmRpZiAvKiBIRUFERVJfREVTX0xPQ0xfSCAqLworI2lmZGVmICBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYtc3RhdGljLTMyLmggYi9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYtc3RhdGljLTMyLmgKaW5kZXggY2FmNmYxYi4uYjViM2RkMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9vcGVuc3NsL29wZW5zc2xjb25mLXN0YXRpYy0zMi5oCisrKyBiL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3NsY29uZi1zdGF0aWMtMzIuaApAQCAtMSw2ICsxLDkgQEAKIC8qIG9wZW5zc2xjb25mLmggKi8KIC8qIFdBUk5JTkc6IEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gb3BlbnNzbGNvbmYuaC5pbiBieSBDb25maWd1cmUuICovCiAKKyNpZmRlZiAgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCiAvKiBPcGVuU1NMIHdhcyBjb25maWd1cmVkIHdpdGggdGhlIGZvbGxvd2luZyBvcHRpb25zOiAqLwogI2lmbmRlZiBPUEVOU1NMX0RPSU5HX01BS0VERVBFTkQKIApAQCAtNzQsNiArNzcsOSBAQAogI2lmbmRlZiBPUEVOU1NMX05PX1NUT1JFCiAjIGRlZmluZSBPUEVOU1NMX05PX1NUT1JFCiAjZW5kaWYKKyNpZm5kZWYgT1BFTlNTTF9OT19VTklUX1RFU1QKKyMgZGVmaW5lIE9QRU5TU0xfTk9fVU5JVF9URVNUCisjZW5kaWYKICNpZm5kZWYgT1BFTlNTTF9OT19XSElSTFBPT0wKICMgZGVmaW5lIE9QRU5TU0xfTk9fV0hJUkxQT09MCiAjZW5kaWYKQEAgLTE2MSw2ICsxNjcsOSBAQAogIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fU1RPUkUpICYmICFkZWZpbmVkKE5PX1NUT1JFKQogIyAgZGVmaW5lIE5PX1NUT1JFCiAjIGVuZGlmCisjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19VTklUX1RFU1QpICYmICFkZWZpbmVkKE5PX1VOSVRfVEVTVCkKKyMgIGRlZmluZSBOT19VTklUX1RFU1QKKyMgZW5kaWYKICMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1dISVJMUE9PTCkgJiYgIWRlZmluZWQoTk9fV0hJUkxQT09MKQogIyAgZGVmaW5lIE5PX1dISVJMUE9PTAogIyBlbmRpZgpAQCAtMzIwLDMgKzMyOSw2IEBACiAKICNlbmRpZiAvKiBERVNfREVGQVVMVF9PUFRJT05TICovCiAjZW5kaWYgLyogSEVBREVSX0RFU19MT0NMX0ggKi8KKyNpZmRlZiAgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9vcGVuc3NsL29wZW5zc2xjb25mLXN0YXRpYy02NC5oIGIvaW5jbHVkZS9vcGVuc3NsL29wZW5zc2xjb25mLXN0YXRpYy02NC5oCmluZGV4IDg4ZmIwNDEuLjMwZTdhZDggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3NsY29uZi1zdGF0aWMtNjQuaAorKysgYi9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYtc3RhdGljLTY0LmgKQEAgLTEsNiArMSw5IEBACiAvKiBvcGVuc3NsY29uZi5oICovCiAvKiBXQVJOSU5HOiBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBmcm9tIG9wZW5zc2xjb25mLmguaW4gYnkgQ29uZmlndXJlLiAqLwogCisjaWZkZWYgIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgogLyogT3BlblNTTCB3YXMgY29uZmlndXJlZCB3aXRoIHRoZSBmb2xsb3dpbmcgb3B0aW9uczogKi8KICNpZm5kZWYgT1BFTlNTTF9ET0lOR19NQUtFREVQRU5ECiAKQEAgLTc0LDYgKzc3LDkgQEAKICNpZm5kZWYgT1BFTlNTTF9OT19TVE9SRQogIyBkZWZpbmUgT1BFTlNTTF9OT19TVE9SRQogI2VuZGlmCisjaWZuZGVmIE9QRU5TU0xfTk9fVU5JVF9URVNUCisjIGRlZmluZSBPUEVOU1NMX05PX1VOSVRfVEVTVAorI2VuZGlmCiAjaWZuZGVmIE9QRU5TU0xfTk9fV0hJUkxQT09MCiAjIGRlZmluZSBPUEVOU1NMX05PX1dISVJMUE9PTAogI2VuZGlmCkBAIC0xNjEsNiArMTY3LDkgQEAKICMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1NUT1JFKSAmJiAhZGVmaW5lZChOT19TVE9SRSkKICMgIGRlZmluZSBOT19TVE9SRQogIyBlbmRpZgorIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fVU5JVF9URVNUKSAmJiAhZGVmaW5lZChOT19VTklUX1RFU1QpCisjICBkZWZpbmUgTk9fVU5JVF9URVNUCisjIGVuZGlmCiAjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19XSElSTFBPT0wpICYmICFkZWZpbmVkKE5PX1dISVJMUE9PTCkKICMgIGRlZmluZSBOT19XSElSTFBPT0wKICMgZW5kaWYKQEAgLTMyMCwzICszMjksNiBAQAogCiAjZW5kaWYgLyogREVTX0RFRkFVTFRfT1BUSU9OUyAqLwogI2VuZGlmIC8qIEhFQURFUl9ERVNfTE9DTF9IICovCisjaWZkZWYgIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3NsY29uZi1zdGF0aWMtdHJ1c3R5LmggYi9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYtc3RhdGljLXRydXN0eS5oCmluZGV4IDA2ZjlmOTguLmJmZjU5MTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3NsY29uZi1zdGF0aWMtdHJ1c3R5LmgKKysrIGIvaW5jbHVkZS9vcGVuc3NsL29wZW5zc2xjb25mLXN0YXRpYy10cnVzdHkuaApAQCAtMSw2ICsxLDkgQEAKIC8qIG9wZW5zc2xjb25mLmggKi8KIC8qIFdBUk5JTkc6IEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gb3BlbnNzbGNvbmYuaC5pbiBieSBDb25maWd1cmUuICovCiAKKyNpZmRlZiAgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCiAvKiBPcGVuU1NMIHdhcyBjb25maWd1cmVkIHdpdGggdGhlIGZvbGxvd2luZyBvcHRpb25zOiAqLwogI2lmbmRlZiBPUEVOU1NMX0RPSU5HX01BS0VERVBFTkQKIApAQCAtMTM3LDYgKzE0MCw5IEBACiAjaWZuZGVmIE9QRU5TU0xfTk9fVUkKICMgZGVmaW5lIE9QRU5TU0xfTk9fVUkKICNlbmRpZgorI2lmbmRlZiBPUEVOU1NMX05PX1VOSVRfVEVTVAorIyBkZWZpbmUgT1BFTlNTTF9OT19VTklUX1RFU1QKKyNlbmRpZgogI2lmbmRlZiBPUEVOU1NMX05PX1dISVJMUE9PTAogIyBkZWZpbmUgT1BFTlNTTF9OT19XSElSTFBPT0wKICNlbmRpZgpAQCAtMjg3LDYgKzI5Myw5IEBACiAjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19VSSkgJiYgIWRlZmluZWQoTk9fVUkpCiAjICBkZWZpbmUgTk9fVUkKICMgZW5kaWYKKyMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1VOSVRfVEVTVCkgJiYgIWRlZmluZWQoTk9fVU5JVF9URVNUKQorIyAgZGVmaW5lIE5PX1VOSVRfVEVTVAorIyBlbmRpZgogIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fV0hJUkxQT09MKSAmJiAhZGVmaW5lZChOT19XSElSTFBPT0wpCiAjICBkZWZpbmUgTk9fV0hJUkxQT09MCiAjIGVuZGlmCkBAIC00NDYsMyArNDU1LDYgQEAKIAogI2VuZGlmIC8qIERFU19ERUZBVUxUX09QVElPTlMgKi8KICNlbmRpZiAvKiBIRUFERVJfREVTX0xPQ0xfSCAqLworI2lmZGVmICBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYtdHJ1c3R5LmggYi9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYtdHJ1c3R5LmgKaW5kZXggMDZmOWY5OC4uYmZmNTkxMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9vcGVuc3NsL29wZW5zc2xjb25mLXRydXN0eS5oCisrKyBiL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3NsY29uZi10cnVzdHkuaApAQCAtMSw2ICsxLDkgQEAKIC8qIG9wZW5zc2xjb25mLmggKi8KIC8qIFdBUk5JTkc6IEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gb3BlbnNzbGNvbmYuaC5pbiBieSBDb25maWd1cmUuICovCiAKKyNpZmRlZiAgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCiAvKiBPcGVuU1NMIHdhcyBjb25maWd1cmVkIHdpdGggdGhlIGZvbGxvd2luZyBvcHRpb25zOiAqLwogI2lmbmRlZiBPUEVOU1NMX0RPSU5HX01BS0VERVBFTkQKIApAQCAtMTM3LDYgKzE0MCw5IEBACiAjaWZuZGVmIE9QRU5TU0xfTk9fVUkKICMgZGVmaW5lIE9QRU5TU0xfTk9fVUkKICNlbmRpZgorI2lmbmRlZiBPUEVOU1NMX05PX1VOSVRfVEVTVAorIyBkZWZpbmUgT1BFTlNTTF9OT19VTklUX1RFU1QKKyNlbmRpZgogI2lmbmRlZiBPUEVOU1NMX05PX1dISVJMUE9PTAogIyBkZWZpbmUgT1BFTlNTTF9OT19XSElSTFBPT0wKICNlbmRpZgpAQCAtMjg3LDYgKzI5Myw5IEBACiAjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19VSSkgJiYgIWRlZmluZWQoTk9fVUkpCiAjICBkZWZpbmUgTk9fVUkKICMgZW5kaWYKKyMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1VOSVRfVEVTVCkgJiYgIWRlZmluZWQoTk9fVU5JVF9URVNUKQorIyAgZGVmaW5lIE5PX1VOSVRfVEVTVAorIyBlbmRpZgogIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fV0hJUkxQT09MKSAmJiAhZGVmaW5lZChOT19XSElSTFBPT0wpCiAjICBkZWZpbmUgTk9fV0hJUkxQT09MCiAjIGVuZGlmCkBAIC00NDYsMyArNDU1LDYgQEAKIAogI2VuZGlmIC8qIERFU19ERUZBVUxUX09QVElPTlMgKi8KICNlbmRpZiAvKiBIRUFERVJfREVTX0xPQ0xfSCAqLworI2lmZGVmICBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbHYuaCBiL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3Nsdi5oCmluZGV4IGMzYjZhY2UuLmYzNzU5NjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3Nsdi5oCisrKyBiL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3Nsdi5oCkBAIC0xLDYgKzEsMTAgQEAKICNpZm5kZWYgSEVBREVSX09QRU5TU0xWX0gKICNkZWZpbmUgSEVBREVSX09QRU5TU0xWX0gKIAorI2lmZGVmICBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwogLyogTnVtZXJpYyByZWxlYXNlIHZlcnNpb24gaWRlbnRpZmllcjoKICAqIE1OTkZGUFBTOiBtYWpvciBtaW5vciBmaXggcGF0Y2ggc3RhdHVzCiAgKiBUaGUgc3RhdHVzIG5pYmJsZSBoYXMgb25lIG9mIHRoZSB2YWx1ZXMgMCBmb3IgZGV2ZWxvcG1lbnQsIDEgdG8gZSBmb3IgYmV0YXMKQEAgLTI1LDExICsyOSwxMSBAQAogICogKFByaW9yIHRvIDAuOS41YSBiZXRhMSwgYSBkaWZmZXJlbnQgc2NoZW1lIHdhcyB1c2VkOiBNTU5ORkZSQkIgZm9yCiAgKiAgbWFqb3IgbWlub3IgZml4IGZpbmFsIHBhdGNoL2JldGEpCiAgKi8KLSNkZWZpbmUgT1BFTlNTTF9WRVJTSU9OX05VTUJFUgkweDEwMDAxMDhmTAorI2RlZmluZSBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSCTB4MTAwMDEwYWZMCiAjaWZkZWYgT1BFTlNTTF9GSVBTCi0jZGVmaW5lIE9QRU5TU0xfVkVSU0lPTl9URVhUCSJPcGVuU1NMIDEuMC4xaC1maXBzIDUgSnVuIDIwMTQiCisjZGVmaW5lIE9QRU5TU0xfVkVSU0lPTl9URVhUCSJPcGVuU1NMIDEuMC4xai1maXBzIDE1IE9jdCAyMDE0IgogI2Vsc2UKLSNkZWZpbmUgT1BFTlNTTF9WRVJTSU9OX1RFWFQJIk9wZW5TU0wgMS4wLjFoIDUgSnVuIDIwMTQiCisjZGVmaW5lIE9QRU5TU0xfVkVSU0lPTl9URVhUCSJPcGVuU1NMIDEuMC4xaiAxNSBPY3QgMjAxNCIKICNlbmRpZgogI2RlZmluZSBPUEVOU1NMX1ZFUlNJT05fUFRFWFQJIiBwYXJ0IG9mICIgT1BFTlNTTF9WRVJTSU9OX1RFWFQKIApAQCAtODYsNCArOTAsNyBAQAogI2RlZmluZSBTSExJQl9WRVJTSU9OX05VTUJFUiAiMS4wLjAiCiAKIAorI2lmZGVmICBfX2NwbHVzcGx1cworfQorI2VuZGlmCiAjZW5kaWYgLyogSEVBREVSX09QRU5TU0xWX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvb3BlbnNzbC9vc3NsX3R5cC5oIGIvaW5jbHVkZS9vcGVuc3NsL29zc2xfdHlwLmgKaW5kZXggZWE5MjI3Zi4uMTJjZGQ0MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9vcGVuc3NsL29zc2xfdHlwLmgKKysrIGIvaW5jbHVkZS9vcGVuc3NsL29zc2xfdHlwLmgKQEAgLTU1LDYgKzU1LDEwIEBACiAjaWZuZGVmIEhFQURFUl9PUEVOU1NMX1RZUEVTX0gKICNkZWZpbmUgSEVBREVSX09QRU5TU0xfVFlQRVNfSAogCisjaWZkZWYgIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCiAjaW5jbHVkZSA8b3BlbnNzbC9lX29zMi5oPgogCiAjaWZkZWYgTk9fQVNOMV9UWVBFREVGUwpAQCAtMTk5LDQgKzIwMyw3IEBACiB0eXBlZGVmIHN0cnVjdCBvY3NwX3Jlc3BvbnNlX3N0IE9DU1BfUkVTUE9OU0U7CiB0eXBlZGVmIHN0cnVjdCBvY3NwX3Jlc3BvbmRlcl9pZF9zdCBPQ1NQX1JFU1BJRDsKIAorI2lmZGVmICBfX2NwbHVzcGx1cworfQorI2VuZGlmCiAjZW5kaWYgLyogZGVmIEhFQURFUl9PUEVOU1NMX1RZUEVTX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvb3BlbnNzbC9wa2NzNy5oIGIvaW5jbHVkZS9vcGVuc3NsL3BrY3M3LmgKaW5kZXggMDRmNjAzNy4uNWQ1NGM0YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9vcGVuc3NsL3BrY3M3LmgKKysrIGIvaW5jbHVkZS9vcGVuc3NsL3BrY3M3LmgKQEAgLTIzMywxMCArMjMzLDYgQEAKIAkJKE9CSl9vYmoybmlkKChhKS0+dHlwZSkgPT0gTklEX3BrY3M3X3NpZ25lZEFuZEVudmVsb3BlZCkKICNkZWZpbmUgUEtDUzdfdHlwZV9pc19kYXRhKGEpICAgKE9CSl9vYmoybmlkKChhKS0+dHlwZSkgPT0gTklEX3BrY3M3X2RhdGEpCiAjZGVmaW5lIFBLQ1M3X3R5cGVfaXNfZGlnZXN0KGEpICAgKE9CSl9vYmoybmlkKChhKS0+dHlwZSkgPT0gTklEX3BrY3M3X2RpZ2VzdCkKLSNkZWZpbmUgUEtDUzdfdHlwZV9pc19lbmNyeXB0ZWQoYSkgXAotCQkoT0JKX29iajJuaWQoKGEpLT50eXBlKSA9PSBOSURfcGtjczdfZW5jcnlwdGVkKQotCi0jZGVmaW5lIFBLQ1M3X3R5cGVfaXNfZGlnZXN0KGEpICAgKE9CSl9vYmoybmlkKChhKS0+dHlwZSkgPT0gTklEX3BrY3M3X2RpZ2VzdCkKIAogI2RlZmluZSBQS0NTN19zZXRfZGV0YWNoZWQocCx2KSBcCiAJCVBLQ1M3X2N0cmwocCxQS0NTN19PUF9TRVRfREVUQUNIRURfU0lHTkFUVVJFLHYsTlVMTCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvb3BlbnNzbC9wcXVldWUuaCBiL2luY2x1ZGUvb3BlbnNzbC9wcXVldWUuaAppbmRleCA4N2ZjOTAzLi4yNmI1MzQ4IDEwMDY0NAotLS0gYS9pbmNsdWRlL29wZW5zc2wvcHF1ZXVlLmgKKysrIGIvaW5jbHVkZS9vcGVuc3NsL3BxdWV1ZS5oCkBAIC02NCw2ICs2NCw5IEBACiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAKKyNpZmRlZiAgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCiB0eXBlZGVmIHN0cnVjdCBfcHF1ZXVlICpwcXVldWU7CiAKIHR5cGVkZWYgc3RydWN0IF9waXRlbQpAQCAtOTEsNCArOTQsNyBAQAogdm9pZCAgIHBxdWV1ZV9wcmludChwcXVldWUgcHEpOwogaW50ICAgIHBxdWV1ZV9zaXplKHBxdWV1ZSBwcSk7CiAKKyNpZmRlZiAgX19jcGx1c3BsdXMKK30KKyNlbmRpZgogI2VuZGlmIC8qICEgSEVBREVSX1BRVUVVRV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL29wZW5zc2wvcnNhLmggYi9pbmNsdWRlL29wZW5zc2wvcnNhLmgKaW5kZXggNWYyNjllNS4uMTE4NTNmZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9vcGVuc3NsL3JzYS5oCisrKyBiL2luY2x1ZGUvb3BlbnNzbC9yc2EuaApAQCAtNTU5LDYgKzU1OSw3IEBACiAjZGVmaW5lIFJTQV9SX09QRVJBVElPTl9OT1RfQUxMT1dFRF9JTl9GSVBTX01PREUJIDE1OAogI2RlZmluZSBSU0FfUl9PUEVSQVRJT05fTk9UX1NVUFBPUlRFRF9GT1JfVEhJU19LRVlUWVBFCSAxNDgKICNkZWZpbmUgUlNBX1JfUEFERElOR19DSEVDS19GQUlMRUQJCQkgMTE0CisjZGVmaW5lIFJTQV9SX1BLQ1NfREVDT0RJTkdfRVJST1IJCQkgMTU5CiAjZGVmaW5lIFJTQV9SX1BfTk9UX1BSSU1FCQkJCSAxMjgKICNkZWZpbmUgUlNBX1JfUV9OT1RfUFJJTUUJCQkJIDEyOQogI2RlZmluZSBSU0FfUl9SU0FfT1BFUkFUSU9OU19OT1RfU1VQUE9SVEVECQkgMTMwCmRpZmYgLS1naXQgYS9pbmNsdWRlL29wZW5zc2wvc2FmZXN0YWNrLmggYi9pbmNsdWRlL29wZW5zc2wvc2FmZXN0YWNrLmgKaW5kZXggZWEzYWEwZC4uYmMxOTRjYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9vcGVuc3NsL3NhZmVzdGFjay5oCisrKyBiL2luY2x1ZGUvb3BlbnNzbC9zYWZlc3RhY2suaApAQCAtNTcsNiArNTcsMTAgQEAKIAogI2luY2x1ZGUgPG9wZW5zc2wvc3RhY2suaD4KIAorI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCiAjaWZuZGVmIENIRUNLRURfUFRSX09GCiAjZGVmaW5lIENIRUNLRURfUFRSX09GKHR5cGUsIHApIFwKICAgICAoKHZvaWQqKSAoMSA/IHAgOiAodHlwZSopMCkpCkBAIC0yNjYwLDQgKzI2NjQsOCBAQAogI2RlZmluZSBsaF9TU0xfU0VTU0lPTl9mcmVlKGxoKSBMSE1fbGhfZnJlZShTU0xfU0VTU0lPTixsaCkKIC8qIEVuZCBvZiB1dGlsL21rc3RhY2sucGwgYmxvY2ssIHlvdSBtYXkgbm93IGVkaXQgOi0pICovCiAKKworI2lmZGVmICBfX2NwbHVzcGx1cworfQorI2VuZGlmCiAjZW5kaWYgLyogIWRlZmluZWQgSEVBREVSX1NBRkVTVEFDS19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL29wZW5zc2wvc3J0cC5oIGIvaW5jbHVkZS9vcGVuc3NsL3NydHAuaAppbmRleCBjMGNmMzNlLi4yNGYyMzMwIDEwMDY0NAotLS0gYS9pbmNsdWRlL29wZW5zc2wvc3J0cC5oCisrKyBiL2luY2x1ZGUvb3BlbnNzbC9zcnRwLmgKQEAgLTEzMCw2ICsxMzAsOCBAQAogI2RlZmluZSBTUlRQX05VTExfU0hBMV84MCAgICAgIDB4MDAwNQogI2RlZmluZSBTUlRQX05VTExfU0hBMV8zMiAgICAgIDB4MDAwNgogCisjaWZuZGVmIE9QRU5TU0xfTk9fU1JUUAorCiBpbnQgU1NMX0NUWF9zZXRfdGxzZXh0X3VzZV9zcnRwKFNTTF9DVFggKmN0eCwgY29uc3QgY2hhciAqcHJvZmlsZXMpOwogaW50IFNTTF9zZXRfdGxzZXh0X3VzZV9zcnRwKFNTTCAqY3R4LCBjb25zdCBjaGFyICpwcm9maWxlcyk7CiBTUlRQX1BST1RFQ1RJT05fUFJPRklMRSAqU1NMX2dldF9zZWxlY3RlZF9zcnRwX3Byb2ZpbGUoU1NMICpzKTsKQEAgLTEzNyw2ICsxMzksOCBAQAogU1RBQ0tfT0YoU1JUUF9QUk9URUNUSU9OX1BST0ZJTEUpICpTU0xfZ2V0X3NydHBfcHJvZmlsZXMoU1NMICpzc2wpOwogU1JUUF9QUk9URUNUSU9OX1BST0ZJTEUgKlNTTF9nZXRfc2VsZWN0ZWRfc3J0cF9wcm9maWxlKFNTTCAqcyk7CiAKKyNlbmRpZgorCiAjaWZkZWYgIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvb3BlbnNzbC9zc2wuaCBiL2luY2x1ZGUvb3BlbnNzbC9zc2wuaAppbmRleCBhODlhYjIzLi43YTFmY2U4IDEwMDY0NAotLS0gYS9pbmNsdWRlL29wZW5zc2wvc3NsLmgKKysrIGIvaW5jbHVkZS9vcGVuc3NsL3NzbC5oCkBAIC0yNjQsNiArMjY0LDcgQEAKICNkZWZpbmUgU1NMX1RYVF9hR09TVDk0CSJhR09TVDk0IgogI2RlZmluZSBTU0xfVFhUX2FHT1NUMDEgImFHT1NUMDEiCiAjZGVmaW5lIFNTTF9UWFRfYUdPU1QgICJhR09TVCIKKyNkZWZpbmUgU1NMX1RYVF9hU1JQICAgICAgICAgICAgImFTUlAiCiAKICNkZWZpbmUJU1NMX1RYVF9EU1MJCSJEU1MiCiAjZGVmaW5lIFNTTF9UWFRfREgJCSJESCIKQEAgLTY2NCwxMSArNjY1LDE1IEBACiAgKi8KICNkZWZpbmUgU1NMX01PREVfU0VORF9DTElFTlRIRUxMT19USU1FIDB4MDAwMDAwMjBMCiAjZGVmaW5lIFNTTF9NT0RFX1NFTkRfU0VSVkVSSEVMTE9fVElNRSAweDAwMDAwMDQwTAorLyogU2VuZCBUTFNfRkFMTEJBQ0tfU0NTViBpbiB0aGUgQ2xpZW50SGVsbG8uCisgKiBUbyBiZSBzZXQgYnkgYXBwbGljYXRpb25zIHRoYXQgcmVjb25uZWN0IHdpdGggYSBkb3duZ3JhZGVkIHByb3RvY29sCisgKiB2ZXJzaW9uOyBzZWUgZHJhZnQtaWV0Zi10bHMtZG93bmdyYWRlLXNjc3YtMDAgZm9yIGRldGFpbHMuICovCisjZGVmaW5lIFNTTF9NT0RFX1NFTkRfRkFMTEJBQ0tfU0NTViAweDAwMDAwMDgwTAogCiAvKiBXaGVuIHNldCwgY2xpZW50cyBtYXkgc2VuZCBhcHBsaWNhdGlvbiBkYXRhIGJlZm9yZSByZWNlaXB0IG9mIENDUwogICogYW5kIEZpbmlzaGVkLiAgVGhpcyBtb2RlIGVuYWJsZXMgZnVsbC1oYW5kc2hha2VzIHRvICdjb21wbGV0ZScgaW4KICAqIG9uZSBSVFQuICovCi0jZGVmaW5lIFNTTF9NT0RFX0hBTkRTSEFLRV9DVVRUSFJPVUdIIDB4MDAwMDAwODBMCisjZGVmaW5lIFNTTF9NT0RFX0hBTkRTSEFLRV9DVVRUSFJPVUdIIDB4MDAwMDAyMDBMCiAKIC8qIFdoZW4gc2V0LCBUTFMgMS4wIGFuZCBTU0x2MywgbXVsdGktYnl0ZSwgQ0JDIHJlY29yZHMgd2lsbCBiZSBzcGxpdCBpbiB0d286CiAgKiB0aGUgZmlyc3QgcmVjb3JkIHdpbGwgY29udGFpbiBhIHNpbmdsZSBieXRlIGFuZCB0aGUgc2Vjb25kIHdpbGwgY29udGFpbiB0aGUKQEAgLTY3NiwxMSArNjgxLDYgQEAKICAqIGF0dGFja3MuICovCiAjZGVmaW5lIFNTTF9NT0RFX0NCQ19SRUNPUkRfU1BMSVRUSU5HIDB4MDAwMDAxMDBMCiAKLS8qIFNlbmQgVExTX0ZBTExCQUNLX1NDU1YgaW4gdGhlIENsaWVudEhlbGxvLgotICogVG8gYmUgc2V0IGJ5IGFwcGxpY2F0aW9ucyB0aGF0IHJlY29ubmVjdCB3aXRoIGEgZG93bmdyYWRlZCBwcm90b2NvbAotICogdmVyc2lvbjsgc2VlIGRyYWZ0LWlldGYtdGxzLWRvd25ncmFkZS1zY3N2LTAwIGZvciBkZXRhaWxzLiAqLwotI2RlZmluZSBTU0xfTU9ERV9TRU5EX0ZBTExCQUNLX1NDU1YgMHgwMDAwMDIwMEwKLQogLyogTm90ZTogU1NMW19DVFhdX3NldF97b3B0aW9ucyxtb2RlfSB1c2UgfD0gb3Agb24gdGhlIHByZXZpb3VzIHZhbHVlLAogICogdGhleSBjYW5ub3QgYmUgdXNlZCB0byBjbGVhciBiaXRzLiAqLwogCkBAIC0yMTk5LDYgKzIxOTksMTAgQEAKIHZvaWQgU1NMX3NldF9kZWJ1ZyhTU0wgKnMsIGludCBkZWJ1Zyk7CiBpbnQgU1NMX2NhY2hlX2hpdChTU0wgKnMpOwogCisjaWZuZGVmIE9QRU5TU0xfTk9fVU5JVF9URVNUCitjb25zdCBzdHJ1Y3Qgb3BlbnNzbF9zc2xfdGVzdF9mdW5jdGlvbnMgKlNTTF90ZXN0X2Z1bmN0aW9ucyh2b2lkKTsKKyNlbmRpZgorCiAvKiBCRUdJTiBFUlJPUiBDT0RFUyAqLwogLyogVGhlIGZvbGxvd2luZyBsaW5lcyBhcmUgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHNjcmlwdCBta2Vyci5wbC4gQW55IGNoYW5nZXMKICAqIG1hZGUgYWZ0ZXIgdGhpcyBwb2ludCBtYXkgYmUgb3ZlcndyaXR0ZW4gd2hlbiB0aGUgc2NyaXB0IGlzIG5leHQgcnVuLgpAQCAtMjQ2Nyw2ICsyNDcxLDcgQEAKICNkZWZpbmUgU1NMX1JfQkFEX1NSUF9CX0xFTkdUSAkJCQkgMzQ4CiAjZGVmaW5lIFNTTF9SX0JBRF9TUlBfR19MRU5HVEgJCQkJIDM0OQogI2RlZmluZSBTU0xfUl9CQURfU1JQX05fTEVOR1RICQkJCSAzNTAKKyNkZWZpbmUgU1NMX1JfQkFEX1NSUF9QQVJBTUVURVJTCQkJIDM3MQogI2RlZmluZSBTU0xfUl9CQURfU1JQX1NfTEVOR1RICQkJCSAzNTEKICNkZWZpbmUgU1NMX1JfQkFEX1NSVFBfTUtJX1ZBTFVFCQkJIDM1MgogI2RlZmluZSBTU0xfUl9CQURfU1JUUF9QUk9URUNUSU9OX1BST0ZJTEVfTElTVAkJIDM1MwpAQCAtMjUyNyw3ICsyNTMyLDcgQEAKICNkZWZpbmUgU1NMX1JfSFRUUFNfUFJPWFlfUkVRVUVTVAkJCSAxNTUKICNkZWZpbmUgU1NMX1JfSFRUUF9SRVFVRVNUCQkJCSAxNTYKICNkZWZpbmUgU1NMX1JfSUxMRUdBTF9QQURESU5HCQkJCSAyODMKLSNkZWZpbmUgU1NMX1JfSU5BUFBST1BSSUFURV9GQUxMQkFDSwkJCSAzODAKKyNkZWZpbmUgU1NMX1JfSU5BUFBST1BSSUFURV9GQUxMQkFDSwkJCSAzNzMKICNkZWZpbmUgU1NMX1JfSU5DT05TSVNURU5UX0NPTVBSRVNTSU9OCQkJIDM0MAogI2RlZmluZSBTU0xfUl9JTlZBTElEX0NIQUxMRU5HRV9MRU5HVEgJCQkgMTU4CiAjZGVmaW5lIFNTTF9SX0lOVkFMSURfQ09NTUFORAkJCQkgMjgwCmRpZmYgLS1naXQgYS9vcGVuc3NsLmNvbmZpZyBiL29wZW5zc2wuY29uZmlnCmluZGV4IDg2NzcxMWYuLmFlMzkwZmIgMTAwNjQ0Ci0tLSBhL29wZW5zc2wuY29uZmlnCisrKyBiL29wZW5zc2wuY29uZmlnCkBAIC0xMjgsNiArMTI4LDcgQEAKIGNyeXB0by9jbXMvTWFrZWZpbGUgXAogY3J5cHRvL2NvbXAvTWFrZWZpbGUgXAogY3J5cHRvL2NvbmYvTWFrZWZpbGUgXAorY3J5cHRvL2NvbnN0YW50X3RpbWVfdGVzdC5jIFwKIGNyeXB0by9jcnlwdG8tbGliLmNvbSBcCiBjcnlwdG8vZGVzL01ha2VmaWxlIFwKIGNyeXB0by9kZXMvZGVzLWxpYi5jb20gXApAQCAtMjIwLDYgKzIyMSw3IEBACiBzc2wvaW5zdGFsbC1zc2wuY29tIFwKIHNzbC9zc2wtbGliLmNvbSBcCiBzc2wvc3NsX3Rhc2suYyBcCitzc2wvc3NsX3V0c3QuYyBcCiAiCiAKIE5FRURFRF9TT1VSQ0VTPSJcCkBAIC00OTEsNiArNDkzLDcgQEAKIGNyeXB0by9jb25mL2NvbmZfbWFsbC5jIFwKIGNyeXB0by9jb25mL2NvbmZfbW9kLmMgXAogY3J5cHRvL2NvbmYvY29uZl9zYXAuYyBcCitjcnlwdG8vY29uc3RhbnRfdGltZV9sb2NsLmggXAogY3J5cHRvL2Rlcy9jYmNfY2tzbS5jIFwKIGNyeXB0by9kZXMvY2JjX2VuYy5jIFwKIGNyeXB0by9kZXMvY2ZiNjRlZGUuYyBcCmRpZmYgLS1naXQgYS9vcGVuc3NsLnZlcnNpb24gYi9vcGVuc3NsLnZlcnNpb24KaW5kZXggYWIyZTYyYi4uMjkzMzk2ZiAxMDA2NDQKLS0tIGEvb3BlbnNzbC52ZXJzaW9uCisrKyBiL29wZW5zc2wudmVyc2lvbgpAQCAtMSArMSBAQAotT1BFTlNTTF9WRVJTSU9OPTEuMC4xaAorT1BFTlNTTF9WRVJTSU9OPTEuMC4xagpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy8wMDAyLWhhbmRzaGFrZV9jdXR0aHJvdWdoLnBhdGNoIGIvcGF0Y2hlcy8wMDAyLWhhbmRzaGFrZV9jdXR0aHJvdWdoLnBhdGNoCmluZGV4IGY2OGZkNmYuLjU0NWJiNWUgMTAwNjQ0Ci0tLSBhL3BhdGNoZXMvMDAwMi1oYW5kc2hha2VfY3V0dGhyb3VnaC5wYXRjaAorKysgYi9wYXRjaGVzLzAwMDItaGFuZHNoYWtlX2N1dHRocm91Z2gucGF0Y2gKQEAgLTE5Miw3ICsxOTIsNyBAQAogKy8qIFdoZW4gc2V0LCBjbGllbnRzIG1heSBzZW5kIGFwcGxpY2F0aW9uIGRhdGEgYmVmb3JlIHJlY2VpcHQgb2YgQ0NTCiArICogYW5kIEZpbmlzaGVkLiAgVGhpcyBtb2RlIGVuYWJsZXMgZnVsbC1oYW5kc2hha2VzIHRvICdjb21wbGV0ZScgaW4KICsgKiBvbmUgUlRULiAqLwotKyNkZWZpbmUgU1NMX01PREVfSEFORFNIQUtFX0NVVFRIUk9VR0ggMHgwMDAwMDA4MEwKKysjZGVmaW5lIFNTTF9NT0RFX0hBTkRTSEFLRV9DVVRUSFJPVUdIIDB4MDAwMDAyMDBMCiArCiAgLyogTm90ZTogU1NMW19DVFhdX3NldF97b3B0aW9ucyxtb2RlfSB1c2UgfD0gb3Agb24gdGhlIHByZXZpb3VzIHZhbHVlLAogICAqIHRoZXkgY2Fubm90IGJlIHVzZWQgdG8gY2xlYXIgYml0cy4gKi8KZGlmZiAtLWdpdCBhL3BhdGNoZXMvMDAwNC1jaGFubmVsaWQucGF0Y2ggYi9wYXRjaGVzLzAwMDQtY2hhbm5lbGlkLnBhdGNoCmluZGV4IDNiOWVjOGEuLjQ4Zjg3NWEgMTAwNjQ0Ci0tLSBhL3BhdGNoZXMvMDAwNC1jaGFubmVsaWQucGF0Y2gKKysrIGIvcGF0Y2hlcy8wMDA0LWNoYW5uZWxpZC5wYXRjaApAQCAtMTMzMSw3ICsxMzMxLDcgQEAKICsJCXMybigwLHJldCk7CiArCQl9CiArCi0gCWlmICgoZXh0ZGF0YWxlbiA9IHJldC1wLTIpPT0gMCkgCisgCWlmICgoZXh0ZGF0YWxlbiA9IHJldC1vcmlnLTIpPT0gMCkgCiAgCQlyZXR1cm4gcDsKICAKIEBAIC0xNDQyLDYgKzE0NjgsMTYgQEAgaW50IHNzbF9wYXJzZV9jbGllbnRoZWxsb190bHNleHQoU1NMICpzLCB1bnNpZ25lZCBjaGFyICoqcCwgdW5zaWduZWQgY2hhciAqZCwgaW4KZGlmZiAtLWdpdCBhL3BhdGNoZXMvMDAwNy10bHMxMl9kaWdlc3RzLnBhdGNoIGIvcGF0Y2hlcy8wMDA3LXRsczEyX2RpZ2VzdHMucGF0Y2gKaW5kZXggMTFmN2MyNy4uYjUwYzI1MCAxMDA2NDQKLS0tIGEvcGF0Y2hlcy8wMDA3LXRsczEyX2RpZ2VzdHMucGF0Y2gKKysrIGIvcGF0Y2hlcy8wMDA3LXRsczEyX2RpZ2VzdHMucGF0Y2gKQEAgLTE5Myw2ICsxOTMsMzUgQEAKICAJfQogIAogIHZvaWQgc3NsX3VwZGF0ZV9jYWNoZShTU0wgKnMsaW50IG1vZGUpCitAQCAtMzEzOCwyNiArMzE2MCwxNSBAQCBTU0xfQ1RYICpTU0xfc2V0X1NTTF9DVFgoU1NMICpzc2wsIFNTTF9DVFgqIGN0eCkKKworIFNTTF9DVFggKlNTTF9zZXRfU1NMX0NUWChTU0wgKnNzbCwgU1NMX0NUWCogY3R4KQorCXsKKy0JQ0VSVCAqb2NlcnQgPSBzc2wtPmNlcnQ7CisJaWYgKHNzbC0+Y3R4ID09IGN0eCkKKwkJcmV0dXJuIHNzbC0+Y3R4OworICNpZm5kZWYgT1BFTlNTTF9OT19UTFNFWFQKKwlpZiAoY3R4ID09IE5VTEwpCisJCWN0eCA9IHNzbC0+aW5pdGlhbF9jdHg7CisgI2VuZGlmCisrCWlmIChzc2wtPmNlcnQgIT0gTlVMTCkKKysJCXNzbF9jZXJ0X2ZyZWUoc3NsLT5jZXJ0KTsKKwlzc2wtPmNlcnQgPSBzc2xfY2VydF9kdXAoY3R4LT5jZXJ0KTsKKy0JaWYgKG9jZXJ0ICE9IE5VTEwpCistCQl7CistCQlpbnQgaTsKKy0JCS8qIENvcHkgbmVnb3RpYXRlZCBkaWdlc3RzIGZyb20gb3JpZ2luYWwgKi8KKy0JCWZvciAoaSA9IDA7IGkgPCBTU0xfUEtFWV9OVU07IGkrKykKKy0JCQl7CistCQkJQ0VSVF9QS0VZICpjcGsgPSBvY2VydC0+cGtleXMgKyBpOworLQkJCUNFUlRfUEtFWSAqcnBrID0gc3NsLT5jZXJ0LT5wa2V5cyArIGk7CistCQkJcnBrLT5kaWdlc3QgPSBjcGstPmRpZ2VzdDsKKy0JCQl9CistCQlzc2xfY2VydF9mcmVlKG9jZXJ0KTsKKy0JCX0KKwlDUllQVE9fYWRkKCZjdHgtPnJlZmVyZW5jZXMsMSxDUllQVE9fTE9DS19TU0xfQ1RYKTsKKwlpZiAoc3NsLT5jdHggIT0gTlVMTCkKKwkJU1NMX0NUWF9mcmVlKHNzbC0+Y3R4KTsgLyogZGVjcmVtZW50IHJlZmVyZW5jZSBjb3VudCAqLwogZGlmZiAtLWdpdCBhL3NzbC9zc2xfbG9jbC5oIGIvc3NsL3NzbF9sb2NsLmgKIGluZGV4IDZkMzhmMGYuLjNlODlmY2IgMTAwNjQ0CiAtLS0gYS9zc2wvc3NsX2xvY2wuaApkaWZmIC0tZ2l0IGEvcGF0Y2hlcy8wMDA4LWFscG4ucGF0Y2ggYi9wYXRjaGVzLzAwMDgtYWxwbi5wYXRjaAppbmRleCAwODRhYzMyLi42ZmNjYmQzIDEwMDY0NAotLS0gYS9wYXRjaGVzLzAwMDgtYWxwbi5wYXRjaAorKysgYi9wYXRjaGVzLzAwMDgtYWxwbi5wYXRjaApAQCAtMzg4LDcgKzM4OCw3IEBACiArCQlyZXQgKz0gbGVuOwogKwkJfQogKwotIAlpZiAoKGV4dGRhdGFsZW4gPSByZXQtcC0yKT09IDApIAorIAlpZiAoKGV4dGRhdGFsZW4gPSByZXQtb3JpZy0yKT09IDApIAogIAkJcmV0dXJuIHA7CiAgCiBAQCAtOTY2LDYgKzk5Myw3NiBAQCBzdGF0aWMgdm9pZCBzc2xfY2hlY2tfZm9yX3NhZmFyaShTU0wgKnMsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEsIGNvbnN0IHVuc2lnbgpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy8wMDExLWVjZGhlX3Bzay5wYXRjaCBiL3BhdGNoZXMvMDAxMS1lY2RoZV9wc2sucGF0Y2gKaW5kZXggNjE0YjNhZC4uN2RmMjBjMCAxMDA2NDQKLS0tIGEvcGF0Y2hlcy8wMDExLWVjZGhlX3Bzay5wYXRjaAorKysgYi9wYXRjaGVzLzAwMTEtZWNkaGVfcHNrLnBhdGNoCkBAIC0yMiwxMCArMjIsMTAgQEAKIEBAIC0zMzMsOSArMzMzLDEwIEBAIGludCBzc2wzX2Nvbm5lY3QoU1NMICpzKQogIAkJCQl9CiAgI2VuZGlmCi0gCQkJLyogQ2hlY2sgaWYgaXQgaXMgYW5vbiBESC9FQ0RIICovCisgCQkJLyogQ2hlY2sgaWYgaXQgaXMgYW5vbiBESC9FQ0RILCBTUlAgYXV0aCAqLwogLQkJCS8qIG9yIFBTSyAqLwogKwkJCS8qIG9yIG5vbi1SU0EgUFNLICovCi0gCQkJaWYgKCEocy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fYXV0aCAmIFNTTF9hTlVMTCkgJiYKKyAJCQlpZiAoIShzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9hdXRoICYgKFNTTF9hTlVMTHxTU0xfYVNSUCkpICYmCiAtCQkJICAgICEocy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fbWtleSAmIFNTTF9rUFNLKSkKICsJCQkgICAgISgocy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fYXV0aCAmIFNTTF9hUFNLKSAmJgogKwkJCSAgICAgICEocy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fbWtleSAmIFNTTF9rUlNBKSkpCkBAIC00MSw3ICs0MSw3IEBACiAgCQkJewogIAkJCXMtPnNlc3Npb24tPnNlc3NfY2VydD1zc2xfc2Vzc19jZXJ0X25ldygpOwogIAkJCWlmIChzLT5jdHgtPnBza19pZGVudGl0eV9oaW50KQotQEAgLTE0MTYsNTIgKzE0MTcsNTYgQEAgaW50IHNzbDNfZ2V0X2tleV9leGNoYW5nZShTU0wgKnMpCitAQCAtMTQxNiw2MSArMTQxNyw2NSBAQCBpbnQgc3NsM19nZXRfa2V5X2V4Y2hhbmdlKFNTTCAqcykKICAJRVZQX01EX0NUWF9pbml0KCZtZF9jdHgpOwogIAogICNpZm5kZWYgT1BFTlNTTF9OT19QU0sKQEAgLTUwLDI0ICs1MCwzMCBAQAogIAkJewogIAkJY2hhciB0bXBfaWRfaGludFtQU0tfTUFYX0lERU5USVRZX0xFTisxXTsKICAKLSAJCWFsPVNTTF9BRF9IQU5EU0hBS0VfRkFJTFVSRTsKKwkJcGFyYW1fbGVuID0gMjsKKwkJaWYgKHBhcmFtX2xlbiA+IG4pCisJCQl7CisJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLAorCQkJCVNTTF9SX0xFTkdUSF9UT09fU0hPUlQpOworCQkJZ290byBmX2VycjsKKwkJCX0KICAJCW4ycyhwLGkpOwotIAkJcGFyYW1fbGVuPWkrMjsKKwogLQkJLyogU3RvcmUgUFNLIGlkZW50aXR5IGhpbnQgZm9yIGxhdGVyIHVzZSwgaGludCBpcyB1c2VkCiAtCQkgKiBpbiBzc2wzX3NlbmRfY2xpZW50X2tleV9leGNoYW5nZS4gIEFzc3VtZSB0aGF0IHRoZQogLQkJICogbWF4aW11bSBsZW5ndGggb2YgYSBQU0sgaWRlbnRpdHkgaGludCBjYW4gYmUgYXMKIC0JCSAqIGxvbmcgYXMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgUFNLIGlkZW50aXR5LiAqLwogLQkJaWYgKGkgPiBQU0tfTUFYX0lERU5USVRZX0xFTikKIC0JCQl7CistCQkJYWw9U1NMX0FEX0hBTkRTSEFLRV9GQUlMVVJFOwogLQkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsCiAtCQkJCVNTTF9SX0RBVEFfTEVOR1RIX1RPT19MT05HKTsKIC0JCQlnb3RvIGZfZXJyOwogLQkJCX0KLS0JCWlmIChwYXJhbV9sZW4gPiBuKQorLQkJaWYgKGkgPiBuIC0gcGFyYW1fbGVuKQogKwkJcy0+Y3R4LT5wc2tfaWRlbnRpdHlfaGludCA9IE5VTEw7CiArCQlpZiAoaSAhPSAwKQogIAkJCXsKLS0JCQlhbD1TU0xfQURfREVDT0RFX0VSUk9SOwogLQkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsCiAtCQkJCVNTTF9SX0JBRF9QU0tfSURFTlRJVFlfSElOVF9MRU5HVEgpOwogLQkJCWdvdG8gZl9lcnI7CkBAIC03NywxNyArODMsMTkgQEAKICsJCQkgKiBsb25nIGFzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIFBTSyBpZGVudGl0eS4gKi8KICsJCQlpZiAoaSA+IFBTS19NQVhfSURFTlRJVFlfTEVOKQogKwkJCQl7CisrCQkJCWFsPVNTTF9BRF9IQU5EU0hBS0VfRkFJTFVSRTsKICsJCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSwKICsJCQkJCVNTTF9SX0RBVEFfTEVOR1RIX1RPT19MT05HKTsKICsJCQkJZ290byBmX2VycjsKICsJCQkJfQotKwkJCWlmIChwYXJhbV9sZW4gPiBuKQorKwkJCWlmIChpID4gbiAtIHBhcmFtX2xlbikKICsJCQkJewotKwkJCQlhbD1TU0xfQURfREVDT0RFX0VSUk9SOwogKwkJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLAogKwkJCQkJU1NMX1JfQkFEX1BTS19JREVOVElUWV9ISU5UX0xFTkdUSCk7CiArCQkJCWdvdG8gZl9lcnI7CiArCQkJCX0KKysJCQlwYXJhbV9sZW4gKz0gaTsKKysKICsJCQkvKiBJZiByZWNlaXZlZCBQU0sgaWRlbnRpdHkgaGludCBjb250YWlucyBOVUxMCiArCQkJICogY2hhcmFjdGVycywgdGhlIGhpbnQgaXMgdHJ1bmNhdGVkIGZyb20gdGhlIGZpcnN0CiArCQkJICogTlVMTC4gcCBtYXkgbm90IGJlIGVuZGluZyB3aXRoIE5VTEwsIHNvIGNyZWF0ZSBhCkBAIC05OSwxMCArMTA3LDEzIEBACiArCQkJcy0+Y3R4LT5wc2tfaWRlbnRpdHlfaGludCA9IEJVRl9zdHJkdXAodG1wX2lkX2hpbnQpOwogKwkJCWlmIChzLT5jdHgtPnBza19pZGVudGl0eV9oaW50ID09IE5VTEwpCiArCQkJCXsKKysJCQkJYWw9U1NMX0FEX0hBTkRTSEFLRV9GQUlMVVJFOwogKwkJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLCBFUlJfUl9NQUxMT0NfRkFJTFVSRSk7CiArCQkJCWdvdG8gZl9lcnI7CiArCQkJCX0KICAJCQl9CistCQlwYXJhbV9sZW4gKz0gaTsKKy0KIC0JCS8qIElmIHJlY2VpdmVkIFBTSyBpZGVudGl0eSBoaW50IGNvbnRhaW5zIE5VTEwKIC0JCSAqIGNoYXJhY3RlcnMsIHRoZSBoaW50IGlzIHRydW5jYXRlZCBmcm9tIHRoZSBmaXJzdAogLQkJICogTlVMTC4gcCBtYXkgbm90IGJlIGVuZGluZyB3aXRoIE5VTEwsIHNvIGNyZWF0ZSBhCkBAIC0xMTQsNiArMTI1LDcgQEAKIC0JCXMtPmN0eC0+cHNrX2lkZW50aXR5X2hpbnQgPSBCVUZfc3RyZHVwKHRtcF9pZF9oaW50KTsKIC0JCWlmIChzLT5jdHgtPnBza19pZGVudGl0eV9oaW50ID09IE5VTEwpCiAtCQkJeworLQkJCWFsPVNTTF9BRF9IQU5EU0hBS0VfRkFJTFVSRTsKIC0JCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLCBFUlJfUl9NQUxMT0NfRkFJTFVSRSk7CiAtCQkJZ290byBmX2VycjsKIC0JCQl9CSAgIApAQCAtMTc1LDkgKzE4Nyw5IEBACiAgCQl9CiAgCWVsc2UKICAJCXsKLS0JCWlmICghKGFsZ19hICYgU1NMX2FOVUxMKSAmJiAhKGFsZ19rICYgU1NMX2tQU0spKQotLQkJCS8qIGFOVUxMIG9yIGtQU0sgZG8gbm90IG5lZWQgcHVibGljIGtleXMgKi8KLSsJCWlmICghKGFsZ19hICYgU1NMX2FOVUxMKSAmJgorLQkJLyogYU5VTEwsIGFTUlAgb3Iga1BTSyBkbyBub3QgbmVlZCBwdWJsaWMga2V5cyAqLworLQkJaWYgKCEoYWxnX2EgJiAoU1NMX2FOVUxMfFNTTF9hU1JQKSkgJiYgIShhbGdfayAmIFNTTF9rUFNLKSkKKysJCWlmICghKGFsZ19hICYgKFNTTF9hTlVMTHxTU0xfYVNSUCkpICYmCiArCQkJLyogQW1vbmcgUFNLIGNpcGhlcnMgb25seSBSU0FfUFNLIG5lZWRzIGEgcHVibGljIGtleSAqLwogKwkJCSEoKGFsZ19hICYgU1NMX2FQU0spICYmICEoYWxnX2sgJiBTU0xfa1JTQSkpKQogIAkJCXsKQEAgLTIwNyw3ICsyMTksNyBAQAogIAogIAlpZiAocy0+c3RhdGUgPT0gU1NMM19TVF9DV19LRVlfRVhDSF9BKQogIAkJewotQEAgLTIzMTAsNyArMjMxNyw5NiBAQCBpbnQgc3NsM19zZW5kX2NsaWVudF9rZXlfZXhjaGFuZ2UoU1NMICpzKQorQEAgLTIzMTAsNyArMjMxNywxMDYgQEAgaW50IHNzbDNfc2VuZF9jbGllbnRfa2V5X2V4Y2hhbmdlKFNTTCAqcykKICAJCXA9ICYoZFs0XSk7CiAgCiAgCQlhbGdfaz1zLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9ta2V5OwpAQCAtMjE2LDcgKzIyOCwxMSBAQAogKyNpZm5kZWYgT1BFTlNTTF9OT19QU0sKICsJCWlmIChhbGdfYSAmIFNTTF9hUFNLKQogKwkJCXsKLSsJCQljaGFyIGlkZW50aXR5W1BTS19NQVhfSURFTlRJVFlfTEVOXTsKKysJCQkvKiBUaGUgY2FsbGJhY2sgbmVlZHMgUFNLX01BWF9JREVOVElUWV9MRU4gKyAxIGJ5dGVzCisrCQkJICogdG8gcmV0dXJuIGEgXDAtdGVybWluYXRlZCBpZGVudGl0eS4gVGhlIGxhc3QgYnl0ZQorKwkJCSAqIGlzIGZvciB1cyBmb3Igc2ltdWxhdGluZyBzdHJubGVuLiAqLworKwkJCWNoYXIgaWRlbnRpdHlbUFNLX01BWF9JREVOVElUWV9MRU4gKyAyXTsKKysJCQlzaXplX3QgaWRlbnRpdHlfbGVuOwogKwkJCXVuc2lnbmVkIGNoYXIgKnQgPSBOVUxMOwogKwkJCXVuc2lnbmVkIGNoYXIgcHJlX21zW1BTS19NQVhfUFNLX0xFTioyKzRdOwogKwkJCXVuc2lnbmVkIGludCBwcmVfbXNfbGVuID0gMDsKQEAgLTIzMSw3ICsyNDcsNyBAQAogKwkJCQl9CiAgCiArCQkJcHNrX2xlbiA9IHMtPnBza19jbGllbnRfY2FsbGJhY2socywgcy0+Y3R4LT5wc2tfaWRlbnRpdHlfaGludCwKLSsJCQkJaWRlbnRpdHksIFBTS19NQVhfSURFTlRJVFlfTEVOLCBwc2ssIHNpemVvZihwc2spKTsKKysJCQkJaWRlbnRpdHksIHNpemVvZihpZGVudGl0eSkgLSAxLCBwc2ssIHNpemVvZihwc2spKTsKICsJCQlpZiAocHNrX2xlbiA+IFBTS19NQVhfUFNLX0xFTikKICsJCQkJewogKwkJCQlTU0xlcnIoU1NMX0ZfU1NMM19TRU5EX0NMSUVOVF9LRVlfRVhDSEFOR0UsCkBAIC0yNDQsNyArMjYwLDE0IEBACiArCQkJCQlTU0xfUl9QU0tfSURFTlRJVFlfTk9UX0ZPVU5EKTsKICsJCQkJZ290byBwc2tfZXJyOwogKwkJCQl9Ci0rCisrCQkJaWRlbnRpdHlbUFNLX01BWF9JREVOVElUWV9MRU4gKyAxXSA9ICdcMCc7CisrCQkJaWRlbnRpdHlfbGVuID0gc3RybGVuKGlkZW50aXR5KTsKKysJCQlpZiAoaWRlbnRpdHlfbGVuID4gUFNLX01BWF9JREVOVElUWV9MRU4pCisrCQkJCXsKKysJCQkJU1NMZXJyKFNTTF9GX1NTTDNfU0VORF9DTElFTlRfS0VZX0VYQ0hBTkdFLAorKwkJCQkJRVJSX1JfSU5URVJOQUxfRVJST1IpOworKwkJCQlnb3RvIHBza19lcnI7CisrCQkJCX0KICsJCQlpZiAoIShhbGdfayAmIFNTTF9rRUVDREgpKQogKwkJCQl7CiArCQkJCS8qIENyZWF0ZSB0aGUgc2hhcmVkIHNlY3JldCBub3cgaWYgd2UncmUgbm90IHVzaW5nIEVDREhFLVBTSy4qLwpAQCAtMjYwLDEwICsyODMsOSBAQAogKwkJCQkJcy0+bWV0aG9kLT5zc2wzX2VuYy0+Z2VuZXJhdGVfbWFzdGVyX3NlY3JldChzLAogKwkJCQkJCXMtPnNlc3Npb24tPm1hc3Rlcl9rZXksCiArCQkJCQkJcHJlX21zLCBwcmVfbXNfbGVuKTsKLSsJCQkJbiA9IHN0cmxlbihpZGVudGl0eSk7Ci0rCQkJCXMybihuLCBwKTsKLSsJCQkJbWVtY3B5KHAsIGlkZW50aXR5LCBuKTsKLSsJCQkJbiArPSAyOworKwkJCQlzMm4oaWRlbnRpdHlfbGVuLCBwKTsKKysJCQkJbWVtY3B5KHAsIGlkZW50aXR5LCBpZGVudGl0eV9sZW4pOworKwkJCQluID0gMiArIGlkZW50aXR5X2xlbjsKICsJCQkJfQogKwogKwkJCWlmIChzLT5zZXNzaW9uLT5wc2tfaWRlbnRpdHlfaGludCAhPSBOVUxMKQpAQCAtMjkyLDcgKzMxNCw3IEBACiArCQkJCX0KICsJCQlwc2tfZXJyID0gMDsKICsJCXBza19lcnI6Ci0rCQkJT1BFTlNTTF9jbGVhbnNlKGlkZW50aXR5LCBQU0tfTUFYX0lERU5USVRZX0xFTik7CisrCQkJT1BFTlNTTF9jbGVhbnNlKGlkZW50aXR5LCBzaXplb2YoaWRlbnRpdHkpKTsKICsJCQlPUEVOU1NMX2NsZWFuc2UocHJlX21zLCBzaXplb2YocHJlX21zKSk7CiArCQkJaWYgKHBza19lcnIgIT0gMCkKICsJCQkJewpAQCAtNDI4LDE0ICs0NTAsMTggQEAKICAJCQl7CiAgCQkJLyogR09TVCBrZXkgZXhjaGFuZ2UgbWVzc2FnZSBjcmVhdGlvbiAqLwogIAkJCUVWUF9QS0VZX0NUWCAqcGtleV9jdHg7Ci1AQCAtMjg4Nyw4OSArMzAyNyw3IEBAIGludCBzc2wzX3NlbmRfY2xpZW50X2tleV9leGNoYW5nZShTU0wgKnMpCitAQCAtMjg4NywxMDAgKzMwMjcsNyBAQCBpbnQgc3NsM19zZW5kX2NsaWVudF9rZXlfZXhjaGFuZ2UoU1NMICpzKQogIAkJCQl9CiAgCQkJfQogICNlbmRpZgogLSNpZm5kZWYgT1BFTlNTTF9OT19QU0sKIC0JCWVsc2UgaWYgKGFsZ19rICYgU1NMX2tQU0spCiAtCQkJewotLQkJCWNoYXIgaWRlbnRpdHlbUFNLX01BWF9JREVOVElUWV9MRU5dOworLQkJCS8qIFRoZSBjYWxsYmFjayBuZWVkcyBQU0tfTUFYX0lERU5USVRZX0xFTiArIDEgYnl0ZXMKKy0JCQkgKiB0byByZXR1cm4gYSBcMC10ZXJtaW5hdGVkIGlkZW50aXR5LiBUaGUgbGFzdCBieXRlCistCQkJICogaXMgZm9yIHVzIGZvciBzaW11bGF0aW5nIHN0cm5sZW4uICovCistCQkJY2hhciBpZGVudGl0eVtQU0tfTUFYX0lERU5USVRZX0xFTiArIDJdOworLQkJCXNpemVfdCBpZGVudGl0eV9sZW47CiAtCQkJdW5zaWduZWQgY2hhciAqdCA9IE5VTEw7CiAtCQkJdW5zaWduZWQgY2hhciBwc2tfb3JfcHJlX21zW1BTS19NQVhfUFNLX0xFTioyKzRdOwogLQkJCXVuc2lnbmVkIGludCBwcmVfbXNfbGVuID0gMCwgcHNrX2xlbiA9IDA7CkBAIC00NDksOCArNDc1LDkgQEAKIC0JCQkJZ290byBlcnI7CiAtCQkJCX0KIC0KKy0JCQltZW1zZXQoaWRlbnRpdHksIDAsIHNpemVvZihpZGVudGl0eSkpOwogLQkJCXBza19sZW4gPSBzLT5wc2tfY2xpZW50X2NhbGxiYWNrKHMsIHMtPmN0eC0+cHNrX2lkZW50aXR5X2hpbnQsCi0tCQkJCWlkZW50aXR5LCBQU0tfTUFYX0lERU5USVRZX0xFTiwKKy0JCQkJaWRlbnRpdHksIHNpemVvZihpZGVudGl0eSkgLSAxLAogLQkJCQlwc2tfb3JfcHJlX21zLCBzaXplb2YocHNrX29yX3ByZV9tcykpOwogLQkJCWlmIChwc2tfbGVuID4gUFNLX01BWF9QU0tfTEVOKQogLQkJCQl7CkBAIC00NjQsNyArNDkxLDE0IEBACiAtCQkJCQlTU0xfUl9QU0tfSURFTlRJVFlfTk9UX0ZPVU5EKTsKIC0JCQkJZ290byBwc2tfZXJyOwogLQkJCQl9Ci0tCistCQkJaWRlbnRpdHlbUFNLX01BWF9JREVOVElUWV9MRU4gKyAxXSA9ICdcMCc7CistCQkJaWRlbnRpdHlfbGVuID0gc3RybGVuKGlkZW50aXR5KTsKKy0JCQlpZiAoaWRlbnRpdHlfbGVuID4gUFNLX01BWF9JREVOVElUWV9MRU4pCistCQkJCXsKKy0JCQkJU1NMZXJyKFNTTF9GX1NTTDNfU0VORF9DTElFTlRfS0VZX0VYQ0hBTkdFLAorLQkJCQkJRVJSX1JfSU5URVJOQUxfRVJST1IpOworLQkJCQlnb3RvIHBza19lcnI7CistCQkJCX0KIC0JCQkvKiBjcmVhdGUgUFNLIHByZV9tYXN0ZXJfc2VjcmV0ICovCiAtCQkJcHJlX21zX2xlbiA9IDIrcHNrX2xlbisyK3Bza19sZW47CiAtCQkJdCA9IHBza19vcl9wcmVfbXM7CkBAIC00OTgsMTQgKzUzMiwxMyBAQAogLQkJCXMtPnNlc3Npb24tPm1hc3Rlcl9rZXlfbGVuZ3RoID0KIC0JCQkJcy0+bWV0aG9kLT5zc2wzX2VuYy0+Z2VuZXJhdGVfbWFzdGVyX3NlY3JldChzLAogLQkJCQkJcy0+c2Vzc2lvbi0+bWFzdGVyX2tleSwKLS0JCQkJCXBza19vcl9wcmVfbXMsIHByZV9tc19sZW4pOyAKLS0JCQluID0gc3RybGVuKGlkZW50aXR5KTsKLS0JCQlzMm4obiwgcCk7Ci0tCQkJbWVtY3B5KHAsIGlkZW50aXR5LCBuKTsKLS0JCQluKz0yOworLQkJCQkJcHNrX29yX3ByZV9tcywgcHJlX21zX2xlbik7CistCQkJczJuKGlkZW50aXR5X2xlbiwgcCk7CistCQkJbWVtY3B5KHAsIGlkZW50aXR5LCBpZGVudGl0eV9sZW4pOworLQkJCW4gPSAyICsgaWRlbnRpdHlfbGVuOwogLQkJCXBza19lcnIgPSAwOwogLQkJcHNrX2VycjoKLS0JCQlPUEVOU1NMX2NsZWFuc2UoaWRlbnRpdHksIFBTS19NQVhfSURFTlRJVFlfTEVOKTsKKy0JCQlPUEVOU1NMX2NsZWFuc2UoaWRlbnRpdHksIHNpemVvZihpZGVudGl0eSkpOwogLQkJCU9QRU5TU0xfY2xlYW5zZShwc2tfb3JfcHJlX21zLCBzaXplb2YocHNrX29yX3ByZV9tcykpOwogLQkJCWlmIChwc2tfZXJyICE9IDApCiAtCQkJCXsKQEAgLTUxOSwxNSArNTUyLDYgQEAKICAJCQl7CiAgCQkJc3NsM19zZW5kX2FsZXJ0KHMsIFNTTDNfQUxfRkFUQUwsCiAgCQkJICAgIFNTTF9BRF9IQU5EU0hBS0VfRkFJTFVSRSk7Ci1AQCAtMzI3NCw3ICszMzMyLDcgQEAgaW50IHNzbDNfY2hlY2tfY2VydF9hbmRfYWxnb3JpdGhtKFNTTCAqcykKLSAJYWxnX2E9cy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fYXV0aDsKLSAKLSAJLyogd2UgZG9uJ3QgaGF2ZSBhIGNlcnRpZmljYXRlICovCi0tCWlmICgoYWxnX2EgJiAoU1NMX2FESHxTU0xfYU5VTEx8U1NMX2FLUkI1KSkgfHwgKGFsZ19rICYgU1NMX2tQU0spKQotKwlpZiAoKGFsZ19hICYgKFNTTF9hREh8U1NMX2FOVUxMfFNTTF9hS1JCNSkpIHx8ICgoYWxnX2EgJiBTU0xfYVBTSykgJiYgIShhbGdfayAmIFNTTF9rUlNBKSkpCi0gCQlyZXR1cm4oMSk7Ci0gCi0gCXNjPXMtPnNlc3Npb24tPnNlc3NfY2VydDsKIGRpZmYgLS1naXQgYS9zc2wvczNfZW5jLmMgYi9zc2wvczNfZW5jLmMKIGluZGV4IDYzNThlMWIuLjBkYWM3ZTcgMTAwNjQ0CiAtLS0gYS9zc2wvczNfZW5jLmMKQEAgLTYwOSwxOCArNjMzLDE3IEBACiAgCXZvaWQgKCpjYikoY29uc3QgU1NMICpzc2wsaW50IHR5cGUsaW50IHZhbCk9TlVMTDsKICAJaW50IHJldD0gLTE7CiAgCWludCBuZXdfc3RhdGUsc3RhdGUsc2tpcD0wOwotQEAgLTQxOCw5ICs0MTksMTEgQEAgaW50IHNzbDNfYWNjZXB0KFNTTCAqcykKK0BAIC00MTgsOCArNDE5LDEwIEBAIGludCBzc2wzX2FjY2VwdChTU0wgKnMpCiAgCQljYXNlIFNTTDNfU1RfU1dfQ0VSVF9BOgogIAkJY2FzZSBTU0wzX1NUX1NXX0NFUlRfQjoKICAJCQkvKiBDaGVjayBpZiBpdCBpcyBhbm9uIERIIG9yIGFub24gRUNESCwgKi8KIC0JCQkvKiBub3JtYWwgUFNLIG9yIEtSQjUgb3IgU1JQICovCiArCQkJLyogbm9uLVJTQSBQU0sgb3IgS1JCNSBvciBTUlAgKi8KLSAJCQlpZiAoIShzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9hdXRoICYgU1NMX2FOVUxMKQotLQkJCQkmJiAhKHMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX21rZXkgJiBTU0xfa1BTSykKKyAJCQlpZiAoIShzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9hdXRoICYgKFNTTF9hTlVMTHxTU0xfYUtSQjV8U1NMX2FTUlApKQorLQkJCQkmJiAhKHMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX21rZXkgJiBTU0xfa1BTSykpCiArCQkJCS8qIEFtb25nIFBTSyBjaXBoZXJzdWl0ZXMgb25seSBSU0FfUFNLIHVzZXMgc2VydmVyIGNlcnRpZmljYXRlICovCiArCQkJCSYmICEocy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fYXV0aCAmIFNTTF9hUFNLICYmCi0rCQkJCQkgIShzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9ta2V5ICYgU1NMX2tSU0EpKQotIAkJCQkmJiAhKHMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX2F1dGggJiBTU0xfYUtSQjUpKQorKwkJCQkJICEocy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fbWtleSAmIFNTTF9rUlNBKSkpCiAgCQkJCXsKICAJCQkJcmV0PXNzbDNfc2VuZF9zZXJ2ZXJfY2VydGlmaWNhdGUocyk7CiBAQCAtNDQ5LDYgKzQ1Miw3IEBAIGludCBzc2wzX2FjY2VwdChTU0wgKnMpCkBAIC03NjAsOSArNzgzLDkgQEAKICAJCQluKz0yK25yW2ldOwogIAkJCX0KICAKLS0JCWlmICghKHMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX2F1dGggJiBTU0xfYU5VTEwpCistCQlpZiAoIShzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9hdXRoICYgKFNTTF9hTlVMTHxTU0xfYVNSUCkpCiAtCQkJJiYgIShzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9ta2V5ICYgU1NMX2tQU0spKQotKwkJaWYgKCEoYWxnX2EgJiBTU0xfYU5VTEwpCisrCQlpZiAoIShhbGdfYSAmIChTU0xfYU5VTEx8U1NMX2FTUlApKQogKwkJCS8qIEFtb25nIFBTSyBjaXBoZXJzdWl0ZXMgb25seSBSU0EgdXNlcyBhIGNlcnRpZmljYXRlICovCiArCQkJJiYgISgoYWxnX2EgJiBTU0xfYVBTSykgJiYgIShhbGdfayAmIFNTTF9rUlNBKSkpCiAgCQkJewpAQCAtMTAyNCw3ICsxMDQ3LDcgQEAKICAJCQlwICs9IDE7CiAgCQkJaWYgKG4gIT0gMSArIGkpCiAgCQkJCXsKLUBAIC0yODE0LDIxNCArMjk0MCwxNDUgQEAgaW50IHNzbDNfZ2V0X2NsaWVudF9rZXlfZXhjaGFuZ2UoU1NMICpzKQorQEAgLTI4MTQsMjIxICsyOTQwLDE0NSBAQCBpbnQgc3NsM19nZXRfY2xpZW50X2tleV9leGNoYW5nZShTU0wgKnMpCiAgCQlFQ19LRVlfZnJlZShzcnZyX2VjZGgpOwogIAkJQk5fQ1RYX2ZyZWUoYm5fY3R4KTsKICAJCUVDX0tFWV9mcmVlKHMtPnMzLT50bXAuZWNkaCk7CkBAIC0xMTczLDYgKzExOTYsMTMgQEAKIC0JCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0NMSUVOVF9LRVlfRVhDSEFOR0UsRVJSX1JfQk5fTElCKTsKIC0JCQkJZ290byBlcnI7CiAtCQkJCX0KKy0JCQlpZiAoQk5fdWNtcChzLT5zcnBfY3R4LkEsIHMtPnNycF9jdHguTikgPj0gMAorLQkJCQl8fCBCTl9pc196ZXJvKHMtPnNycF9jdHguQSkpCistCQkJCXsKKy0JCQkJYWw9U1NMX0FEX0lMTEVHQUxfUEFSQU1FVEVSOworLQkJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfQ0xJRU5UX0tFWV9FWENIQU5HRSxTU0xfUl9CQURfU1JQX1BBUkFNRVRFUlMpOworLQkJCQlnb3RvIGZfZXJyOworLQkJCQl9CiAtCQkJaWYgKHMtPnNlc3Npb24tPnNycF91c2VybmFtZSAhPSBOVUxMKQogLQkJCQlPUEVOU1NMX2ZyZWUocy0+c2Vzc2lvbi0+c3JwX3VzZXJuYW1lKTsKIC0JCQlzLT5zZXNzaW9uLT5zcnBfdXNlcm5hbWUgPSBCVUZfc3RyZHVwKHMtPnNycF9jdHgubG9naW4pOwpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy8wMDEzLXRsc19wc2tfaGludC5wYXRjaCBiL3BhdGNoZXMvMDAxMy10bHNfcHNrX2hpbnQucGF0Y2gKaW5kZXggNDc0NmI3OC4uZTkyMzdlYiAxMDA2NDQKLS0tIGEvcGF0Y2hlcy8wMDEzLXRsc19wc2tfaGludC5wYXRjaAorKysgYi9wYXRjaGVzLzAwMTMtdGxzX3Bza19oaW50LnBhdGNoCkBAIC0xMzgsOSArMTM4LDkgQEAKICAjZW5kaWYKICAJCXMtPnMzLT50bXAucmV1c2VfbWVzc2FnZT0xOwogQEAgLTE0MjYsNyArMTQyOCwxMSBAQCBpbnQgc3NsM19nZXRfa2V5X2V4Y2hhbmdlKFNTTCAqcykKLSAJCWFsPVNTTF9BRF9IQU5EU0hBS0VfRkFJTFVSRTsKLSAJCW4ycyhwLGkpOwotIAkJcGFyYW1fbGVuPWkrMjsKKwkJCX0KKwkJbjJzKHAsaSk7CisKIC0JCXMtPmN0eC0+cHNrX2lkZW50aXR5X2hpbnQgPSBOVUxMOwogKwkJaWYgKHMtPnNlc3Npb24tPnBza19pZGVudGl0eV9oaW50KQogKwkJCXsKQEAgLTE2MywxMyArMTYzLDE0IEBACiAgCQkJCXsKICAJCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSwgRVJSX1JfTUFMTE9DX0ZBSUxVUkUpOwogIAkJCQlnb3RvIGZfZXJyOwotQEAgLTIzMzgsNyArMjM0Miw3IEBAIGludCBzc2wzX3NlbmRfY2xpZW50X2tleV9leGNoYW5nZShTU0wgKnMpCitAQCAtMjMzOCw3ICsyMzQyLDggQEAgaW50IHNzbDNfc2VuZF9jbGllbnRfa2V5X2V4Y2hhbmdlKFNTTCAqcykKICAJCQkJZ290byBlcnI7CiAgCQkJCX0KICAKKysJCQltZW1zZXQoaWRlbnRpdHksIDAsIHNpemVvZihpZGVudGl0eSkpOwogLQkJCXBza19sZW4gPSBzLT5wc2tfY2xpZW50X2NhbGxiYWNrKHMsIHMtPmN0eC0+cHNrX2lkZW50aXR5X2hpbnQsCiArCQkJcHNrX2xlbiA9IHMtPnBza19jbGllbnRfY2FsbGJhY2socywgcy0+c2Vzc2lvbi0+cHNrX2lkZW50aXR5X2hpbnQsCi0gCQkJCWlkZW50aXR5LCBQU0tfTUFYX0lERU5USVRZX0xFTiwgcHNrLCBzaXplb2YocHNrKSk7CisJCQkJaWRlbnRpdHksIHNpemVvZihpZGVudGl0eSAtIDEpLCBwc2ssIHNpemVvZihwc2spKTsKICAJCQlpZiAocHNrX2xlbiA+IFBTS19NQVhfUFNLX0xFTikKICAJCQkJewogQEAgLTIzNzQsMjEgKzIzNzgsNiBAQCBpbnQgc3NsM19zZW5kX2NsaWVudF9rZXlfZXhjaGFuZ2UoU1NMICpzKQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy8wMDE1LXBza19jbGllbnRfY2FsbGJhY2tfMTI4X2J5dGVfaWRfYnVnLnBhdGNoIGIvcGF0Y2hlcy8wMDE1LXBza19jbGllbnRfY2FsbGJhY2tfMTI4X2J5dGVfaWRfYnVnLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYjA2ZTcxLi4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvMDAxNS1wc2tfY2xpZW50X2NhbGxiYWNrXzEyOF9ieXRlX2lkX2J1Zy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDgxICswLDAgQEAKLUZyb20gYzhiMWY3ZWM1NjcwNGMxMTE2Nzk1YWVjOWNhNjFkYjY1NGI0MzNiZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFsZXggS2x5dWJpbiA8a2x5dWJpbkBnb29nbGUuY29tPgotRGF0ZTogTW9uLCAxOSBNYXkgMjAxNCAxMToyNzozMyAtMDcwMAotU3ViamVjdDogcHNrX2NsaWVudF9jYWxsYmFjaywgMTI4LWJ5dGUgaWQgYnVnLgotCi1GaXggYSBidWcgaW4gaGFuZGxpbmcgb2YgMTI4IGJ5dGUgbG9uZyBQU0sgaWRlbnRpdHkgaW4KLXBza19jbGllbnRfY2FsbGJhY2suCi0KLU9wZW5TU0wgc3VwcG9ydHMgUFNLIGlkZW50aXRpZXMgb2YgdXAgdG8gKGFuZCBpbmNsdWRpbmcpIDEyOCBieXRlcyBpbgotbGVuZ3RoLiBQU0sgaWRlbnRpdHkgaXMgb2J0YWluZWQgdmlhIHRoZSBwc2tfY2xpZW50X2NhbGxiYWNrLAotaW1wbGVtZW50b3JzIG9mIHdoaWNoIGFyZSBleHBlY3RlZCB0byBwcm92aWRlIGEgTlVMTC10ZXJtaW5hdGVkCi1pZGVudGl0eS4gSG93ZXZlciwgdGhlIGNhbGxiYWNrIGlzIGludm9rZWQgd2l0aCBvbmx5IDEyOCBieXRlcyBvZgotc3RvcmFnZSB0aHVzIG1ha2luZyBpdCBpbXBvc3NpYmxlIHRvIHJldHVybiBhIDEyOCBieXRlIGxvbmcgaWRlbnRpdHkgYW5kCi10aGUgcmVxdWlyZWQgYWRkaXRpb25hbCBOVUxMIGJ5dGUuCi0KLVRoaXMgQ0wgZml4ZXMgdGhlIGlzc3VlIGJ5IHBhc3NpbmcgaW4gYSAxMjkgYnl0ZSBsb25nIGJ1ZmZlciBpbnRvIHRoZQotcHNrX2NsaWVudF9jYWxsYmFjay4gQXMgYSBzYWZldHkgcHJlY2F1dGlvbiwgdGhpcyBDTCBhbHNvIHplcm9lcyBvdXQgdGhlCi1idWZmZXIgYmVmb3JlIHBhc3NpbmcgaXQgaW50byB0aGUgY2FsbGJhY2ssIHVzZXMgc3RybmxlbiBmb3Igb2J0YWluaW5nCi10aGUgbGVuZ3RoIG9mIHRoZSBpZGVudGl0eSByZXR1cm5lZCBieSB0aGUgY2FsbGJhY2ssIGFuZCBhYm9ydHMgdGhlCi1oYW5kc2hha2UgaWYgdGhlIGlkZW50aXR5ICh3aXRob3V0IHRoZSBOVUxMIHRlcm1pbmF0b3IpIGlzIGxvbmdlciB0aGFuCi0xMjggYnl0ZXMuCi0tLS0KLSBzc2wvczNfY2xudC5jIHwgMjAgKysrKysrKysrKysrKystLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NzbC9zM19jbG50LmMgYi9zc2wvczNfY2xudC5jCi1pbmRleCAwM2I5NmU4Li4wZTIyYWZjIDEwMDY0NAotLS0tIGEvc3NsL3MzX2NsbnQuYwotKysrIGIvc3NsL3MzX2NsbnQuYwotQEAgLTIzMjgsNyArMjMyOCw4IEBAIGludCBzc2wzX3NlbmRfY2xpZW50X2tleV9leGNoYW5nZShTU0wgKnMpCi0gI2lmbmRlZiBPUEVOU1NMX05PX1BTSwotIAkJaWYgKGFsZ19hICYgU1NMX2FQU0spCi0gCQkJewotLQkJCWNoYXIgaWRlbnRpdHlbUFNLX01BWF9JREVOVElUWV9MRU5dOwotKwkJCWNoYXIgaWRlbnRpdHlbUFNLX01BWF9JREVOVElUWV9MRU4gKyAxXTsKLSsJCQlzaXplX3QgaWRlbnRpdHlfbGVuOwotIAkJCXVuc2lnbmVkIGNoYXIgKnQgPSBOVUxMOwotIAkJCXVuc2lnbmVkIGNoYXIgcHJlX21zW1BTS19NQVhfUFNLX0xFTioyKzRdOwotIAkJCXVuc2lnbmVkIGludCBwcmVfbXNfbGVuID0gMDsKLUBAIC0yMzQyLDggKzIzNDMsOSBAQCBpbnQgc3NsM19zZW5kX2NsaWVudF9rZXlfZXhjaGFuZ2UoU1NMICpzKQotIAkJCQlnb3RvIGVycjsKLSAJCQkJfQotIAotKwkJCW1lbXNldChpZGVudGl0eSwgMCwgc2l6ZW9mKGlkZW50aXR5KSk7Ci0gCQkJcHNrX2xlbiA9IHMtPnBza19jbGllbnRfY2FsbGJhY2socywgcy0+c2Vzc2lvbi0+cHNrX2lkZW50aXR5X2hpbnQsCi0tCQkJCWlkZW50aXR5LCBQU0tfTUFYX0lERU5USVRZX0xFTiwgcHNrLCBzaXplb2YocHNrKSk7Ci0rCQkJCWlkZW50aXR5LCBzaXplb2YoaWRlbnRpdHkpLCBwc2ssIHNpemVvZihwc2spKTsKLSAJCQlpZiAocHNrX2xlbiA+IFBTS19NQVhfUFNLX0xFTikKLSAJCQkJewotIAkJCQlTU0xlcnIoU1NMX0ZfU1NMM19TRU5EX0NMSUVOVF9LRVlfRVhDSEFOR0UsCi1AQCAtMjM1Niw2ICsyMzU4LDEzIEBAIGludCBzc2wzX3NlbmRfY2xpZW50X2tleV9leGNoYW5nZShTU0wgKnMpCi0gCQkJCQlTU0xfUl9QU0tfSURFTlRJVFlfTk9UX0ZPVU5EKTsKLSAJCQkJZ290byBwc2tfZXJyOwotIAkJCQl9Ci0rCQkJaWRlbnRpdHlfbGVuID0gc3RybmxlbihpZGVudGl0eSwgc2l6ZW9mKGlkZW50aXR5KSk7Ci0rCQkJaWYgKGlkZW50aXR5X2xlbiA+IFBTS19NQVhfSURFTlRJVFlfTEVOKQotKwkJCQl7Ci0rCQkJCVNTTGVycihTU0xfRl9TU0wzX1NFTkRfQ0xJRU5UX0tFWV9FWENIQU5HRSwKLSsJCQkJCUVSUl9SX0lOVEVSTkFMX0VSUk9SKTsKLSsJCQkJZ290byBwc2tfZXJyOwotKwkJCQl9Ci0gCi0gCQkJaWYgKCEoYWxnX2sgJiBTU0xfa0VFQ0RIKSkKLSAJCQkJewotQEAgLTIzNzIsMTAgKzIzODEsOSBAQCBpbnQgc3NsM19zZW5kX2NsaWVudF9rZXlfZXhjaGFuZ2UoU1NMICpzKQotIAkJCQkJcy0+bWV0aG9kLT5zc2wzX2VuYy0+Z2VuZXJhdGVfbWFzdGVyX3NlY3JldChzLAotIAkJCQkJCXMtPnNlc3Npb24tPm1hc3Rlcl9rZXksCi0gCQkJCQkJcHJlX21zLCBwcmVfbXNfbGVuKTsKLS0JCQkJbiA9IHN0cmxlbihpZGVudGl0eSk7Ci0tCQkJCXMybihuLCBwKTsKLS0JCQkJbWVtY3B5KHAsIGlkZW50aXR5LCBuKTsKLS0JCQkJbiArPSAyOwotKwkJCQlzMm4oaWRlbnRpdHlfbGVuLCBwKTsKLSsJCQkJbWVtY3B5KHAsIGlkZW50aXR5LCBpZGVudGl0eV9sZW4pOwotKwkJCQluID0gMiArIGlkZW50aXR5X2xlbjsKLSAJCQkJfQotIAotIAkJCWlmIChzLT5zZXNzaW9uLT5wc2tfaWRlbnRpdHkgIT0gTlVMTCkKLS0tIAotMi4wLjAuNTI2Lmc1MzE4MzM2Ci0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvMDAxOC10bHNfZmFsbGJhY2tfc2Nzdi5wYXRjaCBiL3BhdGNoZXMvMDAxOC10bHNfZmFsbGJhY2tfc2Nzdi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTYxYzg5NC4uMDAwMDAwMAotLS0gYS9wYXRjaGVzLzAwMTgtdGxzX2ZhbGxiYWNrX3Njc3YucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NzYgKzAsMCBAQAotRnJvbSBmN2EwNjdkNzQzYjdjYzY1OTc5Njc4YWMxNTE5MGIzMzQzNTI3MTZhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQm9kbyBNb2VsbGVyIDxibW9lbGxlckBnb29nbGUuY29tPgotRGF0ZTogVGh1LCAyIE9jdCAyMDE0IDE1OjQ3OjQ0ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciBUTFNfRkFMTEJBQ0tfU0NTVi4KLQotQ2hhbmdlLUlkOiBJNTY2MjZiMTI0MDdmMTllN2VkNDhhNjgwYjU5NmUyYjJjN2I0NmRlMQotLS0tCi0gYXBwcy9zX2NsaWVudC5jICAgICAgICAgfCAxMCArKysrKysrKysKLSBjcnlwdG8vZXJyL29wZW5zc2wuZWMgICB8ICAxICsKLSBpbmNsdWRlL29wZW5zc2wvZHRsczEuaCB8ICAzICsrLQotIGluY2x1ZGUvb3BlbnNzbC9zc2wuaCAgIHwgMTAgKysrKysrKysrCi0gaW5jbHVkZS9vcGVuc3NsL3NzbDMuaCAgfCAgNyArKysrKy0KLSBpbmNsdWRlL29wZW5zc2wvdGxzMS5oICB8IDE1ICsrKysrKysrLS0tLS0KLSBzc2wvZDFfbGliLmMgICAgICAgICAgICB8IDEwICsrKysrKysrKwotIHNzbC9kdGxzMS5oICAgICAgICAgICAgIHwgIDMgKystCi0gc3NsL3MyM19jbG50LmMgICAgICAgICAgfCAgMyArKysKLSBzc2wvczIzX3NydnIuYyAgICAgICAgICB8ICAzICsrKwotIHNzbC9zMl9saWIuYyAgICAgICAgICAgIHwgIDIgKysKLSBzc2wvczNfZW5jLmMgICAgICAgICAgICB8ICAyICstCi0gc3NsL3MzX2xpYi5jICAgICAgICAgICAgfCAyOSArKysrKysrKysrKysrKysrKysrKysrKystCi0gc3NsL3NzbC5oICAgICAgICAgICAgICAgfCAxMCArKysrKysrKysKLSBzc2wvc3NsMy5oICAgICAgICAgICAgICB8ICA3ICsrKysrLQotIHNzbC9zc2xfZXJyLmMgICAgICAgICAgIHwgIDIgKysKLSBzc2wvc3NsX2xpYi5jICAgICAgICAgICB8IDU4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KLSBzc2wvdDFfZW5jLmMgICAgICAgICAgICB8ICAxICsKLSBzc2wvdGxzMS5oICAgICAgICAgICAgICB8IDE1ICsrKysrKysrLS0tLS0KLSAxOSBmaWxlcyBjaGFuZ2VkLCAxNTkgaW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9hcHBzL3NfY2xpZW50LmMgYi9hcHBzL3NfY2xpZW50LmMKLWluZGV4IDBjNzA1ODAuLjI5OWZhY2QgMTAwNjQ0Ci0tLS0gYS9hcHBzL3NfY2xpZW50LmMKLSsrKyBiL2FwcHMvc19jbGllbnQuYwotQEAgLTMzNSw2ICszMzUsNyBAQCBzdGF0aWMgdm9pZCBzY191c2FnZSh2b2lkKQotIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtdGxzMV8xICAgICAgIC0ganVzdCB1c2UgVExTdjEuMVxuIik7Ci0gCUJJT19wcmludGYoYmlvX2VyciwiIC10bHMxICAgICAgICAgLSBqdXN0IHVzZSBUTFN2MVxuIik7Ci0gCUJJT19wcmludGYoYmlvX2VyciwiIC1kdGxzMSAgICAgICAgLSBqdXN0IHVzZSBEVExTdjFcbiIpOyAgICAKLSsJQklPX3ByaW50ZihiaW9fZXJyLCIgLWZhbGxiYWNrX3Njc3YgLSBzZW5kIFRMU19GQUxMQkFDS19TQ1NWXG4iKTsKLSAJQklPX3ByaW50ZihiaW9fZXJyLCIgLW10dSAgICAgICAgICAtIHNldCB0aGUgbGluayBsYXllciBNVFVcbiIpOwotIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtbm9fdGxzMV8yLy1ub190bHMxXzEvLW5vX3RsczEvLW5vX3NzbDMvLW5vX3NzbDIgLSB0dXJuIG9mZiB0aGF0IHByb3RvY29sXG4iKTsKLSAJQklPX3ByaW50ZihiaW9fZXJyLCIgLWJ1Z3MgICAgICAgICAtIFN3aXRjaCBvbiBhbGwgU1NMIGltcGxlbWVudGF0aW9uIGJ1ZyB3b3JrYXJvdW5kc1xuIik7Ci1AQCAtNjIxLDYgKzYyMiw3IEBAIGludCBNQUlOKGludCBhcmdjLCBjaGFyICoqYXJndikKLSAJY2hhciAqc2Vzc19vdXQgPSBOVUxMOwotIAlzdHJ1Y3Qgc29ja2FkZHIgcGVlcjsKLSAJaW50IHBlZXJsZW4gPSBzaXplb2YocGVlcik7Ci0rCWludCBmYWxsYmFja19zY3N2ID0gMDsKLSAJaW50IGVuYWJsZV90aW1lb3V0cyA9IDAgOwotIAlsb25nIHNvY2tldF9tdHUgPSAwOwotICNpZm5kZWYgT1BFTlNTTF9OT19KUEFLRQotQEAgLTgyNyw2ICs4MjksMTAgQEAgaW50IE1BSU4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIAkJCW1ldGg9RFRMU3YxX2NsaWVudF9tZXRob2QoKTsKLSAJCQlzb2NrZXRfdHlwZT1TT0NLX0RHUkFNOwotIAkJCX0KLSsJCWVsc2UgaWYgKHN0cmNtcCgqYXJndiwiLWZhbGxiYWNrX3Njc3YiKSA9PSAwKQotKwkJCXsKLSsJCQlmYWxsYmFja19zY3N2ID0gMTsKLSsJCQl9Ci0gCQllbHNlIGlmIChzdHJjbXAoKmFyZ3YsIi10aW1lb3V0IikgPT0gMCkKLSAJCQllbmFibGVfdGltZW91dHM9MTsKLSAJCWVsc2UgaWYgKHN0cmNtcCgqYXJndiwiLW10dSIpID09IDApCi1AQCAtMTI3Myw2ICsxMjc5LDEwIEBAIGJhZDoKLSAJCVNTTF9zZXRfc2Vzc2lvbihjb24sIHNlc3MpOwotIAkJU1NMX1NFU1NJT05fZnJlZShzZXNzKTsKLSAJCX0KLSsKLSsJaWYgKGZhbGxiYWNrX3Njc3YpCi0rCQlTU0xfc2V0X21vZGUoY29uLCBTU0xfTU9ERV9TRU5EX0ZBTExCQUNLX1NDU1YpOwotKwotICNpZm5kZWYgT1BFTlNTTF9OT19UTFNFWFQKLSAJaWYgKHNlcnZlcm5hbWUgIT0gTlVMTCkKLSAJCXsKLWRpZmYgLS1naXQgYS9jcnlwdG8vZXJyL29wZW5zc2wuZWMgYi9jcnlwdG8vZXJyL29wZW5zc2wuZWMKLWluZGV4IGUwNTU0YjQuLjM0NzU0ZTUgMTAwNjQ0Ci0tLS0gYS9jcnlwdG8vZXJyL29wZW5zc2wuZWMKLSsrKyBiL2NyeXB0by9lcnIvb3BlbnNzbC5lYwotQEAgLTcxLDYgKzcxLDcgQEAgUiBTU0xfUl9UTFNWMV9BTEVSVF9FWFBPUlRfUkVTVFJJQ1RJT04JCTEwNjAKLSBSIFNTTF9SX1RMU1YxX0FMRVJUX1BST1RPQ09MX1ZFUlNJT04JCTEwNzAKLSBSIFNTTF9SX1RMU1YxX0FMRVJUX0lOU1VGRklDSUVOVF9TRUNVUklUWQkxMDcxCi0gUiBTU0xfUl9UTFNWMV9BTEVSVF9JTlRFUk5BTF9FUlJPUgkJMTA4MAotK1IgU1NMX1JfU1NMVjNfQUxFUlRfSU5BUFBST1BSSUFURV9GQUxMQkFDSwkxMDg2Ci0gUiBTU0xfUl9UTFNWMV9BTEVSVF9VU0VSX0NBTkNFTExFRAkJMTA5MAotIFIgU1NMX1JfVExTVjFfQUxFUlRfTk9fUkVORUdPVElBVElPTgkJMTEwMAotIFIgU1NMX1JfVExTVjFfVU5TVVBQT1JURURfRVhURU5TSU9OCQkxMTEwCi1kaWZmIC0tZ2l0IGEvc3NsL2QxX2xpYi5jIGIvc3NsL2QxX2xpYi5jCi1pbmRleCA2YmRlMTZmLi44MmNhNjUzIDEwMDY0NAotLS0tIGEvc3NsL2QxX2xpYi5jCi0rKysgYi9zc2wvZDFfbGliLmMKLUBAIC0yNjYsNiArMjY2LDE2IEBAIGxvbmcgZHRsczFfY3RybChTU0wgKnMsIGludCBjbWQsIGxvbmcgbGFyZywgdm9pZCAqcGFyZykKLSAJY2FzZSBEVExTX0NUUkxfTElTVEVOOgotIAkJcmV0ID0gZHRsczFfbGlzdGVuKHMsIHBhcmcpOwotIAkJYnJlYWs7Ci0rCWNhc2UgU1NMX0NUUkxfQ0hFQ0tfUFJPVE9fVkVSU0lPTjoKLSsJCS8qIEZvciBsaWJyYXJ5LWludGVybmFsIHVzZTsgY2hlY2tzIHRoYXQgdGhlIGN1cnJlbnQgcHJvdG9jb2wKLSsJCSAqIGlzIHRoZSBoaWdoZXN0IGVuYWJsZWQgdmVyc2lvbiAoYWNjb3JkaW5nIHRvIHMtPmN0eC0+bWV0aG9kLAotKwkJICogYXMgdmVyc2lvbiBuZWdvdGlhdGlvbiBtYXkgaGF2ZSBjaGFuZ2VkIHMtPm1ldGhvZCkuICovCi0rI2lmIERUTFNfTUFYX1ZFUlNJT04gIT0gRFRMUzFfVkVSU0lPTgotKyMgIGVycm9yIENvZGUgbmVlZHMgdXBkYXRlIGZvciBEVExTX21ldGhvZCgpIHN1cHBvcnQgYmV5b25kIERUTFMxX1ZFUlNJT04uCi0rI2VuZGlmCi0rCQkvKiBKdXN0IG9uZSBwcm90b2NvbCB2ZXJzaW9uIGlzIHN1cHBvcnRlZCBzbyBmYXI7Ci0rCQkgKiBmYWlsIGNsb3NlZCBpZiB0aGUgdmVyc2lvbiBpcyBub3QgYXMgZXhwZWN0ZWQuICovCi0rCQlyZXR1cm4gcy0+dmVyc2lvbiA9PSBEVExTX01BWF9WRVJTSU9OOwotIAotIAlkZWZhdWx0OgotIAkJcmV0ID0gc3NsM19jdHJsKHMsIGNtZCwgbGFyZywgcGFyZyk7Ci1kaWZmIC0tZ2l0IGEvc3NsL2R0bHMxLmggYi9zc2wvZHRsczEuaAotaW5kZXggZTY1ZDUwMS4uMTkyYzVkZSAxMDA2NDQKLS0tLSBhL3NzbC9kdGxzMS5oCi0rKysgYi9zc2wvZHRsczEuaAotQEAgLTg0LDYgKzg0LDggQEAgZXh0ZXJuICJDIiB7Ci0gI2VuZGlmCi0gCi0gI2RlZmluZSBEVExTMV9WRVJTSU9OCQkJMHhGRUZGCi0rI2RlZmluZSBEVExTX01BWF9WRVJTSU9OCQlEVExTMV9WRVJTSU9OCi0rCi0gI2RlZmluZSBEVExTMV9CQURfVkVSCQkJMHgwMTAwCi0gCi0gI2lmIDAKLUBAIC0yODQsNCArMjg2LDMgQEAgdHlwZWRlZiBzdHJ1Y3QgZHRsczFfcmVjb3JkX2RhdGFfc3QKLSB9Ci0gI2VuZGlmCi0gI2VuZGlmCi0tCi1kaWZmIC0tZ2l0IGEvc3NsL3MyM19jbG50LmMgYi9zc2wvczIzX2NsbnQuYwotaW5kZXggMmJjOTIxNC4uNDY3YWRmZSAxMDA2NDQKLS0tLSBhL3NzbC9zMjNfY2xudC5jCi0rKysgYi9zc2wvczIzX2NsbnQuYwotQEAgLTczNiw2ICs3MzYsOSBAQCBzdGF0aWMgaW50IHNzbDIzX2dldF9zZXJ2ZXJfaGVsbG8oU1NMICpzKQotIAkJCWdvdG8gZXJyOwotIAkJCX0KLSAKLSsJCS8qIGVuc3VyZSB0aGF0IFRMU19NQVhfVkVSU0lPTiBpcyB1cC10by1kYXRlICovCi0rCQlPUEVOU1NMX2Fzc2VydChzLT52ZXJzaW9uIDw9IFRMU19NQVhfVkVSU0lPTik7Ci0rCi0gCQlpZiAocFswXSA9PSBTU0wzX1JUX0FMRVJUICYmIHBbNV0gIT0gU1NMM19BTF9XQVJOSU5HKQotIAkJCXsKLSAJCQkvKiBmYXRhbCBhbGVydCAqLwotZGlmZiAtLWdpdCBhL3NzbC9zMjNfc3J2ci5jIGIvc3NsL3MyM19zcnZyLmMKLWluZGV4IDQ4Nzc4NDkuLjgyZDY4NjcgMTAwNjQ0Ci0tLS0gYS9zc2wvczIzX3NydnIuYwotKysrIGIvc3NsL3MyM19zcnZyLmMKLUBAIC00MjUsNiArNDI1LDkgQEAgaW50IHNzbDIzX2dldF9jbGllbnRfaGVsbG8oU1NMICpzKQotIAkJCX0KLSAJCX0KLSAKLSsJLyogZW5zdXJlIHRoYXQgVExTX01BWF9WRVJTSU9OIGlzIHVwLXRvLWRhdGUgKi8KLSsJT1BFTlNTTF9hc3NlcnQocy0+dmVyc2lvbiA8PSBUTFNfTUFYX1ZFUlNJT04pOwotKwotICNpZmRlZiBPUEVOU1NMX0ZJUFMKLSAJaWYgKEZJUFNfbW9kZSgpICYmIChzLT52ZXJzaW9uIDwgVExTMV9WRVJTSU9OKSkKLSAJCXsKLWRpZmYgLS1naXQgYS9zc2wvczJfbGliLmMgYi9zc2wvczJfbGliLmMKLWluZGV4IDk5MTQ2MDQuLmI5NjI0YjkgMTAwNjQ0Ci0tLS0gYS9zc2wvczJfbGliLmMKLSsrKyBiL3NzbC9zMl9saWIuYwotQEAgLTM5MSw2ICszOTEsOCBAQCBsb25nIHNzbDJfY3RybChTU0wgKnMsIGludCBjbWQsIGxvbmcgbGFyZywgdm9pZCAqcGFyZykKLSAJY2FzZSBTU0xfQ1RSTF9HRVRfU0VTU0lPTl9SRVVTRUQ6Ci0gCQlyZXQ9cy0+aGl0OwotIAkJYnJlYWs7Ci0rCWNhc2UgU1NMX0NUUkxfQ0hFQ0tfUFJPVE9fVkVSU0lPTjoKLSsJCXJldHVybiBzc2wzX2N0cmwocywgU1NMX0NUUkxfQ0hFQ0tfUFJPVE9fVkVSU0lPTiwgbGFyZywgcGFyZyk7Ci0gCWRlZmF1bHQ6Ci0gCQlicmVhazsKLSAJCX0KLWRpZmYgLS1naXQgYS9zc2wvczNfZW5jLmMgYi9zc2wvczNfZW5jLmMKLWluZGV4IDUzYjk0YjcuLjM1OTVjZmYgMTAwNjQ0Ci0tLS0gYS9zc2wvczNfZW5jLmMKLSsrKyBiL3NzbC9zM19lbmMuYwotQEAgLTg5MSw3ICs4OTEsNyBAQCBpbnQgc3NsM19hbGVydF9jb2RlKGludCBjb2RlKQotIAljYXNlIFNTTF9BRF9CQURfQ0VSVElGSUNBVEVfU1RBVFVTX1JFU1BPTlNFOiByZXR1cm4oU1NMM19BRF9IQU5EU0hBS0VfRkFJTFVSRSk7Ci0gCWNhc2UgU1NMX0FEX0JBRF9DRVJUSUZJQ0FURV9IQVNIX1ZBTFVFOiByZXR1cm4oU1NMM19BRF9IQU5EU0hBS0VfRkFJTFVSRSk7Ci0gCWNhc2UgU1NMX0FEX1VOS05PV05fUFNLX0lERU5USVRZOnJldHVybihUTFMxX0FEX1VOS05PV05fUFNLX0lERU5USVRZKTsKLSsJY2FzZSBTU0xfQURfSU5BUFBST1BSSUFURV9GQUxMQkFDSzpyZXR1cm4oVExTMV9BRF9JTkFQUFJPUFJJQVRFX0ZBTExCQUNLKTsKLSAJZGVmYXVsdDoJCQlyZXR1cm4oLTEpOwotIAkJfQotIAl9Ci0tCi1kaWZmIC0tZ2l0IGEvc3NsL3MzX2xpYi5jIGIvc3NsL3MzX2xpYi5jCi1pbmRleCA4OTZkMWUxLi45MTRlMTA4IDEwMDY0NAotLS0tIGEvc3NsL3MzX2xpYi5jCi0rKysgYi9zc2wvczNfbGliLmMKLUBAIC0zNDM5LDYgKzM0MzksMzMgQEAgbG9uZyBzbDNfY3RybChTU0wgKnMsIGludCBjbWQsIGxvbmcgbGFyZywgdm9pZCAqcGFyZykKLSAJCXJldHVybiA2NDsKLSAKLSAjZW5kaWYgLyogIU9QRU5TU0xfTk9fVExTRVhUICovCi0rCi0rCWNhc2UgU1NMX0NUUkxfQ0hFQ0tfUFJPVE9fVkVSU0lPTjoKLSsJCS8qIEZvciBsaWJyYXJ5LWludGVybmFsIHVzZTsgY2hlY2tzIHRoYXQgdGhlIGN1cnJlbnQgcHJvdG9jb2wKLSsJCSAqIGlzIHRoZSBoaWdoZXN0IGVuYWJsZWQgdmVyc2lvbiAoYWNjb3JkaW5nIHRvIHMtPmN0eC0+bWV0aG9kLAotKwkJICogYXMgdmVyc2lvbiBuZWdvdGlhdGlvbiBtYXkgaGF2ZSBjaGFuZ2VkIHMtPm1ldGhvZCkuICovCi0rCQlpZiAocy0+dmVyc2lvbiA9PSBzLT5jdHgtPm1ldGhvZC0+dmVyc2lvbikKLSsJCQlyZXR1cm4gMTsKLSsJCS8qIEFwcGFyZW50bHkgd2UncmUgdXNpbmcgYSB2ZXJzaW9uLWZsZXhpYmxlIFNTTF9NRVRIT0QKLSsJCSAqIChub3QgYXQgaXRzIGhpZ2hlc3QgcHJvdG9jb2wgdmVyc2lvbikuICovCi0rCQlpZiAocy0+Y3R4LT5tZXRob2QtPnZlcnNpb24gPT0gU1NMdjIzX21ldGhvZCgpLT52ZXJzaW9uKQotKwkJCXsKLSsjaWYgVExTX01BWF9WRVJTSU9OICE9IFRMUzFfMl9WRVJTSU9OCi0rIyAgZXJyb3IgQ29kZSBuZWVkcyB1cGRhdGUgZm9yIFNTTHYyM19tZXRob2QoKSBzdXBwb3J0IGJleW9uZCBUTFMxXzJfVkVSU0lPTi4KLSsjZW5kaWYKLSsJCQlpZiAoIShzLT5vcHRpb25zICYgU1NMX09QX05PX1RMU3YxXzIpKQotKwkJCQlyZXR1cm4gcy0+dmVyc2lvbiA9PSBUTFMxXzJfVkVSU0lPTjsKLSsJCQlpZiAoIShzLT5vcHRpb25zICYgU1NMX09QX05PX1RMU3YxXzEpKQotKwkJCQlyZXR1cm4gcy0+dmVyc2lvbiA9PSBUTFMxXzFfVkVSU0lPTjsKLSsJCQlpZiAoIShzLT5vcHRpb25zICYgU1NMX09QX05PX1RMU3YxKSkKLSsJCQkJcmV0dXJuIHMtPnZlcnNpb24gPT0gVExTMV9WRVJTSU9OOwotKwkJCWlmICghKHMtPm9wdGlvbnMgJiBTU0xfT1BfTk9fU1NMdjMpKQotKwkJCQlyZXR1cm4gcy0+dmVyc2lvbiA9PSBTU0wzX1ZFUlNJT047Ci0rCQkJaWYgKCEocy0+b3B0aW9ucyAmIFNTTF9PUF9OT19TU0x2MikpCi0rCQkJCXJldHVybiBzLT52ZXJzaW9uID09IFNTTDJfVkVSU0lPTjsKLSsJCQl9Ci0rCQlyZXR1cm4gMDsgLyogVW5leHBlY3RlZCBzdGF0ZTsgZmFpbCBjbG9zZWQuICovCi0rCi0gCWRlZmF1bHQ6Ci0gCQlicmVhazsKLSAJCX0KLUBAIC0zODE2LDYgKzM4NDMsNyBAQCBsb25nIHNzbDNfY3R4X2NhbGxiYWNrX2N0cmwoU1NMX0NUWCAqY3R4LCBpbnQgY21kLCB2b2lkICgqZnApKHZvaWQpKQotIAkJYnJlYWs7Ci0gI2VuZGlmCi0gI2VuZGlmCi0rCi0gCWRlZmF1bHQ6Ci0gCQlyZXR1cm4oMCk7Ci0gCQl9Ci1AQCAtNDQwNiw0ICs0NDM0LDMgQEAgbG9uZyBzc2xfZ2V0X2FsZ29yaXRobTIoU1NMICpzKQotIAkJcmV0dXJuIFNTTF9IQU5EU0hBS0VfTUFDX1NIQTI1NiB8IFRMUzFfUFJGX1NIQTI1NjsKLSAJcmV0dXJuIGFsZzI7Ci0gCX0KLS0JCQotZGlmZiAtLWdpdCBhL3NzbC9zc2wuaCBiL3NzbC9zc2wuaAotaW5kZXggNzU2NmYyZC4uNDYwNzQwMSAxMDA2NDQKLS0tLSBhL3NzbC9zc2wuaAotKysrIGIvc3NsL3NzbC5oCi1AQCAtNjc2LDYgKzY3NiwxMSBAQCBzdHJ1Y3Qgc3NsX3Nlc3Npb25fc3QKLSAgKiBhdHRhY2tzLiAqLwotICNkZWZpbmUgU1NMX01PREVfQ0JDX1JFQ09SRF9TUExJVFRJTkcgMHgwMDAwMDEwMEwKLSAKLSsvKiBTZW5kIFRMU19GQUxMQkFDS19TQ1NWIGluIHRoZSBDbGllbnRIZWxsby4KLSsgKiBUbyBiZSBzZXQgYnkgYXBwbGljYXRpb25zIHRoYXQgcmVjb25uZWN0IHdpdGggYSBkb3duZ3JhZGVkIHByb3RvY29sCi0rICogdmVyc2lvbjsgc2VlIGRyYWZ0LWlldGYtdGxzLWRvd25ncmFkZS1zY3N2LTAwIGZvciBkZXRhaWxzLiAqLwotKyNkZWZpbmUgU1NMX01PREVfU0VORF9GQUxMQkFDS19TQ1NWIDB4MDAwMDAyMDBMCi0rCi0gLyogTm90ZTogU1NMW19DVFhdX3NldF97b3B0aW9ucyxtb2RlfSB1c2UgfD0gb3Agb24gdGhlIHByZXZpb3VzIHZhbHVlLAotICAqIHRoZXkgY2Fubm90IGJlIHVzZWQgdG8gY2xlYXIgYml0cy4gKi8KLSAKLUBAIC0xNjE1LDYgKzE2MjAsNyBAQCBERUNMQVJFX1BFTV9ydyhTU0xfU0VTU0lPTiwgU1NMX1NFU1NJT04pCi0gI2RlZmluZSBTU0xfQURfQkFEX0NFUlRJRklDQVRFX1NUQVRVU19SRVNQT05TRSBUTFMxX0FEX0JBRF9DRVJUSUZJQ0FURV9TVEFUVVNfUkVTUE9OU0UKLSAjZGVmaW5lIFNTTF9BRF9CQURfQ0VSVElGSUNBVEVfSEFTSF9WQUxVRSBUTFMxX0FEX0JBRF9DRVJUSUZJQ0FURV9IQVNIX1ZBTFVFCi0gI2RlZmluZSBTU0xfQURfVU5LTk9XTl9QU0tfSURFTlRJVFkgICAgIFRMUzFfQURfVU5LTk9XTl9QU0tfSURFTlRJVFkgLyogZmF0YWwgKi8KLSsjZGVmaW5lIFNTTF9BRF9JTkFQUFJPUFJJQVRFX0ZBTExCQUNLCVRMUzFfQURfSU5BUFBST1BSSUFURV9GQUxMQkFDSyAvKiBmYXRhbCAqLwotIAotICNkZWZpbmUgU1NMX0VSUk9SX05PTkUJCQkwCi0gI2RlZmluZSBTU0xfRVJST1JfU1NMCQkJMQotQEAgLTE3MjksNiArMTczNSw4IEBAIERFQ0xBUkVfUEVNX3J3KFNTTF9TRVNTSU9OLCBTU0xfU0VTU0lPTikKLSAjZGVmaW5lIFNTTF9DVFJMX0dFVF9FWFRSQV9DSEFJTl9DRVJUUwkJODIKLSAjZGVmaW5lIFNTTF9DVFJMX0NMRUFSX0VYVFJBX0NIQUlOX0NFUlRTCTgzCi0gCi0rI2RlZmluZSBTU0xfQ1RSTF9DSEVDS19QUk9UT19WRVJTSU9OCQkxMTkKLSsKLSAjZGVmaW5lIERUTFN2MV9nZXRfdGltZW91dChzc2wsIGFyZykgXAotIAlTU0xfY3RybChzc2wsRFRMU19DVFJMX0dFVF9USU1FT1VULDAsICh2b2lkICopYXJnKQotICNkZWZpbmUgRFRMU3YxX2hhbmRsZV90aW1lb3V0KHNzbCkgXAotQEAgLTI1MTksNiArMjUyNyw3IEBAIHZvaWQgRVJSX2xvYWRfU1NMX3N0cmluZ3Modm9pZCk7Ci0gI2RlZmluZSBTU0xfUl9IVFRQU19QUk9YWV9SRVFVRVNUCQkJIDE1NQotICNkZWZpbmUgU1NMX1JfSFRUUF9SRVFVRVNUCQkJCSAxNTYKLSAjZGVmaW5lIFNTTF9SX0lMTEVHQUxfUEFERElORwkJCQkgMjgzCi0rI2RlZmluZSBTU0xfUl9JTkFQUFJPUFJJQVRFX0ZBTExCQUNLCQkJIDM4MAotICNkZWZpbmUgU1NMX1JfSU5DT05TSVNURU5UX0NPTVBSRVNTSU9OCQkJIDM0MAotICNkZWZpbmUgU1NMX1JfSU5WQUxJRF9DSEFMTEVOR0VfTEVOR1RICQkJIDE1OAotICNkZWZpbmUgU1NMX1JfSU5WQUxJRF9DT01NQU5ECQkJCSAyODAKLUBAIC0yNjY4LDYgKzI2NzcsNyBAQCB2b2lkIEVSUl9sb2FkX1NTTF9zdHJpbmdzKHZvaWQpOwotICNkZWZpbmUgU1NMX1JfVExTVjFfQUxFUlRfREVDUllQVElPTl9GQUlMRUQJCSAxMDIxCi0gI2RlZmluZSBTU0xfUl9UTFNWMV9BTEVSVF9ERUNSWVBUX0VSUk9SCQkJIDEwNTEKLSAjZGVmaW5lIFNTTF9SX1RMU1YxX0FMRVJUX0VYUE9SVF9SRVNUUklDVElPTgkJIDEwNjAKLSsjZGVmaW5lIFNTTF9SX1RMU1YxX0FMRVJUX0lOQVBQUk9QUklBVEVfRkFMTEJBQ0sJIDEwODYKLSAjZGVmaW5lIFNTTF9SX1RMU1YxX0FMRVJUX0lOU1VGRklDSUVOVF9TRUNVUklUWQkJIDEwNzEKLSAjZGVmaW5lIFNTTF9SX1RMU1YxX0FMRVJUX0lOVEVSTkFMX0VSUk9SCQkgMTA4MAotICNkZWZpbmUgU1NMX1JfVExTVjFfQUxFUlRfTk9fUkVORUdPVElBVElPTgkJIDExMDAKLWRpZmYgLS1naXQgYS9zc2wvc3NsMy5oIGIvc3NsL3NzbDMuaAotaW5kZXggODNkNTliZi4uY2JhOTQzNCAxMDA2NDQKLS0tLSBhL3NzbC9zc2wzLmgKLSsrKyBiL3NzbC9zc2wzLmgKLUBAIC0xMjgsOSArMTI4LDE0IEBACi0gZXh0ZXJuICJDIiB7Ci0gI2VuZGlmCi0gCi0tLyogU2lnbmFsbGluZyBjaXBoZXIgc3VpdGUgdmFsdWU6IGZyb20gZHJhZnQtaWV0Zi10bHMtcmVuZWdvdGlhdGlvbi0wMy50eHQgKi8KLSsvKiBTaWduYWxsaW5nIGNpcGhlciBzdWl0ZSB2YWx1ZSBmcm9tIFJGQyA1NzQ2Ci0rICogKFRMU19FTVBUWV9SRU5FR09USUFUSU9OX0lORk9fU0NTVikgKi8KLSAjZGVmaW5lIFNTTDNfQ0tfU0NTVgkJCQkweDAzMDAwMEZGCi0gCi0rLyogU2lnbmFsbGluZyBjaXBoZXIgc3VpdGUgdmFsdWUgZnJvbSBkcmFmdC1pZXRmLXRscy1kb3duZ3JhZGUtc2Nzdi0wMAotKyAqIChUTFNfRkFMTEJBQ0tfU0NTVikgKi8KLSsjZGVmaW5lIFNTTDNfQ0tfRkFMTEJBQ0tfU0NTVgkJCTB4MDMwMDU2MDAKLSsKLSAjZGVmaW5lIFNTTDNfQ0tfUlNBX05VTExfTUQ1CQkJMHgwMzAwMDAwMQotICNkZWZpbmUgU1NMM19DS19SU0FfTlVMTF9TSEEJCQkweDAzMDAwMDAyCi0gI2RlZmluZSBTU0wzX0NLX1JTQV9SQzRfNDBfTUQ1IAkJCTB4MDMwMDAwMDMKLWRpZmYgLS1naXQgYS9zc2wvc3NsX2Vyci5jIGIvc3NsL3NzbF9lcnIuYwotaW5kZXggYWMwYWFkOS4uODE2ZjZlZSAxMDA2NDQKLS0tLSBhL3NzbC9zc2xfZXJyLmMKLSsrKyBiL3NzbC9zc2xfZXJyLmMKLUBAIC0zOTEsNiArMzkxLDcgQEAgc3RhdGljIEVSUl9TVFJJTkdfREFUQSBTU0xfc3RyX3JlYXNvbnNbXT0KLSB7RVJSX1JFQVNPTihTU0xfUl9IVFRQU19QUk9YWV9SRVFVRVNUKSAgICwiaHR0cHMgcHJveHkgcmVxdWVzdCJ9LAotIHtFUlJfUkVBU09OKFNTTF9SX0hUVFBfUkVRVUVTVCkgICAgICAgICAgLCJodHRwIHJlcXVlc3QifSwKLSB7RVJSX1JFQVNPTihTU0xfUl9JTExFR0FMX1BBRERJTkcpICAgICAgICwiaWxsZWdhbCBwYWRkaW5nIn0sCi0re0VSUl9SRUFTT04oU1NMX1JfSU5BUFBST1BSSUFURV9GQUxMQkFDSyksImluYXBwcm9wcmlhdGUgZmFsbGJhY2sifSwKLSB7RVJSX1JFQVNPTihTU0xfUl9JTkNPTlNJU1RFTlRfQ09NUFJFU1NJT04pLCJpbmNvbnNpc3RlbnQgY29tcHJlc3Npb24ifSwKLSB7RVJSX1JFQVNPTihTU0xfUl9JTlZBTElEX0NIQUxMRU5HRV9MRU5HVEgpLCJpbnZhbGlkIGNoYWxsZW5nZSBsZW5ndGgifSwKLSB7RVJSX1JFQVNPTihTU0xfUl9JTlZBTElEX0NPTU1BTkQpICAgICAgICwiaW52YWxpZCBjb21tYW5kIn0sCi1AQCAtNTQwLDYgKzU0MSw3IEBAIHN0YXRpYyBFUlJfU1RSSU5HX0RBVEEgU1NMX3N0cl9yZWFzb25zW109Ci0ge0VSUl9SRUFTT04oU1NMX1JfVExTVjFfQUxFUlRfREVDUllQVElPTl9GQUlMRUQpLCJ0bHN2MSBhbGVydCBkZWNyeXB0aW9uIGZhaWxlZCJ9LAotIHtFUlJfUkVBU09OKFNTTF9SX1RMU1YxX0FMRVJUX0RFQ1JZUFRfRVJST1IpLCJ0bHN2MSBhbGVydCBkZWNyeXB0IGVycm9yIn0sCi0ge0VSUl9SRUFTT04oU1NMX1JfVExTVjFfQUxFUlRfRVhQT1JUX1JFU1RSSUNUSU9OKSwidGxzdjEgYWxlcnQgZXhwb3J0IHJlc3RyaWN0aW9uIn0sCi0re0VSUl9SRUFTT04oU1NMX1JfVExTVjFfQUxFUlRfSU5BUFBST1BSSUFURV9GQUxMQkFDSyksInRsc3YxIGFsZXJ0IGluYXBwcm9wcmlhdGUgZmFsbGJhY2sifSwKLSB7RVJSX1JFQVNPTihTU0xfUl9UTFNWMV9BTEVSVF9JTlNVRkZJQ0lFTlRfU0VDVVJJVFkpLCJ0bHN2MSBhbGVydCBpbnN1ZmZpY2llbnQgc2VjdXJpdHkifSwKLSB7RVJSX1JFQVNPTihTU0xfUl9UTFNWMV9BTEVSVF9JTlRFUk5BTF9FUlJPUiksInRsc3YxIGFsZXJ0IGludGVybmFsIGVycm9yIn0sCi0ge0VSUl9SRUFTT04oU1NMX1JfVExTVjFfQUxFUlRfTk9fUkVORUdPVElBVElPTiksInRsc3YxIGFsZXJ0IG5vIHJlbmVnb3RpYXRpb24ifSwKLWRpZmYgLS1naXQgYS9zc2wvc3NsX2xpYi5jIGIvc3NsL3NzbF9saWIuYwotaW5kZXggM2RlNjhhNy4uZWMwZWMyZSAxMDA2NDQKLS0tLSBhL3NzbC9zc2xfbGliLmMKLSsrKyBiL3NzbC9zc2xfbGliLmMKLUBAIC0xNDQxLDYgKzE0NDEsOCBAQCBpbnQgc3NsX2NpcGhlcl9saXN0X3RvX2J5dGVzKFNTTCAqcyxTVEFDS19PRihTU0xfQ0lQSEVSKSAqc2ssdW5zaWduZWQgY2hhciAqcCwKLSAKLSAJaWYgKHNrID09IE5VTEwpIHJldHVybigwKTsKLSAJcT1wOwotKwlpZiAocHV0X2NiID09IE5VTEwpCi0rCQlwdXRfY2IgPSBzLT5tZXRob2QtPnB1dF9jaXBoZXJfYnlfY2hhcjsKLSAKLSAJZm9yIChpPTA7IGk8c2tfU1NMX0NJUEhFUl9udW0oc2spOyBpKyspCi0gCQl7Ci1AQCAtMTQ2MCwyNSArMTQ2MiwzNiBAQCBpbnQgc3NsX2NpcGhlcl9saXN0X3RvX2J5dGVzKFNTTCAqcyxTVEFDS19PRihTU0xfQ0lQSEVSKSAqc2ssdW5zaWduZWQgY2hhciAqcCwKLSAJCSAgICBzLT5wc2tfY2xpZW50X2NhbGxiYWNrID09IE5VTEwpCi0gCQkJY29udGludWU7Ci0gI2VuZGlmIC8qIE9QRU5TU0xfTk9fUFNLICovCi0tCQlqID0gcHV0X2NiID8gcHV0X2NiKGMscCkgOiBzc2xfcHV0X2NpcGhlcl9ieV9jaGFyKHMsYyxwKTsKLSsJCWogPSBwdXRfY2IoYyxwKTsKLSAJCXArPWo7Ci0gCQl9Ci0tCS8qIElmIHAgPT0gcSwgbm8gY2lwaGVycyBhbmQgY2FsbGVyIGluZGljYXRlcyBhbiBlcnJvci4gT3RoZXJ3aXNlCi0tCSAqIGFkZCBTQ1NWIGlmIG5vdCByZW5lZ290aWF0aW5nLgotLQkgKi8KLS0JaWYgKHAgIT0gcSAmJiAhcy0+cmVuZWdvdGlhdGUpCi0rCS8qIElmIHAgPT0gcSwgbm8gY2lwaGVyczsgY2FsbGVyIGluZGljYXRlcyBhbiBlcnJvci4KLSsJICogT3RoZXJ3aXNlLCBhZGQgYXBwbGljYWJsZSBTQ1NWcy4gKi8KLSsJaWYgKHAgIT0gcSkKLSAJCXsKLS0JCXN0YXRpYyBTU0xfQ0lQSEVSIHNjc3YgPQotKwkJaWYgKCFzLT5yZW5lZ290aWF0ZSkKLSAJCQl7Ci0tCQkJMCwgTlVMTCwgU1NMM19DS19TQ1NWLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwCi0tCQkJfTsKLS0JCWogPSBwdXRfY2IgPyBwdXRfY2IoJnNjc3YscCkgOiBzc2xfcHV0X2NpcGhlcl9ieV9jaGFyKHMsJnNjc3YscCk7Ci0tCQlwKz1qOwotKwkJCXN0YXRpYyBTU0xfQ0lQSEVSIHNjc3YgPQotKwkJCQl7Ci0rCQkJCTAsIE5VTEwsIFNTTDNfQ0tfU0NTViwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMAotKwkJCQl9OwotKwkJCWogPSBwdXRfY2IoJnNjc3YscCk7Ci0rCQkJcCs9ajsKLSAjaWZkZWYgT1BFTlNTTF9SSV9ERUJVRwotLQkJZnByaW50ZihzdGRlcnIsICJTQ1NWIHNlbnQgYnkgY2xpZW50XG4iKTsKLSsJCQlmcHJpbnRmKHN0ZGVyciwgIlRMU19FTVBUWV9SRU5FR09USUFUSU9OX0lORk9fU0NTViBzZW50IGJ5IGNsaWVudFxuIik7Ci0gI2VuZGlmCi0tCQl9Ci0rCQkJfQotIAotKwkJaWYgKHMtPm1vZGUgJiBTU0xfTU9ERV9TRU5EX0ZBTExCQUNLX1NDU1YpCi0rCQkJewotKwkJCXN0YXRpYyBTU0xfQ0lQSEVSIHNjc3YgPQotKwkJCQl7Ci0rCQkJCTAsIE5VTEwsIFNTTDNfQ0tfRkFMTEJBQ0tfU0NTViwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMAotKwkJCQl9OwotKwkJCWogPSBwdXRfY2IoJnNjc3YscCk7Ci0rCQkJcCs9ajsKLSsJCQl9Ci0rIAkJfQotIAlyZXR1cm4ocC1xKTsKLSAJfQotIAotQEAgLTE0ODgsMTEgKzE1MDEsMTIgQEAgU1RBQ0tfT0YoU1NMX0NJUEhFUikgKnNzbF9ieXRlc190b19jaXBoZXJfbGlzdChTU0wgKnMsdW5zaWduZWQgY2hhciAqcCxpbnQgbnVtLAotIAljb25zdCBTU0xfQ0lQSEVSICpjOwotIAlTVEFDS19PRihTU0xfQ0lQSEVSKSAqc2s7Ci0gCWludCBpLG47Ci0rCi0gCWlmIChzLT5zMykKLSAJCXMtPnMzLT5zZW5kX2Nvbm5lY3Rpb25fYmluZGluZyA9IDA7Ci0gCi0gCW49c3NsX3B1dF9jaXBoZXJfYnlfY2hhcihzLE5VTEwsTlVMTCk7Ci0tCWlmICgobnVtJW4pICE9IDApCi0rCWlmIChuID09IDAgfHwgKG51bSVuKSAhPSAwKQotIAkJewotIAkJU1NMZXJyKFNTTF9GX1NTTF9CWVRFU19UT19DSVBIRVJfTElTVCxTU0xfUl9FUlJPUl9JTl9SRUNFSVZFRF9DSVBIRVJfTElTVCk7Ci0gCQlyZXR1cm4oTlVMTCk7Ci1AQCAtMTUwNyw3ICsxNTIxLDcgQEAgU1RBQ0tfT0YoU1NMX0NJUEhFUikgKnNzbF9ieXRlc190b19jaXBoZXJfbGlzdChTU0wgKnMsdW5zaWduZWQgY2hhciAqcCxpbnQgbnVtLAotIAotIAlmb3IgKGk9MDsgaTxudW07IGkrPW4pCi0gCQl7Ci0tCQkvKiBDaGVjayBmb3IgU0NTViAqLwotKwkJLyogQ2hlY2sgZm9yIFRMU19FTVBUWV9SRU5FR09USUFUSU9OX0lORk9fU0NTViAqLwotIAkJaWYgKHMtPnMzICYmIChuICE9IDMgfHwgIXBbMF0pICYmCi0gCQkJKHBbbi0yXSA9PSAoKFNTTDNfQ0tfU0NTViA+PiA4KSAmIDB4ZmYpKSAmJgotIAkJCShwW24tMV0gPT0gKFNTTDNfQ0tfU0NTViAmIDB4ZmYpKSkKLUBAIC0xNTI3LDYgKzE1NDEsMjIgQEAgU1RBQ0tfT0YoU1NMX0NJUEhFUikgKnNzbF9ieXRlc190b19jaXBoZXJfbGlzdChTU0wgKnMsdW5zaWduZWQgY2hhciAqcCxpbnQgbnVtLAotIAkJCWNvbnRpbnVlOwotIAkJCX0KLSAKLSsJCS8qIENoZWNrIGZvciBUTFNfRkFMTEJBQ0tfU0NTViAqLwotKwkJaWYgKHMtPnMzICYmIChuICE9IDMgfHwgIXBbMF0pICYmCi0rCQkJKHBbbi0yXSA9PSAoKFNTTDNfQ0tfRkFMTEJBQ0tfU0NTViA+PiA4KSAmIDB4ZmYpKSAmJgotKwkJCShwW24tMV0gPT0gKFNTTDNfQ0tfRkFMTEJBQ0tfU0NTViAmIDB4ZmYpKSkKLSsJCQl7Ci0rCQkJLyogVGhlIFNDU1YgaW5kaWNhdGVzIHRoYXQgdGhlIGNsaWVudCBwcmV2aW91c2x5IHRyaWVkIGEgaGlnaGVyIHZlcnNpb24uCi0rCQkJICogRmFpbCBpZiB0aGUgY3VycmVudCB2ZXJzaW9uIGlzIGFuIHVuZXhwZWN0ZWQgZG93bmdyYWRlLiAqLwotKwkJCWlmICghU1NMX2N0cmwocywgU1NMX0NUUkxfQ0hFQ0tfUFJPVE9fVkVSU0lPTiwgMCwgTlVMTCkpCi0rCQkJCXsKLSsJCQkJU1NMZXJyKFNTTF9GX1NTTF9CWVRFU19UT19DSVBIRVJfTElTVCxTU0xfUl9JTkFQUFJPUFJJQVRFX0ZBTExCQUNLKTsKLSsJCQkJc3NsM19zZW5kX2FsZXJ0KHMsU1NMM19BTF9GQVRBTCxTU0xfQURfSU5BUFBST1BSSUFURV9GQUxMQkFDSyk7Ci0rCQkJCWdvdG8gZXJyOwotKwkJCQl9Ci0rCQkJY29udGludWU7Ci0rCQkJfQotKwotIAkJYz1zc2xfZ2V0X2NpcGhlcl9ieV9jaGFyKHMscCk7Ci0gCQlwKz1uOwotIAkJaWYgKGMgIT0gTlVMTCkKLWRpZmYgLS1naXQgYS9zc2wvdDFfZW5jLmMgYi9zc2wvdDFfZW5jLmMKLWluZGV4IDIyZGQzY2EuLmI4ZDQ5N2UgMTAwNjQ0Ci0tLS0gYS9zc2wvdDFfZW5jLmMKLSsrKyBiL3NzbC90MV9lbmMuYwotQEAgLTEyNjYsNiArMTI2Niw3IEBAIGludCB0bHMxX2FsZXJ0X2NvZGUoaW50IGNvZGUpCi0gCWNhc2UgU1NMX0FEX0JBRF9DRVJUSUZJQ0FURV9TVEFUVVNfUkVTUE9OU0U6IHJldHVybihUTFMxX0FEX0JBRF9DRVJUSUZJQ0FURV9TVEFUVVNfUkVTUE9OU0UpOwotIAljYXNlIFNTTF9BRF9CQURfQ0VSVElGSUNBVEVfSEFTSF9WQUxVRTogcmV0dXJuKFRMUzFfQURfQkFEX0NFUlRJRklDQVRFX0hBU0hfVkFMVUUpOwotIAljYXNlIFNTTF9BRF9VTktOT1dOX1BTS19JREVOVElUWTpyZXR1cm4oVExTMV9BRF9VTktOT1dOX1BTS19JREVOVElUWSk7Ci0rCWNhc2UgU1NMX0FEX0lOQVBQUk9QUklBVEVfRkFMTEJBQ0s6cmV0dXJuKFRMUzFfQURfSU5BUFBST1BSSUFURV9GQUxMQkFDSyk7Ci0gI2lmIDAgLyogbm90IGFwcHJvcHJpYXRlIGZvciBUTFMsIG5vdCB1c2VkIGZvciBEVExTICovCi0gCWNhc2UgRFRMUzFfQURfTUlTU0lOR19IQU5EU0hBS0VfTUVTU0FHRTogcmV0dXJuIAotIAkJCQkJICAoRFRMUzFfQURfTUlTU0lOR19IQU5EU0hBS0VfTUVTU0FHRSk7Ci1kaWZmIC0tZ2l0IGEvc3NsL3RsczEuaCBiL3NzbC90bHMxLmgKLWluZGV4IGI5YTA4OTkuLmRjMzZmNzkgMTAwNjQ0Ci0tLS0gYS9zc2wvdGxzMS5oCi0rKysgYi9zc2wvdGxzMS5oCi1AQCAtMTU5LDE3ICsxNTksMTkgQEAgZXh0ZXJuICJDIiB7Ci0gCi0gI2RlZmluZSBUTFMxX0FMTE9XX0VYUEVSSU1FTlRBTF9DSVBIRVJTVUlURVMJMAotIAotKyNkZWZpbmUgVExTMV9WRVJTSU9OCQkJMHgwMzAxCi0rI2RlZmluZSBUTFMxXzFfVkVSU0lPTgkJCTB4MDMwMgotICNkZWZpbmUgVExTMV8yX1ZFUlNJT04JCQkweDAzMDMKLS0jZGVmaW5lIFRMUzFfMl9WRVJTSU9OX01BSk9SCQkweDAzCi0tI2RlZmluZSBUTFMxXzJfVkVSU0lPTl9NSU5PUgkJMHgwMwotKyNkZWZpbmUgVExTX01BWF9WRVJTSU9OCQkJVExTMV8yX1ZFUlNJT04KLSsKLSsjZGVmaW5lIFRMUzFfVkVSU0lPTl9NQUpPUgkJMHgwMwotKyNkZWZpbmUgVExTMV9WRVJTSU9OX01JTk9SCQkweDAxCi0gCi0tI2RlZmluZSBUTFMxXzFfVkVSU0lPTgkJCTB4MDMwMgotICNkZWZpbmUgVExTMV8xX1ZFUlNJT05fTUFKT1IJCTB4MDMKLSAjZGVmaW5lIFRMUzFfMV9WRVJTSU9OX01JTk9SCQkweDAyCi0gCi0tI2RlZmluZSBUTFMxX1ZFUlNJT04JCQkweDAzMDEKLS0jZGVmaW5lIFRMUzFfVkVSU0lPTl9NQUpPUgkJMHgwMwotLSNkZWZpbmUgVExTMV9WRVJTSU9OX01JTk9SCQkweDAxCi0rI2RlZmluZSBUTFMxXzJfVkVSU0lPTl9NQUpPUgkJMHgwMwotKyNkZWZpbmUgVExTMV8yX1ZFUlNJT05fTUlOT1IJCTB4MDMKLSAKLSAjZGVmaW5lIFRMUzFfZ2V0X3ZlcnNpb24ocykgXAotIAkJKChzLT52ZXJzaW9uID4+IDgpID09IFRMUzFfVkVSU0lPTl9NQUpPUiA/IHMtPnZlcnNpb24gOiAwKQotQEAgLTE4Nyw2ICsxODksNyBAQCBleHRlcm4gIkMiIHsKLSAjZGVmaW5lIFRMUzFfQURfUFJPVE9DT0xfVkVSU0lPTgk3MAkvKiBmYXRhbCAqLwotICNkZWZpbmUgVExTMV9BRF9JTlNVRkZJQ0lFTlRfU0VDVVJJVFkJNzEJLyogZmF0YWwgKi8KLSAjZGVmaW5lIFRMUzFfQURfSU5URVJOQUxfRVJST1IJCTgwCS8qIGZhdGFsICovCi0rI2RlZmluZSBUTFMxX0FEX0lOQVBQUk9QUklBVEVfRkFMTEJBQ0sJODYJLyogZmF0YWwgKi8KLSAjZGVmaW5lIFRMUzFfQURfVVNFUl9DQU5DRUxMRUQJCTkwCi0gI2RlZmluZSBUTFMxX0FEX05PX1JFTkVHT1RJQVRJT04JMTAwCi0gLyogY29kZXMgMTEwLTExNCBhcmUgZnJvbSBSRkMzNTQ2ICovCi0tLSAKLTIuMS4wLnJjMi4yMDYuZ2VkYjAzZTUKLQpkaWZmIC0tZ2l0IGEvc3NsL2QxX2JvdGguYyBiL3NzbC9kMV9ib3RoLmMKaW5kZXggMDRhYTIzMS4uMmU0MjUwZiAxMDA2NDQKLS0tIGEvc3NsL2QxX2JvdGguYworKysgYi9zc2wvZDFfYm90aC5jCkBAIC01ODcsMjkgKzU4NywzMiBAQAogCQlyZXR1cm4gMDsKIAl9CiAKKy8qIGR0bHMxX21heF9oYW5kc2hha2VfbWVzc2FnZV9sZW4gcmV0dXJucyB0aGUgbWF4aW11bSBudW1iZXIgb2YgYnl0ZXMKKyAqIHBlcm1pdHRlZCBpbiBhIERUTFMgaGFuZHNoYWtlIG1lc3NhZ2UgZm9yIHxzfC4gVGhlIG1pbmltdW0gaXMgMTZLQiwgYnV0IG1heQorICogYmUgZ3JlYXRlciBpZiB0aGUgbWF4aW11bSBjZXJ0aWZpY2F0ZSBsaXN0IHNpemUgcmVxdWlyZXMgaXQuICovCitzdGF0aWMgdW5zaWduZWQgbG9uZyBkdGxzMV9tYXhfaGFuZHNoYWtlX21lc3NhZ2VfbGVuKGNvbnN0IFNTTCAqcykKKwl7CisJdW5zaWduZWQgbG9uZyBtYXhfbGVuID0gRFRMUzFfSE1fSEVBREVSX0xFTkdUSCArIFNTTDNfUlRfTUFYX0VOQ1JZUFRFRF9MRU5HVEg7CisJaWYgKG1heF9sZW4gPCAodW5zaWduZWQgbG9uZylzLT5tYXhfY2VydF9saXN0KQorCQlyZXR1cm4gcy0+bWF4X2NlcnRfbGlzdDsKKwlyZXR1cm4gbWF4X2xlbjsKKwl9CiAKIHN0YXRpYyBpbnQKLWR0bHMxX3JlYXNzZW1ibGVfZnJhZ21lbnQoU1NMICpzLCBzdHJ1Y3QgaG1faGVhZGVyX3N0KiBtc2dfaGRyLCBpbnQgKm9rKQorZHRsczFfcmVhc3NlbWJsZV9mcmFnbWVudChTU0wgKnMsIGNvbnN0IHN0cnVjdCBobV9oZWFkZXJfc3QqIG1zZ19oZHIsIGludCAqb2spCiAJewogCWhtX2ZyYWdtZW50ICpmcmFnID0gTlVMTDsKIAlwaXRlbSAqaXRlbSA9IE5VTEw7CiAJaW50IGkgPSAtMSwgaXNfY29tcGxldGU7CiAJdW5zaWduZWQgY2hhciBzZXE2NGJlWzhdOwotCXVuc2lnbmVkIGxvbmcgZnJhZ19sZW4gPSBtc2dfaGRyLT5mcmFnX2xlbiwgbWF4X2xlbjsKKwl1bnNpZ25lZCBsb25nIGZyYWdfbGVuID0gbXNnX2hkci0+ZnJhZ19sZW47CiAKLQlpZiAoKG1zZ19oZHItPmZyYWdfb2ZmK2ZyYWdfbGVuKSA+IG1zZ19oZHItPm1zZ19sZW4pCisJaWYgKChtc2dfaGRyLT5mcmFnX29mZitmcmFnX2xlbikgPiBtc2dfaGRyLT5tc2dfbGVuIHx8CisJICAgIG1zZ19oZHItPm1zZ19sZW4gPiBkdGxzMV9tYXhfaGFuZHNoYWtlX21lc3NhZ2VfbGVuKHMpKQogCQlnb3RvIGVycjsKIAotCS8qIERldGVybWluZSBtYXhpbXVtIGFsbG93ZWQgbWVzc2FnZSBzaXplLiBEZXBlbmRzIG9uICh1c2VyIHNldCkKLQkgKiBtYXhpbXVtIGNlcnRpZmljYXRlIGxlbmd0aCwgYnV0IDE2ayBpcyBtaW5pbXVtLgotCSAqLwotCWlmIChEVExTMV9ITV9IRUFERVJfTEVOR1RIICsgU1NMM19SVF9NQVhfRU5DUllQVEVEX0xFTkdUSCA8IHMtPm1heF9jZXJ0X2xpc3QpCi0JCW1heF9sZW4gPSBzLT5tYXhfY2VydF9saXN0OwotCWVsc2UKLQkJbWF4X2xlbiA9IERUTFMxX0hNX0hFQURFUl9MRU5HVEggKyBTU0wzX1JUX01BWF9FTkNSWVBURURfTEVOR1RIOwotCi0JaWYgKChtc2dfaGRyLT5mcmFnX29mZitmcmFnX2xlbikgPiBtYXhfbGVuKQotCQlnb3RvIGVycjsKKwlpZiAoZnJhZ19sZW4gPT0gMCkKKwkJcmV0dXJuIERUTFMxX0hNX0ZSQUdNRU5UX1JFVFJZOwogCiAJLyogVHJ5IHRvIGZpbmQgaXRlbSBpbiBxdWV1ZSAqLwogCW1lbXNldChzZXE2NGJlLDAsc2l6ZW9mKHNlcTY0YmUpKTsKQEAgLTYzOSw3ICs2NDIsOCBAQAogCiAKIAkvKiBJZiBtZXNzYWdlIGlzIGFscmVhZHkgcmVhc3NlbWJsZWQsIHRoaXMgbXVzdCBiZSBhCi0JICogcmV0cmFuc21pdCBhbmQgY2FuIGJlIGRyb3BwZWQuCisJICogcmV0cmFuc21pdCBhbmQgY2FuIGJlIGRyb3BwZWQuIEluIHRoaXMgY2FzZSBpdGVtICE9IE5VTEwgYW5kIHNvIGZyYWcKKwkgKiBkb2VzIG5vdCBuZWVkIHRvIGJlIGZyZWVkLgogCSAqLwogCWlmIChmcmFnLT5yZWFzc2VtYmx5ID09IE5VTEwpCiAJCXsKQEAgLTY1OSw3ICs2NjMsOSBAQAogCS8qIHJlYWQgdGhlIGJvZHkgb2YgdGhlIGZyYWdtZW50IChoZWFkZXIgaGFzIGFscmVhZHkgYmVlbiByZWFkICovCiAJaSA9IHMtPm1ldGhvZC0+c3NsX3JlYWRfYnl0ZXMocyxTU0wzX1JUX0hBTkRTSEFLRSwKIAkJZnJhZy0+ZnJhZ21lbnQgKyBtc2dfaGRyLT5mcmFnX29mZixmcmFnX2xlbiwwKTsKLQlpZiAoaTw9MCB8fCAodW5zaWduZWQgbG9uZylpIT1mcmFnX2xlbikKKwlpZiAoKHVuc2lnbmVkIGxvbmcpaSE9ZnJhZ19sZW4pCisJCWk9LTE7CisJaWYgKGk8PTApCiAJCWdvdG8gZXJyOwogCiAJUlNNQkxZX0JJVE1BU0tfTUFSSyhmcmFnLT5yZWFzc2VtYmx5LCAobG9uZyltc2dfaGRyLT5mcmFnX29mZiwKQEAgLTY3NiwxMCArNjgyLDYgQEAKIAogCWlmIChpdGVtID09IE5VTEwpCiAJCXsKLQkJbWVtc2V0KHNlcTY0YmUsMCxzaXplb2Yoc2VxNjRiZSkpOwotCQlzZXE2NGJlWzZdID0gKHVuc2lnbmVkIGNoYXIpKG1zZ19oZHItPnNlcT4+OCk7Ci0JCXNlcTY0YmVbN10gPSAodW5zaWduZWQgY2hhcikobXNnX2hkci0+c2VxKTsKLQogCQlpdGVtID0gcGl0ZW1fbmV3KHNlcTY0YmUsIGZyYWcpOwogCQlpZiAoaXRlbSA9PSBOVUxMKQogCQkJewpAQCAtNjg3LDIxICs2ODksMjUgQEAKIAkJCWdvdG8gZXJyOwogCQkJfQogCi0JCXBxdWV1ZV9pbnNlcnQocy0+ZDEtPmJ1ZmZlcmVkX21lc3NhZ2VzLCBpdGVtKTsKKwkJaXRlbSA9IHBxdWV1ZV9pbnNlcnQocy0+ZDEtPmJ1ZmZlcmVkX21lc3NhZ2VzLCBpdGVtKTsKKwkJLyogcHF1ZXVlX2luc2VydCBmYWlscyBpZmYgYSBkdXBsaWNhdGUgaXRlbSBpcyBpbnNlcnRlZC4KKwkJICogSG93ZXZlciwgfGl0ZW18IGNhbm5vdCBiZSBhIGR1cGxpY2F0ZS4gSWYgaXQgd2VyZSwKKwkJICogfHBxdWV1ZV9maW5kfCwgYWJvdmUsIHdvdWxkIGhhdmUgcmV0dXJuZWQgaXQgYW5kIGNvbnRyb2wKKwkJICogd291bGQgbmV2ZXIgaGF2ZSByZWFjaGVkIHRoaXMgYnJhbmNoLiAqLworCQlPUEVOU1NMX2Fzc2VydChpdGVtICE9IE5VTEwpOwogCQl9CiAKIAlyZXR1cm4gRFRMUzFfSE1fRlJBR01FTlRfUkVUUlk7CiAKIGVycjoKLQlpZiAoZnJhZyAhPSBOVUxMKSBkdGxzMV9obV9mcmFnbWVudF9mcmVlKGZyYWcpOwotCWlmIChpdGVtICE9IE5VTEwpIE9QRU5TU0xfZnJlZShpdGVtKTsKKwlpZiAoZnJhZyAhPSBOVUxMICYmIGl0ZW0gPT0gTlVMTCkgZHRsczFfaG1fZnJhZ21lbnRfZnJlZShmcmFnKTsKIAkqb2sgPSAwOwogCXJldHVybiBpOwogCX0KIAogCiBzdGF0aWMgaW50Ci1kdGxzMV9wcm9jZXNzX291dF9vZl9zZXFfbWVzc2FnZShTU0wgKnMsIHN0cnVjdCBobV9oZWFkZXJfc3QqIG1zZ19oZHIsIGludCAqb2spCitkdGxzMV9wcm9jZXNzX291dF9vZl9zZXFfbWVzc2FnZShTU0wgKnMsIGNvbnN0IHN0cnVjdCBobV9oZWFkZXJfc3QqIG1zZ19oZHIsIGludCAqb2spCiB7CiAJaW50IGk9LTE7CiAJaG1fZnJhZ21lbnQgKmZyYWcgPSBOVUxMOwpAQCAtNzIxLDcgKzcyNyw3IEBACiAJLyogSWYgd2UgYWxyZWFkeSBoYXZlIGFuIGVudHJ5IGFuZCB0aGlzIG9uZSBpcyBhIGZyYWdtZW50LAogCSAqIGRvbid0IGRpc2NhcmQgaXQgYW5kIHJhdGhlciB0cnkgdG8gcmVhc3NlbWJsZSBpdC4KIAkgKi8KLQlpZiAoaXRlbSAhPSBOVUxMICYmIGZyYWdfbGVuIDwgbXNnX2hkci0+bXNnX2xlbikKKwlpZiAoaXRlbSAhPSBOVUxMICYmIGZyYWdfbGVuICE9IG1zZ19oZHItPm1zZ19sZW4pCiAJCWl0ZW0gPSBOVUxMOwogCiAJLyogRGlzY2FyZCB0aGUgbWVzc2FnZSBpZiBzZXF1ZW5jZSBudW1iZXIgd2FzIGFscmVhZHkgdGhlcmUsIGlzCkBAIC03NDYsOSArNzUyLDEyIEBACiAJCX0KIAllbHNlCiAJCXsKLQkJaWYgKGZyYWdfbGVuICYmIGZyYWdfbGVuIDwgbXNnX2hkci0+bXNnX2xlbikKKwkJaWYgKGZyYWdfbGVuICE9IG1zZ19oZHItPm1zZ19sZW4pCiAJCQlyZXR1cm4gZHRsczFfcmVhc3NlbWJsZV9mcmFnbWVudChzLCBtc2dfaGRyLCBvayk7CiAKKwkJaWYgKGZyYWdfbGVuID4gZHRsczFfbWF4X2hhbmRzaGFrZV9tZXNzYWdlX2xlbihzKSkKKwkJCWdvdG8gZXJyOworCiAJCWZyYWcgPSBkdGxzMV9obV9mcmFnbWVudF9uZXcoZnJhZ19sZW4sIDApOwogCQlpZiAoIGZyYWcgPT0gTlVMTCkKIAkJCWdvdG8gZXJyOwpAQCAtNzYwLDI2ICs3NjksMzEgQEAKIAkJCS8qIHJlYWQgdGhlIGJvZHkgb2YgdGhlIGZyYWdtZW50IChoZWFkZXIgaGFzIGFscmVhZHkgYmVlbiByZWFkICovCiAJCQlpID0gcy0+bWV0aG9kLT5zc2xfcmVhZF9ieXRlcyhzLFNTTDNfUlRfSEFORFNIQUtFLAogCQkJCWZyYWctPmZyYWdtZW50LGZyYWdfbGVuLDApOwotCQkJaWYgKGk8PTAgfHwgKHVuc2lnbmVkIGxvbmcpaSE9ZnJhZ19sZW4pCisJCQlpZiAoKHVuc2lnbmVkIGxvbmcpaSE9ZnJhZ19sZW4pCisJCQkJaSA9IC0xOworCQkJaWYgKGk8PTApCiAJCQkJZ290byBlcnI7CiAJCQl9CiAKLQkJbWVtc2V0KHNlcTY0YmUsMCxzaXplb2Yoc2VxNjRiZSkpOwotCQlzZXE2NGJlWzZdID0gKHVuc2lnbmVkIGNoYXIpKG1zZ19oZHItPnNlcT4+OCk7Ci0JCXNlcTY0YmVbN10gPSAodW5zaWduZWQgY2hhcikobXNnX2hkci0+c2VxKTsKLQogCQlpdGVtID0gcGl0ZW1fbmV3KHNlcTY0YmUsIGZyYWcpOwogCQlpZiAoIGl0ZW0gPT0gTlVMTCkKIAkJCWdvdG8gZXJyOwogCi0JCXBxdWV1ZV9pbnNlcnQocy0+ZDEtPmJ1ZmZlcmVkX21lc3NhZ2VzLCBpdGVtKTsKKwkJaXRlbSA9IHBxdWV1ZV9pbnNlcnQocy0+ZDEtPmJ1ZmZlcmVkX21lc3NhZ2VzLCBpdGVtKTsKKwkJLyogcHF1ZXVlX2luc2VydCBmYWlscyBpZmYgYSBkdXBsaWNhdGUgaXRlbSBpcyBpbnNlcnRlZC4KKwkJICogSG93ZXZlciwgfGl0ZW18IGNhbm5vdCBiZSBhIGR1cGxpY2F0ZS4gSWYgaXQgd2VyZSwKKwkJICogfHBxdWV1ZV9maW5kfCwgYWJvdmUsIHdvdWxkIGhhdmUgcmV0dXJuZWQgaXQuIFRoZW4sIGVpdGhlcgorCQkgKiB8ZnJhZ19sZW58ICE9IHxtc2dfaGRyLT5tc2dfbGVufCBpbiB3aGljaCBjYXNlIHxpdGVtfCBpcyBzZXQKKwkJICogdG8gTlVMTCBhbmQgaXQgd2lsbCBoYXZlIGJlZW4gcHJvY2Vzc2VkIHdpdGgKKwkJICogfGR0bHMxX3JlYXNzZW1ibGVfZnJhZ21lbnR8LCBhYm92ZSwgb3IgdGhlIHJlY29yZCB3aWxsIGhhdmUKKwkJICogYmVlbiBkaXNjYXJkZWQuICovCisJCU9QRU5TU0xfYXNzZXJ0KGl0ZW0gIT0gTlVMTCk7CiAJCX0KIAogCXJldHVybiBEVExTMV9ITV9GUkFHTUVOVF9SRVRSWTsKIAogZXJyOgotCWlmICggZnJhZyAhPSBOVUxMKSBkdGxzMV9obV9mcmFnbWVudF9mcmVlKGZyYWcpOwotCWlmICggaXRlbSAhPSBOVUxMKSBPUEVOU1NMX2ZyZWUoaXRlbSk7CisJaWYgKGZyYWcgIT0gTlVMTCAmJiBpdGVtID09IE5VTEwpIGR0bHMxX2htX2ZyYWdtZW50X2ZyZWUoZnJhZyk7CiAJKm9rID0gMDsKIAlyZXR1cm4gaTsKIAl9CkBAIC0xMTgwLDYgKzExOTQsOCBAQAogCU9QRU5TU0xfYXNzZXJ0KHMtPmluaXRfb2ZmID09IDApOwogCiAJZnJhZyA9IGR0bHMxX2htX2ZyYWdtZW50X25ldyhzLT5pbml0X251bSwgMCk7CisJaWYgKCFmcmFnKQorCQlyZXR1cm4gMDsKIAogCW1lbWNweShmcmFnLT5mcmFnbWVudCwgcy0+aW5pdF9idWYtPmRhdGEsIHMtPmluaXRfbnVtKTsKIApAQCAtMTQ3Niw2ICsxNDkyLDkgQEAKIAkvKiBSZWFkIHR5cGUgYW5kIHBheWxvYWQgbGVuZ3RoIGZpcnN0ICovCiAJaWYgKDEgKyAyICsgMTYgPiBzLT5zMy0+cnJlYy5sZW5ndGgpCiAJCXJldHVybiAwOyAvKiBzaWxlbnRseSBkaXNjYXJkICovCisJaWYgKHMtPnMzLT5ycmVjLmxlbmd0aCA+IFNTTDNfUlRfTUFYX1BMQUlOX0xFTkdUSCkKKwkJcmV0dXJuIDA7IC8qIHNpbGVudGx5IGRpc2NhcmQgcGVyIFJGQyA2NTIwIHNlYy4gNCAqLworCiAJaGJ0eXBlID0gKnArKzsKIAluMnMocCwgcGF5bG9hZCk7CiAJaWYgKDEgKyAyICsgcGF5bG9hZCArIDE2ID4gcy0+czMtPnJyZWMubGVuZ3RoKQpkaWZmIC0tZ2l0IGEvc3NsL2QxX2NsbnQuYyBiL3NzbC9kMV9jbG50LmMKaW5kZXggNWVlOGY1OC4uMzdkZDU0OCAxMDA2NDQKLS0tIGEvc3NsL2QxX2NsbnQuYworKysgYi9zc2wvZDFfY2xudC5jCkBAIC04ODIsMTIgKzg4MiwxOCBAQAogCQkqKHArKyk9MDsgLyogQWRkIHRoZSBOVUxMIG1ldGhvZCAqLwogCiAjaWZuZGVmIE9QRU5TU0xfTk9fVExTRVhUCisJCS8qIFRMUyBleHRlbnNpb25zKi8KKwkJaWYgKHNzbF9wcmVwYXJlX2NsaWVudGhlbGxvX3Rsc2V4dChzKSA8PSAwKQorCQkJeworCQkJU1NMZXJyKFNTTF9GX0RUTFMxX0NMSUVOVF9IRUxMTyxTU0xfUl9DTElFTlRIRUxMT19UTFNFWFQpOworCQkJZ290byBlcnI7CisJCQl9CiAJCWlmICgocCA9IHNzbF9hZGRfY2xpZW50aGVsbG9fdGxzZXh0KHMsIHAsIGJ1ZitTU0wzX1JUX01BWF9QTEFJTl9MRU5HVEgpKSA9PSBOVUxMKQogCQkJewogCQkJU1NMZXJyKFNTTF9GX0RUTFMxX0NMSUVOVF9IRUxMTyxFUlJfUl9JTlRFUk5BTF9FUlJPUik7CiAJCQlnb3RvIGVycjsKIAkJCX0KLSNlbmRpZgkJCisjZW5kaWYKIAogCQlsPShwLWQpOwogCQlkPWJ1ZjsKQEAgLTk5Niw2ICsxMDAyLDEzIEBACiAJCQlSU0EgKnJzYTsKIAkJCXVuc2lnbmVkIGNoYXIgdG1wX2J1ZltTU0xfTUFYX01BU1RFUl9LRVlfTEVOR1RIXTsKIAorCQkJaWYgKHMtPnNlc3Npb24tPnNlc3NfY2VydCA9PSBOVUxMKQorCQkJCXsKKwkJCQkvKiBXZSBzaG91bGQgYWx3YXlzIGhhdmUgYSBzZXJ2ZXIgY2VydGlmaWNhdGUgd2l0aCBTU0xfa1JTQS4gKi8KKwkJCQlTU0xlcnIoU1NMX0ZfRFRMUzFfU0VORF9DTElFTlRfS0VZX0VYQ0hBTkdFLEVSUl9SX0lOVEVSTkFMX0VSUk9SKTsKKwkJCQlnb3RvIGVycjsKKwkJCQl9CisKIAkJCWlmIChzLT5zZXNzaW9uLT5zZXNzX2NlcnQtPnBlZXJfcnNhX3RtcCAhPSBOVUxMKQogCQkJCXJzYT1zLT5zZXNzaW9uLT5zZXNzX2NlcnQtPnBlZXJfcnNhX3RtcDsKIAkJCWVsc2UKQEAgLTExODYsNiArMTE5OSwxMyBAQAogCQkJewogCQkJREggKmRoX3NydnIsKmRoX2NsbnQ7CiAKKwkJCWlmIChzLT5zZXNzaW9uLT5zZXNzX2NlcnQgPT0gTlVMTCkKKwkJCQl7CisJCQkJc3NsM19zZW5kX2FsZXJ0KHMsU1NMM19BTF9GQVRBTCxTU0xfQURfVU5FWFBFQ1RFRF9NRVNTQUdFKTsKKwkJCQlTU0xlcnIoU1NMX0ZfRFRMUzFfU0VORF9DTElFTlRfS0VZX0VYQ0hBTkdFLFNTTF9SX1VORVhQRUNURURfTUVTU0FHRSk7CisJCQkJZ290byBlcnI7CisJCQkJfQorCiAJCQlpZiAocy0+c2Vzc2lvbi0+c2Vzc19jZXJ0LT5wZWVyX2RoX3RtcCAhPSBOVUxMKQogCQkJCWRoX3NydnI9cy0+c2Vzc2lvbi0+c2Vzc19jZXJ0LT5wZWVyX2RoX3RtcDsKIAkJCWVsc2UKQEAgLTEyNDUsNiArMTI2NSwxMyBAQAogCQkJaW50IGVjZGhfY2xudF9jZXJ0ID0gMDsKIAkJCWludCBmaWVsZF9zaXplID0gMDsKIAorCQkJaWYgKHMtPnNlc3Npb24tPnNlc3NfY2VydCA9PSBOVUxMKQorCQkJCXsKKwkJCQlzc2wzX3NlbmRfYWxlcnQocyxTU0wzX0FMX0ZBVEFMLFNTTF9BRF9VTkVYUEVDVEVEX01FU1NBR0UpOworCQkJCVNTTGVycihTU0xfRl9EVExTMV9TRU5EX0NMSUVOVF9LRVlfRVhDSEFOR0UsU1NMX1JfVU5FWFBFQ1RFRF9NRVNTQUdFKTsKKwkJCQlnb3RvIGVycjsKKwkJCQl9CisKIAkJCS8qIERpZCB3ZSBzZW5kIG91dCB0aGUgY2xpZW50J3MKIAkJCSAqIEVDREggc2hhcmUgZm9yIHVzZSBpbiBwcmVtYXN0ZXIKIAkJCSAqIGNvbXB1dGF0aW9uIGFzIHBhcnQgb2YgY2xpZW50IGNlcnRpZmljYXRlPwpAQCAtMTcwOSw1ICsxNzM2LDMgQEAKIAkvKiBTU0wzX1NUX0NXX0NFUlRfRCAqLwogCXJldHVybihkdGxzMV9kb193cml0ZShzLFNTTDNfUlRfSEFORFNIQUtFKSk7CiAJfQotCi0KZGlmZiAtLWdpdCBhL3NzbC9kMV9zcnRwLmMgYi9zc2wvZDFfc3J0cC5jCmluZGV4IGFiOWM0MTkuLjUzNTUzOWIgMTAwNjQ0Ci0tLSBhL3NzbC9kMV9zcnRwLmMKKysrIGIvc3NsL2QxX3NydHAuYwpAQCAtMTY4LDI1ICsxNjgsNiBAQAogCXJldHVybiAxOwogCX0KIAotc3RhdGljIGludCBmaW5kX3Byb2ZpbGVfYnlfbnVtKHVuc2lnbmVkIHByb2ZpbGVfbnVtLAotCQkJICAgICAgIFNSVFBfUFJPVEVDVElPTl9QUk9GSUxFICoqcHB0cikKLQl7Ci0JU1JUUF9QUk9URUNUSU9OX1BST0ZJTEUgKnA7Ci0KLQlwPXNydHBfa25vd25fcHJvZmlsZXM7Ci0Jd2hpbGUocC0+bmFtZSkKLQkJewotCQlpZihwLT5pZCA9PSBwcm9maWxlX251bSkKLQkJCXsKLQkJCSpwcHRyPXA7Ci0JCQlyZXR1cm4gMDsKLQkJCX0KLQkJcCsrOwotCQl9Ci0KLQlyZXR1cm4gMTsKLQl9Ci0KIHN0YXRpYyBpbnQgc3NsX2N0eF9tYWtlX3Byb2ZpbGVzKGNvbnN0IGNoYXIgKnByb2ZpbGVzX3N0cmluZyxTVEFDS19PRihTUlRQX1BST1RFQ1RJT05fUFJPRklMRSkgKipvdXQpCiAJewogCVNUQUNLX09GKFNSVFBfUFJPVEVDVElPTl9QUk9GSUxFKSAqcHJvZmlsZXM7CkBAIC0yMDksMTEgKzE5MCwxOSBAQAogCQlpZighZmluZF9wcm9maWxlX2J5X25hbWUocHRyLCZwLAogCQkJCQkgY29sID8gY29sLXB0ciA6IChpbnQpc3RybGVuKHB0cikpKQogCQkJeworCQkJaWYgKHNrX1NSVFBfUFJPVEVDVElPTl9QUk9GSUxFX2ZpbmQocHJvZmlsZXMscCkgPj0gMCkKKwkJCQl7CisJCQkJU1NMZXJyKFNTTF9GX1NTTF9DVFhfTUFLRV9QUk9GSUxFUyxTU0xfUl9CQURfU1JUUF9QUk9URUNUSU9OX1BST0ZJTEVfTElTVCk7CisJCQkJc2tfU1JUUF9QUk9URUNUSU9OX1BST0ZJTEVfZnJlZShwcm9maWxlcyk7CisJCQkJcmV0dXJuIDE7CisJCQkJfQorCiAJCQlza19TUlRQX1BST1RFQ1RJT05fUFJPRklMRV9wdXNoKHByb2ZpbGVzLHApOwogCQkJfQogCQllbHNlCiAJCQl7CiAJCQlTU0xlcnIoU1NMX0ZfU1NMX0NUWF9NQUtFX1BST0ZJTEVTLFNTTF9SX1NSVFBfVU5LTk9XTl9QUk9URUNUSU9OX1BST0ZJTEUpOworCQkJc2tfU1JUUF9QUk9URUNUSU9OX1BST0ZJTEVfZnJlZShwcm9maWxlcyk7CiAJCQlyZXR1cm4gMTsKIAkJCX0KIApAQCAtMzA1LDEzICsyOTQsMTIgQEAKIAogaW50IHNzbF9wYXJzZV9jbGllbnRoZWxsb191c2Vfc3J0cF9leHQoU1NMICpzLCB1bnNpZ25lZCBjaGFyICpkLCBpbnQgbGVuLGludCAqYWwpCiAJewotCVNSVFBfUFJPVEVDVElPTl9QUk9GSUxFICpjcHJvZiwqc3Byb2Y7Ci0JU1RBQ0tfT0YoU1JUUF9QUk9URUNUSU9OX1BST0ZJTEUpICpjbG50PTAsKnNydnI7CisJU1JUUF9QUk9URUNUSU9OX1BST0ZJTEUgKnNwcm9mOworCVNUQUNLX09GKFNSVFBfUFJPVEVDVElPTl9QUk9GSUxFKSAqc3J2cjsKICAgICAgICAgaW50IGN0OwogICAgICAgICBpbnQgbWtpX2xlbjsKLQlpbnQgaSxqOwotCWludCBpZDsKLQlpbnQgcmV0OworCWludCBpLCBzcnRwX3ByZWY7CisJdW5zaWduZWQgaW50IGlkOwogCiAgICAgICAgICAvKiBMZW5ndGggdmFsdWUgKyB0aGUgTUtJIGxlbmd0aCAqLwogICAgICAgICBpZihsZW4gPCAzKQpAQCAtMzQxLDIyICszMjksMzIgQEAKIAkJcmV0dXJuIDE7CiAJCX0KIAorCXNydnI9U1NMX2dldF9zcnRwX3Byb2ZpbGVzKHMpOworCXMtPnNydHBfcHJvZmlsZSA9IE5VTEw7CisJLyogU2VhcmNoIGFsbCBwcm9maWxlcyBmb3IgYSBtYXRjaCBpbml0aWFsbHkgKi8KKwlzcnRwX3ByZWYgPSBza19TUlRQX1BST1RFQ1RJT05fUFJPRklMRV9udW0oc3J2cik7CiAgICAgICAgIAotCWNsbnQ9c2tfU1JUUF9QUk9URUNUSU9OX1BST0ZJTEVfbmV3X251bGwoKTsKLQogCXdoaWxlKGN0KQogCQl7CiAJCW4ycyhkLGlkKTsKIAkJY3QtPTI7CiAgICAgICAgICAgICAgICAgbGVuLT0yOwogCi0JCWlmKCFmaW5kX3Byb2ZpbGVfYnlfbnVtKGlkLCZjcHJvZikpCisJCS8qCisJCSAqIE9ubHkgbG9vayBmb3IgbWF0Y2ggaW4gcHJvZmlsZXMgb2YgaGlnaGVyIHByZWZlcmVuY2UgdGhhbgorCQkgKiBjdXJyZW50IG1hdGNoLgorCQkgKiBJZiBubyBwcm9maWxlcyBoYXZlIGJlZW4gaGF2ZSBiZWVuIGNvbmZpZ3VyZWQgdGhlbiB0aGlzCisJCSAqIGRvZXMgbm90aGluZy4KKwkJICovCisJCWZvciAoaSA9IDA7IGkgPCBzcnRwX3ByZWY7IGkrKykKIAkJCXsKLQkJCXNrX1NSVFBfUFJPVEVDVElPTl9QUk9GSUxFX3B1c2goY2xudCxjcHJvZik7Ci0JCQl9Ci0JCWVsc2UKLQkJCXsKLQkJCTsgLyogSWdub3JlICovCisJCQlzcHJvZiA9IHNrX1NSVFBfUFJPVEVDVElPTl9QUk9GSUxFX3ZhbHVlKHNydnIsIGkpOworCQkJaWYgKHNwcm9mLT5pZCA9PSBpZCkKKwkJCQl7CisJCQkJcy0+c3J0cF9wcm9maWxlID0gc3Byb2Y7CisJCQkJc3J0cF9wcmVmID0gaTsKKwkJCQlicmVhazsKKwkJCQl9CiAJCQl9CiAJCX0KIApAQCAtMzcxLDM2ICszNjksNyBAQAogCQlyZXR1cm4gMTsKIAkJfQogCi0Jc3J2cj1TU0xfZ2V0X3NydHBfcHJvZmlsZXMocyk7Ci0KLQkvKiBQaWNrIG91ciBtb3N0IHByZWZlcnJlZCBwcm9maWxlLiBJZiBubyBwcm9maWxlcyBoYXZlIGJlZW4KLQkgY29uZmlndXJlZCB0aGVuIHRoZSBvdXRlciBsb29wIGRvZXNuJ3QgcnVuIAotCSAoc2tfU1JUUF9QUk9URUNUSU9OX1BST0ZJTEVfbnVtKCkgPSAtMSkKLQkgYW5kIHNvIHdlIGp1c3QgcmV0dXJuIHdpdGhvdXQgZG9pbmcgYW55dGhpbmcgKi8KLQlmb3IoaT0wO2k8c2tfU1JUUF9QUk9URUNUSU9OX1BST0ZJTEVfbnVtKHNydnIpO2krKykKLQkJewotCQlzcHJvZj1za19TUlRQX1BST1RFQ1RJT05fUFJPRklMRV92YWx1ZShzcnZyLGkpOwotCi0JCWZvcihqPTA7ajxza19TUlRQX1BST1RFQ1RJT05fUFJPRklMRV9udW0oY2xudCk7aisrKQotCQkJewotCQkJY3Byb2Y9c2tfU1JUUF9QUk9URUNUSU9OX1BST0ZJTEVfdmFsdWUoY2xudCxqKTsKLSAgICAgICAgICAgIAotCQkJaWYoY3Byb2YtPmlkPT1zcHJvZi0+aWQpCi0JCQkJewotCQkJCXMtPnNydHBfcHJvZmlsZT1zcHJvZjsKLQkJCQkqYWw9MDsKLQkJCQlyZXQ9MDsKLQkJCQlnb3RvIGRvbmU7Ci0JCQkJfQotCQkJfQotCQl9Ci0KLQlyZXQ9MDsKLSAgICAKLWRvbmU6Ci0JaWYoY2xudCkgc2tfU1JUUF9QUk9URUNUSU9OX1BST0ZJTEVfZnJlZShjbG50KTsKLQotCXJldHVybiByZXQ7CisJcmV0dXJuIDA7CiAJfQogCiBpbnQgc3NsX2FkZF9zZXJ2ZXJoZWxsb191c2Vfc3J0cF9leHQoU1NMICpzLCB1bnNpZ25lZCBjaGFyICpwLCBpbnQgKmxlbiwgaW50IG1heGxlbikKZGlmZiAtLWdpdCBhL3NzbC9kMV9zcnZyLmMgYi9zc2wvZDFfc3J2ci5jCmluZGV4IGMxODFkYjYuLjAzYjIwYTIgMTAwNjQ0Ci0tLSBhL3NzbC9kMV9zcnZyLmMKKysrIGIvc3NsL2QxX3NydnIuYwpAQCAtNTk4LDEwICs1OTgsMTEgQEAKIAkJCQlzLT5zdGF0ZSA9IFNTTDNfU1RfU1JfQ0xOVF9IRUxMT19DOwogCQkJCX0KIAkJCWVsc2UgewotCQkJCS8qIGNvdWxkIGJlIHNlbnQgZm9yIGEgREggY2VydCwgZXZlbiBpZiB3ZQotCQkJCSAqIGhhdmUgbm90IGFza2VkIGZvciBpdCA6LSkgKi8KLQkJCQlyZXQ9c3NsM19nZXRfY2xpZW50X2NlcnRpZmljYXRlKHMpOwotCQkJCWlmIChyZXQgPD0gMCkgZ290byBlbmQ7CisJCQkJaWYgKHMtPnMzLT50bXAuY2VydF9yZXF1ZXN0KQorCQkJCQl7CisJCQkJCXJldD1zc2wzX2dldF9jbGllbnRfY2VydGlmaWNhdGUocyk7CisJCQkJCWlmIChyZXQgPD0gMCkgZ290byBlbmQ7CisJCQkJCX0KIAkJCQlzLT5pbml0X251bT0wOwogCQkJCXMtPnN0YXRlPVNTTDNfU1RfU1JfS0VZX0VYQ0hfQTsKIAkJCX0KQEAgLTk4MCw2ICs5ODEsMTEgQEAKICNlbmRpZgogCiAjaWZuZGVmIE9QRU5TU0xfTk9fVExTRVhUCisJCWlmIChzc2xfcHJlcGFyZV9zZXJ2ZXJoZWxsb190bHNleHQocykgPD0gMCkKKwkJCXsKKwkJCVNTTGVycihTU0xfRl9EVExTMV9TRU5EX1NFUlZFUl9IRUxMTyxTU0xfUl9TRVJWRVJIRUxMT19UTFNFWFQpOworCQkJcmV0dXJuIC0xOworCQkJfQogCQlpZiAoKHAgPSBzc2xfYWRkX3NlcnZlcmhlbGxvX3Rsc2V4dChzLCBwLCBidWYrU1NMM19SVF9NQVhfUExBSU5fTEVOR1RIKSkgPT0gTlVMTCkKIAkJCXsKIAkJCVNTTGVycihTU0xfRl9EVExTMV9TRU5EX1NFUlZFUl9IRUxMTyxFUlJfUl9JTlRFUk5BTF9FUlJPUik7CmRpZmYgLS1naXQgYS9zc2wvczIzX2NsbnQuYyBiL3NzbC9zMjNfY2xudC5jCmluZGV4IDQ2N2FkZmUuLmYwMmMyNzUgMTAwNjQ0Ci0tLSBhL3NzbC9zMjNfY2xudC5jCisrKyBiL3NzbC9zMjNfY2xudC5jCkBAIC0xMjUsOSArMTI1LDExIEBACiAJaWYgKHZlciA9PSBTU0wyX1ZFUlNJT04pCiAJCXJldHVybihTU0x2Ml9jbGllbnRfbWV0aG9kKCkpOwogI2VuZGlmCisjaWZuZGVmIE9QRU5TU0xfTk9fU1NMMwogCWlmICh2ZXIgPT0gU1NMM19WRVJTSU9OKQogCQlyZXR1cm4oU1NMdjNfY2xpZW50X21ldGhvZCgpKTsKLQllbHNlIGlmICh2ZXIgPT0gVExTMV9WRVJTSU9OKQorI2VuZGlmCisJaWYgKHZlciA9PSBUTFMxX1ZFUlNJT04pCiAJCXJldHVybihUTFN2MV9jbGllbnRfbWV0aG9kKCkpOwogCWVsc2UgaWYgKHZlciA9PSBUTFMxXzFfVkVSU0lPTikKIAkJcmV0dXJuKFRMU3YxXzFfY2xpZW50X21ldGhvZCgpKTsKQEAgLTY5OCw2ICs3MDAsNyBAQAogCQl7CiAJCS8qIHdlIGhhdmUgc3NsdjMgb3IgdGxzMSAoc2VydmVyIGhlbGxvIG9yIGFsZXJ0KSAqLwogCisjaWZuZGVmIE9QRU5TU0xfTk9fU1NMMwogCQlpZiAoKHBbMl0gPT0gU1NMM19WRVJTSU9OX01JTk9SKSAmJgogCQkJIShzLT5vcHRpb25zICYgU1NMX09QX05PX1NTTHYzKSkKIAkJCXsKQEAgLTcxMiw3ICs3MTUsOSBAQAogCQkJcy0+dmVyc2lvbj1TU0wzX1ZFUlNJT047CiAJCQlzLT5tZXRob2Q9U1NMdjNfY2xpZW50X21ldGhvZCgpOwogCQkJfQotCQllbHNlIGlmICgocFsyXSA9PSBUTFMxX1ZFUlNJT05fTUlOT1IpICYmCisJCWVsc2UKKyNlbmRpZgorCQlpZiAoKHBbMl0gPT0gVExTMV9WRVJTSU9OX01JTk9SKSAmJgogCQkJIShzLT5vcHRpb25zICYgU1NMX09QX05PX1RMU3YxKSkKIAkJCXsKIAkJCXMtPnZlcnNpb249VExTMV9WRVJTSU9OOwpkaWZmIC0tZ2l0IGEvc3NsL3MyM19saWIuYyBiL3NzbC9zMjNfbGliLmMKaW5kZXggM2JmNzI4My4uZjNjMjlkMSAxMDA2NDQKLS0tIGEvc3NsL3MyM19saWIuYworKysgYi9zc2wvczIzX2xpYi5jCkBAIC0xMDcsNiArMTA3LDEzIEBACiAJbG9uZyBsOwogCiAJLyogV2UgY2FuIHdyaXRlIFNTTHYyIGFuZCBTU0x2MyBjaXBoZXJzICovCisJLyogYnV0IG5vIEVDQyBjaXBoZXJzICovCisJaWYgKGMtPmFsZ29yaXRobV9ta2V5ID09IFNTTF9rRUNESHIgfHwKKwkJYy0+YWxnb3JpdGhtX21rZXkgPT0gU1NMX2tFQ0RIZSB8fAorCQljLT5hbGdvcml0aG1fbWtleSA9PSBTU0xfa0VFQ0RIIHx8CisJCWMtPmFsZ29yaXRobV9hdXRoID09IFNTTF9hRUNESCB8fAorCQljLT5hbGdvcml0aG1fYXV0aCA9PSBTU0xfYUVDRFNBKQorCQlyZXR1cm4gMDsKIAlpZiAocCAhPSBOVUxMKQogCQl7CiAJCWw9Yy0+aWQ7CmRpZmYgLS1naXQgYS9zc2wvczIzX3NydnIuYyBiL3NzbC9zMjNfc3J2ci5jCmluZGV4IDgyZDY4NjcuLjkzY2E3ZDUgMTAwNjQ0Ci0tLSBhL3NzbC9zMjNfc3J2ci5jCisrKyBiL3NzbC9zMjNfc3J2ci5jCkBAIC0xMjcsOSArMTI3LDExIEBACiAJaWYgKHZlciA9PSBTU0wyX1ZFUlNJT04pCiAJCXJldHVybihTU0x2Ml9zZXJ2ZXJfbWV0aG9kKCkpOwogI2VuZGlmCisjaWZuZGVmIE9QRU5TU0xfTk9fU1NMMwogCWlmICh2ZXIgPT0gU1NMM19WRVJTSU9OKQogCQlyZXR1cm4oU1NMdjNfc2VydmVyX21ldGhvZCgpKTsKLQllbHNlIGlmICh2ZXIgPT0gVExTMV9WRVJTSU9OKQorI2VuZGlmCisJaWYgKHZlciA9PSBUTFMxX1ZFUlNJT04pCiAJCXJldHVybihUTFN2MV9zZXJ2ZXJfbWV0aG9kKCkpOwogCWVsc2UgaWYgKHZlciA9PSBUTFMxXzFfVkVSU0lPTikKIAkJcmV0dXJuKFRMU3YxXzFfc2VydmVyX21ldGhvZCgpKTsKQEAgLTM0OCwyMyArMzUwLDE5IEBACiAJCQkgKiBDbGllbnQgSGVsbG8gbWVzc2FnZSwgdGhpcyB3b3VsZCBiZSBkaWZmaWN1bHQsIGFuZCB3ZSdkIGhhdmUKIAkJCSAqIHRvIHJlYWQgbW9yZSByZWNvcmRzIHRvIGZpbmQgb3V0LgogCQkJICogTm8ga25vd24gU1NMIDMuMCBjbGllbnQgZnJhZ21lbnRzIENsaWVudEhlbGxvIGxpa2UgdGhpcywKLQkJCSAqIHNvIHdlIHNpbXBseSBhc3N1bWUgVExTIDEuMCB0byBhdm9pZCBwcm90b2NvbCB2ZXJzaW9uIGRvd25ncmFkZQotCQkJICogYXR0YWNrcy4gKi8KKwkJCSAqIHNvIHdlIHNpbXBseSByZWplY3Qgc3VjaCBjb25uZWN0aW9ucyB0byBhdm9pZAorCQkJICogcHJvdG9jb2wgdmVyc2lvbiBkb3duZ3JhZGUgYXR0YWNrcy4gKi8KIAkJCWlmIChwWzNdID09IDAgJiYgcFs0XSA8IDYpCiAJCQkJewotI2lmIDAKIAkJCQlTU0xlcnIoU1NMX0ZfU1NMMjNfR0VUX0NMSUVOVF9IRUxMTyxTU0xfUl9SRUNPUkRfVE9PX1NNQUxMKTsKIAkJCQlnb3RvIGVycjsKLSNlbHNlCi0JCQkJdlsxXSA9IFRMUzFfVkVSU0lPTl9NSU5PUjsKLSNlbmRpZgogCQkJCX0KIAkJCS8qIGlmIG1ham9yIHZlcnNpb24gbnVtYmVyID4gMyBzZXQgbWlub3IgdG8gYSB2YWx1ZQogCQkJICogd2hpY2ggd2lsbCB1c2UgdGhlIGhpZ2hlc3QgdmVyc2lvbiAzIHdlIHN1cHBvcnQuCiAJCQkgKiBJZiBUTFMgMi4wIGV2ZXIgYXBwZWFycyB3ZSB3aWxsIG5lZWQgdG8gcmV2aXNlCiAJCQkgKiB0aGlzLi4uLgogCQkJICovCi0JCQllbHNlIGlmIChwWzldID4gU1NMM19WRVJTSU9OX01BSk9SKQorCQkJaWYgKHBbOV0gPiBTU0wzX1ZFUlNJT05fTUFKT1IpCiAJCQkJdlsxXT0weGZmOwogCQkJZWxzZQogCQkJCXZbMV09cFsxMF07IC8qIG1pbm9yIHZlcnNpb24gYWNjb3JkaW5nIHRvIGNsaWVudF92ZXJzaW9uICovCkBAIC00NDcsMTQgKzQ0NSwzNCBAQAogCQl2WzBdID0gcFszXTsgLyogPT0gU1NMM19WRVJTSU9OX01BSk9SICovCiAJCXZbMV0gPSBwWzRdOwogCisJCS8qIEFuIFNTTHYzL1RMU3YxIGJhY2t3YXJkcy1jb21wYXRpYmxlIENMSUVOVC1IRUxMTyBpbiBhbiBTU0x2MgorCQkgKiBoZWFkZXIgaXMgc2VudCBkaXJlY3RseSBvbiB0aGUgd2lyZSwgbm90IHdyYXBwZWQgYXMgYSBUTFMKKwkJICogcmVjb3JkLiBJdCdzIGZvcm1hdCBpczoKKwkJICogQnl0ZSAgQ29udGVudAorCQkgKiAwLTEgICBtc2dfbGVuZ3RoCisJCSAqIDIgICAgIG1zZ190eXBlCisJCSAqIDMtNCAgIHZlcnNpb24KKwkJICogNS02ICAgY2lwaGVyX3NwZWNfbGVuZ3RoCisJCSAqIDctOCAgIHNlc3Npb25faWRfbGVuZ3RoCisJCSAqIDktMTAgIGNoYWxsZW5nZV9sZW5ndGgKKwkJICogLi4uICAgLi4uCisJCSAqLwogCQluPSgocFswXSYweDdmKTw8OCl8cFsxXTsKIAkJaWYgKG4gPiAoMTAyNCo0KSkKIAkJCXsKIAkJCVNTTGVycihTU0xfRl9TU0wyM19HRVRfQ0xJRU5UX0hFTExPLFNTTF9SX1JFQ09SRF9UT09fTEFSR0UpOwogCQkJZ290byBlcnI7CiAJCQl9CisJCWlmIChuIDwgOSkKKwkJCXsKKwkJCVNTTGVycihTU0xfRl9TU0wyM19HRVRfQ0xJRU5UX0hFTExPLFNTTF9SX1JFQ09SRF9MRU5HVEhfTUlTTUFUQ0gpOworCQkJZ290byBlcnI7CisJCQl9CiAKIAkJaj1zc2wyM19yZWFkX2J5dGVzKHMsbisyKTsKKwkJLyogV2UgcHJldmlvdXNseSByZWFkIDExIGJ5dGVzLCBzbyBpZiBqID4gMCwgd2UgbXVzdCBoYXZlCisJCSAqIGogPT0gbisyID09IHMtPnBhY2tldF9sZW5ndGguIFdlIGhhdmUgYXQgbGVhc3QgMTEgdmFsaWQKKwkJICogcGFja2V0IGJ5dGVzLiAqLwogCQlpZiAoaiA8PSAwKSByZXR1cm4oaik7CiAKIAkJc3NsM19maW5pc2hfbWFjKHMsIHMtPnBhY2tldCsyLCBzLT5wYWNrZXRfbGVuZ3RoLTIpOwpAQCAtNTg0LDYgKzYwMiwxMiBAQAogCWlmICgodHlwZSA9PSAyKSB8fCAodHlwZSA9PSAzKSkKIAkJewogCQkvKiB3ZSBoYXZlIFNTTHYzL1RMU3YxICh0eXBlIDI6IFNTTDIgc3R5bGUsIHR5cGUgMzogU1NMMy9UTFMgc3R5bGUpICovCisgICAgICAgICAgICAgICAgcy0+bWV0aG9kID0gc3NsMjNfZ2V0X3NlcnZlcl9tZXRob2Qocy0+dmVyc2lvbik7CisJCWlmIChzLT5tZXRob2QgPT0gTlVMTCkKKwkJCXsKKwkJCVNTTGVycihTU0xfRl9TU0wyM19HRVRfQ0xJRU5UX0hFTExPLFNTTF9SX1VOU1VQUE9SVEVEX1BST1RPQ09MKTsKKwkJCWdvdG8gZXJyOworCQkJfQogCiAJCWlmICghc3NsX2luaXRfd2Jpb19idWZmZXIocywxKSkgZ290byBlcnI7CiAKQEAgLTYxMSwxNCArNjM1LDYgQEAKIAkJCXMtPnMzLT5yYnVmLmxlZnQ9MDsKIAkJCXMtPnMzLT5yYnVmLm9mZnNldD0wOwogCQkJfQotCQlpZiAocy0+dmVyc2lvbiA9PSBUTFMxXzJfVkVSU0lPTikKLQkJCXMtPm1ldGhvZCA9IFRMU3YxXzJfc2VydmVyX21ldGhvZCgpOwotCQllbHNlIGlmIChzLT52ZXJzaW9uID09IFRMUzFfMV9WRVJTSU9OKQotCQkJcy0+bWV0aG9kID0gVExTdjFfMV9zZXJ2ZXJfbWV0aG9kKCk7Ci0JCWVsc2UgaWYgKHMtPnZlcnNpb24gPT0gVExTMV9WRVJTSU9OKQotCQkJcy0+bWV0aG9kID0gVExTdjFfc2VydmVyX21ldGhvZCgpOwotCQllbHNlCi0JCQlzLT5tZXRob2QgPSBTU0x2M19zZXJ2ZXJfbWV0aG9kKCk7CiAjaWYgMCAvKiBzc2wzX2dldF9jbGllbnRfaGVsbG8gZG9lcyB0aGlzICovCiAJCXMtPmNsaWVudF92ZXJzaW9uPSh2WzBdPDw4KXx2WzFdOwogI2VuZGlmCmRpZmYgLS1naXQgYS9zc2wvczJfbGliLmMgYi9zc2wvczJfbGliLmMKaW5kZXggYjk2MjRiOS4uYzYzYmUzMCAxMDA2NDQKLS0tIGEvc3NsL3MyX2xpYi5jCisrKyBiL3NzbC9zMl9saWIuYwpAQCAtMjUwLDcgKzI1MCw3IEBACiAJU1NMX1NTTFYyLAogCVNTTF9OT1RfRVhQfFNTTF9ISUdILAogCTAsCi0JMTY4LAorCTExMiwKIAkxNjgsCiAJfSwKIApAQCAtNDM5LDcgKzQzOSw3IEBACiAJaWYgKHAgIT0gTlVMTCkKIAkJewogCQlsPWMtPmlkOwotCQlpZiAoKGwgJiAweGZmMDAwMDAwKSAhPSAweDAyMDAwMDAwKSByZXR1cm4oMCk7CisJCWlmICgobCAmIDB4ZmYwMDAwMDApICE9IDB4MDIwMDAwMDAgJiYgbCAhPSBTU0wzX0NLX0ZBTExCQUNLX1NDU1YpIHJldHVybigwKTsKIAkJcFswXT0oKHVuc2lnbmVkIGNoYXIpKGw+PjE2TCkpJjB4RkY7CiAJCXBbMV09KCh1bnNpZ25lZCBjaGFyKShsPj4gOEwpKSYweEZGOwogCQlwWzJdPSgodW5zaWduZWQgY2hhcikobCAgICAgKSkmMHhGRjsKZGlmZiAtLWdpdCBhL3NzbC9zM19jYmMuYyBiL3NzbC9zM19jYmMuYwppbmRleCA0NDNhMzFlLi4xMWYxM2FkIDEwMDY0NAotLS0gYS9zc2wvczNfY2JjLmMKKysrIGIvc3NsL3MzX2NiYy5jCkBAIC01Myw2ICs1Myw3IEBACiAgKgogICovCiAKKyNpbmNsdWRlICIuLi9jcnlwdG8vY29uc3RhbnRfdGltZV9sb2NsLmgiCiAjaW5jbHVkZSAic3NsX2xvY2wuaCIKIAogI2luY2x1ZGUgPG9wZW5zc2wvbWQ1Lmg+CkBAIC02NywzNyArNjgsNiBAQAogICogc3VwcG9ydGVkIGJ5IFRMUy4pICovCiAjZGVmaW5lIE1BWF9IQVNIX0JMT0NLX1NJWkUgMTI4CiAKLS8qIFNvbWUgdXRpbGl0eSBmdW5jdGlvbnMgYXJlIG5lZWRlZDoKLSAqCi0gKiBUaGVzZSBtYWNyb3MgcmV0dXJuIHRoZSBnaXZlbiB2YWx1ZSB3aXRoIHRoZSBNU0IgY29waWVkIHRvIGFsbCB0aGUgb3RoZXIKLSAqIGJpdHMuIFRoZXkgdXNlIHRoZSBmYWN0IHRoYXQgYXJpdGhtZXRpYyBzaGlmdCBzaGlmdHMtaW4gdGhlIHNpZ24gYml0LgotICogSG93ZXZlciwgdGhpcyBpcyBub3QgZW5zdXJlZCBieSB0aGUgQyBzdGFuZGFyZCBzbyB5b3UgbWF5IG5lZWQgdG8gcmVwbGFjZQotICogdGhlbSB3aXRoIHNvbWV0aGluZyBlbHNlIG9uIG9kZCBDUFVzLiAqLwotI2RlZmluZSBEVVBMSUNBVEVfTVNCX1RPX0FMTCh4KSAoICh1bnNpZ25lZCkoIChpbnQpKHgpID4+IChzaXplb2YoaW50KSo4LTEpICkgKQotI2RlZmluZSBEVVBMSUNBVEVfTVNCX1RPX0FMTF84KHgpICgodW5zaWduZWQgY2hhcikoRFVQTElDQVRFX01TQl9UT19BTEwoeCkpKQotCi0vKiBjb25zdGFudF90aW1lX2x0IHJldHVybnMgMHhmZiBpZiBhPGIgYW5kIDB4MDAgb3RoZXJ3aXNlLiAqLwotc3RhdGljIHVuc2lnbmVkIGNvbnN0YW50X3RpbWVfbHQodW5zaWduZWQgYSwgdW5zaWduZWQgYikKLQl7Ci0JYSAtPSBiOwotCXJldHVybiBEVVBMSUNBVEVfTVNCX1RPX0FMTChhKTsKLQl9Ci0KLS8qIGNvbnN0YW50X3RpbWVfZ2UgcmV0dXJucyAweGZmIGlmIGE+PWIgYW5kIDB4MDAgb3RoZXJ3aXNlLiAqLwotc3RhdGljIHVuc2lnbmVkIGNvbnN0YW50X3RpbWVfZ2UodW5zaWduZWQgYSwgdW5zaWduZWQgYikKLQl7Ci0JYSAtPSBiOwotCXJldHVybiBEVVBMSUNBVEVfTVNCX1RPX0FMTCh+YSk7Ci0JfQotCi0vKiBjb25zdGFudF90aW1lX2VxXzggcmV0dXJucyAweGZmIGlmIGE9PWIgYW5kIDB4MDAgb3RoZXJ3aXNlLiAqLwotc3RhdGljIHVuc2lnbmVkIGNoYXIgY29uc3RhbnRfdGltZV9lcV84KHVuc2lnbmVkIGEsIHVuc2lnbmVkIGIpCi0JewotCXVuc2lnbmVkIGMgPSBhIF4gYjsKLQljLS07Ci0JcmV0dXJuIERVUExJQ0FURV9NU0JfVE9fQUxMXzgoYyk7Ci0JfQotCiAvKiBzc2wzX2NiY19yZW1vdmVfcGFkZGluZyByZW1vdmVzIHBhZGRpbmcgZnJvbSB0aGUgZGVjcnlwdGVkLCBTU0x2MywgQ0JDCiAgKiByZWNvcmQgaW4gfHJlY3wgYnkgdXBkYXRpbmcgfHJlYy0+bGVuZ3RofCBpbiBjb25zdGFudCB0aW1lLgogICoKQEAgLTEyNiw4ICs5Niw4IEBACiAJcGFkZGluZ19sZW5ndGggPSBnb29kICYgKHBhZGRpbmdfbGVuZ3RoKzEpOwogCXJlYy0+bGVuZ3RoIC09IHBhZGRpbmdfbGVuZ3RoOwogCXJlYy0+dHlwZSB8PSBwYWRkaW5nX2xlbmd0aDw8ODsJLyoga2x1ZGdlOiBwYXNzIHBhZGRpbmcgbGVuZ3RoICovCi0JcmV0dXJuIChpbnQpKChnb29kICYgMSkgfCAofmdvb2QgJiAtMSkpOwotfQorCXJldHVybiBjb25zdGFudF90aW1lX3NlbGVjdF9pbnQoZ29vZCwgMSwgLTEpOworCX0KIAogLyogdGxzMV9jYmNfcmVtb3ZlX3BhZGRpbmcgcmVtb3ZlcyB0aGUgQ0JDIHBhZGRpbmcgZnJvbSB0aGUgZGVjcnlwdGVkLCBUTFMsIENCQwogICogcmVjb3JkIGluIHxyZWN8IGluIGNvbnN0YW50IHRpbWUgYW5kIHJldHVybnMgMSBpZiB0aGUgcGFkZGluZyBpcyB2YWxpZCBhbmQKQEAgLTIwOCw3ICsxNzgsNyBAQAogCiAJZm9yIChpID0gMDsgaSA8IHRvX2NoZWNrOyBpKyspCiAJCXsKLQkJdW5zaWduZWQgY2hhciBtYXNrID0gY29uc3RhbnRfdGltZV9nZShwYWRkaW5nX2xlbmd0aCwgaSk7CisJCXVuc2lnbmVkIGNoYXIgbWFzayA9IGNvbnN0YW50X3RpbWVfZ2VfOChwYWRkaW5nX2xlbmd0aCwgaSk7CiAJCXVuc2lnbmVkIGNoYXIgYiA9IHJlYy0+ZGF0YVtyZWMtPmxlbmd0aC0xLWldOwogCQkvKiBUaGUgZmluYWwgfHBhZGRpbmdfbGVuZ3RoKzF8IGJ5dGVzIHNob3VsZCBhbGwgaGF2ZSB0aGUgdmFsdWUKIAkJICogfHBhZGRpbmdfbGVuZ3RofC4gVGhlcmVmb3JlIHRoZSBYT1Igc2hvdWxkIGJlIHplcm8uICovCkBAIC0yMTYsMjAgKzE4NiwxNCBAQAogCQl9CiAKIAkvKiBJZiBhbnkgb2YgdGhlIGZpbmFsIHxwYWRkaW5nX2xlbmd0aCsxfCBieXRlcyBoYWQgdGhlIHdyb25nIHZhbHVlLAotCSAqIG9uZSBvciBtb3JlIG9mIHRoZSBsb3dlciBlaWdodCBiaXRzIG9mIHxnb29kfCB3aWxsIGJlIGNsZWFyZWQuIFdlCi0JICogQU5EIHRoZSBib3R0b20gOCBiaXRzIHRvZ2V0aGVyIGFuZCBkdXBsaWNhdGUgdGhlIHJlc3VsdCB0byBhbGwgdGhlCi0JICogYml0cy4gKi8KLQlnb29kICY9IGdvb2QgPj4gNDsKLQlnb29kICY9IGdvb2QgPj4gMjsKLQlnb29kICY9IGdvb2QgPj4gMTsKLQlnb29kIDw8PSBzaXplb2YoZ29vZCkqOC0xOwotCWdvb2QgPSBEVVBMSUNBVEVfTVNCX1RPX0FMTChnb29kKTsKLQorCSAqIG9uZSBvciBtb3JlIG9mIHRoZSBsb3dlciBlaWdodCBiaXRzIG9mIHxnb29kfCB3aWxsIGJlIGNsZWFyZWQuCisJICovCisJZ29vZCA9IGNvbnN0YW50X3RpbWVfZXEoMHhmZiwgZ29vZCAmIDB4ZmYpOwogCXBhZGRpbmdfbGVuZ3RoID0gZ29vZCAmIChwYWRkaW5nX2xlbmd0aCsxKTsKIAlyZWMtPmxlbmd0aCAtPSBwYWRkaW5nX2xlbmd0aDsKIAlyZWMtPnR5cGUgfD0gcGFkZGluZ19sZW5ndGg8PDg7CS8qIGtsdWRnZTogcGFzcyBwYWRkaW5nIGxlbmd0aCAqLwogCi0JcmV0dXJuIChpbnQpKChnb29kICYgMSkgfCAofmdvb2QgJiAtMSkpOworCXJldHVybiBjb25zdGFudF90aW1lX3NlbGVjdF9pbnQoZ29vZCwgMSwgLTEpOwogCX0KIAogLyogc3NsM19jYmNfY29weV9tYWMgY29waWVzIHxtZF9zaXplfCBieXRlcyBmcm9tIHRoZSBlbmQgb2YgfHJlY3wgdG8gfG91dHwgaW4KQEAgLTI5Niw4ICsyNjAsOCBAQAogCW1lbXNldChyb3RhdGVkX21hYywgMCwgbWRfc2l6ZSk7CiAJZm9yIChpID0gc2Nhbl9zdGFydCwgaiA9IDA7IGkgPCBvcmlnX2xlbjsgaSsrKQogCQl7Ci0JCXVuc2lnbmVkIGNoYXIgbWFjX3N0YXJ0ZWQgPSBjb25zdGFudF90aW1lX2dlKGksIG1hY19zdGFydCk7Ci0JCXVuc2lnbmVkIGNoYXIgbWFjX2VuZGVkID0gY29uc3RhbnRfdGltZV9nZShpLCBtYWNfZW5kKTsKKwkJdW5zaWduZWQgY2hhciBtYWNfc3RhcnRlZCA9IGNvbnN0YW50X3RpbWVfZ2VfOChpLCBtYWNfc3RhcnQpOworCQl1bnNpZ25lZCBjaGFyIG1hY19lbmRlZCA9IGNvbnN0YW50X3RpbWVfZ2VfOChpLCBtYWNfZW5kKTsKIAkJdW5zaWduZWQgY2hhciBiID0gcmVjLT5kYXRhW2ldOwogCQlyb3RhdGVkX21hY1tqKytdIHw9IGIgJiBtYWNfc3RhcnRlZCAmIH5tYWNfZW5kZWQ7CiAJCWogJj0gY29uc3RhbnRfdGltZV9sdChqLG1kX3NpemUpOwpAQCAtNjgzLDEyICs2NDcsMTIgQEAKIAkJCQliID0gZGF0YVtrLWhlYWRlcl9sZW5ndGhdOwogCQkJaysrOwogCi0JCQlpc19wYXN0X2MgPSBpc19ibG9ja19hICYgY29uc3RhbnRfdGltZV9nZShqLCBjKTsKLQkJCWlzX3Bhc3RfY3AxID0gaXNfYmxvY2tfYSAmIGNvbnN0YW50X3RpbWVfZ2UoaiwgYysxKTsKKwkJCWlzX3Bhc3RfYyA9IGlzX2Jsb2NrX2EgJiBjb25zdGFudF90aW1lX2dlXzgoaiwgYyk7CisJCQlpc19wYXN0X2NwMSA9IGlzX2Jsb2NrX2EgJiBjb25zdGFudF90aW1lX2dlXzgoaiwgYysxKTsKIAkJCS8qIElmIHRoaXMgaXMgdGhlIGJsb2NrIGNvbnRhaW5pbmcgdGhlIGVuZCBvZiB0aGUKIAkJCSAqIGFwcGxpY2F0aW9uIGRhdGEsIGFuZCB3ZSBhcmUgYXQgdGhlIG9mZnNldCBmb3IgdGhlCiAJCQkgKiAweDgwIHZhbHVlLCB0aGVuIG92ZXJ3cml0ZSBiIHdpdGggMHg4MC4gKi8KLQkJCWIgPSAoYiZ+aXNfcGFzdF9jKSB8ICgweDgwJmlzX3Bhc3RfYyk7CisgICAgICAgICAgICAgICAgICAgICAgICBiID0gIGNvbnN0YW50X3RpbWVfc2VsZWN0XzgoaXNfcGFzdF9jLCAweDgwLCBiKTsKIAkJCS8qIElmIHRoaXMgdGhlIHRoZSBibG9jayBjb250YWluaW5nIHRoZSBlbmQgb2YgdGhlCiAJCQkgKiBhcHBsaWNhdGlvbiBkYXRhIGFuZCB3ZSdyZSBwYXN0IHRoZSAweDgwIHZhbHVlIHRoZW4KIAkJCSAqIGp1c3Qgd3JpdGUgemVyby4gKi8KQEAgLTcwNCw3ICs2NjgsOCBAQAogCQkJaWYgKGogPj0gbWRfYmxvY2tfc2l6ZSAtIG1kX2xlbmd0aF9zaXplKQogCQkJCXsKIAkJCQkvKiBJZiB0aGlzIGlzIGluZGV4X2IsIHdyaXRlIGEgbGVuZ3RoIGJ5dGUuICovCi0JCQkJYiA9IChiJn5pc19ibG9ja19iKSB8IChpc19ibG9ja19iJmxlbmd0aF9ieXRlc1tqLShtZF9ibG9ja19zaXplLW1kX2xlbmd0aF9zaXplKV0pOworCQkJCWIgPSBjb25zdGFudF90aW1lX3NlbGVjdF84KAorCQkJCQlpc19ibG9ja19iLCBsZW5ndGhfYnl0ZXNbai0obWRfYmxvY2tfc2l6ZS1tZF9sZW5ndGhfc2l6ZSldLCBiKTsKIAkJCQl9CiAJCQlibG9ja1tqXSA9IGI7CiAJCQl9CmRpZmYgLS1naXQgYS9zc2wvczNfY2xudC5jIGIvc3NsL3MzX2NsbnQuYwppbmRleCAxYzFiYTQ5Li44YTgxNzkzIDEwMDY0NAotLS0gYS9zc2wvczNfY2xudC5jCisrKyBiL3NzbC9zM19jbG50LmMKQEAgLTMzMiw5ICszMzIsOSBAQAogCQkJCWJyZWFrOwogCQkJCX0KICNlbmRpZgotCQkJLyogQ2hlY2sgaWYgaXQgaXMgYW5vbiBESC9FQ0RIICovCisJCQkvKiBDaGVjayBpZiBpdCBpcyBhbm9uIERIL0VDREgsIFNSUCBhdXRoICovCiAJCQkvKiBvciBub24tUlNBIFBTSyAqLwotCQkJaWYgKCEocy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fYXV0aCAmIFNTTF9hTlVMTCkgJiYKKwkJCWlmICghKHMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX2F1dGggJiAoU1NMX2FOVUxMfFNTTF9hU1JQKSkgJiYKIAkJCSAgICAhKChzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9hdXRoICYgU1NMX2FQU0spICYmCiAJCQkgICAgICAhKHMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX21rZXkgJiBTU0xfa1JTQSkpKQogCQkJCXsKQEAgLTUzMCw2ICs1MzAsNyBAQAogCQkJCXMtPm1ldGhvZC0+c3NsM19lbmMtPmNsaWVudF9maW5pc2hlZF9sYWJlbCwKIAkJCQlzLT5tZXRob2QtPnNzbDNfZW5jLT5jbGllbnRfZmluaXNoZWRfbGFiZWxfbGVuKTsKIAkJCWlmIChyZXQgPD0gMCkgZ290byBlbmQ7CisJCQlzLT5zMy0+ZmxhZ3MgfD0gU1NMM19GTEFHU19DQ1NfT0s7CiAJCQlzLT5zdGF0ZT1TU0wzX1NUX0NXX0ZMVVNIOwogCiAJCQkvKiBjbGVhciBmbGFncyAqLwpAQCAtOTc1LDYgKzk3Niw3IEBACiAJCQl7CiAJCQlzLT5zZXNzaW9uLT5jaXBoZXIgPSBwcmVmX2NpcGhlciA/CiAJCQkJcHJlZl9jaXBoZXIgOiBzc2xfZ2V0X2NpcGhlcl9ieV9jaGFyKHMsIHAraik7CisJICAgIAkJcy0+czMtPmZsYWdzIHw9IFNTTDNfRkxBR1NfQ0NTX09LOwogCQkJfQogCQl9CiAjZW5kaWYgLyogT1BFTlNTTF9OT19UTFNFWFQgKi8KQEAgLTEwMzIsNiArMTAzNCwxNSBAQAogCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfU0VSVkVSX0hFTExPLFNTTF9SX1dST05HX0NJUEhFUl9SRVRVUk5FRCk7CiAJCWdvdG8gZl9lcnI7CiAJCX0KKyNpZm5kZWYgT1BFTlNTTF9OT19TUlAKKwlpZiAoKChjLT5hbGdvcml0aG1fbWtleSAmIFNTTF9rU1JQKSB8fCAoYy0+YWxnb3JpdGhtX2F1dGggJiBTU0xfYVNSUCkpICYmCisJCSAgICAhKHMtPnNycF9jdHguc3JwX01hc2sgJiBTU0xfa1NSUCkpCisJCXsKKwkJYWw9U1NMX0FEX0lMTEVHQUxfUEFSQU1FVEVSOworCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfU0VSVkVSX0hFTExPLFNTTF9SX1dST05HX0NJUEhFUl9SRVRVUk5FRCk7CisJCWdvdG8gZl9lcnI7CisJCX0KKyNlbmRpZiAvKiBPUEVOU1NMX05PX1NSUCAqLwogCXArPXNzbF9wdXRfY2lwaGVyX2J5X2NoYXIocyxOVUxMLE5VTEwpOwogCiAJc2s9c3NsX2dldF9jaXBoZXJzX2J5X2lkKHMpOwpAQCAtMTM0Niw4ICsxMzU3LDggQEAKICNlbmRpZgogCUVWUF9NRF9DVFggbWRfY3R4OwogCXVuc2lnbmVkIGNoYXIgKnBhcmFtLCpwOwotCWludCBhbCxpLGoscGFyYW1fbGVuLG9rOwotCWxvbmcgbixhbGdfayxhbGdfYTsKKwlpbnQgYWwsaixvazsKKwlsb25nIGkscGFyYW1fbGVuLG4sYWxnX2ssYWxnX2E7CiAJRVZQX1BLRVkgKnBrZXk9TlVMTDsKIAljb25zdCBFVlBfTUQgKm1kID0gTlVMTDsKICNpZm5kZWYgT1BFTlNTTF9OT19SU0EKQEAgLTE0MjUsMTkgKzE0MzYsMjkgQEAKIAkJcy0+c2Vzc2lvbi0+c2Vzc19jZXJ0PXNzbF9zZXNzX2NlcnRfbmV3KCk7CiAJCX0KIAorCS8qIFRvdGFsIGxlbmd0aCBvZiB0aGUgcGFyYW1ldGVycyBpbmNsdWRpbmcgdGhlIGxlbmd0aCBwcmVmaXggKi8KIAlwYXJhbV9sZW49MDsKKwogCWFsZ19rPXMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX21rZXk7CiAJYWxnX2E9cy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fYXV0aDsKIAlFVlBfTURfQ1RYX2luaXQoJm1kX2N0eCk7CiAKKwlhbD1TU0xfQURfREVDT0RFX0VSUk9SOworCiAjaWZuZGVmIE9QRU5TU0xfTk9fUFNLCiAJaWYgKGFsZ19hICYgU1NMX2FQU0spCiAJCXsKIAkJY2hhciB0bXBfaWRfaGludFtQU0tfTUFYX0lERU5USVRZX0xFTisxXTsKIAotCQlhbD1TU0xfQURfSEFORFNIQUtFX0ZBSUxVUkU7CisJCXBhcmFtX2xlbiA9IDI7CisJCWlmIChwYXJhbV9sZW4gPiBuKQorCQkJeworCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSwKKwkJCQlTU0xfUl9MRU5HVEhfVE9PX1NIT1JUKTsKKwkJCWdvdG8gZl9lcnI7CisJCQl9CiAJCW4ycyhwLGkpOwotCQlwYXJhbV9sZW49aSsyOworCiAJCWlmIChzLT5zZXNzaW9uLT5wc2tfaWRlbnRpdHlfaGludCkKIAkJCXsKIAkJCU9QRU5TU0xfZnJlZShzLT5zZXNzaW9uLT5wc2tfaWRlbnRpdHlfaGludCk7CkBAIC0xNDUxLDE3ICsxNDcyLDE5IEBACiAJCQkgKiBsb25nIGFzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIFBTSyBpZGVudGl0eS4gKi8KIAkJCWlmIChpID4gUFNLX01BWF9JREVOVElUWV9MRU4pCiAJCQkJeworCQkJCWFsPVNTTF9BRF9IQU5EU0hBS0VfRkFJTFVSRTsKIAkJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLAogCQkJCQlTU0xfUl9EQVRBX0xFTkdUSF9UT09fTE9ORyk7CiAJCQkJZ290byBmX2VycjsKIAkJCQl9Ci0JCQlpZiAocGFyYW1fbGVuID4gbikKKwkJCWlmIChpID4gbiAtIHBhcmFtX2xlbikKIAkJCQl7Ci0JCQkJYWw9U1NMX0FEX0RFQ09ERV9FUlJPUjsKIAkJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLAogCQkJCQlTU0xfUl9CQURfUFNLX0lERU5USVRZX0hJTlRfTEVOR1RIKTsKIAkJCQlnb3RvIGZfZXJyOwogCQkJCX0KKwkJCXBhcmFtX2xlbiArPSBpOworCiAJCQkvKiBJZiByZWNlaXZlZCBQU0sgaWRlbnRpdHkgaGludCBjb250YWlucyBOVUxMCiAJCQkgKiBjaGFyYWN0ZXJzLCB0aGUgaGludCBpcyB0cnVuY2F0ZWQgZnJvbSB0aGUgZmlyc3QKIAkJCSAqIE5VTEwuIHAgbWF5IG5vdCBiZSBlbmRpbmcgd2l0aCBOVUxMLCBzbyBjcmVhdGUgYQpAQCAtMTQ3MSw2ICsxNDk0LDcgQEAKIAkJCXMtPnNlc3Npb24tPnBza19pZGVudGl0eV9oaW50ID0gQlVGX3N0cmR1cCh0bXBfaWRfaGludCk7CiAJCQlpZiAocy0+c2Vzc2lvbi0+cHNrX2lkZW50aXR5X2hpbnQgPT0gTlVMTCkKIAkJCQl7CisJCQkJYWw9U1NMX0FEX0hBTkRTSEFLRV9GQUlMVVJFOwogCQkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsIEVSUl9SX01BTExPQ19GQUlMVVJFKTsKIAkJCQlnb3RvIGZfZXJyOwogCQkJCX0KQEAgLTE0ODQsMTQgKzE1MDgsMjIgQEAKICNpZm5kZWYgT1BFTlNTTF9OT19TUlAKIAllbHNlIGlmIChhbGdfayAmIFNTTF9rU1JQKQogCQl7Ci0JCW4ycyhwLGkpOwotCQlwYXJhbV9sZW49aSsyOworCQlwYXJhbV9sZW4gPSAyOwogCQlpZiAocGFyYW1fbGVuID4gbikKIAkJCXsKLQkJCWFsPVNTTF9BRF9ERUNPREVfRVJST1I7CisJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLAorCQkJCVNTTF9SX0xFTkdUSF9UT09fU0hPUlQpOworCQkJZ290byBmX2VycjsKKwkJCX0KKwkJbjJzKHAsaSk7CisKKwkJaWYgKGkgPiBuIC0gcGFyYW1fbGVuKQorCQkJewogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxTU0xfUl9CQURfU1JQX05fTEVOR1RIKTsKIAkJCWdvdG8gZl9lcnI7CiAJCQl9CisJCXBhcmFtX2xlbiArPSBpOworCiAJCWlmICghKHMtPnNycF9jdHguTj1CTl9iaW4yYm4ocCxpLE5VTEwpKSkKIAkJCXsKIAkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsRVJSX1JfQk5fTElCKTsKQEAgLTE0OTksMTQgKzE1MzEsMjQgQEAKIAkJCX0KIAkJcCs9aTsKIAotCQluMnMocCxpKTsKLQkJcGFyYW1fbGVuKz1pKzI7Ci0JCWlmIChwYXJhbV9sZW4gPiBuKQorCisJCWlmICgyID4gbiAtIHBhcmFtX2xlbikKIAkJCXsKLQkJCWFsPVNTTF9BRF9ERUNPREVfRVJST1I7CisJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLAorCQkJCVNTTF9SX0xFTkdUSF9UT09fU0hPUlQpOworCQkJZ290byBmX2VycjsKKwkJCX0KKwkJcGFyYW1fbGVuICs9IDI7CisKKwkJbjJzKHAsaSk7CisKKwkJaWYgKGkgPiBuIC0gcGFyYW1fbGVuKQorCQkJewogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxTU0xfUl9CQURfU1JQX0dfTEVOR1RIKTsKIAkJCWdvdG8gZl9lcnI7CiAJCQl9CisJCXBhcmFtX2xlbiArPSBpOworCiAJCWlmICghKHMtPnNycF9jdHguZz1CTl9iaW4yYm4ocCxpLE5VTEwpKSkKIAkJCXsKIAkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsRVJSX1JfQk5fTElCKTsKQEAgLTE1MTQsMTUgKzE1NTYsMjUgQEAKIAkJCX0KIAkJcCs9aTsKIAorCisJCWlmICgxID4gbiAtIHBhcmFtX2xlbikKKwkJCXsKKwkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsCisJCQkJU1NMX1JfTEVOR1RIX1RPT19TSE9SVCk7CisJCQlnb3RvIGZfZXJyOworCQkJfQorCQlwYXJhbV9sZW4gKz0gMTsKKwogCQlpID0gKHVuc2lnbmVkIGludCkocFswXSk7CiAJCXArKzsKLQkJcGFyYW1fbGVuKz1pKzE7Ci0JCWlmIChwYXJhbV9sZW4gPiBuKQorCisJCWlmIChpID4gbiAtIHBhcmFtX2xlbikKIAkJCXsKLQkJCWFsPVNTTF9BRF9ERUNPREVfRVJST1I7CiAJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLFNTTF9SX0JBRF9TUlBfU19MRU5HVEgpOwogCQkJZ290byBmX2VycjsKIAkJCX0KKwkJcGFyYW1fbGVuICs9IGk7CisKIAkJaWYgKCEocy0+c3JwX2N0eC5zPUJOX2JpbjJibihwLGksTlVMTCkpKQogCQkJewogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxFUlJfUl9CTl9MSUIpOwpAQCAtMTUzMCwxNCArMTU4MiwyMyBAQAogCQkJfQogCQlwKz1pOwogCi0JCW4ycyhwLGkpOwotCQlwYXJhbV9sZW4rPWkrMjsKLQkJaWYgKHBhcmFtX2xlbiA+IG4pCisJCWlmICgyID4gbiAtIHBhcmFtX2xlbikKIAkJCXsKLQkJCWFsPVNTTF9BRF9ERUNPREVfRVJST1I7CisJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLAorCQkJCVNTTF9SX0xFTkdUSF9UT09fU0hPUlQpOworCQkJZ290byBmX2VycjsKKwkJCX0KKwkJcGFyYW1fbGVuICs9IDI7CisKKwkJbjJzKHAsaSk7CisKKwkJaWYgKGkgPiBuIC0gcGFyYW1fbGVuKQorCQkJewogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxTU0xfUl9CQURfU1JQX0JfTEVOR1RIKTsKIAkJCWdvdG8gZl9lcnI7CiAJCQl9CisJCXBhcmFtX2xlbiArPSBpOworCiAJCWlmICghKHMtPnNycF9jdHguQj1CTl9iaW4yYm4ocCxpLE5VTEwpKSkKIAkJCXsKIAkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsRVJSX1JfQk5fTElCKTsKQEAgLTE1NDYsNiArMTYwNywxMiBAQAogCQlwKz1pOwogCQluLT1wYXJhbV9sZW47CiAKKwkJaWYgKCFzcnBfdmVyaWZ5X3NlcnZlcl9wYXJhbShzLCAmYWwpKQorCQkJeworCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxTU0xfUl9CQURfU1JQX1BBUkFNRVRFUlMpOworCQkJZ290byBmX2VycjsKKwkJCX0KKwogLyogV2UgbXVzdCBjaGVjayBpZiB0aGVyZSBpcyBhIGNlcnRpZmljYXRlICovCiAjaWZuZGVmIE9QRU5TU0xfTk9fUlNBCiAJCWlmIChhbGdfYSAmIFNTTF9hUlNBKQpAQCAtMTU2OCwxNCArMTYzNSwyMyBAQAogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxFUlJfUl9NQUxMT0NfRkFJTFVSRSk7CiAJCQlnb3RvIGVycjsKIAkJCX0KLQkJbjJzKHAsaSk7Ci0JCXBhcmFtX2xlbj1pKzI7CisKKwkJcGFyYW1fbGVuID0gMjsKIAkJaWYgKHBhcmFtX2xlbiA+IG4pCiAJCQl7Ci0JCQlhbD1TU0xfQURfREVDT0RFX0VSUk9SOworCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSwKKwkJCQlTU0xfUl9MRU5HVEhfVE9PX1NIT1JUKTsKKwkJCWdvdG8gZl9lcnI7CisJCQl9CisJCW4ycyhwLGkpOworCisJCWlmIChpID4gbiAtIHBhcmFtX2xlbikKKwkJCXsKIAkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsU1NMX1JfQkFEX1JTQV9NT0RVTFVTX0xFTkdUSCk7CiAJCQlnb3RvIGZfZXJyOwogCQkJfQorCQlwYXJhbV9sZW4gKz0gaTsKKwogCQlpZiAoIShyc2EtPm49Qk5fYmluMmJuKHAsaSxyc2EtPm4pKSkKIAkJCXsKIAkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsRVJSX1JfQk5fTElCKTsKQEAgLTE1ODMsMTQgKzE2NTksMjMgQEAKIAkJCX0KIAkJcCs9aTsKIAotCQluMnMocCxpKTsKLQkJcGFyYW1fbGVuKz1pKzI7Ci0JCWlmIChwYXJhbV9sZW4gPiBuKQorCQlpZiAoMiA+IG4gLSBwYXJhbV9sZW4pCiAJCQl7Ci0JCQlhbD1TU0xfQURfREVDT0RFX0VSUk9SOworCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSwKKwkJCQlTU0xfUl9MRU5HVEhfVE9PX1NIT1JUKTsKKwkJCWdvdG8gZl9lcnI7CisJCQl9CisJCXBhcmFtX2xlbiArPSAyOworCisJCW4ycyhwLGkpOworCisJCWlmIChpID4gbiAtIHBhcmFtX2xlbikKKwkJCXsKIAkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsU1NMX1JfQkFEX1JTQV9FX0xFTkdUSCk7CiAJCQlnb3RvIGZfZXJyOwogCQkJfQorCQlwYXJhbV9sZW4gKz0gaTsKKwogCQlpZiAoIShyc2EtPmU9Qk5fYmluMmJuKHAsaSxyc2EtPmUpKSkKIAkJCXsKIAkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsRVJSX1JfQk5fTElCKTsKQEAgLTE2MTksMTQgKzE3MDQsMjMgQEAKIAkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsRVJSX1JfREhfTElCKTsKIAkJCWdvdG8gZXJyOwogCQkJfQotCQluMnMocCxpKTsKLQkJcGFyYW1fbGVuPWkrMjsKKworCQlwYXJhbV9sZW4gPSAyOwogCQlpZiAocGFyYW1fbGVuID4gbikKIAkJCXsKLQkJCWFsPVNTTF9BRF9ERUNPREVfRVJST1I7CisJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLAorCQkJCVNTTF9SX0xFTkdUSF9UT09fU0hPUlQpOworCQkJZ290byBmX2VycjsKKwkJCX0KKwkJbjJzKHAsaSk7CisKKwkJaWYgKGkgPiBuIC0gcGFyYW1fbGVuKQorCQkJewogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxTU0xfUl9CQURfREhfUF9MRU5HVEgpOwogCQkJZ290byBmX2VycjsKIAkJCX0KKwkJcGFyYW1fbGVuICs9IGk7CisKIAkJaWYgKCEoZGgtPnA9Qk5fYmluMmJuKHAsaSxOVUxMKSkpCiAJCQl7CiAJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLEVSUl9SX0JOX0xJQik7CkBAIC0xNjM0LDE0ICsxNzI4LDIzIEBACiAJCQl9CiAJCXArPWk7CiAKLQkJbjJzKHAsaSk7Ci0JCXBhcmFtX2xlbis9aSsyOwotCQlpZiAocGFyYW1fbGVuID4gbikKKwkJaWYgKDIgPiBuIC0gcGFyYW1fbGVuKQogCQkJewotCQkJYWw9U1NMX0FEX0RFQ09ERV9FUlJPUjsKKwkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsCisJCQkJU1NMX1JfTEVOR1RIX1RPT19TSE9SVCk7CisJCQlnb3RvIGZfZXJyOworCQkJfQorCQlwYXJhbV9sZW4gKz0gMjsKKworCQluMnMocCxpKTsKKworCQlpZiAoaSA+IG4gLSBwYXJhbV9sZW4pCisJCQl7CiAJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLFNTTF9SX0JBRF9ESF9HX0xFTkdUSCk7CiAJCQlnb3RvIGZfZXJyOwogCQkJfQorCQlwYXJhbV9sZW4gKz0gaTsKKwogCQlpZiAoIShkaC0+Zz1CTl9iaW4yYm4ocCxpLE5VTEwpKSkKIAkJCXsKIAkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsRVJSX1JfQk5fTElCKTsKQEAgLTE2NDksMTQgKzE3NTIsMjMgQEAKIAkJCX0KIAkJcCs9aTsKIAotCQluMnMocCxpKTsKLQkJcGFyYW1fbGVuKz1pKzI7Ci0JCWlmIChwYXJhbV9sZW4gPiBuKQorCQlpZiAoMiA+IG4gLSBwYXJhbV9sZW4pCiAJCQl7Ci0JCQlhbD1TU0xfQURfREVDT0RFX0VSUk9SOworCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSwKKwkJCQlTU0xfUl9MRU5HVEhfVE9PX1NIT1JUKTsKKwkJCWdvdG8gZl9lcnI7CisJCQl9CisJCXBhcmFtX2xlbiArPSAyOworCisJCW4ycyhwLGkpOworCisJCWlmIChpID4gbiAtIHBhcmFtX2xlbikKKwkJCXsKIAkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsU1NMX1JfQkFEX0RIX1BVQl9LRVlfTEVOR1RIKTsKIAkJCWdvdG8gZl9lcnI7CiAJCQl9CisJCXBhcmFtX2xlbiArPSBpOworCiAJCWlmICghKGRoLT5wdWJfa2V5PUJOX2JpbjJibihwLGksTlVMTCkpKQogCQkJewogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxFUlJfUl9CTl9MSUIpOwpAQCAtMTcwOCwxMiArMTgyMCwxOSBAQAogCQkgKi8KIAogCQkvKiBYWFg6IEZvciBub3cgd2Ugb25seSBzdXBwb3J0IG5hbWVkIChub3QgZ2VuZXJpYykgY3VydmVzCi0JCSAqIGFuZCB0aGUgRUNQYXJhbWV0ZXJzIGluIHRoaXMgY2FzZSBpcyBqdXN0IHRocmVlIGJ5dGVzLgorCQkgKiBhbmQgdGhlIEVDUGFyYW1ldGVycyBpbiB0aGlzIGNhc2UgaXMganVzdCB0aHJlZSBieXRlcy4gV2UKKwkJICogYWxzbyBuZWVkIG9uZSBieXRlIGZvciB0aGUgbGVuZ3RoIG9mIHRoZSBlbmNvZGVkIHBvaW50CiAJCSAqLwotCQlwYXJhbV9sZW49MzsKLQkJaWYgKChwYXJhbV9sZW4gPiBuKSB8fAotCQkgICAgKCpwICE9IE5BTUVEX0NVUlZFX1RZUEUpIHx8IAotCQkgICAgKChjdXJ2ZV9uaWQgPSB0bHMxX2VjX2N1cnZlX2lkMm5pZCgqKHAgKyAyKSkpID09IDApKSAKKwkJcGFyYW1fbGVuPTQ7CisJCWlmIChwYXJhbV9sZW4gPiBuKQorCQkJeworCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSwKKwkJCQlTU0xfUl9MRU5HVEhfVE9PX1NIT1JUKTsKKwkJCWdvdG8gZl9lcnI7CisJCQl9CisKKwkJaWYgKCgqcCAhPSBOQU1FRF9DVVJWRV9UWVBFKSB8fCAKKwkJICAgICgoY3VydmVfbmlkID0gdGxzMV9lY19jdXJ2ZV9pZDJuaWQoKihwICsgMikpKSA9PSAwKSkKIAkJCXsKIAkJCWFsPVNTTF9BRF9JTlRFUk5BTF9FUlJPUjsKIAkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsU1NMX1JfVU5BQkxFX1RPX0ZJTkRfRUNESF9QQVJBTUVURVJTKTsKQEAgLTE3NTUsMTUgKzE4NzQsMTUgQEAKIAogCQllbmNvZGVkX3B0X2xlbiA9ICpwOyAgLyogbGVuZ3RoIG9mIGVuY29kZWQgcG9pbnQgKi8KIAkJcCs9MTsKLQkJcGFyYW1fbGVuICs9ICgxICsgZW5jb2RlZF9wdF9sZW4pOwotCQlpZiAoKHBhcmFtX2xlbiA+IG4pIHx8CisKKwkJaWYgKChlbmNvZGVkX3B0X2xlbiA+IG4gLSBwYXJhbV9sZW4pIHx8CiAJCSAgICAoRUNfUE9JTlRfb2N0MnBvaW50KGdyb3VwLCBzcnZyX2VjcG9pbnQsIAogCQkJcCwgZW5jb2RlZF9wdF9sZW4sIGJuX2N0eCkgPT0gMCkpCiAJCQl7Ci0JCQlhbD1TU0xfQURfREVDT0RFX0VSUk9SOwogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxTU0xfUl9CQURfRUNQT0lOVCk7CiAJCQlnb3RvIGZfZXJyOwogCQkJfQorCQlwYXJhbV9sZW4gKz0gZW5jb2RlZF9wdF9sZW47CiAKIAkJbi09cGFyYW1fbGVuOwogCQlwKz1lbmNvZGVkX3B0X2xlbjsKQEAgLTE4MDYsNyArMTkyNSwxNSBAQAogCQl7CiAJCWlmIChUTFMxX2dldF92ZXJzaW9uKHMpID49IFRMUzFfMl9WRVJTSU9OKQogCQkJewotCQkJaW50IHNpZ2FsZyA9IHRsczEyX2dldF9zaWdpZChwa2V5KTsKKwkJCWludCBzaWdhbGc7CisJCQlpZiAoMiA+IG4pCisJCQkJeworCQkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsCisJCQkJCVNTTF9SX0xFTkdUSF9UT09fU0hPUlQpOworCQkJCWdvdG8gZl9lcnI7CisJCQkJfQorCisJCQlzaWdhbGcgPSB0bHMxMl9nZXRfc2lnaWQocGtleSk7CiAJCQkvKiBTaG91bGQgbmV2ZXIgaGFwcGVuICovCiAJCQlpZiAoc2lnYWxnID09IC0xKQogCQkJCXsKQEAgLTE4MjQsNyArMTk1MSw2IEBACiAJCQlpZiAobWQgPT0gTlVMTCkKIAkJCQl7CiAJCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxTU0xfUl9VTktOT1dOX0RJR0VTVCk7Ci0JCQkJYWw9U1NMX0FEX0RFQ09ERV9FUlJPUjsKIAkJCQlnb3RvIGZfZXJyOwogCQkJCX0KICNpZmRlZiBTU0xfREVCVUcKQEAgLTE4MzUsMTUgKzE5NjEsMjEgQEAKIAkJCX0KIAkJZWxzZQogCQkJbWQgPSBFVlBfc2hhMSgpOwotCQkJCisKKwkJaWYgKDIgPiBuKQorCQkJeworCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSwKKwkJCQlTU0xfUl9MRU5HVEhfVE9PX1NIT1JUKTsKKwkJCWdvdG8gZl9lcnI7CisJCQl9CiAJCW4ycyhwLGkpOwogCQluLT0yOwogCQlqPUVWUF9QS0VZX3NpemUocGtleSk7CiAKKwkJLyogQ2hlY2sgc2lnbmF0dXJlIGxlbmd0aC4gSWYgbiBpcyAwIHRoZW4gc2lnbmF0dXJlIGlzIGVtcHR5ICovCiAJCWlmICgoaSAhPSBuKSB8fCAobiA+IGopIHx8IChuIDw9IDApKQogCQkJewogCQkJLyogd3JvbmcgcGFja2V0IGxlbmd0aCAqLwotCQkJYWw9U1NMX0FEX0RFQ09ERV9FUlJPUjsKIAkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsU1NMX1JfV1JPTkdfU0lHTkFUVVJFX0xFTkdUSCk7CiAJCQlnb3RvIGZfZXJyOwogCQkJfQpAQCAtMTg1Miw2ICsxOTg0LDcgQEAKIAkJaWYgKHBrZXktPnR5cGUgPT0gRVZQX1BLRVlfUlNBICYmIFRMUzFfZ2V0X3ZlcnNpb24ocykgPCBUTFMxXzJfVkVSU0lPTikKIAkJCXsKIAkJCWludCBudW07CisJCQl1bnNpZ25lZCBpbnQgc2l6ZTsKIAogCQkJaj0wOwogCQkJcT1tZF9idWY7CkBAIC0xODY0LDkgKzE5OTcsOSBAQAogCQkJCUVWUF9EaWdlc3RVcGRhdGUoJm1kX2N0eCwmKHMtPnMzLT5jbGllbnRfcmFuZG9tWzBdKSxTU0wzX1JBTkRPTV9TSVpFKTsKIAkJCQlFVlBfRGlnZXN0VXBkYXRlKCZtZF9jdHgsJihzLT5zMy0+c2VydmVyX3JhbmRvbVswXSksU1NMM19SQU5ET01fU0laRSk7CiAJCQkJRVZQX0RpZ2VzdFVwZGF0ZSgmbWRfY3R4LHBhcmFtLHBhcmFtX2xlbik7Ci0JCQkJRVZQX0RpZ2VzdEZpbmFsX2V4KCZtZF9jdHgscSwodW5zaWduZWQgaW50ICopJmkpOwotCQkJCXErPWk7Ci0JCQkJais9aTsKKwkJCQlFVlBfRGlnZXN0RmluYWxfZXgoJm1kX2N0eCxxLCZzaXplKTsKKwkJCQlxKz1zaXplOworCQkJCWorPXNpemU7CiAJCQkJfQogCQkJaT1SU0FfdmVyaWZ5KE5JRF9tZDVfc2hhMSwgbWRfYnVmLCBqLCBwLCBuLAogCQkJCQkJCQlwa2V5LT5wa2V5LnJzYSk7CkBAIC0xOTAyLDcgKzIwMzUsNyBAQAogCQl9CiAJZWxzZQogCQl7Ci0JCWlmICghKGFsZ19hICYgU1NMX2FOVUxMKSAmJgorCQlpZiAoIShhbGdfYSAmIChTU0xfYU5VTEx8U1NMX2FTUlApKSAmJgogCQkJLyogQW1vbmcgUFNLIGNpcGhlcnMgb25seSBSU0FfUFNLIG5lZWRzIGEgcHVibGljIGtleSAqLwogCQkJISgoYWxnX2EgJiBTU0xfYVBTSykgJiYgIShhbGdfayAmIFNTTF9rUlNBKSkpCiAJCQl7CkBAIC0xOTEyLDcgKzIwNDUsNiBAQAogCQkvKiBzdGlsbCBkYXRhIGxlZnQgb3ZlciAqLwogCQlpZiAobiAhPSAwKQogCQkJewotCQkJYWw9U1NMX0FEX0RFQ09ERV9FUlJPUjsKIAkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsU1NMX1JfRVhUUkFfREFUQV9JTl9NRVNTQUdFKTsKIAkJCWdvdG8gZl9lcnI7CiAJCQl9CkBAIC0yMzM4LDcgKzI0NzAsMTAgQEAKICNpZm5kZWYgT1BFTlNTTF9OT19QU0sKIAkJaWYgKGFsZ19hICYgU1NMX2FQU0spCiAJCQl7Ci0JCQljaGFyIGlkZW50aXR5W1BTS19NQVhfSURFTlRJVFlfTEVOICsgMV07CisJCQkvKiBUaGUgY2FsbGJhY2sgbmVlZHMgUFNLX01BWF9JREVOVElUWV9MRU4gKyAxIGJ5dGVzCisJCQkgKiB0byByZXR1cm4gYSBcMC10ZXJtaW5hdGVkIGlkZW50aXR5LiBUaGUgbGFzdCBieXRlCisJCQkgKiBpcyBmb3IgdXMgZm9yIHNpbXVsYXRpbmcgc3Rybmxlbi4gKi8KKwkJCWNoYXIgaWRlbnRpdHlbUFNLX01BWF9JREVOVElUWV9MRU4gKyAyXTsKIAkJCXNpemVfdCBpZGVudGl0eV9sZW47CiAJCQl1bnNpZ25lZCBjaGFyICp0ID0gTlVMTDsKIAkJCXVuc2lnbmVkIGNoYXIgcHJlX21zW1BTS19NQVhfUFNLX0xFTioyKzRdOwpAQCAtMjM1NSw3ICsyNDkwLDcgQEAKIAogCQkJbWVtc2V0KGlkZW50aXR5LCAwLCBzaXplb2YoaWRlbnRpdHkpKTsKIAkJCXBza19sZW4gPSBzLT5wc2tfY2xpZW50X2NhbGxiYWNrKHMsIHMtPnNlc3Npb24tPnBza19pZGVudGl0eV9oaW50LAotCQkJCWlkZW50aXR5LCBzaXplb2YoaWRlbnRpdHkpLCBwc2ssIHNpemVvZihwc2spKTsKKwkJCQlpZGVudGl0eSwgc2l6ZW9mKGlkZW50aXR5IC0gMSksIHBzaywgc2l6ZW9mKHBzaykpOwogCQkJaWYgKHBza19sZW4gPiBQU0tfTUFYX1BTS19MRU4pCiAJCQkJewogCQkJCVNTTGVycihTU0xfRl9TU0wzX1NFTkRfQ0xJRU5UX0tFWV9FWENIQU5HRSwKQEAgLTIzNjgsMTQgKzI1MDMsMTQgQEAKIAkJCQkJU1NMX1JfUFNLX0lERU5USVRZX05PVF9GT1VORCk7CiAJCQkJZ290byBwc2tfZXJyOwogCQkJCX0KLQkJCWlkZW50aXR5X2xlbiA9IHN0cm5sZW4oaWRlbnRpdHksIHNpemVvZihpZGVudGl0eSkpOworCQkJaWRlbnRpdHlbUFNLX01BWF9JREVOVElUWV9MRU4gKyAxXSA9ICdcMCc7CisJCQlpZGVudGl0eV9sZW4gPSBzdHJsZW4oaWRlbnRpdHkpOwogCQkJaWYgKGlkZW50aXR5X2xlbiA+IFBTS19NQVhfSURFTlRJVFlfTEVOKQogCQkJCXsKIAkJCQlTU0xlcnIoU1NMX0ZfU1NMM19TRU5EX0NMSUVOVF9LRVlfRVhDSEFOR0UsCiAJCQkJCUVSUl9SX0lOVEVSTkFMX0VSUk9SKTsKIAkJCQlnb3RvIHBza19lcnI7CiAJCQkJfQotCiAJCQlpZiAoIShhbGdfayAmIFNTTF9rRUVDREgpKQogCQkJCXsKIAkJCQkvKiBDcmVhdGUgdGhlIHNoYXJlZCBzZWNyZXQgbm93IGlmIHdlJ3JlIG5vdCB1c2luZyBFQ0RIRS1QU0suKi8KQEAgLTI0MDcsNyArMjU0Miw3IEBACiAJCQkJfQogCQkJcHNrX2VyciA9IDA7CiAJCXBza19lcnI6Ci0JCQlPUEVOU1NMX2NsZWFuc2UoaWRlbnRpdHksIFBTS19NQVhfSURFTlRJVFlfTEVOKTsKKwkJCU9QRU5TU0xfY2xlYW5zZShpZGVudGl0eSwgc2l6ZW9mKGlkZW50aXR5KSk7CiAJCQlPUEVOU1NMX2NsZWFuc2UocHJlX21zLCBzaXplb2YocHJlX21zKSk7CiAJCQlpZiAocHNrX2VyciAhPSAwKQogCQkJCXsKQEAgLTI0MjQsNiArMjU1OSwxMyBAQAogCQkJUlNBICpyc2E7CiAJCQl1bnNpZ25lZCBjaGFyIHRtcF9idWZbU1NMX01BWF9NQVNURVJfS0VZX0xFTkdUSF07CiAKKwkJCWlmIChzLT5zZXNzaW9uLT5zZXNzX2NlcnQgPT0gTlVMTCkKKwkJCQl7CisJCQkJLyogV2Ugc2hvdWxkIGFsd2F5cyBoYXZlIGEgc2VydmVyIGNlcnRpZmljYXRlIHdpdGggU1NMX2tSU0EuICovCisJCQkJU1NMZXJyKFNTTF9GX1NTTDNfU0VORF9DTElFTlRfS0VZX0VYQ0hBTkdFLEVSUl9SX0lOVEVSTkFMX0VSUk9SKTsKKwkJCQlnb3RvIGVycjsKKwkJCQl9CisKIAkJCWlmIChzLT5zZXNzaW9uLT5zZXNzX2NlcnQtPnBlZXJfcnNhX3RtcCAhPSBOVUxMKQogCQkJCXJzYT1zLT5zZXNzaW9uLT5zZXNzX2NlcnQtPnBlZXJfcnNhX3RtcDsKIAkJCWVsc2UKQEAgLTMzNDEsNyArMzQ4Myw3IEBACiAJYWxnX2E9cy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fYXV0aDsKIAogCS8qIHdlIGRvbid0IGhhdmUgYSBjZXJ0aWZpY2F0ZSAqLwotCWlmICgoYWxnX2EgJiAoU1NMX2FESHxTU0xfYU5VTEx8U1NMX2FLUkI1KSkgfHwgKChhbGdfYSAmIFNTTF9hUFNLKSAmJiAhKGFsZ19rICYgU1NMX2tSU0EpKSkKKwlpZiAoKGFsZ19hICYgKFNTTF9hREh8U1NMX2FOVUxMfFNTTF9hS1JCNSkpIHx8IChhbGdfayAmIFNTTF9rUFNLKSkKIAkJcmV0dXJuKDEpOwogCiAJc2M9cy0+c2Vzc2lvbi0+c2Vzc19jZXJ0OwpkaWZmIC0tZ2l0IGEvc3NsL3MzX2VuYy5jIGIvc3NsL3MzX2VuYy5jCmluZGV4IDM1OTVjZmYuLmJjYjY1ZDQgMTAwNjQ0Ci0tLSBhL3NzbC9zM19lbmMuYworKysgYi9zc2wvczNfZW5jLmMKQEAgLTY0MSwxMCArNjQxLDE4IEBACiBpbnQgc3NsM19maW5hbF9maW5pc2hfbWFjKFNTTCAqcywgCiAJICAgICBjb25zdCBjaGFyICpzZW5kZXIsIGludCBsZW4sIHVuc2lnbmVkIGNoYXIgKnApCiAJewotCWludCByZXQ7CisJaW50IHJldCwgc2hhMWxlbjsKIAlyZXQ9c3NsM19oYW5kc2hha2VfbWFjKHMsTklEX21kNSxzZW5kZXIsbGVuLHApOworCWlmKHJldCA9PSAwKQorCQlyZXR1cm4gMDsKKwogCXArPXJldDsKLQlyZXQrPXNzbDNfaGFuZHNoYWtlX21hYyhzLE5JRF9zaGExLHNlbmRlcixsZW4scCk7CisKKwlzaGExbGVuPXNzbDNfaGFuZHNoYWtlX21hYyhzLE5JRF9zaGExLHNlbmRlcixsZW4scCk7CisJaWYoc2hhMWxlbiA9PSAwKQorCQlyZXR1cm4gMDsKKworCXJldCs9c2hhMWxlbjsKIAlyZXR1cm4ocmV0KTsKIAl9CiBzdGF0aWMgaW50IHNzbDNfaGFuZHNoYWtlX21hYyhTU0wgKnMsIGludCBtZF9uaWQsCmRpZmYgLS1naXQgYS9zc2wvczNfbGliLmMgYi9zc2wvczNfbGliLmMKaW5kZXggZGNhOTg1OC4uYzM3OGRkNiAxMDA2NDQKLS0tIGEvc3NsL3MzX2xpYi5jCisrKyBiL3NzbC9zM19saWIuYwpAQCAtMzI4LDcgKzMyOCw3IEBACiAJU1NMX1NTTFYzLAogCVNTTF9OT1RfRVhQfFNTTF9ISUdIfFNTTF9GSVBTLAogCVNTTF9IQU5EU0hBS0VfTUFDX0RFRkFVTFR8VExTMV9QUkYsCi0JMTY4LAorCTExMiwKIAkxNjgsCiAJfSwKIApAQCAtMzc3LDcgKzM3Nyw3IEBACiAJU1NMX1NTTFYzLAogCVNTTF9OT1RfRVhQfFNTTF9ISUdIfFNTTF9GSVBTLAogCVNTTF9IQU5EU0hBS0VfTUFDX0RFRkFVTFR8VExTMV9QUkYsCi0JMTY4LAorCTExMiwKIAkxNjgsCiAJfSwKIApAQCAtNDI1LDcgKzQyNSw3IEBACiAJU1NMX1NTTFYzLAogCVNTTF9OT1RfRVhQfFNTTF9ISUdIfFNTTF9GSVBTLAogCVNTTF9IQU5EU0hBS0VfTUFDX0RFRkFVTFR8VExTMV9QUkYsCi0JMTY4LAorCTExMiwKIAkxNjgsCiAJfSwKIApAQCAtNDc0LDcgKzQ3NCw3IEBACiAJU1NMX1NTTFYzLAogCVNTTF9OT1RfRVhQfFNTTF9ISUdIfFNTTF9GSVBTLAogCVNTTF9IQU5EU0hBS0VfTUFDX0RFRkFVTFR8VExTMV9QUkYsCi0JMTY4LAorCTExMiwKIAkxNjgsCiAJfSwKIApAQCAtNTIyLDcgKzUyMiw3IEBACiAJU1NMX1NTTFYzLAogCVNTTF9OT1RfRVhQfFNTTF9ISUdIfFNTTF9GSVBTLAogCVNTTF9IQU5EU0hBS0VfTUFDX0RFRkFVTFR8VExTMV9QUkYsCi0JMTY4LAorCTExMiwKIAkxNjgsCiAJfSwKIApAQCAtNjAyLDcgKzYwMiw3IEBACiAJU1NMX1NTTFYzLAogCVNTTF9OT1RfRVhQfFNTTF9ISUdIfFNTTF9GSVBTLAogCVNTTF9IQU5EU0hBS0VfTUFDX0RFRkFVTFR8VExTMV9QUkYsCi0JMTY4LAorCTExMiwKIAkxNjgsCiAJfSwKIApAQCAtNjg3LDcgKzY4Nyw3IEBACiAJU1NMX1NTTFYzLAogCVNTTF9OT1RfRVhQfFNTTF9ISUdIfFNTTF9GSVBTLAogCVNTTF9IQU5EU0hBS0VfTUFDX0RFRkFVTFR8VExTMV9QUkYsCi0JMTY4LAorCTExMiwKIAkxNjgsCiAJfSwKIApAQCAtNzUxLDcgKzc1MSw3IEBACiAJU1NMX1NTTFYzLAogCVNTTF9OT1RfRVhQfFNTTF9ISUdILAogCVNTTF9IQU5EU0hBS0VfTUFDX0RFRkFVTFR8VExTMV9QUkYsCi0JMTY4LAorCTExMiwKIAkxNjgsCiAJfSwKIApAQCAtMTY4NSw3ICsxNjg1LDcgQEAKIAlTU0xfVExTVjEsCiAJU1NMX05PVF9FWFB8U1NMX0hJR0h8U1NMX0ZJUFMsCiAJU1NMX0hBTkRTSEFLRV9NQUNfREVGQVVMVHxUTFMxX1BSRiwKLQkxNjgsCisJMTEyLAogCTE2OCwKIAl9LAogCkBAIC0yMDYyLDcgKzIwNjIsNyBAQAogCVNTTF9UTFNWMSwKIAlTU0xfTk9UX0VYUHxTU0xfSElHSHxTU0xfRklQUywKIAlTU0xfSEFORFNIQUtFX01BQ19ERUZBVUxUfFRMUzFfUFJGLAotCTE2OCwKKwkxMTIsCiAJMTY4LAogCX0sCiAKQEAgLTIxNDIsNyArMjE0Miw3IEBACiAJU1NMX1RMU1YxLAogCVNTTF9OT1RfRVhQfFNTTF9ISUdIfFNTTF9GSVBTLAogCVNTTF9IQU5EU0hBS0VfTUFDX0RFRkFVTFR8VExTMV9QUkYsCi0JMTY4LAorCTExMiwKIAkxNjgsCiAJfSwKIApAQCAtMjIyMiw3ICsyMjIyLDcgQEAKIAlTU0xfVExTVjEsCiAJU1NMX05PVF9FWFB8U1NMX0hJR0h8U1NMX0ZJUFMsCiAJU1NMX0hBTkRTSEFLRV9NQUNfREVGQVVMVHxUTFMxX1BSRiwKLQkxNjgsCisJMTEyLAogCTE2OCwKIAl9LAogCkBAIC0yMzAyLDcgKzIzMDIsNyBAQAogCVNTTF9UTFNWMSwKIAlTU0xfTk9UX0VYUHxTU0xfSElHSHxTU0xfRklQUywKIAlTU0xfSEFORFNIQUtFX01BQ19ERUZBVUxUfFRMUzFfUFJGLAotCTE2OCwKKwkxMTIsCiAJMTY4LAogCX0sCiAKQEAgLTIzODIsNyArMjM4Miw3IEBACiAJU1NMX1RMU1YxLAogCVNTTF9OT1RfRVhQfFNTTF9ISUdIfFNTTF9GSVBTLAogCVNTTF9IQU5EU0hBS0VfTUFDX0RFRkFVTFR8VExTMV9QUkYsCi0JMTY4LAorCTExMiwKIAkxNjgsCiAJfSwKIApAQCAtMjQyNiwxMyArMjQyNiwxMyBAQAogCVRMUzFfVFhUX1NSUF9TSEFfV0lUSF8zREVTX0VERV9DQkNfU0hBLAogCVRMUzFfQ0tfU1JQX1NIQV9XSVRIXzNERVNfRURFX0NCQ19TSEEsCiAJU1NMX2tTUlAsCi0JU1NMX2FOVUxMLAorCVNTTF9hU1JQLAogCVNTTF8zREVTLAogCVNTTF9TSEExLAogCVNTTF9UTFNWMSwKIAlTU0xfTk9UX0VYUHxTU0xfSElHSCwKIAlTU0xfSEFORFNIQUtFX01BQ19ERUZBVUxUfFRMUzFfUFJGLAotCTE2OCwKKwkxMTIsCiAJMTY4LAogCX0sCiAKQEAgLTI0NDgsNyArMjQ0OCw3IEBACiAJU1NMX1RMU1YxLAogCVNTTF9OT1RfRVhQfFNTTF9ISUdILAogCVNTTF9IQU5EU0hBS0VfTUFDX0RFRkFVTFR8VExTMV9QUkYsCi0JMTY4LAorCTExMiwKIAkxNjgsCiAJfSwKIApAQCAtMjQ2NCw3ICsyNDY0LDcgQEAKIAlTU0xfVExTVjEsCiAJU1NMX05PVF9FWFB8U1NMX0hJR0gsCiAJU1NMX0hBTkRTSEFLRV9NQUNfREVGQVVMVHxUTFMxX1BSRiwKLQkxNjgsCisJMTEyLAogCTE2OCwKIAl9LAogCkBAIC0yNDc0LDcgKzI0NzQsNyBAQAogCVRMUzFfVFhUX1NSUF9TSEFfV0lUSF9BRVNfMTI4X0NCQ19TSEEsCiAJVExTMV9DS19TUlBfU0hBX1dJVEhfQUVTXzEyOF9DQkNfU0hBLAogCVNTTF9rU1JQLAotCVNTTF9hTlVMTCwKKwlTU0xfYVNSUCwKIAlTU0xfQUVTMTI4LAogCVNTTF9TSEExLAogCVNTTF9UTFNWMSwKQEAgLTI1MjIsNyArMjUyMiw3IEBACiAJVExTMV9UWFRfU1JQX1NIQV9XSVRIX0FFU18yNTZfQ0JDX1NIQSwKIAlUTFMxX0NLX1NSUF9TSEFfV0lUSF9BRVNfMjU2X0NCQ19TSEEsCiAJU1NMX2tTUlAsCi0JU1NMX2FOVUxMLAorCVNTTF9hU1JQLAogCVNTTF9BRVMyNTYsCiAJU1NMX1NIQTEsCiAJU1NMX1RMU1YxLApAQCAtMzk1MiwxMCArMzk1MiwxNSBAQAogCQllbWFza19rID0gY2VydC0+ZXhwb3J0X21hc2tfazsKIAkJZW1hc2tfYSA9IGNlcnQtPmV4cG9ydF9tYXNrX2E7CiAjaWZuZGVmIE9QRU5TU0xfTk9fU1JQCi0JCW1hc2tfaz1jZXJ0LT5tYXNrX2sgfCBzLT5zcnBfY3R4LnNycF9NYXNrOwotCQllbWFza19rPWNlcnQtPmV4cG9ydF9tYXNrX2sgfCBzLT5zcnBfY3R4LnNycF9NYXNrOworCQlpZiAocy0+c3JwX2N0eC5zcnBfTWFzayAmIFNTTF9rU1JQKQorCQkJeworCQkJbWFza19rIHw9IFNTTF9rU1JQOworCQkJZW1hc2tfayB8PSBTU0xfa1NSUDsKKwkJCW1hc2tfYSB8PSBTU0xfYVNSUDsKKwkJCWVtYXNrX2EgfD0gU1NMX2FTUlA7CisJCQl9CiAjZW5kaWYKLQkJCQorCiAjaWZkZWYgS1NTTF9ERUJVRwogLyoJCXByaW50Zigic3NsM19jaG9vc2VfY2lwaGVyICVkIGFsZz0gJWx4XG4iLCBpLGMtPmFsZ29yaXRobXMpOyovCiAjZW5kaWYgICAgLyogS1NTTF9ERUJVRyAqLwpkaWZmIC0tZ2l0IGEvc3NsL3MzX3BrdC5jIGIvc3NsL3MzX3BrdC5jCmluZGV4IGRmNDM2Y2YuLjRhMmY1ZDYgMTAwNjQ0Ci0tLSBhL3NzbC9zM19wa3QuYworKysgYi9zc2wvczNfcGt0LmMKQEAgLTI3Myw2ICsyNzMsMTIgQEAKIAlyZXR1cm4obik7CiAJfQogCisvKiBNQVhfRU1QVFlfUkVDT1JEUyBkZWZpbmVzIHRoZSBudW1iZXIgb2YgY29uc2VjdXRpdmUsIGVtcHR5IHJlY29yZHMgdGhhdCB3aWxsCisgKiBiZSBwcm9jZXNzZWQgcGVyIGNhbGwgdG8gc3NsM19nZXRfcmVjb3JkLiBXaXRob3V0IHRoaXMgbGltaXQgYW4gYXR0YWNrZXIKKyAqIGNvdWxkIHNlbmQgZW1wdHkgcmVjb3JkcyBhdCBhIGZhc3RlciByYXRlIHRoYW4gd2UgY2FuIHByb2Nlc3MgYW5kIGNhdXNlCisgKiBzc2wzX2dldF9yZWNvcmQgdG8gbG9vcCBmb3JldmVyLiAqLworI2RlZmluZSBNQVhfRU1QVFlfUkVDT1JEUyAzMgorCiAvKiBDYWxsIHRoaXMgdG8gZ2V0IGEgbmV3IGlucHV0IHJlY29yZC4KICAqIEl0IHdpbGwgcmV0dXJuIDw9IDAgaWYgbW9yZSBkYXRhIGlzIG5lZWRlZCwgbm9ybWFsbHkgZHVlIHRvIGFuIGVycm9yCiAgKiBvciBub24tYmxvY2tpbmcgSU8uCkBAIC0yOTMsNiArMjk5LDcgQEAKIAlzaG9ydCB2ZXJzaW9uOwogCXVuc2lnbmVkIG1hY19zaXplLCBvcmlnX2xlbjsKIAlzaXplX3QgZXh0cmE7CisJdW5zaWduZWQgZW1wdHlfcmVjb3JkX2NvdW50ID0gMDsKIAogCXJyPSAmKHMtPnMzLT5ycmVjKTsKIAlzZXNzPXMtPnNlc3Npb247CkBAIC01MjMsNyArNTMwLDE3IEBACiAJcy0+cGFja2V0X2xlbmd0aD0wOwogCiAJLyoganVzdCByZWFkIGEgMCBsZW5ndGggcGFja2V0ICovCi0JaWYgKHJyLT5sZW5ndGggPT0gMCkgZ290byBhZ2FpbjsKKwlpZiAocnItPmxlbmd0aCA9PSAwKQorCQl7CisJCWVtcHR5X3JlY29yZF9jb3VudCsrOworCQlpZiAoZW1wdHlfcmVjb3JkX2NvdW50ID4gTUFYX0VNUFRZX1JFQ09SRFMpCisJCQl7CisJCQlhbD1TU0xfQURfVU5FWFBFQ1RFRF9NRVNTQUdFOworCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX1JFQ09SRCxTU0xfUl9SRUNPUkRfVE9PX1NNQUxMKTsKKwkJCWdvdG8gZl9lcnI7CisJCQl9CisJCWdvdG8gYWdhaW47CisJCX0KIAogI2lmIDAKIGZwcmludGYoc3RkZXJyLCAiVWx0aW1hdGUgUmVjb3JkIHR5cGU9JWQsIExlbmd0aD0lZFxuIiwgcnItPnR5cGUsIHJyLT5sZW5ndGgpOwpAQCAtOTc5LDcgKzk5Niw3IEBACiAJCWlmICghc3NsM19zZXR1cF9yZWFkX2J1ZmZlcihzKSkKIAkJCXJldHVybigtMSk7CiAKLQlpZiAoKHR5cGUgJiYgKHR5cGUgIT0gU1NMM19SVF9BUFBMSUNBVElPTl9EQVRBKSAmJiAodHlwZSAhPSBTU0wzX1JUX0hBTkRTSEFLRSkgJiYgdHlwZSkgfHwKKwlpZiAoKHR5cGUgJiYgKHR5cGUgIT0gU1NMM19SVF9BUFBMSUNBVElPTl9EQVRBKSAmJiAodHlwZSAhPSBTU0wzX1JUX0hBTkRTSEFLRSkpIHx8CiAJICAgIChwZWVrICYmICh0eXBlICE9IFNTTDNfUlRfQVBQTElDQVRJT05fREFUQSkpKQogCQl7CiAJCVNTTGVycihTU0xfRl9TU0wzX1JFQURfQllURVMsIEVSUl9SX0lOVEVSTkFMX0VSUk9SKTsKZGlmZiAtLWdpdCBhL3NzbC9zM19zcnZyLmMgYi9zc2wvczNfc3J2ci5jCmluZGV4IGEzOGUwMGUuLmE0MmZjOWUgMTAwNjQ0Ci0tLSBhL3NzbC9zM19zcnZyLmMKKysrIGIvc3NsL3MzX3NydnIuYwpAQCAtMTU0LDYgKzE1NCw3IEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlICJzc2xfbG9jbC5oIgogI2luY2x1ZGUgImtzc2xfbGNsLmgiCisjaW5jbHVkZSAiLi4vY3J5cHRvL2NvbnN0YW50X3RpbWVfbG9jbC5oIgogI2luY2x1ZGUgPG9wZW5zc2wvYnVmZmVyLmg+CiAjaW5jbHVkZSA8b3BlbnNzbC9yYW5kLmg+CiAjaW5jbHVkZSA8b3BlbnNzbC9vYmplY3RzLmg+CkBAIC00MTQsMTEgKzQxNSwxMCBAQAogCQljYXNlIFNTTDNfU1RfU1dfQ0VSVF9COgogCQkJLyogQ2hlY2sgaWYgaXQgaXMgYW5vbiBESCBvciBhbm9uIEVDREgsICovCiAJCQkvKiBub24tUlNBIFBTSyBvciBLUkI1IG9yIFNSUCAqLwotCQkJaWYgKCEocy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fYXV0aCAmIFNTTF9hTlVMTCkKKwkJCWlmICghKHMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX2F1dGggJiAoU1NMX2FOVUxMfFNTTF9hS1JCNXxTU0xfYVNSUCkpCiAJCQkJLyogQW1vbmcgUFNLIGNpcGhlcnN1aXRlcyBvbmx5IFJTQV9QU0sgdXNlcyBzZXJ2ZXIgY2VydGlmaWNhdGUgKi8KIAkJCQkmJiAhKHMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX2F1dGggJiBTU0xfYVBTSyAmJgotCQkJCQkgIShzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9ta2V5ICYgU1NMX2tSU0EpKQotCQkJCSYmICEocy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fYXV0aCAmIFNTTF9hS1JCNSkpCisJCQkJCSAhKHMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX21rZXkgJiBTU0xfa1JTQSkpKQogCQkJCXsKIAkJCQlyZXQ9c3NsM19zZW5kX3NlcnZlcl9jZXJ0aWZpY2F0ZShzKTsKIAkJCQlpZiAocmV0IDw9IDApIGdvdG8gZW5kOwpAQCAtNTI0LDcgKzUyNCw5IEBACiAJCQkJICAqIChhZ2FpbnN0IHRoZSBzcGVjcywgYnV0IHMzX2NsbnQuYyBhY2NlcHRzIHRoaXMgZm9yIFNTTCAzKSAqLwogCQkJCSAhKHMtPnZlcmlmeV9tb2RlICYgU1NMX1ZFUklGWV9GQUlMX0lGX05PX1BFRVJfQ0VSVCkpIHx8CiAJCQkJIC8qIG5ldmVyIHJlcXVlc3QgY2VydCBpbiBLZXJiZXJvcyBjaXBoZXJzdWl0ZXMgKi8KLQkJCQkocy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fYXV0aCAmIFNTTF9hS1JCNSkKKwkJCQkocy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fYXV0aCAmIFNTTF9hS1JCNSkgfHwKKwkJCQkvKiBkb24ndCByZXF1ZXN0IGNlcnRpZmljYXRlIGZvciBTUlAgYXV0aCAqLworCQkJCShzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9hdXRoICYgU1NMX2FTUlApCiAJCQkJLyogV2l0aCBub3JtYWwgUFNLIENlcnRpZmljYXRlcyBhbmQKIAkJCQkgKiBDZXJ0aWZpY2F0ZSBSZXF1ZXN0cyBhcmUgb21pdHRlZCAqLwogCQkJCXx8IChzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9ta2V5ICYgU1NMX2tQU0spKQpAQCAtMTkwNSw3ICsxOTA3LDcgQEAKIAkJCW4rPTIrbnJbaV07CiAJCQl9CiAKLQkJaWYgKCEoYWxnX2EgJiBTU0xfYU5VTEwpCisJCWlmICghKGFsZ19hICYgKFNTTF9hTlVMTHxTU0xfYVNSUCkpCiAJCQkvKiBBbW9uZyBQU0sgY2lwaGVyc3VpdGVzIG9ubHkgUlNBIHVzZXMgYSBjZXJ0aWZpY2F0ZSAqLwogCQkJJiYgISgoYWxnX2EgJiBTU0xfYVBTSykgJiYgIShhbGdfayAmIFNTTF9rUlNBKSkpCiAJCQl7CkBAIC0yMzI1LDYgKzIzMjcsMTAgQEAKICNpZm5kZWYgT1BFTlNTTF9OT19SU0EKIAlpZiAoYWxnX2sgJiBTU0xfa1JTQSkKIAkJeworCQl1bnNpZ25lZCBjaGFyIHJhbmRfcHJlbWFzdGVyX3NlY3JldFtTU0xfTUFYX01BU1RFUl9LRVlfTEVOR1RIXTsKKwkJaW50IGRlY3J5cHRfbGVuOworCQl1bnNpZ25lZCBjaGFyIGRlY3J5cHRfZ29vZCwgdmVyc2lvbl9nb29kOworCiAJCS8qIEZJWCBUSElTIFVQIEVBWSBFQVkgRUFZIEVBWSAqLwogCQlpZiAocy0+czMtPnRtcC51c2VfcnNhX3RtcCkKIAkJCXsKQEAgLTIzNzIsNTQgKzIzNzgsNjEgQEAKIAkJCQluPWk7CiAJCQl9CiAKLQkJaT1SU0FfcHJpdmF0ZV9kZWNyeXB0KChpbnQpbixwLHAscnNhLFJTQV9QS0NTMV9QQURESU5HKTsKKwkJLyogV2UgbXVzdCBub3QgbGVhayB3aGV0aGVyIGEgZGVjcnlwdGlvbiBmYWlsdXJlIG9jY3VycyBiZWNhdXNlCisJCSAqIG9mIEJsZWljaGVuYmFjaGVyJ3MgYXR0YWNrIG9uIFBLQ1MgIzEgdjEuNSBSU0EgcGFkZGluZyAoc2VlCisJCSAqIFJGQyAyMjQ2LCBzZWN0aW9uIDcuNC43LjEpLiBUaGUgY29kZSBmb2xsb3dzIHRoYXQgYWR2aWNlIG9mCisJCSAqIHRoZSBUTFMgUkZDIGFuZCBnZW5lcmF0ZXMgYSByYW5kb20gcHJlbWFzdGVyIHNlY3JldCBmb3IgdGhlCisJCSAqIGNhc2UgdGhhdCB0aGUgZGVjcnlwdCBmYWlscy4gU2VlCisJCSAqIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MjQ2I3NlY3Rpb24tNy40LjcuMSAqLwogCi0JCWFsID0gLTE7Ci0JCQotCQlpZiAoaSAhPSBTU0xfTUFYX01BU1RFUl9LRVlfTEVOR1RIKQorCQkvKiBzaG91bGQgYmUgUkFORF9ieXRlcywgYnV0IHdlIGNhbm5vdCB3b3JrIGFyb3VuZCBhIGZhaWx1cmUuICovCisJCWlmIChSQU5EX3BzZXVkb19ieXRlcyhyYW5kX3ByZW1hc3Rlcl9zZWNyZXQsCisJCQkJICAgICAgc2l6ZW9mKHJhbmRfcHJlbWFzdGVyX3NlY3JldCkpIDw9IDApCisJCQlnb3RvIGVycjsKKwkJZGVjcnlwdF9sZW4gPSBSU0FfcHJpdmF0ZV9kZWNyeXB0KChpbnQpbixwLHAscnNhLFJTQV9QS0NTMV9QQURESU5HKTsKKwkJRVJSX2NsZWFyX2Vycm9yKCk7CisKKwkJLyogZGVjcnlwdF9sZW4gc2hvdWxkIGJlIFNTTF9NQVhfTUFTVEVSX0tFWV9MRU5HVEguCisJCSAqIGRlY3J5cHRfZ29vZCB3aWxsIGJlIDB4ZmYgaWYgc28gYW5kIHplcm8gb3RoZXJ3aXNlLiAqLworCQlkZWNyeXB0X2dvb2QgPSBjb25zdGFudF90aW1lX2VxX2ludF84KGRlY3J5cHRfbGVuLCBTU0xfTUFYX01BU1RFUl9LRVlfTEVOR1RIKTsKKworCQkvKiBJZiB0aGUgdmVyc2lvbiBpbiB0aGUgZGVjcnlwdGVkIHByZS1tYXN0ZXIgc2VjcmV0IGlzIGNvcnJlY3QKKwkJICogdGhlbiB2ZXJzaW9uX2dvb2Qgd2lsbCBiZSAweGZmLCBvdGhlcndpc2UgaXQnbGwgYmUgemVyby4KKwkJICogVGhlIEtsaW1hLVBva29ybnktUm9zYSBleHRlbnNpb24gb2YgQmxlaWNoZW5iYWNoZXIncyBhdHRhY2sKKwkJICogKGh0dHA6Ly9lcHJpbnQuaWFjci5vcmcvMjAwMy8wNTIvKSBleHBsb2l0cyB0aGUgdmVyc2lvbgorCQkgKiBudW1iZXIgY2hlY2sgYXMgYSAiYmFkIHZlcnNpb24gb3JhY2xlIi4gVGh1cyB2ZXJzaW9uIGNoZWNrcworCQkgKiBhcmUgZG9uZSBpbiBjb25zdGFudCB0aW1lIGFuZCBhcmUgdHJlYXRlZCBsaWtlIGFueSBvdGhlcgorCQkgKiBkZWNyeXB0aW9uIGVycm9yLiAqLworCQl2ZXJzaW9uX2dvb2QgPSBjb25zdGFudF90aW1lX2VxXzgocFswXSwgKHVuc2lnbmVkKShzLT5jbGllbnRfdmVyc2lvbj4+OCkpOworCQl2ZXJzaW9uX2dvb2QgJj0gY29uc3RhbnRfdGltZV9lcV84KHBbMV0sICh1bnNpZ25lZCkocy0+Y2xpZW50X3ZlcnNpb24mMHhmZikpOworCisJCS8qIFRoZSBwcmVtYXN0ZXIgc2VjcmV0IG11c3QgY29udGFpbiB0aGUgc2FtZSB2ZXJzaW9uIG51bWJlciBhcworCQkgKiB0aGUgQ2xpZW50SGVsbG8gdG8gZGV0ZWN0IHZlcnNpb24gcm9sbGJhY2sgYXR0YWNrcworCQkgKiAoc3RyYW5nZWx5LCB0aGUgcHJvdG9jb2wgZG9lcyBub3Qgb2ZmZXIgc3VjaCBwcm90ZWN0aW9uIGZvcgorCQkgKiBESCBjaXBoZXJzdWl0ZXMpLiBIb3dldmVyLCBidWdneSBjbGllbnRzIGV4aXN0IHRoYXQgc2VuZCB0aGUKKwkJICogbmVnb3RpYXRlZCBwcm90b2NvbCB2ZXJzaW9uIGluc3RlYWQgaWYgdGhlIHNlcnZlciBkb2VzIG5vdAorCQkgKiBzdXBwb3J0IHRoZSByZXF1ZXN0ZWQgcHJvdG9jb2wgdmVyc2lvbi4gSWYKKwkJICogU1NMX09QX1RMU19ST0xMQkFDS19CVUcgaXMgc2V0LCB0b2xlcmF0ZSBzdWNoIGNsaWVudHMuICovCisJCWlmIChzLT5vcHRpb25zICYgU1NMX09QX1RMU19ST0xMQkFDS19CVUcpCiAJCQl7Ci0JCQlhbD1TU0xfQURfREVDT0RFX0VSUk9SOwotCQkJLyogU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0NMSUVOVF9LRVlfRVhDSEFOR0UsU1NMX1JfQkFEX1JTQV9ERUNSWVBUKTsgKi8KKwkJCXVuc2lnbmVkIGNoYXIgd29ya2Fyb3VuZF9nb29kOworCQkJd29ya2Fyb3VuZF9nb29kID0gY29uc3RhbnRfdGltZV9lcV84KHBbMF0sICh1bnNpZ25lZCkocy0+dmVyc2lvbj4+OCkpOworCQkJd29ya2Fyb3VuZF9nb29kICY9IGNvbnN0YW50X3RpbWVfZXFfOChwWzFdLCAodW5zaWduZWQpKHMtPnZlcnNpb24mMHhmZikpOworCQkJdmVyc2lvbl9nb29kIHw9IHdvcmthcm91bmRfZ29vZDsKIAkJCX0KIAotCQlpZiAoKGFsID09IC0xKSAmJiAhKChwWzBdID09IChzLT5jbGllbnRfdmVyc2lvbj4+OCkpICYmIChwWzFdID09IChzLT5jbGllbnRfdmVyc2lvbiAmIDB4ZmYpKSkpCi0JCQl7Ci0JCQkvKiBUaGUgcHJlbWFzdGVyIHNlY3JldCBtdXN0IGNvbnRhaW4gdGhlIHNhbWUgdmVyc2lvbiBudW1iZXIgYXMgdGhlCi0JCQkgKiBDbGllbnRIZWxsbyB0byBkZXRlY3QgdmVyc2lvbiByb2xsYmFjayBhdHRhY2tzIChzdHJhbmdlbHksIHRoZQotCQkJICogcHJvdG9jb2wgZG9lcyBub3Qgb2ZmZXIgc3VjaCBwcm90ZWN0aW9uIGZvciBESCBjaXBoZXJzdWl0ZXMpLgotCQkJICogSG93ZXZlciwgYnVnZ3kgY2xpZW50cyBleGlzdCB0aGF0IHNlbmQgdGhlIG5lZ290aWF0ZWQgcHJvdG9jb2wKLQkJCSAqIHZlcnNpb24gaW5zdGVhZCBpZiB0aGUgc2VydmVyIGRvZXMgbm90IHN1cHBvcnQgdGhlIHJlcXVlc3RlZAotCQkJICogcHJvdG9jb2wgdmVyc2lvbi4KLQkJCSAqIElmIFNTTF9PUF9UTFNfUk9MTEJBQ0tfQlVHIGlzIHNldCwgdG9sZXJhdGUgc3VjaCBjbGllbnRzLiAqLwotCQkJaWYgKCEoKHMtPm9wdGlvbnMgJiBTU0xfT1BfVExTX1JPTExCQUNLX0JVRykgJiYKLQkJCQkocFswXSA9PSAocy0+dmVyc2lvbj4+OCkpICYmIChwWzFdID09IChzLT52ZXJzaW9uICYgMHhmZikpKSkKLQkJCQl7Ci0JCQkJYWw9U1NMX0FEX0RFQ09ERV9FUlJPUjsKLQkJCQkvKiBTU0xlcnIoU1NMX0ZfU1NMM19HRVRfQ0xJRU5UX0tFWV9FWENIQU5HRSxTU0xfUl9CQURfUFJPVE9DT0xfVkVSU0lPTl9OVU1CRVIpOyAqLworCQkvKiBCb3RoIGRlY3J5cHRpb24gYW5kIHZlcnNpb24gbXVzdCBiZSBnb29kIGZvciBkZWNyeXB0X2dvb2QKKwkJICogdG8gcmVtYWluIG5vbi16ZXJvICgweGZmKS4gKi8KKwkJZGVjcnlwdF9nb29kICY9IHZlcnNpb25fZ29vZDsKIAotCQkJCS8qIFRoZSBLbGltYS1Qb2tvcm55LVJvc2EgZXh0ZW5zaW9uIG9mIEJsZWljaGVuYmFjaGVyJ3MgYXR0YWNrCi0JCQkJICogKGh0dHA6Ly9lcHJpbnQuaWFjci5vcmcvMjAwMy8wNTIvKSBleHBsb2l0cyB0aGUgdmVyc2lvbgotCQkJCSAqIG51bWJlciBjaGVjayBhcyBhICJiYWQgdmVyc2lvbiBvcmFjbGUiIC0tIGFuIGFsZXJ0IHdvdWxkCi0JCQkJICogcmV2ZWFsIHRoYXQgdGhlIHBsYWludGV4dCBjb3JyZXNwb25kaW5nIHRvIHNvbWUgY2lwaGVydGV4dAotCQkJCSAqIG1hZGUgdXAgYnkgdGhlIGFkdmVyc2FyeSBpcyBwcm9wZXJseSBmb3JtYXR0ZWQgZXhjZXB0Ci0JCQkJICogdGhhdCB0aGUgdmVyc2lvbiBudW1iZXIgaXMgd3JvbmcuICBUbyBhdm9pZCBzdWNoIGF0dGFja3MsCi0JCQkJICogd2Ugc2hvdWxkIHRyZWF0IHRoaXMganVzdCBsaWtlIGFueSBvdGhlciBkZWNyeXB0aW9uIGVycm9yLiAqLwotCQkJCX0KKwkJLyogTm93IGNvcHkgcmFuZF9wcmVtYXN0ZXJfc2VjcmV0IG92ZXIgcCB1c2luZworCQkgKiBkZWNyeXB0X2dvb2RfbWFzay4gKi8KKwkJZm9yIChpID0gMDsgaSA8IChpbnQpIHNpemVvZihyYW5kX3ByZW1hc3Rlcl9zZWNyZXQpOyBpKyspCisJCQl7CisJCQlwW2ldID0gY29uc3RhbnRfdGltZV9zZWxlY3RfOChkZWNyeXB0X2dvb2QsIHBbaV0sCisJCQkJCQkgICAgICByYW5kX3ByZW1hc3Rlcl9zZWNyZXRbaV0pOwogCQkJfQogCi0JCWlmIChhbCAhPSAtMSkKLQkJCXsKLQkJCS8qIFNvbWUgZGVjcnlwdGlvbiBmYWlsdXJlIC0tIHVzZSByYW5kb20gdmFsdWUgaW5zdGVhZCBhcyBjb3VudGVybWVhc3VyZQotCQkJICogYWdhaW5zdCBCbGVpY2hlbmJhY2hlcidzIGF0dGFjayBvbiBQS0NTICMxIHYxLjUgUlNBIHBhZGRpbmcKLQkJCSAqIChzZWUgUkZDIDIyNDYsIHNlY3Rpb24gNy40LjcuMSkuICovCi0JCQlFUlJfY2xlYXJfZXJyb3IoKTsKLQkJCWkgPSBTU0xfTUFYX01BU1RFUl9LRVlfTEVOR1RIOwotCQkJcFswXSA9IHMtPmNsaWVudF92ZXJzaW9uID4+IDg7Ci0JCQlwWzFdID0gcy0+Y2xpZW50X3ZlcnNpb24gJiAweGZmOwotCQkJaWYgKFJBTkRfcHNldWRvX2J5dGVzKHArMiwgaS0yKSA8PSAwKSAvKiBzaG91bGQgYmUgUkFORF9ieXRlcywgYnV0IHdlIGNhbm5vdCB3b3JrIGFyb3VuZCBhIGZhaWx1cmUgKi8KLQkJCQlnb3RvIGVycjsKLQkJCX0KLQkKIAkJcy0+c2Vzc2lvbi0+bWFzdGVyX2tleV9sZW5ndGg9CiAJCQlzLT5tZXRob2QtPnNzbDNfZW5jLT5nZW5lcmF0ZV9tYXN0ZXJfc2VjcmV0KHMsCiAJCQkJcy0+c2Vzc2lvbi0+bWFzdGVyX2tleSwKQEAgLTMwMDksNyArMzAyMiw3IEBACiAJCVNTTDNfU1RfU1JfQ0VSVF9WUkZZX0EsCiAJCVNTTDNfU1RfU1JfQ0VSVF9WUkZZX0IsCiAJCS0xLAotCQk1MTYsIC8qIEVub3VnaCBmb3IgNDA5NiBiaXQgUlNBIGtleSB3aXRoIFRMUyB2MS4yICovCisJCVNTTDNfUlRfTUFYX1BMQUlOX0xFTkdUSCwKIAkJJm9rKTsKIAogCWlmICghb2spIHJldHVybigoaW50KW4pOwpkaWZmIC0tZ2l0IGEvc3NsL3NydHAuaCBiL3NzbC9zcnRwLmgKaW5kZXggYzBjZjMzZS4uMjRmMjMzMCAxMDA2NDQKLS0tIGEvc3NsL3NydHAuaAorKysgYi9zc2wvc3J0cC5oCkBAIC0xMzAsNiArMTMwLDggQEAKICNkZWZpbmUgU1JUUF9OVUxMX1NIQTFfODAgICAgICAweDAwMDUKICNkZWZpbmUgU1JUUF9OVUxMX1NIQTFfMzIgICAgICAweDAwMDYKIAorI2lmbmRlZiBPUEVOU1NMX05PX1NSVFAKKwogaW50IFNTTF9DVFhfc2V0X3Rsc2V4dF91c2Vfc3J0cChTU0xfQ1RYICpjdHgsIGNvbnN0IGNoYXIgKnByb2ZpbGVzKTsKIGludCBTU0xfc2V0X3Rsc2V4dF91c2Vfc3J0cChTU0wgKmN0eCwgY29uc3QgY2hhciAqcHJvZmlsZXMpOwogU1JUUF9QUk9URUNUSU9OX1BST0ZJTEUgKlNTTF9nZXRfc2VsZWN0ZWRfc3J0cF9wcm9maWxlKFNTTCAqcyk7CkBAIC0xMzcsNiArMTM5LDggQEAKIFNUQUNLX09GKFNSVFBfUFJPVEVDVElPTl9QUk9GSUxFKSAqU1NMX2dldF9zcnRwX3Byb2ZpbGVzKFNTTCAqc3NsKTsKIFNSVFBfUFJPVEVDVElPTl9QUk9GSUxFICpTU0xfZ2V0X3NlbGVjdGVkX3NydHBfcHJvZmlsZShTU0wgKnMpOwogCisjZW5kaWYKKwogI2lmZGVmICBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9zc2wvc3NsLmggYi9zc2wvc3NsLmgKaW5kZXggYTg5YWIyMy4uN2ExZmNlOCAxMDA2NDQKLS0tIGEvc3NsL3NzbC5oCisrKyBiL3NzbC9zc2wuaApAQCAtMjY0LDYgKzI2NCw3IEBACiAjZGVmaW5lIFNTTF9UWFRfYUdPU1Q5NAkiYUdPU1Q5NCIKICNkZWZpbmUgU1NMX1RYVF9hR09TVDAxICJhR09TVDAxIgogI2RlZmluZSBTU0xfVFhUX2FHT1NUICAiYUdPU1QiCisjZGVmaW5lIFNTTF9UWFRfYVNSUCAgICAgICAgICAgICJhU1JQIgogCiAjZGVmaW5lCVNTTF9UWFRfRFNTCQkiRFNTIgogI2RlZmluZSBTU0xfVFhUX0RICQkiREgiCkBAIC02NjQsMTEgKzY2NSwxNSBAQAogICovCiAjZGVmaW5lIFNTTF9NT0RFX1NFTkRfQ0xJRU5USEVMTE9fVElNRSAweDAwMDAwMDIwTAogI2RlZmluZSBTU0xfTU9ERV9TRU5EX1NFUlZFUkhFTExPX1RJTUUgMHgwMDAwMDA0MEwKKy8qIFNlbmQgVExTX0ZBTExCQUNLX1NDU1YgaW4gdGhlIENsaWVudEhlbGxvLgorICogVG8gYmUgc2V0IGJ5IGFwcGxpY2F0aW9ucyB0aGF0IHJlY29ubmVjdCB3aXRoIGEgZG93bmdyYWRlZCBwcm90b2NvbAorICogdmVyc2lvbjsgc2VlIGRyYWZ0LWlldGYtdGxzLWRvd25ncmFkZS1zY3N2LTAwIGZvciBkZXRhaWxzLiAqLworI2RlZmluZSBTU0xfTU9ERV9TRU5EX0ZBTExCQUNLX1NDU1YgMHgwMDAwMDA4MEwKIAogLyogV2hlbiBzZXQsIGNsaWVudHMgbWF5IHNlbmQgYXBwbGljYXRpb24gZGF0YSBiZWZvcmUgcmVjZWlwdCBvZiBDQ1MKICAqIGFuZCBGaW5pc2hlZC4gIFRoaXMgbW9kZSBlbmFibGVzIGZ1bGwtaGFuZHNoYWtlcyB0byAnY29tcGxldGUnIGluCiAgKiBvbmUgUlRULiAqLwotI2RlZmluZSBTU0xfTU9ERV9IQU5EU0hBS0VfQ1VUVEhST1VHSCAweDAwMDAwMDgwTAorI2RlZmluZSBTU0xfTU9ERV9IQU5EU0hBS0VfQ1VUVEhST1VHSCAweDAwMDAwMjAwTAogCiAvKiBXaGVuIHNldCwgVExTIDEuMCBhbmQgU1NMdjMsIG11bHRpLWJ5dGUsIENCQyByZWNvcmRzIHdpbGwgYmUgc3BsaXQgaW4gdHdvOgogICogdGhlIGZpcnN0IHJlY29yZCB3aWxsIGNvbnRhaW4gYSBzaW5nbGUgYnl0ZSBhbmQgdGhlIHNlY29uZCB3aWxsIGNvbnRhaW4gdGhlCkBAIC02NzYsMTEgKzY4MSw2IEBACiAgKiBhdHRhY2tzLiAqLwogI2RlZmluZSBTU0xfTU9ERV9DQkNfUkVDT1JEX1NQTElUVElORyAweDAwMDAwMTAwTAogCi0vKiBTZW5kIFRMU19GQUxMQkFDS19TQ1NWIGluIHRoZSBDbGllbnRIZWxsby4KLSAqIFRvIGJlIHNldCBieSBhcHBsaWNhdGlvbnMgdGhhdCByZWNvbm5lY3Qgd2l0aCBhIGRvd25ncmFkZWQgcHJvdG9jb2wKLSAqIHZlcnNpb247IHNlZSBkcmFmdC1pZXRmLXRscy1kb3duZ3JhZGUtc2Nzdi0wMCBmb3IgZGV0YWlscy4gKi8KLSNkZWZpbmUgU1NMX01PREVfU0VORF9GQUxMQkFDS19TQ1NWIDB4MDAwMDAyMDBMCi0KIC8qIE5vdGU6IFNTTFtfQ1RYXV9zZXRfe29wdGlvbnMsbW9kZX0gdXNlIHw9IG9wIG9uIHRoZSBwcmV2aW91cyB2YWx1ZSwKICAqIHRoZXkgY2Fubm90IGJlIHVzZWQgdG8gY2xlYXIgYml0cy4gKi8KIApAQCAtMjE5OSw2ICsyMTk5LDEwIEBACiB2b2lkIFNTTF9zZXRfZGVidWcoU1NMICpzLCBpbnQgZGVidWcpOwogaW50IFNTTF9jYWNoZV9oaXQoU1NMICpzKTsKIAorI2lmbmRlZiBPUEVOU1NMX05PX1VOSVRfVEVTVAorY29uc3Qgc3RydWN0IG9wZW5zc2xfc3NsX3Rlc3RfZnVuY3Rpb25zICpTU0xfdGVzdF9mdW5jdGlvbnModm9pZCk7CisjZW5kaWYKKwogLyogQkVHSU4gRVJST1IgQ09ERVMgKi8KIC8qIFRoZSBmb2xsb3dpbmcgbGluZXMgYXJlIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzY3JpcHQgbWtlcnIucGwuIEFueSBjaGFuZ2VzCiAgKiBtYWRlIGFmdGVyIHRoaXMgcG9pbnQgbWF5IGJlIG92ZXJ3cml0dGVuIHdoZW4gdGhlIHNjcmlwdCBpcyBuZXh0IHJ1bi4KQEAgLTI0NjcsNiArMjQ3MSw3IEBACiAjZGVmaW5lIFNTTF9SX0JBRF9TUlBfQl9MRU5HVEgJCQkJIDM0OAogI2RlZmluZSBTU0xfUl9CQURfU1JQX0dfTEVOR1RICQkJCSAzNDkKICNkZWZpbmUgU1NMX1JfQkFEX1NSUF9OX0xFTkdUSAkJCQkgMzUwCisjZGVmaW5lIFNTTF9SX0JBRF9TUlBfUEFSQU1FVEVSUwkJCSAzNzEKICNkZWZpbmUgU1NMX1JfQkFEX1NSUF9TX0xFTkdUSAkJCQkgMzUxCiAjZGVmaW5lIFNTTF9SX0JBRF9TUlRQX01LSV9WQUxVRQkJCSAzNTIKICNkZWZpbmUgU1NMX1JfQkFEX1NSVFBfUFJPVEVDVElPTl9QUk9GSUxFX0xJU1QJCSAzNTMKQEAgLTI1MjcsNyArMjUzMiw3IEBACiAjZGVmaW5lIFNTTF9SX0hUVFBTX1BST1hZX1JFUVVFU1QJCQkgMTU1CiAjZGVmaW5lIFNTTF9SX0hUVFBfUkVRVUVTVAkJCQkgMTU2CiAjZGVmaW5lIFNTTF9SX0lMTEVHQUxfUEFERElORwkJCQkgMjgzCi0jZGVmaW5lIFNTTF9SX0lOQVBQUk9QUklBVEVfRkFMTEJBQ0sJCQkgMzgwCisjZGVmaW5lIFNTTF9SX0lOQVBQUk9QUklBVEVfRkFMTEJBQ0sJCQkgMzczCiAjZGVmaW5lIFNTTF9SX0lOQ09OU0lTVEVOVF9DT01QUkVTU0lPTgkJCSAzNDAKICNkZWZpbmUgU1NMX1JfSU5WQUxJRF9DSEFMTEVOR0VfTEVOR1RICQkJIDE1OAogI2RlZmluZSBTU0xfUl9JTlZBTElEX0NPTU1BTkQJCQkJIDI4MApkaWZmIC0tZ2l0IGEvc3NsL3NzbF9jaXBoLmMgYi9zc2wvc3NsX2NpcGguYwppbmRleCBlODc5NGQ0Li5jZDlmMTA4IDEwMDY0NAotLS0gYS9zc2wvc3NsX2NpcGguYworKysgYi9zc2wvc3NsX2NpcGguYwpAQCAtMjcwLDYgKzI3MCw3IEBACiAJezAsU1NMX1RYVF9hR09TVDk0LDAsMCxTU0xfYUdPU1Q5NCwwLDAsMCwwLDAsMCwwfSwKIAl7MCxTU0xfVFhUX2FHT1NUMDEsMCwwLFNTTF9hR09TVDAxLDAsMCwwLDAsMCwwLDB9LAogCXswLFNTTF9UWFRfYUdPU1QsMCwwLFNTTF9hR09TVDk0fFNTTF9hR09TVDAxLDAsMCwwLDAsMCwwLDB9LAorCXswLFNTTF9UWFRfYVNSUCwwLCAgICAwLFNTTF9hU1JQLCAgMCwwLDAsMCwwLDAsMH0sCiAKIAkvKiBhbGlhc2VzIGNvbWJpbmluZyBrZXkgZXhjaGFuZ2UgYW5kIHNlcnZlciBhdXRoZW50aWNhdGlvbiAqLwogCXswLFNTTF9UWFRfRURILDAsICAgICBTU0xfa0VESCx+U1NMX2FOVUxMLDAsMCwwLDAsMCwwLDB9LApAQCAtNTYyLDcgKzU2Myw3IEBACiAJCWJyZWFrOwogCQl9CiAKLQlpZiAoKGkgPCAwKSB8fCAoaSA+IFNTTF9FTkNfTlVNX0lEWCkpCisJaWYgKChpIDwgMCkgfHwgKGkgPj0gU1NMX0VOQ19OVU1fSURYKSkKIAkJKmVuYz1OVUxMOwogCWVsc2UKIAkJewpAQCAtNTk2LDcgKzU5Nyw3IEBACiAJCWk9IC0xOwogCQlicmVhazsKIAkJfQotCWlmICgoaSA8IDApIHx8IChpID4gU1NMX01EX05VTV9JRFgpKQorCWlmICgoaSA8IDApIHx8IChpID49IFNTTF9NRF9OVU1fSURYKSkKIAl7CiAJCSptZD1OVUxMOyAKIAkJaWYgKG1hY19wa2V5X3R5cGUhPU5VTEwpICptYWNfcGtleV90eXBlID0gTklEX3VuZGVmOwpAQCAtOTI1LDcgKzkyNiw3IEBACiAJCWludCBydWxlLCBpbnQgc3RyZW5ndGhfYml0cywKIAkJQ0lQSEVSX09SREVSICoqaGVhZF9wLCBDSVBIRVJfT1JERVIgKip0YWlsX3ApCiAJewotCUNJUEhFUl9PUkRFUiAqaGVhZCwgKnRhaWwsICpjdXJyLCAqY3VycjIsICpsYXN0OworCUNJUEhFUl9PUkRFUiAqaGVhZCwgKnRhaWwsICpjdXJyLCAqbmV4dCwgKmxhc3Q7CiAJY29uc3QgU1NMX0NJUEhFUiAqY3A7CiAJaW50IHJldmVyc2UgPSAwOwogCkBAIC05NDIsMjEgKzk0MywyNSBAQAogCiAJaWYgKHJldmVyc2UpCiAJCXsKLQkJY3VyciA9IHRhaWw7CisJCW5leHQgPSB0YWlsOwogCQlsYXN0ID0gaGVhZDsKIAkJfQogCWVsc2UKIAkJewotCQljdXJyID0gaGVhZDsKKwkJbmV4dCA9IGhlYWQ7CiAJCWxhc3QgPSB0YWlsOwogCQl9CiAKLQljdXJyMiA9IGN1cnI7CisJY3VyciA9IE5VTEw7CiAJZm9yICg7OykKIAkJewotCQlpZiAoKGN1cnIgPT0gTlVMTCkgfHwgKGN1cnIgPT0gbGFzdCkpIGJyZWFrOwotCQljdXJyID0gY3VycjI7Ci0JCWN1cnIyID0gcmV2ZXJzZSA/IGN1cnItPnByZXYgOiBjdXJyLT5uZXh0OworCQlpZiAoY3VyciA9PSBsYXN0KSBicmVhazsKKworCQljdXJyID0gbmV4dDsKKworCQlpZiAoY3VyciA9PSBOVUxMKSBicmVhazsKKworCQluZXh0ID0gcmV2ZXJzZSA/IGN1cnItPnByZXYgOiBjdXJyLT5uZXh0OwogCiAJCWNwID0gY3Vyci0+Y2lwaGVyOwogCkBAIC0xNTk4LDYgKzE2MDMsOSBAQAogCWNhc2UgU1NMX2tTUlA6CiAJCWt4PSJTUlAiOwogCQlicmVhazsKKwljYXNlIFNTTF9rR09TVDoKKwkJa3g9IkdPU1QiOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlreD0idW5rbm93biI7CiAJCX0KQEAgLTE2MjgsNiArMTYzNiwxNSBAQAogCWNhc2UgU1NMX2FQU0s6CiAJCWF1PSJQU0siOwogCQlicmVhazsKKwljYXNlIFNTTF9hU1JQOgorCQlhdT0iU1JQIjsKKwkJYnJlYWs7CisJY2FzZSBTU0xfYUdPU1Q5NDoKKwkJYXU9IkdPU1Q5NCI7CisJCWJyZWFrOworCWNhc2UgU1NMX2FHT1NUMDE6CisJCWF1PSJHT1NUMDEiOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlhdT0idW5rbm93biI7CiAJCWJyZWFrOwpAQCAtMTY3NSw2ICsxNjkyLDkgQEAKIAljYXNlIFNTTF9TRUVEOgogCQllbmM9IlNFRUQoMTI4KSI7CiAJCWJyZWFrOworCWNhc2UgU1NMX2VHT1NUMjgxNDc4OUNOVDoKKwkJZW5jPSJHT1NUODkoMjU2KSI7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCWVuYz0idW5rbm93biI7CiAJCWJyZWFrOwpAQCAtMTY5Nyw2ICsxNzE3LDEyIEBACiAJY2FzZSBTU0xfQUVBRDoKIAkJbWFjPSJBRUFEIjsKIAkJYnJlYWs7CisJY2FzZSBTU0xfR09TVDg5TUFDOgorCQltYWM9IkdPU1Q4OSI7CisJCWJyZWFrOworCWNhc2UgU1NMX0dPU1Q5NDoKKwkJbWFjPSJHT1NUOTQiOworCQlicmVhazsKIAlkZWZhdWx0OgogCQltYWM9InVua25vd24iOwogCQlicmVhazsKZGlmZiAtLWdpdCBhL3NzbC9zc2xfZXJyLmMgYi9zc2wvc3NsX2Vyci5jCmluZGV4IDgxNmY2ZWUuLjBlOTJjY2IgMTAwNjQ0Ci0tLSBhL3NzbC9zc2xfZXJyLmMKKysrIGIvc3NsL3NzbF9lcnIuYwpAQCAtMzMxLDYgKzMzMSw3IEBACiB7RVJSX1JFQVNPTihTU0xfUl9CQURfU1JQX0JfTEVOR1RIKSAgICAgICwiYmFkIHNycCBiIGxlbmd0aCJ9LAoge0VSUl9SRUFTT04oU1NMX1JfQkFEX1NSUF9HX0xFTkdUSCkgICAgICAsImJhZCBzcnAgZyBsZW5ndGgifSwKIHtFUlJfUkVBU09OKFNTTF9SX0JBRF9TUlBfTl9MRU5HVEgpICAgICAgLCJiYWQgc3JwIG4gbGVuZ3RoIn0sCit7RVJSX1JFQVNPTihTU0xfUl9CQURfU1JQX1BBUkFNRVRFUlMpICAgICwiYmFkIHNycCBwYXJhbWV0ZXJzIn0sCiB7RVJSX1JFQVNPTihTU0xfUl9CQURfU1JQX1NfTEVOR1RIKSAgICAgICwiYmFkIHNycCBzIGxlbmd0aCJ9LAoge0VSUl9SRUFTT04oU1NMX1JfQkFEX1NSVFBfTUtJX1ZBTFVFKSAgICAsImJhZCBzcnRwIG1raSB2YWx1ZSJ9LAoge0VSUl9SRUFTT04oU1NMX1JfQkFEX1NSVFBfUFJPVEVDVElPTl9QUk9GSUxFX0xJU1QpLCJiYWQgc3J0cCBwcm90ZWN0aW9uIHByb2ZpbGUgbGlzdCJ9LApkaWZmIC0tZ2l0IGEvc3NsL3NzbF9saWIuYyBiL3NzbC9zc2xfbGliLmMKaW5kZXggZWMwZWMyZS4uZWIxYWU3OCAxMDA2NDQKLS0tIGEvc3NsL3NzbF9saWIuYworKysgYi9zc2wvc3NsX2xpYi5jCkBAIC0xNDYyLDYgKzE0NjIsMTEgQEAKIAkJICAgIHMtPnBza19jbGllbnRfY2FsbGJhY2sgPT0gTlVMTCkKIAkJCWNvbnRpbnVlOwogI2VuZGlmIC8qIE9QRU5TU0xfTk9fUFNLICovCisjaWZuZGVmIE9QRU5TU0xfTk9fU1JQCisJCWlmICgoKGMtPmFsZ29yaXRobV9ta2V5ICYgU1NMX2tTUlApIHx8IChjLT5hbGdvcml0aG1fYXV0aCAmIFNTTF9hU1JQKSkgJiYKKwkJICAgICEocy0+c3JwX2N0eC5zcnBfTWFzayAmIFNTTF9rU1JQKSkKKwkJICAgIGNvbnRpbnVlOworI2VuZGlmIC8qIE9QRU5TU0xfTk9fU1JQICovCiAJCWogPSBwdXRfY2IoYyxwKTsKIAkJcCs9ajsKIAkJfQpAQCAtMTQ5Miw2ICsxNDk3LDcgQEAKIAkJCXArPWo7CiAJCQl9CiAgCQl9CisKIAlyZXR1cm4ocC1xKTsKIAl9CiAKQEAgLTE1NDIsNyArMTU0OCw3IEBACiAJCQl9CiAKIAkJLyogQ2hlY2sgZm9yIFRMU19GQUxMQkFDS19TQ1NWICovCi0JCWlmIChzLT5zMyAmJiAobiAhPSAzIHx8ICFwWzBdKSAmJgorCQlpZiAoKG4gIT0gMyB8fCAhcFswXSkgJiYKIAkJCShwW24tMl0gPT0gKChTU0wzX0NLX0ZBTExCQUNLX1NDU1YgPj4gOCkgJiAweGZmKSkgJiYKIAkJCShwW24tMV0gPT0gKFNTTDNfQ0tfRkFMTEJBQ0tfU0NTViAmIDB4ZmYpKSkKIAkJCXsKQEAgLTE1NTEsNyArMTU1Nyw4IEBACiAJCQlpZiAoIVNTTF9jdHJsKHMsIFNTTF9DVFJMX0NIRUNLX1BST1RPX1ZFUlNJT04sIDAsIE5VTEwpKQogCQkJCXsKIAkJCQlTU0xlcnIoU1NMX0ZfU1NMX0JZVEVTX1RPX0NJUEhFUl9MSVNULFNTTF9SX0lOQVBQUk9QUklBVEVfRkFMTEJBQ0spOwotCQkJCXNzbDNfc2VuZF9hbGVydChzLFNTTDNfQUxfRkFUQUwsU1NMX0FEX0lOQVBQUk9QUklBVEVfRkFMTEJBQ0spOworCQkJCWlmIChzLT5zMykKKwkJCQkJc3NsM19zZW5kX2FsZXJ0KHMsU1NMM19BTF9GQVRBTCxTU0xfQURfSU5BUFBST1BSSUFURV9GQUxMQkFDSyk7CiAJCQkJZ290byBlcnI7CiAJCQkJfQogCQkJY29udGludWU7CmRpZmYgLS1naXQgYS9zc2wvc3NsX2xvY2wuaCBiL3NzbC9zc2xfbG9jbC5oCmluZGV4IDZiNzczMWEuLmNhMzk5MDcgMTAwNjQ0Ci0tLSBhL3NzbC9zc2xfbG9jbC5oCisrKyBiL3NzbC9zc2xfbG9jbC5oCkBAIC0zMTEsNiArMzExLDcgQEAKICNkZWZpbmUgU1NMX2FQU0sgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwgLyogUFNLIGF1dGggKi8KICNkZWZpbmUgU1NMX2FHT1NUOTQJCQkJMHgwMDAwMDEwMEwgLyogR09TVCBSIDM0LjEwLTk0IHNpZ25hdHVyZSBhdXRoICovCiAjZGVmaW5lIFNTTF9hR09TVDAxIAkJCTB4MDAwMDAyMDBMIC8qIEdPU1QgUiAzNC4xMC0yMDAxIHNpZ25hdHVyZSBhdXRoICovCisjZGVmaW5lIFNTTF9hU1JQIAkJMHgwMDAwMDQwMEwgLyogU1JQIGF1dGggKi8KIAogCiAvKiBCaXRzIGZvciBhbGdvcml0aG1fZW5jIChzeW1tZXRyaWMgZW5jcnlwdGlvbikgKi8KQEAgLTgwOSw2ICs4MTAsMTYgQEAKIAlyZXR1cm4gJmZ1bmNfbmFtZSMjX2RhdGE7IFwKIAl9CiAKK3N0cnVjdCBvcGVuc3NsX3NzbF90ZXN0X2Z1bmN0aW9ucworCXsKKwlpbnQgKCpwX3NzbF9pbml0X3diaW9fYnVmZmVyKShTU0wgKnMsIGludCBwdXNoKTsKKwlpbnQgKCpwX3NzbDNfc2V0dXBfYnVmZmVycykoU1NMICpzKTsKKwlpbnQgKCpwX3RsczFfcHJvY2Vzc19oZWFydGJlYXQpKFNTTCAqcyk7CisJaW50ICgqcF9kdGxzMV9wcm9jZXNzX2hlYXJ0YmVhdCkoU1NMICpzKTsKKwl9OworCisjaWZuZGVmIE9QRU5TU0xfVU5JVF9URVNUCisKIHZvaWQgc3NsX2NsZWFyX2NpcGhlcl9jdHgoU1NMICpzKTsKIGludCBzc2xfY2xlYXJfYmFkX3Nlc3Npb24oU1NMICpzKTsKIENFUlQgKnNzbF9jZXJ0X25ldyh2b2lkKTsKQEAgLTEwOTYsOCArMTEwNyw4IEBACiAjZW5kaWYgLyogT1BFTlNTTF9OT19FQyAqLwogCiAjaWZuZGVmIE9QRU5TU0xfTk9fVExTRVhUCi11bnNpZ25lZCBjaGFyICpzc2xfYWRkX2NsaWVudGhlbGxvX3Rsc2V4dChTU0wgKnMsIHVuc2lnbmVkIGNoYXIgKnAsIHVuc2lnbmVkIGNoYXIgKmxpbWl0KTsgCi11bnNpZ25lZCBjaGFyICpzc2xfYWRkX3NlcnZlcmhlbGxvX3Rsc2V4dChTU0wgKnMsIHVuc2lnbmVkIGNoYXIgKnAsIHVuc2lnbmVkIGNoYXIgKmxpbWl0KTsgCit1bnNpZ25lZCBjaGFyICpzc2xfYWRkX2NsaWVudGhlbGxvX3Rsc2V4dChTU0wgKnMsIHVuc2lnbmVkIGNoYXIgKmJ1ZiwgdW5zaWduZWQgY2hhciAqbGltaXQpOyAKK3Vuc2lnbmVkIGNoYXIgKnNzbF9hZGRfc2VydmVyaGVsbG9fdGxzZXh0KFNTTCAqcywgdW5zaWduZWQgY2hhciAqYnVmLCB1bnNpZ25lZCBjaGFyICpsaW1pdCk7IAogaW50IHNzbF9wYXJzZV9jbGllbnRoZWxsb190bHNleHQoU1NMICpzLCB1bnNpZ25lZCBjaGFyICoqZGF0YSwgdW5zaWduZWQgY2hhciAqZCwgaW50IG4sIGludCAqYWwpOwogaW50IHNzbF9wYXJzZV9zZXJ2ZXJoZWxsb190bHNleHQoU1NMICpzLCB1bnNpZ25lZCBjaGFyICoqZGF0YSwgdW5zaWduZWQgY2hhciAqZCwgaW50IG4sIGludCAqYWwpOwogaW50IHNzbF9wcmVwYXJlX2NsaWVudGhlbGxvX3Rsc2V4dChTU0wgKnMpOwpAQCAtMTE3OSw0ICsxMTkwLDE0IEBACiAJY29uc3QgRVZQX0NJUEhFUl9DVFggKmNpcGhlcl9jdHgsIEVWUF9NRF9DVFggKm1hY19jdHgsCiAJY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSwgc2l6ZV90IGRhdGFfbGVuLCBzaXplX3Qgb3JpZ19sZW4pOwogCitpbnQgc3JwX3ZlcmlmeV9zZXJ2ZXJfcGFyYW0oU1NMICpzLCBpbnQgKmFsKTsKKworI2Vsc2UKKworI2RlZmluZSBzc2xfaW5pdF93YmlvX2J1ZmZlciBTU0xfdGVzdF9mdW5jdGlvbnMoKS0+cF9zc2xfaW5pdF93YmlvX2J1ZmZlcgorI2RlZmluZSBzc2wzX3NldHVwX2J1ZmZlcnMgU1NMX3Rlc3RfZnVuY3Rpb25zKCktPnBfc3NsM19zZXR1cF9idWZmZXJzCisjZGVmaW5lIHRsczFfcHJvY2Vzc19oZWFydGJlYXQgU1NMX3Rlc3RfZnVuY3Rpb25zKCktPnBfdGxzMV9wcm9jZXNzX2hlYXJ0YmVhdAorI2RlZmluZSBkdGxzMV9wcm9jZXNzX2hlYXJ0YmVhdCBTU0xfdGVzdF9mdW5jdGlvbnMoKS0+cF9kdGxzMV9wcm9jZXNzX2hlYXJ0YmVhdAorCisjZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3NsL3NzbF9zdGF0LmMgYi9zc2wvc3NsX3N0YXQuYwppbmRleCAxNDRiODFlLi5jNWExNWNlIDEwMDY0NAotLS0gYS9zc2wvc3NsX3N0YXQuYworKysgYi9zc2wvc3NsX3N0YXQuYwpAQCAtMjEyLDcgKzIxMiw2IEBACiBjYXNlIFNTTDNfU1RfU1JfQ0VSVF9WUkZZX0I6CXN0cj0iU1NMdjMgcmVhZCBjZXJ0aWZpY2F0ZSB2ZXJpZnkgQiI7IGJyZWFrOwogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChPUEVOU1NMX05PX1NTTDIpICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fU1NMMykKIC8qIFNTTHYyL3YzIGNvbXBhdGliaWxpdHkgc3RhdGVzICovCiAvKiBjbGllbnQgKi8KIGNhc2UgU1NMMjNfU1RfQ1dfQ0xOVF9IRUxMT19BOglzdHI9IlNTTHYyL3YzIHdyaXRlIGNsaWVudCBoZWxsbyBBIjsgYnJlYWs7CkBAIC0yMjIsNyArMjIxLDYgQEAKIC8qIHNlcnZlciAqLwogY2FzZSBTU0wyM19TVF9TUl9DTE5UX0hFTExPX0E6CXN0cj0iU1NMdjIvdjMgcmVhZCBjbGllbnQgaGVsbG8gQSI7IGJyZWFrOwogY2FzZSBTU0wyM19TVF9TUl9DTE5UX0hFTExPX0I6CXN0cj0iU1NMdjIvdjMgcmVhZCBjbGllbnQgaGVsbG8gQiI7IGJyZWFrOwotI2VuZGlmCiAKIC8qIERUTFMgKi8KIGNhc2UgRFRMUzFfU1RfQ1JfSEVMTE9fVkVSSUZZX1JFUVVFU1RfQTogc3RyPSJEVExTMSByZWFkIGhlbGxvIHZlcmlmeSByZXF1ZXN0IEEiOyBicmVhazsKQEAgLTM2Niw3ICszNjQsNiBAQAogY2FzZSBTU0wzX1NUX1NSX0NFUlRfVlJGWV9COgkJCXN0cj0iM1JDVl9CIjsgYnJlYWs7CiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fU1NMMikgJiYgIWRlZmluZWQoT1BFTlNTTF9OT19TU0wzKQogLyogU1NMdjIvdjMgY29tcGF0aWJpbGl0eSBzdGF0ZXMgKi8KIC8qIGNsaWVudCAqLwogY2FzZSBTU0wyM19TVF9DV19DTE5UX0hFTExPX0E6CQkJc3RyPSIyM1dDSEEiOyBicmVhazsKQEAgLTM3Niw3ICszNzMsNyBAQAogLyogc2VydmVyICovCiBjYXNlIFNTTDIzX1NUX1NSX0NMTlRfSEVMTE9fQToJCQlzdHI9IjIzUkNIQSI7IGJyZWFrOwogY2FzZSBTU0wyM19TVF9TUl9DTE5UX0hFTExPX0I6CQkJc3RyPSIyM1JDSEIiOyBicmVhazsKLSNlbmRpZgorCiAvKiBEVExTICovCiBjYXNlIERUTFMxX1NUX0NSX0hFTExPX1ZFUklGWV9SRVFVRVNUX0E6IHN0cj0iRFJDSFZBIjsgYnJlYWs7CiBjYXNlIERUTFMxX1NUX0NSX0hFTExPX1ZFUklGWV9SRVFVRVNUX0I6IHN0cj0iRFJDSFZCIjsgYnJlYWs7CmRpZmYgLS1naXQgYS9zc2wvdDFfZW5jLmMgYi9zc2wvdDFfZW5jLmMKaW5kZXggYjhkNDk3ZS4uNDU1OTkyYSAxMDA2NDQKLS0tIGEvc3NsL3QxX2VuYy5jCisrKyBiL3NzbC90MV9lbmMuYwpAQCAtMTE1Myw3ICsxMTUzLDcgQEAKIAlpbnQgcnY7CiAKICNpZmRlZiBLU1NMX0RFQlVHCi0JcHJpbnRmICgidGxzMV9leHBvcnRfa2V5aW5nX21hdGVyaWFsKCVwLCVwLCVkLCVzLCVkLCVwLCVkKVxuIiwgcywgb3V0LCBvbGVuLCBsYWJlbCwgbGxlbiwgcCwgcGxlbik7CisJcHJpbnRmICgidGxzMV9leHBvcnRfa2V5aW5nX21hdGVyaWFsKCVwLCVwLCVkLCVzLCVkLCVwLCVkKVxuIiwgcywgb3V0LCBvbGVuLCBsYWJlbCwgbGxlbiwgY29udGV4dCwgY29udGV4dGxlbik7CiAjZW5kaWYJLyogS1NTTF9ERUJVRyAqLwogCiAJYnVmZiA9IE9QRU5TU0xfbWFsbG9jKG9sZW4pOwpkaWZmIC0tZ2l0IGEvc3NsL3QxX2xpYi5jIGIvc3NsL3QxX2xpYi5jCmluZGV4IDEyMmEyNWYuLmQwYjg5M2IgMTAwNjQ0Ci0tLSBhL3NzbC90MV9saWIuYworKysgYi9zc2wvdDFfbGliLmMKQEAgLTM1MiwxNSArMzUyLDE2IEBACiAJcmV0dXJuIChpbnQpc2xlbjsKIAl9CiAKLXVuc2lnbmVkIGNoYXIgKnNzbF9hZGRfY2xpZW50aGVsbG9fdGxzZXh0KFNTTCAqcywgdW5zaWduZWQgY2hhciAqcCwgdW5zaWduZWQgY2hhciAqbGltaXQpCit1bnNpZ25lZCBjaGFyICpzc2xfYWRkX2NsaWVudGhlbGxvX3Rsc2V4dChTU0wgKnMsIHVuc2lnbmVkIGNoYXIgKmJ1ZiwgdW5zaWduZWQgY2hhciAqbGltaXQpCiAJewogCWludCBleHRkYXRhbGVuPTA7Ci0JdW5zaWduZWQgY2hhciAqcmV0ID0gcDsKKwl1bnNpZ25lZCBjaGFyICpvcmlnID0gYnVmOworCXVuc2lnbmVkIGNoYXIgKnJldCA9IGJ1ZjsKIAogCS8qIGRvbid0IGFkZCBleHRlbnNpb25zIGZvciBTU0x2MyB1bmxlc3MgZG9pbmcgc2VjdXJlIHJlbmVnb3RpYXRpb24gKi8KIAlpZiAocy0+Y2xpZW50X3ZlcnNpb24gPT0gU1NMM19WRVJTSU9OCiAJCQkJCSYmICFzLT5zMy0+c2VuZF9jb25uZWN0aW9uX2JpbmRpbmcpCi0JCXJldHVybiBwOworCQlyZXR1cm4gb3JpZzsKIAogCXJldCs9MjsKIApAQCAtNDA5LDcgKzQxMCw3IEBACiAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICBpZigobGltaXQgLSBwIC0gNCAtIGVsKSA8IDApIHJldHVybiBOVUxMOworICAgICAgICAgIGlmKChsaW1pdCAtIHJldCAtIDQgLSBlbCkgPCAwKSByZXR1cm4gTlVMTDsKICAgICAgICAgICAKICAgICAgICAgICBzMm4oVExTRVhUX1RZUEVfcmVuZWdvdGlhdGUscmV0KTsKICAgICAgICAgICBzMm4oZWwscmV0KTsKQEAgLTQ1Miw4ICs0NTMsNyBAQAogI2VuZGlmCiAKICNpZm5kZWYgT1BFTlNTTF9OT19FQwotCWlmIChzLT50bHNleHRfZWNwb2ludGZvcm1hdGxpc3QgIT0gTlVMTCAmJgotCSAgICBzLT52ZXJzaW9uICE9IERUTFMxX1ZFUlNJT04pCisJaWYgKHMtPnRsc2V4dF9lY3BvaW50Zm9ybWF0bGlzdCAhPSBOVUxMKQogCQl7CiAJCS8qIEFkZCBUTFMgZXh0ZW5zaW9uIEVDUG9pbnRGb3JtYXRzIHRvIHRoZSBDbGllbnRIZWxsbyBtZXNzYWdlICovCiAJCWxvbmcgbGVubWF4OyAKQEAgLTQ3Miw4ICs0NzIsNyBAQAogCQltZW1jcHkocmV0LCBzLT50bHNleHRfZWNwb2ludGZvcm1hdGxpc3QsIHMtPnRsc2V4dF9lY3BvaW50Zm9ybWF0bGlzdF9sZW5ndGgpOwogCQlyZXQrPXMtPnRsc2V4dF9lY3BvaW50Zm9ybWF0bGlzdF9sZW5ndGg7CiAJCX0KLQlpZiAocy0+dGxzZXh0X2VsbGlwdGljY3VydmVsaXN0ICE9IE5VTEwgJiYKLQkgICAgcy0+dmVyc2lvbiAhPSBEVExTMV9WRVJTSU9OKQorCWlmIChzLT50bHNleHRfZWxsaXB0aWNjdXJ2ZWxpc3QgIT0gTlVMTCkKIAkJewogCQkvKiBBZGQgVExTIGV4dGVuc2lvbiBFbGxpcHRpY0N1cnZlcyB0byB0aGUgQ2xpZW50SGVsbG8gbWVzc2FnZSAqLwogCQlsb25nIGxlbm1heDsgCkBAIC02NjksMTMgKzY2OCwxMyBAQAogCQl9CiAKICNpZm5kZWYgT1BFTlNTTF9OT19TUlRQCi0gICAgICAgIGlmKFNTTF9nZXRfc3J0cF9wcm9maWxlcyhzKSkKKwlpZihTU0xfSVNfRFRMUyhzKSAmJiBTU0xfZ2V0X3NydHBfcHJvZmlsZXMocykpCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGludCBlbDsKIAogICAgICAgICAgICAgICAgIHNzbF9hZGRfY2xpZW50aGVsbG9fdXNlX3NydHBfZXh0KHMsIDAsICZlbCwgMCk7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYoKGxpbWl0IC0gcCAtIDQgLSBlbCkgPCAwKSByZXR1cm4gTlVMTDsKKyAgICAgICAgICAgICAgICBpZigobGltaXQgLSByZXQgLSA0IC0gZWwpIDwgMCkgcmV0dXJuIE5VTEw7CiAKICAgICAgICAgICAgICAgICBzMm4oVExTRVhUX1RZUEVfdXNlX3NydHAscmV0KTsKICAgICAgICAgICAgICAgICBzMm4oZWwscmV0KTsKQEAgLTcxOCwyNCArNzE3LDI1IEBACiAJCQl9CiAJCX0KIAotCWlmICgoZXh0ZGF0YWxlbiA9IHJldC1wLTIpPT0gMCkgCi0JCXJldHVybiBwOworCWlmICgoZXh0ZGF0YWxlbiA9IHJldC1vcmlnLTIpPT0gMCkgCisJCXJldHVybiBvcmlnOwogCi0JczJuKGV4dGRhdGFsZW4scCk7CisJczJuKGV4dGRhdGFsZW4sIG9yaWcpOwogCXJldHVybiByZXQ7CiAJfQogCi11bnNpZ25lZCBjaGFyICpzc2xfYWRkX3NlcnZlcmhlbGxvX3Rsc2V4dChTU0wgKnMsIHVuc2lnbmVkIGNoYXIgKnAsIHVuc2lnbmVkIGNoYXIgKmxpbWl0KQordW5zaWduZWQgY2hhciAqc3NsX2FkZF9zZXJ2ZXJoZWxsb190bHNleHQoU1NMICpzLCB1bnNpZ25lZCBjaGFyICpidWYsIHVuc2lnbmVkIGNoYXIgKmxpbWl0KQogCXsKIAlpbnQgZXh0ZGF0YWxlbj0wOwotCXVuc2lnbmVkIGNoYXIgKnJldCA9IHA7CisJdW5zaWduZWQgY2hhciAqb3JpZyA9IGJ1ZjsKKwl1bnNpZ25lZCBjaGFyICpyZXQgPSBidWY7CiAjaWZuZGVmIE9QRU5TU0xfTk9fTkVYVFBST1RPTkVHCiAJaW50IG5leHRfcHJvdG9fbmVnX3NlZW47CiAjZW5kaWYKIAogCS8qIGRvbid0IGFkZCBleHRlbnNpb25zIGZvciBTU0x2MywgdW5sZXNzIGRvaW5nIHNlY3VyZSByZW5lZ290aWF0aW9uICovCiAJaWYgKHMtPnZlcnNpb24gPT0gU1NMM19WRVJTSU9OICYmICFzLT5zMy0+c2VuZF9jb25uZWN0aW9uX2JpbmRpbmcpCi0JCXJldHVybiBwOworCQlyZXR1cm4gb3JpZzsKIAkKIAlyZXQrPTI7CiAJaWYgKHJldD49bGltaXQpIHJldHVybiBOVUxMOyAvKiB0aGlzIHJlYWxseSBuZXZlciBvY2N1cnMsIGJ1dCAuLi4gKi8KQEAgLTc1OCw3ICs3NTgsNyBAQAogICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgaWYoKGxpbWl0IC0gcCAtIDQgLSBlbCkgPCAwKSByZXR1cm4gTlVMTDsKKyAgICAgICAgICBpZigobGltaXQgLSByZXQgLSA0IC0gZWwpIDwgMCkgcmV0dXJuIE5VTEw7CiAgICAgICAgICAgCiAgICAgICAgICAgczJuKFRMU0VYVF9UWVBFX3JlbmVnb3RpYXRlLHJldCk7CiAgICAgICAgICAgczJuKGVsLHJldCk7CkBAIC03NzMsOCArNzczLDcgQEAKICAgICAgICAgfQogCiAjaWZuZGVmIE9QRU5TU0xfTk9fRUMKLQlpZiAocy0+dGxzZXh0X2VjcG9pbnRmb3JtYXRsaXN0ICE9IE5VTEwgJiYKLQkgICAgcy0+dmVyc2lvbiAhPSBEVExTMV9WRVJTSU9OKQorCWlmIChzLT50bHNleHRfZWNwb2ludGZvcm1hdGxpc3QgIT0gTlVMTCkKIAkJewogCQkvKiBBZGQgVExTIGV4dGVuc2lvbiBFQ1BvaW50Rm9ybWF0cyB0byB0aGUgU2VydmVySGVsbG8gbWVzc2FnZSAqLwogCQlsb25nIGxlbm1heDsgCkBAIC04MzIsMTMgKzgzMSwxMyBAQAogI2VuZGlmCiAKICNpZm5kZWYgT1BFTlNTTF9OT19TUlRQCi0gICAgICAgIGlmKHMtPnNydHBfcHJvZmlsZSkKKwlpZihTU0xfSVNfRFRMUyhzKSAmJiBzLT5zcnRwX3Byb2ZpbGUpCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGludCBlbDsKIAogICAgICAgICAgICAgICAgIHNzbF9hZGRfc2VydmVyaGVsbG9fdXNlX3NydHBfZXh0KHMsIDAsICZlbCwgMCk7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYoKGxpbWl0IC0gcCAtIDQgLSBlbCkgPCAwKSByZXR1cm4gTlVMTDsKKyAgICAgICAgICAgICAgICBpZigobGltaXQgLSByZXQgLSA0IC0gZWwpIDwgMCkgcmV0dXJuIE5VTEw7CiAKICAgICAgICAgICAgICAgICBzMm4oVExTRVhUX1RZUEVfdXNlX3NydHAscmV0KTsKICAgICAgICAgICAgICAgICBzMm4oZWwscmV0KTsKQEAgLTkzNywxMCArOTM2LDEwIEBACiAJCXJldCArPSBsZW47CiAJCX0KIAotCWlmICgoZXh0ZGF0YWxlbiA9IHJldC1wLTIpPT0gMCkgCi0JCXJldHVybiBwOworCWlmICgoZXh0ZGF0YWxlbiA9IHJldC1vcmlnLTIpPT0gMCkgCisJCXJldHVybiBvcmlnOwogCi0JczJuKGV4dGRhdGFsZW4scCk7CisJczJuKGV4dGRhdGFsZW4sIG9yaWcpOwogCXJldHVybiByZXQ7CiAJfQogCkBAIC0xMjg4LDggKzEyODcsNyBAQAogI2VuZGlmCiAKICNpZm5kZWYgT1BFTlNTTF9OT19FQwotCQllbHNlIGlmICh0eXBlID09IFRMU0VYVF9UWVBFX2VjX3BvaW50X2Zvcm1hdHMgJiYKLQkgICAgICAgICAgICAgcy0+dmVyc2lvbiAhPSBEVExTMV9WRVJTSU9OKQorCQllbHNlIGlmICh0eXBlID09IFRMU0VYVF9UWVBFX2VjX3BvaW50X2Zvcm1hdHMpCiAJCQl7CiAJCQl1bnNpZ25lZCBjaGFyICpzZGF0YSA9IGRhdGE7CiAJCQlpbnQgZWNwb2ludGZvcm1hdGxpc3RfbGVuZ3RoID0gKihzZGF0YSsrKTsKQEAgLTEzMjMsOCArMTMyMSw3IEBACiAJCQlmcHJpbnRmKHN0ZGVyciwiXG4iKTsKICNlbmRpZgogCQkJfQotCQllbHNlIGlmICh0eXBlID09IFRMU0VYVF9UWVBFX2VsbGlwdGljX2N1cnZlcyAmJgotCSAgICAgICAgICAgICBzLT52ZXJzaW9uICE9IERUTFMxX1ZFUlNJT04pCisJCWVsc2UgaWYgKHR5cGUgPT0gVExTRVhUX1RZUEVfZWxsaXB0aWNfY3VydmVzKQogCQkJewogCQkJdW5zaWduZWQgY2hhciAqc2RhdGEgPSBkYXRhOwogCQkJaW50IGVsbGlwdGljY3VydmVsaXN0X2xlbmd0aCA9ICgqKHNkYXRhKyspIDw8IDgpOwpAQCAtMTYwMCw3ICsxNTk3LDggQEAKIAogCQkvKiBzZXNzaW9uIHRpY2tldCBwcm9jZXNzZWQgZWFybGllciAqLwogI2lmbmRlZiBPUEVOU1NMX05PX1NSVFAKLQkJZWxzZSBpZiAodHlwZSA9PSBUTFNFWFRfVFlQRV91c2Vfc3J0cCkKKwkJZWxzZSBpZiAoU1NMX0lTX0RUTFMocykgJiYgU1NMX2dldF9zcnRwX3Byb2ZpbGVzKHMpCisJCQkgJiYgdHlwZSA9PSBUTFNFWFRfVFlQRV91c2Vfc3J0cCkKIAkJCXsKIAkJCWlmKHNzbF9wYXJzZV9jbGllbnRoZWxsb191c2Vfc3J0cF9leHQocywgZGF0YSwgc2l6ZSwKIAkJCQkJCQkgICAgICBhbCkpCkBAIC0xNzA2LDggKzE3MDQsNyBAQAogCQkJfQogCiAjaWZuZGVmIE9QRU5TU0xfTk9fRUMKLQkJZWxzZSBpZiAodHlwZSA9PSBUTFNFWFRfVFlQRV9lY19wb2ludF9mb3JtYXRzICYmCi0JICAgICAgICAgICAgIHMtPnZlcnNpb24gIT0gRFRMUzFfVkVSU0lPTikKKwkJZWxzZSBpZiAodHlwZSA9PSBUTFNFWFRfVFlQRV9lY19wb2ludF9mb3JtYXRzKQogCQkJewogCQkJdW5zaWduZWQgY2hhciAqc2RhdGEgPSBkYXRhOwogCQkJaW50IGVjcG9pbnRmb3JtYXRsaXN0X2xlbmd0aCA9ICooc2RhdGErKyk7CkBAIC0xNzE4LDE1ICsxNzE1LDE4IEBACiAJCQkJKmFsID0gVExTMV9BRF9ERUNPREVfRVJST1I7CiAJCQkJcmV0dXJuIDA7CiAJCQkJfQotCQkJcy0+c2Vzc2lvbi0+dGxzZXh0X2VjcG9pbnRmb3JtYXRsaXN0X2xlbmd0aCA9IDA7Ci0JCQlpZiAocy0+c2Vzc2lvbi0+dGxzZXh0X2VjcG9pbnRmb3JtYXRsaXN0ICE9IE5VTEwpIE9QRU5TU0xfZnJlZShzLT5zZXNzaW9uLT50bHNleHRfZWNwb2ludGZvcm1hdGxpc3QpOwotCQkJaWYgKChzLT5zZXNzaW9uLT50bHNleHRfZWNwb2ludGZvcm1hdGxpc3QgPSBPUEVOU1NMX21hbGxvYyhlY3BvaW50Zm9ybWF0bGlzdF9sZW5ndGgpKSA9PSBOVUxMKQorCQkJaWYgKCFzLT5oaXQpCiAJCQkJewotCQkJCSphbCA9IFRMUzFfQURfSU5URVJOQUxfRVJST1I7Ci0JCQkJcmV0dXJuIDA7CisJCQkJcy0+c2Vzc2lvbi0+dGxzZXh0X2VjcG9pbnRmb3JtYXRsaXN0X2xlbmd0aCA9IDA7CisJCQkJaWYgKHMtPnNlc3Npb24tPnRsc2V4dF9lY3BvaW50Zm9ybWF0bGlzdCAhPSBOVUxMKSBPUEVOU1NMX2ZyZWUocy0+c2Vzc2lvbi0+dGxzZXh0X2VjcG9pbnRmb3JtYXRsaXN0KTsKKwkJCQlpZiAoKHMtPnNlc3Npb24tPnRsc2V4dF9lY3BvaW50Zm9ybWF0bGlzdCA9IE9QRU5TU0xfbWFsbG9jKGVjcG9pbnRmb3JtYXRsaXN0X2xlbmd0aCkpID09IE5VTEwpCisJCQkJCXsKKwkJCQkJKmFsID0gVExTMV9BRF9JTlRFUk5BTF9FUlJPUjsKKwkJCQkJcmV0dXJuIDA7CisJCQkJCX0KKwkJCQlzLT5zZXNzaW9uLT50bHNleHRfZWNwb2ludGZvcm1hdGxpc3RfbGVuZ3RoID0gZWNwb2ludGZvcm1hdGxpc3RfbGVuZ3RoOworCQkJCW1lbWNweShzLT5zZXNzaW9uLT50bHNleHRfZWNwb2ludGZvcm1hdGxpc3QsIHNkYXRhLCBlY3BvaW50Zm9ybWF0bGlzdF9sZW5ndGgpOwogCQkJCX0KLQkJCXMtPnNlc3Npb24tPnRsc2V4dF9lY3BvaW50Zm9ybWF0bGlzdF9sZW5ndGggPSBlY3BvaW50Zm9ybWF0bGlzdF9sZW5ndGg7Ci0JCQltZW1jcHkocy0+c2Vzc2lvbi0+dGxzZXh0X2VjcG9pbnRmb3JtYXRsaXN0LCBzZGF0YSwgZWNwb2ludGZvcm1hdGxpc3RfbGVuZ3RoKTsKICNpZiAwCiAJCQlmcHJpbnRmKHN0ZGVyciwic3NsX3BhcnNlX3NlcnZlcmhlbGxvX3Rsc2V4dCBzLT5zZXNzaW9uLT50bHNleHRfZWNwb2ludGZvcm1hdGxpc3QgIik7CiAJCQlzZGF0YSA9IHMtPnNlc3Npb24tPnRsc2V4dF9lY3BvaW50Zm9ybWF0bGlzdDsKQEAgLTE5MTIsNyArMTkxMiw3IEBACiAJCQl9CiAjZW5kaWYKICNpZm5kZWYgT1BFTlNTTF9OT19TUlRQCi0JCWVsc2UgaWYgKHR5cGUgPT0gVExTRVhUX1RZUEVfdXNlX3NydHApCisJCWVsc2UgaWYgKFNTTF9JU19EVExTKHMpICYmIHR5cGUgPT0gVExTRVhUX1RZUEVfdXNlX3NydHApCiAJCQl7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZihzc2xfcGFyc2Vfc2VydmVyaGVsbG9fdXNlX3NydHBfZXh0KHMsIGRhdGEsIHNpemUsCiAJCQkJCQkJICAgICAgYWwpKQpAQCAtMjU2MSw3ICsyNTYxLDEwIEBACiAJSE1BQ19GaW5hbCgmaGN0eCwgdGlja19obWFjLCBOVUxMKTsKIAlITUFDX0NUWF9jbGVhbnVwKCZoY3R4KTsKIAlpZiAoQ1JZUFRPX21lbWNtcCh0aWNrX2htYWMsIGV0aWNrICsgZXRpY2tsZW4sIG1sZW4pKQorCQl7CisJCUVWUF9DSVBIRVJfQ1RYX2NsZWFudXAoJmN0eCk7CiAJCXJldHVybiAyOworCQl9CiAJLyogQXR0ZW1wdCB0byBkZWNyeXB0IHNlc3Npb24gZGF0YSAqLwogCS8qIE1vdmUgcCBhZnRlciBJViB0byBzdGFydCBvZiBlbmNyeXB0ZWQgdGlja2V0LCB1cGRhdGUgbGVuZ3RoICovCiAJcCA9IGV0aWNrICsgMTYgKyBFVlBfQ0lQSEVSX0NUWF9pdl9sZW5ndGgoJmN0eCk7CkBAIC0yNTc0LDcgKzI1NzcsMTEgQEAKIAkJfQogCUVWUF9EZWNyeXB0VXBkYXRlKCZjdHgsIHNkZWMsICZzbGVuLCBwLCBldGlja2xlbik7CiAJaWYgKEVWUF9EZWNyeXB0RmluYWwoJmN0eCwgc2RlYyArIHNsZW4sICZtbGVuKSA8PSAwKQorCQl7CisJCUVWUF9DSVBIRVJfQ1RYX2NsZWFudXAoJmN0eCk7CisJCU9QRU5TU0xfZnJlZShzZGVjKTsKIAkJcmV0dXJuIDI7CisJCX0KIAlzbGVuICs9IG1sZW47CiAJRVZQX0NJUEhFUl9DVFhfY2xlYW51cCgmY3R4KTsKIAlwID0gc2RlYzsKZGlmZiAtLWdpdCBhL3NzbC90bHNfc3JwLmMgYi9zc2wvdGxzX3NycC5jCmluZGV4IDIzMTVhN2MuLmU3MzY4YTggMTAwNjQ0Ci0tLSBhL3NzbC90bHNfc3JwLmMKKysrIGIvc3NsL3Rsc19zcnAuYwpAQCAtNDA4LDE3ICs0MDgsNDcgQEAKIAlyZXR1cm4gcmV0OwogCX0KIAoraW50IHNycF92ZXJpZnlfc2VydmVyX3BhcmFtKFNTTCAqcywgaW50ICphbCkKKwl7CisJU1JQX0NUWCAqc3JwID0gJnMtPnNycF9jdHg7CisJLyogU2FuaXR5IGNoZWNrIHBhcmFtZXRlcnM6IHdlIGNhbiBxdWlja2x5IGNoZWNrIEIgJSBOID09IDAKKwkgKiBieSBjaGVja2luZyBCICE9IDAgc2luY2UgQiA8IE4KKwkgKi8KKwlpZiAoQk5fdWNtcChzcnAtPmcsIHNycC0+TikgPj0wIHx8IEJOX3VjbXAoc3JwLT5CLCBzcnAtPk4pID49IDAKKwkJfHwgQk5faXNfemVybyhzcnAtPkIpKQorCQl7CisJCSphbCA9IFNTTDNfQURfSUxMRUdBTF9QQVJBTUVURVI7CisJCXJldHVybiAwOworCQl9CisKKwlpZiAoQk5fbnVtX2JpdHMoc3JwLT5OKSA8IHNycC0+c3RyZW5ndGgpCisJCXsKKwkJKmFsID0gVExTMV9BRF9JTlNVRkZJQ0lFTlRfU0VDVVJJVFk7CisJCXJldHVybiAwOworCQl9CisKKwlpZiAoc3JwLT5TUlBfdmVyaWZ5X3BhcmFtX2NhbGxiYWNrKQorCQl7CisJCWlmIChzcnAtPlNSUF92ZXJpZnlfcGFyYW1fY2FsbGJhY2socywgc3JwLT5TUlBfY2JfYXJnKSA8PSAwKQorCQkJeworCQkJKmFsID0gVExTMV9BRF9JTlNVRkZJQ0lFTlRfU0VDVVJJVFk7CisJCQlyZXR1cm4gMDsKKwkJCX0KKwkJfQorCWVsc2UgaWYoIVNSUF9jaGVja19rbm93bl9nTl9wYXJhbShzcnAtPmcsIHNycC0+TikpCisJCXsKKwkJKmFsID0gVExTMV9BRF9JTlNVRkZJQ0lFTlRfU0VDVVJJVFk7CisJCXJldHVybiAwOworCQl9CisKKwlyZXR1cm4gMTsKKwl9CisJCisKIGludCBTUlBfQ2FsY19BX3BhcmFtKFNTTCAqcykKIAl7CiAJdW5zaWduZWQgY2hhciBybmRbU1NMX01BWF9NQVNURVJfS0VZX0xFTkdUSF07CiAKLQlpZiAoQk5fbnVtX2JpdHMocy0+c3JwX2N0eC5OKSA8IHMtPnNycF9jdHguc3RyZW5ndGgpCi0JCXJldHVybiAtMTsKLQotCWlmIChzLT5zcnBfY3R4LlNSUF92ZXJpZnlfcGFyYW1fY2FsbGJhY2sgPT1OVUxMICYmIAotCQkhU1JQX2NoZWNrX2tub3duX2dOX3BhcmFtKHMtPnNycF9jdHguZyxzLT5zcnBfY3R4Lk4pKQotCQlyZXR1cm4gLTEgOwotCiAJUkFORF9ieXRlcyhybmQsIHNpemVvZihybmQpKTsKIAlzLT5zcnBfY3R4LmEgPSBCTl9iaW4yYm4ocm5kLCBzaXplb2Yocm5kKSwgcy0+c3JwX2N0eC5hKTsKIAlPUEVOU1NMX2NsZWFuc2Uocm5kLCBzaXplb2Yocm5kKSk7CkBAIC00MjYsMTAgKzQ1Niw2IEBACiAJaWYgKCEocy0+c3JwX2N0eC5BID0gU1JQX0NhbGNfQShzLT5zcnBfY3R4LmEscy0+c3JwX2N0eC5OLHMtPnNycF9jdHguZykpKQogCQlyZXR1cm4gLTE7CiAKLQkvKiBXZSBjYW4gaGF2ZSBhIGNhbGxiYWNrIHRvIHZlcmlmeSBTUlAgcGFyYW0hISAqLwotCWlmIChzLT5zcnBfY3R4LlNSUF92ZXJpZnlfcGFyYW1fY2FsbGJhY2sgIT1OVUxMKSAKLQkJcmV0dXJuIHMtPnNycF9jdHguU1JQX3ZlcmlmeV9wYXJhbV9jYWxsYmFjayhzLHMtPnNycF9jdHguU1JQX2NiX2FyZyk7Ci0KIAlyZXR1cm4gMTsKIAl9CiAK