#include <stdio.h>
#include <stdint.h>
uint8_t * hexstr_to_bin(
char const * str) {
size_t const length
= strlen(str
); uint8_t * result =
size_t it;
for (it = 0; it < length; ++it) {
char const c = str[it];
uint8_t const bin =
(c > '9') ?
(tolower(c
) - 'a' + 10) : (c
- '0'); if (it % 2 == 0) {
result[it / 2] = bin << 4;
} else {
result[it / 2] |= bin;
}
}
return result;
}
int main(void) {
free(hexstr_to_bin
("a9")); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRpbnQuaD4KCnVpbnQ4X3QgKiBoZXhzdHJfdG9fYmluKAogICAgY2hhciBjb25zdCAqIHN0cikgewogc2l6ZV90IGNvbnN0IGxlbmd0aCA9IHN0cmxlbihzdHIpOwogdWludDhfdCAqIHJlc3VsdCA9CiAgICBtYWxsb2MoKGxlbmd0aCArIDEpIC8gMik7CiBzaXplX3QgaXQ7CiBmb3IgKGl0ID0gMDsgaXQgPCBsZW5ndGg7ICsraXQpIHsKICBjaGFyIGNvbnN0IGMgPSBzdHJbaXRdOwogIHVpbnQ4X3QgY29uc3QgYmluID0KICAgICAoYyA+ICc5JykgPwogICAgICAgKHRvbG93ZXIoYykgLSAnYScgKyAxMCkgOiAoYyAtICcwJyk7CiAgaWYgKGl0ICUgMiA9PSAwKSB7CiAgIHJlc3VsdFtpdCAvIDJdID0gYmluIDw8IDQ7CiAgfSBlbHNlIHsKICAgcmVzdWx0W2l0IC8gMl0gfD0gYmluOwogIH0KIH0KIHJldHVybiByZXN1bHQ7Cn0KCmludCBtYWluKHZvaWQpIHsKIGZyZWUoaGV4c3RyX3RvX2JpbigiYTkiKSk7CiByZXR1cm4gMDsKfQ==