// SDB-CGEN V2.6.2
#include <ctype.h>
#include <stdio.h>
#include <string.h>

struct kv { const char *name; const char *value; };
static const struct kv kvs[] = {
// gcc -DMAIN=1 symclass.c ; ./a.out > symclass.h
	{"CCCrypt", "crypto"},
	{"CCCryptorCreate", "crypto"},
	{"CCCryptorFinal", "crypto"},
	{"CCCryptorRelease", "crypto"},
	{"CCCryptorUpdate", "crypto"},
	{"CCHmac", "crypto"},
	{"CCKeyDerivationPBKDF", "crypto"},
	{"CC_MD5_Final", "crypto"},
	{"CC_MD5_Init", "crypto"},
	{"CC_MD5_Update", "crypto"},
	{"CC_SHA1", "crypto"},
	{"CC_SHA1_Final", "crypto"},
	{"CC_SHA1_Init", "crypto"},
	{"CC_SHA1_Update", "crypto"},
	{"CC_SHA256", "crypto"},
	{"ChangeWindowMessageFilter", "buffer"},
	{"CharToOem", "buffer"},
	{"CharToOemA", "buffer"},
	{"CharToOemBuffA", "buffer"},
	{"CharToOemBuffW", "buffer"},
	{"CharToOemW", "buffer"},
	{"CopyMemory", "buffer"},
	{"IsBadCodePtr", "buffer"},
	{"IsBadHugeReadPtr", "buffer"},
	{"IsBadHugeWritePtr", "buffer"},
	{"IsBadReadPtr", "buffer"},
	{"IsBadStringPtr", "buffer"},
	{"IsBadWritePtr", "buffer"},
	{"NSURL", "network"},
	{"OemToChar", "buffer"},
	{"OemToCharA", "buffer"},
	{"OemToCharW", "buffer"},
	{"RtlCopyMemory", "buffer"},
	{"StrCat", "buffer"},
	{"StrCatA", "buffer"},
	{"StrCatBuff", "buffer"},
	{"StrCatBuffA", "buffer"},
	{"StrCatBuffW", "buffer"},
	{"StrCatChainW", "buffer"},
	{"StrCatN", "string,buffer"},
	{"StrCatNA", "string,buffer"},
	{"StrCatNW", "string,buffer"},
	{"StrCatW", "string,buffer"},
	{"StrCpy", "string,buffer"},
	{"StrCpyA", "string,buffer"},
	{"StrCpyN", "string,buffer"},
	{"StrCpyNA", "string,buffer"},
	{"StrCpyNW", "string,buffer"},
	{"StrCpyW", "string,buffer"},
	{"StrLen", "string,buffer"},
	{"StrNCat", "string,buffer"},
	{"StrNCatA", "string,buffer"},
	{"StrNCatW", "string,buffer"},
	{"StrNCpy", "string,buffer"},
	{"StrNCpyA", "string,buffer"},
	{"StrNCpyW", "string,buffer"},
	{"UIView", "uikit"},
	{"UIViewController", "uikit"},
	{"__*_chk", "fortify"},
	{"__asan_*", "asan"},
	{"__fdelt_warn", "fortify"},
	{"__memset_zero_constant_len_parameter", "fortify"},
	{"__open*_2", "fortify"},
	{"__stack_chk_*", "canary"},
	{"__ubsan_*", "ubsan"},
	{"_alloca", "buffer,stack"},
	{"_ftcscat", "buffer"},
	{"_ftcscpy", "buffer"},
	{"_getts", "buffer"},
	{"_gettws", "buffer"},
	{"_i64toa", "buffer"},
	{"_i64tow", "buffer"},
	{"_itoa", "buffer"},
	{"_itow", "buffer"},
	{"_makepath", "buffer"},
	{"_mbccat", "buffer"},
	{"_mbccpy", "buffer"},
	{"_mbscat", "buffer"},
	{"_mbscpy", "buffer"},
	{"_mbslen", "buffer"},
	{"_mbsnbcat", "buffer"},
	{"_mbsnbcpy", "buffer"},
	{"_mbsncat", "buffer"},
	{"_mbsncpy", "buffer"},
	{"_mbstok", "buffer"},
	{"_mbstrlen", "buffer"},
	{"_snprintf", "buffer"},
	{"_sntprintf", "buffer"},
	{"_sntscanf", "buffer"},
	{"_snwprintf", "buffer"},
	{"_splitpath", "buffer"},
	{"_stprintf", "buffer"},
	{"_stscanf", "buffer"},
	{"_tccat", "buffer"},
	{"_tccpy", "buffer"},
	{"_tcscat", "buffer"},
	{"_tcscpy", "buffer"},
	{"_tcsncat", "buffer"},
	{"_tcsncpy", "buffer"},
	{"_tcstok", "buffer"},
	{"_tmakepath", "buffer"},
	{"_tscanf", "buffer"},
	{"_tsplitpath", "buffer"},
	{"_ui64toa", "buffer"},
	{"_ui64tot", "buffer"},
	{"_ui64tow", "buffer"},
	{"_ultoa", "buffer"},
	{"_ultot", "buffer"},
	{"_ultow", "buffer"},
	{"_vsnprintf", "buffer"},
	{"_vsntprintf", "buffer"},
	{"_vsnwprintf", "buffer"},
	{"_vstprintf", "buffer"},
	{"_wmakepath", "buffer"},
	{"_wsplitpath", "buffer"},
	{"abort", "error"},
	{"accept", "network"},
	{"access", "file,buffer"},
	{"acos", "math"},
	{"acosh", "math"},
	{"alloca", "buffer,stack"},
	{"asctime", "global"},
	{"asin", "math"},
	{"asinh", "math"},
	{"assert", "error"},
	{"atan", "math"},
	{"atan2", "math"},
	{"atanh", "math"},
	{"basename", "string,global"},
	{"bcopy", "buffer"},
	{"bind", "network"},
	{"cbrt", "math"},
	{"ceil", "math"},
	{"clearenv", "environment,global"},
	{"closedir", "dir"},
	{"connect", "network"},
	{"copysign", "math"},
	{"crypt", "global"},
	{"ctermid", "console,global"},
	{"ctime", "global"},
	{"cuserid", "console,global"},
	{"dirname", "string,global"},
	{"drand48", "global"},
	{"ecvt", "global"},
	{"eeprom_create", "eeprom"},
	{"eeprom_destroy", "eeprom"},
	{"eeprom_prepare", "eeprom"},
	{"eeprom_read", "eeprom"},
	{"eeprom_unprepare", "eeprom"},
	{"eeprom_write", "eeprom"},
	{"encrypt", "global"},
	{"endaliasent", "global"},
	{"endfsent", "global"},
	{"endgrent", "global"},
	{"endhostent", "network,global"},
	{"endnetent", "network,global"},
	{"endnetgrent", "network,global"},
	{"endprotoent", "network,global"},
	{"endpwent", "global"},
	{"endrpcent", "network,global"},
	{"endservent", "network,global"},
	{"endspent", "global"},
	{"endusershell", "global"},
	{"endutent", "global"},
	{"endutxent", "global"},
	{"environ", "environment"},
	{"erand48", "global"},
	{"ether_aton", "global"},
	{"ether_ntoa", "global"},
	{"execl", "exec"},
	{"execlp", "exec,buffer"},
	{"execve", "exec"},
	{"execvp", "exec,buffer"},
	{"execvpe", "exec,buffer"},
	{"exit", "process,global"},
	{"exp", "math"},
	{"exp10", "math"},
	{"exp2", "math"},
	{"fabs", "math"},
	{"fcvt", "global"},
	{"fdim", "math"},
	{"fflush", "console"},
	{"fgetgrent", "global"},
	{"fgetpwent", "global"},
	{"fgetspent", "global"},
	{"fileno", "file"},
	{"floor", "math"},
	{"fmax", "math"},
	{"fmin", "math"},
	{"fork", "thread"},
	{"fpclassify", "math"},
	{"fread", "file"},
	{"free", "heap"},
	{"freeifaddrs", "network"},
	{"frexp", "math"},
	{"fscanf", "format,buffer"},
	{"fseek", "file"},
	{"fstat", "file"},
	{"fts_close", "file"},
	{"fts_open", "file"},
	{"fts_open_b", "file"},
	{"fts_read", "file"},
	{"fwscanf", "format,buffer"},
	{"gamma", "global"},
	{"getaliasbyname", "global"},
	{"getaliasent", "global"},
	{"getc_unlocked", "io,global"},
	{"getchar_unlocked", "io,global"},
	{"getcwd", "dir"},
	{"getdate", "global"},
	{"getenv", "environment"},
	{"getfsent", "global"},
	{"getfsfile", "global"},
	{"getfsspec", "global"},
	{"getgrent", "global"},
	{"getgrgid", "global"},
	{"getgrnam", "global"},
	{"gethostbyaddr", "global"},
	{"gethostbyname", "global"},
	{"gethostbyname2", "global"},
	{"gethostent", "global"},
	{"getifaddrs", "network"},
	{"getlogin", "global"},
	{"getmntent", "global"},
	{"getnetbyaddr", "global"},
	{"getnetbyname", "global"},
	{"getnetent", "global"},
	{"getnetgrent", "global"},
	{"getopt", "global"},
	{"getopt_long", "global"},
	{"getopt_long_only", "global"},
	{"getpass", "console,global"},
	{"getprotobyname", "global"},
	{"getprotobynumber", "global"},
	{"getprotoent", "global"},
	{"getpwent", "global"},
	{"getpwnam", "global"},
	{"getpwuid", "global"},
	{"getrpcbyname", "global"},
	{"getrpcbynumber", "global"},
	{"getrpcent", "global"},
	{"gets", "buffer"},
	{"getservbyname", "global"},
	{"getservbyport", "global"},
	{"getservent", "global"},
	{"getsockname", "network"},
	{"getspent", "global"},
	{"getspnam", "global"},
	{"getuid", "process"},
	{"getusershell", "global"},
	{"getutent", "global"},
	{"getutid", "global"},
	{"getutline", "global"},
	{"getutxent", "global"},
	{"getutxid", "global"},
	{"getutxline", "global"},
	{"getwd", "file,buffer"},
	{"gmtime", "time,global"},
	{"hcreate", "global"},
	{"hdestroy", "global"},
	{"hsearch", "global"},
	{"hypot", "math"},
	{"ilogb", "math"},
	{"inet_aton", "network"},
	{"inet_ntoa", "network,global"},
	{"inet_ntop", "network"},
	{"initstate", "global"},
	{"isatty", "console"},
	{"isfinite", "math"},
	{"isinf", "math"},
	{"isnan", "math"},
	{"isnormal", "math"},
	{"jrand48", "global"},
	{"kill", "process"},
	{"l64a", "string,global"},
	{"lcong48", "global"},
	{"ldexp", "math"},
	{"lgamma", "global"},
	{"lgammaf", "global"},
	{"lgammal", "global"},
	{"listen", "network"},
	{"llrint", "math"},
	{"llround", "math"},
	{"localeconv", "global"},
	{"localtime", "global"},
	{"logb", "math"},
	{"lrand48", "global"},
	{"lround", "math"},
	{"lstrcat", "buffer"},
	{"lstrcatA", "buffer"},
	{"lstrcatW", "buffer"},
	{"lstrcatn", "buffer"},
	{"lstrcatnA", "buffer"},
	{"lstrcatnW", "buffer"},
	{"lstrcpy", "buffer"},
	{"lstrcpyA", "buffer"},
	{"lstrcpyW", "buffer"},
	{"lstrcpyn", "buffer"},
	{"lstrcpynA", "buffer"},
	{"lstrcpynW", "buffer"},
	{"lstrlen", "buffer"},
	{"lstrncat", "buffer"},
	{"makepath", "buffer"},
	{"malloc", "heap"},
	{"mblen", "string,global"},
	{"mbtowc", "string,global"},
	{"memcpy", "buffer"},
	{"mkdirat", "dir"},
	{"mktemp", "file,buffer"},
	{"mmap", "memory"},
	{"modf", "math"},
	{"mrand48", "global"},
	{"munmap", "memory"},
	{"nan", "math"},
	{"nanosleep", "time"},
	{"nearbyint", "math"},
	{"nextafter", "math"},
	{"nl_langinfo", "global"},
	{"nrand48", "global"},
	{"objc_addProtocol", "objc.proto"},
	{"objc_allocateClassPair", "objc.class"},
	{"objc_allocateProtocol", "objc.proto"},
	{"objc_autorelease", "objc.memory"},
	{"objc_autoreleasePoolPop", "objc.memory"},
	{"objc_autoreleasePoolPush", "objc.memory"},
	{"objc_autoreleaseReturnValue", "objc.memory"},
	{"objc_begin_catch", "objc.exception"},
	{"objc_block_copy", "objc.blocks"},
	{"objc_block_release", "objc.blocks"},
	{"objc_block_store", "objc.blocks"},
	{"objc_clearDeallocating", "objc.memory"},
	{"objc_conformsToProtocol", "objc.proto"},
	{"objc_copyClassNamesForImage", "objc.class"},
	{"objc_copyPropertyAttributes", "objc.property"},
	{"objc_copyPropertyList", "objc.property"},
	{"objc_copyWeak", "objc.memory"},
	{"objc_demangleClassName", "objc.sync"},
	{"objc_destroyWeak", "objc.memory"},
	{"objc_disposeClassPair", "objc.class"},
	{"objc_duplicateClass", "objc.class"},
	{"objc_end_catch", "objc.exception"},
	{"objc_exception_throw", "objc.exception"},
	{"objc_fixupClassPair", "objc.sync"},
	{"objc_getAssociatedObject", "objc.assoc"},
	{"objc_getClass", "objc.class"},
	{"objc_getClassList", "objc.class"},
	{"objc_getKey", "objc.property"},
	{"objc_getKeyPath", "objc.property"},
	{"objc_getMetaClass", "objc.class"},
	{"objc_getProperty", "objc.property"},
	{"objc_getProtocol", "objc.proto"},
	{"objc_getRequiredClass", "objc.class"},
	{"objc_getSelector", "objc.proto"},
	{"objc_initialize", "objc.sync"},
	{"objc_initializeClassPair", "objc.sync"},
	{"objc_loadWeak", "objc.memory"},
	{"objc_msgForward", "objc.msg"},
	{"objc_msgForward_stret", "objc.msg"},
	{"objc_msgLookup", "objc.msg"},
	{"objc_msgSend", "objc.msg"},
	{"objc_msgSendSuper", "objc.msg"},
	{"objc_msgSendSuper2", "objc.msg"},
	{"objc_msgSendUncached", "objc.msg"},
	{"objc_msgSend_fpret", "objc.msg"},
	{"objc_msgSend_stret", "objc.msg"},
	{"objc_registerClassPair", "objc.class"},
	{"objc_registerProtocol", "objc.proto"},
	{"objc_release", "objc.memory"},
	{"objc_removeAssociatedObjects", "objc.assoc"},
	{"objc_retain", "objc.memory"},
	{"objc_retainAutorelease", "objc.memory"},
	{"objc_retainAutoreleasedReturnValue", "objc.memory"},
	{"objc_selector_register", "objc.proto"},
	{"objc_setAssociatedObject", "objc.assoc"},
	{"objc_setExceptionHandler", "objc.exception"},
	{"objc_setExceptionPreprocessor", "objc.exception"},
	{"objc_setFutureClass", "objc.class"},
	{"objc_setHook_getClass", "objc.class"},
	{"objc_setHook_getMetaClass", "objc.class"},
	{"objc_setKey", "objc.property"},
	{"objc_setKeyPath", "objc.property"},
	{"objc_setProperty", "objc.property"},
	{"objc_setProtocolMethodTypes", "objc.proto"},
	{"objc_storeStrong", "objc.memory"},
	{"objc_storeWeak", "objc.memory"},
	{"objc_sync_enter", "objc.sync"},
	{"objc_sync_exit", "objc.sync"},
	{"objc_terminate", "objc.exception"},
	{"open", "file,io"},
	{"opendir", "dir"},
	{"perror", "error"},
	{"popen", "exec,buffer"},
	{"pow", "math"},
	{"printf", "console,format"},
	{"pthread_attr", "thread"},
	{"pthread_cancel", "thread"},
	{"pthread_cleanup_pop", "thread"},
	{"pthread_cleanup_push", "thread"},
	{"pthread_create", "thread"},
	{"pthread_exit", "thread"},
	{"pthread_join", "thread"},
	{"ptsname", "global"},
	{"putc", "console"},
	{"putc_unlocked", "io,global"},
	{"putchar_unlocked", "io,global"},
	{"putenv", "environment,global"},
	{"puts", "console"},
	{"pututline", "global"},
	{"pututxline", "global"},
	{"qecvt", "global"},
	{"qfcvt", "global"},
	{"qsort", "global"},
	{"rand", "global"},
	{"rand_r", "random"},
	{"random", "random,global"},
	{"re_comp", "global"},
	{"re_exec", "global"},
	{"read", "io"},
	{"readdir", "global"},
	{"readdir_r", "file"},
	{"readlink", "file"},
	{"realloc", "heap"},
	{"realpath", "file,buffer"},
	{"recv", "network,io"},
	{"rint", "math"},
	{"rmdir", "dir"},
	{"round", "math"},
	{"scalbln", "math"},
	{"scalbn", "math"},
	{"scanf", "buffer"},
	{"seed48", "global"},
	{"select", "network"},
	{"send", "network"},
	{"sendmsg", "network"},
	{"setaliasent", "global"},
	{"setegid", "privilege"},
	{"setenv", "environment,global"},
	{"seteuid", "privilege"},
	{"setfsent", "global"},
	{"setgid", "privilege"},
	{"setgrent", "global"},
	{"sethostent", "network,global"},
	{"setkey", "global"},
	{"setlocale", "global"},
	{"setnetent", "network,global"},
	{"setnetgrent", "network,global"},
	{"setprotoent", "network,global"},
	{"setpwent", "global"},
	{"setrpcent", "network,global"},
	{"setservent", "network,global"},
	{"setsockopt", "network"},
	{"setspent", "global"},
	{"setstate", "global"},
	{"setuid", "privilege"},
	{"setusershell", "global"},
	{"setutent", "global"},
	{"setutxent", "global"},
	{"sgetspent", "global"},
	{"sigaction", "signal"},
	{"signal", "signal"},
	{"signbit", "math"},
	{"sleep", "time"},
	{"snprintf", "format"},
	{"snscanf", "buffer"},
	{"snwscanf", "buffer"},
	{"sprintf", "buffer,format"},
	{"sprintfA", "buffer"},
	{"sprintfW", "buffer"},
	{"sqrt", "math"},
	{"srand", "random,global"},
	{"srand48", "random,global"},
	{"srandom", "random,global"},
	{"sscanf", "buffer,format"},
	{"stat", "file"},
	{"stderr", "console"},
	{"stdin", "console"},
	{"stdout", "console"},
	{"stpcpy", "string,buffer"},
	{"stpncpy", "string,buffer"},
	{"strcadd", "string,buffer"},
	{"strcat", "buffer"},
	{"strcatA", "buffer"},
	{"strcatW", "string,buffer"},
	{"strccpy", "string,buffer"},
	{"strchr", "string"},
	{"strcpy", "string,buffer"},
	{"strcpyA", "string,buffer"},
	{"strcpyW", "string,buffer"},
	{"strcpynA", "string,buffer"},
	{"streadd", "string,buffer"},
	{"strecpy", "string,buffer"},
	{"strerror", "global"},
	{"strlen", "string,buffer"},
	{"strncat", "string,buffer"},
	{"strncpy", "string,buffer"},
	{"strrchr", "string"},
	{"strsignal", "string,global"},
	{"strstr", "string"},
	{"strtok", "string,global,buffer"},
	{"strtol", "string"},
	{"strtoul", "string"},
	{"strtrns", "string,buffer"},
	{"swift_allocObject", "swift.memory"},
	{"swift_atomicCompareExchange", "swift.atom"},
	{"swift_atomicFetchAdd", "swift.atom"},
	{"swift_atomicFetchSub", "swift.atom"},
	{"swift_atomicLoad", "swift.atom"},
	{"swift_atomicStore", "swift.atom"},
	{"swift_bridgeFromObjectiveC", "swift.bridge"},
	{"swift_bridgeNSStringToString", "swift.string"},
	{"swift_bridgeObjectRelease", "swift.bridge,swift.refcount"},
	{"swift_bridgeObjectRetain", "swift.bridge,swift.refcount"},
	{"swift_bridgeToObjectiveC", "swift.bridge"},
	{"swift_bufferAllocate", "swift.memory"},
	{"swift_bufferDeallocate", "swift.memory"},
	{"swift_bufferDestroy", "swift.memory"},
	{"swift_bufferHeaderInit", "swift.memory"},
	{"swift_bufferInitialize", "swift.memory"},
	{"swift_conformsToProtocol", "swift.misc"},
	{"swift_convertCStringToString", "swift.string"},
	{"swift_convertNSStringToString", "swift.string"},
	{"swift_convertStringToCString", "swift.string"},
	{"swift_convertStringToNSString", "swift.string"},
	{"swift_currentContext", "swift.misc"},
	{"swift_deallocObject", "swift.memory"},
	{"swift_deallocateAssociatedObject", "swift.misc"},
	{"swift_dynamicCast", "swift.dyncast"},
	{"swift_dynamicCastClass", "swift.dyncast"},
	{"swift_dynamicCastClassUnconditional", "swift.dyncast"},
	{"swift_dynamicCastMetatype", "swift.dyncast"},
	{"swift_dynamicCastMetatypeUnconditional", "swift.dyncast"},
	{"swift_dynamicCastObjCClass", "swift.dyncast"},
	{"swift_dynamicCastObjCClassUnconditional", "swift.dyncast"},
	{"swift_errorCatch", "swift.error"},
	{"swift_errorRelease", "swift.error"},
	{"swift_errorRetain", "swift.error"},
	{"swift_errorThrow", "swift.error"},
	{"swift_getAssociatedObject", "swift.misc"},
	{"swift_getAssociatedTypeWitness", "swift.proto,swift.types"},
	{"swift_getClass", "swift.types"},
	{"swift_getEnclosingContext", "swift.misc"},
	{"swift_getErrorMetadata", "swift.error"},
	{"swift_getErrorType", "swift.error"},
	{"swift_getFieldAt", "swift.misc"},
	{"swift_getGenericMetadata", "swift.dyncast"},
	{"swift_getGenericWitnessTable", "swift.proto,swift.types,swift.dyncast"},
	{"swift_getProtocolConformance", "swift.proto"},
	{"swift_getStringLength", "swift.string"},
	{"swift_getSuperclass", "swift.types"},
	{"swift_getSuperclassTypeMetadata", "swift.types"},
	{"swift_getTypeByMangledName", "swift.types"},
	{"swift_getTypeByMangledNameInContext", "swift.types"},
	{"swift_getTypeMetadata", "swift.types"},
	{"swift_getTypeMetadata2", "swift.types"},
	{"swift_getTypeMetadata3", "swift.types"},
	{"swift_getWitnessTable", "swift.proto,swift.types"},
	{"swift_isClassOrObjCExistentialType", "swift.dyncast"},
	{"swift_isError", "swift.error"},
	{"swift_isStringEmpty", "swift.string"},
	{"swift_keyPathAllocate", "swift.keypath"},
	{"swift_keyPathCopy", "swift.keypath"},
	{"swift_keyPathCreate", "swift.keypath"},
	{"swift_keyPathRelease", "swift.keypath"},
	{"swift_keyPathRetain", "swift.keypath"},
	{"swift_objc_allocateClassPair", "swift.bridge"},
	{"swift_objc_autorelease", "swift.bridge"},
	{"swift_objc_getClass", "swift.bridge"},
	{"swift_objc_getProtocol", "swift.bridge"},
	{"swift_objc_getSelector", "swift.bridge"},
	{"swift_objc_registerClassPair", "swift.bridge"},
	{"swift_objectForKey", "swift.misc"},
	{"swift_once", "swift.misc"},
	{"swift_protocolRequiresWitnessTable", "swift.proto"},
	{"swift_reflectionMetadataForClass", "swift.reflection"},
	{"swift_reflectionMetadataForObject", "swift.reflection"},
	{"swift_reflectionMirror_create", "swift.reflection"},
	{"swift_reflectionMirror_destroy", "swift.reflection"},
	{"swift_release", "swift.refcount"},
	{"swift_release_n", "swift.refcount"},
	{"swift_retain", "swift.refcount"},
	{"swift_retainCount", "swift.refcount"},
	{"swift_retain_n", "swift.refcount"},
	{"swift_setAssociatedObject", "swift.misc"},
	{"swift_setObjectForKey", "swift.misc"},
	{"swift_slowAlloc", "swift.memory"},
	{"swift_slowAllocArray", "swift.memory"},
	{"swift_slowDealloc", "swift.memory"},
	{"swift_strlen", "swift.string"},
	{"swift_task_create", "swift.task"},
	{"swift_task_detach", "swift.task"},
	{"swift_task_future_create", "swift.task"},
	{"swift_task_future_wait", "swift.task"},
	{"swift_task_group_add", "swift.task"},
	{"swift_task_group_create", "swift.task"},
	{"swift_task_group_wait", "swift.task"},
	{"swift_task_isCancelled", "swift.task"},
	{"swift_task_resume", "swift.task"},
	{"swift_task_suspend", "swift.task"},
	{"swift_unknownObjectRelease", "swift.refcount"},
	{"swift_unownedRelease", "swift.refcount"},
	{"swift_unownedRetain", "swift.refcount"},
	{"swprintf", "buffer"},
	{"swscanf", "buffer"},
	{"system", "exec"},
	{"telldir", "dir"},
	{"tempnam", "file,buffer"},
	{"time", "time"},
	{"tmpnam", "global,buffer"},
	{"trunc", "math"},
	{"ttyname", "console,global"},
	{"ttyslot", "console,global"},
	{"twalk", "global"},
	{"unlink", "file"},
	{"unsetenv", "environment,global"},
	{"usleep", "time"},
	{"utime", "time"},
	{"utmpname", "global"},
	{"vfscanf", "format,buffer"},
	{"vfwscanf", "format,buffer"},
	{"vscanf", "format,buffer"},
	{"vsnprintf", "buffer"},
	{"vsprintf", "buffer"},
	{"vsscanf", "format,buffer"},
	{"vswprintf", "buffer"},
	{"vswscanf", "format,buffer"},
	{"vwscanf", "format,buffer"},
	{"wcpcpy", "string,buffer"},
	{"wcpncpy", "string,buffer"},
	{"wcscat", "buffer"},
	{"wcscpy", "buffer"},
	{"wcslen", "buffer"},
	{"wcsncat", "buffer"},
	{"wcsncpy", "buffer"},
	{"wcstok", "buffer"},
	{"wctomb", "string,global"},
	{"wmemcpy", "buffer"},
	{"wnsprintf", "buffer"},
	{"wnsprintfA", "buffer"},
	{"wnsprintfW", "buffer"},
	{"write", "io"},
	{"writev", "io"},
	{"wscanf", "buffer"},
	{"wsprintf", "buffer"},
	{"wsprintfA", "buffer"},
	{"wsprintfW", "buffer"},
	{"wvnsprintf", "buffer"},
	{"wvnsprintfA", "buffer"},
	{"wvnsprintfW", "buffer"},
	{"wvsprintf", "buffer"},
	{"wvsprintfA", "buffer"},
	{"wvsprintfW", "buffer"},
  {NULL, NULL}
};
typedef int (*GperfForeachCallback)(void *user, const char *k, const char *v);
int gperf_symclass_foreach(GperfForeachCallback cb, void *user) {
  int i = 0; while (kvs[i].name) {
  cb (user, kvs[i].name, kvs[i].value);
  i++;}
  return 0;
}
const char *gperf_symclass_get(const char *s) {
  int i = 0; while (kvs[i].name) {
  if (!strcmp (s, kvs[i].name)) return kvs[i].value;
  i++;}
  return NULL;
}
#define sdb_hash_c_symclass(x,y) gperf_symclass_hash(x)
const unsigned int gperf_symclass_hash(const char *s) {
  int sum = strlen (s);
  while (*s) { sum += *s; s++; }
  return sum;
}
struct {const char *name;void *get;void *hash;void *foreach;} gperf_symclass = {
  .name = "symclass",
  .get = &gperf_symclass_get,
  .hash = &gperf_symclass_hash,
  .foreach = &gperf_symclass_foreach
};

#if MAIN
int main () {
	const char *s = ((char*(*)(char*))gperf_symclass.get)("foo");
	printf ("%s\n", s);
}
#endif
