LyoKICogQ29weXJpZ2h0IKkgMjAwMyBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqIFVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMgc3BlY2lmaWVkIGluIHRoZSBDT1BZSU5HIGZpbGUKICogZGlzdHJpYnV0ZWQgd2l0aCB0aGUgTmV0LVNOTVAgcGFja2FnZS4KICovCiNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KCiNpZiAhSEFWRV9TVFJMQ1BZCgojaWYgSEFWRV9TVFJJTkdfSAojaW5jbHVkZSA8c3RyaW5nLmg+CiNlbHNlCiNpbmNsdWRlIDxzdHJpbmdzLmg+CiNlbmRpZgoKI2luY2x1ZGUgPHN5cy90eXBlcy5oPgoKLyogCiAqIENvcGllcyBzcmMgdG8gdGhlIGRlc3QgYnVmZmVyLiBUaGUgY29weSB3aWxsIG5ldmVyIG92ZXJmbG93IHRoZSBkZXN0IGJ1ZmZlcgogKiBhbmQgZGVzdCB3aWxsIGFsd2F5cyBiZSBudWxsIHRlcm1pbmF0ZWQsIGxlbiBpcyB0aGUgc2l6ZSBvZiB0aGUgZGVzdCBidWZmZXIuCiAqCiAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgc3JjIGJ1ZmZlci4KICovIApzaXplX3QgCnN0cmxjcHkoY2hhciAqZGVzdCwgY29uc3QgY2hhciAqc3JjLCBzaXplX3QgbGVuKSAKeyAKCXNpemVfdCBzcmNfbGVuID0gc3RybGVuKHNyYyk7IAoJc2l6ZV90IG5ld19sZW47IAoKCWlmIChsZW4gPT0gMCkgewoJCXJldHVybiAoc3JjX2xlbik7Cgl9CgogICAgICAgIGlmIChzcmNfbGVuID49IGxlbikgewoJCW5ld19sZW4gPSBsZW4gLSAxOwoJfSBlbHNlIHsKICAgICAgICAgICAgICAgIG5ld19sZW4gPSBzcmNfbGVuOwoJfQoKICAgICAgICBtZW1jcHkoZGVzdCwgc3JjLCBuZXdfbGVuKTsgCglkZXN0W25ld19sZW5dID0gJ1wwJzsgCglyZXR1cm4gKHNyY19sZW4pOyAKfQoKI2VuZGlmICAgICAgICAgICAgICAgICAgICAvKiAhSEFWRV9TVFJMQ1BZICovCg==