706 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			706 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* $NetBSD: hash.c,v 1.4 2010/02/12 10:18:56 roy Exp $ */
 | |
| /* DO NOT EDIT
 | |
|  * Automatically generated from term.h */
 | |
| 
 | |
| #if HAVE_NBTOOL_CONFIG_H
 | |
| #include "nbtool_config.h"
 | |
| #endif
 | |
| 
 | |
| #include <sys/cdefs.h>
 | |
| __RCSID("$NetBSD: hash.c,v 1.4 2010/02/12 10:18:56 roy Exp $");
 | |
| 
 | |
| #include <stdint.h>
 | |
| #include <stdlib.h>
 | |
| #include <string.h>
 | |
| #include <term_private.h>
 | |
| #include <term.h>
 | |
| 
 | |
| static const char _ti_flagids[][6] = {
 | |
| 	"bw",
 | |
| 	"am",
 | |
| 	"bce",
 | |
| 	"ccc",
 | |
| 	"xhp",
 | |
| 	"xhpa",
 | |
| 	"cpix",
 | |
| 	"crxm",
 | |
| 	"xt",
 | |
| 	"xenl",
 | |
| 	"eo",
 | |
| 	"gn",
 | |
| 	"hc",
 | |
| 	"chts",
 | |
| 	"km",
 | |
| 	"daisy",
 | |
| 	"hs",
 | |
| 	"hls",
 | |
| 	"in",
 | |
| 	"lpix",
 | |
| 	"da",
 | |
| 	"db",
 | |
| 	"mir",
 | |
| 	"msgr",
 | |
| 	"nxon",
 | |
| 	"xsb",
 | |
| 	"npc",
 | |
| 	"ndscr",
 | |
| 	"nrrmc",
 | |
| 	"os",
 | |
| 	"mc5i",
 | |
| 	"xvpa",
 | |
| 	"sam",
 | |
| 	"eslok",
 | |
| 	"hz",
 | |
| 	"ul",
 | |
| 	"xon",
 | |
| };
 | |
| 
 | |
| #include <stdlib.h>
 | |
| 
 | |
| static uint32_t
 | |
| _ti_flaghash(const void * __restrict key, size_t keylen)
 | |
| {
 | |
| 	static const uint8_t g[75] = {
 | |
| 	    0x19, 0x08, 0x16, 0x00, 0x00, 0x1e, 0x07, 0x00, 0x1d, 0x00,
 | |
| 	    0x17, 0x00, 0x0a, 0x17, 0x08, 0x09, 0x11, 0x00, 0x00, 0x0a,
 | |
| 	    0x00, 0x13, 0x1a, 0x0f, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00,
 | |
| 	    0x12, 0x0a, 0x00, 0x11, 0x10, 0x09, 0x00, 0x00, 0x00, 0x1b,
 | |
| 	    0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x00,
 | |
| 	    0x00, 0x0d, 0x00, 0x00, 0x04, 0x16, 0x09, 0x00, 0x1a, 0x00,
 | |
| 	    0x00, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
 | |
| 	    0x00, 0x1c, 0x05, 0x00, 0x00,
 | |
| 	};
 | |
| 	uint32_t h[3];
 | |
| 
 | |
| 	mi_vector_hash(key, keylen, 0xd36b2625U, h);
 | |
| 	return (g[h[0] % 75] + g[h[1] % 75]) % 37;
 | |
| }
 | |
| 
 | |
| const char *
 | |
| _ti_flagid(ssize_t idx)
 | |
| {
 | |
| 
 | |
| 	if ((size_t)idx > __arraycount(_ti_flagids))
 | |
| 		return NULL;
 | |
| 	return _ti_flagids[idx];
 | |
| }
 | |
| 
 | |
| ssize_t
 | |
| _ti_flagindex(const char *key)
 | |
| {
 | |
| 	uint32_t idx;
 | |
| 
 | |
| 	idx = _ti_flaghash((const unsigned char *)key, strlen(key));
 | |
| 	if (idx > __arraycount(_ti_flagids) ||
 | |
| 	    strcmp(key, _ti_flagids[idx]) != 0)
 | |
| 		return -1;
 | |
| 	return idx;
 | |
| }
 | |
| 
 | |
