ZGlmZiAtLWdpdCBhL2FwL2xpYmMvZ2xpYmMvZ2xpYmMtMi4yMy9wb3NpeC9idWctcmVnZXgxLmMgYi9hcC9saWJjL2dsaWJjL2dsaWJjLTIuMjMvcG9zaXgvYnVnLXJlZ2V4MS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4ZWI1NDMKLS0tIC9kZXYvbnVsbAorKysgYi9hcC9saWJjL2dsaWJjL2dsaWJjLTIuMjMvcG9zaXgvYnVnLXJlZ2V4MS5jCkBAIC0wLDAgKzEsNjUgQEAKKy8qIFRlc3QgY2FzZSBieSBKaW0gTWV5ZXJpbmcgPGppbUBtZXllcmluZy5uZXQ+LiAgKi8KKyNpbmNsdWRlIDxsb2NhbGUuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHJlZ2V4Lmg+CisjaW5jbHVkZSA8d2NoYXIuaD4KKworaW50CittYWluICh2b2lkKQoreworICBzdHJ1Y3QgcmVfcGF0dGVybl9idWZmZXIgcmVnZXg7CisgIHN0cnVjdCByZV9yZWdpc3RlcnMgcmVnczsKKyAgY29uc3QgY2hhciAqczsKKyAgaW50IG1hdGNoOworICBpbnQgcmVzdWx0ID0gMDsKKworICBtZW1zZXQgKCZyZWdleCwgJ1wwJywgc2l6ZW9mIChyZWdleCkpOworCisgIHNldGxvY2FsZSAoTENfQUxMLCAiZGVfREUuSVNPLTg4NTktMSIpOworICBmd2lkZSAoc3Rkb3V0LCAtMSk7CisKKyAgcmVfc2V0X3N5bnRheCAoUkVfU1lOVEFYX1BPU0lYX0VHUkVQIHwgUkVfREVCVUcpOworCisgIHB1dHMgKCJpbiBDIGxvY2FsZSIpOworICBzZXRsb2NhbGUgKExDX0FMTCwgIkMiKTsKKyAgcyA9IHJlX2NvbXBpbGVfcGF0dGVybiAoIlthbvldKm4iLCA3LCAmcmVnZXgpOworICBpZiAocyAhPSBOVUxMKQorICAgIHsKKyAgICAgIHB1dHMgKCJyZV9jb21waWxlX3BhdHRlcm4gcmV0dXJuIG5vbi1OVUxMIHZhbHVlIik7CisgICAgICByZXN1bHQgPSAxOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIG1hdGNoID0gcmVfbWF0Y2ggKCZyZWdleCwgImFuIiwgMiwgMCwgJnJlZ3MpOworICAgICAgaWYgKG1hdGNoICE9IDIpCisJeworCSAgcHJpbnRmICgicmVfbWF0Y2ggcmV0dXJuZWQgJWQsIGV4cGVjdGVkIDJcbiIsIG1hdGNoKTsKKwkgIHJlc3VsdCA9IDE7CisJfQorICAgICAgZWxzZQorCXB1dHMgKCIgLT4gT0siKTsKKyAgICB9CisKKyAgcHV0cyAoImluIGRlX0RFLklTTy04ODU5LTEgbG9jYWxlIik7CisgIHNldGxvY2FsZSAoTENfQUxMLCAiZGVfREUuSVNPLTg4NTktMSIpOworICBzID0gcmVfY29tcGlsZV9wYXR0ZXJuICgiW2Fu+V0qbiIsIDcsICZyZWdleCk7CisgIGlmIChzICE9IE5VTEwpCisgICAgeworICAgICAgcHV0cyAoInJlX2NvbXBpbGVfcGF0dGVybiByZXR1cm4gbm9uLU5VTEwgdmFsdWUiKTsKKyAgICAgIHJlc3VsdCA9IDE7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgbWF0Y2ggPSByZV9tYXRjaCAoJnJlZ2V4LCAiYW4iLCAyLCAwLCAmcmVncyk7CisgICAgICBpZiAobWF0Y2ggIT0gMikKKwl7CisJICBwcmludGYgKCJyZV9tYXRjaCByZXR1cm5lZCAlZCwgZXhwZWN0ZWQgMlxuIiwgbWF0Y2gpOworCSAgcmVzdWx0ID0gMTsKKwl9CisgICAgICBlbHNlCisJcHV0cyAoIiAtPiBPSyIpOworICAgIH0KKworICByZXR1cm4gcmVzdWx0OworfQo=