1 /*
2 ##############################################################################
3 # 	Copyright (c) 2000-2006 All rights reserved
4 # 	Alberto Reggiori <areggiori@webweaving.org>
5 #	Dirk-Willem van Gulik <dirkx@webweaving.org>
6 #
7 # Redistribution and use in source and binary forms, with or without
8 # modification, are permitted provided that the following conditions
9 # are met:
10 #
11 # 1. Redistributions of source code must retain the above copyright
12 #    notice, this list of conditions and the following disclaimer.
13 #
14 # 2. Redistributions in binary form must reproduce the above copyright
15 #    notice, this list of conditions and the following disclaimer in
16 #    the documentation and/or other materials provided with the
17 #    distribution.
18 #
19 # 3. The end-user documentation included with the redistribution,
20 #    if any, must include the following acknowledgment:
21 #       "This product includes software developed by
22 #        Alberto Reggiori <areggiori@webweaving.org> and
23 #        Dirk-Willem van Gulik <dirkx@webweaving.org>."
24 #    Alternately, this acknowledgment may appear in the software itself,
25 #    if and wherever such third-party acknowledgments normally appear.
26 #
27 # 4. All advertising materials mentioning features or use of this software
28 #    must display the following acknowledgement:
29 #    This product includes software developed by the University of
30 #    California, Berkeley and its contributors.
31 #
32 # 5. Neither the name of the University nor the names of its contributors
33 #    may be used to endorse or promote products derived from this software
34 #    without specific prior written permission.
35 #
36 # 6. Products derived from this software may not be called "RDFStore"
37 #    nor may "RDFStore" appear in their names without prior written
38 #    permission.
39 #
40 # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
41 # ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
43 # PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
44 # FOR ANY DIRECT, INDIRECT, INCIDENTAL,
45 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
46 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
47 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
49 # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
50 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
51 # OF THE POSSIBILITY OF SUCH DAMAGE.
52 #
53 # ====================================================================
54 #
55 # This software consists of work developed by Alberto Reggiori and
56 # Dirk-Willem van Gulik. The RDF specific part is based based on public
57 # domain software written at the Stanford University Database Group by
58 # Sergey Melnik. For more information on the RDF API Draft work,
59 # please see <http://www-db.stanford.edu/~melnik/rdf/api.html>
60 # The DBMS TCP/IP server part is based on software originally written
61 # by Dirk-Willem van Gulik for Web Weaving Internet Engineering m/v Enschede,
62 # The Netherlands.
63 #
64 ##############################################################################
65 #
66 # $Id: rdfstore_utf8.c,v 1.7 2006/06/19 10:10:22 areggiori Exp $
67 #
68 */
69 
70 #if !defined(WIN32)
71 #include <sys/param.h>
72 #endif
73 
74 #include <sys/types.h>
75 #include <stdio.h>
76 #include <stdlib.h>
77 #include <errno.h>
78 #include <fcntl.h>
79 #include <strings.h>
80 #include <string.h>
81 
82 
83 #include "rdfstore_utf8.h"
84 #include "rdfstore_log.h"
85 
86 /* a table of number of bytes to skip for speed */
87 static const unsigned char rdfstore_utf8_toskip[] = {
88 	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* ASCII */
89 	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
90 	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* not valid */
91 	2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, /* scripts */
92 	3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, /* others */
93 	4,4,4,4,4,4,4,4,5,5,5,5,6,6,
94         };
95 static const unsigned char rdfstore_utf8_mask[] = {
96 	0, 0x7f, 0x1f, 0x0f, 0x07, 0x03, 0x01
97 	};
98 
99 /*
100 
101  UTF8 encoding rules on 32 bits
102 
103  Code Points		1st Byte  2nd Byte  3rd Byte  4th Byte
104 
105    U+0000..U+007F	00..7F
106    U+0080..U+07FF	C2..DF    80..BF
107    U+0800..U+0FFF	E0        A0..BF    80..BF
108    U+1000..U+CFFF       E1..EC    80..BF    80..BF
109    U+D000..U+D7FF       ED        80..9F    80..BF
110    U+D800..U+DFFF       ******* ill-formed *******
111    U+E000..U+FFFF       EE..EF    80..BF    80..BF
112   U+10000..U+3FFFF	F0        90..BF    80..BF    80..BF
113   U+40000..U+FFFFF	F1..F3    80..BF    80..BF    80..BF
114  U+100000..U+10FFFF	F4        80..8F    80..BF    80..BF
115 
116 */
117 
118 /* convert a given codepoint to its UTF8 encoding; the len of the result is put in len */
rdfstore_utf8_cp_to_utf8(unsigned long c,int * len,unsigned char * outbuff)119 int rdfstore_utf8_cp_to_utf8(
120         unsigned long c,
121         int * len,
122         unsigned char * outbuff
123 	) {
124         if (	(len == NULL ) ||
125 		(outbuff == NULL) )
126 		return -1;
127 
128 	(*len) = 0;
129 
130         if( c < 0x80 ) {
131                 outbuff[(*len)++] = c;
132         } else if( c < 0x800 ) {
133                 outbuff[(*len)++] = 0xc0 | ( c >> 6 );
134                 outbuff[(*len)++] = 0x80 | ( c & 0x3f );
135         } else if( c < 0x10000 ) {
136                 outbuff[(*len)++] = 0xe0 | ( c >> 12 );
137                 outbuff[(*len)++] = 0x80 | ( (c >> 6) & 0x3f );
138                 outbuff[(*len)++] = 0x80 | ( c & 0x3f );
139         } else if( c < 0x200000 ) {
140                 outbuff[(*len)++] = 0xf0 | ( c >> 18 );
141                 outbuff[(*len)++] = 0x80 | ( (c >> 12) & 0x3f );
142                 outbuff[(*len)++] = 0x80 | ( (c >> 6) & 0x3f );
143                 outbuff[(*len)++] = 0x80 | ( c & 0x3f );
144         } else if( c < 0x4000000 ) {
145                 outbuff[(*len)++] = 0xf8 | ( c >> 24 );
146                 outbuff[(*len)++] = 0x80 | ( (c >> 18) & 0x3f );
147                 outbuff[(*len)++] = 0x80 | ( (c >> 12) & 0x3f );
148                 outbuff[(*len)++] = 0x80 | ( (c >> 6) & 0x3f );
149                 outbuff[(*len)++] = 0x80 | ( c & 0x3f );
150         } else if( c < 0x80000000 ) {
151                 outbuff[(*len)++] = 0xfc | ( c >> 30 );
152                 outbuff[(*len)++] = 0x80 | ( (c >> 24) & 0x3f );
153                 outbuff[(*len)++] = 0x80 | ( (c >> 18) & 0x3f );
154                 outbuff[(*len)++] = 0x80 | ( (c >> 12) & 0x3f );
155                 outbuff[(*len)++] = 0x80 | ( (c >> 6) & 0x3f );
156                 outbuff[(*len)++] = 0x80 | ( c & 0x3f );
157         } else {
158         	outbuff[(*len)++] = 0xfe; /* Can't match U+FEFF! */
159         	outbuff[(*len)++] = ( ( (c >> 30) & 0x3f) | 0x80 );
160         	outbuff[(*len)++] = ( ( (c >> 24) & 0x3f) | 0x80 );
161         	outbuff[(*len)++] = ( ( (c >> 18) & 0x3f) | 0x80 );
162         	outbuff[(*len)++] = ( ( (c >> 12) & 0x3f) | 0x80 );
163         	outbuff[(*len)++] = ( ( (c >>  6) & 0x3f) | 0x80 );
164         	outbuff[(*len)++] = ( ( c & 0x3f) | 0x80 );
165 		};
166 
167         return 0;
168 	};
169 
170 /* convert a given UTF8 char to its unicode codepoint; the result is put in cp */
rdfstore_utf8_utf8_to_cp(int inlen,unsigned char * inbuff,unsigned long * cp)171 int rdfstore_utf8_utf8_to_cp(
172         int inlen,
173         unsigned char * inbuff,
174         unsigned long * cp
175 	) {
176         register int i;
177 
178         if ( inlen == 0 )
179 		return -1;
180 
181         (*cp) = inbuff[0] & rdfstore_utf8_mask[inlen];
182 
183         for(i=1; i < inlen; i++) {
184                 if ((inbuff[i] & 0xc0) != 0x80) {
185                         return -1;
186                 }
187                 (*cp) <<= 6;
188                 (*cp) |= inbuff[i] & 0x3f;
189         }
190 
191 	return 0;
192 	};
193 
194 /*
195   check whether a given number of bytes is a valid UTF8 char; if true the number
196   bytes of the utf8 char length is returned in len
197 */
rdfstore_utf8_is_utf8(unsigned char * bytes,int * len)198 int rdfstore_utf8_is_utf8(
199         unsigned char * bytes,
200         int * len
201 	) {
202 	int ll;
203 	unsigned char * p;
204 	unsigned char a;
205 	unsigned long b,c;
206 
207 	p = bytes;
208 	a = *bytes;
209 
210 	(*len)=0;
211 
212 	if ( (unsigned char)a < 0x80 ) {
213 		(*len)=1;
214         	return 1;
215 		};
216 
217 	if ( !(	(a >= 0xc0) &&
218 		(a <= 0xfd) ) )
219 		return 0;
220 
221     	(*len) = rdfstore_utf8_toskip[ (*bytes) ];
222 
223     	if (	((*len) < 2) ||
224 		(! (	((*(bytes+1)) >= 0x80) &&
225 			((*(bytes+1)) <= 0xbf) ) ) )
226         	return 0;
227 
228 	ll = (*len) - 1;
229     	a &= ((*len) >=  7) ? 0x00 : (0x1F >> ((*len)-2));
230     	p++;
231 	for ( 	b = a, c = b;
232 		ll--;
233 		p++, c = b ) {
234         	if (! (	((*p) >= 0x80) &&
235 			((*p) <= 0xbf) ) )
236             		return 0;
237         	b = (b << 6) | ((*p) & 0x3f);
238         	if (b < c)
239             		return 0;
240     		};
241 
242 	c = 	(b  < 0x80) ? 1 :
243 		(b  < 0x800) ? 2 :
244 		(b  < 0x10000) ? 3 :
245 		(b  < 0x200000) ? 4 :
246 		(b  < 0x4000000) ? 5 :
247 		(b  < 0x80000000) ? 6 : 7;
248 
249     	if ( (int)c < (*len) )
250         	return 0;
251 
252 	return 1;
253 	};
254 
255 /*
256    convert an arbitrary bytes string to utf8 case-folded (see http://www.unicode.org/unicode/reports/tr21/#Caseless%20Matching)
257    the output string is stored in outbuff and the length in len
258 */
rdfstore_utf8_string_to_utf8_foldedcase(int insize,unsigned char * in,int * outsize,unsigned char * out)259 int rdfstore_utf8_string_to_utf8_foldedcase(
260         int insize,
261         unsigned char * in,
262         int * outsize,
263         unsigned char * out
264 	) {
265 	register unsigned int i,j,step=0;
266 	unsigned int utf8_size=0;
267         unsigned char utf8_buff[RDFSTORE_UTF8_MAXLEN+1]; /* one utf8 char */
268 	unsigned long cp=0;
269 
270 	/*
271 		the idea here is:
272 			<foreach input byte>
273 				1) convert the input byte/code-point to utf8 if not utf8
274 				2) get the unicode codepoint of the given utf8 char
275 				2) case-fold the char and output it
276 			</endforeach>
277 	*/
278 
279 	(*outsize)=0;
280 
281         for(i=0,j=0; i<insize; i+=step) {
282 		if ( !( rdfstore_utf8_is_utf8( in+i, &utf8_size ) ) ) {
283                 	utf8_size=0;
284 			bzero(utf8_buff,RDFSTORE_UTF8_MAXLEN);
285                 	if ( rdfstore_utf8_cp_to_utf8( (unsigned long)in[i], &utf8_size, utf8_buff) ) {
286 				perror("rdfstore_utf8_string_to_utf8_foldedcase");
287                         	fprintf(stderr,"Cannot convert input codepoint to utf8\n");
288                         	return -1;
289                         	};
290 #ifdef RDFSTORE_DEBUG_UTF8
291 			if(utf8_size>0) {
292 				int j=0;
293 				printf("Got converted to UTF8 char '%c / %02x' as '",in[i],in[i]);
294 				for (j=0; j< utf8_size; j++) {
295 					printf("%02x",utf8_buff[j]);
296 				};
297 				printf("'\n");
298 				};
299 #endif
300 			step=1; /* hop the next input byte */
301 		} else {
302 			bcopy(in+i,utf8_buff,utf8_size); /* copy the input utf8 char in the buff */
303 			step=utf8_size;
304 			};
305 
306 			cp=0;
307 			rdfstore_utf8_utf8_to_cp( utf8_size, utf8_buff, &cp );
308 
309 			/*
310 			The is my *FAT AND UGLY* implementation of the case-folding table
311 			- see http://www.unicode.org/Public/UNIDATA/CaseFolding.txt
312 			It could be even auto-generated via a script
313 			Does full case folding, use the mappings with status C + F + I.
314 			NOTE: please give me an advise how I can map this table in memory efficently in C :)
315 			Of course bleed-perl has these already built in as an hash but
316 			I am much worried about efficency problems here.........
317 			*/
318 			if      ( cp == 0x0041 ) { rdfstore_utf8_cp_to_utf8( 0x0061, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A */
319 			else if ( cp == 0x0042 ) { rdfstore_utf8_cp_to_utf8( 0x0062, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER B */
320 			else if ( cp == 0x0043 ) { rdfstore_utf8_cp_to_utf8( 0x0063, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER C */
321 			else if ( cp == 0x0044 ) { rdfstore_utf8_cp_to_utf8( 0x0064, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER D */
322 			else if ( cp == 0x0045 ) { rdfstore_utf8_cp_to_utf8( 0x0065, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E */
323 			else if ( cp == 0x0046 ) { rdfstore_utf8_cp_to_utf8( 0x0066, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER F */
324 			else if ( cp == 0x0047 ) { rdfstore_utf8_cp_to_utf8( 0x0067, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER G */
325 			else if ( cp == 0x0048 ) { rdfstore_utf8_cp_to_utf8( 0x0068, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER H */
326 			else if ( cp == 0x0049 ) { rdfstore_utf8_cp_to_utf8( 0x0069, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER I */
327 			else if ( cp == 0x004A ) { rdfstore_utf8_cp_to_utf8( 0x006A, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER J */
328 			else if ( cp == 0x004B ) { rdfstore_utf8_cp_to_utf8( 0x006B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER K */
329 			else if ( cp == 0x004C ) { rdfstore_utf8_cp_to_utf8( 0x006C, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER L */
330 			else if ( cp == 0x004D ) { rdfstore_utf8_cp_to_utf8( 0x006D, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER M */
331 			else if ( cp == 0x004E ) { rdfstore_utf8_cp_to_utf8( 0x006E, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER N */
332 			else if ( cp == 0x004F ) { rdfstore_utf8_cp_to_utf8( 0x006F, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O */
333 			else if ( cp == 0x0050 ) { rdfstore_utf8_cp_to_utf8( 0x0070, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER P */
334 			else if ( cp == 0x0051 ) { rdfstore_utf8_cp_to_utf8( 0x0071, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Q */
335 			else if ( cp == 0x0052 ) { rdfstore_utf8_cp_to_utf8( 0x0072, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER R */
336 			else if ( cp == 0x0053 ) { rdfstore_utf8_cp_to_utf8( 0x0073, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER S */
337 			else if ( cp == 0x0054 ) { rdfstore_utf8_cp_to_utf8( 0x0074, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER T */
338 			else if ( cp == 0x0055 ) { rdfstore_utf8_cp_to_utf8( 0x0075, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U */
339 			else if ( cp == 0x0056 ) { rdfstore_utf8_cp_to_utf8( 0x0076, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER V */
340 			else if ( cp == 0x0057 ) { rdfstore_utf8_cp_to_utf8( 0x0077, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER W */
341 			else if ( cp == 0x0058 ) { rdfstore_utf8_cp_to_utf8( 0x0078, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER X */
342 			else if ( cp == 0x0059 ) { rdfstore_utf8_cp_to_utf8( 0x0079, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Y */
343 			else if ( cp == 0x005A ) { rdfstore_utf8_cp_to_utf8( 0x007A, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Z */
344 			else if ( cp == 0x00B5 ) { rdfstore_utf8_cp_to_utf8( 0x03BC, &utf8_size, utf8_buff ); } /*  MICRO SIGN */
345 			else if ( cp == 0x00C0 ) { rdfstore_utf8_cp_to_utf8( 0x00E0, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH GRAVE */
346 			else if ( cp == 0x00C1 ) { rdfstore_utf8_cp_to_utf8( 0x00E1, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH ACUTE */
347 			else if ( cp == 0x00C2 ) { rdfstore_utf8_cp_to_utf8( 0x00E2, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH CIRCUMFLEX */
348 			else if ( cp == 0x00C3 ) { rdfstore_utf8_cp_to_utf8( 0x00E3, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH TILDE */
349 			else if ( cp == 0x00C4 ) { rdfstore_utf8_cp_to_utf8( 0x00E4, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH DIAERESIS */
350 			else if ( cp == 0x00C5 ) { rdfstore_utf8_cp_to_utf8( 0x00E5, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH RING ABOVE */
351 			else if ( cp == 0x00C6 ) { rdfstore_utf8_cp_to_utf8( 0x00E6, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER AE */
352 			else if ( cp == 0x00C7 ) { rdfstore_utf8_cp_to_utf8( 0x00E7, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER C WITH CEDILLA */
353 			else if ( cp == 0x00C8 ) { rdfstore_utf8_cp_to_utf8( 0x00E8, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH GRAVE */
354 			else if ( cp == 0x00C9 ) { rdfstore_utf8_cp_to_utf8( 0x00E9, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH ACUTE */
355 			else if ( cp == 0x00CA ) { rdfstore_utf8_cp_to_utf8( 0x00EA, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH CIRCUMFLEX */
356 			else if ( cp == 0x00CB ) { rdfstore_utf8_cp_to_utf8( 0x00EB, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH DIAERESIS */
357 			else if ( cp == 0x00CC ) { rdfstore_utf8_cp_to_utf8( 0x00EC, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER I WITH GRAVE */
358 			else if ( cp == 0x00CD ) { rdfstore_utf8_cp_to_utf8( 0x00ED, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER I WITH ACUTE */
359 			else if ( cp == 0x00CE ) { rdfstore_utf8_cp_to_utf8( 0x00EE, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER I WITH CIRCUMFLEX */
360 			else if ( cp == 0x00CF ) { rdfstore_utf8_cp_to_utf8( 0x00EF, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER I WITH DIAERESIS */
361 			else if ( cp == 0x00D0 ) { rdfstore_utf8_cp_to_utf8( 0x00F0, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER ETH */
362 			else if ( cp == 0x00D1 ) { rdfstore_utf8_cp_to_utf8( 0x00F1, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER N WITH TILDE */
363 			else if ( cp == 0x00D2 ) { rdfstore_utf8_cp_to_utf8( 0x00F2, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH GRAVE */
364 			else if ( cp == 0x00D3 ) { rdfstore_utf8_cp_to_utf8( 0x00F3, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH ACUTE */
365 			else if ( cp == 0x00D4 ) { rdfstore_utf8_cp_to_utf8( 0x00F4, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH CIRCUMFLEX */
366 			else if ( cp == 0x00D5 ) { rdfstore_utf8_cp_to_utf8( 0x00F5, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH TILDE */
367 			else if ( cp == 0x00D6 ) { rdfstore_utf8_cp_to_utf8( 0x00F6, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH DIAERESIS */
368 			else if ( cp == 0x00D8 ) { rdfstore_utf8_cp_to_utf8( 0x00F8, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH STROKE */
369 			else if ( cp == 0x00D9 ) { rdfstore_utf8_cp_to_utf8( 0x00F9, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH GRAVE */
370 			else if ( cp == 0x00DA ) { rdfstore_utf8_cp_to_utf8( 0x00FA, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH ACUTE */
371 			else if ( cp == 0x00DB ) { rdfstore_utf8_cp_to_utf8( 0x00FB, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH CIRCUMFLEX */
372 			else if ( cp == 0x00DC ) { rdfstore_utf8_cp_to_utf8( 0x00FC, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH DIAERESIS */
373 			else if ( cp == 0x00DD ) { rdfstore_utf8_cp_to_utf8( 0x00FD, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Y WITH ACUTE */
374 			else if ( cp == 0x00DE ) { rdfstore_utf8_cp_to_utf8( 0x00FE, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER THORN */
375 			else if ( cp == 0x00DF ) { rdfstore_utf8_cp_to_utf8( 0x0073, &utf8_size, utf8_buff );  /*  LATIN SMALL LETTER SHARP S */
376 			                           rdfstore_utf8_cp_to_utf8( 0x0073, &utf8_size, utf8_buff ); }
377 			else if ( cp == 0x0100 ) { rdfstore_utf8_cp_to_utf8( 0x0101, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH MACRON */
378 			else if ( cp == 0x0102 ) { rdfstore_utf8_cp_to_utf8( 0x0103, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH BREVE */
379 			else if ( cp == 0x0104 ) { rdfstore_utf8_cp_to_utf8( 0x0105, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH OGONEK */
380 			else if ( cp == 0x0106 ) { rdfstore_utf8_cp_to_utf8( 0x0107, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER C WITH ACUTE */
381 			else if ( cp == 0x0108 ) { rdfstore_utf8_cp_to_utf8( 0x0109, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER C WITH CIRCUMFLEX */
382 			else if ( cp == 0x010A ) { rdfstore_utf8_cp_to_utf8( 0x010B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER C WITH DOT ABOVE */
383 			else if ( cp == 0x010C ) { rdfstore_utf8_cp_to_utf8( 0x010D, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER C WITH CARON */
384 			else if ( cp == 0x010E ) { rdfstore_utf8_cp_to_utf8( 0x010F, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER D WITH CARON */
385 			else if ( cp == 0x0110 ) { rdfstore_utf8_cp_to_utf8( 0x0111, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER D WITH STROKE */
386 			else if ( cp == 0x0112 ) { rdfstore_utf8_cp_to_utf8( 0x0113, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH MACRON */
387 			else if ( cp == 0x0114 ) { rdfstore_utf8_cp_to_utf8( 0x0115, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH BREVE */
388 			else if ( cp == 0x0116 ) { rdfstore_utf8_cp_to_utf8( 0x0117, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH DOT ABOVE */
389 			else if ( cp == 0x0118 ) { rdfstore_utf8_cp_to_utf8( 0x0119, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH OGONEK */
390 			else if ( cp == 0x011A ) { rdfstore_utf8_cp_to_utf8( 0x011B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH CARON */
391 			else if ( cp == 0x011C ) { rdfstore_utf8_cp_to_utf8( 0x011D, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER G WITH CIRCUMFLEX */
392 			else if ( cp == 0x011E ) { rdfstore_utf8_cp_to_utf8( 0x011F, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER G WITH BREVE */
393 			else if ( cp == 0x0120 ) { rdfstore_utf8_cp_to_utf8( 0x0121, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER G WITH DOT ABOVE */
394 			else if ( cp == 0x0122 ) { rdfstore_utf8_cp_to_utf8( 0x0123, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER G WITH CEDILLA */
395 			else if ( cp == 0x0124 ) { rdfstore_utf8_cp_to_utf8( 0x0125, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER H WITH CIRCUMFLEX */
396 			else if ( cp == 0x0126 ) { rdfstore_utf8_cp_to_utf8( 0x0127, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER H WITH STROKE */
397 			else if ( cp == 0x0128 ) { rdfstore_utf8_cp_to_utf8( 0x0129, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER I WITH TILDE */
398 			else if ( cp == 0x012A ) { rdfstore_utf8_cp_to_utf8( 0x012B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER I WITH MACRON */
399 			else if ( cp == 0x012C ) { rdfstore_utf8_cp_to_utf8( 0x012D, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER I WITH BREVE */
400 			else if ( cp == 0x012E ) { rdfstore_utf8_cp_to_utf8( 0x012F, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER I WITH OGONEK */
401 			else if ( cp == 0x0130 ) { rdfstore_utf8_cp_to_utf8( 0x0069, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER I WITH DOT ABOVE */
402 			else if ( cp == 0x0131 ) { rdfstore_utf8_cp_to_utf8( 0x0069, &utf8_size, utf8_buff ); } /*  LATIN SMALL LETTER DOTLESS I */
403 			else if ( cp == 0x0132 ) { rdfstore_utf8_cp_to_utf8( 0x0133, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LIGATURE IJ */
404 			else if ( cp == 0x0134 ) { rdfstore_utf8_cp_to_utf8( 0x0135, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER J WITH CIRCUMFLEX */
405 			else if ( cp == 0x0136 ) { rdfstore_utf8_cp_to_utf8( 0x0137, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER K WITH CEDILLA */
406 			else if ( cp == 0x0139 ) { rdfstore_utf8_cp_to_utf8( 0x013A, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER L WITH ACUTE */
407 			else if ( cp == 0x013B ) { rdfstore_utf8_cp_to_utf8( 0x013C, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER L WITH CEDILLA */
408 			else if ( cp == 0x013D ) { rdfstore_utf8_cp_to_utf8( 0x013E, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER L WITH CARON */
409 			else if ( cp == 0x013F ) { rdfstore_utf8_cp_to_utf8( 0x0140, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER L WITH MIDDLE DOT */
410 			else if ( cp == 0x0141 ) { rdfstore_utf8_cp_to_utf8( 0x0142, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER L WITH STROKE */
411 			else if ( cp == 0x0143 ) { rdfstore_utf8_cp_to_utf8( 0x0144, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER N WITH ACUTE */
412 			else if ( cp == 0x0145 ) { rdfstore_utf8_cp_to_utf8( 0x0146, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER N WITH CEDILLA */
413 			else if ( cp == 0x0147 ) { rdfstore_utf8_cp_to_utf8( 0x0148, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER N WITH CARON */
414 			else if ( cp == 0x0149 ) { rdfstore_utf8_cp_to_utf8( 0x02BC, &utf8_size, utf8_buff );   /*  LATIN SMALL LETTER N PR0xECEDED BY APOSTROPHE */
415 			                           rdfstore_utf8_cp_to_utf8( 0x006E, &utf8_size, utf8_buff ); }
416 			else if ( cp == 0x014A ) { rdfstore_utf8_cp_to_utf8( 0x014B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER ENG */
417 			else if ( cp == 0x014C ) { rdfstore_utf8_cp_to_utf8( 0x014D, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH MACRON */
418 			else if ( cp == 0x014E ) { rdfstore_utf8_cp_to_utf8( 0x014F, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH BREVE */
419 			else if ( cp == 0x0150 ) { rdfstore_utf8_cp_to_utf8( 0x0151, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */
420 			else if ( cp == 0x0152 ) { rdfstore_utf8_cp_to_utf8( 0x0153, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LIGATURE OE */
421 			else if ( cp == 0x0154 ) { rdfstore_utf8_cp_to_utf8( 0x0155, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER R WITH ACUTE */
422 			else if ( cp == 0x0156 ) { rdfstore_utf8_cp_to_utf8( 0x0157, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER R WITH CEDILLA */
423 			else if ( cp == 0x0158 ) { rdfstore_utf8_cp_to_utf8( 0x0159, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER R WITH CARON */
424 			else if ( cp == 0x015A ) { rdfstore_utf8_cp_to_utf8( 0x015B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER S WITH ACUTE */
425 			else if ( cp == 0x015C ) { rdfstore_utf8_cp_to_utf8( 0x015D, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER S WITH CIRCUMFLEX */
426 			else if ( cp == 0x015E ) { rdfstore_utf8_cp_to_utf8( 0x015F, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER S WITH CEDILLA */
427 			else if ( cp == 0x0160 ) { rdfstore_utf8_cp_to_utf8( 0x0161, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER S WITH CARON */
428 			else if ( cp == 0x0162 ) { rdfstore_utf8_cp_to_utf8( 0x0163, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER T WITH CEDILLA */
429 			else if ( cp == 0x0164 ) { rdfstore_utf8_cp_to_utf8( 0x0165, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER T WITH CARON */
430 			else if ( cp == 0x0166 ) { rdfstore_utf8_cp_to_utf8( 0x0167, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER T WITH STROKE */
431 			else if ( cp == 0x0168 ) { rdfstore_utf8_cp_to_utf8( 0x0169, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH TILDE */
432 			else if ( cp == 0x016A ) { rdfstore_utf8_cp_to_utf8( 0x016B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH MACRON */
433 			else if ( cp == 0x016C ) { rdfstore_utf8_cp_to_utf8( 0x016D, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH BREVE */
434 			else if ( cp == 0x016E ) { rdfstore_utf8_cp_to_utf8( 0x016F, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH RING ABOVE */
435 			else if ( cp == 0x0170 ) { rdfstore_utf8_cp_to_utf8( 0x0171, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */
436 			else if ( cp == 0x0172 ) { rdfstore_utf8_cp_to_utf8( 0x0173, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH OGONEK */
437 			else if ( cp == 0x0174 ) { rdfstore_utf8_cp_to_utf8( 0x0175, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER W WITH CIRCUMFLEX */
438 			else if ( cp == 0x0176 ) { rdfstore_utf8_cp_to_utf8( 0x0177, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Y WITH CIRCUMFLEX */
439 			else if ( cp == 0x0178 ) { rdfstore_utf8_cp_to_utf8( 0x00FF, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Y WITH DIAERESIS */
440 			else if ( cp == 0x0179 ) { rdfstore_utf8_cp_to_utf8( 0x017A, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Z WITH ACUTE */
441 			else if ( cp == 0x017B ) { rdfstore_utf8_cp_to_utf8( 0x017C, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Z WITH DOT ABOVE */
442 			else if ( cp == 0x017D ) { rdfstore_utf8_cp_to_utf8( 0x017E, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Z WITH CARON */
443 			else if ( cp == 0x017F ) { rdfstore_utf8_cp_to_utf8( 0x0073, &utf8_size, utf8_buff ); } /*  LATIN SMALL LETTER LONG S */
444 			else if ( cp == 0x0181 ) { rdfstore_utf8_cp_to_utf8( 0x0253, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER B WITH HOOK */
445 			else if ( cp == 0x0182 ) { rdfstore_utf8_cp_to_utf8( 0x0183, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER B WITH TOPBAR */
446 			else if ( cp == 0x0184 ) { rdfstore_utf8_cp_to_utf8( 0x0185, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER TONE SIX */
447 			else if ( cp == 0x0186 ) { rdfstore_utf8_cp_to_utf8( 0x0254, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER OPEN O */
448 			else if ( cp == 0x0187 ) { rdfstore_utf8_cp_to_utf8( 0x0188, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER C WITH HOOK */
449 			else if ( cp == 0x0189 ) { rdfstore_utf8_cp_to_utf8( 0x0256, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER AFRICAN D */
450 			else if ( cp == 0x018A ) { rdfstore_utf8_cp_to_utf8( 0x0257, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER D WITH HOOK */
451 			else if ( cp == 0x018B ) { rdfstore_utf8_cp_to_utf8( 0x018C, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER D WITH TOPBAR */
452 			else if ( cp == 0x018E ) { rdfstore_utf8_cp_to_utf8( 0x01DD, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER REVERSED E */
453 			else if ( cp == 0x018F ) { rdfstore_utf8_cp_to_utf8( 0x0259, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER SCHWA */
454 			else if ( cp == 0x0190 ) { rdfstore_utf8_cp_to_utf8( 0x025B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER OPEN E */
455 			else if ( cp == 0x0191 ) { rdfstore_utf8_cp_to_utf8( 0x0192, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER F WITH HOOK */
456 			else if ( cp == 0x0193 ) { rdfstore_utf8_cp_to_utf8( 0x0260, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER G WITH HOOK */
457 			else if ( cp == 0x0194 ) { rdfstore_utf8_cp_to_utf8( 0x0263, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER GAMMA */
458 			else if ( cp == 0x0196 ) { rdfstore_utf8_cp_to_utf8( 0x0269, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER IOTA */
459 			else if ( cp == 0x0197 ) { rdfstore_utf8_cp_to_utf8( 0x0268, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER I WITH STROKE */
460 			else if ( cp == 0x0198 ) { rdfstore_utf8_cp_to_utf8( 0x0199, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER K WITH HOOK */
461 			else if ( cp == 0x019C ) { rdfstore_utf8_cp_to_utf8( 0x026F, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER TURNED M */
462 			else if ( cp == 0x019D ) { rdfstore_utf8_cp_to_utf8( 0x0272, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER N WITH LEFT HOOK */
463 			else if ( cp == 0x019F ) { rdfstore_utf8_cp_to_utf8( 0x0275, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH MIDDLE TILDE */
464 			else if ( cp == 0x01A0 ) { rdfstore_utf8_cp_to_utf8( 0x01A1, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH HORN */
465 			else if ( cp == 0x01A2 ) { rdfstore_utf8_cp_to_utf8( 0x01A3, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER OI */
466 			else if ( cp == 0x01A4 ) { rdfstore_utf8_cp_to_utf8( 0x01A5, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER P WITH HOOK */
467 			else if ( cp == 0x01A6 ) { rdfstore_utf8_cp_to_utf8( 0x0280, &utf8_size, utf8_buff ); } /*  LATIN LETTER YR */
468 			else if ( cp == 0x01A7 ) { rdfstore_utf8_cp_to_utf8( 0x01A8, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER TONE TWO */
469 			else if ( cp == 0x01A9 ) { rdfstore_utf8_cp_to_utf8( 0x0283, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER ESH */
470 			else if ( cp == 0x01AC ) { rdfstore_utf8_cp_to_utf8( 0x01AD, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER T WITH HOOK */
471 			else if ( cp == 0x01AE ) { rdfstore_utf8_cp_to_utf8( 0x0288, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER T WITH RETROFLEX HOOK */
472 			else if ( cp == 0x01AF ) { rdfstore_utf8_cp_to_utf8( 0x01B0, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH HORN */
473 			else if ( cp == 0x01B1 ) { rdfstore_utf8_cp_to_utf8( 0x028A, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER UPSILON */
474 			else if ( cp == 0x01B2 ) { rdfstore_utf8_cp_to_utf8( 0x028B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER V WITH HOOK */
475 			else if ( cp == 0x01B3 ) { rdfstore_utf8_cp_to_utf8( 0x01B4, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Y WITH HOOK */
476 			else if ( cp == 0x01B5 ) { rdfstore_utf8_cp_to_utf8( 0x01B6, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Z WITH STROKE */
477 			else if ( cp == 0x01B7 ) { rdfstore_utf8_cp_to_utf8( 0x0292, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER EZH */
478 			else if ( cp == 0x01B8 ) { rdfstore_utf8_cp_to_utf8( 0x01B9, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER EZH REVERSED */
479 			else if ( cp == 0x01BC ) { rdfstore_utf8_cp_to_utf8( 0x01BD, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER TONE FIVE */
480 			else if ( cp == 0x01C4 ) { rdfstore_utf8_cp_to_utf8( 0x01C6, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER DZ WITH CARON */
481 			else if ( cp == 0x01C5 ) { rdfstore_utf8_cp_to_utf8( 0x01C6, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON */
482 			else if ( cp == 0x01C7 ) { rdfstore_utf8_cp_to_utf8( 0x01C9, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER LJ */
483 			else if ( cp == 0x01C8 ) { rdfstore_utf8_cp_to_utf8( 0x01C9, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER L WITH SMALL LETTER J */
484 			else if ( cp == 0x01CA ) { rdfstore_utf8_cp_to_utf8( 0x01CC, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER NJ */
485 			else if ( cp == 0x01CB ) { rdfstore_utf8_cp_to_utf8( 0x01CC, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER N WITH SMALL LETTER J */
486 			else if ( cp == 0x01CD ) { rdfstore_utf8_cp_to_utf8( 0x01CE, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH CARON */
487 			else if ( cp == 0x01CF ) { rdfstore_utf8_cp_to_utf8( 0x01D0, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER I WITH CARON */
488 			else if ( cp == 0x01D1 ) { rdfstore_utf8_cp_to_utf8( 0x01D2, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH CARON */
489 			else if ( cp == 0x01D3 ) { rdfstore_utf8_cp_to_utf8( 0x01D4, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH CARON */
490 			else if ( cp == 0x01D5 ) { rdfstore_utf8_cp_to_utf8( 0x01D6, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON */
491 			else if ( cp == 0x01D7 ) { rdfstore_utf8_cp_to_utf8( 0x01D8, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE */
492 			else if ( cp == 0x01D9 ) { rdfstore_utf8_cp_to_utf8( 0x01DA, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON */
493 			else if ( cp == 0x01DB ) { rdfstore_utf8_cp_to_utf8( 0x01DC, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE */
494 			else if ( cp == 0x01DE ) { rdfstore_utf8_cp_to_utf8( 0x01DF, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
495 			else if ( cp == 0x01E0 ) { rdfstore_utf8_cp_to_utf8( 0x01E1, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON */
496 			else if ( cp == 0x01E2 ) { rdfstore_utf8_cp_to_utf8( 0x01E3, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER AE WITH MACRON */
497 			else if ( cp == 0x01E4 ) { rdfstore_utf8_cp_to_utf8( 0x01E5, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER G WITH STROKE */
498 			else if ( cp == 0x01E6 ) { rdfstore_utf8_cp_to_utf8( 0x01E7, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER G WITH CARON */
499 			else if ( cp == 0x01E8 ) { rdfstore_utf8_cp_to_utf8( 0x01E9, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER K WITH CARON */
500 			else if ( cp == 0x01EA ) { rdfstore_utf8_cp_to_utf8( 0x01EB, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH OGONEK */
501 			else if ( cp == 0x01EC ) { rdfstore_utf8_cp_to_utf8( 0x01ED, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH OGONEK AND MACRON */
502 			else if ( cp == 0x01EE ) { rdfstore_utf8_cp_to_utf8( 0x01EF, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER EZH WITH CARON */
503 			else if ( cp == 0x01F0 ) { rdfstore_utf8_cp_to_utf8( 0x006A, &utf8_size, utf8_buff );   /*  LATIN SMALL LETTER J WITH CARON */
504 			                           rdfstore_utf8_cp_to_utf8( 0x030C, &utf8_size, utf8_buff ); }
505 			else if ( cp == 0x01F1 ) { rdfstore_utf8_cp_to_utf8( 0x01F3, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER DZ */
506 			else if ( cp == 0x01F2 ) { rdfstore_utf8_cp_to_utf8( 0x01F3, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER D WITH SMALL LETTER Z */
507 			else if ( cp == 0x01F4 ) { rdfstore_utf8_cp_to_utf8( 0x01F5, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER G WITH ACUTE */
508 			else if ( cp == 0x01F6 ) { rdfstore_utf8_cp_to_utf8( 0x0195, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER HWAIR */
509 			else if ( cp == 0x01F7 ) { rdfstore_utf8_cp_to_utf8( 0x01BF, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER WYNN */
510 			else if ( cp == 0x01F8 ) { rdfstore_utf8_cp_to_utf8( 0x01F9, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER N WITH GRAVE */
511 			else if ( cp == 0x01FA ) { rdfstore_utf8_cp_to_utf8( 0x01FB, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE */
512 			else if ( cp == 0x01FC ) { rdfstore_utf8_cp_to_utf8( 0x01FD, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER AE WITH ACUTE */
513 			else if ( cp == 0x01FE ) { rdfstore_utf8_cp_to_utf8( 0x01FF, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH STROKE AND ACUTE */
514 			else if ( cp == 0x0200 ) { rdfstore_utf8_cp_to_utf8( 0x0201, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH DOUBLE GRAVE */
515 			else if ( cp == 0x0202 ) { rdfstore_utf8_cp_to_utf8( 0x0203, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH INVERTED BREVE */
516 			else if ( cp == 0x0204 ) { rdfstore_utf8_cp_to_utf8( 0x0205, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH DOUBLE GRAVE */
517 			else if ( cp == 0x0206 ) { rdfstore_utf8_cp_to_utf8( 0x0207, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH INVERTED BREVE */
518 			else if ( cp == 0x0208 ) { rdfstore_utf8_cp_to_utf8( 0x0209, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER I WITH DOUBLE GRAVE */
519 			else if ( cp == 0x020A ) { rdfstore_utf8_cp_to_utf8( 0x020B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER I WITH INVERTED BREVE */
520 			else if ( cp == 0x020C ) { rdfstore_utf8_cp_to_utf8( 0x020D, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH DOUBLE GRAVE */
521 			else if ( cp == 0x020E ) { rdfstore_utf8_cp_to_utf8( 0x020F, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH INVERTED BREVE */
522 			else if ( cp == 0x0210 ) { rdfstore_utf8_cp_to_utf8( 0x0211, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER R WITH DOUBLE GRAVE */
523 			else if ( cp == 0x0212 ) { rdfstore_utf8_cp_to_utf8( 0x0213, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER R WITH INVERTED BREVE */
524 			else if ( cp == 0x0214 ) { rdfstore_utf8_cp_to_utf8( 0x0215, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH DOUBLE GRAVE */
525 			else if ( cp == 0x0216 ) { rdfstore_utf8_cp_to_utf8( 0x0217, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH INVERTED BREVE */
526 			else if ( cp == 0x0218 ) { rdfstore_utf8_cp_to_utf8( 0x0219, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER S WITH COMMA BELOW */
527 			else if ( cp == 0x021A ) { rdfstore_utf8_cp_to_utf8( 0x021B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER T WITH COMMA BELOW */
528 			else if ( cp == 0x021C ) { rdfstore_utf8_cp_to_utf8( 0x021D, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER YOGH */
529 			else if ( cp == 0x021E ) { rdfstore_utf8_cp_to_utf8( 0x021F, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER H WITH CARON */
530 			else if ( cp == 0x0222 ) { rdfstore_utf8_cp_to_utf8( 0x0223, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER OU */
531 			else if ( cp == 0x0224 ) { rdfstore_utf8_cp_to_utf8( 0x0225, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Z WITH HOOK */
532 			else if ( cp == 0x0226 ) { rdfstore_utf8_cp_to_utf8( 0x0227, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH DOT ABOVE */
533 			else if ( cp == 0x0228 ) { rdfstore_utf8_cp_to_utf8( 0x0229, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH CEDILLA */
534 			else if ( cp == 0x022A ) { rdfstore_utf8_cp_to_utf8( 0x022B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON */
535 			else if ( cp == 0x022C ) { rdfstore_utf8_cp_to_utf8( 0x022D, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH TILDE AND MACRON */
536 			else if ( cp == 0x022E ) { rdfstore_utf8_cp_to_utf8( 0x022F, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH DOT ABOVE */
537 			else if ( cp == 0x0230 ) { rdfstore_utf8_cp_to_utf8( 0x0231, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON */
538 			else if ( cp == 0x0232 ) { rdfstore_utf8_cp_to_utf8( 0x0233, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Y WITH MACRON */
539 			else if ( cp == 0x0345 ) { rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); } /*  COMBINING GREEK YPOGEGRAMMENI */
540 			else if ( cp == 0x0386 ) { rdfstore_utf8_cp_to_utf8( 0x03AC, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ALPHA WITH TONOS */
541 			else if ( cp == 0x0388 ) { rdfstore_utf8_cp_to_utf8( 0x03AD, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER EPSILON WITH TONOS */
542 			else if ( cp == 0x0389 ) { rdfstore_utf8_cp_to_utf8( 0x03AE, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ETA WITH TONOS */
543 			else if ( cp == 0x038A ) { rdfstore_utf8_cp_to_utf8( 0x03AF, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER IOTA WITH TONOS */
544 			else if ( cp == 0x038C ) { rdfstore_utf8_cp_to_utf8( 0x03CC, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMICRON WITH TONOS */
545 			else if ( cp == 0x038E ) { rdfstore_utf8_cp_to_utf8( 0x03CD, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER UPSILON WITH TONOS */
546 			else if ( cp == 0x038F ) { rdfstore_utf8_cp_to_utf8( 0x03CE, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMEGA WITH TONOS */
547 			else if ( cp == 0x0390 ) { rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
548 			                           rdfstore_utf8_cp_to_utf8( 0x0308, &utf8_size, utf8_buff );
549 			                           rdfstore_utf8_cp_to_utf8( 0x0301, &utf8_size, utf8_buff ); }
550 			else if ( cp == 0x0391 ) { rdfstore_utf8_cp_to_utf8( 0x03B1, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ALPHA */
551 			else if ( cp == 0x0392 ) { rdfstore_utf8_cp_to_utf8( 0x03B2, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER BETA */
552 			else if ( cp == 0x0393 ) { rdfstore_utf8_cp_to_utf8( 0x03B3, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER GAMMA */
553 			else if ( cp == 0x0394 ) { rdfstore_utf8_cp_to_utf8( 0x03B4, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER DELTA */
554 			else if ( cp == 0x0395 ) { rdfstore_utf8_cp_to_utf8( 0x03B5, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER EPSILON */
555 			else if ( cp == 0x0396 ) { rdfstore_utf8_cp_to_utf8( 0x03B6, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ZETA */
556 			else if ( cp == 0x0397 ) { rdfstore_utf8_cp_to_utf8( 0x03B7, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ETA */
557 			else if ( cp == 0x0398 ) { rdfstore_utf8_cp_to_utf8( 0x03B8, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER THETA */
558 			else if ( cp == 0x0399 ) { rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER IOTA */
559 			else if ( cp == 0x039A ) { rdfstore_utf8_cp_to_utf8( 0x03BA, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER KAPPA */
560 			else if ( cp == 0x039B ) { rdfstore_utf8_cp_to_utf8( 0x03BB, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER LAMDA */
561 			else if ( cp == 0x039C ) { rdfstore_utf8_cp_to_utf8( 0x03BC, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER MU */
562 			else if ( cp == 0x039D ) { rdfstore_utf8_cp_to_utf8( 0x03BD, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER NU */
563 			else if ( cp == 0x039E ) { rdfstore_utf8_cp_to_utf8( 0x03BE, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER XI */
564 			else if ( cp == 0x039F ) { rdfstore_utf8_cp_to_utf8( 0x03BF, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMICRON */
565 			else if ( cp == 0x03A0 ) { rdfstore_utf8_cp_to_utf8( 0x03C0, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER PI */
566 			else if ( cp == 0x03A1 ) { rdfstore_utf8_cp_to_utf8( 0x03C1, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER RHO */
567 			else if ( cp == 0x03A3 ) { rdfstore_utf8_cp_to_utf8( 0x03C3, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER SIGMA */
568 			else if ( cp == 0x03A4 ) { rdfstore_utf8_cp_to_utf8( 0x03C4, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER TAU */
569 			else if ( cp == 0x03A5 ) { rdfstore_utf8_cp_to_utf8( 0x03C5, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER UPSILON */
570 			else if ( cp == 0x03A6 ) { rdfstore_utf8_cp_to_utf8( 0x03C6, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER PHI */
571 			else if ( cp == 0x03A7 ) { rdfstore_utf8_cp_to_utf8( 0x03C7, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER CHI */
572 			else if ( cp == 0x03A8 ) { rdfstore_utf8_cp_to_utf8( 0x03C8, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER PSI */
573 			else if ( cp == 0x03A9 ) { rdfstore_utf8_cp_to_utf8( 0x03C9, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMEGA */
574 			else if ( cp == 0x03AA ) { rdfstore_utf8_cp_to_utf8( 0x03CA, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER IOTA WITH DIALYTIKA */
575 			else if ( cp == 0x03AB ) { rdfstore_utf8_cp_to_utf8( 0x03CB, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA */
576 			else if ( cp == 0x03B0 ) { rdfstore_utf8_cp_to_utf8( 0x03C5, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */
577 			                           rdfstore_utf8_cp_to_utf8( 0x0308, &utf8_size, utf8_buff );
578 			                           rdfstore_utf8_cp_to_utf8( 0x0301, &utf8_size, utf8_buff ); }
579 			else if ( cp == 0x03C2 ) { rdfstore_utf8_cp_to_utf8( 0x03C3, &utf8_size, utf8_buff ); } /*  GREEK SMALL LETTER FINAL SIGMA */
580 			else if ( cp == 0x03D0 ) { rdfstore_utf8_cp_to_utf8( 0x03B2, &utf8_size, utf8_buff ); } /*  GREEK BETA SYMBOL */
581 			else if ( cp == 0x03D1 ) { rdfstore_utf8_cp_to_utf8( 0x03B8, &utf8_size, utf8_buff ); } /*  GREEK THETA SYMBOL */
582 			else if ( cp == 0x03D5 ) { rdfstore_utf8_cp_to_utf8( 0x03C6, &utf8_size, utf8_buff ); } /*  GREEK PHI SYMBOL */
583 			else if ( cp == 0x03D6 ) { rdfstore_utf8_cp_to_utf8( 0x03C0, &utf8_size, utf8_buff ); } /*  GREEK PI SYMBOL */
584 			else if ( cp == 0x03DA ) { rdfstore_utf8_cp_to_utf8( 0x03DB, &utf8_size, utf8_buff ); } /*  GREEK LETTER STIGMA */
585 			else if ( cp == 0x03DC ) { rdfstore_utf8_cp_to_utf8( 0x03DD, &utf8_size, utf8_buff ); } /*  GREEK LETTER DIGAMMA */
586 			else if ( cp == 0x03DE ) { rdfstore_utf8_cp_to_utf8( 0x03DF, &utf8_size, utf8_buff ); } /*  GREEK LETTER KOPPA */
587 			else if ( cp == 0x03E0 ) { rdfstore_utf8_cp_to_utf8( 0x03E1, &utf8_size, utf8_buff ); } /*  GREEK LETTER SAMPI */
588 			else if ( cp == 0x03E2 ) { rdfstore_utf8_cp_to_utf8( 0x03E3, &utf8_size, utf8_buff ); } /*  COPTIC CAPITAL LETTER SHEI */
589 			else if ( cp == 0x03E4 ) { rdfstore_utf8_cp_to_utf8( 0x03E5, &utf8_size, utf8_buff ); } /*  COPTIC CAPITAL LETTER FEI */
590 			else if ( cp == 0x03E6 ) { rdfstore_utf8_cp_to_utf8( 0x03E7, &utf8_size, utf8_buff ); } /*  COPTIC CAPITAL LETTER KHEI */
591 			else if ( cp == 0x03E8 ) { rdfstore_utf8_cp_to_utf8( 0x03E9, &utf8_size, utf8_buff ); } /*  COPTIC CAPITAL LETTER HORI */
592 			else if ( cp == 0x03EA ) { rdfstore_utf8_cp_to_utf8( 0x03EB, &utf8_size, utf8_buff ); } /*  COPTIC CAPITAL LETTER GANGIA */
593 			else if ( cp == 0x03EC ) { rdfstore_utf8_cp_to_utf8( 0x03ED, &utf8_size, utf8_buff ); } /*  COPTIC CAPITAL LETTER SHIMA */
594 			else if ( cp == 0x03EE ) { rdfstore_utf8_cp_to_utf8( 0x03EF, &utf8_size, utf8_buff ); } /*  COPTIC CAPITAL LETTER DEI */
595 			else if ( cp == 0x03F0 ) { rdfstore_utf8_cp_to_utf8( 0x03BA, &utf8_size, utf8_buff ); } /*  GREEK KAPPA SYMBOL */
596 			else if ( cp == 0x03F1 ) { rdfstore_utf8_cp_to_utf8( 0x03C1, &utf8_size, utf8_buff ); } /*  GREEK RHO SYMBOL */
597 			else if ( cp == 0x03F2 ) { rdfstore_utf8_cp_to_utf8( 0x03C3, &utf8_size, utf8_buff ); } /*  GREEK LUNATE SIGMA SYMBOL */
598 			else if ( cp == 0x03F4 ) { rdfstore_utf8_cp_to_utf8( 0x03B8, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL THETA SYMBOL */
599 			else if ( cp == 0x03F5 ) { rdfstore_utf8_cp_to_utf8( 0x03B5, &utf8_size, utf8_buff ); } /*  GREEK LUNATE EPSILON SYMBOL */
600 			else if ( cp == 0x0400 ) { rdfstore_utf8_cp_to_utf8( 0x0450, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER IE WITH GRAVE */
601 			else if ( cp == 0x0401 ) { rdfstore_utf8_cp_to_utf8( 0x0451, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER IO */
602 			else if ( cp == 0x0402 ) { rdfstore_utf8_cp_to_utf8( 0x0452, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER DJE */
603 			else if ( cp == 0x0403 ) { rdfstore_utf8_cp_to_utf8( 0x0453, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER GJE */
604 			else if ( cp == 0x0404 ) { rdfstore_utf8_cp_to_utf8( 0x0454, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER UKRAINIAN IE */
605 			else if ( cp == 0x0405 ) { rdfstore_utf8_cp_to_utf8( 0x0455, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER DZE */
606 			else if ( cp == 0x0406 ) { rdfstore_utf8_cp_to_utf8( 0x0456, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */
607 			else if ( cp == 0x0407 ) { rdfstore_utf8_cp_to_utf8( 0x0457, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER YI */
608 			else if ( cp == 0x0408 ) { rdfstore_utf8_cp_to_utf8( 0x0458, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER JE */
609 			else if ( cp == 0x0409 ) { rdfstore_utf8_cp_to_utf8( 0x0459, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER LJE */
610 			else if ( cp == 0x040A ) { rdfstore_utf8_cp_to_utf8( 0x045A, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER NJE */
611 			else if ( cp == 0x040B ) { rdfstore_utf8_cp_to_utf8( 0x045B, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER TSHE */
612 			else if ( cp == 0x040C ) { rdfstore_utf8_cp_to_utf8( 0x045C, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER KJE */
613 			else if ( cp == 0x040D ) { rdfstore_utf8_cp_to_utf8( 0x045D, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER I WITH GRAVE */
614 			else if ( cp == 0x040E ) { rdfstore_utf8_cp_to_utf8( 0x045E, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER SHORT U */
615 			else if ( cp == 0x040F ) { rdfstore_utf8_cp_to_utf8( 0x045F, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER DZHE */
616 			else if ( cp == 0x0410 ) { rdfstore_utf8_cp_to_utf8( 0x0430, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER A */
617 			else if ( cp == 0x0411 ) { rdfstore_utf8_cp_to_utf8( 0x0431, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER BE */
618 			else if ( cp == 0x0412 ) { rdfstore_utf8_cp_to_utf8( 0x0432, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER VE */
619 			else if ( cp == 0x0413 ) { rdfstore_utf8_cp_to_utf8( 0x0433, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER GHE */
620 			else if ( cp == 0x0414 ) { rdfstore_utf8_cp_to_utf8( 0x0434, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER DE */
621 			else if ( cp == 0x0415 ) { rdfstore_utf8_cp_to_utf8( 0x0435, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER IE */
622 			else if ( cp == 0x0416 ) { rdfstore_utf8_cp_to_utf8( 0x0436, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER ZHE */
623 			else if ( cp == 0x0417 ) { rdfstore_utf8_cp_to_utf8( 0x0437, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER ZE */
624 			else if ( cp == 0x0418 ) { rdfstore_utf8_cp_to_utf8( 0x0438, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER I */
625 			else if ( cp == 0x0419 ) { rdfstore_utf8_cp_to_utf8( 0x0439, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER SHORT I */
626 			else if ( cp == 0x041A ) { rdfstore_utf8_cp_to_utf8( 0x043A, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER KA */
627 			else if ( cp == 0x041B ) { rdfstore_utf8_cp_to_utf8( 0x043B, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER EL */
628 			else if ( cp == 0x041C ) { rdfstore_utf8_cp_to_utf8( 0x043C, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER EM */
629 			else if ( cp == 0x041D ) { rdfstore_utf8_cp_to_utf8( 0x043D, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER EN */
630 			else if ( cp == 0x041E ) { rdfstore_utf8_cp_to_utf8( 0x043E, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER O */
631 			else if ( cp == 0x041F ) { rdfstore_utf8_cp_to_utf8( 0x043F, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER PE */
632 			else if ( cp == 0x0420 ) { rdfstore_utf8_cp_to_utf8( 0x0440, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER ER */
633 			else if ( cp == 0x0421 ) { rdfstore_utf8_cp_to_utf8( 0x0441, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER ES */
634 			else if ( cp == 0x0422 ) { rdfstore_utf8_cp_to_utf8( 0x0442, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER TE */
635 			else if ( cp == 0x0423 ) { rdfstore_utf8_cp_to_utf8( 0x0443, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER U */
636 			else if ( cp == 0x0424 ) { rdfstore_utf8_cp_to_utf8( 0x0444, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER EF */
637 			else if ( cp == 0x0425 ) { rdfstore_utf8_cp_to_utf8( 0x0445, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER HA */
638 			else if ( cp == 0x0426 ) { rdfstore_utf8_cp_to_utf8( 0x0446, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER TSE */
639 			else if ( cp == 0x0427 ) { rdfstore_utf8_cp_to_utf8( 0x0447, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER CHE */
640 			else if ( cp == 0x0428 ) { rdfstore_utf8_cp_to_utf8( 0x0448, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER SHA */
641 			else if ( cp == 0x0429 ) { rdfstore_utf8_cp_to_utf8( 0x0449, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER SHCHA */
642 			else if ( cp == 0x042A ) { rdfstore_utf8_cp_to_utf8( 0x044A, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER HARD SIGN */
643 			else if ( cp == 0x042B ) { rdfstore_utf8_cp_to_utf8( 0x044B, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER YERU */
644 			else if ( cp == 0x042C ) { rdfstore_utf8_cp_to_utf8( 0x044C, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER SOFT SIGN */
645 			else if ( cp == 0x042D ) { rdfstore_utf8_cp_to_utf8( 0x044D, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER E */
646 			else if ( cp == 0x042E ) { rdfstore_utf8_cp_to_utf8( 0x044E, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER YU */
647 			else if ( cp == 0x042F ) { rdfstore_utf8_cp_to_utf8( 0x044F, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER YA */
648 			else if ( cp == 0x0460 ) { rdfstore_utf8_cp_to_utf8( 0x0461, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER OMEGA */
649 			else if ( cp == 0x0462 ) { rdfstore_utf8_cp_to_utf8( 0x0463, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER YAT */
650 			else if ( cp == 0x0464 ) { rdfstore_utf8_cp_to_utf8( 0x0465, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER IOTIFIED E */
651 			else if ( cp == 0x0466 ) { rdfstore_utf8_cp_to_utf8( 0x0467, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER LITTLE YUS */
652 			else if ( cp == 0x0468 ) { rdfstore_utf8_cp_to_utf8( 0x0469, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS */
653 			else if ( cp == 0x046A ) { rdfstore_utf8_cp_to_utf8( 0x046B, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER BIG YUS */
654 			else if ( cp == 0x046C ) { rdfstore_utf8_cp_to_utf8( 0x046D, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS */
655 			else if ( cp == 0x046E ) { rdfstore_utf8_cp_to_utf8( 0x046F, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER KSI */
656 			else if ( cp == 0x0470 ) { rdfstore_utf8_cp_to_utf8( 0x0471, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER PSI */
657 			else if ( cp == 0x0472 ) { rdfstore_utf8_cp_to_utf8( 0x0473, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER FITA */
658 			else if ( cp == 0x0474 ) { rdfstore_utf8_cp_to_utf8( 0x0475, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER IZHITSA */
659 			else if ( cp == 0x0476 ) { rdfstore_utf8_cp_to_utf8( 0x0477, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE 0xACCENT */
660 			else if ( cp == 0x0478 ) { rdfstore_utf8_cp_to_utf8( 0x0479, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER UK */
661 			else if ( cp == 0x047A ) { rdfstore_utf8_cp_to_utf8( 0x047B, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER ROUND OMEGA */
662 			else if ( cp == 0x047C ) { rdfstore_utf8_cp_to_utf8( 0x047D, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER OMEGA WITH TITLO */
663 			else if ( cp == 0x047E ) { rdfstore_utf8_cp_to_utf8( 0x047F, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER OT */
664 			else if ( cp == 0x0480 ) { rdfstore_utf8_cp_to_utf8( 0x0481, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER KOPPA */
665 			else if ( cp == 0x048C ) { rdfstore_utf8_cp_to_utf8( 0x048D, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER SEMISOFT SIGN */
666 			else if ( cp == 0x048E ) { rdfstore_utf8_cp_to_utf8( 0x048F, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER ER WITH TICK */
667 			else if ( cp == 0x0490 ) { rdfstore_utf8_cp_to_utf8( 0x0491, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER GHE WITH UPTURN */
668 			else if ( cp == 0x0492 ) { rdfstore_utf8_cp_to_utf8( 0x0493, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER GHE WITH STROKE */
669 			else if ( cp == 0x0494 ) { rdfstore_utf8_cp_to_utf8( 0x0495, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK */
670 			else if ( cp == 0x0496 ) { rdfstore_utf8_cp_to_utf8( 0x0497, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER */
671 			else if ( cp == 0x0498 ) { rdfstore_utf8_cp_to_utf8( 0x0499, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER ZE WITH DESCENDER */
672 			else if ( cp == 0x049A ) { rdfstore_utf8_cp_to_utf8( 0x049B, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER KA WITH DESCENDER */
673 			else if ( cp == 0x049C ) { rdfstore_utf8_cp_to_utf8( 0x049D, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE */
674 			else if ( cp == 0x049E ) { rdfstore_utf8_cp_to_utf8( 0x049F, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER KA WITH STROKE */
675 			else if ( cp == 0x04A0 ) { rdfstore_utf8_cp_to_utf8( 0x04A1, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER BASHKIR KA */
676 			else if ( cp == 0x04A2 ) { rdfstore_utf8_cp_to_utf8( 0x04A3, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER EN WITH DESCENDER */
677 			else if ( cp == 0x04A4 ) { rdfstore_utf8_cp_to_utf8( 0x04A5, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LIGATURE EN GHE */
678 			else if ( cp == 0x04A6 ) { rdfstore_utf8_cp_to_utf8( 0x04A7, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK */
679 			else if ( cp == 0x04A8 ) { rdfstore_utf8_cp_to_utf8( 0x04A9, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER ABKHASIAN HA */
680 			else if ( cp == 0x04AA ) { rdfstore_utf8_cp_to_utf8( 0x04AB, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER ES WITH DESCENDER */
681 			else if ( cp == 0x04AC ) { rdfstore_utf8_cp_to_utf8( 0x04AD, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER TE WITH DESCENDER */
682 			else if ( cp == 0x04AE ) { rdfstore_utf8_cp_to_utf8( 0x04AF, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER STRAIGHT U */
683 			else if ( cp == 0x04B0 ) { rdfstore_utf8_cp_to_utf8( 0x04B1, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE */
684 			else if ( cp == 0x04B2 ) { rdfstore_utf8_cp_to_utf8( 0x04B3, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER HA WITH DESCENDER */
685 			else if ( cp == 0x04B4 ) { rdfstore_utf8_cp_to_utf8( 0x04B5, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LIGATURE TE TSE */
686 			else if ( cp == 0x04B6 ) { rdfstore_utf8_cp_to_utf8( 0x04B7, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER CHE WITH DESCENDER */
687 			else if ( cp == 0x04B8 ) { rdfstore_utf8_cp_to_utf8( 0x04B9, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE */
688 			else if ( cp == 0x04BA ) { rdfstore_utf8_cp_to_utf8( 0x04BB, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER SHHA */
689 			else if ( cp == 0x04BC ) { rdfstore_utf8_cp_to_utf8( 0x04BD, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER ABKHASIAN CHE */
690 			else if ( cp == 0x04BE ) { rdfstore_utf8_cp_to_utf8( 0x04BF, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER */
691 			else if ( cp == 0x04C1 ) { rdfstore_utf8_cp_to_utf8( 0x04C2, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER ZHE WITH BREVE */
692 			else if ( cp == 0x04C3 ) { rdfstore_utf8_cp_to_utf8( 0x04C4, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER KA WITH HOOK */
693 			else if ( cp == 0x04C7 ) { rdfstore_utf8_cp_to_utf8( 0x04C8, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER EN WITH HOOK */
694 			else if ( cp == 0x04CB ) { rdfstore_utf8_cp_to_utf8( 0x04CC, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER KHAKASSIAN CHE */
695 			else if ( cp == 0x04D0 ) { rdfstore_utf8_cp_to_utf8( 0x04D1, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER A WITH BREVE */
696 			else if ( cp == 0x04D2 ) { rdfstore_utf8_cp_to_utf8( 0x04D3, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER A WITH DIAERESIS */
697 			else if ( cp == 0x04D4 ) { rdfstore_utf8_cp_to_utf8( 0x04D5, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LIGATURE A IE */
698 			else if ( cp == 0x04D6 ) { rdfstore_utf8_cp_to_utf8( 0x04D7, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER IE WITH BREVE */
699 			else if ( cp == 0x04D8 ) { rdfstore_utf8_cp_to_utf8( 0x04D9, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER SCHWA */
700 			else if ( cp == 0x04DA ) { rdfstore_utf8_cp_to_utf8( 0x04DB, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS */
701 			else if ( cp == 0x04DC ) { rdfstore_utf8_cp_to_utf8( 0x04DD, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS */
702 			else if ( cp == 0x04DE ) { rdfstore_utf8_cp_to_utf8( 0x04DF, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS */
703 			else if ( cp == 0x04E0 ) { rdfstore_utf8_cp_to_utf8( 0x04E1, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER ABKHASIAN DZE */
704 			else if ( cp == 0x04E2 ) { rdfstore_utf8_cp_to_utf8( 0x04E3, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER I WITH MACRON */
705 			else if ( cp == 0x04E4 ) { rdfstore_utf8_cp_to_utf8( 0x04E5, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER I WITH DIAERESIS */
706 			else if ( cp == 0x04E6 ) { rdfstore_utf8_cp_to_utf8( 0x04E7, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER O WITH DIAERESIS */
707 			else if ( cp == 0x04E8 ) { rdfstore_utf8_cp_to_utf8( 0x04E9, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER BARRED O */
708 			else if ( cp == 0x04EA ) { rdfstore_utf8_cp_to_utf8( 0x04EB, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS */
709 			else if ( cp == 0x04EC ) { rdfstore_utf8_cp_to_utf8( 0x04ED, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER E WITH DIAERESIS */
710 			else if ( cp == 0x04EE ) { rdfstore_utf8_cp_to_utf8( 0x04EF, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER U WITH MACRON */
711 			else if ( cp == 0x04F0 ) { rdfstore_utf8_cp_to_utf8( 0x04F1, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER U WITH DIAERESIS */
712 			else if ( cp == 0x04F2 ) { rdfstore_utf8_cp_to_utf8( 0x04F3, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE */
713 			else if ( cp == 0x04F4 ) { rdfstore_utf8_cp_to_utf8( 0x04F5, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS */
714 			else if ( cp == 0x04F8 ) { rdfstore_utf8_cp_to_utf8( 0x04F9, &utf8_size, utf8_buff ); } /*  CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS */
715 			else if ( cp == 0x0531 ) { rdfstore_utf8_cp_to_utf8( 0x0561, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER AYB */
716 			else if ( cp == 0x0532 ) { rdfstore_utf8_cp_to_utf8( 0x0562, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER BEN */
717 			else if ( cp == 0x0533 ) { rdfstore_utf8_cp_to_utf8( 0x0563, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER GIM */
718 			else if ( cp == 0x0534 ) { rdfstore_utf8_cp_to_utf8( 0x0564, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER DA */
719 			else if ( cp == 0x0535 ) { rdfstore_utf8_cp_to_utf8( 0x0565, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER ECH */
720 			else if ( cp == 0x0536 ) { rdfstore_utf8_cp_to_utf8( 0x0566, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER ZA */
721 			else if ( cp == 0x0537 ) { rdfstore_utf8_cp_to_utf8( 0x0567, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER EH */
722 			else if ( cp == 0x0538 ) { rdfstore_utf8_cp_to_utf8( 0x0568, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER ET */
723 			else if ( cp == 0x0539 ) { rdfstore_utf8_cp_to_utf8( 0x0569, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER TO */
724 			else if ( cp == 0x053A ) { rdfstore_utf8_cp_to_utf8( 0x056A, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER ZHE */
725 			else if ( cp == 0x053B ) { rdfstore_utf8_cp_to_utf8( 0x056B, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER INI */
726 			else if ( cp == 0x053C ) { rdfstore_utf8_cp_to_utf8( 0x056C, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER LIWN */
727 			else if ( cp == 0x053D ) { rdfstore_utf8_cp_to_utf8( 0x056D, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER XEH */
728 			else if ( cp == 0x053E ) { rdfstore_utf8_cp_to_utf8( 0x056E, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER CA */
729 			else if ( cp == 0x053F ) { rdfstore_utf8_cp_to_utf8( 0x056F, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER KEN */
730 			else if ( cp == 0x0540 ) { rdfstore_utf8_cp_to_utf8( 0x0570, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER HO */
731 			else if ( cp == 0x0541 ) { rdfstore_utf8_cp_to_utf8( 0x0571, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER JA */
732 			else if ( cp == 0x0542 ) { rdfstore_utf8_cp_to_utf8( 0x0572, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER GHAD */
733 			else if ( cp == 0x0543 ) { rdfstore_utf8_cp_to_utf8( 0x0573, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER CHEH */
734 			else if ( cp == 0x0544 ) { rdfstore_utf8_cp_to_utf8( 0x0574, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER MEN */
735 			else if ( cp == 0x0545 ) { rdfstore_utf8_cp_to_utf8( 0x0575, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER YI */
736 			else if ( cp == 0x0546 ) { rdfstore_utf8_cp_to_utf8( 0x0576, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER NOW */
737 			else if ( cp == 0x0547 ) { rdfstore_utf8_cp_to_utf8( 0x0577, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER SHA */
738 			else if ( cp == 0x0548 ) { rdfstore_utf8_cp_to_utf8( 0x0578, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER VO */
739 			else if ( cp == 0x0549 ) { rdfstore_utf8_cp_to_utf8( 0x0579, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER CHA */
740 			else if ( cp == 0x054A ) { rdfstore_utf8_cp_to_utf8( 0x057A, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER PEH */
741 			else if ( cp == 0x054B ) { rdfstore_utf8_cp_to_utf8( 0x057B, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER JHEH */
742 			else if ( cp == 0x054C ) { rdfstore_utf8_cp_to_utf8( 0x057C, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER RA */
743 			else if ( cp == 0x054D ) { rdfstore_utf8_cp_to_utf8( 0x057D, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER SEH */
744 			else if ( cp == 0x054E ) { rdfstore_utf8_cp_to_utf8( 0x057E, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER VEW */
745 			else if ( cp == 0x054F ) { rdfstore_utf8_cp_to_utf8( 0x057F, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER TIWN */
746 			else if ( cp == 0x0550 ) { rdfstore_utf8_cp_to_utf8( 0x0580, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER REH */
747 			else if ( cp == 0x0551 ) { rdfstore_utf8_cp_to_utf8( 0x0581, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER CO */
748 			else if ( cp == 0x0552 ) { rdfstore_utf8_cp_to_utf8( 0x0582, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER YIWN */
749 			else if ( cp == 0x0553 ) { rdfstore_utf8_cp_to_utf8( 0x0583, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER PIWR */
750 			else if ( cp == 0x0554 ) { rdfstore_utf8_cp_to_utf8( 0x0584, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER KEH */
751 			else if ( cp == 0x0555 ) { rdfstore_utf8_cp_to_utf8( 0x0585, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER OH */
752 			else if ( cp == 0x0556 ) { rdfstore_utf8_cp_to_utf8( 0x0586, &utf8_size, utf8_buff ); } /*  ARMENIAN CAPITAL LETTER FEH */
753 			else if ( cp == 0x0587 ) { rdfstore_utf8_cp_to_utf8( 0x0565, &utf8_size, utf8_buff );   /*  ARMENIAN SMALL LIGATURE ECH YIWN */
754 			                           rdfstore_utf8_cp_to_utf8( 0x0582, &utf8_size, utf8_buff ); }
755 			else if ( cp == 0x1E00 ) { rdfstore_utf8_cp_to_utf8( 0x1E01, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH RING BELOW */
756 			else if ( cp == 0x1E02 ) { rdfstore_utf8_cp_to_utf8( 0x1E03, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER B WITH DOT ABOVE */
757 			else if ( cp == 0x1E04 ) { rdfstore_utf8_cp_to_utf8( 0x1E05, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER B WITH DOT BELOW */
758 			else if ( cp == 0x1E06 ) { rdfstore_utf8_cp_to_utf8( 0x1E07, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER B WITH LINE BELOW */
759 			else if ( cp == 0x1E08 ) { rdfstore_utf8_cp_to_utf8( 0x1E09, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE */
760 			else if ( cp == 0x1E0A ) { rdfstore_utf8_cp_to_utf8( 0x1E0B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER D WITH DOT ABOVE */
761 			else if ( cp == 0x1E0C ) { rdfstore_utf8_cp_to_utf8( 0x1E0D, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER D WITH DOT BELOW */
762 			else if ( cp == 0x1E0E ) { rdfstore_utf8_cp_to_utf8( 0x1E0F, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER D WITH LINE BELOW */
763 			else if ( cp == 0x1E10 ) { rdfstore_utf8_cp_to_utf8( 0x1E11, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER D WITH CEDILLA */
764 			else if ( cp == 0x1E12 ) { rdfstore_utf8_cp_to_utf8( 0x1E13, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW */
765 			else if ( cp == 0x1E14 ) { rdfstore_utf8_cp_to_utf8( 0x1E15, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH MACRON AND GRAVE */
766 			else if ( cp == 0x1E16 ) { rdfstore_utf8_cp_to_utf8( 0x1E17, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH MACRON AND ACUTE */
767 			else if ( cp == 0x1E18 ) { rdfstore_utf8_cp_to_utf8( 0x1E19, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW */
768 			else if ( cp == 0x1E1A ) { rdfstore_utf8_cp_to_utf8( 0x1E1B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH TILDE BELOW */
769 			else if ( cp == 0x1E1C ) { rdfstore_utf8_cp_to_utf8( 0x1E1D, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE */
770 			else if ( cp == 0x1E1E ) { rdfstore_utf8_cp_to_utf8( 0x1E1F, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER F WITH DOT ABOVE */
771 			else if ( cp == 0x1E20 ) { rdfstore_utf8_cp_to_utf8( 0x1E21, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER G WITH MACRON */
772 			else if ( cp == 0x1E22 ) { rdfstore_utf8_cp_to_utf8( 0x1E23, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER H WITH DOT ABOVE */
773 			else if ( cp == 0x1E24 ) { rdfstore_utf8_cp_to_utf8( 0x1E25, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER H WITH DOT BELOW */
774 			else if ( cp == 0x1E26 ) { rdfstore_utf8_cp_to_utf8( 0x1E27, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER H WITH DIAERESIS */
775 			else if ( cp == 0x1E28 ) { rdfstore_utf8_cp_to_utf8( 0x1E29, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER H WITH CEDILLA */
776 			else if ( cp == 0x1E2A ) { rdfstore_utf8_cp_to_utf8( 0x1E2B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER H WITH BREVE BELOW */
777 			else if ( cp == 0x1E2C ) { rdfstore_utf8_cp_to_utf8( 0x1E2D, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER I WITH TILDE BELOW */
778 			else if ( cp == 0x1E2E ) { rdfstore_utf8_cp_to_utf8( 0x1E2F, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE */
779 			else if ( cp == 0x1E30 ) { rdfstore_utf8_cp_to_utf8( 0x1E31, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER K WITH ACUTE */
780 			else if ( cp == 0x1E32 ) { rdfstore_utf8_cp_to_utf8( 0x1E33, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER K WITH DOT BELOW */
781 			else if ( cp == 0x1E34 ) { rdfstore_utf8_cp_to_utf8( 0x1E35, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER K WITH LINE BELOW */
782 			else if ( cp == 0x1E36 ) { rdfstore_utf8_cp_to_utf8( 0x1E37, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER L WITH DOT BELOW */
783 			else if ( cp == 0x1E38 ) { rdfstore_utf8_cp_to_utf8( 0x1E39, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON */
784 			else if ( cp == 0x1E3A ) { rdfstore_utf8_cp_to_utf8( 0x1E3B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER L WITH LINE BELOW */
785 			else if ( cp == 0x1E3C ) { rdfstore_utf8_cp_to_utf8( 0x1E3D, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW */
786 			else if ( cp == 0x1E3E ) { rdfstore_utf8_cp_to_utf8( 0x1E3F, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER M WITH ACUTE */
787 			else if ( cp == 0x1E40 ) { rdfstore_utf8_cp_to_utf8( 0x1E41, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER M WITH DOT ABOVE */
788 			else if ( cp == 0x1E42 ) { rdfstore_utf8_cp_to_utf8( 0x1E43, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER M WITH DOT BELOW */
789 			else if ( cp == 0x1E44 ) { rdfstore_utf8_cp_to_utf8( 0x1E45, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER N WITH DOT ABOVE */
790 			else if ( cp == 0x1E46 ) { rdfstore_utf8_cp_to_utf8( 0x1E47, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER N WITH DOT BELOW */
791 			else if ( cp == 0x1E48 ) { rdfstore_utf8_cp_to_utf8( 0x1E49, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER N WITH LINE BELOW */
792 			else if ( cp == 0x1E4A ) { rdfstore_utf8_cp_to_utf8( 0x1E4B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW */
793 			else if ( cp == 0x1E4C ) { rdfstore_utf8_cp_to_utf8( 0x1E4D, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH TILDE AND ACUTE */
794 			else if ( cp == 0x1E4E ) { rdfstore_utf8_cp_to_utf8( 0x1E4F, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS */
795 			else if ( cp == 0x1E50 ) { rdfstore_utf8_cp_to_utf8( 0x1E51, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH MACRON AND GRAVE */
796 			else if ( cp == 0x1E52 ) { rdfstore_utf8_cp_to_utf8( 0x1E53, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH MACRON AND ACUTE */
797 			else if ( cp == 0x1E54 ) { rdfstore_utf8_cp_to_utf8( 0x1E55, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER P WITH ACUTE */
798 			else if ( cp == 0x1E56 ) { rdfstore_utf8_cp_to_utf8( 0x1E57, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER P WITH DOT ABOVE */
799 			else if ( cp == 0x1E58 ) { rdfstore_utf8_cp_to_utf8( 0x1E59, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER R WITH DOT ABOVE */
800 			else if ( cp == 0x1E5A ) { rdfstore_utf8_cp_to_utf8( 0x1E5B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER R WITH DOT BELOW */
801 			else if ( cp == 0x1E5C ) { rdfstore_utf8_cp_to_utf8( 0x1E5D, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON */
802 			else if ( cp == 0x1E5E ) { rdfstore_utf8_cp_to_utf8( 0x1E5F, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER R WITH LINE BELOW */
803 			else if ( cp == 0x1E60 ) { rdfstore_utf8_cp_to_utf8( 0x1E61, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER S WITH DOT ABOVE */
804 			else if ( cp == 0x1E62 ) { rdfstore_utf8_cp_to_utf8( 0x1E63, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER S WITH DOT BELOW */
805 			else if ( cp == 0x1E64 ) { rdfstore_utf8_cp_to_utf8( 0x1E65, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE */
806 			else if ( cp == 0x1E66 ) { rdfstore_utf8_cp_to_utf8( 0x1E67, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE */
807 			else if ( cp == 0x1E68 ) { rdfstore_utf8_cp_to_utf8( 0x1E69, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE */
808 			else if ( cp == 0x1E6A ) { rdfstore_utf8_cp_to_utf8( 0x1E6B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER T WITH DOT ABOVE */
809 			else if ( cp == 0x1E6C ) { rdfstore_utf8_cp_to_utf8( 0x1E6D, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER T WITH DOT BELOW */
810 			else if ( cp == 0x1E6E ) { rdfstore_utf8_cp_to_utf8( 0x1E6F, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER T WITH LINE BELOW */
811 			else if ( cp == 0x1E70 ) { rdfstore_utf8_cp_to_utf8( 0x1E71, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW */
812 			else if ( cp == 0x1E72 ) { rdfstore_utf8_cp_to_utf8( 0x1E73, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH DIAERESIS BELOW */
813 			else if ( cp == 0x1E74 ) { rdfstore_utf8_cp_to_utf8( 0x1E75, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH TILDE BELOW */
814 			else if ( cp == 0x1E76 ) { rdfstore_utf8_cp_to_utf8( 0x1E77, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW */
815 			else if ( cp == 0x1E78 ) { rdfstore_utf8_cp_to_utf8( 0x1E79, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH TILDE AND ACUTE */
816 			else if ( cp == 0x1E7A ) { rdfstore_utf8_cp_to_utf8( 0x1E7B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS */
817 			else if ( cp == 0x1E7C ) { rdfstore_utf8_cp_to_utf8( 0x1E7D, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER V WITH TILDE */
818 			else if ( cp == 0x1E7E ) { rdfstore_utf8_cp_to_utf8( 0x1E7F, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER V WITH DOT BELOW */
819 			else if ( cp == 0x1E80 ) { rdfstore_utf8_cp_to_utf8( 0x1E81, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER W WITH GRAVE */
820 			else if ( cp == 0x1E82 ) { rdfstore_utf8_cp_to_utf8( 0x1E83, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER W WITH ACUTE */
821 			else if ( cp == 0x1E84 ) { rdfstore_utf8_cp_to_utf8( 0x1E85, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER W WITH DIAERESIS */
822 			else if ( cp == 0x1E86 ) { rdfstore_utf8_cp_to_utf8( 0x1E87, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER W WITH DOT ABOVE */
823 			else if ( cp == 0x1E88 ) { rdfstore_utf8_cp_to_utf8( 0x1E89, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER W WITH DOT BELOW */
824 			else if ( cp == 0x1E8A ) { rdfstore_utf8_cp_to_utf8( 0x1E8B, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER X WITH DOT ABOVE */
825 			else if ( cp == 0x1E8C ) { rdfstore_utf8_cp_to_utf8( 0x1E8D, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER X WITH DIAERESIS */
826 			else if ( cp == 0x1E8E ) { rdfstore_utf8_cp_to_utf8( 0x1E8F, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Y WITH DOT ABOVE */
827 			else if ( cp == 0x1E90 ) { rdfstore_utf8_cp_to_utf8( 0x1E91, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Z WITH CIRCUMFLEX */
828 			else if ( cp == 0x1E92 ) { rdfstore_utf8_cp_to_utf8( 0x1E93, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Z WITH DOT BELOW */
829 			else if ( cp == 0x1E94 ) { rdfstore_utf8_cp_to_utf8( 0x1E95, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Z WITH LINE BELOW */
830 			else if ( cp == 0x1E96 ) { rdfstore_utf8_cp_to_utf8( 0x0068, &utf8_size, utf8_buff );   /*  LATIN SMALL LETTER H WITH LINE BELOW */
831 			                           rdfstore_utf8_cp_to_utf8( 0x0331, &utf8_size, utf8_buff ); }
832 			else if ( cp == 0x1E97 ) { rdfstore_utf8_cp_to_utf8( 0x0074, &utf8_size, utf8_buff );   /*  LATIN SMALL LETTER T WITH DIAERESIS */
833 			                           rdfstore_utf8_cp_to_utf8( 0x0308, &utf8_size, utf8_buff ); }
834 			else if ( cp == 0x1E98 ) { rdfstore_utf8_cp_to_utf8( 0x0077, &utf8_size, utf8_buff );   /*  LATIN SMALL LETTER W WITH RING ABOVE */
835 			                           rdfstore_utf8_cp_to_utf8( 0x030A, &utf8_size, utf8_buff ); }
836 			else if ( cp == 0x1E99 ) { rdfstore_utf8_cp_to_utf8( 0x0079, &utf8_size, utf8_buff );   /*  LATIN SMALL LETTER Y WITH RING ABOVE */
837 			                           rdfstore_utf8_cp_to_utf8( 0x030A, &utf8_size, utf8_buff ); }
838 			else if ( cp == 0x1E9A ) { rdfstore_utf8_cp_to_utf8( 0x0061, &utf8_size, utf8_buff );   /*  LATIN SMALL LETTER A WITH RIGHT HALF RING */
839 			                           rdfstore_utf8_cp_to_utf8( 0x02BE, &utf8_size, utf8_buff ); }
840 			else if ( cp == 0x1E9B ) { rdfstore_utf8_cp_to_utf8( 0x1E61, &utf8_size, utf8_buff ); } /*  LATIN SMALL LETTER LONG S WITH DOT ABOVE */
841 			else if ( cp == 0x1EA0 ) { rdfstore_utf8_cp_to_utf8( 0x1EA1, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH DOT BELOW */
842 			else if ( cp == 0x1EA2 ) { rdfstore_utf8_cp_to_utf8( 0x1EA3, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH HOOK ABOVE */
843 			else if ( cp == 0x1EA4 ) { rdfstore_utf8_cp_to_utf8( 0x1EA5, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE */
844 			else if ( cp == 0x1EA6 ) { rdfstore_utf8_cp_to_utf8( 0x1EA7, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE */
845 			else if ( cp == 0x1EA8 ) { rdfstore_utf8_cp_to_utf8( 0x1EA9, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE */
846 			else if ( cp == 0x1EAA ) { rdfstore_utf8_cp_to_utf8( 0x1EAB, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE */
847 			else if ( cp == 0x1EAC ) { rdfstore_utf8_cp_to_utf8( 0x1EAD, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW */
848 			else if ( cp == 0x1EAE ) { rdfstore_utf8_cp_to_utf8( 0x1EAF, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH BREVE AND ACUTE */
849 			else if ( cp == 0x1EB0 ) { rdfstore_utf8_cp_to_utf8( 0x1EB1, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH BREVE AND GRAVE */
850 			else if ( cp == 0x1EB2 ) { rdfstore_utf8_cp_to_utf8( 0x1EB3, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE */
851 			else if ( cp == 0x1EB4 ) { rdfstore_utf8_cp_to_utf8( 0x1EB5, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH BREVE AND TILDE */
852 			else if ( cp == 0x1EB6 ) { rdfstore_utf8_cp_to_utf8( 0x1EB7, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW */
853 			else if ( cp == 0x1EB8 ) { rdfstore_utf8_cp_to_utf8( 0x1EB9, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH DOT BELOW */
854 			else if ( cp == 0x1EBA ) { rdfstore_utf8_cp_to_utf8( 0x1EBB, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH HOOK ABOVE */
855 			else if ( cp == 0x1EBC ) { rdfstore_utf8_cp_to_utf8( 0x1EBD, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH TILDE */
856 			else if ( cp == 0x1EBE ) { rdfstore_utf8_cp_to_utf8( 0x1EBF, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE */
857 			else if ( cp == 0x1EC0 ) { rdfstore_utf8_cp_to_utf8( 0x1EC1, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE */
858 			else if ( cp == 0x1EC2 ) { rdfstore_utf8_cp_to_utf8( 0x1EC3, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE */
859 			else if ( cp == 0x1EC4 ) { rdfstore_utf8_cp_to_utf8( 0x1EC5, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE */
860 			else if ( cp == 0x1EC6 ) { rdfstore_utf8_cp_to_utf8( 0x1EC7, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW */
861 			else if ( cp == 0x1EC8 ) { rdfstore_utf8_cp_to_utf8( 0x1EC9, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER I WITH HOOK ABOVE */
862 			else if ( cp == 0x1ECA ) { rdfstore_utf8_cp_to_utf8( 0x1ECB, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER I WITH DOT BELOW */
863 			else if ( cp == 0x1ECC ) { rdfstore_utf8_cp_to_utf8( 0x1ECD, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH DOT BELOW */
864 			else if ( cp == 0x1ECE ) { rdfstore_utf8_cp_to_utf8( 0x1ECF, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH HOOK ABOVE */
865 			else if ( cp == 0x1ED0 ) { rdfstore_utf8_cp_to_utf8( 0x1ED1, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE */
866 			else if ( cp == 0x1ED2 ) { rdfstore_utf8_cp_to_utf8( 0x1ED3, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE */
867 			else if ( cp == 0x1ED4 ) { rdfstore_utf8_cp_to_utf8( 0x1ED5, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE */
868 			else if ( cp == 0x1ED6 ) { rdfstore_utf8_cp_to_utf8( 0x1ED7, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE */
869 			else if ( cp == 0x1ED8 ) { rdfstore_utf8_cp_to_utf8( 0x1ED9, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW */
870 			else if ( cp == 0x1EDA ) { rdfstore_utf8_cp_to_utf8( 0x1EDB, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH HORN AND ACUTE */
871 			else if ( cp == 0x1EDC ) { rdfstore_utf8_cp_to_utf8( 0x1EDD, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH HORN AND GRAVE */
872 			else if ( cp == 0x1EDE ) { rdfstore_utf8_cp_to_utf8( 0x1EDF, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE */
873 			else if ( cp == 0x1EE0 ) { rdfstore_utf8_cp_to_utf8( 0x1EE1, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH HORN AND TILDE */
874 			else if ( cp == 0x1EE2 ) { rdfstore_utf8_cp_to_utf8( 0x1EE3, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW */
875 			else if ( cp == 0x1EE4 ) { rdfstore_utf8_cp_to_utf8( 0x1EE5, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH DOT BELOW */
876 			else if ( cp == 0x1EE6 ) { rdfstore_utf8_cp_to_utf8( 0x1EE7, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH HOOK ABOVE */
877 			else if ( cp == 0x1EE8 ) { rdfstore_utf8_cp_to_utf8( 0x1EE9, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH HORN AND ACUTE */
878 			else if ( cp == 0x1EEA ) { rdfstore_utf8_cp_to_utf8( 0x1EEB, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH HORN AND GRAVE */
879 			else if ( cp == 0x1EEC ) { rdfstore_utf8_cp_to_utf8( 0x1EED, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE */
880 			else if ( cp == 0x1EEE ) { rdfstore_utf8_cp_to_utf8( 0x1EEF, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH HORN AND TILDE */
881 			else if ( cp == 0x1EF0 ) { rdfstore_utf8_cp_to_utf8( 0x1EF1, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW */
882 			else if ( cp == 0x1EF2 ) { rdfstore_utf8_cp_to_utf8( 0x1EF3, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Y WITH GRAVE */
883 			else if ( cp == 0x1EF4 ) { rdfstore_utf8_cp_to_utf8( 0x1EF5, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Y WITH DOT BELOW */
884 			else if ( cp == 0x1EF6 ) { rdfstore_utf8_cp_to_utf8( 0x1EF7, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Y WITH HOOK ABOVE */
885 			else if ( cp == 0x1EF8 ) { rdfstore_utf8_cp_to_utf8( 0x1EF9, &utf8_size, utf8_buff ); } /*  LATIN CAPITAL LETTER Y WITH TILDE */
886 			else if ( cp == 0x1F08 ) { rdfstore_utf8_cp_to_utf8( 0x1F00, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ALPHA WITH PSILI */
887 			else if ( cp == 0x1F09 ) { rdfstore_utf8_cp_to_utf8( 0x1F01, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ALPHA WITH DASIA */
888 			else if ( cp == 0x1F0A ) { rdfstore_utf8_cp_to_utf8( 0x1F02, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA */
889 			else if ( cp == 0x1F0B ) { rdfstore_utf8_cp_to_utf8( 0x1F03, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA */
890 			else if ( cp == 0x1F0C ) { rdfstore_utf8_cp_to_utf8( 0x1F04, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA */
891 			else if ( cp == 0x1F0D ) { rdfstore_utf8_cp_to_utf8( 0x1F05, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA */
892 			else if ( cp == 0x1F0E ) { rdfstore_utf8_cp_to_utf8( 0x1F06, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI */
893 			else if ( cp == 0x1F0F ) { rdfstore_utf8_cp_to_utf8( 0x1F07, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI */
894 			else if ( cp == 0x1F18 ) { rdfstore_utf8_cp_to_utf8( 0x1F10, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER EPSILON WITH PSILI */
895 			else if ( cp == 0x1F19 ) { rdfstore_utf8_cp_to_utf8( 0x1F11, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER EPSILON WITH DASIA */
896 			else if ( cp == 0x1F1A ) { rdfstore_utf8_cp_to_utf8( 0x1F12, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA */
897 			else if ( cp == 0x1F1B ) { rdfstore_utf8_cp_to_utf8( 0x1F13, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA */
898 			else if ( cp == 0x1F1C ) { rdfstore_utf8_cp_to_utf8( 0x1F14, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA */
899 			else if ( cp == 0x1F1D ) { rdfstore_utf8_cp_to_utf8( 0x1F15, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA */
900 			else if ( cp == 0x1F28 ) { rdfstore_utf8_cp_to_utf8( 0x1F20, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ETA WITH PSILI */
901 			else if ( cp == 0x1F29 ) { rdfstore_utf8_cp_to_utf8( 0x1F21, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ETA WITH DASIA */
902 			else if ( cp == 0x1F2A ) { rdfstore_utf8_cp_to_utf8( 0x1F22, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA */
903 			else if ( cp == 0x1F2B ) { rdfstore_utf8_cp_to_utf8( 0x1F23, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA */
904 			else if ( cp == 0x1F2C ) { rdfstore_utf8_cp_to_utf8( 0x1F24, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA */
905 			else if ( cp == 0x1F2D ) { rdfstore_utf8_cp_to_utf8( 0x1F25, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA */
906 			else if ( cp == 0x1F2E ) { rdfstore_utf8_cp_to_utf8( 0x1F26, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI */
907 			else if ( cp == 0x1F2F ) { rdfstore_utf8_cp_to_utf8( 0x1F27, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI */
908 			else if ( cp == 0x1F38 ) { rdfstore_utf8_cp_to_utf8( 0x1F30, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER IOTA WITH PSILI */
909 			else if ( cp == 0x1F39 ) { rdfstore_utf8_cp_to_utf8( 0x1F31, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER IOTA WITH DASIA */
910 			else if ( cp == 0x1F3A ) { rdfstore_utf8_cp_to_utf8( 0x1F32, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA */
911 			else if ( cp == 0x1F3B ) { rdfstore_utf8_cp_to_utf8( 0x1F33, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA */
912 			else if ( cp == 0x1F3C ) { rdfstore_utf8_cp_to_utf8( 0x1F34, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA */
913 			else if ( cp == 0x1F3D ) { rdfstore_utf8_cp_to_utf8( 0x1F35, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA */
914 			else if ( cp == 0x1F3E ) { rdfstore_utf8_cp_to_utf8( 0x1F36, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI */
915 			else if ( cp == 0x1F3F ) { rdfstore_utf8_cp_to_utf8( 0x1F37, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI */
916 			else if ( cp == 0x1F48 ) { rdfstore_utf8_cp_to_utf8( 0x1F40, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMICRON WITH PSILI */
917 			else if ( cp == 0x1F49 ) { rdfstore_utf8_cp_to_utf8( 0x1F41, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMICRON WITH DASIA */
918 			else if ( cp == 0x1F4A ) { rdfstore_utf8_cp_to_utf8( 0x1F42, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA */
919 			else if ( cp == 0x1F4B ) { rdfstore_utf8_cp_to_utf8( 0x1F43, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA */
920 			else if ( cp == 0x1F4C ) { rdfstore_utf8_cp_to_utf8( 0x1F44, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA */
921 			else if ( cp == 0x1F4D ) { rdfstore_utf8_cp_to_utf8( 0x1F45, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA */
922 			else if ( cp == 0x1F50 ) { rdfstore_utf8_cp_to_utf8( 0x03C5, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER UPSILON WITH PSILI */
923 			                           rdfstore_utf8_cp_to_utf8( 0x0313, &utf8_size, utf8_buff ); }
924 			else if ( cp == 0x1F52 ) { rdfstore_utf8_cp_to_utf8( 0x03C5, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA */
925 			                           rdfstore_utf8_cp_to_utf8( 0x0313, &utf8_size, utf8_buff );
926 			                           rdfstore_utf8_cp_to_utf8( 0x0300, &utf8_size, utf8_buff ); }
927 			else if ( cp == 0x1F54 ) { rdfstore_utf8_cp_to_utf8( 0x03C5, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA */
928 			                           rdfstore_utf8_cp_to_utf8( 0x0313, &utf8_size, utf8_buff );
929 			                           rdfstore_utf8_cp_to_utf8( 0x0301, &utf8_size, utf8_buff ); }
930 			else if ( cp == 0x1F56 ) { rdfstore_utf8_cp_to_utf8( 0x03C5, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI */
931 			                           rdfstore_utf8_cp_to_utf8( 0x0313, &utf8_size, utf8_buff );
932 			                           rdfstore_utf8_cp_to_utf8( 0x0342, &utf8_size, utf8_buff ); }
933 			else if ( cp == 0x1F59 ) { rdfstore_utf8_cp_to_utf8( 0x1F51, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER UPSILON WITH DASIA */
934 			else if ( cp == 0x1F5B ) { rdfstore_utf8_cp_to_utf8( 0x1F53, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA */
935 			else if ( cp == 0x1F5D ) { rdfstore_utf8_cp_to_utf8( 0x1F55, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA */
936 			else if ( cp == 0x1F5F ) { rdfstore_utf8_cp_to_utf8( 0x1F57, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI */
937 			else if ( cp == 0x1F68 ) { rdfstore_utf8_cp_to_utf8( 0x1F60, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMEGA WITH PSILI */
938 			else if ( cp == 0x1F69 ) { rdfstore_utf8_cp_to_utf8( 0x1F61, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMEGA WITH DASIA */
939 			else if ( cp == 0x1F6A ) { rdfstore_utf8_cp_to_utf8( 0x1F62, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA */
940 			else if ( cp == 0x1F6B ) { rdfstore_utf8_cp_to_utf8( 0x1F63, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA */
941 			else if ( cp == 0x1F6C ) { rdfstore_utf8_cp_to_utf8( 0x1F64, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA */
942 			else if ( cp == 0x1F6D ) { rdfstore_utf8_cp_to_utf8( 0x1F65, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA */
943 			else if ( cp == 0x1F6E ) { rdfstore_utf8_cp_to_utf8( 0x1F66, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI */
944 			else if ( cp == 0x1F6F ) { rdfstore_utf8_cp_to_utf8( 0x1F67, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI */
945 			else if ( cp == 0x1F80 ) { rdfstore_utf8_cp_to_utf8( 0x1F00, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI */
946 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
947 			else if ( cp == 0x1F81 ) { rdfstore_utf8_cp_to_utf8( 0x1F01, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI */
948 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
949 			else if ( cp == 0x1F82 ) { rdfstore_utf8_cp_to_utf8( 0x1F02, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI */
950 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
951 			else if ( cp == 0x1F83 ) { rdfstore_utf8_cp_to_utf8( 0x1F03, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI */
952 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
953 			else if ( cp == 0x1F84 ) { rdfstore_utf8_cp_to_utf8( 0x1F04, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI */
954 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
955 			else if ( cp == 0x1F85 ) { rdfstore_utf8_cp_to_utf8( 0x1F05, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI */
956 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
957 			else if ( cp == 0x1F86 ) { rdfstore_utf8_cp_to_utf8( 0x1F06, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */
958 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
959 			else if ( cp == 0x1F87 ) { rdfstore_utf8_cp_to_utf8( 0x1F07, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */
960 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
961 			else if ( cp == 0x1F88 ) { rdfstore_utf8_cp_to_utf8( 0x1F00, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI */
962 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
963 			else if ( cp == 0x1F89 ) { rdfstore_utf8_cp_to_utf8( 0x1F01, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI */
964 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
965 			else if ( cp == 0x1F8A ) { rdfstore_utf8_cp_to_utf8( 0x1F02, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI */
966 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
967 			else if ( cp == 0x1F8B ) { rdfstore_utf8_cp_to_utf8( 0x1F03, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI */
968 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
969 			else if ( cp == 0x1F8C ) { rdfstore_utf8_cp_to_utf8( 0x1F04, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI */
970 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
971 			else if ( cp == 0x1F8D ) { rdfstore_utf8_cp_to_utf8( 0x1F05, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI */
972 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
973 			else if ( cp == 0x1F8E ) { rdfstore_utf8_cp_to_utf8( 0x1F06, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI */
974 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
975 			else if ( cp == 0x1F8F ) { rdfstore_utf8_cp_to_utf8( 0x1F07, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI */
976 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
977 			else if ( cp == 0x1F90 ) { rdfstore_utf8_cp_to_utf8( 0x1F20, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI */
978 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
979 			else if ( cp == 0x1F91 ) { rdfstore_utf8_cp_to_utf8( 0x1F21, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI */
980 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
981 			else if ( cp == 0x1F92 ) { rdfstore_utf8_cp_to_utf8( 0x1F22, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI */
982 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
983 			else if ( cp == 0x1F93 ) { rdfstore_utf8_cp_to_utf8( 0x1F23, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI */
984 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
985 			else if ( cp == 0x1F94 ) { rdfstore_utf8_cp_to_utf8( 0x1F24, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI */
986 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
987 			else if ( cp == 0x1F95 ) { rdfstore_utf8_cp_to_utf8( 0x1F25, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI */
988 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
989 			else if ( cp == 0x1F96 ) { rdfstore_utf8_cp_to_utf8( 0x1F26, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */
990 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
991 			else if ( cp == 0x1F97 ) { rdfstore_utf8_cp_to_utf8( 0x1F27, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */
992 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
993 			else if ( cp == 0x1F98 ) { rdfstore_utf8_cp_to_utf8( 0x1F20, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI */
994 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
995 			else if ( cp == 0x1F99 ) { rdfstore_utf8_cp_to_utf8( 0x1F21, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI */
996 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
997 			else if ( cp == 0x1F9A ) { rdfstore_utf8_cp_to_utf8( 0x1F22, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI */
998 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
999 			else if ( cp == 0x1F9B ) { rdfstore_utf8_cp_to_utf8( 0x1F23, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI */
1000 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1001 			else if ( cp == 0x1F9C ) { rdfstore_utf8_cp_to_utf8( 0x1F24, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI */
1002 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1003 			else if ( cp == 0x1F9D ) { rdfstore_utf8_cp_to_utf8( 0x1F25, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI */
1004 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1005 			else if ( cp == 0x1F9E ) { rdfstore_utf8_cp_to_utf8( 0x1F26, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI */
1006 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1007 			else if ( cp == 0x1F9F ) { rdfstore_utf8_cp_to_utf8( 0x1F27, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI */
1008 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1009 			else if ( cp == 0x1FA0 ) { rdfstore_utf8_cp_to_utf8( 0x1F60, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI */
1010 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1011 			else if ( cp == 0x1FA1 ) { rdfstore_utf8_cp_to_utf8( 0x1F61, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI */
1012 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1013 			else if ( cp == 0x1FA2 ) { rdfstore_utf8_cp_to_utf8( 0x1F62, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI */
1014 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1015 			else if ( cp == 0x1FA3 ) { rdfstore_utf8_cp_to_utf8( 0x1F63, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI */
1016 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1017 			else if ( cp == 0x1FA4 ) { rdfstore_utf8_cp_to_utf8( 0x1F64, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI */
1018 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1019 			else if ( cp == 0x1FA5 ) { rdfstore_utf8_cp_to_utf8( 0x1F65, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI */
1020 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1021 			else if ( cp == 0x1FA6 ) { rdfstore_utf8_cp_to_utf8( 0x1F66, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */
1022 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1023 			else if ( cp == 0x1FA7 ) { rdfstore_utf8_cp_to_utf8( 0x1F67, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */
1024 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1025 			else if ( cp == 0x1FA8 ) { rdfstore_utf8_cp_to_utf8( 0x1F60, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI */
1026 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1027 			else if ( cp == 0x1FA9 ) { rdfstore_utf8_cp_to_utf8( 0x1F61, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI */
1028 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1029 			else if ( cp == 0x1FAA ) { rdfstore_utf8_cp_to_utf8( 0x1F62, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI */
1030 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1031 			else if ( cp == 0x1FAB ) { rdfstore_utf8_cp_to_utf8( 0x1F63, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI */
1032 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1033 			else if ( cp == 0x1FAC ) { rdfstore_utf8_cp_to_utf8( 0x1F64, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI */
1034 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1035 			else if ( cp == 0x1FAD ) { rdfstore_utf8_cp_to_utf8( 0x1F65, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI */
1036 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1037 			else if ( cp == 0x1FAE ) { rdfstore_utf8_cp_to_utf8( 0x1F66, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI */
1038 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1039 			else if ( cp == 0x1FAF ) { rdfstore_utf8_cp_to_utf8( 0x1F67, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI */
1040 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1041 			else if ( cp == 0x1FB2 ) { rdfstore_utf8_cp_to_utf8( 0x1F70, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI */
1042 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1043 			else if ( cp == 0x1FB3 ) { rdfstore_utf8_cp_to_utf8( 0x03B1, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI */
1044 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1045 			else if ( cp == 0x1FB4 ) { rdfstore_utf8_cp_to_utf8( 0x03AC, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI */
1046 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1047 			else if ( cp == 0x1FB6 ) { rdfstore_utf8_cp_to_utf8( 0x03B1, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ALPHA WITH PERISPOMENI */
1048 			                           rdfstore_utf8_cp_to_utf8( 0x0342, &utf8_size, utf8_buff ); }
1049 			else if ( cp == 0x1FB7 ) { rdfstore_utf8_cp_to_utf8( 0x03B1, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI */
1050 			                           rdfstore_utf8_cp_to_utf8( 0x0342, &utf8_size, utf8_buff );
1051 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1052 			else if ( cp == 0x1FB8 ) { rdfstore_utf8_cp_to_utf8( 0x1FB0, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ALPHA WITH VRACHY */
1053 			else if ( cp == 0x1FB9 ) { rdfstore_utf8_cp_to_utf8( 0x1FB1, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ALPHA WITH MACRON */
1054 			else if ( cp == 0x1FBA ) { rdfstore_utf8_cp_to_utf8( 0x1F70, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ALPHA WITH VARIA */
1055 			else if ( cp == 0x1FBB ) { rdfstore_utf8_cp_to_utf8( 0x1F71, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ALPHA WITH OXIA */
1056 			else if ( cp == 0x1FBC ) { rdfstore_utf8_cp_to_utf8( 0x03B1, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI */
1057 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1058 			else if ( cp == 0x1FBE ) { rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); } /*  GREEK PROSGEGRAMMENI */
1059 			else if ( cp == 0x1FC2 ) { rdfstore_utf8_cp_to_utf8( 0x1F74, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI */
1060 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1061 			else if ( cp == 0x1FC3 ) { rdfstore_utf8_cp_to_utf8( 0x03B7, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI */
1062 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1063 			else if ( cp == 0x1FC4 ) { rdfstore_utf8_cp_to_utf8( 0x03AE, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI */
1064 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1065 			else if ( cp == 0x1FC6 ) { rdfstore_utf8_cp_to_utf8( 0x03B7, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ETA WITH PERISPOMENI */
1066 			                           rdfstore_utf8_cp_to_utf8( 0x0342, &utf8_size, utf8_buff ); }
1067 			else if ( cp == 0x1FC7 ) { rdfstore_utf8_cp_to_utf8( 0x03B7, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI */
1068 			                           rdfstore_utf8_cp_to_utf8( 0x0342, &utf8_size, utf8_buff );
1069 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1070 			else if ( cp == 0x1FC8 ) { rdfstore_utf8_cp_to_utf8( 0x1F72, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER EPSILON WITH VARIA */
1071 			else if ( cp == 0x1FC9 ) { rdfstore_utf8_cp_to_utf8( 0x1F73, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER EPSILON WITH OXIA */
1072 			else if ( cp == 0x1FCA ) { rdfstore_utf8_cp_to_utf8( 0x1F74, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ETA WITH VARIA */
1073 			else if ( cp == 0x1FCB ) { rdfstore_utf8_cp_to_utf8( 0x1F75, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER ETA WITH OXIA */
1074 			else if ( cp == 0x1FCC ) { rdfstore_utf8_cp_to_utf8( 0x03B7, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI */
1075 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1076 			else if ( cp == 0x1FD2 ) { rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA */
1077 			                           rdfstore_utf8_cp_to_utf8( 0x0308, &utf8_size, utf8_buff );
1078 			                           rdfstore_utf8_cp_to_utf8( 0x0300, &utf8_size, utf8_buff ); }
1079 			else if ( cp == 0x1FD3 ) { rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA */
1080 			                           rdfstore_utf8_cp_to_utf8( 0x0308, &utf8_size, utf8_buff );
1081 			                           rdfstore_utf8_cp_to_utf8( 0x0301, &utf8_size, utf8_buff ); }
1082 			else if ( cp == 0x1FD6 ) { rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER IOTA WITH PERISPOMENI */
1083 			                           rdfstore_utf8_cp_to_utf8( 0x0342, &utf8_size, utf8_buff ); }
1084 			else if ( cp == 0x1FD7 ) { rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI */
1085 			                           rdfstore_utf8_cp_to_utf8( 0x0308, &utf8_size, utf8_buff );
1086 			                           rdfstore_utf8_cp_to_utf8( 0x0342, &utf8_size, utf8_buff ); }
1087 			else if ( cp == 0x1FD8 ) { rdfstore_utf8_cp_to_utf8( 0x1FD0, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER IOTA WITH VRACHY */
1088 			else if ( cp == 0x1FD9 ) { rdfstore_utf8_cp_to_utf8( 0x1FD1, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER IOTA WITH MACRON */
1089 			else if ( cp == 0x1FDA ) { rdfstore_utf8_cp_to_utf8( 0x1F76, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER IOTA WITH VARIA */
1090 			else if ( cp == 0x1FDB ) { rdfstore_utf8_cp_to_utf8( 0x1F77, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER IOTA WITH OXIA */
1091 			else if ( cp == 0x1FE2 ) { rdfstore_utf8_cp_to_utf8( 0x03C5, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA */
1092 			                           rdfstore_utf8_cp_to_utf8( 0x0308, &utf8_size, utf8_buff );
1093 			                           rdfstore_utf8_cp_to_utf8( 0x0300, &utf8_size, utf8_buff ); }
1094 			else if ( cp == 0x1FE3 ) { rdfstore_utf8_cp_to_utf8( 0x03C5, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA */
1095 			                           rdfstore_utf8_cp_to_utf8( 0x0308, &utf8_size, utf8_buff );
1096 			                           rdfstore_utf8_cp_to_utf8( 0x0301, &utf8_size, utf8_buff ); }
1097 			else if ( cp == 0x1FE4 ) { rdfstore_utf8_cp_to_utf8( 0x03C1, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER RHO WITH PSILI */
1098 			                           rdfstore_utf8_cp_to_utf8( 0x0313, &utf8_size, utf8_buff ); }
1099 			else if ( cp == 0x1FE6 ) { rdfstore_utf8_cp_to_utf8( 0x03C5, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER UPSILON WITH PERISPOMENI */
1100 			                           rdfstore_utf8_cp_to_utf8( 0x0342, &utf8_size, utf8_buff ); }
1101 			else if ( cp == 0x1FE7 ) { rdfstore_utf8_cp_to_utf8( 0x03C5, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI */
1102 			                           rdfstore_utf8_cp_to_utf8( 0x0308, &utf8_size, utf8_buff );
1103 			                           rdfstore_utf8_cp_to_utf8( 0x0342, &utf8_size, utf8_buff ); }
1104 			else if ( cp == 0x1FE8 ) { rdfstore_utf8_cp_to_utf8( 0x1FE0, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER UPSILON WITH VRACHY */
1105 			else if ( cp == 0x1FE9 ) { rdfstore_utf8_cp_to_utf8( 0x1FE1, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER UPSILON WITH MACRON */
1106 			else if ( cp == 0x1FEA ) { rdfstore_utf8_cp_to_utf8( 0x1F7A, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER UPSILON WITH VARIA */
1107 			else if ( cp == 0x1FEB ) { rdfstore_utf8_cp_to_utf8( 0x1F7B, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER UPSILON WITH OXIA */
1108 			else if ( cp == 0x1FEC ) { rdfstore_utf8_cp_to_utf8( 0x1FE5, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER RHO WITH DASIA */
1109 			else if ( cp == 0x1FF2 ) { rdfstore_utf8_cp_to_utf8( 0x1F7C, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI */
1110 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1111 			else if ( cp == 0x1FF3 ) { rdfstore_utf8_cp_to_utf8( 0x03C9, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI */
1112 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1113 			else if ( cp == 0x1FF4 ) { rdfstore_utf8_cp_to_utf8( 0x03CE, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI */
1114 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1115 			else if ( cp == 0x1FF6 ) { rdfstore_utf8_cp_to_utf8( 0x03C9, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER OMEGA WITH PERISPOMENI */
1116 			                           rdfstore_utf8_cp_to_utf8( 0x0342, &utf8_size, utf8_buff ); }
1117 			else if ( cp == 0x1FF7 ) { rdfstore_utf8_cp_to_utf8( 0x03C9, &utf8_size, utf8_buff );   /*  GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI */
1118 			                           rdfstore_utf8_cp_to_utf8( 0x0342, &utf8_size, utf8_buff );
1119 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1120 			else if ( cp == 0x1FF8 ) { rdfstore_utf8_cp_to_utf8( 0x1F78, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMICRON WITH VARIA */
1121 			else if ( cp == 0x1FF9 ) { rdfstore_utf8_cp_to_utf8( 0x1F79, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMICRON WITH OXIA */
1122 			else if ( cp == 0x1FFA ) { rdfstore_utf8_cp_to_utf8( 0x1F7C, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMEGA WITH VARIA */
1123 			else if ( cp == 0x1FFB ) { rdfstore_utf8_cp_to_utf8( 0x1F7D, &utf8_size, utf8_buff ); } /*  GREEK CAPITAL LETTER OMEGA WITH OXIA */
1124 			else if ( cp == 0x1FFC ) { rdfstore_utf8_cp_to_utf8( 0x03C9, &utf8_size, utf8_buff );   /*  GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI */
1125 			                           rdfstore_utf8_cp_to_utf8( 0x03B9, &utf8_size, utf8_buff ); }
1126 			else if ( cp == 0x2126 ) { rdfstore_utf8_cp_to_utf8( 0x03C9, &utf8_size, utf8_buff ); } /*  OHM SIGN */
1127 			else if ( cp == 0x212A ) { rdfstore_utf8_cp_to_utf8( 0x006B, &utf8_size, utf8_buff ); } /*  KELVIN SIGN */
1128 			else if ( cp == 0x212B ) { rdfstore_utf8_cp_to_utf8( 0x00E5, &utf8_size, utf8_buff ); } /*  ANGSTROM SIGN */
1129 			else if ( cp == 0x2160 ) { rdfstore_utf8_cp_to_utf8( 0x2170, &utf8_size, utf8_buff ); } /*  ROMAN NUMERAL ONE */
1130 			else if ( cp == 0x2161 ) { rdfstore_utf8_cp_to_utf8( 0x2171, &utf8_size, utf8_buff ); } /*  ROMAN NUMERAL TWO */
1131 			else if ( cp == 0x2162 ) { rdfstore_utf8_cp_to_utf8( 0x2172, &utf8_size, utf8_buff ); } /*  ROMAN NUMERAL THREE */
1132 			else if ( cp == 0x2163 ) { rdfstore_utf8_cp_to_utf8( 0x2173, &utf8_size, utf8_buff ); } /*  ROMAN NUMERAL FOUR */
1133 			else if ( cp == 0x2164 ) { rdfstore_utf8_cp_to_utf8( 0x2174, &utf8_size, utf8_buff ); } /*  ROMAN NUMERAL FIVE */
1134 			else if ( cp == 0x2165 ) { rdfstore_utf8_cp_to_utf8( 0x2175, &utf8_size, utf8_buff ); } /*  ROMAN NUMERAL SIX */
1135 			else if ( cp == 0x2166 ) { rdfstore_utf8_cp_to_utf8( 0x2176, &utf8_size, utf8_buff ); } /*  ROMAN NUMERAL SEVEN */
1136 			else if ( cp == 0x2167 ) { rdfstore_utf8_cp_to_utf8( 0x2177, &utf8_size, utf8_buff ); } /*  ROMAN NUMERAL EIGHT */
1137 			else if ( cp == 0x2168 ) { rdfstore_utf8_cp_to_utf8( 0x2178, &utf8_size, utf8_buff ); } /*  ROMAN NUMERAL NINE */
1138 			else if ( cp == 0x2169 ) { rdfstore_utf8_cp_to_utf8( 0x2179, &utf8_size, utf8_buff ); } /*  ROMAN NUMERAL TEN */
1139 			else if ( cp == 0x216A ) { rdfstore_utf8_cp_to_utf8( 0x217A, &utf8_size, utf8_buff ); } /*  ROMAN NUMERAL ELEVEN */
1140 			else if ( cp == 0x216B ) { rdfstore_utf8_cp_to_utf8( 0x217B, &utf8_size, utf8_buff ); } /*  ROMAN NUMERAL TWELVE */
1141 			else if ( cp == 0x216C ) { rdfstore_utf8_cp_to_utf8( 0x217C, &utf8_size, utf8_buff ); } /*  ROMAN NUMERAL FIFTY */
1142 			else if ( cp == 0x216D ) { rdfstore_utf8_cp_to_utf8( 0x217D, &utf8_size, utf8_buff ); } /*  ROMAN NUMERAL ONE HUNDRED */
1143 			else if ( cp == 0x216E ) { rdfstore_utf8_cp_to_utf8( 0x217E, &utf8_size, utf8_buff ); } /*  ROMAN NUMERAL FIVE HUNDRED */
1144 			else if ( cp == 0x216F ) { rdfstore_utf8_cp_to_utf8( 0x217F, &utf8_size, utf8_buff ); } /*  ROMAN NUMERAL ONE THOUSAND */
1145 			else if ( cp == 0x24B6 ) { rdfstore_utf8_cp_to_utf8( 0x24D0, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER A */
1146 			else if ( cp == 0x24B7 ) { rdfstore_utf8_cp_to_utf8( 0x24D1, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER B */
1147 			else if ( cp == 0x24B8 ) { rdfstore_utf8_cp_to_utf8( 0x24D2, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER C */
1148 			else if ( cp == 0x24B9 ) { rdfstore_utf8_cp_to_utf8( 0x24D3, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER D */
1149 			else if ( cp == 0x24BA ) { rdfstore_utf8_cp_to_utf8( 0x24D4, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER E */
1150 			else if ( cp == 0x24BB ) { rdfstore_utf8_cp_to_utf8( 0x24D5, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER F */
1151 			else if ( cp == 0x24BC ) { rdfstore_utf8_cp_to_utf8( 0x24D6, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER G */
1152 			else if ( cp == 0x24BD ) { rdfstore_utf8_cp_to_utf8( 0x24D7, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER H */
1153 			else if ( cp == 0x24BE ) { rdfstore_utf8_cp_to_utf8( 0x24D8, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER I */
1154 			else if ( cp == 0x24BF ) { rdfstore_utf8_cp_to_utf8( 0x24D9, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER J */
1155 			else if ( cp == 0x24C0 ) { rdfstore_utf8_cp_to_utf8( 0x24DA, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER K */
1156 			else if ( cp == 0x24C1 ) { rdfstore_utf8_cp_to_utf8( 0x24DB, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER L */
1157 			else if ( cp == 0x24C2 ) { rdfstore_utf8_cp_to_utf8( 0x24DC, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER M */
1158 			else if ( cp == 0x24C3 ) { rdfstore_utf8_cp_to_utf8( 0x24DD, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER N */
1159 			else if ( cp == 0x24C4 ) { rdfstore_utf8_cp_to_utf8( 0x24DE, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER O */
1160 			else if ( cp == 0x24C5 ) { rdfstore_utf8_cp_to_utf8( 0x24DF, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER P */
1161 			else if ( cp == 0x24C6 ) { rdfstore_utf8_cp_to_utf8( 0x24E0, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER Q */
1162 			else if ( cp == 0x24C7 ) { rdfstore_utf8_cp_to_utf8( 0x24E1, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER R */
1163 			else if ( cp == 0x24C8 ) { rdfstore_utf8_cp_to_utf8( 0x24E2, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER S */
1164 			else if ( cp == 0x24C9 ) { rdfstore_utf8_cp_to_utf8( 0x24E3, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER T */
1165 			else if ( cp == 0x24CA ) { rdfstore_utf8_cp_to_utf8( 0x24E4, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER U */
1166 			else if ( cp == 0x24CB ) { rdfstore_utf8_cp_to_utf8( 0x24E5, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER V */
1167 			else if ( cp == 0x24CC ) { rdfstore_utf8_cp_to_utf8( 0x24E6, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER W */
1168 			else if ( cp == 0x24CD ) { rdfstore_utf8_cp_to_utf8( 0x24E7, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER X */
1169 			else if ( cp == 0x24CE ) { rdfstore_utf8_cp_to_utf8( 0x24E8, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER Y */
1170 			else if ( cp == 0x24CF ) { rdfstore_utf8_cp_to_utf8( 0x24E9, &utf8_size, utf8_buff ); } /*  CIRCLED LATIN CAPITAL LETTER Z */
1171 			else if ( cp == 0xFB00 ) { rdfstore_utf8_cp_to_utf8( 0x0066, &utf8_size, utf8_buff );   /*  LATIN SMALL LIGATURE FF */
1172 			                           rdfstore_utf8_cp_to_utf8( 0x0066, &utf8_size, utf8_buff ); }
1173 			else if ( cp == 0xFB01 ) { rdfstore_utf8_cp_to_utf8( 0x0066, &utf8_size, utf8_buff );   /*  LATIN SMALL LIGATURE FI */
1174 			                           rdfstore_utf8_cp_to_utf8( 0x0069, &utf8_size, utf8_buff ); }
1175 			else if ( cp == 0xFB02 ) { rdfstore_utf8_cp_to_utf8( 0x0066, &utf8_size, utf8_buff );   /*  LATIN SMALL LIGATURE FL */
1176 			                           rdfstore_utf8_cp_to_utf8( 0x006C, &utf8_size, utf8_buff ); }
1177 			else if ( cp == 0xFB03 ) { rdfstore_utf8_cp_to_utf8( 0x0066, &utf8_size, utf8_buff );   /*  LATIN SMALL LIGATURE FFI */
1178 			                           rdfstore_utf8_cp_to_utf8( 0x0066, &utf8_size, utf8_buff );
1179 			                           rdfstore_utf8_cp_to_utf8( 0x0069, &utf8_size, utf8_buff ); }
1180 			else if ( cp == 0xFB04 ) { rdfstore_utf8_cp_to_utf8( 0x0066, &utf8_size, utf8_buff );   /*  LATIN SMALL LIGATURE FFL */
1181 			                           rdfstore_utf8_cp_to_utf8( 0x0066, &utf8_size, utf8_buff );
1182 			                           rdfstore_utf8_cp_to_utf8( 0x006C, &utf8_size, utf8_buff ); }
1183 			else if ( cp == 0xFB05 ) { rdfstore_utf8_cp_to_utf8( 0x0073, &utf8_size, utf8_buff );   /*  LATIN SMALL LIGATURE LONG S T */
1184 			                           rdfstore_utf8_cp_to_utf8( 0x0074, &utf8_size, utf8_buff ); }
1185 			else if ( cp == 0xFB06 ) { rdfstore_utf8_cp_to_utf8( 0x0073, &utf8_size, utf8_buff );   /*  LATIN SMALL LIGATURE ST */
1186 			                           rdfstore_utf8_cp_to_utf8( 0x0074, &utf8_size, utf8_buff ); }
1187 			else if ( cp == 0xFB13 ) { rdfstore_utf8_cp_to_utf8( 0x0574, &utf8_size, utf8_buff );   /*  ARMENIAN SMALL LIGATURE MEN NOW */
1188 			                           rdfstore_utf8_cp_to_utf8( 0x0576, &utf8_size, utf8_buff ); }
1189 			else if ( cp == 0xFB14 ) { rdfstore_utf8_cp_to_utf8( 0x0574, &utf8_size, utf8_buff );   /*  ARMENIAN SMALL LIGATURE MEN ECH */
1190 			                           rdfstore_utf8_cp_to_utf8( 0x0565, &utf8_size, utf8_buff ); }
1191 			else if ( cp == 0xFB15 ) { rdfstore_utf8_cp_to_utf8( 0x0574, &utf8_size, utf8_buff );   /*  ARMENIAN SMALL LIGATURE MEN INI */
1192 			                           rdfstore_utf8_cp_to_utf8( 0x056B, &utf8_size, utf8_buff ); }
1193 			else if ( cp == 0xFB16 ) { rdfstore_utf8_cp_to_utf8( 0x057E, &utf8_size, utf8_buff );   /*  ARMENIAN SMALL LIGATURE VEW NOW */
1194 			                           rdfstore_utf8_cp_to_utf8( 0x0576, &utf8_size, utf8_buff ); }
1195 			else if ( cp == 0xFB17 ) { rdfstore_utf8_cp_to_utf8( 0x0574, &utf8_size, utf8_buff );   /*  ARMENIAN SMALL LIGATURE MEN XEH */
1196 			                           rdfstore_utf8_cp_to_utf8( 0x056D, &utf8_size, utf8_buff ); }
1197 			else if ( cp == 0xFF21 ) { rdfstore_utf8_cp_to_utf8( 0xFF41, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER A */
1198 			else if ( cp == 0xFF22 ) { rdfstore_utf8_cp_to_utf8( 0xFF42, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER B */
1199 			else if ( cp == 0xFF23 ) { rdfstore_utf8_cp_to_utf8( 0xFF43, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER C */
1200 			else if ( cp == 0xFF24 ) { rdfstore_utf8_cp_to_utf8( 0xFF44, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER D */
1201 			else if ( cp == 0xFF25 ) { rdfstore_utf8_cp_to_utf8( 0xFF45, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER E */
1202 			else if ( cp == 0xFF26 ) { rdfstore_utf8_cp_to_utf8( 0xFF46, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER F */
1203 			else if ( cp == 0xFF27 ) { rdfstore_utf8_cp_to_utf8( 0xFF47, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER G */
1204 			else if ( cp == 0xFF28 ) { rdfstore_utf8_cp_to_utf8( 0xFF48, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER H */
1205 			else if ( cp == 0xFF29 ) { rdfstore_utf8_cp_to_utf8( 0xFF49, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER I */
1206 			else if ( cp == 0xFF2A ) { rdfstore_utf8_cp_to_utf8( 0xFF4A, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER J */
1207 			else if ( cp == 0xFF2B ) { rdfstore_utf8_cp_to_utf8( 0xFF4B, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER K */
1208 			else if ( cp == 0xFF2C ) { rdfstore_utf8_cp_to_utf8( 0xFF4C, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER L */
1209 			else if ( cp == 0xFF2D ) { rdfstore_utf8_cp_to_utf8( 0xFF4D, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER M */
1210 			else if ( cp == 0xFF2E ) { rdfstore_utf8_cp_to_utf8( 0xFF4E, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER N */
1211 			else if ( cp == 0xFF2F ) { rdfstore_utf8_cp_to_utf8( 0xFF4F, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER O */
1212 			else if ( cp == 0xFF30 ) { rdfstore_utf8_cp_to_utf8( 0xFF50, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER P */
1213 			else if ( cp == 0xFF31 ) { rdfstore_utf8_cp_to_utf8( 0xFF51, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER Q */
1214 			else if ( cp == 0xFF32 ) { rdfstore_utf8_cp_to_utf8( 0xFF52, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER R */
1215 			else if ( cp == 0xFF33 ) { rdfstore_utf8_cp_to_utf8( 0xFF53, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER S */
1216 			else if ( cp == 0xFF34 ) { rdfstore_utf8_cp_to_utf8( 0xFF54, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER T */
1217 			else if ( cp == 0xFF35 ) { rdfstore_utf8_cp_to_utf8( 0xFF55, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER U */
1218 			else if ( cp == 0xFF36 ) { rdfstore_utf8_cp_to_utf8( 0xFF56, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER V */
1219 			else if ( cp == 0xFF37 ) { rdfstore_utf8_cp_to_utf8( 0xFF57, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER W */
1220 			else if ( cp == 0xFF38 ) { rdfstore_utf8_cp_to_utf8( 0xFF58, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER X */
1221 			else if ( cp == 0xFF39 ) { rdfstore_utf8_cp_to_utf8( 0xFF59, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER Y */
1222 			else if ( cp == 0xFF3A ) { rdfstore_utf8_cp_to_utf8( 0xFF5A, &utf8_size, utf8_buff ); } /*  FULLWIDTH LATIN CAPITAL LETTER Z */
1223 			else if ( cp == 0x10400 ) { rdfstore_utf8_cp_to_utf8( 0x10428, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER LONG I */
1224 			else if ( cp == 0x10401 ) { rdfstore_utf8_cp_to_utf8( 0x10429, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER LONG E */
1225 			else if ( cp == 0x10402 ) { rdfstore_utf8_cp_to_utf8( 0x1042A, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER LONG A */
1226 			else if ( cp == 0x10403 ) { rdfstore_utf8_cp_to_utf8( 0x1042B, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER LONG AH */
1227 			else if ( cp == 0x10404 ) { rdfstore_utf8_cp_to_utf8( 0x1042C, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER LONG O */
1228 			else if ( cp == 0x10405 ) { rdfstore_utf8_cp_to_utf8( 0x1042D, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER LONG OO */
1229 			else if ( cp == 0x10406 ) { rdfstore_utf8_cp_to_utf8( 0x1042E, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER SHORT I */
1230 			else if ( cp == 0x10407 ) { rdfstore_utf8_cp_to_utf8( 0x1042F, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER SHORT E */
1231 			else if ( cp == 0x10408 ) { rdfstore_utf8_cp_to_utf8( 0x10430, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER SHORT A */
1232 			else if ( cp == 0x10409 ) { rdfstore_utf8_cp_to_utf8( 0x10431, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER SHORT AH */
1233 			else if ( cp == 0x1040A ) { rdfstore_utf8_cp_to_utf8( 0x10432, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER SHORT O */
1234 			else if ( cp == 0x1040B ) { rdfstore_utf8_cp_to_utf8( 0x10433, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER SHORT OO */
1235 			else if ( cp == 0x1040C ) { rdfstore_utf8_cp_to_utf8( 0x10434, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER AY */
1236 			else if ( cp == 0x1040D ) { rdfstore_utf8_cp_to_utf8( 0x10435, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER OW */
1237 			else if ( cp == 0x1040E ) { rdfstore_utf8_cp_to_utf8( 0x10436, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER WU */
1238 			else if ( cp == 0x1040F ) { rdfstore_utf8_cp_to_utf8( 0x10437, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER YEE */
1239 			else if ( cp == 0x10410 ) { rdfstore_utf8_cp_to_utf8( 0x10438, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER H */
1240 			else if ( cp == 0x10411 ) { rdfstore_utf8_cp_to_utf8( 0x10439, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER PEE */
1241 			else if ( cp == 0x10412 ) { rdfstore_utf8_cp_to_utf8( 0x1043A, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER BEE */
1242 			else if ( cp == 0x10413 ) { rdfstore_utf8_cp_to_utf8( 0x1043B, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER TEE */
1243 			else if ( cp == 0x10414 ) { rdfstore_utf8_cp_to_utf8( 0x1043C, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER DEE */
1244 			else if ( cp == 0x10415 ) { rdfstore_utf8_cp_to_utf8( 0x1043D, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER CHEE */
1245 			else if ( cp == 0x10416 ) { rdfstore_utf8_cp_to_utf8( 0x1043E, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER JEE */
1246 			else if ( cp == 0x10417 ) { rdfstore_utf8_cp_to_utf8( 0x1043F, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER KAY */
1247 			else if ( cp == 0x10418 ) { rdfstore_utf8_cp_to_utf8( 0x10440, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER GAY */
1248 			else if ( cp == 0x10419 ) { rdfstore_utf8_cp_to_utf8( 0x10441, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER EF */
1249 			else if ( cp == 0x1041A ) { rdfstore_utf8_cp_to_utf8( 0x10442, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER VEE */
1250 			else if ( cp == 0x1041B ) { rdfstore_utf8_cp_to_utf8( 0x10443, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER ETH */
1251 			else if ( cp == 0x1041C ) { rdfstore_utf8_cp_to_utf8( 0x10444, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER THEE */
1252 			else if ( cp == 0x1041D ) { rdfstore_utf8_cp_to_utf8( 0x10445, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER ES */
1253 			else if ( cp == 0x1041E ) { rdfstore_utf8_cp_to_utf8( 0x10446, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER ZEE */
1254 			else if ( cp == 0x1041F ) { rdfstore_utf8_cp_to_utf8( 0x10447, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER ESH */
1255 			else if ( cp == 0x10420 ) { rdfstore_utf8_cp_to_utf8( 0x10448, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER ZHEE */
1256 			else if ( cp == 0x10421 ) { rdfstore_utf8_cp_to_utf8( 0x10449, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER ER */
1257 			else if ( cp == 0x10422 ) { rdfstore_utf8_cp_to_utf8( 0x1044A, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER EL */
1258 			else if ( cp == 0x10423 ) { rdfstore_utf8_cp_to_utf8( 0x1044B, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER EM */
1259 			else if ( cp == 0x10424 ) { rdfstore_utf8_cp_to_utf8( 0x1044C, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER EN */
1260 			else if ( cp == 0x10425 ) { rdfstore_utf8_cp_to_utf8( 0x1044D, &utf8_size, utf8_buff ); } /*  DESERET CAPITAL LETTER ENG */
1261 
1262 			memcpy(out+(*outsize),utf8_buff,utf8_size);
1263 			(*outsize)+=utf8_size;
1264 		};
1265 	out[(*outsize)]='\0';
1266 
1267 	return 0;
1268 	};
1269 
1270 /*
1271    convert an arbitrary bytes string to utf8
1272    the output string is stored in outbuff and the length in len
1273 */
rdfstore_utf8_string_to_utf8(int insize,unsigned char * in,int * outsize,unsigned char * out)1274 int rdfstore_utf8_string_to_utf8(
1275         int insize,
1276         unsigned char * in,
1277         int * outsize,
1278         unsigned char * out
1279 	) {
1280 	register unsigned int i,j,step=0;
1281 	unsigned int utf8_size=0;
1282         unsigned char utf8_buff[RDFSTORE_UTF8_MAXLEN+1]; /* one utf8 char */
1283 
1284 	(*outsize)=0;
1285 
1286         for(i=0,j=0; i<insize; i+=step) {
1287 		if ( !( rdfstore_utf8_is_utf8( in+i, &utf8_size ) ) ) {
1288                 	utf8_size=0;
1289 			bzero(utf8_buff,RDFSTORE_UTF8_MAXLEN);
1290                 	if ( rdfstore_utf8_cp_to_utf8( (unsigned long)in[i], &utf8_size, utf8_buff) ) {
1291 				perror("rdfstore_utf8_string_to_utf8_foldedcase");
1292                         	fprintf(stderr,"Cannot convert input codepoint to utf8\n");
1293                         	return -1;
1294                         	};
1295 #ifdef RDFSTORE_DEBUG_UTF8
1296 			if(utf8_size>0) {
1297 				int j=0;
1298 				printf("Got converted to UTF8 char '%c / %02x' as '",in[i],in[i]);
1299 				for (j=0; j< utf8_size; j++) {
1300 					printf("%02x",utf8_buff[j]);
1301 				};
1302 				printf("'\n");
1303 				};
1304 #endif
1305 			step=1; /* hop the next input byte */
1306 		} else {
1307 			bcopy(in+i,utf8_buff,utf8_size); /* copy the input utf8 char in the buff */
1308 			step=utf8_size;
1309 			};
1310 
1311 		memcpy(out+(*outsize),utf8_buff,utf8_size);
1312 		(*outsize)+=utf8_size;
1313 		};
1314 	out[(*outsize)]='\0';
1315 
1316 	return 0;
1317 	};
1318