| static const char _ti_numids[][7] = {
 | |
| 	"bitwin",
 | |
| 	"bitype",
 | |
| 	"bufsz",
 | |
| 	"btns",
 | |
| 	"cols",
 | |
| 	"spinh",
 | |
| 	"spinv",
 | |
| 	"it",
 | |
| 	"lh",
 | |
| 	"lw",
 | |
| 	"lines",
 | |
| 	"lm",
 | |
| 	"ma",
 | |
| 	"xmc",
 | |
| 	"colors",
 | |
| 	"maddr",
 | |
| 	"mjump",
 | |
| 	"pairs",
 | |
| 	"wnum",
 | |
| 	"mcs",
 | |
| 	"mls",
 | |
| 	"ncv",
 | |
| 	"nlab",
 | |
| 	"npins",
 | |
| 	"orc",
 | |
| 	"orl",
 | |
| 	"orhi",
 | |
| 	"orvi",
 | |
| 	"pb",
 | |
| 	"cps",
 | |
| 	"vt",
 | |
| 	"widcs",
 | |
| 	"wsl",
 | |
| };
 | |
| 
 | |
| #include <stdlib.h>
 | |
| 
 | |
| static uint32_t
 | |
| _ti_numhash(const void * __restrict key, size_t keylen)
 | |
| {
 | |
| 	static const uint8_t g[67] = {
 | |
| 	    0x04, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00,
 | |
| 	    0x19, 0x00, 0x0d, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00,
 | |
| 	    0x0b, 0x15, 0x1d, 0x14, 0x00, 0x01, 0x13, 0x1b, 0x14, 0x00,
 | |
| 	    0x19, 0x00, 0x00, 0x02, 0x14, 0x1a, 0x12, 0x00, 0x00, 0x00,
 | |
| 	    0x16, 0x05, 0x00, 0x12, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00,
 | |
| 	    0x19, 0x00, 0x20, 0x00, 0x00, 0x10, 0x17, 0x00, 0x00, 0x0f,
 | |
| 	    0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
 | |
| 	};
 | |
| 	uint32_t h[3];
 | |
| 
 | |
| 	mi_vector_hash(key, keylen, 0x50a11f58U, h);
 | |
| 	return (g[h[0] % 67] + g[h[1] % 67]) % 33;
 | |
| }
 | |
| 
 | |
| const char *
 | |
| _ti_numid(ssize_t idx)
 | |
| {
 | |
| 
 | |
| 	if ((size_t)idx > __arraycount(_ti_numids))
 | |
| 		return NULL;
 | |
| 	return _ti_numids[idx];
 | |
| }
 | |
| 
 | |
| ssize_t
 | |
| _ti_numindex(const char *key)
 | |
| {
 | |
| 	uint32_t idx;
 | |
| 
 | |
| 	idx = _ti_numhash((const unsigned char *)key, strlen(key));
 | |
| 	if (idx > __arraycount(_ti_numids) ||
 | |
| 	    strcmp(key, _ti_numids[idx]) != 0)
 | |
| 		return -1;
 | |
| 	return idx;
 | |
| }
 | |
| 
 | |
