1 /*
2  * ISBN.h
3  *	  PostgreSQL type definitions for ISNs (ISBN, ISMN, ISSN, EAN13, UPC)
4  *
5  * Information recompiled by Kronuz on June 20, 2006
6  * http://www.isbn-international.org/
7  * http://www.isbn.org/
8  *
9  * IDENTIFICATION
10  *	  contrib/isn/ISBN.h
11  *
12  * 0-393-04002-X => 039304002(X) <=> 039304002 <=> (978)039304002 <=> 978039304002(9) <=> 978-0-393-04002-9
13  *
14  *
15  * ISBN			0	3	 9	  3    0   4	0	0	2
16  * Weight		10	9	 8	  7    6   5	4	3	2
17  * Product		0 + 27 + 72 + 21 + 0 + 20 + 0 + 0 + 4 = 144
18  *				144 / 11 = 13 remainder 1
19  * Check digit	11 - 1 = 10 = X
20  * => 0-393-04002-X
21  *
22  * ISBN			9	7	 8	 0	 3	 9	  3   0   4   0   0   2
23  * Weight		1	3	 1	 3	 1	 3	  1   3   1   3   1   3
24  * Product		9 + 21 + 8 + 0 + 3 + 27 + 3 + 0 + 4 + 0 + 0 + 6 = 81
25  *				81 / 10 = 8 remainder 1
26  * Check digit	10 - 1 = 9
27  * => 978-0-393-04002-9
28  *
29  */
30 
31 /*
32  * For ISBN with prefix 978
33  * Range Table as of 2010-Jul-29
34  */
35 
36 /* where the digit set begins, and how many of them are in the table */
37 const unsigned ISBN_index[10][2] = {
38 	{0, 6},
39 	{6, 6},
40 	{12, 8},
41 	{20, 14},
42 	{34, 6},
43 	{40, 19},
44 	{59, 68},
45 	{127, 5},
46 	{132, 60},
47 	{192, 718},
48 };
49 
50 const char *ISBN_range[][2] = {
51 	{"0-00", "0-19"},
52 	{"0-200", "0-699"},
53 	{"0-7000", "0-8499"},
54 	{"0-85000", "0-89999"},
55 	{"0-900000", "0-949999"},
56 	{"0-9500000", "0-9999999"},
57 	{"1-00", "1-09"},
58 	{"1-100", "1-399"},
59 	{"1-4000", "1-5499"},
60 	{"1-55000", "1-86979"},
61 	{"1-869800", "1-998999"},
62 	{"1-9990000", "1-9999999"},
63 	{"2-00", "2-19"},
64 	{"2-200", "2-349"},
65 	{"2-35000", "2-39999"},
66 	{"2-400", "2-699"},
67 	{"2-7000", "2-8399"},
68 	{"2-84000", "2-89999"},
69 	{"2-900000", "2-949999"},
70 	{"2-9500000", "2-9999999"},
71 	{"3-00", "3-02"},
72 	{"3-030", "3-033"},
73 	{"3-0340", "3-0369"},
74 	{"3-03700", "3-03999"},
75 	{"3-04", "3-19"},
76 	{"3-200", "3-699"},
77 	{"3-7000", "3-8499"},
78 	{"3-85000", "3-89999"},
79 	{"3-900000", "3-949999"},
80 	{"3-9500000", "3-9539999"},
81 	{"3-95400", "3-96999"},
82 	{"3-9700000", "3-9899999"},
83 	{"3-99000", "3-99499"},
84 	{"3-99500", "3-99999"},
85 	{"4-00", "4-19"},
86 	{"4-200", "4-699"},
87 	{"4-7000", "4-8499"},
88 	{"4-85000", "4-89999"},
89 	{"4-900000", "4-949999"},
90 	{"4-9500000", "4-9999999"},
91 	{"5-00", "5-19"},
92 	{"5-200", "5-420"},
93 	{"5-4210", "5-4299"},
94 	{"5-430", "5-430"},
95 	{"5-4310", "5-4399"},
96 	{"5-440", "5-440"},
97 	{"5-4410", "5-4499"},
98 	{"5-450", "5-699"},
99 	{"5-7000", "5-8499"},
100 	{"5-85000", "5-89999"},
101 	{"5-900000", "5-909999"},
102 	{"5-91000", "5-91999"},
103 	{"5-9200", "5-9299"},
104 	{"5-93000", "5-94999"},
105 	{"5-9500000", "5-9500999"},
106 	{"5-9501", "5-9799"},
107 	{"5-98000", "5-98999"},
108 	{"5-9900000", "5-9909999"},
109 	{"5-9910", "5-9999"},
110 	{"600-00", "600-09"},
111 	{"600-100", "600-499"},
112 	{"600-5000", "600-8999"},
113 	{"600-90000", "600-99999"},
114 	{"601-00", "601-19"},
115 	{"601-200", "601-699"},
116 	{"601-7000", "601-7999"},
117 	{"601-80000", "601-84999"},
118 	{"601-85", "601-99"},
119 	{"602-00", "602-19"},
120 	{"602-200", "602-799"},
121 	{"602-8000", "602-9499"},
122 	{"602-95000", "602-99999"},
123 	{"603-00", "603-04"},
124 	{"603-05", "603-49"},
125 	{"603-500", "603-799"},
126 	{"603-8000", "603-8999"},
127 	{"603-90000", "603-99999"},
128 	{"604-0", "604-4"},
129 	{"604-50", "604-89"},
130 	{"604-900", "604-979"},
131 	{"604-9800", "604-9999"},
132 	{"605-01", "605-09"},
133 	{"605-100", "605-399"},
134 	{"605-4000", "605-5999"},
135 	{"605-60000", "605-89999"},
136 	{"605-90", "605-99"},
137 	{"606-0", "606-0"},
138 	{"606-10", "606-49"},
139 	{"606-500", "606-799"},
140 	{"606-8000", "606-9199"},
141 	{"606-92000", "606-99999"},
142 	{"607-00", "607-39"},
143 	{"607-400", "607-749"},
144 	{"607-7500", "607-9499"},
145 	{"607-95000", "607-99999"},
146 	{"608-0", "608-0"},
147 	{"608-10", "608-19"},
148 	{"608-200", "608-449"},
149 	{"608-4500", "608-6499"},
150 	{"608-65000", "608-69999"},
151 	{"608-7", "608-9"},
152 	{"609-00", "609-39"},
153 	{"609-400", "609-799"},
154 	{"609-8000", "609-9499"},
155 	{"609-95000", "609-99999"},
156 	{"612-00", "612-29"},
157 	{"612-300", "612-399"},
158 	{"612-4000", "612-4499"},
159 	{"612-45000", "612-49999"},
160 	{"612-50", "612-99"},
161 	{"613-0", "613-9"},
162 	{"614-00", "614-39"},
163 	{"614-400", "614-799"},
164 	{"614-8000", "614-9499"},
165 	{"614-95000", "614-99999"},
166 	{"615-00", "615-09"},
167 	{"615-100", "615-499"},
168 	{"615-5000", "615-7999"},
169 	{"615-80000", "615-89999"},
170 	{"616-00", "616-19"},
171 	{"616-200", "616-699"},
172 	{"616-7000", "616-8999"},
173 	{"616-90000", "616-99999"},
174 	{"617-00", "617-49"},
175 	{"617-500", "617-699"},
176 	{"617-7000", "617-8999"},
177 	{"617-90000", "617-99999"},
178 	{"7-00", "7-09"},
179 	{"7-100", "7-499"},
180 	{"7-5000", "7-7999"},
181 	{"7-80000", "7-89999"},
182 	{"7-900000", "7-999999"},
183 	{"80-00", "80-19"},
184 	{"80-200", "80-699"},
185 	{"80-7000", "80-8499"},
186 	{"80-85000", "80-89999"},
187 	{"80-900000", "80-999999"},
188 	{"81-00", "81-19"},
189 	{"81-200", "81-699"},
190 	{"81-7000", "81-8499"},
191 	{"81-85000", "81-89999"},
192 	{"81-900000", "81-999999"},
193 	{"82-00", "82-19"},
194 	{"82-200", "82-699"},
195 	{"82-7000", "82-8999"},
196 	{"82-90000", "82-98999"},
197 	{"82-990000", "82-999999"},
198 	{"83-00", "83-19"},
199 	{"83-200", "83-599"},
200 	{"83-60000", "83-69999"},
201 	{"83-7000", "83-8499"},
202 	{"83-85000", "83-89999"},
203 	{"83-900000", "83-999999"},
204 	{"84-00", "84-14"},
205 	{"84-15000", "84-19999"},
206 	{"84-200", "84-699"},
207 	{"84-7000", "84-8499"},
208 	{"84-85000", "84-89999"},
209 	{"84-9000", "84-9199"},
210 	{"84-920000", "84-923999"},
211 	{"84-92400", "84-92999"},
212 	{"84-930000", "84-949999"},
213 	{"84-95000", "84-96999"},
214 	{"84-9700", "84-9999"},
215 	{"85-00", "85-19"},
216 	{"85-200", "85-599"},
217 	{"85-60000", "85-69999"},
218 	{"85-7000", "85-8499"},
219 	{"85-85000", "85-89999"},
220 	{"85-900000", "85-979999"},
221 	{"85-98000", "85-99999"},
222 	{"86-00", "86-29"},
223 	{"86-300", "86-599"},
224 	{"86-6000", "86-7999"},
225 	{"86-80000", "86-89999"},
226 	{"86-900000", "86-999999"},
227 	{"87-00", "87-29"},
228 	{"87-400", "87-649"},
229 	{"87-7000", "87-7999"},
230 	{"87-85000", "87-94999"},
231 	{"87-970000", "87-999999"},
232 	{"88-00", "88-19"},
233 	{"88-200", "88-599"},
234 	{"88-6000", "88-8499"},
235 	{"88-85000", "88-89999"},
236 	{"88-900000", "88-949999"},
237 	{"88-95000", "88-99999"},
238 	{"89-00", "89-24"},
239 	{"89-250", "89-549"},
240 	{"89-5500", "89-8499"},
241 	{"89-85000", "89-94999"},
242 	{"89-950000", "89-999999"},
243 	{"90-00", "90-19"},
244 	{"90-200", "90-499"},
245 	{"90-5000", "90-6999"},
246 	{"90-70000", "90-79999"},
247 	{"90-800000", "90-849999"},
248 	{"90-8500", "90-8999"},
249 	{"90-90", "90-90"},
250 	{"90-910000", "90-939999"},
251 	{"90-94", "90-94"},
252 	{"90-950000", "90-999999"},
253 	{"91-0", "91-1"},
254 	{"91-20", "91-49"},
255 	{"91-500", "91-649"},
256 	{"91-7000", "91-7999"},
257 	{"91-85000", "91-94999"},
258 	{"91-970000", "91-999999"},
259 	{"92-0", "92-5"},
260 	{"92-60", "92-79"},
261 	{"92-800", "92-899"},
262 	{"92-9000", "92-9499"},
263 	{"92-95000", "92-98999"},
264 	{"92-990000", "92-999999"},
265 	{"93-00", "93-09"},
266 	{"93-100", "93-499"},
267 	{"93-5000", "93-7999"},
268 	{"93-80000", "93-94999"},
269 	{"93-950000", "93-999999"},
270 	{"94-000", "94-599"},
271 	{"94-6000", "94-8999"},
272 	{"94-90000", "94-99999"},
273 	{"950-00", "950-49"},
274 	{"950-500", "950-899"},
275 	{"950-9000", "950-9899"},
276 	{"950-99000", "950-99999"},
277 	{"951-0", "951-1"},
278 	{"951-20", "951-54"},
279 	{"951-550", "951-889"},
280 	{"951-8900", "951-9499"},
281 	{"951-95000", "951-99999"},
282 	{"952-00", "952-19"},
283 	{"952-200", "952-499"},
284 	{"952-5000", "952-5999"},
285 	{"952-60", "952-65"},
286 	{"952-6600", "952-6699"},
287 	{"952-67000", "952-69999"},
288 	{"952-7000", "952-7999"},
289 	{"952-80", "952-94"},
290 	{"952-9500", "952-9899"},
291 	{"952-99000", "952-99999"},
292 	{"953-0", "953-0"},
293 	{"953-10", "953-14"},
294 	{"953-150", "953-549"},
295 	{"953-55000", "953-59999"},
296 	{"953-6000", "953-9499"},
297 	{"953-95000", "953-99999"},
298 	{"954-00", "954-28"},
299 	{"954-2900", "954-2999"},
300 	{"954-300", "954-799"},
301 	{"954-8000", "954-8999"},
302 	{"954-90000", "954-92999"},
303 	{"954-9300", "954-9999"},
304 	{"955-0000", "955-1999"},
305 	{"955-20", "955-49"},
306 	{"955-50000", "955-54999"},
307 	{"955-550", "955-799"},
308 	{"955-8000", "955-9499"},
309 	{"955-95000", "955-99999"},
310 	{"956-00", "956-19"},
311 	{"956-200", "956-699"},
312 	{"956-7000", "956-9999"},
313 	{"957-00", "957-02"},
314 	{"957-0300", "957-0499"},
315 	{"957-05", "957-19"},
316 	{"957-2000", "957-2099"},
317 	{"957-21", "957-27"},
318 	{"957-28000", "957-30999"},
319 	{"957-31", "957-43"},
320 	{"957-440", "957-819"},
321 	{"957-8200", "957-9699"},
322 	{"957-97000", "957-99999"},
323 	{"958-00", "958-56"},
324 	{"958-57000", "958-59999"},
325 	{"958-600", "958-799"},
326 	{"958-8000", "958-9499"},
327 	{"958-95000", "958-99999"},
328 	{"959-00", "959-19"},
329 	{"959-200", "959-699"},
330 	{"959-7000", "959-8499"},
331 	{"959-85000", "959-99999"},
332 	{"960-00", "960-19"},
333 	{"960-200", "960-659"},
334 	{"960-6600", "960-6899"},
335 	{"960-690", "960-699"},
336 	{"960-7000", "960-8499"},
337 	{"960-85000", "960-92999"},
338 	{"960-93", "960-93"},
339 	{"960-9400", "960-9799"},
340 	{"960-98000", "960-99999"},
341 	{"961-00", "961-19"},
342 	{"961-200", "961-599"},
343 	{"961-6000", "961-8999"},
344 	{"961-90000", "961-94999"},
345 	{"962-00", "962-19"},
346 	{"962-200", "962-699"},
347 	{"962-7000", "962-8499"},
348 	{"962-85000", "962-86999"},
349 	{"962-8700", "962-8999"},
350 	{"962-900", "962-999"},
351 	{"963-00", "963-19"},
352 	{"963-200", "963-699"},
353 	{"963-7000", "963-8499"},
354 	{"963-85000", "963-89999"},
355 	{"963-9000", "963-9999"},
356 	{"964-00", "964-14"},
357 	{"964-150", "964-249"},
358 	{"964-2500", "964-2999"},
359 	{"964-300", "964-549"},
360 	{"964-5500", "964-8999"},
361 	{"964-90000", "964-96999"},
362 	{"964-970", "964-989"},
363 	{"964-9900", "964-9999"},
364 	{"965-00", "965-19"},
365 	{"965-200", "965-599"},
366 	{"965-7000", "965-7999"},
367 	{"965-90000", "965-99999"},
368 	{"966-00", "966-14"},
369 	{"966-1500", "966-1699"},
370 	{"966-170", "966-199"},
371 	{"966-2000", "966-2999"},
372 	{"966-300", "966-699"},
373 	{"966-7000", "966-8999"},
374 	{"966-90000", "966-99999"},
375 	{"967-00", "967-29"},
376 	{"967-300", "967-499"},
377 	{"967-5000", "967-5999"},
378 	{"967-60", "967-89"},
379 	{"967-900", "967-989"},
380 	{"967-9900", "967-9989"},
381 	{"967-99900", "967-99999"},
382 	{"968-01", "968-39"},
383 	{"968-400", "968-499"},
384 	{"968-5000", "968-7999"},
385 	{"968-800", "968-899"},
386 	{"968-9000", "968-9999"},
387 	{"969-0", "969-1"},
388 	{"969-20", "969-39"},
389 	{"969-400", "969-799"},
390 	{"969-8000", "969-9999"},
391 	{"970-01", "970-59"},
392 	{"970-600", "970-899"},
393 	{"970-9000", "970-9099"},
394 	{"970-91000", "970-96999"},
395 	{"970-9700", "970-9999"},
396 	{"971-000", "971-015"},
397 	{"971-0160", "971-0199"},
398 	{"971-02", "971-02"},
399 	{"971-0300", "971-0599"},
400 	{"971-06", "971-09"},
401 	{"971-10", "971-49"},
402 	{"971-500", "971-849"},
403 	{"971-8500", "971-9099"},
404 	{"971-91000", "971-98999"},
405 	{"971-9900", "971-9999"},
406 	{"972-0", "972-1"},
407 	{"972-20", "972-54"},
408 	{"972-550", "972-799"},
409 	{"972-8000", "972-9499"},
410 	{"972-95000", "972-99999"},
411 	{"973-0", "973-0"},
412 	{"973-100", "973-169"},
413 	{"973-1700", "973-1999"},
414 	{"973-20", "973-54"},
415 	{"973-550", "973-759"},
416 	{"973-7600", "973-8499"},
417 	{"973-85000", "973-88999"},
418 	{"973-8900", "973-9499"},
419 	{"973-95000", "973-99999"},
420 	{"974-00", "974-19"},
421 	{"974-200", "974-699"},
422 	{"974-7000", "974-8499"},
423 	{"974-85000", "974-89999"},
424 	{"974-90000", "974-94999"},
425 	{"974-9500", "974-9999"},
426 	{"975-00000", "975-00999"},
427 	{"975-01", "975-01"},
428 	{"975-02", "975-24"},
429 	{"975-250", "975-599"},
430 	{"975-6000", "975-9199"},
431 	{"975-92000", "975-98999"},
432 	{"975-990", "975-999"},
433 	{"976-0", "976-3"},
434 	{"976-40", "976-59"},
435 	{"976-600", "976-799"},
436 	{"976-8000", "976-9499"},
437 	{"976-95000", "976-99999"},
438 	{"977-00", "977-19"},
439 	{"977-200", "977-499"},
440 	{"977-5000", "977-6999"},
441 	{"977-700", "977-999"},
442 	{"978-000", "978-199"},
443 	{"978-2000", "978-2999"},
444 	{"978-30000", "978-79999"},
445 	{"978-8000", "978-8999"},
446 	{"978-900", "978-999"},
447 	{"979-000", "979-099"},
448 	{"979-1000", "979-1499"},
449 	{"979-15000", "979-19999"},
450 	{"979-20", "979-29"},
451 	{"979-3000", "979-3999"},
452 	{"979-400", "979-799"},
453 	{"979-8000", "979-9499"},
454 	{"979-95000", "979-99999"},
455 	{"980-00", "980-19"},
456 	{"980-200", "980-599"},
457 	{"980-6000", "980-9999"},
458 	{"981-00", "981-11"},
459 	{"981-1200", "981-1999"},
460 	{"981-200", "981-289"},
461 	{"981-2900", "981-9999"},
462 	{"982-00", "982-09"},
463 	{"982-100", "982-699"},
464 	{"982-70", "982-89"},
465 	{"982-9000", "982-9799"},
466 	{"982-98000", "982-99999"},
467 	{"983-00", "983-01"},
468 	{"983-020", "983-199"},
469 	{"983-2000", "983-3999"},
470 	{"983-40000", "983-44999"},
471 	{"983-45", "983-49"},
472 	{"983-50", "983-79"},
473 	{"983-800", "983-899"},
474 	{"983-9000", "983-9899"},
475 	{"983-99000", "983-99999"},
476 	{"984-00", "984-39"},
477 	{"984-400", "984-799"},
478 	{"984-8000", "984-8999"},
479 	{"984-90000", "984-99999"},
480 	{"985-00", "985-39"},
481 	{"985-400", "985-599"},
482 	{"985-6000", "985-8999"},
483 	{"985-90000", "985-99999"},
484 	{"986-00", "986-11"},
485 	{"986-120", "986-559"},
486 	{"986-5600", "986-7999"},
487 	{"986-80000", "986-99999"},
488 	{"987-00", "987-09"},
489 	{"987-1000", "987-1999"},
490 	{"987-20000", "987-29999"},
491 	{"987-30", "987-49"},
492 	{"987-500", "987-899"},
493 	{"987-9000", "987-9499"},
494 	{"987-95000", "987-99999"},
495 	{"988-00", "988-16"},
496 	{"988-17000", "988-19999"},
497 	{"988-200", "988-799"},
498 	{"988-8000", "988-9699"},
499 	{"988-97000", "988-99999"},
500 	{"989-0", "989-1"},
501 	{"989-20", "989-54"},
502 	{"989-550", "989-799"},
503 	{"989-8000", "989-9499"},
504 	{"989-95000", "989-99999"},
505 	{"9927-00", "9927-09"},
506 	{"9927-100", "9927-399"},
507 	{"9927-4000", "9927-4999"},
508 	{"9928-00", "9928-09"},
509 	{"9928-100", "9928-399"},
510 	{"9928-4000", "9928-4999"},
511 	{"9929-0", "9929-3"},
512 	{"9929-40", "9929-54"},
513 	{"9929-550", "9929-799"},
514 	{"9929-8000", "9929-9999"},
515 	{"9930-00", "9930-49"},
516 	{"9930-500", "9930-939"},
517 	{"9930-9400", "9930-9999"},
518 	{"9931-00", "9931-29"},
519 	{"9931-300", "9931-899"},
520 	{"9931-9000", "9931-9999"},
521 	{"9932-00", "9932-39"},
522 	{"9932-400", "9932-849"},
523 	{"9932-8500", "9932-9999"},
524 	{"9933-0", "9933-0"},
525 	{"9933-10", "9933-39"},
526 	{"9933-400", "9933-899"},
527 	{"9933-9000", "9933-9999"},
528 	{"9934-0", "9934-0"},
529 	{"9934-10", "9934-49"},
530 	{"9934-500", "9934-799"},
531 	{"9934-8000", "9934-9999"},
532 	{"9935-0", "9935-0"},
533 	{"9935-10", "9935-39"},
534 	{"9935-400", "9935-899"},
535 	{"9935-9000", "9935-9999"},
536 	{"9936-0", "9936-1"},
537 	{"9936-20", "9936-39"},
538 	{"9936-400", "9936-799"},
539 	{"9936-8000", "9936-9999"},
540 	{"9937-0", "9937-2"},
541 	{"9937-30", "9937-49"},
542 	{"9937-500", "9937-799"},
543 	{"9937-8000", "9937-9999"},
544 	{"9938-00", "9938-79"},
545 	{"9938-800", "9938-949"},
546 	{"9938-9500", "9938-9999"},
547 	{"9939-0", "9939-4"},
548 	{"9939-50", "9939-79"},
549 	{"9939-800", "9939-899"},
550 	{"9939-9000", "9939-9999"},
551 	{"9940-0", "9940-1"},
552 	{"9940-20", "9940-49"},
553 	{"9940-500", "9940-899"},
554 	{"9940-9000", "9940-9999"},
555 	{"9941-0", "9941-0"},
556 	{"9941-10", "9941-39"},
557 	{"9941-400", "9941-899"},
558 	{"9941-9000", "9941-9999"},
559 	{"9942-00", "9942-89"},
560 	{"9942-900", "9942-994"},
561 	{"9942-9950", "9942-9999"},
562 	{"9943-00", "9943-29"},
563 	{"9943-300", "9943-399"},
564 	{"9943-4000", "9943-9999"},
565 	{"9944-0000", "9944-0999"},
566 	{"9944-100", "9944-499"},
567 	{"9944-5000", "9944-5999"},
568 	{"9944-60", "9944-69"},
569 	{"9944-700", "9944-799"},
570 	{"9944-80", "9944-89"},
571 	{"9944-900", "9944-999"},
572 	{"9945-00", "9945-00"},
573 	{"9945-010", "9945-079"},
574 	{"9945-08", "9945-39"},
575 	{"9945-400", "9945-569"},
576 	{"9945-57", "9945-57"},
577 	{"9945-580", "9945-849"},
578 	{"9945-8500", "9945-9999"},
579 	{"9946-0", "9946-1"},
580 	{"9946-20", "9946-39"},
581 	{"9946-400", "9946-899"},
582 	{"9946-9000", "9946-9999"},
583 	{"9947-0", "9947-1"},
584 	{"9947-20", "9947-79"},
585 	{"9947-800", "9947-999"},
586 	{"9948-00", "9948-39"},
587 	{"9948-400", "9948-849"},
588 	{"9948-8500", "9948-9999"},
589 	{"9949-0", "9949-0"},
590 	{"9949-10", "9949-39"},
591 	{"9949-400", "9949-899"},
592 	{"9949-9000", "9949-9999"},
593 	{"9950-00", "9950-29"},
594 	{"9950-300", "9950-849"},
595 	{"9950-8500", "9950-9999"},
596 	{"9951-00", "9951-39"},
597 	{"9951-400", "9951-849"},
598 	{"9951-8500", "9951-9999"},
599 	{"9952-0", "9952-1"},
600 	{"9952-20", "9952-39"},
601 	{"9952-400", "9952-799"},
602 	{"9952-8000", "9952-9999"},
603 	{"9953-0", "9953-0"},
604 	{"9953-10", "9953-39"},
605 	{"9953-400", "9953-599"},
606 	{"9953-60", "9953-89"},
607 	{"9953-9000", "9953-9999"},
608 	{"9954-0", "9954-1"},
609 	{"9954-20", "9954-39"},
610 	{"9954-400", "9954-799"},
611 	{"9954-8000", "9954-9999"},
612 	{"9955-00", "9955-39"},
613 	{"9955-400", "9955-929"},
614 	{"9955-9300", "9955-9999"},
615 	{"9956-0", "9956-0"},
616 	{"9956-10", "9956-39"},
617 	{"9956-400", "9956-899"},
618 	{"9956-9000", "9956-9999"},
619 	{"9957-00", "9957-39"},
620 	{"9957-400", "9957-699"},
621 	{"9957-70", "9957-84"},
622 	{"9957-8500", "9957-8799"},
623 	{"9957-88", "9957-99"},
624 	{"9958-0", "9958-0"},
625 	{"9958-10", "9958-49"},
626 	{"9958-500", "9958-899"},
627 	{"9958-9000", "9958-9999"},
628 	{"9959-0", "9959-1"},
629 	{"9959-20", "9959-79"},
630 	{"9959-800", "9959-949"},
631 	{"9959-9500", "9959-9999"},
632 	{"9960-00", "9960-59"},
633 	{"9960-600", "9960-899"},
634 	{"9960-9000", "9960-9999"},
635 	{"9961-0", "9961-2"},
636 	{"9961-30", "9961-69"},
637 	{"9961-700", "9961-949"},
638 	{"9961-9500", "9961-9999"},
639 	{"9962-00", "9962-54"},
640 	{"9962-5500", "9962-5599"},
641 	{"9962-56", "9962-59"},
642 	{"9962-600", "9962-849"},
643 	{"9962-8500", "9962-9999"},
644 	{"9963-0", "9963-2"},
645 	{"9963-30", "9963-54"},
646 	{"9963-550", "9963-734"},
647 	{"9963-7350", "9963-7499"},
648 	{"9963-7500", "9963-9999"},
649 	{"9964-0", "9964-6"},
650 	{"9964-70", "9964-94"},
651 	{"9964-950", "9964-999"},
652 	{"9965-00", "9965-39"},
653 	{"9965-400", "9965-899"},
654 	{"9965-9000", "9965-9999"},
655 	{"9966-000", "9966-199"},
656 	{"9966-20", "9966-69"},
657 	{"9966-7000", "9966-7499"},
658 	{"9966-750", "9966-959"},
659 	{"9966-9600", "9966-9999"},
660 	{"9967-00", "9967-39"},
661 	{"9967-400", "9967-899"},
662 	{"9967-9000", "9967-9999"},
663 	{"9968-00", "9968-49"},
664 	{"9968-500", "9968-939"},
665 	{"9968-9400", "9968-9999"},
666 	{"9970-00", "9970-39"},
667 	{"9970-400", "9970-899"},
668 	{"9970-9000", "9970-9999"},
669 	{"9971-0", "9971-5"},
670 	{"9971-60", "9971-89"},
671 	{"9971-900", "9971-989"},
672 	{"9971-9900", "9971-9999"},
673 	{"9972-00", "9972-09"},
674 	{"9972-1", "9972-1"},
675 	{"9972-200", "9972-249"},
676 	{"9972-2500", "9972-2999"},
677 	{"9972-30", "9972-59"},
678 	{"9972-600", "9972-899"},
679 	{"9972-9000", "9972-9999"},
680 	{"9973-00", "9973-05"},
681 	{"9973-060", "9973-089"},
682 	{"9973-0900", "9973-0999"},
683 	{"9973-10", "9973-69"},
684 	{"9973-700", "9973-969"},
685 	{"9973-9700", "9973-9999"},
686 	{"9974-0", "9974-2"},
687 	{"9974-30", "9974-54"},
688 	{"9974-550", "9974-749"},
689 	{"9974-7500", "9974-9499"},
690 	{"9974-95", "9974-99"},
691 	{"9975-0", "9975-0"},
692 	{"9975-100", "9975-399"},
693 	{"9975-4000", "9975-4499"},
694 	{"9975-45", "9975-89"},
695 	{"9975-900", "9975-949"},
696 	{"9975-9500", "9975-9999"},
697 	{"9976-0", "9976-5"},
698 	{"9976-60", "9976-89"},
699 	{"9976-900", "9976-989"},
700 	{"9976-9900", "9976-9999"},
701 	{"9977-00", "9977-89"},
702 	{"9977-900", "9977-989"},
703 	{"9977-9900", "9977-9999"},
704 	{"9978-00", "9978-29"},
705 	{"9978-300", "9978-399"},
706 	{"9978-40", "9978-94"},
707 	{"9978-950", "9978-989"},
708 	{"9978-9900", "9978-9999"},
709 	{"9979-0", "9979-4"},
710 	{"9979-50", "9979-64"},
711 	{"9979-650", "9979-659"},
712 	{"9979-66", "9979-75"},
713 	{"9979-760", "9979-899"},
714 	{"9979-9000", "9979-9999"},
715 	{"9980-0", "9980-3"},
716 	{"9980-40", "9980-89"},
717 	{"9980-900", "9980-989"},
718 	{"9980-9900", "9980-9999"},
719 	{"9981-00", "9981-09"},
720 	{"9981-100", "9981-159"},
721 	{"9981-1600", "9981-1999"},
722 	{"9981-20", "9981-79"},
723 	{"9981-800", "9981-949"},
724 	{"9981-9500", "9981-9999"},
725 	{"9982-00", "9982-79"},
726 	{"9982-800", "9982-989"},
727 	{"9982-9900", "9982-9999"},
728 	{"9983-80", "9983-94"},
729 	{"9983-950", "9983-989"},
730 	{"9983-9900", "9983-9999"},
731 	{"9984-00", "9984-49"},
732 	{"9984-500", "9984-899"},
733 	{"9984-9000", "9984-9999"},
734 	{"9985-0", "9985-4"},
735 	{"9985-50", "9985-79"},
736 	{"9985-800", "9985-899"},
737 	{"9985-9000", "9985-9999"},
738 	{"9986-00", "9986-39"},
739 	{"9986-400", "9986-899"},
740 	{"9986-9000", "9986-9399"},
741 	{"9986-940", "9986-969"},
742 	{"9986-97", "9986-99"},
743 	{"9987-00", "9987-39"},
744 	{"9987-400", "9987-879"},
745 	{"9987-8800", "9987-9999"},
746 	{"9988-0", "9988-2"},
747 	{"9988-30", "9988-54"},
748 	{"9988-550", "9988-749"},
749 	{"9988-7500", "9988-9999"},
750 	{"9989-0", "9989-0"},
751 	{"9989-100", "9989-199"},
752 	{"9989-2000", "9989-2999"},
753 	{"9989-30", "9989-59"},
754 	{"9989-600", "9989-949"},
755 	{"9989-9500", "9989-9999"},
756 	{"99901-00", "99901-49"},
757 	{"99901-500", "99901-799"},
758 	{"99901-80", "99901-99"},
759 	{"99903-0", "99903-1"},
760 	{"99903-20", "99903-89"},
761 	{"99903-900", "99903-999"},
762 	{"99904-0", "99904-5"},
763 	{"99904-60", "99904-89"},
764 	{"99904-900", "99904-999"},
765 	{"99905-0", "99905-3"},
766 	{"99905-40", "99905-79"},
767 	{"99905-800", "99905-999"},
768 	{"99906-0", "99906-2"},
769 	{"99906-30", "99906-59"},
770 	{"99906-600", "99906-699"},
771 	{"99906-70", "99906-89"},
772 	{"99906-90", "99906-94"},
773 	{"99906-950", "99906-999"},
774 	{"99908-0", "99908-0"},
775 	{"99908-10", "99908-89"},
776 	{"99908-900", "99908-999"},
777 	{"99909-0", "99909-3"},
778 	{"99909-40", "99909-94"},
779 	{"99909-950", "99909-999"},
780 	{"99910-0", "99910-2"},
781 	{"99910-30", "99910-89"},
782 	{"99910-900", "99910-999"},
783 	{"99911-00", "99911-59"},
784 	{"99911-600", "99911-999"},
785 	{"99912-0", "99912-3"},
786 	{"99912-400", "99912-599"},
787 	{"99912-60", "99912-89"},
788 	{"99912-900", "99912-999"},
789 	{"99913-0", "99913-2"},
790 	{"99913-30", "99913-35"},
791 	{"99913-600", "99913-604"},
792 	{"99914-0", "99914-4"},
793 	{"99914-50", "99914-89"},
794 	{"99914-900", "99914-999"},
795 	{"99915-0", "99915-4"},
796 	{"99915-50", "99915-79"},
797 	{"99915-800", "99915-999"},
798 	{"99916-0", "99916-2"},
799 	{"99916-30", "99916-69"},
800 	{"99916-700", "99916-999"},
801 	{"99917-0", "99917-2"},
802 	{"99917-30", "99917-89"},
803 	{"99917-900", "99917-999"},
804 	{"99918-0", "99918-3"},
805 	{"99918-40", "99918-79"},
806 	{"99918-800", "99918-999"},
807 	{"99919-0", "99919-2"},
808 	{"99919-300", "99919-399"},
809 	{"99919-40", "99919-69"},
810 	{"99919-900", "99919-999"},
811 	{"99920-0", "99920-4"},
812 	{"99920-50", "99920-89"},
813 	{"99920-900", "99920-999"},
814 	{"99921-0", "99921-1"},
815 	{"99921-20", "99921-69"},
816 	{"99921-700", "99921-799"},
817 	{"99921-8", "99921-8"},
818 	{"99921-90", "99921-99"},
819 	{"99922-0", "99922-3"},
820 	{"99922-40", "99922-69"},
821 	{"99922-700", "99922-999"},
822 	{"99923-0", "99923-1"},
823 	{"99923-20", "99923-79"},
824 	{"99923-800", "99923-999"},
825 	{"99924-0", "99924-1"},
826 	{"99924-20", "99924-79"},
827 	{"99924-800", "99924-999"},
828 	{"99925-0", "99925-3"},
829 	{"99925-40", "99925-79"},
830 	{"99925-800", "99925-999"},
831 	{"99926-0", "99926-0"},
832 	{"99926-10", "99926-59"},
833 	{"99926-600", "99926-999"},
834 	{"99927-0", "99927-2"},
835 	{"99927-30", "99927-59"},
836 	{"99927-600", "99927-999"},
837 	{"99928-0", "99928-0"},
838 	{"99928-10", "99928-79"},
839 	{"99928-800", "99928-999"},
840 	{"99929-0", "99929-4"},
841 	{"99929-50", "99929-79"},
842 	{"99929-800", "99929-999"},
843 	{"99930-0", "99930-4"},
844 	{"99930-50", "99930-79"},
845 	{"99930-800", "99930-999"},
846 	{"99931-0", "99931-4"},
847 	{"99931-50", "99931-79"},
848 	{"99931-800", "99931-999"},
849 	{"99932-0", "99932-0"},
850 	{"99932-10", "99932-59"},
851 	{"99932-600", "99932-699"},
852 	{"99932-7", "99932-7"},
853 	{"99932-80", "99932-99"},
854 	{"99933-0", "99933-2"},
855 	{"99933-30", "99933-59"},
856 	{"99933-600", "99933-999"},
857 	{"99934-0", "99934-1"},
858 	{"99934-20", "99934-79"},
859 	{"99934-800", "99934-999"},
860 	{"99935-0", "99935-2"},
861 	{"99935-30", "99935-59"},
862 	{"99935-600", "99935-699"},
863 	{"99935-7", "99935-8"},
864 	{"99935-90", "99935-99"},
865 	{"99936-0", "99936-0"},
866 	{"99936-10", "99936-59"},
867 	{"99936-600", "99936-999"},
868 	{"99937-0", "99937-1"},
869 	{"99937-20", "99937-59"},
870 	{"99937-600", "99937-999"},
871 	{"99938-0", "99938-1"},
872 	{"99938-20", "99938-59"},
873 	{"99938-600", "99938-899"},
874 	{"99938-90", "99938-99"},
875 	{"99939-0", "99939-5"},
876 	{"99939-60", "99939-89"},
877 	{"99939-900", "99939-999"},
878 	{"99940-0", "99940-0"},
879 	{"99940-10", "99940-69"},
880 	{"99940-700", "99940-999"},
881 	{"99941-0", "99941-2"},
882 	{"99941-30", "99941-79"},
883 	{"99941-800", "99941-999"},
884 	{"99942-0", "99942-4"},
885 	{"99942-50", "99942-79"},
886 	{"99942-800", "99942-999"},
887 	{"99943-0", "99943-2"},
888 	{"99943-30", "99943-59"},
889 	{"99943-600", "99943-999"},
890 	{"99944-0", "99944-4"},
891 	{"99944-50", "99944-79"},
892 	{"99944-800", "99944-999"},
893 	{"99945-0", "99945-5"},
894 	{"99945-60", "99945-89"},
895 	{"99945-900", "99945-999"},
896 	{"99946-0", "99946-2"},
897 	{"99946-30", "99946-59"},
898 	{"99946-600", "99946-999"},
899 	{"99947-0", "99947-2"},
900 	{"99947-30", "99947-69"},
901 	{"99947-700", "99947-999"},
902 	{"99948-0", "99948-4"},
903 	{"99948-50", "99948-79"},
904 	{"99948-800", "99948-999"},
905 	{"99949-0", "99949-1"},
906 	{"99949-20", "99949-89"},
907 	{"99949-900", "99949-999"},
908 	{"99950-0", "99950-4"},
909 	{"99950-50", "99950-79"},
910 	{"99950-800", "99950-999"},
911 	{"99952-0", "99952-4"},
912 	{"99952-50", "99952-79"},
913 	{"99952-800", "99952-999"},
914 	{"99953-0", "99953-2"},
915 	{"99953-30", "99953-79"},
916 	{"99953-800", "99953-939"},
917 	{"99953-94", "99953-99"},
918 	{"99954-0", "99954-2"},
919 	{"99954-30", "99954-69"},
920 	{"99954-700", "99954-999"},
921 	{"99955-0", "99955-1"},
922 	{"99955-20", "99955-59"},
923 	{"99955-600", "99955-799"},
924 	{"99955-80", "99955-89"},
925 	{"99955-90", "99955-99"},
926 	{"99956-00", "99956-59"},
927 	{"99956-600", "99956-859"},
928 	{"99956-86", "99956-99"},
929 	{"99957-0", "99957-1"},
930 	{"99957-20", "99957-79"},
931 	{"99957-800", "99957-999"},
932 	{"99958-0", "99958-4"},
933 	{"99958-50", "99958-94"},
934 	{"99958-950", "99958-999"},
935 	{"99959-0", "99959-2"},
936 	{"99959-30", "99959-59"},
937 	{"99959-600", "99959-999"},
938 	{"99960-0", "99960-0"},
939 	{"99960-10", "99960-94"},
940 	{"99960-950", "99960-999"},
941 	{"99961-0", "99961-3"},
942 	{"99961-40", "99961-89"},
943 	{"99961-900", "99961-999"},
944 	{"99962-0", "99962-4"},
945 	{"99962-50", "99962-79"},
946 	{"99962-800", "99962-999"},
947 	{"99963-00", "99963-49"},
948 	{"99963-500", "99963-999"},
949 	{"99964-0", "99964-1"},
950 	{"99964-20", "99964-79"},
951 	{"99964-800", "99964-999"},
952 	{"99965-0", "99965-3"},
953 	{"99965-40", "99965-79"},
954 	{"99965-800", "99965-999"},
955 	{"99966-0", "99966-2"},
956 	{"99966-30", "99966-69"},
957 	{"99966-700", "99966-799"},
958 	{"99967-0", "99967-1"},
959 	{"99967-20", "99967-59"},
960 	{"99967-600", "99967-899"},
961 	{NULL, NULL},
962 };
963 
964 /*
965  * For ISBN with prefix 979
966  * Range Table as of 2010-Jul-29
967  */
968 
969 /* where the digit set begins, and how many of them are in the table */
970 const unsigned ISBN_index_new[10][2] = {
971 	{0, 0},
972 	{0, 5},
973 	{5, 0},
974 	{5, 0},
975 	{5, 0},
976 	{5, 0},
977 	{5, 0},
978 	{5, 0},
979 	{5, 0},
980 	{5, 0},
981 };
982 
983 const char *ISBN_range_new[][2] = {
984 	{"10-00", "10-19"},
985 	{"10-200", "10-699"},
986 	{"10-7000", "10-8999"},
987 	{"10-90000", "10-97599"},
988 	{"10-976000", "10-999999"},
989 	{NULL, NULL},
990 };
991