LyoKICogc2V0c2lkLmMgLS0gZXhlY3V0ZSBhIGNvbW1hbmQgaW4gYSBuZXcgc2Vzc2lvbgogKiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgogKiBJbiB0aGUgcHVibGljIGRvbWFpbi4KICoKICogMTk5OS0wMi0yMiBBcmthZGl1c3ogTWm2a2lld2ljeiA8bWlzaWVrQHBsZC5PUkcuUEw+CiAqIC0gYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKICoKICogMjAwMS0wMS0xOCBKb2huIEZyZW1saW4gPHZpaUBwZW5ndWlucG93ZXJlZC5jb20+CiAqIC0gZm9yayBpbiBjYXNlIHdlIGFyZSBwcm9jZXNzIGdyb3VwIGxlYWRlcgogKgogKi8KCiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8dW5pc3RkLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgIm5scy5oIgoKaW50Cm1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewoJc2V0bG9jYWxlKExDX0FMTCwgIiIpOwoJYmluZHRleHRkb21haW4oUEFDS0FHRSwgTE9DQUxFRElSKTsKCXRleHRkb21haW4oUEFDS0FHRSk7CgkKCWlmIChhcmdjIDwgMikgewoJCWZwcmludGYoc3RkZXJyLCBfKCJ1c2FnZTogJXMgcHJvZ3JhbSBbYXJnIC4uLl1cbiIpLAoJCQlhcmd2WzBdKTsKCQlleGl0KDEpOwoJfQoJaWYgKGdldHBncnAoKSA9PSBnZXRwaWQoKSkgewoJCXN3aXRjaChmb3JrKCkpewoJCWNhc2UgLTE6CgkJCXBlcnJvcigiZm9yayIpOwoJCQlleGl0KDEpOwoJCWNhc2UgMDoJCS8qIGNoaWxkICovCgkJCWJyZWFrOwoJCWRlZmF1bHQ6CS8qIHBhcmVudCAqLwoJCQlleGl0KDApOwoJCX0KCX0KCWlmIChzZXRzaWQoKSA8IDApIHsKCQlwZXJyb3IoInNldHNpZCIpOyAvKiBjYW5ub3QgaGFwcGVuICovCgkJZXhpdCgxKTsKCX0KCWV4ZWN2cChhcmd2WzFdLCBhcmd2ICsgMSk7CglwZXJyb3IoImV4ZWN2cCIpOwoJZXhpdCgxKTsKfQo=