| static const char _ti_strids[][9] = {
 | |
| 	"acsc",
 | |
| 	"scesa",
 | |
| 	"cbt",
 | |
| 	"bel",
 | |
| 	"bicr",
 | |
| 	"binel",
 | |
| 	"birep",
 | |
| 	"cr",
 | |
| 	"cpi",
 | |
| 	"lpi",
 | |
| 	"chr",
 | |
| 	"cvr",
 | |
| 	"csr",
 | |
| 	"rmp",
 | |
| 	"csnm",
 | |
| 	"tbc",
 | |
| 	"mgc",
 | |
| 	"clear",
 | |
| 	"el1",
 | |
| 	"el",
 | |
| 	"ed",
 | |
| 	"csin",
 | |
| 	"colornm",
 | |
| 	"hpa",
 | |
| 	"cmdch",
 | |
| 	"cwin",
 | |
| 	"cup",
 | |
| 	"cud1",
 | |
| 	"home",
 | |
| 	"civis",
 | |
| 	"cub1",
 | |
| 	"mrcup",
 | |
| 	"cnorm",
 | |
| 	"cuf1",
 | |
| 	"ll",
 | |
| 	"cuu1",
 | |
| 	"cvvis",
 | |
| 	"defbi",
 | |
| 	"defc",
 | |
| 	"dch1",
 | |
| 	"dl1",
 | |
| 	"devt",
 | |
| 	"dial",
 | |
| 	"dsl",
 | |
| 	"dclk",
 | |
| 	"dispc",
 | |
| 	"hd",
 | |
| 	"enacs",
 | |
| 	"endbi",
 | |
| 	"smacs",
 | |
| 	"smam",
 | |
| 	"blink",
 | |
| 	"bold",
 | |
| 	"smcup",
 | |
| 	"smdc",
 | |
| 	"dim",
 | |
| 	"swidm",
 | |
| 	"sdrfq",
 | |
| 	"ehhlm",
 | |
| 	"smir",
 | |
| 	"sitm",
 | |
| 	"elhlm",
 | |
| 	"slm",
 | |
| 	"elohlm",
 | |
| 	"smicm",
 | |
| 	"snlq",
 | |
| 	"snrmq",
 | |
| 	"smpch",
 | |
| 	"prot",
 | |
| 	"rev",
 | |
| 	"erhlm",
 | |
| 	"smsc",
 | |
| 	"invis",
 | |
| 	"sshm",
 | |
| 	"smso",
 | |
| 	"ssubm",
 | |
| 	"ssupm",
 | |
| 	"ethlm",
 | |
| 	"smul",
 | |
| 	"sum",
 | |
| 	"evhlm",
 | |
| 	"smxon",
 | |
| 	"ech",
 | |
| 	"rmacs",
 | |
| 	"rmam",
 | |
| 	"sgr0",
 | |
| 	"rmcup",
 | |
| 	"rmdc",
 | |
| 	"rwidm",
 | |
| 	"rmir",
 | |
| 	"ritm",
 | |
| 	"rlm",
 | |
| 	"rmicm",
 | |
| 	"rmpch",
 | |
| 	"rmsc",
 | |
| 	"rshm",
 | |
| 	"rmso",
 | |
| 	"rsubm",
 | |
| 	"rsupm",
 | |
| 	"rmul",
 | |
| 	"rum",
 | |
| 	"rmxon",
 | |
| 	"pause",
 | |
| 	"hook",
 | |
| 	"flash",
 | |
| 	"ff",
 | |
| 	"fsl",
 | |
| 	"getm",
 | |
| 	"wingo",
 | |
| 	"hup",
 | |
| 	"is1",
 | |
| 	"is2",
 | |
| 	"is3",
 | |
| 	"if",
 | |
| 	"iprog",
 | |
| 	"initc",
 | |
| 	"initp",
 | |
| 	"ich1",
 | |
| 	"il1",
 | |
| 	"ip",
 | |
| 	"ka1",
 | |
| 	"ka3",
 | |
| 	"kb2",
 | |
| 	"kbs",
 | |
| 	"kbeg",
 | |
| 	"kcbt",
 | |
| 	"kc1",
 | |
| 	"kc3",
 | |
| 	"kcan",
 | |
| 	"ktbc",
 | |
| 	"kclr",
 | |
| 	"kclo",
 | |
| 	"kcmd",
 | |
| 	"kcpy",
 | |
| 	"kcrt",
 | |
| 	"kctab",
 | |
| 	"kdch1",
 | |
| 	"kdl1",
 | |
| 	"kcud1",
 | |
| 	"krmir",
 | |
| 	"kend",
 | |
| 	"kent",
 | |
| 	"kel",
 | |
| 	"ked",
 | |
| 	"kext",
 | |
| 	"kf0",
 | |
| 	"kf1",
 | |
| 	"kf2",
 | |
| 	"kf3",
 | |
| 	"kf4",
 | |
| 	"kf5",
 | |
| 	"kf6",
 | |
| 	"kf7",
 | |
| 	"kf8",
 | |
| 	"kf9",
 | |
| 	"kf10",
 | |
| 	"kf11",
 | |
| 	"kf12",
 | |
| 	"kf13",
 | |
| 	"kf14",
 | |
| 	"kf15",
 | |
| 	"kf16",
 | |
| 	"kf17",
 | |
| 	"kf18",
 | |
| 	"kf19",
 | |
| 	"kf20",
 | |
| 	"kf21",
 | |
| 	"kf22",
 | |
| 	"kf23",
 | |
| 	"kf24",
 | |
| 	"kf25",
 | |
| 	"kf26",
 | |
| 	"kf27",
 | |
| 	"kf28",
 | |
| 	"kf29",
 | |
| 	"kf30",
 | |
| 	"kf31",
 | |
| 	"kf32",
 | |
| 	"kf33",
 | |
| 	"kf34",
 | |
| 	"kf35",
 | |
| 	"kf36",
 | |
| 	"kf37",
 | |
| 	"kf38",
 | |
| 	"kf39",
 | |
| 	"kf40",
 | |
| 	"kf41",
 | |
| 	"kf42",
 | |
| 	"kf43",
 | |
| 	"kf44",
 | |
| 	"kf45",
 | |
| 	"kf46",
 | |
| 	"kf47",
 | |
| 	"kf48",
 | |
| 	"kf49",
 | |
| 	"kf50",
 | |
| 	"kf51",
 | |
| 	"kf52",
 | |
| 	"kf53",
 | |
| 	"kf54",
 | |
| 	"kf55",
 | |
| 	"kf56",
 | |
| 	"kf57",
 | |
| 	"kf58",
 | |
| 	"kf59",
 | |
| 	"kf60",
 | |
| 	"kf61",
 | |
| 	"kf62",
 | |
| 	"kf63",
 | |
| 	"kfnd",
 | |
| 	"khlp",
 | |
| 	"khome",
 | |
| 	"kich1",
 | |
| 	"kil1",
 | |
| 	"kcub1",
 | |
| 	"kll",
 | |
| 	"kmrk",
 | |
| 	"kmsg",
 | |
| 	"kmous",
 | |
| 	"kmov",
 | |
| 	"knxt",
 | |
| 	"knp",
 | |
| 	"kopn",
 | |
| 	"kopt",
 | |
| 	"kpp",
 | |
| 	"kprv",
 | |
| 	"kprt",
 | |
| 	"krdo",
 | |
| 	"kref",
 | |
| 	"krfr",
 | |
| 	"krpl",
 | |
| 	"krst",
 | |
| 	"kres",
 | |
| 	"kcuf1",
 | |
| 	"ksav",
 | |
| 	"kBEG",
 | |
| 	"kCAN",
 | |
| 	"kCMD",
 | |
| 	"kCPY",
 | |
| 	"kCRT",
 | |
| 	"kDC",
 | |
| 	"kDL",
 | |
| 	"kslt",
 | |
| 	"kEND",
 | |
| 	"kEOL",
 | |
| 	"kEXT",
 | |
| 	"kind",
 | |
| 	"kFND",
 | |
| 	"kHLP",
 | |
| 	"kHOM",
 | |
| 	"kIC",
 | |
| 	"kLFT",
 | |
| 	"kMSG",
 | |
| 	"kMOV",
 | |
| 	"kNXT",
 | |
| 	"kOPT",
 | |
| 	"kPRV",
 | |
| 	"kPRT",
 | |
| 	"kri",
 | |
| 	"kRDO",
 | |
| 	"kRPL",
 | |
| 	"kRIT",
 | |
| 	"kRES",
 | |
| 	"kSAV",
 | |
| 	"kSPD",
 | |
| 	"khts",
 | |
| 	"kUND",
 | |
| 	"kspd",
 | |
| 	"kund",
 | |
| 	"kcuu1",
 | |
| 	"rmkx",
 | |
| 	"smkx",
 | |
| 	"lf0",
 | |
| 	"lf1",
 | |
| 	"lf2",
 | |
| 	"lf3",
 | |
| 	"lf4",
 | |
| 	"lf5",
 | |
| 	"lf6",
 | |
| 	"lf7",
 | |
| 	"lf8",
 | |
| 	"lf9",
 | |
| 	"lf10",
 | |
| 	"fln",
 | |
| 	"rmln",
 | |
| 	"smln",
 | |
| 	"rmm",
 | |
| 	"smm",
 | |
| 	"mhpa",
 | |
| 	"mcud1",
 | |
| 	"mcub1",
 | |
| 	"mcuf1",
 | |
| 	"mvpa",
 | |
| 	"mcuu1",
 | |
| 	"minfo",
 | |
| 	"nel",
 | |
| 	"porder",
 | |
| 	"oc",
 | |
| 	"op",
 | |
| 	"pad",
 | |
| 	"dch",
 | |
| 	"dl",
 | |
| 	"cud",
 | |
| 	"mcud",
 | |
| 	"ich",
 | |
| 	"indn",
 | |
| 	"il",
 | |
| 	"cub",
 | |
| 	"mcub",
 | |
| 	"cuf",
 | |
| 	"mcuf",
 | |
| 	"rin",
 | |
| 	"cuu",
 | |
| 	"mcuu",
 | |
| 	"pctrm",
 | |
| 	"pfkey",
 | |
| 	"pfloc",
 | |
| 	"pfxl",
 | |
| 	"pfx",
 | |
| 	"pln",
 | |
| 	"mc0",
 | |
| 	"mc5p",
 | |
| 	"mc4",
 | |
| 	"mc5",
 | |
| 	"pulse",
 | |
| 	"qdial",
 | |
| 	"rmclk",
 | |
| 	"rep",
 | |
| 	"rfi",
 | |
| 	"reqmp",
 | |
| 	"rs1",
 | |
| 	"rs2",
 | |
| 	"rs3",
 | |
| 	"rf",
 | |
| 	"rc",
 | |
| 	"vpa",
 | |
| 	"sc",
 | |
| 	"scesc",
 | |
| 	"ind",
 | |
| 	"ri",
 | |
| 	"scs",
 | |
| 	"s0ds",
 | |
| 	"s1ds",
 | |
| 	"s2ds",
 | |
| 	"s3ds",
 | |
| 	"sgr1",
 | |
| 	"setab",
 | |
| 	"setaf",
 | |
| 	"sgr",
 | |
| 	"setb",
 | |
| 	"smgb",
 | |
| 	"smgbp",
 | |
| 	"sclk",
 | |
| 	"setcolor",
 | |
| 	"scp",
 | |
| 	"setf",
 | |
| 	"smgl",
 | |
| 	"smglp",
 | |
| 	"smglr",
 | |
| 	"slines",
 | |
| 	"slength",
 | |
| 	"smgr",
 | |
| 	"smgrp",
 | |
| 	"hts",
 | |
| 	"smgtb",
 | |
| 	"smgt",
 | |
| 	"smgtp",
 | |
| 	"wind",
 | |
| 	"sbim",
 | |
| 	"scsd",
 | |
| 	"rbim",
 | |
| 	"rcsd",
 | |
| 	"subcs",
 | |
| 	"supcs",
 | |
| 	"ht",
 | |
| 	"docr",
 | |
| 	"tsl",
 | |
| 	"tone",
 | |
| 	"u0",
 | |
| 	"u1",
 | |
| 	"u2",
 | |
| 	"u3",
 | |
| 	"u4",
 | |
| 	"u5",
 | |
| 	"u6",
 | |
| 	"u7",
 | |
| 	"u8",
 | |
| 	"u9",
 | |
| 	"uc",
 | |
| 	"hu",
 | |
| 	"wait",
 | |
| 	"xoffc",
 | |
| 	"xonc",
 | |
| 	"zerom",
 | |
| };
 | |
