Header And Logo

PostgreSQL
| The world's most advanced open source database.

ISBN.h

Go to the documentation of this file.
00001 /*
00002  * ISBN.h
00003  *    PostgreSQL type definitions for ISNs (ISBN, ISMN, ISSN, EAN13, UPC)
00004  *
00005  * Information recompiled by Kronuz on June 20, 2006
00006  * http://www.isbn-international.org/
00007  * http://www.isbn.org/
00008  *
00009  * IDENTIFICATION
00010  *    contrib/isn/ISBN.h
00011  *
00012  * 0-393-04002-X => 039304002(X) <=> 039304002 <=> (978)039304002 <=> 978039304002(9) <=> 978-0-393-04002-9
00013  *
00014  *
00015  * ISBN         0   3    9    3    0   4    0   0   2
00016  * Weight       10  9    8    7    6   5    4   3   2
00017  * Product      0 + 27 + 72 + 21 + 0 + 20 + 0 + 0 + 4 = 144
00018  *              144 / 11 = 13 remainder 1
00019  * Check digit  11 - 1 = 10 = X
00020  * => 0-393-04002-X
00021  *
00022  * ISBN         9   7    8   0   3   9    3   0   4   0   0   2
00023  * Weight       1   3    1   3   1   3    1   3   1   3   1   3
00024  * Product      9 + 21 + 8 + 0 + 3 + 27 + 3 + 0 + 4 + 0 + 0 + 6 = 81
00025  *              81 / 10 = 8 remainder 1
00026  * Check digit  10 - 1 = 9
00027  * => 978-0-393-04002-9
00028  *
00029  */
00030 
00031 /*
00032  * For ISBN with prefix 978
00033  * Range Table as of 2010-Jul-29
00034  */
00035 
00036 /* where the digit set begins, and how many of them are in the table */
00037 const unsigned ISBN_index[10][2] = {
00038     {0, 6},
00039     {6, 6},
00040     {12, 8},
00041     {20, 14},
00042     {34, 6},
00043     {40, 19},
00044     {59, 68},
00045     {127, 5},
00046     {132, 60},
00047     {192, 718},
00048 };
00049 
00050 const char *ISBN_range[][2] = {
00051     {"0-00", "0-19"},
00052     {"0-200", "0-699"},
00053     {"0-7000", "0-8499"},
00054     {"0-85000", "0-89999"},
00055     {"0-900000", "0-949999"},
00056     {"0-9500000", "0-9999999"},
00057     {"1-00", "1-09"},
00058     {"1-100", "1-399"},
00059     {"1-4000", "1-5499"},
00060     {"1-55000", "1-86979"},
00061     {"1-869800", "1-998999"},
00062     {"1-9990000", "1-9999999"},
00063     {"2-00", "2-19"},
00064     {"2-200", "2-349"},
00065     {"2-35000", "2-39999"},
00066     {"2-400", "2-699"},
00067     {"2-7000", "2-8399"},
00068     {"2-84000", "2-89999"},
00069     {"2-900000", "2-949999"},
00070     {"2-9500000", "2-9999999"},
00071     {"3-00", "3-02"},
00072     {"3-030", "3-033"},
00073     {"3-0340", "3-0369"},
00074     {"3-03700", "3-03999"},
00075     {"3-04", "3-19"},
00076     {"3-200", "3-699"},
00077     {"3-7000", "3-8499"},
00078     {"3-85000", "3-89999"},
00079     {"3-900000", "3-949999"},
00080     {"3-9500000", "3-9539999"},
00081     {"3-95400", "3-96999"},
00082     {"3-9700000", "3-9899999"},
00083     {"3-99000", "3-99499"},
00084     {"3-99500", "3-99999"},
00085     {"4-00", "4-19"},
00086     {"4-200", "4-699"},
00087     {"4-7000", "4-8499"},
00088     {"4-85000", "4-89999"},
00089     {"4-900000", "4-949999"},
00090     {"4-9500000", "4-9999999"},
00091     {"5-00", "5-19"},
00092     {"5-200", "5-420"},
00093     {"5-4210", "5-4299"},
00094     {"5-430", "5-430"},
00095     {"5-4310", "5-4399"},
00096     {"5-440", "5-440"},
00097     {"5-4410", "5-4499"},
00098     {"5-450", "5-699"},
00099     {"5-7000", "5-8499"},
00100     {"5-85000", "5-89999"},
00101     {"5-900000", "5-909999"},
00102     {"5-91000", "5-91999"},
00103     {"5-9200", "5-9299"},
00104     {"5-93000", "5-94999"},
00105     {"5-9500000", "5-9500999"},
00106     {"5-9501", "5-9799"},
00107     {"5-98000", "5-98999"},
00108     {"5-9900000", "5-9909999"},
00109     {"5-9910", "5-9999"},
00110     {"600-00", "600-09"},
00111     {"600-100", "600-499"},
00112     {"600-5000", "600-8999"},
00113     {"600-90000", "600-99999"},
00114     {"601-00", "601-19"},
00115     {"601-200", "601-699"},
00116     {"601-7000", "601-7999"},
00117     {"601-80000", "601-84999"},
00118     {"601-85", "601-99"},
00119     {"602-00", "602-19"},
00120     {"602-200", "602-799"},
00121     {"602-8000", "602-9499"},
00122     {"602-95000", "602-99999"},
00123     {"603-00", "603-04"},
00124     {"603-05", "603-49"},
00125     {"603-500", "603-799"},
00126     {"603-8000", "603-8999"},
00127     {"603-90000", "603-99999"},
00128     {"604-0", "604-4"},
00129     {"604-50", "604-89"},
00130     {"604-900", "604-979"},
00131     {"604-9800", "604-9999"},
00132     {"605-01", "605-09"},
00133     {"605-100", "605-399"},
00134     {"605-4000", "605-5999"},
00135     {"605-60000", "605-89999"},
00136     {"605-90", "605-99"},
00137     {"606-0", "606-0"},
00138     {"606-10", "606-49"},
00139     {"606-500", "606-799"},
00140     {"606-8000", "606-9199"},
00141     {"606-92000", "606-99999"},
00142     {"607-00", "607-39"},
00143     {"607-400", "607-749"},
00144     {"607-7500", "607-9499"},
00145     {"607-95000", "607-99999"},
00146     {"608-0", "608-0"},
00147     {"608-10", "608-19"},
00148     {"608-200", "608-449"},
00149     {"608-4500", "608-6499"},
00150     {"608-65000", "608-69999"},
00151     {"608-7", "608-9"},
00152     {"609-00", "609-39"},
00153     {"609-400", "609-799"},
00154     {"609-8000", "609-9499"},
00155     {"609-95000", "609-99999"},
00156     {"612-00", "612-29"},
00157     {"612-300", "612-399"},
00158     {"612-4000", "612-4499"},
00159     {"612-45000", "612-49999"},
00160     {"612-50", "612-99"},
00161     {"613-0", "613-9"},
00162     {"614-00", "614-39"},
00163     {"614-400", "614-799"},
00164     {"614-8000", "614-9499"},
00165     {"614-95000", "614-99999"},
00166     {"615-00", "615-09"},
00167     {"615-100", "615-499"},
00168     {"615-5000", "615-7999"},
00169     {"615-80000", "615-89999"},
00170     {"616-00", "616-19"},
00171     {"616-200", "616-699"},
00172     {"616-7000", "616-8999"},
00173     {"616-90000", "616-99999"},
00174     {"617-00", "617-49"},
00175     {"617-500", "617-699"},
00176     {"617-7000", "617-8999"},
00177     {"617-90000", "617-99999"},
00178     {"7-00", "7-09"},
00179     {"7-100", "7-499"},
00180     {"7-5000", "7-7999"},
00181     {"7-80000", "7-89999"},
00182     {"7-900000", "7-999999"},
00183     {"80-00", "80-19"},
00184     {"80-200", "80-699"},
00185     {"80-7000", "80-8499"},
00186     {"80-85000", "80-89999"},
00187     {"80-900000", "80-999999"},
00188     {"81-00", "81-19"},
00189     {"81-200", "81-699"},
00190     {"81-7000", "81-8499"},
00191     {"81-85000", "81-89999"},
00192     {"81-900000", "81-999999"},
00193     {"82-00", "82-19"},
00194     {"82-200", "82-699"},
00195     {"82-7000", "82-8999"},
00196     {"82-90000", "82-98999"},
00197     {"82-990000", "82-999999"},
00198     {"83-00", "83-19"},
00199     {"83-200", "83-599"},
00200     {"83-60000", "83-69999"},
00201     {"83-7000", "83-8499"},
00202     {"83-85000", "83-89999"},
00203     {"83-900000", "83-999999"},
00204     {"84-00", "84-14"},
00205     {"84-15000", "84-19999"},
00206     {"84-200", "84-699"},
00207     {"84-7000", "84-8499"},
00208     {"84-85000", "84-89999"},
00209     {"84-9000", "84-9199"},
00210     {"84-920000", "84-923999"},
00211     {"84-92400", "84-92999"},
00212     {"84-930000", "84-949999"},
00213     {"84-95000", "84-96999"},
00214     {"84-9700", "84-9999"},
00215     {"85-00", "85-19"},
00216     {"85-200", "85-599"},
00217     {"85-60000", "85-69999"},
00218     {"85-7000", "85-8499"},
00219     {"85-85000", "85-89999"},
00220     {"85-900000", "85-979999"},
00221     {"85-98000", "85-99999"},
00222     {"86-00", "86-29"},
00223     {"86-300", "86-599"},
00224     {"86-6000", "86-7999"},
00225     {"86-80000", "86-89999"},
00226     {"86-900000", "86-999999"},
00227     {"87-00", "87-29"},
00228     {"87-400", "87-649"},
00229     {"87-7000", "87-7999"},
00230     {"87-85000", "87-94999"},
00231     {"87-970000", "87-999999"},
00232     {"88-00", "88-19"},
00233     {"88-200", "88-599"},
00234     {"88-6000", "88-8499"},
00235     {"88-85000", "88-89999"},
00236     {"88-900000", "88-949999"},
00237     {"88-95000", "88-99999"},
00238     {"89-00", "89-24"},
00239     {"89-250", "89-549"},
00240     {"89-5500", "89-8499"},
00241     {"89-85000", "89-94999"},
00242     {"89-950000", "89-999999"},
00243     {"90-00", "90-19"},
00244     {"90-200", "90-499"},
00245     {"90-5000", "90-6999"},
00246     {"90-70000", "90-79999"},
00247     {"90-800000", "90-849999"},
00248     {"90-8500", "90-8999"},
00249     {"90-90", "90-90"},
00250     {"90-910000", "90-939999"},
00251     {"90-94", "90-94"},
00252     {"90-950000", "90-999999"},
00253     {"91-0", "91-1"},
00254     {"91-20", "91-49"},
00255     {"91-500", "91-649"},
00256     {"91-7000", "91-7999"},
00257     {"91-85000", "91-94999"},
00258     {"91-970000", "91-999999"},
00259     {"92-0", "92-5"},
00260     {"92-60", "92-79"},
00261     {"92-800", "92-899"},
00262     {"92-9000", "92-9499"},
00263     {"92-95000", "92-98999"},
00264     {"92-990000", "92-999999"},
00265     {"93-00", "93-09"},
00266     {"93-100", "93-499"},
00267     {"93-5000", "93-7999"},
00268     {"93-80000", "93-94999"},
00269     {"93-950000", "93-999999"},
00270     {"94-000", "94-599"},
00271     {"94-6000", "94-8999"},
00272     {"94-90000", "94-99999"},
00273     {"950-00", "950-49"},
00274     {"950-500", "950-899"},
00275     {"950-9000", "950-9899"},
00276     {"950-99000", "950-99999"},
00277     {"951-0", "951-1"},
00278     {"951-20", "951-54"},
00279     {"951-550", "951-889"},
00280     {"951-8900", "951-9499"},
00281     {"951-95000", "951-99999"},
00282     {"952-00", "952-19"},
00283     {"952-200", "952-499"},
00284     {"952-5000", "952-5999"},
00285     {"952-60", "952-65"},
00286     {"952-6600", "952-6699"},
00287     {"952-67000", "952-69999"},
00288     {"952-7000", "952-7999"},
00289     {"952-80", "952-94"},
00290     {"952-9500", "952-9899"},
00291     {"952-99000", "952-99999"},
00292     {"953-0", "953-0"},
00293     {"953-10", "953-14"},
00294     {"953-150", "953-549"},
00295     {"953-55000", "953-59999"},
00296     {"953-6000", "953-9499"},
00297     {"953-95000", "953-99999"},
00298     {"954-00", "954-28"},
00299     {"954-2900", "954-2999"},
00300     {"954-300", "954-799"},
00301     {"954-8000", "954-8999"},
00302     {"954-90000", "954-92999"},
00303     {"954-9300", "954-9999"},
00304     {"955-0000", "955-1999"},
00305     {"955-20", "955-49"},
00306     {"955-50000", "955-54999"},
00307     {"955-550", "955-799"},
00308     {"955-8000", "955-9499"},
00309     {"955-95000", "955-99999"},
00310     {"956-00", "956-19"},
00311     {"956-200", "956-699"},
00312     {"956-7000", "956-9999"},
00313     {"957-00", "957-02"},
00314     {"957-0300", "957-0499"},
00315     {"957-05", "957-19"},
00316     {"957-2000", "957-2099"},
00317     {"957-21", "957-27"},
00318     {"957-28000", "957-30999"},
00319     {"957-31", "957-43"},
00320     {"957-440", "957-819"},
00321     {"957-8200", "957-9699"},
00322     {"957-97000", "957-99999"},
00323     {"958-00", "958-56"},
00324     {"958-57000", "958-59999"},
00325     {"958-600", "958-799"},
00326     {"958-8000", "958-9499"},
00327     {"958-95000", "958-99999"},
00328     {"959-00", "959-19"},
00329     {"959-200", "959-699"},
00330     {"959-7000", "959-8499"},
00331     {"959-85000", "959-99999"},
00332     {"960-00", "960-19"},
00333     {"960-200", "960-659"},
00334     {"960-6600", "960-6899"},
00335     {"960-690", "960-699"},
00336     {"960-7000", "960-8499"},
00337     {"960-85000", "960-92999"},
00338     {"960-93", "960-93"},
00339     {"960-9400", "960-9799"},
00340     {"960-98000", "960-99999"},
00341     {"961-00", "961-19"},
00342     {"961-200", "961-599"},
00343     {"961-6000", "961-8999"},
00344     {"961-90000", "961-94999"},
00345     {"962-00", "962-19"},
00346     {"962-200", "962-699"},
00347     {"962-7000", "962-8499"},
00348     {"962-85000", "962-86999"},
00349     {"962-8700", "962-8999"},
00350     {"962-900", "962-999"},
00351     {"963-00", "963-19"},
00352     {"963-200", "963-699"},
00353     {"963-7000", "963-8499"},
00354     {"963-85000", "963-89999"},
00355     {"963-9000", "963-9999"},
00356     {"964-00", "964-14"},
00357     {"964-150", "964-249"},
00358     {"964-2500", "964-2999"},
00359     {"964-300", "964-549"},
00360     {"964-5500", "964-8999"},
00361     {"964-90000", "964-96999"},
00362     {"964-970", "964-989"},
00363     {"964-9900", "964-9999"},
00364     {"965-00", "965-19"},
00365     {"965-200", "965-599"},
00366     {"965-7000", "965-7999"},
00367     {"965-90000", "965-99999"},
00368     {"966-00", "966-14"},
00369     {"966-1500", "966-1699"},
00370     {"966-170", "966-199"},
00371     {"966-2000", "966-2999"},
00372     {"966-300", "966-699"},
00373     {"966-7000", "966-8999"},
00374     {"966-90000", "966-99999"},
00375     {"967-00", "967-29"},
00376     {"967-300", "967-499"},
00377     {"967-5000", "967-5999"},
00378     {"967-60", "967-89"},
00379     {"967-900", "967-989"},
00380     {"967-9900", "967-9989"},
00381     {"967-99900", "967-99999"},
00382     {"968-01", "968-39"},
00383     {"968-400", "968-499"},
00384     {"968-5000", "968-7999"},
00385     {"968-800", "968-899"},
00386     {"968-9000", "968-9999"},
00387     {"969-0", "969-1"},
00388     {"969-20", "969-39"},
00389     {"969-400", "969-799"},
00390     {"969-8000", "969-9999"},
00391     {"970-01", "970-59"},
00392     {"970-600", "970-899"},
00393     {"970-9000", "970-9099"},
00394     {"970-91000", "970-96999"},
00395     {"970-9700", "970-9999"},
00396     {"971-000", "971-015"},
00397     {"971-0160", "971-0199"},
00398     {"971-02", "971-02"},
00399     {"971-0300", "971-0599"},
00400     {"971-06", "971-09"},
00401     {"971-10", "971-49"},
00402     {"971-500", "971-849"},
00403     {"971-8500", "971-9099"},
00404     {"971-91000", "971-98999"},
00405     {"971-9900", "971-9999"},
00406     {"972-0", "972-1"},
00407     {"972-20", "972-54"},
00408     {"972-550", "972-799"},
00409     {"972-8000", "972-9499"},
00410     {"972-95000", "972-99999"},
00411     {"973-0", "973-0"},
00412     {"973-100", "973-169"},
00413     {"973-1700", "973-1999"},
00414     {"973-20", "973-54"},
00415     {"973-550", "973-759"},
00416     {"973-7600", "973-8499"},
00417     {"973-85000", "973-88999"},
00418     {"973-8900", "973-9499"},
00419     {"973-95000", "973-99999"},
00420     {"974-00", "974-19"},
00421     {"974-200", "974-699"},
00422     {"974-7000", "974-8499"},
00423     {"974-85000", "974-89999"},
00424     {"974-90000", "974-94999"},
00425     {"974-9500", "974-9999"},
00426     {"975-00000", "975-00999"},
00427     {"975-01", "975-01"},
00428     {"975-02", "975-24"},
00429     {"975-250", "975-599"},
00430     {"975-6000", "975-9199"},
00431     {"975-92000", "975-98999"},
00432     {"975-990", "975-999"},
00433     {"976-0", "976-3"},
00434     {"976-40", "976-59"},
00435     {"976-600", "976-799"},
00436     {"976-8000", "976-9499"},
00437     {"976-95000", "976-99999"},
00438     {"977-00", "977-19"},
00439     {"977-200", "977-499"},
00440     {"977-5000", "977-6999"},
00441     {"977-700", "977-999"},
00442     {"978-000", "978-199"},
00443     {"978-2000", "978-2999"},
00444     {"978-30000", "978-79999"},
00445     {"978-8000", "978-8999"},
00446     {"978-900", "978-999"},
00447     {"979-000", "979-099"},
00448     {"979-1000", "979-1499"},
00449     {"979-15000", "979-19999"},
00450     {"979-20", "979-29"},
00451     {"979-3000", "979-3999"},
00452     {"979-400", "979-799"},
00453     {"979-8000", "979-9499"},
00454     {"979-95000", "979-99999"},
00455     {"980-00", "980-19"},
00456     {"980-200", "980-599"},
00457     {"980-6000", "980-9999"},
00458     {"981-00", "981-11"},
00459     {"981-1200", "981-1999"},
00460     {"981-200", "981-289"},
00461     {"981-2900", "981-9999"},
00462     {"982-00", "982-09"},
00463     {"982-100", "982-699"},
00464     {"982-70", "982-89"},
00465     {"982-9000", "982-9799"},
00466     {"982-98000", "982-99999"},
00467     {"983-00", "983-01"},
00468     {"983-020", "983-199"},
00469     {"983-2000", "983-3999"},
00470     {"983-40000", "983-44999"},
00471     {"983-45", "983-49"},
00472     {"983-50", "983-79"},
00473     {"983-800", "983-899"},
00474     {"983-9000", "983-9899"},
00475     {"983-99000", "983-99999"},
00476     {"984-00", "984-39"},
00477     {"984-400", "984-799"},
00478     {"984-8000", "984-8999"},
00479     {"984-90000", "984-99999"},
00480     {"985-00", "985-39"},
00481     {"985-400", "985-599"},
00482     {"985-6000", "985-8999"},
00483     {"985-90000", "985-99999"},
00484     {"986-00", "986-11"},
00485     {"986-120", "986-559"},
00486     {"986-5600", "986-7999"},
00487     {"986-80000", "986-99999"},
00488     {"987-00", "987-09"},
00489     {"987-1000", "987-1999"},
00490     {"987-20000", "987-29999"},
00491     {"987-30", "987-49"},
00492     {"987-500", "987-899"},
00493     {"987-9000", "987-9499"},
00494     {"987-95000", "987-99999"},
00495     {"988-00", "988-16"},
00496     {"988-17000", "988-19999"},
00497     {"988-200", "988-799"},
00498     {"988-8000", "988-9699"},
00499     {"988-97000", "988-99999"},
00500     {"989-0", "989-1"},
00501     {"989-20", "989-54"},
00502     {"989-550", "989-799"},
00503     {"989-8000", "989-9499"},
00504     {"989-95000", "989-99999"},
00505     {"9927-00", "9927-09"},
00506     {"9927-100", "9927-399"},
00507     {"9927-4000", "9927-4999"},
00508     {"9928-00", "9928-09"},
00509     {"9928-100", "9928-399"},
00510     {"9928-4000", "9928-4999"},
00511     {"9929-0", "9929-3"},
00512     {"9929-40", "9929-54"},
00513     {"9929-550", "9929-799"},
00514     {"9929-8000", "9929-9999"},
00515     {"9930-00", "9930-49"},
00516     {"9930-500", "9930-939"},
00517     {"9930-9400", "9930-9999"},
00518     {"9931-00", "9931-29"},
00519     {"9931-300", "9931-899"},
00520     {"9931-9000", "9931-9999"},
00521     {"9932-00", "9932-39"},
00522     {"9932-400", "9932-849"},
00523     {"9932-8500", "9932-9999"},
00524     {"9933-0", "9933-0"},
00525     {"9933-10", "9933-39"},
00526     {"9933-400", "9933-899"},
00527     {"9933-9000", "9933-9999"},
00528     {"9934-0", "9934-0"},
00529     {"9934-10", "9934-49"},
00530     {"9934-500", "9934-799"},
00531     {"9934-8000", "9934-9999"},
00532     {"9935-0", "9935-0"},
00533     {"9935-10", "9935-39"},
00534     {"9935-400", "9935-899"},
00535     {"9935-9000", "9935-9999"},
00536     {"9936-0", "9936-1"},
00537     {"9936-20", "9936-39"},
00538     {"9936-400", "9936-799"},
00539     {"9936-8000", "9936-9999"},
00540     {"9937-0", "9937-2"},
00541     {"9937-30", "9937-49"},
00542     {"9937-500", "9937-799"},
00543     {"9937-8000", "9937-9999"},
00544     {"9938-00", "9938-79"},
00545     {"9938-800", "9938-949"},
00546     {"9938-9500", "9938-9999"},
00547     {"9939-0", "9939-4"},
00548     {"9939-50", "9939-79"},
00549     {"9939-800", "9939-899"},
00550     {"9939-9000", "9939-9999"},
00551     {"9940-0", "9940-1"},
00552     {"9940-20", "9940-49"},
00553     {"9940-500", "9940-899"},
00554     {"9940-9000", "9940-9999"},
00555     {"9941-0", "9941-0"},
00556     {"9941-10", "9941-39"},
00557     {"9941-400", "9941-899"},
00558     {"9941-9000", "9941-9999"},
00559     {"9942-00", "9942-89"},
00560     {"9942-900", "9942-994"},
00561     {"9942-9950", "9942-9999"},
00562     {"9943-00", "9943-29"},
00563     {"9943-300", "9943-399"},
00564     {"9943-4000", "9943-9999"},
00565     {"9944-0000", "9944-0999"},
00566     {"9944-100", "9944-499"},
00567     {"9944-5000", "9944-5999"},
00568     {"9944-60", "9944-69"},
00569     {"9944-700", "9944-799"},
00570     {"9944-80", "9944-89"},
00571     {"9944-900", "9944-999"},
00572     {"9945-00", "9945-00"},
00573     {"9945-010", "9945-079"},
00574     {"9945-08", "9945-39"},
00575     {"9945-400", "9945-569"},
00576     {"9945-57", "9945-57"},
00577     {"9945-580", "9945-849"},
00578     {"9945-8500", "9945-9999"},
00579     {"9946-0", "9946-1"},
00580     {"9946-20", "9946-39"},
00581     {"9946-400", "9946-899"},
00582     {"9946-9000", "9946-9999"},
00583     {"9947-0", "9947-1"},
00584     {"9947-20", "9947-79"},
00585     {"9947-800", "9947-999"},
00586     {"9948-00", "9948-39"},
00587     {"9948-400", "9948-849"},
00588     {"9948-8500", "9948-9999"},
00589     {"9949-0", "9949-0"},
00590     {"9949-10", "9949-39"},
00591     {"9949-400", "9949-899"},
00592     {"9949-9000", "9949-9999"},
00593     {"9950-00", "9950-29"},
00594     {"9950-300", "9950-849"},
00595     {"9950-8500", "9950-9999"},
00596     {"9951-00", "9951-39"},
00597     {"9951-400", "9951-849"},
00598     {"9951-8500", "9951-9999"},
00599     {"9952-0", "9952-1"},
00600     {"9952-20", "9952-39"},
00601     {"9952-400", "9952-799"},
00602     {"9952-8000", "9952-9999"},
00603     {"9953-0", "9953-0"},
00604     {"9953-10", "9953-39"},
00605     {"9953-400", "9953-599"},
00606     {"9953-60", "9953-89"},
00607     {"9953-9000", "9953-9999"},
00608     {"9954-0", "9954-1"},
00609     {"9954-20", "9954-39"},
00610     {"9954-400", "9954-799"},
00611     {"9954-8000", "9954-9999"},
00612     {"9955-00", "9955-39"},
00613     {"9955-400", "9955-929"},
00614     {"9955-9300", "9955-9999"},
00615     {"9956-0", "9956-0"},
00616     {"9956-10", "9956-39"},
00617     {"9956-400", "9956-899"},
00618     {"9956-9000", "9956-9999"},
00619     {"9957-00", "9957-39"},
00620     {"9957-400", "9957-699"},
00621     {"9957-70", "9957-84"},
00622     {"9957-8500", "9957-8799"},
00623     {"9957-88", "9957-99"},
00624     {"9958-0", "9958-0"},
00625     {"9958-10", "9958-49"},
00626     {"9958-500", "9958-899"},
00627     {"9958-9000", "9958-9999"},
00628     {"9959-0", "9959-1"},
00629     {"9959-20", "9959-79"},
00630     {"9959-800", "9959-949"},
00631     {"9959-9500", "9959-9999"},
00632     {"9960-00", "9960-59"},
00633     {"9960-600", "9960-899"},
00634     {"9960-9000", "9960-9999"},
00635     {"9961-0", "9961-2"},
00636     {"9961-30", "9961-69"},
00637     {"9961-700", "9961-949"},
00638     {"9961-9500", "9961-9999"},
00639     {"9962-00", "9962-54"},
00640     {"9962-5500", "9962-5599"},
00641     {"9962-56", "9962-59"},
00642     {"9962-600", "9962-849"},
00643     {"9962-8500", "9962-9999"},
00644     {"9963-0", "9963-2"},
00645     {"9963-30", "9963-54"},
00646     {"9963-550", "9963-734"},
00647     {"9963-7350", "9963-7499"},
00648     {"9963-7500", "9963-9999"},
00649     {"9964-0", "9964-6"},
00650     {"9964-70", "9964-94"},
00651     {"9964-950", "9964-999"},
00652     {"9965-00", "9965-39"},
00653     {"9965-400", "9965-899"},
00654     {"9965-9000", "9965-9999"},
00655     {"9966-000", "9966-199"},
00656     {"9966-20", "9966-69"},
00657     {"9966-7000", "9966-7499"},
00658     {"9966-750", "9966-959"},
00659     {"9966-9600", "9966-9999"},
00660     {"9967-00", "9967-39"},
00661     {"9967-400", "9967-899"},
00662     {"9967-9000", "9967-9999"},
00663     {"9968-00", "9968-49"},
00664     {"9968-500", "9968-939"},
00665     {"9968-9400", "9968-9999"},
00666     {"9970-00", "9970-39"},
00667     {"9970-400", "9970-899"},
00668     {"9970-9000", "9970-9999"},
00669     {"9971-0", "9971-5"},
00670     {"9971-60", "9971-89"},
00671     {"9971-900", "9971-989"},
00672     {"9971-9900", "9971-9999"},
00673     {"9972-00", "9972-09"},
00674     {"9972-1", "9972-1"},
00675     {"9972-200", "9972-249"},
00676     {"9972-2500", "9972-2999"},
00677     {"9972-30", "9972-59"},
00678     {"9972-600", "9972-899"},
00679     {"9972-9000", "9972-9999"},
00680     {"9973-00", "9973-05"},
00681     {"9973-060", "9973-089"},
00682     {"9973-0900", "9973-0999"},
00683     {"9973-10", "9973-69"},
00684     {"9973-700", "9973-969"},
00685     {"9973-9700", "9973-9999"},
00686     {"9974-0", "9974-2"},
00687     {"9974-30", "9974-54"},
00688     {"9974-550", "9974-749"},
00689     {"9974-7500", "9974-9499"},
00690     {"9974-95", "9974-99"},
00691     {"9975-0", "9975-0"},
00692     {"9975-100", "9975-399"},
00693     {"9975-4000", "9975-4499"},
00694     {"9975-45", "9975-89"},
00695     {"9975-900", "9975-949"},
00696     {"9975-9500", "9975-9999"},
00697     {"9976-0", "9976-5"},
00698     {"9976-60", "9976-89"},
00699     {"9976-900", "9976-989"},
00700     {"9976-9900", "9976-9999"},
00701     {"9977-00", "9977-89"},
00702     {"9977-900", "9977-989"},
00703     {"9977-9900", "9977-9999"},
00704     {"9978-00", "9978-29"},
00705     {"9978-300", "9978-399"},
00706     {"9978-40", "9978-94"},
00707     {"9978-950", "9978-989"},
00708     {"9978-9900", "9978-9999"},
00709     {"9979-0", "9979-4"},
00710     {"9979-50", "9979-64"},
00711     {"9979-650", "9979-659"},
00712     {"9979-66", "9979-75"},
00713     {"9979-760", "9979-899"},
00714     {"9979-9000", "9979-9999"},
00715     {"9980-0", "9980-3"},
00716     {"9980-40", "9980-89"},
00717     {"9980-900", "9980-989"},
00718     {"9980-9900", "9980-9999"},
00719     {"9981-00", "9981-09"},
00720     {"9981-100", "9981-159"},
00721     {"9981-1600", "9981-1999"},
00722     {"9981-20", "9981-79"},
00723     {"9981-800", "9981-949"},
00724     {"9981-9500", "9981-9999"},
00725     {"9982-00", "9982-79"},
00726     {"9982-800", "9982-989"},
00727     {"9982-9900", "9982-9999"},
00728     {"9983-80", "9983-94"},
00729     {"9983-950", "9983-989"},
00730     {"9983-9900", "9983-9999"},
00731     {"9984-00", "9984-49"},
00732     {"9984-500", "9984-899"},
00733     {"9984-9000", "9984-9999"},
00734     {"9985-0", "9985-4"},
00735     {"9985-50", "9985-79"},
00736     {"9985-800", "9985-899"},
00737     {"9985-9000", "9985-9999"},
00738     {"9986-00", "9986-39"},
00739     {"9986-400", "9986-899"},
00740     {"9986-9000", "9986-9399"},
00741     {"9986-940", "9986-969"},
00742     {"9986-97", "9986-99"},
00743     {"9987-00", "9987-39"},
00744     {"9987-400", "9987-879"},
00745     {"9987-8800", "9987-9999"},
00746     {"9988-0", "9988-2"},
00747     {"9988-30", "9988-54"},
00748     {"9988-550", "9988-749"},
00749     {"9988-7500", "9988-9999"},
00750     {"9989-0", "9989-0"},
00751     {"9989-100", "9989-199"},
00752     {"9989-2000", "9989-2999"},
00753     {"9989-30", "9989-59"},
00754     {"9989-600", "9989-949"},
00755     {"9989-9500", "9989-9999"},
00756     {"99901-00", "99901-49"},
00757     {"99901-500", "99901-799"},
00758     {"99901-80", "99901-99"},
00759     {"99903-0", "99903-1"},
00760     {"99903-20", "99903-89"},
00761     {"99903-900", "99903-999"},
00762     {"99904-0", "99904-5"},
00763     {"99904-60", "99904-89"},
00764     {"99904-900", "99904-999"},
00765     {"99905-0", "99905-3"},
00766     {"99905-40", "99905-79"},
00767     {"99905-800", "99905-999"},
00768     {"99906-0", "99906-2"},
00769     {"99906-30", "99906-59"},
00770     {"99906-600", "99906-699"},
00771     {"99906-70", "99906-89"},
00772     {"99906-90", "99906-94"},
00773     {"99906-950", "99906-999"},
00774     {"99908-0", "99908-0"},
00775     {"99908-10", "99908-89"},
00776     {"99908-900", "99908-999"},
00777     {"99909-0", "99909-3"},
00778     {"99909-40", "99909-94"},
00779     {"99909-950", "99909-999"},
00780     {"99910-0", "99910-2"},
00781     {"99910-30", "99910-89"},
00782     {"99910-900", "99910-999"},
00783     {"99911-00", "99911-59"},
00784     {"99911-600", "99911-999"},
00785     {"99912-0", "99912-3"},
00786     {"99912-400", "99912-599"},
00787     {"99912-60", "99912-89"},
00788     {"99912-900", "99912-999"},
00789     {"99913-0", "99913-2"},
00790     {"99913-30", "99913-35"},
00791     {"99913-600", "99913-604"},
00792     {"99914-0", "99914-4"},
00793     {"99914-50", "99914-89"},
00794     {"99914-900", "99914-999"},
00795     {"99915-0", "99915-4"},
00796     {"99915-50", "99915-79"},
00797     {"99915-800", "99915-999"},
00798     {"99916-0", "99916-2"},
00799     {"99916-30", "99916-69"},
00800     {"99916-700", "99916-999"},
00801     {"99917-0", "99917-2"},
00802     {"99917-30", "99917-89"},
00803     {"99917-900", "99917-999"},
00804     {"99918-0", "99918-3"},
00805     {"99918-40", "99918-79"},
00806     {"99918-800", "99918-999"},
00807     {"99919-0", "99919-2"},
00808     {"99919-300", "99919-399"},
00809     {"99919-40", "99919-69"},
00810     {"99919-900", "99919-999"},
00811     {"99920-0", "99920-4"},
00812     {"99920-50", "99920-89"},
00813     {"99920-900", "99920-999"},
00814     {"99921-0", "99921-1"},
00815     {"99921-20", "99921-69"},
00816     {"99921-700", "99921-799"},
00817     {"99921-8", "99921-8"},
00818     {"99921-90", "99921-99"},
00819     {"99922-0", "99922-3"},
00820     {"99922-40", "99922-69"},
00821     {"99922-700", "99922-999"},
00822     {"99923-0", "99923-1"},
00823     {"99923-20", "99923-79"},
00824     {"99923-800", "99923-999"},
00825     {"99924-0", "99924-1"},
00826     {"99924-20", "99924-79"},
00827     {"99924-800", "99924-999"},
00828     {"99925-0", "99925-3"},
00829     {"99925-40", "99925-79"},
00830     {"99925-800", "99925-999"},
00831     {"99926-0", "99926-0"},
00832     {"99926-10", "99926-59"},
00833     {"99926-600", "99926-999"},
00834     {"99927-0", "99927-2"},
00835     {"99927-30", "99927-59"},
00836     {"99927-600", "99927-999"},
00837     {"99928-0", "99928-0"},
00838     {"99928-10", "99928-79"},
00839     {"99928-800", "99928-999"},
00840     {"99929-0", "99929-4"},
00841     {"99929-50", "99929-79"},
00842     {"99929-800", "99929-999"},
00843     {"99930-0", "99930-4"},
00844     {"99930-50", "99930-79"},
00845     {"99930-800", "99930-999"},
00846     {"99931-0", "99931-4"},
00847     {"99931-50", "99931-79"},
00848     {"99931-800", "99931-999"},
00849     {"99932-0", "99932-0"},
00850     {"99932-10", "99932-59"},
00851     {"99932-600", "99932-699"},
00852     {"99932-7", "99932-7"},
00853     {"99932-80", "99932-99"},
00854     {"99933-0", "99933-2"},
00855     {"99933-30", "99933-59"},
00856     {"99933-600", "99933-999"},
00857     {"99934-0", "99934-1"},
00858     {"99934-20", "99934-79"},
00859     {"99934-800", "99934-999"},
00860     {"99935-0", "99935-2"},
00861     {"99935-30", "99935-59"},
00862     {"99935-600", "99935-699"},
00863     {"99935-7", "99935-8"},
00864     {"99935-90", "99935-99"},
00865     {"99936-0", "99936-0"},
00866     {"99936-10", "99936-59"},
00867     {"99936-600", "99936-999"},
00868     {"99937-0", "99937-1"},
00869     {"99937-20", "99937-59"},
00870     {"99937-600", "99937-999"},
00871     {"99938-0", "99938-1"},
00872     {"99938-20", "99938-59"},
00873     {"99938-600", "99938-899"},
00874     {"99938-90", "99938-99"},
00875     {"99939-0", "99939-5"},
00876     {"99939-60", "99939-89"},
00877     {"99939-900", "99939-999"},
00878     {"99940-0", "99940-0"},
00879     {"99940-10", "99940-69"},
00880     {"99940-700", "99940-999"},
00881     {"99941-0", "99941-2"},
00882     {"99941-30", "99941-79"},
00883     {"99941-800", "99941-999"},
00884     {"99942-0", "99942-4"},
00885     {"99942-50", "99942-79"},
00886     {"99942-800", "99942-999"},
00887     {"99943-0", "99943-2"},
00888     {"99943-30", "99943-59"},
00889     {"99943-600", "99943-999"},
00890     {"99944-0", "99944-4"},
00891     {"99944-50", "99944-79"},
00892     {"99944-800", "99944-999"},
00893     {"99945-0", "99945-5"},
00894     {"99945-60", "99945-89"},
00895     {"99945-900", "99945-999"},
00896     {"99946-0", "99946-2"},
00897     {"99946-30", "99946-59"},
00898     {"99946-600", "99946-999"},
00899     {"99947-0", "99947-2"},
00900     {"99947-30", "99947-69"},
00901     {"99947-700", "99947-999"},
00902     {"99948-0", "99948-4"},
00903     {"99948-50", "99948-79"},
00904     {"99948-800", "99948-999"},
00905     {"99949-0", "99949-1"},
00906     {"99949-20", "99949-89"},
00907     {"99949-900", "99949-999"},
00908     {"99950-0", "99950-4"},
00909     {"99950-50", "99950-79"},
00910     {"99950-800", "99950-999"},
00911     {"99952-0", "99952-4"},
00912     {"99952-50", "99952-79"},
00913     {"99952-800", "99952-999"},
00914     {"99953-0", "99953-2"},
00915     {"99953-30", "99953-79"},
00916     {"99953-800", "99953-939"},
00917     {"99953-94", "99953-99"},
00918     {"99954-0", "99954-2"},
00919     {"99954-30", "99954-69"},
00920     {"99954-700", "99954-999"},
00921     {"99955-0", "99955-1"},
00922     {"99955-20", "99955-59"},
00923     {"99955-600", "99955-799"},
00924     {"99955-80", "99955-89"},
00925     {"99955-90", "99955-99"},
00926     {"99956-00", "99956-59"},
00927     {"99956-600", "99956-859"},
00928     {"99956-86", "99956-99"},
00929     {"99957-0", "99957-1"},
00930     {"99957-20", "99957-79"},
00931     {"99957-800", "99957-999"},
00932     {"99958-0", "99958-4"},
00933     {"99958-50", "99958-94"},
00934     {"99958-950", "99958-999"},
00935     {"99959-0", "99959-2"},
00936     {"99959-30", "99959-59"},
00937     {"99959-600", "99959-999"},
00938     {"99960-0", "99960-0"},
00939     {"99960-10", "99960-94"},
00940     {"99960-950", "99960-999"},
00941     {"99961-0", "99961-3"},
00942     {"99961-40", "99961-89"},
00943     {"99961-900", "99961-999"},
00944     {"99962-0", "99962-4"},
00945     {"99962-50", "99962-79"},
00946     {"99962-800", "99962-999"},
00947     {"99963-00", "99963-49"},
00948     {"99963-500", "99963-999"},
00949     {"99964-0", "99964-1"},
00950     {"99964-20", "99964-79"},
00951     {"99964-800", "99964-999"},
00952     {"99965-0", "99965-3"},
00953     {"99965-40", "99965-79"},
00954     {"99965-800", "99965-999"},
00955     {"99966-0", "99966-2"},
00956     {"99966-30", "99966-69"},
00957     {"99966-700", "99966-799"},
00958     {"99967-0", "99967-1"},
00959     {"99967-20", "99967-59"},
00960     {"99967-600", "99967-899"},
00961     {NULL, NULL},
00962 };
00963 
00964 /*
00965  * For ISBN with prefix 979
00966  * Range Table as of 2010-Jul-29
00967  */
00968 
00969 /* where the digit set begins, and how many of them are in the table */
00970 const unsigned ISBN_index_new[10][2] = {
00971     {0, 0},
00972     {0, 5},
00973     {5, 0},
00974     {5, 0},
00975     {5, 0},
00976     {5, 0},
00977     {5, 0},
00978     {5, 0},
00979     {5, 0},
00980     {5, 0},
00981 };
00982 
00983 const char *ISBN_range_new[][2] = {
00984     {"10-00", "10-19"},
00985     {"10-200", "10-699"},
00986     {"10-7000", "10-8999"},
00987     {"10-90000", "10-97599"},
00988     {"10-976000", "10-999999"},
00989     {NULL, NULL},
00990 };