LyoKICogc2V0c2lkLmMgLS0gZXhlY3V0ZSBhIGNvbW1hbmQgaW4gYSBuZXcgc2Vzc2lvbgogKiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgogKiBJbiB0aGUgcHVibGljIGRvbWFpbi4KICoKICogMTk5OS0wMi0yMiBBcmthZGl1c3ogTWm2a2lld2ljeiA8bWlzaWVrQHBsZC5PUkcuUEw+CiAqIC0gYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKICoKICogMjAwMS0wMS0xOCBKb2huIEZyZW1saW4gPHZpaUBwZW5ndWlucG93ZXJlZC5jb20+CiAqIC0gZm9yayBpbiBjYXNlIHdlIGFyZSBwcm9jZXNzIGdyb3VwIGxlYWRlcgogKgogKiAyMDA0LTExLTEyIFBhdWwgRm94CiAqIC0gYnVzeWJveGVkCiAqLwoKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx1bmlzdGQuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSAiYnVzeWJveC5oIgoKaW50CnNldHNpZF9tYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKCglpZiAoYXJnYyA8IDIpIHsKCQliYl9zaG93X3VzYWdlKCk7Cgl9CgoJaWYgKGdldHBncnAoKSA9PSBnZXRwaWQoKSkgewoJCXN3aXRjaChmb3JrKCkpewoJCWNhc2UgLTE6CgkJCWJiX3BlcnJvcl9tc2dfYW5kX2RpZSgiZm9yayIpOwoJCWNhc2UgMDoKCQkJYnJlYWs7CgkJZGVmYXVsdDoJLyogcGFyZW50ICovCgkJCWV4aXQoMCk7CgkJfQoJCS8qIGNoaWxkIGZhbGxzIHRocm91Z2ggKi8KCX0KCglzZXRzaWQoKTsgIC8qIG5vIGVycm9yIHBvc3NpYmxlICovCgoJZXhlY3ZwKGFyZ3ZbMV0sIGFyZ3YgKyAxKTsKCgliYl9wZXJyb3JfbXNnX2FuZF9kaWUoYXJndlsxXSk7Cgp9Cg==