| 
 | |
| #include <stdlib.h>
 | |
| 
 | |
| static uint32_t
 | |
| _ti_strhash(const void * __restrict key, size_t keylen)
 | |
| {
 | |
| 	static const uint16_t g[789] = {
 | |
| 	    0x0000, 0x00cd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0094,
 | |
| 	    0x0000, 0x011b, 0x00a0, 0x0094, 0x002f, 0x00aa, 0x0026, 0x004b,
 | |
| 	    0x0000, 0x0163, 0x0171, 0x0000, 0x0000, 0x0064, 0x0019, 0x0000,
 | |
| 	    0x009b, 0x0113, 0x00ed, 0x007e, 0x0000, 0x0000, 0x0000, 0x002d,
 | |
| 	    0x0000, 0x00f4, 0x0000, 0x00cc, 0x00df, 0x0170, 0x0000, 0x0000,
 | |
| 	    0x0179, 0x0018, 0x0000, 0x013b, 0x0000, 0x0028, 0x0000, 0x0000,
 | |
| 	    0x00ef, 0x0000, 0x0137, 0x0061, 0x0000, 0x0000, 0x00ce, 0x00df,
 | |
| 	    0x00f0, 0x001f, 0x0074, 0x0000, 0x0000, 0x008f, 0x0069, 0x0000,
 | |
| 	    0x0134, 0x0000, 0x00ac, 0x0000, 0x0000, 0x0100, 0x0000, 0x0000,
 | |
| 	    0x0012, 0x0027, 0x0000, 0x0110, 0x0000, 0x0000, 0x0000, 0x0061,
 | |
| 	    0x00a7, 0x0000, 0x0061, 0x0000, 0x0000, 0x0096, 0x0000, 0x00e5,
 | |
| 	    0x0000, 0x00d1, 0x0017, 0x0000, 0x0000, 0x00bc, 0x00d6, 0x0000,
 | |
| 	    0x0182, 0x00d7, 0x012d, 0x0000, 0x00e2, 0x00b9, 0x0159, 0x0000,
 | |
| 	    0x001c, 0x00cc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 | |
| 	    0x0000, 0x0031, 0x0106, 0x0087, 0x0157, 0x001d, 0x011a, 0x0119,
 | |
| 	    0x0000, 0x0000, 0x0000, 0x012b, 0x0000, 0x011b, 0x0000, 0x0154,
 | |
| 	    0x0000, 0x00ee, 0x00ad, 0x00f8, 0x0066, 0x0000, 0x0010, 0x0000,
 | |
| 	    0x0064, 0x000e, 0x0052, 0x0000, 0x016a, 0x0000, 0x0148, 0x0000,
 | |
| 	    0x0000, 0x0000, 0x00a4, 0x0000, 0x0000, 0x016d, 0x000b, 0x0000,
 | |
| 	    0x0000, 0x0000, 0x0000, 0x0058, 0x0091, 0x0000, 0x0022, 0x0000,
 | |
| 	    0x0000, 0x0000, 0x0000, 0x0000, 0x0026, 0x011a, 0x00a4, 0x013a,
 | |
| 	    0x0000, 0x0000, 0x0000, 0x0000, 0x0086, 0x0000, 0x00c0, 0x011f,
 | |
| 	    0x0000, 0x0093, 0x0000, 0x0000, 0x0042, 0x0174, 0x0101, 0x0000,
 | |
| 	    0x0065, 0x0086, 0x0000, 0x0000, 0x00e8, 0x0022, 0x000d, 0x0000,
 | |
| 	    0x008e, 0x000d, 0x0000, 0x008b, 0x0000, 0x0000, 0x0000, 0x0000,
 | |
| 	    0x0022, 0x0000, 0x011d, 0x0000, 0x0000, 0x0000, 0x010e, 0x0000,
 | |
| 	    0x0000, 0x0000, 0x0060, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 | |
| 	    0x0014, 0x00b3, 0x0000, 0x002e, 0x0051, 0x0000, 0x0102, 0x008e,
 | |
| 	    0x012b, 0x0145, 0x004c, 0x0000, 0x001e, 0x00fa, 0x0000, 0x0000,
 | |
| 	    0x0000, 0x0000, 0x00aa, 0x0000, 0x0000, 0x0000, 0x0103, 0x00a4,
 | |
| 	    0x003e, 0x0000, 0x0114, 0x0028, 0x005e, 0x015d, 0x00e7, 0x0044,
 | |
| 	    0x0000, 0x0000, 0x00c6, 0x008f, 0x0000, 0x00eb, 0x0000, 0x0000,
 | |
| 	    0x0000, 0x0169, 0x0000, 0x0110, 0x0093, 0x0000, 0x012c, 0x0178,
 | |
| 	    0x0000, 0x0000, 0x0024, 0x0000, 0x0000, 0x0000, 0x0000, 0x0158,
 | |
| 	    0x004d, 0x009c, 0x0186, 0x009b, 0x0000, 0x0163, 0x007c, 0x0078,
 | |
| 	    0x0000, 0x0000, 0x0172, 0x00d2, 0x0000, 0x0000, 0x00fc, 0x0000,
 | |
| 	    0x0000, 0x0000, 0x0133, 0x0104, 0x017e, 0x0162, 0x0050, 0x0000,
 | |
| 	    0x0023, 0x00c0, 0x0070, 0x0000, 0x0000, 0x0000, 0x0025, 0x0001,
 | |
| 	    0x0184, 0x0053, 0x0133, 0x0000, 0x0000, 0x0000, 0x0048, 0x0075,
 | |
| 	    0x0000, 0x00b2, 0x0056, 0x002c, 0x0000, 0x011c, 0x0000, 0x0000,
 | |
| 	    0x0000, 0x0000, 0x0000, 0x0166, 0x011b, 0x0000, 0x0039, 0x0020,
 | |
| 	    0x0000, 0x0000, 0x0000, 0x00dc, 0x0048, 0x0000, 0x0076, 0x0169,
 | |
| 	    0x00d7, 0x002a, 0x0032, 0x0013, 0x0153, 0x012f, 0x009c, 0x0041,
 | |
| 	    0x002f, 0x0000, 0x0000, 0x012e, 0x0000, 0x0000, 0x00dd, 0x0000,
 | |
| 	    0x0138, 0x000b, 0x0030, 0x008d, 0x0000, 0x0000, 0x0000, 0x0000,
 | |
| 	    0x0039, 0x017a, 0x00c5, 0x0100, 0x0000, 0x0000, 0x005c, 0x001f,
 | |
| 	    0x0000, 0x0000, 0x0000, 0x0000, 0x0110, 0x003e, 0x00a1, 0x0000,
 | |
| 	    0x0081, 0x0000, 0x0000, 0x0000, 0x00dd, 0x0142, 0x00c1, 0x0000,
 | |
| 	    0x0035, 0x0123, 0x0178, 0x00be, 0x015e, 0x0161, 0x0188, 0x0000,
 | |
| 	    0x0000, 0x0149, 0x0123, 0x0000, 0x0000, 0x0185, 0x0000, 0x0000,
 | |
| 	    0x0000, 0x004e, 0x0163, 0x0077, 0x00fa, 0x0000, 0x007b, 0x0006,
 | |
| 	    0x0101, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0158, 0x00d6,
 | |
| 	    0x00b0, 0x0180, 0x0003, 0x0000, 0x0000, 0x0000, 0x0136, 0x0045,
 | |
| 	    0x017e, 0x0000, 0x0000, 0x0000, 0x0126, 0x0090, 0x011b, 0x0000,
 | |
| 	    0x0000, 0x0000, 0x0000, 0x0000, 0x017b, 0x0000, 0x0053, 0x0000,
 | |
| 	    0x005c, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x007e, 0x014e,
 | |
| 	    0x0035, 0x00ed, 0x0000, 0x00d1, 0x00d8, 0x0142, 0x0168, 0x000a,
 | |
| 	    0x00d0, 0x0000, 0x0000, 0x0000, 0x00d9, 0x0000, 0x0000, 0x0087,
 | |
| 	    0x0000, 0x008a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0112, 0x006c,
 | |
| 	    0x011d, 0x0177, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x001e,
 | |
| 	    0x0177, 0x00c4, 0x0000, 0x0000, 0x0000, 0x0014, 0x00c7, 0x00ae,
 | |
| 	    0x0042, 0x0180, 0x0075, 0x0000, 0x011c, 0x0064, 0x00a3, 0x00bc,
 | |
| 	    0x0001, 0x0000, 0x0000, 0x0016, 0x00c3, 0x00e4, 0x0009, 0x0000,
 | |
| 	    0x0000, 0x006b, 0x013c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 | |
| 	    0x00fa, 0x0000, 0x0000, 0x0000, 0x0117, 0x0000, 0x007c, 0x0060,
 | |
| 	    0x0149, 0x0059, 0x00d4, 0x014e, 0x000a, 0x014f, 0x0000, 0x0000,
 | |
| 	    0x0000, 0x00b6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0121,
 | |
| 	    0x0000, 0x0000, 0x0000, 0x007d, 0x0000, 0x0000, 0x001c, 0x0000,
 | |
| 	    0x0000, 0x00f9, 0x0000, 0x003b, 0x00ea, 0x0000, 0x00ad, 0x0000,
 | |
| 	    0x0000, 0x0000, 0x0155, 0x0000, 0x0141, 0x0000, 0x0000, 0x0000,
 | |
| 	    0x0187, 0x004b, 0x009f, 0x0000, 0x0114, 0x0000, 0x00dd, 0x0000,
 | |
| 	    0x0066, 0x0000, 0x0136, 0x0135, 0x0000, 0x0000, 0x0000, 0x0000,
 | |
| 	    0x0000, 0x001e, 0x0000, 0x0062, 0x0146, 0x0033, 0x0071, 0x0000,
 | |
| 	    0x0000, 0x010d, 0x004a, 0x0133, 0x0000, 0x0000, 0x0076, 0x0111,
 | |
| 	    0x0000, 0x00ba, 0x0000, 0x0000, 0x0000, 0x0038, 0x001d, 0x0158,
 | |
| 	    0x0072, 0x00a3, 0x0000, 0x008c, 0x0008, 0x0000, 0x0000, 0x0000,
 | |
| 	    0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x00ea, 0x0000, 0x003f,
 | |
| 	    0x0000, 0x0000, 0x0000, 0x004c, 0x0000, 0x00f9, 0x0000, 0x0000,
 | |
| 	    0x0000, 0x0147, 0x0182, 0x008f, 0x0156, 0x0000, 0x0000, 0x0000,
 | |
| 	    0x0000, 0x0000, 0x0011, 0x0000, 0x0102, 0x0040, 0x0000, 0x0000,
 | |
| 	    0x0130, 0x0000, 0x0000, 0x0000, 0x0126, 0x0026, 0x0145, 0x0000,
 | |
| 	    0x0000, 0x00ab, 0x0000, 0x0175, 0x0113, 0x0117, 0x010f, 0x000f,
 | |
| 	    0x0000, 0x00e3, 0x012e, 0x0000, 0x0000, 0x00f5, 0x0020, 0x0000,
 | |
| 	    0x0000, 0x00a8, 0x0000, 0x0000, 0x012a, 0x009f, 0x0085, 0x0000,
 | |
| 	    0x00b6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0108,
 | |
| 	    0x00cb, 0x0000, 0x0000, 0x0000, 0x0053, 0x0000, 0x007f, 0x0000,
 | |
| 	    0x008c, 0x0113, 0x0000, 0x0000, 0x0156, 0x0169, 0x0000, 0x0009,
 | |
| 	    0x0000, 0x0073, 0x0000, 0x007e, 0x0000, 0x0000, 0x0000, 0x00eb,
 | |
| 	    0x0000, 0x0153, 0x0084, 0x0000, 0x0000, 0x0148, 0x0000, 0x0000,
 | |
| 	    0x011c, 0x0000, 0x00ec, 0x0000, 0x0000, 0x015a, 0x0000, 0x0000,
 | |
| 	    0x0000, 0x0000, 0x012a, 0x0000, 0x0000, 0x015d, 0x0000, 0x00ae,
 | |
| 	    0x0000, 0x0000, 0x00db, 0x0000, 0x0000, 0x0000, 0x0000, 0x0101,
 | |
| 	    0x0067, 0x0000, 0x010c, 0x0000, 0x0032, 0x0000, 0x0000, 0x0000,
 | |
| 	    0x0000, 0x0000, 0x0167, 0x0000, 0x00e4, 0x0000, 0x00a2, 0x0000,
 | |
| 	    0x0067, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0181, 0x0000,
 | |
| 	    0x015b, 0x0046, 0x0000, 0x0000, 0x0000, 0x00fd, 0x0000, 0x0000,
 | |
| 	    0x00a8, 0x0000, 0x0008, 0x00a6, 0x00b5, 0x0000, 0x0000, 0x0000,
 | |
| 	    0x0000, 0x0000, 0x0000, 0x006b, 0x0000, 0x0000, 0x00b1, 0x00a2,
 | |
| 	    0x0000, 0x0000, 0x0000, 0x0166, 0x0000,
 | |
| 	};
 | |
| 	uint32_t h[3];
 | |
| 
 | |
| 	mi_vector_hash(key, keylen, 0x8e1051e9U, h);
 | |
| 	return (g[h[0] % 789] + g[h[1] % 789]) % 394;
 | |
| }
 | |
| 
 | |
| const char *
 | |
| _ti_strid(ssize_t idx)
 | |
| {
 | |
| 
 | |
| 	if ((size_t)idx > __arraycount(_ti_strids))
 | |
| 		return NULL;
 | |
| 	return _ti_strids[idx];
 | |
| }
 | |
| 
 | |
| ssize_t
 | |
| _ti_strindex(const char *key)
 | |
| {
 | |
| 	uint32_t idx;
 | |
| 
 | |
| 	idx = _ti_strhash((const unsigned char *)key, strlen(key));
 | |
| 	if (idx > __arraycount(_ti_strids) ||
 | |
| 	    strcmp(key, _ti_strids[idx]) != 0)
 | |
| 		return -1;
 | |
| 	return idx;
 | |
| }
 | 
