From: marko.makela Date: August 15 2011 9:44am Subject: bzr push into mysql-5.1 branch (marko.makela:3583 to 3584) Bug#11766591 List-Archive: http://lists.mysql.com/commits/140618 X-Bug: 11766591 Message-Id: <201108150944.p7F9iVR4023890@acsmt358.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM1ODQgTWFya28gTcOka2Vsw6QJMjAxMS0wOC0xNQogICAgICBCdWcgIzExNzY2NTkxIDU5NzMz OiBQb3NzaWJsZSBkZWFkbG9jayB3aGVuIGJ1ZmZlcmVkIGNoYW5nZXMgYXJlIHRvIGJlCiAgICAg IGRpc2NhcmRlZCBpbiBidWZfcGFnZV9jcmVhdGUoKQogICAgICAKICAgICAgVGhpcyBidWcgdHVy bmVkIG91dCB0byBiZSBhIGZhbHNlIGFsYXJtLCBhIGJ1ZyBpbiB0aGUgVU5JVl9TWU5DX0RFQlVH CiAgICAgIGRpYWdub3N0aWMgY29kZS4gQmVjYXVzZSBvZiB0aGlzLCB0aGUgcGF0Y2ggd2FzIG5v dCBiYWNrcG9ydGVkIHRvIHRoZQogICAgICBidWlsdC1pbiBJbm5vREIgaW4gTXlTUUwgNS4xLiBG dXJ0aGVybW9yZSwgdGhlcmUgaXMgbm8gdGVzdCBjYXNlIGZvcgogICAgICBJbm5vREIgUGx1Z2lu IGluIE15U1FMIDUuMSwgYmVjYXVzZSB0aGUgZGVsZXRlIGJ1ZmZlcmluZyBpbiBNeVNRTCA1LjUK ICAgICAgbWFrZXMgdHJpZ2dlcmluZyB0aGUgZmFpbHVyZSBtdWNoIGVhc2llci4KICAgICAgCiAg ICAgIFdoZW4gYSBmcmVlZCBwYWdlIGZvciB3aGljaCB0aGVyZSBleGlzdCBvcnBoYW5lZCBidWZm ZXJlZCBjaGFuZ2VzIGlzCiAgICAgIGFsbG9jYXRlZCBhbmQgcmV1c2VkIGZvciBzb21ldGhpbmcg ZWxzZSwgYnVmX3BhZ2VfY3JlYXRlKCkgd2lsbCBkaXNjYXJkCiAgICAgIHRoZSBidWZmZXJlZCBj aGFuZ2VzIGJ5IGludm9raW5nIGlidWZfbWVyZ2Vfb3JfZGVsZXRlX2Zvcl9wYWdlKCkuCiAgICAg IFRoaXMgd291bGQgdmlvbGF0ZSB0aGUgSW5ub0RCIGxhdGNoaW5nIG9yZGVyLgogICAgICAKICAg ICAgVHdlYWsgdGhlIGxhdGNoaW5nIG9yZGVyIGFzIGZvbGxvd3MuIE1vdmUgU1lOQ19JQlVGX01V VEVYIGJlbG93CiAgICAgIFNZTkNfRlNQX1BBR0UsIHdoZXJlIGl0IGxvZ2ljYWxseSBiZWxvbmdz LCBhbmQgYXNzaWduIG5ldyBsYXRjaGluZwogICAgICBsZXZlbHMgZm9yIHRoZSBpYnVmLT5pbmRl eC0+bG9jayBhbmQgdGhlIGluc2VydCBidWZmZXIgQi10cmVlIHBhZ2VzOgogICAgICAKICAgICAg I2RlZmluZSBTWU5DX0lCVUZfTVVURVgJCTM3MAkvKiBpYnVmX211dGV4ICovCiAgICAgICNkZWZp bmUgU1lOQ19JQlVGX0lOREVYX1RSRUUJMzYwCiAgICAgICNkZWZpbmUgU1lOQ19JQlVGX1RSRUVf Tk9ERV9ORVcJMzU5CiAgICAgICNkZWZpbmUgU1lOQ19JQlVGX1RSRUVfTk9ERQkzNTgKICAgICAg CiAgICAgIGJ0cl9ibG9ja19nZXQoKSwgYnRyX3BhZ2VfZ2V0KCk6IEluIFVOSVZfU1lOQ19ERUJV RywgYWRkIHRoZSBwYXJhbWV0ZXIKICAgICAgImluZGV4IiBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFw cHJvcHJpYXRlIGxhdGNoaW5nIG9yZGVyCiAgICAgIChTWU5DX0lCVUZfVFJFRV9OT0RFIG9yIFNZ TkNfVFJFRV9OT0RFKS4KICAgICAgCiAgICAgIGJ0cl9wYWdlX2FsbG9jX2Zvcl9pYnVmKCksIGJ0 cl9jcmVhdGUoKTogVXNlIFNZTkNfSUJVRl9UUkVFX05PREVfTkVXCiAgICAgIGluc3RlYWQgb2Yg U1lOQ19UUkVFX05PREVfTkVXIGZvciBpbnNlcnQgYnVmZmVyIHBhZ2VzLgogICAgICAKICAgICAg YnRyX2N1cl9zZWFyY2hfdG9fbnRoX2xldmVsKCksIGJ0cl9wY3VyX3Jlc3RvcmVfcG9zaXRpb25f ZnVuYygpOiBVc2UKICAgICAgU1lOQ19JQlVGX1RSRUVfTk9ERSBpbnN0ZWFkIG9mIFNZTkNfVFJF RV9OT0RFIGZvciBpbnNlcnQgYnVmZmVyIHBhZ2VzLgogICAgICAKICAgICAgYnRyX3NlYXJjaF9n dWVzc19vbl9oYXNoKCk6IEFzc2VydCB0aGF0IHRoZSBpbmRleCBpcyBub3QgYW4gaW5zZXJ0IGJ1 ZmZlciB0cmVlLgogICAgICAKICAgICAgZGljdF9pbmRleF9hZGRfdG9fY2FjaGUoKTogVXNlIFNZ TkNfSUJVRl9JTkRFWF9UUkVFIGZvciB0aGUgaW5zZXJ0CiAgICAgIGJ1ZmZlciB0cmVlIChpYnVm LT5pbmRleC0+bG9jaykuCiAgICAgIAogICAgICBpYnVmMGlidWYuYzogVXNlIFNZTkNfSUJVRl9U UkVFX05PREUgb3IgU1lOQ19JQlVGX1RSRUVfTk9ERV9ORVcgZm9yCiAgICAgIGFsbCBCLXRyZWUg cGFnZXMuCiAgICAgIAogICAgICBpYnVmX21lcmdlX29yX2RlbGV0ZV9mb3JfcGFnZSgpOiBBc3Nl cnQgdGhhdCB0aGUgdXNlciBwYWdlIGlzCiAgICAgIEJVRl9JT19SRUFEIGZpeGVkLiBPbmx5IGlu IHRoaXMgd2F5IGl0IGlzIE9LIHRvIGxhdGNoIGl0IGFzCiAgICAgIFNZTkNfSUJVRl9UUkVFX05P REUgaW5zdGVhZCBvZiB0aGUgcHJvcGVyIFNZTkNfVFJFRV9OT0RFICh3aGljaCB3b3VsZAogICAg ICB2aW9sYXRlIHRoZSBjaGFuZ2VkIGxhdGNoaW5nIG9yZGVyKS4KICAgICAgCiAgICAgIHN5bmNf dGhyZWFkX2FkZF9sZXZlbCgpOiBSZW1vdmUgdGhlIHNwZWNpYWwgdHdlYWsgZm9yCiAgICAgIFNZ TkNfSUJVRl9NVVRFWC4gQWRkIHJ1bGVzIGZvciB0aGUgYWRkZWQgbGF0Y2hpbmcgbGV2ZWxzLgog ICAgICAKICAgICAgcmI6NTkxIGFwcHJvdmVkIGJ5IEppbW15IFlhbmcKCiAgICBtb2RpZmllZDoK ICAgICAgc3RvcmFnZS9pbm5vZGJfcGx1Z2luL0NoYW5nZUxvZwogICAgICBzdG9yYWdlL2lubm9k Yl9wbHVnaW4vYnRyL2J0cjBidHIuYwogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vYnRyL2J0 cjBjdXIuYwogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vYnRyL2J0cjBwY3VyLmMKICAgICAg c3RvcmFnZS9pbm5vZGJfcGx1Z2luL2J0ci9idHIwc2VhLmMKICAgICAgc3RvcmFnZS9pbm5vZGJf cGx1Z2luL2RpY3QvZGljdDBjcmVhLmMKICAgICAgc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2RpY3Qv ZGljdDBkaWN0LmMKICAgICAgc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2lidWYvaWJ1ZjBpYnVmLmMK ICAgICAgc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2luY2x1ZGUvYnRyMGJ0ci5oCiAgICAgIHN0b3Jh Z2UvaW5ub2RiX3BsdWdpbi9pbmNsdWRlL2J0cjBidHIuaWMKICAgICAgc3RvcmFnZS9pbm5vZGJf cGx1Z2luL2luY2x1ZGUvc3luYzBzeW5jLmgKICAgICAgc3RvcmFnZS9pbm5vZGJfcGx1Z2luL3N5 bmMvc3luYzBzeW5jLmMKIDM1ODMgR2VvcmdpIEtvZGlub3YJMjAxMS0wOC0xMgogICAgICBidW1w ZWQgdGhlIHZlcnNpb24gdG8gNS4xLjYwCgogICAgbW9kaWZpZWQ6CiAgICAgIGNvbmZpZ3VyZS5p bgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vZGJfcGx1Z2luL0NoYW5nZUxvZycKLS0t IGEvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL0NoYW5nZUxvZwlyZXZpZDpnZW9yZ2kua29kaW5vdkBv cmFjbGUuY29tLTIwMTEwODEyMTEyMDE3LTFnbTdwb3EzMmJ4cWw2cXEKKysrIGIvc3RvcmFnZS9p bm5vZGJfcGx1Z2luL0NoYW5nZUxvZwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEx MDgxNTA5MTE0My1oM3pidm0wcHY4bmkzcXFsCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDgtMTUJ VGhlIElubm9EQiBUZWFtCisKKwkqIGJ0ci9idHIwYnRyLmMsIGJ0ci9idHIwY3VyLmMsIGJ0ci9i dHIwcGN1ci5jLCBidHIvYnRyMHNlYS5jLAorCWRpY3QvZGljdDBjcmVhLmMsIGRpY3QvZGljdDBk aWN0LmMsIGlidWYvaWJ1ZjBpYnVmLmMsCisJaW5jbHVkZS9idHIwYnRyLmgsIGluY2x1ZGUvYnRy MGJ0ci5pYywgaW5jbHVkZS9zeW5jMHN5bmMuaCwKKwlzeW5jL3N5bmMwc3luYy5jOgorCUZpeCBC dWcjMTE3NjY1OTEgNTk3MzM6IFBvc3NpYmxlIGRlYWRsb2NrIHdoZW4gYnVmZmVyZWQgY2hhbmdl cworCWFyZSB0byBiZSBkaXNjYXJkZWQgaW4gYnVmX3BhZ2VfY3JlYXRlKCkKKwogMjAxMS0wOC0w OAlUaGUgSW5ub0RCIFRlYW0KIAogCSogcm93L3JvdzBzZWwuYzoKCj09PSBtb2RpZmllZCBmaWxl ICdzdG9yYWdlL2lubm9kYl9wbHVnaW4vYnRyL2J0cjBidHIuYycKLS0tIGEvc3RvcmFnZS9pbm5v ZGJfcGx1Z2luL2J0ci9idHIwYnRyLmMJcmV2aWQ6Z2VvcmdpLmtvZGlub3ZAb3JhY2xlLmNvbS0y MDExMDgxMjExMjAxNy0xZ203cG9xMzJieHFsNnFxCisrKyBiL3N0b3JhZ2UvaW5ub2RiX3BsdWdp bi9idHIvYnRyMGJ0ci5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwODE1MDkx MTQzLWgzemJ2bTBwdjhuaTNxcWwKQEAgLTY5MCw3ICs2OTAsOCBAQCBidHJfcm9vdF9ibG9ja19n ZXQoCiAJemlwX3NpemUgPSBkaWN0X3RhYmxlX3ppcF9zaXplKGluZGV4LT50YWJsZSk7CiAJcm9v dF9wYWdlX25vID0gZGljdF9pbmRleF9nZXRfcGFnZShpbmRleCk7CiAKLQlibG9jayA9IGJ0cl9i bG9ja19nZXQoc3BhY2UsIHppcF9zaXplLCByb290X3BhZ2Vfbm8sIFJXX1hfTEFUQ0gsIG10cik7 CisJYmxvY2sgPSBidHJfYmxvY2tfZ2V0KHNwYWNlLCB6aXBfc2l6ZSwgcm9vdF9wYWdlX25vLCBS V19YX0xBVENILAorCQkJICAgICAgaW5kZXgsIG10cik7CiAJdXRfYSgoaWJvb2wpISFwYWdlX2lz X2NvbXAoYnVmX2Jsb2NrX2dldF9mcmFtZShibG9jaykpCiAJICAgICA9PSBkaWN0X3RhYmxlX2lz X2NvbXAoaW5kZXgtPnRhYmxlKSk7CiAjaWZkZWYgVU5JVl9CVFJfREVCVUcKQEAgLTg5MSw3ICs4 OTIsNyBAQCBidHJfcGFnZV9hbGxvY19mb3JfaWJ1ZigKIAkJCQkgZGljdF90YWJsZV96aXBfc2l6 ZShpbmRleC0+dGFibGUpLAogCQkJCSBub2RlX2FkZHIucGFnZSwgUldfWF9MQVRDSCwgbXRyKTsK IAluZXdfcGFnZSA9IGJ1Zl9ibG9ja19nZXRfZnJhbWUobmV3X2Jsb2NrKTsKLQlidWZfYmxvY2tf ZGJnX2FkZF9sZXZlbChuZXdfYmxvY2ssIFNZTkNfVFJFRV9OT0RFX05FVyk7CisJYnVmX2Jsb2Nr X2RiZ19hZGRfbGV2ZWwobmV3X2Jsb2NrLCBTWU5DX0lCVUZfVFJFRV9OT0RFX05FVyk7CiAKIAlm bHN0X3JlbW92ZShyb290ICsgUEFHRV9IRUFERVIgKyBQQUdFX0JUUl9JQlVGX0ZSRUVfTElTVCwK IAkJICAgIG5ld19wYWdlICsgUEFHRV9IRUFERVIgKyBQQUdFX0JUUl9JQlVGX0ZSRUVfTElTVF9O T0RFLApAQCAtMTEzOSw3ICsxMTQwLDcgQEAgYnRyX25vZGVfcHRyX2dldF9jaGlsZCgKIAlwYWdl X25vID0gYnRyX25vZGVfcHRyX2dldF9jaGlsZF9wYWdlX25vKG5vZGVfcHRyLCBvZmZzZXRzKTsK IAogCXJldHVybihidHJfYmxvY2tfZ2V0KHNwYWNlLCBkaWN0X3RhYmxlX3ppcF9zaXplKGluZGV4 LT50YWJsZSksCi0JCQkgICAgIHBhZ2Vfbm8sIFJXX1hfTEFUQ0gsIG10cikpOworCQkJICAgICBw YWdlX25vLCBSV19YX0xBVENILCBpbmRleCwgbXRyKSk7CiB9CiAKIC8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCkBAIC0xMzEx LDcgKzEzMTIsOCBAQCBidHJfY3JlYXRlKAogCQkJc3BhY2UsIDAsCiAJCQlJQlVGX0hFQURFUiAr IElCVUZfVFJFRV9TRUdfSEVBREVSLCBtdHIpOwogCi0JCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVs KGlidWZfaGRyX2Jsb2NrLCBTWU5DX1RSRUVfTk9ERV9ORVcpOworCQlidWZfYmxvY2tfZGJnX2Fk ZF9sZXZlbCgKKwkJCWlidWZfaGRyX2Jsb2NrLCBTWU5DX0lCVUZfVFJFRV9OT0RFX05FVyk7CiAK IAkJdXRfYWQoYnVmX2Jsb2NrX2dldF9wYWdlX25vKGlidWZfaGRyX2Jsb2NrKQogCQkgICAgICA9 PSBJQlVGX0hFQURFUl9QQUdFX05PKTsKQEAgLTEzNDgsMTAgKzEzNTAsOSBAQCBidHJfY3JlYXRl KAogCXBhZ2Vfbm8gPSBidWZfYmxvY2tfZ2V0X3BhZ2Vfbm8oYmxvY2spOwogCWZyYW1lID0gYnVm X2Jsb2NrX2dldF9mcmFtZShibG9jayk7CiAKLQlidWZfYmxvY2tfZGJnX2FkZF9sZXZlbChibG9j aywgU1lOQ19UUkVFX05PREVfTkVXKTsKLQogCWlmICh0eXBlICYgRElDVF9JQlVGKSB7CiAJCS8q IEl0IGlzIGFuIGluc2VydCBidWZmZXIgdHJlZTogaW5pdGlhbGl6ZSB0aGUgZnJlZSBsaXN0ICov CisJCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2NrLCBTWU5DX0lCVUZfVFJFRV9OT0RFX05F Vyk7CiAKIAkJdXRfYWQocGFnZV9ubyA9PSBJQlVGX1RSRUVfUk9PVF9QQUdFX05PKTsKIApAQCAt MTM1OSw2ICsxMzYwLDggQEAgYnRyX2NyZWF0ZSgKIAl9IGVsc2UgewogCQkvKiBJdCBpcyBhIG5v bi1pYnVmIHRyZWU6IGNyZWF0ZSBhIGZpbGUgc2VnbWVudCBmb3IgbGVhZgogCQlwYWdlcyAqLwor CQlidWZfYmxvY2tfZGJnX2FkZF9sZXZlbChibG9jaywgU1lOQ19UUkVFX05PREVfTkVXKTsKKwog CQlpZiAoIWZzZWdfY3JlYXRlKHNwYWNlLCBwYWdlX25vLAogCQkJCSBQQUdFX0hFQURFUiArIFBB R0VfQlRSX1NFR19MRUFGLCBtdHIpKSB7CiAJCQkvKiBOb3QgZW5vdWdoIHNwYWNlIGZvciBuZXcg c2VnbWVudCwgZnJlZSByb290CkBAIC0xNDMwLDcgKzE0MzMsOCBAQCBidHJfZnJlZV9idXRfbm90 X3Jvb3QoCiBsZWFmX2xvb3A6CiAJbXRyX3N0YXJ0KCZtdHIpOwogCi0Jcm9vdCA9IGJ0cl9wYWdl X2dldChzcGFjZSwgemlwX3NpemUsIHJvb3RfcGFnZV9ubywgUldfWF9MQVRDSCwgJm10cik7CisJ cm9vdCA9IGJ0cl9wYWdlX2dldChzcGFjZSwgemlwX3NpemUsIHJvb3RfcGFnZV9ubywgUldfWF9M QVRDSCwKKwkJCSAgICBOVUxMLCAmbXRyKTsKICNpZmRlZiBVTklWX0JUUl9ERUJVRwogCXV0X2Eo YnRyX3Jvb3RfZnNlZ192YWxpZGF0ZShGSUxfUEFHRV9EQVRBICsgUEFHRV9CVFJfU0VHX0xFQUYK IAkJCQkgICAgKyByb290LCBzcGFjZSkpOwpAQCAtMTQ1Miw3ICsxNDU2LDggQEAgbGVhZl9sb29w OgogdG9wX2xvb3A6CiAJbXRyX3N0YXJ0KCZtdHIpOwogCi0Jcm9vdCA9IGJ0cl9wYWdlX2dldChz cGFjZSwgemlwX3NpemUsIHJvb3RfcGFnZV9ubywgUldfWF9MQVRDSCwgJm10cik7CisJcm9vdCA9 IGJ0cl9wYWdlX2dldChzcGFjZSwgemlwX3NpemUsIHJvb3RfcGFnZV9ubywgUldfWF9MQVRDSCwK KwkJCSAgICBOVUxMLCAmbXRyKTsKICNpZmRlZiBVTklWX0JUUl9ERUJVRwogCXV0X2EoYnRyX3Jv b3RfZnNlZ192YWxpZGF0ZShGSUxfUEFHRV9EQVRBICsgUEFHRV9CVFJfU0VHX1RPUAogCQkJCSAg ICArIHJvb3QsIHNwYWNlKSk7CkBAIC0xNDc4LDEzICsxNDgzLDEzIEBAIGJ0cl9mcmVlX3Jvb3Qo CiAJdWxpbnQJemlwX3NpemUsCS8qITwgaW46IGNvbXByZXNzZWQgcGFnZSBzaXplIGluIGJ5dGVz CiAJCQkJb3IgMCBmb3IgdW5jb21wcmVzc2VkIHBhZ2VzICovCiAJdWxpbnQJcm9vdF9wYWdlX25v LAkvKiE8IGluOiByb290IHBhZ2UgbnVtYmVyICovCi0JbXRyX3QqCW10cikJCS8qITwgaW46IGEg bWluaS10cmFuc2FjdGlvbiB3aGljaCBoYXMgYWxyZWFkeQotCQkJCWJlZW4gc3RhcnRlZCAqLwor CW10cl90KgltdHIpCQkvKiE8IGluL291dDogbWluaS10cmFuc2FjdGlvbiAqLwogewogCWJ1Zl9i bG9ja190KglibG9jazsKIAlmc2VnX2hlYWRlcl90KgloZWFkZXI7CiAKLQlibG9jayA9IGJ0cl9i bG9ja19nZXQoc3BhY2UsIHppcF9zaXplLCByb290X3BhZ2Vfbm8sIFJXX1hfTEFUQ0gsIG10cik7 CisJYmxvY2sgPSBidHJfYmxvY2tfZ2V0KHNwYWNlLCB6aXBfc2l6ZSwgcm9vdF9wYWdlX25vLCBS V19YX0xBVENILAorCQkJICAgICAgTlVMTCwgbXRyKTsKIAogCWJ0cl9zZWFyY2hfZHJvcF9wYWdl X2hhc2hfaW5kZXgoYmxvY2spOwogCkBAIC0yMzYyLDkgKzIzNjcsOCBAQCBidHJfYXR0YWNoX2hh bGZfcGFnZXMoCiAJLyogVXBkYXRlIHBhZ2UgbGlua3Mgb2YgdGhlIGxldmVsICovCiAKIAlpZiAo cHJldl9wYWdlX25vICE9IEZJTF9OVUxMKSB7Ci0JCWJ1Zl9ibG9ja190KglwcmV2X2Jsb2NrID0g YnRyX2Jsb2NrX2dldChzcGFjZSwgemlwX3NpemUsCi0JCQkJCQkJICAgcHJldl9wYWdlX25vLAot CQkJCQkJCSAgIFJXX1hfTEFUQ0gsIG10cik7CisJCWJ1Zl9ibG9ja190KglwcmV2X2Jsb2NrID0g YnRyX2Jsb2NrX2dldCgKKwkJCXNwYWNlLCB6aXBfc2l6ZSwgcHJldl9wYWdlX25vLCBSV19YX0xB VENILCBpbmRleCwgbXRyKTsKICNpZmRlZiBVTklWX0JUUl9ERUJVRwogCQl1dF9hKHBhZ2VfaXNf Y29tcChwcmV2X2Jsb2NrLT5mcmFtZSkgPT0gcGFnZV9pc19jb21wKHBhZ2UpKTsKIAkJdXRfYShi dHJfcGFnZV9nZXRfbmV4dChwcmV2X2Jsb2NrLT5mcmFtZSwgbXRyKQpAQCAtMjM3Nyw5ICsyMzgx LDggQEAgYnRyX2F0dGFjaF9oYWxmX3BhZ2VzKAogCX0KIAogCWlmIChuZXh0X3BhZ2Vfbm8gIT0g RklMX05VTEwpIHsKLQkJYnVmX2Jsb2NrX3QqCW5leHRfYmxvY2sgPSBidHJfYmxvY2tfZ2V0KHNw YWNlLCB6aXBfc2l6ZSwKLQkJCQkJCQkgICBuZXh0X3BhZ2Vfbm8sCi0JCQkJCQkJICAgUldfWF9M QVRDSCwgbXRyKTsKKwkJYnVmX2Jsb2NrX3QqCW5leHRfYmxvY2sgPSBidHJfYmxvY2tfZ2V0KAor CQkJc3BhY2UsIHppcF9zaXplLCBuZXh0X3BhZ2Vfbm8sIFJXX1hfTEFUQ0gsIGluZGV4LCBtdHIp OwogI2lmZGVmIFVOSVZfQlRSX0RFQlVHCiAJCXV0X2EocGFnZV9pc19jb21wKG5leHRfYmxvY2st PmZyYW1lKSA9PSBwYWdlX2lzX2NvbXAocGFnZSkpOwogCQl1dF9hKGJ0cl9wYWdlX2dldF9wcmV2 KG5leHRfYmxvY2stPmZyYW1lLCBtdHIpCkBAIC0yODAxLDE3ICsyODA0LDQyIEBAIGZ1bmNfZXhp dDoKIAlyZXR1cm4ocmVjKTsKIH0KIAorI2lmZGVmIFVOSVZfU1lOQ19ERUJVRworLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoq CitSZW1vdmVzIGEgcGFnZSBmcm9tIHRoZSBsZXZlbCBsaXN0IG9mIHBhZ2VzLgorQHBhcmFtIHNw YWNlCWluOiBzcGFjZSB3aGVyZSByZW1vdmVkCitAcGFyYW0gemlwX3NpemUJaW46IGNvbXByZXNz ZWQgcGFnZSBzaXplIGluIGJ5dGVzLCBvciAwIGZvciB1bmNvbXByZXNzZWQKK0BwYXJhbSBwYWdl CWluL291dDogcGFnZSB0byByZW1vdmUKK0BwYXJhbSBpbmRleAlpbjogaW5kZXggdHJlZQorQHBh cmFtIG10cglpbi9vdXQ6IG1pbmktdHJhbnNhY3Rpb24gKi8KKyMgZGVmaW5lIGJ0cl9sZXZlbF9s aXN0X3JlbW92ZShzcGFjZSx6aXBfc2l6ZSxwYWdlLGluZGV4LG10cikJCVwKKwlidHJfbGV2ZWxf bGlzdF9yZW1vdmVfZnVuYyhzcGFjZSx6aXBfc2l6ZSxwYWdlLGluZGV4LG10cikKKyNlbHNlIC8q IFVOSVZfU1lOQ19ERUJVRyAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCitSZW1vdmVzIGEgcGFnZSBmcm9tIHRoZSBs ZXZlbCBsaXN0IG9mIHBhZ2VzLgorQHBhcmFtIHNwYWNlCWluOiBzcGFjZSB3aGVyZSByZW1vdmVk CitAcGFyYW0gemlwX3NpemUJaW46IGNvbXByZXNzZWQgcGFnZSBzaXplIGluIGJ5dGVzLCBvciAw IGZvciB1bmNvbXByZXNzZWQKK0BwYXJhbSBwYWdlCWluL291dDogcGFnZSB0byByZW1vdmUKK0Bw YXJhbSBpbmRleAlpbjogaW5kZXggdHJlZQorQHBhcmFtIG10cglpbi9vdXQ6IG1pbmktdHJhbnNh Y3Rpb24gKi8KKyMgZGVmaW5lIGJ0cl9sZXZlbF9saXN0X3JlbW92ZShzcGFjZSx6aXBfc2l6ZSxw YWdlLGluZGV4LG10cikJCVwKKwlidHJfbGV2ZWxfbGlzdF9yZW1vdmVfZnVuYyhzcGFjZSx6aXBf c2l6ZSxwYWdlLG10cikKKyNlbmRpZiAvKiBVTklWX1NZTkNfREVCVUcgKi8KKwogLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoq CiBSZW1vdmVzIGEgcGFnZSBmcm9tIHRoZSBsZXZlbCBsaXN0IG9mIHBhZ2VzLiAqLwotc3RhdGlj CitzdGF0aWMgX19hdHRyaWJ1dGVfXygobm9ubnVsbCkpCiB2b2lkCi1idHJfbGV2ZWxfbGlzdF9y ZW1vdmUoCi0vKj09PT09PT09PT09PT09PT09PSovCi0JdWxpbnQJCXNwYWNlLAkvKiE8IGluOiBz cGFjZSB3aGVyZSByZW1vdmVkICovCi0JdWxpbnQJCXppcF9zaXplLC8qITwgaW46IGNvbXByZXNz ZWQgcGFnZSBzaXplIGluIGJ5dGVzCi0JCQkJb3IgMCBmb3IgdW5jb21wcmVzc2VkIHBhZ2VzICov Ci0JcGFnZV90KgkJcGFnZSwJLyohPCBpbjogcGFnZSB0byByZW1vdmUgKi8KLQltdHJfdCoJCW10 cikJLyohPCBpbjogbXRyICovCitidHJfbGV2ZWxfbGlzdF9yZW1vdmVfZnVuYygKKy8qPT09PT09 PT09PT09PT09PT09PT09PT0qLworCXVsaW50CQkJc3BhY2UsCS8qITwgaW46IHNwYWNlIHdoZXJl IHJlbW92ZWQgKi8KKwl1bGludAkJCXppcF9zaXplLC8qITwgaW46IGNvbXByZXNzZWQgcGFnZSBz aXplIGluIGJ5dGVzCisJCQkJCW9yIDAgZm9yIHVuY29tcHJlc3NlZCBwYWdlcyAqLworCXBhZ2Vf dCoJCQlwYWdlLAkvKiE8IGluL291dDogcGFnZSB0byByZW1vdmUgKi8KKyNpZmRlZiBVTklWX1NZ TkNfREVCVUcKKwljb25zdCBkaWN0X2luZGV4X3QqCWluZGV4LAkvKiE8IGluOiBpbmRleCB0cmVl ICovCisjZW5kaWYgLyogVU5JVl9TWU5DX0RFQlVHICovCisJbXRyX3QqCQkJbXRyKQkvKiE8IGlu L291dDogbWluaS10cmFuc2FjdGlvbiAqLwogewogCXVsaW50CXByZXZfcGFnZV9ubzsKIAl1bGlu dAluZXh0X3BhZ2Vfbm87CkBAIC0yODI5LDcgKzI4NTcsNyBAQCBidHJfbGV2ZWxfbGlzdF9yZW1v dmUoCiAJaWYgKHByZXZfcGFnZV9ubyAhPSBGSUxfTlVMTCkgewogCQlidWZfYmxvY2tfdCoJcHJl dl9ibG9jawogCQkJPSBidHJfYmxvY2tfZ2V0KHNwYWNlLCB6aXBfc2l6ZSwgcHJldl9wYWdlX25v LAotCQkJCQlSV19YX0xBVENILCBtdHIpOworCQkJCQlSV19YX0xBVENILCBpbmRleCwgbXRyKTsK IAkJcGFnZV90KgkJcHJldl9wYWdlCiAJCQk9IGJ1Zl9ibG9ja19nZXRfZnJhbWUocHJldl9ibG9j ayk7CiAjaWZkZWYgVU5JVl9CVFJfREVCVUcKQEAgLTI4NDYsNyArMjg3NCw3IEBAIGJ0cl9sZXZl bF9saXN0X3JlbW92ZSgKIAlpZiAobmV4dF9wYWdlX25vICE9IEZJTF9OVUxMKSB7CiAJCWJ1Zl9i bG9ja190KgluZXh0X2Jsb2NrCiAJCQk9IGJ0cl9ibG9ja19nZXQoc3BhY2UsIHppcF9zaXplLCBu ZXh0X3BhZ2Vfbm8sCi0JCQkJCVJXX1hfTEFUQ0gsIG10cik7CisJCQkJCVJXX1hfTEFUQ0gsIGlu ZGV4LCBtdHIpOwogCQlwYWdlX3QqCQluZXh0X3BhZ2UKIAkJCT0gYnVmX2Jsb2NrX2dldF9mcmFt ZShuZXh0X2Jsb2NrKTsKICNpZmRlZiBVTklWX0JUUl9ERUJVRwpAQCAtMzE3Miw3ICszMjAwLDcg QEAgYnRyX2NvbXByZXNzKAogCWlmIChpc19sZWZ0KSB7CiAKIAkJbWVyZ2VfYmxvY2sgPSBidHJf YmxvY2tfZ2V0KHNwYWNlLCB6aXBfc2l6ZSwgbGVmdF9wYWdlX25vLAotCQkJCQkgICAgUldfWF9M QVRDSCwgbXRyKTsKKwkJCQkJICAgIFJXX1hfTEFUQ0gsIGluZGV4LCBtdHIpOwogCQltZXJnZV9w YWdlID0gYnVmX2Jsb2NrX2dldF9mcmFtZShtZXJnZV9ibG9jayk7CiAjaWZkZWYgVU5JVl9CVFJf REVCVUcKIAkJdXRfYShidHJfcGFnZV9nZXRfbmV4dChtZXJnZV9wYWdlLCBtdHIpCkBAIC0zMTgx LDcgKzMyMDksNyBAQCBidHJfY29tcHJlc3MoCiAJfSBlbHNlIGlmIChyaWdodF9wYWdlX25vICE9 IEZJTF9OVUxMKSB7CiAKIAkJbWVyZ2VfYmxvY2sgPSBidHJfYmxvY2tfZ2V0KHNwYWNlLCB6aXBf c2l6ZSwgcmlnaHRfcGFnZV9ubywKLQkJCQkJICAgIFJXX1hfTEFUQ0gsIG10cik7CisJCQkJCSAg ICBSV19YX0xBVENILCBpbmRleCwgbXRyKTsKIAkJbWVyZ2VfcGFnZSA9IGJ1Zl9ibG9ja19nZXRf ZnJhbWUobWVyZ2VfYmxvY2spOwogI2lmZGVmIFVOSVZfQlRSX0RFQlVHCiAJCXV0X2EoYnRyX3Bh Z2VfZ2V0X3ByZXYobWVyZ2VfcGFnZSwgbXRyKQpAQCAtMzI3MCw3ICszMjk4LDcgQEAgZXJyX2V4 aXQ6CiAJCWJ0cl9zZWFyY2hfZHJvcF9wYWdlX2hhc2hfaW5kZXgoYmxvY2spOwogCiAJCS8qIFJl bW92ZSB0aGUgcGFnZSBmcm9tIHRoZSBsZXZlbCBsaXN0ICovCi0JCWJ0cl9sZXZlbF9saXN0X3Jl bW92ZShzcGFjZSwgemlwX3NpemUsIHBhZ2UsIG10cik7CisJCWJ0cl9sZXZlbF9saXN0X3JlbW92 ZShzcGFjZSwgemlwX3NpemUsIHBhZ2UsIGluZGV4LCBtdHIpOwogCiAJCWJ0cl9ub2RlX3B0cl9k ZWxldGUoaW5kZXgsIGJsb2NrLCBtdHIpOwogCQlsb2NrX3VwZGF0ZV9tZXJnZV9sZWZ0KG1lcmdl X2Jsb2NrLCBvcmlnX3ByZWQsIGJsb2NrKTsKQEAgLTMzMjcsNyArMzM1NSw3IEBAIGVycl9leGl0 OgogI2VuZGlmIC8qIFVOSVZfQlRSX0RFQlVHICovCiAKIAkJLyogUmVtb3ZlIHRoZSBwYWdlIGZy b20gdGhlIGxldmVsIGxpc3QgKi8KLQkJYnRyX2xldmVsX2xpc3RfcmVtb3ZlKHNwYWNlLCB6aXBf c2l6ZSwgcGFnZSwgbXRyKTsKKwkJYnRyX2xldmVsX2xpc3RfcmVtb3ZlKHNwYWNlLCB6aXBfc2l6 ZSwgcGFnZSwgaW5kZXgsIG10cik7CiAKIAkJLyogUmVwbGFjZSB0aGUgYWRkcmVzcyBvZiB0aGUg b2xkIGNoaWxkIG5vZGUgKD0gcGFnZSkgd2l0aCB0aGUKIAkJYWRkcmVzcyBvZiB0aGUgbWVyZ2Ug cGFnZSB0byB0aGUgcmlnaHQgKi8KQEAgLTM1MTksNyArMzU0Nyw3IEBAIGJ0cl9kaXNjYXJkX3Bh Z2UoCiAKIAlpZiAobGVmdF9wYWdlX25vICE9IEZJTF9OVUxMKSB7CiAJCW1lcmdlX2Jsb2NrID0g YnRyX2Jsb2NrX2dldChzcGFjZSwgemlwX3NpemUsIGxlZnRfcGFnZV9ubywKLQkJCQkJICAgIFJX X1hfTEFUQ0gsIG10cik7CisJCQkJCSAgICBSV19YX0xBVENILCBpbmRleCwgbXRyKTsKIAkJbWVy Z2VfcGFnZSA9IGJ1Zl9ibG9ja19nZXRfZnJhbWUobWVyZ2VfYmxvY2spOwogI2lmZGVmIFVOSVZf QlRSX0RFQlVHCiAJCXV0X2EoYnRyX3BhZ2VfZ2V0X25leHQobWVyZ2VfcGFnZSwgbXRyKQpAQCAt MzUyNyw3ICszNTU1LDcgQEAgYnRyX2Rpc2NhcmRfcGFnZSgKICNlbmRpZiAvKiBVTklWX0JUUl9E RUJVRyAqLwogCX0gZWxzZSBpZiAocmlnaHRfcGFnZV9ubyAhPSBGSUxfTlVMTCkgewogCQltZXJn ZV9ibG9jayA9IGJ0cl9ibG9ja19nZXQoc3BhY2UsIHppcF9zaXplLCByaWdodF9wYWdlX25vLAot CQkJCQkgICAgUldfWF9MQVRDSCwgbXRyKTsKKwkJCQkJICAgIFJXX1hfTEFUQ0gsIGluZGV4LCBt dHIpOwogCQltZXJnZV9wYWdlID0gYnVmX2Jsb2NrX2dldF9mcmFtZShtZXJnZV9ibG9jayk7CiAj aWZkZWYgVU5JVl9CVFJfREVCVUcKIAkJdXRfYShidHJfcGFnZV9nZXRfcHJldihtZXJnZV9wYWdl LCBtdHIpCkBAIC0zNTYyLDcgKzM1OTAsNyBAQCBidHJfZGlzY2FyZF9wYWdlKAogCWJ0cl9ub2Rl X3B0cl9kZWxldGUoaW5kZXgsIGJsb2NrLCBtdHIpOwogCiAJLyogUmVtb3ZlIHRoZSBwYWdlIGZy b20gdGhlIGxldmVsIGxpc3QgKi8KLQlidHJfbGV2ZWxfbGlzdF9yZW1vdmUoc3BhY2UsIHppcF9z aXplLCBwYWdlLCBtdHIpOworCWJ0cl9sZXZlbF9saXN0X3JlbW92ZShzcGFjZSwgemlwX3NpemUs IHBhZ2UsIGluZGV4LCBtdHIpOwogI2lmZGVmIFVOSVZfWklQX0RFQlVHCiAJewogCQlwYWdlX3pp cF9kZXNfdCoJbWVyZ2VfcGFnZV96aXAKQEAgLTQwODAsNyArNDEwOCw3IEBAIGxvb3A6CiAJaWYg KHJpZ2h0X3BhZ2Vfbm8gIT0gRklMX05VTEwpIHsKIAkJY29uc3QgcmVjX3QqCXJpZ2h0X3JlYzsK IAkJcmlnaHRfYmxvY2sgPSBidHJfYmxvY2tfZ2V0KHNwYWNlLCB6aXBfc2l6ZSwgcmlnaHRfcGFn ZV9ubywKLQkJCQkJICAgIFJXX1hfTEFUQ0gsICZtdHIpOworCQkJCQkgICAgUldfWF9MQVRDSCwg aW5kZXgsICZtdHIpOwogCQlyaWdodF9wYWdlID0gYnVmX2Jsb2NrX2dldF9mcmFtZShyaWdodF9i bG9jayk7CiAJCWlmIChVTklWX1VOTElLRUxZKGJ0cl9wYWdlX2dldF9wcmV2KHJpZ2h0X3BhZ2Us ICZtdHIpCiAJCQkJICAhPSBwYWdlX2dldF9wYWdlX25vKHBhZ2UpKSkgewpAQCAtNDMwNiw3ICs0 MzM0LDcgQEAgbm9kZV9wdHJfZmFpbHM6CiAJCW10cl9zdGFydCgmbXRyKTsKIAogCQlibG9jayA9 IGJ0cl9ibG9ja19nZXQoc3BhY2UsIHppcF9zaXplLCByaWdodF9wYWdlX25vLAotCQkJCSAgICAg IFJXX1hfTEFUQ0gsICZtdHIpOworCQkJCSAgICAgIFJXX1hfTEFUQ0gsIGluZGV4LCAmbXRyKTsK IAkJcGFnZSA9IGJ1Zl9ibG9ja19nZXRfZnJhbWUoYmxvY2spOwogCiAJCWdvdG8gbG9vcDsKCj09 PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9kYl9wbHVnaW4vYnRyL2J0cjBjdXIuYycKLS0t IGEvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2J0ci9idHIwY3VyLmMJcmV2aWQ6Z2VvcmdpLmtvZGlu b3ZAb3JhY2xlLmNvbS0yMDExMDgxMjExMjAxNy0xZ203cG9xMzJieHFsNnFxCisrKyBiL3N0b3Jh Z2UvaW5ub2RiX3BsdWdpbi9idHIvYnRyMGN1ci5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUu Y29tLTIwMTEwODE1MDkxMTQzLWgzemJ2bTBwdjhuaTNxcWwKQEAgLTIzOCw3ICsyMzgsOCBAQCBi dHJfY3VyX2xhdGNoX2xlYXZlcygKIAljYXNlIEJUUl9TRUFSQ0hfTEVBRjoKIAljYXNlIEJUUl9N T0RJRllfTEVBRjoKIAkJbW9kZSA9IGxhdGNoX21vZGUgPT0gQlRSX1NFQVJDSF9MRUFGID8gUldf U19MQVRDSCA6IFJXX1hfTEFUQ0g7Ci0JCWdldF9ibG9jayA9IGJ0cl9ibG9ja19nZXQoc3BhY2Us IHppcF9zaXplLCBwYWdlX25vLCBtb2RlLCBtdHIpOworCQlnZXRfYmxvY2sgPSBidHJfYmxvY2tf Z2V0KAorCQkJc3BhY2UsIHppcF9zaXplLCBwYWdlX25vLCBtb2RlLCBjdXJzb3ItPmluZGV4LCBt dHIpOwogI2lmZGVmIFVOSVZfQlRSX0RFQlVHCiAJCXV0X2EocGFnZV9pc19jb21wKGdldF9ibG9j ay0+ZnJhbWUpID09IHBhZ2VfaXNfY29tcChwYWdlKSk7CiAjZW5kaWYgLyogVU5JVl9CVFJfREVC VUcgKi8KQEAgLTI0OSw5ICsyNTAsOSBAQCBidHJfY3VyX2xhdGNoX2xlYXZlcygKIAkJbGVmdF9w YWdlX25vID0gYnRyX3BhZ2VfZ2V0X3ByZXYocGFnZSwgbXRyKTsKIAogCQlpZiAobGVmdF9wYWdl X25vICE9IEZJTF9OVUxMKSB7Ci0JCQlnZXRfYmxvY2sgPSBidHJfYmxvY2tfZ2V0KHNwYWNlLCB6 aXBfc2l6ZSwKLQkJCQkJCSAgbGVmdF9wYWdlX25vLAotCQkJCQkJICBSV19YX0xBVENILCBtdHIp OworCQkJZ2V0X2Jsb2NrID0gYnRyX2Jsb2NrX2dldCgKKwkJCQlzcGFjZSwgemlwX3NpemUsIGxl ZnRfcGFnZV9ubywKKwkJCQlSV19YX0xBVENILCBjdXJzb3ItPmluZGV4LCBtdHIpOwogI2lmZGVm IFVOSVZfQlRSX0RFQlVHCiAJCQl1dF9hKHBhZ2VfaXNfY29tcChnZXRfYmxvY2stPmZyYW1lKQog CQkJICAgICA9PSBwYWdlX2lzX2NvbXAocGFnZSkpOwpAQCAtMjYxLDggKzI2Miw5IEBAIGJ0cl9j dXJfbGF0Y2hfbGVhdmVzKAogCQkJZ2V0X2Jsb2NrLT5jaGVja19pbmRleF9wYWdlX2F0X2ZsdXNo ID0gVFJVRTsKIAkJfQogCi0JCWdldF9ibG9jayA9IGJ0cl9ibG9ja19nZXQoc3BhY2UsIHppcF9z aXplLCBwYWdlX25vLAotCQkJCQkgIFJXX1hfTEFUQ0gsIG10cik7CisJCWdldF9ibG9jayA9IGJ0 cl9ibG9ja19nZXQoCisJCQlzcGFjZSwgemlwX3NpemUsIHBhZ2Vfbm8sCisJCQlSV19YX0xBVENI LCBjdXJzb3ItPmluZGV4LCBtdHIpOwogI2lmZGVmIFVOSVZfQlRSX0RFQlVHCiAJCXV0X2EocGFn ZV9pc19jb21wKGdldF9ibG9jay0+ZnJhbWUpID09IHBhZ2VfaXNfY29tcChwYWdlKSk7CiAjZW5k aWYgLyogVU5JVl9CVFJfREVCVUcgKi8KQEAgLTI3MSw5ICsyNzMsOSBAQCBidHJfY3VyX2xhdGNo X2xlYXZlcygKIAkJcmlnaHRfcGFnZV9ubyA9IGJ0cl9wYWdlX2dldF9uZXh0KHBhZ2UsIG10cik7 CiAKIAkJaWYgKHJpZ2h0X3BhZ2Vfbm8gIT0gRklMX05VTEwpIHsKLQkJCWdldF9ibG9jayA9IGJ0 cl9ibG9ja19nZXQoc3BhY2UsIHppcF9zaXplLAotCQkJCQkJICByaWdodF9wYWdlX25vLAotCQkJ CQkJICBSV19YX0xBVENILCBtdHIpOworCQkJZ2V0X2Jsb2NrID0gYnRyX2Jsb2NrX2dldCgKKwkJ CQlzcGFjZSwgemlwX3NpemUsIHJpZ2h0X3BhZ2Vfbm8sCisJCQkJUldfWF9MQVRDSCwgY3Vyc29y LT5pbmRleCwgbXRyKTsKICNpZmRlZiBVTklWX0JUUl9ERUJVRwogCQkJdXRfYShwYWdlX2lzX2Nv bXAoZ2V0X2Jsb2NrLT5mcmFtZSkKIAkJCSAgICAgPT0gcGFnZV9pc19jb21wKHBhZ2UpKTsKQEAg LTI5Miw4ICsyOTQsOSBAQCBidHJfY3VyX2xhdGNoX2xlYXZlcygKIAkJbGVmdF9wYWdlX25vID0g YnRyX3BhZ2VfZ2V0X3ByZXYocGFnZSwgbXRyKTsKIAogCQlpZiAobGVmdF9wYWdlX25vICE9IEZJ TF9OVUxMKSB7Ci0JCQlnZXRfYmxvY2sgPSBidHJfYmxvY2tfZ2V0KHNwYWNlLCB6aXBfc2l6ZSwK LQkJCQkJCSAgbGVmdF9wYWdlX25vLCBtb2RlLCBtdHIpOworCQkJZ2V0X2Jsb2NrID0gYnRyX2Js b2NrX2dldCgKKwkJCQlzcGFjZSwgemlwX3NpemUsCisJCQkJbGVmdF9wYWdlX25vLCBtb2RlLCBj dXJzb3ItPmluZGV4LCBtdHIpOwogCQkJY3Vyc29yLT5sZWZ0X2Jsb2NrID0gZ2V0X2Jsb2NrOwog I2lmZGVmIFVOSVZfQlRSX0RFQlVHCiAJCQl1dF9hKHBhZ2VfaXNfY29tcChnZXRfYmxvY2stPmZy YW1lKQpAQCAtMzA0LDcgKzMwNyw4IEBAIGJ0cl9jdXJfbGF0Y2hfbGVhdmVzKAogCQkJZ2V0X2Js b2NrLT5jaGVja19pbmRleF9wYWdlX2F0X2ZsdXNoID0gVFJVRTsKIAkJfQogCi0JCWdldF9ibG9j ayA9IGJ0cl9ibG9ja19nZXQoc3BhY2UsIHppcF9zaXplLCBwYWdlX25vLCBtb2RlLCBtdHIpOwor CQlnZXRfYmxvY2sgPSBidHJfYmxvY2tfZ2V0KAorCQkJc3BhY2UsIHppcF9zaXplLCBwYWdlX25v LCBtb2RlLCBjdXJzb3ItPmluZGV4LCBtdHIpOwogI2lmZGVmIFVOSVZfQlRSX0RFQlVHCiAJCXV0 X2EocGFnZV9pc19jb21wKGdldF9ibG9jay0+ZnJhbWUpID09IHBhZ2VfaXNfY29tcChwYWdlKSk7 CiAjZW5kaWYgLyogVU5JVl9CVFJfREVCVUcgKi8KQEAgLTU3Miw3ICs1NzYsOSBAQCByZXRyeV9w YWdlX2dldDoKIAkJCXV0X2EoIXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2Vfemlw LCBwYWdlKSk7CiAjZW5kaWYgLyogVU5JVl9aSVBfREVCVUcgKi8KIAotCQkJYnVmX2Jsb2NrX2Ri Z19hZGRfbGV2ZWwoYmxvY2ssIFNZTkNfVFJFRV9OT0RFKTsKKwkJCWJ1Zl9ibG9ja19kYmdfYWRk X2xldmVsKAorCQkJCWJsb2NrLCBkaWN0X2luZGV4X2lzX2lidWYoaW5kZXgpCisJCQkJPyBTWU5D X0lCVUZfVFJFRV9OT0RFIDogU1lOQ19UUkVFX05PREUpOwogCQl9CiAKIAkJdXRfYWQoMCA9PSB1 dF9kdWxpbnRfY21wKGluZGV4LT5pZCwKQEAgLTYzMCw4ICs2MzYsOCBAQCByZXRyeV9wYWdlX2dl dDoKIAogCQkJaWYgKGxldmVsID4gMCkgewogCQkJCS8qIHgtbGF0Y2ggdGhlIHBhZ2UgKi8KLQkJ CQlwYWdlID0gYnRyX3BhZ2VfZ2V0KHNwYWNlLCB6aXBfc2l6ZSwKLQkJCQkJCSAgICBwYWdlX25v LCBSV19YX0xBVENILCBtdHIpOworCQkJCXBhZ2UgPSBidHJfcGFnZV9nZXQoc3BhY2UsIHppcF9z aXplLCBwYWdlX25vLAorCQkJCQkJICAgIFJXX1hfTEFUQ0gsIGluZGV4LCBtdHIpOwogCQkJCXV0 X2EoKGlib29sKSEhcGFnZV9pc19jb21wKHBhZ2UpCiAJCQkJICAgICA9PSBkaWN0X3RhYmxlX2lz X2NvbXAoaW5kZXgtPnRhYmxlKSk7CiAJCQl9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9p bm5vZGJfcGx1Z2luL2J0ci9idHIwcGN1ci5jJwotLS0gYS9zdG9yYWdlL2lubm9kYl9wbHVnaW4v YnRyL2J0cjBwY3VyLmMJcmV2aWQ6Z2VvcmdpLmtvZGlub3ZAb3JhY2xlLmNvbS0yMDExMDgxMjEx MjAxNy0xZ203cG9xMzJieHFsNnFxCisrKyBiL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9idHIvYnRy MHBjdXIuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDgxNTA5MTE0My1oM3pi dm0wcHY4bmkzcXFsCkBAIC0xLDYgKzEsNiBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAKLUNv cHlyaWdodCAoYykgMTk5NiwgMjAxMCwgSW5ub2Jhc2UgT3kuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu CitDb3B5cmlnaHQgKGMpIDE5OTYsIDIwMTEsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMu IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAKIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl ZSBTb2Z0d2FyZQpAQCAtMjY2LDggKzI2NiwxMCBAQCBidHJfcGN1cl9yZXN0b3JlX3Bvc2l0aW9u X2Z1bmMoCiAJCQkJCWZpbGUsIGxpbmUsIG10cikpKSB7CiAJCQljdXJzb3ItPnBvc19zdGF0ZSA9 IEJUUl9QQ1VSX0lTX1BPU0lUSU9ORUQ7CiAKLQkJCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJ0 cl9wY3VyX2dldF9ibG9jayhjdXJzb3IpLAotCQkJCQkJU1lOQ19UUkVFX05PREUpOworCQkJYnVm X2Jsb2NrX2RiZ19hZGRfbGV2ZWwoCisJCQkJYnRyX3BjdXJfZ2V0X2Jsb2NrKGN1cnNvciksCisJ CQkJZGljdF9pbmRleF9pc19pYnVmKGluZGV4KQorCQkJCT8gU1lOQ19JQlVGX1RSRUVfTk9ERSA6 IFNZTkNfVFJFRV9OT0RFKTsKIAogCQkJaWYgKGN1cnNvci0+cmVsX3BvcyA9PSBCVFJfUENVUl9P TikgewogI2lmZGVmIFVOSVZfREVCVUcKQEAgLTQxNyw3ICs0MTksOCBAQCBidHJfcGN1cl9tb3Zl X3RvX25leHRfcGFnZSgKIAl1dF9hZChuZXh0X3BhZ2Vfbm8gIT0gRklMX05VTEwpOwogCiAJbmV4 dF9ibG9jayA9IGJ0cl9ibG9ja19nZXQoc3BhY2UsIHppcF9zaXplLCBuZXh0X3BhZ2Vfbm8sCi0J CQkJICAgY3Vyc29yLT5sYXRjaF9tb2RlLCBtdHIpOworCQkJCSAgIGN1cnNvci0+bGF0Y2hfbW9k ZSwKKwkJCQkgICBidHJfcGN1cl9nZXRfYnRyX2N1cihjdXJzb3IpLT5pbmRleCwgbXRyKTsKIAlu ZXh0X3BhZ2UgPSBidWZfYmxvY2tfZ2V0X2ZyYW1lKG5leHRfYmxvY2spOwogI2lmZGVmIFVOSVZf QlRSX0RFQlVHCiAJdXRfYShwYWdlX2lzX2NvbXAobmV4dF9wYWdlKSA9PSBwYWdlX2lzX2NvbXAo cGFnZSkpOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9idHIvYnRy MHNlYS5jJwotLS0gYS9zdG9yYWdlL2lubm9kYl9wbHVnaW4vYnRyL2J0cjBzZWEuYwlyZXZpZDpn ZW9yZ2kua29kaW5vdkBvcmFjbGUuY29tLTIwMTEwODEyMTEyMDE3LTFnbTdwb3EzMmJ4cWw2cXEK KysrIGIvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2J0ci9idHIwc2VhLmMJcmV2aWQ6bWFya28ubWFr ZWxhQG9yYWNsZS5jb20tMjAxMTA4MTUwOTExNDMtaDN6YnZtMHB2OG5pM3FxbApAQCAtMSw2ICsx LDYgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgogCi1Db3B5cmlnaHQgKGMpIDE5OTYsIDIwMDks IElubm9iYXNlIE95LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQ29weXJpZ2h0IChjKSAxOTk2LCAy MDExLCBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgog Q29weXJpZ2h0IChjKSAyMDA4LCBHb29nbGUgSW5jLgogCiBQb3J0aW9ucyBvZiB0aGlzIGZpbGUg Y29udGFpbiBtb2RpZmljYXRpb25zIGNvbnRyaWJ1dGVkIGFuZCBjb3B5cmlnaHRlZCBieQpAQCAt ODMyLDYgKzgzMiw3IEBAIGJ0cl9zZWFyY2hfZ3Vlc3Nfb25faGFzaCgKIAlidHJfcGN1cl90CXBj dXI7CiAjZW5kaWYKIAl1dF9hZChpbmRleCAmJiBpbmZvICYmIHR1cGxlICYmIGN1cnNvciAmJiBt dHIpOworCXV0X2FkKCFkaWN0X2luZGV4X2lzX2lidWYoaW5kZXgpKTsKIAl1dF9hZCgobGF0Y2hf bW9kZSA9PSBCVFJfU0VBUkNIX0xFQUYpCiAJICAgICAgfHwgKGxhdGNoX21vZGUgPT0gQlRSX01P RElGWV9MRUFGKSk7CiAKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9kYl9wbHVnaW4v ZGljdC9kaWN0MGNyZWEuYycKLS0tIGEvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2RpY3QvZGljdDBj cmVhLmMJcmV2aWQ6Z2VvcmdpLmtvZGlub3ZAb3JhY2xlLmNvbS0yMDExMDgxMjExMjAxNy0xZ203 cG9xMzJieHFsNnFxCisrKyBiL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9kaWN0L2RpY3QwY3JlYS5j CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwODE1MDkxMTQzLWgzemJ2bTBwdjhu aTNxcWwKQEAgLTEsNiArMSw2IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAotQ29weXJpZ2h0 IChjKSAxOTk2LCAyMDEwLCBJbm5vYmFzZSBPeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0NvcHly aWdodCAoYykgMTk5NiwgMjAxMSwgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJp Z2h0cyBSZXNlcnZlZC4KIAogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlCkBAIC04MjgsNyArODI4LDcgQEAgZGljdF90cnVuY2F0ZV9pbmRleF90cmVlKAogCWFwcHJv cHJpYXRlIGZpZWxkIGluIHRoZSBTWVNfSU5ERVhFUyByZWNvcmQ6IHRoaXMgbWluaS10cmFuc2Fj dGlvbgogCW1hcmtzIHRoZSBCLXRyZWUgdG90YWxseSB0cnVuY2F0ZWQgKi8KIAotCWJ0cl9ibG9j a19nZXQoc3BhY2UsIHppcF9zaXplLCByb290X3BhZ2Vfbm8sIFJXX1hfTEFUQ0gsIG10cik7CisJ YnRyX2Jsb2NrX2dldChzcGFjZSwgemlwX3NpemUsIHJvb3RfcGFnZV9ubywgUldfWF9MQVRDSCwg TlVMTCwgbXRyKTsKIAogCWJ0cl9mcmVlX3Jvb3Qoc3BhY2UsIHppcF9zaXplLCByb290X3BhZ2Vf bm8sIG10cik7CiBjcmVhdGU6Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vZGJfcGx1 Z2luL2RpY3QvZGljdDBkaWN0LmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9kaWN0L2Rp Y3QwZGljdC5jCXJldmlkOmdlb3JnaS5rb2Rpbm92QG9yYWNsZS5jb20tMjAxMTA4MTIxMTIwMTct MWdtN3BvcTMyYnhxbDZxcQorKysgYi9zdG9yYWdlL2lubm9kYl9wbHVnaW4vZGljdC9kaWN0MGRp Y3QuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDgxNTA5MTE0My1oM3pidm0w cHY4bmkzcXFsCkBAIC0xLDYgKzEsNiBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAKLUNvcHly aWdodCAoYykgMTk5NiwgMjAxMCwgSW5ub2Jhc2UgT3kuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitD b3B5cmlnaHQgKGMpIDE5OTYsIDIwMTEsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFs bCBSaWdodHMgUmVzZXJ2ZWQuCiAKIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT b2Z0d2FyZQpAQCAtMTY2MSw3ICsxNjYxLDkgQEAgdW5kb19zaXplX29rOgogCW5ld19pbmRleC0+ c3RhdF9uX2xlYWZfcGFnZXMgPSAxOwogCiAJbmV3X2luZGV4LT5wYWdlID0gcGFnZV9ubzsKLQly d19sb2NrX2NyZWF0ZSgmbmV3X2luZGV4LT5sb2NrLCBTWU5DX0lOREVYX1RSRUUpOworCXJ3X2xv Y2tfY3JlYXRlKCZuZXdfaW5kZXgtPmxvY2ssCisJCSAgICAgICBkaWN0X2luZGV4X2lzX2lidWYo aW5kZXgpCisJCSAgICAgICA/IFNZTkNfSUJVRl9JTkRFWF9UUkVFIDogU1lOQ19JTkRFWF9UUkVF KTsKIAogCWlmICghVU5JVl9VTkxJS0VMWShuZXdfaW5kZXgtPnR5cGUgJiBESUNUX1VOSVZFUlNB TCkpIHsKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9pYnVmL2li dWYwaWJ1Zi5jJwotLS0gYS9zdG9yYWdlL2lubm9kYl9wbHVnaW4vaWJ1Zi9pYnVmMGlidWYuYwly ZXZpZDpnZW9yZ2kua29kaW5vdkBvcmFjbGUuY29tLTIwMTEwODEyMTEyMDE3LTFnbTdwb3EzMmJ4 cWw2cXEKKysrIGIvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2lidWYvaWJ1ZjBpYnVmLmMJcmV2aWQ6 bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA4MTUwOTExNDMtaDN6YnZtMHB2OG5pM3FxbApA QCAtMSw2ICsxLDYgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogCi1Db3B5cmlnaHQgKGMpIDE5 OTcsIDIwMDksIElubm9iYXNlIE95LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQ29weXJpZ2h0IChj KSAxOTk3LCAyMDExLCBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJl c2VydmVkLgogCiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgogdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKQEAg LTM1Niw3ICszNTYsNyBAQCBpYnVmX3RyZWVfcm9vdF9nZXQoCiAJYmxvY2sgPSBidWZfcGFnZV9n ZXQoCiAJCUlCVUZfU1BBQ0VfSUQsIDAsIEZTUF9JQlVGX1RSRUVfUk9PVF9QQUdFX05PLCBSV19Y X0xBVENILCBtdHIpOwogCi0JYnVmX2Jsb2NrX2RiZ19hZGRfbGV2ZWwoYmxvY2ssIFNZTkNfVFJF RV9OT0RFKTsKKwlidWZfYmxvY2tfZGJnX2FkZF9sZXZlbChibG9jaywgU1lOQ19JQlVGX1RSRUVf Tk9ERSk7CiAKIAlyZXR1cm4oYnVmX2Jsb2NrX2dldF9mcmFtZShibG9jaykpOwogfQpAQCAtNDk2 LDcgKzQ5Niw3IEBAIGlidWZfaW5pdF9hdF9kYl9zdGFydCh2b2lkKQogCQlibG9jayA9IGJ1Zl9w YWdlX2dldCgKIAkJCUlCVUZfU1BBQ0VfSUQsIDAsIEZTUF9JQlVGX1RSRUVfUk9PVF9QQUdFX05P LAogCQkJUldfWF9MQVRDSCwgJm10cik7Ci0JCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2Nr LCBTWU5DX1RSRUVfTk9ERSk7CisJCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2NrLCBTWU5D X0lCVUZfVFJFRV9OT0RFKTsKIAogCQlyb290ID0gYnVmX2Jsb2NrX2dldF9mcmFtZShibG9jayk7 CiAJfQpAQCAtMTc2Niw3ICsxNzY2LDcgQEAgaWJ1Zl9hZGRfZnJlZV9wYWdlKHZvaWQpCiAJCWJs b2NrID0gYnVmX3BhZ2VfZ2V0KAogCQkJSUJVRl9TUEFDRV9JRCwgMCwgcGFnZV9ubywgUldfWF9M QVRDSCwgJm10cik7CiAKLQkJYnVmX2Jsb2NrX2RiZ19hZGRfbGV2ZWwoYmxvY2ssIFNZTkNfVFJF RV9OT0RFX05FVyk7CisJCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2NrLCBTWU5DX0lCVUZf VFJFRV9OT0RFX05FVyk7CiAKIAogCQlwYWdlID0gYnVmX2Jsb2NrX2dldF9mcmFtZShibG9jayk7 CkBAIC0xODk3LDggKzE4OTcsNyBAQCBpYnVmX3JlbW92ZV9mcmVlX3BhZ2Uodm9pZCkKIAkJYmxv Y2sgPSBidWZfcGFnZV9nZXQoCiAJCQlJQlVGX1NQQUNFX0lELCAwLCBwYWdlX25vLCBSV19YX0xB VENILCAmbXRyKTsKIAotCQlidWZfYmxvY2tfZGJnX2FkZF9sZXZlbChibG9jaywgU1lOQ19UUkVF X05PREUpOwotCisJCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2NrLCBTWU5DX0lCVUZfVFJF RV9OT0RFKTsKIAogCQlwYWdlID0gYnVmX2Jsb2NrX2dldF9mcmFtZShibG9jayk7CiAJfQpAQCAt MjQwOCw3ICsyNDA3LDcgQEAgaWJ1Zl9nZXRfdm9sdW1lX2J1ZmZlcmVkKAogCQlibG9jayA9IGJ1 Zl9wYWdlX2dldCgKIAkJCUlCVUZfU1BBQ0VfSUQsIDAsIHByZXZfcGFnZV9ubywgUldfWF9MQVRD SCwgbXRyKTsKIAotCQlidWZfYmxvY2tfZGJnX2FkZF9sZXZlbChibG9jaywgU1lOQ19UUkVFX05P REUpOworCQlidWZfYmxvY2tfZGJnX2FkZF9sZXZlbChibG9jaywgU1lOQ19JQlVGX1RSRUVfTk9E RSk7CiAKIAogCQlwcmV2X3BhZ2UgPSBidWZfYmxvY2tfZ2V0X2ZyYW1lKGJsb2NrKTsKQEAgLTI0 ODIsNyArMjQ4MSw3IEBAIGNvdW50X2xhdGVyOgogCQlibG9jayA9IGJ1Zl9wYWdlX2dldCgKIAkJ CUlCVUZfU1BBQ0VfSUQsIDAsIG5leHRfcGFnZV9ubywgUldfWF9MQVRDSCwgbXRyKTsKIAotCQli dWZfYmxvY2tfZGJnX2FkZF9sZXZlbChibG9jaywgU1lOQ19UUkVFX05PREUpOworCQlidWZfYmxv Y2tfZGJnX2FkZF9sZXZlbChibG9jaywgU1lOQ19JQlVGX1RSRUVfTk9ERSk7CiAKIAogCQluZXh0 X3BhZ2UgPSBidWZfYmxvY2tfZ2V0X2ZyYW1lKGJsb2NrKTsKQEAgLTMyNDgsNiArMzI0Nyw3IEBA IGlidWZfbWVyZ2Vfb3JfZGVsZXRlX2Zvcl9wYWdlKAogCXV0X2FkKCFibG9jayB8fCBidWZfYmxv Y2tfZ2V0X3NwYWNlKGJsb2NrKSA9PSBzcGFjZSk7CiAJdXRfYWQoIWJsb2NrIHx8IGJ1Zl9ibG9j a19nZXRfcGFnZV9ubyhibG9jaykgPT0gcGFnZV9ubyk7CiAJdXRfYWQoIWJsb2NrIHx8IGJ1Zl9i bG9ja19nZXRfemlwX3NpemUoYmxvY2spID09IHppcF9zaXplKTsKKwl1dF9hZCghYmxvY2sgfHwg YnVmX2Jsb2NrX2dldF9pb19maXgoYmxvY2spID09IEJVRl9JT19SRUFEKTsKIAogCWlmIChzcnZf Zm9yY2VfcmVjb3ZlcnkgPj0gU1JWX0ZPUkNFX05PX0lCVUZfTUVSR0UKIAkgICAgfHwgdHJ4X3N5 c19oZHJfcGFnZShzcGFjZSwgcGFnZV9ubykpIHsKQEAgLTM0MDMsNyArMzQwMywxMyBAQCBsb29w OgogCiAJCXV0X2Eoc3VjY2Vzcyk7CiAKLQkJYnVmX2Jsb2NrX2RiZ19hZGRfbGV2ZWwoYmxvY2ss IFNZTkNfVFJFRV9OT0RFKTsKKwkJLyogVGhpcyBpcyBhIHVzZXIgcGFnZSAoc2Vjb25kYXJ5IGlu ZGV4IGxlYWYgcGFnZSksCisJCWJ1dCB3ZSBwcmV0ZW5kIHRoYXQgaXQgaXMgYSBjaGFuZ2UgYnVm ZmVyIHBhZ2UgaW4KKwkJb3JkZXIgdG8gb2JleSB0aGUgbGF0Y2hpbmcgb3JkZXIuIFRoaXMgc2hv dWxkIGJlIE9LLAorCQliZWNhdXNlIGJ1ZmZlcmVkIGNoYW5nZXMgYXJlIGFwcGxpZWQgaW1tZWRp YXRlbHkgd2hpbGUKKwkJdGhlIGJsb2NrIGlzIGlvLWZpeGVkLiBPdGhlciB0aHJlYWRzIG11c3Qg bm90IHRyeSB0bworCQlsYXRjaCBhbiBpby1maXhlZCBibG9jay4gKi8KKwkJYnVmX2Jsb2NrX2Ri Z19hZGRfbGV2ZWwoYmxvY2ssIFNZTkNfSUJVRl9UUkVFX05PREUpOwogCX0KIAogCS8qIFBvc2l0 aW9uIHBjdXIgaW4gdGhlIGluc2VydCBidWZmZXIgYXQgdGhlIGZpcnN0IGVudHJ5IGZvciB0aGlz Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2luY2x1ZGUvYnRyMGJ0 ci5oJwotLS0gYS9zdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9idHIwYnRyLmgJcmV2aWQ6 Z2VvcmdpLmtvZGlub3ZAb3JhY2xlLmNvbS0yMDExMDgxMjExMjAxNy0xZ203cG9xMzJieHFsNnFx CisrKyBiL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9pbmNsdWRlL2J0cjBidHIuaAlyZXZpZDptYXJr by5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDgxNTA5MTE0My1oM3pidm0wcHY4bmkzcXFsCkBAIC0x ODgsMjYgKzE4OCw0NSBAQCBidHJfYmxvY2tfZ2V0X2Z1bmMoCiAJdWxpbnQJCW1vZGUsCQkvKiE8 IGluOiBsYXRjaCBtb2RlICovCiAJY29uc3QgY2hhcioJZmlsZSwJCS8qITwgaW46IGZpbGUgbmFt ZSAqLwogCXVsaW50CQlsaW5lLAkJLyohPCBpbjogbGluZSB3aGVyZSBjYWxsZWQgKi8KLQltdHJf dCoJCW10cikJCS8qITwgaW4vb3V0OiBtdHIgKi8KLQlfX2F0dHJpYnV0ZV9fKChub25udWxsKSk7 CisjIGlmZGVmIFVOSVZfU1lOQ19ERUJVRworCWNvbnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgsCS8q ITwgaW46IGluZGV4IHRyZWUsIG1heSBiZSBOVUxMCisJCQkJCWlmIGl0IGlzIG5vdCBhbiBpbnNl cnQgYnVmZmVyIHRyZWUgKi8KKyMgZW5kaWYgLyogVU5JVl9TWU5DX0RFQlVHICovCisJbXRyX3Qq CQltdHIpOwkJLyohPCBpbi9vdXQ6IG1pbmktdHJhbnNhY3Rpb24gKi8KKyMgaWZkZWYgVU5JVl9T WU5DX0RFQlVHCiAvKiogR2V0cyBhIGJ1ZmZlciBwYWdlIGFuZCBkZWNsYXJlcyBpdHMgbGF0Y2hp bmcgb3JkZXIgbGV2ZWwuCiBAcGFyYW0gc3BhY2UJdGFibGVzcGFjZSBpZGVudGlmaWVyCiBAcGFy YW0gemlwX3NpemUJY29tcHJlc3NlZCBwYWdlIHNpemUgaW4gYnl0ZXMgb3IgMCBmb3IgdW5jb21w cmVzc2VkIHBhZ2VzCiBAcGFyYW0gcGFnZV9ubwlwYWdlIG51bWJlcgogQHBhcmFtIG1vZGUJbGF0 Y2ggbW9kZQorQHBhcmFtIGluZGV4CWluZGV4IHRyZWUsIG1heSBiZSBOVUxMIGlmIG5vdCB0aGUg aW5zZXJ0IGJ1ZmZlciB0cmVlCiBAcGFyYW0gbXRyCW1pbmktdHJhbnNhY3Rpb24gaGFuZGxlCiBA cmV0dXJuIHRoZSBibG9jayBkZXNjcmlwdG9yICovCi0jIGRlZmluZSBidHJfYmxvY2tfZ2V0KHNw YWNlLHppcF9zaXplLHBhZ2Vfbm8sbW9kZSxtdHIpIFwKKyMgIGRlZmluZSBidHJfYmxvY2tfZ2V0 KHNwYWNlLHppcF9zaXplLHBhZ2Vfbm8sbW9kZSxpbmRleCxtdHIpCVwKKwlidHJfYmxvY2tfZ2V0 X2Z1bmMoc3BhY2UsemlwX3NpemUscGFnZV9ubyxtb2RlLAkJXAorCQkJICAgX19GSUxFX18sX19M SU5FX18saW5kZXgsbXRyKQorIyBlbHNlIC8qIFVOSVZfU1lOQ19ERUJVRyAqLworLyoqIEdldHMg YSBidWZmZXIgcGFnZSBhbmQgZGVjbGFyZXMgaXRzIGxhdGNoaW5nIG9yZGVyIGxldmVsLgorQHBh cmFtIHNwYWNlCXRhYmxlc3BhY2UgaWRlbnRpZmllcgorQHBhcmFtIHppcF9zaXplCWNvbXByZXNz ZWQgcGFnZSBzaXplIGluIGJ5dGVzIG9yIDAgZm9yIHVuY29tcHJlc3NlZCBwYWdlcworQHBhcmFt IHBhZ2Vfbm8JcGFnZSBudW1iZXIKK0BwYXJhbSBtb2RlCWxhdGNoIG1vZGUKK0BwYXJhbSBpZHgJ aW5kZXggdHJlZSwgbWF5IGJlIE5VTEwgaWYgbm90IHRoZSBpbnNlcnQgYnVmZmVyIHRyZWUKK0Bw YXJhbSBtdHIJbWluaS10cmFuc2FjdGlvbiBoYW5kbGUKK0ByZXR1cm4gdGhlIGJsb2NrIGRlc2Ny aXB0b3IgKi8KKyMgIGRlZmluZSBidHJfYmxvY2tfZ2V0KHNwYWNlLHppcF9zaXplLHBhZ2Vfbm8s bW9kZSxpZHgsbXRyKQkJXAogCWJ0cl9ibG9ja19nZXRfZnVuYyhzcGFjZSx6aXBfc2l6ZSxwYWdl X25vLG1vZGUsX19GSUxFX18sX19MSU5FX18sbXRyKQorIyBlbmRpZiAvKiBVTklWX1NZTkNfREVC VUcgKi8KIC8qKiBHZXRzIGEgYnVmZmVyIHBhZ2UgYW5kIGRlY2xhcmVzIGl0cyBsYXRjaGluZyBv cmRlciBsZXZlbC4KIEBwYXJhbSBzcGFjZQl0YWJsZXNwYWNlIGlkZW50aWZpZXIKIEBwYXJhbSB6 aXBfc2l6ZQljb21wcmVzc2VkIHBhZ2Ugc2l6ZSBpbiBieXRlcyBvciAwIGZvciB1bmNvbXByZXNz ZWQgcGFnZXMKIEBwYXJhbSBwYWdlX25vCXBhZ2UgbnVtYmVyCiBAcGFyYW0gbW9kZQlsYXRjaCBt b2RlCitAcGFyYW0gaWR4CWluZGV4IHRyZWUsIG1heSBiZSBOVUxMIGlmIG5vdCB0aGUgaW5zZXJ0 IGJ1ZmZlciB0cmVlCiBAcGFyYW0gbXRyCW1pbmktdHJhbnNhY3Rpb24gaGFuZGxlCiBAcmV0dXJu IHRoZSB1bmNvbXByZXNzZWQgcGFnZSBmcmFtZSAqLwotIyBkZWZpbmUgYnRyX3BhZ2VfZ2V0KHNw YWNlLHppcF9zaXplLHBhZ2Vfbm8sbW9kZSxtdHIpIFwKLQlidWZfYmxvY2tfZ2V0X2ZyYW1lKGJ0 cl9ibG9ja19nZXQoc3BhY2UsemlwX3NpemUscGFnZV9ubyxtb2RlLG10cikpCisjIGRlZmluZSBi dHJfcGFnZV9nZXQoc3BhY2UsemlwX3NpemUscGFnZV9ubyxtb2RlLGlkeCxtdHIpCQlcCisJYnVm X2Jsb2NrX2dldF9mcmFtZShidHJfYmxvY2tfZ2V0KHNwYWNlLHppcF9zaXplLHBhZ2Vfbm8sbW9k ZSxpZHgsbXRyKSkKICNlbmRpZiAvKiAhVU5JVl9IT1RCQUNLVVAgKi8KIC8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIEdl dHMgdGhlIGluZGV4IGlkIGZpZWxkIG9mIGEgcGFnZS4KQEAgLTMzMyw4ICszNTIsNyBAQCBidHJf ZnJlZV9yb290KAogCXVsaW50CXppcF9zaXplLAkvKiE8IGluOiBjb21wcmVzc2VkIHBhZ2Ugc2l6 ZSBpbiBieXRlcwogCQkJCW9yIDAgZm9yIHVuY29tcHJlc3NlZCBwYWdlcyAqLwogCXVsaW50CXJv b3RfcGFnZV9ubywJLyohPCBpbjogcm9vdCBwYWdlIG51bWJlciAqLwotCW10cl90KgltdHIpOwkJ LyohPCBpbjogYSBtaW5pLXRyYW5zYWN0aW9uIHdoaWNoIGhhcyBhbHJlYWR5Ci0JCQkJYmVlbiBz dGFydGVkICovCisJbXRyX3QqCW10cik7CQkvKiE8IGluL291dDogbWluaS10cmFuc2FjdGlvbiAq LwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovLyoqCiBNYWtlcyB0cmVlIG9uZSBsZXZlbCBoaWdoZXIgYnkgc3BsaXR0aW5nIHRo ZSByb290LCBhbmQgaW5zZXJ0cwogdGhlIHR1cGxlLiBJdCBpcyBhc3N1bWVkIHRoYXQgbXRyIGNv bnRhaW5zIGFuIHgtbGF0Y2ggb24gdGhlIHRyZWUuCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFn ZS9pbm5vZGJfcGx1Z2luL2luY2x1ZGUvYnRyMGJ0ci5pYycKLS0tIGEvc3RvcmFnZS9pbm5vZGJf cGx1Z2luL2luY2x1ZGUvYnRyMGJ0ci5pYwlyZXZpZDpnZW9yZ2kua29kaW5vdkBvcmFjbGUuY29t LTIwMTEwODEyMTEyMDE3LTFnbTdwb3EzMmJ4cWw2cXEKKysrIGIvc3RvcmFnZS9pbm5vZGJfcGx1 Z2luL2luY2x1ZGUvYnRyMGJ0ci5pYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEx MDgxNTA5MTE0My1oM3pidm0wcHY4bmkzcXFsCkBAIC0xLDYgKzEsNiBAQAogLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCiAKLUNvcHlyaWdodCAoYykgMTk5NCwgMjAxMCwgSW5ub2Jhc2UgT3kuIEFsbCBS aWdodHMgUmVzZXJ2ZWQuCitDb3B5cmlnaHQgKGMpIDE5OTQsIDIwMTEsIE9yYWNsZSBhbmQvb3Ig aXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAKIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVu ZGVyCiB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQpAQCAtNDgsNiArNDgsMTAgQEAgYnRyX2Jsb2NrX2dl dF9mdW5jKAogCXVsaW50CQltb2RlLAkJLyohPCBpbjogbGF0Y2ggbW9kZSAqLwogCWNvbnN0IGNo YXIqCWZpbGUsCQkvKiE8IGluOiBmaWxlIG5hbWUgKi8KIAl1bGludAkJbGluZSwJCS8qITwgaW46 IGxpbmUgd2hlcmUgY2FsbGVkICovCisjaWZkZWYgVU5JVl9TWU5DX0RFQlVHCisJY29uc3QgZGlj dF9pbmRleF90KglpbmRleCwJLyohPCBpbjogaW5kZXggdHJlZSwgbWF5IGJlIE5VTEwKKwkJCQkJ aWYgaXQgaXMgbm90IGFuIGluc2VydCBidWZmZXIgdHJlZSAqLworI2VuZGlmIC8qIFVOSVZfU1lO Q19ERUJVRyAqLwogCW10cl90KgkJbXRyKQkJLyohPCBpbi9vdXQ6IG10ciAqLwogewogCWJ1Zl9i bG9ja190KglibG9jazsKQEAgLTU3LDcgKzYxLDkgQEAgYnRyX2Jsb2NrX2dldF9mdW5jKAogCiAJ aWYgKG1vZGUgIT0gUldfTk9fTEFUQ0gpIHsKIAotCQlidWZfYmxvY2tfZGJnX2FkZF9sZXZlbChi bG9jaywgU1lOQ19UUkVFX05PREUpOworCQlidWZfYmxvY2tfZGJnX2FkZF9sZXZlbCgKKwkJCWJs b2NrLCBpbmRleCAhPSBOVUxMICYmIGRpY3RfaW5kZXhfaXNfaWJ1ZihpbmRleCkKKwkJCT8gU1lO Q19JQlVGX1RSRUVfTk9ERSA6IFNZTkNfVFJFRV9OT0RFKTsKIAl9CiAKIAlyZXR1cm4oYmxvY2sp OwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9pbmNsdWRlL3N5bmMw c3luYy5oJwotLS0gYS9zdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9zeW5jMHN5bmMuaAly ZXZpZDpnZW9yZ2kua29kaW5vdkBvcmFjbGUuY29tLTIwMTEwODEyMTEyMDE3LTFnbTdwb3EzMmJ4 cWw2cXEKKysrIGIvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2luY2x1ZGUvc3luYzBzeW5jLmgJcmV2 aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA4MTUwOTExNDMtaDN6YnZtMHB2OG5pM3Fx bApAQCAtNDQ4LDEwICs0NDgsNiBAQCBvciByb3cgbG9jayEgKi8KICNkZWZpbmUgU1lOQ19ESUNU X0hFQURFUgk5OTUKICNkZWZpbmUgU1lOQ19JQlVGX0hFQURFUgk5MTQKICNkZWZpbmUgU1lOQ19J QlVGX1BFU1NfSU5TRVJUX01VVEVYIDkxMgotI2RlZmluZSBTWU5DX0lCVUZfTVVURVgJCTkxMAkv KiBpYnVmIG11dGV4IGlzIHJlYWxseSBiZWxvdwotCQkJCQlTWU5DX0ZTUF9QQUdFOiB3ZSBhc3Np Z24gYSB2YWx1ZSB0aGlzCi0JCQkJCWhpZ2ggb25seSB0byBtYWtlIHRoZSBwcm9ncmFtIHRvIHBh c3MKLQkJCQkJdGhlIGRlYnVnIGNoZWNrcyAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKi8KICNkZWZpbmUJU1lOQ19JTkRFWF9UUkVFCQk5MDAKICNkZWZpbmUgU1lOQ19UUkVF X05PREVfTkVXCTg5MgpAQCAtNDY4LDggKzQ2NCwxMSBAQCBvciByb3cgbG9jayEgKi8KICNkZWZp bmUJU1lOQ19GU1AJCTQwMAogI2RlZmluZQlTWU5DX0ZTUF9QQUdFCQkzOTUKIC8qLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBJbnNlcnQgYnVmZmVyIGhlYWRlcnMgKi8KLS8q LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBpYnVmX211dGV4ICovCisjZGVm aW5lIFNZTkNfSUJVRl9NVVRFWAkJMzcwCS8qIGlidWZfbXV0ZXggKi8KIC8qLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBJbnNlcnQgYnVmZmVyIHRyZWUgKi8KKyNkZWZpbmUg U1lOQ19JQlVGX0lOREVYX1RSRUUJMzYwCisjZGVmaW5lIFNZTkNfSUJVRl9UUkVFX05PREVfTkVX CTM1OQorI2RlZmluZSBTWU5DX0lCVUZfVFJFRV9OT0RFCTM1OAogI2RlZmluZQlTWU5DX0lCVUZf QklUTUFQX01VVEVYCTM1MQogI2RlZmluZQlTWU5DX0lCVUZfQklUTUFQCTM1MAogLyotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE15U1FMIHF1ZXJ5IGNhY2hlIG11dGV4ICov Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vZGJfcGx1Z2luL3N5bmMvc3luYzBzeW5j LmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9zeW5jL3N5bmMwc3luYy5jCXJldmlkOmdl b3JnaS5rb2Rpbm92QG9yYWNsZS5jb20tMjAxMTA4MTIxMTIwMTctMWdtN3BvcTMyYnhxbDZxcQor KysgYi9zdG9yYWdlL2lubm9kYl9wbHVnaW4vc3luYy9zeW5jMHN5bmMuYwlyZXZpZDptYXJrby5t YWtlbGFAb3JhY2xlLmNvbS0yMDExMDgxNTA5MTE0My1oM3pidm0wcHY4bmkzcXFsCkBAIC0xMTcz LDYgKzExNzMsNyBAQCBzeW5jX3RocmVhZF9hZGRfbGV2ZWwoCiAJY2FzZSBTWU5DX0RJQ1RfSEVB REVSOgogCWNhc2UgU1lOQ19UUlhfSV9TX1JXTE9DSzoKIAljYXNlIFNZTkNfVFJYX0lfU19MQVNU X1JFQUQ6CisJY2FzZSBTWU5DX0lCVUZfTVVURVg6CiAJCWlmICghc3luY190aHJlYWRfbGV2ZWxz X2coYXJyYXksIGxldmVsLCBUUlVFKSkgewogCQkJZnByaW50ZihzdGRlcnIsCiAJCQkJIklubm9E Qjogc3luY190aHJlYWRfbGV2ZWxzX2coYXJyYXksICVsdSkiCkBAIC0xMjM2LDIyICsxMjM3LDI4 IEBAIHN5bmNfdGhyZWFkX2FkZF9sZXZlbCgKIAkJICAgICB8fCBzeW5jX3RocmVhZF9sZXZlbHNf ZyhhcnJheSwgU1lOQ19UUkVFX05PREUgLSAxLCBUUlVFKSk7CiAJCWJyZWFrOwogCWNhc2UgU1lO Q19UUkVFX05PREVfTkVXOgotCQl1dF9hKHN5bmNfdGhyZWFkX2xldmVsc19jb250YWluKGFycmF5 LCBTWU5DX0ZTUF9QQUdFKQotCQkgICAgIHx8IHN5bmNfdGhyZWFkX2xldmVsc19jb250YWluKGFy cmF5LCBTWU5DX0lCVUZfTVVURVgpKTsKKwkJdXRfYShzeW5jX3RocmVhZF9sZXZlbHNfY29udGFp bihhcnJheSwgU1lOQ19GU1BfUEFHRSkpOwogCQlicmVhazsKIAljYXNlIFNZTkNfSU5ERVhfVFJF RToKLQkJaWYgKHN5bmNfdGhyZWFkX2xldmVsc19jb250YWluKGFycmF5LCBTWU5DX0lCVUZfTVVU RVgpCi0JCSAgICAmJiBzeW5jX3RocmVhZF9sZXZlbHNfY29udGFpbihhcnJheSwgU1lOQ19GU1Ap KSB7Ci0JCQl1dF9hKHN5bmNfdGhyZWFkX2xldmVsc19nKGFycmF5LCBTWU5DX0ZTUF9QQUdFIC0g MSwKLQkJCQkJCSAgVFJVRSkpOworCQl1dF9hKHN5bmNfdGhyZWFkX2xldmVsc19nKGFycmF5LCBT WU5DX1RSRUVfTk9ERSAtIDEsIFRSVUUpKTsKKwkJYnJlYWs7CisJY2FzZSBTWU5DX0lCVUZfVFJF RV9OT0RFOgorCQl1dF9hKHN5bmNfdGhyZWFkX2xldmVsc19jb250YWluKGFycmF5LCBTWU5DX0lC VUZfSU5ERVhfVFJFRSkKKwkJICAgICB8fCBzeW5jX3RocmVhZF9sZXZlbHNfZyhhcnJheSwgU1lO Q19JQlVGX1RSRUVfTk9ERSAtIDEsCisJCQkJCSAgICAgVFJVRSkpOworCQlicmVhazsKKwljYXNl IFNZTkNfSUJVRl9UUkVFX05PREVfTkVXOgorCQl1dF9hKHN5bmNfdGhyZWFkX2xldmVsc19jb250 YWluKGFycmF5LCBTWU5DX0lCVUZfTVVURVgpKTsKKwkJYnJlYWs7CisJY2FzZSBTWU5DX0lCVUZf SU5ERVhfVFJFRToKKwkJaWYgKHN5bmNfdGhyZWFkX2xldmVsc19jb250YWluKGFycmF5LCBTWU5D X0ZTUCkpIHsKKwkJCXV0X2Eoc3luY190aHJlYWRfbGV2ZWxzX2coCisJCQkJICAgICBhcnJheSwg U1lOQ19GU1BfUEFHRSAtIDEsIFRSVUUpKTsKIAkJfSBlbHNlIHsKLQkJCXV0X2Eoc3luY190aHJl YWRfbGV2ZWxzX2coYXJyYXksIFNZTkNfVFJFRV9OT0RFIC0gMSwKLQkJCQkJCSAgVFJVRSkpOwor CQkJdXRfYShzeW5jX3RocmVhZF9sZXZlbHNfZygKKwkJCQkgICAgIGFycmF5LCBTWU5DX0lCVUZf VFJFRV9OT0RFIC0gMSwgVFJVRSkpOwogCQl9CiAJCWJyZWFrOwotCWNhc2UgU1lOQ19JQlVGX01V VEVYOgotCQl1dF9hKHN5bmNfdGhyZWFkX2xldmVsc19nKGFycmF5LCBTWU5DX0ZTUF9QQUdFIC0g MSwgVFJVRSkpOwotCQlicmVhazsKIAljYXNlIFNZTkNfSUJVRl9QRVNTX0lOU0VSVF9NVVRFWDoK IAkJdXRfYShzeW5jX3RocmVhZF9sZXZlbHNfZyhhcnJheSwgU1lOQ19GU1AgLSAxLCBUUlVFKSk7 CiAJCXV0X2EoIXN5bmNfdGhyZWFkX2xldmVsc19jb250YWluKGFycmF5LCBTWU5DX0lCVUZfTVVU RVgpKTsKCk5vIGJ1bmRsZSAocmVhc29uOiB1c2VsZXNzIGZvciBwdXNoIGVtYWlscyku