/******************************************************************************
* canon.h - Canonical text information to be included by VerseKey.cpp
*
* $Id: canon.h,v 1.13 2002/06/25 04:17:29 chrislit Exp $
*
* Copyright 1998 CrossWire Bible Society (http://www.crosswire.org)
* CrossWire Bible Society
* P. O. Box 2528
* Tempe, AZ 85280-2528
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation version 2.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
*/
/******************************************************************************
* [on]tbooks - initialize static instance for all canonical text names
* and chapmax
*/
struct sbook
VerseKey::otbooks[] = {
{"Genesis", "Gen", 50},
{"Exodus", "Exod", 40},
{"Leviticus", "Lev", 27},
{"Numbers", "Num", 36},
{"Deuteronomy", "Deut", 34},
{"Joshua", "Josh", 24},
{"Judges", "Judg", 21},
{"Ruth", "Ruth", 4},
{"I Samuel", "I Sam", 31},
{"II Samuel", "II Sam", 24},
{"I Kings", "I Kin", 22},
{"II Kings", "II Kin", 25},
{"I Chronicles", "I Chr", 29},
{"II Chronicles", "II Chr", 36},
{"Ezra", "Ezra", 10},
{"Nehemiah", "Neh", 13},
{"Esther", "Esth", 10},
{"Job", "Job", 42},
{"Psalms", "Psa", 150},
{"Proverbs", "Prov", 31},
{"Ecclesiastes", "Eccl", 12},
{"Song of Solomon", "Song", 8},
{"Isaiah", "Isa", 66},
{"Jeremiah", "Jer", 52},
{"Lamentations", "Lam", 5},
{"Ezekiel", "Ezek", 48},
{"Daniel", "Dan", 12},
{"Hosea", "Hos", 14},
{"Joel", "Joel", 3},
{"Amos", "Amos", 9},
{"Obadiah", "Obad", 1},
{"Jonah", "Jonah", 4},
{"Micah", "Mic", 7},
{"Nahum", "Nah", 3},
{"Habakkuk", "Hab", 3},
{"Zephaniah", "Zeph", 3},
{"Haggai", "Hag", 2},
{"Zechariah", "Zech", 14},
{"Malachi", "Mal", 4}
};
struct sbook
VerseKey::ntbooks[] = {
{"Matthew", "Mat", 28},
{"Mark", "Mark", 16},
{"Luke", "Luke", 24},
{"John", "John", 21},
{"Acts", "Acts", 28},
{"Romans", "Rom", 16},
{"I Corinthians", "I Cor", 16},
{"II Corinthians", "II Cor", 13},
{"Galatians", "Gal", 6},
{"Ephesians", "Eph", 6},
{"Philippians", "Philip", 4},
{"Colossians", "Col", 4},
{"I Thessalonians", "I Thes", 5},
{"II Thessalonians", "II Thes", 3},
{"I Timothy", "I Tim", 6},
{"II Timothy", "II Tim", 4},
{"Titus", "Titus", 3},
{"Philemon", "Philem", 1},
{"Hebrews", "Heb", 13},
{"James", "Jas", 5},
{"I Peter", "I Pet", 5},
{"II Peter", "II Pet", 3},
{"I John", "I Jo", 5},
{"II John", "II Jo", 1},
{"III John", "III Jo", 1},
{"Jude", "Jude", 1},
{"Revelation of John", "Rev", 22}
};
/******************************************************************************
* Abbreviations - MUST be in alphabetical order & by PRIORITY
* RULE: first match of entire key
* (e.g. key: "1CH"; match: "1CHRONICLES")
*/
const struct abbrev
VerseKey::builtin_abbrevs[] = {
{"1 C", 46}, // 1 Corinthians
{"1 CHRONICLES", 13}, // 1 Chronicles
{"1 CORINTHIANS", 46}, // 1 Corinthians
{"1 JN", 62}, // 1 John
{"1 JOHN", 62}, // 1 John
{"1 KGS", 11}, // 1 Kings
{"1 KINGS", 11}, // 1 Kings
{"1 PETER", 60}, // 1 Peter
{"1 PTR", 60}, // 1 Peter
{"1 SAMUEL", 9}, // 1 Samuel
{"1 THESSALONIANS", 52}, // 1 Thessalonians
{"1 TIMOTHY", 54}, // 1 Timothy
{"1C", 46}, // 1 Corinthians
{"1CHRONICLES", 13}, // 1 Chronicles
{"1CORINTHIANS", 46}, // 1 Corinthians
{"1JN", 62}, // 1 John
{"1JOHN", 62}, // 1 John
{"1KGS", 11}, // 1 Kings
{"1KINGS", 11}, // 1 Kings
{"1PETER", 60}, // 1 Peter
{"1PTR", 60}, // 1 Peter
{"1SAMUEL", 9}, // 1 Samuel
{"1THESSALONIANS", 52}, // 1 Thessalonians
{"1TIMOTHY", 54}, // 1 Timothy
{"2 C", 47}, // 2 Corinthians
{"2 CHRONICLES", 14}, // 2 Chronicles
{"2 CORINTHIANS", 47}, // 2 Corinthians
{"2 JN", 63}, // 2 John
{"2 JOHN", 63}, // 2 John
{"2 KGS", 12}, // 2 Kings
{"2 KINGS", 12}, // 2 Kings
{"2 PETER", 61}, // 2 Peter
{"2 PTR", 61}, // 2 Peter
{"2 SAMUEL", 10}, // 2 Samuel
{"2 THESSALONIANS", 53}, // 2 Thessalonians
{"2 TIMOTHY", 55}, // 2 Timothy
{"2C", 47}, // 2 Corinthians
{"2CHRONICLES", 14}, // 2 Chronicles
{"2CORINTHIANS", 47}, // 2 Corinthians
{"2JN", 63}, // 2 John
{"2JOHN", 63}, // 2 John
{"2KGS", 12}, // 2 Kings
{"2KINGS", 12}, // 2 Kings
{"2PETER", 61}, // 2 Peter
{"2PTR", 61}, // 2 Peter
{"2SAMUEL", 10}, // 2 Samuel
{"2THESSALONIANS", 53}, // 2 Thessalonians
{"2TIMOTHY", 55}, // 2 Timothy
{"3 JN", 64}, // 3 John
{"3 JOHN", 64}, // 3 John
{"3JN", 64}, // 3 John
{"3JOHN", 64}, // 3 John
{"ACTS", 44}, // Acts
{"AMOS", 30}, // Amos
{"APOCALYPSE OF ST. JOHN", 66}, // Apocalypse of St. John (Rev.)
{"C", 51}, // Colossians
{"CANTICLE OF CANTICLES", 22}, // Canticle of Canticles (Song of S.)
{"COLOSSIANS", 51}, // Colossians
{"D", 5}, // Deuteronomy
{"DANIEL", 27}, // Daniel
{"DEUTERONOMY", 5}, // Deuteronomy
{"E", 49}, // Ephesians
{"ECCLESIASTES", 21}, // Ecclesiastes
{"EPHESIANS", 49}, // Ephesians
{"ESTER", 17}, // Esther
{"ESTHER", 17}, // Esther
{"EXODUS", 2}, // Exodus
{"EZEKIEL", 26}, // Ezekiel
{"EZK", 26}, // Ezekiel
{"EZRA", 15}, // Ezra
{"G", 1}, // Genesis
{"GALATIANS", 48}, // Galatians
{"GENESIS", 1}, // Genesis
{"H", 58}, // Hebrews
{"HABAKKUK", 35}, // Habakkuk
{"HAGGAI", 37}, // Haggai
{"HEBREWS", 58}, // Hebrews
{"HOSEA", 28}, // Hosea
{"I C", 46}, // 1 Corinthians
{"I CHRONICLES", 13}, // 1 Chronicles
{"I CORINTHIANS", 46}, // 1 Corinthians
{"I JN", 62}, // 1 John
{"I JOHN", 62}, // 1 John
{"I KGS", 11}, // 1 Kings
{"I KINGS", 11}, // 1 Kings
{"I PETER", 60}, // 1 Peter
{"I PTR", 60}, // 1 Peter
{"I SAMUEL", 9}, // 1 Samuel
{"I THESSALONIANS", 52}, // 1 Thessalonians
{"I TIMOTHY", 54}, // 1 Timothy
{"IC", 46}, // 1 Corinthians
{"ICHRONICLES", 13}, // 1 Chronicles
{"ICORINTHIANS", 46}, // 1 Corinthians
{"II C", 47}, // 2 Corinthians
{"II CHRONICLES", 14}, // 2 Chronicles
{"II CORINTHIANS", 47}, // 2 Corinthians
{"II JN", 63}, // 2 John
{"II JOHN", 63}, // 2 John
{"II KGS", 12}, // 2 Kings
{"II KINGS", 12}, // 2 Kings
{"II PETER", 61}, // 2 Peter
{"II PTR", 61}, // 2 Peter
{"II SAMUEL", 10}, // 2 Samuel
{"II THESSALONIANS", 53}, // 2 Thessalonians
{"II TIMOTHY", 55}, // 2 Timothy
{"IIC", 47}, // 2 Corinthians
{"IICHRONICLES", 14}, // 2 Chronicles
{"IICORINTHIANS", 47}, // 2 Corinthians
{"III JN", 64}, // 3 John
{"III JOHN", 64}, // 3 John
{"IIIJN", 64}, // 3 John
{"IIIJOHN", 64}, // 3 John
{"IIJN", 63}, // 2 John
{"IIJOHN", 63}, // 2 John
{"IIKGS", 12}, // 2 Kings
{"IIKINGS", 12}, // 2 Kings
{"IIPETER", 61}, // 2 Peter
{"IIPTR", 61}, // 2 Peter
{"IISAMUEL", 10}, // 2 Samuel
{"IITHESSALONIANS", 53}, // 2 Thessalonians
{"IITIMOTHY", 55}, // 2 Timothy
{"IJN", 62}, // 1 John
{"IJOHN", 62}, // 1 John
{"IKGS", 11}, // 1 Kings
{"IKINGS", 11}, // 1 Kings
{"IPETER", 60}, // 1 Peter
{"IPTR", 60}, // 1 Peter
{"ISA", 23}, // Isaiah
{"ISAIAH", 23}, // Isaiah
{"ISAMUEL", 9}, // 1 Samuel
{"ITHESSALONIANS", 52}, // 1 Thessalonians
{"ITIMOTHY", 54}, // 1 Timothy
{"J", 43}, // John
{"JAMES", 59}, // James
{"JAS", 59}, // James
{"JDGS", 7}, // Judges
{"JEREMIAH", 24}, // Jeremiah
{"JHN", 43}, // John
{"JN", 43}, // John
{"JO", 43}, // John
{"JOB", 18}, // Job
{"JOEL", 29}, // Joel
{"JOHN", 43}, // John
{"JOL", 29}, // Joel
{"JONAH", 32}, // Jonah
{"JOSHUA", 6}, // Joshua
{"JUDE", 65}, // Jude
{"JUDGES", 7}, // Judges
{"L", 42}, // Luke
{"LAMENTATIONS", 25}, // Lamentations
{"LEVITICUS", 3}, // Leviticus
{"LK", 42}, // Luke
{"LUKE", 42}, // Luke
{"MA", 40}, // Matthew
{"MALACHI", 39}, // Malachi
{"MARK", 41}, // Mark
{"MATTHEW", 40}, // Matthew
{"MICAH", 33}, // Micah
{"MK", 41}, // Mark
{"MRK", 41}, // Mark
{"MT", 40}, // Matthew
{"N", 4}, // Numbers
{"NAHUM", 34}, // Nahum
{"NAM", 34}, // Nahum
{"NEHEMIAH", 16}, // Nehemiah
{"NUMBERS", 4}, // Numbers
{"OBADIAH", 31}, // Obadiah
{"P", 19}, // Psalms
{"PHIL", 50}, // Philippians
{"PHILEMON", 57}, // Philemon
{"PHILIPPIANS", 50}, // Philippians
{"PHM", 57}, // Philemon
{"PHP", 50}, // Philippians
{"PROVERBS", 20}, // Proverbs
{"PSALMS", 19}, // Psalms
{"PSM", 19}, // Psalms
{"PSS", 19}, // Psalms
{"QOHELETH", 21}, // Qohelot (Ecclesiastes)
{"REVELATION OF JOHN", 66}, // Revelation
{"ROMANS", 45}, // Romans
{"RUTH", 8}, // Ruth
{"SNG", 22}, // Song of Solomon
{"SOLOMON", 22}, // Song of Solomon
{"SONG OF SOLOMON", 22}, // Song of Solomon
{"SONG OF SONGS", 22}, // Song of Solomon
{"SOS", 22}, // Song of Solomon
{"TITUS", 56}, // Titus
{"ZECHARIAH", 38}, // Zechariah
{"ZEPHANIAH", 36}, // Zephaniah
{"", -1} // Zephaniah
};
/******************************************************************************
* Maximum verses per chapter
*/
int
VerseKey::vm[] = {
// Genesis
31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38,
18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 55, 32, 20, 31, 29, 43, 36,
30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26,
// Exodus
22, 25, 22, 31, 23, 30, 25, 32, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25,
26, 36, 31, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29,
31, 43, 38,
// Leviticus
17, 16, 17, 35, 19, 30, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37,
27, 24, 33, 44, 23, 55, 46, 34,
// Numbers
54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 16, 33, 45, 41, 50, 13, 32, 22,
29, 35, 41, 30, 25, 18, 65, 23, 31, 40, 16, 54, 42, 56, 29, 34, 13,
// Deuteronomy
46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 32, 18, 29, 23, 22, 20, 22, 21,
20, 23, 30, 25, 22, 19, 19, 26, 68, 29, 20, 30, 52, 29, 12,
// Joshua
18, 24, 17, 24, 15, 27, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51,
9, 45, 34, 16, 33,
// Judges
36, 23, 31, 24, 31, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30,
48, 25,
// Ruth
22, 23, 18, 22,
// I Samual
28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24,
42, 15, 23, 29, 22, 44, 25, 12, 25, 11, 31, 13,
// II Samuel
27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 33, 43,
26, 22, 51, 39, 25,
// I Kings
53, 46, 28, 34, 18, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21,
43, 29, 53,
// II Kings
18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 21, 21, 25, 29, 38, 20, 41, 37, 37,
21, 26, 20, 37, 20, 30,
// I Chronicles
54, 55, 24, 43, 26, 81, 40, 40, 44, 14, 47, 40, 14, 17, 29, 43, 27, 17, 19,
8, 30, 19, 32, 31, 31, 32, 34, 21, 30,
// II Chronicles
17, 18, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 22, 15, 19, 14, 19, 34, 11,
37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 27, 23,
// Ezra
11, 70, 13, 24, 17, 22, 28, 36, 15, 44,
// Nehemiah
11, 20, 32, 23, 19, 19, 73, 18, 38, 39, 36, 47, 31,
// Esther
22, 23, 15, 17, 14, 14, 10, 17, 32, 3,
// Job
22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 22, 16, 21, 29,
29, 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 41,
30, 24, 34, 17,
// Psalms
6, 12, 8, 8, 12, 10, 17, 9, 20, 18, 7, 8, 6, 7, 5, 11, 15, 50, 14, 9, 13,
31, 6, 10, 22, 12, 14, 9, 11, 12, 24, 11, 22, 22, 28, 12, 40, 22, 13, 17,
13, 11, 5, 26, 17, 11, 9, 14, 20, 23, 19, 9, 6, 7, 23, 13, 11, 11, 17, 12,
8, 12, 11, 10, 13, 20, 7, 35, 36, 5, 24, 20, 28, 23, 10, 12, 20, 72, 13,
19, 16, 8, 18, 12, 13, 17, 7, 18, 52, 17, 16, 15, 5, 23, 11, 13, 12, 9, 9,
5, 8, 28, 22, 35, 45, 48, 43, 13, 31, 7, 10, 10, 9, 8, 18, 19, 2, 29, 176,
7, 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 13, 10, 7,
12, 15, 21, 10, 20, 14, 9, 6,
// Proverbs
33, 22, 35, 27, 23, 35, 27, 36, 18, 32, 31, 28, 25, 35, 33, 33, 28, 24, 29,
30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31,
// Ecclesiastes
18, 26, 22, 16, 20, 12, 29, 17, 18, 20, 10, 14,
// Song of Solomon
17, 17, 11, 16, 16, 13, 13, 14,
// Isaiah
31, 22, 26, 6, 30, 13, 25, 22, 21, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6,
17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8,
31, 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21,
14, 21, 22, 11, 12, 19, 12, 25, 24,
// Jeremiah
19, 37, 25, 31, 31, 30, 34, 22, 26, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15,
18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 21,
28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34,
// Lamentations
22, 22, 66, 22, 22,
// Ezekiel
28, 10, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14,
49, 32, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28,
23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35,
// Daniel
21, 49, 30, 37, 31, 28, 28, 27, 27, 21, 45, 13,
// Hosea
11, 23, 5, 19, 15, 11, 16, 14, 17, 15, 12, 14, 16, 9,
// Joel
20, 32, 21,
// Amos
15, 16, 15, 13, 27, 14, 17, 14, 15,
// Obadiah
21,
// Jonah
17, 10, 10, 11,
// Micah
16, 13, 12, 13, 15, 16, 20,
// Nahum
15, 13, 19,
// Habakkuk
17, 20, 19,
// Zephaniah
18, 15, 20,
// Haggai
15, 23,
// Zechariah
21, 13, 10, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21,
// Malachi
14, 17, 18, 6,
// -----------------------------------------------------------------
// Matthew
25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 27, 35, 30,
34, 46, 46, 39, 51, 46, 75, 66, 20,
// Mark
45, 28, 35, 41, 43, 56, 37, 38, 50, 52, 33, 44, 37, 72, 47, 20,
// Luke
80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48,
47, 38, 71, 56, 53,
// John
51, 25, 36, 54, 47, 71, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42,
31, 25,
// Acts
26, 47, 26, 37, 42, 15, 60, 40, 43, 48, 30, 25, 52, 28, 41, 40, 34, 28, 41,
38, 40, 30, 35, 27, 27, 32, 44, 31,
// Romans
32, 29, 31, 25, 21, 23, 25, 39, 33, 21, 36, 21, 14, 23, 33, 27,
// I Corinthians
31, 16, 23, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24,
// II Corinthians
24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 33, 21, 14,
// Galatians
24, 21, 29, 31, 26, 18,
// Ephesians
23, 22, 21, 32, 33, 24,
// Philippians
30, 30, 21, 23,
// Colossians
29, 23, 25, 18,
// I Thessalonians
10, 20, 13, 18, 28,
// II Thessalonians
12, 17, 18,
// I Timothy
20, 15, 16, 16, 25, 21,
// II Timothy
18, 26, 17, 22,
// Titus
16, 15, 15,
// Philemon
25,
// Hebrews
14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25,
// James
27, 26, 18, 17, 20,
// I Peter
25, 25, 22, 19, 14,
// II Peter
21, 22, 18,
// I John
10, 29, 24, 21, 21,
// II John
13,
// III John
14,
// Jude
25,
// Revelation of John
20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 17, 18, 20, 8, 21, 18, 24, 21,
15, 27, 21
};
long
VerseKey::otbks[] = {
0, 1, 52, 93, 121, 158,
193, 218, 240, 245, 277, 302, 325,
351, 381, 418, 429, 443, 454, 497,
648, 680, 693, 702, 769, 822, 828,
877, 890, 905, 909, 919, 921, 926,
934, 938, 942, 946, 949, 964
};
long
VerseKey::otcps[] = {
0, 2, 3, 35, 61, 86,
113, 146, 169, 194, 217, 247, 280,
313, 334, 353, 378, 400, 417, 445,
479, 518, 537, 572, 597, 618, 686,
721, 757, 804, 827, 863, 907, 963,
996, 1017, 1049, 1079, 1123, 1160, 1191,
1215, 1239, 1297, 1336, 1371, 1406, 1435,
1470, 1502, 1525, 1559, 1586, 1587, 1610,
1636, 1659, 1691, 1715, 1746, 1772, 1805,
1841, 1871, 1882, 1934, 1957, 1989, 2017,
2054, 2071, 2099, 2125, 2152, 2189, 2221,
2255, 2274, 2315, 2353, 2375, 2419, 2466,
2505, 2524, 2560, 2584, 2620, 2656, 2695,
2725, 2757, 2801, 2840, 2841, 2859, 2876,
2894, 2930, 2950, 2981, 3020, 3057, 3082,
3103, 3151, 3160, 3220, 3278, 3312, 3347,
3364, 3395, 3433, 3461, 3486, 3520, 3565,
3589, 3645, 3692, 3727, 3728, 3783, 3818,
3870, 3920, 3952, 3980, 4070, 4097, 4121,
4158, 4194, 4211, 4245, 4291, 4333, 4384,
4398, 4431, 4454, 4484, 4520, 4562, 4593,
4619, 4638, 4704, 4728, 4760, 4801, 4818,
4873, 4916, 4973, 5003, 5038, 5052, 5053,
5100, 5138, 5168, 5218, 5252, 5278, 5305,
5326, 5356, 5379, 5412, 5445, 5464, 5494,
5518, 5541, 5562, 5585, 5607, 5628, 5652,
5683, 5709, 5732, 5752, 5772, 5799, 5868,
5898, 5919, 5950, 6003, 6033, 6046, 6047,
6066, 6091, 6109, 6134, 6150, 6178, 6205,
6241, 6269, 6313, 6337, 6362, 6396, 6412,
6476, 6487, 6506, 6535, 6587, 6597, 6643,
6678, 6695, 6729, 6730, 6767, 6791, 6823,
6848, 6880, 6921, 6947, 6983, 7041, 7060,
7101, 7117, 7143, 7164, 7185, 7217, 7231,
7263, 7294, 7343, 7369, 7370, 7393, 7417,
7436, 7459, 7460, 7489, 7526, 7548, 7571,
7584, 7606, 7624, 7647, 7675, 7703, 7719,
7745, 7769, 7822, 7858, 7882, 7941, 7972,
7997, 8040, 8056, 8080, 8110, 8133, 8178,
8204, 8217, 8243, 8255, 8287, 8301, 8302,
8330, 8363, 8403, 8416, 8442, 8466, 8496,
8515, 8529, 8549, 8577, 8609, 8649, 8683,
8721, 8745, 8775, 8809, 8853, 8880, 8903,
8955, 8995, 9021, 9022, 9076, 9123, 9152,
9187, 9206, 9245, 9297, 9364, 9393, 9423,
9467, 9501, 9536, 9568, 9603, 9638, 9663,
9710, 9732, 9776, 9806, 9860, 9861, 9880,
9906, 9934, 9979, 10007, 10041, 10062, 10092,
10130, 10167, 10189, 10211, 10237, 10267, 10306,
10327, 10369, 10407, 10445, 10467, 10494, 10515,
10553, 10574, 10605, 10606, 10661, 10717, 10742,
10786, 10813, 10895, 10936, 10977, 11022, 11037,
11085, 11126, 11141, 11159, 11189, 11233, 11261,
11279, 11299, 11308, 11339, 11359, 11392, 11424,
11456, 11489, 11524, 11546, 11577, 11578, 11596,
11615, 11633, 11656, 11671, 11714, 11737, 11756,
11788, 11808, 11832, 11849, 11872, 11888, 11908,
11923, 11943, 11978, 11990, 12028, 12049, 12062,
12084, 12112, 12141, 12165, 12175, 12203, 12240,
12268, 12290, 12324, 12350, 12384, 12412, 12436,
12437, 12449, 12520, 12534, 12559, 12577, 12600,
12629, 12666, 12682, 12727, 12728, 12740, 12761,
12794, 12818, 12838, 12858, 12932, 12951, 12990,
13030, 13067, 13115, 13147, 13148, 13171, 13195,
13211, 13229, 13244, 13259, 13270, 13288, 13321,
13325, 13326, 13349, 13363, 13390, 13412, 13440,
13471, 13493, 13516, 13552, 13575, 13596, 13622,
13651, 13674, 13710, 13733, 13750, 13772, 13802,
13832, 13867, 13898, 13916, 13942, 13949, 13964,
13988, 14017, 14043, 14075, 14116, 14139, 14173,
14211, 14228, 14262, 14287, 14329, 14360, 14385,
14420, 14438, 14439, 14446, 14459, 14468, 14477,
14490, 14501, 14519, 14529, 14550, 14569, 14577,
14586, 14593, 14601, 14607, 14619, 14635, 14686,
14701, 14711, 14725, 14757, 14764, 14775, 14798,
14811, 14826, 14836, 14848, 14861, 14886, 14898,
14921, 14944, 14973, 14986, 15027, 15050, 15064,
15082, 15096, 15108, 15114, 15141, 15159, 15171,
15181, 15196, 15217, 15241, 15261, 15271, 15278,
15286, 15310, 15324, 15336, 15348, 15366, 15379,
15388, 15401, 15413, 15424, 15438, 15459, 15467,
15503, 15540, 15546, 15571, 15592, 15621, 15645,
15656, 15669, 15690, 15763, 15777, 15797, 15814,
15823, 15842, 15855, 15869, 15887, 15895, 15914,
15967, 15985, 16002, 16018, 16024, 16048, 16060,
16074, 16087, 16097, 16107, 16113, 16122, 16151,
16174, 16210, 16256, 16305, 16349, 16363, 16395,
16403, 16414, 16425, 16435, 16444, 16463, 16483,
16486, 16516, 16693, 16701, 16710, 16720, 16725,
16734, 16740, 16747, 16753, 16760, 16769, 16778,
16782, 16801, 16805, 16809, 16831, 16858, 16868,
16877, 16902, 16916, 16927, 16935, 16948, 16964,
16986, 16997, 17018, 17033, 17043, 17050, 17051,
17085, 17108, 17144, 17172, 17196, 17232, 17260,
17297, 17316, 17349, 17381, 17410, 17436, 17472,
17506, 17540, 17569, 17594, 17624, 17655, 17687,
17717, 17753, 17788, 17817, 17846, 17874, 17903,
17931, 17965, 17997, 17998, 18017, 18044, 18067,
18084, 18105, 18118, 18148, 18166, 18185, 18206,
18217, 18232, 18233, 18251, 18269, 18281, 18298,
18315, 18329, 18343, 18358, 18359, 18391, 18414,
18441, 18448, 18479, 18493, 18519, 18542, 18564,
18599, 18616, 18623, 18646, 18679, 18689, 18704,
18719, 18727, 18753, 18760, 18778, 18804, 18823,
18847, 18860, 18882, 18896, 18926, 18951, 18985,
18995, 19016, 19041, 19059, 19070, 19093, 19132,
19155, 19164, 19196, 19226, 19252, 19281, 19310,
19336, 19350, 19366, 19389, 19416, 19428, 19452,
19468, 19481, 19499, 19513, 19526, 19548, 19563,
19585, 19608, 19620, 19633, 19653, 19666, 19692,
19717, 19718, 19738, 19776, 19802, 19834, 19866,
19897, 19932, 19955, 19982, 20008, 20032, 20050,
20078, 20101, 20123, 20145, 20173, 20197, 20213,
20232, 20247, 20278, 20319, 20330, 20369, 20394,
20417, 20435, 20468, 20493, 20534, 20579, 20606,
20629, 20649, 20682, 20704, 20733, 20752, 20769,
20788, 20811, 20825, 20856, 20862, 20891, 20899,
20947, 20987, 21034, 21099, 21134, 21135, 21158,
21181, 21248, 21271, 21294, 21295, 21324, 21335,
21363, 21381, 21399, 21414, 21442, 21461, 21473,
21496, 21522, 21551, 21575, 21599, 21608, 21672,
21697, 21730, 21745, 21795, 21828, 21860, 21910,
21938, 21956, 21978, 22015, 22042, 22064, 22091,
22110, 22143, 22177, 22209, 22225, 22264, 22293,
22317, 22347, 22397, 22424, 22445, 22473, 22505,
22531, 22556, 22580, 22616, 22617, 22639, 22689,
22720, 22758, 22790, 22819, 22848, 22876, 22904,
22926, 22972, 22986, 22987, 22999, 23023, 23029,
23049, 23065, 23077, 23094, 23109, 23127, 23143,
23156, 23171, 23188, 23198, 23199, 23220, 23253,
23275, 23276, 23292, 23309, 23325, 23339, 23367,
23382, 23400, 23415, 23431, 23432, 23454, 23455,
23473, 23484, 23495, 23507, 23508, 23525, 23539,
23552, 23566, 23582, 23599, 23620, 23621, 23637,
23651, 23671, 23672, 23690, 23711, 23731, 23732,
23751, 23767, 23788, 23789, 23805, 23829, 23830,
23852, 23866, 23877, 23892, 23904, 23920, 23935,
23959, 23977, 23990, 24008, 24023, 24033, 24055,
24056, 24071, 24089, 24108
};
long
VerseKey::ntbks[] = {
0, 1, 30, 47, 72, 94,
123, 140, 157, 171, 178, 185, 190,
195, 201, 205, 212, 217, 221, 223,
237, 243, 249, 253, 259, 261, 263,
265
};
long
VerseKey::ntcps[] = {
0, 2, 3, 29, 53, 71,
97, 146, 181, 211, 246, 285, 328,
359, 410, 469, 506, 546, 575, 603,
639, 670, 705, 752, 799, 839, 891,
938, 1014, 1081, 1102, 1103, 1149, 1178,
1214, 1256, 1300, 1357, 1395, 1434, 1485,
1538, 1572, 1617, 1655, 1728, 1776, 1797,
1798, 1879, 1932, 1971, 2016, 2056, 2106,
2157, 2214, 2277, 2320, 2375, 2435, 2471,
2507, 2540, 2572, 2610, 2654, 2703, 2751,
2790, 2862, 2919, 2973, 2974, 3026, 3052,
3089, 3144, 3192, 3264, 3318, 3378, 3420,
3463, 3521, 3572, 3611, 3643, 3671, 3705,
3732, 3773, 3816, 3848, 3874, 3875, 3902,
3950, 3977, 4015, 4058, 4074, 4135, 4176,
4220, 4269, 4300, 4326, 4379, 4408, 4450,
4491, 4526, 4555, 4597, 4636, 4677, 4708,
4744, 4772, 4800, 4833, 4878, 4910, 4911,
4944, 4974, 5006, 5032, 5054, 5078, 5104,
5144, 5178, 5200, 5237, 5259, 5274, 5298,
5332, 5360, 5361, 5393, 5410, 5434, 5456,
5470, 5491, 5532, 5546, 5574, 5608, 5643,
5675, 5689, 5730, 5789, 5814, 5815, 5840,
5858, 5877, 5896, 5918, 5937, 5954, 5979,
5995, 6014, 6048, 6070, 6085, 6086, 6111,
6133, 6163, 6195, 6222, 6241, 6242, 6266,
6289, 6311, 6344, 6378, 6403, 6404, 6435,
6466, 6488, 6512, 6513, 6543, 6567, 6593,
6612, 6613, 6624, 6645, 6659, 6678, 6707,
6708, 6721, 6739, 6758, 6759, 6780, 6796,
6813, 6830, 6856, 6878, 6879, 6898, 6925,
6943, 6966, 6967, 6984, 7000, 7016, 7017,
7043, 7044, 7059, 7078, 7098, 7115, 7130,
7151, 7180, 7194, 7223, 7263, 7304, 7334,
7360, 7361, 7389, 7416, 7435, 7453, 7474,
7475, 7501, 7527, 7550, 7570, 7585, 7586,
7608, 7631, 7650, 7651, 7662, 7692, 7717,
7739, 7761, 7762, 7776, 7777, 7792, 7793,
7819, 7820, 7841, 7871, 7894, 7906, 7921,
7939, 7957, 7971, 7993, 8005, 8025, 8043,
8062, 8083, 8092, 8114, 8133, 8158, 8180,
8196, 8224
};
int
VerseKey::offsize[2][2] =
{ {sizeof (VerseKey::otbks) / 4, sizeof (VerseKey::otcps) / 4}
, {sizeof (VerseKey::ntbks) / 4, sizeof (VerseKey::ntcps) / 4}
};