bibclean-3.07/0000775000156700015670000000000014431412256012110 5ustar beebebeebebibclean-3.07/romtol.dat0000444000156700015670000000027407343451014014114 0ustar beebebeebei ii iii iiii iv v vi vii viii viiii ix x xi xii xiii xiiii xiv xv xvi xvii xviii xviiii xix xx xxx xxxx xxxxx l c cc cd d dc cm m mcm mcmxcii mxmii abc iabc vabc xabc labc cabc dabc mabc bibclean-3.07/isbn.tbl0000644000156700015670000032211314023240436013542 0ustar beebebeebe/**********************************************************************/ /**********************************************************************/ /** WARNING: Do NOT edit this file. It was created automatically **/ /** from the master ISBN prefix list on Sat Mar 13 15:47:58 MST 2021 **/ /** by **/ /** **/ /** awk -f isbn-el-to-bibclean-isbn.awk isbn.el >this-file **/ /** **/ /** Update the bibclean ISBN initialization file, .bibclean.isbn, **/ /** instead! **/ /**********************************************************************/ /**********************************************************************/ static ISBN_range_t ISBN_range[MAX_ISBN_RANGE] = { /******************************************************************* NB: We intentionally include the hyphen that separates the countrygroupnumber from the publishernumber, in order to improve readability, even though this complicates the processing in in_ISBN_range(). Given the position of that hyphen, we automatically compute the required hyphen positions. *******************************************************************/ { "0-00", "0-19", "Region name: English language\tCountry code(s): ??\tLanguage group: 0\tPublisher(s): 00 - 19; 200 - 227; 2280 - 2289; 229 - 368; 3690 - 3699; 370 - 638; 6390 - 6397; 6398000 - 6399999; 640 - 644; 6450000 - 6459999; 646 - 647; 6480000 - 6489999; 649 - 654; 6550 - 6559; 656 - 699; 7000 - 8499; 85000 - 89999; 900000 - 949999; 9500000 - 9999999"}, { "0-200", "0-227", ""}, { "0-2280", "0-2289", ""}, { "0-229", "0-368", ""}, { "0-3690", "0-3699", ""}, { "0-370", "0-638", ""}, { "0-6390", "0-6397", ""}, { "0-6398000", "0-6399999", ""}, { "0-640", "0-644", ""}, { "0-6450000", "0-6459999", ""}, { "0-646", "0-647", ""}, { "0-6480000", "0-6489999", ""}, { "0-649", "0-654", ""}, { "0-6550", "0-6559", ""}, { "0-656", "0-699", ""}, { "0-7000", "0-8499", ""}, { "0-85000", "0-89999", ""}, { "0-900000", "0-949999", ""}, { "0-9500000", "0-9999999", ""}, { "1-000", "1-009", "Region name: English language\tCountry code(s): ??\tLanguage group: 1\tPublisher(s): 000 - 009; 01 - 02; 030 - 034; 0350 - 0399; 04 - 06; 0700 - 0999; 100 - 397; 3980 - 5499; 55000 - 64999; 6500 - 6799; 68000 - 68599; 6860 - 7139; 714 - 716; 7170 - 7319; 7320000 - 7399999; 74000 - 77499; 7750000 - 7753999; 77540 - 77639; 7764000 - 7764999; 77650 - 77699; 7770000 - 7782999; 77830 - 78999; 7900 - 7999; 80000 - 80049; 80050 - 80499; 80500 - 83799; 8380000 - 8384999; 83850 - 86719; 8672 - 8675; 86760 - 86979; 869800 - 915999; 9160000 - 9165059; 916506 - 972999; 9730 - 9877; 987800 - 991149; 9911500 - 9911999; 991200 - 998989; 9989900 - 9999999"}, { "1-01", "1-02", ""}, { "1-030", "1-034", ""}, { "1-0350", "1-0399", ""}, { "1-04", "1-06", ""}, { "1-0700", "1-0999", ""}, { "1-100", "1-397", ""}, { "1-3980", "1-5499", ""}, { "1-55000", "1-64999", ""}, { "1-6500", "1-6799", ""}, { "1-68000", "1-68599", ""}, { "1-6860", "1-7139", ""}, { "1-714", "1-716", ""}, { "1-7170", "1-7319", ""}, { "1-7320000", "1-7399999", ""}, { "1-74000", "1-77499", ""}, { "1-7750000", "1-7753999", ""}, { "1-77540", "1-77639", ""}, { "1-7764000", "1-7764999", ""}, { "1-77650", "1-77699", ""}, { "1-7770000", "1-7782999", ""}, { "1-77830", "1-78999", ""}, { "1-7900", "1-7999", ""}, { "1-80000", "1-80049", ""}, { "1-80050", "1-80499", ""}, { "1-80500", "1-83799", ""}, { "1-8380000", "1-8384999", ""}, { "1-83850", "1-86719", ""}, { "1-8672", "1-8675", ""}, { "1-86760", "1-86979", ""}, { "1-869800", "1-915999", ""}, { "1-9160000", "1-9165059", ""}, { "1-916506", "1-972999", ""}, { "1-9730", "1-9877", ""}, { "1-987800", "1-991149", ""}, { "1-9911500", "1-9911999", ""}, { "1-991200", "1-998989", ""}, { "1-9989900", "1-9999999", ""}, { "2-00", "2-19", "Region name: French language\tCountry code(s): ??\tLanguage group: 2\tPublisher(s): 00 - 19; 200 - 349; 35000 - 39999; 400 - 489; 490000 - 494999; 495 - 495; 4960 - 4966; 49670 - 49699; 497 - 699; 7000 - 8399; 84000 - 89999; 900000 - 919799; 91980 - 91980; 919810 - 919942; 9199430 - 9199689; 919969 - 949999; 9500000 - 9999999"}, { "2-200", "2-349", ""}, { "2-35000", "2-39999", ""}, { "2-400", "2-489", ""}, { "2-490000", "2-494999", ""}, { "2-495", "2-495", ""}, { "2-4960", "2-4966", ""}, { "2-49670", "2-49699", ""}, { "2-497", "2-699", ""}, { "2-7000", "2-8399", ""}, { "2-84000", "2-89999", ""}, { "2-900000", "2-919799", ""}, { "2-91980", "2-91980", ""}, { "2-919810", "2-919942", ""}, { "2-9199430", "2-9199689", ""}, { "2-919969", "2-949999", ""}, { "2-9500000", "2-9999999", ""}, { "3-00", "3-02", "Region name: German language\tCountry code(s): ??\tLanguage group: 3\tPublisher(s): 00 - 02; 030 - 033; 0340 - 0369; 03700 - 03999; 04 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 949999; 9500000 - 9539999; 95400 - 96999; 9700000 - 9849999; 98500 - 99999"}, { "3-030", "3-033", ""}, { "3-0340", "3-0369", ""}, { "3-03700", "3-03999", ""}, { "3-04", "3-19", ""}, { "3-200", "3-699", ""}, { "3-7000", "3-8499", ""}, { "3-85000", "3-89999", ""}, { "3-900000", "3-949999", ""}, { "3-9500000", "3-9539999", ""}, { "3-95400", "3-96999", ""}, { "3-9700000", "3-9849999", ""}, { "3-98500", "3-99999", ""}, { "4-00", "4-19", "Region name: Japan\tCountry code(s): JP\tLanguage group: 4\tPublisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 949999; 9500000 - 9999999"}, { "4-200", "4-699", ""}, { "4-7000", "4-8499", ""}, { "4-85000", "4-89999", ""}, { "4-900000", "4-949999", ""}, { "4-9500000", "4-9999999", ""}, { "5-00000", "5-00499", "Region name: former U.S.S.R\tCountry code(s): ??\tLanguage group: 5\tPublisher(s): 00000 - 00499; 0050 - 0099; 01 - 19; 200 - 420; 4210 - 4299; 430 - 430; 4310 - 4399; 440 - 440; 4410 - 4499; 450 - 603; 6040000 - 6049999; 605 - 699; 7000 - 8499; 85000 - 89999; 900000 - 909999; 91000 - 91999; 9200 - 9299; 93000 - 94999; 9500000 - 9500999; 9501 - 9799; 98000 - 98999; 9900000 - 9909999; 9910 - 9999"}, { "5-0050", "5-0099", ""}, { "5-01", "5-19", ""}, { "5-200", "5-420", ""}, { "5-4210", "5-4299", ""}, { "5-430", "5-430", ""}, { "5-4310", "5-4399", ""}, { "5-440", "5-440", ""}, { "5-4410", "5-4499", ""}, { "5-450", "5-603", ""}, { "5-6040000", "5-6049999", ""}, { "5-605", "5-699", ""}, { "5-7000", "5-8499", ""}, { "5-85000", "5-89999", ""}, { "5-900000", "5-909999", ""}, { "5-91000", "5-91999", ""}, { "5-9200", "5-9299", ""}, { "5-93000", "5-94999", ""}, { "5-9500000", "5-9500999", ""}, { "5-9501", "5-9799", ""}, { "5-98000", "5-98999", ""}, { "5-9900000", "5-9909999", ""}, { "5-9910", "5-9999", ""}, { "600-00", "600-09", "Region name: Iran\tCountry code(s): IR\tLanguage group: 600\tPublisher(s): 00 - 09; 100 - 499; 5000 - 8999; 90000 - 98679; 9868 - 9929; 993 - 995; 99600 - 99999"}, { "600-100", "600-499", ""}, { "600-5000", "600-8999", ""}, { "600-90000", "600-98679", ""}, { "600-9868", "600-9929", ""}, { "600-993", "600-995", ""}, { "600-99600", "600-99999", ""}, { "601-00", "601-19", "Region name: Kazakhstan\tCountry code(s): KZ\tLanguage group: 601\tPublisher(s): 00 - 19; 200 - 699; 7000 - 7999; 80000 - 84999; 85 - 99"}, { "601-200", "601-699", ""}, { "601-7000", "601-7999", ""}, { "601-80000", "601-84999", ""}, { "601-85", "601-99", ""}, { "602-00", "602-06", "Region name: Indonesia\tCountry code(s): ID\tLanguage group: 602\tPublisher(s): 00 - 06; 0700 - 1399; 14000 - 14999; 1500 - 1699; 17000 - 19999; 200 - 499; 50000 - 53999; 5400 - 5999; 60000 - 61999; 6200 - 6999; 70000 - 74999; 7500 - 9499; 95000 - 99999"}, { "602-0700", "602-1399", ""}, { "602-14000", "602-14999", ""}, { "602-1500", "602-1699", ""}, { "602-17000", "602-19999", ""}, { "602-200", "602-499", ""}, { "602-50000", "602-53999", ""}, { "602-5400", "602-5999", ""}, { "602-60000", "602-61999", ""}, { "602-6200", "602-6999", ""}, { "602-70000", "602-74999", ""}, { "602-7500", "602-9499", ""}, { "602-95000", "602-99999", ""}, { "603-00", "603-04", "Region name: Saudi Arabia\tCountry code(s): SA\tLanguage group: 603\tPublisher(s): 00 - 04; 05 - 49; 500 - 799; 8000 - 8999; 90000 - 99999"}, { "603-05", "603-49", ""}, { "603-500", "603-799", ""}, { "603-8000", "603-8999", ""}, { "603-90000", "603-99999", ""}, { "604-0", "604-4", "Region name: Vietnam\tCountry code(s): VN\tLanguage group: 604\tPublisher(s): 0 - 4; 50 - 89; 900 - 979; 9800 - 9999"}, { "604-50", "604-89", ""}, { "604-900", "604-979", ""}, { "604-9800", "604-9999", ""}, { "605-00", "605-02", "Region name: Turkey\tCountry code(s): TR\tLanguage group: 605\tPublisher(s): 00 - 02; 030 - 039; 04 - 05; 06000 - 06999; 07 - 09; 100 - 199; 2000 - 2399; 240 - 399; 4000 - 5999; 60000 - 74999; 7500 - 7999; 80000 - 89999; 9000 - 9999"}, { "605-030", "605-039", ""}, { "605-04", "605-05", ""}, { "605-06000", "605-06999", ""}, { "605-07", "605-09", ""}, { "605-100", "605-199", ""}, { "605-2000", "605-2399", ""}, { "605-240", "605-399", ""}, { "605-4000", "605-5999", ""}, { "605-60000", "605-74999", ""}, { "605-7500", "605-7999", ""}, { "605-80000", "605-89999", ""}, { "605-9000", "605-9999", ""}, { "606-000", "606-089", "Region name: Romania\tCountry code(s): RO\tLanguage group: 606\tPublisher(s): 000 - 089; 09 - 49; 500 - 799; 8000 - 9099; 910 - 919; 92000 - 96499; 9650 - 9749; 975 - 999"}, { "606-09", "606-49", ""}, { "606-500", "606-799", ""}, { "606-8000", "606-9099", ""}, { "606-910", "606-919", ""}, { "606-92000", "606-96499", ""}, { "606-9650", "606-9749", ""}, { "606-975", "606-999", ""}, { "607-00", "607-39", "Region name: Mexico\tCountry code(s): MX\tLanguage group: 607\tPublisher(s): 00 - 39; 400 - 749; 7500 - 9499; 95000 - 99999"}, { "607-400", "607-749", ""}, { "607-7500", "607-9499", ""}, { "607-95000", "607-99999", ""}, { "608-0", "608-0", "Region name: North Macedonia\tCountry code(s): MK\tLanguage group: 608\tPublisher(s): 0 - 0; 10 - 19; 200 - 449; 4500 - 6499; 65000 - 69999; 7 - 9"}, { "608-10", "608-19", ""}, { "608-200", "608-449", ""}, { "608-4500", "608-6499", ""}, { "608-65000", "608-69999", ""}, { "608-7", "608-9", ""}, { "609-00", "609-39", "Region name: Lithuania\tCountry code(s): LT\tLanguage group: 609\tPublisher(s): 00 - 39; 400 - 799; 8000 - 9499; 95000 - 99999"}, { "609-400", "609-799", ""}, { "609-8000", "609-9499", ""}, { "609-95000", "609-99999", ""}, { "612-00", "612-29", "Region name: Peru\tCountry code(s): PE\tLanguage group: 612\tPublisher(s): 00 - 29; 300 - 399; 4000 - 4499; 45000 - 49999; 5000 - 5149"}, { "612-300", "612-399", ""}, { "612-4000", "612-4499", ""}, { "612-45000", "612-49999", ""}, { "612-5000", "612-5149", ""}, { "613-0", "613-9", "Region name: Mauritius\tCountry code(s): MU\tLanguage group: 613\tPublisher(s): 0 - 9"}, { "614-00", "614-39", "Region name: Lebanon\tCountry code(s): LB\tLanguage group: 614\tPublisher(s): 00 - 39; 400 - 799; 8000 - 9499; 95000 - 99999"}, { "614-400", "614-799", ""}, { "614-8000", "614-9499", ""}, { "614-95000", "614-99999", ""}, { "615-00", "615-09", "Region name: Hungary\tCountry code(s): HU\tLanguage group: 615\tPublisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 89999"}, { "615-100", "615-499", ""}, { "615-5000", "615-7999", ""}, { "615-80000", "615-89999", ""}, { "616-00", "616-19", "Region name: Thailand\tCountry code(s): TH\tLanguage group: 616\tPublisher(s): 00 - 19; 200 - 699; 7000 - 8999; 90000 - 99999"}, { "616-200", "616-699", ""}, { "616-7000", "616-8999", ""}, { "616-90000", "616-99999", ""}, { "617-00", "617-49", "Region name: Ukraine\tCountry code(s): UA\tLanguage group: 617\tPublisher(s): 00 - 49; 500 - 699; 7000 - 8999; 90000 - 99999"}, { "617-500", "617-699", ""}, { "617-7000", "617-8999", ""}, { "617-90000", "617-99999", ""}, { "618-00", "618-19", "Region name: Greece\tCountry code(s): GR\tLanguage group: 618\tPublisher(s): 00 - 19; 200 - 499; 5000 - 7999; 80000 - 99999"}, { "618-200", "618-499", ""}, { "618-5000", "618-7999", ""}, { "618-80000", "618-99999", ""}, { "619-00", "619-14", "Region name: Bulgaria\tCountry code(s): BG\tLanguage group: 619\tPublisher(s): 00 - 14; 150 - 699; 7000 - 8999; 90000 - 99999"}, { "619-150", "619-699", ""}, { "619-7000", "619-8999", ""}, { "619-90000", "619-99999", ""}, { "620-0", "620-9", "Region name: Mauritius\tCountry code(s): MU\tLanguage group: 620\tPublisher(s): 0 - 9"}, { "621-00", "621-29", "Region name: Philippines\tCountry code(s): PH\tLanguage group: 621\tPublisher(s): 00 - 29; 400 - 599; 8000 - 8999; 95000 - 99999"}, { "621-400", "621-599", ""}, { "621-8000", "621-8999", ""}, { "621-95000", "621-99999", ""}, { "622-00", "622-08", "Region name: Iran\tCountry code(s): IR\tLanguage group: 622\tPublisher(s): 00 - 08; 200 - 299; 6000 - 7999; 95000 - 99999"}, { "622-200", "622-299", ""}, { "622-6000", "622-7999", ""}, { "622-95000", "622-99999", ""}, { "623-00", "623-09", "Region name: Indonesia\tCountry code(s): ID\tLanguage group: 623\tPublisher(s): 00 - 09; 200 - 399; 6000 - 7999; 90000 - 99999"}, { "623-200", "623-399", ""}, { "623-6000", "623-7999", ""}, { "623-90000", "623-99999", ""}, { "624-00", "624-04", "Region name: Sri Lanka\tCountry code(s): LK\tLanguage group: 624\tPublisher(s): 00 - 04; 200 - 249; 5000 - 5999; 95000 - 99999"}, { "624-200", "624-249", ""}, { "624-5000", "624-5999", ""}, { "624-95000", "624-99999", ""}, { "625-00", "625-00", "Region name: Turkey\tCountry code(s): TR\tLanguage group: 625\tPublisher(s): 00 - 00; 400 - 449; 7000 - 7999"}, { "625-400", "625-449", ""}, { "625-7000", "625-7999", ""}, { "626-00", "626-04", "Region name: Taiwan\tCountry code(s): TW\tLanguage group: 626\tPublisher(s): 00 - 04; 300 - 499; 7000 - 7999; 95000 - 99999"}, { "626-300", "626-499", ""}, { "626-7000", "626-7999", ""}, { "626-95000", "626-99999", ""}, { "65-00", "65-01", "Region name: Brazil\tCountry code(s): BR\tLanguage group: 65\tPublisher(s): 00 - 01; 250 - 299; 300 - 302; 5000 - 5129; 5500 - 5999; 80000 - 81824; 86000 - 89999; 900000 - 902449; 990000 - 999999"}, { "65-250", "65-299", ""}, { "65-300", "65-302", ""}, { "65-5000", "65-5129", ""}, { "65-5500", "65-5999", ""}, { "65-80000", "65-81824", ""}, { "65-86000", "65-89999", ""}, { "65-900000", "65-902449", ""}, { "65-990000", "65-999999", ""}, { "7-00", "7-09", "Region name: China, People's Republic\tCountry code(s): CN\tLanguage group: 7\tPublisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 89999; 900000 - 999999"}, { "7-100", "7-499", ""}, { "7-5000", "7-7999", ""}, { "7-80000", "7-89999", ""}, { "7-900000", "7-999999", ""}, { "80-00", "80-19", "Region name: former Czechoslovakia\tCountry code(s): ??\tLanguage group: 80\tPublisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 998999; 99900 - 99999"}, { "80-200", "80-699", ""}, { "80-7000", "80-8499", ""}, { "80-85000", "80-89999", ""}, { "80-900000", "80-998999", ""}, { "80-99900", "80-99999", ""}, { "81-00", "81-19", "Region name: India\tCountry code(s): IN\tLanguage group: 81\tPublisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 999999"}, { "81-200", "81-699", ""}, { "81-7000", "81-8499", ""}, { "81-85000", "81-89999", ""}, { "81-900000", "81-999999", ""}, { "82-00", "82-19", "Region name: Norway\tCountry code(s): NO\tLanguage group: 82\tPublisher(s): 00 - 19; 200 - 689; 690000 - 699999; 7000 - 8999; 90000 - 98999; 990000 - 999999"}, { "82-200", "82-689", ""}, { "82-690000", "82-699999", ""}, { "82-7000", "82-8999", ""}, { "82-90000", "82-98999", ""}, { "82-990000", "82-999999", ""}, { "83-00", "83-19", "Region name: Poland\tCountry code(s): PL\tLanguage group: 83\tPublisher(s): 00 - 19; 200 - 599; 60000 - 69999; 7000 - 8499; 85000 - 89999; 900000 - 999999"}, { "83-200", "83-599", ""}, { "83-60000", "83-69999", ""}, { "83-7000", "83-8499", ""}, { "83-85000", "83-89999", ""}, { "83-900000", "83-999999", ""}, { "84-00", "84-10", "Region name: Spain\tCountry code(s): ES\tLanguage group: 84\tPublisher(s): 00 - 10; 1100 - 1199; 120000 - 129999; 1300 - 1399; 140 - 149; 15000 - 19999; 200 - 699; 7000 - 8499; 85000 - 89999; 9000 - 9199; 920000 - 923999; 92400 - 92999; 930000 - 949999; 95000 - 96999; 9700 - 9999"}, { "84-1100", "84-1199", ""}, { "84-120000", "84-129999", ""}, { "84-1300", "84-1399", ""}, { "84-140", "84-149", ""}, { "84-15000", "84-19999", ""}, { "84-200", "84-699", ""}, { "84-7000", "84-8499", ""}, { "84-85000", "84-89999", ""}, { "84-9000", "84-9199", ""}, { "84-920000", "84-923999", ""}, { "84-92400", "84-92999", ""}, { "84-930000", "84-949999", ""}, { "84-95000", "84-96999", ""}, { "84-9700", "84-9999", ""}, { "85-00", "85-19", "Region name: Brazil\tCountry code(s): BR\tLanguage group: 85\tPublisher(s): 00 - 19; 200 - 454; 455000 - 455299; 45530 - 45599; 456 - 528; 52900 - 53199; 5320 - 5339; 534 - 539; 54000 - 54029; 54030 - 54039; 540400 - 540499; 54050 - 54089; 540900 - 540999; 54100 - 54399; 5440 - 5479; 54800 - 54999; 5500 - 5999; 60000 - 69999; 7000 - 8499; 85000 - 89999; 900000 - 924999; 92500 - 94499; 9450 - 9599; 96 - 97; 98000 - 99999"}, { "85-200", "85-454", ""}, { "85-455000", "85-455299", ""}, { "85-45530", "85-45599", ""}, { "85-456", "85-528", ""}, { "85-52900", "85-53199", ""}, { "85-5320", "85-5339", ""}, { "85-534", "85-539", ""}, { "85-54000", "85-54029", ""}, { "85-54030", "85-54039", ""}, { "85-540400", "85-540499", ""}, { "85-54050", "85-54089", ""}, { "85-540900", "85-540999", ""}, { "85-54100", "85-54399", ""}, { "85-5440", "85-5479", ""}, { "85-54800", "85-54999", ""}, { "85-5500", "85-5999", ""}, { "85-60000", "85-69999", ""}, { "85-7000", "85-8499", ""}, { "85-85000", "85-89999", ""}, { "85-900000", "85-924999", ""}, { "85-92500", "85-94499", ""}, { "85-9450", "85-9599", ""}, { "85-96", "85-97", ""}, { "85-98000", "85-99999", ""}, { "86-00", "86-29", "Region name: former Yugoslavia\tCountry code(s): ??\tLanguage group: 86\tPublisher(s): 00 - 29; 300 - 599; 6000 - 7999; 80000 - 89999; 900000 - 999999"}, { "86-300", "86-599", ""}, { "86-6000", "86-7999", ""}, { "86-80000", "86-89999", ""}, { "86-900000", "86-999999", ""}, { "87-00", "87-29", "Region name: Denmark\tCountry code(s): DK\tLanguage group: 87\tPublisher(s): 00 - 29; 400 - 649; 7000 - 7999; 85000 - 94999; 970000 - 999999"}, { "87-400", "87-649", ""}, { "87-7000", "87-7999", ""}, { "87-85000", "87-94999", ""}, { "87-970000", "87-999999", ""}, { "88-00", "88-19", "Region name: Italy\tCountry code(s): IT\tLanguage group: 88\tPublisher(s): 00 - 19; 200 - 311; 31200 - 31499; 315 - 318; 31900 - 32299; 323 - 326; 3270 - 3389; 339 - 360; 3610 - 3629; 363 - 548; 5490 - 5549; 555 - 599; 6000 - 8499; 85000 - 89999; 900000 - 909999; 910 - 926; 9270 - 9399; 940000 - 947999; 94800 - 99999"}, { "88-200", "88-311", ""}, { "88-31200", "88-31499", ""}, { "88-315", "88-318", ""}, { "88-31900", "88-32299", ""}, { "88-323", "88-326", ""}, { "88-3270", "88-3389", ""}, { "88-339", "88-360", ""}, { "88-3610", "88-3629", ""}, { "88-363", "88-548", ""}, { "88-5490", "88-5549", ""}, { "88-555", "88-599", ""}, { "88-6000", "88-8499", ""}, { "88-85000", "88-89999", ""}, { "88-900000", "88-909999", ""}, { "88-910", "88-926", ""}, { "88-9270", "88-9399", ""}, { "88-940000", "88-947999", ""}, { "88-94800", "88-99999", ""}, { "89-00", "89-24", "Region name: Korea, Republic\tCountry code(s): KR\tLanguage group: 89\tPublisher(s): 00 - 24; 250 - 549; 5500 - 8499; 85000 - 94999; 950000 - 969999; 97000 - 98999; 990 - 999"}, { "89-250", "89-549", ""}, { "89-5500", "89-8499", ""}, { "89-85000", "89-94999", ""}, { "89-950000", "89-969999", ""}, { "89-97000", "89-98999", ""}, { "89-990", "89-999", ""}, { "90-00", "90-19", "Region name: Netherlands\tCountry code(s): NL\tLanguage group: 90\tPublisher(s): 00 - 19; 200 - 499; 5000 - 6999; 70000 - 79999; 800000 - 849999; 8500 - 8999; 90 - 90; 94 - 94"}, { "90-200", "90-499", ""}, { "90-5000", "90-6999", ""}, { "90-70000", "90-79999", ""}, { "90-800000", "90-849999", ""}, { "90-8500", "90-8999", ""}, { "90-90", "90-90", ""}, { "90-94", "90-94", ""}, { "91-0", "91-1", "Region name: Sweden\tCountry code(s): SE\tLanguage group: 91\tPublisher(s): 0 - 1; 20 - 49; 500 - 649; 7000 - 8199; 85000 - 94999; 970000 - 999999"}, { "91-20", "91-49", ""}, { "91-500", "91-649", ""}, { "91-7000", "91-8199", ""}, { "91-85000", "91-94999", ""}, { "91-970000", "91-999999", ""}, { "92-0", "92-5", "Region name: International NGO Publishers and EU Organizations\tCountry code(s): ??\tLanguage group: 92\tPublisher(s): 0 - 5; 60 - 79; 800 - 899; 9000 - 9499; 95000 - 98999; 990000 - 999999"}, { "92-60", "92-79", ""}, { "92-800", "92-899", ""}, { "92-9000", "92-9499", ""}, { "92-95000", "92-98999", ""}, { "92-990000", "92-999999", ""}, { "93-00", "93-09", "Region name: India\tCountry code(s): IN\tLanguage group: 93\tPublisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 94999; 950000 - 999999"}, { "93-100", "93-499", ""}, { "93-5000", "93-7999", ""}, { "93-80000", "93-94999", ""}, { "93-950000", "93-999999", ""}, { "94-000", "94-599", "Region name: Netherlands\tCountry code(s): NL\tLanguage group: 94\tPublisher(s): 000 - 599; 6000 - 8999; 90000 - 99999"}, { "94-6000", "94-8999", ""}, { "94-90000", "94-99999", ""}, { "950-00", "950-49", "Region name: Argentina\tCountry code(s): AR\tLanguage group: 950\tPublisher(s): 00 - 49; 500 - 899; 9000 - 9899; 99000 - 99999"}, { "950-500", "950-899", ""}, { "950-9000", "950-9899", ""}, { "950-99000", "950-99999", ""}, { "951-0", "951-1", "Region name: Finland\tCountry code(s): FI\tLanguage group: 951\tPublisher(s): 0 - 1; 20 - 54; 550 - 889; 8900 - 9499; 95000 - 99999"}, { "951-20", "951-54", ""}, { "951-550", "951-889", ""}, { "951-8900", "951-9499", ""}, { "951-95000", "951-99999", ""}, { "952-00", "952-19", "Region name: Finland\tCountry code(s): FI\tLanguage group: 952\tPublisher(s): 00 - 19; 200 - 499; 5000 - 5999; 60 - 65; 6600 - 6699; 67000 - 69999; 7000 - 7999; 80 - 94; 9500 - 9899; 99000 - 99999"}, { "952-200", "952-499", ""}, { "952-5000", "952-5999", ""}, { "952-60", "952-65", ""}, { "952-6600", "952-6699", ""}, { "952-67000", "952-69999", ""}, { "952-7000", "952-7999", ""}, { "952-80", "952-94", ""}, { "952-9500", "952-9899", ""}, { "952-99000", "952-99999", ""}, { "953-0", "953-0", "Region name: Croatia\tCountry code(s): HR\tLanguage group: 953\tPublisher(s): 0 - 0; 10 - 14; 150 - 479; 48000 - 49999; 500 - 500; 50100 - 50999; 51 - 54; 55000 - 59999; 6000 - 9499; 95000 - 99999"}, { "953-10", "953-14", ""}, { "953-150", "953-479", ""}, { "953-48000", "953-49999", ""}, { "953-500", "953-500", ""}, { "953-50100", "953-50999", ""}, { "953-51", "953-54", ""}, { "953-55000", "953-59999", ""}, { "953-6000", "953-9499", ""}, { "953-95000", "953-99999", ""}, { "954-00", "954-28", "Region name: Bulgaria\tCountry code(s): BG\tLanguage group: 954\tPublisher(s): 00 - 28; 2900 - 2999; 300 - 799; 8000 - 8999; 90000 - 92999; 9300 - 9999"}, { "954-2900", "954-2999", ""}, { "954-300", "954-799", ""}, { "954-8000", "954-8999", ""}, { "954-90000", "954-92999", ""}, { "954-9300", "954-9999", ""}, { "955-0000", "955-1999", "Region name: Sri Lanka\tCountry code(s): LK\tLanguage group: 955\tPublisher(s): 0000 - 1999; 20 - 33; 3400 - 3549; 35500 - 35999; 3600 - 3799; 38000 - 38999; 3900 - 4099; 41000 - 44999; 4500 - 4999; 50000 - 54999; 550 - 710; 71100 - 71499; 7150 - 9499; 95000 - 99999"}, { "955-20", "955-33", ""}, { "955-3400", "955-3549", ""}, { "955-35500", "955-35999", ""}, { "955-3600", "955-3799", ""}, { "955-38000", "955-38999", ""}, { "955-3900", "955-4099", ""}, { "955-41000", "955-44999", ""}, { "955-4500", "955-4999", ""}, { "955-50000", "955-54999", ""}, { "955-550", "955-710", ""}, { "955-71100", "955-71499", ""}, { "955-7150", "955-9499", ""}, { "955-95000", "955-99999", ""}, { "956-00", "956-08", "Region name: Chile\tCountry code(s): CL\tLanguage group: 956\tPublisher(s): 00 - 08; 09000 - 09999; 10 - 19; 200 - 599; 6000 - 6999; 7000 - 9999"}, { "956-09000", "956-09999", ""}, { "956-10", "956-19", ""}, { "956-200", "956-599", ""}, { "956-6000", "956-6999", ""}, { "956-7000", "956-9999", ""}, { "957-00", "957-02", "Region name: Taiwan\tCountry code(s): TW\tLanguage group: 957\tPublisher(s): 00 - 02; 0300 - 0499; 05 - 19; 2000 - 2099; 21 - 27; 28000 - 30999; 31 - 43; 440 - 819; 8200 - 9699; 97000 - 99999"}, { "957-0300", "957-0499", ""}, { "957-05", "957-19", ""}, { "957-2000", "957-2099", ""}, { "957-21", "957-27", ""}, { "957-28000", "957-30999", ""}, { "957-31", "957-43", ""}, { "957-440", "957-819", ""}, { "957-8200", "957-9699", ""}, { "957-97000", "957-99999", ""}, { "958-00", "958-48", "Region name: Colombia\tCountry code(s): CO\tLanguage group: 958\tPublisher(s): 00 - 48; 490 - 509; 5100 - 5199; 52000 - 53999; 5400 - 5599; 56000 - 59999; 600 - 799; 8000 - 9499; 95000 - 99999"}, { "958-490", "958-509", ""}, { "958-5100", "958-5199", ""}, { "958-52000", "958-53999", ""}, { "958-5400", "958-5599", ""}, { "958-56000", "958-59999", ""}, { "958-600", "958-799", ""}, { "958-8000", "958-9499", ""}, { "958-95000", "958-99999", ""}, { "959-00", "959-19", "Region name: Cuba\tCountry code(s): CU\tLanguage group: 959\tPublisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 99999"}, { "959-200", "959-699", ""}, { "959-7000", "959-8499", ""}, { "959-85000", "959-99999", ""}, { "960-00", "960-19", "Region name: Greece\tCountry code(s): GR\tLanguage group: 960\tPublisher(s): 00 - 19; 200 - 659; 6600 - 6899; 690 - 699; 7000 - 8499; 85000 - 92999; 93 - 93; 9400 - 9799; 98000 - 99999"}, { "960-200", "960-659", ""}, { "960-6600", "960-6899", ""}, { "960-690", "960-699", ""}, { "960-7000", "960-8499", ""}, { "960-85000", "960-92999", ""}, { "960-93", "960-93", ""}, { "960-9400", "960-9799", ""}, { "960-98000", "960-99999", ""}, { "961-00", "961-19", "Region name: Slovenia\tCountry code(s): SI\tLanguage group: 961\tPublisher(s): 00 - 19; 200 - 599; 6000 - 8999; 90000 - 95999"}, { "961-200", "961-599", ""}, { "961-6000", "961-8999", ""}, { "961-90000", "961-95999", ""}, { "962-00", "962-19", "Region name: Hong Kong, China\tCountry code(s): HK\tLanguage group: 962\tPublisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 86999; 8700 - 8999; 900 - 999"}, { "962-200", "962-699", ""}, { "962-7000", "962-8499", ""}, { "962-85000", "962-86999", ""}, { "962-8700", "962-8999", ""}, { "962-900", "962-999", ""}, { "963-00", "963-19", "Region name: Hungary\tCountry code(s): HU\tLanguage group: 963\tPublisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 9000 - 9999"}, { "963-200", "963-699", ""}, { "963-7000", "963-8499", ""}, { "963-85000", "963-89999", ""}, { "963-9000", "963-9999", ""}, { "964-00", "964-14", "Region name: Iran\tCountry code(s): IR\tLanguage group: 964\tPublisher(s): 00 - 14; 150 - 249; 2500 - 2999; 300 - 549; 5500 - 8999; 90000 - 96999; 970 - 989; 9900 - 9999"}, { "964-150", "964-249", ""}, { "964-2500", "964-2999", ""}, { "964-300", "964-549", ""}, { "964-5500", "964-8999", ""}, { "964-90000", "964-96999", ""}, { "964-970", "964-989", ""}, { "964-9900", "964-9999", ""}, { "965-00", "965-19", "Region name: Israel\tCountry code(s): IL\tLanguage group: 965\tPublisher(s): 00 - 19; 200 - 599; 7000 - 7999; 90000 - 99999"}, { "965-200", "965-599", ""}, { "965-7000", "965-7999", ""}, { "965-90000", "965-99999", ""}, { "966-00", "966-12", "Region name: Ukraine\tCountry code(s): UA\tLanguage group: 966\tPublisher(s): 00 - 12; 130 - 139; 14 - 14; 1500 - 1699; 170 - 199; 2000 - 2789; 279 - 289; 2900 - 2999; 300 - 699; 7000 - 8999; 90000 - 90999; 910 - 949; 95000 - 97999; 980 - 999"}, { "966-130", "966-139", ""}, { "966-14", "966-14", ""}, { "966-1500", "966-1699", ""}, { "966-170", "966-199", ""}, { "966-2000", "966-2789", ""}, { "966-279", "966-289", ""}, { "966-2900", "966-2999", ""}, { "966-300", "966-699", ""}, { "966-7000", "966-8999", ""}, { "966-90000", "966-90999", ""}, { "966-910", "966-949", ""}, { "966-95000", "966-97999", ""}, { "966-980", "966-999", ""}, { "967-00", "967-00", "Region name: Malaysia\tCountry code(s): MY\tLanguage group: 967\tPublisher(s): 00 - 00; 0100 - 0999; 10000 - 19999; 2000 - 2499; 250 - 254; 2800 - 2999; 300 - 499; 5000 - 5999; 60 - 89; 900 - 989; 9900 - 9989; 99900 - 99999"}, { "967-0100", "967-0999", ""}, { "967-10000", "967-19999", ""}, { "967-2000", "967-2499", ""}, { "967-250", "967-254", ""}, { "967-2800", "967-2999", ""}, { "967-300", "967-499", ""}, { "967-5000", "967-5999", ""}, { "967-60", "967-89", ""}, { "967-900", "967-989", ""}, { "967-9900", "967-9989", ""}, { "967-99900", "967-99999", ""}, { "968-01", "968-39", "Region name: Mexico\tCountry code(s): MX\tLanguage group: 968\tPublisher(s): 01 - 39; 400 - 499; 5000 - 7999; 800 - 899; 9000 - 9999"}, { "968-400", "968-499", ""}, { "968-5000", "968-7999", ""}, { "968-800", "968-899", ""}, { "968-9000", "968-9999", ""}, { "969-0", "969-1", "Region name: Pakistan\tCountry code(s): PK\tLanguage group: 969\tPublisher(s): 0 - 1; 20 - 20; 210 - 219; 2200 - 2299; 23000 - 23999; 24 - 39; 400 - 749; 7500 - 9999"}, { "969-20", "969-20", ""}, { "969-210", "969-219", ""}, { "969-2200", "969-2299", ""}, { "969-23000", "969-23999", ""}, { "969-24", "969-39", ""}, { "969-400", "969-749", ""}, { "969-7500", "969-9999", ""}, { "970-01", "970-59", "Region name: Mexico\tCountry code(s): MX\tLanguage group: 970\tPublisher(s): 01 - 59; 600 - 899; 9000 - 9099; 91000 - 96999; 9700 - 9999"}, { "970-600", "970-899", ""}, { "970-9000", "970-9099", ""}, { "970-91000", "970-96999", ""}, { "970-9700", "970-9999", ""}, { "971-000", "971-015", "Region name: Philippines\tCountry code(s): PH\tLanguage group: 971\tPublisher(s): 000 - 015; 0160 - 0199; 02 - 02; 0300 - 0599; 06 - 49; 500 - 849; 8500 - 9099; 91000 - 95999; 9600 - 9699; 97 - 98; 9900 - 9999"}, { "971-0160", "971-0199", ""}, { "971-02", "971-02", ""}, { "971-0300", "971-0599", ""}, { "971-06", "971-49", ""}, { "971-500", "971-849", ""}, { "971-8500", "971-9099", ""}, { "971-91000", "971-95999", ""}, { "971-9600", "971-9699", ""}, { "971-97", "971-98", ""}, { "971-9900", "971-9999", ""}, { "972-0", "972-1", "Region name: Portugal\tCountry code(s): PT\tLanguage group: 972\tPublisher(s): 0 - 1; 20 - 54; 550 - 799; 8000 - 9499; 95000 - 99999"}, { "972-20", "972-54", ""}, { "972-550", "972-799", ""}, { "972-8000", "972-9499", ""}, { "972-95000", "972-99999", ""}, { "973-0", "973-0", "Region name: Romania\tCountry code(s): RO\tLanguage group: 973\tPublisher(s): 0 - 0; 100 - 169; 1700 - 1999; 20 - 54; 550 - 759; 7600 - 8499; 85000 - 88999; 8900 - 9499; 95000 - 99999"}, { "973-100", "973-169", ""}, { "973-1700", "973-1999", ""}, { "973-20", "973-54", ""}, { "973-550", "973-759", ""}, { "973-7600", "973-8499", ""}, { "973-85000", "973-88999", ""}, { "973-8900", "973-9499", ""}, { "973-95000", "973-99999", ""}, { "974-00", "974-19", "Region name: Thailand\tCountry code(s): TH\tLanguage group: 974\tPublisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 90000 - 94999; 9500 - 9999"}, { "974-200", "974-699", ""}, { "974-7000", "974-8499", ""}, { "974-85000", "974-89999", ""}, { "974-90000", "974-94999", ""}, { "974-9500", "974-9999", ""}, { "975-00000", "975-01999", "Region name: Turkey\tCountry code(s): TR\tLanguage group: 975\tPublisher(s): 00000 - 01999; 02 - 23; 2400 - 2499; 250 - 599; 6000 - 9199; 92000 - 98999; 990 - 999"}, { "975-02", "975-23", ""}, { "975-2400", "975-2499", ""}, { "975-250", "975-599", ""}, { "975-6000", "975-9199", ""}, { "975-92000", "975-98999", ""}, { "975-990", "975-999", ""}, { "976-0", "976-3", "Region name: Caribbean Community\tCountry code(s): ??\tLanguage group: 976\tPublisher(s): 0 - 3; 40 - 59; 600 - 799; 8000 - 9499; 95000 - 99999"}, { "976-40", "976-59", ""}, { "976-600", "976-799", ""}, { "976-8000", "976-9499", ""}, { "976-95000", "976-99999", ""}, { "977-00", "977-19", "Region name: Egypt\tCountry code(s): EG\tLanguage group: 977\tPublisher(s): 00 - 19; 200 - 499; 5000 - 6999; 700 - 849; 85000 - 89999; 90 - 98; 990 - 999"}, { "977-200", "977-499", ""}, { "977-5000", "977-6999", ""}, { "977-700", "977-849", ""}, { "977-85000", "977-89999", ""}, { "977-90", "977-98", ""}, { "977-990", "977-999", ""}, { "978-000", "978-199", "Region name: Nigeria\tCountry code(s): NG\tLanguage group: 978\tPublisher(s): 000 - 199; 2000 - 2999; 30000 - 79999; 8000 - 8999; 900 - 999"}, { "978-2000", "978-2999", ""}, { "978-30000", "978-79999", ""}, { "978-8000", "978-8999", ""}, { "978-900", "978-999", ""}, { "979-000", "979-099", "Region name: Indonesia\tCountry code(s): ID\tLanguage group: 979\tPublisher(s): 000 - 099; 1000 - 1499; 15000 - 19999; 20 - 29; 3000 - 3999; 400 - 799; 8000 - 9499; 95000 - 99999"}, { "979-1000", "979-1499", ""}, { "979-15000", "979-19999", ""}, { "979-20", "979-29", ""}, { "979-3000", "979-3999", ""}, { "979-400", "979-799", ""}, { "979-8000", "979-9499", ""}, { "979-95000", "979-99999", ""}, { "980-00", "980-19", "Region name: Venezuela\tCountry code(s): VE\tLanguage group: 980\tPublisher(s): 00 - 19; 200 - 599; 6000 - 9999"}, { "980-200", "980-599", ""}, { "980-6000", "980-9999", ""}, { "981-00", "981-16", "Region name: Singapore\tCountry code(s): SG\tLanguage group: 981\tPublisher(s): 00 - 16; 17000 - 17999; 18 - 19; 200 - 299; 3000 - 3099; 310 - 399; 4000 - 9999"}, { "981-17000", "981-17999", ""}, { "981-18", "981-19", ""}, { "981-200", "981-299", ""}, { "981-3000", "981-3099", ""}, { "981-310", "981-399", ""}, { "981-4000", "981-9999", ""}, { "982-00", "982-09", "Region name: South Pacific\tCountry code(s): ??\tLanguage group: 982\tPublisher(s): 00 - 09; 100 - 699; 70 - 89; 9000 - 9799; 98000 - 99999"}, { "982-100", "982-699", ""}, { "982-70", "982-89", ""}, { "982-9000", "982-9799", ""}, { "982-98000", "982-99999", ""}, { "983-00", "983-01", "Region name: Malaysia\tCountry code(s): MY\tLanguage group: 983\tPublisher(s): 00 - 01; 020 - 199; 2000 - 3999; 40000 - 44999; 45 - 49; 50 - 79; 800 - 899; 9000 - 9899; 99000 - 99999"}, { "983-020", "983-199", ""}, { "983-2000", "983-3999", ""}, { "983-40000", "983-44999", ""}, { "983-45", "983-49", ""}, { "983-50", "983-79", ""}, { "983-800", "983-899", ""}, { "983-9000", "983-9899", ""}, { "983-99000", "983-99999", ""}, { "984-00", "984-39", "Region name: Bangladesh\tCountry code(s): BD\tLanguage group: 984\tPublisher(s): 00 - 39; 400 - 799; 8000 - 8999; 90000 - 99999"}, { "984-400", "984-799", ""}, { "984-8000", "984-8999", ""}, { "984-90000", "984-99999", ""}, { "985-00", "985-39", "Region name: Belarus\tCountry code(s): BY\tLanguage group: 985\tPublisher(s): 00 - 39; 400 - 599; 6000 - 8799; 880 - 899; 90000 - 99999"}, { "985-400", "985-599", ""}, { "985-6000", "985-8799", ""}, { "985-880", "985-899", ""}, { "985-90000", "985-99999", ""}, { "986-00", "986-05", "Region name: Taiwan\tCountry code(s): TW\tLanguage group: 986\tPublisher(s): 00 - 05; 06000 - 06999; 0700 - 0799; 08 - 11; 120 - 539; 5400 - 7999; 80000 - 99999"}, { "986-06000", "986-06999", ""}, { "986-0700", "986-0799", ""}, { "986-08", "986-11", ""}, { "986-120", "986-539", ""}, { "986-5400", "986-7999", ""}, { "986-80000", "986-99999", ""}, { "987-00", "987-09", "Region name: Argentina\tCountry code(s): AR\tLanguage group: 987\tPublisher(s): 00 - 09; 1000 - 1999; 20000 - 29999; 30 - 35; 3600 - 3999; 4000 - 4199; 42 - 43; 4400 - 4499; 45000 - 48999; 4900 - 4999; 500 - 829; 8300 - 8499; 85 - 89; 9000 - 9499; 95000 - 99999"}, { "987-1000", "987-1999", ""}, { "987-20000", "987-29999", ""}, { "987-30", "987-35", ""}, { "987-3600", "987-3999", ""}, { "987-4000", "987-4199", ""}, { "987-42", "987-43", ""}, { "987-4400", "987-4499", ""}, { "987-45000", "987-48999", ""}, { "987-4900", "987-4999", ""}, { "987-500", "987-829", ""}, { "987-8300", "987-8499", ""}, { "987-85", "987-89", ""}, { "987-9000", "987-9499", ""}, { "987-95000", "987-99999", ""}, { "988-00", "988-11", "Region name: Hong Kong, China\tCountry code(s): HK\tLanguage group: 988\tPublisher(s): 00 - 11; 12000 - 19999; 200 - 739; 74000 - 76999; 77000 - 79999; 8000 - 9699; 97000 - 99999"}, { "988-12000", "988-19999", ""}, { "988-200", "988-739", ""}, { "988-74000", "988-76999", ""}, { "988-77000", "988-79999", ""}, { "988-8000", "988-9699", ""}, { "988-97000", "988-99999", ""}, { "989-0", "989-1", "Region name: Portugal\tCountry code(s): PT\tLanguage group: 989\tPublisher(s): 0 - 1; 20 - 34; 35000 - 36999; 37 - 52; 53000 - 54999; 550 - 799; 8000 - 9499; 95000 - 99999"}, { "989-20", "989-34", ""}, { "989-35000", "989-36999", ""}, { "989-37", "989-52", ""}, { "989-53000", "989-54999", ""}, { "989-550", "989-799", ""}, { "989-8000", "989-9499", ""}, { "989-95000", "989-99999", ""}, { "9914-40", "9914-44", "Region name: Kenya\tCountry code(s): KE\tLanguage group: 9914\tPublisher(s): 40 - 44; 700 - 749; 9850 - 9999"}, { "9914-700", "9914-749", ""}, { "9914-9850", "9914-9999", ""}, { "9915-40", "9915-59", "Region name: Uruguay\tCountry code(s): UY\tLanguage group: 9915\tPublisher(s): 40 - 59; 650 - 799; 9300 - 9999"}, { "9915-650", "9915-799", ""}, { "9915-9300", "9915-9999", ""}, { "9916-0", "9916-0", "Region name: Estonia\tCountry code(s): EE\tLanguage group: 9916\tPublisher(s): 0 - 0; 10 - 39; 4 - 4; 600 - 749; 9500 - 9999"}, { "9916-10", "9916-39", ""}, { "9916-4", "9916-4", ""}, { "9916-600", "9916-749", ""}, { "9916-9500", "9916-9999", ""}, { "9917-0", "9917-0", "Region name: Bolivia\tCountry code(s): BO\tLanguage group: 9917\tPublisher(s): 0 - 0; 30 - 34; 600 - 699; 9800 - 9999"}, { "9917-30", "9917-34", ""}, { "9917-600", "9917-699", ""}, { "9917-9800", "9917-9999", ""}, { "9918-0", "9918-0", "Region name: Malta\tCountry code(s): MT\tLanguage group: 9918\tPublisher(s): 0 - 0; 20 - 29; 600 - 799; 9500 - 9999"}, { "9918-20", "9918-29", ""}, { "9918-600", "9918-799", ""}, { "9918-9500", "9918-9999", ""}, { "9919-20", "9919-27", "Region name: Mongolia\tCountry code(s): MN\tLanguage group: 9919\tPublisher(s): 20 - 27; 500 - 599; 9500 - 9999"}, { "9919-500", "9919-599", ""}, { "9919-9500", "9919-9999", ""}, { "9920-32", "9920-39", "Region name: Morocco\tCountry code(s): MA\tLanguage group: 9920\tPublisher(s): 32 - 39; 550 - 799; 9000 - 9999"}, { "9920-550", "9920-799", ""}, { "9920-9000", "9920-9999", ""}, { "9921-0", "9921-0", "Region name: Kuwait\tCountry code(s): KW\tLanguage group: 9921\tPublisher(s): 0 - 0; 30 - 39; 700 - 899; 9700 - 9999"}, { "9921-30", "9921-39", ""}, { "9921-700", "9921-899", ""}, { "9921-9700", "9921-9999", ""}, { "9922-20", "9922-29", "Region name: Iraq\tCountry code(s): IQ\tLanguage group: 9922\tPublisher(s): 20 - 29; 600 - 799; 9000 - 9999"}, { "9922-600", "9922-799", ""}, { "9922-9000", "9922-9999", ""}, { "9923-0", "9923-0", "Region name: Jordan\tCountry code(s): JO\tLanguage group: 9923\tPublisher(s): 0 - 0; 10 - 49; 700 - 899; 9700 - 9999"}, { "9923-10", "9923-49", ""}, { "9923-700", "9923-899", ""}, { "9923-9700", "9923-9999", ""}, { "9924-30", "9924-39", "Region name: Cambodia\tCountry code(s): KH\tLanguage group: 9924\tPublisher(s): 30 - 39; 500 - 649; 9000 - 9999"}, { "9924-500", "9924-649", ""}, { "9924-9000", "9924-9999", ""}, { "9925-0", "9925-2", "Region name: Cyprus\tCountry code(s): CY\tLanguage group: 9925\tPublisher(s): 0 - 2; 30 - 54; 550 - 734; 7350 - 9999"}, { "9925-30", "9925-54", ""}, { "9925-550", "9925-734", ""}, { "9925-7350", "9925-9999", ""}, { "9926-0", "9926-1", "Region name: Bosnia and Herzegovina\tCountry code(s): BA\tLanguage group: 9926\tPublisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999"}, { "9926-20", "9926-39", ""}, { "9926-400", "9926-799", ""}, { "9926-8000", "9926-9999", ""}, { "9927-00", "9927-09", "Region name: Qatar\tCountry code(s): QA\tLanguage group: 9927\tPublisher(s): 00 - 09; 100 - 399; 4000 - 4999"}, { "9927-100", "9927-399", ""}, { "9927-4000", "9927-4999", ""}, { "9928-00", "9928-09", "Region name: Albania\tCountry code(s): AL\tLanguage group: 9928\tPublisher(s): 00 - 09; 100 - 399; 4000 - 4999"}, { "9928-100", "9928-399", ""}, { "9928-4000", "9928-4999", ""}, { "9929-0", "9929-3", "Region name: Guatemala\tCountry code(s): GT\tLanguage group: 9929\tPublisher(s): 0 - 3; 40 - 54; 550 - 799; 8000 - 9999"}, { "9929-40", "9929-54", ""}, { "9929-550", "9929-799", ""}, { "9929-8000", "9929-9999", ""}, { "9930-00", "9930-49", "Region name: Costa Rica\tCountry code(s): CR\tLanguage group: 9930\tPublisher(s): 00 - 49; 500 - 939; 9400 - 9999"}, { "9930-500", "9930-939", ""}, { "9930-9400", "9930-9999", ""}, { "9931-00", "9931-29", "Region name: Algeria\tCountry code(s): DZ\tLanguage group: 9931\tPublisher(s): 00 - 29; 300 - 899; 9000 - 9999"}, { "9931-300", "9931-899", ""}, { "9931-9000", "9931-9999", ""}, { "9932-00", "9932-39", "Region name: Lao People's Democratic Republic\tCountry code(s): LA\tLanguage group: 9932\tPublisher(s): 00 - 39; 400 - 849; 8500 - 9999"}, { "9932-400", "9932-849", ""}, { "9932-8500", "9932-9999", ""}, { "9933-0", "9933-0", "Region name: Syria\tCountry code(s): SY\tLanguage group: 9933\tPublisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999"}, { "9933-10", "9933-39", ""}, { "9933-400", "9933-899", ""}, { "9933-9000", "9933-9999", ""}, { "9934-0", "9934-0", "Region name: Latvia\tCountry code(s): LV\tLanguage group: 9934\tPublisher(s): 0 - 0; 10 - 49; 500 - 799; 8000 - 9999"}, { "9934-10", "9934-49", ""}, { "9934-500", "9934-799", ""}, { "9934-8000", "9934-9999", ""}, { "9935-0", "9935-0", "Region name: Iceland\tCountry code(s): IS\tLanguage group: 9935\tPublisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999"}, { "9935-10", "9935-39", ""}, { "9935-400", "9935-899", ""}, { "9935-9000", "9935-9999", ""}, { "9936-0", "9936-1", "Region name: Afghanistan\tCountry code(s): AF\tLanguage group: 9936\tPublisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999"}, { "9936-20", "9936-39", ""}, { "9936-400", "9936-799", ""}, { "9936-8000", "9936-9999", ""}, { "9937-0", "9937-2", "Region name: Nepal\tCountry code(s): NP\tLanguage group: 9937\tPublisher(s): 0 - 2; 30 - 49; 500 - 799; 8000 - 9999"}, { "9937-30", "9937-49", ""}, { "9937-500", "9937-799", ""}, { "9937-8000", "9937-9999", ""}, { "9938-00", "9938-79", "Region name: Tunisia\tCountry code(s): TN\tLanguage group: 9938\tPublisher(s): 00 - 79; 800 - 949; 9500 - 9999"}, { "9938-800", "9938-949", ""}, { "9938-9500", "9938-9999", ""}, { "9939-0", "9939-4", "Region name: Armenia\tCountry code(s): AM\tLanguage group: 9939\tPublisher(s): 0 - 4; 50 - 79; 800 - 899; 9000 - 9799; 98 - 99"}, { "9939-50", "9939-79", ""}, { "9939-800", "9939-899", ""}, { "9939-9000", "9939-9799", ""}, { "9939-98", "9939-99", ""}, { "9940-0", "9940-1", "Region name: Montenegro\tCountry code(s): ME\tLanguage group: 9940\tPublisher(s): 0 - 1; 20 - 49; 500 - 839; 84 - 86; 8700 - 9999"}, { "9940-20", "9940-49", ""}, { "9940-500", "9940-839", ""}, { "9940-84", "9940-86", ""}, { "9940-8700", "9940-9999", ""}, { "9941-0", "9941-0", "Region name: Georgia\tCountry code(s): GE\tLanguage group: 9941\tPublisher(s): 0 - 0; 10 - 39; 400 - 799; 8 - 8; 9000 - 9999"}, { "9941-10", "9941-39", ""}, { "9941-400", "9941-799", ""}, { "9941-8", "9941-8", ""}, { "9941-9000", "9941-9999", ""}, { "9942-00", "9942-74", "Region name: Ecuador\tCountry code(s): EC\tLanguage group: 9942\tPublisher(s): 00 - 74; 750 - 849; 8500 - 8999; 900 - 984; 9850 - 9999"}, { "9942-750", "9942-849", ""}, { "9942-8500", "9942-8999", ""}, { "9942-900", "9942-984", ""}, { "9942-9850", "9942-9999", ""}, { "9943-00", "9943-29", "Region name: Uzbekistan\tCountry code(s): UZ\tLanguage group: 9943\tPublisher(s): 00 - 29; 300 - 399; 4000 - 9749; 975 - 999"}, { "9943-300", "9943-399", ""}, { "9943-4000", "9943-9749", ""}, { "9943-975", "9943-999", ""}, { "9944-0000", "9944-0999", "Region name: Turkey\tCountry code(s): TR\tLanguage group: 9944\tPublisher(s): 0000 - 0999; 100 - 499; 5000 - 5999; 60 - 69; 700 - 799; 80 - 89; 900 - 999"}, { "9944-100", "9944-499", ""}, { "9944-5000", "9944-5999", ""}, { "9944-60", "9944-69", ""}, { "9944-700", "9944-799", ""}, { "9944-80", "9944-89", ""}, { "9944-900", "9944-999", ""}, { "9945-00", "9945-00", "Region name: Dominican Republic\tCountry code(s): DO\tLanguage group: 9945\tPublisher(s): 00 - 00; 010 - 079; 08 - 39; 400 - 569; 57 - 57; 580 - 799; 80 - 80; 810 - 849; 8500 - 9999"}, { "9945-010", "9945-079", ""}, { "9945-08", "9945-39", ""}, { "9945-400", "9945-569", ""}, { "9945-57", "9945-57", ""}, { "9945-580", "9945-799", ""}, { "9945-80", "9945-80", ""}, { "9945-810", "9945-849", ""}, { "9945-8500", "9945-9999", ""}, { "9946-0", "9946-1", "Region name: Korea, P.D.R.\tCountry code(s): KP\tLanguage group: 9946\tPublisher(s): 0 - 1; 20 - 39; 400 - 899; 9000 - 9999"}, { "9946-20", "9946-39", ""}, { "9946-400", "9946-899", ""}, { "9946-9000", "9946-9999", ""}, { "9947-0", "9947-1", "Region name: Algeria\tCountry code(s): DZ\tLanguage group: 9947\tPublisher(s): 0 - 1; 20 - 79; 800 - 999"}, { "9947-20", "9947-79", ""}, { "9947-800", "9947-999", ""}, { "9948-00", "9948-39", "Region name: United Arab Emirates\tCountry code(s): AE\tLanguage group: 9948\tPublisher(s): 00 - 39; 400 - 849; 8500 - 9999"}, { "9948-400", "9948-849", ""}, { "9948-8500", "9948-9999", ""}, { "9949-00", "9949-08", "Region name: Estonia\tCountry code(s): EE\tLanguage group: 9949\tPublisher(s): 00 - 08; 090 - 099; 10 - 39; 400 - 699; 70 - 71; 7200 - 7499; 75 - 89; 9000 - 9999"}, { "9949-090", "9949-099", ""}, { "9949-10", "9949-39", ""}, { "9949-400", "9949-699", ""}, { "9949-70", "9949-71", ""}, { "9949-7200", "9949-7499", ""}, { "9949-75", "9949-89", ""}, { "9949-9000", "9949-9999", ""}, { "9950-00", "9950-29", "Region name: Palestine\tCountry code(s): PS\tLanguage group: 9950\tPublisher(s): 00 - 29; 300 - 849; 8500 - 9999"}, { "9950-300", "9950-849", ""}, { "9950-8500", "9950-9999", ""}, { "9951-00", "9951-39", "Region name: Kosova\tCountry code(s): ??\tLanguage group: 9951\tPublisher(s): 00 - 39; 400 - 849; 8500 - 9999"}, { "9951-400", "9951-849", ""}, { "9951-8500", "9951-9999", ""}, { "9952-0", "9952-1", "Region name: Azerbaijan\tCountry code(s): AZ\tLanguage group: 9952\tPublisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999"}, { "9952-20", "9952-39", ""}, { "9952-400", "9952-799", ""}, { "9952-8000", "9952-9999", ""}, { "9953-0", "9953-0", "Region name: Lebanon\tCountry code(s): LB\tLanguage group: 9953\tPublisher(s): 0 - 0; 10 - 39; 400 - 599; 60 - 89; 9000 - 9299; 93 - 96; 970 - 999"}, { "9953-10", "9953-39", ""}, { "9953-400", "9953-599", ""}, { "9953-60", "9953-89", ""}, { "9953-9000", "9953-9299", ""}, { "9953-93", "9953-96", ""}, { "9953-970", "9953-999", ""}, { "9954-0", "9954-1", "Region name: Morocco\tCountry code(s): MA\tLanguage group: 9954\tPublisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9899; 99 - 99"}, { "9954-20", "9954-39", ""}, { "9954-400", "9954-799", ""}, { "9954-8000", "9954-9899", ""}, { "9954-99", "9954-99", ""}, { "9955-00", "9955-39", "Region name: Lithuania\tCountry code(s): LT\tLanguage group: 9955\tPublisher(s): 00 - 39; 400 - 929; 9300 - 9999"}, { "9955-400", "9955-929", ""}, { "9955-9300", "9955-9999", ""}, { "9956-0", "9956-0", "Region name: Cameroon\tCountry code(s): CM\tLanguage group: 9956\tPublisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999"}, { "9956-10", "9956-39", ""}, { "9956-400", "9956-899", ""}, { "9956-9000", "9956-9999", ""}, { "9957-00", "9957-39", "Region name: Jordan\tCountry code(s): JO\tLanguage group: 9957\tPublisher(s): 00 - 39; 400 - 649; 65 - 67; 680 - 699; 70 - 84; 8500 - 8799; 88 - 99"}, { "9957-400", "9957-649", ""}, { "9957-65", "9957-67", ""}, { "9957-680", "9957-699", ""}, { "9957-70", "9957-84", ""}, { "9957-8500", "9957-8799", ""}, { "9957-88", "9957-99", ""}, { "9958-00", "9958-01", "Region name: Bosnia and Herzegovina\tCountry code(s): BA\tLanguage group: 9958\tPublisher(s): 00 - 01; 020 - 029; 0300 - 0399; 040 - 089; 0900 - 0999; 10 - 18; 1900 - 1999; 20 - 49; 500 - 899; 9000 - 9999"}, { "9958-020", "9958-029", ""}, { "9958-0300", "9958-0399", ""}, { "9958-040", "9958-089", ""}, { "9958-0900", "9958-0999", ""}, { "9958-10", "9958-18", ""}, { "9958-1900", "9958-1999", ""}, { "9958-20", "9958-49", ""}, { "9958-500", "9958-899", ""}, { "9958-9000", "9958-9999", ""}, { "9959-0", "9959-1", "Region name: Libya\tCountry code(s): LY\tLanguage group: 9959\tPublisher(s): 0 - 1; 20 - 79; 800 - 949; 9500 - 9699; 970 - 979; 98 - 99"}, { "9959-20", "9959-79", ""}, { "9959-800", "9959-949", ""}, { "9959-9500", "9959-9699", ""}, { "9959-970", "9959-979", ""}, { "9959-98", "9959-99", ""}, { "9960-00", "9960-59", "Region name: Saudi Arabia\tCountry code(s): SA\tLanguage group: 9960\tPublisher(s): 00 - 59; 600 - 899; 9000 - 9999"}, { "9960-600", "9960-899", ""}, { "9960-9000", "9960-9999", ""}, { "9961-0", "9961-2", "Region name: Algeria\tCountry code(s): DZ\tLanguage group: 9961\tPublisher(s): 0 - 2; 30 - 69; 700 - 949; 9500 - 9999"}, { "9961-30", "9961-69", ""}, { "9961-700", "9961-949", ""}, { "9961-9500", "9961-9999", ""}, { "9962-00", "9962-54", "Region name: Panama\tCountry code(s): PA\tLanguage group: 9962\tPublisher(s): 00 - 54; 5500 - 5599; 56 - 59; 600 - 849; 8500 - 9999"}, { "9962-5500", "9962-5599", ""}, { "9962-56", "9962-59", ""}, { "9962-600", "9962-849", ""}, { "9962-8500", "9962-9999", ""}, { "9963-0", "9963-1", "Region name: Cyprus\tCountry code(s): CY\tLanguage group: 9963\tPublisher(s): 0 - 1; 2000 - 2499; 250 - 279; 2800 - 2999; 30 - 54; 550 - 734; 7350 - 7499; 7500 - 9999"}, { "9963-2000", "9963-2499", ""}, { "9963-250", "9963-279", ""}, { "9963-2800", "9963-2999", ""}, { "9963-30", "9963-54", ""}, { "9963-550", "9963-734", ""}, { "9963-7350", "9963-7499", ""}, { "9963-7500", "9963-9999", ""}, { "9964-0", "9964-6", "Region name: Ghana\tCountry code(s): GH\tLanguage group: 9964\tPublisher(s): 0 - 6; 70 - 94; 950 - 999"}, { "9964-70", "9964-94", ""}, { "9964-950", "9964-999", ""}, { "9965-00", "9965-39", "Region name: Kazakhstan\tCountry code(s): KZ\tLanguage group: 9965\tPublisher(s): 00 - 39; 400 - 899; 9000 - 9999"}, { "9965-400", "9965-899", ""}, { "9965-9000", "9965-9999", ""}, { "9966-000", "9966-139", "Region name: Kenya\tCountry code(s): KE\tLanguage group: 9966\tPublisher(s): 000 - 139; 14 - 14; 1500 - 1999; 20 - 69; 7000 - 7499; 750 - 820; 8210 - 8249; 825 - 825; 8260 - 8289; 829 - 959; 9600 - 9999"}, { "9966-14", "9966-14", ""}, { "9966-1500", "9966-1999", ""}, { "9966-20", "9966-69", ""}, { "9966-7000", "9966-7499", ""}, { "9966-750", "9966-820", ""}, { "9966-8210", "9966-8249", ""}, { "9966-825", "9966-825", ""}, { "9966-8260", "9966-8289", ""}, { "9966-829", "9966-959", ""}, { "9966-9600", "9966-9999", ""}, { "9967-00", "9967-39", "Region name: Kyrgyz Republic\tCountry code(s): KG\tLanguage group: 9967\tPublisher(s): 00 - 39; 400 - 899; 9000 - 9999"}, { "9967-400", "9967-899", ""}, { "9967-9000", "9967-9999", ""}, { "9968-00", "9968-49", "Region name: Costa Rica\tCountry code(s): CR\tLanguage group: 9968\tPublisher(s): 00 - 49; 500 - 939; 9400 - 9999"}, { "9968-500", "9968-939", ""}, { "9968-9400", "9968-9999", ""}, { "9970-00", "9970-39", "Region name: Uganda\tCountry code(s): UG\tLanguage group: 9970\tPublisher(s): 00 - 39; 400 - 899; 9000 - 9999"}, { "9970-400", "9970-899", ""}, { "9970-9000", "9970-9999", ""}, { "9971-0", "9971-5", "Region name: Singapore\tCountry code(s): SG\tLanguage group: 9971\tPublisher(s): 0 - 5; 60 - 89; 900 - 989; 9900 - 9999"}, { "9971-60", "9971-89", ""}, { "9971-900", "9971-989", ""}, { "9971-9900", "9971-9999", ""}, { "9972-00", "9972-09", "Region name: Peru\tCountry code(s): PE\tLanguage group: 9972\tPublisher(s): 00 - 09; 1 - 1; 200 - 249; 2500 - 2999; 30 - 59; 600 - 899; 9000 - 9999"}, { "9972-1", "9972-1", ""}, { "9972-200", "9972-249", ""}, { "9972-2500", "9972-2999", ""}, { "9972-30", "9972-59", ""}, { "9972-600", "9972-899", ""}, { "9972-9000", "9972-9999", ""}, { "9973-00", "9973-05", "Region name: Tunisia\tCountry code(s): TN\tLanguage group: 9973\tPublisher(s): 00 - 05; 060 - 089; 0900 - 0999; 10 - 69; 700 - 969; 9700 - 9999"}, { "9973-060", "9973-089", ""}, { "9973-0900", "9973-0999", ""}, { "9973-10", "9973-69", ""}, { "9973-700", "9973-969", ""}, { "9973-9700", "9973-9999", ""}, { "9974-0", "9974-2", "Region name: Uruguay\tCountry code(s): UY\tLanguage group: 9974\tPublisher(s): 0 - 2; 30 - 54; 550 - 749; 7500 - 8799; 880 - 909; 91 - 94; 95 - 99"}, { "9974-30", "9974-54", ""}, { "9974-550", "9974-749", ""}, { "9974-7500", "9974-8799", ""}, { "9974-880", "9974-909", ""}, { "9974-91", "9974-94", ""}, { "9974-95", "9974-99", ""}, { "9975-0", "9975-0", "Region name: Moldova\tCountry code(s): MD\tLanguage group: 9975\tPublisher(s): 0 - 0; 100 - 299; 3000 - 3999; 4000 - 4499; 45 - 89; 900 - 949; 9500 - 9999"}, { "9975-100", "9975-299", ""}, { "9975-3000", "9975-3999", ""}, { "9975-4000", "9975-4499", ""}, { "9975-45", "9975-89", ""}, { "9975-900", "9975-949", ""}, { "9975-9500", "9975-9999", ""}, { "9976-0", "9976-4", "Region name: Tanzania\tCountry code(s): TZ\tLanguage group: 9976\tPublisher(s): 0 - 4; 5000 - 5799; 580 - 589; 59 - 89; 900 - 989; 9900 - 9999"}, { "9976-5000", "9976-5799", ""}, { "9976-580", "9976-589", ""}, { "9976-59", "9976-89", ""}, { "9976-900", "9976-989", ""}, { "9976-9900", "9976-9999", ""}, { "9977-00", "9977-89", "Region name: Costa Rica\tCountry code(s): CR\tLanguage group: 9977\tPublisher(s): 00 - 89; 900 - 989; 9900 - 9999"}, { "9977-900", "9977-989", ""}, { "9977-9900", "9977-9999", ""}, { "9978-00", "9978-29", "Region name: Ecuador\tCountry code(s): EC\tLanguage group: 9978\tPublisher(s): 00 - 29; 300 - 399; 40 - 94; 950 - 989; 9900 - 9999"}, { "9978-300", "9978-399", ""}, { "9978-40", "9978-94", ""}, { "9978-950", "9978-989", ""}, { "9978-9900", "9978-9999", ""}, { "9979-0", "9979-4", "Region name: Iceland\tCountry code(s): IS\tLanguage group: 9979\tPublisher(s): 0 - 4; 50 - 64; 650 - 659; 66 - 75; 760 - 899; 9000 - 9999"}, { "9979-50", "9979-64", ""}, { "9979-650", "9979-659", ""}, { "9979-66", "9979-75", ""}, { "9979-760", "9979-899", ""}, { "9979-9000", "9979-9999", ""}, { "9980-0", "9980-3", "Region name: Papua New Guinea\tCountry code(s): PG\tLanguage group: 9980\tPublisher(s): 0 - 3; 40 - 89; 900 - 989; 9900 - 9999"}, { "9980-40", "9980-89", ""}, { "9980-900", "9980-989", ""}, { "9980-9900", "9980-9999", ""}, { "9981-00", "9981-09", "Region name: Morocco\tCountry code(s): MA\tLanguage group: 9981\tPublisher(s): 00 - 09; 100 - 159; 1600 - 1999; 20 - 79; 800 - 949; 9500 - 9999"}, { "9981-100", "9981-159", ""}, { "9981-1600", "9981-1999", ""}, { "9981-20", "9981-79", ""}, { "9981-800", "9981-949", ""}, { "9981-9500", "9981-9999", ""}, { "9982-00", "9982-79", "Region name: Zambia\tCountry code(s): ZM\tLanguage group: 9982\tPublisher(s): 00 - 79; 800 - 989; 9900 - 9999"}, { "9982-800", "9982-989", ""}, { "9982-9900", "9982-9999", ""}, { "9983-80", "9983-94", "Region name: Gambia\tCountry code(s): GM\tLanguage group: 9983\tPublisher(s): 80 - 94; 950 - 989; 9900 - 9999"}, { "9983-950", "9983-989", ""}, { "9983-9900", "9983-9999", ""}, { "9984-00", "9984-49", "Region name: Latvia\tCountry code(s): LV\tLanguage group: 9984\tPublisher(s): 00 - 49; 500 - 899; 9000 - 9999"}, { "9984-500", "9984-899", ""}, { "9984-9000", "9984-9999", ""}, { "9985-0", "9985-4", "Region name: Estonia\tCountry code(s): EE\tLanguage group: 9985\tPublisher(s): 0 - 4; 50 - 79; 800 - 899; 9000 - 9999"}, { "9985-50", "9985-79", ""}, { "9985-800", "9985-899", ""}, { "9985-9000", "9985-9999", ""}, { "9986-00", "9986-39", "Region name: Lithuania\tCountry code(s): LT\tLanguage group: 9986\tPublisher(s): 00 - 39; 400 - 899; 9000 - 9399; 940 - 969; 97 - 99"}, { "9986-400", "9986-899", ""}, { "9986-9000", "9986-9399", ""}, { "9986-940", "9986-969", ""}, { "9986-97", "9986-99", ""}, { "9987-00", "9987-39", "Region name: Tanzania\tCountry code(s): TZ\tLanguage group: 9987\tPublisher(s): 00 - 39; 400 - 879; 8800 - 9999"}, { "9987-400", "9987-879", ""}, { "9987-8800", "9987-9999", ""}, { "9988-0", "9988-3", "Region name: Ghana\tCountry code(s): GH\tLanguage group: 9988\tPublisher(s): 0 - 3; 40 - 54; 550 - 749; 7500 - 9999"}, { "9988-40", "9988-54", ""}, { "9988-550", "9988-749", ""}, { "9988-7500", "9988-9999", ""}, { "9989-0", "9989-0", "Region name: North Macedonia\tCountry code(s): MK\tLanguage group: 9989\tPublisher(s): 0 - 0; 100 - 199; 2000 - 2999; 30 - 59; 600 - 949; 9500 - 9999"}, { "9989-100", "9989-199", ""}, { "9989-2000", "9989-2999", ""}, { "9989-30", "9989-59", ""}, { "9989-600", "9989-949", ""}, { "9989-9500", "9989-9999", ""}, { "99901-00", "99901-49", "Region name: Bahrain\tCountry code(s): BH\tLanguage group: 99901\tPublisher(s): 00 - 49; 500 - 799; 80 - 99"}, { "99901-500", "99901-799", ""}, { "99901-80", "99901-99", ""}, { "99903-0", "99903-1", "Region name: Mauritius\tCountry code(s): MU\tLanguage group: 99903\tPublisher(s): 0 - 1; 20 - 89; 900 - 999"}, { "99903-20", "99903-89", ""}, { "99903-900", "99903-999", ""}, { "99904-0", "99904-5", "Region name: Curaçao\tCountry code(s): CW\tLanguage group: 99904\tPublisher(s): 0 - 5; 60 - 89; 900 - 999"}, { "99904-60", "99904-89", ""}, { "99904-900", "99904-999", ""}, { "99905-0", "99905-3", "Region name: Bolivia\tCountry code(s): BO\tLanguage group: 99905\tPublisher(s): 0 - 3; 40 - 79; 800 - 999"}, { "99905-40", "99905-79", ""}, { "99905-800", "99905-999", ""}, { "99906-0", "99906-2", "Region name: Kuwait\tCountry code(s): KW\tLanguage group: 99906\tPublisher(s): 0 - 2; 30 - 59; 600 - 699; 70 - 89; 90 - 94; 950 - 999"}, { "99906-30", "99906-59", ""}, { "99906-600", "99906-699", ""}, { "99906-70", "99906-89", ""}, { "99906-90", "99906-94", ""}, { "99906-950", "99906-999", ""}, { "99908-0", "99908-0", "Region name: Malawi\tCountry code(s): MW\tLanguage group: 99908\tPublisher(s): 0 - 0; 10 - 89; 900 - 999"}, { "99908-10", "99908-89", ""}, { "99908-900", "99908-999", ""}, { "99909-0", "99909-3", "Region name: Malta\tCountry code(s): MT\tLanguage group: 99909\tPublisher(s): 0 - 3; 40 - 94; 950 - 999"}, { "99909-40", "99909-94", ""}, { "99909-950", "99909-999", ""}, { "99910-0", "99910-2", "Region name: Sierra Leone\tCountry code(s): SL\tLanguage group: 99910\tPublisher(s): 0 - 2; 30 - 89; 900 - 999"}, { "99910-30", "99910-89", ""}, { "99910-900", "99910-999", ""}, { "99911-00", "99911-59", "Region name: Lesotho\tCountry code(s): LS\tLanguage group: 99911\tPublisher(s): 00 - 59; 600 - 999"}, { "99911-600", "99911-999", ""}, { "99912-0", "99912-3", "Region name: Botswana\tCountry code(s): BW\tLanguage group: 99912\tPublisher(s): 0 - 3; 400 - 599; 60 - 89; 900 - 999"}, { "99912-400", "99912-599", ""}, { "99912-60", "99912-89", ""}, { "99912-900", "99912-999", ""}, { "99913-0", "99913-2", "Region name: Andorra\tCountry code(s): AD\tLanguage group: 99913\tPublisher(s): 0 - 2; 30 - 35; 600 - 604"}, { "99913-30", "99913-35", ""}, { "99913-600", "99913-604", ""}, { "99914-0", "99914-4", "Region name: International NGO Publishers\tCountry code(s): ??\tLanguage group: 99914\tPublisher(s): 0 - 4; 50 - 69; 7 - 7; 80 - 89; 900 - 999"}, { "99914-50", "99914-69", ""}, { "99914-7", "99914-7", ""}, { "99914-80", "99914-89", ""}, { "99914-900", "99914-999", ""}, { "99915-0", "99915-4", "Region name: Maldives\tCountry code(s): MV\tLanguage group: 99915\tPublisher(s): 0 - 4; 50 - 79; 800 - 999"}, { "99915-50", "99915-79", ""}, { "99915-800", "99915-999", ""}, { "99916-0", "99916-2", "Region name: Namibia\tCountry code(s): NA\tLanguage group: 99916\tPublisher(s): 0 - 2; 30 - 69; 700 - 999"}, { "99916-30", "99916-69", ""}, { "99916-700", "99916-999", ""}, { "99917-0", "99917-2", "Region name: Brunei Darussalam\tCountry code(s): BN\tLanguage group: 99917\tPublisher(s): 0 - 2; 30 - 88; 890 - 999"}, { "99917-30", "99917-88", ""}, { "99917-890", "99917-999", ""}, { "99918-0", "99918-3", "Region name: Faroe Islands\tCountry code(s): FO\tLanguage group: 99918\tPublisher(s): 0 - 3; 40 - 79; 800 - 999"}, { "99918-40", "99918-79", ""}, { "99918-800", "99918-999", ""}, { "99919-0", "99919-2", "Region name: Benin\tCountry code(s): BJ\tLanguage group: 99919\tPublisher(s): 0 - 2; 300 - 399; 40 - 79; 800 - 999"}, { "99919-300", "99919-399", ""}, { "99919-40", "99919-79", ""}, { "99919-800", "99919-999", ""}, { "99920-0", "99920-4", "Region name: Andorra\tCountry code(s): AD\tLanguage group: 99920\tPublisher(s): 0 - 4; 50 - 89; 900 - 999"}, { "99920-50", "99920-89", ""}, { "99920-900", "99920-999", ""}, { "99921-0", "99921-1", "Region name: Qatar\tCountry code(s): QA\tLanguage group: 99921\tPublisher(s): 0 - 1; 20 - 69; 700 - 799; 8 - 8; 90 - 99"}, { "99921-20", "99921-69", ""}, { "99921-700", "99921-799", ""}, { "99921-8", "99921-8", ""}, { "99921-90", "99921-99", ""}, { "99922-0", "99922-3", "Region name: Guatemala\tCountry code(s): GT\tLanguage group: 99922\tPublisher(s): 0 - 3; 40 - 69; 700 - 999"}, { "99922-40", "99922-69", ""}, { "99922-700", "99922-999", ""}, { "99923-0", "99923-1", "Region name: El Salvador\tCountry code(s): SV\tLanguage group: 99923\tPublisher(s): 0 - 1; 20 - 79; 800 - 999"}, { "99923-20", "99923-79", ""}, { "99923-800", "99923-999", ""}, { "99924-0", "99924-1", "Region name: Nicaragua\tCountry code(s): NI\tLanguage group: 99924\tPublisher(s): 0 - 1; 20 - 79; 800 - 999"}, { "99924-20", "99924-79", ""}, { "99924-800", "99924-999", ""}, { "99925-0", "99925-0", "Region name: Paraguay\tCountry code(s): PY\tLanguage group: 99925\tPublisher(s): 0 - 0; 10 - 19; 200 - 299; 3 - 3; 40 - 79; 800 - 999"}, { "99925-10", "99925-19", ""}, { "99925-200", "99925-299", ""}, { "99925-3", "99925-3", ""}, { "99925-40", "99925-79", ""}, { "99925-800", "99925-999", ""}, { "99926-0", "99926-0", "Region name: Honduras\tCountry code(s): HN\tLanguage group: 99926\tPublisher(s): 0 - 0; 10 - 59; 600 - 869; 87 - 89; 90 - 99"}, { "99926-10", "99926-59", ""}, { "99926-600", "99926-869", ""}, { "99926-87", "99926-89", ""}, { "99926-90", "99926-99", ""}, { "99927-0", "99927-2", "Region name: Albania\tCountry code(s): AL\tLanguage group: 99927\tPublisher(s): 0 - 2; 30 - 59; 600 - 999"}, { "99927-30", "99927-59", ""}, { "99927-600", "99927-999", ""}, { "99928-0", "99928-0", "Region name: Georgia\tCountry code(s): GE\tLanguage group: 99928\tPublisher(s): 0 - 0; 10 - 79; 800 - 999"}, { "99928-10", "99928-79", ""}, { "99928-800", "99928-999", ""}, { "99929-0", "99929-4", "Region name: Mongolia\tCountry code(s): MN\tLanguage group: 99929\tPublisher(s): 0 - 4; 50 - 79; 800 - 999"}, { "99929-50", "99929-79", ""}, { "99929-800", "99929-999", ""}, { "99930-0", "99930-4", "Region name: Armenia\tCountry code(s): AM\tLanguage group: 99930\tPublisher(s): 0 - 4; 50 - 79; 800 - 999"}, { "99930-50", "99930-79", ""}, { "99930-800", "99930-999", ""}, { "99931-0", "99931-4", "Region name: Seychelles\tCountry code(s): SC\tLanguage group: 99931\tPublisher(s): 0 - 4; 50 - 79; 800 - 999"}, { "99931-50", "99931-79", ""}, { "99931-800", "99931-999", ""}, { "99932-0", "99932-0", "Region name: Malta\tCountry code(s): MT\tLanguage group: 99932\tPublisher(s): 0 - 0; 10 - 59; 600 - 699; 7 - 7; 80 - 99"}, { "99932-10", "99932-59", ""}, { "99932-600", "99932-699", ""}, { "99932-7", "99932-7", ""}, { "99932-80", "99932-99", ""}, { "99933-0", "99933-2", "Region name: Nepal\tCountry code(s): NP\tLanguage group: 99933\tPublisher(s): 0 - 2; 30 - 59; 600 - 999"}, { "99933-30", "99933-59", ""}, { "99933-600", "99933-999", ""}, { "99934-0", "99934-1", "Region name: Dominican Republic\tCountry code(s): DO\tLanguage group: 99934\tPublisher(s): 0 - 1; 20 - 79; 800 - 999"}, { "99934-20", "99934-79", ""}, { "99934-800", "99934-999", ""}, { "99935-0", "99935-2", "Region name: Haiti\tCountry code(s): HT\tLanguage group: 99935\tPublisher(s): 0 - 2; 30 - 59; 600 - 699; 7 - 8; 90 - 99"}, { "99935-30", "99935-59", ""}, { "99935-600", "99935-699", ""}, { "99935-7", "99935-8", ""}, { "99935-90", "99935-99", ""}, { "99936-0", "99936-0", "Region name: Bhutan\tCountry code(s): BT\tLanguage group: 99936\tPublisher(s): 0 - 0; 10 - 59; 600 - 999"}, { "99936-10", "99936-59", ""}, { "99936-600", "99936-999", ""}, { "99937-0", "99937-1", "Region name: Macau\tCountry code(s): MO\tLanguage group: 99937\tPublisher(s): 0 - 1; 20 - 59; 600 - 999"}, { "99937-20", "99937-59", ""}, { "99937-600", "99937-999", ""}, { "99938-0", "99938-1", "Region name: Srpska, Republic of\tCountry code(s): RS\tLanguage group: 99938\tPublisher(s): 0 - 1; 20 - 59; 600 - 899; 90 - 99"}, { "99938-20", "99938-59", ""}, { "99938-600", "99938-899", ""}, { "99938-90", "99938-99", ""}, { "99939-0", "99939-5", "Region name: Guatemala\tCountry code(s): GT\tLanguage group: 99939\tPublisher(s): 0 - 5; 60 - 89; 900 - 999"}, { "99939-60", "99939-89", ""}, { "99939-900", "99939-999", ""}, { "99940-0", "99940-0", "Region name: Georgia\tCountry code(s): GE\tLanguage group: 99940\tPublisher(s): 0 - 0; 10 - 69; 700 - 999"}, { "99940-10", "99940-69", ""}, { "99940-700", "99940-999", ""}, { "99941-0", "99941-2", "Region name: Armenia\tCountry code(s): AM\tLanguage group: 99941\tPublisher(s): 0 - 2; 30 - 79; 800 - 999"}, { "99941-30", "99941-79", ""}, { "99941-800", "99941-999", ""}, { "99942-0", "99942-4", "Region name: Sudan\tCountry code(s): SD\tLanguage group: 99942\tPublisher(s): 0 - 4; 50 - 79; 800 - 999"}, { "99942-50", "99942-79", ""}, { "99942-800", "99942-999", ""}, { "99943-0", "99943-2", "Region name: Albania\tCountry code(s): AL\tLanguage group: 99943\tPublisher(s): 0 - 2; 30 - 59; 600 - 999"}, { "99943-30", "99943-59", ""}, { "99943-600", "99943-999", ""}, { "99944-0", "99944-4", "Region name: Ethiopia\tCountry code(s): ET\tLanguage group: 99944\tPublisher(s): 0 - 4; 50 - 79; 800 - 999"}, { "99944-50", "99944-79", ""}, { "99944-800", "99944-999", ""}, { "99945-0", "99945-4", "Region name: Namibia\tCountry code(s): NA\tLanguage group: 99945\tPublisher(s): 0 - 4; 50 - 89; 900 - 999"}, { "99945-50", "99945-89", ""}, { "99945-900", "99945-999", ""}, { "99946-0", "99946-2", "Region name: Nepal\tCountry code(s): NP\tLanguage group: 99946\tPublisher(s): 0 - 2; 30 - 59; 600 - 999"}, { "99946-30", "99946-59", ""}, { "99946-600", "99946-999", ""}, { "99947-0", "99947-2", "Region name: Tajikistan\tCountry code(s): TJ\tLanguage group: 99947\tPublisher(s): 0 - 2; 30 - 69; 700 - 999"}, { "99947-30", "99947-69", ""}, { "99947-700", "99947-999", ""}, { "99948-0", "99948-4", "Region name: Eritrea\tCountry code(s): ER\tLanguage group: 99948\tPublisher(s): 0 - 4; 50 - 79; 800 - 999"}, { "99948-50", "99948-79", ""}, { "99948-800", "99948-999", ""}, { "99949-0", "99949-1", "Region name: Mauritius\tCountry code(s): MU\tLanguage group: 99949\tPublisher(s): 0 - 1; 20 - 89; 900 - 999"}, { "99949-20", "99949-89", ""}, { "99949-900", "99949-999", ""}, { "99950-0", "99950-4", "Region name: Cambodia\tCountry code(s): KH\tLanguage group: 99950\tPublisher(s): 0 - 4; 50 - 79; 800 - 999"}, { "99950-50", "99950-79", ""}, { "99950-800", "99950-999", ""}, { "99952-0", "99952-4", "Region name: Mali\tCountry code(s): ML\tLanguage group: 99952\tPublisher(s): 0 - 4; 50 - 79; 800 - 999"}, { "99952-50", "99952-79", ""}, { "99952-800", "99952-999", ""}, { "99953-0", "99953-2", "Region name: Paraguay\tCountry code(s): PY\tLanguage group: 99953\tPublisher(s): 0 - 2; 30 - 79; 800 - 939; 94 - 99"}, { "99953-30", "99953-79", ""}, { "99953-800", "99953-939", ""}, { "99953-94", "99953-99", ""}, { "99954-0", "99954-2", "Region name: Bolivia\tCountry code(s): BO\tLanguage group: 99954\tPublisher(s): 0 - 2; 30 - 69; 700 - 879; 88 - 99"}, { "99954-30", "99954-69", ""}, { "99954-700", "99954-879", ""}, { "99954-88", "99954-99", ""}, { "99955-0", "99955-1", "Region name: Srpska, Republic of\tCountry code(s): RS\tLanguage group: 99955\tPublisher(s): 0 - 1; 20 - 59; 600 - 799; 80 - 99"}, { "99955-20", "99955-59", ""}, { "99955-600", "99955-799", ""}, { "99955-80", "99955-99", ""}, { "99956-00", "99956-59", "Region name: Albania\tCountry code(s): AL\tLanguage group: 99956\tPublisher(s): 00 - 59; 600 - 859; 86 - 99"}, { "99956-600", "99956-859", ""}, { "99956-86", "99956-99", ""}, { "99957-0", "99957-1", "Region name: Malta\tCountry code(s): MT\tLanguage group: 99957\tPublisher(s): 0 - 1; 20 - 79; 800 - 949; 95 - 99"}, { "99957-20", "99957-79", ""}, { "99957-800", "99957-949", ""}, { "99957-95", "99957-99", ""}, { "99958-0", "99958-4", "Region name: Bahrain\tCountry code(s): BH\tLanguage group: 99958\tPublisher(s): 0 - 4; 50 - 93; 940 - 949; 950 - 999"}, { "99958-50", "99958-93", ""}, { "99958-940", "99958-949", ""}, { "99958-950", "99958-999", ""}, { "99959-0", "99959-2", "Region name: Luxembourg\tCountry code(s): LU\tLanguage group: 99959\tPublisher(s): 0 - 2; 30 - 59; 600 - 999"}, { "99959-30", "99959-59", ""}, { "99959-600", "99959-999", ""}, { "99960-070", "99960-099", "Region name: Malawi\tCountry code(s): MW\tLanguage group: 99960\tPublisher(s): 070 - 099; 10 - 94; 950 - 999"}, { "99960-10", "99960-94", ""}, { "99960-950", "99960-999", ""}, { "99961-0", "99961-2", "Region name: El Salvador\tCountry code(s): SV\tLanguage group: 99961\tPublisher(s): 0 - 2; 300 - 369; 37 - 89; 900 - 999"}, { "99961-300", "99961-369", ""}, { "99961-37", "99961-89", ""}, { "99961-900", "99961-999", ""}, { "99962-0", "99962-4", "Region name: Mongolia\tCountry code(s): MN\tLanguage group: 99962\tPublisher(s): 0 - 4; 50 - 79; 800 - 999"}, { "99962-50", "99962-79", ""}, { "99962-800", "99962-999", ""}, { "99963-00", "99963-49", "Region name: Cambodia\tCountry code(s): KH\tLanguage group: 99963\tPublisher(s): 00 - 49; 500 - 919; 92 - 99"}, { "99963-500", "99963-919", ""}, { "99963-92", "99963-99", ""}, { "99964-0", "99964-1", "Region name: Nicaragua\tCountry code(s): NI\tLanguage group: 99964\tPublisher(s): 0 - 1; 20 - 79; 800 - 999"}, { "99964-20", "99964-79", ""}, { "99964-800", "99964-999", ""}, { "99965-0", "99965-2", "Region name: Macau\tCountry code(s): MO\tLanguage group: 99965\tPublisher(s): 0 - 2; 300 - 359; 36 - 62; 630 - 999"}, { "99965-300", "99965-359", ""}, { "99965-36", "99965-62", ""}, { "99965-630", "99965-999", ""}, { "99966-0", "99966-2", "Region name: Kuwait\tCountry code(s): KW\tLanguage group: 99966\tPublisher(s): 0 - 2; 30 - 69; 700 - 799; 80 - 96; 970 - 999"}, { "99966-30", "99966-69", ""}, { "99966-700", "99966-799", ""}, { "99966-80", "99966-96", ""}, { "99966-970", "99966-999", ""}, { "99967-0", "99967-0", "Region name: Paraguay\tCountry code(s): PY\tLanguage group: 99967\tPublisher(s): 0 - 0; 10 - 59; 600 - 999"}, { "99967-10", "99967-59", ""}, { "99967-600", "99967-999", ""}, { "99968-0", "99968-3", "Region name: Botswana\tCountry code(s): BW\tLanguage group: 99968\tPublisher(s): 0 - 3; 400 - 599; 60 - 89; 900 - 999"}, { "99968-400", "99968-599", ""}, { "99968-60", "99968-89", ""}, { "99968-900", "99968-999", ""}, { "99969-0", "99969-4", "Region name: Oman\tCountry code(s): OM\tLanguage group: 99969\tPublisher(s): 0 - 4; 50 - 79; 800 - 999"}, { "99969-50", "99969-79", ""}, { "99969-800", "99969-999", ""}, { "99970-0", "99970-4", "Region name: Haiti\tCountry code(s): HT\tLanguage group: 99970\tPublisher(s): 0 - 4; 50 - 89; 900 - 999"}, { "99970-50", "99970-89", ""}, { "99970-900", "99970-999", ""}, { "99971-0", "99971-3", "Region name: Myanmar\tCountry code(s): MM\tLanguage group: 99971\tPublisher(s): 0 - 3; 40 - 84; 850 - 999"}, { "99971-40", "99971-84", ""}, { "99971-850", "99971-999", ""}, { "99972-0", "99972-4", "Region name: Faroe Islands\tCountry code(s): FO\tLanguage group: 99972\tPublisher(s): 0 - 4; 50 - 89; 900 - 999"}, { "99972-50", "99972-89", ""}, { "99972-900", "99972-999", ""}, { "99973-0", "99973-3", "Region name: Mongolia\tCountry code(s): MN\tLanguage group: 99973\tPublisher(s): 0 - 3; 40 - 79; 800 - 999"}, { "99973-40", "99973-79", ""}, { "99973-800", "99973-999", ""}, { "99974-0", "99974-0", "Region name: Bolivia\tCountry code(s): BO\tLanguage group: 99974\tPublisher(s): 0 - 0; 10 - 25; 260 - 399; 40 - 63; 640 - 649; 65 - 79; 800 - 999"}, { "99974-10", "99974-25", ""}, { "99974-260", "99974-399", ""}, { "99974-40", "99974-63", ""}, { "99974-640", "99974-649", ""}, { "99974-65", "99974-79", ""}, { "99974-800", "99974-999", ""}, { "99975-0", "99975-2", "Region name: Tajikistan\tCountry code(s): TJ\tLanguage group: 99975\tPublisher(s): 0 - 2; 300 - 399; 40 - 79; 800 - 999"}, { "99975-300", "99975-399", ""}, { "99975-40", "99975-79", ""}, { "99975-800", "99975-999", ""}, { "99976-0", "99976-1", "Region name: Srpska, Republic of\tCountry code(s): RS\tLanguage group: 99976\tPublisher(s): 0 - 1; 20 - 59; 600 - 799; 900 - 999"}, { "99976-20", "99976-59", ""}, { "99976-600", "99976-799", ""}, { "99976-900", "99976-999", ""}, { "99977-0", "99977-1", "Region name: Rwanda\tCountry code(s): RW\tLanguage group: 99977\tPublisher(s): 0 - 1; 40 - 69; 700 - 799; 995 - 999"}, { "99977-40", "99977-69", ""}, { "99977-700", "99977-799", ""}, { "99977-995", "99977-999", ""}, { "99978-0", "99978-4", "Region name: Mongolia\tCountry code(s): MN\tLanguage group: 99978\tPublisher(s): 0 - 4; 50 - 69; 700 - 999"}, { "99978-50", "99978-69", ""}, { "99978-700", "99978-999", ""}, { "99979-0", "99979-4", "Region name: Honduras\tCountry code(s): HN\tLanguage group: 99979\tPublisher(s): 0 - 4; 50 - 79; 800 - 999"}, { "99979-50", "99979-79", ""}, { "99979-800", "99979-999", ""}, { "99980-0", "99980-0", "Region name: Bhutan\tCountry code(s): BT\tLanguage group: 99980\tPublisher(s): 0 - 0; 30 - 59; 800 - 999"}, { "99980-30", "99980-59", ""}, { "99980-800", "99980-999", ""}, { "99981-0", "99981-1", "Region name: Macau\tCountry code(s): MO\tLanguage group: 99981\tPublisher(s): 0 - 1; 30 - 59; 800 - 999"}, { "99981-30", "99981-59", ""}, { "99981-800", "99981-999", ""}, { "99982-0", "99982-0", "Region name: Benin\tCountry code(s): BJ\tLanguage group: 99982\tPublisher(s): 0 - 0; 50 - 65; 900 - 979"}, { "99982-50", "99982-65", ""}, { "99982-900", "99982-979", ""}, { "99983-0", "99983-0", "Region name: El Salvador\tCountry code(s): SV\tLanguage group: 99983\tPublisher(s): 0 - 0; 50 - 69; 950 - 999"}, { "99983-50", "99983-69", ""}, { "99983-950", "99983-999", ""}, { "99985-55", "99985-59", "Region name: Tajikistan\tCountry code(s): TJ\tLanguage group: 99985\tPublisher(s): 55 - 59; 950 - 999"}, { "99985-950", "99985-999", ""}, { "99986-0", "99986-0", "Region name: Myanmar\tCountry code(s): MM\tLanguage group: 99986\tPublisher(s): 0 - 0; 50 - 69; 950 - 999"}, { "99986-50", "99986-69", ""}, { "99986-950", "99986-999", ""}, { "99987-850", "99987-999", "Region name: Luxembourg\tCountry code(s): LU\tLanguage group: 99987\tPublisher(s): 850 - 999"}, { "10-00", "10-19", "Region name: France\tCountry code(s): FR\tLanguage group: 10\tPublisher(s): 00 - 19; 200 - 699; 7000 - 8999; 90000 - 97599; 976000 - 999999"}, { "10-200", "10-699", ""}, { "10-7000", "10-8999", ""}, { "10-90000", "10-97599", ""}, { "10-976000", "10-999999", ""}, { "11-00", "11-24", "Region name: Korea, Republic\tCountry code(s): KR\tLanguage group: 11\tPublisher(s): 00 - 24; 250 - 549; 5500 - 8499; 85000 - 94999; 950000 - 999999"}, { "11-250", "11-549", ""}, { "11-5500", "11-8499", ""}, { "11-85000", "11-94999", ""}, { "11-950000", "11-999999", ""}, { "12-200", "12-299", "Region name: Italy\tCountry code(s): IT\tLanguage group: 12\tPublisher(s): 200 - 299; 5950 - 5999; 80000 - 84999"}, { "12-5950", "12-5999", ""}, { "12-80000", "12-84999", ""}, { "8-200", "8-219", "Region name: United States\tCountry code(s): US\tLanguage group: 8\tPublisher(s): 200 - 219; 5500 - 7499; 9850000 - 9850009"}, { "8-5500", "8-7499", ""}, { "8-9850000", "8-9850009", ""}, /* The list is ended by a triple of NULL pointers */ { (const char*)NULL, (const char*)NULL, (const char*)NULL} }; bibclean-3.07/bibclean.ini0000644000156700015670000001736513565600652014370 0ustar beebebeebe%%% -*-text-*- %%% ==================================================================== %%% BibTeX-initialization-file{ %%% author = "Nelson H. F. Beebe", %%% version = "3.04", %%% date = "21 November 2019", %%% time = "14:28:58 MDT", %%% filename = "bibclean.ini", %%% address = "University of Utah %%% Department of Mathematics, 110 LCB %%% 155 S 1400 E RM 233 %%% Salt Lake City, UT 84112-0090 %%% USA", %%% telephone = "+1 801 581 5254", %%% FAX = "+1 801 581 4148", %%% checksum = "38936 195 1200 7925", %%% email = "beebe@math.utah.edu, beebe@acm.org, %%% beebe@computer.org (Internet)", %%% codetable = "ISO/ASCII", %%% keywords = "prettyprint, bibliography", %%% license = "GNU General Public License, version 2 or %%% later", %%% supported = "yes", %%% docstring = "This file contains bibclean value pattern %%% matching specifications and possibly, %%% default options, to be read during %%% initialization. %%% %%% Each pattern group starts with an empty %%% string assignment to clear out old patterns %%% and guarantee a uniform start. For speed, %%% patterns should be ordered with more likely %%% matches near the beginning of the lists. %%% %%% Typical matches are shown in comments %%% following each pattern. A few patterns are %%% accompanied by warning messages that will %%% be issued if the pattern is matched. %%% %%% If you augment patterns in file, please %%% make them more precise, rather than looser. %%% Generally, you should add new patterns, %%% rather than modify existing ones. The goal %%% is to expose possible errors in .bib files, %%% not mask them. %%% %%% The checksum field above contains a CRC-16 %%% checksum as the first value, followed by the %%% equivalent of the standard UNIX wc (word %%% count) utility output of lines, words, and %%% characters. This is produced by Robert %%% Solovay's checksum utility.", %%% } %%% ==================================================================== bibdate = "\"aaa aaa d dd:dd:dd 19dd\"" %% "Mon Dec 7 18:26:51 1992" bibdate = "\"aaa aaa dd dd:dd:dd 19dd\"" %% "Mon Dec 21 18:26:51 1992" bibdate = "\"aaa aaa d dd:dd:dd 20dd\"" %% "Mon Dec 3 18:26:51 2001" bibdate = "\"aaa aaa d dd:dd:dd aaa 20dd\"" %% "Sat Jan 5 09:56:02 MST 2013" bibdate = "\"aaa aaa dd dd:dd:dd 20dd\"" %% "Mon Dec 17 18:26:51 2001" bibdate = "\"aaa aaa dd dd:dd:dd aaa 19dd\"" %% "Wed Feb 14 06:00:56 MST 1996" bibdate = "\"aaa aaa dd dd:dd:dd aaa 20dd\"" %% "Mon Dec 17 18:26:51 MST 2001" chapter = "" %% discard old patterns chapter = "\"D\"" %% "23" chapter = "\"D-D\"" %% "11-2" month = "" %% discard old patterns month = "aaa" %% oct month = "aaa # \" D\"" %% oct # " 10" month = "aaa # \" D--D\"" %% oct # " 20--24" month = "\"D \" # aaa" %% "10 " # oct month = "\"D--D \" # aaa" %% "10--24 " # oct month = "aaa # \"\" # aaa" %% jul # "\emdash " # aug month = "aaa # \"--\" # aaa" %% jul # "--" # aug month = "aaa # \" -- \" # aaa" %% jul # " -- " # aug month = "aaa # \"/\" # aaa" %% jul # "/" # aug month = "aaa # \" A \" # aaa" %% jul # " and " # aug month = "\"\\A\\u\\t\\u\\m\\n\"" month = "\"\\F\\a\\l\\l\"" month = "\"\\S\\p\\r\\i\\n\\g\"" month = "\"\\S\\u\\m\\m\\e\\r\"" month = "\"\\W\\i\\n\\t\\e\\r\"" number = "" %% discard old patterns number = "\"D\"" %% "23" number = "\"A AD\"" %% "PN LPS5001" number = "\"A D(D)\"" %% "RJ 34(49)" number = "\"A D\"" %% "XNSS 288811" number = "\"A D\\.D\"" %% "Version 3.20" number = "\"A-A-D-D\"" %% "UMIAC-TR-89-11" number = "\"A-A-D\"" %% "CS-TR-2189" number = "\"A-A-D\\.D\"" %% "CS-TR-21.7" number = "\"A-AD-D\"" %% "TN-K\slash 27-70" number = "\"A-D D\"" %% "PB-251 845" number = "\"A-D-D\"" %% "ANL-30-74" number = "\"A-D\"" %% "TR-2189" number = "\"AD-D-D\"" %% "GG24-3611-00" number = "\"AD-D\"" %% "SP43-29" number = "\"AD\"" %% "LPS0064" number = "\"A\\#D-D\"" %% "TR\#89-24 ????" number = "\"D \\an\\d D\"" %% "11 and 12" number = "\"D+D\"" %% "3+4" number = "\"D+D\"" %% "3+4" number = "\"D-D\"" %% "23-27" number = "\"D/D\"" %% "23/27" number = "\"D D\"" %% "23 \& 24" number = "\"DA\"" %% "23A" number = "\"D\\.D\"" %% "3.4" number = "\"W-W W\"" %% "AERE-R 12329" number = "\"W-W-WW-W\"" %% "OSU-CISRC-4\slash 87-TR9" number = "\"W\"" %% "Computer Science Report 100" number = "\"X\"" %% "TR/AB/3-43.7-3/AB" pages = "" %% discard old patterns pages = "\"D\"" %% "23" pages = "\"aD\"" %% "L23" pages = "\"D--D\"" %% "23--27" pages = "\"aD--aD\"" %% "L23--L27" pages = "\"D, D\"" %% "23, 27" pages = "\"aD, aD\"" %% "L23, L27" pages = "\"D, D, D\"" %% "23, 27, 45" pages = "\"aD, aD, aD\"" %% "L23, L27, L45" pages = "\"D, D, D, D\"" %% "23, 27, 45, 98" pages = "\"aD, aD, aD, aD\"" %% "L23, L27, L45, L98" pages = "\"R + D\"" %% "viii + 445" pages = "\"R + D, w D w\"" %% "viii + 445, with 30 illustrations" pages = "\"D, w D w\"" %% "239, with 27 illustrations" pages = "\"D--D, D--D\"" %% "23--27, 29--32" pages = "\"D--D, D--D, D--D\"" %% "23--27, 29--32, 35--37" pages = "\"aD--aD, aD--aD\"" %% "L23--L27, L29--L32" pages = "\"aD--aD, aD--aD, aD--aD\"" %% "L23--L27, L29--L32, L35--L37" pages = "\"??--??\"" %% "??--??" pages = "\"????\"" %% "????" price = "" %% discard old patterns price = "\"AD\\.dd\"" %% "US\$12.95" and "DM30.50" price = "\"D\\.dd\"" "Put country prefix on price %v" %% "$12.95" and "\pounds 12.95" price = "\"AD\"" %% "US\$13" and "FF70" price = "\"D\"" "Put country prefix on price %v" %% "$13" and "\pounds 13" tag = "" %% discard old patterns tag = "A:Add" %% Knuth:TB89 tag = "A:Adda" %% Knuth:TB89a volume = "" %% discard old patterns volume = "\"D\"" %% "27" volume = "\"DA\"" %% "27A" volume = "\"D/D\"" %% "27/3" volume = "\"DA D\"" %% "27A 3" volume = "\"w-D\"" %% "SMC-13" volume = "\"A\"" %% "VIII" volume = "\"D.D\"" %% "1.2" volume = "\"D \\an\\d D\"" %% "11 and 12" volume = "\"W\"" %% "Special issue A" year = "" %% discard old patterns year = "\"19dd\"" %% "1992" year = "\"19dd, 19dd\"" %% "1989, 1990" year = "\"19dd, 19dd, 19dd\"" %% "1989, 1990, 1991" year = "\"19dda19dd\"" %% "{\noopsort{1985a}}1985" year = "\"18dd\"" %% "1892" year = "\"18dd, 18dd\"" %% "1889, 1890" year = "\"18dd, 18dd, 18dd\"" %% "1889, 1890, 1891" year = "\"18dda18dd\"" %% "{\noopsort{1885a}}1885" year = "\"19dd (19dd)\"" %% "1989 (1990)" (e.g. translation of a %% foreign journal, where the second %% year is that of the translation) year = "\"19dd\" # \"--\"" %% "1989" # "\unskip--" year = "\"20dd\"" %% "2099" (allow for a bit of growth!) year = "\"18dd--d\"" %% "1891--2" year = "\"19dd--d\"" %% "1991--2" year = "\"20dd--d\"" %% "2001--2" year = "\"20dd--d\"" %% "2001--2" %% This is a test of option specifications %% -init-file /dev/null %% recursive empty init file %% -fix-names %% this is a comment %% -fix-initials %% this is too %% This is for GNU Emacs file-specific customization: %% Local Variables: %% eval: (auto-fill-mode -1) %% comment-start: "%% " %% comment-start-skip: "%+ *" %% comment-end: "" %% comment-column: 40 %% End: bibclean-3.07/xlimits.h0000644000156700015670000000074407721427747013774 0ustar beebebeebe#ifndef XLIMITS_H_DEFINED_ #define XLIMITS_H_DEFINED_ #ifdef HAVE_LIMITS_H #include #endif /* At least one system (NeXT Mach 3.3) was missing these values, so make sure they are defined. For bibclean, their exact values are not critical; they just need to be large relative to the size of strings processed. */ #if !defined(INT_MAX) #define INT_MAX 2147483647 #endif #if !defined(LONG_MAX) #define LONG_MAX 2147483647L #endif #endif /* XLIMITS_H_DEFINED_ */ bibclean-3.07/romtol.c0000644000156700015670000001350107721522722013572 0ustar beebebeebe/* -*-C-*- romtol.c */ /*-->romtol*/ /**********************************************************************/ /****************************** romtol ********************************/ /**********************************************************************/ #include #include "xctype.h" #include "xstring.h" #include "xstdbool.h" #include "xstdlib.h" RCSID("$Id: romtol.c,v 1.5 2003/08/22 23:22:55 beebe Exp beebe $") /* * $Log: romtol.c,v $ * Revision 1.5 2003/08/22 23:22:55 beebe * Add splint annotations. Include xstdbool.h. Add several (char) and * (int) typecasts to reduce instances of char/int type mixing. Change * isxxx() functions to Isxxx(). Change isxxx() functions to is_xxx() to * avoid conflict with reserved names in C89 and C99, and make their type * bool instead of int. Change conditionals based on zero/nonzero tests * to explicit Boolean relational expressions. * * Revision 1.4 2003/04/05 21:58:55 beebe * Replace NO-OP comments by continue keyword. * * Revision 1.3 2000/11/25 22:40:59 beebe * Add some type casts for portability. * * Revision 1.2 1999/11/08 14:27:44 beebe * Change code to use fgets() instead of gets(), because the * latter is unsafe. It was used only in the test program, so * bibclean itself was not made insecure by its use. * * Revision 1.1 1995/10/07 15:51:44 beebe * Initial revision * * Revision 1.1 1995/10/07 15:50:28 beebe * Initial revision * * Revision 1.2 1992/12/28 22:08:40 beebe * Add additional comments about Roman number system. * * Revision 1.1 1992/12/28 16:32:11 beebe * Initial revision * */ long romtol ARGS((/*@null@*/ const char *nptr_, /*@null@*/ char** endptr_)); bool is_roman ARGS((int c_)); static int roman_digit_value ARGS((int c_)); /*********************************************************************** This file provides two functions, romtol() (analogous to strtol()) for converting from Roman numbers to long integers, and is_roman() for testing whether a character is a valid Roman numeral. Roman numbers are represented with the symbols i (1), v (5), x (10), l (50), c (100), d (500), m (1000), v-overbar (5000), x-overbar (10000), c-overbar (100000), m-overbar (1000000) in a peculiar way. There is no representation of zero at all, and letter case is NOT significant. `Digits' are ordinarily given in order of descending numerical values, with the number value being the sum of the digit values. However, if a larger digit follows a smaller one, then the smaller one is subtracted from the larger one. Thus, ix is -1 + 10 = 9, while xi is 10 + 1 = 11. One source that I consulted claimed that when digits are repeated, the subtraction rule is suppressed, so iiix would be 3 + 10 = 13, not 2 - 1 + 10 = 11. The current code does not implement this feature; iiix will evaluate to 11. The overbar representation for 5000 and up is not representable in most computer character sets, so we ignore it here. The Roman number representation is not unique. For example, clocks traditionally use iiii for 4, while iv is used elsewhere. 1990 can be written as mxm or mcmxc. ***********************************************************************/ #if defined(HAVE_STDC) long /* Convert Roman number to long */ romtol( /*@null@*/ const char *nptr, /* pointer to Roman number string */ /*@null@*/ char** endptr /* if non-NULL, set on return to */ /* point just beyond last character */ /* converted */ ) #else /* NOT defined(HAVE_STDC) */ long romtol(nptr,endptr) /*@null@*/ const char *nptr; /*@null@*/ char** endptr; #endif /* defined(HAVE_STDC) */ { long last_value; long number; const char *p; long value; if (nptr == (const char*)NULL) { if (endptr != (char**)NULL) *endptr = (char*)NULL; return 0L; } for (p = nptr; Isspace((int)*p); ++p) /* ignore leading space */ continue; for (last_value = 0, number = 0L; (*p != '\0'); ++p) { value = (long)roman_digit_value((int)(*p)); if (value == 0L) break; if (value > last_value) number -= last_value; else number += last_value; last_value = value; } number += last_value; if (endptr != (char**)NULL) *endptr = (char*)p; return (number); } #if defined(HAVE_STDC) bool is_roman(int c) /* return true if c is Roman digit, otherwise false */ #else /* NOT defined(HAVE_STDC) */ bool is_roman(c) int c; #endif /* defined(HAVE_STDC) */ { return ((roman_digit_value(c) == 0) ? false : true); } #if defined(HAVE_STDC) static int roman_digit_value(int c) /* return digit value, or 0 if non-digit */ #else /* NOT defined(HAVE_STDC) */ static int roman_digit_value(c) int c; #endif /* defined(HAVE_STDC) */ { /*@observer@*/ static const char* roman_digits = "ivxlcdm"; static const int roman_values[] = { 1, 5, 10, 50, 100, 500, 1000 }; const char *p = strchr(roman_digits,Isupper(c) ? tolower(c) : c); if (p == (const char*)NULL) return 0; else return roman_values[(int)(p - roman_digits)]; } #ifdef TEST /*********************************************************************** Simple test program for romtol(). Values are read from stdin, and the results are echoed to stdout. ***********************************************************************/ #ifndef EXIT_SUCCESS #define EXIT_SUCCESS 0 #endif /* EXIT_SUCCESS */ #if defined(HAVE_STDC) int main( int argc, char *argv[] ) #else /* NOT defined(HAVE_STDC) */ int main(argc,argv) int argc; char *argv[]; #endif /* defined(HAVE_STDC) */ { char s[25]; char *endptr; long n; while (fgets(s,sizeof(s),stdin) != (char*)NULL) { endptr = strchr(s,'\n'); if (endptr != (char*)NULL) /* then remove final newline */ *endptr = '\0'; n = romtol(s,&endptr); (void)printf("romtol(): %s -> %ld\tRemainder = [%s]\n", s,n,(endptr == (char*)NULL) ? "" : endptr); } exit (EXIT_SUCCESS); return (0); } #endif /* TEST */ bibclean-3.07/xtypes.h0000644000156700015670000000027706027724226013626 0ustar beebebeebe#ifndef XTYPES_H_DEFINED_ #define XTYPES_H_DEFINED_ #ifdef HAVE_TYPES_H #include #else #ifdef HAVE_SYS_TYPES_H #include #endif #endif #endif /* XTYPES_H_DEFINED_ */ bibclean-3.07/xerrno.h0000644000156700015670000000021106027723715013575 0ustar beebebeebe#ifndef XERRNO_H_DEFINED_ #define XERRNO_H_DEFINED_ #ifdef HAVE_ERRNO_H #include #else #endif #endif /* XERRNO_H_DEFINED_ */ bibclean-3.07/custom.h0000644000156700015670000001036712111736163013577 0ustar beebebeebe#ifndef CUSTOM_H_DEFINED_ #define CUSTOM_H_DEFINED_ /*********************************************************************** This file is included by config.h, but is not part of that file because it must be protected from autoconf twiddling. Its purpose is to provide workarounds for limitations of autoconf. ***********************************************************************/ /* Make a preliminary sanity check on which pattern matching we will use */ #if defined(HAVE_REGEXP) #if defined(HAVE_RECOMP) || defined(HAVE_PATTERNS) || defined(HAVE_OLDCODE) ?? Define only one of HAVE_OLDCODE, HAVE_PATTERNS, HAVE_REGEXP, and HAVE_RECOMP #endif #endif #if defined(HAVE_RECOMP) #if defined(HAVE_REGEXP) || defined(HAVE_PATTERNS) || defined(HAVE_OLDCODE) ?? Define only one of HAVE_OLDCODE, HAVE_PATTERNS, HAVE_REGEXP, and HAVE_RECOMP #endif #endif #if defined(HAVE_PATTERNS) #if defined(HAVE_RECOMP) || defined(HAVE_REGEXP) || defined(HAVE_OLDCODE) ?? Define only one of HAVE_OLDCODE, HAVE_PATTERNS, HAVE_REGEXP, and HAVE_RECOMP #endif #endif #if defined(HAVE_OLDCODE) #if defined(HAVE_PATTERNS) || defined(HAVE_RECOMP) || defined(HAVE_REGEXP) ?? Define only one of HAVE_OLDCODE, HAVE_PATTERNS, HAVE_REGEXP, and HAVE_RECOMP #endif #endif #if !(defined(HAVE_REGEXP) || defined(HAVE_RECOMP)) #if !(defined(HAVE_PATTERNS) || defined(HAVE_OLDCODE)) #define HAVE_PATTERNS 1 #endif #endif /* Ensure that only ONE of HAVE_TERMIOS_H, HAVE_TERMIO_H, and HAVE_SGTTY_H is defined, with preference in that order */ #if defined(HAVE_TERMIOS_H) #undef HAVE_TERMIO_H #undef HAVE_SGTTY_H #else #if defined(HAVE_TERMIO_H) #undef HAVE_TERMIOS_H #undef HAVE_SGTTY_H #endif #endif /* defined(HAVE_TERMIOS_H) */ #if !defined(HAVE_TERMIOS_H) && !defined(HAVE_TERMIO_H) && !defined(HAVE_SGTTY_H) #if defined(sun) /* Sun acc compiler produces warnings from inclusion of , causing configure to conclude that it is not available */ #define HAVE_SGTTY_H 1 #endif #endif #if (defined(__LCC__) || defined(__cplusplus) || defined(c_plusplus)) /* lcc is a strictly Standard C conforming compiler. However, because of an lcc 3.4b header file bug on Sun Solaris 2.x, configure will conclude that STDC_HEADERS and HAVE_STDC should NOT be defined. We therefore override any choices made in config.h. If a C++ compiler is used, override possibly erroneous conclusions made by configure about header files and prototypes. */ #undef STDC_HEADERS #define STDC_HEADERS 1 #undef HAVE_STDC #define HAVE_STDC 1 #endif #undef ARGS #define ARGS(plist) plist #define RCSID(s) /*@unused@*/ static char rcsid[] = s; #undef VOID #define VOID void /* Although Microsoft C 6.0 and 7.0 define _MSC_VER, compiler versions 5.0 and 5.1 do not, so the only distinguishing symbol left is M_I86, which Watcom C unfortunately also defines, sigh... */ #if defined(M_I86) && !defined(__WATCOMC__) #define CONST /* bug workaround for IBM PC Microsoft C compilers */ #else #define CONST const #endif #include "xstdio.h" #if defined(_WIN32) #define OS_PCDOS 1 #define OS_UNIX 0 #define OS_VAXVMS 0 #elif defined(_VMS) #define OS_PCDOS 0 #define OS_UNIX 0 #define OS_VAXVMS 1 #else #define OS_PCDOS 0 #define OS_UNIX 1 #define OS_VAXVMS 0 #endif #if OS_PCDOS #define SEP_COMP " ;,|" /* separators between filename components */ #define SEP_PATH "\\" /* separators between directory path and filename */ #elif OS_UNIX #define SEP_COMP " ;:,|" /* separators between filename components */ #define SEP_PATH "/" /* separators between directory path and filename */ #elif OS_VAXVMS #define SEP_COMP " ;,|" /* separators between filename components */ #define SEP_PATH ":]" /* separators between directory path and filename */ /* first char is what we default to */ #endif #if defined(FREE_CAST_IS_CHAR_STAR) #define FREE(p) free((char*)(p)) #else #define FREE(p) free((void*)(p)) #endif #define IN_SET(set, c) (strchr((set), (int)(c)) != (char *)NULL) /*********************************************************************** Put any other local customizations here, when configure does not automatically generate the config.h settings that you want. Please report them back to the package author, , for inclusion in future releases. ***********************************************************************/ #endif /* CUSTOM_H_DEFINED_ */ bibclean-3.07/test/0000775000156700015670000000000014431412255013066 5ustar beebebeebebibclean-3.07/test/topt132.bib0000444000156700015670000000000012470142230014734 0ustar beebebeebebibclean-3.07/test/testoptj.opt0000444000156700015670000000001007343031771015455 0ustar beebebeebe--help bibclean-3.07/test/topt310.opt0000444000156700015670000000002712470142160015013 0ustar beebebeebe--debug-match-failures bibclean-3.07/test/topt123.opt0000444000156700015670000000002012470142073015011 0ustar beebebeebe-keep-parbreaks bibclean-3.07/test/topt301.bib0000444000156700015670000000000012470142231014733 0ustar beebebeebebibclean-3.07/test/topt124.opt0000444000156700015670000000002612470142073015020 0ustar beebebeebe-keep-preamble-spaces bibclean-3.07/test/topt149.bib0000444000156700015670000000000012470142231014745 0ustar beebebeebebibclean-3.07/test/topt306.bib0000444000156700015670000000000012470142231014740 0ustar beebebeebebibclean-3.07/test/topt158.opt0000444000156700015670000000002712470142073015030 0ustar beebebeebe-output-file /dev/null bibclean-3.07/test/testoptm.opt0000444000156700015670000000000012071104122015440 0ustar beebebeebebibclean-3.07/test/topt135.bib0000444000156700015670000000000012470142231014740 0ustar beebebeebebibclean-3.07/test/topt317.opt0000444000156700015670000000001712470142160015021 0ustar beebebeebe--fix-initials bibclean-3.07/test/topt147.bib0000444000156700015670000000000012470142231014743 0ustar beebebeebebibclean-3.07/test/topt365.opt0000444000156700015670000000002212470142160015020 0ustar beebebeebe--read-init-files bibclean-3.07/test/topt308.bib0000444000156700015670000000000012470142231014742 0ustar beebebeebebibclean-3.07/test/topt156.opt0000444000156700015670000000002712470142073015026 0ustar beebebeebe-no-trace-file-opening bibclean-3.07/test/testoptc.opt0000444000156700015670000000003507342757054015465 0ustar beebebeebe-no-read-init-files -print-I bibclean-3.07/test/topt319.opt0000444000156700015670000000001412470142160015020 0ustar beebebeebe--fix-names bibclean-3.07/test/topt151.opt0000444000156700015670000000002312470457032015021 0ustar beebebeebe-no-print-patterns bibclean-3.07/test/testoptd.opt0000444000156700015670000000001407342756775015474 0ustar beebebeebe-no-print-I bibclean-3.07/test/topt140.bib0000444000156700015670000000000012470142231014734 0ustar beebebeebebibclean-3.07/test/topt362.opt0000444000156700015670000000005312470456730015034 0ustar beebebeebe--no-read-init-files --print-keyword-table bibclean-3.07/test/topt109.bib0000444000156700015670000000000012470142226014745 0ustar beebebeebebibclean-3.07/test/topt164.opt0000444000156700015670000000000712470142073015023 0ustar beebebeebe-quiet bibclean-3.07/test/testbib3.opt0000444000156700015670000000002107342717570015331 0ustar beebebeebe-fix-font-change bibclean-3.07/test/topt346.bib0000444000156700015670000000000012470142232014745 0ustar beebebeebebibclean-3.07/test/topt118.opt0000444000156700015670000000001212470142073015016 0ustar beebebeebe-fix-math bibclean-3.07/test/topt357.opt0000444000156700015670000000001612470142160015024 0ustar beebebeebe--no-warnings bibclean-3.07/test/testopt8.opt0000444000156700015670000000005107342756730015410 0ustar beebebeebe-no-read-init-files -print-keyword-table bibclean-3.07/test/testoptx.opt0000444000156700015670000000263612470456416015517 0ustar beebebeebe'-?' \ -German-style \ -ISBN-file /dev/null \ -align-equals \ -author \ -brace-protect \ -check-values \ -copyleft \ -copyright \ -debug-match-failures \ -delete-empty-values \ -error-log /dev/null \ -file-position \ -fix-accents \ -fix-braces \ -fix-font-changes \ -fix-initials \ -fix-math \ -fix-names \ -help \ -init-file /dev/null \ -keep-linebreaks \ -keep-parbreaks \ -keep-preamble-spaces \ -keep-spaces \ -keep-string-spaces \ -keyword-file /dev/null \ -max-width nnn \ -output-file /dev/null \ -parbreaks \ -prettyprint \ -print-ISBN-table \ -print-keyword-table \ -print-patterns \ -quiet \ -read-init-files \ -remove-OPT-prefixes \ -scribe \ -version \ -warnings \ -no-German-style \ -no-align-equals \ -no-brace-protect \ -no-check-values \ -no-debug-match-failures \ -no-delete-empty-values \ -no-file-position \ -no-fix-accents \ -no-fix-braces \ -no-fix-font-changes \ -no-fix-initials \ -no-fix-math \ -no-fix-names \ -no-keep-linebreaks \ -no-keep-parbreaks \ -no-keep-preamble-spaces \ -no-keep-spaces \ -no-keep-string-spaces \ -no-parbreaks \ -no-prettyprint \ -no-print-ISBN-table \ -no-print-keyword-table \ -no-print-patterns \ -no-quiet \ -no-read-init-files \ -no-remove-OPT-prefixes \ -no-scribe \ -no-trace-file-opening \ -no-warnings bibclean-3.07/test/topt350.opt0000444000156700015670000000003112470142160015012 0ustar beebebeebe--no-print-keyword-table bibclean-3.07/test/topt163.opt0000444000156700015670000000004412470456665015042 0ustar beebebeebe-no-read-init-files -print-patterns bibclean-3.07/test/testbib4.opt0000444000156700015670000000002107342717576015340 0ustar beebebeebe-fix-font-change bibclean-3.07/test/topt341.bib0000444000156700015670000000000012470142232014740 0ustar beebebeebebibclean-3.07/test/topt111.opt0000444000156700015670000000002512470142073015013 0ustar beebebeebe-delete-empty-values bibclean-3.07/test/testoptv.opt0000444000156700015670000000001612112253202015460 0ustar beebebeebe-fix-braces bibclean-3.07/test/topt333.bib0000444000156700015670000000000012470142232014741 0ustar beebebeebebibclean-3.07/test/testopt1.opt0000444000156700015670000000044107342756756015414 0ustar beebebeebe-German-style -align-equals -check-values -delete-empty-values -file-position -fix-font-changes -fix-initials -fix-names -keep-linebreaks -keep-parbreaks -keep-preamble-spaces -keep-spaces -keep-string-spaces -parbreaks -prettyprint -read-init-files -remove-OPT-prefixes -scribe -warnings bibclean-3.07/test/topt322.opt0000444000156700015670000000002212470142160015011 0ustar beebebeebe--keep-linebreaks bibclean-3.07/test/topt107.bib0000444000156700015670000000000012470142226014743 0ustar beebebeebebibclean-3.07/test/topt348.bib0000444000156700015670000000000012470142232014747 0ustar beebebeebebibclean-3.07/test/topt325.opt0000444000156700015670000000001612470142160015017 0ustar beebebeebe--keep-spaces bibclean-3.07/test/topt116.opt0000444000156700015670000000002212470142073015015 0ustar beebebeebe-fix-font-changes bibclean-3.07/test/testoptq.opt0000444000156700015670000000001512071341702015461 0ustar beebebeebe-fix-accents bibclean-3.07/test/topt334.bib0000444000156700015670000000000012470142232014742 0ustar beebebeebebibclean-3.07/test/topt359.opt0000444000156700015670000000001412470142160015024 0ustar beebebeebe--parbreaks bibclean-3.07/test/testopt6.opt0000444000156700015670000000004712663435730015407 0ustar beebebeebe--no-read-init-files -print-ISBN-table bibclean-3.07/test/testopt6.bib0000444000156700015670000000000007342757150015327 0ustar beebebeebebibclean-3.07/test/topt359.bib0000444000156700015670000000000012470142232014751 0ustar beebebeebebibclean-3.07/test/topt334.opt0000444000156700015670000000003112470142160015014 0ustar beebebeebe--no-delete-empty-values bibclean-3.07/test/testoptq.bib0000444000156700015670000000543212071353032015422 0ustar beebebeebe@Misc{x, author = "H\aa kon Sza\ss-\O berg and Yngve {\"{O}}rstad and Hanne \'{A}ngel", } @Misc{x, author = "Rezs\H o Tarj\'an", } @Misc{x, author = "Neumann{ }J{\'a}nos and Wigner{ }Jen{\H{o}}", } @Misc{x, note = "Allegedly written by {H\aa kon Sza\ss-\O berg} and Yngve {\"{O}}rstad and Hanne \'{A}ngel.", } @Misc{x, title = "The fraternity $\Sigma \Phi \Delta$", } @Misc{x, title = "Houses in \AE r\o sk\o bing on \AE r\o ", } @Misc{x, title = "Huse i \AE r\o sk\o bing p\aa\ \AE r\o , Danmark", } @Misc{x, title = "Huse i \AE r\o sk\o bing p\aardvark\ \AE r\o , Danmark", } @Misc{x, title = "A Geometriai {T}{\'e}rfogalom Fejl{\H{o}}d{\'e}se: {A} geometriai fogalmak fejl d{\'e}se {P}{\"u}thagoraszt{\'o}l Hilbertig {\'e}s Einsteinig [{The} geometric concept of space development: The development of geometric concepts from {Pythagoras} to {Hilbert} and {Einstein}]", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/l/lanczos-cornelius.bib", } @Misc{x, title = "Az id\H ot{\"{u}}kr{\"{o}}z\'es a kvantummechanik\'aban. ({Hungarian}) [{Mirroring} time in quantum mechanics]", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/w/wigner-eugene.bib", } @Misc{x, title = "Keser\H u \'es vigasztal\'o eml\'ekez\'es. ({Hungarian}) [{Bitter} memories and comforting ones]", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/w/wigner-eugene.bib", } @Misc{x, title = "A tudom\'any n{\"o}veked\'ese --- kedvez\H o kil\'at\'asok \'es v\'arhat{\'o} vesz\'elyek. ({Hungarian}) [{The} growth of science and a positive outlook: expected hazards]", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/w/wigner-eugene.bib", } @Misc{x, title = "\ldots{} Nincs m\'eg \'atfog\'o elm\'elet [El{\"o}ad\'as az {ELTE} {\"u}nnepi {{\"u}l\'es\'en, 1987}. november 17-\'en: Videofelv\'etelr{\"o}l \'at{\'\i}rta {Marx Gy{\"o}rgy}]. ({Hungarian}) [{There} is no comprehensive theory [{Lecture} at the celebration of {E{\"o}tv{\"o}s}, {17 November 1987}: Video recordings transcribed by {George Marx}]]", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/w/wigner-eugene.bib", } @Misc{x, title = "Baidoties no ekonomikas recesijas, kas skartu visu pasauli, amerik\=a\c ni izv{\=e}las pl\=anoto taup\=\i\v sanu atcelt l\=\i dz febru\=arim. Mekl{\=e}s citu br\=\i numn\=uji\c nu.", URL = "http://news.lv/library/regional", } bibclean-3.07/test/topt116.bib0000444000156700015670000000000012470142227014744 0ustar beebebeebebibclean-3.07/test/topt325.bib0000444000156700015670000000000012470142231014741 0ustar beebebeebebibclean-3.07/test/topt348.opt0000444000156700015670000000002112470142160015020 0ustar beebebeebe--no-prettyprint bibclean-3.07/test/topt107.opt0000444000156700015670000000001612470142073015020 0ustar beebebeebe-check-values bibclean-3.07/test/topt322.bib0000444000156700015670000000000012470142231014736 0ustar beebebeebebibclean-3.07/test/testopt1.bib0000444000156700015670000000000007342754551015324 0ustar beebebeebebibclean-3.07/test/topt333.opt0000444000156700015670000000003212470142160015014 0ustar beebebeebe--no-debug-match-failures bibclean-3.07/test/testoptv.bib0000444000156700015670000000460012112252557015431 0ustar beebebeebe@Misc{Blow:2013:X01, author = "Joe Blow", title = "A {\booktitle{C}}", expect = "A {\booktitle{C}}", year = "2013", } @Misc{Blow:2013:X02, author = "Joe Blow", title = "B {\booktitle {D}}", expect = "B {\booktitle {D}}", year = "2013", } @Misc{Blow:2013:X03, author = "Joe Blow", title = "Erwin {\booktitle {Cat}}", expect = "Erwin {\booktitle {Cat}}", year = "2013", } @Misc{Blow:2013:X04, author = "Joe Blow", title = "Alpha \booktitle{Cat}", expect = "Alpha \booktitle{Cat}", year = "2013", } @Misc{Blow:2013:X05, author = "Joe Blow", title = "Bethe {\booktitle{Cat}}", expect = "Bethe {\booktitle{Cat}}", year = "2013", } @Misc{Blow:2013:X06, author = "Joe Blow", title = "Gamow {{\booktitle{Cat}}}", expect = "Gamow {{\booktitle{Cat}}}", year = "2013", } @Misc{Blow:2013:X07, author = "Joe Blow", title = "\twoargs{One}{Two}", expect = "\twoargs{One}{Two}", year = "2013", } @Misc{Blow:2013:X08, author = "Joe Blow", title = "\twoargs {One}{Two}", expect = "\twoargs {One}{Two}", year = "2013", } @Misc{Blow:2013:X09, author = "Joe Blow", title = "\twoargs {One} {Two}", expect = "\twoargs {One} {Two}", year = "2013", } @Misc{Blow:2013:X10, author = "Joe Blow", title = "{\twoargs {Un}{Deux}}", expect = "{\twoargs {Un}{Deux}}", year = "2013", } @Misc{Blow:2013:X11, author = "Joe Blow", title = "{\twoargs{Een}{Tvaa}}", expect = "{\twoargs{Een}{Tvaa}}", year = "2013", } @Misc{Blow:2013:X12, author = "Joe Blow", title = "{\twoargs {Uno} {Dos}}", expect = "{\twoargs {Uno} Dos}", year = "2013", } @Misc{Blow:2013:X13, author = "Joe Blow", title = "{{\twoargs{One}{Two}}}", expect = "{{\twoargs{One}{Two}}}", year = "2013", } @Misc{Blow:2013:X14, author = "Joe Blow", title = "{{\twoargs {One}{Two}}}", expect = "{{\twoargs {One}{Two}}}", year = "2013", } @Misc{Blow:2013:X15, author = "Joe Blow", title = "{{\twoargs {One} {Two}}}", expect = "{{\twoargs {One} Two}}", year = "2013", } bibclean-3.07/test/topt111.bib0000444000156700015670000000000012470142226014736 0ustar beebebeebebibclean-3.07/test/topt341.opt0000444000156700015670000000001712470142160015016 0ustar beebebeebe--no-fix-names bibclean-3.07/test/testbib4.bib0000444000156700015670000001077405334743754015306 0ustar beebebeebe% /u/sy/beebe/tex/bibclean/testbib4.org, Mon Jan 18 09:52:55 1993 % Edit by Nelson H. F. Beebe % This file stress-tests bibclean and biblex by % presenting them with input that has spaces % liberally sprinkled throughout, especially % between tokens. It is designed as a useful test % of a proposed grammar for BibTeX. %================================================= % Test 1: simple case without extra spaces @preamble{"anythinggoes"} @include{a-file-name-goes-here} @string{abb="abbreviation"} @Article{the-key, author="A. U. Thor", title="The Title", journal="The Journal", year="1993", volume="23", number="1", pages="17--21", month=jan, bibdate="Mon Jan 18 09:59:44 1993", } %================================================= % Test 2: simple one-line cases with intervening % spaces @ preamble { "anything goes" } @ include { a-file-name-goes-here } @ string { abb = "abbreviation" } @ Article {the-key , author = "A. U. Thor" , title = "The Title" , journal = "The Journal" , year = "1993" , volume = "23" , number = "1" , pages = "17--21" , month = jan , bibdate = "Mon Jan 18 09:59:44 1993" , } %================================================= % Test 3: change blanks to newlines in previous % test @ preamble { "anything goes" } @ include { a-file-name-goes-here } @ string { abb = "abbreviation" } @ Article {the-key , author = "A. U. Thor" , title = "The Title" , journal = "The Journal" , year = "1993" , volume = "23" , number = "1" , pages = "17--21" , month = jan , bibdate = "Mon Jan 18 09:59:44 1993" , } %================================================= % Test 4: change newlines to doubled newlines in % previous test @ preamble { "anything goes" } @ include { a-file-name-goes-here } @ string { abb = "abbreviation" } @ Article {the-key , author = "A. U. Thor" , title = "The Title" , journal = "The Journal" , year = "1993" , volume = "23" , number = "1" , pages = "17--21" , month = jan , bibdate = "Mon Jan 18 09:59:44 1993" , } %================================================= % Test 5: Change newline to % newline-comment-newline in previous test. @ % this is a comment preamble % this is a comment { % this is a comment "anything" # % this is a comment "goes" % this is a comment } % this is a comment % this is a comment @ % this is a comment include % this is a comment { % this is a comment a-file-name-goes-here % this is a comment } % this is a comment % this is a comment @ % this is a comment string % this is a comment { % this is a comment abb % this is a comment = % this is a comment "abbreviation" % this is a comment } % this is a comment % this is a comment % this is a comment @ % this is a comment Article % this is a comment {the-key % this is a comment , % this is a comment author % this is a comment = % this is a comment "A. U. Thor" % this is a comment , % this is a comment title % this is a comment = % this is a comment "The Title" % this is a comment , % this is a comment journal % this is a comment = % this is a comment "The Journal" % this is a comment , % this is a comment year % this is a comment = % this is a comment "1993" % this is a comment , % this is a comment volume % this is a comment = % this is a comment "23" % this is a comment , % this is a comment number % this is a comment = % this is a comment "1" % this is a comment , % this is a comment pages % this is a comment = % this is a comment "17--21" % this is a comment , % this is a comment month % this is a comment = % this is a comment jan % this is a comment , % this is a comment bibdate % this is a comment = % this is a comment "Mon Jan 18 09:59:44 1993" % this is a comment , % this is a comment } % this is a comment %================================================= % Test 7: other kinds of embedded space characters % We add CR before LF, and insert FF VT before % each entry. @preamble{"anythinggoes"} @include{a-file-name-goes-here} @string{abb="abbreviation"} @Article{the-key, author="A. U. Thor", title="The Title", journal="The Journal", year="1993", volume="23", number="1", pages="17--21", month=jan, bibdate="Mon Jan 18 09:59:44 1993", } bibclean-3.07/test/topt163.bib0000444000156700015670000000000012470142231014741 0ustar beebebeebebibclean-3.07/test/topt350.bib0000444000156700015670000000000012470142232014740 0ustar beebebeebebibclean-3.07/test/testopt8.bib0000444000156700015670000000000007342757150015331 0ustar beebebeebebibclean-3.07/test/topt357.bib0000444000156700015670000000000012470142232014747 0ustar beebebeebebibclean-3.07/test/topt118.bib0000444000156700015670000000000012470142227014746 0ustar beebebeebebibclean-3.07/test/topt346.opt0000444000156700015670000000003012470142160015016 0ustar beebebeebe--no-keep-string-spaces bibclean-3.07/test/testbib3.bib0000444000156700015670000001065405727412600015267 0ustar beebebeebe%% Test cases for -fix-names @article{foo, author = "Jones, Jr., William and Smith, Sr., Robert", editor = "Jones Jr., William and Smith Sr., Robert", author = "Jones, Sr., William and Smith, Sr., Robert", editor = "Jones Sr., William and Smith Sr., Robert", author = "Jones, Jr., William and {Smith, Sr.}, Robert", editor = "Jones Jr., William and {Smith Sr.}, Robert", author = "Jones, Sr., William and {Smith, Sr.}, Robert", editor = "Jones Sr., William and {Smith Sr.}, Robert", author = "von Beethoven, Ludwig", editor = "{von Beethoven}, Ludwig", author = "Charles XIII, King", editor = "Elizabeth XXXIV, Queen", } %% Test cases for -fix-font-changes @article{test1, author = "A. Bominaar and B. Snaar-Jagalska and F. Kesbeke and P. van Haastert", title = "Signal-transducing {G} proteins in {\it Dictyosteliun Discoideum}", journal = "??", year = "1989", volume = "27", pages = "369-375", } @article{test2, author = "A. Bominaar and B. Snaar-Jagalska and F. Kesbeke and P. van Haastert", title = "Signal-transducing {G} proteins in {\it {D}ictyosteliun {D}iscoideum}", journal = "??", year = "1989", volume = "27", pages = "369-375", } @article{test3, author = "A. Bominaar and B. Snaar-Jagalska and F. Kesbeke and P. van Haastert", title = "Signal-transducing {G} proteins in {{\it Dictyosteliun Discoideum}}", journal = "??", year = "1989", volume = "27", pages = "369-375", } %% Test cases for month processing @Article{date-test, month = "13 October", month = "23 " # jan, month = "23 January", month = "3 January", month = "Apr.", month = "April", month = "Aug.", month = "August", month = "Dec.", month = "December", month = "Feb.", month = "February", month = "Jan.", month = "Janu.", month = "January 23", month = "January 3", month = "January", month = "Jul.", month = "July", month = "Jun.", month = "June", month = "Mar.", month = "March", month = "May", month = "Nov", month = "Nov.", month = "November", month = "Oct.", month = "October", month = "Sep.", month = "Sept.", month = "September", month = "unknown", month = aug, month = jan # " 23", month = jan, month = nov, month = "August and November", month = "February and May", month = "May/June", } %% Test cases for long string values @Article{ber90, author = "M. J. Berridge and B. V. L. Potter", title = "Inositol trisphosphate analogues induce different oscillatory patterns in {\xenopus} oocytes", journal = "Cell Regulation", year = 1990, volume = 1, pages = "675--681", annote = "calcium dynamics: The different analogues of {\IP{3}} that were tested were {\IP{3}}, Ins(2,4,5)P${}_3$ and Ins(1,3,4,5)P${}_4$. These were injected through a double barrel electrode and the {\Cl} current was then used to measure the {\Ca{}} response. ``The naturally occurring {\IP{3}} produced a large initial transient followed by a single transient or burst of oscillations. By contrast, two analogues ({\IP{3}} and Ins(2,4,5)P${}_3$) produced different oscillatory pattern made up of a short burst of shape transients. $\cdots$ Both analogues failed to induce a response when injected after the initial {\IP{3}}-induced response, indicating that they act on the same intracellular pool of \Ca{} [not necessarily the case]. The existence of different oscillatory patterns suggests that there may be different mechanisms for setting up \Ca{} oscillations. The {\IP{3}} and Ins(2,4,5)P${}_3$ analogues may initiate oscillations through a negative feedback mechanism whereby \Ca{} inhibits its own release. The two-pool model is most likely mechanism to describe the {\IP{3}}-induced oscillations.''" } %%% Test case for bug fix of bibclean 2.10.1: @INPROCEEDINGS{Barthel94b, AUTHOR = {Kai Uwe Barthel and J\"{o}rg Sch\"{u}ttemeyer and Thomas Voy\'{e} and Peter Noll}, AUTHOR = "Kai Uwe Barthel and J{\"{o}}rg Sch{\"{u}}ttemeyer and Thomas Voy\'{e} and Peter Noll", } bibclean-3.07/test/topt164.bib0000444000156700015670000000000012470142231014742 0ustar beebebeebebibclean-3.07/test/topt109.opt0000444000156700015670000000001312470142073015017 0ustar beebebeebe-copyright bibclean-3.07/test/topt362.bib0000444000156700015670000000000012470142232014743 0ustar beebebeebebibclean-3.07/test/topt140.opt0000444000156700015670000000001512470142073015014 0ustar beebebeebe-no-fix-math bibclean-3.07/test/testoptd.bib0000444000156700015670000000000007342757150015405 0ustar beebebeebebibclean-3.07/test/topt151.bib0000444000156700015670000000000012470142231014736 0ustar beebebeebebibclean-3.07/test/topt319.bib0000444000156700015670000000000012470142231014744 0ustar beebebeebebibclean-3.07/test/testoptc.bib0000444000156700015670000000000007342757150015404 0ustar beebebeebebibclean-3.07/test/topt156.bib0000444000156700015670000000000012470142231014743 0ustar beebebeebebibclean-3.07/test/topt308.opt0000444000156700015670000000001312470142160015015 0ustar beebebeebe--copyleft bibclean-3.07/test/topt365.bib0000444000156700015670000000000012470142232014746 0ustar beebebeebebibclean-3.07/test/topt147.opt0000444000156700015670000000001612470142073015024 0ustar beebebeebe-no-parbreaks bibclean-3.07/test/topt317.bib0000444000156700015670000000000012470142231014742 0ustar beebebeebebibclean-3.07/test/romtol.in0000444000156700015670000000027405322641772014740 0ustar beebebeebei ii iii iiii iv v vi vii viii viiii ix x xi xii xiii xiiii xiv xv xvi xvii xviii xviiii xix xx xxx xxxx xxxxx l c cc cd d dc cm m mcm mcmxcii mxmii abc iabc vabc xabc labc cabc dabc mabc bibclean-3.07/test/testoptm.bib0000444000156700015670000000322212070721521015412 0ustar beebebeebe@Book{Kohonen:1980:CAM, author = "Teuvo Kohonen", title = "Content-addressable memories", publisher = pub-SV, address = pub-SV:adr, pages = "xi + 368", year = "1980", ISBN = "0387098232 (New York), 3540098232 (Berlin)", ISBN-13 = "9780387098234 (New York), 9783540098232 (Berlin)", ISBN-13 = "978038709823X (bad check digit)", ISBN-13 = "9770387098234 (bad prefix)", LCCN = "TK7895.M4 K63", bibdate = "Mon Jul 18 20:44:15 1994", bibsource = "http://www.math.utah.edu/pub/tex/bib/hash.bib", note = "Hashing is covered in the discussion of software-based content-addressable memories in Chapter 2.", price = "US\$39.00", acknowledgement = ack-nhfb, } @Book{Schlick:1979:PP, author = "Moritz Schlick and Henk L. Mulder and Barbara F. B. van de Velde-Schlick", title = "Philosophical papers", volume = "11", publisher = pub-REIDEL, address = pub-REIDEL:adr, pages = "various", year = "1979", ISBN = "9027703140 (vol. 1)", ISBN-13 = "9789027703149 (vol. 1)", LCCN = "B3329.S4872 E5 1979", bibdate = "Tue Oct 10 07:23:24 MDT 2006", bibsource = "http://www.math.utah.edu/pub/tex/bib/einstein.bib; z3950.loc.gov:7090/Voyager", note = "English translation by Peter Heath of \cite{Schlick:1915:PBR}.", series = "Vienna circle collection", acknowledgement = ack-nhfb, author-dates = "1882--1936", remark = "v. 1. 1909--1922.", subject = "Philosophy", } bibclean-3.07/test/topt135.opt0000444000156700015670000000002212470142073015016 0ustar beebebeebe-no-file-position bibclean-3.07/test/topt158.bib0000444000156700015670000000000012470142231014745 0ustar beebebeebebibclean-3.07/test/topt306.opt0000444000156700015670000000002012470142160015011 0ustar beebebeebe--brace-protect bibclean-3.07/test/topt149.opt0000444000156700015670000000002512470456772015044 0ustar beebebeebe-no-print-ISBN-table bibclean-3.07/test/topt124.bib0000444000156700015670000000000012470142227014743 0ustar beebebeebebibclean-3.07/test/topt301.opt0000444000156700015670000000000412470144331015010 0ustar beebebeebe--? bibclean-3.07/test/topt123.bib0000444000156700015670000000000012470142227014742 0ustar beebebeebebibclean-3.07/test/topt310.bib0000444000156700015670000000000012470142231014733 0ustar beebebeebebibclean-3.07/test/topt132.opt0000444000156700015670000000002112470142073015012 0ustar beebebeebe-no-check-values bibclean-3.07/test/testoptj.bib0000444000156700015670000000000007342760011015401 0ustar beebebeebebibclean-3.07/test/topt106.bib0000444000156700015670000000000012470142225014741 0ustar beebebeebebibclean-3.07/test/topt349.bib0000444000156700015670000000000012470142232014750 0ustar beebebeebebibclean-3.07/test/topt324.opt0000444000156700015670000000002712470142160015020 0ustar beebebeebe--keep-preamble-spaces bibclean-3.07/test/topt117.opt0000444000156700015670000000001612470142073015021 0ustar beebebeebe-fix-initials bibclean-3.07/test/testoptp.opt0000444000156700015670000000000012071121524015450 0ustar beebebeebebibclean-3.07/test/topt335.bib0000444000156700015670000000000012470142232014743 0ustar beebebeebebibclean-3.07/test/topt358.opt0000444000156700015670000000003012470142160015021 0ustar beebebeebe--output-file /dev/null bibclean-3.07/test/testopt7.opt0000444000156700015670000000002507342756747015420 0ustar beebebeebe-no-print-ISBN-table bibclean-3.07/test/topt110.opt0000444000156700015670000000002612470142073015013 0ustar beebebeebe-debug-match-failures bibclean-3.07/test/testoptw.opt0000444000156700015670000000001212114743026015467 0ustar beebebeebe-fix-math bibclean-3.07/test/topt332.bib0000444000156700015670000000000012470142232014740 0ustar beebebeebebibclean-3.07/test/topt101.bib0000444000156700015670000000000012470142225014734 0ustar beebebeebebibclean-3.07/test/topt323.opt0000444000156700015670000000002112470142160015011 0ustar beebebeebe--keep-parbreaks bibclean-3.07/test/topt351.opt0000444000156700015670000000002412470142160015015 0ustar beebebeebe--no-print-patterns bibclean-3.07/test/topt162.opt0000444000156700015670000000005112470456642015032 0ustar beebebeebe-no-read-init-files -print-keyword-table bibclean-3.07/test/testbib5.opt0000444000156700015670000000001607342717620015333 0ustar beebebeebe-German-style bibclean-3.07/test/topt340.bib0000444000156700015670000000000012470142232014737 0ustar beebebeebebibclean-3.07/test/topt108.bib0000444000156700015670000000000012470142226014744 0ustar beebebeebebibclean-3.07/test/topt165.opt0000444000156700015670000000002112470142073015020 0ustar beebebeebe-read-init-files bibclean-3.07/test/testbib2.opt0000444000156700015670000000002107342717522015325 0ustar beebebeebe-no-check-values bibclean-3.07/test/topt347.bib0000444000156700015670000000000012470142232014746 0ustar beebebeebebibclean-3.07/test/topt119.opt0000444000156700015670000000001312470142073015020 0ustar beebebeebe-fix-names bibclean-3.07/test/testscr1.opt0000444000156700015670000000002207342721576015364 0ustar beebebeebe-scribe -no-check bibclean-3.07/test/topt356.opt0000444000156700015670000000003012470142160015017 0ustar beebebeebe--no-trace-file-opening bibclean-3.07/test/testopt9.opt0000444000156700015670000000003007342756744015413 0ustar beebebeebe-no-print-keyword-table bibclean-3.07/test/topt150.opt0000444000156700015670000000003012470457010015012 0ustar beebebeebe-no-print-keyword-table bibclean-3.07/test/testopte.opt0000444000156700015670000000003507342757057015472 0ustar beebebeebe-no-read-init-files -print-k bibclean-3.07/test/topt372.bib0000664000156700015670000000132414162101210014751 0ustar beebebeebe@Article{Ewing:2021:TGH, author = "J. R. Ewing and D. J. {St. Aubin} and E. K. {Ste. Aubine} and F. G. {Sta. Maria}", title = "Title goes here", journal = "Journal of the Bibliography Testing", volume = "1", number = "1", pages = "1--10", month = dec, year = "2021", } @Article{Cee:2021:TGH, author = "A. B. Cee and J. R. Ewing and D. J. {St.Aubin} and E. K. {Ste.Aubine} and F. G. {Sta.Maria}", title = "Title goes here", journal = "Journal of the Bibliography Testing", volume = "1", number = "1", pages = "1--10", month = dec, year = "2021", } bibclean-3.07/test/testltx1.opt0000444000156700015670000000002107342723445015400 0ustar beebebeebe-no-check-values bibclean-3.07/test/topt141.bib0000444000156700015670000000000012470142231014735 0ustar beebebeebebibclean-3.07/test/topt363.opt0000444000156700015670000000004612470456745015045 0ustar beebebeebe--no-read-init-files --print-patterns bibclean-3.07/test/topt146.bib0000444000156700015670000000000012470142231014742 0ustar beebebeebebibclean-3.07/test/topt364.opt0000444000156700015670000000001012470142160015014 0ustar beebebeebe--quiet bibclean-3.07/test/topt309.bib0000444000156700015670000000000012470142231014743 0ustar beebebeebebibclean-3.07/test/topt157.opt0000444000156700015670000000001512470142073015024 0ustar beebebeebe-no-warnings bibclean-3.07/test/testoptb.opt0000444000156700015670000000002307342756657015471 0ustar beebebeebe-no-print-patterns bibclean-3.07/test/topt318.opt0000444000156700015670000000001312470142160015016 0ustar beebebeebe--fix-math bibclean-3.07/test/topt125.opt0000444000156700015670000000001512470142073015017 0ustar beebebeebe-keep-spaces bibclean-3.07/test/topt148.bib0000444000156700015670000000000012470142231014744 0ustar beebebeebebibclean-3.07/test/topt307.bib0000444000156700015670000000000012470142231014741 0ustar beebebeebebibclean-3.07/test/topt159.opt0000444000156700015670000000001312470142073015024 0ustar beebebeebe-parbreaks bibclean-3.07/test/testoptl.opt0000444000156700015670000000000012071104122015437 0ustar beebebeebebibclean-3.07/test/topt134.bib0000444000156700015670000000000012470142231014737 0ustar beebebeebebibclean-3.07/test/topt316.opt0000444000156700015670000000002312470142160015015 0ustar beebebeebe--fix-font-changes bibclean-3.07/test/topt133.bib0000444000156700015670000000000012470142230014735 0ustar beebebeebebibclean-3.07/test/testoptk.opt0000444000156700015670000000001207342757475015477 0ustar beebebeebe--version bibclean-3.07/test/topt311.opt0000444000156700015670000000002612470142160015013 0ustar beebebeebe--delete-empty-values bibclean-3.07/test/testltx1.ltx0000444000156700015670000000075507011641533015411 0ustar beebebeebe% -*-latex-*- % Document name: /u/sy/beebe/tex/bibclean/testbib2.ltx % Creator: Nelson H.F. Beebe [beebe@magna.math.utah.edu] % Creation Date: Sat Oct 6 17:38:08 1990 % [08-Nov-1999] Make this file work under both LaTeX 2.09 and 2e, % silently preferring 2e, which is now of school age \ifx \documentclass \undefined \documentstyle{article} \else \documentclass{article} \fi \begin{document} \bibliographystyle{alpha} \nocite{*} \bibliography{testbib2} \end{document} bibclean-3.07/test/topt122.opt0000444000156700015670000000002112470142073015011 0ustar beebebeebe-keep-linebreaks bibclean-3.07/test/topt122.bib0000444000156700015670000000000012470142227014741 0ustar beebebeebebibclean-3.07/test/topt311.bib0000444000156700015670000000000012470142231014734 0ustar beebebeebebibclean-3.07/test/topt133.opt0000444000156700015670000000003112470142073015014 0ustar beebebeebe-no-debug-match-failures bibclean-3.07/test/testoptk.bib0000444000156700015670000000000007342760011015402 0ustar beebebeebebibclean-3.07/test/topt316.bib0000444000156700015670000000000012470142231014741 0ustar beebebeebebibclean-3.07/test/testoptl.bib0000444000156700015670000000313012070642541015413 0ustar beebebeebe@Article{Blow:2013:EP, author = "Joe Blow", title = "e-CON 2011 conference summary", title = "The e-CON 2011 conference summary", title = "The e-CON 2011 conference summary", title = "The FORTRAN-to-C manual", title = "The ExCeLeNt Program", title = "The EXcelENt Program", title = "The excELEnt Program", title = "The Excelent Program", title = "Up and Down Letter Case in Title", booktitle = "e-CON 2011 conference summary", booktitle = "The e-CON 2011 conference summary", booktitle = "The e-CON 2011 conference summary", booktitle = "The FORTRAN-to-C manual", booktitle = "The ExCeLeNt Program", booktitle = "The EXcelENt Program", booktitle = "The excELEnt Program", booktitle = "The Excelent Program", booktitle = "Up and Down Letter Case in Title", title = "The IEEE P754 draft floating-point standard", title = "The IEEE 754 floating-point standard", title = "The GCC 4.8-20120401 compiler release", title = "The IEEE 802.11(p)/1609 network standard", title = "IEEE P754 draft floating-point standard", title = "IEEE 754 floating-point standard", title = "GCC 4.8-20120401 compiler release", title = "IEEE 802.11(p)/1609 network standard", journal = "Journal of Something", volume = "1", number = "1", pages = "1--3", day = "1", month = jan, year = "2013", bibdate = "Tue Jan 01 09:18:32 2013", acknowledgement = ack-nhfb, } bibclean-3.07/test/topt134.opt0000444000156700015670000000003012470142073015014 0ustar beebebeebe-no-delete-empty-values bibclean-3.07/test/topt159.bib0000444000156700015670000000000012470142231014746 0ustar beebebeebebibclean-3.07/test/topt307.opt0000444000156700015670000000001712470142160015020 0ustar beebebeebe--check-values bibclean-3.07/test/topt148.opt0000444000156700015670000000002012470142073015020 0ustar beebebeebe-no-prettyprint bibclean-3.07/test/topt125.bib0000444000156700015670000000000012470142227014744 0ustar beebebeebebibclean-3.07/test/topt318.bib0000444000156700015670000000000012470142231014743 0ustar beebebeebebibclean-3.07/test/testoptb.bib0000444000156700015670000000000007342757150015403 0ustar beebebeebebibclean-3.07/test/topt157.bib0000444000156700015670000000000012470142231014744 0ustar beebebeebebibclean-3.07/test/topt309.opt0000444000156700015670000000001412470142160015017 0ustar beebebeebe--copyright bibclean-3.07/test/topt364.bib0000444000156700015670000000000012470142232014745 0ustar beebebeebebibclean-3.07/test/topt146.opt0000444000156700015670000000002712470142073015025 0ustar beebebeebe-no-keep-string-spaces bibclean-3.07/test/topt363.bib0000444000156700015670000000000012470142232014744 0ustar beebebeebebibclean-3.07/test/topt141.opt0000444000156700015670000000001612470142073015016 0ustar beebebeebe-no-fix-names bibclean-3.07/test/topt372.opt0000664000156700015670000000001514162071560015031 0ustar beebebeebe-fix-degrees bibclean-3.07/test/testopte.bib0000444000156700015670000000000007342757150015406 0ustar beebebeebebibclean-3.07/test/topt150.bib0000444000156700015670000000000012470142231014735 0ustar beebebeebebibclean-3.07/test/testopt9.bib0000444000156700015670000000000007342757150015332 0ustar beebebeebebibclean-3.07/test/topt356.bib0000444000156700015670000000000012470142232014746 0ustar beebebeebebibclean-3.07/test/testscr1.bib0000444000156700015670000005770705325052550015330 0ustar beebebeebe@Comment< This file contains a sample set of bibliography data base entries in Scribe format. It is used for testing the -scribe option of bibclean. The first entry uses each of the 7 delimiters, each of the 3 separators, undelimited values, and embedded quotes to illustrate the flexibility of Scribe syntax. Note, however, that nested delimiters are NOT permitted by Scribe; BibTeX permits nested braces and braced quotes. > @Comment{Old style comment} @Comment{ This is a block comment with two lines. } @Comment{ This is a block comment with two lines and embedded braces: {one} {two} {three} } @Comment{ This is a block comment with two lines and embedded braces: {one} {two} {three}. Here are some mismatched braces: { { { } } } {} {} } @inproceedings( Adomaitis79Computer, key = <"Outer and inner " quotes">, author {V. Adomaitis}, title / , year 1979, booktitle = [Proc. 6-th Man-Computer Communications Conference], editor = "M. Wein and E. Swail", publisher = ' Computer Graphics Section, National Research Council of Canada', pages = `161-167`, address = {Ottawa, Ontario, Canada, K1A 0R8}, keywords = {Applications, video illustration system} ) @STRING( HSchV = {Universit\"atsdruckerei und Verlag Hermann Schmidt}) @STRING( a.HSchV = {Mainz}) @article(ntg:PH92, AUTHOR = {Nico Poppelier and Amy Hendrickson}, TITLE = {Book reviews}, journal = ntg, YEAR = 1992, MONTH = may, volume = 92, NUMBER = 1, PAGES = {135-138}, annote = [Contains reviews of ``\LaTeX{} for Everyone'' \cite{PCTeX:JHa91}, ``Practical SGML'' \cite{Kluwer:EvHe90}, and ``\TeX{} by Topic, A \TeX{}nician's Reference'' \cite{A-W:VEi91}.], keywords = {Reviews}, ) @article(tub:NPo92b, AUTHOR = {Nico Poppelier}, TITLE = [Book reviews: {Jane Hahn, {\LaTeX} for Everyone}; {Eric van Herwijnen, Practical {SGML}}], JOURNAL = tub, YEAR = 1992, VOLUME = 13, NUMBER = 2, MONTH = jul, PAGES = {182-184}, annote = , keywords = {?}, ) @COMMENT(Some standard works describing conventions for citations and bibliographies) @TECHREPORT(bs-1629, AUTHOR = "BSI", TITLE = "Bibliographic References", INSTITUTION = "British Standards Institution", YEAR = "1976", TYPE = "BS", NUMBER = "1629" ) @TECHREPORT(bs-5605, AUTHOR = "BSI", TITLE = "Citing Publications by Bibliographic References", INSTITUTION = "British Standards Institution", YEAR = "1978", TYPE = "BS", NUMBER = "5606" ) @TECHREPORT(bs-6371, AUTHOR = "BSI", TITLE = "Citation of unpublished documents", INSTITUTION = "British Standards Institution", YEAR = "1983", TYPE = "BS", NUMBER = "6371" ) @BOOK(butcher-81, TITLE = "Copy-editing", AUTHOR = "Judith Butcher", PUBLISHER = "Cambridge University Press", YEAR = "1981", EDITION = "2nd" ) @BOOK(chicago-82, TITLE = "The {C}hicago Manual of Style", AUTHOR = "`Chicago'", YEAR = "1982", PUBLISHER = "University of Chicago Press", EDITION = "13th" ) @COMMENT(Some examples taken from the document describing BS 5605) @ARTICLE(howells-51, AUTHOR = "W. W. Howells", TITLE = "Factors of Human Physique", JOURNAL = "American Journal of Physical Anthropology", VOLUME = "9", PAGES = "159-192", YEAR = "1951" ) @ARTICLE(howells-66-pop, AUTHOR = "W. W. Howells", TITLE = "Population Distances: Biological, Linguistic, Geographical and Environmental", JOURNAL = "Current Anthropology", VOLUME = "7", PAGES = "531--540", YEAR = "1966" ) @ARTICLE(howells-66-var, AUTHOR = "W. W. Howells", TITLE = "Variability in Family Lines vs. Population Variability", JOURNAL = "Annals of the {New York Academy of Sciences}", VOLUME = "134", PAGES = "624--631", YEAR = "1966" ) @ARTICLE(johnson-74, AUTHOR = "G. B. Johnson", TITLE = "Enzyme Polymorphism", JOURNAL = "Science", VOLUME = "184", PAGES = "28--37", YEAR = "1974" ) @ARTICLE(johnson-howells, AUTHOR = "G. B. Johnson and W. W. Howells", TITLE = "Title title title title title title title title title title", JOURNAL = "Journal journal journal", YEAR = "1974" ) @ARTICLE(johnson-etc, AUTHOR = "G. B. Johnson and W. W. Howells and A. N. Other", TITLE = "Title title title title title title title title title title", JOURNAL = "Journal journal journal", YEAR = "1976" ) @MANUAL(anon-67, AUTHOR = "Anon.", TITLE = "Title title title title title title title title title title", ORGANIZATION = "Organization organization organization", YEAR = "1967" ) @ARTICLE(aslin-49, AUTHOR = "E. J. Aslin", TITLE = "Photostat recording in library work", JOURNAL = "Aslib Proceedings", YEAR = "1949", VOLUME = "1", PAGES = "49--52" ) @ARTICLE(fletcher-hopkins, AUTHOR = "W. M. Fletcher and F. G. Hopkins", TITLE = "Lactic Acid in Amphibian Muscle", JOURNAL = "J. Physiol.", YEAR = "1907", VOLUME = "35", PAGES = "247--309" ) @INCOLLECTION(hanson-67, AUTHOR = "C. W. Hanson", TITLE = "Subject inquiries and literature searching", BOOKTITLE = "Handbook of special librarianship and information work", EDITOR = "W. Ashworth", YEAR = "1967", EDITION = "3rd", PAGES = "414--452" ) @INBOOK(wright-63, AUTHOR = "R. C. Wright", TITLE = "Report Literature", BOOKTITLE = "Special Materials in the Library", EDITOR = "J. Burkett and T. S. Morgan", YEAR = "1963", PAGES = "46--59", publisher = "The Library Association", address = London, ) @BOOK(BCM-59, AUTHOR = "{Association of British Chemical Manufacturers}", TITLE = "British chemicals and their manufacturers", PUBLISHER = , YEAR = "1959" ) @INBOOK(feigl-58, AUTHOR = "F. Feigl", TITLE = "Spot Tests in Organic Analysis", YEAR = "1958", PUBLISHER = "Publisher publisher", EDITION = "5th", CHAPTER = "6" ) @COMMENT(Some examples taken from document describing BS 1629) @BOOK(hoel-71-whole, AUTHOR = "Paul Gerhard Hoel", TITLE = "Elementary Statistics", PUBLISHER = "Wiley", YEAR = "1971", SERIES = "Wiley series in probability and mathematical statistics", ADDRESS = "New York, Chichester", EDITION = "3rd", NOTE = "ISBN 0~471~40300" ) @INBOOK(hoel-71-portion, AUTHOR = "Paul Gerhard Hoel", TITLE = "Elementary Statistics", PUBLISHER = "Wiley", YEAR = "1971", SERIES = "Wiley series in probability and mathematical statistics", ADDRESS = "New York, Chichester", EDITION = "3rd", NOTE = "ISBN 0~471~40300", PAGES = "19--33" ) @BOOK(singer-whole, YEAR = "1954--58", EDITOR = "Charles Joseph Singer and E. J. Holmyard and A. R. Hall", TITLE = "A history of technology", ADDRESS = "London", PUBLISHER = "Oxford University Press", NOTE = "5 vol." ) @INCOLLECTION(singer-portion-chapter, KEY = `singer-portion-chapter`, TITLE = "The late nineteenth century", YEAR = "1954--58", EDITOR = "Charles Joseph Singer and E. J. Holmyard and A. R. Hall", BOOKTITLE = "A history of technology", ADDRESS = "London", PUBLISHER = "Oxford University Press", TYPE = "Vol.", CHAPTER = "5" ) @INCOLLECTION(singer-portion-volume, TITLE = "The late nineteenth century", KEY = 'singer-portion-volume', YEAR = "1954--58", EDITOR = "Charles Joseph Singer and E. J. Holmyard and A. R. Hall", BOOKTITLE = "A history of technology", ADDRESS = "London", PUBLISHER = "Oxford University Press", VOLUME = "5" ) @MANUAL(bs-2570-manual, AUTHOR = "BSI", TITLE = "Natural Fibre Twines", ORGANIZATION = "British Standards Institution", ADDRESS = "London", EDITION = "3rd", YEAR = "1973", NOTE = "BS 2570" ) @TECHREPORT(bs-2570-techreport, AUTHOR = "BSI", TITLE = "Natural Fibre Twines", INSTITUTION = "British Standards Institution", ADDRESS = "London", YEAR = "1973", TYPE = "BS", NUMBER = "2570", NOTE = "3rd. edn." ) @INBOOK(bs-2570-inbook, AUTHOR = "BSI", TITLE = "{BS} 2570: Natural Fibre Twines", PUBLISHER = "British Standards Institution", ADDRESS = "London", YEAR = "1973", EDITION = "3rd", CHAPTER = "5", TYPE = "{Table}" ) @TECHREPORT(ellis-walton, AUTHOR = "B. Ellis and A. K. Walton", TITLE = "A Bibliography on Optical Modulators", INSTITUTION = "Royal Aircraft Establishment", YEAR = "1971", NUMBER = "RAE-TR-71009" ) @ARTICLE(godfrey-59, AUTHOR = "G. Bernard Godfrey", TITLE = "Joints in Tubular Structures", JOURNAL = "Struct. Eng.", YEAR = "1959", VOLUME = "37", NUMBER = "4", PAGES = "126--135" ) @INCOLLECTION(ramsbottom-31, AUTHOR = "John Ramsbottom", TITLE = "Fungi Pathogenic to Man", BOOKTITLE = "A System of Bacteriology in relation to Medicine", PUBLISHER = "HMSO, for Medical Research Council", YEAR = "1931", VOLUME = "8", PAGES = "11--70", ADDRESS = "London" ) @ARTICLE(hanlon-72, AUTHOR = "Joseph Hanlon", TITLE = "Designing Buildings by Computer", JOURNAL = "New Scientist", YEAR = "1972", MONTH = "31 Aug", PAGES = "429--432" ) @TECHREPORT(winget-67, AUTHOR = "{Winget Ltd.}", TITLE = "Detachable Bulldozer Attachment for Dumper Vehicles", YEAR = "1967", institution = [unknown], TYPE = "GB Patent Specification", NUMBER = "1060631", MONTH = "8 Mar", ) @ARTICLE(bry-afflerbach, AUTHOR = "I. Bry and L. Afflerbach", TITLE = "In search of an organizing principle for behavioural science literature", JOURNAL = "Community Mental Health", YEAR = "1968", VOLUME = "4", NUMBER = "1", PAGES = "75--84" ) @INCOLLECTION(ranganathan-51, AUTHOR = "S. R. Ranganthan", TITLE = "Colon classification and its approach to documentation", BOOKTITLE = "Bibliographic Organization", EDITOR = "Jesse H. Shera and Margaret E. Egan", publisher = "University of Chicago Press", YEAR = "1951", PAGES = "94--105" ) @BOOK(mccolvin-nodate, AUTHOR = "L. R. McColvin", TITLE = "Libraries in {Britain}", PUBLISHER = "{Longmans Green, for the British Council}", ADDRESS = "London", YEAR = 1961, ) @COMMENT(Some examples taken from document describing BS 6371) @UNPUBLISHED(exchequer-34-39, AUTHOR = "Exchequer", YEAR = "1634--1639", TITLE = "Act books", NOTE = "Edinburgh, Scottish Record Office, E.4/5" ) @UNPUBLISHED(traquair-38, AUTHOR = "{Earl of} Traquair", YEAR = "1638", TITLE = "Letter to {Marquess of Hamilton, 28 Aug.}", NOTE = "Lennoxlove (E.~Lothian), Muniments of Duke of Hamilton and Brandon, C.1, no. 963" ) @UNPUBLISHED(pym-24, AUTHOR = "J. Pym", YEAR = "1624", TITLE = "Diary", NOTE = "Northampton, Northamptonshire Record Office, Finch-Hatton 50" ) @PHDTHESIS(croft-78, AUTHOR = "W. B. Croft", YEAR = "1978", TITLE = "Organizing and searching large files of document descriptions", SCHOOL = "Cambridge University" ) @COMMENT(Some examples taken from Chapter 10 of "Copy-editing" by Judith Butcher) @BOOK(darcy-20-amaz, AUTHOR = "Firstname D'Arcy", TITLE = "Title title title title title title title title title title", PUBLISHER = "Publisher publisher publisher", YEAR = "1920" ) @BOOK(darcy-20-again, AUTHOR = "Firstname D'Arcy", TITLE = "Title title title title title title title title title title", PUBLISHER = "Publisher publisher publisher", YEAR = "1920" ) @ARTICLE(jones-n-h-r, AUTHOR = "Firstname Jones and Firstname Norman and Firstname Hazel and Firstname Robinson", TITLE = "Title title title title title title title title title title", YEAR = "1962", JOURNAL = "Journal journal journal" ) @ARTICLE(jones-s-r, AUTHOR = "Firstname Jones and Firstname Smith and Firstname Robinson", TITLE = "Title title title title title title title title title title", YEAR = "1962", JOURNAL = "Journal journal journal" ) @ARTICLE(jones-65, AUTHOR = "Firstname Jones", TITLE = "Title title title title title title title title title title", YEAR = "1965", JOURNAL = "Journal journal journal" ) @ARTICLE(jones-69, AUTHOR = "Firstname Jones", TITLE = "Title title title title title title title title title title", YEAR = "1969", JOURNAL = "Journal journal journal" ) @ARTICLE(jones-abrams, AUTHOR = "Firstname Jones and Firstname Abrams", TITLE = "Title title title title title title title title title title", YEAR = "1968", JOURNAL = "Journal journal journal" ) @ARTICLE(jones-smith, AUTHOR = "Firstname Jones and Firstname Smith", TITLE = "Title title title title title title title title title title", YEAR = "1965", JOURNAL = "Journal journal journal" ) @ARTICLE(jones-a-s, AUTHOR = "Firstname Jones and Firstname Abrams and Firstname Smith", TITLE = "Title title title title title title title title title title", YEAR = "1966", JOURNAL = "Journal journal journal" ) @ARTICLE(bloggs-60, AUTHOR = "A. J. Bloggs", TITLE = "Title title title title title title title title title title", JOURNAL = "Journal journal journal", YEAR = "1960" ) @ARTICLE(bloggs-61, AUTHOR = "A. J. Bloggs", TITLE = "Title title title title title title title title title title", JOURNAL = "Journal journal journal", YEAR = "1961" ) @ARTICLE(bloggs-jones, AUTHOR = "A. J. Bloggs and X. Y. Jones", TITLE = "Title title title title title title title title title title", JOURNAL = "Journal journal journal", YEAR = "1959" ) @ARTICLE(bloggs-s-j, AUTHOR = "A. J. Bloggs and R. S. Smith and X. Y. Jones", TITLE = "Title title title title title title title title title title", JOURNAL = "Journal journal journal", YEAR = "1955" ) @ARTICLE(brown-f-s, AUTHOR = "H. W. Brown and A. S. Forbes and S. D. Smith", TITLE = "Title title title title title title title title title title", JOURNAL = "Journal journal journal", YEAR = "1900" ) @INCOLLECTION(eckstein-zuckerman, AUTHOR = "P. Eckstein and S. Zuckermann", TITLE = "Morphology of the Reproductive Tract", BOOKTITLE = "Marshall's Physiology of Reproduction", PUBLISHER = "Longman", YEAR = "1960", EDITOR = "A. S. Parkes", VOLUME = "1", PAGES = "43--154", ADDRESS = "London" ) @ARTICLE(heller-lederis, AUTHOR = "H. Heller and K. Lederis", TITLE = "Paper chromatography of small amounts of vasopressin and oxytocin", YEAR = "1958", JOURNAL = "Nature", ADDRESS = "London", VOLUME = "182", PAGES = "1231--2" ) @BOOK(wood-61, AUTHOR = "R. H. Wood", TITLE = "Plastic and Elastic Design of Slabs and Plates", PUBLISHER = "Thames \& Hudson", ADDRESS = "London", YEAR = "1961" ) @COMMENT(Some examples taken from Chapter 15 of the Chicago Manual of Style) @BOOK(pratt-75, AUTHOR = "Firstname Pratt", TITLE = "Title title title title title title title title title title", PUBLISHER = "Publisher publisher publisher", YEAR = "1975" ) @ARTICLE(light-72, AUTHOR = "Firstname Light", TITLE = "Title title title title title title title title title title", JOURNAL = "Journal journal journal", YEAR = "1972" ) @ARTICLE(light-wong, AUTHOR = "Firstname Light and Firstname Wong", TITLE = "Title title title title title title title title title title", JOURNAL = "Journal journal journal", YEAR = "1975" ) @ARTICLE(kingston-76, AUTHOR = "Firstname Kingston", TITLE = "Title title title title title title title title title title", JOURNAL = "Journal journal journal", YEAR = "1976" ) @ARTICLE(kelley-96-spring, AUTHOR = "Firstname Kelley", TITLE = "Title title title title title title title title title title", JOURNAL = "Journal journal journal", YEAR = "1896" ) @ARTICLE(kelley-96-autumn, AUTHOR = "Firstname Kelley", TITLE = "Title title title title title title title title title title", JOURNAL = "Journal journal journal", YEAR = "1896" ) @ARTICLE(kelley-07, AUTHOR = "Firstname Kelley", TITLE = "Title title title title title title title title title title", JOURNAL = "Journal journal journal", YEAR = "1907" ) @BOOK(strong-01, AUTHOR = "Firstname Strong", TITLE = "Title title title title title title title title title title", PUBLISHER = "Publisher publisher publisher", YEAR = "1901" ) @BOOK(strong-02, AUTHOR = "Firstname Strong", TITLE = "Title title title title title title title title title title", PUBLISHER = "Publisher publisher publisher", YEAR = "1902" ) @BOOK(shotwell-01, AUTHOR = "Firstname Shotwell", TITLE = "Title title title title title title title title title title", PUBLISHER = "Publisher publisher publisher", YEAR = "1901" ) @COMMENT(Some examples taken from Chapter 16 of the Chicago Manual of Style) @TECHREPORT(brunswick-85, AUTHOR = "`Brunswick'", TITLE = "The piper and the rats: A musical experiment", INSTITUTION = "Rodent Activities Termination Section (RATS), Pest Control Division, Brunswick Public Welfare Department", YEAR = "1985", NUMBER = "1984", ADDRESS = "Hamelin" ) @BOOK(kendeigh-52, AUTHOR = "S. C. Kendeigh", YEAR = "1952", TITLE = "Prenatal care and its evolution in birds", SERIES = "Illinois Biological Monographs", VOLUME = "22", NUMBER = "1--3", ADDRESS = "Champaign", PUBLISHER = "University of Illinois Press" ) @BOOK(chapman-75, AUTHOR = "Jefferson Chapman", YEAR = "1975", TITLE = "The {Icehouse Bottom} Site---{40MR23}", SERIES = "University of Tennessee Department of Anthropology Publication", NUMBER = "23", ADDRESS = "Knoxville", PUBLISHER = "Univ. of Tennessee Press" ) @BOOK(hershkovitz-62, AUTHOR = "P. Hershkovitz", YEAR = "1962", TITLE = "Evolution of {Neotropical} cricetine rodents ({Muridae}) with special reference to the phyllotine group", SERIES = "Fieldiana: Zoology", VOLUME = "46", ADDRESS = "Chicago", PUBLISHER = "Field Museum of Natural History" ) @BOOK(wright-78-book, TITLE = "Evolution and the genetics of populations", AUTHOR = "Sewall Wright", YEAR = "1978", ADDRESS = "Chicago", PUBLISHER = "Univ. of Chicago Press", VOLUME = "4" ) @INCOLLECTION(wright-78-incollection, TITLE = "Variability within and among natural populations", AUTHOR = "Sewall Wright", BOOKTITLE = "Evolution and the genetics of populations", YEAR = "1978", ADDRESS = "Chicago", PUBLISHER = "Univ. of Chicago Press", TYPE = "Vol.", CHAPTER = "4" ) @INCOLLECTION(ogilvy-65, AUTHOR = "David Ogilvy", TITLE = "The Creative Chef", BOOKTITLE = "The Creative Organization", YEAR = "1965", EDITOR = "Gary A. Steiner", ADDRESS = "Chicago", PUBLISHER = "University of Chicago Press", PAGES = "199-213" ) @INCOLLECTION(mcneill-63, AUTHOR = "William H. McNeill", YEAR = "1963", TITLE = "The Era of {Middle Eastern} Dominance to 500 {\sc b.c.}", BOOKTITLE = "The Rise of the {West}", PUBLISHER = "{University of Chicago Press}", ADDRESS = "Chicago", TYPE = "Part", CHAPTER = "1" ) @INCOLLECTION(thomson-71, AUTHOR = "Virgil Thomson", TITLE = "Cage and the Collage of Noises", BOOKTITLE = "American Music since 1910", ADDRESS = "New York", PUBLISHER = "Holt, Rinehart and Winston", YEAR = "1971", CHAPTER = "8" ) @INCOLLECTION(gordon-75, TITLE = "The Tunes of {Chicken Little}", AUTHOR = "Robert Gordon", YEAR = "1975", BOOKTITLE = "Playwrights for Tomorrow: A Collection of Plays", EDITOR = "Arthur H. Ballet", VOLUME = "13", ADDRESS = "Minneapolis", PUBLISHER = "University of Minnesota Press", NOTE = "One of four plays included in vol. 13" ) @INCOLLECTION(milton-24, AUTHOR = "John Milton", TITLE = "Paradise Lost", BOOKTITLE = "The Complete Poetical Works of {John Milton}", EDITION = "{Student's Cambridge}", ADDRESS = "Boston", PUBLISHER = "Houghton Mifflin", YEAR = "1924", EDITOR = "William Vaughn Moody" ) @INPROCEEDINGS(chomsky-73, AUTHOR = "N. Chomsky", YEAR = "1973", TITLE = "Conditions on Transformations", BOOKTITLE = "A festschrift for {Morris Halle}", EDITOR = "S. R. Anderson and P. Kiparsky", PUBLISHER = "Holt, Rinehart \& Winston", ADDRESS = "New York" ) @INPROCEEDINGS(chave-64, AUTHOR = "K. E. Chave", YEAR = "1964", TITLE = "Skeletal durability and preservation", BOOKTITLE = "Approaches to paleoecology", EDITOR = "J. Imbrie and N. Newel", ADDRESS = "New York", PUBLISHER = "Wiley", PAGES = "377-87" ) @BOOK(smart-76, AUTHOR = "Ninian Smart", YEAR = "1976", TITLE = "The religious experience of mankind", PUBLISHER = "Schribner", ADDRESS = "New York", EDITION = "2nd" ) @ARTICLE(jackson-79, AUTHOR = "Richard Jackson", YEAR = "1979", TITLE = "Running down the up-escalator: Regional inequality in {Papua New Guinea}", JOURNAL = "Australian Geographer", VOLUME = "14", MONTH = "May", PAGES = "175--84" ) @ARTICLE(prufer-64, AUTHOR = "Olaf Prufer", YEAR = 1964, TITLE = "The {Hopewell} Cult", JOURNAL = "Scientific {American}", MONTH = dec, PAGES = "90--102" ) @PHDTHESIS(mann-68, AUTHOR = "A. E. Mann", YEAR = "1968", TITLE = "The palaeodemography of {Australopithecus}", TYPE = "Ph.D. diss.", SCHOOL = "University of California, Berkeley" ) @PHDTHESIS(maguire-76, AUTHOR = "J. Maguire", YEAR = "1976", TITLE = "A taxonomic and ecological study of the living and fossil {Hystricidae} with particular reference to southern {Africa}", TYPE = "Ph.D. diss.", SCHOOL = "Department of Geology, University of the Witwatersrand", ADDRESS = "Johannesburg" ) @UNPUBLISHED(downes-74, TITLE = "Systemic grammar and structural sentence relatedness", AUTHOR = "W. J. Downes", YEAR = "1974", NOTE = "London School of Economics. Mimeo." ) @MISC(hunt-76, AUTHOR = "Hunt, Horace [pseud.]", TITLE = "Interview", YEAR = "1976", HOWPUBLISHED = "Tape recording, Pennsylvania Historical and Museum Commission, Harrisburg", NOTE = "Interview by {Ronald Schatz, 16 May 1976}", ) bibclean-3.07/test/topt119.bib0000444000156700015670000000000012470142227014747 0ustar beebebeebebibclean-3.07/test/topt347.opt0000444000156700015670000000001712470142160015024 0ustar beebebeebe--no-parbreaks bibclean-3.07/test/testbib2.bib0000444000156700015670000016333105304620232015260 0ustar beebebeebe% REDUCE BIBLIOGRAPHY % Part 1: A-F % Copyright (c) 1990 The RAND Corporation. All Rights Reserved. % Additions and corrections are solicited. Please send them, in the % same format as these entries if possible, to reduce at rand.org. @ARTICLE{Abbott:85, AUTHOR = "J. A. Abbott and R. J. Bradford and J. H. Davenport", TITLE = "A Remark on Factorisation", JOURNAL = "{SIGSAM} Bulletin", YEAR = 1985, VOLUME = 19, NUMBER = 2, PAGES = "31-33", MONTH = "May"} @INPROCEEDINGS{Abbott:86, AUTHOR = "J. A. Abbott and R. J. Bradford and J. H. Davenport", TITLE = "The {Bath} Algebraic Number Package", BOOKTITLE = "Proc. of {SYMSAC} '86", YEAR = 1986, PAGES = "250-253"} @INPROCEEDINGS{Abbott:87, AUTHOR = "J. A. Abbott and J. H. Davenport", TITLE = "Polynomial Factorization: An Exploration of {Lenstra's} Algorithm", BOOKTITLE = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", YEAR = 1987, VOLUME = 378, PAGES = "391-402", PUBLISHER = "Springer-Verlag"} @INPROCEEDINGS{Abbott:87a, AUTHOR = "J. A. Abbott", TITLE = "Integration: Solving the {Risch} Differential Equation", BOOKTITLE = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", YEAR = 1987, VOLUME = 378, PAGES = "465-467", PUBLISHER = "Springer-Verlag"} @PHDTHESIS{Abbott:88, AUTHOR = "J. A. Abbott", TITLE = "Factorisation of Polynomials over Algebraic Number Fields", SCHOOL = "Univ. of Bath, England", YEAR = 1988} @ARTICLE{Abbott:88a, AUTHOR = "J. A. Abbott and J. H. Davenport", TITLE = "A Remark on a Paper by {Wang}: Another Surprising Property of 42", JOURNAL = "Math. Comp.", YEAR = 1988, VOLUME = 51, PAGES = "837-839"} @INPROCEEDINGS{Abbott:89, AUTHOR = "J. A. Abbott", TITLE = "Recovery of Algebraic Numbers from their p-Adic Approximations", BOOKTITLE = "Proc. of {ISSAC} '89", PUBLISHER = "{ACM} Press, New York", YEAR = 1989, PAGES = "112-120"} @TECHREPORT{Abbott:89a, AUTHOR = "J. A. Abbott and R. J. Bradford and J. H. Davenport", TITLE = "A Remark on the Multiplication of Sparse Polynomials", NUMBER = "TR 89-21", YEAR = 1989, INSTITUTION = "School of Mathematical Sciences, University of Bath"} @INPROCEEDINGS{Abdali:88, AUTHOR = "S. K. Abdali and D. S. Wise", TITLE = "Experiments with Quadtree Representation of Matrices", BOOKTITLE = "Proc. of {ISSAC} '88", PUBLISHER = "Springer-Verlag", YEAR = 1988, VOLUME = 358, PAGES = "96-108"} @ARTICLE{Abiezzi:83, AUTHOR = "Salim S. {Abi-Ezzi}", TITLE = "Clarification to the Symbolic Mode in {REDUCE}", JOURNAL = "{SIGSAM} Bulletin", YEAR = 1983, VOLUME = 17, NUMBER = "3 and 4", PAGES = "43-47", MONTH = "August and November"} @ARTICLE{Adams:83, AUTHOR = "K. J. Adams", TITLE = "Analytic Estimates for the Dynamic Aperture of Nonlinear Lattices", JOURNAL = "IEEE Trans. Nucl. Sci.", YEAR = 1983, VOLUME = "NS-30", PAGES = "2436-2438"} %"For an accelerator lattice..." REDUCE was used to obtain low order %coefficients in the calculation of the amplitude. @ARTICLE{Adkins:83, AUTHOR = "G. S. Adkins", TITLE = "Analytic Evaluation of an {O}($\alpha$) Vertex Correction to the Rate of Orthopositronium", JOURNAL = "Phys. Rev. A", YEAR = 1983, VOLUME = 27, PAGES = "530-532", ABSTRACT = {The order-$\alpha$ correction to the lowest order orthopositronium decay rate due to the two outer-vertex graphs obtained in analytic form.}} @ARTICLE{Adkins:83a, AUTHOR = "G. S. Adkins and F. R. Brown", TITLE = "Rate for Positronium Decay to Five Photons", JOURNAL = "Phys. Rev. A", YEAR = 1983, VOLUME = 28, PAGES = "1164-1165", ABSTRACT = {{REDUCE} used to calculate trace of $\gamma$ matrices. Large calculation.}} @ARTICLE{Adkins:85, AUTHOR = "G. S. Adkins", TITLE = "Inner-Vertex Contributions to the Decay Rate of Orthopositronium", JOURNAL = "Phys. Rev. A", YEAR = 1985, VOLUME = 31, PAGES = "1250-1252", ABSTRACT = {{REDUCE} trace calculations. "In this paper the order-$\alpha$ contribution to the inner-vertex graphs to the decay rate of orthopositronium is obtained in analytic form."}} @ARTICLE{Aguilera-Navarro:87, AUTHOR = "V. C. Aguilera-Navarro and R. Guardiola and C. Keller and M. de Llano and M. Popovic and M. Fortes", TITLE = "Van der {Waals} Perturbation Theory for Fermion and Boson Ground-State Matter", JOURNAL = "Phys. Rev. A", YEAR = 1987, VOLUME = 35, PAGES = "563-584"} %Uses computer algebra to rearrange ideal-gas-based low-density %expansions; to them REDUCE or MACSYMA provide just the expertise they %require to substitute forms into equations, and so makes their %formulation possible. @ARTICLE{Aldins:69, AUTHOR = "J. Aldins and S. J. Brodsky and A. J. Dufner and T. Kinoshita", TITLE = "Photon-Photon Scattering Contribution to the Sixth Order Magnetic Moments of the Muon and Electron", JOURNAL = "Phys. Rev. Lett.", YEAR = 1969, VOLUME = 23, PAGES = "441-443"} @TECHREPORT{Alekseev:86, AUTHOR = "A. I. Alekseev and V. F. Edneral", TITLE = "Tensor Structure of Axial Gauge Polarization Operator in the Infrared Region", INSTITUTION = "IHEP", YEAR = 1986, TYPE = "Preprint", NUMBER = "86-46"} @ARTICLE{Alekseev:87, AUTHOR = "A. I. Alekseev and V. F. Edneral", TITLE = "Tensor Structure of Gluon Polarization Operator in the Axial Gauge for Infra-Red Region", JOURNAL = "Journal of Nuclear Physics", YEAR = 1987, PAGES = "1105-1114"} @TECHREPORT{Alekseev:87a, AUTHOR = "A. I. Alekseev and V. F. Edneral", TITLE = "On Evaluation of {Feynman} Integrals in Axial Gauge", INSTITUTION = "IHEP", YEAR = 1987, TYPE = "Preprint", NUMBER = "87-118"} %The recurrent algorithm for axial gauge calculations of %one-loop massless {Feynman} integrals in the n-dimensional %momentum space is described. The algorithm we suggest is %realized on the basis of REDUCE system and presented as %a procedure. It is rather effective for cumbersome %combinations of those integrals. @ARTICLE{Alfeld:82, AUTHOR = "P. Alfeld", TITLE = "Fixed Point Iteration with Inexact Function Values", JOURNAL = "Math. Comp.", YEAR = 1982, VOLUME = 38, PAGES = "87-98"} %Numerical analysis generating an improved iterative scheme. "The %technical manipulations in this paper were carried out using the %symbol manipulation language REDUCE." @TECHREPORT{Amirkhanov:87, AUTHOR = "I. V. Amirkhanov and E. P. Zhydkov and I. E. Zhydkova", TITLE = "The Conditions of Bounding of the Oscillation Amplitudes of Charge Particle within the Resonance Vicinity Investigations", INSTITUTION = "J.I.N.R., Dubna", YEAR = 1987, NUMBER = "P11-87-452"} @ARTICLE{Antweiler:89, AUTHOR = "Werner Antweiler and Andreas Strotmann and Volker Winkelmann", TITLE = "A {\TeX-{REDUCE}-Interface}", JOURNAL = "SIGSAM Bulletin", YEAR = 1989, VOLUME = 23, MONTH = "February", PAGES = "26-33"} @ARTICLE{Appelquist:70, AUTHOR = "T. W. Appelquist and S. J. Brodsky", TITLE = "The Order $\alpha^{2}$ Electrodynamic Corrections to the {Lamb} Shift", JOURNAL = "Phys. Rev. Letters", YEAR = 1970, VOLUME = 24, PAGES = "562-565"} @TECHREPORT{Arbuzov:86, AUTHOR = "B. A. Arbuzov and E. E. Boos and A. I. Davydychev", TITLE = "Infrared Asymptotics of Gluonic {Green} Functions in Covariant Gauge", INSTITUTION = "IHEP", YEAR = 1986, TYPE = "Preprint", NUMBER = "86-123"} @ARTICLE{Aso:81, AUTHOR = "T. Aso and T. Nonoyama and S. Kato", TITLE = "Numerical Simulation of Semidiurnal Atmospheric Tides", JOURNAL = "J. Geophysical R.", YEAR = 1981, VOLUME = 86, NUMBER = 11, PAGES = "388-400"} %"Numerical modeling of the solar and lunar semidiurnal atmospheric %tides has been performed by invoking a comprehensive approach that %includes both algebraic manipluation and numerical solution of the %primitive equation system." Used REDUCE to overcome difficulties of %complication and error. @ARTICLE{Atherton:73, AUTHOR = "R. W. Atherton and G. M. Homsey", TITLE = "Use of Symbolic Computation to Generate Evolution Equations and Asymptotic Solutions to Elliptic Equations", JOURNAL = "Journ. Comp. Phys.", YEAR = 1973, VOLUME = 1, PAGES = "45-59"} @ARTICLE{Aurenche:84, AUTHOR = "P. Aurenche and A. Douir and R. Baier and M. Fontannaz and D. Schiff", TITLE = "Photoproduction of Hadrons at Large Transverse Momentum in Second Order {QCD}", JOURNAL = "Phys. Lett.", YEAR = 1984, VOLUME = "135B", PAGES = "164-168"} % Uses REDUCE and SCHOONSCHIP in the extension of calculations to a %higher order to keep pace with experimental results. @ARTICLE{Aurenche:84a, AUTHOR = "P. Aurenche and A. Douir and R. Baier and M. Fontannaz and D. Schiff", TITLE = "Prompt Photon Production at Large $p_{\tau}$ in {GCD} Beyond the Leading Order", JOURNAL = "Phys. Lett.", YEAR = 1984, VOLUME = "140B", PAGES = "87-92"} %Uses REDUCE and SCHOONSCHIP. @ARTICLE{Autin:89, AUTHOR = "B. Autin and J. Bengtsson", TITLE = "Symbolic Evaluation of Integrals Occurring in Accelerator Orbit Theory", JOURNAL = "J. Symbolic Computation", YEAR = 1989, VOLUME = 7, NUMBER = 2, PAGES = "183-187", MONTH = "February"} @ARTICLE{Baekler:84, AUTHOR = "P. Baekler and F. W. Hehl", TITLE = "A Charged {Taub-NUT} Metric with Torsion: A New Axially Symmetric Solution of the {Poincar\'{e}} Gauge Field Theory", JOURNAL = "Phys. Lett.", YEAR = 1984, VOLUME = "100A", PAGES = "277-316"} @TECHREPORT{Baekler:84a, AUTHOR = "Peter Baekler and Friedrich W. Hehl", TITLE = "On the Dynamics of the Torsion of Spacetime: Exact Solutions in a Gauge Theoretical Model of Gravity", INSTITUTION = "Department of Physics, University of California, Los Angeles", YEAR = 1984, NUMBER = "UCLA/84/TEP/19", PAGE = "18", MONTH = "December"} @INPROCEEDINGS{Baekler:86, AUTHOR = "P. Baekler and F. W. Hehl and E. W. Mielke", TITLE = "Nonmetricity and Torsion: Facts and Fancies in Gauge Approaches to Gravity", EDITOR = "R. Ruffini", BOOKTITLE = "Proc. 4th Marcel Grossmann Meeting on General Relativity, ed.", PUBLISHER = "North-Holland, Amsterdam", YEAR = 1986, PAGES = "277-316"} @ARTICLE{Baekler:87, AUTHOR = "P. Baekler and R. Hecht and F. W. Hehl and T. Shirafuji", TITLE = "Mass and Spin of Exact Solutions of the {Poincar\'{e}} Gauge Theory", JOURNAL = "Prog. Theor. Phys.", YEAR = 1987, VOLUME = 78, PAGES = "16-21"} @ARTICLE{Baekler:87a, AUTHOR = "P. Baekler and M. Guerses", TITLE = "Exact Solutions of the {Poincar\'{e}} Gauge Theory from Its Linearized Field Equations", JOURNAL = "Lett. Math. Phys.", YEAR = 1987, VOLUME = 14, PAGES = "185-191"} @ARTICLE{Baekler:87b, AUTHOR = "P. Baekler and E. W. Mielke and F. W. Hehl", TITLE = "Kinky Torsion in a {Poincar\'{e}} Gauge Model of Gravity Coupled to a Massless Scalar Field", JOURNAL = "Nuclear Phys.", YEAR = 1987, VOLUME = "B288", PAGES = "800-812"} @ARTICLE{Baekler:88, AUTHOR = "P. Baekler and M. Seitz and V. Winkelmann", TITLE = "Cyclindrically Symmetric Solutions of Self-Consistently Coupled {Dirac} Fields in Gauge Theories of Gravity", JOURNAL = "Class. Quantum Grav.", YEAR = 1988, VOLUME = 5, PAGES = "479-490"} @ARTICLE{Baekler:88a, AUTHOR = "P. Baekler and M. Guerses and F. W. Hehl and J. D. McCrea", TITLE = "The Exterior Gravitational Field of a Charged Spinning Source in the {Poincar\'{e}} Gauge Theory: A {Kerr-Newman} Metric with Dynamic Torsion", JOURNAL = "Phys. Lett.", YEAR = 1988, VOLUME = "A128", PAGES = "245-250"} @ARTICLE{Baekler:88b, AUTHOR = "P. Baekler and M. Guerses and F. W. Hehl", TITLE = "A New Method to Solve the Field Equations of {Poincar\'{e}} Gauge Theories", JOURNAL = "Class. Quantum Grav.", YEAR = 1988} @TECHREPORT{Bajla:78, AUTHOR = "I. Bajla and G. A. Ososkov and A. C. Hearn", TITLE = "The Orthogonalization Program of Polynomials in Two Variables in {REDUCE}-2 Language", INSTITUTION = "J.I.N.R., Dubna", YEAR = 1978, TYPE = "Report", NUMBER = "P10-11944"} %The analytical algorithm for constructing orthogonal %polynomials in two variables, based on the Gram-Schmidt %orthogonalization method, is proposed. @INPROCEEDINGS{Balian:78, AUTHOR = "R. Balian and G. Parisi and A. Voros", TITLE = "Quartic Oscillator", YEAR = 1978, MONTH = "May", BOOKTITLE = "Proc. of the Colloq. on Mathematical Problems in {Feynman} Path Integrals, Marseille"} %On the example of the semi-classical expansion for the levels %of the quartic oscillator -(d**2/dq**2)+q**4, we show how the %complex WKB method provides information about the %singularities of the Borel transform of the semi-classical %series. @ARTICLE{Baker:81, AUTHOR = "G. A. Baker and L. P. Benofy and M. Fortes and M. de Llano and S. M. Peltier and A. Plastino", TITLE = "Hard-Core Square-Well Fermion", JOURNAL = "Phys. Rev. A", YEAR = 1982, VOLUME = 26, PAGES = "3575-3588"} %The mixed use of FORTRAN and REDUCE, various derivative were calculated %algebraically, but the double series was evaluated numerically. @ARTICLE{Bark:78, AUTHOR = "Fritz H. Bark and Herman Tinoco", TITLE = "Stability of Plane {Poiseuille} Flow of a Dilute Suspension of Slender Fibres", JOURNAL = "J. Fluid Mech.", YEAR = 1978, VOLUME = 87, PAGES = "321-333"} %The linear hydrodynamic stability problem for plane Poiseuille %flow of a dilute suspension of rigid fibers is solved %numerically. The constitutive equation given by Batchelor %is used to model the rheological properties of the suspension. %The resulting eigenvalue problem is shown to be singular. @ARTICLE{Barthes-Biesel:73, AUTHOR = "D. Barthes-Biesel and A. Acrivos", TITLE = "On Computer Generated Analytic Solutions to the Equations of Fluid Mechanics, The Case of Creeping Flows", JOURNAL = "Journ. Comp. Phys.", YEAR = 1973, VOLUME = 3, PAGES = "403-411"} @ARTICLE{Barton:72, AUTHOR = "David Barton and Anthony C. Hearn", TITLE = "Comment on Problem \#2 - The {Y(2n)} Functions", JOURNAL = "SIGSAM Bulletin", YEAR = 1972, VOLUME = 15} %A compact program for the solution of SIGSAM Problem \#2 %is presented. @ARTICLE{Bateman:86, AUTHOR = "G. Bateman and R. G. Storer", TITLE = "Direct Determination of Axisymmetric Magnetohydrodynamic Equilibrium in {Hamada} Coordinates", JOURNAL = "Journ. Comp. Phys.", YEAR = 1986, VOLUME = 64, PAGES = "161-176"} %Plasma. "REDUCE was used to analyse the general set of equations %for large numbers of Fourier harmonics ...." @TECHREPORT{Bennett, AUTHOR = "J. P. Bennett and J. H. Davenport and H. M. Sauro", TITLE = "Solution of Some Equations in Biochemistry", INSTITUTION = "School of Mathematical Sciences, University of Bath, England", NUMBER = "88-12"} @ARTICLE{Berends:81, AUTHOR = "A. Berends and R. Kleiss and P. de Causmaecher and T. T. Wu", TITLE = "Single Bremsstrahlung Process in Gauge Theories", JOURNAL = "Phys. Lett.", YEAR = 1981, VOLUME = "103B", PAGES = "124-128"} %Used REDUCE to calculate 25 {Feynman} diagrams to produce theoretical %results which could be checked against experiment. @TECHREPORT{Berkovich:89, AUTHOR = "L.M. Berkovich and V.P. Gerdt and Z.T. Kostova and M.L. Nechaevsky", TITLE = "Second Order Reducible Linear Differential Equations", INSTITUTION = "J.I.N.R., Dubna", YEAR = 1989, TYPE = "Preprint", NUMBER = "E5-89-141"} @ARTICLE{Berman:63, AUTHOR = "S. M. Berman and Y. S. Tsai", TITLE = "Intermediate Boson Pair Production as a Means for Determining its Magnetic Moment", JOURNAL = "Phys. Rev. Lett.", YEAR = 1963, VOLUME = 11, PAGES = "483-487"} @ARTICLE{Bessis:85, AUTHOR = "N. Bessis and G. Bessis and D. Roux", TITLE = "Closed-Form Expressions for the {Dirac-Coulomb} Radial $r^{t}$ Integrals", JOURNAL = "Phys. Rev. A", YEAR = 1985, VOLUME = 32, PAGES = "2044-2050"} %No direct algebraic manipluation, but the formula is stated to be %well suited to evaluation by REDUCE or MACSYMA, and this is an %advantage of their formula. @TECHREPORT{Billoire:78, AUTHOR = "A. Billoire and R. Lacaze and A. Morel and H. Navelet", TITLE = "The {OZI} Rule Violating Radiative Decays of the Heavy Pseudoscalars", INSTITUTION = "{CEN}-Saclay", YEAR = 1978, TYPE = "Report", NUMBER = "DpH-T 43/78"} %Submitted to Phys. Letters B. %In lowest order QCD the rates for radiative transitions violating the OZI %rule of heavy pseudoscalars are found to be extremely small. @ARTICLE{Biro:86, AUTHOR = "T. S. Biro and J. Zimanyi and M. Zimanyi", TITLE = "Hadrochemistry in Relativistic Mean Fields", JOURNAL = "Physics Letters", YEAR = 1986, VOLUME = "167B", NUMBER = 3, PAGES = "271-276", MONTH = "February"} @ARTICLE{Biro:87, AUTHOR = "T. S. Biro and K. Niita and A. L. de Paoli and W. Bauer and W. Cassing and U. Mosel", TITLE = "Microscopic Theory of Photon Production in Proton-Nucleus and Nucleus-Nucleus Collisions", JOURNAL = "Nuclear Physics", YEAR = 1987, VOLUME = "475A", PAGES = "579-597", MONTH = "December"} MONTH = "December"} @TECHREPORT{Birrell:77, AUTHOR = "N. D. Birrell", TITLE = "The Application of Adiabatic Regularization to Calculations of Cosmological Interest", INSTITUTION = "Dept. Math, King's College, London", YEAR = 1977} @ARTICLE{Biswas:75, AUTHOR = "S. N. Biswas and S. R. Chaudhuri and K. S. Taank and J. A. Campbell", TITLE = "Neutrino Production in Stellar Matter by Photons in a Renormalizable Scalar-Boson-Exchange Model of Weak Interactions", JOURNAL = "Phys. Rev. D", YEAR = 1975, VOLUME = 8, PAGES = "2523-2525"} @TECHREPORT{Bittencourt:90, AUTHOR = "Guilherme Bittencourt and Jacques Calmet", TITLE = "Integrating Computer Algebra and Knowledge Representation", INSTITUTION = "{Universit\"{a}t} Karlsruhe Institut {f\"{u}r} Algorithmen und Kognitive Systeme", YEAR = 1990, TYPE = "Preprint"} @ARTICLE{Boege:86, AUTHOR = "W. Boege and R. Gebauer and H. Kredel", TITLE = "Some Examples for Solving Systems of Algebraic Equations by Calculating {Groebner} Bases", JOURNAL = "J. Symbolic Computation", YEAR = 1986, VOLUME = 2, NUMBER = 1, PAGES = "83-98", MONTH = "March"} @ARTICLE{Bogdanova:88, AUTHOR = "N. Bogdanova and H. Hogreve", TITLE = "A {REDUCE} Package for Exact {Coulomb} Interaction Matrix Elements", JOURNAL = "Comp. Phys. Commun.", YEAR = 1988, VOLUME = 48, NUMBER = 2, PAGES = "319-326", MONTH = "February"} @ARTICLE{Bordoni:81, AUTHOR = "Luciana Bordoni and Attilio Colagrossi", TITLE = "An Application of {REDUCE} to Industrial Mechanics", JOURNAL = "{SIGSAM} Bulletin", YEAR = 1981, VOLUME = 15, NUMBER = 2, PAGES = "8-12", MONTH = "May"} @INPROCEEDINGS{Bowyer:87, AUTHOR = "A. Bowyer and J. H. Davenport and P. S. Milne and J. A. Padget and A. F. Wallis", TITLE = "Applications of Computer Algebra in Solid Modelling", BOOKTITLE = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", YEAR = 1987, VOLUME = 378, PAGES = "244-245", PUBLISHER = "Springer-Verlag"} @TECHREPORT{Boyd:78, AUTHOR = "John P. Boyd", TITLE = "The Effects of Latitudinal Shear on Equatorial Waves, Part {I}: Theory and Methods", INSTITUTION = "Dept. of Atmos. and Oceanic Science, Univ. of Michigan", YEAR = 1978, TYPE = "Preprint", MONTH = "January"} %To be published in Journal of The Atmospheric Sciences. %By using the method of multiple scales in height and a %variety of methods in latitude, analytic solutions for %equatorial waves in combined vertical and horizontal shear %are derived. @INPROCEEDINGS{Brackx:87, AUTHOR = "F. Brackx and H. Serras", TITLE = "Boundary Value Problems for the {Laplacian} in {Euclidean} Space Solved by Symbolic Computation", BOOKTITLE = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", YEAR = 1987, VOLUME = 378, PAGES = "208-215", PUBLISHER = "Springer-Verlag"} @ARTICLE{Brackx:87a, AUTHOR = "F. Brackx and D. Constales and R. Delanghe and H. Serras", TITLE = "{Clifford} Algebra with {REDUCE}", JOURNAL = "Rend. Circ. Mat. Palermo, Ser. II", YEAR = 1987, VOLUME = 16, PAGES = "11-19"} @ARTICLE{Brackx:89, AUTHOR = "F. Brackx and D. Constales and A. Ronveaux and H. Serras", TITLE = "On the Harmonic and Monogenic Decomposition of Polynomials", JOURNAL = "J. Symbolic Computation", YEAR = 1989, VOLUME = 8, NUMBER = 3, PAGES = "297-304", MONTH = "September"} @INPROCEEDINGS{Bradford:86, AUTHOR = "R. J. Bradford and A. C. Hearn and J. A. Padget and E. {Schr\"{u}fer}", TITLE = "Enlarging the {REDUCE} Domain of Computation", BOOKTITLE = "Proc. of {SYMSAC} '86", YEAR = 1986, PAGES = "100-106"} @INPROCEEDINGS{Bradford:88, AUTHOR = "R. J. Bradford and J. H. Davenport", TITLE = "Effective Tests for Cyclotomic Polynomials", BOOKTITLE = "Proc. of {ISSAC} '88", PUBLISHER = "Springer-Verlag", YEAR = 1988, VOLUME = 358, PAGES = "244-251"} @ARTICLE{Broadhurst:85, AUTHOR = "D. J. Broadhurst", TITLE = "Evaluation of a Class of {Feynman} Diagrams for all Numbers of Loops and Dimensions", JOURNAL = "Phys. Lett. B", YEAR = "1985", VOLUME = "164", PAGES = "356-360"} %Uses REDUCE to calculate explicitely the l-loop member of a class of %massless, dimensionally regularized {Feynman} diagrams, in order to verify %an explicit formula. @ARTICLE{Brodsky:62, AUTHOR = "S. J. Brodsky and A. C. Hearn and R. G. Parsons", TITLE = "Determination of the Real Part of the {Compton} Amplitude at a Nucleon Resonance", JOURNAL = "Phys. Rev.", YEAR = 1962, VOLUME = 187, PAGES = "1899-1904"} @ARTICLE{Brodsky:67, AUTHOR = "S. J. Brodsky and J. D. Sullivan", TITLE = "W-Boson Contribution to the Anomalous Magnetic Moment of the Muon", JOURNAL = "Phys. Rev.", YEAR = 1967, VOLUME = 156, PAGES = "1644-1647"} @INPROCEEDINGS{Brodsky:69, AUTHOR = "S. J. Brodsky", TITLE = "Status of Quantum Electrodynamics", YEAR = 1969, BOOKTITLE = "Proc. International Symposium on Electron and Photon Interactions at High Energies, Liverpool, England"} @TECHREPORT{Brodsky:70, AUTHOR = "S. J. Brodsky", TITLE = "Quantum Electrodynamic Theory: Its Relation to Precision Low Energy Experiments", INSTITUTION = "SLAC", YEAR = 1970, TYPE = "Report", NUMBER = "SLAC-PUB-795", MONTH = "August"} %Stanford Linear Accelerator Center Report. @INPROCEEDINGS{Brodsky:71, AUTHOR = "S. J. Brodsky", TITLE = "Algebraic Computation Techniques in Quantum Electrodynamics", YEAR = 1971, VOLUME = "II", PAGES = "IV-1--IV-27", BOOKTITLE = "Proc. {2nd} Computing Methods in Theoretical Physics, Marseilles"} @TECHREPORT{Brodsky:72, AUTHOR = "S. J. Brodsky", TITLE = "Atomic Physics and Quantum Electrodynamics in the Infinite Momentum Frame", INSTITUTION = "SLAC", YEAR = 1972, TYPE = "Report", NUMBER = "SLAC-PUB-1118", MONTH = "August"} %Presented at the Third International Conference on Atomic Physics. @ARTICLE{Brodsky:72a, AUTHOR = "S. J. Brodsky and J. F. Gunion and R. L. Jaffe", TITLE = "Test for Fractionally Charged Partons from Deep-Inelastic Bremsstrahlung in the Scaling Region", JOURNAL = "Phys. Rev. D", YEAR = 1972, VOLUME = 6, PAGES = "2487-2494"} @ARTICLE{Brodsky:72b, AUTHOR = "S. J. Brodsky and R. Roskies", TITLE = "Quantum Electrodynamics and Renormalization Theory in The Infinite Momentum Frame", JOURNAL = "Phys. Lett.", YEAR = 1972, VOLUME = "41B", PAGES = "517-520"} @ARTICLE{Brodsky:73, AUTHOR = "S. J. Brodsky and R. Roskies and R. Suaya", TITLE = "Quantum Electrodynamics and Renormalization Theory in the Infinite-Momentum Frame", JOURNAL = "Phys. Rev. D", YEAR = 1973, VOLUME = 8, PAGES = "4574-4594"} @ARTICLE{Broughan:82, AUTHOR = "K. A. Broughan", TITLE = "{Grad-Fokker-Planck} Plasma Equations. Part 1. {Collision} Moments", JOURNAL = "J. Plasma Phys.", YEAR = 1982, VOLUME = 27, PAGES = "437-452"} %REDUCE used in collaboration with hand calculation. REDUCE did the %substitutions, with hand integrations. "Thirteen moments are taken of the %collision term in Boltzmann-Fokker-Planck equation....plasma..." @ARTICLE{Brown:79, AUTHOR = "W. S. Brown and A. C. Hearn", TITLE = "Applications of Symbolic Algebraic Computation", JOURNAL = "Comp. Phys. Comm.", YEAR = 1979, VOLUME = 17, PAGES = "207-215"} %This paper is a survey of applications of systems for symbolic %algebraic computation. @ARTICLE{Bryan-Jones:87, AUTHOR = "Jane Bryan-Jones", TITLE = "A Tutorial in Computer Algebra for Statisticians", JOURNAL = "The Professional Statistician", YEAR = 1987, VOLUME = 6, NUMBER = 6, MONTH = "December",PAGES = "TBD"} @TECHREPORT{Calmet:72, AUTHOR = "Jacques Calmet", TITLE = "Further Evaluation of the Sixth Order Corrections to the Anomalous Magnetic Moment of the Electron", INSTITUTION = "Department of Physics, University of Utah", YEAR = 1972} %We report on the contributions to the $\alpha^{3}$ %part of the anomalous magnetic moment of the electron from the %seven so-called cross and ladder diagrams. @ARTICLE{Calmet:72a, AUTHOR = "Jacques Calmet", TITLE = "A {REDUCE} Approach to the Calculation of {Feynman} Diagrams", JOURNAL = "Comp. Phys. Comm.", YEAR = 1972, VOLUME = 4, PAGES = "199-204"} %A brief survey of two existing REDUCE programs (by Campbell-Hearn %and by Calmet) dealing with algebraic computation of {Feynman} diagrams is %given. Work in progress on a more general approach to this problem %is discussed. @ARTICLE{Calmet:74, AUTHOR = "Jacques Calmet", TITLE = "Computer Recognition of Divergences in {Feynman} Graphs", JOURNAL = "SIGSAM Bulletin", YEAR = 1974, VOLUME = 8, NUMBER = 3, PAGES = "74-75", MONTH = "August"} %A description of a program for the recognition of divergences %in {Feynman} graphs is given. @INCOLLECTION{Calmet:83, AUTHOR = "J. Calmet and J. A. van Hulzen", TITLE = "Computer Algebra Applications", EDITOR = "B. Buchberger and G. E. Collins and R. Loos and R. Albrecht", BOOKTITLE = "Computer Algebra Symbolic and Algebraic Computation", EDITION = "2nd", PUBLISHER = "Springer-Verlag", YEAR = 1983} @ARTICLE{Campbell:67, AUTHOR = "J. A. Campbell", TITLE = "Algebraic Computation of Radiative Corrections for Electron-Positron Scattering", JOURNAL = "Nucl. Phys.", YEAR = 1967, VOLUME = "B1", PAGES = "283-300"} @ARTICLE{Campbell:68, AUTHOR = "J. A. Campbell", TITLE = "Astrophysical Consequences of the Existence of Charged Intermediate Vector Bosons", JOURNAL = "Aust. Journ. of Phys.", YEAR = 1968, VOLUME = 21, PAGES = "139-148"} @ARTICLE{Campbell:70, AUTHOR = "J. A. Campbell and A. C. Hearn", TITLE = "Symbolic Analysis of {Feynman} Diagrams by Computer", JOURNAL = "Journ. of Comp. Phys.", YEAR = 1970, VOLUME = 5, PAGES = "280-327"} @ARTICLE{Campbell:70a, AUTHOR = "J. A. Campbell and R. B. Clark and D. Horn", TITLE = "Low-T Theorems for Charged-Pion Photoproduction", JOURNAL = "Phys. Rev. D", YEAR = 1970, VOLUME = 2, PAGES = "217-224"} @ARTICLE{Campbell:74, AUTHOR = "J. A. Campbell", TITLE = "Symbolic Computing and Its Relationship to Particle Physics", JOURNAL = "Acta Physica Austriaca", YEAR = 1974, VOLUME = "XIII", PAGES = "595-647"} @ARTICLE{Campbell:87, AUTHOR = "J. A. Campbell and P. O. {Fr\"{o}man} and E. Walles", TITLE = "Explicit series formulae for the evaluation of integrals by the method of steepest descents", JOURNAL = "Studies in Applied Mathematics", YEAR = 1987, VOLUME = 77, PAGES = "151-172"} @TECHREPORT{Caprasse:84, AUTHOR = "H. Caprasse", TITLE = "Description et Utilisation d'Une Extension du Programme {REDUCE}", INSTITUTION = "Physique Th\'{e}orique et Math\'{e}matique, Universit\'{e} de Li\`{e}ge", YEAR = 1984, MONTH = "October"} @ARTICLE{Caprasse:85, AUTHOR = "H. Caprasse and M. Hans", TITLE = "A New Use of Operators in the Algebraic Mode of {REDUCE}", JOURNAL = "{SIGSAM} Bulletin", YEAR = 1985, VOLUME = 19, NUMBER = 3, PAGES = "46-52", MONTH = "August"} @ARTICLE{Caprasse:86, AUTHOR = "H. Caprasse", TITLE = "Description of an Extension of the Matrix Package of {REDUCE}", JOURNAL = "{SIGSAM} Bulletin", YEAR = 1986, VOLUME = 20, NUMBER = 4, PAGES = "7-10", MONTH = "December"} @ARTICLE{Caprasse:86a, AUTHOR = "H. Caprasse", TITLE = "A Complete Simplification Package for the Absolute Value Function in {REDUCE}", JOURNAL = "{SIGSAM} Bulletin", YEAR = 1986, VOLUME = 20, NUMBER = "1 and 2", PAGES = "18-21", MONTH = "February and May"} %Implementation for REDUCE 3.2 of the function "ABS". @INPROCEEDINGS{Caprasse:88, AUTHOR = "H. Caprasse and J. Demaret and E. Schruefer", TITLE = "Can {EXCALC} be Used to Investigate {High-dimensional} Cosmological Models with {Non-Linear Lagrangians}", BOOKTITLE = "Proc. of {ISSAC} '88", PUBLISHER = "Springer-Verlag", YEAR = 1988, PAGES = "116-124"} @ARTICLE{Caprasse:90, AUTHOR = "H. Caprasse", TITLE = "Renormalization Group, Function Iterations and Computer Algebra", JOURNAL = "J. Symbolic Computation", YEAR = 1990, VOLUME = 9, NUMBER = 1, PAGES = "61-72", MONTH = "January"} %Based on a renormalization group equation met in Quantum Field Theory, %Continuous Iterations of a large class of functions are computed using %REDUCE. @ARTICLE{Caprasse:89a, AUTHOR = "H. Caprasse", TITLE = "Les Th\'{e}ories des {Champs} dans le monde de {REDUCE} (in French)", JOURNAL = "{CALSYF} (to appear)", YEAR = 1989} @ARTICLE{Carlson:80, AUTHOR = "P. Carlson", TITLE = "Coordinate Free Relativity", JOURNAL = "J. Math. Phys.", YEAR = 1980, VOLUME = 21, PAGES = "1149-1154"} %REDUCE programs for tetrad formulation of GR. @PHDTHESIS{Carroll:73, AUTHOR = "R. Carroll", TITLE = "The Anomalous Magnetic Moment of the Electron in the Mass Operator Formalism", SCHOOL = "University of Michigan", YEAR = 1973} @ARTICLE{Carroll:75, AUTHOR = "R. Carroll", TITLE = "Mass-Operator Calculation of the Electron g-Factor", JOURNAL = "Phys. Rev. D", YEAR = 1975, VOLUME = 8, PAGES = "2344-2354"} @TECHREPORT{Cejchan, AUTHOR = "A. Cejchan and J. Nadrchal", TITLE = "Application of {REDUCE}-2 and Analytic Integration Program in the Theoretical Solid State Physics", INSTITUTION = "Institute of Physics, CSAV, Prague"} @INPROCEEDINGS{Chaffy:88, AUTHOR = "C. Chaffy-Camus", TITLE = "An Application of {REDUCE} to the Approximation of {f(x,y)}", BOOKTITLE = "Proc. of {ISSAC} '88", PUBLISHER = "Springer-Verlag", YEAR = 1988, VOLUME = 358, PAGES = "73-84"} @ARTICLE{Chinnick:86, AUTHOR = "K. Chinnick and C. Gibson and J. F. Griffiths and W. Kordylewski", TITLE = "Isothermal Interpretations of Oscillatory Ignition During Hydrogen Oxidation in an Open System. {I}. {Analytical} Predictions and Experimental Measurements of Periodicity", JOURNAL = "Proc. Royal Soc. Lond.", YEAR = 1986, VOLUME = "A405", PAGES = "117-128"} %Used REDUCE to solve Jacobian, but answer too complicated to be of any use. @ARTICLE{Cline:90, AUTHOR = "Terry Cline and Harold Abelson and Warren Harris", TITLE = "Symbolic Computing in Engineering Design", JOURNAL = "AI EDAM", YEAR = 1990, MONTH = "February"} @TECHREPORT{Cohen:76, AUTHOR = "H. I. Cohen and O. Leringe and Y. Sundblad", TITLE = "The Use of Algebraic Computing in General Relativity", INSTITUTION = "The Royal Institute of Technology Department of Mechanics", YEAR = 1976, NUMBER = "TRITA-MEK-76-02"} @TECHREPORT{Cohen:76a, AUTHOR = "I. Cohen and F. Bark", TITLE = "Perturbation Calculations for the Spin Up Problem Using {REDUCE}", INSTITUTION = "The Royal Institute of Technology, Department of Mechanics", YEAR = 1976, NUMBER = "TRITA-MEK-76-03"} @TECHREPORT{Cohen:77, AUTHOR = "I. Cohen and S. Yu. Slavyanov", TITLE = "Smooth Perturbations of the {Schr\"{o}dinger} Equation with a Linear Potential Related to the Charmonium Models", INSTITUTION = "University of Stockholm Institute of Physics", YEAR = 1977, TYPE = "USIP Report", NUMBER = "77-17"} @ARTICLE{Cohen:79, AUTHOR = "J. P. Fitch and H. I. Cohen", TITLE = "Using {CAMAL} for Algebraic Calculations in General Relativity", JOURNAL = "General Relativity and Gravitation", VOLUME = 11, YEAR = 1979, PAGES = "411-418"} @ARTICLE{Cohen:84, AUTHOR = "H. I. Cohen and I. B. Frick and J. E. {\AA}man", TITLE = "Algebraic Computing in General Relativity", JOURNAL = "General Relativity and Gravitation, ed.", YEAR = 1984, PAGES = "139-162"} %General relativity review. @INPROCEEDINGS{Cohen:89, AUTHOR = "Joel S. Cohen", TITLE = "The Effective Use of Computer Algebra Systems", YEAR = 1989, PAGES = "677-698", BOOKTITLE = "Transactions of the Sixth Army Conference on Applied Mathematics and Computing"} % Review of author's experience with four computer algebra systems. @ARTICLE{Connor:84, AUTHOR = "J. N. L. Connor and P. R. Curtis and D. Farrelly", TITLE = "The Uniform Asymptotic Swallowtail Approximation: Practical Methods for Oscillating Integrals with Four Coalescing Saddle Points", JOURNAL = "J. Phys. A", YEAR = 1984, VOLUME = 17, PAGES = "283-310"} %Used REDUCE and SCHOONSCHIP for some algebraic manipulations, and then %checked the results with MACSYMA; this is the most distrustful %reference we have found. @ARTICLE{Connor:84a, AUTHOR = "J. N. L. Connor and P. R. Curtis and C. J. Edge and A. Lagan`{a}", TITLE = "The Uniform Asymptotic Swallowtail Approximation: Application to the Collinear $H+F_{2}$", JOURNAL = "J. Chem. Phys.", YEAR = 1984, VOLUME = 80, NUMBER = 3, PAGES = "1362-1363", MONTH = "February"} @ARTICLE{Conwell:84, AUTHOR = "P. R. Conwell and P. W. Barber and C. K. Rushworth", TITLE = "Resonant Spectra of Dielectric Sphere", JOURNAL = "J. Opt. Soc. Am. A", YEAR = 1984, VOLUME = 1, PAGES = "62-67"} %REDUCE used to confirm independently convergence and accuracy of %Numerical Bessel function routine, expanding series by REDUCE and %using bigfloats. Described as slow but worthwhile. @INPROCEEDINGS{Cowan:79, AUTHOR = "Richard M. Cowan and Martin L. Griss", TITLE = "Hashing -- The Key to Rapid Pattern Matching", BOOKTITLE = "Proc. {EUROSAM} 1979, Lecture Notes in Computer Science", YEAR = 1979, VOLUME = 72, PAGES = "266-278", PUBLISHER = "Springer-Verlag"} @ARTICLE{Cung:75, AUTHOR = "V. K. Cung", TITLE = "Differential Cross Section of e+ + e- to e+ + mu- + nubar(mu) + nubar(e)", JOURNAL = "Phys. Lett.", YEAR = 1975, VOLUME = "55B", PAGES = "67-70"} @TECHREPORT{Darbaidze:86, AUTHOR = "Ya. Z. Darbaidze", TITLE = "A Gluon Bremsstrahlung in Supersymmetry {QCD}", INSTITUTION = "JINR", YEAR = 1986, TYPE = "Preprint", NUMBER = "P2-86-825"} @ARTICLE{Darbaidze:86a, AUTHOR = "J. Z. Darbaidze and V. A. Matveev and Z. V. Merebashvili and L. A. Slepchenko", TITLE = "Gluon Bremsstrahlung in Supersymmetric {QCD}", JOURNAL = "Phys. Lett.", YEAR = 1986, VOLUME = "B177", PAGE = "188"} @TECHREPORT{Darbaidze:88, AUTHOR = "Ya. Z. Darbaidze and Z.V. Merebashvili and V.A. Rostovtsev", TITLE = "Some Computer Realizations of the {REDUCE-3} Calculations for Exclusive Processes", INSTITUTION = "JINR", YEAR = 1988, TYPE = "Preprint", NUMBER = "P2-88-769"} @TECHREPORT{Darbaidze:89, AUTHOR = "Ya. Z. Darbaidze and V.A. Rostovtsev", TITLE = "Analysis of the Differential Equations for the Exclusive Processes and Explanation for the {"Mystery"} of the {Gamma-Distribution}", INSTITUTION = "JINR", YEAR = 1989, TYPE = "Preprint", NUMBER = "E2-89-286"} @INPROCEEDINGS{Dautcourt:79, AUTHOR = "G. Dautcourt", TITLE = "Application of {REDUCE} to Algebraic Computations in General Relativity and Astrophysics", YEAR = 1979, MONTH = "September", BOOKTITLE = "Proc. of the Workshop in Symbolic Computation, Dubna, {U.S.S.R.}"} %Reports the use of the system REDUCE 2 for general relativistic %calculations. @TECHREPORT{Dautcourt:80, AUTHOR = "G. Dautcourt and K. P. Jann", TITLE = "A Program Package in {REDUCE} 2 for Algebraic Computations in General Relativity", YEAR = 1980, INSTITUTION = "Zentralinstitut fuer Astrophysik der Akademie der Wissenschaften"} @ARTICLE{Dautcourt:81, AUTHOR = "G. Dautcourt and K. P. Jann and E. Riemer and M. Riemer", TITLE = "User's Guide to {REDUCE} Subroutines For Algebraic Computations in General Relativity", JOURNAL = "Astron. Nachr.", YEAR = 1981, VOLUME = 302, PAGES = "1-13"} @ARTICLE{Dautcourt:83, AUTHOR = "G. Dautcourt", TITLE = "The Cosmological Problem as an Initial Value Problem on the Observer's Past Light Cone: Geometry", JOURNAL = "J. Phys. A", YEAR = 1983, VOLUME = 16, PAGES = "3507-3528"} %Checked calculations with REDUCE, mainly Riemann tensor in null %coordinates. @ARTICLE{Davenport:81, AUTHOR = "James Harold Davenport", TITLE = "On the Integration of Algebraic Functions", JOURNAL = "Lecture Notes in Computer Science", YEAR = 1981, VOLUME = 102, PAGES = "1-197"} @ARTICLE{Davenport:82, AUTHOR = "James H. Davenport", TITLE = "Fast {REDUCE:} The {trade-off} between efficiency and generality", JOURNAL = "{SIGSAM} Bulletin", YEAR = 1982, VOLUME = 16, NUMBER = 1, PAGES = "8-11", MONTH = "February"} @ARTICLE{Davenport:82a, AUTHOR = "James H. Davenport", TITLE = "What do we want from a {high-level} language?", JOURNAL = "{SIGSAM} Bulletin", YEAR = 1982, VOLUME = 16, NUMBER = 4, PAGES = "6-9", MONTH = "November"} @INPROCEEDINGS{Davenport:85, AUTHOR = "James Davenport and Julian Padget", TITLE = "{HEUGCD:} How Elementary Upperbounds Generate Cheaper Data", BOOKTITLE = "Proc. {EUROCAL} 1985, Lecture Notes in Computer Science", YEAR = 1985, VOLUME = 204, PAGES = "18-28", PUBLISHER = "Springer-Verlag"} @ARTICLE{Davenport:88, AUTHOR = "J. H. Davenport", TITLE = "The World of Computer Algebra", JOURNAL = "New Scientist", YEAR = 1988, MONTH = "September", VOLUME = 1629, PAGES = "71-72"} @BOOK{Davenport:88a, AUTHOR = "J. H. Davenport and Y. Siret and E. Tournier", TITLE = "Computer Algebra, Systems and Algorithms for Algebraic Computation", PUBLISHER = "Academic Press", YEAR = 1988} @TECHREPORT{Della-Dora:81, AUTHOR = "J. Della Dora and E. Tournier", TITLE = "Solutions Formelles {D'Equations} Differentielles au Voisinage de Points Singuliers Reguliers", INSTITUTION = "Centre National de la Recherche Scientifique", YEAR = 1981, TYPE = "Report", NUMBER = 239} @INPROCEEDINGS{Della-Dora:84, AUTHOR = "J. Della Dora and E. Tournier", TITLE = "Homogeneous Linear Difference Equation {(Frobenius-Boole Method)}", BOOKTITLE = "Proc. {EUROSAM} 1984, Lecture Notes in Computer Science", YEAR = 1984, VOLUME = 174, PAGES = "2-12", PUBLISHER = "Springer-Verlag"} @TECHREPORT{Della-Dora:85, AUTHOR = "Jean Della-Dora and Claire Dicrescenzo and Dominique Duval", TITLE = "About a New Method for Computing in Algebraic Number Fields", INSTITUTION = "Universit\'{e} de Grenoble, Institut Fourier, France", YEAR = 1985, MONTH = "November"} @ARTICLE{Demaret:89, AUTHOR = "J. Demaret and H. Caprasse and A. Moussiaux and Ph. Tombal and D. Papadopoulos", TITLE = "{Ten-dimensional Lovelock-type Space-Times}", JOURNAL = "{To appear} Phys. Rev. D", YEAR = 1989, MONTH = "July"} @ARTICLE{DeMenna:87, AUTHOR = "L. De Menna and G. Miano and G. Rubinacci", TITLE = "Volterra's Series Solutions of Free Boundary Plasma Equilibria", JOURNAL = "Phys. Fluids", YEAR = 1987, VOLUME = 30, PAGES = "409-416"} %Magnetohydrodynamics. "We have carried out the computations up to %the fourth order, (the fourth order has been obtained by means of the %symbolic program REDUCE". @ARTICLE{Demichev:85, AUTHOR = "A. P. Demichev and A. Ya. Rodionov", TITLE = "A {REDUCE} Program for the Calculation of Geometrical Characteristics of Compactified Multidimensional {Riemannian} Space", JOURNAL = "Comp. Phys. Comm.", YEAR = 1985, VOLUME = 38, PAGES = "441-448"} %Covariant theories in N dimensional ($N \geq 4$) space-time. %REDUCE programs to calculate Ricci, Einstein and Yang-Mills curvature %and energy-momentum tensor. @TECHREPORT{Demichev:86, AUTHOR = "A. P. Demichev and A. Ya. Rodionov", TITLE = "Freund-{Rubin} Type Solutions for Different Compactifications of the Eleven-Dimensional Space", INSTITUTION = "Institute for High Energy Physics", YEAR = 1986, TYPE = "Preprint", NUMBER = "86-85"} %The results of calculating geometrical characteristics of %seven-dimensional quotient spaces are represented. These %quantities are necessary for the construction of compactifying %solutions of the eleven-dimensional supergravity. @ARTICLE{deRop:88, AUTHOR = "Y. de Rop and J. Demaret", TITLE = "Using {EXCALC} to Study Nondiagonal Multidimensional Spatially Homogeneous Cosmologies", JOURNAL = "Gen. Rel. Grav.", YEAR = 1988, VOLUME = 20, PAGES = "1127-1139"} @TECHREPORT{DeVos:89, AUTHOR = "Alexis De Vos", TITLE = "The use of {Reduce} in solar energy conversion theory", INSTITUTION = "State University of Gent, {CAGe} Computer Algebra Group", YEAR = 1989, TYPE = "Reports of the {CAGe} Project", NUMBER = 4, MONTH = "August"} @INPROCEEDINGS{Dewar:89, AUTHOR = "M. C. Dewar", TITLE = "{IRENA --} An Integrated Symbolic and Numerical Computation Environment", BOOKTITLE = "Proc. of {ISSAC} '89", PUBLISHER = "{ACM} Press, New York", YEAR = 1989, PAGES = "171-179"} @ARTICLE{Dhar:85, AUTHOR = "D. Dhar and J-M. Maillard", TITLE = "Susceptibility of the Checkerboard {Ising} Model", JOURNAL = "J. Phys. A", YEAR = 1985, VOLUME = 18, PAGES = "L383-L388"} %Used REDUCE for tedious algebra, and got a simple answer. Statistical %mechanics(?). "At the disorder variety, the n-point correlation %functions of the checkerboard Potts model has a simple causal %structure. An exact expression for the susceptibility in the Ising %case is obtained." @TECHREPORT{Dicrescenzo:85, AUTHOR = "Claire Dicrescenzo", TITLE = "Algebraic Computation on Algebraic Numbers", INSTITUTION = "Institut Fourier, Laboratoire de Math\'{e}matiques, France", YEAR = 1985, MONTH = "December"} %Examples are given of a new method, implemented on REDUCE, %for computing algebraically on algebraic numbers. @TECHREPORT{Diver, AUTHOR = "D. A. Diver and E. Q. Laing and C. C. Sellar", TITLE = "Waves in a Cold Plasma with a Spatially Rotating Magnetic Field", INSTITUTION = "Department of Physics and Astronomy, University of Glasgow, Plasma Physics Group", TYPE = "Report", NUMBER = "GU TPA 88/12-1"} %"...The algebraic manipulation system REDUCE was used in constructing the %following tensor definitions which allows us to make fewer %approximations than other authors." @INPROCEEDINGS{Diver:86, AUTHOR = "D. A. Diver and E. W. Laing", TITLE = "Proc. 8th {Europhysics} Conference on Computational Physics", YEAR = 1986, BOOKTITLE = "Computing in Plasma Physics"} @INPROCEEDINGS{Diver:88, AUTHOR = "D. A. Diver and E. W. Laing", TITLE = "Proc. {XV} {European} Conference on Controlled Fusion and Plasma Heating", YEAR = 1988} @TECHREPORT{Diver:88a, AUTHOR = "D. A. Diver and E. W. Laing", TITLE = "Alfven Resonance Absorption in a Magnetofluid", YEAR = 1988, TYPE = "Internal Report", NUMBER = "GUTPA 88/04-01", MONTH = "July"} %Presented at 15th UK Plasma Physics Conference, UMIST. @TECHREPORT{Dorfi:85, AUTHOR = "E. A. Dorfi and L. O'C. Drury", TITLE = "Simple Adaptive Grids for {1D} Initial Value Problems", INSTITUTION = "Max-Plack-Institut fuer Kernphysik, Heidelberg, West Germany", YEAR = 1985, NUMBER = "MPI H-1985-V21"} @ARTICLE{Dorizzi:86, AUTHOR = "B. Dorizzi and B. Grammaticos and J. Hietarinta and A. Ramani and F. Schwarz", TITLE = "New integrable three dimensional quartic potentials", JOURNAL = "Phys. Lett.", YEAR = 1986, VOLUME = "116A", PAGES = "432-436"} %REDUCE is used to construct and verify constants of motion. @TECHREPORT{dosSantos:85, AUTHOR = "R. P. dos Santos and P. P. Srivastava", TITLE = "Two-loop Effective Potential for Wess-Zumino Model using Superfields", INSTITUTION = "International Centre for Theoretical Physics", YEAR = 1985, NUMBER = "IC/85/205", MONTH = "October"} %"For the case of several interacting chiral superfields the propagators %for the unconstrained superfield potentials in the 'shifted' theory, %where the supersymmetry is explicity broken, are derived in a compact %form. They are used to compute one-loop effective potential in the %general case, while a superfield calculation of renormalized effective %potential to two loops for the Wess-Zumino model is performed." @ARTICLE{dosSantos:87, AUTHOR = "Renato P. dos Santos", TITLE = "Using {REDUCE} in Supersymmetry", JOURNAL = "J. Symb. Comp.", YEAR = 1989, VOLUME = 7, PAGES = "523-525"} @PHDTHESIS{dosSantos:87a, AUTHOR = "R. P. dos Santos", TITLE = "O M\'{e}todo de Supercampos para o C\'{a}lculo de Potencial Efetivo em Modelos com Supercampos Quirais: Os Modelos de Wess e Zumino e de O'Raifeartaigh", SCHOOL = "Centro Brasileiro de Pesquisas F\'{i}sicas", YEAR = 1987} %(In Portuguese) Using the method of Superfields, the effective %potential for supersymmetric models of Wess-Zumino and of %O'Raifeartaigh is evaluated up to two-loop order. The spontaneous %supersymmetry breaking is discussed. REDUCE plays very important %role in evaluation of the Feynman superdiagrams and in %renormalization. @TECHREPORT{dosSantos:88a, AUTHOR = "Renato P. dos Santos", TITLE = "Introdu\c{c}\~{a}o ao Sistema {REDUCE} de C\'{a}lculo Alg\'{e}brico", INSTITUTION = "CBPF, Rio de Janeiro, Brazil", YEAR = 1988, NUMBER = "CBPF-NT-001/88"} %(In Portuguese) Lecture notes of a course on REDUCE. @ARTICLE{Dubowsky:75, AUTHOR = "S. Dubowsky and J. L. Grant", TITLE = "Application of Symbolic Manipulation to Time Domain Analysis of Nonlinear Dynamic Systems", JOURNAL = "Journ. of Dynamic Systems, Measurement, and Control", YEAR = 1975, NUMBER = "75-Aut-J"} @ARTICLE{Dudley:89, AUTHOR = "M. L. Dudley and R. W. James", TITLE = "{Computer-aided} Derivation of Spherical Harmonic Spectral Equations in Astrogeophyics", JOURNAL = "J. Symbolic Computation", YEAR = 1989, VOLUME = 8, NUMBER = 4, PAGES = "423-427", MONTH = "October"} @ARTICLE{Dufner:69, AUTHOR = "A. M. Dufner and Y. S. Tsai", TITLE = "Phenomenological Analysis of the $\gamma$NN* Form Factors", JOURNAL = "Phys. Rev.", YEAR = 1969, VOLUME = 168, PAGES = "1801-1809"} @INPROCEEDINGS{Dulyan:87, AUTHOR = "L. S. Dulyan", TITLE = "The Calculation of {QCD} Triangular {Feynman} Graphs in the External Gluonic Field Using {REDUCE}-2 System", BOOKTITLE = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", YEAR = 1987, VOLUME = 378, PAGES = "172-173", PUBLISHER = "Springer-Verlag"} @ARTICLE{Duncan:86, AUTHOR = "Anthony Duncan and Ralph Roskies", TITLE = "Representations of Unusual Mathematical Structures in Scientific Applications of Symbolic Computation", JOURNAL = "J. Symbolic Computation", YEAR = 1986, VOLUME = 2, NUMBER = 2, PAGES = "201-206", MONTH = "June"} %We present examples of techniques we have used to apply REDUCE to problems %in particle physics which have mathematical structures unknown to REDUCE. @PHDTHESIS{Duval:87, AUTHOR = "Dominique Duval", TITLE = "Diverses questions relatives au Calcul Formel Avec des Nombres Alg\'{e}briques", SCHOOL = "L'Universit\'{e} Scientifique, Technologique et M\'{e}dicale de Grenoble", YEAR = 1987} @ARTICLE{Earles:70, AUTHOR = "D. Earles", TITLE = "A Measurement of the Electron-Production of Muon Pairs", JOURNAL = "Phys. Rev. Lett.", YEAR = 1970, VOLUME = 25, PAGES = "129-133"} @ARTICLE{Eastwood:87, AUTHOR = "James W. Eastwood", TITLE = "Orthovec: A {REDUCE} Program for {3-D} Vector Analysis in Orthogonal Curvilinear Coordinates", JOURNAL = "Comp. Phys. Commun.", YEAR = 1987, VOLUME = 47, NUMBER = 1, PAGES = "139-147", MONTH = "October"} @TECHREPORT{Edelen:81, AUTHOR = "Dominic G. B. Edelen", TITLE = "Programs for Calculation of Isovector Fields in the {REDUCE}-2 Environment", INSTITUTION = "Center for the Application of Mathematics, Lehigh University", YEAR = 1981, NUMBER = "TBD", MONTH = "August"} @ARTICLE{Edelen:82, AUTHOR = "D. G. B. Edelen", TITLE = "Isovector Fields for Problems in the Mechanics of Solids and Fluids", JOURNAL = "Int. Journ. Eng. Sci.", YEAR = 1982, VOLUME = 20, PAGES = "803-815"} %Prolongation methods as a REDUCE package for this, available from %Center for Applications of Mathematics, Lehigh Univ., Bethlehem, PA %18015. Applications to mechanics of solids and fluids. @BOOK{Edneral:89, AUTHOR = "Viktor F. Edneral and Aleksandr P. Kryukov and Anatolii Ia. Rodionov", TITLE = "The language of the analytic computer program {REDUCE}", PUBLISHER = "Moscow, {Izd-vo}, Moskovskogo {un-ta}", YEAR = 1989} %This monograph -- first in The Soviet Union with a systematic treatment %of the analytical computer (program) REDUCE. @ARTICLE{Eisenberger:90, AUTHOR = "Moshe Eisenberger", TITLE = "Application of Symbolic Algebra to the Analysis of Plates on Variable Elastic Foundation", JOURNAL = "J. Symbolic Computation", YEAR = 1990, VOLUME = 9, NUMBER = 2, PAGES = "207-213", MONTH = "February"} @TECHREPORT{Eissfeller:86, AUTHOR = "Bernd {Ei{\ss}feller} and {G\"{u}nter} W. Hein", TITLE = "A Contribution to {3D-Operational} Geodesy", INSTITUTION = "{Universit\"{a}rer} Studiengang Vermessungswesen and {Universit\"{a}t} der Bundeswehr {M\"{u}nchen}", YEAR = 1986, NUMBER = "Heft 17", MONTH = "December"} @PHDTHESIS{Eitelbach:73, AUTHOR = "D. L. Eitelbach", TITLE = "Automatic Analysis of Problems in Elementary Mechanics", SCHOOL = "University of Illinois", YEAR = 1973} @ARTICLE{Eleuterio:82, AUTHOR = "S. M. Eleut\'{e}rio and R. V. Mendes", TITLE = "Note on Equivalence and Singularities: An Application of Computer Algebra", JOURNAL = "Journ. Comp. Phys.", YEAR = 1982, VOLUME = 48, PAGES = "150-156"} %GR equivalence, commenting on \AAman & Karlhede. @ARTICLE{Eliseev:85, AUTHOR = "V. P. Eliseev and R. N. Fedorova and V. V. Kornyak", TITLE = "A {REDUCE} Program for Determining Point and Contact {Lie} Symmetries of Differential Equations", JOURNAL = "Comp. Phys. Comm.", YEAR = 1985, VOLUME = 36, PAGES = "383-389"} %"A universal REDUCE program for obtaining the systems of %determining equations of the Lie algebra of point and contact %symmetries is proposed". @ARTICLE{Elishakoff:87, AUTHOR = "Isaac Elishakoff and Joseph Hollkamp", TITLE = "Computerized Symbolic Solution for a Nonconservative System in Which Instability Occurs by Flutter in One Range of a Parameter and by Divergence in Another", JOURNAL = "Comp. Methods in Applied Mechanics and Engineering", YEAR = 1987, VOLUME = 62, PAGES = "27-46"} %"...the problem is solved by the Galerkin method in conjunction with %computerized symbolic algebra". The system used is REDUCE. "It %carries out algebraic operations irrespective of their complexity". %Includes snatches of code and algebraic answers. Mainly %differentiation and substitution, plus a little integration. The %coefficients get rather large (18 digits or so). @ARTICLE{Elishakoff:87a, AUTHOR = "Isaac Elishakoff and Brian Couch", TITLE = "Application of Symbolic Algebra to the Instability of a Nonconservative System", JOURNAL = "J. Symbolic Computation", YEAR = 1987, VOLUME = 4, NUMBER = 3, PAGES = "391-396", MONTH = "December"} @ARTICLE{Esteban:90, AUTHOR = "E.P. Esteban and E. Ramos", TITLE = "Algebraic computing and the {Newman-Penrose} formalism", JOURNAL = "Computers in Physics", YEAR = 1990, PAGES = "285-290", MONTH = "May/June"} @ARTICLE{Falck:89, AUTHOR = "N. K. Falck and D. Graudenz and G. Kramer", TITLE = "Cross section for {five-parton} production in $e^{+} e^{-}$ annihilation", JOURNAL = "Comp. Phys. Comm.", YEAR = 1989, VOLUME = 56, PAGES = "181-198", NUMBER = 2, MONTH = "December"} @ARTICLE{Fazio:84, AUTHOR = "P. M. Fazio and G. E. Copeland", TITLE = "Cooper-Type Minima in Multipole Cross Sections of Atomic Hydrogen", JOURNAL = "Phys. Rev. Lett.", YEAR = 1984, VOLUME = 53, NUMBER = "2", MONTH = "July"} @INPROCEEDINGS{Fedorova:87, AUTHOR = "R. N. Fedorova and V. P. Gerdt and N. N. Govorun and V. P. Shirikov", TITLE = "Computer Algebra in Physical Research of {Joint Institute} for {Nuclear Research}", BOOKTITLE = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", YEAR = 1987, VOLUME = 378, PAGES = "1-10", PUBLISHER = "Springer-Verlag"} @INPROCEEDINGS{Fedorova:87a, AUTHOR = "R. N. Fedorova and V. V. Kornyak", TITLE = "Computer Algebra Application for Determining Local Symmetries of Differential Equations", BOOKTITLE = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", YEAR = 1987, VOLUME = 378, PAGES = "174-175", PUBLISHER = "Springer-Verlag"} @ARTICLE{Feldmar:86, AUTHOR = "E. Feldmar and K. S. {K\"{o}lbig}", TITLE = "{REDUCE} Procedures for the Manipulation of Generalized Power Series", JOURNAL = "Comp. Phys. Comm.", YEAR = 1986, VOLUME = 39, PAGES = "267-284"} @ARTICLE{Feuillebois:84, AUTHOR = "F. Feuillebois", TITLE = "Sedimentation in a Dispersion with Vertical Inhomogenieties", JOURNAL = "Journ. Fluid Mech.", YEAR = 1984, VOLUME = 139, PAGES = "145-171"} %Uses REDUCE and INT to evaluate some integrals in the expansion of %1/s, a small quantity. @ARTICLE{Fitch:73, AUTHOR = "John Fitch", TITLE = "Problems \#3 and \#4 in {REDUCE} and {MACSYMA}", JOURNAL = "SIGSAM Bulletin", YEAR = 1973, PAGES = "10-11"} %The algebra systems REDUCE and MACSYMA are used to solve SIGSAM %Problem \#3, the Reversion of a Double Series, and SIGSAM Problem \#4, %the Lie Transform Solution of the Harmonic Oscillator. @INPROCEEDINGS{Fitch:81, AUTHOR = "J. P. Fitch", TITLE = "User-based Integration Software", BOOKTITLE = "Proc. 1981 {ACM} Symposium on Symbolic and Algebraic Computation", YEAR = 1981, PAGES = "245-248"} @INPROCEEDINGS{Fitch:83, AUTHOR = "J. P. Fitch", TITLE = "Implementing {REDUCE} on a Microprocessor", BOOKTITLE = "Proc. {EUROCAL} 1983, Lecture Notes in Computer Science", YEAR = 1983, VOLUME = 162, PAGES = "128-136", PUBLISHER = "Springer-Verlag"} @ARTICLE{Fitch:85, AUTHOR = "J. P. Fitch", TITLE = "Solving Algebraic Problems with {REDUCE}", JOURNAL = "J. of Symbolic Computation", YEAR = 1985, VOLUME = 1, NUMBER = 2, PAGES = "211-227", MONTH = "June"} @INPROCEEDINGS{Fitch:85a, AUTHOR = "J. P. Fitch", TITLE = "Applying Computer Algebra", BOOKTITLE = "International Conference on Computer Algebra and its Application in Theory", YEAR = 1985, PAGES = "262-275"} @INPROCEEDINGS{Fitch:87, AUTHOR = "J. P. Fitch", TITLE = "Utilisation du Calcul Formel", BOOKTITLE = "Calcul Formel et Automatique", EDITOR = "P. Chenin", PUBLISHER = "Editions du {CNRS}", YEAR = 1987, PAGES = "119-136"} @INPROCEEDINGS{Fitch:87a, AUTHOR = "J. P. Fitch and R. G. Hall", TITLE = "Symbolic Computation and the Finite Element Method", BOOKTITLE = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", YEAR = 1987, VOLUME = 378, PAGES = "95-96", PUBLISHER = "Springer-Verlag"} @INPROCEEDINGS{Fitch:89, AUTHOR = "J. P. Fitch", TITLE = "Can {REDUCE} be run in parallel?", BOOKTITLE = "Proc. of {ISSAC} '89", PUBLISHER = "{ACM} Press, New York", YEAR = 1989, PAGES = "155-162"} @ARTICLE{Fitch:89a, AUTHOR = "J. Fitch", TITLE = "Compiling for Parallelism", JOURNAL = "Computer Algebra and Parallelism", EDITOR = "J. Della Dora and J. Fitch", YEAR = 1989, PAGES = "19-31", PUBLISHER = "Academic Press, London"} @TECHREPORT{Flatau:86, AUTHOR = "Piotr J. Flatau and John P. Boyd and William R. Cotton", TITLE = "Symbolic Algebra in Applied Mathematics and Geophysical Fluid Dynamics - {REDUCE} Examples", INSTITUTION = "Dept. of Atmospheric and Oceanic Science, University of Michigan, and Dept. of Atmospheric Science, Colorado State University", YEAR = 1986} @TECHREPORT{Flath:86, AUTHOR = "Dan Flath", TITLE = "Remarks on Tensor Operators", INSTITUTION = "National University of Singapore, Department of Mathematics", TYPE = "Research Report", YEAR = 1986, NUMBER = 266, MONTH = "July"} @ARTICLE{Fleischer:71, AUTHOR = "J. Fleischer", TITLE = "Partial Wave Analysis of Nucleon-Nucleon {Bethe}-{Salpeter} Equation on the Computer", JOURNAL = "Journ. of Comp. Phys.", YEAR = 1971, VOLUME = 12, PAGES = "112-123"} @ARTICLE{Fleischer:73, AUTHOR = "J. Fleischer and J. L. Gammel and M. T. Menzel", TITLE = "Matrix {Pad\'{e}} Approximants for the {1SO}- and {3PO}- Partial Waves in Nucleon-Nucleon Scattering", JOURNAL = "Phys. Rev. D", YEAR = 1973, VOLUME = 8, PAGES = "1545-1552"} @ARTICLE{Fleischer:75, AUTHOR = "J. Fleischer and J. A. Tjon", TITLE = "Bethe-{Salpeter} Equation for {J}=0 Nucleon-Nucleon Scattering with One-Boson Exchange", JOURNAL = "Nuclear Physics", YEAR = 1975, VOLUME = "B84", PAGES = "375-396"} @ARTICLE{Fogelholm:82, AUTHOR = "Rabbe Fogelholm and Inge B. Frick", TITLE = "Standard {LISP} for the {VAX:} A Provisional Implementation", JOURNAL = "{SIGSAM} Bulletin", YEAR = 1982, VOLUME = 16, NUMBER = 4, PAGES = "10-12", MONTH = "November"} @ARTICLE{Foster:89, AUTHOR = "Kenneth R. Foster and Haim H. Bau", TITLE = "Symbolic Manipulation Programs for the Personal Computer", JOURNAL = "Science", YEAR = 1989, VOLUME = 243, PAGES = "679-243", MONTH = "February"} %Reviews several algebra programs that run on small machines. Doesn't %rate the PC version of REDUCE very highly because of the small workspace. @ARTICLE{Fox:71, AUTHOR = "J. A. Fox", TITLE = "Recalculation of the Crossed Graph Contribution to the 4th Order {Lamb} Shift", JOURNAL = "Phys. Rev. D", YEAR = 1971, VOLUME = 3, PAGES = "3228-3230"} @ARTICLE{Fox:74, AUTHOR = "John A. Fox and Anthony C. Hearn", TITLE = "Analytic Computation of Some Integrals in Fourth Order Quantum Electrodynamics", JOURNAL = "Journ. Comp. Phys.", YEAR = 1974, VOLUME = 14, PAGES = "301-317"} %A program for the analytic evaluation of some parametric integrals %which occur in fourth order QED calculations is described. @ARTICLE{Franceschetti:85, AUTHOR = "G. Franceschetti and I. Pinto", TITLE = "Nonlinear Propagation and Scattering: Analytical Solution and Symbolic Code Implementation", JOURNAL = "J. Opt. Soc. Am. A", YEAR = 1985, VOLUME = 2, PAGES = "997-1006"} %Volterra series using REDUCE. Perturbation expansions. @INPROCEEDINGS{Freire:88, AUTHOR = "E. Freire and E. Gamero and E. Ponce and L. G. Franquelo", TITLE = "An Algorithm for Symbolic Computation of Center Manifolds", BOOKTITLE = "Proc. of {ISSAC} '88", PUBLISHER = "Springer-Verlag", YEAR = 1988, VOLUME = 358, PAGES = "218-230"} @INPROCEEDINGS{Freire:89, AUTHOR = "E. Freire and E. Gamero and E. Ponce", TITLE = "An Algorithm for Symbolic Computation of {Hopf} Bifurcation", BOOKTITLE = "Proc. Computers and Mathematics '89", EDITOR = "E. Kaltofen and S. M. Watt", YEAR = 1989, PAGES = "109-118", PUBLISHER = "Springer-Verlag, New York"} @TECHREPORT{Frick:82, AUTHOR = "I. G. Frick and R. Fogelholm", TITLE = "An Implementation of {Standard} {Lisp} Built on Top of {Franz Lisp}", INSTITUTION = "University of Stockholm, Institute of Physics", YEAR = 1982, TYPE = "Report", MONTH = "April"} %A Standard LISP system has been built for the VAX-11 %large-address-space computer by embedding the required %function definitions in the available Franz Lisp system %for VAX/UNIX. @ARTICLE{Fujimoto:84, AUTHOR = "Y. Fujimoto and T. Garavaglia", TITLE = "Phase Diagrams in {Scalar QED}", JOURNAL = "Physics Letters", YEAR = 1984, VOLUME = "148B", NUMBER = "1,2,3", PAGES = "220-224", MONTH = "November"} @ARTICLE{Fuzio:85, AUTHOR = "P. M. Fuzio and G. E. Copeland", TITLE = "Partial Radiative-Recombination Cross Sections for Excited States of Hydrogen", JOURNAL = "Phys. Rev. A", YEAR = 1985, VOLUME = 31, NUMBER = 1, PAGES = "187-195"} %"The squares of the dipole and quadrupole matrix elements for the %free-to-bond transitions of hydrogen uptp high bound states are %derived in closed analytic form using a method suitable for computer %algebra". bibclean-3.07/test/topt165.bib0000444000156700015670000000000012470142231014743 0ustar beebebeebebibclean-3.07/test/topt108.opt0000444000156700015670000000001212470142073015015 0ustar beebebeebe-copyleft bibclean-3.07/test/topt340.opt0000444000156700015670000000001612470142160015014 0ustar beebebeebe--no-fix-math bibclean-3.07/test/testbib5.bib0000444000156700015670000000323105650271223015261 0ustar beebebeebe@misc{label, abstract = {\TeX{} ben"otigt eine gro"se Anzahl von Hilfskomponenten (Dateien und Programme), deren Bedeutung und gegenseitige \verb="abc"=}, abstract2 = {\TeX{} ben"otigt eine gro"se Anzahl von Hilfskomponenten (Dateien und Programme), deren Bedeutung und gegenseitige {\verb="abc"=}}, note = {\TeX{} ben{\"o}tigt eine gro{\"s}e Anzahl von Hilfskomponenten (Dateien und Programme), deren Bedeutung und gegenseitige {\tt"}\verb=abc={\tt"}}, note2 = {\TeX{} ben{\"o}tigt eine gro{\"s}e Anzahl von Hilfskomponenten (Dateien und Programme), deren Bedeutung und gegenseitige {\verb="abc"=}}, verbatim1 = {\verb="abc"}, verbatim2 = {{\verb="abc"}}, verbatim3 = "{\verb="abc"}", everything1 = {umlaut accents: "a, "e, "i, "o, "u, "A, "E, "I, "O, "U,\\ sharp s: "s,\\ German quotes: "` (left), "' (right),\\ French quotes: "< (left), "> (right),\\ discretionary hyphens: ba"cken, Bet"tuch, xx"ffxx\\ ligature separator: Auf"|lage,\\ super discretionary hyphen: Rechen"-fehler,\\ invisible hyphen: /usr""/spool""/news}, everything2 = "{umlaut accents: "a, "e, "i, "o, "u, "A, "E, "I, "O, "U,\\ sharp s: "s,\\ German quotes: "` (left), "' (right),\\ French quotes: "< (left), "> (right),\\ discretionary hyphens: ba"cken, Bet"tuch, xx"ffxx\\ ligature separator: Auf"|lage,\\ super discretionary hyphen: Rechen"-fehler,\\ invisible hyphen: /usr""/spool""/news}", } bibclean-3.07/test/topt162.bib0000444000156700015670000000000012470142231014740 0ustar beebebeebebibclean-3.07/test/topt351.bib0000444000156700015670000000000012470142232014741 0ustar beebebeebebibclean-3.07/test/topt323.bib0000444000156700015670000000000012470142231014737 0ustar beebebeebebibclean-3.07/test/topt101.opt0000444000156700015670000000000312470144316015010 0ustar beebebeebe-? bibclean-3.07/test/topt332.opt0000444000156700015670000000002212470142160015012 0ustar beebebeebe--no-check-values bibclean-3.07/test/testoptw.bib0000444000156700015670000000466012114742503015435 0ustar beebebeebe @Misc{Blow:2013:Ea, author = "Jose Akim{\'a}", title = "$O(n log n)$ vs $O(n \log n)$", expect = "{$ O(n l o g n) $} vs {$ O(n \log n) $}", year = "2013", } @Misc{Blow:2013:Eb, author = "Jose Akim{\'a}", title = "$Pr(x > y)$ is wrong", expect = "{$ P r(x > y) $} is wrong", year = "2013", } @Misc{Blow:2013:Ec, author = "Jose Akim{\'a}", title = "$\Pr(x > y)$ is right", expect = "{$ \Pr (x > y) $} is right", year = "2013", } @Misc{Blow:2013:Ed, author = "Jose Akim{\'a}", title = "The {K\=oriyama} theorem for $x >= 3$", expect = "The {K\=oriyama} theorem for $ x > = 3 $", year = "2013", } @Misc{Blow:2013:Ee, author = "Jose Akim{\'a}", title = "The $11\%$ solution", expect = "The $ 11 \% $ solution", year = "2013", } @Misc{Blow:2013:Ef, author = "Jose Akim{\'a}", title = "{Das ,,Benford-Gesetz'' {\"u}ber die Verteilung}", expect = "{Das ,,Benford-Gesetz'' {\"u}ber die Verteilung}", year = "2013", } @Misc{Blow:2013:Eg, author = "Jose Akim{\'a}", title = "The $a,,b,,c$ list", expect = "The $ a,, b,, c $ list", year = "2013", } @Misc{Blow:2013:Eh, author = "Jose Akim{\'a}", title = "The sum of {$M$} modulo $1$ is large", expect = "The sum of {$M$} modulo $1$ is large", year = "2013", } @Misc{Blow:2013:Ei, author = "Jose Akim{\'a}", title = "Premi{\`e}res le{\c{c}}ons de math{\`e}matiques: $a=b$", expect = "Premi{\`e}res le{\c{c}}ons de math{\`e}matiques: $ a = b $", year = "2013", } @Misc{Blow:2013:Ej, author = "Jose Akim{\'a}", title = "Universidad pontificia de Santo Tom\'as$^{123}$", expect = "Universidad pontificia de Santo Tom{\'a}s$^{123}$", year = "2013", } @Misc{Blow:2013:Ek, author = "Jose Akim{\'a}", title = "The $\alpha { and } \beta$ study", expect = "The $ \alpha { and } \beta $ study", year = "2013", } @Misc{Blow:2013:El, author = "Jose Akim{\'a}", title = "The $\alpha \hbox{ and } \beta$ study", expect = "The $ \alpha \hbox { and } \beta $ study", year = "2013", } @Misc{Blow:2013:En, author = "Joe Blow", title = "The \$10 bet", expect = "The \$10 bet", year = "2013", } bibclean-3.07/test/topt110.bib0000444000156700015670000000000012470142226014735 0ustar beebebeebebibclean-3.07/test/testopt7.bib0000444000156700015670000000000007342757150015330 0ustar beebebeebebibclean-3.07/test/topt358.bib0000444000156700015670000000000012470142232014750 0ustar beebebeebebibclean-3.07/test/topt335.opt0000444000156700015670000000002312470142160015016 0ustar beebebeebe--no-file-position bibclean-3.07/test/testoptp.bib0000444000156700015670000000214112071123457015421 0ustar beebebeebe@Article{okay-1, DOI = "http://dx.doi.org/10.1007/978-3-642-25704-9_1", } @Article{okay-2, URL = "http://link.springer.com/accesspage/chapter/10.1007/978-3-642-25704-9_1", } @Article{okay-3, book-DOI = "http://dx.doi.org/10.1007/978-3-642-25704-9", } @Article{okay-4, book-URL = "http://www.springerlink.com/content/978-3-642-25704-9", } @Article{bad-1, DOI = "http://link.springer.com/accesspage/chapter/10.1007/978-3-642-25704-9_1", } @Article{bad-2, URL = "http://dx.doi.org/10.1007/978-3-642-25704-9_1", } @Article{bad-3, book-DOI = "http://www.springerlink.com/content/978-3-642-25704-9", } @Article{bad-4, book-URL = "http://dx.doi.org/10.1007/978-3-642-25704-9", } @Article{bad-5, DOI = "http://dx.doi.org/10.1002/spe.2105; http://dx.doi.org/10.1002/spe.2106", } @Article{bad-6, URL = "http://dx.doi.org/10.1002/spe.2105; http://dx.doi.org/10.1002/spe.2106", } @Article{bad-7, URL = "rss://rss.example.com/web-feed/rich-site-summary", } @Article{bad-8, URL = "mailto:beebe@math.utah.edu", } bibclean-3.07/test/topt117.bib0000444000156700015670000000000012470142227014745 0ustar beebebeebebibclean-3.07/test/topt324.bib0000444000156700015670000000000012470142231014740 0ustar beebebeebebibclean-3.07/test/topt349.opt0000444000156700015670000000002612470142160015026 0ustar beebebeebe--no-print-ISBN-table bibclean-3.07/test/topt106.opt0000444000156700015670000000001712470142073015020 0ustar beebebeebe-brace-protect bibclean-3.07/test/topt315.bib0000444000156700015670000000000012470142231014740 0ustar beebebeebebibclean-3.07/test/topt137.opt0000444000156700015670000000001712470142073015024 0ustar beebebeebe-no-fix-braces bibclean-3.07/test/testopto.bib0000444000156700015670000001351312115500151015412 0ustar beebebeebe@Article{x, title = " The equation $x=f ( y+z/d )$ ", title = " The displayed equation $$x=f ( y+z/d )$$ ", title = " Literal dollar sign, \$, and more: \$\$\$\$ ", title = " Unbalanced dollar sign: $100 and up ", title = " The relation $a:b:c$ ", title = " The equation $x:=F [ y+z/d ] $ ", title = " The displayed equation $$x:=F [ y+z/d ]$$ ", title = " Subs and sups: $x _ {n}= y ^ {k} + z ^ {k}$ ", title = " Display subs and sups: $$x _ {n} = y ^ {k} + z ^ {k}$$ ", title = " Tricky math: $ \{ A, B, C \} $ ", title = " Display tricky math: $$ \{ A, B, C \} $$ ", title = " Math ties: $ a~=~b~+~c $ ", title = " Tight math: $r=f(a,b,c;x,y,z)$", title = " Tight tricky math: $\{A,B,C\}$", } @Article{x, title = "Display lc subs and sups: $$x_n=y^k+z^k$$ ", title = "Display uc subs and sups: $$x_N=y^K+z^K$$ ", title = "Display uc subs and sups: $$x_{N}=y^{K}+z^{K}$$ ", title = "Display uc subs and sups: $$x_{\rm left}=y^{\rm middle}+z^{\rm right}$$ ", title = "Display uc subs and sups: $$x_{\Gamma}=y^{\Delta}+z^{\Theta}$$ ", title = "Display uc subs and sups: $$x_\Gamma=y^\Delta+z^\Theta$$ ", title = "The matrix $H$ is called the {Hamiltonian}.", title = "Modeling of $\sup{13}$C NMR and $\sup{11}$C$\sup{2+}$ ions", title = "Modeling of $^{13}$C NMR and $^{11}$C$^{2+}$ ions", title = "Modeling of $\sup{13}$C NMR and $\sup{11}$C$\sup{+++}$ ions", title = "Modeling of $^{13}$C NMR and $^{11}$C$^{+++}$ ions", title = "The crystal Cr$_2$O$_3$", title = "The crystal Cr_2O_3", title = "The crystal {Cr$_2$O$_3$}", title = "The crystal {Cr}$_2${O}$_3$", title = "Two lowercase equations: $a = b$ and $c = d$", title = "Two uppercase equations: $A = B$ and $C = D$", } @Article{Sadkane:2012:ASM, author = "Miloud Sadkane and Ahmed Touhami", title = "Algorithm 918: {{\tt specdicho}}: a MATLAB Program for the Spectral Dichotomy of Regular Matrix Pencils", journal = j-TOMS, volume = "38", number = "3", pages = "21:1--21:13", month = apr, year = "2012", CODEN = "ACMSCU", DOI = "http://dx.doi.org/10.1145/2168773.2168780", ISSN = "0098-3500 (print), 1557-7295 (electronic)", ISSN-L = "0098-3500", bibdate = "Thu May 3 16:27:26 MDT 2012", bibsource = "http://www.acm.org/pubs/contents/journals/toms/; http://www.math.utah.edu/pub/tex/bib/toms.bib", abstract = "Given a regular matrix pencil $\lambda B-A$ and a positively oriented contour $\gamma$ in the complex plane, the spectral dichotomy methods applied to $\lambda B-A$ and $\gamma$ consist in determining whether $\lambda B-A$ possesses eigenvalues on or in a neighborhood of $\gamma$. When no such eigenvalues exist, these methods compute iteratively the spectral projector $P$ onto the right deflating subspace of $\lambda B-A$ associated with the eigenvalues inside/outside $\gamma$. The computation of the projector is accompanied by the spectral norm $||H||$ of a Hermitian positive definite matrix $H$ called the dichotomy condition number, which indicates the numerical quality of the spectral projector $P$. The smaller $||H||$ is, the better this quality. This article presents a MATLAB program ({\tt specdicho}) implementing the main types of spectral dichotomy where $\gamma$ is a circle, an ellipse, the imaginary axis or a parabola.", acknowledgement = ack-nhfb, articleno = "21", fjournal = "ACM Transactions on Mathematical Software (TOMS)", } @Article{Ragazzi:2002:IMM, author = "Massimo Ragazzi and Paola Carbone and Dino R. Ferro", title = "Ab initio molecular modeling of {$^{13}$C NMR} chemical shifts of polymers. 1. {Ethylene--norbornene} copolymers", journal = j-IJQC, volume = "88", number = "5", pages = "663--669", day = "20", month = jun, year = "2002", CODEN = "IJQCB2", DOI = "http://dx.doi.org/10.1002/qua.10055", ISSN = "0020-7608 (print), 1097-461X (electronic)", ISSN-L = "0020-7608", bibdate = "Thu Sep 29 18:45:09 MDT 2011", bibsource = "http://www.math.utah.edu/pub/tex/bib/ijqc2000.bib", acknowledgement = ack-nhfb, ajournal = "Int. J. Quantum Chem.", fjournal = "International Journal of Quantum Chemistry", onlinedate = "17 Apr 2002", } @Article{Nikiforov:2002:CPS, author = "I. S. Nikiforov and D. A. Filippov", title = "Calculation of a power spectrum and definition of wave functions of an ion {Cr$^{3+}$} in antiferromagnetic crystal {Cr$_2$O$_3$} in the model of a crystalline field", journal = j-IJQC, volume = "88", number = "5", pages = "676--680", day = "20", month = jun, year = "2002", CODEN = "IJQCB2", DOI = "http://dx.doi.org/10.1002/qua.10219", ISSN = "0020-7608 (print), 1097-461X (electronic)", ISSN-L = "0020-7608", bibdate = "Thu Sep 29 18:45:09 MDT 2011", bibsource = "http://www.math.utah.edu/pub/tex/bib/ijqc2000.bib", acknowledgement = ack-nhfb, ajournal = "Int. J. Quantum Chem.", fjournal = "International Journal of Quantum Chemistry", onlinedate = "14 May 2002", } bibclean-3.07/test/topt369.bib0000444000156700015670000000000012470142232014752 0ustar beebebeebebibclean-3.07/test/topt304.opt0000444000156700015670000000001712470142160015015 0ustar beebebeebe--align-equals bibclean-3.07/test/topt126.bib0000444000156700015670000000000012470142230014737 0ustar beebebeebebibclean-3.07/test/topt303.opt0000444000156700015670000000002612470142160015014 0ustar beebebeebe--ISBN-file /dev/null bibclean-3.07/test/topt121.bib0000444000156700015670000000000012470142227014740 0ustar beebebeebebibclean-3.07/test/topt312.bib0000444000156700015670000000000012470142231014735 0ustar beebebeebebibclean-3.07/test/testopth.bib0000444000156700015670000000000007342757150015411 0ustar beebebeebebibclean-3.07/test/topt130.opt0000444000156700015670000000002112470142073015010 0ustar beebebeebe-no-align-equals bibclean-3.07/test/topt360.bib0000444000156700015670000000000012470142232014741 0ustar beebebeebebibclean-3.07/test/topt142.opt0000444000156700015670000000002412470142073015016 0ustar beebebeebe-no-keep-linebreaks bibclean-3.07/test/topt371.opt0000664000156700015670000000002112663425653015037 0ustar beebebeebe--no-fix-degrees bibclean-3.07/test/topt153.bib0000444000156700015670000000000012470142231014740 0ustar beebebeebebibclean-3.07/test/testoptf.bib0000444000156700015670000000000007342757150015407 0ustar beebebeebebibclean-3.07/test/topt154.bib0000444000156700015670000000000012470142231014741 0ustar beebebeebebibclean-3.07/test/testopta.bib0000444000156700015670000000000007342757150015402 0ustar beebebeebebibclean-3.07/test/topt139.opt0000444000156700015670000000002112470142073015021 0ustar beebebeebe-no-fix-initials bibclean-3.07/test/topt367.bib0000444000156700015670000000000012470142232014750 0ustar beebebeebebibclean-3.07/test/topt128.bib0000444000156700015670000000000012470142230014741 0ustar beebebeebebibclean-3.07/test/topt145.opt0000444000156700015670000000002012470142073015015 0ustar beebebeebe-no-keep-spaces bibclean-3.07/test/topt343.opt0000444000156700015670000000002412470142160015016 0ustar beebebeebe--no-keep-parbreaks bibclean-3.07/test/testcodn.opt0000444000156700015670000000000007342717006015424 0ustar beebebeebebibclean-3.07/test/testbib6.bib0000444000156700015670000002223506525171227015274 0ustar beebebeebe@Article{x, MONTH = MAR # "\slash " # APR, MONTH = MAR # "\slash" # APR, MONTH = mar # "\slash " # apr, month = mar # "\slash" # apr, MONTH = MAR # "- " # APR, MONTH = MAR # "-" # APR, MONTH = mar # "- " # apr, month = mar # "-" # apr, MONTH = MAR # "-- " # APR, MONTH = MAR # "--" # APR, MONTH = mar # "-- " # apr, month = mar # "--" # apr, MONTH = MAR # " -- " # APR, MONTH = MAR # "--" # APR, MONTH = mar # " -- " # apr, month = mar # "--" # apr, MONTH = MAR # " \endash{} " # APR, MONTH = MAR # "\endash{} " # APR, MONTH = mar # " \endash{} " # apr, month = mar # "\endash{} " # apr, MONTH = MAR # " \endash " # APR, MONTH = MAR # "\endash " # APR, MONTH = mar # " \endash " # apr, month = mar # "\endash " # apr, MONTH = "March" # "\slash " # APR, MONTH = "March" # "\slash" # APR, MONTH = mar # "\slash " # apr, month = mar # "\slash" # apr, MONTH = "March" # "- " # APR, MONTH = "March" # "-" # APR, MONTH = mar # "- " # apr, month = mar # "-" # apr, MONTH = "March" # "-- " # APR, MONTH = "March" # "--" # APR, MONTH = mar # "-- " # apr, month = mar # "--" # apr, MONTH = "March" # " -- " # APR, MONTH = "March" # "--" # APR, MONTH = mar # " -- " # apr, month = mar # "--" # apr, MONTH = "March" # " \endash{} " # APR, MONTH = "March" # "\endash{} " # APR, MONTH = mar # " \endash{} " # apr, month = mar # "\endash{} " # apr, MONTH = "March" # " \endash " # APR, MONTH = "March" # "\endash " # APR, MONTH = mar # " \endash " # apr, month = mar # "\endash " # apr, MONTH = MAR # "\slash " # "April", MONTH = MAR # "\slash" # "April", MONTH = mar # "\slash " # "April", month = mar # "\slash" # "April", MONTH = MAR # "- " # "April", MONTH = MAR # "-" # "April", MONTH = mar # "- " # "April", month = mar # "-" # "April", MONTH = MAR # "-- " # "April", MONTH = MAR # "--" # "April", MONTH = mar # "-- " # "April", month = mar # "--" # "April", MONTH = MAR # " -- " # "April", MONTH = MAR # "--" # "April", MONTH = mar # " -- " # "April", month = mar # "--" # "April", MONTH = MAR # " \endash{} " # "April", MONTH = MAR # "\endash{} " # "April", MONTH = mar # " \endash{} " # "April", month = mar # "\endash{} " # "April", MONTH = MAR # " \endash " # "April", MONTH = MAR # "\endash " # "April", MONTH = mar # " \endash " # "April", month = mar # "\endash " # "April", MONTH = "March" # "\slash " # "April", MONTH = "March" # "\slash" # "April", MONTH = mar # "\slash " # "April", month = mar # "\slash" # "April", MONTH = "March" # "- " # "April", MONTH = "March" # "-" # "April", MONTH = mar # "- " # "April", month = mar # "-" # "April", MONTH = "March" # "-- " # "April", MONTH = "March" # "--" # "April", MONTH = mar # "-- " # "April", month = mar # "--" # "April", MONTH = "March" # " -- " # "April", MONTH = "March" # "--" # "April", MONTH = mar # " -- " # "April", month = mar # "--" # "April", MONTH = "March" # " \endash{} " # "April", MONTH = "March" # "\endash{} " # "April", MONTH = mar # " \endash{} " # "April", month = mar # "\endash{} " # "April", MONTH = "March" # " \endash " # "April", MONTH = "March" # "\endash " # "April", MONTH = mar # " \endash " # apr, month = mar # "\endash " # apr, MONTH = MAR # "" # "" # "" # "\slash " # "" # "" # "" # APR, MONTH = MAR # "" # "" # "" # "\slash" # "" # "" # "" # APR, MONTH = mar # "" # "" # "" # "\slash " # "" # "" # "" # apr, month = mar # "" # "" # "" # "\slash" # "" # "" # "" # apr, MONTH = MAR # "" # "" # "" # "- " # "" # "" # "" # APR, MONTH = MAR # "" # "" # "" # "-" # "" # "" # "" # APR, MONTH = mar # "" # "" # "" # "- " # "" # "" # "" # apr, month = mar # "" # "" # "" # "-" # "" # "" # "" # apr, MONTH = MAR # "" # "" # "" # "-- " # "" # "" # "" # APR, MONTH = MAR # "" # "" # "" # "--" # "" # "" # "" # APR, MONTH = mar # "" # "" # "" # "-- " # "" # "" # "" # apr, month = mar # "" # "" # "" # "--" # "" # "" # "" # apr, MONTH = MAR # "" # "" # "" # " -- " # "" # "" # "" # APR, MONTH = MAR # "" # "" # "" # "--" # "" # "" # "" # APR, MONTH = mar # "" # "" # "" # " -- " # "" # "" # "" # apr, month = mar # "" # "" # "" # "--" # "" # "" # "" # apr, MONTH = MAR # "" # "" # "" # " \endash{} " # "" # "" # "" # APR, MONTH = MAR # "" # "" # "" # "\endash{} " # "" # "" # "" # APR, MONTH = mar # "" # "" # "" # " \endash{} " # "" # "" # "" # apr, month = mar # "" # "" # "" # "\endash{} " # "" # "" # "" # apr, MONTH = MAR # "" # "" # "" # " \endash " # "" # "" # "" # APR, MONTH = MAR # "" # "" # "" # "\endash " # "" # "" # "" # APR, MONTH = mar # "" # "" # "" # " \endash " # "" # "" # "" # apr, month = mar # "" # "" # "" # "\endash " # "" # "" # "" # apr, MONTH = "March" # "" # "" # "" # "\slash " # "" # "" # "" # APR, MONTH = "March" # "" # "" # "" # "\slash" # "" # "" # "" # APR, MONTH = mar # "" # "" # "" # "\slash " # "" # "" # "" # apr, month = mar # "" # "" # "" # "\slash" # "" # "" # "" # apr, MONTH = "March" # "" # "" # "" # "- " # "" # "" # "" # APR, MONTH = "March" # "" # "" # "" # "-" # "" # "" # "" # APR, MONTH = mar # "" # "" # "" # "- " # "" # "" # "" # apr, month = mar # "" # "" # "" # "-" # "" # "" # "" # apr, MONTH = "March" # "" # "" # "" # "-- " # "" # "" # "" # APR, MONTH = "March" # "" # "" # "" # "--" # "" # "" # "" # APR, MONTH = mar # "" # "" # "" # "-- " # "" # "" # "" # apr, month = mar # "" # "" # "" # "--" # "" # "" # "" # apr, MONTH = "March" # "" # "" # "" # " -- " # "" # "" # "" # APR, MONTH = "March" # "" # "" # "" # "--" # "" # "" # "" # APR, MONTH = mar # "" # "" # "" # " -- " # "" # "" # "" # apr, month = mar # "" # "" # "" # "--" # "" # "" # "" # apr, MONTH = "March" # "" # "" # "" # " \endash{} " # "" # "" # "" # APR, MONTH = "March" # "" # "" # "" # "\endash{} " # "" # "" # "" # APR, MONTH = mar # "" # "" # "" # " \endash{} " # "" # "" # "" # apr, month = mar # "" # "" # "" # "\endash{} " # "" # "" # "" # apr, MONTH = "March" # "" # "" # "" # " \endash " # "" # "" # "" # APR, MONTH = "March" # "" # "" # "" # "\endash " # "" # "" # "" # APR, MONTH = mar # "" # "" # "" # " \endash " # "" # "" # "" # apr, month = mar # "" # "" # "" # "\endash " # "" # "" # "" # apr, MONTH = MAR # "" # "" # "" # "\slash " # "" # "" # "" # "April", MONTH = MAR # "" # "" # "" # "\slash" # "" # "" # "" # "April", MONTH = mar # "" # "" # "" # "\slash " # "" # "" # "" # "April", month = mar # "" # "" # "" # "\slash" # "" # "" # "" # "April", MONTH = MAR # "" # "" # "" # "- " # "" # "" # "" # "April", MONTH = MAR # "" # "" # "" # "-" # "" # "" # "" # "April", MONTH = mar # "" # "" # "" # "- " # "" # "" # "" # "April", month = mar # "" # "" # "" # "-" # "" # "" # "" # "April", MONTH = MAR # "" # "" # "" # "-- " # "" # "" # "" # "April", MONTH = MAR # "" # "" # "" # "--" # "" # "" # "" # "April", MONTH = mar # "" # "" # "" # "-- " # "" # "" # "" # "April", month = mar # "" # "" # "" # "--" # "" # "" # "" # "April", MONTH = MAR # "" # "" # "" # " -- " # "" # "" # "" # "April", MONTH = MAR # "" # "" # "" # "--" # "" # "" # "" # "April", MONTH = mar # "" # "" # "" # " -- " # "" # "" # "" # "April", month = mar # "" # "" # "" # "--" # "" # "" # "" # "April", MONTH = MAR # "" # "" # "" # " \endash{} " # "" # "" # "" # "April", MONTH = MAR # "" # "" # "" # "\endash{} " # "" # "" # "" # "April", MONTH = mar # "" # "" # "" # " \endash{} " # "" # "" # "" # "April", month = mar # "" # "" # "" # "\endash{} " # "" # "" # "" # "April", MONTH = MAR # "" # "" # "" # " \endash " # "" # "" # "" # "April", MONTH = MAR # "" # "" # "" # "\endash " # "" # "" # "" # "April", MONTH = mar # "" # "" # "" # " \endash " # "" # "" # "" # "April", month = mar # "" # "" # "" # "\endash " # "" # "" # "" # "April", MONTH = "March" # "" # "" # "" # "\slash " # "" # "" # "" # "April", MONTH = "March" # "" # "" # "" # "\slash" # "" # "" # "" # "April", MONTH = mar # "" # "" # "" # "\slash " # "" # "" # "" # "April", month = mar # "" # "" # "" # "\slash" # "" # "" # "" # "April", MONTH = "March" # "" # "" # "" # "- " # "" # "" # "" # "April", MONTH = "March" # "" # "" # "" # "-" # "" # "" # "" # "April", MONTH = mar # "" # "" # "" # "- " # "" # "" # "" # "April", month = mar # "" # "" # "" # "-" # "" # "" # "" # "April", MONTH = "March" # "" # "" # "" # "-- " # "" # "" # "" # "April", MONTH = "March" # "" # "" # "" # "--" # "" # "" # "" # "April", MONTH = mar # "" # "" # "" # "-- " # "" # "" # "" # "April", month = mar # "" # "" # "" # "--" # "" # "" # "" # "April", MONTH = "March" # "" # "" # "" # " -- " # "" # "" # "" # "April", MONTH = "March" # "" # "" # "" # "--" # "" # "" # "" # "April", MONTH = mar # "" # "" # "" # " -- " # "" # "" # "" # "April", month = mar # "" # "" # "" # "--" # "" # "" # "" # "April", MONTH = "March" # "" # "" # "" # " \endash{} " # "" # "" # "" # "April", MONTH = "March" # "" # "" # "" # "\endash{} " # "" # "" # "" # "April", MONTH = mar # "" # "" # "" # " \endash{} " # "" # "" # "" # "April", month = mar # "" # "" # "" # "\endash{} " # "" # "" # "" # "April", MONTH = "March" # "" # "" # "" # " \endash " # "" # "" # "" # "April", MONTH = "March" # "" # "" # "" # "\endash " # "" # "" # "" # "April", MONTH = mar # "" # "" # "" # " \endash " # "" # "" # "" # apr, month = mar # "" # "" # "" # "\endash " # "" # "" # "" # apr, } bibclean-3.07/test/topt161.bib0000444000156700015670000000000012470142231014737 0ustar beebebeebebibclean-3.07/test/topt352.bib0000444000156700015670000000000012470142232014742 0ustar beebebeebebibclean-3.07/test/topt170.opt0000664000156700015670000000001512663425653015037 0ustar beebebeebe-fix-degrees bibclean-3.07/test/topt338.opt0000444000156700015670000000002612470142160015024 0ustar beebebeebe--no-fix-font-changes bibclean-3.07/test/topt355.bib0000444000156700015670000000000012470142232014745 0ustar beebebeebebibclean-3.07/test/testscr2.bib0000444000156700015670000000300405304620240015300 0ustar beebebeebe@BEGIN{COMMENT} This file contains some test Scribe bibliography entries with embedded paragraph breaks for testing the -no-parbreaks switch in bibclean. Without that switch, it should process correctly; with it, 3 sets of error messages should be displayed. @END{COMMENT} @TECHREPORT(bs-1629-0, AUTHOR = "BSI", TITLE = "Bibliographic References", INSTITUTION = "British Standards Institution", YEAR = "1976", TYPE = "BS", NUMBER = "1629" ) @TECHREPORT(bs-1629-1, AUTHOR = "BSI", TITLE = "Bibliographic References", INSTITUTION = "British Standards Institution", YEAR = "1976", TYPE = "BS", NUMBER = "1629" ) @TECHREPORT(bs-1629-2, AUTHOR = "BSI", TITLE = "Bibliographic References", INSTITUTION = "British Standards Institution", YEAR = "1976", TYPE = "BS", NUMBER = "1629" ) @TECHREPORT(bs-1629-3, AUTHOR = "BSI", TITLE = "Bibliographic References", INSTITUTION = "British Standards Institution", YEAR = "1976", TYPE = "BS", NUMBER = "1629" ) @TECHREPORT(bs-1629-4, AUTHOR = BSI, TITLE = "Bibliographic References", INSTITUTION = "British Standards Institution", YEAR = 1976, TYPE = BS, NUMBER = 1629 ) @TECHREPORT(bs-1629-5, AUTHOR = BSI, TITLE = "Bibliographic References", INSTITUTION = "British Standards Institution", YEAR = 1976, TYPE = BS, NUMBER = 1629 ) bibclean-3.07/test/topt344.opt0000444000156700015670000000003212470142160015016 0ustar beebebeebe--no-keep-preamble-spaces bibclean-3.07/test/topt329.bib0000444000156700015670000000000012470142231014745 0ustar beebebeebebibclean-3.07/test/testbib1.bib0000444000156700015670000002776305450514771015303 0ustar beebebeebe@Misc{value-test, comment = "This entry contains several value patterns designed to pass the value pattern checks in bibclean 2.05 or later.", comment = "The following values should all be accepted.", chapter = "13", month = "31 " # aug, number = "23 + 24", number = "23 / 24", number = "23 \& 24", number = "23+24", number = "23/24", number = "23\&24", number = "3+4", number = "TR\#89-24", number = "UMIACS-TR-89-3.1, CS-TR-2177.1", number = "{STAN-CS-88-1223}", pages = "1, 3, 5, 7", pages = "1--3", pages = "12, 13, 17", pages = "12--13", pages = "L301--L305", pages = "ix + 399", pages = "viii + 445, with 30 illustrations", pages = "viii + 445", price = "UK\pounds 12.95", price = "US\$12.95", price = "US\$13", volume = "23", volume = "23-1", volume = "23a", volume = "One", volume = "XXIII", volume = "xxiii", year = "1978 (1985)", year = "1987" # "\unskip--", year = "2001", comment = "The following values should raise warnings.", chapter = "23.", chapter = "Two", month = "janvier", pages = "1,3,5,7", pages = "1--3, 5, 7", pages = "10,560--10,574", pages = "12--13, 17, 18", pages = "12--13, 17--18", pages = "147--156, 157--168", pages = "445 + viii with 30 illustrations", pages = "445 + viii", price = "DM\$60.5", price = "DM\$60.537", price = "US\$12.9", price = "\$12.95", price = "\$13", price = "\pounds 13", volume = "1.", volume = "12(5)", volume = "1:", year = "(1985)", year = "1789", year = "23", year = "2525", year = "????", } @TestCharSet{Test-8-bit-set, charset = "\000", charset = "\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017", charset = "\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037", charset = "\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057", charset = "\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077", charset = "\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117", charset = "\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137", charset = "\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157", charset = "\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177", charset = "\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217", charset = "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237", charset = "\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257", charset = "\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277", charset = "\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317", charset = "\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337", charset = "\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357", charset = "\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377", charset = "\004\b\t\n\v\f\r", charset = "\032", charset = " !{"}#$%&'()*+,-./", charset = "0123456789:;<=>?", charset = "@ABCDEFGHIJKLMNO", charset = "PQRSTUVWXYZ[\]^_", charset = "`abcdefghijklmno", charset = "pqrstuvwxyz{|}~", charset = "", charset = "", charset = "", charset = "", charset = "", charset = "", charset = "", charset = "", } %%% This entry enumerates all 256 characters of an 8-bit character %%% set, except for these 10 characters that are required for other %%% purposes: %%% %%% NUL string delimiter in C %%% CTL-A BIBTEX-HIDDEN-DELIMITER (internal marker) %%% CTL-I..CTL-M,SPACE whitespace characters %%% LEFT-BRACE, RIGHT-BRACE BibTeX character protectors %%% %%% Each entry contains the octal representation of a character value %%% followed by =, except for the above %%% 10 exceptions, for which is replaced by a %%% . %%% %%% If bibclean is working properly, the remaining 246 characters %%% should be passed through untouched. With the default indentation, %%% the output of bibclean on this example should be exactly the same %%% as the input. @TestCharSet{Test-8-bit-set, charset = "\000 = ", charset = "\001 = ", charset = "\002 = ", charset = "\003 = ", charset = "\004 = ", charset = "\005 = ", charset = "\006 = ", charset = "\007 = ", charset = "\010 = ", charset = "\011 = ", charset = "\012 = ", charset = "\013 = ", charset = "\014 = ", charset = "\015 = ", charset = "\016 = ", charset = "\017 = ", charset = "\020 = ", charset = "\021 = ", charset = "\022 = ", charset = "\023 = ", charset = "\024 = ", charset = "\025 = ", charset = "\026 = ", charset = "\027 = ", charset = "\030 = ", charset = "\031 = ", charset = "\032 = ", charset = "\033 = ", charset = "\034 = ", charset = "\035 = ", charset = "\036 = ", charset = "\037 = ", charset = "\040 = ", charset = "\041 = !", charset = "\042 = {"}", charset = "\043 = #", charset = "\044 = $", charset = "\045 = %", charset = "\046 = &", charset = "\047 = '", charset = "\050 = (", charset = "\051 = )", charset = "\052 = *", charset = "\053 = +", charset = "\054 = ,", charset = "\055 = -", charset = "\056 = .", charset = "\057 = /", charset = "\060 = 0", charset = "\061 = 1", charset = "\062 = 2", charset = "\063 = 3", charset = "\064 = 4", charset = "\065 = 5", charset = "\066 = 6", charset = "\067 = 7", charset = "\070 = 8", charset = "\071 = 9", charset = "\072 = :", charset = "\073 = ;", charset = "\074 = <", charset = "\075 = =", charset = "\076 = >", charset = "\077 = ?", charset = "\100 = @", charset = "\101 = A", charset = "\102 = B", charset = "\103 = C", charset = "\104 = D", charset = "\105 = E", charset = "\106 = F", charset = "\107 = G", charset = "\110 = H", charset = "\111 = I", charset = "\112 = J", charset = "\113 = K", charset = "\114 = L", charset = "\115 = M", charset = "\116 = N", charset = "\117 = O", charset = "\120 = P", charset = "\121 = Q", charset = "\122 = R", charset = "\123 = S", charset = "\124 = T", charset = "\125 = U", charset = "\126 = V", charset = "\127 = W", charset = "\130 = X", charset = "\131 = Y", charset = "\132 = Z", charset = "\133 = [", charset = "\134 = {\}", charset = "\135 = ]", charset = "\136 = ^", charset = "\137 = _", charset = "\140 = `", charset = "\141 = a", charset = "\142 = b", charset = "\143 = c", charset = "\144 = d", charset = "\145 = e", charset = "\146 = f", charset = "\147 = g", charset = "\150 = h", charset = "\151 = i", charset = "\152 = j", charset = "\153 = k", charset = "\154 = l", charset = "\155 = m", charset = "\156 = n", charset = "\157 = o", charset = "\160 = p", charset = "\161 = q", charset = "\162 = r", charset = "\163 = s", charset = "\164 = t", charset = "\165 = u", charset = "\166 = v", charset = "\167 = w", charset = "\170 = x", charset = "\171 = y", charset = "\172 = z", charset = "\173 = ", charset = "\174 = |", charset = "\175 = ", charset = "\176 = ~", charset = "\177 = ", charset = "\200 = ", charset = "\201 = ", charset = "\202 = ", charset = "\203 = ", charset = "\204 = ", charset = "\205 = ", charset = "\206 = ", charset = "\207 = ", charset = "\210 = ", charset = "\211 = ", charset = "\212 = ", charset = "\213 = ", charset = "\214 = ", charset = "\215 = ", charset = "\216 = ", charset = "\217 = ", charset = "\220 = ", charset = "\221 = ", charset = "\222 = ", charset = "\223 = ", charset = "\224 = ", charset = "\225 = ", charset = "\226 = ", charset = "\227 = ", charset = "\230 = ", charset = "\231 = ", charset = "\232 = ", charset = "\233 = ", charset = "\234 = ", charset = "\235 = ", charset = "\236 = ", charset = "\237 = ", charset = "\240 = ", charset = "\241 = ", charset = "\242 = ", charset = "\243 = ", charset = "\244 = ", charset = "\245 = ", charset = "\246 = ", charset = "\247 = ", charset = "\250 = ", charset = "\251 = ", charset = "\252 = ", charset = "\253 = ", charset = "\254 = ", charset = "\255 = ", charset = "\256 = ", charset = "\257 = ", charset = "\260 = ", charset = "\261 = ", charset = "\262 = ", charset = "\263 = ", charset = "\264 = ", charset = "\265 = ", charset = "\266 = ", charset = "\267 = ", charset = "\270 = ", charset = "\271 = ", charset = "\272 = ", charset = "\273 = ", charset = "\274 = ", charset = "\275 = ", charset = "\276 = ", charset = "\277 = ", charset = "\300 = ", charset = "\301 = ", charset = "\302 = ", charset = "\303 = ", charset = "\304 = ", charset = "\305 = ", charset = "\306 = ", charset = "\307 = ", charset = "\310 = ", charset = "\311 = ", charset = "\312 = ", charset = "\313 = ", charset = "\314 = ", charset = "\315 = ", charset = "\316 = ", charset = "\317 = ", charset = "\320 = ", charset = "\321 = ", charset = "\322 = ", charset = "\323 = ", charset = "\324 = ", charset = "\325 = ", charset = "\326 = ", charset = "\327 = ", charset = "\330 = ", charset = "\331 = ", charset = "\332 = ", charset = "\333 = ", charset = "\334 = ", charset = "\335 = ", charset = "\336 = ", charset = "\337 = ", charset = "\340 = ", charset = "\341 = ", charset = "\342 = ", charset = "\343 = ", charset = "\344 = ", charset = "\345 = ", charset = "\346 = ", charset = "\347 = ", charset = "\350 = ", charset = "\351 = ", charset = "\352 = ", charset = "\353 = ", charset = "\354 = ", charset = "\355 = ", charset = "\356 = ", charset = "\357 = ", charset = "\360 = ", charset = "\361 = ", charset = "\362 = ", charset = "\363 = ", charset = "\364 = ", charset = "\365 = ", charset = "\366 = ", charset = "\367 = ", charset = "\370 = ", charset = "\371 = ", charset = "\372 = ", charset = "\373 = ", charset = "\374 = ", charset = "\375 = ", charset = "\376 = ", charset = "\377 = ", } bibclean-3.07/test/topt166.bib0000444000156700015670000000000012470142231014744 0ustar beebebeebebibclean-3.07/test/testopt4.bib0000444000156700015670000000000007342756043015325 0ustar beebebeebebibclean-3.07/test/topt336.opt0000444000156700015670000000002112470142160015015 0ustar beebebeebe--no-fix-accents bibclean-3.07/test/testopts.bib0000444000156700015670000000517512072652765015450 0ustar beebebeebe@Misc{x, title = "On {Galileo} and his {{\em Dialogue}}", } @Misc{x, title = "{Einstein}'s relativity: a companion to {Einstein}'s {\booktitle{The meaning of relativity}}", } @Misc{x, title = "Erratum: {Bose--Einstein condensation in the alkali gases: Some fundamental concepts [Rev. Mod. Phys. {\bf 73}, 307 (2001)]}", } @Misc{x, title = "{Zum {\em Ehrenfest}schen Paradoxon. Bemerkung zu {\em V. Varicaks} Aufsatz}. ({German}) [{On} the {Ehrenfest} paradox: Remark on {V. Varicaks}'s essay]", } @Misc{x, booktitle = "PARLE, Parallel Architectures and Languages Europe: Eindhoven, The Netherlands, June 15--19, 1987: Proceedings. Part II. Parallel Languages", } @Misc{x, title = "{\TeX}, XML, and Digital Typography: International Conference on {\TeX}, XML, and Digital Typography, held jointly with the 25th Annual Meeting of the {\TeX} Users Group, TUG 2004, Xanthi, Greece, August 30--September 3, 2004: Proceedings", } @Misc{x, title = "The 4.4BSD Operating System", title = "The Design and Implementation of the 4.4{BSD} Operating System", } @Misc{x, title = "Dots, dots, dots, ... and more dots", } @Misc{x, title = "Part XVII.", } @Misc{x, title = "Part III of XVII", } @Misc{x, title = "IEEE 802.11(p)/1609 network standard", } @Misc{x, author = "H\'an{ }Th\^e\llap{\raise 0.5ex\hbox{\'{\relax}}}{ }Th\'anh", } @Misc{x, author = "Kawasaki{ }Kimio", } @Misc{x, author = "Mao{ }Tse-Tung", } @Misc{x, author = "Neumann{ }Jan{\'o}s", } @Misc{x, author = "Park{ }Chung-hee", } @Misc{x, author = "{von{ }E{\"o}tv{\"o}s{ }Lor{\'a}nd}", } @Misc{x, title = "The fraternity $\Sigma \Phi \Delta$", } @Misc{x, title = "The fraternity $\Sigma \Phi \Delta$ and others", } @Misc{x, title = "The fraternity $$\Sigma \Phi \Delta$$", } @Misc{x, title = "The fraternity $$\Sigma \Phi \Delta$$ and others", } @Misc{x, title = "Unclosed display math mode $$\sigma and others", } @Misc{x, title = "Unclosed normal math mode $\sigma and others", } @Misc{x, title = "{\TeX}, XML, etc.", title = "Part XVII.", } @Misc{x, title = "Dots, dots, dots, ...", title = "Part XVII.", } @Misc{x, title = "{\TeX}book", } @Misc{x, title = "{\TeX book}", } @Misc{x, title = "{\em Bose--Einstein}", } @Misc{x, title = "{\H o} is {O}-long-Hungarianaccent", } @Misc{x, title = "{\"O} is {O}-with-umlaut", } bibclean-3.07/test/topt114.bib0000444000156700015670000000000012470142227014742 0ustar beebebeebebibclean-3.07/test/topt327.bib0000444000156700015670000000000012470142231014743 0ustar beebebeebebibclean-3.07/test/topt105.opt0000444000156700015670000000001012470142073015010 0ustar beebebeebe-author bibclean-3.07/test/topt168.bib0000444000156700015670000000000012470142231014746 0ustar beebebeebebibclean-3.07/test/okay/0000775000156700015670000000000014431412254014030 5ustar beebebeebebibclean-3.07/test/okay/testbib1.err0000444000156700015670000000310012071124034016237 0ustar beebebeebe%% testbib1.bib:48:Unexpected value in ``chapter = "23."''. %% testbib1.bib:49:Unexpected value in ``chapter = "Two"''. %% testbib1.bib:51:Unexpected value in ``month = "janvier"''. %% testbib1.bib:53:Unexpected value in ``pages = "1,3,5,7"''. %% testbib1.bib:54:Unexpected value in ``pages = "1--3, 5, 7"''. %% testbib1.bib:55:Unexpected value in ``pages = "10,560--10,574"''. %% testbib1.bib:56:Unexpected value in ``pages = "12--13, 17, 18"''. %% testbib1.bib:59:Unexpected value in ``pages = "445 + viii with 30 illustrations"''. %% testbib1.bib:60:Unexpected value in ``pages = "445 + viii"''. %% testbib1.bib:62:Unexpected value in ``price = "DM\$60.5"''. %% testbib1.bib:63:Unexpected value in ``price = "DM\$60.537"''. %% testbib1.bib:64:Unexpected value in ``price = "US\$12.9"''. %% testbib1.bib:65:Put country prefix on price "\$12.95". %% testbib1.bib:66:Put country prefix on price "\$13". %% testbib1.bib:67:Put country prefix on price "\pounds 13". %% testbib1.bib:69:Unexpected value in ``volume = "1."''. %% testbib1.bib:70:Unexpected value in ``volume = "12(5)"''. %% testbib1.bib:71:Unexpected value in ``volume = "1:"''. %% testbib1.bib:73:Unexpected value in ``year = "(1985)"''. %% testbib1.bib:74:Unexpected value in ``year = "1789"''. %% testbib1.bib:74:Suspicious year in ``year = "1789"''. %% testbib1.bib:75:Unexpected value in ``year = "23"''. %% testbib1.bib:75:Suspicious year in ``year = "23"''. %% testbib1.bib:76:Unexpected value in ``year = "2525"''. %% testbib1.bib:76:Suspicious year in ``year = "2525"''. %% testbib1.bib:77:Unexpected value in ``year = "????"''. bibclean-3.07/test/okay/topt325.out0000444000156700015670000000000112470143225015764 0ustar beebebeebe bibclean-3.07/test/okay/topt121.err0000444000156700015670000000000012470142673015744 0ustar beebebeebebibclean-3.07/test/okay/testoptd.out0000444000156700015670000000000107342757232016425 0ustar beebebeebe bibclean-3.07/test/okay/topt312.err0000444000156700015670000000000012470142674015747 0ustar beebebeebebibclean-3.07/test/okay/topt116.out0000444000156700015670000000000112470143210015754 0ustar beebebeebe bibclean-3.07/test/okay/testscr2.err0000444000156700015670000000000005304617564016307 0ustar beebebeebebibclean-3.07/test/okay/topt359.out0000444000156700015670000000000112470143232015771 0ustar beebebeebe bibclean-3.07/test/okay/topt315.err0000444000156700015670000000000012470142674015752 0ustar beebebeebebibclean-3.07/test/okay/testoptc.out0000444000156700015670000000000007342757115016423 0ustar beebebeebebibclean-3.07/test/okay/topt111.out0000444000156700015670000000000112470143207015755 0ustar beebebeebe bibclean-3.07/test/okay/tstctype.out0000444000156700015670000000604107721761445016452 0ustar beebebeebe Test of isalnum: 48 49 50 51 52 53 54 55 56 57 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 Test of isalnum: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz Test of isalpha: 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 Test of isalpha: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz Test of iscntrl: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127 Test of iscntrl:   Test of isdigit: 48 49 50 51 52 53 54 55 56 57 Test of isdigit: 0123456789 Test of isgraph: 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 Test of isgraph: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Test of islower: 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 Test of islower: abcdefghijklmnopqrstuvwxyz Test of isprint: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 Test of isprint: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Test of ispunct: 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 58 59 60 61 62 63 64 91 92 93 94 95 96 123 124 125 126 Test of ispunct: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ Test of isspace: 9 10 11 12 13 32 Test of isspace: Test of isupper: 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 Test of isupper: ABCDEFGHIJKLMNOPQRSTUVWXYZ Test of isxdigit: 48 49 50 51 52 53 54 55 56 57 65 66 67 68 69 70 97 98 99 100 101 102 Test of isxdigit: 0123456789ABCDEFabcdef Test of tolower: 65->97 66->98 67->99 68->100 69->101 70->102 71->103 72->104 73->105 74->106 75->107 76->108 77->109 78->110 79->111 80->112 81->113 82->114 83->115 84->116 85->117 86->118 87->119 88->120 89->121 90->122 Test of tolower: A->a B->b C->c D->d E->e F->f G->g H->h I->i J->j K->k L->l M->m N->n O->o P->p Q->q R->r S->s T->t U->u V->v W->w X->x Y->y Z->z Test of toupper: 97->65 98->66 99->67 100->68 101->69 102->70 103->71 104->72 105->73 106->74 107->75 108->76 109->77 110->78 111->79 112->80 113->81 114->82 115->83 116->84 117->85 118->86 119->87 120->88 121->89 122->90 Test of toupper: a->A b->B c->C d->D e->E f->F g->G h->H i->I j->J k->K l->L m->M n->N o->O p->P q->Q r->R s->S t->T u->U v->V w->W x->X y->Y z->Z bibclean-3.07/test/okay/topt369.err0000444000156700015670000000000012470142676015765 0ustar beebebeebebibclean-3.07/test/okay/testbib6.err0000444000156700015670000001562612071124036016266 0ustar beebebeebe%% testbib6.bib:7:Unexpected value in ``month = MAR # "- " # APR''. %% testbib6.bib:8:Unexpected value in ``month = MAR # "-" # APR''. %% testbib6.bib:9:Unexpected value in ``month = mar # "- " # apr''. %% testbib6.bib:10:Unexpected value in ``month = mar # "-" # apr''. %% testbib6.bib:12:Unexpected value in ``month = MAR # "-- " # APR''. %% testbib6.bib:14:Unexpected value in ``month = mar # "-- " # apr''. %% testbib6.bib:22:Unexpected value in ``month = MAR # " \endash{} " # APR''. %% testbib6.bib:23:Unexpected value in ``month = MAR # "\endash{} " # APR''. %% testbib6.bib:24:Unexpected value in ``month = mar # " \endash{} " # apr''. %% testbib6.bib:25:Unexpected value in ``month = mar # "\endash{} " # apr''. %% testbib6.bib:27:Unexpected value in ``month = MAR # " \endash " # APR''. %% testbib6.bib:29:Unexpected value in ``month = mar # " \endash " # apr''. %% testbib6.bib:37:Unexpected value in ``month = mar # "- " # APR''. %% testbib6.bib:38:Unexpected value in ``month = mar # "-" # APR''. %% testbib6.bib:39:Unexpected value in ``month = mar # "- " # apr''. %% testbib6.bib:40:Unexpected value in ``month = mar # "-" # apr''. %% testbib6.bib:42:Unexpected value in ``month = mar # "-- " # APR''. %% testbib6.bib:44:Unexpected value in ``month = mar # "-- " # apr''. %% testbib6.bib:52:Unexpected value in ``month = mar # " \endash{} " # APR''. %% testbib6.bib:53:Unexpected value in ``month = mar # "\endash{} " # APR''. %% testbib6.bib:54:Unexpected value in ``month = mar # " \endash{} " # apr''. %% testbib6.bib:55:Unexpected value in ``month = mar # "\endash{} " # apr''. %% testbib6.bib:57:Unexpected value in ``month = mar # " \endash " # APR''. %% testbib6.bib:59:Unexpected value in ``month = mar # " \endash " # apr''. %% testbib6.bib:67:Unexpected value in ``month = MAR # "- " # apr''. %% testbib6.bib:68:Unexpected value in ``month = MAR # "-" # apr''. %% testbib6.bib:69:Unexpected value in ``month = mar # "- " # apr''. %% testbib6.bib:70:Unexpected value in ``month = mar # "-" # apr''. %% testbib6.bib:72:Unexpected value in ``month = MAR # "-- " # apr''. %% testbib6.bib:74:Unexpected value in ``month = mar # "-- " # apr''. %% testbib6.bib:82:Unexpected value in ``month = MAR # " \endash{} " # apr''. %% testbib6.bib:83:Unexpected value in ``month = MAR # "\endash{} " # apr''. %% testbib6.bib:84:Unexpected value in ``month = mar # " \endash{} " # apr''. %% testbib6.bib:85:Unexpected value in ``month = mar # "\endash{} " # apr''. %% testbib6.bib:87:Unexpected value in ``month = MAR # " \endash " # apr''. %% testbib6.bib:89:Unexpected value in ``month = mar # " \endash " # apr''. %% testbib6.bib:97:Unexpected value in ``month = mar # "- " # apr''. %% testbib6.bib:98:Unexpected value in ``month = mar # "-" # apr''. %% testbib6.bib:99:Unexpected value in ``month = mar # "- " # apr''. %% testbib6.bib:100:Unexpected value in ``month = mar # "-" # apr''. %% testbib6.bib:102:Unexpected value in ``month = mar # "-- " # apr''. %% testbib6.bib:104:Unexpected value in ``month = mar # "-- " # apr''. %% testbib6.bib:112:Unexpected value in ``month = mar # " \endash{} " # apr''. %% testbib6.bib:113:Unexpected value in ``month = mar # "\endash{} " # apr''. %% testbib6.bib:114:Unexpected value in ``month = mar # " \endash{} " # apr''. %% testbib6.bib:115:Unexpected value in ``month = mar # "\endash{} " # apr''. %% testbib6.bib:117:Unexpected value in ``month = mar # " \endash " # apr''. %% testbib6.bib:119:Unexpected value in ``month = mar # " \endash " # apr''. %% testbib6.bib:127:Unexpected value in ``month = MAR # "- " # APR''. %% testbib6.bib:128:Unexpected value in ``month = MAR # "-" # APR''. %% testbib6.bib:129:Unexpected value in ``month = mar # "- " # apr''. %% testbib6.bib:130:Unexpected value in ``month = mar # "-" # apr''. %% testbib6.bib:132:Unexpected value in ``month = MAR # "-- " # APR''. %% testbib6.bib:134:Unexpected value in ``month = mar # "-- " # apr''. %% testbib6.bib:142:Unexpected value in ``month = MAR # " \endash{} " # APR''. %% testbib6.bib:143:Unexpected value in ``month = MAR # "\endash{} " # APR''. %% testbib6.bib:144:Unexpected value in ``month = mar # " \endash{} " # apr''. %% testbib6.bib:145:Unexpected value in ``month = mar # "\endash{} " # apr''. %% testbib6.bib:147:Unexpected value in ``month = MAR # " \endash " # APR''. %% testbib6.bib:149:Unexpected value in ``month = mar # " \endash " # apr''. %% testbib6.bib:157:Unexpected value in ``month = mar # "- " # APR''. %% testbib6.bib:158:Unexpected value in ``month = mar # "-" # APR''. %% testbib6.bib:159:Unexpected value in ``month = mar # "- " # apr''. %% testbib6.bib:160:Unexpected value in ``month = mar # "-" # apr''. %% testbib6.bib:162:Unexpected value in ``month = mar # "-- " # APR''. %% testbib6.bib:164:Unexpected value in ``month = mar # "-- " # apr''. %% testbib6.bib:172:Unexpected value in ``month = mar # " \endash{} " # APR''. %% testbib6.bib:173:Unexpected value in ``month = mar # "\endash{} " # APR''. %% testbib6.bib:174:Unexpected value in ``month = mar # " \endash{} " # apr''. %% testbib6.bib:175:Unexpected value in ``month = mar # "\endash{} " # apr''. %% testbib6.bib:177:Unexpected value in ``month = mar # " \endash " # APR''. %% testbib6.bib:179:Unexpected value in ``month = mar # " \endash " # apr''. %% testbib6.bib:187:Unexpected value in ``month = MAR # "- " # apr''. %% testbib6.bib:188:Unexpected value in ``month = MAR # "-" # apr''. %% testbib6.bib:189:Unexpected value in ``month = mar # "- " # apr''. %% testbib6.bib:190:Unexpected value in ``month = mar # "-" # apr''. %% testbib6.bib:192:Unexpected value in ``month = MAR # "-- " # apr''. %% testbib6.bib:194:Unexpected value in ``month = mar # "-- " # apr''. %% testbib6.bib:202:Unexpected value in ``month = MAR # " \endash{} " # apr''. %% testbib6.bib:203:Unexpected value in ``month = MAR # "\endash{} " # apr''. %% testbib6.bib:204:Unexpected value in ``month = mar # " \endash{} " # apr''. %% testbib6.bib:205:Unexpected value in ``month = mar # "\endash{} " # apr''. %% testbib6.bib:207:Unexpected value in ``month = MAR # " \endash " # apr''. %% testbib6.bib:209:Unexpected value in ``month = mar # " \endash " # apr''. %% testbib6.bib:217:Unexpected value in ``month = mar # "- " # apr''. %% testbib6.bib:218:Unexpected value in ``month = mar # "-" # apr''. %% testbib6.bib:219:Unexpected value in ``month = mar # "- " # apr''. %% testbib6.bib:220:Unexpected value in ``month = mar # "-" # apr''. %% testbib6.bib:222:Unexpected value in ``month = mar # "-- " # apr''. %% testbib6.bib:224:Unexpected value in ``month = mar # "-- " # apr''. %% testbib6.bib:232:Unexpected value in ``month = mar # " \endash{} " # apr''. %% testbib6.bib:233:Unexpected value in ``month = mar # "\endash{} " # apr''. %% testbib6.bib:234:Unexpected value in ``month = mar # " \endash{} " # apr''. %% testbib6.bib:235:Unexpected value in ``month = mar # "\endash{} " # apr''. %% testbib6.bib:237:Unexpected value in ``month = mar # " \endash " # apr''. %% testbib6.bib:239:Unexpected value in ``month = mar # " \endash " # apr''. bibclean-3.07/test/okay/topt322.out0000444000156700015670000000000112470143225015761 0ustar beebebeebe bibclean-3.07/test/okay/topt126.err0000444000156700015670000000000012470142673015751 0ustar beebebeebebibclean-3.07/test/okay/testopt3.err0000444000156700015670000000000007342755360016324 0ustar beebebeebebibclean-3.07/test/okay/testoptm.out0000444000156700015670000000325712071104574016444 0ustar beebebeebe@Book{Kohonen:1980:CAM, author = "Teuvo Kohonen", title = "Content-addressable memories", publisher = pub-SV, address = pub-SV:adr, pages = "xi + 368", year = "1980", ISBN = "0-387-09823-2 (New York), 3-540-09823-2 (Berlin)", ISBN-13 = "978-0-387-09823-4 (New York), 978-3-540-09823-2 (Berlin)", ISBN-13 = "978-0-387-09823-X (bad check digit)", ISBN-13 = "9-770-387098234-x (bad prefix)", LCCN = "TK7895.M4 K63", bibdate = "Mon Jul 18 20:44:15 1994", bibsource = "http://www.math.utah.edu/pub/tex/bib/hash.bib", note = "Hashing is covered in the discussion of software-based content-addressable memories in Chapter 2.", price = "US\$39.00", acknowledgement = ack-nhfb, } @Book{Schlick:1979:PP, author = "Moritz Schlick and Henk L. Mulder and Barbara F. B. van de Velde-Schlick", title = "Philosophical papers", volume = "11", publisher = pub-REIDEL, address = pub-REIDEL:adr, pages = "various", year = "1979", ISBN = "90-277-0314-0 (vol. 1)", ISBN-13 = "978-90-277-0314-9 (vol. 1)", LCCN = "B3329.S4872 E5 1979", bibdate = "Tue Oct 10 07:23:24 MDT 2006", bibsource = "http://www.math.utah.edu/pub/tex/bib/einstein.bib; z3950.loc.gov:7090/Voyager", note = "English translation by Peter Heath of \cite{Schlick:1915:PBR}.", series = "Vienna circle collection", acknowledgement = ack-nhfb, author-dates = "1882--1936", remark = "v. 1. 1909--1922.", subject = "Philosophy", } bibclean-3.07/test/okay/testoptt.err0000444000156700015670000000020112072700547016421 0ustar beebebeebe%% testoptt.bib:96:Final period/dot/fullstop is unexpected, and often wrong, in BibTeX title ``"Let $x$ and $y$ be positive."''. bibclean-3.07/test/okay/topt350.out0000444000156700015670000000000112470143230015756 0ustar beebebeebe bibclean-3.07/test/okay/testscr4.blg0000444000156700015670000000134307342750523016275 0ustar beebebeebeWarning--entry type for "COMMENT" isn't style-file defined --line 1 of file testscr4.bib Repeated entry---line 6 of file testscr4.bib : @end{COMMENT : } I'm skipping whatever remains of this entry Warning--string name "bsi" is undefined --line 56 of file testscr4.bib Warning--string name "bs" is undefined --line 61 of file testscr4.bib Warning--string name "bsi" is undefined --line 66 of file testscr4.bib Warning--string name "bs" is undefined --line 72 of file testscr4.bib Warning--to sort, need author or key in COMMENT Warning--to sort, need author or key in bs-1629-4 Warning--to sort, need author or key in bs-1629-5 Warning--empty author in bs-1629-4 Warning--empty author in bs-1629-5 (There was 1 error message) bibclean-3.07/test/okay/topt154.err0000444000156700015670000000000012470142673015752 0ustar beebebeebebibclean-3.07/test/okay/topt367.err0000444000156700015670000000000012470142676015763 0ustar beebebeebebibclean-3.07/test/okay/topt163.out0000444000156700015670000000000112470143224015763 0ustar beebebeebe bibclean-3.07/test/okay/testbib8.err0000444000156700015670000000000012663432753016263 0ustar beebebeebebibclean-3.07/test/okay/topt128.err0000444000156700015670000000000012470142673015753 0ustar beebebeebebibclean-3.07/test/okay/topt360.err0000444000156700015670000000000012470142676015754 0ustar beebebeebebibclean-3.07/test/okay/topt164.out0000444000156700015670000000000112470143224015764 0ustar beebebeebe bibclean-3.07/test/okay/testopt4.err0000444000156700015670000000000007342755360016325 0ustar beebebeebebibclean-3.07/test/okay/topt118.out0000444000156700015670000000000112470143210015756 0ustar beebebeebe bibclean-3.07/test/okay/testoptj.out0000444000156700015670000000000007343033323016417 0ustar beebebeebebibclean-3.07/test/okay/testopts.err0000444000156700015670000000200314023206351016412 0ustar beebebeebe%% testopts.bib:43:Literal ellipsis ... should probably be \ldots{} in BibTeX title ``"Dots, dots, dots, ... and more dots"''. %% testopts.bib:47:Final period/dot/fullstop is unexpected, and often wrong, in BibTeX title ``"Part {XVII}."''. %% testopts.bib:98:Unclosed math mode in value ``"Unclosed display math mode $$\sigma and others"''. %% testopts.bib:102:Unclosed math mode in value ``"Unclosed normal math mode $\sigma and others"''. %% testopts.bib:106:Final period/dot/fullstop is unexpected, and often wrong, in BibTeX title ``"{\TeX}, {XML}, etc."''. %% testopts.bib:107:Final period/dot/fullstop is unexpected, and often wrong, in BibTeX title ``"Part {XVII}."''. %% testopts.bib:111:Final period/dot/fullstop is unexpected, and often wrong, in BibTeX title ``"Dots, dots, dots, ..."''. %% testopts.bib:111:Literal ellipsis ... should probably be \ldots{} in BibTeX title ``"Dots, dots, dots, ..."''. %% testopts.bib:112:Final period/dot/fullstop is unexpected, and often wrong, in BibTeX title ``"Part {XVII}."''. bibclean-3.07/test/okay/topt357.out0000444000156700015670000000000112470143231015766 0ustar beebebeebe bibclean-3.07/test/okay/topt153.err0000444000156700015670000000000012470142673015751 0ustar beebebeebebibclean-3.07/test/okay/testscr3.blg0000444000156700015670000000304607342750522016275 0ustar beebebeebeWarning--entry type for "CommENT" isn't style-file defined --line 3 of file testscr3.bib I was expecting a `{' or a `('---line 6 of file testscr3.bib : @end : I'm skipping whatever remains of this entry Repeated entry---line 8 of file testscr3.bib : @begin {CommENT : } I'm skipping whatever remains of this entry Warning--entry type for "foo" isn't style-file defined --line 11 of file testscr3.bib Warning--entry type for "bar" isn't style-file defined --line 12 of file testscr3.bib Repeated entry---line 13 of file testscr3.bib : @end{bar : } I'm skipping whatever remains of this entry Repeated entry---line 14 of file testscr3.bib : @end{foo : } I'm skipping whatever remains of this entry I was expecting a `{' or a `('---line 15 of file testscr3.bib : @end : I'm skipping whatever remains of this entry Repeated entry---line 17 of file testscr3.bib : @begin {CommENT : } I'm skipping whatever remains of this entry I was expecting a `{' or a `('---line 20 of file testscr3.bib : @end : I'm skipping whatever remains of this entry Repeated entry---line 22 of file testscr3.bib : @begin {CommENT : } I'm skipping whatever remains of this entry I was expecting a `{' or a `('---line 25 of file testscr3.bib : @end : I'm skipping whatever remains of this entry Warning--to sort, need author or key in CommENT Warning--to sort, need author or key in foo Warning--to sort, need author or key in bar (There were 9 error messages) bibclean-3.07/test/okay/topt355.err0000444000156700015670000000000012470142676015760 0ustar beebebeebebibclean-3.07/test/okay/topt151.out0000444000156700015670000000000112470143222015756 0ustar beebebeebe bibclean-3.07/test/okay/testoptq.out0000444000156700015670000000572512072653002016446 0ustar beebebeebe@Misc{x, author = "H{\aa}kon Sza{\ss}-{\O}berg and Yngve {\"O}rstad and Hanne {\'A}ngel", } @Misc{x, author = "Rezs{\H{o}} Tarj{\'a}n", } @Misc{x, author = "Neumann{ }J{\'a}nos and Wigner{ }Jen{\H{o}}", } @Misc{x, note = "Allegedly written by {H{\aa}kon Sza{\ss}-{\O}berg} and Yngve {\"O}rstad and Hanne {\'A}ngel.", } @Misc{x, title = "The fraternity {$\Sigma \Phi \Delta$}", } @Misc{x, title = "Houses in {\AE}r{\o}sk{\o}bing on {\AE}r{\o}", } @Misc{x, title = "Huse i {\AE}r{\o}sk{\o}bing p{\aa}\ {\AE}r{\o}, Danmark", } @Misc{x, title = "Huse i {\AE}r{\o}sk{\o}bing p\aardvark\ {\AE}r{\o}, Danmark", } @Misc{x, title = "A Geometriai {T}{\'e}rfogalom Fejl{\H{o}}d{\'e}se: {A} geometriai fogalmak fejl d{\'e}se {P}{\"u}thagoraszt{\'o}l Hilbertig {\'e}s Einsteinig [{The} geometric concept of space development: The development of geometric concepts from {Pythagoras} to {Hilbert} and {Einstein}]", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/l/lanczos-cornelius.bib", } @Misc{x, title = "Az id{\H{o}}t{\"u}kr{\"o}z{\'e}s a kvantummechanik{\'a}ban. ({Hungarian}) [{Mirroring} time in quantum mechanics]", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/w/wigner-eugene.bib", } @Misc{x, title = "Keser{\H{u}} {\'e}s vigasztal{\'o} eml{\'e}kez{\'e}s. ({Hungarian}) [{Bitter} memories and comforting ones]", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/w/wigner-eugene.bib", } @Misc{x, title = "A tudom{\'a}ny n{\"o}veked{\'e}se --- kedvez{\H{o}} kil{\'a}t{\'a}sok {\'e}s v{\'a}rhat{\'o} vesz{\'e}lyek. ({Hungarian}) [{The} growth of science and a positive outlook: expected hazards]", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/w/wigner-eugene.bib", } @Misc{x, title = "\ldots{} Nincs m{\'e}g {\'a}tfog{\'o} elm{\'e}let [El{\"o}ad{\'a}s az {ELTE} {\"u}nnepi {{\"u}l{\'e}s{\'e}n, 1987}. november 17-{\'e}n: Videofelv{\'e}telr{\"o}l {\'a}t{\'\i}rta {Marx Gy{\"o}rgy}]. ({Hungarian}) [{There} is no comprehensive theory [{Lecture} at the celebration of {E{\"o}tv{\"o}s}, {17 November 1987}: Video recordings transcribed by {George Marx}]]", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/w/wigner-eugene.bib", } @Misc{x, title = "Baidoties no ekonomikas recesijas, kas skartu visu pasauli, amerik{\=a}{\c{n}}i izv{\=e}las pl{\=a}noto taup{\=\i}{\v{s}}anu atcelt l{\=\i}dz febru{\=a}rim. Mekl{\=e}s citu br{\=\i}numn{\=u}ji{\c{n}}u.", URL = "http://news.lv/library/regional", } bibclean-3.07/test/okay/testopth.err0000444000156700015670000000000007342757570016416 0ustar beebebeebebibclean-3.07/test/okay/testopt6.out0000444000156700015670000000000007342757115016346 0ustar beebebeebebibclean-3.07/test/okay/topt329.err0000444000156700015670000000000012470142676015761 0ustar beebebeebebibclean-3.07/test/okay/topt362.out0000444000156700015670000000000012470142676015775 0ustar beebebeebebibclean-3.07/test/okay/topt166.err0000444000156700015670000000000012470142674015756 0ustar beebebeebebibclean-3.07/test/okay/topt365.out0000444000156700015670000000000112470143234015770 0ustar beebebeebe bibclean-3.07/test/okay/topt161.err0000444000156700015670000022174014023240750015757 0ustar beebebeebe%%% ISBN ranges and country/language groups 0-00 0-19 Region name: Australia Country code(s): AU Language group: 0 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 89999 ; 900000 - 949999 ; 9500000 - 9999999 0-200 0-699 0-2280 0-2289 0-229 0-368 0-3690 0-3699 0-370 0-638 0-6390 0-6397 0-6398000 0-6399999 0-640 0-644 0-6450000 0-6459999 0-646 0-647 0-6480000 0-6489999 0-649 0-654 0-6550 0-6559 0-656 0-699 0-7000 0-8499 0-85000 0-89999 0-900000 0-949999 0-9500000 0-9999999 1-000 1-009 Region name: English language Country code(s): ?? Language group: 1 Publisher(s): 000 - 009; 01 - 02; 030 - 034; 0350 - 0399; 04 - 06; 0700 - 0999; 100 - 397; 3980 - 5499; 55000 - 64999; 6500 - 6799; 68000 - 68599; 6860 - 7139; 714 - 716; 7170 - 7319; 7320000 - 7399999; 74000 - 77499; 7750000 - 7753999; 77540 - 77639; 7764000 - 7764999; 77650 - 77699; 7770000 - 7782999; 77830 - 78999; 7900 - 7999; 80000 - 80049; 80050 - 80499; 80500 - 83799; 8380000 - 8384999; 83850 - 86719; 8672 - 8675; 86760 - 86979; 869800 - 915999; 9160000 - 9165059; 916506 - 972999; 9730 - 9877; 987800 - 991149; 9911500 - 9911999; 991200 - 998989; 9989900 - 9999999 1-01 1-02 1-030 1-034 1-0350 1-0399 1-04 1-06 1-0700 1-0999 1-100 1-399 1-3980 1-5499 1-55000 1-86979 1-6500 1-6799 1-68000 1-68599 1-6860 1-7139 1-714 1-716 1-7170 1-7319 1-7320000 1-7399999 1-74000 1-76999 Region name: Australia Country code(s): AU Language group: 1 Publisher(s): 74000 - 76999 ; 86250 - 86799 ; 875100 - 877099 ; 920680 - 926429 1-7750000 1-7753999 1-77540 1-77639 1-7764000 1-7764999 1-77650 1-77699 1-7770000 1-7782999 1-77830 1-78999 1-7900 1-7999 1-80000 1-80049 1-80050 1-80499 1-80500 1-83799 1-8380000 1-8384999 1-83850 1-86719 1-8672 1-8675 1-86760 1-86979 1-869800 1-998999 [24-Sep-2015] Additions from https://web.archive.org/web/20150801000000*/http://www.isbn-international.org/en/identifiers/List-of-Ranges.pdf 1-9160000 1-9165059 1-916506 1-972999 1-9730 1-9877 1-987800 1-991149 1-9911500 1-9911999 1-991200 1-998989 1-9989900 1-9999999 2-00 2-19 Region name: French language Country code(s): ?? Language group: 2 Publisher(s): 00 - 19; 200 - 349; 35000 - 39999; 400 - 699; 7000 - 8399; 84000 - 89999; 900000 - 949999; 9500000 - 9999999 2-200 2-349 2-35000 2-39999 2-400 2-699 2-490000 2-494999 2-495 2-499 Region name: Luxembourg Country code(s): LU Language group: 2 Publisher(s): 495 - 499 ; 87950 - 87999 ; 919769 - 919999 ; 9599769 - 9599999 2-4960 2-4966 2-49670 2-49699 2-497 2-699 2-7000 2-8399 2-84000 2-89999 2-900000 2-949999 2-91980 2-91980 2-919810 2-919942 2-9199430 2-9199689 2-919969 2-949999 2-9500000 2-9999999 3-00 3-02 Region name: German language Country code(s): ?? Language group: 3 Publisher(s): 00 - 02; 030 - 033; 0340 - 0369; 03700 - 03999; 04 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 949999; 9500000 - 9539999; 95400 - 96999; 9700000 - 9899999; 99000 - 99499; 99500 - 99999 3-030 3-033 3-0340 3-0369 3-03700 3-03999 3-04 3-19 3-200 3-699 3-7000 3-8499 3-85000 3-89999 3-900000 3-949999 3-9500000 3-9539999 3-95400 3-96999 3-9700000 3-9899999 3-98500 3-99999 4-00 4-19 Region name: Japan Country code(s): JP Language group: 4 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 949999; 9500000 - 9999999 4-200 4-699 4-7000 4-8499 4-85000 4-89999 4-900000 4-949999 4-9500000 4-9999999 5-00000 5-00499 Region name: former U.S.S.R Country code(s): ?? Language group: 5 Publisher(s): 00000 - 00499; 0050 - 0099; 01 - 19; 200 - 420; 4210 - 4299; 430 - 430; 4310 - 4399; 440 - 440; 4410 - 4499; 450 - 699; 7000 - 8499; 85000 - 89999; 900000 - 909999; 91000 - 91999; 9200 - 9299; 93000 - 94999; 9500000 - 9500999; 9501 - 9799; 98000 - 98999; 9900000 - 9909999; 9910 - 9999 5-0050 5-0099 5-01 5-19 5-200 5-420 5-4210 5-4299 5-430 5-430 5-4310 5-4399 5-440 5-440 5-4410 5-4499 5-450 5-699 5-6040000 5-6049999 5-605 5-699 5-7000 5-8499 5-85000 5-89999 5-900000 5-909999 5-91000 5-91999 5-9200 5-9299 5-93000 5-94999 5-9500000 5-9500999 5-9501 5-9799 5-98000 5-98999 5-9900000 5-9909999 5-9910 5-9999 600-00 600-09 Region name: Iran Country code(s): IR Language group: 600 Publisher(s): 00 - 09; 100 - 499; 5000 - 8999; 90000 - 99999 600-100 600-499 600-5000 600-8999 600-90000 600-99999 600-9868 600-9929 600-993 600-995 600-99600 600-99999 601-00 601-19 Region name: Kazakhstan Country code(s): KZ Language group: 601 Publisher(s): 00 - 19; 200 - 699; 7000 - 7999; 80000 - 84999; 85 - 99 601-200 601-699 601-7000 601-7999 601-80000 601-84999 601-85 601-99 602-00 602-07 Region name: Indonesia Country code(s): ID Language group: 602 Publisher(s): 00 - 07; 0800 - 0899; 0900 - 1099; 1100 - 1199; 1200 - 1399; 14000 - 14999; 1500 - 1699; 17000 - 17999; 18000 - 18999; 19000 - 19999; 200 - 674; 6750 - 6999; 70000 - 74999; 7500 - 7999; 8000 - 9499; 95000 - 99999 602-0700 602-1399 602-14000 602-14999 602-1500 602-1699 602-17000 602-17999 602-200 602-674 602-50000 602-53999 602-5400 602-5999 602-60000 602-61999 602-6200 602-6999 602-70000 602-74999 602-7500 602-7999 602-95000 602-99999 603-00 603-04 Region name: Saudi Arabia Country code(s): SA Language group: 603 Publisher(s): 00 - 04; 05 - 49; 500 - 799; 8000 - 8999; 90000 - 99999 603-05 603-49 603-500 603-799 603-8000 603-8999 603-90000 603-99999 604-0 604-4 Region name: Vietnam Country code(s): VN Language group: 604 Publisher(s): 0 - 4; 50 - 89; 900 - 979; 9800 - 9999 604-50 604-89 604-900 604-979 604-9800 604-9999 605-00 605-02 Region name: Turkey Country code(s): TR Language group: 605 Publisher(s): 00 - 02; 030 - 039; 04 - 05; 06000 - 06999; 07 - 09; 100 - 199; 2000 - 2399; 240 - 399; 4000 - 5999; 60000 - 74999; 7500 - 7999; 80000 - 89999; 9000 - 9999 605-030 605-039 605-04 605-09 605-06000 605-06999 605-07 605-09 605-100 605-399 605-2000 605-2399 605-240 605-399 605-4000 605-5999 605-60000 605-89999 605-7500 605-7999 605-80000 605-89999 605-9000 605-9999 606-000 606-089 Region name: Romania Country code(s): RO Language group: 606 Publisher(s): 000 - 089; 09 - 49; 500 - 799; 8000 - 9099; 910 - 919; 92000 - 96499; 9650 - 9749; 975 - 999 606-09 606-49 606-500 606-799 606-8000 606-9199 606-910 606-919 606-92000 606-99999 606-9650 606-9749 606-975 606-999 607-00 607-39 Region name: Mexico Country code(s): MX Language group: 607 Publisher(s): 00 - 39; 400 - 749; 7500 - 9499; 95000 - 99999 607-400 607-749 607-7500 607-9499 607-95000 607-99999 608-0 608-0 Region name: Macedonia Country code(s): MK Language group: 608 Publisher(s): 0 - 0; 10 - 19; 200 - 449; 4500 - 6499; 65000 - 69999; 7 - 9 608-10 608-19 608-200 608-449 608-4500 608-6499 608-65000 608-69999 608-7 608-9 609-00 609-39 Region name: Lithuania Country code(s): LT Language group: 609 Publisher(s): 00 - 39; 400 - 799; 8000 - 9499; 95000 - 99999 609-400 609-799 609-8000 609-9499 609-95000 609-99999 612-00 612-29 Region name: Peru Country code(s): PE Language group: 612 Publisher(s): 00 - 29; 300 - 399; 4000 - 4499; 45000 - 49999; 50 - 99 612-300 612-399 612-4000 612-4499 612-45000 612-49999 612-5000 612-5149 613-0 613-9 Region name: Mauritius Country code(s): MU Language group: 613 Publisher(s): 0 - 9 614-00 614-39 Region name: Lebanon Country code(s): LB Language group: 614 Publisher(s): 00 - 39; 400 - 799; 8000 - 9499; 95000 - 99999 614-400 614-799 614-8000 614-9499 614-95000 614-99999 615-00 615-09 Region name: Hungary Country code(s): HU Language group: 615 Publisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 89999 615-100 615-499 615-5000 615-7999 615-80000 615-89999 616-00 616-19 Region name: Thailand Country code(s): TH Language group: 616 Publisher(s): 00 - 19; 200 - 699; 7000 - 8999; 90000 - 99999 616-200 616-699 616-7000 616-8999 616-90000 616-99999 617-00 617-49 Region name: Ukraine Country code(s): UA Language group: 617 Publisher(s): 00 - 49; 500 - 699; 7000 - 8999; 90000 - 99999 617-500 617-699 617-7000 617-8999 617-90000 617-99999 618-00 618-19 Region name: Greece Country code(s): GR Language group: 618 Publisher(s): 00 - 19; 200 - 499; 5000 - 7999; 80000 - 99999 618-200 618-499 618-5000 618-7999 618-80000 618-99999 619-00 619-14 Region name: Bulgaria Country code(s): BG Language group: 619 Publisher(s): 00 - 14; 150 - 699; 7000 - 8999; 90000 - 99999 619-150 619-699 619-7000 619-8999 619-90000 619-99999 620-0 620-9 Region name: Mauritius Country code(s): MU Language group: 620 Publisher(s): 0 - 9 621-00 621-29 Region name: Philippines Country code(s): PH Language group: 621 Publisher(s): 00 - 29; 400 - 599; 8000 - 8999; 95000 - 99999 621-400 621-599 621-8000 621-8999 621-95000 621-99999 622-00 622-08 Region name: Iran Country code(s): IR Language group: 622 Publisher(s): 00 - 08; 200 - 299; 6000 - 7999; 95000 - 99999 622-200 622-299 622-6000 622-7999 622-95000 622-99999 623-00 623-09 Region name: Indonesia Country code(s): ID Language group: 623 Publisher(s): 00 - 09; 200 - 399; 6000 - 7999; 90000 - 99999 623-200 623-399 623-6000 623-7999 623-90000 623-99999 624-00 624-04 Region name: Sri Lanka Country code(s): LK Language group: 624 Publisher(s): 00 - 04; 200 - 249; 5000 - 5999; 95000 - 99999 624-200 624-249 624-5000 624-5999 624-95000 624-99999 625-00 625-00 Region name: Turkey Country code(s): TR Language group: 625 Publisher(s): 00 - 00; 400 - 449; 7000 - 7999 625-400 625-449 625-7000 625-7999 626-00 626-04 Region name: Taiwan Country code(s): TW Language group: 626 Publisher(s): 00 - 04; 300 - 499; 7000 - 7999; 95000 - 99999 626-300 626-499 626-7000 626-7999 626-95000 626-99999 65-00 65-01 Region name: Brazil Country code(s): BR Language group: 65 Publisher(s): 00 - 01; 250 - 299; 300 - 302; 5000 - 5129; 5500 - 5999; 80000 - 81824; 86000 - 89999; 900000 - 902449; 990000 - 999999 65-250 65-299 65-300 65-302 65-5000 65-5129 65-5500 65-5999 65-80000 65-81824 65-86000 65-89999 65-900000 65-902449 65-990000 65-999999 7-00 7-09 Region name: China, People's Republic Country code(s): CN Language group: 7 Publisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 89999; 900000 - 999999 7-100 7-499 7-5000 7-7999 7-80000 7-89999 7-900000 7-999999 80-00 80-19 Region name: former Czechoslovakia Country code(s): ?? Language group: 80 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 999999 80-200 80-699 80-7000 80-8499 80-85000 80-89999 80-900000 80-999999 80-99900 80-99999 81-00 81-19 Region name: India Country code(s): IN Language group: 81 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 999999 81-200 81-699 81-7000 81-8499 81-85000 81-89999 81-900000 81-999999 82-00 82-19 Region name: Norway Country code(s): NO Language group: 82 Publisher(s): 00 - 19; 200 - 689; 690000 - 699999; 7000 - 8999; 90000 - 98999; 990000 - 999999 82-200 82-689 82-690000 82-699999 82-7000 82-8999 82-90000 82-98999 82-990000 82-999999 83-00 83-19 Region name: Poland Country code(s): PL Language group: 83 Publisher(s): 00 - 19; 200 - 599; 60000 - 69999; 7000 - 8499; 85000 - 89999; 900000 - 999999 83-200 83-599 83-60000 83-69999 83-7000 83-8499 83-85000 83-89999 83-900000 83-999999 84-00 84-13 Region name: Spain Country code(s): ES Language group: 84 Publisher(s): 00 - 13; 140 - 149; 15000 - 19999; 200 - 699; 7000 - 8499; 85000 - 89999; 9000 - 9199; 920000 - 923999; 92400 - 92999; 930000 - 949999; 95000 - 96999; 9700 - 9999 84-1100 84-1199 84-120000 84-129999 84-1300 84-1399 84-140 84-149 84-15000 84-19999 84-200 84-699 84-7000 84-8499 84-85000 84-89999 84-9000 84-9199 84-920000 84-923999 84-92400 84-92999 84-930000 84-949999 84-95000 84-96999 84-9700 84-9999 85-00 85-19 Region name: Brazil Country code(s): BR Language group: 85 Publisher(s): 00 - 19; 200 - 549; 5500 - 5999; 60000 - 69999; 7000 - 8499; 85000 - 89999; 900000 - 959999; 96 - 97; 98000 - 99999 85-200 85-549 85-455000 85-455299 85-45530 85-45599 85-456 85-528 85-52900 85-53199 85-5320 85-5339 85-534 85-539 85-54000 85-54029 85-54030 85-54039 85-540400 85-540499 85-54050 85-54089 85-540900 85-540999 85-54100 85-54399 85-5440 85-5479 85-54800 85-54999 85-5500 85-5999 85-60000 85-69999 85-7000 85-8499 85-85000 85-89999 85-900000 85-959999 85-92500 85-94499 85-9450 85-9599 85-96 85-97 85-98000 85-99999 86-00 86-29 Region name: former Yugoslavia Country code(s): ?? Language group: 86 Publisher(s): 00 - 29; 300 - 599; 6000 - 7999; 80000 - 89999; 900000 - 999999 86-300 86-599 86-6000 86-7999 86-80000 86-89999 86-900000 86-999999 87-00 87-29 Region name: Denmark Country code(s): DK Language group: 87 Publisher(s): 00 - 29; 400 - 649; 7000 - 7999; 85000 - 94999; 970000 - 999999 87-400 87-649 87-7000 87-7999 87-85000 87-94999 87-970000 87-999999 88-00 88-19 Region name: Italy Country code(s): IT Language group: 88 Publisher(s): 00 - 19; 200 - 599; 6000 - 8499; 85000 - 89999; 900000 - 909999; 910 - 929; 9300 - 9399; 940000 - 949999; 95000 - 99999 88-200 88-599 88-31200 88-31499 88-315 88-318 88-31900 88-32299 88-323 88-326 88-3270 88-3389 88-339 88-360 88-3610 88-3629 88-363 88-548 88-5490 88-5549 88-555 88-599 88-6000 88-8499 88-85000 88-89999 88-900000 88-909999 88-910 88-929 88-9270 88-9399 88-940000 88-949999 88-94800 88-99999 89-00 89-24 Region name: Korea, Republic Country code(s): KR Language group: 89 Publisher(s): 00 - 24; 250 - 549; 5500 - 8499; 85000 - 94999; 950000 - 969999; 97000 - 98999; 990 - 999 89-250 89-549 89-5500 89-8499 89-85000 89-94999 89-950000 89-969999 89-97000 89-98999 89-990 89-999 90-00 90-19 Region name: Netherlands Country code(s): NL Language group: 90 Publisher(s): 00 - 19; 200 - 499; 5000 - 6999; 70000 - 79999; 800000 - 849999; 8500 - 8999; 90 - 90; 94 - 94 90-200 90-499 90-5000 90-6999 90-70000 90-79999 90-800000 90-849999 90-8500 90-8999 90-90 90-90 90-94 90-94 91-0 91-1 Region name: Sweden Country code(s): SE Language group: 91 Publisher(s): 0 - 1; 20 - 49; 500 - 649; 7000 - 7999; 85000 - 94999; 970000 - 999999 91-20 91-49 91-500 91-649 91-7000 91-7999 91-85000 91-94999 91-970000 91-999999 92-0 92-5 Region name: International NGO Publishers and EU Organizations Country code(s): ?? Language group: 92 Publisher(s): 0 - 5; 60 - 79; 800 - 899; 9000 - 9499; 95000 - 98999; 990000 - 999999 92-60 92-79 92-800 92-899 92-9000 92-9499 92-95000 92-98999 92-990000 92-999999 93-00 93-09 Region name: India Country code(s): IN Language group: 93 Publisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 94999; 950000 - 999999 93-100 93-499 93-5000 93-7999 93-80000 93-94999 93-950000 93-999999 94-000 94-599 Region name: Netherlands Country code(s): NL Language group: 94 Publisher(s): 000 - 599; 6000 - 8999; 90000 - 99999 94-6000 94-8999 94-90000 94-99999 950-00 950-49 Region name: Argentina Country code(s): AR Language group: 950 Publisher(s): 00 - 49; 500 - 899; 9000 - 9899; 99000 - 99999 950-500 950-899 950-9000 950-9899 950-99000 950-99999 951-0 951-1 Region name: Finland Country code(s): FI Language group: 951 Publisher(s): 0 - 1; 20 - 54; 550 - 889; 8900 - 9499; 95000 - 99999 951-20 951-54 951-550 951-889 951-8900 951-9499 951-95000 951-99999 952-00 952-19 Region name: Finland Country code(s): FI Language group: 952 Publisher(s): 00 - 19; 200 - 499; 5000 - 5999; 60 - 65; 6600 - 6699; 67000 - 69999; 7000 - 7999; 80 - 94; 9500 - 9899; 99000 - 99999 952-200 952-499 952-5000 952-5999 952-60 952-65 952-6600 952-6699 952-67000 952-69999 952-7000 952-7999 952-80 952-94 952-9500 952-9899 952-99000 952-99999 953-0 953-0 Region name: Croatia Country code(s): HR Language group: 953 Publisher(s): 0 - 0; 10 - 14; 150 - 509; 51 - 54; 55000 - 59999; 6000 - 9499; 95000 - 99999 953-10 953-14 953-150 953-509 953-48000 953-49999 953-500 953-500 953-50100 953-50999 953-51 953-54 953-55000 953-59999 953-6000 953-9499 953-95000 953-99999 954-00 954-28 Region name: Bulgaria Country code(s): BG Language group: 954 Publisher(s): 00 - 28; 2900 - 2999; 300 - 799; 8000 - 8999; 90000 - 92999; 9300 - 9999 954-2900 954-2999 954-300 954-799 954-8000 954-8999 954-90000 954-92999 954-9300 954-9999 955-0000 955-1999 Region name: Sri Lanka Country code(s): LK Language group: 955 Publisher(s): 0000 - 1999; 20 - 40; 41000 - 43999; 44000 - 44999; 4500 - 4999; 50000 - 54999; 550 - 749; 7500 - 7999; 8000 - 9499; 95000 - 99999 955-20 955-40 955-3400 955-3549 955-35500 955-35999 955-3600 955-3799 955-38000 955-38999 955-3900 955-4099 955-41000 955-43999 955-4500 955-4999 955-50000 955-54999 955-550 955-749 955-71100 955-71499 955-7150 955-9499 955-95000 955-99999 956-00 956-19 Region name: Chile Country code(s): CL Language group: 956 Publisher(s): 00 - 19; 200 - 699; 7000 - 9999 956-09000 956-09999 956-10 956-19 956-200 956-699 956-6000 956-6999 956-7000 956-9999 957-00 957-02 Region name: Taiwan Country code(s): TW Language group: 957 Publisher(s): 00 - 02; 0300 - 0499; 05 - 19; 2000 - 2099; 21 - 27; 28000 - 30999; 31 - 43; 440 - 819; 8200 - 9699; 97000 - 99999 957-0300 957-0499 957-05 957-19 957-2000 957-2099 957-21 957-27 957-28000 957-30999 957-31 957-43 957-440 957-819 957-8200 957-9699 957-97000 957-99999 958-00 958-56 Region name: Colombia Country code(s): CO Language group: 958 Publisher(s): 00 - 56; 57000 - 59999; 600 - 799; 8000 - 9499; 95000 - 99999 958-490 958-509 958-5100 958-5199 958-52000 958-53999 958-5400 958-5599 958-56000 958-59999 958-600 958-799 958-8000 958-9499 958-95000 958-99999 959-00 959-19 Region name: Cuba Country code(s): CU Language group: 959 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 99999 959-200 959-699 959-7000 959-8499 959-85000 959-99999 960-00 960-19 Region name: Greece Country code(s): GR Language group: 960 Publisher(s): 00 - 19; 200 - 659; 6600 - 6899; 690 - 699; 7000 - 8499; 85000 - 92999; 93 - 93; 9400 - 9799; 98000 - 99999 960-200 960-659 960-6600 960-6899 960-690 960-699 960-7000 960-8499 960-85000 960-92999 960-93 960-93 960-9400 960-9799 960-98000 960-99999 961-00 961-19 Region name: Slovenia Country code(s): SI Language group: 961 Publisher(s): 00 - 19; 200 - 599; 6000 - 8999; 90000 - 94999 961-200 961-599 961-6000 961-8999 961-90000 961-94999 962-00 962-19 Region name: Hong Kong, China Country code(s): HK Language group: 962 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 86999; 8700 - 8999; 900 - 999 962-200 962-699 962-7000 962-8499 962-85000 962-86999 962-8700 962-8999 962-900 962-999 963-00 963-19 Region name: Hungary Country code(s): HU Language group: 963 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 9000 - 9999 963-200 963-699 963-7000 963-8499 963-85000 963-89999 963-9000 963-9999 964-00 964-14 Region name: Iran Country code(s): IR Language group: 964 Publisher(s): 00 - 14; 150 - 249; 2500 - 2999; 300 - 549; 5500 - 8999; 90000 - 96999; 970 - 989; 9900 - 9999 964-150 964-249 964-2500 964-2999 964-300 964-549 964-5500 964-8999 964-90000 964-96999 964-970 964-989 964-9900 964-9999 965-00 965-19 Region name: Israel Country code(s): IL Language group: 965 Publisher(s): 00 - 19; 200 - 599; 7000 - 7999; 90000 - 99999 965-200 965-599 965-7000 965-7999 965-90000 965-99999 966-00 966-12 Region name: Ukraine Country code(s): UA Language group: 966 Publisher(s): 00 - 12; 130 - 139; 14 - 14; 1500 - 1699; 170 - 199; 2000 - 2789; 279 - 289; 2900 - 2999; 300 - 699; 7000 - 8999; 90000 - 90999; 910 - 949; 95000 - 97999; 980 - 999 966-130 966-139 966-14 966-14 966-1500 966-1699 966-170 966-199 966-2000 966-2789 966-279 966-289 966-2900 966-2999 966-300 966-699 966-7000 966-8999 966-90000 966-90999 966-910 966-949 966-95000 966-97999 966-980 966-999 967-00 967-00 Region name: Malaysia Country code(s): MY Language group: 967 Publisher(s): 00 - 00; 0100 - 0999; 10000 - 19999; 300 - 499; 5000 - 5999; 60 - 89; 900 - 989; 9900 - 9989; 99900 - 99999 967-0100 967-0999 967-10000 967-19999 967-2000 967-2499 967-250 967-254 967-2800 967-2999 967-300 967-499 967-5000 967-5999 967-60 967-89 967-900 967-989 967-9900 967-9989 967-99900 967-99999 968-01 968-39 Region name: Mexico Country code(s): MX Language group: 968 Publisher(s): 01 - 39; 400 - 499; 5000 - 7999; 800 - 899; 9000 - 9999 968-400 968-499 968-5000 968-7999 968-800 968-899 968-9000 968-9999 969-0 969-1 Region name: Pakistan Country code(s): PK Language group: 969 Publisher(s): 0 - 1; 20 - 22; 23000 - 23999; 24 - 39; 400 - 749; 7500 - 9999 969-20 969-22 969-210 969-219 969-2200 969-2299 969-23000 969-23999 969-24 969-39 969-400 969-749 969-7500 969-9999 970-01 970-59 Region name: Mexico Country code(s): MX Language group: 970 Publisher(s): 01 - 59; 600 - 899; 9000 - 9099; 91000 - 96999; 9700 - 9999 970-600 970-899 970-9000 970-9099 970-91000 970-96999 970-9700 970-9999 971-000 971-015 Region name: Philippines Country code(s): PH Language group: 971 Publisher(s): 000 - 015; 0160 - 0199; 02 - 02; 0300 - 0599; 06 - 49; 500 - 849; 8500 - 9099; 91000 - 95999; 9600 - 9699; 97 - 98; 9900 - 9999 971-0160 971-0199 971-02 971-02 971-0300 971-0599 971-06 971-49 971-500 971-849 971-8500 971-9099 971-91000 971-95999 971-9600 971-9699 971-97 971-98 971-9900 971-9999 972-0 972-1 Region name: Portugal Country code(s): PT Language group: 972 Publisher(s): 0 - 1; 20 - 54; 550 - 799; 8000 - 9499; 95000 - 99999 972-20 972-54 972-550 972-799 972-8000 972-9499 972-95000 972-99999 973-0 973-0 Region name: Romania Country code(s): RO Language group: 973 Publisher(s): 0 - 0; 100 - 169; 1700 - 1999; 20 - 54; 550 - 759; 7600 - 8499; 85000 - 88999; 8900 - 9499; 95000 - 99999 973-100 973-169 973-1700 973-1999 973-20 973-54 973-550 973-759 973-7600 973-8499 973-85000 973-88999 973-8900 973-9499 973-95000 973-99999 974-00 974-19 Region name: Thailand Country code(s): TH Language group: 974 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 90000 - 94999; 9500 - 9999 974-200 974-699 974-7000 974-8499 974-85000 974-89999 974-90000 974-94999 974-9500 974-9999 975-00000 975-01999 Region name: Turkey Country code(s): TR Language group: 975 Publisher(s): 00000 - 01999; 02 - 24; 250 - 599; 6000 - 9199; 92000 - 98999; 990 - 999 975-02 975-24 975-2400 975-2499 975-250 975-599 975-6000 975-9199 975-92000 975-98999 975-990 975-999 976-0 976-3 Region name: Caribbean Community Country code(s): ?? Language group: 976 Publisher(s): 0 - 3; 40 - 59; 600 - 799; 8000 - 9499; 95000 - 99999 976-40 976-59 976-600 976-799 976-8000 976-9499 976-95000 976-99999 977-00 977-19 Region name: Egypt Country code(s): EG Language group: 977 Publisher(s): 00 - 19; 200 - 499; 5000 - 6999; 700 - 849; 85000 - 89999; 90 - 99 977-200 977-499 977-5000 977-6999 977-700 977-849 977-85000 977-89999 977-90 977-99 977-990 977-999 978-000 978-199 Region name: Nigeria Country code(s): NG Language group: 978 Publisher(s): 000 - 199; 2000 - 2999; 30000 - 79999; 8000 - 8999; 900 - 999 978-2000 978-2999 978-30000 978-79999 978-8000 978-8999 978-900 978-999 979-000 979-099 Region name: Indonesia Country code(s): ID Language group: 979 Publisher(s): 000 - 099; 1000 - 1499; 15000 - 19999; 20 - 29; 3000 - 3999; 400 - 799; 8000 - 9499; 95000 - 99999 979-1000 979-1499 979-15000 979-19999 979-20 979-29 979-3000 979-3999 979-400 979-799 979-8000 979-9499 979-95000 979-99999 980-00 980-19 Region name: Venezuela Country code(s): VE Language group: 980 Publisher(s): 00 - 19; 200 - 599; 6000 - 9999 980-200 980-599 980-6000 980-9999 981-00 981-16 Region name: Singapore Country code(s): SG Language group: 981 Publisher(s): 00 - 16; 17000 - 19999; 200 - 299; 3000 - 3099; 310 - 399; 4000 - 9999 981-17000 981-19999 981-18 981-19 981-200 981-299 981-3000 981-3099 981-310 981-399 981-4000 981-9999 982-00 982-09 Region name: South Pacific Country code(s): ?? Language group: 982 Publisher(s): 00 - 09; 100 - 699; 70 - 89; 9000 - 9799; 98000 - 99999 982-100 982-699 982-70 982-89 982-9000 982-9799 982-98000 982-99999 983-00 983-01 Region name: Malaysia Country code(s): MY Language group: 983 Publisher(s): 00 - 01; 020 - 199; 2000 - 3999; 40000 - 44999; 45 - 49; 50 - 79; 800 - 899; 9000 - 9899; 99000 - 99999 983-020 983-199 983-2000 983-3999 983-40000 983-44999 983-45 983-49 983-50 983-79 983-800 983-899 983-9000 983-9899 983-99000 983-99999 984-00 984-39 Region name: Bangladesh Country code(s): BD Language group: 984 Publisher(s): 00 - 39; 400 - 799; 8000 - 8999; 90000 - 99999 984-400 984-799 984-8000 984-8999 984-90000 984-99999 985-00 985-39 Region name: Belarus Country code(s): BY Language group: 985 Publisher(s): 00 - 39; 400 - 599; 6000 - 8999; 90000 - 99999 985-400 985-599 985-6000 985-8999 985-880 985-899 985-90000 985-99999 986-00 986-11 Region name: Taiwan Country code(s): TW Language group: 986 Publisher(s): 00 - 11; 120 - 559; 5600 - 7999; 80000 - 99999 986-06000 986-06999 986-0700 986-0799 986-08 986-11 986-120 986-559 986-5400 986-7999 986-80000 986-99999 987-00 987-09 Region name: Argentina Country code(s): AR Language group: 987 Publisher(s): 00 - 09; 1000 - 1999; 20000 - 29999; 30 - 35; 3600 - 3999; 4000 - 4199; 42 - 43; 4400 - 4499; 45000 - 48999; 4900 - 4999; 500 - 899; 9000 - 9499; 95000 - 99999 987-1000 987-1999 987-20000 987-29999 987-30 987-35 987-3600 987-3999 987-4000 987-4199 987-42 987-43 987-4400 987-4499 987-45000 987-48999 987-4900 987-4999 987-500 987-899 987-8300 987-8499 987-85 987-89 987-9000 987-9499 987-95000 987-99999 988-00 988-11 Region name: Hong Kong, China Country code(s): HK Language group: 988 Publisher(s): 00 - 11; 12000 - 14999; 15000 - 16999; 17000 - 19999; 200 - 769; 77000 - 79999; 8000 - 9699; 97000 - 99999 988-12000 988-14999 988-200 988-769 988-74000 988-76999 988-77000 988-79999 988-8000 988-9699 988-97000 988-99999 989-0 989-1 Region name: Portugal Country code(s): PT Language group: 989 Publisher(s): 0 - 1; 20 - 54; 550 - 799; 8000 - 9499; 95000 - 99999 989-20 989-54 989-35000 989-36999 989-37 989-52 989-53000 989-54999 989-550 989-799 989-8000 989-9499 989-95000 989-99999 9914-40 9914-44 Region name: Kenya Country code(s): KE Language group: 9914 Publisher(s): 40 - 44; 700 - 749; 9850 - 9999 9914-700 9914-749 9914-9850 9914-9999 9915-40 9915-59 Region name: Uruguay Country code(s): UY Language group: 9915 Publisher(s): 40 - 59; 650 - 799; 9300 - 9999 9915-650 9915-799 9915-9300 9915-9999 9916-0 9916-0 Region name: Estonia Country code(s): EE Language group: 9916 Publisher(s): 0 - 0; 10 - 39; 4 - 4; 600 - 749; 9500 - 9999 9916-10 9916-39 9916-4 9916-4 9916-600 9916-749 9916-9500 9916-9999 9917-0 9917-0 Region name: Bolivia Country code(s): BO Language group: 9917 Publisher(s): 0 - 0; 30 - 34; 600 - 699; 9800 - 9999 9917-30 9917-34 9917-600 9917-699 9917-9800 9917-9999 9918-0 9918-0 Region name: Malta Country code(s): MT Language group: 9918 Publisher(s): 0 - 0; 20 - 29; 600 - 799; 9500 - 9999 9918-20 9918-29 9918-600 9918-799 9918-9500 9918-9999 9919-20 9919-27 Region name: Mongolia Country code(s): MN Language group: 9919 Publisher(s): 20 - 27; 500 - 599; 9500 - 9999 9919-500 9919-599 9919-9500 9919-9999 9920-32 9920-39 Region name: Morocco Country code(s): MA Language group: 9920 Publisher(s): 32 - 39; 550 - 799; 9000 - 9999 9920-550 9920-799 9920-9000 9920-9999 9921-0 9921-0 Region name: Kuwait Country code(s): KW Language group: 9921 Publisher(s): 0 - 0; 30 - 39; 700 - 899; 9700 - 9999 9921-30 9921-39 9921-700 9921-899 9921-9700 9921-9999 9922-20 9922-29 Region name: Iraq Country code(s): IQ Language group: 9922 Publisher(s): 20 - 29; 600 - 799; 9000 - 9999 9922-600 9922-799 9922-9000 9922-9999 9923-0 9923-0 Region name: Jordan Country code(s): JO Language group: 9923 Publisher(s): 0 - 0; 10 - 49; 700 - 899; 9700 - 9999 9923-10 9923-49 9923-700 9923-899 9923-9700 9923-9999 9924-30 9924-39 Region name: Cambodia Country code(s): KH Language group: 9924 Publisher(s): 30 - 39; 500 - 649; 9000 - 9999 9924-500 9924-649 9924-9000 9924-9999 9925-0 9925-2 Region name: Cyprus Country code(s): CY Language group: 9925 Publisher(s): 0 - 2; 30 - 54; 550 - 734; 7350 - 9999 9925-30 9925-54 9925-550 9925-734 9925-7350 9925-9999 9926-0 9926-1 Region name: Bosnia and Herzegovina Country code(s): BA Language group: 9926 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999 9926-20 9926-39 9926-400 9926-799 9926-8000 9926-9999 9927-00 9927-09 Region name: Qatar Country code(s): QA Language group: 9927 Publisher(s): 00 - 09; 100 - 399; 4000 - 4999 9927-100 9927-399 9927-4000 9927-4999 9928-00 9928-09 Region name: Albania Country code(s): AL Language group: 9928 Publisher(s): 00 - 09; 100 - 399; 4000 - 4999 9928-100 9928-399 9928-4000 9928-4999 9929-0 9929-3 Region name: Guatemala Country code(s): GT Language group: 9929 Publisher(s): 0 - 3; 40 - 54; 550 - 799; 8000 - 9999 9929-40 9929-54 9929-550 9929-799 9929-8000 9929-9999 9930-00 9930-49 Region name: Costa Rica Country code(s): CR Language group: 9930 Publisher(s): 00 - 49; 500 - 939; 9400 - 9999 9930-500 9930-939 9930-9400 9930-9999 9931-00 9931-29 Region name: Algeria Country code(s): DZ Language group: 9931 Publisher(s): 00 - 29; 300 - 899; 9000 - 9999 9931-300 9931-899 9931-9000 9931-9999 9932-00 9932-39 Region name: Lao People's Democratic Republic Country code(s): LA Language group: 9932 Publisher(s): 00 - 39; 400 - 849; 8500 - 9999 9932-400 9932-849 9932-8500 9932-9999 9933-0 9933-0 Region name: Syria Country code(s): SY Language group: 9933 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999 9933-10 9933-39 9933-400 9933-899 9933-9000 9933-9999 9934-0 9934-0 Region name: Latvia Country code(s): LV Language group: 9934 Publisher(s): 0 - 0; 10 - 49; 500 - 799; 8000 - 9999 9934-10 9934-49 9934-500 9934-799 9934-8000 9934-9999 9935-0 9935-0 Region name: Iceland Country code(s): IS Language group: 9935 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999 9935-10 9935-39 9935-400 9935-899 9935-9000 9935-9999 9936-0 9936-1 Region name: Afghanistan Country code(s): AF Language group: 9936 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999 9936-20 9936-39 9936-400 9936-799 9936-8000 9936-9999 9937-0 9937-2 Region name: Nepal Country code(s): NP Language group: 9937 Publisher(s): 0 - 2; 30 - 49; 500 - 799; 8000 - 9999 9937-30 9937-49 9937-500 9937-799 9937-8000 9937-9999 9938-00 9938-79 Region name: Tunisia Country code(s): TN Language group: 9938 Publisher(s): 00 - 79; 800 - 949; 9500 - 9999 9938-800 9938-949 9938-9500 9938-9999 9939-0 9939-4 Region name: Armenia Country code(s): AM Language group: 9939 Publisher(s): 0 - 4; 50 - 79; 800 - 899; 9000 - 9999 9939-50 9939-79 9939-800 9939-899 9939-9000 9939-9999 9939-98 9939-99 9940-0 9940-1 Region name: Montenegro Country code(s): ME Language group: 9940 Publisher(s): 0 - 1; 20 - 49; 500 - 899; 9000 - 9999 9940-20 9940-49 9940-500 9940-899 9940-84 9940-86 9940-8700 9940-9999 9941-0 9941-0 Region name: Georgia Country code(s): GE Language group: 9941 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999 9941-10 9941-39 9941-400 9941-899 9941-8 9941-8 9941-9000 9941-9999 9942-00 9942-84 Region name: Ecuador Country code(s): EC Language group: 9942 Publisher(s): 00 - 84; 8500 - 8999; 900 - 984; 9850 - 9999 9942-750 9942-849 9942-8500 9942-8999 9942-900 9942-984 9942-9850 9942-9999 9943-00 9943-29 Region name: Uzbekistan Country code(s): UZ Language group: 9943 Publisher(s): 00 - 29; 300 - 399; 4000 - 9749; 975 - 999 9943-300 9943-399 9943-4000 9943-9749 9943-975 9943-999 9944-0000 9944-0999 Region name: Turkey Country code(s): TR Language group: 9944 Publisher(s): 0000 - 0999; 100 - 499; 5000 - 5999; 60 - 69; 700 - 799; 80 - 89; 900 - 999 9944-100 9944-499 9944-5000 9944-5999 9944-60 9944-69 9944-700 9944-799 9944-80 9944-89 9944-900 9944-999 9945-00 9945-00 Region name: Dominican Republic Country code(s): DO Language group: 9945 Publisher(s): 00 - 00; 010 - 079; 08 - 39; 400 - 569; 57 - 57; 580 - 849; 8500 - 9999 9945-010 9945-079 9945-08 9945-39 9945-400 9945-569 9945-57 9945-57 9945-580 9945-849 9945-80 9945-80 9945-810 9945-849 9945-8500 9945-9999 9946-0 9946-1 Region name: Korea, P.D.R. Country code(s): KP Language group: 9946 Publisher(s): 0 - 1; 20 - 39; 400 - 899; 9000 - 9999 9946-20 9946-39 9946-400 9946-899 9946-9000 9946-9999 9947-0 9947-1 Region name: Algeria Country code(s): DZ Language group: 9947 Publisher(s): 0 - 1; 20 - 79; 800 - 999 9947-20 9947-79 9947-800 9947-999 9948-00 9948-39 Region name: United Arab Emirates Country code(s): AE Language group: 9948 Publisher(s): 00 - 39; 400 - 849; 8500 - 9999 9948-400 9948-849 9948-8500 9948-9999 9949-00 9949-08 Region name: Estonia Country code(s): EE Language group: 9949 Publisher(s): 00 - 08; 090 - 099; 10 - 39; 400 - 699; 70 - 71; 7200 - 7499; 75 - 89; 9000 - 9999 9949-090 9949-099 9949-10 9949-39 9949-400 9949-749 9949-70 9949-71 9949-7200 9949-7499 9949-75 9949-89 9949-9000 9949-9999 9950-00 9950-29 Region name: Palestine Country code(s): PS Language group: 9950 Publisher(s): 00 - 29; 300 - 849; 8500 - 9999 9950-300 9950-849 9950-8500 9950-9999 9951-00 9951-39 Region name: Kosova Country code(s): ?? Language group: 9951 Publisher(s): 00 - 39; 400 - 849; 8500 - 9999 9951-400 9951-849 9951-8500 9951-9999 9952-0 9952-1 Region name: Azerbaijan Country code(s): AZ Language group: 9952 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999 9952-20 9952-39 9952-400 9952-799 9952-8000 9952-9999 9953-0 9953-0 Region name: Lebanon Country code(s): LB Language group: 9953 Publisher(s): 0 - 0; 10 - 39; 400 - 599; 60 - 89; 9000 - 9999 9953-10 9953-39 9953-400 9953-599 9953-60 9953-89 9953-9000 9953-9999 9953-93 9953-96 9953-970 9953-999 9954-0 9954-1 Region name: Morocco Country code(s): MA Language group: 9954 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999 9954-20 9954-39 9954-400 9954-799 9954-8000 9954-9999 9954-99 9954-99 9955-00 9955-39 Region name: Lithuania Country code(s): LT Language group: 9955 Publisher(s): 00 - 39; 400 - 929; 9300 - 9999 9955-400 9955-929 9955-9300 9955-9999 9956-0 9956-0 Region name: Cameroon Country code(s): CM Language group: 9956 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999 9956-10 9956-39 9956-400 9956-899 9956-9000 9956-9999 9957-00 9957-39 Region name: Jordan Country code(s): JO Language group: 9957 Publisher(s): 00 - 39; 400 - 649; 65 - 69; 70 - 84; 8500 - 8799; 88 - 99 9957-400 9957-649 9957-65 9957-69 9957-680 9957-699 9957-70 9957-84 9957-8500 9957-8799 9957-88 9957-99 9958-00 9958-01 Region name: Bosnia and Herzegovina Country code(s): BA Language group: 9958 Publisher(s): 00 - 01; 020 - 029; 0300 - 0399; 040 - 089; 0900 - 0999; 10 - 18; 1900 - 1999; 20 - 49; 500 - 899; 9000 - 9999 9958-020 9958-029 9958-0300 9958-0399 9958-040 9958-089 9958-0900 9958-0999 9958-10 9958-18 9958-1900 9958-1999 9958-20 9958-49 9958-500 9958-899 9958-9000 9958-9999 9959-0 9959-1 Region name: Libya Country code(s): LY Language group: 9959 Publisher(s): 0 - 1; 20 - 79; 800 - 949; 9500 - 9699; 970 - 979; 98 - 99 9959-20 9959-79 9959-800 9959-949 9959-9500 9959-9699 9959-970 9959-979 9959-98 9959-99 9960-00 9960-59 Region name: Saudi Arabia Country code(s): SA Language group: 9960 Publisher(s): 00 - 59; 600 - 899; 9000 - 9999 9960-600 9960-899 9960-9000 9960-9999 9961-0 9961-2 Region name: Algeria Country code(s): DZ Language group: 9961 Publisher(s): 0 - 2; 30 - 69; 700 - 949; 9500 - 9999 9961-30 9961-69 9961-700 9961-949 9961-9500 9961-9999 9962-00 9962-54 Region name: Panama Country code(s): PA Language group: 9962 Publisher(s): 00 - 54; 5500 - 5599; 56 - 59; 600 - 849; 8500 - 9999 9962-5500 9962-5599 9962-56 9962-59 9962-600 9962-849 9962-8500 9962-9999 9963-0 9963-1 Region name: Cyprus Country code(s): CY Language group: 9963 Publisher(s): 0 - 1; 2000 - 2499; 250 - 279; 2800 - 2999; 30 - 54; 550 - 734; 7350 - 7499; 7500 - 9999 9963-2000 9963-2499 9963-250 9963-279 9963-2800 9963-2999 9963-30 9963-54 9963-550 9963-734 9963-7350 9963-7499 9963-7500 9963-9999 9964-0 9964-6 Region name: Ghana Country code(s): GH Language group: 9964 Publisher(s): 0 - 6; 70 - 94; 950 - 999 9964-70 9964-94 9964-950 9964-999 9965-00 9965-39 Region name: Kazakhstan Country code(s): KZ Language group: 9965 Publisher(s): 00 - 39; 400 - 899; 9000 - 9999 9965-400 9965-899 9965-9000 9965-9999 9966-000 9966-149 Region name: Kenya Country code(s): KE Language group: 9966 Publisher(s): 000 - 149; 1500 - 1999; 20 - 69; 7000 - 7499; 750 - 959; 9600 - 9999 9966-14 9966-14 9966-1500 9966-1999 9966-20 9966-69 9966-7000 9966-7499 9966-750 9966-959 9966-8210 9966-8249 9966-825 9966-825 9966-8260 9966-8289 9966-829 9966-959 9966-9600 9966-9999 9967-00 9967-39 Region name: Kyrgyz Republic Country code(s): KG Language group: 9967 Publisher(s): 00 - 39; 400 - 899; 9000 - 9999 9967-400 9967-899 9967-9000 9967-9999 9968-00 9968-49 Region name: Costa Rica Country code(s): CR Language group: 9968 Publisher(s): 00 - 49; 500 - 939; 9400 - 9999 9968-500 9968-939 9968-9400 9968-9999 9970-00 9970-39 Region name: Uganda Country code(s): UG Language group: 9970 Publisher(s): 00 - 39; 400 - 899; 9000 - 9999 9970-400 9970-899 9970-9000 9970-9999 9971-0 9971-5 Region name: Singapore Country code(s): SG Language group: 9971 Publisher(s): 0 - 5; 60 - 89; 900 - 989; 9900 - 9999 9971-60 9971-89 9971-900 9971-989 9971-9900 9971-9999 9972-00 9972-09 Region name: Peru Country code(s): PE Language group: 9972 Publisher(s): 00 - 09; 1 - 1; 200 - 249; 2500 - 2999; 30 - 59; 600 - 899; 9000 - 9999 9972-1 9972-1 9972-200 9972-249 9972-2500 9972-2999 9972-30 9972-59 9972-600 9972-899 9972-9000 9972-9999 9973-00 9973-05 Region name: Tunisia Country code(s): TN Language group: 9973 Publisher(s): 00 - 05; 060 - 089; 0900 - 0999; 10 - 69; 700 - 969; 9700 - 9999 9973-060 9973-089 9973-0900 9973-0999 9973-10 9973-69 9973-700 9973-969 9973-9700 9973-9999 9974-0 9974-2 Region name: Uruguay Country code(s): UY Language group: 9974 Publisher(s): 0 - 2; 30 - 54; 550 - 749; 7500 - 9099; 91 - 94; 95 - 99 9974-30 9974-54 9974-550 9974-749 9974-7500 9974-9099 9974-880 9974-909 9974-91 9974-94 9974-95 9974-99 9975-0 9975-0 Region name: Moldova Country code(s): MD Language group: 9975 Publisher(s): 0 - 0; 100 - 299; 3000 - 3999; 4000 - 4499; 45 - 89; 900 - 949; 9500 - 9999 9975-100 9975-299 9975-3000 9975-3999 9975-4000 9975-4499 9975-45 9975-89 9975-900 9975-949 9975-9500 9975-9999 9976-0 9976-5 Region name: Tanzania Country code(s): TZ Language group: 9976 Publisher(s): 0 - 5; 60 - 89; 900 - 989; 9900 - 9999 9976-5000 9976-5799 9976-580 9976-589 9976-59 9976-89 9976-900 9976-989 9976-9900 9976-9999 9977-00 9977-89 Region name: Costa Rica Country code(s): CR Language group: 9977 Publisher(s): 00 - 89; 900 - 989; 9900 - 9999 9977-900 9977-989 9977-9900 9977-9999 9978-00 9978-29 Region name: Ecuador Country code(s): EC Language group: 9978 Publisher(s): 00 - 29; 300 - 399; 40 - 94; 950 - 989; 9900 - 9999 9978-300 9978-399 9978-40 9978-94 9978-950 9978-989 9978-9900 9978-9999 9979-0 9979-4 Region name: Iceland Country code(s): IS Language group: 9979 Publisher(s): 0 - 4; 50 - 64; 650 - 659; 66 - 75; 760 - 899; 9000 - 9999 9979-50 9979-64 9979-650 9979-659 9979-66 9979-75 9979-760 9979-899 9979-9000 9979-9999 9980-0 9980-3 Region name: Papua New Guinea Country code(s): PG Language group: 9980 Publisher(s): 0 - 3; 40 - 89; 900 - 989; 9900 - 9999 9980-40 9980-89 9980-900 9980-989 9980-9900 9980-9999 9981-00 9981-09 Region name: Morocco Country code(s): MA Language group: 9981 Publisher(s): 00 - 09; 100 - 159; 1600 - 1999; 20 - 79; 800 - 949; 9500 - 9999 9981-100 9981-159 9981-1600 9981-1999 9981-20 9981-79 9981-800 9981-949 9981-9500 9981-9999 9982-00 9982-79 Region name: Zambia Country code(s): ZM Language group: 9982 Publisher(s): 00 - 79; 800 - 989; 9900 - 9999 9982-800 9982-989 9982-9900 9982-9999 9983-80 9983-94 Region name: Gambia Country code(s): GM Language group: 9983 Publisher(s): 80 - 94; 950 - 989; 9900 - 9999 9983-950 9983-989 9983-9900 9983-9999 9984-00 9984-49 Region name: Latvia Country code(s): LV Language group: 9984 Publisher(s): 00 - 49; 500 - 899; 9000 - 9999 9984-500 9984-899 9984-9000 9984-9999 9985-0 9985-4 Region name: Estonia Country code(s): EE Language group: 9985 Publisher(s): 0 - 4; 50 - 79; 800 - 899; 9000 - 9999 9985-50 9985-79 9985-800 9985-899 9985-9000 9985-9999 9986-00 9986-39 Region name: Lithuania Country code(s): LT Language group: 9986 Publisher(s): 00 - 39; 400 - 899; 9000 - 9399; 940 - 969; 97 - 99 9986-400 9986-899 9986-9000 9986-9399 9986-940 9986-969 9986-97 9986-99 9987-00 9987-39 Region name: Tanzania Country code(s): TZ Language group: 9987 Publisher(s): 00 - 39; 400 - 879; 8800 - 9999 9987-400 9987-879 9987-8800 9987-9999 9988-0 9988-2 Region name: Ghana Country code(s): GH Language group: 9988 Publisher(s): 0 - 2; 30 - 54; 550 - 749; 7500 - 9999 9988-40 9988-54 9988-550 9988-749 9988-7500 9988-9999 9989-0 9989-0 Region name: Macedonia Country code(s): MK Language group: 9989 Publisher(s): 0 - 0; 100 - 199; 2000 - 2999; 30 - 59; 600 - 949; 9500 - 9999 9989-100 9989-199 9989-2000 9989-2999 9989-30 9989-59 9989-600 9989-949 9989-9500 9989-9999 99901-00 99901-49 Region name: Bahrain Country code(s): BH Language group: 99901 Publisher(s): 00 - 49; 500 - 799; 80 - 99 99901-500 99901-799 99901-80 99901-99 99903-0 99903-1 Region name: Mauritius Country code(s): MU Language group: 99903 Publisher(s): 0 - 1; 20 - 89; 900 - 999 99903-20 99903-89 99903-900 99903-999 99904-0 99904-5 Region name: Curacao Country code(s): ?? Language group: 99904 Publisher(s): 0 - 5; 60 - 89; 900 - 999 99904-60 99904-89 99904-900 99904-999 99905-0 99905-3 Region name: Bolivia Country code(s): BO Language group: 99905 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99905-40 99905-79 99905-800 99905-999 99906-0 99906-2 Region name: Kuwait Country code(s): KW Language group: 99906 Publisher(s): 0 - 2; 30 - 59; 600 - 699; 70 - 89; 90 - 94; 950 - 999 99906-30 99906-59 99906-600 99906-699 99906-70 99906-89 99906-90 99906-94 99906-950 99906-999 99908-0 99908-0 Region name: Malawi Country code(s): MW Language group: 99908 Publisher(s): 0 - 0; 10 - 89; 900 - 999 99908-10 99908-89 99908-900 99908-999 99909-0 99909-3 Region name: Malta Country code(s): MT Language group: 99909 Publisher(s): 0 - 3; 40 - 94; 950 - 999 99909-40 99909-94 99909-950 99909-999 99910-0 99910-2 Region name: Sierra Leone Country code(s): SL Language group: 99910 Publisher(s): 0 - 2; 30 - 89; 900 - 999 99910-30 99910-89 99910-900 99910-999 99911-00 99911-59 Region name: Lesotho Country code(s): LS Language group: 99911 Publisher(s): 00 - 59; 600 - 999 99911-600 99911-999 99912-0 99912-3 Region name: Botswana Country code(s): BW Language group: 99912 Publisher(s): 0 - 3; 400 - 599; 60 - 89; 900 - 999 99912-400 99912-599 99912-60 99912-89 99912-900 99912-999 99913-0 99913-2 Region name: Andorra Country code(s): AD Language group: 99913 Publisher(s): 0 - 2; 30 - 35; 600 - 604 99913-30 99913-35 99913-600 99913-604 99914-0 99914-4 Region name: Suriname Country code(s): SR Language group: 99914 Publisher(s): 0 - 4; 50 - 89; 900 - 999 99914-50 99914-89 99914-7 99914-7 99914-80 99914-89 99914-900 99914-999 99915-0 99915-4 Region name: Maldives Country code(s): MV Language group: 99915 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99915-50 99915-79 99915-800 99915-999 99916-0 99916-2 Region name: Namibia Country code(s): NA Language group: 99916 Publisher(s): 0 - 2; 30 - 69; 700 - 999 99916-30 99916-69 99916-700 99916-999 99917-0 99917-2 Region name: Brunei Darussalam Country code(s): BN Language group: 99917 Publisher(s): 0 - 2; 30 - 89; 900 - 999 99917-30 99917-89 99917-890 99917-999 99918-0 99918-3 Region name: Faroe Islands Country code(s): FO Language group: 99918 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99918-40 99918-79 99918-800 99918-999 99919-0 99919-2 Region name: Benin Country code(s): BJ Language group: 99919 Publisher(s): 0 - 2; 300 - 399; 40 - 69; 70 - 79; 800 - 849; 850 - 899; 900 - 999 99919-300 99919-399 99919-40 99919-69 99919-800 99919-849 99920-0 99920-4 Region name: Andorra Country code(s): AD Language group: 99920 Publisher(s): 0 - 4; 50 - 89; 900 - 999 99920-50 99920-89 99920-900 99920-999 99921-0 99921-1 Region name: Qatar Country code(s): QA Language group: 99921 Publisher(s): 0 - 1; 20 - 69; 700 - 799; 8 - 8; 90 - 99 99921-20 99921-69 99921-700 99921-799 99921-8 99921-8 99921-90 99921-99 99922-0 99922-3 Region name: Guatemala Country code(s): GT Language group: 99922 Publisher(s): 0 - 3; 40 - 69; 700 - 999 99922-40 99922-69 99922-700 99922-999 99923-0 99923-1 Region name: El Salvador Country code(s): SV Language group: 99923 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99923-20 99923-79 99923-800 99923-999 99924-0 99924-1 Region name: Nicaragua Country code(s): NI Language group: 99924 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99924-20 99924-79 99924-800 99924-999 99925-0 99925-3 Region name: Paraguay Country code(s): PY Language group: 99925 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99925-10 99925-19 99925-200 99925-299 99925-3 99925-3 99925-40 99925-79 99925-800 99925-999 99926-0 99926-0 Region name: Honduras Country code(s): HN Language group: 99926 Publisher(s): 0 - 0; 10 - 59; 600 - 869; 87 - 89; 90 - 99 99926-10 99926-59 99926-600 99926-869 99926-87 99926-89 99926-90 99926-99 99927-0 99927-2 Region name: Albania Country code(s): AL Language group: 99927 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99927-30 99927-59 99927-600 99927-999 99928-0 99928-0 Region name: Georgia Country code(s): GE Language group: 99928 Publisher(s): 0 - 0; 10 - 79; 800 - 999 99928-10 99928-79 99928-800 99928-999 99929-0 99929-4 Region name: Mongolia Country code(s): MN Language group: 99929 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99929-50 99929-79 99929-800 99929-999 99930-0 99930-4 Region name: Armenia Country code(s): AM Language group: 99930 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99930-50 99930-79 99930-800 99930-999 99931-0 99931-4 Region name: Seychelles Country code(s): SC Language group: 99931 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99931-50 99931-79 99931-800 99931-999 99932-0 99932-0 Region name: Malta Country code(s): MT Language group: 99932 Publisher(s): 0 - 0; 10 - 59; 600 - 699; 7 - 7; 80 - 99 99932-10 99932-59 99932-600 99932-699 99932-7 99932-7 99932-80 99932-99 99933-0 99933-2 Region name: Nepal Country code(s): NP Language group: 99933 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99933-30 99933-59 99933-600 99933-999 99934-0 99934-1 Region name: Dominican Republic Country code(s): DO Language group: 99934 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99934-20 99934-79 99934-800 99934-999 99935-0 99935-2 Region name: Haiti Country code(s): HT Language group: 99935 Publisher(s): 0 - 2; 30 - 59; 600 - 699; 7 - 8; 90 - 99 99935-30 99935-59 99935-600 99935-699 99935-7 99935-8 99935-90 99935-99 99936-0 99936-0 Region name: Bhutan Country code(s): BT Language group: 99936 Publisher(s): 0 - 0; 10 - 59; 600 - 999 99936-10 99936-59 99936-600 99936-999 99937-0 99937-1 Region name: Macau Country code(s): MO Language group: 99937 Publisher(s): 0 - 1; 20 - 59; 600 - 999 99937-20 99937-59 99937-600 99937-999 99938-0 99938-1 Region name: Srpska, Republic of Country code(s): ?? Language group: 99938 Publisher(s): 0 - 1; 20 - 59; 600 - 899; 90 - 99 99938-20 99938-59 99938-600 99938-899 99938-90 99938-99 99939-0 99939-5 Region name: Guatemala Country code(s): GT Language group: 99939 Publisher(s): 0 - 5; 60 - 89; 900 - 999 99939-60 99939-89 99939-900 99939-999 99940-0 99940-0 Region name: Georgia Country code(s): GE Language group: 99940 Publisher(s): 0 - 0; 10 - 69; 700 - 999 99940-10 99940-69 99940-700 99940-999 99941-0 99941-2 Region name: Armenia Country code(s): AM Language group: 99941 Publisher(s): 0 - 2; 30 - 79; 800 - 999 99941-30 99941-79 99941-800 99941-999 99942-0 99942-4 Region name: Sudan Country code(s): SD Language group: 99942 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99942-50 99942-79 99942-800 99942-999 99943-0 99943-2 Region name: Albania Country code(s): AL Language group: 99943 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99943-30 99943-59 99943-600 99943-999 99944-0 99944-4 Region name: Ethiopia Country code(s): ET Language group: 99944 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99944-50 99944-79 99944-800 99944-999 99945-0 99945-5 Region name: Namibia Country code(s): NA Language group: 99945 Publisher(s): 0 - 5; 60 - 89; 900 - 999 99945-50 99945-89 99945-900 99945-999 99946-0 99946-2 Region name: Nepal Country code(s): NP Language group: 99946 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99946-30 99946-59 99946-600 99946-999 99947-0 99947-2 Region name: Tajikistan Country code(s): TJ Language group: 99947 Publisher(s): 0 - 2; 30 - 69; 700 - 999 99947-30 99947-69 99947-700 99947-999 99948-0 99948-4 Region name: Eritrea Country code(s): ER Language group: 99948 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99948-50 99948-79 99948-800 99948-999 99949-0 99949-1 Region name: Mauritius Country code(s): MU Language group: 99949 Publisher(s): 0 - 1; 20 - 89; 900 - 999 99949-20 99949-89 99949-900 99949-999 99950-0 99950-4 Region name: Cambodia Country code(s): KH Language group: 99950 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99950-50 99950-79 99950-800 99950-999 99952-0 99952-4 Region name: Mali Country code(s): ML Language group: 99952 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99952-50 99952-79 99952-800 99952-999 99953-0 99953-2 Region name: Paraguay Country code(s): PY Language group: 99953 Publisher(s): 0 - 2; 30 - 79; 800 - 939; 94 - 99 99953-30 99953-79 99953-800 99953-939 99953-94 99953-99 99954-0 99954-2 Region name: Bolivia Country code(s): BO Language group: 99954 Publisher(s): 0 - 2; 30 - 69; 700 - 879; 88 - 99 99954-30 99954-69 99954-700 99954-879 99954-88 99954-99 99955-0 99955-1 Region name: Srpska, Republic of Country code(s): ?? Language group: 99955 Publisher(s): 0 - 1; 20 - 59; 600 - 799; 80 - 99 99955-20 99955-59 99955-600 99955-799 99955-80 99955-99 99956-00 99956-59 Region name: Albania Country code(s): AL Language group: 99956 Publisher(s): 00 - 59; 600 - 859; 86 - 99 99956-600 99956-859 99956-86 99956-99 99957-0 99957-1 Region name: Malta Country code(s): MT Language group: 99957 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99957-20 99957-79 99957-800 99957-999 99957-95 99957-99 99958-0 99958-4 Region name: Bahrain Country code(s): BH Language group: 99958 Publisher(s): 0 - 4; 50 - 93; 940 - 949; 950 - 999 99958-50 99958-93 99958-940 99958-949 99958-950 99958-999 99959-0 99959-2 Region name: Luxembourg Country code(s): LU Language group: 99959 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99959-30 99959-59 99959-600 99959-999 99960-070 99960-099 Region name: Malawi Country code(s): MW Language group: 99960 Publisher(s): 070 - 099; 10 - 94; 950 - 999 99960-10 99960-94 99960-950 99960-999 99961-0 99961-3 Region name: El Salvador Country code(s): SV Language group: 99961 Publisher(s): 0 - 3; 40 - 89; 900 - 999 99961-300 99961-369 99961-37 99961-89 99961-900 99961-999 99962-0 99962-4 Region name: Mongolia Country code(s): MN Language group: 99962 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99962-50 99962-79 99962-800 99962-999 99963-00 99963-49 Region name: Cambodia Country code(s): KH Language group: 99963 Publisher(s): 00 - 49; 500 - 919; 92 - 99 99963-500 99963-919 99963-92 99963-99 99964-0 99964-1 Region name: Nicaragua Country code(s): NI Language group: 99964 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99964-20 99964-79 99964-800 99964-999 99965-0 99965-3 Region name: Macau Country code(s): MO Language group: 99965 Publisher(s): 0 - 3; 40 - 62; 630 - 999 99965-300 99965-359 99965-36 99965-62 99965-630 99965-999 99966-0 99966-2 Region name: Kuwait Country code(s): KW Language group: 99966 Publisher(s): 0 - 2; 30 - 69; 700 - 799; 80 - 94 99966-30 99966-69 99966-700 99966-799 99966-80 99966-94 99966-970 99966-999 99967-0 99967-1 Region name: Paraguay Country code(s): PY Language group: 99967 Publisher(s): 0 - 1; 20 - 59; 600 - 899 99967-10 99967-59 99967-600 99967-899 99968-0 99968-3 Region name: Botswana Country code(s): BW Language group: 99968 Publisher(s): 0 - 3; 400 - 599; 60 - 89; 900 - 999 99968-400 99968-599 99968-60 99968-89 99968-900 99968-999 99969-0 99969-4 Region name: Oman Country code(s): OM Language group: 99969 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99969-50 99969-79 99969-800 99969-999 99970-0 99970-4 Region name: Haiti Country code(s): HT Language group: 99970 Publisher(s): 0 - 4; 50 - 89; 900 - 999 99970-50 99970-89 99970-900 99970-999 99971-0 99971-5 Region name: Myanmar Country code(s): MM Language group: 99971 Publisher(s): 0 - 5; 60 - 84; 850 - 999 99971-40 99971-84 99971-850 99971-999 99972-0 99972-4 Region name: Faroe Islands Country code(s): FO Language group: 99972 Publisher(s): 0 - 4; 50 - 89; 900 - 999 99972-50 99972-89 99972-900 99972-999 99973-0 99973-3 Region name: Mongolia Country code(s): MN Language group: 99973 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99973-40 99973-79 99973-800 99973-999 99974-0 99974-0 Region name: Bolivia Country code(s): BO Language group: 99974 Publisher(s): 0 - 0; 10 - 25; 260 - 399; 40 - 63; 640 - 649; 65 - 79; 800 - 999 99974-10 99974-25 99974-260 99974-399 99974-40 99974-79 Region name: Bolivia Country code(s): BO Language group: 99974 Publisher(s): 40 - 79; 800 - 999 99974-640 99974-649 99974-65 99974-79 99974-800 99974-999 99975-0 99975-3 Region name: Tajikistan Country code(s): TJ Language group: 99975 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99975-300 99975-399 99975-40 99975-79 99975-800 99975-999 99976-0 99976-1 Region name: Srpska, Republic of Country code(s): ?? Language group: 99976 Publisher(s): 0 - 1; 20 - 59; 600 - 799 99976-20 99976-59 99976-600 99976-799 99976-900 99976-999 99977-0 99977-1 Region name: Rwanda Country code(s): RW Language group: 99977 Publisher(s): 0 - 1; 40 - 69; 700 - 799 99977-40 99977-69 99977-700 99977-799 99977-995 99977-999 99978-0 99978-4 Region name: Mongolia Country code(s): MN Language group: 99978 Publisher(s): 0 - 4; 50 - 69; 700 - 999 99978-50 99978-69 99978-700 99978-999 99979-0 99979-4 Region name: Honduras Country code(s): HN Language group: 99979 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99979-50 99979-79 99979-800 99979-999 99980-0 99980-0 Region name: Bhutan Country code(s): BT Language group: 99980 Publisher(s): 0 - 0; 30 - 59; 800 - 999 99980-30 99980-59 99980-800 99980-999 99981-0 99981-1 Region name: Macau Country code(s): MO Language group: 99981 Publisher(s): 0 - 1; 30 - 59; 800 - 999 99981-30 99981-59 99981-800 99981-999 99982-0 99982-0 Region name: Benin Country code(s): BJ Language group: 99982 Publisher(s): 0 - 0; 50 - 65; 900 - 979 99982-50 99982-65 99982-900 99982-979 99983-0 99983-0 Region name: El Salvador Country code(s): SV Language group: 99983 Publisher(s): 0 - 0; 50 - 69; 950 - 999 99983-50 99983-69 99983-950 99983-999 99985-55 99985-59 Region name: Tajikistan Country code(s): TJ Language group: 99985 Publisher(s): 55 - 59; 950 - 999 99985-950 99985-999 99986-0 99986-0 Region name: Myanmar Country code(s): MM Language group: 99986 Publisher(s): 0 - 0; 50 - 69; 950 - 999 99986-50 99986-69 99986-950 99986-999 99987-850 99987-999 Region name: Luxembourg Country code(s): LU Language group: 99987 Publisher(s): 850 - 999 10-00 10-19 Region name: France Country code(s): FR Language group: 10 Publisher(s): 00 - 19; 200 - 699; 7000 - 8999; 90000 - 97599; 976000 - 999999 10-200 10-699 10-7000 10-8999 10-90000 10-97599 10-976000 10-999999 11-00 11-24 Region name: Korea, Republic Country code(s): KR Language group: 11 Publisher(s): 00 - 24; 250 - 549; 5500 - 8499; 85000 - 94999; 950000 - 999999 11-250 11-549 11-5500 11-8499 11-85000 11-94999 11-950000 11-999999 12-200 12-200 Region name: Italy Country code(s): IT Language group: 12 Publisher(s): 200 - 200 12-5950 12-5999 12-80000 12-84999 8-200 8-219 Region name: United States Country code(s): US Language group: 8 Publisher(s): 200 - 219; 5500 - 7499; 9850000 - 9850009 8-5500 8-7499 8-9850000 8-9850009 0-315 0-315 [24-Sep-2015] Updated list from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 0-458 0-459 0-612 0-612 0-616 0-616 0-660 0-660 0-662 0-662 0-665 0-665 0-7700 0-7799 0-86488 0-86507 0-88500 0-88668 0-88750 0-88999 0-919000 0-921999 0-9680000 0-9699999 0-9730000 0-9739999 0-9583000 0-9583049 Region name: Gibraltar Country code(s): GI Language group: 0 Publisher(s): 9583000 - 9583049 0-9633400 0-9633499 Region name: Puerto Rico Country code(s): PR Language group: 0 Publisher(s): 9633400 - 9633499 0-620 0-629 Region name: South Africa Country code(s): ZA Language group: 0 Publisher(s): 620 - 629 ; 636 - 639 ; 7954 - 7973 ; 7975 - 7999 ; 86483 - 86487 ; 86808 - 86817 ; 86843 - 86852 ; 86873 - 86887 ; 86950 - 86999 ; 907980 - 907999 ; 908352 - 908409 ; 909060 - 909079 ; 909230 - 909239 ; 947000 - 947059 ; 949934 - 949998 ; 9583050 - 9583249 ; 9583750 - 9585149 0-636 0-639 0-7021 0-7021 [24-Sep-2015] Addition from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 0-7954 0-7973 0-7975 0-7977 0-7979 0-7998 0-9583750 0-9585149 Region name: Swaziland Country code(s): SZ Language group: 0 Publisher(s): ??????? - ??????? 0-7974 0-7974 Region name: Zimbabwe Country code(s): ZW Language group: 0 Publisher(s): 7974 ; 86918 - 86929 ; 908300 - 908305 ; 949225 - 949933 0-86918 0-86929 0-908300 0-908305 0-949225 0-949933 1-86250 1-86799 1-875100 1-877099 1-920680 1-926429 1-894000 1-896999 [24-Sep-2015] Additions from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 1-897000 1-897579 1-919655 1-919679 Region name: Gibraltar Country code(s): GI Language group: 1 Publisher(s): 919655 - 919679 1-86930 1-86979 Region name: New Zealand Country code(s): NZ Language group: 1 Publisher(s): 86930 - 86979 ; 877130 - 877579 1-877130 1-877579 1-881700 1-881749 Region name: Puerto Rico Country code(s): PR Language group: 1 Publisher(s): 881700 - 881749 1-4150 1-4154 [24-Sep-2015] Additions from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 1-77000 1-77019 1-919680 1-920679 Region name: United Kingdom Country code(s): GB Language group: 1 Publisher(s): 84000 - 86249 ; 869800 - 874799 ; 897580 - 919679 1-4050 1-4099 [24-Sep-2015] Updated list from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 1-84000 1-85122 1-85124 1-86249 1-871032 1-874799 1-897580 1-919654 1-952246 1-952246 1-987807 1-987807 1-4000 1-5499 1-4100 1-4149 1-55500 1-59999 1-871031 1-871031 1-877580 1-897579 1-928530 1-952245 1-952247 1-987806 1-987808 1-998999 1-77900 1-77919 Region name: Zimbabwe Country code(s): ZW Language group: 1 Publisher(s): 77900 - 77919 ; 877100 - 877129 1-877100 1-877129 2-500 2-549 Region name: Belgium Country code(s): BE Language group: 2 Publisher(s): 500 - 549 ; 8000 - 8249 ; 87000 - 87949 ; 930000 - 939999 ; 9600000 - 9699999 2-8000 2-8249 2-87000 2-87949 2-930000 2-939999 2-9600000 2-9699999 2-550 2-599 Region name: Canada Country code(s): CA Language group: 2 Publisher(s): 550 - 599 ; 7600 - 7653 ; 7655 - 7776 ; 7778 - 7999 ; 89000 - 89999 ; 920000 - 929999 ; 9800000 - 9999999 2-7600 2-7653 2-7655 2-7776 2-7778 2-7999 2-89000 2-89999 2-920000 2-929999 2-9800000 2-9999999 2-87950 2-87999 2-919769 2-919999 2-9599769 2-9599999 2-600 2-699 Region name: Switzerland (French speaking) Country code(s): CH Language group: 2 Publisher(s): 600 - 699 ; 8250 - 8399 ; 88000 - 88999 ; 940000 - 949999 ; 9700000 - 9799999 2-8250 2-8399 2-88000 2-88999 2-940000 2-949999 2-9700000 2-9799999 3-01 3-02 Region name: Austria Country code(s): AT Language group: 3 Publisher(s): 01 - 02 ; 200 - 249 ; 7000 - 7149 ; 85000 - 85499 ; 900000 - 904999 ; 9500000 - 9519999 3-05 3-19 3-320 3-379 3-400 3-699 3-7300 3-8499 [24-Sep-2015] Updates from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 3-86000 3-89999 3-250 3-319 3-7150 3-7299 3-85500 3-85999 3-905000 3-909999 3-9520000 3-9539999 5-00 5-19 Region name: Armenia Country code(s): AM Language group: 5 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 89999 ; 800000 - 919999 5-800000 5-919999 5-950000 5-979999 5-9800000 5-9999999 86-7000 86-7999 88-7000 88-8499 952-89 952-94 953-96000 953-99999 954-9500 954-9999 955-0 955-1 Region name: Sri Lanka Country code(s): LK Language group: 955 Publisher(s): 0 - 1 ; 20 - 54 ; 550 - 799 ; 8000 - 9499 ; 95000 - 99999 955-8000 955-9499 957-30000 957-30999 966-500 966-699 967-0 967-5 Region name: Malaysia Country code(s): MY Language group: 967 Publisher(s): 0 - 5 ; 60 - 89 ; 900 - 989 ; 9900 - 9989 ; 99900 - 99999 968-10 968-39 Region name: Mexico Country code(s): MX Language group: 968 Publisher(s): 10 - 39 ; 400 - 499 ; 5000 - 7999 ; 800 - 899 969-8000 969-9999 970-00 970-59 Region name: Mexico Country code(s): MX Language group: 970 Publisher(s): 00 - 59 ; 600 - 899 ; 9000 - 9099 ; 91000 - 99999 971-00 971-49 Region name: Philippines Country code(s): PH Language group: 971 Publisher(s): 00 - 49 ; 500 - 849 ; 8500 - 9099 ; 91000 - 99999 973-8000 973-8499 975-00 975-29 Region name: Turkey Country code(s): TR Language group: 975 Publisher(s): 00 - 29 ; 300 - 599 ; 6000 - 9199 ; 92000 - 97999 975-300 975-599 977-70000 977-99999 986-200 986-559 986-5600 986-7999 986-8000 986-99999 9955-9000 9955-9999 9958-0 9958-0 Region name: Bosnia and Herzegovina Country code(s): BA Language group: 9958 Publisher(s): 0 ; 10 - 49 ; 500 - 899 ; 9000 - 9999 9961-50 9961-79 9961-800 9961-949 9966-00 9966-69 Region name: Kenya Country code(s): KE Language group: 9966 Publisher(s): 00 - 69 ; 800 - 959 ; 9600 - 9999 9966-800 9966-959 9968-0 9968-0 Region name: Costa Rica Country code(s): CR Language group: 9968 Publisher(s): 0 ; 10 - 69 ; 700 - 969 ; 9700 - 9999 9968-10 9968-69 9968-700 9968-969 9968-9700 9968-9999 9972-40 9972-59 9973-0 9973-0 Region name: Tunisia Country code(s): TN Language group: 9973 Publisher(s): 0 ; 10 - 69 ; 700 - 969 ; 9700 - 9999 9975-50 9975-89 9976-60 9976-89 9976-9990 9976-9999 9988-30 9988-54 9989-8500 9989-9999 99917-900 99917-999 99918-900 99918-999 99919-900 99919-999 99922-50 99922-79 99922-800 99922-900 99924-30 99924-79 99938-30 99938-59 1-00 1-09 Region name: English language Country code(s): ?? Language group: 1 Publisher(s): 00 - 09; 100 - 399; 4000 - 5499; 55000 - 86979; 869800 - 998999; 9990000 - 9999999 1-9990000 1-9999999 3-99000 3-99499 3-99500 3-99999 602-0800 602-0899 602-0900 602-1099 602-1100 602-1199 602-1200 602-1399 602-18000 602-18999 602-19000 602-19999 602-6750 602-6999 602-8000 602-9499 605-01 605-02 Region name: Turkey Country code(s): TR Language group: 605 Publisher(s): 01 - 02; 030 - 039; 04 - 09; 100 - 399; 4000 - 5999; 60000 - 89999; 9000 - 9999 606-0 606-0 Region name: Romania Country code(s): RO Language group: 606 Publisher(s): 0 - 0; 10 - 49; 500 - 799; 8000 - 9199; 92000 - 99999 606-10 606-49 612-50 612-99 88-9300 88-9399 88-95000 88-99999 955-44000 955-44999 955-7500 955-7999 958-57000 958-59999 988-15000 988-16999 988-17000 988-19999 9940-9000 9940-9999 9949-0 9949-0 Region name: Estonia Country code(s): EE Language group: 9949 Publisher(s): 0 - 0; 10 - 39; 400 - 749; 75 - 89; 9000 - 9999 99919-70 99919-79 99919-850 99919-899 99945-60 99945-89 99960-0 99960-0 Region name: Malawi Country code(s): MW Language group: 99960 Publisher(s): 0 - 0; 10 - 94; 950 - 999 99961-40 99961-89 99965-40 99965-62 99967-20 99967-59 99971-60 99971-84 bibclean-3.07/test/okay/topt352.err0000444000156700015670000000000012470142676015755 0ustar beebebeebebibclean-3.07/test/okay/topt156.out0000444000156700015670000000000112470143222015763 0ustar beebebeebe bibclean-3.07/test/okay/testoptv.out0000444000156700015670000000457714023206351016456 0ustar beebebeebe@Misc{Blow:2013:X01, author = "Joe Blow", title = "A {\booktitle{C}}", expect = "A {\booktitle{C}}", year = "2013", } @Misc{Blow:2013:X02, author = "Joe Blow", title = "{B} {\booktitle {D}}", expect = "B {\booktitle {D}}", year = "2013", } @Misc{Blow:2013:X03, author = "Joe Blow", title = "Erwin {\booktitle {Cat}}", expect = "Erwin {\booktitle {Cat}}", year = "2013", } @Misc{Blow:2013:X04, author = "Joe Blow", title = "Alpha \booktitle{Cat}", expect = "Alpha \booktitle{Cat}", year = "2013", } @Misc{Blow:2013:X05, author = "Joe Blow", title = "Bethe {\booktitle{Cat}}", expect = "Bethe {\booktitle{Cat}}", year = "2013", } @Misc{Blow:2013:X06, author = "Joe Blow", title = "Gamow {{\booktitle{Cat}}}", expect = "Gamow {{\booktitle{Cat}}}", year = "2013", } @Misc{Blow:2013:X07, author = "Joe Blow", title = "\twoargs{One}{Two}", expect = "\twoargs{One}{Two}", year = "2013", } @Misc{Blow:2013:X08, author = "Joe Blow", title = "\twoargs {One}{Two}", expect = "\twoargs {One}{Two}", year = "2013", } @Misc{Blow:2013:X09, author = "Joe Blow", title = "\twoargs {One} {Two}", expect = "\twoargs {One} {Two}", year = "2013", } @Misc{Blow:2013:X10, author = "Joe Blow", title = "{\twoargs {Un}{Deux}}", expect = "{\twoargs {Un}{Deux}}", year = "2013", } @Misc{Blow:2013:X11, author = "Joe Blow", title = "{\twoargs{Een}{Tvaa}}", expect = "{\twoargs{Een}{Tvaa}}", year = "2013", } @Misc{Blow:2013:X12, author = "Joe Blow", title = "{{\twoargs {Uno} Dos}}", expect = "{\twoargs {Uno} Dos}", year = "2013", } @Misc{Blow:2013:X13, author = "Joe Blow", title = "{{\twoargs{One}{Two}}}", expect = "{{\twoargs{One}{Two}}}", year = "2013", } @Misc{Blow:2013:X14, author = "Joe Blow", title = "{{\twoargs {One}{Two}}}", expect = "{{\twoargs {One}{Two}}}", year = "2013", } @Misc{Blow:2013:X15, author = "Joe Blow", title = "{{\twoargs {One} Two}}", expect = "{{\twoargs {One} Two}}", year = "2013", } bibclean-3.07/test/okay/testopto.err0000444000156700015670000000201212115500171016403 0ustar beebebeebe%% testopto.bib:5:Unbalanced math-mode dollar(s) in value ``"Unbalanced dollar sign: $ 100 a n d u p"''. %% testopto.bib:5:Unclosed math mode in value ``"Unbalanced dollar sign: $ 100 a n d u p"''. %% testopto.bib:7:Unusual compound assignment or equality-test operator in math mode value ``"The equation $x:=F [ y+z/d ] $"'' (e.g., perhaps replace <= by \leq). %% testopto.bib:8:Unusual compound assignment or equality-test operator in math mode value ``"The displayed equation $$x:=F [ y+z/d ]$$"'' (e.g., perhaps replace <= by \leq). %% testopto.bib:13:Unexpected TeX tie[s] (tilde[s]) in math mode ``"Math ties: $ a~ = ~b~ + ~c $"''. %% testopto.bib:25:Final period/dot/fullstop is unexpected, and often wrong, in BibTeX title ``"The matrix {$H$} is called the {Hamiltonian}."''. %% testopto.bib:31:Subscript operator outside math mode in value ``"The crystal Cr_2O_3"''. %% testopto.bib:31:Subscript operator outside math mode in value ``"The crystal Cr_2O_3"''. %% testopto.bib:45:Unexpected value in ``pages = "21:1--21:13"''. bibclean-3.07/test/okay/topt319.out0000444000156700015670000000000112470143225015767 0ustar beebebeebe bibclean-3.07/test/okay/testopt1.out0000444000156700015670000000000107342761025016335 0ustar beebebeebe bibclean-3.07/test/okay/topt320.err0000444000156700015670000005103313660517107015761 0ustar beebebeebe Usage: ../bibclean [ -author ] [ -copyleft ] [ -copyright ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -ISBN-file filename ] [ -keyword-file filename ] [ -max-width nnn ] [ -[no-]align-equals ] [ -[no-]brace-protect ] [ -[no-]check-values ] [ -[no-]debug-match-failures ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-accents ] [ -[no-]fix-braces ] [ -[no-]fix-degrees ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-math ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-ISBN-table ] [ -[no-]print-keyword-table ] [ -[no-]print-patterns ] [ -[no-]quiet ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -output-file filename ] [ -version ] [ outfile Command-line switches may be abbreviated to a unique leading prefix, and letter case is not significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag to no. For such options, the last setting determines the flag value used. That is significant when options are also specified in initialization files (see the INITIALIZATION FILES manual section). The leading hyphen that distinguishes an option from a filename may be doubled, for compatibility with GNU and POSIX conventions. Thus, -author and --author are equivalent. To avoid confusion with options, if a filename begins with a hyphen, it must be disguised by a leading absolute or relative directory path, e.g., /tmp/-foo.bib or ./-foo.bib. -author Display an author credit on the standard error unit, stderr, and then terminate with a success return code. Sometimes an executable program is separated from its documentation and source code; this option provides a way to recover from that. -copyleft Display copyright information on the standard error unit, stderr, and then terminate with a success return code. -copyright Display copyright information on the standard error unit, stderr, and then terminate with a success return code. -error-log filename Redirect stderr to the indicated file, which then contains all of the error and warning messages. This option is provided for those systems that have difficulty redirecting stderr. -help or -? Display a help message on stderr, giving a usage description, similar to this section of the manual pages, and then terminate with a success return code. -ISBN-file filename Provide an explicit ISBN-range initialization file. It is processed after any system-wide and job-wide ISBN initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. The ISBN initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANISBN, but defaults to .bibclean.isbn on UNIX, and bibclean.isb elsewhere. For further details, see the ISBN INITIALIZATION FILES manual section. -init-file filename Provide an explicit value pattern initialization file. It is processed after any system-wide and job-wide initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANINI, but defaults to .bibcleanrc on UNIX, and to bibclean.ini elsewhere. For further details, see the INITIALIZATION FILES manual section. -keyword-file filename Provide an explicit keyword initialization file. It is processed after any system-wide and job-wide keyword initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. The keyword initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANKEY, but defaults to .bibclean.key on UNIX, and bibclean.key elsewhere. For further details, see the KEYWORD INITIALIZATION FILES manual section. -max-width nnn bibclean normally limits output line widths to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special-purpose applications may require different maximum line widths, so this option provides that capability. The number following the option name can be specified in decimal, octal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is interpreted to mean unlimited, so -max-width 0 can be used to ensure that each field/value pair appears on a single line. When -no-prettyprint requests bibclean to act as a lexical analyzer, the default line width is unlimited, unless overridden by this option. When bibclean is prettyprinting, line wrapping is done only at a space. Consequently, a long non-blank character sequence may result in the output exceeding the requested line width. When bibclean is lexing, line wrapping is done by inserting a backslash-newline pair when the specified maximum is reached, so no line length ever exceeds the maximum. -[no-]align-equals With the positive form, align the equals sign in key/value assignments at the same column, separated by a single space from the value string. Otherwise, the equals sign follows the key, separated by a single space. Default: no. -[no-]brace-protect Protect uppercase and mixedcase words at brace-level zero with braces to prevent downcasing by some BibTeX styles. Default: yes. -[no-]check-values With the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g., ``year = "192"'' instead of ``year = "1992"''), and issue warnings when unexpected patterns are found. That checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can disable it with the negative form of this option. Default: yes. -[no-]debug-match-failures With the positive form, print out a warning when a value pattern fails to match a value string. That is helpful in debugging new patterns, but because the output can be voluminous, you should use this option only with small test files, and initialization files that eliminate all patterns apart from the ones that you are testing. Default: no. -[no-]delete-empty-values With the positive form, remove all field/value pairs for which the value is an empty string. That is helpful in cleaning up bibliographies generated from text editor templates. Compare this option with -[no-]remove-OPT-prefixes described below. Default: no. -[no-]file-position With the positive form, give detailed file position information in warning and error messages. Default: no. -[no-]fix-accents With the positive form, normalize TeX accents in annotes, authors, booktitles, editors, notes, remarks, and titles. Default: no. -[no-]fix-braces With the positive form, normalize bracing in annotes, authors, booktitles, editors, notes, remarks, and titles, by removing unnecessary levels of braces. Default: no. -[no-]fix-degrees With the positive form, remove spaces in author/editor fields inside braces after letter-ending periods. That makes reductions from J. J. {Thomson, M. A., F. R. S.}, Frederick {Soddy, B. A. (Oxon.)}, and John A. {Cable, M. A., M. Ed., Dipl. Deutsch (Marburg), A. L. C. M.} to J. J. {Thomson, M.A., F.R.S.}, Frederick {Soddy, B.A. (Oxon.)}, and John A. {Cable, M.A., M.Ed., Dipl.Deutsch (Marburg), A.L.C.M.}, respectively. In journals in the humanities and history of science, as well as in some scientific journals until well into the 20th Century, academic, honorary, and professional titles and degrees are commonly attached to personal names. Even though modern publishing practice avoids such decorations, for accuracy, bibliography entries should preferably retain them. Journal typographical practice generally follows the reductions described here. -[no-]fix-font-changes With the positive form, supply an additional brace level around font changes in titles to protect against downcasing by some BibTeX styles. Font changes that already have more than one level of braces are not modified. For example, if a title contains the Latin phrase {\em Dictyostelium discoideum} or {\em {D}ictyostelium discoideum}, then downcasing incorrectly converts the phrase to lower-case letters. Most BibTeX users are surprised that bracing the initial letters does not prevent the downcase action. The correct coding is {{\em Dictyostelium discoideum}}. However, there are also legitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, bibclean normally does not supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this option to supply them. If you think that you need this option, it is strongly recommended that you apply bibclean to your bibliography file with and without -fix-font-changes, then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You must decide which of the two output files is the better choice, then repair the incorrect title bracing by hand. Because font changes in titles are uncommon, except for cases of the type that this option is designed to correct, it should do more good than harm. Default: no. -[no-]fix-initials With the positive form, insert a space after a period following author initials. Default: yes. -[no-]fix-math With the positive form, improve readability of math mode in titles by inserting spaces around operators, deleting other unnecessary space, and removing braces around single- character subscripts and superscripts. Default: no. -[no-]fix-names With the positive form, reorder author and editor name lists to remove commas at brace level zero, placing first names or initials before last names. Default: yes. -[no-]German-style With the positive form, interpret quote characters ["] inside braced value strings at brace level 1 according to the conventions of the TeX style file german.sty, which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, invisible hyphens, raised/lowered quotes, French guillemets, and discretionary hyphens. Recognized character combinations are braced to prevent BibTeX from interpreting the quote as a string delimiter. Quoted strings receive no special handling from this option, and because German nouns in titles must anyway be protected from the downcasing operation of most BibTeX bibliography styles, German value strings that use the overloaded quote character can always be entered in the form "{...}", without the need to specify this option at all. Default: no. -[no-]keep-linebreaks Normally, line breaks inside value strings are collapsed into a single space, so that long value strings can later be broken to provide lines of reasonable length. With the positive form, linebreaks are preserved in value strings. If -max-width is set to zero, this preserves the original line breaks. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-parbreaks With the positive form, preserve paragraph breaks (either formfeeds, or lines containing only spaces) in value strings. Normally, paragraph breaks are collapsed into a single space. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-preamble-spaces With the positive form, preserve all whitespace in @Preamble{...} entries. Default: no. -[no-]keep-spaces With the positive form, preserve all spaces in value strings. Normally, multiple spaces are collapsed into a single space. This option can be used together with -keep-linebreaks, -keep-parbreaks, and -max-width 0 to preserve the form of value strings while still providing syntax and value checking. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-string-spaces With the positive form, preserve all whitespace in @String{...} entries. Default: no. -[no-]parbreaks With the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field/value pairs. That may be useful to quickly trap runaway strings arising from mismatched delimiters. Default: yes. -[no-]prettyprint Normally, bibclean functions as a prettyprinter. However, with the negative form of this option, it acts as a lexical analyzer instead, producing a stream of lexical tokens. See the LEXICAL ANALYSIS manual section for further details. Default: yes. -[no-]print-ISBN-table With the positive form, print the ISBN-range table on stderr, then terminate with a success return code. That action is taken after all command-line options are processed, and before any input files are read (other than those that are values of command-line options). The format of the output ISBN-range table is acceptable for input as an ISBN initialization file (see the ISBN INITIALIZATION FILES manual section). Default: no. -[no-]print-keyword-table With the positive form, print the keyword initialization table on stderr, then terminate with a success return code. That action is taken after all command-line options are processed, and before any input files are read (other than those that are values of command-line options). The format of the output table is acceptable for input as a keyword initialization file (see the KEYWORD INITIALIZATION FILES manual section). Default: no. -[no-]print-patterns With the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used. When bibclean is compiled with native pattern-matching code (the default), those patterns are the ones that are used in checking value strings for valid syntax, and all of them are specified in initialization files, rather than hard-coded into the program. For further details, see the INITIALIZATION FILES manual section. Default: no. -[no-]quiet This option is the opposite of -[no-]warning; it exists for user convenience, and for compatibility with other programs that use -q for quiet operation, without warning messages. -[no-]read-init-files With the negative form, suppress loading of system-, user-, and file-specific initialization files. Initializations then come only from those files explicitly given by -init-file filename options. Default: yes. -[no-]remove-OPT-prefixes With the positive form, remove the ``OPT'' prefix from each field name where the corresponding value is not an empty string. The prefix ``OPT'' must be entirely in upper-case to be recognized. This option is for bibliographies generated with the help of the GNU Emacs BibTeX editing support, which generates templates with optional fields identified by the ``OPT'' prefix. Although the function M-x bibtex-remove-OPT normally bound to the keystrokes C-c C-o does the job, users often forget, with the result that BibTeX does not recognize the field name, and ignores the value string. Compare this option with -[no-]delete-empty-values described above. Default: no. -[no-]scribe With the positive form, accept input syntax conforming to the Scribe document system. The output is converted to conform to BibTeX syntax. See the SCRIBE BIBLIOGRAPHY FORMAT manual section for further details. Default: no. -[no-]trace-file-opening With the positive form, record in the error log file the names of all files that bibclean attempts to open. Use this option to identify where initialization files are located. Default: no. -[no-]warnings With the positive form, allow all warning messages. The negative form is not recommended because it may mask problems that should be repaired. Default: yes. -output-file filename Supply an alternate output file to replace stdout. If the filename cannot be opened for output, execution terminates immediately with a nonzero exit code. -version Display the program version number on stderr, and then terminate with a success return code. That includes an indication of who compiled the program, the host name on which it was compiled, the time of compilation, and the type of string-value matching code selected, when that information is available to the compiler. bibclean-3.07/test/okay/topt124.out0000444000156700015670000000000112470143212015755 0ustar beebebeebe bibclean-3.07/test/okay/testbib4.out0000444000156700015670000001123412112163324016271 0ustar beebebeebe% /u/sy/beebe/tex/bibclean/testbib4.org, Mon Jan 18 09:52:55 1993 % Edit by Nelson H. F. Beebe % This file stress-tests bibclean and biblex by % presenting them with input that has spaces % liberally sprinkled throughout, especially % between tokens. It is designed as a useful test % of a proposed grammar for BibTeX. %================================================= % Test 1: simple case without extra spaces @Preamble{"anythinggoes"} @Include{a-file-name-goes-here} @String{abb = "abbreviation"} @Article{the-key, author = "A. U. Thor", title = "The Title", journal = "The Journal", year = "1993", volume = "23", number = "1", pages = "17--21", month = jan, bibdate = "Mon Jan 18 09:59:44 1993", } %================================================= % Test 2: simple one-line cases with intervening % spaces @Preamble{"anything goes"} @Include{ a-file-name-goes-here} @String{abb = "abbreviation"} @Article{the-key, author = "A. U. Thor", title = "The Title", journal = "The Journal", year = "1993", volume = "23", number = "1", pages = "17--21", month = jan, bibdate = "Mon Jan 18 09:59:44 1993", } %================================================= % Test 3: change blanks to newlines in previous % test @Preamble{"anything goes"} @Include{ a-file-name-goes-here} @String{abb = "abbreviation"} @Article{the-key, author = "A. U. Thor", title = "The Title", journal = "The Journal", year = "1993", volume = "23", number = "1", pages = "17--21", month = jan, bibdate = "Mon Jan 18 09:59:44 1993", } %================================================= % Test 4: change newlines to doubled newlines in % previous test @Preamble{"anything goes"} @Include{ a-file-name-goes-here} @String{abb = "abbreviation"} @Article{the-key, author = "A. U. Thor", title = "The Title", journal = "The Journal", year = "1993", volume = "23", number = "1", pages = "17--21", month = jan, bibdate = "Mon Jan 18 09:59:44 1993", } %================================================= % Test 5: Change newline to % newline-comment-newline in previous test. @ % this is a comment Preamble % this is a comment {% this is a comment "anything" # % this is a comment "goes"% this is a comment } % this is a comment % this is a comment @ % this is a comment Include % this is a comment { % this is a comment a-file-name-goes-here % this is a comment } % this is a comment % this is a comment @ % this is a comment String % this is a comment {% this is a comment abb% this is a comment = % this is a comment "abbreviation"% this is a comment } % this is a comment % this is a comment % this is a comment @ % this is a comment Article % this is a comment {the-key% this is a comment , % this is a comment author% this is a comment = % this is a comment "A. U. Thor"% this is a comment , % this is a comment title% this is a comment = % this is a comment "The Title"% this is a comment , % this is a comment journal% this is a comment = % this is a comment "The Journal"% this is a comment , % this is a comment year% this is a comment = % this is a comment "1993"% this is a comment , % this is a comment volume% this is a comment = % this is a comment "23"% this is a comment , % this is a comment number% this is a comment = % this is a comment "1"% this is a comment , % this is a comment pages% this is a comment = % this is a comment "17--21"% this is a comment , % this is a comment month% this is a comment = % this is a comment jan% this is a comment , % this is a comment bibdate% this is a comment = % this is a comment "Mon Jan 18 09:59:44 1993"% this is a comment , % this is a comment } % this is a comment %================================================= % Test 7: other kinds of embedded space characters % We add CR before LF, and insert FF VT before % each entry. @Preamble{"anythinggoes"} @Include{a-file-name-goes-here} @String{abb = "abbreviation"} @Article{the-key, author = "A. U. Thor", title = "The Title", journal = "The Journal", year = "1993", volume = "23", number = "1", pages = "17--21", month = jan, bibdate = "Mon Jan 18 09:59:44 1993", } bibclean-3.07/test/okay/topt158.out0000444000156700015670000000000012470142673015775 0ustar beebebeebebibclean-3.07/test/okay/testoptx.out0000444000156700015670000000000012470140765016443 0ustar beebebeebebibclean-3.07/test/okay/testopta.err0000444000156700015670000001610713565762065016425 0ustar beebebeebefile=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 19dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 19dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 20dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd aaa 20dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 20dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 19dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 20dd"] file=[../bibclean.ini] field=[chapter ] existing patterns discarded file=[../bibclean.ini] field=[chapter ] pattern=["D"] file=[../bibclean.ini] field=[chapter ] pattern=["D-D"] file=[../bibclean.ini] field=[month ] existing patterns discarded file=[../bibclean.ini] field=[month ] pattern=[aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # " D"] file=[../bibclean.ini] field=[month ] pattern=[aaa # " D--D"] file=[../bibclean.ini] field=[month ] pattern=["D " # aaa] file=[../bibclean.ini] field=[month ] pattern=["D--D " # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # "" # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # "--" # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # " -- " # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # "/" # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # " A " # aaa] file=[../bibclean.ini] field=[month ] pattern=["\A\u\t\u\m\n"] file=[../bibclean.ini] field=[month ] pattern=["\F\a\l\l"] file=[../bibclean.ini] field=[month ] pattern=["\S\p\r\i\n\g"] file=[../bibclean.ini] field=[month ] pattern=["\S\u\m\m\e\r"] file=[../bibclean.ini] field=[month ] pattern=["\W\i\n\t\e\r"] file=[../bibclean.ini] field=[number ] existing patterns discarded file=[../bibclean.ini] field=[number ] pattern=["D"] file=[../bibclean.ini] field=[number ] pattern=["A AD"] file=[../bibclean.ini] field=[number ] pattern=["A D(D)"] file=[../bibclean.ini] field=[number ] pattern=["A D"] file=[../bibclean.ini] field=[number ] pattern=["A D\.D"] file=[../bibclean.ini] field=[number ] pattern=["A-A-D-D"] file=[../bibclean.ini] field=[number ] pattern=["A-A-D"] file=[../bibclean.ini] field=[number ] pattern=["A-A-D\.D"] file=[../bibclean.ini] field=[number ] pattern=["A-AD-D"] file=[../bibclean.ini] field=[number ] pattern=["A-D D"] file=[../bibclean.ini] field=[number ] pattern=["A-D-D"] file=[../bibclean.ini] field=[number ] pattern=["A-D"] file=[../bibclean.ini] field=[number ] pattern=["AD-D-D"] file=[../bibclean.ini] field=[number ] pattern=["AD-D"] file=[../bibclean.ini] field=[number ] pattern=["AD"] file=[../bibclean.ini] field=[number ] pattern=["A\#D-D"] file=[../bibclean.ini] field=[number ] pattern=["D \an\d D"] file=[../bibclean.ini] field=[number ] pattern=["D+D"] file=[../bibclean.ini] field=[number ] pattern=["D+D"] file=[../bibclean.ini] field=[number ] pattern=["D-D"] file=[../bibclean.ini] field=[number ] pattern=["D/D"] file=[../bibclean.ini] field=[number ] pattern=["D D"] file=[../bibclean.ini] field=[number ] pattern=["DA"] file=[../bibclean.ini] field=[number ] pattern=["D\.D"] file=[../bibclean.ini] field=[number ] pattern=["W-W W"] file=[../bibclean.ini] field=[number ] pattern=["W-W-WW-W"] file=[../bibclean.ini] field=[number ] pattern=["W"] file=[../bibclean.ini] field=[number ] pattern=["X"] file=[../bibclean.ini] field=[pages ] existing patterns discarded file=[../bibclean.ini] field=[pages ] pattern=["D"] file=[../bibclean.ini] field=[pages ] pattern=["aD"] file=[../bibclean.ini] field=[pages ] pattern=["D--D"] file=[../bibclean.ini] field=[pages ] pattern=["aD--aD"] file=[../bibclean.ini] field=[pages ] pattern=["D, D"] file=[../bibclean.ini] field=[pages ] pattern=["aD, aD"] file=[../bibclean.ini] field=[pages ] pattern=["D, D, D"] file=[../bibclean.ini] field=[pages ] pattern=["aD, aD, aD"] file=[../bibclean.ini] field=[pages ] pattern=["D, D, D, D"] file=[../bibclean.ini] field=[pages ] pattern=["aD, aD, aD, aD"] file=[../bibclean.ini] field=[pages ] pattern=["R + D"] file=[../bibclean.ini] field=[pages ] pattern=["R + D, w D w"] file=[../bibclean.ini] field=[pages ] pattern=["D, w D w"] file=[../bibclean.ini] field=[pages ] pattern=["D--D, D--D"] file=[../bibclean.ini] field=[pages ] pattern=["D--D, D--D, D--D"] file=[../bibclean.ini] field=[pages ] pattern=["aD--aD, aD--aD"] file=[../bibclean.ini] field=[pages ] pattern=["aD--aD, aD--aD, aD--aD"] file=[../bibclean.ini] field=[pages ] pattern=["??--??"] file=[../bibclean.ini] field=[pages ] pattern=["????"] file=[../bibclean.ini] field=[price ] existing patterns discarded file=[../bibclean.ini] field=[price ] pattern=["AD\.dd"] file=[../bibclean.ini] field=[price ] pattern=["D\.dd"] message[Put country prefix on price %v] file=[../bibclean.ini] field=[price ] pattern=["AD"] file=[../bibclean.ini] field=[price ] pattern=["D"] message[Put country prefix on price %v] file=[../bibclean.ini] field=[tag ] existing patterns discarded file=[../bibclean.ini] field=[tag ] pattern=[A:Add] file=[../bibclean.ini] field=[tag ] pattern=[A:Adda] file=[../bibclean.ini] field=[volume ] existing patterns discarded file=[../bibclean.ini] field=[volume ] pattern=["D"] file=[../bibclean.ini] field=[volume ] pattern=["DA"] file=[../bibclean.ini] field=[volume ] pattern=["D/D"] file=[../bibclean.ini] field=[volume ] pattern=["DA D"] file=[../bibclean.ini] field=[volume ] pattern=["w-D"] file=[../bibclean.ini] field=[volume ] pattern=["A"] file=[../bibclean.ini] field=[volume ] pattern=["D.D"] file=[../bibclean.ini] field=[volume ] pattern=["D \an\d D"] file=[../bibclean.ini] field=[volume ] pattern=["W"] file=[../bibclean.ini] field=[year ] existing patterns discarded file=[../bibclean.ini] field=[year ] pattern=["19dd"] file=[../bibclean.ini] field=[year ] pattern=["19dd, 19dd"] file=[../bibclean.ini] field=[year ] pattern=["19dd, 19dd, 19dd"] file=[../bibclean.ini] field=[year ] pattern=["19dda19dd"] file=[../bibclean.ini] field=[year ] pattern=["18dd"] file=[../bibclean.ini] field=[year ] pattern=["18dd, 18dd"] file=[../bibclean.ini] field=[year ] pattern=["18dd, 18dd, 18dd"] file=[../bibclean.ini] field=[year ] pattern=["18dda18dd"] file=[../bibclean.ini] field=[year ] pattern=["19dd (19dd)"] file=[../bibclean.ini] field=[year ] pattern=["19dd" # "--"] file=[../bibclean.ini] field=[year ] pattern=["20dd"] file=[../bibclean.ini] field=[year ] pattern=["18dd--d"] file=[../bibclean.ini] field=[year ] pattern=["19dd--d"] file=[../bibclean.ini] field=[year ] pattern=["20dd--d"] file=[../bibclean.ini] field=[year ] pattern=["20dd--d"] bibclean-3.07/test/okay/topt317.out0000444000156700015670000000000112470143224015764 0ustar beebebeebe bibclean-3.07/test/okay/topt113.err0000444000156700015670000000000012470142672015744 0ustar beebebeebebibclean-3.07/test/okay/topt310.out0000444000156700015670000000000112470143224015755 0ustar beebebeebe bibclean-3.07/test/okay/testoptf.err0000444000156700015670000000000007342757115016407 0ustar beebebeebebibclean-3.07/test/okay/topt114.err0000444000156700015670000000000012470142673015746 0ustar beebebeebebibclean-3.07/test/okay/testopt8.out0000444000156700015670000000000007342757115016350 0ustar beebebeebebibclean-3.07/test/okay/topt327.err0000444000156700015670000000000012470142675015756 0ustar beebebeebebibclean-3.07/test/okay/topt123.out0000444000156700015670000000000112470143211015753 0ustar beebebeebe bibclean-3.07/test/okay/testbib3.out0000444000156700015670000001153505727412730016310 0ustar beebebeebe%% Test cases for -fix-names @Article{foo, author = "William {Jones, Jr.} and Robert {Smith, Sr.}", editor = "William {Jones Jr.} and Robert {Smith Sr.}", author = "William {Jones, Sr.} and Robert {Smith, Sr.}", editor = "William {Jones Sr.} and Robert {Smith Sr.}", author = "William {Jones, Jr.} and Robert {Smith, Sr.}", editor = "William {Jones Jr.} and Robert {Smith Sr.}", author = "William {Jones, Sr.} and Robert {Smith, Sr.}", editor = "William {Jones Sr.} and Robert {Smith Sr.}", author = "Ludwig von Beethoven", editor = "Ludwig {von Beethoven}", author = "King {Charles XIII}", editor = "Queen {Elizabeth XXXIV}", } %% Test cases for -fix-font-changes @Article{test1, author = "A. Bominaar and B. Snaar-Jagalska and F. Kesbeke and P. van Haastert", title = "Signal-transducing {G} proteins in {{\it Dictyosteliun Discoideum}}", journal = "??", year = "1989", volume = "27", pages = "369--375", } @Article{test2, author = "A. Bominaar and B. Snaar-Jagalska and F. Kesbeke and P. van Haastert", title = "Signal-transducing {G} proteins in {{\it {D}ictyosteliun {D}iscoideum}}", journal = "??", year = "1989", volume = "27", pages = "369--375", } @Article{test3, author = "A. Bominaar and B. Snaar-Jagalska and F. Kesbeke and P. van Haastert", title = "Signal-transducing {G} proteins in {{\it Dictyosteliun Discoideum}}", journal = "??", year = "1989", volume = "27", pages = "369--375", } %% Test cases for month processing @Article{date-test, month = "13 " # oct, month = "23 " # jan, month = "23 " # jan, month = "3 " # jan, month = apr, month = apr, month = aug, month = aug, month = dec, month = dec, month = feb, month = feb, month = jan, month = "Janu.", month = jan # " 23", month = jan # " 3", month = jan, month = jul, month = jul, month = jun, month = jun, month = mar, month = mar, month = may, month = nov, month = nov, month = nov, month = oct, month = oct, month = sep, month = sep, month = sep, month = "unknown", month = aug, month = jan # " 23", month = jan, month = nov, month = aug # " and " # nov, month = feb # " and " # may, month = may # "/" # jun, } %% Test cases for long string values @Article{ber90, author = "M. J. Berridge and B. V. L. Potter", title = "Inositol trisphosphate analogues induce different oscillatory patterns in {\xenopus} oocytes", journal = "Cell Regulation", year = "1990", volume = "1", pages = "675--681", annote = "calcium dynamics: The different analogues of {\IP{3}} that were tested were {\IP{3}}, Ins(2,4,5)P${}_3$ and Ins(1,3,4,5)P${}_4$. These were injected through a double barrel electrode and the {\Cl} current was then used to measure the {\Ca{}} response. ``The naturally occurring {\IP{3}} produced a large initial transient followed by a single transient or burst of oscillations. By contrast, two analogues ({\IP{3}} and Ins(2,4,5)P${}_3$) produced different oscillatory pattern made up of a short burst of shape transients. $\cdots$ Both analogues failed to induce a response when injected after the initial {\IP{3}}-induced response, indicating that they act on the same intracellular pool of \Ca{} [not necessarily the case]. The existence of different oscillatory patterns suggests that there may be different mechanisms for setting up \Ca{} oscillations. The {\IP{3}} and Ins(2,4,5)P${}_3$ analogues may initiate oscillations through a negative feedback mechanism whereby \Ca{} inhibits its own release. The two-pool model is most likely mechanism to describe the {\IP{3}}-induced oscillations.''", } %%% Test case for bug fix of bibclean 2.10.1: @InProceedings{Barthel94b, author = "Kai Uwe Barthel and J{\"{o}}rg Sch{\"{u}}ttemeyer and Thomas Voy\'{e} and Peter Noll", author = "Kai Uwe Barthel and J{\"{o}}rg Sch{\"{u}}ttemeyer and Thomas Voy\'{e} and Peter Noll", } bibclean-3.07/test/okay/topt168.err0000664000156700015670000000055714162101377016000 0ustar beebebeebebibclean Version 3.07 [26-Dec-2021] with native pattern matching E-mail bug reports to Nelson H. F. Beebe Copyright (C) 1990--2021 by Nelson H. F. Beebe and the Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. bibclean-3.07/test/okay/topt105.err0000444000156700015670000000040312470143204015744 0ustar beebebeebeAuthor: Nelson H. F. Beebe University of Utah Department of Mathematics, 110 LCB 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA Tel: +1 801 581 5254 FAX: +1 801 581 4148 Email: beebe@math.utah.edu, beebe@acm.org, beebe@computer.org (Internet) bibclean-3.07/test/okay/topt301.out0000444000156700015670000000000012470142674015764 0ustar beebebeebebibclean-3.07/test/okay/topt132.out0000444000156700015670000000000112470143214015756 0ustar beebebeebe bibclean-3.07/test/okay/topt336.err0000444000156700015670000000000012470142676015757 0ustar beebebeebebibclean-3.07/test/okay/topt135.out0000444000156700015670000000000112470143216015763 0ustar beebebeebe bibclean-3.07/test/okay/topt331.err0000444000156700015670000000000012470142676015752 0ustar beebebeebebibclean-3.07/test/okay/romtol.out0000444000156700015670000000323005322651162016071 0ustar beebebeeberomtol(): i -> 1 Remainder = [] romtol(): ii -> 2 Remainder = [] romtol(): iii -> 3 Remainder = [] romtol(): iiii -> 4 Remainder = [] romtol(): iv -> 4 Remainder = [] romtol(): v -> 5 Remainder = [] romtol(): vi -> 6 Remainder = [] romtol(): vii -> 7 Remainder = [] romtol(): viii -> 8 Remainder = [] romtol(): viiii -> 9 Remainder = [] romtol(): ix -> 9 Remainder = [] romtol(): x -> 10 Remainder = [] romtol(): xi -> 11 Remainder = [] romtol(): xii -> 12 Remainder = [] romtol(): xiii -> 13 Remainder = [] romtol(): xiiii -> 14 Remainder = [] romtol(): xiv -> 14 Remainder = [] romtol(): xv -> 15 Remainder = [] romtol(): xvi -> 16 Remainder = [] romtol(): xvii -> 17 Remainder = [] romtol(): xviii -> 18 Remainder = [] romtol(): xviiii -> 19 Remainder = [] romtol(): xix -> 19 Remainder = [] romtol(): xx -> 20 Remainder = [] romtol(): xxx -> 30 Remainder = [] romtol(): xxxx -> 40 Remainder = [] romtol(): xxxxx -> 50 Remainder = [] romtol(): l -> 50 Remainder = [] romtol(): c -> 100 Remainder = [] romtol(): cc -> 200 Remainder = [] romtol(): cd -> 400 Remainder = [] romtol(): d -> 500 Remainder = [] romtol(): dc -> 600 Remainder = [] romtol(): cm -> 900 Remainder = [] romtol(): m -> 1000 Remainder = [] romtol(): mcm -> 1900 Remainder = [] romtol(): mcmxcii -> 1992 Remainder = [] romtol(): mxmii -> 1992 Remainder = [] romtol(): abc -> 0 Remainder = [abc] romtol(): iabc -> 1 Remainder = [abc] romtol(): vabc -> 5 Remainder = [abc] romtol(): xabc -> 10 Remainder = [abc] romtol(): labc -> 50 Remainder = [abc] romtol(): cabc -> 100 Remainder = [abc] romtol(): dabc -> 500 Remainder = [abc] romtol(): mabc -> 1000 Remainder = [abc] bibclean-3.07/test/okay/topt102.err0000444000156700015670000000000012470142672015742 0ustar beebebeebebibclean-3.07/test/okay/topt306.out0000444000156700015670000000000112470143224015762 0ustar beebebeebe bibclean-3.07/test/okay/topt149.out0000444000156700015670000000000112470143221015764 0ustar beebebeebe bibclean-3.07/test/okay/topt170.err0000444000156700015670000000000012663433402015745 0ustar beebebeebebibclean-3.07/test/okay/topt308.out0000444000156700015670000000000012470142674015773 0ustar beebebeebebibclean-3.07/test/okay/topt147.out0000444000156700015670000000000112470143220015761 0ustar beebebeebe bibclean-3.07/test/okay/topt343.err0000444000156700015670000000000012470142676015755 0ustar beebebeebebibclean-3.07/test/okay/topt140.out0000444000156700015670000000000112470143220015752 0ustar beebebeebe bibclean-3.07/test/okay/topt344.err0000444000156700015670000000000012470142676015756 0ustar beebebeebebibclean-3.07/test/okay/topt338.err0000444000156700015670000000000012470142676015761 0ustar beebebeebebibclean-3.07/test/okay/topt371.err0000444000156700015670000000000013070535011015740 0ustar beebebeebebibclean-3.07/test/okay/topt142.err0000444000156700015670000000000012470142673015747 0ustar beebebeebebibclean-3.07/test/okay/topt346.out0000444000156700015670000000000112470143230015763 0ustar beebebeebe bibclean-3.07/test/okay/topt109.out0000444000156700015670000000000012470142672015770 0ustar beebebeebebibclean-3.07/test/okay/topt145.err0000444000156700015670000000000012470142673015752 0ustar beebebeebebibclean-3.07/test/okay/topt341.out0000444000156700015670000000000112470143227015764 0ustar beebebeebe bibclean-3.07/test/okay/topt139.err0000444000156700015670000000000012470142673015755 0ustar beebebeebebibclean-3.07/test/okay/testcodn.err0000444000156700015670000015334312071124036016366 0ustar beebebeebe%% testcodn.bib:242:Invalid checksum for CODEN CMBUA9 in ``CODEN = "CMBUA9"''. %% testcodn.bib:295:Invalid checksum for CODEN CPCPAI in ``CODEN = "CPCPAI"''. %% testcodn.bib:387:Invalid checksum for CODEN EDNSBM in ``CODEN = "EDNSBM"''. %% testcodn.bib:493:Invalid checksum for CODEN IEEECA in ``CODEN = "IEEECA"''. %% testcodn.bib:585:Invalid checksum for CODEN IPJIEI in ``CODEN = "IPJIEI"''. %% testcodn.bib:615:Invalid checksum for CODEN itmeer in ``CODEN = "itmeer"''. %% testcodn.bib:616:Invalid checksum for CODEN itmgex in ``CODEN = "itmgex"''. %% testcodn.bib:618:Invalid checksum for CODEN itnnep in ``CODEN = "itnnep"''. %% testcodn.bib:619:Invalid checksum for CODEN itpidj in ``CODEN = "itpidj"''. %% testcodn.bib:620:Invalid checksum for CODEN itpred in ``CODEN = "itpred"''. %% testcodn.bib:621:Invalid checksum for CODEN itpseg in ``CODEN = "itpseg"''. %% testcodn.bib:622:Invalid checksum for CODEN itrdde in ``CODEN = "itrdde"''. %% testcodn.bib:623:Invalid checksum for CODEN iumjab in ``CODEN = "iumjab"''. %% testcodn.bib:624:Invalid checksum for CODEN ivjodl in ``CODEN = "ivjodl"''. %% testcodn.bib:626:Invalid checksum for CODEN izamat in ``CODEN = "izamat"''. %% testcodn.bib:627:Invalid checksum for CODEN jacgar in ``CODEN = "jacgar"''. %% testcodn.bib:628:Invalid checksum for CODEN jacoah in ``CODEN = "jacoah"''. %% testcodn.bib:629:Invalid checksum for CODEN jacsat in ``CODEN = "jacsat"''. %% testcodn.bib:630:Invalid checksum for CODEN jactaw in ``CODEN = "jactaw"''. %% testcodn.bib:631:Invalid checksum for CODEN jaecet in ``CODEN = "jaecet"''. %% testcodn.bib:632:Invalid checksum for CODEN jahsak in ``CODEN = "jahsak"''. %% testcodn.bib:635:Invalid checksum for CODEN jamaap in ``CODEN = "jamaap"''. %% testcodn.bib:636:Invalid checksum for CODEN jamads in ``CODEN = "jamads"''. %% testcodn.bib:637:Invalid checksum for CODEN jamcav in ``CODEN = "jamcav"''. %% testcodn.bib:638:Invalid checksum for CODEN jammdu in ``CODEN = "jammdu"''. %% testcodn.bib:639:Invalid checksum for CODEN japgbp in ``CODEN = "japgbp"''. %% testcodn.bib:640:Invalid checksum for CODEN japiau in ``CODEN = "japiau"''. %% testcodn.bib:641:Invalid checksum for CODEN jareew in ``CODEN = "jareew"''. %% testcodn.bib:642:Invalid checksum for CODEN jasman in ``CODEN = "jasman"''. %% testcodn.bib:643:Invalid checksum for CODEN jatsdf in ``CODEN = "jatsdf"''. %% testcodn.bib:644:Invalid checksum for CODEN jaumax in ``CODEN = "jaumax"''. %% testcodn.bib:645:Invalid checksum for CODEN jaxtaz in ``CODEN = "jaxtaz"''. %% testcodn.bib:646:Invalid checksum for CODEN jbbmdg in ``CODEN = "jbbmdg"''. %% testcodn.bib:648:Invalid checksum for CODEN jbditd in ``CODEN = "jbditd"''. %% testcodn.bib:649:Invalid checksum for CODEN jbmrej in ``CODEN = "jbmrej"''. %% testcodn.bib:651:Invalid checksum for CODEN jcaleg in ``CODEN = "jcaleg"''. %% testcodn.bib:652:Invalid checksum for CODEN jcamdi in ``CODEN = "jcamdi"''. %% testcodn.bib:657:Invalid checksum for CODEN jcchdd in ``CODEN = "jcchdd"''. %% testcodn.bib:659:Invalid checksum for CODEN jcinao in ``CODEN = "jcinao"''. %% testcodn.bib:663:Invalid checksum for CODEN jcllax in ``CODEN = "jcllax"''. %% testcodn.bib:664:Invalid checksum for CODEN jcmbdb in ``CODEN = "jcmbdb"''. %% testcodn.bib:665:Invalid checksum for CODEN jcmiex in ``CODEN = "jcmiex"''. %% testcodn.bib:666:Invalid checksum for CODEN jcmmeb in ``CODEN = "jcmmeb"''. %% testcodn.bib:667:Invalid checksum for CODEN jcmtdv in ``CODEN = "jcmtdv"''. %% testcodn.bib:668:Invalid checksum for CODEN jcnrev in ``CODEN = "jcnrev"''. %% testcodn.bib:670:Invalid checksum for CODEN jcpadn in ``CODEN = "jcpadn"''. %% testcodn.bib:672:Invalid checksum for CODEN jcrgae in ``CODEN = "jcrgae"''. %% testcodn.bib:673:Invalid checksum for CODEN jcssbm in ``CODEN = "jcssbm"''. %% testcodn.bib:674:Invalid checksum for CODEN jcssep in ``CODEN = "jcssep"''. %% testcodn.bib:675:Invalid checksum for CODEN jcteem in ``CODEN = "jcteem"''. %% testcodn.bib:676:Invalid checksum for CODEN jcthar in ``CODEN = "jcthar"''. %% testcodn.bib:677:Invalid checksum for CODEN jctpah in ``CODEN = "jctpah"''. %% testcodn.bib:678:Invalid checksum for CODEN jdadex in ``CODEN = "jdadex"''. %% testcodn.bib:679:Invalid checksum for CODEN jdeqak in ``CODEN = "jdeqak"''. %% testcodn.bib:680:Invalid checksum for CODEN jdgeas in ``CODEN = "jdgeas"''. %% testcodn.bib:681:Invalid checksum for CODEN jdimew in ``CODEN = "jdimew"''. %% testcodn.bib:682:Invalid checksum for CODEN jdocas in ``CODEN = "jdocas"''. %% testcodn.bib:683:Invalid checksum for CODEN jdsmaa in ``CODEN = "jdsmaa"''. %% testcodn.bib:684:Invalid checksum for CODEN jeaiel in ``CODEN = "jeaiel"''. %% testcodn.bib:685:Invalid checksum for CODEN jebiam in ``CODEN = "jebiam"''. %% testcodn.bib:688:Invalid checksum for CODEN jedrap in ``CODEN = "jedrap"''. %% testcodn.bib:689:Invalid checksum for CODEN jeemaf in ``CODEN = "jeemaf"''. %% testcodn.bib:690:Invalid checksum for CODEN jemied in ``CODEN = "jemied"''. %% testcodn.bib:692:Invalid checksum for CODEN jenmdt in ``CODEN = "jenmdt"''. %% testcodn.bib:693:Invalid checksum for CODEN jepcea in ``CODEN = "jepcea"''. %% testcodn.bib:694:Invalid checksum for CODEN jezoao in ``CODEN = "jezoao"''. %% testcodn.bib:696:Invalid checksum for CODEN jfuaaw in ``CODEN = "jfuaaw"''. %% testcodn.bib:697:Invalid checksum for CODEN jganeg in ``CODEN = "jganeg"''. %% testcodn.bib:698:Invalid checksum for CODEN jgmian in ``CODEN = "jgmian"''. %% testcodn.bib:699:Invalid checksum for CODEN jgopeo in ``CODEN = "jgopeo"''. %% testcodn.bib:700:Invalid checksum for CODEN jgplad in ``CODEN = "jgplad"''. %% testcodn.bib:702:Invalid checksum for CODEN jgthdo in ``CODEN = "jgthdo"''. %% testcodn.bib:703:Invalid checksum for CODEN jhaddq in ``CODEN = "jhaddq"''. %% testcodn.bib:705:Invalid checksum for CODEN jietau in ``CODEN = "jietau"''. %% testcodn.bib:707:Invalid checksum for CODEN jiprde in ``CODEN = "jiprde"''. %% testcodn.bib:708:Invalid checksum for CODEN jirral in ``CODEN = "jirral"''. %% testcodn.bib:709:Invalid checksum for CODEN jiscdi in ``CODEN = "jiscdi"''. %% testcodn.bib:710:Invalid checksum for CODEN jjatdk in ``CODEN = "jjatdk"''. %% testcodn.bib:713:Invalid checksum for CODEN jlcmak in ``CODEN = "jlcmak"''. %% testcodn.bib:714:Invalid checksum for CODEN jllien in ``CODEN = "jllien"''. %% testcodn.bib:715:Invalid checksum for CODEN jlmsak in ``CODEN = "jlmsak"''. %% testcodn.bib:717:Invalid checksum for CODEN jmanak in ``CODEN = "jmanak"''. %% testcodn.bib:718:Invalid checksum for CODEN jmapaq in ``CODEN = "jmapaq"''. %% testcodn.bib:719:Invalid checksum for CODEN jmbbbo in ``CODEN = "jmbbbo"''. %% testcodn.bib:720:Invalid checksum for CODEN jmblaj in ``CODEN = "jmblaj"''. %% testcodn.bib:721:Invalid checksum for CODEN jmdeec in ``CODEN = "jmdeec"''. %% testcodn.bib:722:Invalid checksum for CODEN jmevau in ``CODEN = "jmevau"''. %% testcodn.bib:723:Invalid checksum for CODEN jmiado in ``CODEN = "jmiado"''. %% testcodn.bib:724:Invalid checksum for CODEN jmivek in ``CODEN = "jmivek"''. %% testcodn.bib:725:Invalid checksum for CODEN jmkyaz in ``CODEN = "jmkyaz"''. %% testcodn.bib:726:Invalid checksum for CODEN jmobak in ``CODEN = "jmobak"''. %% testcodn.bib:727:Invalid checksum for CODEN jmopew in ``CODEN = "jmopew"''. %% testcodn.bib:728:Invalid checksum for CODEN jmpaam in ``CODEN = "jmpaam"''. %% testcodn.bib:733:Invalid checksum for CODEN jmvaai in ``CODEN = "jmvaai"''. %% testcodn.bib:734:Invalid checksum for CODEN jnbbau in ``CODEN = "jnbbau"''. %% testcodn.bib:735:Invalid checksum for CODEN jnbcax in ``CODEN = "jnbcax"''. %% testcodn.bib:736:Invalid checksum for CODEN jnbraa in ``CODEN = "jnbraa"''. %% testcodn.bib:737:Invalid checksum for CODEN jnciam in ``CODEN = "jnciam"''. %% testcodn.bib:738:Invalid checksum for CODEN jncieq in ``CODEN = "jncieq"''. %% testcodn.bib:740:Invalid checksum for CODEN jncsai in ``CODEN = "jncsai"''. %% testcodn.bib:741:Invalid checksum for CODEN jnrsds in ``CODEN = "jnrsds"''. %% testcodn.bib:743:Invalid checksum for CODEN joaldv in ``CODEN = "joaldv"''. %% testcodn.bib:744:Invalid checksum for CODEN joamav in ``CODEN = "joamav"''. %% testcodn.bib:746:Invalid checksum for CODEN jobaay in ``CODEN = "jobaay"''. %% testcodn.bib:747:Invalid checksum for CODEN jobiao in ``CODEN = "jobiao"''. %% testcodn.bib:748:Invalid checksum for CODEN jobpde in ``CODEN = "jobpde"''. %% testcodn.bib:749:Invalid checksum for CODEN jobsdn in ``CODEN = "jobsdn"''. %% testcodn.bib:751:Invalid checksum for CODEN jocreq in ``CODEN = "jocreq"''. %% testcodn.bib:753:Invalid checksum for CODEN jomman in ``CODEN = "jomman"''. %% testcodn.bib:757:Invalid checksum for CODEN joopec in ``CODEN = "joopec"''. %% testcodn.bib:759:Invalid checksum for CODEN jophan in ``CODEN = "jophan"''. %% testcodn.bib:760:Invalid checksum for CODEN josaah in ``CODEN = "josaah"''. %% testcodn.bib:762:Invalid checksum for CODEN josmar in ``CODEN = "josmar"''. %% testcodn.bib:763:Invalid checksum for CODEN josued in ``CODEN = "josued"''. %% testcodn.bib:764:Invalid checksum for CODEN jotabn in ``CODEN = "jotabn"''. %% testcodn.bib:765:Invalid checksum for CODEN joviam in ``CODEN = "joviam"''. %% testcodn.bib:767:Invalid checksum for CODEN jpbpdl in ``CODEN = "jpbpdl"''. %% testcodn.bib:769:Invalid checksum for CODEN jpdcer in ``CODEN = "jpdcer"''. %% testcodn.bib:771:Invalid checksum for CODEN jpetab in ``CODEN = "jpetab"''. %% testcodn.bib:772:Invalid checksum for CODEN jpgedd in ``CODEN = "jpgedd"''. %% testcodn.bib:776:Invalid checksum for CODEN jpiedn in ``CODEN = "jpiedn"''. %% testcodn.bib:777:Invalid checksum for CODEN jqsrae in ``CODEN = "jqsrae"''. %% testcodn.bib:778:Invalid checksum for CODEN jqutau in ``CODEN = "jqutau"''. %% testcodn.bib:779:Invalid checksum for CODEN jrarax in ``CODEN = "jrarax"''. %% testcodn.bib:784:Invalid checksum for CODEN jrnaad in ``CODEN = "jrnaad"''. %% testcodn.bib:785:Invalid checksum for CODEN jrnbag in ``CODEN = "jrnbag"''. %% testcodn.bib:786:Invalid checksum for CODEN jsbiem in ``CODEN = "jsbiem"''. %% testcodn.bib:787:Invalid checksum for CODEN jscsaj in ``CODEN = "jscsaj"''. %% testcodn.bib:788:Invalid checksum for CODEN jsimav in ``CODEN = "jsimav"''. %% testcodn.bib:789:Invalid checksum for CODEN jsinay in ``CODEN = "jsinay"''. %% testcodn.bib:790:Invalid checksum for CODEN jsirac in ``CODEN = "jsirac"''. %% testcodn.bib:791:Invalid checksum for CODEN jsomar in ``CODEN = "jsomar"''. %% testcodn.bib:792:Invalid checksum for CODEN jspueq in ``CODEN = "jspueq"''. %% testcodn.bib:793:Invalid checksum for CODEN jssaef in ``CODEN = "jssaef"''. %% testcodn.bib:795:Invalid checksum for CODEN jssodm in ``CODEN = "jssodm"''. %% testcodn.bib:796:Invalid checksum for CODEN jstbaj in ``CODEN = "jstbaj"''. %% testcodn.bib:797:Invalid checksum for CODEN jstnal in ``CODEN = "jstnal"''. %% testcodn.bib:798:Invalid checksum for CODEN jstpsb in ``CODEN = "jstpsb"''. %% testcodn.bib:799:Invalid checksum for CODEN jsyceh in ``CODEN = "jsyceh"''. %% testcodn.bib:802:Invalid checksum for CODEN jtbiap in ``CODEN = "jtbiap"''. %% testcodn.bib:803:Invalid checksum for CODEN jtpedi in ``CODEN = "jtpedi"''. %% testcodn.bib:804:Invalid checksum for CODEN jvcaeo in ``CODEN = "jvcaeo"''. %% testcodn.bib:807:Invalid checksum for CODEN jvsped in ``CODEN = "jvsped"''. %% testcodn.bib:808:Invalid checksum for CODEN jwssap in ``CODEN = "jwssap"''. %% testcodn.bib:809:Invalid checksum for CODEN jyceaj in ``CODEN = "jyceaj"''. %% testcodn.bib:812:Invalid checksum for CODEN kerneu in ``CODEN = "kerneu"''. %% testcodn.bib:814:Invalid checksum for CODEN kybeap in ``CODEN = "kybeap"''. %% testcodn.bib:815:Invalid checksum for CODEN laapaw in ``CODEN = "laapaw"''. %% testcodn.bib:816:Invalid checksum for CODEN latedt in ``CODEN = "latedt"''. %% testcodn.bib:817:Invalid checksum for CODEN lcrcao in ``CODEN = "lcrcao"''. %% testcodn.bib:818:Invalid checksum for CODEN lcsrea in ``CODEN = "lcsrea"''. %% testcodn.bib:820:Invalid checksum for CODEN linmec in ``CODEN = "linmec"''. %% testcodn.bib:821:Invalid checksum for CODEN llcoei in ``CODEN = "llcoei"''. %% testcodn.bib:822:Invalid checksum for CODEN lmicdi in ``CODEN = "lmicdi"''. %% testcodn.bib:823:Invalid checksum for CODEN lmphdy in ``CODEN = "lmphdy"''. %% testcodn.bib:824:Invalid checksum for CODEN lmsbbt in ``CODEN = "lmsbbt"''. %% testcodn.bib:825:Invalid checksum for CODEN lnbmah in ``CODEN = "lnbmah"''. %% testcodn.bib:828:Invalid checksum for CODEN lnmlaz in ``CODEN = "lnmlaz"''. %% testcodn.bib:830:Invalid checksum for CODEN lscoex in ``CODEN = "lscoex"''. %% testcodn.bib:833:Invalid checksum for CODEN mabiar in ``CODEN = "mabiar"''. %% testcodn.bib:834:Invalid checksum for CODEN macwea in ``CODEN = "macwea"''. %% testcodn.bib:835:Invalid checksum for CODEN madeap in ``CODEN = "madeap"''. %% testcodn.bib:836:Invalid checksum for CODEN magaas in ``CODEN = "magaas"''. %% testcodn.bib:838:Invalid checksum for CODEN maindc in ``CODEN = "maindc"''. %% testcodn.bib:839:Invalid checksum for CODEN maioeg in ``CODEN = "maioeg"''. %% testcodn.bib:840:Invalid checksum for CODEN mamcau in ``CODEN = "mamcau"''. %% testcodn.bib:842:Invalid checksum for CODEN marear in ``CODEN = "marear"''. %% testcodn.bib:843:Invalid checksum for CODEN mastba in ``CODEN = "mastba"''. %% testcodn.bib:844:Invalid checksum for CODEN masyes in ``CODEN = "masyes"''. %% testcodn.bib:845:Invalid checksum for CODEN matged in ``CODEN = "matged"''. %% testcodn.bib:846:Invalid checksum for CODEN mazeax in ``CODEN = "mazeax"''. %% testcodn.bib:847:Invalid checksum for CODEN mbceev in ``CODEN = "mbceev"''. %% testcodn.bib:848:Invalid checksum for CODEN mbeveo in ``CODEN = "mbeveo"''. %% testcodn.bib:849:Invalid checksum for CODEN mbipdp in ``CODEN = "mbipdp"''. %% testcodn.bib:853:Invalid checksum for CODEN mcblag in ``CODEN = "mcblag"''. %% testcodn.bib:855:Invalid checksum for CODEN mcedda in ``CODEN = "mcedda"''. %% testcodn.bib:858:Invalid checksum for CODEN mcmoeg in ``CODEN = "mcmoeg"''. %% testcodn.bib:859:Invalid checksum for CODEN mcmpaf in ``CODEN = "mcmpaf"''. %% testcodn.bib:860:Invalid checksum for CODEN mcrlas in ``CODEN = "mcrlas"''. %% testcodn.bib:861:Invalid checksum for CODEN mcsidr in ``CODEN = "mcsidr"''. %% testcodn.bib:863:Invalid checksum for CODEN mcusey in ``CODEN = "mcusey"''. %% testcodn.bib:864:Invalid checksum for CODEN mdawah in ``CODEN = "mdawah"''. %% testcodn.bib:865:Invalid checksum for CODEN meacbx in ``CODEN = "meacbx"''. %% testcodn.bib:867:Invalid checksum for CODEN meenah in ``CODEN = "meenah"''. %% testcodn.bib:868:Invalid checksum for CODEN menzau in ``CODEN = "menzau"''. %% testcodn.bib:869:Invalid checksum for CODEN mesbel in ``CODEN = "mesbel"''. %% testcodn.bib:870:Invalid checksum for CODEN metaaj in ``CODEN = "metaaj"''. %% testcodn.bib:871:Invalid checksum for CODEN mfkaaf in ``CODEN = "mfkaaf"''. %% testcodn.bib:872:Invalid checksum for CODEN mggeae in ``CODEN = "mggeae"''. %% testcodn.bib:873:Invalid checksum for CODEN mibldr in ``CODEN = "mibldr"''. %% testcodn.bib:874:Invalid checksum for CODEN mimcai in ``CODEN = "mimcai"''. %% testcodn.bib:877:Invalid checksum for CODEN miscei in ``CODEN = "miscei"''. %% testcodn.bib:878:Invalid checksum for CODEN mkscas in ``CODEN = "mkscas"''. %% testcodn.bib:879:Invalid checksum for CODEN mlbb?? in ``CODEN = "mlbb"''. %% testcodn.bib:880:Invalid checksum for CODEN mmbied in ``CODEN = "mmbied"''. %% testcodn.bib:881:Invalid checksum for CODEN mmbybo in ``CODEN = "mmbybo"''. %% testcodn.bib:882:Invalid checksum for CODEN mmdeeb in ``CODEN = "mmdeeb"''. %% testcodn.bib:883:Invalid checksum for CODEN mmicdt in ``CODEN = "mmicdt"''. %% testcodn.bib:885:Invalid checksum for CODEN mmscdb in ``CODEN = "mmscdb"''. %% testcodn.bib:887:Invalid checksum for CODEN moeceo in ``CODEN = "moeceo"''. %% testcodn.bib:888:Invalid checksum for CODEN momiee in ``CODEN = "momiee"''. %% testcodn.bib:890:Invalid checksum for CODEN moredq in ``CODEN = "moredq"''. %% testcodn.bib:891:Invalid checksum for CODEN mosiea in ``CODEN = "mosiea"''. %% testcodn.bib:892:Invalid checksum for CODEN mpcpco in ``CODEN = "mpcpco"''. %% testcodn.bib:893:Invalid checksum for CODEN mpevek in ``CODEN = "mpevek"''. %% testcodn.bib:894:Invalid checksum for CODEN mpstdf in ``CODEN = "mpstdf"''. %% testcodn.bib:897:Invalid checksum for CODEN mrobeo in ``CODEN = "mrobeo"''. %% testcodn.bib:898:Invalid checksum for CODEN msciam in ``CODEN = "msciam"''. %% testcodn.bib:899:Invalid checksum for CODEN mstmbi in ``CODEN = "mstmbi"''. %% testcodn.bib:902:Invalid checksum for CODEN mtkaab in ``CODEN = "mtkaab"''. %% testcodn.bib:903:Invalid checksum for CODEN mtmnaq in ``CODEN = "mtmnaq"''. %% testcodn.bib:904:Invalid checksum for CODEN mtscan in ``CODEN = "mtscan"''. %% testcodn.bib:905:Invalid checksum for CODEN mtseat in ``CODEN = "mtseat"''. %% testcodn.bib:906:Invalid checksum for CODEN mttcas in ``CODEN = "mttcas"''. %% testcodn.bib:907:Invalid checksum for CODEN mureav in ``CODEN = "mureav"''. %% testcodn.bib:908:Invalid checksum for CODEN musbbs in ``CODEN = "musbbs"''. %% testcodn.bib:909:Invalid checksum for CODEN mvbrav in ``CODEN = "mvbrav"''. %% testcodn.bib:910:Invalid checksum for CODEN mweeei in ``CODEN = "mweeei"''. %% testcodn.bib:911:Invalid checksum for CODEN mwreab in ``CODEN = "mwreab"''. %% testcodn.bib:912:Invalid checksum for CODEN mycgao in ``CODEN = "mycgao"''. %% testcodn.bib:913:Invalid checksum for CODEN nadoaw in ``CODEN = "nadoaw"''. %% testcodn.bib:914:Invalid checksum for CODEN narhad in ``CODEN = "narhad"''. %% testcodn.bib:916:Invalid checksum for CODEN nasfeg in ``CODEN = "nasfeg"''. %% testcodn.bib:917:Invalid checksum for CODEN natuas in ``CODEN = "natuas"''. %% testcodn.bib:918:Invalid checksum for CODEN natway in ``CODEN = "natway"''. %% testcodn.bib:920:Invalid checksum for CODEN nbitab in ``CODEN = "nbitab"''. %% testcodn.bib:922:Invalid checksum for CODEN nejmag in ``CODEN = "nejmag"''. %% testcodn.bib:923:Invalid checksum for CODEN neredz in ``CODEN = "neredz"''. %% testcodn.bib:924:Invalid checksum for CODEN nessef in ``CODEN = "nessef"''. %% testcodn.bib:925:Invalid checksum for CODEN neuceb in ``CODEN = "neuceb"''. %% testcodn.bib:926:Invalid checksum for CODEN nfaddl in ``CODEN = "nfaddl"''. %% testcodn.bib:927:Invalid checksum for CODEN nimaer in ``CODEN = "nimaer"''. %% testcodn.bib:929:Invalid checksum for CODEN nneteb in ``CODEN = "nneteb"''. %% testcodn.bib:931:Invalid checksum for CODEN noandd in ``CODEN = "noandd"''. %% testcodn.bib:932:Invalid checksum for CODEN nrloep in ``CODEN = "nrloep"''. %% testcodn.bib:933:Invalid checksum for CODEN nrlqar in ``CODEN = "nrlqar"''. %% testcodn.bib:934:Invalid checksum for CODEN nstbat in ``CODEN = "nstbat"''. %% testcodn.bib:935:Invalid checksum for CODEN ntelap in ``CODEN = "ntelap"''. %% testcodn.bib:936:Invalid checksum for CODEN ntroav in ``CODEN = "ntroav"''. %% testcodn.bib:937:Invalid checksum for CODEN ntwkaa in ``CODEN = "ntwkaa"''. %% testcodn.bib:938:Invalid checksum for CODEN nualeg in ``CODEN = "nualeg"''. %% testcodn.bib:940:Invalid checksum for CODEN nupabl in ``CODEN = "nupabl"''. %% testcodn.bib:941:Invalid checksum for CODEN nupbbo in ``CODEN = "nupbbo"''. %% testcodn.bib:942:Invalid checksum for CODEN nusaaz in ``CODEN = "nusaaz"''. %% testcodn.bib:943:Invalid checksum for CODEN nwscal in ``CODEN = "nwscal"''. %% testcodn.bib:944:Invalid checksum for CODEN nytiao in ``CODEN = "nytiao"''. %% testcodn.bib:947:Invalid checksum for CODEN ocmiek in ``CODEN = "ocmiek"''. %% testcodn.bib:948:Invalid checksum for CODEN ocnsdk in ``CODEN = "ocnsdk"''. %% testcodn.bib:949:Invalid checksum for CODEN ofsyeh in ``CODEN = "ofsyeh"''. %% testcodn.bib:950:Invalid checksum for CODEN oigjav in ``CODEN = "oigjav"''. %% testcodn.bib:953:Invalid checksum for CODEN oncnes in ``CODEN = "oncnes"''. %% testcodn.bib:954:Invalid checksum for CODEN onlidn in ``CODEN = "onlidn"''. %% testcodn.bib:955:Invalid checksum for CODEN opacat in ``CODEN = "opacat"''. %% testcodn.bib:957:Invalid checksum for CODEN opcoeb in ``CODEN = "opcoeb"''. %% testcodn.bib:958:Invalid checksum for CODEN opegar in ``CODEN = "opegar"''. %% testcodn.bib:959:Invalid checksum for CODEN opledp in ``CODEN = "opledp"''. %% testcodn.bib:960:Invalid checksum for CODEN oprea1 in ``CODEN = "oprea1"''. %% testcodn.bib:961:Invalid checksum for CODEN oprqak in ``CODEN = "oprqak"''. %% testcodn.bib:962:Invalid checksum for CODEN optzdq in ``CODEN = "optzdq"''. %% testcodn.bib:963:Invalid checksum for CODEN oqeldi in ``CODEN = "oqeldi"''. %% testcodn.bib:964:Invalid checksum for CODEN ordyam in ``CODEN = "ordyam"''. %% testcodn.bib:966:Invalid checksum for CODEN otikaj in ``CODEN = "otikaj"''. %% testcodn.bib:967:Invalid checksum for CODEN pacoej in ``CODEN = "pacoej"''. %% testcodn.bib:968:Invalid checksum for CODEN paisdq in ``CODEN = "paisdq"''. %% testcodn.bib:969:Invalid checksum for CODEN pamyar in ``CODEN = "pamyar"''. %% testcodn.bib:970:Invalid checksum for CODEN papcaa in ``CODEN = "papcaa"''. %% testcodn.bib:971:Invalid checksum for CODEN pbimac in ``CODEN = "pbimac"''. %% testcodn.bib:972:Invalid checksum for CODEN pbliej in ``CODEN = "pbliej"''. %% testcodn.bib:976:Invalid checksum for CODEN pcmpei in ``CODEN = "pcmpei"''. %% testcodn.bib:978:Invalid checksum for CODEN pcsoda in ``CODEN = "pcsoda"''. %% testcodn.bib:979:Invalid checksum for CODEN pcwddv in ``CODEN = "pcwddv"''. %% testcodn.bib:980:Invalid checksum for CODEN pcwodu in ``CODEN = "pcwodu"''. %% testcodn.bib:981:Invalid checksum for CODEN pdnpdt in ``CODEN = "pdnpdt"''. %% testcodn.bib:984:Invalid checksum for CODEN pepsbj in ``CODEN = "pepsbj"''. %% testcodn.bib:985:Invalid checksum for CODEN peredn in ``CODEN = "peredn"''. %% testcodn.bib:986:Invalid checksum for CODEN pfecdr in ``CODEN = "pfecdr"''. %% testcodn.bib:987:Invalid checksum for CODEN pflabk in ``CODEN = "pflabk"''. %% testcodn.bib:988:Invalid checksum for CODEN pharat in ``CODEN = "pharat"''. %% testcodn.bib:989:Invalid checksum for CODEN phblag in ``CODEN = "phblag"''. %% testcodn.bib:990:Invalid checksum for CODEN phcbap in ``CODEN = "phcbap"''. %% testcodn.bib:995:Invalid checksum for CODEN phrvao in ``CODEN = "phrvao"''. %% testcodn.bib:996:Invalid checksum for CODEN phstbo in ``CODEN = "phstbo"''. %% testcodn.bib:997:Invalid checksum for CODEN phtoad in ``CODEN = "phtoad"''. %% testcodn.bib:998:Invalid checksum for CODEN phwoew in ``CODEN = "phwoew"''. %% testcodn.bib:999:Invalid checksum for CODEN physag in ``CODEN = "physag"''. %% testcodn.bib:1000:Invalid checksum for CODEN pireae in ``CODEN = "pireae"''. %% testcodn.bib:1001:Invalid checksum for CODEN pjmaai in ``CODEN = "pjmaai"''. %% testcodn.bib:1002:Invalid checksum for CODEN planab in ``CODEN = "planab"''. %% testcodn.bib:1003:Invalid checksum for CODEN plcmdl in ``CODEN = "plcmdl"''. %% testcodn.bib:1004:Invalid checksum for CODEN pljued in ``CODEN = "pljued"''. %% testcodn.bib:1005:Invalid checksum for CODEN plmtal in ``CODEN = "plmtal"''. %% testcodn.bib:1006:Invalid checksum for CODEN plraan in ``CODEN = "plraan"''. %% testcodn.bib:1007:Invalid checksum for CODEN plrbaq in ``CODEN = "plrbaq"''. %% testcodn.bib:1008:Invalid checksum for CODEN plsmdx in ``CODEN = "plsmdx"''. %% testcodn.bib:1009:Invalid checksum for CODEN pmbidb in ``CODEN = "pmbidb"''. %% testcodn.bib:1011:Invalid checksum for CODEN pmhaa4 in ``CODEN = "pmhaa4"''. %% testcodn.bib:1012:Invalid checksum for CODEN pmosaz in ``CODEN = "pmosaz"''. %% testcodn.bib:1014:Invalid checksum for CODEN pnende in ``CODEN = "pnende"''. %% testcodn.bib:1015:Invalid checksum for CODEN pnmbaf in ``CODEN = "pnmbaf"''. %% testcodn.bib:1017:Invalid checksum for CODEN ppexep in ``CODEN = "ppexep"''. %% testcodn.bib:1018:Invalid checksum for CODEN ppltee in ``CODEN = "ppltee"''. %% testcodn.bib:1019:Invalid checksum for CODEN ppsoau in ``CODEN = "ppsoau"''. %% testcodn.bib:1020:Invalid checksum for CODEN preaay in ``CODEN = "preaay"''. %% testcodn.bib:1022:Invalid checksum for CODEN prerel in ``CODEN = "prerel"''. %% testcodn.bib:1023:Invalid checksum for CODEN prgmbd in ``CODEN = "prgmbd"''. %% testcodn.bib:1024:Invalid checksum for CODEN prgrdu in ``CODEN = "prgrdu"''. %% testcodn.bib:1025:Invalid checksum for CODEN pricdt in ``CODEN = "pricdt"''. %% testcodn.bib:1026:Invalid checksum for CODEN prlaaz in ``CODEN = "prlaaz"''. %% testcodn.bib:1028:Invalid checksum for CODEN prledg in ``CODEN = "prledg"''. %% testcodn.bib:1029:Invalid checksum for CODEN prltao in ``CODEN = "prltao"''. %% testcodn.bib:1032:Invalid checksum for CODEN prowae in ``CODEN = "prowae"''. %% testcodn.bib:1033:Invalid checksum for CODEN prplcm in ``CODEN = "prplcm"''. %% testcodn.bib:1034:Invalid checksum for CODEN prseae in ``CODEN = "prseae"''. %% testcodn.bib:1035:Invalid checksum for CODEN prslaz in ``CODEN = "prslaz"''. %% testcodn.bib:1036:Invalid checksum for CODEN prssdp in ``CODEN = "prssdp"''. %% testcodn.bib:1037:Invalid checksum for CODEN prvcan in ``CODEN = "prvcan"''. %% testcodn.bib:1038:Invalid checksum for CODEN prvdaq in ``CODEN = "prvdaq"''. %% testcodn.bib:1040:Invalid checksum for CODEN psfgey in ``CODEN = "psfgey"''. %% testcodn.bib:1041:Invalid checksum for CODEN psisdg in ``CODEN = "psisdg"''. %% testcodn.bib:1042:Invalid checksum for CODEN psmiax in ``CODEN = "psmiax"''. %% testcodn.bib:1045:Invalid checksum for CODEN ptrbae in ``CODEN = "ptrbae"''. %% testcodn.bib:1046:Invalid checksum for CODEN ptrdeo in ``CODEN = "ptrdeo"''. %% testcodn.bib:1047:Invalid checksum for CODEN ptrfeu in ``CODEN = "ptrfeu"''. %% testcodn.bib:1048:Invalid checksum for CODEN ptrsav in ``CODEN = "ptrsav"''. %% testcodn.bib:1049:Invalid checksum for CODEN pwoqdy in ``CODEN = "pwoqdy"''. %% testcodn.bib:1050:Invalid checksum for CODEN pylaag in ``CODEN = "pylaag"''. %% testcodn.bib:1051:Invalid checksum for CODEN pylbaj in ``CODEN = "pylbaj"''. %% testcodn.bib:1052:Invalid checksum for CODEN qamaay in ``CODEN = "qamaay"''. %% testcodn.bib:1053:Invalid checksum for CODEN qcbuen in ``CODEN = "qcbuen"''. %% testcodn.bib:1054:Invalid checksum for CODEN qjmaat in ``CODEN = "qjmaat"''. %% testcodn.bib:1055:Invalid checksum for CODEN qjmmav in ``CODEN = "qjmmav"''. %% testcodn.bib:1056:Invalid checksum for CODEN qjmsaf in ``CODEN = "qjmsaf"''. %% testcodn.bib:1057:Invalid checksum for CODEN qjrmam in ``CODEN = "qjrmam"''. %% testcodn.bib:1058:Invalid checksum for CODEN qrbudp in ``CODEN = "qrbudp"''. %% testcodn.bib:1059:Invalid checksum for CODEN qsardi in ``CODEN = "qsardi"''. %% testcodn.bib:1061:Invalid checksum for CODEN rascad in ``CODEN = "rascad"''. %% testcodn.bib:1062:Invalid checksum for CODEN rcmmar in ``CODEN = "rcmmar"''. %% testcodn.bib:1063:Invalid checksum for CODEN rcmtae in ``CODEN = "rcmtae"''. %% testcodn.bib:1064:Invalid checksum for CODEN rctjdm in ``CODEN = "rctjdm"''. %% testcodn.bib:1065:Invalid checksum for CODEN rdigau in ``CODEN = "rdigau"''. %% testcodn.bib:1066:Invalid checksum for CODEN refias in ``CODEN = "refias"''. %% testcodn.bib:1067:Invalid checksum for CODEN reltan in ``CODEN = "reltan"''. %% testcodn.bib:1068:Invalid checksum for CODEN rfaadn in ``CODEN = "rfaadn"''. %% testcodn.bib:1069:Invalid checksum for CODEN rfands in ``CODEN = "rfands"''. %% testcodn.bib:1070:Invalid checksum for CODEN rfdedg in ``CODEN = "rfdedg"''. %% testcodn.bib:1071:Invalid checksum for CODEN rjcldq in ``CODEN = "rjcldq"''. %% testcodn.bib:1072:Invalid checksum for CODEN rmhpbe in ``CODEN = "rmhpbe"''. %% testcodn.bib:1073:Invalid checksum for CODEN rmjmae in ``CODEN = "rmjmae"''. %% testcodn.bib:1074:Invalid checksum for CODEN rmmaev in ``CODEN = "rmmaev"''. %% testcodn.bib:1075:Invalid checksum for CODEN rmmgab in ``CODEN = "rmmgab"''. %% testcodn.bib:1076:Invalid checksum for CODEN rmphat in ``CODEN = "rmphat"''. %% testcodn.bib:1078:Invalid checksum for CODEN rptwad in ``CODEN = "rptwad"''. %% testcodn.bib:1079:Invalid checksum for CODEN rsalfd in ``CODEN = "rsalfd"''. %% testcodn.bib:1081:Invalid checksum for CODEN rtdvaq in ``CODEN = "rtdvaq"''. %% testcodn.bib:1082:Invalid checksum for CODEN rveebt in ``CODEN = "rveebt"''. %% testcodn.bib:1083:Invalid checksum for CODEN saapda in ``CODEN = "saapda"''. %% testcodn.bib:1085:Invalid checksum for CODEN samcas in ``CODEN = "samcas"''. %% testcodn.bib:1086:Invalid checksum for CODEN samsec in ``CODEN = "samsec"''. %% testcodn.bib:1087:Invalid checksum for CODEN sanabs in ``CODEN = "sanabs"''. %% testcodn.bib:1088:Invalid checksum for CODEN sanbbv in ``CODEN = "sanbbv"''. %% testcodn.bib:1090:Invalid checksum for CODEN scamac in ``CODEN = "scamac"''. %% testcodn.bib:1092:Invalid checksum for CODEN scieas in ``CODEN = "scieas"''. %% testcodn.bib:1093:Invalid checksum for CODEN scipev in ``CODEN = "scipev"''. %% testcodn.bib:1095:Invalid checksum for CODEN scjaep in ``CODEN = "scjaep"''. %% testcodn.bib:1096:Invalid checksum for CODEN scledc in ``CODEN = "scledc"''. %% testcodn.bib:1097:Invalid checksum for CODEN scnebk in ``CODEN = "scnebk"''. %% testcodn.bib:1098:Invalid checksum for CODEN scomdh in ``CODEN = "scomdh"''. %% testcodn.bib:1100:Invalid checksum for CODEN sejoed in ``CODEN = "sejoed"''. %% testcodn.bib:1102:Invalid checksum for CODEN semybl in ``CODEN = "semybl"''. %% testcodn.bib:1103:Invalid checksum for CODEN sepsbi in ``CODEN = "sepsbi"''. %% testcodn.bib:1104:Invalid checksum for CODEN sewoea in ``CODEN = "sewoea"''. %% testcodn.bib:1105:Invalid checksum for CODEN sfendp in ``CODEN = "sfendp"''. %% testcodn.bib:1108:Invalid checksum for CODEN sidpaa in ``CODEN = "sidpaa"''. %% testcodn.bib:1109:Invalid checksum for CODEN sigbel in ``CODEN = "sigbel"''. %% testcodn.bib:1110:Invalid checksum for CODEN sigmdj in ``CODEN = "sigmdj"''. %% testcodn.bib:1111:Invalid checksum for CODEN signdm in ``CODEN = "signdm"''. %% testcodn.bib:1112:Invalid checksum for CODEN sigsbz in ``CODEN = "sigsbz"''. %% testcodn.bib:1117:Invalid checksum for CODEN sinodq in ``CODEN = "sinodq"''. %% testcodn.bib:1118:Invalid checksum for CODEN siread in ``CODEN = "siread"''. %% testcodn.bib:1119:Invalid checksum for CODEN sjamdu in ``CODEN = "sjamdu"''. %% testcodn.bib:1120:Invalid checksum for CODEN sjcodc in ``CODEN = "sjcodc"''. %% testcodn.bib:1121:Invalid checksum for CODEN sjcsep in ``CODEN = "sjcsep"''. %% testcodn.bib:1123:Invalid checksum for CODEN sjmaah in ``CODEN = "sjmaah"''. %% testcodn.bib:1124:Invalid checksum for CODEN sjmael in ``CODEN = "sjmael"''. %% testcodn.bib:1125:Invalid checksum for CODEN sjnaam in ``CODEN = "sjnaam"''. %% testcodn.bib:1128:Invalid checksum for CODEN smataz in ``CODEN = "smataz"''. %% testcodn.bib:1129:Invalid checksum for CODEN smcpax in ``CODEN = "smcpax"''. %% testcodn.bib:1130:Invalid checksum for CODEN smeped in ``CODEN = "smeped"''. %% testcodn.bib:1131:Invalid checksum for CODEN smjcat in ``CODEN = "smjcat"''. %% testcodn.bib:1132:Invalid checksum for CODEN smjmap in ``CODEN = "smjmap"''. %% testcodn.bib:1133:Invalid checksum for CODEN smster in ``CODEN = "smster"''. %% testcodn.bib:1135:Invalid checksum for CODEN somadl in ``CODEN = "somadl"''. %% testcodn.bib:1136:Invalid checksum for CODEN soriax in ``CODEN = "soriax"''. %% testcodn.bib:1137:Invalid checksum for CODEN spcoel in ``CODEN = "spcoel"''. %% testcodn.bib:1138:Invalid checksum for CODEN spexbl in ``CODEN = "spexbl"''. %% testcodn.bib:1140:Invalid checksum for CODEN splban in ``CODEN = "splban"''. %% testcodn.bib:1141:Invalid checksum for CODEN sprodr in ``CODEN = "sprodr"''. %% testcodn.bib:1142:Invalid checksum for CODEN sproes in ``CODEN = "sproes"''. %% testcodn.bib:1143:Invalid checksum for CODEN spvieu in ``CODEN = "spvieu"''. %% testcodn.bib:1144:Invalid checksum for CODEN srdfed in ``CODEN = "srdfed"''. %% testcodn.bib:1146:Invalid checksum for CODEN sroldh in ``CODEN = "sroldh"''. %% testcodn.bib:1150:Invalid checksum for CODEN ssmaac in ``CODEN = "ssmaac"''. %% testcodn.bib:1152:Invalid checksum for CODEN sstrey in ``CODEN = "sstrey"''. %% testcodn.bib:1156:Invalid checksum for CODEN stscep in ``CODEN = "stscep"''. %% testcodn.bib:1157:Invalid checksum for CODEN sunwdw in ``CODEN = "sunwdw"''. %% testcodn.bib:1158:Invalid checksum for CODEN surveg in ``CODEN = "surveg"''. %% testcodn.bib:1163:Invalid checksum for CODEN tamtam in ``CODEN = "tamtam"''. %% testcodn.bib:1164:Invalid checksum for CODEN tansao in ``CODEN = "tansao"''. %% testcodn.bib:1165:Invalid checksum for CODEN tbscdb in ``CODEN = "tbscdb"''. %% testcodn.bib:1166:Invalid checksum for CODEN tbsrdm in ``CODEN = "tbsrdm"''. %% testcodn.bib:1167:Invalid checksum for CODEN tchaam in ``CODEN = "tchaam"''. %% testcodn.bib:1170:Invalid checksum for CODEN tcscdi in ``CODEN = "tcscdi"''. %% testcodn.bib:1171:Invalid checksum for CODEN tereau in ``CODEN = "tereau"''. %% testcodn.bib:1172:Invalid checksum for CODEN tetref in ``CODEN = "tetref"''. %% testcodn.bib:1174:Invalid checksum for CODEN tlcmbt in ``CODEN = "tlcmbt"''. %% testcodn.bib:1175:Invalid checksum for CODEN tmisaf in ``CODEN = "tmisaf"''. %% testcodn.bib:1176:Invalid checksum for CODEN tplgaf in ``CODEN = "tplgaf"''. %% testcodn.bib:1177:Invalid checksum for CODEN tprbau in ``CODEN = "tprbau"''. %% testcodn.bib:1179:Invalid checksum for CODEN trmiea in ``CODEN = "trmiea"''. %% testcodn.bib:1180:Invalid checksum for CODEN trrebk in ``CODEN = "trrebk"''. %% testcodn.bib:1181:Invalid checksum for CODEN trscbj in ``CODEN = "trscbj"''. %% testcodn.bib:1184:Invalid checksum for CODEN twasde in ``CODEN = "twasde"''. %% testcodn.bib:1186:Invalid checksum for CODEN ulccdc in ``CODEN = "ulccdc"''. %% testcodn.bib:1188:Invalid checksum for CODEN uncoet in ``CODEN = "uncoet"''. %% testcodn.bib:1190:Invalid checksum for CODEN utmada in ``CODEN = "utmada"''. %% testcodn.bib:1191:Invalid checksum for CODEN vaxpen in ``CODEN = "vaxpen"''. %% testcodn.bib:1193:Invalid checksum for CODEN visram in ``CODEN = "visram"''. %% testcodn.bib:1194:Invalid checksum for CODEN vslgao in ``CODEN = "vslgao"''. %% testcodn.bib:1196:Invalid checksum for CODEN wewefp in ``CODEN = "wewefp"''. %% testcodn.bib:1198:Invalid checksum for CODEN wpklao in ``CODEN = "wpklao"''. %% testcodn.bib:1199:Invalid checksum for CODEN wredem in ``CODEN = "wredem"''. %% testcodn.bib:1200:Invalid checksum for CODEN wreraq in ``CODEN = "wreraq"''. %% testcodn.bib:1201:Invalid checksum for CODEN wsjoaf in ``CODEN = "wsjoaf"''. %% testcodn.bib:1203:Invalid checksum for CODEN wzhlde in ``CODEN = "wzhlde"''. %% testcodn.bib:1204:Invalid checksum for CODEN wztkay in ``CODEN = "wztkay"''. %% testcodn.bib:1205:Invalid checksum for CODEN wztuau in ``CODEN = "wztuau"''. %% testcodn.bib:1206:Invalid checksum for CODEN xjouea in ``CODEN = "xjouea"''. %% testcodn.bib:1207:Invalid checksum for CODEN xresea in ``CODEN = "xresea"''. %% testcodn.bib:1210:Invalid checksum for CODEN zammax in ``CODEN = "zammax"''. %% testcodn.bib:1211:Invalid checksum for CODEN zampdb in ``CODEN = "zampdb"''. %% testcodn.bib:1213:Invalid checksum for CODEN zmlgaq in ``CODEN = "zmlgaq"''. %% testcodn.bib:1214:Invalid checksum for CODEN zmrrep in ``CODEN = "zmrrep"''. %% testcodn.bib:1215:Invalid checksum for CODEN zncbda in ``CODEN = "zncbda"''. %% testcodn.bib:1216:Invalid checksum for CODEN zoscex in ``CODEN = "zoscex"''. %% testcodn.bib:1217:Invalid checksum for CODEN zpaadb in ``CODEN = "zpaadb"''. %% testcodn.bib:1218:Invalid checksum for CODEN zpbbdj in ``CODEN = "zpbbdj"''. %% testcodn.bib:1220:Invalid checksum for CODEN zpcmdn in ``CODEN = "zpcmdn"''. %% testcodn.bib:1221:Invalid checksum for CODEN ztvram in ``CODEN = "ztvram"''. %% testcodn.bib:1222:Invalid checksum for CODEN zwvgaa in ``CODEN = "zwvgaa"''. %% testcodn.bib:1229:Incomplete CODEN AALEE should be AALEE5 in ``CODEN = "AALEE"''. %% testcodn.bib:1230:Incomplete CODEN AASTA should be AASTAD in ``CODEN = "AASTA"''. %% testcodn.bib:1231:Incomplete CODEN ABACE should be ABACEJ in ``CODEN = "ABACE"''. %% testcodn.bib:1232:Incomplete CODEN ACMSC should be ACMSCU in ``CODEN = "ACMSC"''. %% testcodn.bib:1233:Incomplete CODEN ADMOA should be ADMOAN in ``CODEN = "ADMOA"''. %% testcodn.bib:1234:Incomplete CODEN AINFA should be AINFA2 in ``CODEN = "AINFA"''. %% testcodn.bib:1235:Incomplete CODEN AINTB should be AINTBB in ``CODEN = "AINTB"''. %% testcodn.bib:1236:Incomplete CODEN AISJB should be AISJB6 in ``CODEN = "AISJB"''. %% testcodn.bib:1237:Incomplete CODEN AJSOA should be AJSOAR in ``CODEN = "AJSOA"''. %% testcodn.bib:1238:Incomplete CODEN ALGOE should be ALGOEJ in ``CODEN = "ALGOE"''. %% testcodn.bib:1239:Incomplete CODEN ALSHA should be ALSHAK in ``CODEN = "ALSHA"''. %% testcodn.bib:1240:Incomplete CODEN AMHCB should be AMHCBQ in ``CODEN = "AMHCB"''. %% testcodn.bib:1241:Incomplete CODEN ANMAA should be ANMAAH in ``CODEN = "ANMAA"''. %% testcodn.bib:1242:Incomplete CODEN ANMAE should be ANMAEL in ``CODEN = "ANMAE"''. %% testcodn.bib:1243:Incomplete CODEN AOREE should be AOREEV in ``CODEN = "AOREE"''. %% testcodn.bib:1244:Incomplete CODEN APLQD should be APLQD9 in ``CODEN = "APLQD"''. %% testcodn.bib:1245:Incomplete CODEN AREOA should be AREOAD in ``CODEN = "AREOA"''. %% testcodn.bib:1246:Incomplete CODEN ARGSB should be ARGSB2 in ``CODEN = "ARGSB"''. %% testcodn.bib:1247:Incomplete CODEN ARITB should be ARITBF in ``CODEN = "ARITB"''. %% testcodn.bib:1248:Incomplete CODEN ASLPA should be ASLPAO in ``CODEN = "ASLPA"''. %% testcodn.bib:1249:Incomplete CODEN AURCA should be AURCAT in ``CODEN = "AURCA"''. %% testcodn.bib:1250:Incomplete CODEN AVTEA should be AVTEAI in ``CODEN = "AVTEA"''. %% testcodn.bib:1251:Incomplete CODEN BASIC should be BASICR in ``CODEN = "BASIC"''. %% testcodn.bib:1252:Incomplete CODEN BCPCA should be BCPCA6 in ``CODEN = "BCPCA"''. %% testcodn.bib:1253:Incomplete CODEN BEVED should be BEVEDP in ``CODEN = "BEVED"''. %% testcodn.bib:1254:Incomplete CODEN BITTE should be BITTEL in ``CODEN = "BITTE"''. %% testcodn.bib:1255:Incomplete CODEN BIZBA should be BIZBAR in ``CODEN = "BIZBA"''. %% testcodn.bib:1256:Incomplete CODEN BJMSA should be BJMSAK in ``CODEN = "BJMSA"''. %% testcodn.bib:1257:Incomplete CODEN BMFRA should be BMFRA3 in ``CODEN = "BMFRA"''. %% testcodn.bib:1258:Incomplete CODEN BMSSB should be BMSSB4 in ``CODEN = "BMSSB"''. %% testcodn.bib:1259:Incomplete CODEN BSMSA should be BSMSAF in ``CODEN = "BSMSA"''. %% testcodn.bib:1260:Incomplete CODEN BYTED should be BYTEDJ in ``CODEN = "BYTED"''. %% testcodn.bib:1261:Incomplete CODEN CACMA should be CACMA2 in ``CODEN = "CACMA"''. %% testcodn.bib:1262:Incomplete CODEN CAGDE should be CAGDEX in ``CODEN = "CAGDE"''. %% testcodn.bib:1263:Incomplete CODEN CAIDA should be CAIDA5 in ``CODEN = "CAIDA"''. %% testcodn.bib:1264:Incomplete CODEN CCEND should be CCENDW in ``CODEN = "CCEND"''. %% testcodn.bib:1265:Incomplete CODEN CGFOD should be CGFODY in ``CODEN = "CGFOD"''. %% testcodn.bib:1266:Incomplete CODEN CGRAD should be CGRADI in ``CODEN = "CGRAD"''. %% testcodn.bib:1267:Incomplete CODEN CHKWE should be CHKWEN in ``CODEN = "CHKWE"''. %% testcodn.bib:1268:Incomplete CODEN CJISD should be CJISDE in ``CODEN = "CJISD"''. %% testcodn.bib:1269:Incomplete CODEN CMAPD should be CMAPDK in ``CODEN = "CMAPD"''. %% testcodn.bib:1270:Incomplete CODEN CMORA should be CMORAP in ``CODEN = "CMORA"''. %% testcodn.bib:1271:Incomplete CODEN CMPJA should be CMPJA6 in ``CODEN = "CMPJA"''. %% testcodn.bib:1272:Incomplete CODEN CMPTA should be CMPTA2 in ``CODEN = "CMPTA"''. %% testcodn.bib:1273:Incomplete CODEN CMSYE should be CMSYE2 in ``CODEN = "CMSYE"''. %% testcodn.bib:1274:Incomplete CODEN CNISE should be CNISE9 in ``CODEN = "CNISE"''. %% testcodn.bib:1275:Incomplete CODEN CNOME should be CNOMEL in ``CODEN = "CNOME"''. %% testcodn.bib:1276:Incomplete CODEN COATB should be COATBA in ``CODEN = "COATB"''. %% testcodn.bib:1277:Incomplete CODEN COCOD should be COCOD7 in ``CODEN = "COCOD"''. %% testcodn.bib:1278:Incomplete CODEN COGRD should be COGRD2 in ``CODEN = "COGRD"''. %% testcodn.bib:1279:Incomplete CODEN COHUA should be COHUAD in ``CODEN = "COHUA"''. %% testcodn.bib:1280:Incomplete CODEN COMHA should be COMHAX in ``CODEN = "COMHA"''. %% testcodn.bib:1281:Incomplete CODEN COSPD should be COSPDM in ``CODEN = "COSPD"''. %% testcodn.bib:1282:Incomplete CODEN COSTC should be COSTCX in ``CODEN = "COSTC"''. %% testcodn.bib:1283:Incomplete CODEN CPAMA should be CPAMAT in ``CODEN = "CPAMA"''. %% testcodn.bib:1284:Incomplete CODEN CPHCB should be CPHCBZ in ``CODEN = "CPHCB"''. %% testcodn.bib:1285:Incomplete CODEN CPLIE should be CPLIE8 in ``CODEN = "CPLIE"''. %% testcodn.bib:1286:Incomplete CODEN CPTRB should be CPTRB4 in ``CODEN = "CPTRB"''. %% testcodn.bib:1287:Incomplete CODEN CQMAA should be CQMAAQ in ``CODEN = "CQMAA"''. %% testcodn.bib:1288:Incomplete CODEN CSAEE should be CSAEEU in ``CODEN = "CSAEE"''. %% testcodn.bib:1289:Incomplete CODEN CSTIE should be CSTIEZ in ``CODEN = "CSTIE"''. %% testcodn.bib:1290:Incomplete CODEN DDJSD should be DDJSDM in ``CODEN = "DDJSD"''. %% testcodn.bib:1291:Incomplete CODEN DGRCD should be DGRCDZ in ``CODEN = "DGRCD"''. %% testcodn.bib:1292:Incomplete CODEN DJTAE should be DJTAER in ``CODEN = "DJTAE"''. %% testcodn.bib:1293:Incomplete CODEN DJTGE should be DJTGEB in ``CODEN = "DJTGE"''. %% testcodn.bib:1294:Incomplete CODEN DPCOE should be DPCOEQ in ``CODEN = "DPCOE"''. %% testcodn.bib:1295:Incomplete CODEN DSINE should be DSINE6 in ``CODEN = "DSINE"''. %% testcodn.bib:1296:Incomplete CODEN DTJOE should be DTJOEL in ``CODEN = "DTJOE"''. %% testcodn.bib:1297:Incomplete CODEN DTMNA should be DTMNAT in ``CODEN = "DTMNA"''. %% testcodn.bib:1298:Incomplete CODEN ECJSE should be ECJSER in ``CODEN = "ECJSE"''. %% testcodn.bib:1299:Incomplete CODEN ECREA should be ECREAL in ``CODEN = "ECREA"''. %% testcodn.bib:1300:Incomplete CODEN EKRKA should be EKRKAR in ``CODEN = "EKRKA"''. %% testcodn.bib:1301:Incomplete CODEN ELLEA should be ELLEAK in ``CODEN = "ELLEA"''. %% testcodn.bib:1302:Incomplete CODEN ELLID should be ELLIDZ in ``CODEN = "ELLID"''. %% testcodn.bib:1303:Incomplete CODEN EMODD should be EMODD8 in ``CODEN = "EMODD"''. %% testcodn.bib:1304:Incomplete CODEN EONLE should be EONLE8 in ``CODEN = "EONLE"''. %% testcodn.bib:1305:Incomplete CODEN EPODE should be EPODEU in ``CODEN = "EPODE"''. %% testcodn.bib:1306:Incomplete CODEN ERMGB should be ERMGB6 in ``CODEN = "ERMGB"''. %% testcodn.bib:1307:Incomplete CODEN ETTIE should be ETTIEU in ``CODEN = "ETTIE"''. %% testcodn.bib:1308:Incomplete CODEN FASRD should be FASRDV in ``CODEN = "FASRD"''. %% testcodn.bib:1309:Incomplete CODEN FSSYD should be FSSYD8 in ``CODEN = "FSSYD"''. %% testcodn.bib:1310:Incomplete CODEN FUJTA should be FUJTAR in ``CODEN = "FUJTA"''. %% testcodn.bib:1311:Incomplete CODEN GLSEE should be GLSEED in ``CODEN = "GLSEE"''. %% testcodn.bib:1312:Incomplete CODEN HAMAA should be HAMAA3 in ``CODEN = "HAMAA"''. %% testcodn.bib:1313:Incomplete CODEN HJKHD should be HJKHDC in ``CODEN = "HJKHD"''. %% testcodn.bib:1314:Incomplete CODEN HUHEA should be HUHEAS in ``CODEN = "HUHEA"''. %% testcodn.bib:1315:Incomplete CODEN IAIEE should be IAIEEA in ``CODEN = "IAIEE"''. %% testcodn.bib:1316:Incomplete CODEN ICCBA should be ICCBAF in ``CODEN = "ICCBA"''. %% testcodn.bib:1317:Incomplete CODEN ICGAD should be ICGADZ in ``CODEN = "ICGAD"''. %% testcodn.bib:1318:Incomplete CODEN ICSAE should be ICSAES in ``CODEN = "ICSAE"''. %% testcodn.bib:1319:Incomplete CODEN ICSYB should be ICSYBT in ``CODEN = "ICSYB"''. %% testcodn.bib:1320:Incomplete CODEN IEPCB should be IEPCBU in ``CODEN = "IEPCB"''. %% testcodn.bib:1321:Incomplete CODEN IESOE should be IESOEG in ``CODEN = "IESOE"''. %% testcodn.bib:1322:Incomplete CODEN IFDBE should be IFDBEB in ``CODEN = "IFDBE"''. %% testcodn.bib:1323:Incomplete CODEN IFESE should be IFESEX in ``CODEN = "IFESE"''. %% testcodn.bib:1324:Incomplete CODEN IJARE should be IJARE4 in ``CODEN = "IJARE"''. %% testcodn.bib:1325:Incomplete CODEN IJBOB should be IJBOBV in ``CODEN = "IJBOB"''. %% testcodn.bib:1326:Incomplete CODEN IJISE should be IJISED in ``CODEN = "IJISE"''. %% testcodn.bib:1327:Incomplete CODEN IJMPE should be IJMPEO in ``CODEN = "IJMPE"''. %% testcodn.bib:1328:Incomplete CODEN INFAC should be INFAC4 in ``CODEN = "INFAC"''. %% testcodn.bib:1329:Incomplete CODEN INFTC should be INFTCR in ``CODEN = "INFTC"''. %% testcodn.bib:1330:Incomplete CODEN INSKD should be INSKDW in ``CODEN = "INSKD"''. %% testcodn.bib:1331:Incomplete CODEN IPMAD should be IPMADK in ``CODEN = "IPMAD"''. %% testcodn.bib:1332:Incomplete CODEN IRCYA should be IRCYAJ in ``CODEN = "IRCYA"''. %% testcodn.bib:1333:Incomplete CODEN IRELA should be IRELAO in ``CODEN = "IRELA"''. %% testcodn.bib:1334:Incomplete CODEN IRLAA should be IRLAAQ in ``CODEN = "IRLAA"''. %% testcodn.bib:1335:Incomplete CODEN ISIJB should be ISIJBC in ``CODEN = "ISIJB"''. %% testcodn.bib:1336:Incomplete CODEN ISUDX should be ISUDX8 in ``CODEN = "ISUDX"''. %% testcodn.bib:1337:Incomplete CODEN ISYSD should be ISYSDJ in ``CODEN = "ISYSD"''. %% testcodn.bib:1338:Incomplete CODEN ITBTE should be ITBTEH in ``CODEN = "ITBTE"''. %% testcodn.bib:1339:Incomplete CODEN ITMEE should be ITMEER in ``CODEN = "ITMEE"''. %% testcodn.bib:1340:Incomplete CODEN ITPRE should be ITPRED in ``CODEN = "ITPRE"''. %% testcodn.bib:1341:Incomplete CODEN ITPSE should be ITPSEG in ``CODEN = "ITPSE"''. %% testcodn.bib:1342:Incomplete CODEN IZAMA should be IZAMAT in ``CODEN = "IZAMA"''. %% testcodn.bib:1343:Incomplete CODEN JAUMA should be JAUMAX in ``CODEN = "JAUMA"''. %% testcodn.bib:1344:Incomplete CODEN JCAMD should be JCAMDI in ``CODEN = "JCAMD"''. %% testcodn.bib:1345:Incomplete CODEN JCTHA should be JCTHAR in ``CODEN = "JCTHA"''. %% testcodn.bib:1346:Incomplete CODEN JCTPA should be JCTPAH in ``CODEN = "JCTPA"''. %% testcodn.bib:1347:Incomplete CODEN JDOCA should be JDOCAS in ``CODEN = "JDOCA"''. %% testcodn.bib:1348:Incomplete CODEN JIRRA should be JIRRAL in ``CODEN = "JIRRA"''. %% testcodn.bib:1349:Incomplete CODEN JISCD should be JISCDI in ``CODEN = "JISCD"''. %% testcodn.bib:1350:Incomplete CODEN JLPRE should be JLPRE2 in ``CODEN = "JLPRE"''. %% testcodn.bib:1351:Incomplete CODEN JMPHA should be JMPHA9 in ``CODEN = "JMPHA"''. %% testcodn.bib:1352:Incomplete CODEN JNBRA should be JNBRAA in ``CODEN = "JNBRA"''. %% testcodn.bib:1353:Incomplete CODEN JOMMA should be JOMMAN in ``CODEN = "JOMMA"''. %% testcodn.bib:1354:Incomplete CODEN JOSHA should be JOSHA4 in ``CODEN = "JOSHA"''. %% testcodn.bib:1355:Incomplete CODEN JOTAB should be JOTABN in ``CODEN = "JOTAB"''. %% testcodn.bib:1356:Incomplete CODEN JRNBA should be JRNBAG in ``CODEN = "JRNBA"''. %% testcodn.bib:1357:Incomplete CODEN JSIMA should be JSIMAV in ``CODEN = "JSIMA"''. %% testcodn.bib:1358:Incomplete CODEN JSINA should be JSINAY in ``CODEN = "JSINA"''. %% testcodn.bib:1359:Incomplete CODEN JSSOD should be JSSODM in ``CODEN = "JSSOD"''. %% testcodn.bib:1360:Incomplete CODEN JSYCE should be JSYCEH in ``CODEN = "JSYCE"''. %% testcodn.bib:1361:Incomplete CODEN JVLCE should be JVLCE7 in ``CODEN = "JVLCE"''. %% testcodn.bib:1362:Incomplete CODEN JWSSA should be JWSSAP in ``CODEN = "JWSSA"''. %% testcodn.bib:1363:Incomplete CODEN KESEA should be KESEA4 in ``CODEN = "KESEA"''. %% testcodn.bib:1364:Incomplete CODEN LLCOE should be LLCOEI in ``CODEN = "LLCOE"''. %% testcodn.bib:1365:Incomplete CODEN LMICD should be LMICDI in ``CODEN = "LMICD"''. %% testcodn.bib:1366:Incomplete CODEN MCENE should be MCENE7 in ``CODEN = "MCENE"''. %% testcodn.bib:1367:Incomplete CODEN MCMPA should be MCMPAF in ``CODEN = "MCMPA"''. %% testcodn.bib:1368:Incomplete CODEN MCRLA should be MCRLAS in ``CODEN = "MCRLA"''. %% testcodn.bib:1369:Incomplete CODEN MCSID should be MCSIDR in ``CODEN = "MCSID"''. %% testcodn.bib:1370:Incomplete CODEN MDMZD should be MDMZDL in ``CODEN = "MDMZD"''. %% testcodn.bib:1371:Incomplete CODEN MEORD should be MEORDE in ``CODEN = "MEORD"''. %% testcodn.bib:1372:Incomplete CODEN MICOE should be MICOE8 in ``CODEN = "MICOE"''. %% testcodn.bib:1373:Incomplete CODEN MIMCA should be MIMCAI in ``CODEN = "MIMCA"''. %% testcodn.bib:1374:Incomplete CODEN MIMJA should be MIMJA5 in ``CODEN = "MIMJA"''. %% testcodn.bib:1375:Incomplete CODEN MKSCA should be MKSCAS in ``CODEN = "MKSCA"''. %% testcodn.bib:1376:Incomplete CODEN MMPHA should be MMPHA8 in ``CODEN = "MMPHA"''. %% testcodn.bib:1377:Incomplete CODEN MOPMA should be MOPMA3 in ``CODEN = "MOPMA"''. %% testcodn.bib:1378:Incomplete CODEN MSTMB should be MSTMBI in ``CODEN = "MSTMB"''. %% testcodn.bib:1379:Incomplete CODEN MTHNB should be MTHNB2 in ``CODEN = "MTHNB"''. %% testcodn.bib:1380:Incomplete CODEN MTSEA should be MTSEAT in ``CODEN = "MTSEA"''. %% testcodn.bib:1381:Incomplete CODEN MTTCA should be MTTCAS in ``CODEN = "MTTCA"''. %% testcodn.bib:1382:Incomplete CODEN NADOA should be NADOAW in ``CODEN = "NADOA"''. %% testcodn.bib:1383:Incomplete CODEN NAWIA should be NAWIA7 in ``CODEN = "NAWIA"''. %% testcodn.bib:1384:Incomplete CODEN NRLOE should be NRLOEP in ``CODEN = "NRLOE"''. %% testcodn.bib:1385:Incomplete CODEN NSTBA should be NSTBAT in ``CODEN = "NSTBA"''. %% testcodn.bib:1386:Incomplete CODEN NTROA should be NTROAV in ``CODEN = "NTROA"''. %% testcodn.bib:1387:Incomplete CODEN NZMAB should be NZMAB7 in ``CODEN = "NZMAB"''. %% testcodn.bib:1388:Incomplete CODEN OCMIE should be OCMIEK in ``CODEN = "OCMIE"''. %% testcodn.bib:1389:Incomplete CODEN ORDYA should be ORDYAM in ``CODEN = "ORDYA"''. %% testcodn.bib:1390:Incomplete CODEN OTIKA should be OTIKAJ in ``CODEN = "OTIKA"''. %% testcodn.bib:1391:Incomplete CODEN PACOE should be PACOEJ in ``CODEN = "PACOE"''. %% testcodn.bib:1392:Incomplete CODEN PCAUA should be PCAUA3 in ``CODEN = "PCAUA"''. %% testcodn.bib:1393:Incomplete CODEN PNMBA should be PNMBAF in ``CODEN = "PNMBA"''. %% testcodn.bib:1394:Incomplete CODEN PPSOA should be PPSOAU in ``CODEN = "PPSOA"''. %% testcodn.bib:1395:Incomplete CODEN PRGMB should be PRGMBD in ``CODEN = "PRGMB"''. %% testcodn.bib:1396:Incomplete CODEN PROGD should be PROGD3 in ``CODEN = "PROGD"''. %% testcodn.bib:1397:Incomplete CODEN PROWA should be PROWAE in ``CODEN = "PROWA"''. %% testcodn.bib:1398:Incomplete CODEN PRSEA should be PRSEAE in ``CODEN = "PRSEA"''. %% testcodn.bib:1399:Incomplete CODEN PRSLA should be PRSLAZ in ``CODEN = "PRSLA"''. %% testcodn.bib:1400:Incomplete CODEN PSISD should be PSISDG in ``CODEN = "PSISD"''. %% testcodn.bib:1401:Incomplete CODEN PSYMA should be PSYMA7 in ``CODEN = "PSYMA"''. %% testcodn.bib:1402:Incomplete CODEN PTRSA should be PTRSAV in ``CODEN = "PTRSA"''. %% testcodn.bib:1403:Incomplete CODEN RDIGA should be RDIGAU in ``CODEN = "RDIGA"''. %% testcodn.bib:1404:Incomplete CODEN RMMGA should be RMMGAB in ``CODEN = "RMMGA"''. %% testcodn.bib:1405:Incomplete CODEN SAMCA should be SAMCAS in ``CODEN = "SAMCA"''. %% testcodn.bib:1406:Incomplete CODEN SEPSB should be SEPSBI in ``CODEN = "SEPSB"''. %% testcodn.bib:1407:Incomplete CODEN SGNWD should be SGNWD2 in ``CODEN = "SGNWD"''. %% testcodn.bib:1408:Incomplete CODEN SIGBE should be SIGBEL in ``CODEN = "SIGBE"''. %% testcodn.bib:1409:Incomplete CODEN SIGSB should be SIGSBZ in ``CODEN = "SIGSB"''. %% testcodn.bib:1410:Incomplete CODEN SINOD should be SINODQ in ``CODEN = "SINOD"''. %% testcodn.bib:1411:Incomplete CODEN SJCOD should be SJCODC in ``CODEN = "SJCOD"''. %% testcodn.bib:1412:Incomplete CODEN SMJCA should be SMJCAT in ``CODEN = "SMJCA"''. %% testcodn.bib:1413:Incomplete CODEN SMSTE should be SMSTER in ``CODEN = "SMSTE"''. %% testcodn.bib:1414:Incomplete CODEN SNEWD should be SNEWD6 in ``CODEN = "SNEWD"''. %% testcodn.bib:1415:Incomplete CODEN SRDFE should be SRDFED in ``CODEN = "SRDFE"''. %% testcodn.bib:1416:Incomplete CODEN SRECD should be SRECD8 in ``CODEN = "SRECD"''. %% testcodn.bib:1417:Incomplete CODEN SRPSD should be SRPSD9 in ``CODEN = "SRPSD"''. %% testcodn.bib:1418:Incomplete CODEN SSEJE should be SSEJE3 in ``CODEN = "SSEJE"''. %% testcodn.bib:1419:Incomplete CODEN STPGE should be STPGEM in ``CODEN = "STPGE"''. %% testcodn.bib:1420:Incomplete CODEN SVMDA should be SVMDA8 in ``CODEN = "SVMDA"''. %% testcodn.bib:1421:Incomplete CODEN TAEEA should be TAEEA5 in ``CODEN = "TAEEA"''. %% testcodn.bib:1422:Incomplete CODEN TANSA should be TANSAO in ``CODEN = "TANSA"''. %% testcodn.bib:1423:Incomplete CODEN TCSCD should be TCSCDI in ``CODEN = "TCSCD"''. %% testcodn.bib:1424:Incomplete CODEN TMISA should be TMISAF in ``CODEN = "TMISA"''. %% testcodn.bib:1425:Incomplete CODEN TSCSE should be TSCSEV in ``CODEN = "TSCSE"''. %% testcodn.bib:1426:Incomplete CODEN TSICA should be TSICA9 in ``CODEN = "TSICA"''. %% testcodn.bib:1427:Incomplete CODEN UNCOE should be UNCOET in ``CODEN = "UNCOE"''. %% testcodn.bib:1428:Incomplete CODEN VICOE should be VICOE5 in ``CODEN = "VICOE"''. %% testcodn.bib:1429:Incomplete CODEN WIINE should be WIINE9 in ``CODEN = "WIINE"''. %% testcodn.bib:1430:Incomplete CODEN WZTUA should be WZTUAU in ``CODEN = "WZTUA"''. %% testcodn.bib:1431:Incomplete CODEN YEASA should be YEASA8 in ``CODEN = "YEASA"''. %% testcodn.bib:1432:Incomplete CODEN ZAMMA should be ZAMMAX in ``CODEN = "ZAMMA"''. %% testcodn.bib:1433:Incomplete CODEN ZMRRE should be ZMRREP in ``CODEN = "ZMRRE"''. %% testcodn.bib:1438:Invalid checksum for CODEN ITDSEP in ``CODEN = "ITDSEP"''. %% testcodn.bib:1439:Invalid checksum for CODEN ITKEEI in ``CODEN = "ITKEEI"''. %% testcodn.bib:1440:Invalid checksum for CODEN ITLBDD in ``CODEN = "ITLBDD"''. %% testcodn.bib:1441:Invalid checksum for CODEN itmees in ``CODEN = "itmees"''. %% testcodn.bib:1442:Invalid checksum for CODEN itmgey in ``CODEN = "itmgey"''. %% testcodn.bib:1443:Invalid checksum for CODEN itmid5 in ``CODEN = "itmid5"''. %% testcodn.bib:1446:Invalid checksum for CODEN BDJOHJ in ``CODEN = "BDJOHJ"''. %% testcodn.bib:1451:Invalid checksum for CODEN I????? in ``CODEN = "I"''. %% testcodn.bib:1452:Invalid checksum for CODEN IT???? in ``CODEN = "IT"''. %% testcodn.bib:1453:Invalid checksum for CODEN ITD??? in ``CODEN = "ITD"''. %% testcodn.bib:1454:Invalid checksum for CODEN ITDS?? in ``CODEN = "ITDS"''. %% testcodn.bib:1455:Incomplete CODEN ITDSE should be ITDSEO in ``CODEN = "ITDSE"''. %% testcodn.bib:1460:Invalid checksum for CODEN AITDSE in ``CODEN = "AITDSEO"''. %% testcodn.bib:1460:Invalid checksum for CODEN AITDSE in ``CODEN = "AITDSEO"''. %% testcodn.bib:1461:Invalid checksum for CODEN ABITDS in ``CODEN = "ABITDSEO"''. %% testcodn.bib:1461:Invalid checksum for CODEN ABITDS in ``CODEN = "ABITDSEO"''. %% testcodn.bib:1462:Invalid checksum for CODEN ABCITD in ``CODEN = "ABCITDSEO"''. %% testcodn.bib:1462:Invalid checksum for CODEN ABCITD in ``CODEN = "ABCITDSEO"''. %% testcodn.bib:1463:Invalid checksum for CODEN ABCDIT in ``CODEN = "ABCDITDSEO"''. %% testcodn.bib:1463:Invalid checksum for CODEN ABCDIT in ``CODEN = "ABCDITDSEO"''. %% testcodn.bib:1464:Invalid checksum for CODEN ABCDEI in ``CODEN = "ABCDEITDSEO"''. %% testcodn.bib:1464:Invalid checksum for CODEN ABCDEI in ``CODEN = "ABCDEITDSEO"''. %% testcodn.bib:1465:Invalid checksum for CODEN ABCDEF in ``CODEN = "ABCDEFITDSEO"''. %% testcodn.bib:1465:Invalid checksum for CODEN ABCDEF in ``CODEN = "ABCDEFITDSEO"''. bibclean-3.07/test/okay/topt304.err0000444000156700015670000000000012470142674015750 0ustar beebebeebebibclean-3.07/test/okay/topt137.err0000444000156700015670000000000012470142673015753 0ustar beebebeebebibclean-3.07/test/okay/topt333.out0000444000156700015670000000000112470143226015764 0ustar beebebeebe bibclean-3.07/test/okay/topt130.err0000444000156700015670000000000012470142673015744 0ustar beebebeebebibclean-3.07/test/okay/topt334.out0000444000156700015670000000000112470143226015765 0ustar beebebeebe bibclean-3.07/test/okay/topt348.out0000444000156700015670000000000012470142676016001 0ustar beebebeebebibclean-3.07/test/okay/topt107.out0000444000156700015670000000000112470143205015760 0ustar beebebeebe bibclean-3.07/test/okay/topt303.err0000444000156700015670000000000012470142674015747 0ustar beebebeebebibclean-3.07/test/okay/testscr1.out0000444000156700015670000006253012071103661016330 0ustar beebebeebe@Comment{ This file contains a sample set of bibliography data base entries in Scribe format. It is used for testing the -scribe option of bibclean. The first entry uses each of the 7 delimiters, each of the 3 separators, undelimited values, and embedded quotes to illustrate the flexibility of Scribe syntax. Note, however, that nested delimiters are NOT permitted by Scribe; BibTeX permits nested braces and braced quotes. } @Comment{Old style comment} @Comment{ This is a block comment with two lines. } @Comment{ This is a block comment with two lines and embedded braces: {one}} {two} {three} } @Comment{ This is a block comment with two lines and embedded braces: {one}} {two} {three}. Here are some mismatched braces: { { { } } } {} {} } @InProceedings{Adomaitis79Computer, key = "{"}Outer and inner {"} quotes{"}", author = "V. Adomaitis", title = "A Computer Aided Video Illustrating System", year = "1979", booktitle = "Proc. 6-th Man-Computer Communications Conference", editor = "M. Wein and E. Swail", publisher = "Computer Graphics Section, National Research Council of Canada", pages = "161--167", address = "Ottawa, Ontario, Canada, K1A 0R8", keywords = "Applications, video illustration system", } @String{HSchV = "Universit{\"a}tsdruckerei und Verlag Hermann Schmidt"} @String{a.HSchV = "Mainz"} @Article{ntg:PH92, author = "Nico Poppelier and Amy Hendrickson", title = "Book reviews", journal = "ntg", year = "1992", month = may, volume = "92", number = "1", pages = "135--138", annote = "Contains reviews of ``\LaTeX{} for Everyone'' \cite{PCTeX:JHa91}, ``Practical SGML'' \cite{Kluwer:EvHe90}, and ``\TeX{} by Topic, A \TeX{}nician's Reference'' \cite{A-W:VEi91}.", keywords = "Reviews", } @Article{tub:NPo92b, author = "Nico Poppelier", title = "Book reviews: {Jane Hahn, {\LaTeX} for Everyone}; {Eric van Herwijnen, Practical {SGML}}", journal = "tub", year = "1992", volume = "13", number = "2", month = jul, pages = "182--184", annote = "Contains reviews of ``\LaTeX{} for Everyone'' \cite{PCTeX:JHa91}, and ``Practical SGML'' \cite{Kluwer:EvHe90}.", keywords = "?", } @Comment{Some standard works describing conventions for citations and bibliographies} @TechReport{bs-1629, author = "BSI", title = "Bibliographic References", institution = "British Standards Institution", year = "1976", type = "BS", number = "1629", } @TechReport{bs-5605, author = "BSI", title = "Citing Publications by Bibliographic References", institution = "British Standards Institution", year = "1978", type = "BS", number = "5606", } @TechReport{bs-6371, author = "BSI", title = "Citation of unpublished documents", institution = "British Standards Institution", year = "1983", type = "BS", number = "6371", } @Book{butcher-81, title = "Copy-editing", author = "Judith Butcher", publisher = "Cambridge University Press", year = "1981", edition = "2nd", } @Book{chicago-82, title = "The {C}hicago Manual of Style", author = "`Chicago'", year = "1982", publisher = "University of Chicago Press", edition = "13th", } @Comment{Some examples taken from the document describing BS 5605} @Article{howells-51, author = "W. W. Howells", title = "Factors of Human Physique", journal = "American Journal of Physical Anthropology", volume = "9", pages = "159--192", year = "1951", } @Article{howells-66-pop, author = "W. W. Howells", title = "Population Distances: Biological, Linguistic, Geographical and Environmental", journal = "Current Anthropology", volume = "7", pages = "531--540", year = "1966", } @Article{howells-66-var, author = "W. W. Howells", title = "Variability in Family Lines vs. Population Variability", journal = "Annals of the {New York Academy of Sciences}", volume = "134", pages = "624--631", year = "1966", } @Article{johnson-74, author = "G. B. Johnson", title = "Enzyme Polymorphism", journal = "Science", volume = "184", pages = "28--37", year = "1974", } @Article{johnson-howells, author = "G. B. Johnson and W. W. Howells", title = "Title title title title title title title title title title", journal = "Journal journal journal", year = "1974", } @Article{johnson-etc, author = "G. B. Johnson and W. W. Howells and A. N. Other", title = "Title title title title title title title title title title", journal = "Journal journal journal", year = "1976", } @Manual{anon-67, author = "Anon.", title = "Title title title title title title title title title title", organization = "Organization organization organization", year = "1967", } @Article{aslin-49, author = "E. J. Aslin", title = "Photostat recording in library work", journal = "Aslib Proceedings", year = "1949", volume = "1", pages = "49--52", } @Article{fletcher-hopkins, author = "W. M. Fletcher and F. G. Hopkins", title = "Lactic Acid in Amphibian Muscle", journal = "J. Physiol.", year = "1907", volume = "35", pages = "247--309", } @InCollection{hanson-67, author = "C. W. Hanson", title = "Subject inquiries and literature searching", booktitle = "Handbook of special librarianship and information work", editor = "W. Ashworth", year = "1967", edition = "3rd", pages = "414--452", } @InBook{wright-63, author = "R. C. Wright", title = "Report Literature", booktitle = "Special Materials in the Library", editor = "J. Burkett and T. S. Morgan", year = "1963", pages = "46--59", publisher = "The Library Association", address = "London", } @Book{BCM-59, author = "{Association of British Chemical Manufacturers}", title = "British chemicals and their manufacturers", publisher = "Unknown", year = "1959", } @InBook{feigl-58, author = "F. Feigl", title = "Spot Tests in Organic Analysis", year = "1958", publisher = "Publisher publisher", edition = "5th", chapter = "6", } @Comment{Some examples taken from document describing BS 1629} @Book{hoel-71-whole, author = "Paul Gerhard Hoel", title = "Elementary Statistics", publisher = "Wiley", year = "1971", series = "Wiley series in probability and mathematical statistics", address = "New York, Chichester", edition = "3rd", note = "ISBN 0~471~40300", } @InBook{hoel-71-portion, author = "Paul Gerhard Hoel", title = "Elementary Statistics", publisher = "Wiley", year = "1971", series = "Wiley series in probability and mathematical statistics", address = "New York, Chichester", edition = "3rd", note = "ISBN 0~471~40300", pages = "19--33", } @Book{singer-whole, year = "1954--58", editor = "Charles Joseph Singer and E. J. Holmyard and A. R. Hall", title = "A history of technology", address = "London", publisher = "Oxford University Press", note = "5 vol.", } @InCollection{singer-portion-chapter, key = "singer-portion-chapter", title = "The late nineteenth century", year = "1954--58", editor = "Charles Joseph Singer and E. J. Holmyard and A. R. Hall", booktitle = "A history of technology", address = "London", publisher = "Oxford University Press", type = "Vol.", chapter = "5", } @InCollection{singer-portion-volume, title = "The late nineteenth century", key = "singer-portion-volume", year = "1954--58", editor = "Charles Joseph Singer and E. J. Holmyard and A. R. Hall", booktitle = "A history of technology", address = "London", publisher = "Oxford University Press", volume = "5", } @Manual{bs-2570-manual, author = "BSI", title = "Natural Fibre Twines", organization = "British Standards Institution", address = "London", edition = "3rd", year = "1973", note = "BS 2570", } @TechReport{bs-2570-techreport, author = "BSI", title = "Natural Fibre Twines", institution = "British Standards Institution", address = "London", year = "1973", type = "BS", number = "2570", note = "3rd. edn.", } @InBook{bs-2570-inbook, author = "BSI", title = "{BS} 2570: Natural Fibre Twines", publisher = "British Standards Institution", address = "London", year = "1973", edition = "3rd", chapter = "5", type = "{Table}", } @TechReport{ellis-walton, author = "B. Ellis and A. K. Walton", title = "A Bibliography on Optical Modulators", institution = "Royal Aircraft Establishment", year = "1971", number = "RAE-TR-71009", } @Article{godfrey-59, author = "G. Bernard Godfrey", title = "Joints in Tubular Structures", journal = "Struct. Eng.", year = "1959", volume = "37", number = "4", pages = "126--135", } @InCollection{ramsbottom-31, author = "John Ramsbottom", title = "Fungi Pathogenic to Man", booktitle = "A System of Bacteriology in relation to Medicine", publisher = "HMSO, for Medical Research Council", year = "1931", volume = "8", pages = "11--70", address = "London", } @Article{hanlon-72, author = "Joseph Hanlon", title = "Designing Buildings by Computer", journal = "New Scientist", year = "1972", month = "31 " # aug, pages = "429--432", } @TechReport{winget-67, author = "{Winget Ltd.}", title = "Detachable Bulldozer Attachment for Dumper Vehicles", year = "1967", institution = "unknown", type = "GB Patent Specification", number = "1060631", month = "8 " # mar, } @Article{bry-afflerbach, author = "I. Bry and L. Afflerbach", title = "In search of an organizing principle for behavioural science literature", journal = "Community Mental Health", year = "1968", volume = "4", number = "1", pages = "75--84", } @InCollection{ranganathan-51, author = "S. R. Ranganthan", title = "Colon classification and its approach to documentation", booktitle = "Bibliographic Organization", editor = "Jesse H. Shera and Margaret E. Egan", publisher = "University of Chicago Press", year = "1951", pages = "94--105", } @Book{mccolvin-nodate, author = "L. R. McColvin", title = "Libraries in {Britain}", publisher = "{Longmans Green, for the British Council}", address = "London", year = "1961", } @Comment{Some examples taken from document describing BS 6371} @Unpublished{exchequer-34-39, author = "Exchequer", year = "1634--1639", title = "Act books", note = "Edinburgh, Scottish Record Office, E.4/5", } @Unpublished{traquair-38, author = "{Earl of} Traquair", year = "1638", title = "Letter to {Marquess of Hamilton, 28 Aug.}", note = "Lennoxlove (E.~Lothian), Muniments of Duke of Hamilton and Brandon, C.1, no. 963", } @Unpublished{pym-24, author = "J. Pym", year = "1624", title = "Diary", note = "Northampton, Northamptonshire Record Office, Finch-Hatton 50", } @PhdThesis{croft-78, author = "W. B. Croft", year = "1978", title = "Organizing and searching large files of document descriptions", school = "Cambridge University", } @Comment{Some examples taken from Chapter 10 of "Copy-editing" by Judith Butcher} @Book{darcy-20-amaz, author = "Firstname D'Arcy", title = "Title title title title title title title title title title", publisher = "Publisher publisher publisher", year = "1920", } @Book{darcy-20-again, author = "Firstname D'Arcy", title = "Title title title title title title title title title title", publisher = "Publisher publisher publisher", year = "1920", } @Article{jones-n-h-r, author = "Firstname Jones and Firstname Norman and Firstname Hazel and Firstname Robinson", title = "Title title title title title title title title title title", year = "1962", journal = "Journal journal journal", } @Article{jones-s-r, author = "Firstname Jones and Firstname Smith and Firstname Robinson", title = "Title title title title title title title title title title", year = "1962", journal = "Journal journal journal", } @Article{jones-65, author = "Firstname Jones", title = "Title title title title title title title title title title", year = "1965", journal = "Journal journal journal", } @Article{jones-69, author = "Firstname Jones", title = "Title title title title title title title title title title", year = "1969", journal = "Journal journal journal", } @Article{jones-abrams, author = "Firstname Jones and Firstname Abrams", title = "Title title title title title title title title title title", year = "1968", journal = "Journal journal journal", } @Article{jones-smith, author = "Firstname Jones and Firstname Smith", title = "Title title title title title title title title title title", year = "1965", journal = "Journal journal journal", } @Article{jones-a-s, author = "Firstname Jones and Firstname Abrams and Firstname Smith", title = "Title title title title title title title title title title", year = "1966", journal = "Journal journal journal", } @Article{bloggs-60, author = "A. J. Bloggs", title = "Title title title title title title title title title title", journal = "Journal journal journal", year = "1960", } @Article{bloggs-61, author = "A. J. Bloggs", title = "Title title title title title title title title title title", journal = "Journal journal journal", year = "1961", } @Article{bloggs-jones, author = "A. J. Bloggs and X. Y. Jones", title = "Title title title title title title title title title title", journal = "Journal journal journal", year = "1959", } @Article{bloggs-s-j, author = "A. J. Bloggs and R. S. Smith and X. Y. Jones", title = "Title title title title title title title title title title", journal = "Journal journal journal", year = "1955", } @Article{brown-f-s, author = "H. W. Brown and A. S. Forbes and S. D. Smith", title = "Title title title title title title title title title title", journal = "Journal journal journal", year = "1900", } @InCollection{eckstein-zuckerman, author = "P. Eckstein and S. Zuckermann", title = "Morphology of the Reproductive Tract", booktitle = "Marshall's Physiology of Reproduction", publisher = "Longman", year = "1960", editor = "A. S. Parkes", volume = "1", pages = "43--154", address = "London", } @Article{heller-lederis, author = "H. Heller and K. Lederis", title = "Paper chromatography of small amounts of vasopressin and oxytocin", year = "1958", journal = "Nature", address = "London", volume = "182", pages = "1231--2", } @Book{wood-61, author = "R. H. Wood", title = "Plastic and Elastic Design of Slabs and Plates", publisher = "Thames \& Hudson", address = "London", year = "1961", } @Comment{Some examples taken from Chapter 15 of the Chicago Manual of Style} @Book{pratt-75, author = "Firstname Pratt", title = "Title title title title title title title title title title", publisher = "Publisher publisher publisher", year = "1975", } @Article{light-72, author = "Firstname Light", title = "Title title title title title title title title title title", journal = "Journal journal journal", year = "1972", } @Article{light-wong, author = "Firstname Light and Firstname Wong", title = "Title title title title title title title title title title", journal = "Journal journal journal", year = "1975", } @Article{kingston-76, author = "Firstname Kingston", title = "Title title title title title title title title title title", journal = "Journal journal journal", year = "1976", } @Article{kelley-96-spring, author = "Firstname Kelley", title = "Title title title title title title title title title title", journal = "Journal journal journal", year = "1896", } @Article{kelley-96-autumn, author = "Firstname Kelley", title = "Title title title title title title title title title title", journal = "Journal journal journal", year = "1896", } @Article{kelley-07, author = "Firstname Kelley", title = "Title title title title title title title title title title", journal = "Journal journal journal", year = "1907", } @Book{strong-01, author = "Firstname Strong", title = "Title title title title title title title title title title", publisher = "Publisher publisher publisher", year = "1901", } @Book{strong-02, author = "Firstname Strong", title = "Title title title title title title title title title title", publisher = "Publisher publisher publisher", year = "1902", } @Book{shotwell-01, author = "Firstname Shotwell", title = "Title title title title title title title title title title", publisher = "Publisher publisher publisher", year = "1901", } @Comment{Some examples taken from Chapter 16 of the Chicago Manual of Style} @TechReport{brunswick-85, author = "`Brunswick'", title = "The piper and the rats: A musical experiment", institution = "Rodent Activities Termination Section (RATS), Pest Control Division, Brunswick Public Welfare Department", year = "1985", number = "1984", address = "Hamelin", } @Book{kendeigh-52, author = "S. C. Kendeigh", year = "1952", title = "Prenatal care and its evolution in birds", series = "Illinois Biological Monographs", volume = "22", number = "1--3", address = "Champaign", publisher = "University of Illinois Press", } @Book{chapman-75, author = "Jefferson Chapman", year = "1975", title = "The {Icehouse Bottom} Site---{40MR23}", series = "University of Tennessee Department of Anthropology Publication", number = "23", address = "Knoxville", publisher = "Univ. of Tennessee Press", } @Book{hershkovitz-62, author = "P. Hershkovitz", year = "1962", title = "Evolution of {Neotropical} cricetine rodents ({Muridae}) with special reference to the phyllotine group", series = "Fieldiana: Zoology", volume = "46", address = "Chicago", publisher = "Field Museum of Natural History", } @Book{wright-78-book, title = "Evolution and the genetics of populations", author = "Sewall Wright", year = "1978", address = "Chicago", publisher = "Univ. of Chicago Press", volume = "4", } @InCollection{wright-78-incollection, title = "Variability within and among natural populations", author = "Sewall Wright", booktitle = "Evolution and the genetics of populations", year = "1978", address = "Chicago", publisher = "Univ. of Chicago Press", type = "Vol.", chapter = "4", } @InCollection{ogilvy-65, author = "David Ogilvy", title = "The Creative Chef", booktitle = "The Creative Organization", year = "1965", editor = "Gary A. Steiner", address = "Chicago", publisher = "University of Chicago Press", pages = "199--213", } @InCollection{mcneill-63, author = "William H. McNeill", year = "1963", title = "The Era of {Middle Eastern} Dominance to 500 {\sc b.c.}", booktitle = "The Rise of the {West}", publisher = "{University of Chicago Press}", address = "Chicago", type = "Part", chapter = "1", } @InCollection{thomson-71, author = "Virgil Thomson", title = "Cage and the Collage of Noises", booktitle = "American Music since 1910", address = "New York", publisher = "Holt, Rinehart and Winston", year = "1971", chapter = "8", } @InCollection{gordon-75, title = "The Tunes of {Chicken Little}", author = "Robert Gordon", year = "1975", booktitle = "Playwrights for Tomorrow: A Collection of Plays", editor = "Arthur H. Ballet", volume = "13", address = "Minneapolis", publisher = "University of Minnesota Press", note = "One of four plays included in vol. 13", } @InCollection{milton-24, author = "John Milton", title = "Paradise Lost", booktitle = "The Complete Poetical Works of {John Milton}", edition = "{Student's Cambridge}", address = "Boston", publisher = "Houghton Mifflin", year = "1924", editor = "William Vaughn Moody", } @InProceedings{chomsky-73, author = "N. Chomsky", year = "1973", title = "Conditions on Transformations", booktitle = "A festschrift for {Morris Halle}", editor = "S. R. Anderson and P. Kiparsky", publisher = "Holt, Rinehart \& Winston", address = "New York", } @InProceedings{chave-64, author = "K. E. Chave", year = "1964", title = "Skeletal durability and preservation", booktitle = "Approaches to paleoecology", editor = "J. Imbrie and N. Newel", address = "New York", publisher = "Wiley", pages = "377--87", } @Book{smart-76, author = "Ninian Smart", year = "1976", title = "The religious experience of mankind", publisher = "Schribner", address = "New York", edition = "2nd", } @Article{jackson-79, author = "Richard Jackson", year = "1979", title = "Running down the up-escalator: Regional inequality in {Papua New Guinea}", journal = "Australian Geographer", volume = "14", month = may, pages = "175--84", } @Article{prufer-64, author = "Olaf Prufer", year = "1964", title = "The {Hopewell} Cult", journal = "Scientific {American}", month = dec, pages = "90--102", } @PhdThesis{mann-68, author = "A. E. Mann", year = "1968", title = "The palaeodemography of {Australopithecus}", type = "Ph.D. diss.", school = "University of California, Berkeley", } @PhdThesis{maguire-76, author = "J. Maguire", year = "1976", title = "A taxonomic and ecological study of the living and fossil {Hystricidae} with particular reference to southern {Africa}", type = "Ph.D. diss.", school = "Department of Geology, University of the Witwatersrand", address = "Johannesburg", } @Unpublished{downes-74, title = "Systemic grammar and structural sentence relatedness", author = "W. J. Downes", year = "1974", note = "London School of Economics. Mimeo.", } @Misc{hunt-76, author = "Horace [pseud.] Hunt", title = "Interview", year = "1976", howpublished = "Tape recording, Pennsylvania Historical and Museum Commission, Harrisburg", note = "Interview by {Ronald Schatz, 16 May 1976}", } bibclean-3.07/test/okay/topt115.err0000444000156700015670000000000012470142673015747 0ustar beebebeebebibclean-3.07/test/okay/testoptg.err0000444000156700015670000001610713565762066016434 0ustar beebebeebefile=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 19dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 19dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 20dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd aaa 20dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 20dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 19dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 20dd"] file=[../bibclean.ini] field=[chapter ] existing patterns discarded file=[../bibclean.ini] field=[chapter ] pattern=["D"] file=[../bibclean.ini] field=[chapter ] pattern=["D-D"] file=[../bibclean.ini] field=[month ] existing patterns discarded file=[../bibclean.ini] field=[month ] pattern=[aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # " D"] file=[../bibclean.ini] field=[month ] pattern=[aaa # " D--D"] file=[../bibclean.ini] field=[month ] pattern=["D " # aaa] file=[../bibclean.ini] field=[month ] pattern=["D--D " # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # "" # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # "--" # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # " -- " # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # "/" # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # " A " # aaa] file=[../bibclean.ini] field=[month ] pattern=["\A\u\t\u\m\n"] file=[../bibclean.ini] field=[month ] pattern=["\F\a\l\l"] file=[../bibclean.ini] field=[month ] pattern=["\S\p\r\i\n\g"] file=[../bibclean.ini] field=[month ] pattern=["\S\u\m\m\e\r"] file=[../bibclean.ini] field=[month ] pattern=["\W\i\n\t\e\r"] file=[../bibclean.ini] field=[number ] existing patterns discarded file=[../bibclean.ini] field=[number ] pattern=["D"] file=[../bibclean.ini] field=[number ] pattern=["A AD"] file=[../bibclean.ini] field=[number ] pattern=["A D(D)"] file=[../bibclean.ini] field=[number ] pattern=["A D"] file=[../bibclean.ini] field=[number ] pattern=["A D\.D"] file=[../bibclean.ini] field=[number ] pattern=["A-A-D-D"] file=[../bibclean.ini] field=[number ] pattern=["A-A-D"] file=[../bibclean.ini] field=[number ] pattern=["A-A-D\.D"] file=[../bibclean.ini] field=[number ] pattern=["A-AD-D"] file=[../bibclean.ini] field=[number ] pattern=["A-D D"] file=[../bibclean.ini] field=[number ] pattern=["A-D-D"] file=[../bibclean.ini] field=[number ] pattern=["A-D"] file=[../bibclean.ini] field=[number ] pattern=["AD-D-D"] file=[../bibclean.ini] field=[number ] pattern=["AD-D"] file=[../bibclean.ini] field=[number ] pattern=["AD"] file=[../bibclean.ini] field=[number ] pattern=["A\#D-D"] file=[../bibclean.ini] field=[number ] pattern=["D \an\d D"] file=[../bibclean.ini] field=[number ] pattern=["D+D"] file=[../bibclean.ini] field=[number ] pattern=["D+D"] file=[../bibclean.ini] field=[number ] pattern=["D-D"] file=[../bibclean.ini] field=[number ] pattern=["D/D"] file=[../bibclean.ini] field=[number ] pattern=["D D"] file=[../bibclean.ini] field=[number ] pattern=["DA"] file=[../bibclean.ini] field=[number ] pattern=["D\.D"] file=[../bibclean.ini] field=[number ] pattern=["W-W W"] file=[../bibclean.ini] field=[number ] pattern=["W-W-WW-W"] file=[../bibclean.ini] field=[number ] pattern=["W"] file=[../bibclean.ini] field=[number ] pattern=["X"] file=[../bibclean.ini] field=[pages ] existing patterns discarded file=[../bibclean.ini] field=[pages ] pattern=["D"] file=[../bibclean.ini] field=[pages ] pattern=["aD"] file=[../bibclean.ini] field=[pages ] pattern=["D--D"] file=[../bibclean.ini] field=[pages ] pattern=["aD--aD"] file=[../bibclean.ini] field=[pages ] pattern=["D, D"] file=[../bibclean.ini] field=[pages ] pattern=["aD, aD"] file=[../bibclean.ini] field=[pages ] pattern=["D, D, D"] file=[../bibclean.ini] field=[pages ] pattern=["aD, aD, aD"] file=[../bibclean.ini] field=[pages ] pattern=["D, D, D, D"] file=[../bibclean.ini] field=[pages ] pattern=["aD, aD, aD, aD"] file=[../bibclean.ini] field=[pages ] pattern=["R + D"] file=[../bibclean.ini] field=[pages ] pattern=["R + D, w D w"] file=[../bibclean.ini] field=[pages ] pattern=["D, w D w"] file=[../bibclean.ini] field=[pages ] pattern=["D--D, D--D"] file=[../bibclean.ini] field=[pages ] pattern=["D--D, D--D, D--D"] file=[../bibclean.ini] field=[pages ] pattern=["aD--aD, aD--aD"] file=[../bibclean.ini] field=[pages ] pattern=["aD--aD, aD--aD, aD--aD"] file=[../bibclean.ini] field=[pages ] pattern=["??--??"] file=[../bibclean.ini] field=[pages ] pattern=["????"] file=[../bibclean.ini] field=[price ] existing patterns discarded file=[../bibclean.ini] field=[price ] pattern=["AD\.dd"] file=[../bibclean.ini] field=[price ] pattern=["D\.dd"] message[Put country prefix on price %v] file=[../bibclean.ini] field=[price ] pattern=["AD"] file=[../bibclean.ini] field=[price ] pattern=["D"] message[Put country prefix on price %v] file=[../bibclean.ini] field=[tag ] existing patterns discarded file=[../bibclean.ini] field=[tag ] pattern=[A:Add] file=[../bibclean.ini] field=[tag ] pattern=[A:Adda] file=[../bibclean.ini] field=[volume ] existing patterns discarded file=[../bibclean.ini] field=[volume ] pattern=["D"] file=[../bibclean.ini] field=[volume ] pattern=["DA"] file=[../bibclean.ini] field=[volume ] pattern=["D/D"] file=[../bibclean.ini] field=[volume ] pattern=["DA D"] file=[../bibclean.ini] field=[volume ] pattern=["w-D"] file=[../bibclean.ini] field=[volume ] pattern=["A"] file=[../bibclean.ini] field=[volume ] pattern=["D.D"] file=[../bibclean.ini] field=[volume ] pattern=["D \an\d D"] file=[../bibclean.ini] field=[volume ] pattern=["W"] file=[../bibclean.ini] field=[year ] existing patterns discarded file=[../bibclean.ini] field=[year ] pattern=["19dd"] file=[../bibclean.ini] field=[year ] pattern=["19dd, 19dd"] file=[../bibclean.ini] field=[year ] pattern=["19dd, 19dd, 19dd"] file=[../bibclean.ini] field=[year ] pattern=["19dda19dd"] file=[../bibclean.ini] field=[year ] pattern=["18dd"] file=[../bibclean.ini] field=[year ] pattern=["18dd, 18dd"] file=[../bibclean.ini] field=[year ] pattern=["18dd, 18dd, 18dd"] file=[../bibclean.ini] field=[year ] pattern=["18dda18dd"] file=[../bibclean.ini] field=[year ] pattern=["19dd (19dd)"] file=[../bibclean.ini] field=[year ] pattern=["19dd" # "--"] file=[../bibclean.ini] field=[year ] pattern=["20dd"] file=[../bibclean.ini] field=[year ] pattern=["18dd--d"] file=[../bibclean.ini] field=[year ] pattern=["19dd--d"] file=[../bibclean.ini] field=[year ] pattern=["20dd--d"] file=[../bibclean.ini] field=[year ] pattern=["20dd--d"] bibclean-3.07/test/okay/topt311.out0000444000156700015670000000000112470143224015756 0ustar beebebeebe bibclean-3.07/test/okay/testopt9.out0000444000156700015670000000000107342757231016351 0ustar beebebeebe bibclean-3.07/test/okay/topt122.out0000444000156700015670000000000112470143211015752 0ustar beebebeebe bibclean-3.07/test/okay/topt326.err0000444000156700015670000000000012470142675015755 0ustar beebebeebebibclean-3.07/test/okay/testbib2.out0000444000156700015670000021713314023206347016303 0ustar beebebeebe% REDUCE BIBLIOGRAPHY % Part 1: A-F % Copyright (c) 1990 The RAND Corporation. All Rights Reserved. % Additions and corrections are solicited. Please send them, in the % same format as these entries if possible, to reduce at rand.org. @Article{Abbott:85, author = "J. A. Abbott and R. J. Bradford and J. H. Davenport", title = "A Remark on Factorisation", journal = "{SIGSAM} Bulletin", year = "1985", volume = "19", number = "2", pages = "31--33", month = may, } @InProceedings{Abbott:86, author = "J. A. Abbott and R. J. Bradford and J. H. Davenport", title = "The {Bath} Algebraic Number Package", booktitle = "Proc. of {SYMSAC} '86", year = "1986", pages = "250--253", } @InProceedings{Abbott:87, author = "J. A. Abbott and J. H. Davenport", title = "Polynomial Factorization: An Exploration of {Lenstra's} Algorithm", booktitle = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", year = "1987", volume = "378", pages = "391--402", publisher = "Springer-Verlag", } @InProceedings{Abbott:87a, author = "J. A. Abbott", title = "Integration: Solving the {Risch} Differential Equation", booktitle = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", year = "1987", volume = "378", pages = "465--467", publisher = "Springer-Verlag", } @PhdThesis{Abbott:88, author = "J. A. Abbott", title = "Factorisation of Polynomials over Algebraic Number Fields", school = "Univ. of Bath, England", year = "1988", } @Article{Abbott:88a, author = "J. A. Abbott and J. H. Davenport", title = "A Remark on a Paper by {Wang}: Another Surprising Property of 42", journal = "Math. Comp.", year = "1988", volume = "51", pages = "837--839", } @InProceedings{Abbott:89, author = "J. A. Abbott", title = "Recovery of Algebraic Numbers from their p-Adic Approximations", booktitle = "Proc. of {ISSAC} '89", publisher = "{ACM} Press, New York", year = "1989", pages = "112--120", } @TechReport{Abbott:89a, author = "J. A. Abbott and R. J. Bradford and J. H. Davenport", title = "A Remark on the Multiplication of Sparse Polynomials", number = "TR 89-21", year = "1989", institution = "School of Mathematical Sciences, University of Bath", } @InProceedings{Abdali:88, author = "S. K. Abdali and D. S. Wise", title = "Experiments with Quadtree Representation of Matrices", booktitle = "Proc. of {ISSAC} '88", publisher = "Springer-Verlag", year = "1988", volume = "358", pages = "96--108", } @Article{Abiezzi:83, author = "Salim S. {Abi-Ezzi}", title = "Clarification to the Symbolic Mode in {REDUCE}", journal = "{SIGSAM} Bulletin", year = "1983", volume = "17", number = "3 and 4", pages = "43--47", month = aug # " and " # nov, } @Article{Adams:83, author = "K. J. Adams", title = "Analytic Estimates for the Dynamic Aperture of Nonlinear Lattices", journal = "IEEE Trans. Nucl. Sci.", year = "1983", volume = "NS-30", pages = "2436--2438", } %"For an accelerator lattice..." REDUCE was used to obtain low order %coefficients in the calculation of the amplitude. @Article{Adkins:83, author = "G. S. Adkins", title = "Analytic Evaluation of an {O}($\alpha$) Vertex Correction to the Rate of Orthopositronium", journal = "Phys. Rev. A", year = "1983", volume = "27", pages = "530--532", abstract = "The order-$\alpha$ correction to the lowest order orthopositronium decay rate due to the two outer-vertex graphs obtained in analytic form.", } @Article{Adkins:83a, author = "G. S. Adkins and F. R. Brown", title = "Rate for Positronium Decay to Five Photons", journal = "Phys. Rev. A", year = "1983", volume = "28", pages = "1164--1165", abstract = "{REDUCE} used to calculate trace of $\gamma$ matrices. Large calculation.", } @Article{Adkins:85, author = "G. S. Adkins", title = "Inner-Vertex Contributions to the Decay Rate of Orthopositronium", journal = "Phys. Rev. A", year = "1985", volume = "31", pages = "1250--1252", abstract = "{REDUCE} trace calculations. {"}In this paper the order-$\alpha$ contribution to the inner-vertex graphs to the decay rate of orthopositronium is obtained in analytic form.{"}", } @Article{Aguilera-Navarro:87, author = "V. C. Aguilera-Navarro and R. Guardiola and C. Keller and M. de Llano and M. Popovic and M. Fortes", title = "Van der {Waals} Perturbation Theory for Fermion and Boson Ground-State Matter", journal = "Phys. Rev. A", year = "1987", volume = "35", pages = "563--584", } %Uses computer algebra to rearrange ideal-gas-based low-density %expansions; to them REDUCE or MACSYMA provide just the expertise they %require to substitute forms into equations, and so makes their %formulation possible. @Article{Aldins:69, author = "J. Aldins and S. J. Brodsky and A. J. Dufner and T. Kinoshita", title = "Photon-Photon Scattering Contribution to the Sixth Order Magnetic Moments of the Muon and Electron", journal = "Phys. Rev. Lett.", year = "1969", volume = "23", pages = "441--443", } @TechReport{Alekseev:86, author = "A. I. Alekseev and V. F. Edneral", title = "Tensor Structure of Axial Gauge Polarization Operator in the Infrared Region", institution = "IHEP", year = "1986", type = "Preprint", number = "86-46", } @Article{Alekseev:87, author = "A. I. Alekseev and V. F. Edneral", title = "Tensor Structure of Gluon Polarization Operator in the Axial Gauge for Infra-Red Region", journal = "Journal of Nuclear Physics", year = "1987", pages = "1105--1114", } @TechReport{Alekseev:87a, author = "A. I. Alekseev and V. F. Edneral", title = "On Evaluation of {Feynman} Integrals in Axial Gauge", institution = "IHEP", year = "1987", type = "Preprint", number = "87-118", } %The recurrent algorithm for axial gauge calculations of %one-loop massless {Feynman} integrals in the n-dimensional %momentum space is described. The algorithm we suggest is %realized on the basis of REDUCE system and presented as %a procedure. It is rather effective for cumbersome %combinations of those integrals. @Article{Alfeld:82, author = "P. Alfeld", title = "Fixed Point Iteration with Inexact Function Values", journal = "Math. Comp.", year = "1982", volume = "38", pages = "87--98", } %Numerical analysis generating an improved iterative scheme. "The %technical manipulations in this paper were carried out using the %symbol manipulation language REDUCE." @TechReport{Amirkhanov:87, author = "I. V. Amirkhanov and E. P. Zhydkov and I. E. Zhydkova", title = "The Conditions of Bounding of the Oscillation Amplitudes of Charge Particle within the Resonance Vicinity Investigations", institution = "J.I.N.R., Dubna", year = "1987", number = "P11-87-452", } @Article{Antweiler:89, author = "Werner Antweiler and Andreas Strotmann and Volker Winkelmann", title = "A {{\TeX-{REDUCE}-Interface}}", journal = "SIGSAM Bulletin", year = "1989", volume = "23", month = feb, pages = "26--33", } @Article{Appelquist:70, author = "T. W. Appelquist and S. J. Brodsky", title = "The Order $\alpha^{2}$ Electrodynamic Corrections to the {Lamb} Shift", journal = "Phys. Rev. Letters", year = "1970", volume = "24", pages = "562--565", } @TechReport{Arbuzov:86, author = "B. A. Arbuzov and E. E. Boos and A. I. Davydychev", title = "Infrared Asymptotics of Gluonic {Green} Functions in Covariant Gauge", institution = "IHEP", year = "1986", type = "Preprint", number = "86-123", } @Article{Aso:81, author = "T. Aso and T. Nonoyama and S. Kato", title = "Numerical Simulation of Semidiurnal Atmospheric Tides", journal = "J. Geophysical R.", year = "1981", volume = "86", number = "11", pages = "388--400", } %"Numerical modeling of the solar and lunar semidiurnal atmospheric %tides has been performed by invoking a comprehensive approach that %includes both algebraic manipluation and numerical solution of the %primitive equation system." Used REDUCE to overcome difficulties of %complication and error. @Article{Atherton:73, author = "R. W. Atherton and G. M. Homsey", title = "Use of Symbolic Computation to Generate Evolution Equations and Asymptotic Solutions to Elliptic Equations", journal = "Journ. Comp. Phys.", year = "1973", volume = "1", pages = "45--59", } @Article{Aurenche:84, author = "P. Aurenche and A. Douir and R. Baier and M. Fontannaz and D. Schiff", title = "Photoproduction of Hadrons at Large Transverse Momentum in Second Order {QCD}", journal = "Phys. Lett.", year = "1984", volume = "135B", pages = "164--168", } % Uses REDUCE and SCHOONSCHIP in the extension of calculations to a %higher order to keep pace with experimental results. @Article{Aurenche:84a, author = "P. Aurenche and A. Douir and R. Baier and M. Fontannaz and D. Schiff", title = "Prompt Photon Production at Large $p_{\tau}$ in {GCD} Beyond the Leading Order", journal = "Phys. Lett.", year = "1984", volume = "140B", pages = "87--92", } %Uses REDUCE and SCHOONSCHIP. @Article{Autin:89, author = "B. Autin and J. Bengtsson", title = "Symbolic Evaluation of Integrals Occurring in Accelerator Orbit Theory", journal = "J. Symbolic Computation", year = "1989", volume = "7", number = "2", pages = "183--187", month = feb, } @Article{Baekler:84, author = "P. Baekler and F. W. Hehl", title = "A Charged {Taub-NUT} Metric with Torsion: A New Axially Symmetric Solution of the {Poincar\'{e}} Gauge Field Theory", journal = "Phys. Lett.", year = "1984", volume = "100A", pages = "277--316", } @TechReport{Baekler:84a, author = "Peter Baekler and Friedrich W. Hehl", title = "On the Dynamics of the Torsion of Spacetime: Exact Solutions in a Gauge Theoretical Model of Gravity", institution = "Department of Physics, University of California, Los Angeles", year = "1984", number = "UCLA/84/TEP/19", page = "18", month = dec, } @InProceedings{Baekler:86, author = "P. Baekler and F. W. Hehl and E. W. Mielke", title = "Nonmetricity and Torsion: Facts and Fancies in Gauge Approaches to Gravity", editor = "R. Ruffini", booktitle = "Proc. 4th Marcel Grossmann Meeting on General Relativity, ed.", publisher = "North-Holland, Amsterdam", year = "1986", pages = "277--316", } @Article{Baekler:87, author = "P. Baekler and R. Hecht and F. W. Hehl and T. Shirafuji", title = "Mass and Spin of Exact Solutions of the {Poincar\'{e}} Gauge Theory", journal = "Prog. Theor. Phys.", year = "1987", volume = "78", pages = "16--21", } @Article{Baekler:87a, author = "P. Baekler and M. Guerses", title = "Exact Solutions of the {Poincar\'{e}} Gauge Theory from Its Linearized Field Equations", journal = "Lett. Math. Phys.", year = "1987", volume = "14", pages = "185--191", } @Article{Baekler:87b, author = "P. Baekler and E. W. Mielke and F. W. Hehl", title = "Kinky Torsion in a {Poincar\'{e}} Gauge Model of Gravity Coupled to a Massless Scalar Field", journal = "Nuclear Phys.", year = "1987", volume = "B288", pages = "800--812", } @Article{Baekler:88, author = "P. Baekler and M. Seitz and V. Winkelmann", title = "Cyclindrically Symmetric Solutions of Self-Consistently Coupled {Dirac} Fields in Gauge Theories of Gravity", journal = "Class. Quantum Grav.", year = "1988", volume = "5", pages = "479--490", } @Article{Baekler:88a, author = "P. Baekler and M. Guerses and F. W. Hehl and J. D. McCrea", title = "The Exterior Gravitational Field of a Charged Spinning Source in the {Poincar\'{e}} Gauge Theory: A {Kerr-Newman} Metric with Dynamic Torsion", journal = "Phys. Lett.", year = "1988", volume = "A128", pages = "245--250", } @Article{Baekler:88b, author = "P. Baekler and M. Guerses and F. W. Hehl", title = "A New Method to Solve the Field Equations of {Poincar\'{e}} Gauge Theories", journal = "Class. Quantum Grav.", year = "1988", } @TechReport{Bajla:78, author = "I. Bajla and G. A. Ososkov and A. C. Hearn", title = "The Orthogonalization Program of Polynomials in Two Variables in {REDUCE}-2 Language", institution = "J.I.N.R., Dubna", year = "1978", type = "Report", number = "P10-11944", } %The analytical algorithm for constructing orthogonal %polynomials in two variables, based on the Gram-Schmidt %orthogonalization method, is proposed. @InProceedings{Balian:78, author = "R. Balian and G. Parisi and A. Voros", title = "Quartic Oscillator", year = "1978", month = may, booktitle = "Proc. of the Colloq. on Mathematical Problems in {Feynman} Path Integrals, Marseille", } %On the example of the semi-classical expansion for the levels %of the quartic oscillator -(d**2/dq**2)+q**4, we show how the %complex WKB method provides information about the %singularities of the Borel transform of the semi-classical %series. @Article{Baker:81, author = "G. A. Baker and L. P. Benofy and M. Fortes and M. de Llano and S. M. Peltier and A. Plastino", title = "Hard-Core Square-Well Fermion", journal = "Phys. Rev. A", year = "1982", volume = "26", pages = "3575--3588", } %The mixed use of FORTRAN and REDUCE, various derivative were calculated %algebraically, but the double series was evaluated numerically. @Article{Bark:78, author = "Fritz H. Bark and Herman Tinoco", title = "Stability of Plane {Poiseuille} Flow of a Dilute Suspension of Slender Fibres", journal = "J. Fluid Mech.", year = "1978", volume = "87", pages = "321--333", } %The linear hydrodynamic stability problem for plane Poiseuille %flow of a dilute suspension of rigid fibers is solved %numerically. The constitutive equation given by Batchelor %is used to model the rheological properties of the suspension. %The resulting eigenvalue problem is shown to be singular. @Article{Barthes-Biesel:73, author = "D. Barthes-Biesel and A. Acrivos", title = "On Computer Generated Analytic Solutions to the Equations of Fluid Mechanics, The Case of Creeping Flows", journal = "Journ. Comp. Phys.", year = "1973", volume = "3", pages = "403--411", } @Article{Barton:72, author = "David Barton and Anthony C. Hearn", title = "Comment on Problem \#2 - The {Y(2n)} Functions", journal = "SIGSAM Bulletin", year = "1972", volume = "15", } %A compact program for the solution of SIGSAM Problem \#2 %is presented. @Article{Bateman:86, author = "G. Bateman and R. G. Storer", title = "Direct Determination of Axisymmetric Magnetohydrodynamic Equilibrium in {Hamada} Coordinates", journal = "Journ. Comp. Phys.", year = "1986", volume = "64", pages = "161--176", } %Plasma. "REDUCE was used to analyse the general set of equations %for large numbers of Fourier harmonics ...." @TechReport{Bennett, author = "J. P. Bennett and J. H. Davenport and H. M. Sauro", title = "Solution of Some Equations in Biochemistry", institution = "School of Mathematical Sciences, University of Bath, England", number = "88-12", } @Article{Berends:81, author = "A. Berends and R. Kleiss and P. de Causmaecher and T. T. Wu", title = "Single Bremsstrahlung Process in Gauge Theories", journal = "Phys. Lett.", year = "1981", volume = "103B", pages = "124--128", } %Used REDUCE to calculate 25 {Feynman} diagrams to produce theoretical %results which could be checked against experiment. @TechReport{Berkovich:89, author = "L. M. Berkovich and V. P. Gerdt and Z. T. Kostova and M. L. Nechaevsky", title = "Second Order Reducible Linear Differential Equations", institution = "J.I.N.R., Dubna", year = "1989", type = "Preprint", number = "E5-89-141", } @Article{Berman:63, author = "S. M. Berman and Y. S. Tsai", title = "Intermediate Boson Pair Production as a Means for Determining its Magnetic Moment", journal = "Phys. Rev. Lett.", year = "1963", volume = "11", pages = "483--487", } @Article{Bessis:85, author = "N. Bessis and G. Bessis and D. Roux", title = "Closed-Form Expressions for the {Dirac-Coulomb} Radial $r^{t}$ Integrals", journal = "Phys. Rev. A", year = "1985", volume = "32", pages = "2044--2050", } %No direct algebraic manipluation, but the formula is stated to be %well suited to evaluation by REDUCE or MACSYMA, and this is an %advantage of their formula. @TechReport{Billoire:78, author = "A. Billoire and R. Lacaze and A. Morel and H. Navelet", title = "The {OZI} Rule Violating Radiative Decays of the Heavy Pseudoscalars", institution = "{CEN}-Saclay", year = "1978", type = "Report", number = "DpH-T 43/78", } %Submitted to Phys. Letters B. %In lowest order QCD the rates for radiative transitions violating the OZI %rule of heavy pseudoscalars are found to be extremely small. @Article{Biro:86, author = "T. S. Biro and J. Zimanyi and M. Zimanyi", title = "Hadrochemistry in Relativistic Mean Fields", journal = "Physics Letters", year = "1986", volume = "167B", number = "3", pages = "271--276", month = feb, } @Article{Biro:87, author = "T. S. Biro and K. Niita and A. L. de Paoli and W. Bauer and W. Cassing and U. Mosel", title = "Microscopic Theory of Photon Production in Proton-Nucleus and Nucleus-Nucleus Collisions", journal = "Nuclear Physics", year = "1987", volume = "475A", pages = "579--597", month = dec, } MONTH = "December"} @TechReport{Birrell:77, author = "N. D. Birrell", title = "The Application of Adiabatic Regularization to Calculations of Cosmological Interest", institution = "Dept. Math, King's College, London", year = "1977", } @Article{Biswas:75, author = "S. N. Biswas and S. R. Chaudhuri and K. S. Taank and J. A. Campbell", title = "Neutrino Production in Stellar Matter by Photons in a Renormalizable Scalar-Boson-Exchange Model of Weak Interactions", journal = "Phys. Rev. D", year = "1975", volume = "8", pages = "2523--2525", } @TechReport{Bittencourt:90, author = "Guilherme Bittencourt and Jacques Calmet", title = "Integrating Computer Algebra and Knowledge Representation", institution = "{Universit\"{a}t} Karlsruhe Institut {f\"{u}r} Algorithmen und Kognitive Systeme", year = "1990", type = "Preprint", } @Article{Boege:86, author = "W. Boege and R. Gebauer and H. Kredel", title = "Some Examples for Solving Systems of Algebraic Equations by Calculating {Groebner} Bases", journal = "J. Symbolic Computation", year = "1986", volume = "2", number = "1", pages = "83--98", month = mar, } @Article{Bogdanova:88, author = "N. Bogdanova and H. Hogreve", title = "A {REDUCE} Package for Exact {Coulomb} Interaction Matrix Elements", journal = "Comp. Phys. Commun.", year = "1988", volume = "48", number = "2", pages = "319--326", month = feb, } @Article{Bordoni:81, author = "Luciana Bordoni and Attilio Colagrossi", title = "An Application of {REDUCE} to Industrial Mechanics", journal = "{SIGSAM} Bulletin", year = "1981", volume = "15", number = "2", pages = "8--12", month = may, } @InProceedings{Bowyer:87, author = "A. Bowyer and J. H. Davenport and P. S. Milne and J. A. Padget and A. F. Wallis", title = "Applications of Computer Algebra in Solid Modelling", booktitle = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", year = "1987", volume = "378", pages = "244--245", publisher = "Springer-Verlag", } @TechReport{Boyd:78, author = "John P. Boyd", title = "The Effects of Latitudinal Shear on Equatorial Waves, Part {I}: Theory and Methods", institution = "Dept. of Atmos. and Oceanic Science, Univ. of Michigan", year = "1978", type = "Preprint", month = jan, } %To be published in Journal of The Atmospheric Sciences. %By using the method of multiple scales in height and a %variety of methods in latitude, analytic solutions for %equatorial waves in combined vertical and horizontal shear %are derived. @InProceedings{Brackx:87, author = "F. Brackx and H. Serras", title = "Boundary Value Problems for the {Laplacian} in {Euclidean} Space Solved by Symbolic Computation", booktitle = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", year = "1987", volume = "378", pages = "208--215", publisher = "Springer-Verlag", } @Article{Brackx:87a, author = "F. Brackx and D. Constales and R. Delanghe and H. Serras", title = "{Clifford} Algebra with {REDUCE}", journal = "Rend. Circ. Mat. Palermo, Ser. II", year = "1987", volume = "16", pages = "11--19", } @Article{Brackx:89, author = "F. Brackx and D. Constales and A. Ronveaux and H. Serras", title = "On the Harmonic and Monogenic Decomposition of Polynomials", journal = "J. Symbolic Computation", year = "1989", volume = "8", number = "3", pages = "297--304", month = sep, } @InProceedings{Bradford:86, author = "R. J. Bradford and A. C. Hearn and J. A. Padget and E. {Schr\"{u}fer}", title = "Enlarging the {REDUCE} Domain of Computation", booktitle = "Proc. of {SYMSAC} '86", year = "1986", pages = "100--106", } @InProceedings{Bradford:88, author = "R. J. Bradford and J. H. Davenport", title = "Effective Tests for Cyclotomic Polynomials", booktitle = "Proc. of {ISSAC} '88", publisher = "Springer-Verlag", year = "1988", volume = "358", pages = "244--251", } @Article{Broadhurst:85, author = "D. J. Broadhurst", title = "Evaluation of a Class of {Feynman} Diagrams for all Numbers of Loops and Dimensions", journal = "Phys. Lett. B", year = "1985", volume = "164", pages = "356--360", } %Uses REDUCE to calculate explicitely the l-loop member of a class of %massless, dimensionally regularized {Feynman} diagrams, in order to verify %an explicit formula. @Article{Brodsky:62, author = "S. J. Brodsky and A. C. Hearn and R. G. Parsons", title = "Determination of the Real Part of the {Compton} Amplitude at a Nucleon Resonance", journal = "Phys. Rev.", year = "1962", volume = "187", pages = "1899--1904", } @Article{Brodsky:67, author = "S. J. Brodsky and J. D. Sullivan", title = "W-Boson Contribution to the Anomalous Magnetic Moment of the Muon", journal = "Phys. Rev.", year = "1967", volume = "156", pages = "1644--1647", } @InProceedings{Brodsky:69, author = "S. J. Brodsky", title = "Status of Quantum Electrodynamics", year = "1969", booktitle = "Proc. International Symposium on Electron and Photon Interactions at High Energies, Liverpool, England", } @TechReport{Brodsky:70, author = "S. J. Brodsky", title = "Quantum Electrodynamic Theory: Its Relation to Precision Low Energy Experiments", institution = "SLAC", year = "1970", type = "Report", number = "SLAC-PUB-795", month = aug, } %Stanford Linear Accelerator Center Report. @InProceedings{Brodsky:71, author = "S. J. Brodsky", title = "Algebraic Computation Techniques in Quantum Electrodynamics", year = "1971", volume = "II", pages = "IV-1--IV-27", booktitle = "Proc. {2nd} Computing Methods in Theoretical Physics, Marseilles", } @TechReport{Brodsky:72, author = "S. J. Brodsky", title = "Atomic Physics and Quantum Electrodynamics in the Infinite Momentum Frame", institution = "SLAC", year = "1972", type = "Report", number = "SLAC-PUB-1118", month = aug, } %Presented at the Third International Conference on Atomic Physics. @Article{Brodsky:72a, author = "S. J. Brodsky and J. F. Gunion and R. L. Jaffe", title = "Test for Fractionally Charged Partons from Deep-Inelastic Bremsstrahlung in the Scaling Region", journal = "Phys. Rev. D", year = "1972", volume = "6", pages = "2487--2494", } @Article{Brodsky:72b, author = "S. J. Brodsky and R. Roskies", title = "Quantum Electrodynamics and Renormalization Theory in The Infinite Momentum Frame", journal = "Phys. Lett.", year = "1972", volume = "41B", pages = "517--520", } @Article{Brodsky:73, author = "S. J. Brodsky and R. Roskies and R. Suaya", title = "Quantum Electrodynamics and Renormalization Theory in the Infinite-Momentum Frame", journal = "Phys. Rev. D", year = "1973", volume = "8", pages = "4574--4594", } @Article{Broughan:82, author = "K. A. Broughan", title = "{Grad-Fokker-Planck} Plasma Equations. Part 1. {Collision} Moments", journal = "J. Plasma Phys.", year = "1982", volume = "27", pages = "437--452", } %REDUCE used in collaboration with hand calculation. REDUCE did the %substitutions, with hand integrations. "Thirteen moments are taken of the %collision term in Boltzmann-Fokker-Planck equation....plasma..." @Article{Brown:79, author = "W. S. Brown and A. C. Hearn", title = "Applications of Symbolic Algebraic Computation", journal = "Comp. Phys. Comm.", year = "1979", volume = "17", pages = "207--215", } %This paper is a survey of applications of systems for symbolic %algebraic computation. @Article{Bryan-Jones:87, author = "Jane Bryan-Jones", title = "A Tutorial in Computer Algebra for Statisticians", journal = "The Professional Statistician", year = "1987", volume = "6", number = "6", month = dec, pages = "TBD", } @TechReport{Calmet:72, author = "Jacques Calmet", title = "Further Evaluation of the Sixth Order Corrections to the Anomalous Magnetic Moment of the Electron", institution = "Department of Physics, University of Utah", year = "1972", } %We report on the contributions to the $\alpha^{3}$ %part of the anomalous magnetic moment of the electron from the %seven so-called cross and ladder diagrams. @Article{Calmet:72a, author = "Jacques Calmet", title = "A {REDUCE} Approach to the Calculation of {Feynman} Diagrams", journal = "Comp. Phys. Comm.", year = "1972", volume = "4", pages = "199--204", } %A brief survey of two existing REDUCE programs (by Campbell-Hearn %and by Calmet) dealing with algebraic computation of {Feynman} diagrams is %given. Work in progress on a more general approach to this problem %is discussed. @Article{Calmet:74, author = "Jacques Calmet", title = "Computer Recognition of Divergences in {Feynman} Graphs", journal = "SIGSAM Bulletin", year = "1974", volume = "8", number = "3", pages = "74--75", month = aug, } %A description of a program for the recognition of divergences %in {Feynman} graphs is given. @InCollection{Calmet:83, author = "J. Calmet and J. A. van Hulzen", title = "Computer Algebra Applications", editor = "B. Buchberger and G. E. Collins and R. Loos and R. Albrecht", booktitle = "Computer Algebra Symbolic and Algebraic Computation", edition = "2nd", publisher = "Springer-Verlag", year = "1983", } @Article{Campbell:67, author = "J. A. Campbell", title = "Algebraic Computation of Radiative Corrections for Electron-Positron Scattering", journal = "Nucl. Phys.", year = "1967", volume = "B1", pages = "283--300", } @Article{Campbell:68, author = "J. A. Campbell", title = "Astrophysical Consequences of the Existence of Charged Intermediate Vector Bosons", journal = "Aust. Journ. of Phys.", year = "1968", volume = "21", pages = "139--148", } @Article{Campbell:70, author = "J. A. Campbell and A. C. Hearn", title = "Symbolic Analysis of {Feynman} Diagrams by Computer", journal = "Journ. of Comp. Phys.", year = "1970", volume = "5", pages = "280--327", } @Article{Campbell:70a, author = "J. A. Campbell and R. B. Clark and D. Horn", title = "Low-T Theorems for Charged-Pion Photoproduction", journal = "Phys. Rev. D", year = "1970", volume = "2", pages = "217--224", } @Article{Campbell:74, author = "J. A. Campbell", title = "Symbolic Computing and Its Relationship to Particle Physics", journal = "Acta Physica Austriaca", year = "1974", volume = "XIII", pages = "595--647", } @Article{Campbell:87, author = "J. A. Campbell and P. O. {Fr\"{o}man} and E. Walles", title = "Explicit series formulae for the evaluation of integrals by the method of steepest descents", journal = "Studies in Applied Mathematics", year = "1987", volume = "77", pages = "151--172", } @TechReport{Caprasse:84, author = "H. Caprasse", title = "Description et Utilisation {d'Une} Extension du Programme {REDUCE}", institution = "Physique Th\'{e}orique et Math\'{e}matique, Universit\'{e} de Li\`{e}ge", year = "1984", month = oct, } @Article{Caprasse:85, author = "H. Caprasse and M. Hans", title = "A New Use of Operators in the Algebraic Mode of {REDUCE}", journal = "{SIGSAM} Bulletin", year = "1985", volume = "19", number = "3", pages = "46--52", month = aug, } @Article{Caprasse:86, author = "H. Caprasse", title = "Description of an Extension of the Matrix Package of {REDUCE}", journal = "{SIGSAM} Bulletin", year = "1986", volume = "20", number = "4", pages = "7--10", month = dec, } @Article{Caprasse:86a, author = "H. Caprasse", title = "A Complete Simplification Package for the Absolute Value Function in {REDUCE}", journal = "{SIGSAM} Bulletin", year = "1986", volume = "20", number = "1 and 2", pages = "18--21", month = feb # " and " # may, } %Implementation for REDUCE 3.2 of the function "ABS". @InProceedings{Caprasse:88, author = "H. Caprasse and J. Demaret and E. Schruefer", title = "Can {EXCALC} be Used to Investigate {High-dimensional} Cosmological Models with {Non-Linear Lagrangians}", booktitle = "Proc. of {ISSAC} '88", publisher = "Springer-Verlag", year = "1988", pages = "116--124", } @Article{Caprasse:90, author = "H. Caprasse", title = "Renormalization Group, Function Iterations and Computer Algebra", journal = "J. Symbolic Computation", year = "1990", volume = "9", number = "1", pages = "61--72", month = jan, } %Based on a renormalization group equation met in Quantum Field Theory, %Continuous Iterations of a large class of functions are computed using %REDUCE. @Article{Caprasse:89a, author = "H. Caprasse", title = "Les Th\'{e}ories des {Champs} dans le monde de {REDUCE} (in French)", journal = "{CALSYF} (to appear)", year = "1989", } @Article{Carlson:80, author = "P. Carlson", title = "Coordinate Free Relativity", journal = "J. Math. Phys.", year = "1980", volume = "21", pages = "1149--1154", } %REDUCE programs for tetrad formulation of GR. @PhdThesis{Carroll:73, author = "R. Carroll", title = "The Anomalous Magnetic Moment of the Electron in the Mass Operator Formalism", school = "University of Michigan", year = "1973", } @Article{Carroll:75, author = "R. Carroll", title = "Mass-Operator Calculation of the Electron g-Factor", journal = "Phys. Rev. D", year = "1975", volume = "8", pages = "2344--2354", } @TechReport{Cejchan, author = "A. Cejchan and J. Nadrchal", title = "Application of {REDUCE}-2 and Analytic Integration Program in the Theoretical Solid State Physics", institution = "Institute of Physics, CSAV, Prague", } @InProceedings{Chaffy:88, author = "C. Chaffy-Camus", title = "An Application of {REDUCE} to the Approximation of {f(x,y)}", booktitle = "Proc. of {ISSAC} '88", publisher = "Springer-Verlag", year = "1988", volume = "358", pages = "73--84", } @Article{Chinnick:86, author = "K. Chinnick and C. Gibson and J. F. Griffiths and W. Kordylewski", title = "Isothermal Interpretations of Oscillatory Ignition During Hydrogen Oxidation in an Open System. {I}. {Analytical} Predictions and Experimental Measurements of Periodicity", journal = "Proc. Royal Soc. Lond.", year = "1986", volume = "A405", pages = "117--128", } %Used REDUCE to solve Jacobian, but answer too complicated to be of any use. @Article{Cline:90, author = "Terry Cline and Harold Abelson and Warren Harris", title = "Symbolic Computing in Engineering Design", journal = "AI EDAM", year = "1990", month = feb, } @TechReport{Cohen:76, author = "H. I. Cohen and O. Leringe and Y. Sundblad", title = "The Use of Algebraic Computing in General Relativity", institution = "The Royal Institute of Technology Department of Mechanics", year = "1976", number = "TRITA-MEK-76-02", } @TechReport{Cohen:76a, author = "I. Cohen and F. Bark", title = "Perturbation Calculations for the Spin Up Problem Using {REDUCE}", institution = "The Royal Institute of Technology, Department of Mechanics", year = "1976", number = "TRITA-MEK-76-03", } @TechReport{Cohen:77, author = "I. Cohen and S. Yu. Slavyanov", title = "Smooth Perturbations of the {Schr\"{o}dinger} Equation with a Linear Potential Related to the Charmonium Models", institution = "University of Stockholm Institute of Physics", year = "1977", type = "USIP Report", number = "77-17", } @Article{Cohen:79, author = "J. P. Fitch and H. I. Cohen", title = "Using {CAMAL} for Algebraic Calculations in General Relativity", journal = "General Relativity and Gravitation", volume = "11", year = "1979", pages = "411--418", } @Article{Cohen:84, author = "H. I. Cohen and I. B. Frick and J. E. {\AA}man", title = "Algebraic Computing in General Relativity", journal = "General Relativity and Gravitation, ed.", year = "1984", pages = "139--162", } %General relativity review. @InProceedings{Cohen:89, author = "Joel S. Cohen", title = "The Effective Use of Computer Algebra Systems", year = "1989", pages = "677--698", booktitle = "Transactions of the Sixth Army Conference on Applied Mathematics and Computing", } % Review of author's experience with four computer algebra systems. @Article{Connor:84, author = "J. N. L. Connor and P. R. Curtis and D. Farrelly", title = "The Uniform Asymptotic Swallowtail Approximation: Practical Methods for Oscillating Integrals with Four Coalescing Saddle Points", journal = "J. Phys. A", year = "1984", volume = "17", pages = "283--310", } %Used REDUCE and SCHOONSCHIP for some algebraic manipulations, and then %checked the results with MACSYMA; this is the most distrustful %reference we have found. @Article{Connor:84a, author = "J. N. L. Connor and P. R. Curtis and C. J. Edge and A. Lagan`{a}", title = "The Uniform Asymptotic Swallowtail Approximation: Application to the Collinear {$H+F_{2}$}", journal = "J. Chem. Phys.", year = "1984", volume = "80", number = "3", pages = "1362--1363", month = feb, } @Article{Conwell:84, author = "P. R. Conwell and P. W. Barber and C. K. Rushworth", title = "Resonant Spectra of Dielectric Sphere", journal = "J. Opt. Soc. Am. A", year = "1984", volume = "1", pages = "62--67", } %REDUCE used to confirm independently convergence and accuracy of %Numerical Bessel function routine, expanding series by REDUCE and %using bigfloats. Described as slow but worthwhile. @InProceedings{Cowan:79, author = "Richard M. Cowan and Martin L. Griss", title = "Hashing -- The Key to Rapid Pattern Matching", booktitle = "Proc. {EUROSAM} 1979, Lecture Notes in Computer Science", year = "1979", volume = "72", pages = "266--278", publisher = "Springer-Verlag", } @Article{Cung:75, author = "V. K. Cung", title = "Differential Cross Section of e+ + e- to e+ + mu- + nubar(mu) + nubar(e)", journal = "Phys. Lett.", year = "1975", volume = "55B", pages = "67--70", } @TechReport{Darbaidze:86, author = "Ya. Z. Darbaidze", title = "A Gluon Bremsstrahlung in Supersymmetry {QCD}", institution = "JINR", year = "1986", type = "Preprint", number = "P2-86-825", } @Article{Darbaidze:86a, author = "J. Z. Darbaidze and V. A. Matveev and Z. V. Merebashvili and L. A. Slepchenko", title = "Gluon Bremsstrahlung in Supersymmetric {QCD}", journal = "Phys. Lett.", year = "1986", volume = "B177", page = "188", } @TechReport{Darbaidze:88, author = "Ya. Z. Darbaidze and Z. V. Merebashvili and V. A. Rostovtsev", title = "Some Computer Realizations of the {REDUCE-3} Calculations for Exclusive Processes", institution = "JINR", year = "1988", type = "Preprint", number = "P2-88-769", } @TechReport{Darbaidze:89, author = "Ya. Z. Darbaidze and V. A. Rostovtsev", title = "Analysis of the Differential Equations for the Exclusive Processes and Explanation for the {"Mystery"} of the {Gamma-Distribution}", institution = "JINR", year = "1989", type = "Preprint", number = "E2-89-286", } @InProceedings{Dautcourt:79, author = "G. Dautcourt", title = "Application of {REDUCE} to Algebraic Computations in General Relativity and Astrophysics", year = "1979", month = sep, booktitle = "Proc. of the Workshop in Symbolic Computation, Dubna, {U.S.S.R.}", } %Reports the use of the system REDUCE 2 for general relativistic %calculations. @TechReport{Dautcourt:80, author = "G. Dautcourt and K. P. Jann", title = "A Program Package in {REDUCE} 2 for Algebraic Computations in General Relativity", year = "1980", institution = "Zentralinstitut fuer Astrophysik der Akademie der Wissenschaften", } @Article{Dautcourt:81, author = "G. Dautcourt and K. P. Jann and E. Riemer and M. Riemer", title = "User's Guide to {REDUCE} Subroutines For Algebraic Computations in General Relativity", journal = "Astron. Nachr.", year = "1981", volume = "302", pages = "1--13", } @Article{Dautcourt:83, author = "G. Dautcourt", title = "The Cosmological Problem as an Initial Value Problem on the Observer's Past Light Cone: Geometry", journal = "J. Phys. A", year = "1983", volume = "16", pages = "3507--3528", } %Checked calculations with REDUCE, mainly Riemann tensor in null %coordinates. @Article{Davenport:81, author = "James Harold Davenport", title = "On the Integration of Algebraic Functions", journal = "Lecture Notes in Computer Science", year = "1981", volume = "102", pages = "1--197", } @Article{Davenport:82, author = "James H. Davenport", title = "Fast {REDUCE:} The {trade-off} between efficiency and generality", journal = "{SIGSAM} Bulletin", year = "1982", volume = "16", number = "1", pages = "8--11", month = feb, } @Article{Davenport:82a, author = "James H. Davenport", title = "What do we want from a {high-level} language?", journal = "{SIGSAM} Bulletin", year = "1982", volume = "16", number = "4", pages = "6--9", month = nov, } @InProceedings{Davenport:85, author = "James Davenport and Julian Padget", title = "{HEUGCD:} How Elementary Upperbounds Generate Cheaper Data", booktitle = "Proc. {EUROCAL} 1985, Lecture Notes in Computer Science", year = "1985", volume = "204", pages = "18--28", publisher = "Springer-Verlag", } @Article{Davenport:88, author = "J. H. Davenport", title = "The World of Computer Algebra", journal = "New Scientist", year = "1988", month = sep, volume = "1629", pages = "71--72", } @Book{Davenport:88a, author = "J. H. Davenport and Y. Siret and E. Tournier", title = "Computer Algebra, Systems and Algorithms for Algebraic Computation", publisher = "Academic Press", year = "1988", } @TechReport{Della-Dora:81, author = "J. Della Dora and E. Tournier", title = "Solutions Formelles {D'Equations} Differentielles au Voisinage de Points Singuliers Reguliers", institution = "Centre National de la Recherche Scientifique", year = "1981", type = "Report", number = "239", } @InProceedings{Della-Dora:84, author = "J. Della Dora and E. Tournier", title = "Homogeneous Linear Difference Equation {(Frobenius-Boole Method)}", booktitle = "Proc. {EUROSAM} 1984, Lecture Notes in Computer Science", year = "1984", volume = "174", pages = "2--12", publisher = "Springer-Verlag", } @TechReport{Della-Dora:85, author = "Jean Della-Dora and Claire Dicrescenzo and Dominique Duval", title = "About a New Method for Computing in Algebraic Number Fields", institution = "Universit\'{e} de Grenoble, Institut Fourier, France", year = "1985", month = nov, } @Article{Demaret:89, author = "J. Demaret and H. Caprasse and A. Moussiaux and Ph. Tombal and D. Papadopoulos", title = "{Ten-dimensional Lovelock-type Space-Times}", journal = "{To appear} Phys. Rev. D", year = "1989", month = jul, } @Article{DeMenna:87, author = "L. De Menna and G. Miano and G. Rubinacci", title = "Volterra's Series Solutions of Free Boundary Plasma Equilibria", journal = "Phys. Fluids", year = "1987", volume = "30", pages = "409--416", } %Magnetohydrodynamics. "We have carried out the computations up to %the fourth order, (the fourth order has been obtained by means of the %symbolic program REDUCE". @Article{Demichev:85, author = "A. P. Demichev and A. Ya. Rodionov", title = "A {REDUCE} Program for the Calculation of Geometrical Characteristics of Compactified Multidimensional {Riemannian} Space", journal = "Comp. Phys. Comm.", year = "1985", volume = "38", pages = "441--448", } %Covariant theories in N dimensional ($N \geq 4$) space-time. %REDUCE programs to calculate Ricci, Einstein and Yang-Mills curvature %and energy-momentum tensor. @TechReport{Demichev:86, author = "A. P. Demichev and A. Ya. Rodionov", title = "Freund-{Rubin} Type Solutions for Different Compactifications of the Eleven-Dimensional Space", institution = "Institute for High Energy Physics", year = "1986", type = "Preprint", number = "86-85", } %The results of calculating geometrical characteristics of %seven-dimensional quotient spaces are represented. These %quantities are necessary for the construction of compactifying %solutions of the eleven-dimensional supergravity. @Article{deRop:88, author = "Y. de Rop and J. Demaret", title = "Using {EXCALC} to Study Nondiagonal Multidimensional Spatially Homogeneous Cosmologies", journal = "Gen. Rel. Grav.", year = "1988", volume = "20", pages = "1127--1139", } @TechReport{DeVos:89, author = "Alexis De Vos", title = "The use of {Reduce} in solar energy conversion theory", institution = "State University of Gent, {CAGe} Computer Algebra Group", year = "1989", type = "Reports of the {CAGe} Project", number = "4", month = aug, } @InProceedings{Dewar:89, author = "M. C. Dewar", title = "{IRENA --} An Integrated Symbolic and Numerical Computation Environment", booktitle = "Proc. of {ISSAC} '89", publisher = "{ACM} Press, New York", year = "1989", pages = "171--179", } @Article{Dhar:85, author = "D. Dhar and J-M. Maillard", title = "Susceptibility of the Checkerboard {Ising} Model", journal = "J. Phys. A", year = "1985", volume = "18", pages = "L383--L388", } %Used REDUCE for tedious algebra, and got a simple answer. Statistical %mechanics(?). "At the disorder variety, the n-point correlation %functions of the checkerboard Potts model has a simple causal %structure. An exact expression for the susceptibility in the Ising %case is obtained." @TechReport{Dicrescenzo:85, author = "Claire Dicrescenzo", title = "Algebraic Computation on Algebraic Numbers", institution = "Institut Fourier, Laboratoire de Math\'{e}matiques, France", year = "1985", month = dec, } %Examples are given of a new method, implemented on REDUCE, %for computing algebraically on algebraic numbers. @TechReport{Diver, author = "D. A. Diver and E. Q. Laing and C. C. Sellar", title = "Waves in a Cold Plasma with a Spatially Rotating Magnetic Field", institution = "Department of Physics and Astronomy, University of Glasgow, Plasma Physics Group", type = "Report", number = "GU TPA 88/12-1", } %"...The algebraic manipulation system REDUCE was used in constructing the %following tensor definitions which allows us to make fewer %approximations than other authors." @InProceedings{Diver:86, author = "D. A. Diver and E. W. Laing", title = "Proc. 8th {Europhysics} Conference on Computational Physics", year = "1986", booktitle = "Computing in Plasma Physics", } @InProceedings{Diver:88, author = "D. A. Diver and E. W. Laing", title = "Proc. {XV} {European} Conference on Controlled Fusion and Plasma Heating", year = "1988", } @TechReport{Diver:88a, author = "D. A. Diver and E. W. Laing", title = "Alfven Resonance Absorption in a Magnetofluid", year = "1988", type = "Internal Report", number = "GUTPA 88/04-01", month = jul, } %Presented at 15th UK Plasma Physics Conference, UMIST. @TechReport{Dorfi:85, author = "E. A. Dorfi and L. O'C. Drury", title = "Simple Adaptive Grids for {1D} Initial Value Problems", institution = "Max-Plack-Institut fuer Kernphysik, Heidelberg, West Germany", year = "1985", number = "MPI H-1985-V21", } @Article{Dorizzi:86, author = "B. Dorizzi and B. Grammaticos and J. Hietarinta and A. Ramani and F. Schwarz", title = "New integrable three dimensional quartic potentials", journal = "Phys. Lett.", year = "1986", volume = "116A", pages = "432--436", } %REDUCE is used to construct and verify constants of motion. @TechReport{dosSantos:85, author = "R. P. dos Santos and P. P. Srivastava", title = "Two-loop Effective Potential for Wess-Zumino Model using Superfields", institution = "International Centre for Theoretical Physics", year = "1985", number = "IC/85/205", month = oct, } %"For the case of several interacting chiral superfields the propagators %for the unconstrained superfield potentials in the 'shifted' theory, %where the supersymmetry is explicity broken, are derived in a compact %form. They are used to compute one-loop effective potential in the %general case, while a superfield calculation of renormalized effective %potential to two loops for the Wess-Zumino model is performed." @Article{dosSantos:87, author = "Renato P. dos Santos", title = "Using {REDUCE} in Supersymmetry", journal = "J. Symb. Comp.", year = "1989", volume = "7", pages = "523--525", } @PhdThesis{dosSantos:87a, author = "R. P. dos Santos", title = "{O} M\'{e}todo de Supercampos para o C\'{a}lculo de Potencial Efetivo em Modelos com Supercampos Quirais: Os Modelos de Wess e Zumino e de {O'Raifeartaigh}", school = "Centro Brasileiro de Pesquisas F\'{i}sicas", year = "1987", } %(In Portuguese) Using the method of Superfields, the effective %potential for supersymmetric models of Wess-Zumino and of %O'Raifeartaigh is evaluated up to two-loop order. The spontaneous %supersymmetry breaking is discussed. REDUCE plays very important %role in evaluation of the Feynman superdiagrams and in %renormalization. @TechReport{dosSantos:88a, author = "Renato P. dos Santos", title = "Introdu\c{c}\~{a}o ao Sistema {REDUCE} de C\'{a}lculo Alg\'{e}brico", institution = "CBPF, Rio de Janeiro, Brazil", year = "1988", number = "CBPF-NT-001/88", } %(In Portuguese) Lecture notes of a course on REDUCE. @Article{Dubowsky:75, author = "S. Dubowsky and J. L. Grant", title = "Application of Symbolic Manipulation to Time Domain Analysis of Nonlinear Dynamic Systems", journal = "Journ. of Dynamic Systems, Measurement, and Control", year = "1975", number = "75-Aut-J", } @Article{Dudley:89, author = "M. L. Dudley and R. W. James", title = "{Computer-aided} Derivation of Spherical Harmonic Spectral Equations in Astrogeophyics", journal = "J. Symbolic Computation", year = "1989", volume = "8", number = "4", pages = "423--427", month = oct, } @Article{Dufner:69, author = "A. M. Dufner and Y. S. Tsai", title = "Phenomenological Analysis of the $\gamma${NN*} Form Factors", journal = "Phys. Rev.", year = "1969", volume = "168", pages = "1801--1809", } @InProceedings{Dulyan:87, author = "L. S. Dulyan", title = "The Calculation of {QCD} Triangular {Feynman} Graphs in the External Gluonic Field Using {REDUCE}-2 System", booktitle = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", year = "1987", volume = "378", pages = "172--173", publisher = "Springer-Verlag", } @Article{Duncan:86, author = "Anthony Duncan and Ralph Roskies", title = "Representations of Unusual Mathematical Structures in Scientific Applications of Symbolic Computation", journal = "J. Symbolic Computation", year = "1986", volume = "2", number = "2", pages = "201--206", month = jun, } %We present examples of techniques we have used to apply REDUCE to problems %in particle physics which have mathematical structures unknown to REDUCE. @PhdThesis{Duval:87, author = "Dominique Duval", title = "Diverses questions relatives au Calcul Formel Avec des Nombres Alg\'{e}briques", school = "L'Universit\'{e} Scientifique, Technologique et M\'{e}dicale de Grenoble", year = "1987", } @Article{Earles:70, author = "D. Earles", title = "A Measurement of the Electron-Production of Muon Pairs", journal = "Phys. Rev. Lett.", year = "1970", volume = "25", pages = "129--133", } @Article{Eastwood:87, author = "James W. Eastwood", title = "Orthovec: A {REDUCE} Program for {3-D} Vector Analysis in Orthogonal Curvilinear Coordinates", journal = "Comp. Phys. Commun.", year = "1987", volume = "47", number = "1", pages = "139--147", month = oct, } @TechReport{Edelen:81, author = "Dominic G. B. Edelen", title = "Programs for Calculation of Isovector Fields in the {REDUCE}-2 Environment", institution = "Center for the Application of Mathematics, Lehigh University", year = "1981", number = "TBD", month = aug, } @Article{Edelen:82, author = "D. G. B. Edelen", title = "Isovector Fields for Problems in the Mechanics of Solids and Fluids", journal = "Int. Journ. Eng. Sci.", year = "1982", volume = "20", pages = "803--815", } %Prolongation methods as a REDUCE package for this, available from %Center for Applications of Mathematics, Lehigh Univ., Bethlehem, PA %18015. Applications to mechanics of solids and fluids. @Book{Edneral:89, author = "Viktor F. Edneral and Aleksandr P. Kryukov and Anatolii Ia. Rodionov", title = "The language of the analytic computer program {REDUCE}", publisher = "Moscow, {Izd-vo}, Moskovskogo {un-ta}", year = "1989", } %This monograph -- first in The Soviet Union with a systematic treatment %of the analytical computer (program) REDUCE. @Article{Eisenberger:90, author = "Moshe Eisenberger", title = "Application of Symbolic Algebra to the Analysis of Plates on Variable Elastic Foundation", journal = "J. Symbolic Computation", year = "1990", volume = "9", number = "2", pages = "207--213", month = feb, } @TechReport{Eissfeller:86, author = "Bernd {Ei{\ss}feller} and {G\"{u}nter} W. Hein", title = "A Contribution to {3D-Operational} Geodesy", institution = "{Universit\"{a}rer} Studiengang Vermessungswesen and {Universit\"{a}t} der Bundeswehr {M\"{u}nchen}", year = "1986", number = "Heft 17", month = dec, } @PhdThesis{Eitelbach:73, author = "D. L. Eitelbach", title = "Automatic Analysis of Problems in Elementary Mechanics", school = "University of Illinois", year = "1973", } @Article{Eleuterio:82, author = "S. M. Eleut\'{e}rio and R. V. Mendes", title = "Note on Equivalence and Singularities: An Application of Computer Algebra", journal = "Journ. Comp. Phys.", year = "1982", volume = "48", pages = "150--156", } %GR equivalence, commenting on \AAman & Karlhede. @Article{Eliseev:85, author = "V. P. Eliseev and R. N. Fedorova and V. V. Kornyak", title = "A {REDUCE} Program for Determining Point and Contact {Lie} Symmetries of Differential Equations", journal = "Comp. Phys. Comm.", year = "1985", volume = "36", pages = "383--389", } %"A universal REDUCE program for obtaining the systems of %determining equations of the Lie algebra of point and contact %symmetries is proposed". @Article{Elishakoff:87, author = "Isaac Elishakoff and Joseph Hollkamp", title = "Computerized Symbolic Solution for a Nonconservative System in Which Instability Occurs by Flutter in One Range of a Parameter and by Divergence in Another", journal = "Comp. Methods in Applied Mechanics and Engineering", year = "1987", volume = "62", pages = "27--46", } %"...the problem is solved by the Galerkin method in conjunction with %computerized symbolic algebra". The system used is REDUCE. "It %carries out algebraic operations irrespective of their complexity". %Includes snatches of code and algebraic answers. Mainly %differentiation and substitution, plus a little integration. The %coefficients get rather large (18 digits or so). @Article{Elishakoff:87a, author = "Isaac Elishakoff and Brian Couch", title = "Application of Symbolic Algebra to the Instability of a Nonconservative System", journal = "J. Symbolic Computation", year = "1987", volume = "4", number = "3", pages = "391--396", month = dec, } @Article{Esteban:90, author = "E. P. Esteban and E. Ramos", title = "Algebraic computing and the {Newman-Penrose} formalism", journal = "Computers in Physics", year = "1990", pages = "285--290", month = may # "/" # jun, } @Article{Falck:89, author = "N. K. Falck and D. Graudenz and G. Kramer", title = "Cross section for {five-parton} production in $e^{+} e^{-}$ annihilation", journal = "Comp. Phys. Comm.", year = "1989", volume = "56", pages = "181--198", number = "2", month = dec, } @Article{Fazio:84, author = "P. M. Fazio and G. E. Copeland", title = "Cooper-Type Minima in Multipole Cross Sections of Atomic Hydrogen", journal = "Phys. Rev. Lett.", year = "1984", volume = "53", number = "2", month = jul, } @InProceedings{Fedorova:87, author = "R. N. Fedorova and V. P. Gerdt and N. N. Govorun and V. P. Shirikov", title = "Computer Algebra in Physical Research of {Joint Institute} for {Nuclear Research}", booktitle = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", year = "1987", volume = "378", pages = "1--10", publisher = "Springer-Verlag", } @InProceedings{Fedorova:87a, author = "R. N. Fedorova and V. V. Kornyak", title = "Computer Algebra Application for Determining Local Symmetries of Differential Equations", booktitle = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", year = "1987", volume = "378", pages = "174--175", publisher = "Springer-Verlag", } @Article{Feldmar:86, author = "E. Feldmar and K. S. {K\"{o}lbig}", title = "{REDUCE} Procedures for the Manipulation of Generalized Power Series", journal = "Comp. Phys. Comm.", year = "1986", volume = "39", pages = "267--284", } @Article{Feuillebois:84, author = "F. Feuillebois", title = "Sedimentation in a Dispersion with Vertical Inhomogenieties", journal = "Journ. Fluid Mech.", year = "1984", volume = "139", pages = "145--171", } %Uses REDUCE and INT to evaluate some integrals in the expansion of %1/s, a small quantity. @Article{Fitch:73, author = "John Fitch", title = "Problems \#3 and \#4 in {REDUCE} and {MACSYMA}", journal = "SIGSAM Bulletin", year = "1973", pages = "10--11", } %The algebra systems REDUCE and MACSYMA are used to solve SIGSAM %Problem \#3, the Reversion of a Double Series, and SIGSAM Problem \#4, %the Lie Transform Solution of the Harmonic Oscillator. @InProceedings{Fitch:81, author = "J. P. Fitch", title = "User-based Integration Software", booktitle = "Proc. 1981 {ACM} Symposium on Symbolic and Algebraic Computation", year = "1981", pages = "245--248", } @InProceedings{Fitch:83, author = "J. P. Fitch", title = "Implementing {REDUCE} on a Microprocessor", booktitle = "Proc. {EUROCAL} 1983, Lecture Notes in Computer Science", year = "1983", volume = "162", pages = "128--136", publisher = "Springer-Verlag", } @Article{Fitch:85, author = "J. P. Fitch", title = "Solving Algebraic Problems with {REDUCE}", journal = "J. of Symbolic Computation", year = "1985", volume = "1", number = "2", pages = "211--227", month = jun, } @InProceedings{Fitch:85a, author = "J. P. Fitch", title = "Applying Computer Algebra", booktitle = "International Conference on Computer Algebra and its Application in Theory", year = "1985", pages = "262--275", } @InProceedings{Fitch:87, author = "J. P. Fitch", title = "Utilisation du Calcul Formel", booktitle = "Calcul Formel et Automatique", editor = "P. Chenin", publisher = "Editions du {CNRS}", year = "1987", pages = "119--136", } @InProceedings{Fitch:87a, author = "J. P. Fitch and R. G. Hall", title = "Symbolic Computation and the Finite Element Method", booktitle = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", year = "1987", volume = "378", pages = "95--96", publisher = "Springer-Verlag", } @InProceedings{Fitch:89, author = "J. P. Fitch", title = "Can {REDUCE} be run in parallel?", booktitle = "Proc. of {ISSAC} '89", publisher = "{ACM} Press, New York", year = "1989", pages = "155--162", } @Article{Fitch:89a, author = "J. Fitch", title = "Compiling for Parallelism", journal = "Computer Algebra and Parallelism", editor = "J. Della Dora and J. Fitch", year = "1989", pages = "19--31", publisher = "Academic Press, London", } @TechReport{Flatau:86, author = "Piotr J. Flatau and John P. Boyd and William R. Cotton", title = "Symbolic Algebra in Applied Mathematics and Geophysical Fluid Dynamics - {REDUCE} Examples", institution = "Dept. of Atmospheric and Oceanic Science, University of Michigan, and Dept. of Atmospheric Science, Colorado State University", year = "1986", } @TechReport{Flath:86, author = "Dan Flath", title = "Remarks on Tensor Operators", institution = "National University of Singapore, Department of Mathematics", type = "Research Report", year = "1986", number = "266", month = jul, } @Article{Fleischer:71, author = "J. Fleischer", title = "Partial Wave Analysis of Nucleon-Nucleon {Bethe}-{Salpeter} Equation on the Computer", journal = "Journ. of Comp. Phys.", year = "1971", volume = "12", pages = "112--123", } @Article{Fleischer:73, author = "J. Fleischer and J. L. Gammel and M. T. Menzel", title = "Matrix {Pad\'{e}} Approximants for the {1SO}- and {3PO}- Partial Waves in Nucleon-Nucleon Scattering", journal = "Phys. Rev. D", year = "1973", volume = "8", pages = "1545--1552", } @Article{Fleischer:75, author = "J. Fleischer and J. A. Tjon", title = "Bethe-{Salpeter} Equation for {J}=0 Nucleon-Nucleon Scattering with One-Boson Exchange", journal = "Nuclear Physics", year = "1975", volume = "B84", pages = "375--396", } @Article{Fogelholm:82, author = "Rabbe Fogelholm and Inge B. Frick", title = "Standard {LISP} for the {VAX:} A Provisional Implementation", journal = "{SIGSAM} Bulletin", year = "1982", volume = "16", number = "4", pages = "10--12", month = nov, } @Article{Foster:89, author = "Kenneth R. Foster and Haim H. Bau", title = "Symbolic Manipulation Programs for the Personal Computer", journal = "Science", year = "1989", volume = "243", pages = "679--243", month = feb, } %Reviews several algebra programs that run on small machines. Doesn't %rate the PC version of REDUCE very highly because of the small workspace. @Article{Fox:71, author = "J. A. Fox", title = "Recalculation of the Crossed Graph Contribution to the 4th Order {Lamb} Shift", journal = "Phys. Rev. D", year = "1971", volume = "3", pages = "3228--3230", } @Article{Fox:74, author = "John A. Fox and Anthony C. Hearn", title = "Analytic Computation of Some Integrals in Fourth Order Quantum Electrodynamics", journal = "Journ. Comp. Phys.", year = "1974", volume = "14", pages = "301--317", } %A program for the analytic evaluation of some parametric integrals %which occur in fourth order QED calculations is described. @Article{Franceschetti:85, author = "G. Franceschetti and I. Pinto", title = "Nonlinear Propagation and Scattering: Analytical Solution and Symbolic Code Implementation", journal = "J. Opt. Soc. Am. A", year = "1985", volume = "2", pages = "997--1006", } %Volterra series using REDUCE. Perturbation expansions. @InProceedings{Freire:88, author = "E. Freire and E. Gamero and E. Ponce and L. G. Franquelo", title = "An Algorithm for Symbolic Computation of Center Manifolds", booktitle = "Proc. of {ISSAC} '88", publisher = "Springer-Verlag", year = "1988", volume = "358", pages = "218--230", } @InProceedings{Freire:89, author = "E. Freire and E. Gamero and E. Ponce", title = "An Algorithm for Symbolic Computation of {Hopf} Bifurcation", booktitle = "Proc. Computers and Mathematics '89", editor = "E. Kaltofen and S. M. Watt", year = "1989", pages = "109--118", publisher = "Springer-Verlag, New York", } @TechReport{Frick:82, author = "I. G. Frick and R. Fogelholm", title = "An Implementation of {Standard} {Lisp} Built on Top of {Franz Lisp}", institution = "University of Stockholm, Institute of Physics", year = "1982", type = "Report", month = apr, } %A Standard LISP system has been built for the VAX-11 %large-address-space computer by embedding the required %function definitions in the available Franz Lisp system %for VAX/UNIX. @Article{Fujimoto:84, author = "Y. Fujimoto and T. Garavaglia", title = "Phase Diagrams in {Scalar QED}", journal = "Physics Letters", year = "1984", volume = "148B", number = "1,2,3", pages = "220--224", month = nov, } @Article{Fuzio:85, author = "P. M. Fuzio and G. E. Copeland", title = "Partial Radiative-Recombination Cross Sections for Excited States of Hydrogen", journal = "Phys. Rev. A", year = "1985", volume = "31", number = "1", pages = "187--195", } %"The squares of the dipole and quadrupole matrix elements for the %free-to-bond transitions of hydrogen uptp high bound states are %derived in closed analytic form using a method suitable for computer %algebra". bibclean-3.07/test/okay/topt169.err0000444000156700015670000000000012470142674015761 0ustar beebebeebebibclean-3.07/test/okay/topt125.out0000444000156700015670000000000112470143212015756 0ustar beebebeebe bibclean-3.07/test/okay/topt321.err0000444000156700015670000000000012470142675015750 0ustar beebebeebebibclean-3.07/test/okay/testbib5.out0000444000156700015670000000356005650354435016313 0ustar beebebeebe@Misc{label, abstract = "\TeX{} ben{"o}tigt eine gro{"s}e Anzahl von Hilfskomponenten (Dateien und Programme), deren Bedeutung und gegenseitige \verb={"a}bc{"}=", abstract2 = "\TeX{} ben{"o}tigt eine gro{"s}e Anzahl von Hilfskomponenten (Dateien und Programme), deren Bedeutung und gegenseitige {\verb="abc"=}", note = "\TeX{} ben{\"o}tigt eine gro{\"s}e Anzahl von Hilfskomponenten (Dateien und Programme), deren Bedeutung und gegenseitige {\tt"}\verb=abc={\tt"}", note2 = "\TeX{} ben{\"o}tigt eine gro{\"s}e Anzahl von Hilfskomponenten (Dateien und Programme), deren Bedeutung und gegenseitige {\verb="abc"=}", verbatim1 = "\verb={"a}bc{"}", verbatim2 = "{\verb="abc"}", verbatim3 = "{\verb="abc"}", everything1 = "umlaut accents: {"a}, {"e}, {"i}, {"o}, {"u}, {"A}, {"E}, {"I}, {"O}, {"U},\\ sharp s: {"s},\\ German quotes: {"`} (left), {"'} (right),\\ French quotes: {"<} (left), {">} (right),\\ discretionary hyphens: ba{"c}ken, Bet{"t}uch, xx{"f}fxx\\ ligature separator: Auf{"|}lage,\\ super discretionary hyphen: Rechen{"-}fehler,\\ invisible hyphen: /usr{""}/spool{""}/news", everything2 = "{umlaut accents: "a, "e, "i, "o, "u, "A, "E, "I, "O, "U,\\ sharp s: "s,\\ German quotes: "` (left), "' (right),\\ French quotes: "< (left), "> (right),\\ discretionary hyphens: ba"cken, Bet"tuch, xx"ffxx\\ ligature separator: Auf"|lage,\\ super discretionary hyphen: Rechen"-fehler,\\ invisible hyphen: /usr""/spool""/news}", } bibclean-3.07/test/okay/topt159.out0000444000156700015670000000000112470143223015767 0ustar beebebeebe bibclean-3.07/test/okay/topt112.err0000444000156700015670000000000012470142672015743 0ustar beebebeebebibclean-3.07/test/okay/topt316.out0000444000156700015670000000000112470143224015763 0ustar beebebeebe bibclean-3.07/test/okay/topt160.err0000444000156700015670000000000012470142673015747 0ustar beebebeebebibclean-3.07/test/okay/topt364.out0000444000156700015670000000000112470143234015767 0ustar beebebeebe bibclean-3.07/test/okay/topt157.out0000444000156700015670000000000112470143222015764 0ustar beebebeebe bibclean-3.07/test/okay/topt353.err0000444000156700015670000000000012470142676015756 0ustar beebebeebebibclean-3.07/test/okay/testoptw.out0000444000156700015670000000477012317316140016454 0ustar beebebeebe @Misc{Blow:2013:Ea, author = "Jose Akim{\'a}", title = "{$ O(n l o g n) $} vs {$ O(n \log n) $}", expect = "{$ O(n l o g n) $} vs {$ O(n \log n) $}", year = "2013", } @Misc{Blow:2013:Eb, author = "Jose Akim{\'a}", title = "{$ P r(x > y) $} is wrong", expect = "{$ P r(x > y) $} is wrong", year = "2013", } @Misc{Blow:2013:Ec, author = "Jose Akim{\'a}", title = "{$ \Pr (x > y) $} is right", expect = "{$ \Pr (x > y) $} is right", year = "2013", } @Misc{Blow:2013:Ed, author = "Jose Akim{\'a}", title = "The {K\=oriyama} theorem for $ x >= 3 $", expect = "The {K\=oriyama} theorem for $ x > = 3 $", year = "2013", } @Misc{Blow:2013:Ee, author = "Jose Akim{\'a}", title = "The $ 11 \% $ solution", expect = "The $ 11 \% $ solution", year = "2013", } @Misc{Blow:2013:Ef, author = "Jose Akim{\'a}", title = "{Das ,,Benford-Gesetz'' {\"u}ber die Verteilung}", expect = "{Das ,,Benford-Gesetz'' {\"u}ber die Verteilung}", year = "2013", } @Misc{Blow:2013:Eg, author = "Jose Akim{\'a}", title = "The $ a,, b,, c $ list", expect = "The $ a,, b,, c $ list", year = "2013", } @Misc{Blow:2013:Eh, author = "Jose Akim{\'a}", title = "The sum of {$M$} modulo $1$ is large", expect = "The sum of {$M$} modulo $1$ is large", year = "2013", } @Misc{Blow:2013:Ei, author = "Jose Akim{\'a}", title = "Premi{\`e}res le{\c{c}}ons de math{\`e}matiques: $ a = b $", expect = "Premi{\`e}res le{\c{c}}ons de math{\`e}matiques: $ a = b $", year = "2013", } @Misc{Blow:2013:Ej, author = "Jose Akim{\'a}", title = "Universidad pontificia de Santo Tom\'as$^{123}$", expect = "Universidad pontificia de Santo Tom{\'a}s$^{123}$", year = "2013", } @Misc{Blow:2013:Ek, author = "Jose Akim{\'a}", title = "The $ \alpha { and } \beta $ study", expect = "The $ \alpha { and } \beta $ study", year = "2013", } @Misc{Blow:2013:El, author = "Jose Akim{\'a}", title = "The $ \alpha \hbox { and } \beta $ study", expect = "The $ \alpha \hbox { and } \beta $ study", year = "2013", } @Misc{Blow:2013:En, author = "Joe Blow", title = "The \$10 bet", expect = "The \$10 bet", year = "2013", } bibclean-3.07/test/okay/topt318.out0000444000156700015670000000000112470143224015765 0ustar beebebeebe bibclean-3.07/test/okay/testoptn.err0000444000156700015670000000113012071124047016407 0ustar beebebeebe%% testoptn.bib:11:Invalid checksum for ISSN 0302-9744 in ``ISSN = "0302-9744 (bad check digit), 1611-334X (bad check digit)"''. %% testoptn.bib:11:Invalid checksum for ISSN 1611-334X in ``ISSN = "0302-9744 (bad check digit), 1611-334X (bad check digit)"''. %% testoptn.bib:13:Invalid checksum for ISSN 0302-9742 in ``ISSN-L = "0302-9742 (bad check digit)"''. %% testoptn.bib:13:Unexpected ISSN-L field length in ``"0302-9742 (bad check digit)"''. %% testoptn.bib:15:Invalid checksum for ISSN 0302-9742 in ``ISSN-L = "03029742"''. %% testoptn.bib:15:Unexpected ISSN-L field length in ``"03029742"''. bibclean-3.07/test/okay/topt150.out0000444000156700015670000000000112470143221015754 0ustar beebebeebe bibclean-3.07/test/okay/topt354.err0000444000156700015670000000000012470142676015757 0ustar beebebeebebibclean-3.07/test/okay/testoptp.out0000444000156700015670000000220312071124050016424 0ustar beebebeebe@Article{okay-1, DOI = "http://dx.doi.org/10.1007/978-3-642-25704-9_1", } @Article{okay-2, URL = "http://link.springer.com/accesspage/chapter/10.1007/978-3-642-25704-9_1", } @Article{okay-3, book-DOI = "http://dx.doi.org/10.1007/978-3-642-25704-9", } @Article{okay-4, book-URL = "http://www.springerlink.com/content/978-3-642-25704-9", } @Article{bad-1, DOI = "http://link.springer.com/accesspage/chapter/10.1007/978-3-642-25704-9_1", } @Article{bad-2, URL = "http://dx.doi.org/10.1007/978-3-642-25704-9_1", } @Article{bad-3, book-DOI = "http://www.springerlink.com/content/978-3-642-25704-9", } @Article{bad-4, book-URL = "http://dx.doi.org/10.1007/978-3-642-25704-9", } @Article{bad-5, DOI = "http://dx.doi.org/10.1002/spe.2105; http://dx.doi.org/10.1002/spe.2106", } @Article{bad-6, URL = "http://dx.doi.org/10.1002/spe.2105; http://dx.doi.org/10.1002/spe.2106", } @Article{bad-7, URL = "rss://rss.example.com/web-feed/rich-site-summary", } @Article{bad-8, URL = "mailto:beebe@math.utah.edu", } bibclean-3.07/test/okay/testopti.err0000444000156700015670000000040312070605746016415 0ustar beebebeebeAuthor: Nelson H. F. Beebe University of Utah Department of Mathematics, 110 LCB 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA Tel: +1 801 581 5254 FAX: +1 801 581 4148 Email: beebe@math.utah.edu, beebe@acm.org, beebe@computer.org (Internet) bibclean-3.07/test/okay/testopt7.out0000444000156700015670000000000107342757230016346 0ustar beebebeebe bibclean-3.07/test/okay/topt328.err0000444000156700015670000000000012470142675015757 0ustar beebebeebebibclean-3.07/test/okay/topt167.err0000444000156700015670000000000012470142674015757 0ustar beebebeebebibclean-3.07/test/okay/topt363.out0000444000156700015670000000000112470143233015765 0ustar beebebeebe bibclean-3.07/test/okay/match.out0000444000156700015670000116171207011374454015667 0ustar beebebeebe%% 1 [%% /u/sy/beebe/tex/bibclean/2-11/match.dat, Fri May 3 07:05:42 1996]: ignored %% 2 [%% Edit by Nelson H. F. Beebe ]: ignored %% 3 [%% This is a test file for match]: ignored ?? 4 ["" ]: illegal value %% 5 ["02 " # apr ]: matches "10 " # oct %% 6 ["03 " # apr ]: matches "10 " # oct %% 7 ["03 " # jul ]: matches "10 " # oct %% 8 ["05 " # apr ]: matches "10 " # oct %% 9 ["05 " # dec ]: matches "10 " # oct %% 10 ["05 " # feb ]: matches "10 " # oct %% 11 ["05 " # jan ]: matches "10 " # oct %% 12 ["05 " # jul ]: matches "10 " # oct %% 13 ["05 " # jun ]: matches "10 " # oct %% 14 ["05 " # mar ]: matches "10 " # oct %% 15 ["05 " # may ]: matches "10 " # oct %% 16 ["05 " # nov ]: matches "10 " # oct %% 17 ["05 " # oct ]: matches "10 " # oct %% 18 ["05 " # sep ]: matches "10 " # oct %% 19 ["07 " # nov ]: matches "10 " # oct %% 20 ["08 " # apr ]: matches "10 " # oct %% 21 ["08 " # mar ]: matches "10 " # oct %% 22 ["08 " # nov ]: matches "10 " # oct %% 23 ["09 " # dec ]: matches "10 " # oct %% 24 ["09 " # jul ]: matches "10 " # oct %% 25 ["09 " # jun ]: matches "10 " # oct %% 26 ["09 " # may ]: matches "10 " # oct %% 27 ["09 " # nov ]: matches "10 " # oct ?? 28 ["1-3," ]: illegal value %% 29 ["10 " # aug ]: matches "10 " # oct %% 30 ["10 " # dec ]: matches "10 " # oct %% 31 ["10 " # feb ]: matches "10 " # oct %% 32 ["10 " # jun ]: matches "10 " # oct %% 33 ["10 " # mar ]: matches "10 " # oct %% 34 ["10 " # nov ]: matches "10 " # oct %% 35 ["10--11 " # mar ]: matches "10--24 " # oct %% 36 ["11 " # feb ]: matches "10 " # oct %% 37 ["11 " # jun ]: matches "10 " # oct %% 38 ["11 " # mar ]: matches "10 " # oct %% 39 ["11 " # may ]: matches "10 " # oct %% 40 ["11 " # nov ]: matches "10 " # oct ?? 41 ["11--12~" # sep ]: illegal value ?? 42 ["11-12 " # jan ]: illegal value %% 43 ["12 " # dec ]: matches "10 " # oct %% 44 ["12 " # jul ]: matches "10 " # oct %% 45 ["12 " # may ]: matches "10 " # oct %% 46 ["12 " # sep ]: matches "10 " # oct ?? 47 ["12--13~" # nov ]: illegal value %% 48 ["13 " # dec ]: matches "10 " # oct %% 49 ["13 " # oct ]: matches "10 " # oct %% 50 ["14 " # apr ]: matches "10 " # oct %% 51 ["14 " # feb ]: matches "10 " # oct %% 52 ["14 " # jan ]: matches "10 " # oct %% 53 ["14 " # sep ]: matches "10 " # oct %% 54 ["15 " # apr ]: matches "10 " # oct %% 55 ["15 " # feb ]: matches "10 " # oct %% 56 ["15 " # jan ]: matches "10 " # oct %% 57 ["15 " # jul ]: matches "10 " # oct %% 58 ["15 " # jun ]: matches "10 " # oct %% 59 ["15 " # may ]: matches "10 " # oct %% 60 ["15 " # oct ]: matches "10 " # oct ?? 61 ["15~" # sep ]: illegal value %% 62 ["16 " # apr ]: matches "10 " # oct ?? 63 ["16~" # nov ]: illegal value %% 64 ["17 " # apr ]: matches "10 " # oct %% 65 ["17 " # dec ]: matches "10 " # oct %% 66 ["17 " # may ]: matches "10 " # oct ?? 67 ["17--21" # jun ]: illegal value %% 68 ["18 " # mar ]: matches "10 " # oct %% 69 ["18 " # oct ]: matches "10 " # oct %% 70 ["19 " # jun ]: matches "10 " # oct %% 71 ["19 " # nov ]: matches "10 " # oct %% 72 ["19 " # oct ]: matches "10 " # oct ?? 73 ["1988 3 vol. xxxix+" ]: illegal value ?? 74 ["1988" ]: illegal value ?? 75 ["1990-" ]: illegal value ?? 76 ["1991 2 vol. xxi+" ]: illegal value ?? 77 ["1992 2 vol. xlix+" ]: illegal value ?? 78 ["1992 3 vol. lvii+" ]: illegal value ?? 79 ["1992 3 vol. xlviii+" ]: illegal value ?? 80 ["1993 2 vol. xxxv+" ]: illegal value ?? 81 ["1993 2 vol." ]: illegal value ?? 82 ["1~" # jul ]: illegal value %% 83 ["20 " # aug ]: matches "10 " # oct %% 84 ["20 " # dec ]: matches "10 " # oct %% 85 ["20 " # jan ]: matches "10 " # oct ?? 86 ["20--24~" # mar ]: illegal value %% 87 ["21 " # dec ]: matches "10 " # oct %% 88 ["21 " # jan ]: matches "10 " # oct %% 89 ["21--25 " # jun ]: matches "10--24 " # oct %% 90 ["21--25 " # oct ]: matches "10--24 " # oct %% 91 ["22 " # mar ]: matches "10 " # oct %% 92 ["23 " # dec ]: matches "10 " # oct %% 93 ["23 " # feb ]: matches "10 " # oct ?? 94 ["23--24~" # nov ]: illegal value %% 95 ["24 " # aug ]: matches "10 " # oct %% 96 ["24 " # feb ]: matches "10 " # oct %% 97 ["24 " # jul ]: matches "10 " # oct %% 98 ["24 " # mar ]: matches "10 " # oct ?? 99 ["24--28~" # jul ]: illegal value %% 100 ["24--29 " # jul ]: matches "10--24 " # oct ?? 101 ["24~" # aug ]: illegal value %% 102 ["25 " # feb ]: matches "10 " # oct %% 103 ["25 " # jan ]: matches "10 " # oct %% 104 ["25 " # jun ]: matches "10 " # oct %% 105 ["25 " # may ]: matches "10 " # oct %% 106 ["26 " # feb ]: matches "10 " # oct %% 107 ["26 " # jul ]: matches "10 " # oct %% 108 ["26 " # may ]: matches "10 " # oct %% 109 ["26 " # sep ]: matches "10 " # oct ?? 110 ["26~" # jun # "--" # "2~" # jul]: illegal value %% 111 ["27 " # apr ]: matches "10 " # oct %% 112 ["27 " # jan ]: matches "10 " # oct %% 113 ["27 " # jun ]: matches "10 " # oct %% 114 ["27 " # sep ]: matches "10 " # oct %% 115 ["27--29 " # jul ]: matches "10--24 " # oct ?? 116 ["27~" # nov # "--" # "1~" # dec]: illegal value %% 117 ["28 " # dec ]: matches "10 " # oct %% 118 ["28 " # feb ]: matches "10 " # oct %% 119 ["28 " # jan ]: matches "10 " # oct %% 120 ["28 " # may ]: matches "10 " # oct %% 121 ["28 " # oct ]: matches "10 " # oct %% 122 ["28 " # sep ]: matches "10 " # oct %% 123 ["29 " # apr ]: matches "10 " # oct %% 124 ["29 " # may ]: matches "10 " # oct %% 125 ["29 " # nov ]: matches "10 " # oct ?? 126 ["2~" # dec ]: illegal value %% 127 ["30 " # apr ]: matches "10 " # oct %% 128 ["30 " # aug ]: matches "10 " # oct %% 129 ["30 " # dec ]: matches "10 " # oct %% 130 ["30 " # nov ]: matches "10 " # oct %% 131 ["30 " # sep ]: matches "10 " # oct %% 132 ["31 " # aug ]: matches "10 " # oct ?? 133 ["31~" # aug # "--" # "2~" # sep]: illegal value ?? 134 ["4--6~" # mar ]: illegal value %% 135 ["5--8 " # apr ]: matches "10--24 " # oct %% 136 ["6 " # nov ]: matches "10 " # oct ?? 137 ["7--10~" # sep ]: illegal value %% 138 ["9 " # may ]: matches "10 " # oct ?? 139 ["??" ]: illegal value ?? 140 ["????" ]: illegal value ?? 141 ["August and November" ]: illegal value ?? 142 ["Autumn" ]: illegal value ?? 143 ["December 1," ]: illegal value ?? 144 ["December 3," ]: illegal value ?? 145 ["December 6," ]: illegal value ?? 146 ["Fall" ]: illegal value ?? 147 ["February and May" ]: illegal value ?? 148 ["January" ]: illegal value ?? 149 ["January/February" ]: illegal value ?? 150 ["June and July" ]: illegal value ?? 151 ["March 27," ]: illegal value ?? 152 ["March~5," ]: illegal value ?? 153 ["May \& July" ]: illegal value ?? 154 ["May/June" ]: illegal value ?? 155 ["November 19, " ]: illegal value ?? 156 ["November and February" ]: illegal value ?? 157 ["Spring" ]: illegal value ?? 158 ["Summer" ]: illegal value ?? 159 ["Winter 1992-" ]: illegal value ?? 160 ["Winter" ]: illegal value ?? 161 ["avril" ]: illegal value ?? 162 ["decembre" ]: illegal value ?? 163 ["d{\'{e}}cembre" ]: illegal value ?? 164 ["juillet" ]: illegal value ?? 165 ["lipiec" ]: illegal value ?? 166 ["mai" ]: illegal value ?? 167 ["mars" ]: illegal value ?? 168 ["may" ]: illegal value ?? 169 ["novembre" ]: illegal value ?? 170 ["octobre" ]: illegal value ?? 171 ["septembre" ]: illegal value ?? 172 [ month = Aug ]: illegal value ?? 173 [ month = Mar ]: illegal value ?? 174 [ month = Oct ]: illegal value ?? 175 [" 1" ]: illegal value ?? 176 [" 11-14" ]: illegal value ?? 177 [" 15" ]: illegal value ?? 178 [" 16" ]: illegal value ?? 179 [" 19-22" ]: illegal value ?? 180 [" 19-23" ]: illegal value ?? 181 [" 23" ]: illegal value ?? 182 ["-" # may ]: illegal value ?? 183 ["--" # jun ]: illegal value ?? 184 ["/" # jul ]: illegal value ?? 185 ["/" # may ]: illegal value ?? 186 ["\slash " # jun ]: illegal value ?? 187 [ month = apr ]: illegal value ?? 188 [" 12" ]: illegal value ?? 189 [" 15" ]: illegal value ?? 190 [" 20" ]: illegal value ?? 191 [" 22" ]: illegal value ?? 192 [" 23" ]: illegal value ?? 193 [" 25" ]: illegal value ?? 194 [" 27-" # sep # " 2" ]: illegal value ?? 195 [" 28-31, 1989" ]: illegal value ?? 196 [" 3" ]: illegal value ?? 197 [" 31" ]: illegal value ?? 198 [" 5" ]: illegal value ?? 199 [" 8" ]: illegal value ?? 200 [" 9--11" ]: illegal value ?? 201 ["-" # sep ]: illegal value ?? 202 ["--" # sep ]: illegal value ?? 203 ["/" # nov ]: illegal value ?? 204 ["\slash " # nov ]: illegal value ?? 205 ["\slash " # sep ]: illegal value ?? 206 [ month = aug ]: illegal value ?? 207 [" 10" ]: illegal value ?? 208 [" 14" ]: illegal value ?? 209 [" 15" ]: illegal value ?? 210 [" 23" ]: illegal value ?? 211 [" 3" ]: illegal value ?? 212 [" 5" ]: illegal value ?? 213 ["13-18" ]: illegal value ?? 214 ["\slash " # jan ]: illegal value ?? 215 [ month = dec ]: illegal value ?? 216 [" 04" ]: illegal value ?? 217 [" 07" ]: illegal value ?? 218 [" 11" ]: illegal value ?? 219 [" 12" ]: illegal value ?? 220 [" 14" ]: illegal value ?? 221 [" 15" ]: illegal value ?? 222 [" 16" ]: illegal value ?? 223 [" 17" ]: illegal value ?? 224 [" 2-6" ]: illegal value ?? 225 [" 27" ]: illegal value ?? 226 [" 5" ]: illegal value ?? 227 [" 8" ]: illegal value ?? 228 ["/" # mar ]: illegal value ?? 229 ["/" # may ]: illegal value ?? 230 ["\slash " # mar ]: illegal value ?? 231 ["\slash " # may ]: illegal value ?? 232 ["~14" ]: illegal value ?? 233 ["~6" ]: illegal value ?? 234 [ month = feb ]: illegal value ?? 235 [" -- " # mar ]: illegal value ?? 236 [" 11" ]: illegal value ?? 237 [" 13" ]: illegal value ?? 238 [" 16" ]: illegal value ?? 239 [" 17" ]: illegal value ?? 240 [" 22" ]: illegal value ?? 241 [" 23 -- " # feb # " 2" ]: illegal value ?? 242 [" 25" ]: illegal value ?? 243 ["-" # feb ]: illegal value ?? 244 ["--" # feb ]: illegal value ?? 245 ["/" # feb ]: illegal value ?? 246 ["/" # feb ]: illegal value ?? 247 ["\slash " # feb # "," ]: illegal value ?? 248 ["\slash " # feb ]: illegal value ?? 249 ["\slash " # mar ]: illegal value ?? 250 [ month = jan ]: illegal value ?? 251 [" (?? or " # sep # ")" ]: illegal value ?? 252 [" 1" ]: illegal value ?? 253 [" 13" ]: illegal value ?? 254 [" 1969 to " # dec # " 1970"]: illegal value ?? 255 [" 20" ]: illegal value ?? 256 [" 25" ]: illegal value ?? 257 [" 25--27" ]: illegal value ?? 258 [" 26" ]: illegal value ?? 259 [" 28-29" ]: illegal value ?? 260 [" 3" ]: illegal value ?? 261 [" 4-6" ]: illegal value ?? 262 [" 4-8" ]: illegal value ?? 263 [" 9" ]: illegal value ?? 264 ["-" # aug ]: illegal value ?? 265 ["-" # oct ]: illegal value ?? 266 ["--" # aug ]: illegal value ?? 267 ["--" # sep ]: illegal value ?? 268 ["/" # aug ]: illegal value ?? 269 ["\emdash " # aug ]: illegal value ?? 270 ["\slash " # aug ]: illegal value ?? 271 ["\slash " # sep ]: illegal value ?? 272 ["\slash{}" # aug ]: illegal value ?? 273 [ month = jul ]: illegal value ?? 274 [" 04" ]: illegal value ?? 275 [" 10" ]: illegal value ?? 276 [" 12" ]: illegal value ?? 277 [" 12--15" ]: illegal value ?? 278 [" 14" ]: illegal value ?? 279 [" 2-6" ]: illegal value ?? 280 [" 20--24" ]: illegal value ?? 281 [" 21-23" ]: illegal value ?? 282 [" 26-29" ]: illegal value ?? 283 [" 28" ]: illegal value ?? 284 [" 30" ]: illegal value ?? 285 [" 4" ]: illegal value ?? 286 [" 5" ]: illegal value ?? 287 ["\slash " # jul ]: illegal value ?? 288 ["~5" ]: illegal value ?? 289 [ month = jun ]: illegal value ?? 290 [" 13" ]: illegal value ?? 291 [" 15" ]: illegal value ?? 292 [" 18" ]: illegal value ?? 293 [" 21" ]: illegal value ?? 294 [" 23" ]: illegal value ?? 295 [" 25--28" ]: illegal value ?? 296 [" 27" ]: illegal value ?? 297 [" 29" ]: illegal value ?? 298 [" 3" ]: illegal value ?? 299 [" 4" ]: illegal value ?? 300 [" 7--10" ]: illegal value ?? 301 [" 9" ]: illegal value ?? 302 ["-" # apr ]: illegal value ?? 303 ["-" # dec ]: illegal value ?? 304 ["--" # apr ]: illegal value ?? 305 ["--" # dec ]: illegal value ?? 306 ["/" # apr ]: illegal value ?? 307 ["\slash " # apr ]: illegal value ?? 308 ["\slash " # may ]: illegal value ?? 309 [ month = mar ]: illegal value ?? 310 [" -- " # jun ]: illegal value ?? 311 [" 10-12" ]: illegal value ?? 312 [" 11" ]: illegal value ?? 313 [" 13" ]: illegal value ?? 314 [" 14" ]: illegal value ?? 315 [" 15" ]: illegal value ?? 316 [" 17" ]: illegal value ?? 317 [" 18" ]: illegal value ?? 318 [" 22" ]: illegal value ?? 319 [" 23" ]: illegal value ?? 320 [" 28" ]: illegal value ?? 321 [" 3" ]: illegal value ?? 322 [" 4-8" ]: illegal value ?? 323 [" 5" ]: illegal value ?? 324 [" 7" ]: illegal value ?? 325 [" 8-12" ]: illegal value ?? 326 [" 9" ]: illegal value ?? 327 ["-" # jun # " (or March??)"]: illegal value ?? 328 ["-" # jun ]: illegal value ?? 329 ["--" # june ]: illegal value ?? 330 ["/" # jul ]: illegal value ?? 331 ["/" # jun ]: illegal value ?? 332 ["\slash " # jun # "," ]: illegal value ?? 333 ["\slash " # jun ]: illegal value ?? 334 [ month = may ]: illegal value ?? 335 [" 15" ]: illegal value ?? 336 [" 24" ]: illegal value ?? 337 [" 3" ]: illegal value ?? 338 [" 30" ]: illegal value ?? 339 [" 4" ]: illegal value ?? 340 [" 8" ]: illegal value ?? 341 [" 9-11" ]: illegal value ?? 342 [" and " # feb ]: illegal value ?? 343 ["-" # dec ]: illegal value ?? 344 ["/" # dec ]: illegal value ?? 345 ["\slash " # dec ]: illegal value ?? 346 ["\slash " # feb ]: illegal value ?? 347 [ month = nov ]: illegal value ?? 348 [" 07" ]: illegal value ?? 349 [" 1" ]: illegal value ?? 350 [" 10" ]: illegal value ?? 351 [" 15" ]: illegal value ?? 352 [" 16" ]: illegal value ?? 353 [" 2" ]: illegal value ?? 354 [" 28" ]: illegal value ?? 355 [" 31" ]: illegal value ?? 356 ["-" # dec ]: illegal value ?? 357 ["-" # nov ]: illegal value ?? 358 ["--" # dec ]: illegal value ?? 359 ["/" # nov ]: illegal value ?? 360 ["\slash " # dec ]: illegal value ?? 361 ["\slash " # nov ]: illegal value ?? 362 ["~28" ]: illegal value ?? 363 [ month = oct ]: illegal value ?? 364 [" 1" ]: illegal value ?? 365 [" 18" ]: illegal value ?? 366 [" 21" ]: illegal value ?? 367 [" 23" ]: illegal value ?? 368 [" 24" ]: illegal value ?? 369 [" 25-" # oct # " 1" ]: illegal value ?? 370 [" 27" ]: illegal value ?? 371 [" 28" ]: illegal value ?? 372 [" 28-29" ]: illegal value ?? 373 [" 4" ]: illegal value ?? 374 [" 6" ]: illegal value ?? 375 [" or " # jun # "??" ]: illegal value ?? 376 ["-" # dec ]: illegal value ?? 377 ["-" # nov ]: illegal value ?? 378 ["-" # oct ]: illegal value ?? 379 ["--" # oct ]: illegal value ?? 380 ["/" # oct ]: illegal value ?? 381 ["\slash " # oct ]: illegal value ?? 382 [ month = sep ]: illegal value %% 383 [ ]: ignored %% 384 [ ]: ignored ?? 385 ["" ]: illegal value ?? 386 ["(1-2)" ]: illegal value ?? 387 ["(89/7)" ]: illegal value ?? 388 ["(XIII) 6" ]: illegal value ?? 389 ["(in preparation)" ]: illegal value ?? 390 ["(to appear)" ]: illegal value %% 391 ["0" ]: matches 23 %% 392 ["001" ]: matches 23 %% 393 ["0236" ]: matches 23 %% 394 ["027.07.1988" ]: matches TR/AB/3-43.7-3/AB %% 395 ["07-11-81" ]: matches TR/AB/3-43.7-3/AB %% 396 ["07-27-76" ]: matches TR/AB/3-43.7-3/AB %% 397 ["07-28-76" ]: matches TR/AB/3-43.7-3/AB %% 398 ["07-30-79" ]: matches TR/AB/3-43.7-3/AB %% 399 ["07.95" ]: matches 3.4 %% 400 ["1 \& 2" ]: matches Computer Science Report 100 %% 401 ["1 and 2" ]: matches 11 and 12 %% 402 ["1" ]: matches 23 %% 403 ["1(1)" ]: matches TR/AB/3-43.7-3/AB %% 404 ["1+8" ]: matches 3+4 %% 405 ["1, (part 2)" ]: matches TR/AB/3-43.7-3/AB %% 406 ["1, 3" ]: matches TR/AB/3-43.7-3/AB %% 407 ["1,2" ]: matches TR/AB/3-43.7-3/AB %% 408 ["1,2,3" ]: matches TR/AB/3-43.7-3/AB %% 409 ["1--2" ]: matches TR/AB/3-43.7-3/AB %% 410 ["1--3" ]: matches TR/AB/3-43.7-3/AB %% 411 ["1--4" ]: matches TR/AB/3-43.7-3/AB %% 412 ["1--5" ]: matches TR/AB/3-43.7-3/AB %% 413 ["1--ABR/86" ]: matches TR/AB/3-43.7-3/AB %% 414 ["1-2" ]: matches 23-27 %% 415 ["1-23-84" ]: matches TR/AB/3-43.7-3/AB %% 416 ["1-3" ]: matches 23-27 %% 417 ["1-4" ]: matches 23-27 %% 418 ["1-5" ]: matches 23-27 %% 419 ["1-6" ]: matches 23-27 %% 420 ["1.0" ]: matches 3.4 %% 421 ["1.3" ]: matches 3.4 %% 422 ["1/2" ]: matches 23/27 %% 423 ["1/89" ]: matches 23/27 %% 424 ["10" ]: matches 23 %% 425 ["10--11" ]: matches TR/AB/3-43.7-3/AB %% 426 ["10-11" ]: matches 23-27 %% 427 ["10-12" ]: matches 23-27 %% 428 ["100" ]: matches 23 %% 429 ["1000" ]: matches 23 %% 430 ["1004" ]: matches 23 %% 431 ["1005" ]: matches 23 %% 432 ["101" ]: matches 23 %% 433 ["1012" ]: matches 23 %% 434 ["10159" ]: matches 23 %% 435 ["101614" ]: matches 23 %% 436 ["102" ]: matches 23 %% 437 ["1020" ]: matches 23 %% 438 ["1025" ]: matches 23 %% 439 ["1029" ]: matches 23 %% 440 ["103" ]: matches 23 %% 441 ["1033" ]: matches 23 %% 442 ["104" ]: matches 23 %% 443 ["104237" ]: matches 23 %% 444 ["104612" ]: matches 23 %% 445 ["1048" ]: matches 23 %% 446 ["105" ]: matches 23 %% 447 ["1054" ]: matches 23 %% 448 ["1055" ]: matches 23 %% 449 ["106" ]: matches 23 %% 450 ["1065" ]: matches 23 %% 451 ["107" ]: matches 23 %% 452 ["108" ]: matches 23 %% 453 ["1084" ]: matches 23 %% 454 ["1088" ]: matches 23 %% 455 ["109" ]: matches 23 %% 456 ["1097" ]: matches 23 %% 457 ["10A" ]: matches 23A %% 458 ["11 and 12" ]: matches 11 and 12 %% 459 ["11" ]: matches 23 %% 460 ["11-12" ]: matches 23-27 %% 461 ["11/12" ]: matches 23/27 %% 462 ["11/145" ]: matches 23/27 %% 463 ["110" ]: matches 23 %% 464 ["1100" ]: matches 23 %% 465 ["1103" ]: matches 23 %% 466 ["1105" ]: matches 23 %% 467 ["111" ]: matches 23 %% 468 ["112" ]: matches 23 %% 469 ["1123" ]: matches 23 %% 470 ["113" ]: matches 23 %% 471 ["1136" ]: matches 23 %% 472 ["114" ]: matches 23 %% 473 ["1140" ]: matches 23 %% 474 ["1141" ]: matches 23 %% 475 ["11483" ]: matches 23 %% 476 ["115" ]: matches 23 %% 477 ["116" ]: matches 23 %% 478 ["116, SSA 11-11500" ]: matches TR/AB/3-43.7-3/AB %% 479 ["1168" ]: matches 23 %% 480 ["117" ]: matches 23 %% 481 ["118" ]: matches 23 %% 482 ["118-87" ]: matches 23-27 %% 483 ["119" ]: matches 23 %% 484 ["12 (9119)" ]: matches TR/AB/3-43.7-3/AB %% 485 ["12" ]: matches 23 %% 486 ["12-83" ]: matches 23-27 %% 487 ["12-93" ]: matches 23-27 %% 488 ["12.2.6" ]: matches TR/AB/3-43.7-3/AB %% 489 ["120" ]: matches 23 %% 490 ["1200" ]: matches 23 %% 491 ["121-5" ]: matches 23-27 %% 492 ["121-6" ]: matches 23-27 %% 493 ["1210" ]: matches 23 %% 494 ["1212" ]: matches 23 %% 495 ["1213" ]: matches 23 %% 496 ["1215" ]: matches 23 %% 497 ["122" ]: matches 23 %% 498 ["1225/1225a" ]: matches TR/AB/3-43.7-3/AB %% 499 ["123" ]: matches 23 %% 500 ["124" ]: matches 23 %% 501 ["1242" ]: matches 23 %% 502 ["125" ]: matches 23 %% 503 ["1259" ]: matches 23 %% 504 ["126" ]: matches 23 %% 505 ["1268" ]: matches 23 %% 506 ["127" ]: matches 23 %% 507 ["1274" ]: matches 23 %% 508 ["1278" ]: matches 23 %% 509 ["128" ]: matches 23 %% 510 ["129" ]: matches 23 %% 511 ["12A" ]: matches 23A %% 512 ["12B" ]: matches 23A %% 513 ["13" ]: matches 23 %% 514 ["13, section B" ]: matches TR/AB/3-43.7-3/AB %% 515 ["130" ]: matches 23 %% 516 ["1302" ]: matches 23 %% 517 ["1307" ]: matches 23 %% 518 ["131" ]: matches 23 %% 519 ["131M" ]: matches 23A %% 520 ["132" ]: matches 23 %% 521 ["1328" ]: matches 23 %% 522 ["133" ]: matches 23 %% 523 ["1332" ]: matches 23 %% 524 ["1333" ]: matches 23 %% 525 ["1334" ]: matches 23 %% 526 ["1343" ]: matches 23 %% 527 ["1344" ]: matches 23 %% 528 ["1346" ]: matches 23 %% 529 ["135" ]: matches 23 %% 530 ["1356" ]: matches 23 %% 531 ["136" ]: matches 23 %% 532 ["1366" ]: matches 23 %% 533 ["137" ]: matches 23 %% 534 ["138" ]: matches 23 %% 535 ["14" ]: matches 23 %% 536 ["14.2.2" ]: matches TR/AB/3-43.7-3/AB %% 537 ["14/92" ]: matches 23/27 %% 538 ["141" ]: matches 23 %% 539 ["142" ]: matches 23 %% 540 ["1420" ]: matches 23 %% 541 ["1428" ]: matches 23 %% 542 ["143" ]: matches 23 %% 543 ["144" ]: matches 23 %% 544 ["145" ]: matches 23 %% 545 ["1454" ]: matches 23 %% 546 ["1458" ]: matches 23 %% 547 ["1460" ]: matches 23 %% 548 ["1469" ]: matches 23 %% 549 ["147" ]: matches 23 %% 550 ["1470" ]: matches 23 %% 551 ["1471" ]: matches 23 %% 552 ["1474" ]: matches 23 %% 553 ["148" ]: matches 23 %% 554 ["149" ]: matches 23 %% 555 ["14A" ]: matches 23A %% 556 ["14B" ]: matches 23A %% 557 ["15" ]: matches 23 %% 558 ["150" ]: matches 23 %% 559 ["1505" ]: matches 23 %% 560 ["1506" ]: matches 23 %% 561 ["151" ]: matches 23 %% 562 ["1518" ]: matches 23 %% 563 ["152" ]: matches 23 %% 564 ["1532" ]: matches 23 %% 565 ["1545" ]: matches 23 %% 566 ["1548" ]: matches 23 %% 567 ["155" ]: matches 23 %% 568 ["1555" ]: matches 23 %% 569 ["1556" ]: matches 23 %% 570 ["156" ]: matches 23 %% 571 ["1563" ]: matches 23 %% 572 ["157" ]: matches 23 %% 573 ["158" ]: matches 23 %% 574 ["1585" ]: matches 23 %% 575 ["1586" ]: matches 23 %% 576 ["159" ]: matches 23 %% 577 ["16" ]: matches 23 %% 578 ["16-92" ]: matches 23-27 %% 579 ["16/92" ]: matches 23/27 %% 580 ["160" ]: matches 23 %% 581 ["161" ]: matches 23 %% 582 ["161/84" ]: matches 23/27 %% 583 ["162" ]: matches 23 %% 584 ["163" ]: matches 23 %% 585 ["165" ]: matches 23 %% 586 ["166" ]: matches 23 %% 587 ["167" ]: matches 23 %% 588 ["168" ]: matches 23 %% 589 ["1680" ]: matches 23 %% 590 ["1686" ]: matches 23 %% 591 ["169" ]: matches 23 %% 592 ["1690" ]: matches 23 %% 593 ["1697" ]: matches 23 %% 594 ["17" ]: matches 23 %% 595 ["17-92" ]: matches 23-27 %% 596 ["170" ]: matches 23 %% 597 ["1704" ]: matches 23 %% 598 ["1705" ]: matches 23 %% 599 ["171" ]: matches 23 %% 600 ["171.2R" ]: matches TR/AB/3-43.7-3/AB %% 601 ["172" ]: matches 23 %% 602 ["172205" ]: matches 23 %% 603 ["1729" ]: matches 23 %% 604 ["173" ]: matches 23 %% 605 ["1731" ]: matches 23 %% 606 ["1732" ]: matches 23 %% 607 ["174" ]: matches 23 %% 608 ["17414 JSC" ]: matches Computer Science Report 100 %% 609 ["17477" ]: matches 23 %% 610 ["175" ]: matches 23 %% 611 ["1755" ]: matches 23 %% 612 ["1758/92" ]: matches 23/27 %% 613 ["176" ]: matches 23 %% 614 ["1769" ]: matches 23 %% 615 ["178" ]: matches 23 %% 616 ["1782" ]: matches 23 %% 617 ["179" ]: matches 23 %% 618 ["1796" ]: matches 23 %% 619 ["18" ]: matches 23 %% 620 ["18-26" ]: matches 23-27 %% 621 ["18-94" ]: matches 23-27 %% 622 ["180" ]: matches 23 %% 623 ["1807" ]: matches 23 %% 624 ["181" ]: matches 23 %% 625 ["182" ]: matches 23 %% 626 ["1825" ]: matches 23 %% 627 ["1838" ]: matches 23 %% 628 ["1846-79" ]: matches 23-27 %% 629 ["1846-98" ]: matches 23-27 %% 630 ["1846-99" ]: matches 23-27 %% 631 ["1848-1854" ]: matches 23-27 %% 632 ["185" ]: matches 23 %% 633 ["186" ]: matches 23 %% 634 ["1860" ]: matches 23 %% 635 ["1868" ]: matches 23 %% 636 ["187" ]: matches 23 %% 637 ["187590 4004291034" ]: matches Computer Science Report 100 %% 638 ["188" ]: matches 23 %% 639 ["189" ]: matches 23 %% 640 ["1892" ]: matches 23 %% 641 ["19" ]: matches 23 %% 642 ["19-94" ]: matches 23-27 %% 643 ["190" ]: matches 23 %% 644 ["1901" ]: matches 23 %% 645 ["1907" ]: matches 23 %% 646 ["1908" ]: matches 23 %% 647 ["191" ]: matches 23 %% 648 ["1923" ]: matches 23 %% 649 ["193" ]: matches 23 %% 650 ["194" ]: matches 23 %% 651 ["194-82 GJBX" ]: matches TR/AB/3-43.7-3/AB %% 652 ["1944" ]: matches 23 %% 653 ["195" ]: matches 23 %% 654 ["1958" ]: matches 23 %% 655 ["196" ]: matches 23 %% 656 ["1967-2" ]: matches 23-27 %% 657 ["1969-42" ]: matches 23-27 %% 658 ["197" ]: matches 23 %% 659 ["1972-43" ]: matches 23-27 %% 660 ["1973/2" ]: matches 23/27 %% 661 ["1976" ]: matches 23 %% 662 ["1977-1" ]: matches 23-27 %% 663 ["1979-18" ]: matches 23-27 %% 664 ["1979-3" ]: matches 23-27 %% 665 ["1979-4" ]: matches 23-27 %% 666 ["1979-5" ]: matches 23-27 %% 667 ["1980-02-20" ]: matches TR/AB/3-43.7-3/AB %% 668 ["1982/IE/1" ]: matches TR/AB/3-43.7-3/AB %% 669 ["1985/OR/2" ]: matches TR/AB/3-43.7-3/AB %% 670 ["1985/OR/5" ]: matches TR/AB/3-43.7-3/AB %% 671 ["1986/11-524" ]: matches TR/AB/3-43.7-3/AB %% 672 ["199" ]: matches 23 %% 673 ["1991-01" ]: matches 23-27 %% 674 ["1992/35" ]: matches 23/27 %% 675 ["1993-08" ]: matches 23-27 %% 676 ["1993-09" ]: matches 23-27 %% 677 ["1994-02" ]: matches 23-27 %% 678 ["1A" ]: matches 23A %% 679 ["2 " ]: matches Computer Science Report 100 %% 680 ["2 (or 3??)" ]: matches TR/AB/3-43.7-3/AB %% 681 ["2 107-" ]: matches TR/AB/3-43.7-3/AB %% 682 ["2 123-" ]: matches TR/AB/3-43.7-3/AB %% 683 ["2 199-" ]: matches TR/AB/3-43.7-3/AB %% 684 ["2 and 3" ]: matches 11 and 12 %% 685 ["2" ]: matches 23 %% 686 ["2," ]: matches TR/AB/3-43.7-3/AB %% 687 ["2--3" ]: matches TR/AB/3-43.7-3/AB %% 688 ["2-3" ]: matches 23-27 %% 689 ["2-4" ]: matches 23-27 %% 690 ["2-94" ]: matches 23-27 %% 691 ["2-94*" ]: matches TR/AB/3-43.7-3/AB %% 692 ["2.2" ]: matches 3.4 %% 693 ["2.3.1" ]: matches TR/AB/3-43.7-3/AB %% 694 ["2/3" ]: matches 23/27 %% 695 ["2/RT/81" ]: matches TR/AB/3-43.7-3/AB %% 696 ["20" ]: matches 23 %% 697 ["20/93" ]: matches 23/27 %% 698 ["200" ]: matches 23 %% 699 ["2009" ]: matches 23 %% 700 ["201" ]: matches 23 %% 701 ["202" ]: matches 23 %% 702 ["2022" ]: matches 23 %% 703 ["203" ]: matches 23 %% 704 ["2030" ]: matches 23 %% 705 ["204" ]: matches 23 %% 706 ["2049--88" ]: matches TR/AB/3-43.7-3/AB %% 707 ["205" ]: matches 23 %% 708 ["2050--88" ]: matches TR/AB/3-43.7-3/AB %% 709 ["2057" ]: matches 23 %% 710 ["206" ]: matches 23 %% 711 ["207" ]: matches 23 %% 712 ["208" ]: matches 23 %% 713 ["2083" ]: matches 23 %% 714 ["209" ]: matches 23 %% 715 ["2095" ]: matches 23 %% 716 ["21" ]: matches 23 %% 717 ["21/93" ]: matches 23/27 %% 718 ["210" ]: matches 23 %% 719 ["2100--89" ]: matches TR/AB/3-43.7-3/AB %% 720 ["212" ]: matches 23 %% 721 ["213" ]: matches 23 %% 722 ["2136" ]: matches 23 %% 723 ["215-227" ]: matches 23-27 %% 724 ["216" ]: matches 23 %% 725 ["217" ]: matches 23 %% 726 ["218" ]: matches 23 %% 727 ["2181" ]: matches 23 %% 728 ["2184" ]: matches 23 %% 729 ["2190" ]: matches 23 %% 730 ["22 0714-1181" ]: matches TR/AB/3-43.7-3/AB %% 731 ["22" ]: matches 23 %% 732 ["22/81" ]: matches 23/27 %% 733 ["220" ]: matches 23 %% 734 ["222" ]: matches 23 %% 735 ["2240207" ]: matches 23 %% 736 ["225" ]: matches 23 %% 737 ["226" ]: matches 23 %% 738 ["2268" ]: matches 23 %% 739 ["2271" ]: matches 23 %% 740 ["228" ]: matches 23 %% 741 ["2286" ]: matches 23 %% 742 ["2287" ]: matches 23 %% 743 ["229" ]: matches 23 %% 744 ["23" ]: matches 23 %% 745 ["23-92" ]: matches 23-27 %% 746 ["230" ]: matches 23 %% 747 ["233" ]: matches 23 %% 748 ["235" ]: matches 23 %% 749 ["236" ]: matches 23 %% 750 ["2367" ]: matches 23 %% 751 ["237" ]: matches 23 %% 752 ["2374" ]: matches 23 %% 753 ["238" ]: matches 23 %% 754 ["239" ]: matches 23 %% 755 ["23905" ]: matches 23 %% 756 ["24 " ]: matches Computer Science Report 100 %% 757 ["24" ]: matches 23 %% 758 ["24-81" ]: matches 23-27 %% 759 ["24-92" ]: matches 23-27 %% 760 ["2400" ]: matches 23 %% 761 ["241" ]: matches 23 %% 762 ["24155" ]: matches 23 %% 763 ["242" ]: matches 23 %% 764 ["243" ]: matches 23 %% 765 ["244" ]: matches 23 %% 766 ["244-260" ]: matches 23-27 %% 767 ["2445" ]: matches 23 %% 768 ["245" ]: matches 23 %% 769 ["2452" ]: matches 23 %% 770 ["246" ]: matches 23 %% 771 ["247" ]: matches 23 %% 772 ["248" ]: matches 23 %% 773 ["2481" ]: matches 23 %% 774 ["249" ]: matches 23 %% 775 ["2497" ]: matches 23 %% 776 ["25" ]: matches 23 %% 777 ["25-81" ]: matches 23-27 %% 778 ["25-92" ]: matches 23-27 %% 779 ["251" ]: matches 23 %% 780 ["25134" ]: matches 23 %% 781 ["252" ]: matches 23 %% 782 ["254" ]: matches 23 %% 783 ["255" ]: matches 23 %% 784 ["257" ]: matches 23 %% 785 ["258" ]: matches 23 %% 786 ["2583" ]: matches 23 %% 787 ["2590" ]: matches 23 %% 788 ["26" ]: matches 23 %% 789 ["26/94" ]: matches 23/27 %% 790 ["260" ]: matches 23 %% 791 ["264" ]: matches 23 %% 792 ["2644" ]: matches 23 %% 793 ["265" ]: matches 23 %% 794 ["266" ]: matches 23 %% 795 ["267" ]: matches 23 %% 796 ["2688" ]: matches 23 %% 797 ["27" ]: matches 23 %% 798 ["27-94" ]: matches 23-27 %% 799 ["27/28" ]: matches 23/27 %% 800 ["272" ]: matches 23 %% 801 ["273" ]: matches 23 %% 802 ["275" ]: matches 23 %% 803 ["276" ]: matches 23 %% 804 ["2768" ]: matches 23 %% 805 ["28" ]: matches 23 %% 806 ["28-94" ]: matches 23-27 %% 807 ["28/94" ]: matches 23/27 %% 808 ["2815" ]: matches 23 %% 809 ["2835" ]: matches 23 %% 810 ["285" ]: matches 23 %% 811 ["289" ]: matches 23 %% 812 ["29" ]: matches 23 %% 813 ["29-94" ]: matches 23-27 %% 814 ["2908" ]: matches 23 %% 815 ["2913" ]: matches 23 %% 816 ["294 (AD 207929)" ]: matches TR/AB/3-43.7-3/AB %% 817 ["294" ]: matches 23 %% 818 ["2957" ]: matches 23 %% 819 ["296" ]: matches 23 %% 820 ["298" ]: matches 23 %% 821 ["29e ann{\'e}e" ]: matches Computer Science Report 100 %% 822 ["2??" ]: matches TR/AB/3-43.7-3/AB %% 823 ["3 (or 11??)" ]: matches TR/AB/3-43.7-3/AB %% 824 ["3 (or 2??)" ]: matches TR/AB/3-43.7-3/AB %% 825 ["3 (or 4??)" ]: matches TR/AB/3-43.7-3/AB %% 826 ["3 0723-2187" ]: matches TR/AB/3-43.7-3/AB %% 827 ["3 Pt 2" ]: matches Computer Science Report 100 %% 828 ["3 \& 4" ]: matches Computer Science Report 100 %% 829 ["3 and 4" ]: matches 11 and 12 %% 830 ["3 or 5??" ]: matches TR/AB/3-43.7-3/AB %% 831 ["3" ]: matches 23 %% 832 ["3+4" ]: matches 3+4 %% 833 ["3, 4" ]: matches TR/AB/3-43.7-3/AB %% 834 ["3--4" ]: matches TR/AB/3-43.7-3/AB %% 835 ["3-30" ]: matches 23-27 %% 836 ["3-31-84" ]: matches TR/AB/3-43.7-3/AB %% 837 ["3-4" ]: matches 23-27 %% 838 ["3/4" ]: matches 23/27 %% 839 ["3/6" ]: matches 23/27 %% 840 ["3/79" ]: matches 23/27 %% 841 ["30" ]: matches 23 %% 842 ["30(2)" ]: matches TR/AB/3-43.7-3/AB %% 843 ["3048" ]: matches 23 %% 844 ["3071" ]: matches 23 %% 845 ["3079--89--MS" ]: matches TR/AB/3-43.7-3/AB %% 846 ["30G-0009" ]: matches TR/AB/3-43.7-3/AB %% 847 ["31" ]: matches 23 %% 848 ["31-89" ]: matches 23-27 %% 849 ["3106" ]: matches 23 %% 850 ["314" ]: matches 23 %% 851 ["315" ]: matches 23 %% 852 ["32" ]: matches 23 %% 853 ["320 -- 2956" ]: matches TR/AB/3-43.7-3/AB %% 854 ["3229-3234" ]: matches 23-27 %% 855 ["323" ]: matches 23 %% 856 ["3237" ]: matches 23 %% 857 ["33" ]: matches 23 %% 858 ["33-78-2" ]: matches TR/AB/3-43.7-3/AB %% 859 ["330" ]: matches 23 %% 860 ["331" ]: matches 23 %% 861 ["332" ]: matches 23 %% 862 ["337" ]: matches 23 %% 863 ["339, also Ultracomputer Note 131"]: matches TR/AB/3-43.7-3/AB %% 864 ["34" ]: matches 23 %% 865 ["342/10/92 A" ]: matches TR/AB/3-43.7-3/AB %% 866 ["342/10/93 A/ I-9319" ]: matches TR/AB/3-43.7-3/AB %% 867 ["342/11/92 A" ]: matches TR/AB/3-43.7-3/AB %% 868 ["342/13/93 A" ]: matches TR/AB/3-43.7-3/AB %% 869 ["342/17/90" ]: matches TR/AB/3-43.7-3/AB %% 870 ["342/26/92 A" ]: matches TR/AB/3-43.7-3/AB %% 871 ["3430" ]: matches 23 %% 872 ["3459" ]: matches 23 %% 873 ["346" ]: matches 23 %% 874 ["3462" ]: matches 23 %% 875 ["3467" ]: matches 23 %% 876 ["349" ]: matches 23 %% 877 ["35" ]: matches 23 %% 878 ["3507" ]: matches 23 %% 879 ["3509" ]: matches 23 %% 880 ["353" ]: matches 23 %% 881 ["355" ]: matches 23 %% 882 ["3560" ]: matches 23 %% 883 ["358-364" ]: matches 23-27 %% 884 ["359" ]: matches 23 %% 885 ["36" ]: matches 23 %% 886 ["361" ]: matches 23 %% 887 ["3619" ]: matches 23 %% 888 ["367" ]: matches 23 %% 889 ["368" ]: matches 23 %% 890 ["369" ]: matches 23 %% 891 ["37" ]: matches 23 %% 892 ["37--82" ]: matches TR/AB/3-43.7-3/AB %% 893 ["370" ]: matches 23 %% 894 ["373" ]: matches 23 %% 895 ["377" ]: matches 23 %% 896 ["3776" ]: matches 23 %% 897 ["38" ]: matches 23 %% 898 ["3833" ]: matches 23 %% 899 ["3885" ]: matches 23 %% 900 ["389" ]: matches 23 %% 901 ["39 (or 4??)" ]: matches TR/AB/3-43.7-3/AB %% 902 ["39" ]: matches 23 %% 903 ["390" ]: matches 23 %% 904 ["391" ]: matches 23 %% 905 ["398" ]: matches 23 %% 906 ["399" ]: matches 23 %% 907 ["3B" ]: matches 23A %% 908 ["3\&4" ]: matches 23 %% 909 ["4 (or 5??)" ]: matches TR/AB/3-43.7-3/AB %% 910 ["4 Pt 1" ]: matches Computer Science Report 100 %% 911 ["4 and 1" ]: matches 11 and 12 %% 912 ["4 or 5?" ]: matches TR/AB/3-43.7-3/AB %% 913 ["4" ]: matches 23 %% 914 ["4, 5" ]: matches TR/AB/3-43.7-3/AB %% 915 ["4, Part II" ]: matches TR/AB/3-43.7-3/AB %% 916 ["4--5" ]: matches TR/AB/3-43.7-3/AB %% 917 ["4-10" ]: matches 23-27 %% 918 ["4-22-66-1" ]: matches TR/AB/3-43.7-3/AB %% 919 ["4-5" ]: matches 23-27 %% 920 ["4-6" ]: matches 23-27 %% 921 ["4-94" ]: matches 23-27 %% 922 ["4/1" ]: matches 23/27 %% 923 ["40" ]: matches 23 %% 924 ["400-63" ]: matches 23-27 %% 925 ["400-75 SeF" ]: matches TR/AB/3-43.7-3/AB %% 926 ["400-75" ]: matches 23-27 %% 927 ["400-85" ]: matches 23-27 %% 928 ["401" ]: matches 23 %% 929 ["405" ]: matches 23 %% 930 ["406 0723-0508" ]: matches TR/AB/3-43.7-3/AB %% 931 ["408" ]: matches 23 %% 932 ["409" ]: matches 23 %% 933 ["41" ]: matches 23 %% 934 ["412" ]: matches 23 %% 935 ["418" ]: matches 23 %% 936 ["42" ]: matches 23 %% 937 ["421" ]: matches 23 %% 938 ["424" ]: matches 23 %% 939 ["428" ]: matches 23 %% 940 ["4287:TR:81" ]: matches TR/AB/3-43.7-3/AB %% 941 ["43" ]: matches 23 %% 942 ["430" ]: matches 23 %% 943 ["431-014" ]: matches 23-27 %% 944 ["434" ]: matches 23 %% 945 ["4356" ]: matches 23 %% 946 ["439" ]: matches 23 %% 947 ["44" ]: matches 23 %% 948 ["443" ]: matches 23 %% 949 ["449" ]: matches 23 %% 950 ["45" ]: matches 23 %% 951 ["4543" ]: matches 23 %% 952 ["456" ]: matches 23 %% 953 ["458" ]: matches 23 %% 954 ["46" ]: matches 23 %% 955 ["466" ]: matches 23 %% 956 ["468" ]: matches 23 %% 957 ["47" ]: matches 23 %% 958 ["473-499" ]: matches 23-27 %% 959 ["476-029-4 (re-released as Rice COMP TR84-9)"]: matches TR/AB/3-43.7-3/AB %% 960 ["4776" ]: matches 23 %% 961 ["478" ]: matches 23 %% 962 ["48" ]: matches 23 %% 963 ["4805" ]: matches 23 %% 964 ["4816" ]: matches 23 %% 965 ["486" ]: matches 23 %% 966 ["4872" ]: matches 23 %% 967 ["49" ]: matches 23 %% 968 ["4911" ]: matches 23 %% 969 ["4922" ]: matches 23 %% 970 ["4930" ]: matches 23 %% 971 ["495" ]: matches 23 %% 972 ["5 (or 15??)" ]: matches TR/AB/3-43.7-3/AB %% 973 ["5" ]: matches 23 %% 974 ["5-6" ]: matches 23-27 %% 975 ["5-93" ]: matches 23-27 %% 976 ["5/6" ]: matches 23/27 %% 977 ["5/92" ]: matches 23/27 %% 978 ["50" ]: matches 23 %% 979 ["500-32" ]: matches 23-27 %% 980 ["5054" ]: matches 23 %% 981 ["507" ]: matches 23 %% 982 ["51" ]: matches 23 %% 983 ["51--52" ]: matches TR/AB/3-43.7-3/AB %% 984 ["511" ]: matches 23 %% 985 ["5118" ]: matches 23 %% 986 ["5121" ]: matches 23 %% 987 ["5123" ]: matches 23 %% 988 ["522" ]: matches 23 %% 989 ["523-538" ]: matches 23-27 %% 990 ["527" ]: matches 23 %% 991 ["53" ]: matches 23 %% 992 ["530" ]: matches 23 %% 993 ["539" ]: matches 23 %% 994 ["54" ]: matches 23 %% 995 ["541" ]: matches 23 %% 996 ["5419" ]: matches 23 %% 997 ["543" ]: matches 23 %% 998 ["5470" ]: matches 23 %% 999 ["55" ]: matches 23 %% 1000 ["5504" ]: matches 23 %% 1001 ["555" ]: matches 23 %% 1002 ["5573" ]: matches 23 %% 1003 ["56" ]: matches 23 %% 1004 ["560" ]: matches 23 %% 1005 ["56038" ]: matches 23 %% 1006 ["562" ]: matches 23 %% 1007 ["562M2-169. UCS II." ]: matches TR/AB/3-43.7-3/AB %% 1008 ["564" ]: matches 23 %% 1009 ["5656" ]: matches 23 %% 1010 ["567" ]: matches 23 %% 1011 ["568" ]: matches 23 %% 1012 ["57" ]: matches 23 %% 1013 ["570" ]: matches 23 %% 1014 ["572" ]: matches 23 %% 1015 ["574" ]: matches 23 %% 1016 ["577" ]: matches 23 %% 1017 ["579" ]: matches 23 %% 1018 ["58" ]: matches 23 %% 1019 ["580" ]: matches 23 %% 1020 ["581" ]: matches 23 %% 1021 ["582" ]: matches 23 %% 1022 ["583T" ]: matches 23A %% 1023 ["584" ]: matches 23 %% 1024 ["589" ]: matches 23 %% 1025 ["59" ]: matches 23 %% 1026 ["590" ]: matches 23 %% 1027 ["591" ]: matches 23 %% 1028 ["595" ]: matches 23 %% 1029 ["596" ]: matches 23 %% 1030 ["5B" ]: matches 23A %% 1031 ["5a" ]: matches 23A %% 1032 ["6 Pt 1" ]: matches Computer Science Report 100 %% 1033 ["6 Pt 2" ]: matches Computer Science Report 100 %% 1034 ["6" ]: matches 23 %% 1035 ["6--7" ]: matches TR/AB/3-43.7-3/AB %% 1036 ["6-7" ]: matches 23-27 %% 1037 ["6-93" ]: matches 23-27 %% 1038 ["6/7" ]: matches 23/27 %% 1039 ["6/80" ]: matches 23/27 %% 1040 ["60" ]: matches 23 %% 1041 ["6003" ]: matches 23 %% 1042 ["60174900A" ]: matches 23A %% 1043 ["602" ]: matches 23 %% 1044 ["60457040" ]: matches 23 %% 1045 ["606" ]: matches 23 %% 1046 ["6062" ]: matches 23 %% 1047 ["607" ]: matches 23 %% 1048 ["6086" ]: matches 23 %% 1049 ["609" ]: matches 23 %% 1050 ["61" ]: matches 23 %% 1051 ["611" ]: matches 23 %% 1052 ["612" ]: matches 23 %% 1053 ["6133" ]: matches 23 %% 1054 ["6158." ]: matches TR/AB/3-43.7-3/AB %% 1055 ["616" ]: matches 23 %% 1056 ["62" ]: matches 23 %% 1057 ["623" ]: matches 23 %% 1058 ["6240" ]: matches 23 %% 1059 ["625" ]: matches 23 %% 1060 ["626" ]: matches 23 %% 1061 ["629" ]: matches 23 %% 1062 ["6292" ]: matches 23 %% 1063 ["63" ]: matches 23 %% 1064 ["634" ]: matches 23 %% 1065 ["6368" ]: matches 23 %% 1066 ["6370" ]: matches 23 %% 1067 ["640-M" ]: matches TR/AB/3-43.7-3/AB %% 1068 ["645" ]: matches 23 %% 1069 ["65" ]: matches 23 %% 1070 ["652" ]: matches 23 %% 1071 ["657" ]: matches 23 %% 1072 ["659" ]: matches 23 %% 1073 ["66" ]: matches 23 %% 1074 ["66-10" ]: matches 23-27 %% 1075 ["661" ]: matches 23 %% 1076 ["663" ]: matches 23 %% 1077 ["664" ]: matches 23 %% 1078 ["665" ]: matches 23 %% 1079 ["666" ]: matches 23 %% 1080 ["668" ]: matches 23 %% 1081 ["67" ]: matches 23 %% 1082 ["671" ]: matches 23 %% 1083 ["676" ]: matches 23 %% 1084 ["679" ]: matches 23 %% 1085 ["68" ]: matches 23 %% 1086 ["68-1" ]: matches 23-27 %% 1087 ["68/5" ]: matches 23/27 %% 1088 ["68/6" ]: matches 23/27 %% 1089 ["68/8" ]: matches 23/27 %% 1090 ["6824" ]: matches 23 %% 1091 ["684" ]: matches 23 %% 1092 ["685" ]: matches 23 %% 1093 ["689" ]: matches 23 %% 1094 ["69" ]: matches 23 %% 1095 ["69-05" ]: matches 23-27 %% 1096 ["69-1" ]: matches 23-27 %% 1097 ["69-18" ]: matches 23-27 %% 1098 ["69-19" ]: matches 23-27 %% 1099 ["69-3" ]: matches 23-27 %% 1100 ["69-5" ]: matches 23-27 %% 1101 ["69/1" ]: matches 23/27 %% 1102 ["69/11" ]: matches 23/27 %% 1103 ["69/2" ]: matches 23/27 %% 1104 ["69/3" ]: matches 23/27 %% 1105 ["69/4" ]: matches 23/27 %% 1106 ["69/5" ]: matches 23/27 %% 1107 ["69/6" ]: matches 23/27 %% 1108 ["69/7" ]: matches 23/27 %% 1109 ["69/9" ]: matches 23/27 %% 1110 ["690" ]: matches 23 %% 1111 ["6905" ]: matches 23 %% 1112 ["6A" ]: matches 23A %% 1113 ["6B" ]: matches 23A %% 1114 ["7" ]: matches 23 %% 1115 ["7-14" ]: matches 23-27 %% 1116 ["7-8" ]: matches 23-27 %% 1117 ["7-93" ]: matches 23-27 %% 1118 ["7/8" ]: matches 23/27 %% 1119 ["70" ]: matches 23 %% 1120 ["70/10" ]: matches 23/27 %% 1121 ["70/15" ]: matches 23/27 %% 1122 ["70/17" ]: matches 23/27 %% 1123 ["70/18" ]: matches 23/27 %% 1124 ["70/2" ]: matches 23/27 %% 1125 ["70/3" ]: matches 23/27 %% 1126 ["70/5" ]: matches 23/27 %% 1127 ["70/7" ]: matches 23/27 %% 1128 ["70/8" ]: matches 23/27 %% 1129 ["700" ]: matches 23 %% 1130 ["7002" ]: matches 23 %% 1131 ["7041" ]: matches 23 %% 1132 ["705" ]: matches 23 %% 1133 ["707" ]: matches 23 %% 1134 ["71" ]: matches 23 %% 1135 ["71-20" ]: matches 23-27 %% 1136 ["71-51" ]: matches 23-27 %% 1137 ["71/6" ]: matches 23/27 %% 1138 ["71/7" ]: matches 23/27 %% 1139 ["72" ]: matches 23 %% 1140 ["72-08" ]: matches 23-27 %% 1141 ["72/2" ]: matches 23/27 %% 1142 ["722" ]: matches 23 %% 1143 ["726" ]: matches 23 %% 1144 ["73/2" ]: matches 23/27 %% 1145 ["73/3" ]: matches 23/27 %% 1146 ["73/4" ]: matches 23/27 %% 1147 ["73/6" ]: matches 23/27 %% 1148 ["7304" ]: matches 23 %% 1149 ["731" ]: matches 23 %% 1150 ["734" ]: matches 23 %% 1151 ["74" ]: matches 23 %% 1152 ["74-1 NML/GSO" ]: matches TR/AB/3-43.7-3/AB %% 1153 ["74-1" ]: matches 23-27 %% 1154 ["74-5" ]: matches 23-27 %% 1155 ["74/1" ]: matches 23/27 %% 1156 ["74/2" ]: matches 23/27 %% 1157 ["74/3" ]: matches 23/27 %% 1158 ["74/4" ]: matches 23/27 %% 1159 ["741" ]: matches 23 %% 1160 ["75" ]: matches 23 %% 1161 ["75-01" ]: matches 23-27 %% 1162 ["75-1" ]: matches 23-27 %% 1163 ["75-159" ]: matches 23-27 %% 1164 ["75-2" ]: matches 23-27 %% 1165 ["75-47" ]: matches 23-27 %% 1166 ["75-Aut-J" ]: matches TR/AB/3-43.7-3/AB %% 1167 ["75/1" ]: matches 23/27 %% 1168 ["75/3" ]: matches 23/27 %% 1169 ["75/5" ]: matches 23/27 %% 1170 ["75/7" ]: matches 23/27 %% 1171 ["751" ]: matches 23 %% 1172 ["757" ]: matches 23 %% 1173 ["76" ]: matches 23 %% 1174 ["76-05" ]: matches 23-27 %% 1175 ["76-1" ]: matches 23-27 %% 1176 ["76-13" ]: matches 23-27 %% 1177 ["76-22" ]: matches 23-27 %% 1178 ["76-3" ]: matches 23-27 %% 1179 ["76-67" ]: matches 23-27 %% 1180 ["76/4" ]: matches 23/27 %% 1181 ["76/86" ]: matches 23/27 %% 1182 ["7640" ]: matches 23 %% 1183 ["768" ]: matches 23 %% 1184 ["77" ]: matches 23 %% 1185 ["77-14" ]: matches 23-27 %% 1186 ["77-17" ]: matches 23-27 %% 1187 ["77-459" ]: matches 23-27 %% 1188 ["77-671" ]: matches 23-27 %% 1189 ["77-671." ]: matches TR/AB/3-43.7-3/AB %% 1190 ["776" ]: matches 23 %% 1191 ["777" ]: matches 23 %% 1192 ["78 0458-2128" ]: matches TR/AB/3-43.7-3/AB %% 1193 ["78" ]: matches 23 %% 1194 ["78- 1069" ]: matches TR/AB/3-43.7-3/AB %% 1195 ["78-1" ]: matches 23-27 %% 1196 ["78-12" ]: matches 23-27 %% 1197 ["78-160" ]: matches 23-27 %% 1198 ["78-287" ]: matches 23-27 %% 1199 ["78-3" ]: matches 23-27 %% 1200 ["78-669" ]: matches 23-27 %% 1201 ["78/1" ]: matches 23/27 %% 1202 ["78/10" ]: matches 23/27 %% 1203 ["78/2" ]: matches 23/27 %% 1204 ["78/3" ]: matches 23/27 %% 1205 ["78/5" ]: matches 23/27 %% 1206 ["78/6" ]: matches 23/27 %% 1207 ["78/7" ]: matches 23/27 %% 1208 ["78/8" ]: matches 23/27 %% 1209 ["78/P.1019" ]: matches TR/AB/3-43.7-3/AB %% 1210 ["781" ]: matches 23 %% 1211 ["786" ]: matches 23 %% 1212 ["79" ]: matches 23 %% 1213 ["79-0276" ]: matches 23-27 %% 1214 ["79-07" ]: matches 23-27 %% 1215 ["79-1" ]: matches 23-27 %% 1216 ["79-282" ]: matches 23-27 %% 1217 ["79-3" ]: matches 23-27 %% 1218 ["79-9" ]: matches 23-27 %% 1219 ["79/1" ]: matches 23/27 %% 1220 ["79/10" ]: matches 23/27 %% 1221 ["79/2" ]: matches 23/27 %% 1222 ["79/3" ]: matches 23/27 %% 1223 ["79/5" ]: matches 23/27 %% 1224 ["79/6" ]: matches 23/27 %% 1225 ["79/7" ]: matches 23/27 %% 1226 ["79/8" ]: matches 23/27 %% 1227 ["790" ]: matches 23 %% 1228 ["794" ]: matches 23 %% 1229 ["797" ]: matches 23 %% 1230 ["7994" ]: matches 23 %% 1231 ["7997" ]: matches 23 %% 1232 ["8 (??)" ]: matches TR/AB/3-43.7-3/AB %% 1233 ["8" ]: matches 23 %% 1234 ["8, Part 2" ]: matches TR/AB/3-43.7-3/AB %% 1235 ["8--9" ]: matches TR/AB/3-43.7-3/AB %% 1236 ["8-9" ]: matches 23-27 %% 1237 ["80" ]: matches 23 %% 1238 ["80- 004" ]: matches TR/AB/3-43.7-3/AB %% 1239 ["80-03" ]: matches 23-27 %% 1240 ["80-1274" ]: matches 23-27 %% 1241 ["80-2" ]: matches 23-27 %% 1242 ["80-3" ]: matches 23-27 %% 1243 ["80-34" ]: matches 23-27 %% 1244 ["80-411" ]: matches 23-27 %% 1245 ["80-844" ]: matches 23-27 %% 1246 ["80/1" ]: matches 23/27 %% 1247 ["80/10" ]: matches 23/27 %% 1248 ["80/2" ]: matches 23/27 %% 1249 ["80/3" ]: matches 23/27 %% 1250 ["80/4" ]: matches 23/27 %% 1251 ["80/5" ]: matches 23/27 %% 1252 ["80/6" ]: matches 23/27 %% 1253 ["80/7" ]: matches 23/27 %% 1254 ["80/9" ]: matches 23/27 %% 1255 ["80192" ]: matches 23 %% 1256 ["80205" ]: matches 23 %% 1257 ["807" ]: matches 23 %% 1258 ["809" ]: matches 23 %% 1259 ["81" ]: matches 23 %% 1260 ["81-02" ]: matches 23-27 %% 1261 ["81-1020" ]: matches 23-27 %% 1262 ["81-1091" ]: matches 23-27 %% 1263 ["81-158" ]: matches 23-27 %% 1264 ["81-19" ]: matches 23-27 %% 1265 ["81-29" ]: matches 23-27 %% 1266 ["81-574" ]: matches 23-27 %% 1267 ["81/1" ]: matches 23/27 %% 1268 ["81/10" ]: matches 23/27 %% 1269 ["81/2" ]: matches 23/27 %% 1270 ["81/3" ]: matches 23/27 %% 1271 ["81/4" ]: matches 23/27 %% 1272 ["81/5" ]: matches 23/27 %% 1273 ["81/6" ]: matches 23/27 %% 1274 ["81/7" ]: matches 23/27 %% 1275 ["81/8" ]: matches 23/27 %% 1276 ["81/9" ]: matches 23/27 %% 1277 ["816" ]: matches 23 %% 1278 ["818" ]: matches 23 %% 1279 ["819" ]: matches 23 %% 1280 ["82" ]: matches 23 %% 1281 ["82-11-03" ]: matches TR/AB/3-43.7-3/AB %% 1282 ["82-308" ]: matches 23-27 %% 1283 ["82-831" ]: matches 23-27 %% 1284 ["82/1" ]: matches 23/27 %% 1285 ["82/10" ]: matches 23/27 %% 1286 ["82/2" ]: matches 23/27 %% 1287 ["82/3" ]: matches 23/27 %% 1288 ["82/4" ]: matches 23/27 %% 1289 ["82/5" ]: matches 23/27 %% 1290 ["82/6" ]: matches 23/27 %% 1291 ["82/7" ]: matches 23/27 %% 1292 ["82/9" ]: matches 23/27 %% 1293 ["82448-9" ]: matches 23-27 %% 1294 ["83-01-01" ]: matches TR/AB/3-43.7-3/AB %% 1295 ["83-0223" ]: matches 23-27 %% 1296 ["83-0372" ]: matches 23-27 %% 1297 ["83-0421" ]: matches 23-27 %% 1298 ["83-0500" ]: matches 23-27 %% 1299 ["83-155" ]: matches 23-27 %% 1300 ["83-1893" ]: matches 23-27 %% 1301 ["83-3" ]: matches 23-27 %% 1302 ["83-4" ]: matches 23-27 %% 1303 ["83-4051" ]: matches 23-27 %% 1304 ["83-47" ]: matches 23-27 %% 1305 ["83-5" ]: matches 23-27 %% 1306 ["83-713" ]: matches 23-27 %% 1307 ["83-883" ]: matches 23-27 %% 1308 ["83-97" ]: matches 23-27 %% 1309 ["83/09" ]: matches 23/27 %% 1310 ["83/1" ]: matches 23/27 %% 1311 ["83/10" ]: matches 23/27 %% 1312 ["83/2" ]: matches 23/27 %% 1313 ["83/4" ]: matches 23/27 %% 1314 ["83/5" ]: matches 23/27 %% 1315 ["83/7" ]: matches 23/27 %% 1316 ["83/9" ]: matches 23/27 %% 1317 ["830" ]: matches 23 %% 1318 ["832" ]: matches 23 %% 1319 ["83304" ]: matches 23 %% 1320 ["836" ]: matches 23 %% 1321 ["83CRD054 (Technical information series)"]: matches TR/AB/3-43.7-3/AB %% 1322 ["84" ]: matches 23 %% 1323 ["84-0162" ]: matches 23-27 %% 1324 ["84-21" ]: matches 23-27 %% 1325 ["84-2156" ]: matches 23-27 %% 1326 ["84-501" ]: matches 23-27 %% 1327 ["84-637" ]: matches 23-27 %% 1328 ["84-651" ]: matches 23-27 %% 1329 ["84-690" ]: matches 23-27 %% 1330 ["84-777" ]: matches 23-27 %% 1331 ["84-777." ]: matches TR/AB/3-43.7-3/AB %% 1332 ["84-827" ]: matches 23-27 %% 1333 ["84.2" ]: matches 3.4 %% 1334 ["84/10" ]: matches 23/27 %% 1335 ["84/154/12" ]: matches TR/AB/3-43.7-3/AB %% 1336 ["84/162/20" ]: matches TR/AB/3-43.7-3/AB %% 1337 ["84/2" ]: matches 23/27 %% 1338 ["84/3" ]: matches 23/27 %% 1339 ["84/4" ]: matches 23/27 %% 1340 ["84/5" ]: matches 23/27 %% 1341 ["84/6" ]: matches 23/27 %% 1342 ["84/7" ]: matches 23/27 %% 1343 ["84/8" ]: matches 23/27 %% 1344 ["84/9" ]: matches 23/27 %% 1345 ["84/R" ]: matches TR/AB/3-43.7-3/AB %% 1346 ["8428" ]: matches 23 %% 1347 ["843" ]: matches 23 %% 1348 ["849" ]: matches 23 %% 1349 ["85" ]: matches 23 %% 1350 ["85--01" ]: matches TR/AB/3-43.7-3/AB %% 1351 ["85--105" ]: matches TR/AB/3-43.7-3/AB %% 1352 ["85--12" ]: matches TR/AB/3-43.7-3/AB %% 1353 ["85--14" ]: matches TR/AB/3-43.7-3/AB %% 1354 ["85--18" ]: matches TR/AB/3-43.7-3/AB %% 1355 ["85--23" ]: matches TR/AB/3-43.7-3/AB %% 1356 ["85--B--1" ]: matches TR/AB/3-43.7-3/AB %% 1357 ["85--OR--3" ]: matches TR/AB/3-43.7-3/AB %% 1358 ["85-0366" ]: matches 23-27 %% 1359 ["85-1" ]: matches 23-27 %% 1360 ["85-122" ]: matches 23-27 %% 1361 ["85-257" ]: matches 23-27 %% 1362 ["85-279" ]: matches 23-27 %% 1363 ["85-29" ]: matches 23-27 %% 1364 ["85-45" ]: matches 23-27 %% 1365 ["85-48" ]: matches 23-27 %% 1366 ["85-5" ]: matches 23-27 %% 1367 ["85-739" ]: matches 23-27 %% 1368 ["85/10" ]: matches 23/27 %% 1369 ["85/2" ]: matches 23/27 %% 1370 ["85/212" ]: matches 23/27 %% 1371 ["85/3" ]: matches 23/27 %% 1372 ["85/4" ]: matches 23/27 %% 1373 ["85/8" ]: matches 23/27 %% 1374 ["85/9" ]: matches 23/27 %% 1375 ["851" ]: matches 23 %% 1376 ["852" ]: matches 23 %% 1377 ["854" ]: matches 23 %% 1378 ["856" ]: matches 23 %% 1379 ["86" ]: matches 23 %% 1380 ["86--10" ]: matches TR/AB/3-43.7-3/AB %% 1381 ["86--128" ]: matches TR/AB/3-43.7-3/AB %% 1382 ["86-06" ]: matches 23-27 %% 1383 ["86-1-5" ]: matches TR/AB/3-43.7-3/AB %% 1384 ["86-123" ]: matches 23-27 %% 1385 ["86-17" ]: matches 23-27 %% 1386 ["86-21" ]: matches 23-27 %% 1387 ["86-268" ]: matches 23-27 %% 1388 ["86-3055" ]: matches 23-27 %% 1389 ["86-32" ]: matches 23-27 %% 1390 ["86-3473" ]: matches 23-27 %% 1391 ["86-4" ]: matches 23-27 %% 1392 ["86-437" ]: matches 23-27 %% 1393 ["86-451" ]: matches 23-27 %% 1394 ["86-46" ]: matches 23-27 %% 1395 ["86-475" ]: matches 23-27 %% 1396 ["86-54" ]: matches 23-27 %% 1397 ["86-55" ]: matches 23-27 %% 1398 ["86-85" ]: matches 23-27 %% 1399 ["86.7" ]: matches 3.4 %% 1400 ["86/10" ]: matches 23/27 %% 1401 ["86/1292" ]: matches 23/27 %% 1402 ["86/2" ]: matches 23/27 %% 1403 ["86/230/4" ]: matches TR/AB/3-43.7-3/AB %% 1404 ["86/235/9" ]: matches TR/AB/3-43.7-3/AB %% 1405 ["86/5" ]: matches 23/27 %% 1406 ["86/6" ]: matches 23/27 %% 1407 ["86/7" ]: matches 23/27 %% 1408 ["86/8" ]: matches 23/27 %% 1409 ["860" ]: matches 23 %% 1410 ["861" ]: matches 23 %% 1411 ["8610" ]: matches 23 %% 1412 ["862" ]: matches 23 %% 1413 ["86392" ]: matches 23 %% 1414 ["86407" ]: matches 23 %% 1415 ["866" ]: matches 23 %% 1416 ["86750" ]: matches 23 %% 1417 ["869" ]: matches 23 %% 1418 ["8696" ]: matches 23 %% 1419 ["87 869" ]: matches Computer Science Report 100 %% 1420 ["87" ]: matches 23 %% 1421 ["87--2" ]: matches TR/AB/3-43.7-3/AB %% 1422 ["87--41" ]: matches TR/AB/3-43.7-3/AB %% 1423 ["87--53" ]: matches TR/AB/3-43.7-3/AB %% 1424 ["87--87" ]: matches TR/AB/3-43.7-3/AB %% 1425 ["87-0004-A-B" ]: matches TR/AB/3-43.7-3/AB %% 1426 ["87-002" ]: matches 23-27 %% 1427 ["87-02, I1-I50" ]: matches TR/AB/3-43.7-3/AB %% 1428 ["87-04" ]: matches 23-27 %% 1429 ["87-1-1" ]: matches TR/AB/3-43.7-3/AB %% 1430 ["87-10" ]: matches 23-27 %% 1431 ["87-11" ]: matches 23-27 %% 1432 ["87-118" ]: matches 23-27 %% 1433 ["87-14" ]: matches 23-27 %% 1434 ["87-16" ]: matches 23-27 %% 1435 ["87-20" ]: matches 23-27 %% 1436 ["87-21" ]: matches 23-27 %% 1437 ["87-22" ]: matches 23-27 %% 1438 ["87-25" ]: matches 23-27 %% 1439 ["87-34" ]: matches 23-27 %% 1440 ["87-37" ]: matches 23-27 %% 1441 ["87-39" ]: matches 23-27 %% 1442 ["87-4" ]: matches 23-27 %% 1443 ["87-41" ]: matches 23-27 %% 1444 ["87-49" ]: matches 23-27 %% 1445 ["87-5" ]: matches 23-27 %% 1446 ["87-50" ]: matches 23-27 %% 1447 ["87-51" ]: matches 23-27 %% 1448 ["87-52" ]: matches 23-27 %% 1449 ["87-58" ]: matches 23-27 %% 1450 ["87-641" ]: matches 23-27 %% 1451 ["87-65" ]: matches 23-27 %% 1452 ["87-75" ]: matches 23-27 %% 1453 ["87-82" ]: matches 23-27 %% 1454 ["87/347" ]: matches 23/27 %% 1455 ["87/7" ]: matches 23/27 %% 1456 ["87/88-5-2" ]: matches TR/AB/3-43.7-3/AB %% 1457 ["87001" ]: matches 23 %% 1458 ["87002" ]: matches 23 %% 1459 ["87003" ]: matches 23 %% 1460 ["871" ]: matches 23 %% 1461 ["873" ]: matches 23 %% 1462 ["8744" ]: matches 23 %% 1463 ["877" ]: matches 23 %% 1464 ["878" ]: matches 23 %% 1465 ["879" ]: matches 23 %% 1466 ["88--101" ]: matches TR/AB/3-43.7-3/AB %% 1467 ["88--13" ]: matches TR/AB/3-43.7-3/AB %% 1468 ["88--17" ]: matches TR/AB/3-43.7-3/AB %% 1469 ["88--44" ]: matches TR/AB/3-43.7-3/AB %% 1470 ["88--68" ]: matches TR/AB/3-43.7-3/AB %% 1471 ["88--74" ]: matches TR/AB/3-43.7-3/AB %% 1472 ["88-10" ]: matches 23-27 %% 1473 ["88-11" ]: matches 23-27 %% 1474 ["88-115" ]: matches 23-27 %% 1475 ["88-12" ]: matches 23-27 %% 1476 ["88-136" ]: matches 23-27 %% 1477 ["88-14" ]: matches 23-27 %% 1478 ["88-140" ]: matches 23-27 %% 1479 ["88-15" ]: matches 23-27 %% 1480 ["88-16" ]: matches 23-27 %% 1481 ["88-19" ]: matches 23-27 %% 1482 ["88-2" ]: matches 23-27 %% 1483 ["88-20" ]: matches 23-27 %% 1484 ["88-234" ]: matches 23-27 %% 1485 ["88-258-A" ]: matches TR/AB/3-43.7-3/AB %% 1486 ["88-29/50" ]: matches TR/AB/3-43.7-3/AB %% 1487 ["88-3" ]: matches 23-27 %% 1488 ["88-49/70" ]: matches TR/AB/3-43.7-3/AB %% 1489 ["88-5" ]: matches 23-27 %% 1490 ["88-6" ]: matches 23-27 %% 1491 ["88-60-20" ]: matches TR/AB/3-43.7-3/AB %% 1492 ["88-942" ]: matches 23-27 %% 1493 ["88-95" ]: matches 23-27 %% 1494 ["88/304" ]: matches 23/27 %% 1495 ["88/322/34" ]: matches TR/AB/3-43.7-3/AB %% 1496 ["882" ]: matches 23 %% 1497 ["88288" ]: matches 23 %% 1498 ["88293" ]: matches 23 %% 1499 ["88363" ]: matches 23 %% 1500 ["888" ]: matches 23 %% 1501 ["89" ]: matches 23 %% 1502 ["89--04" ]: matches TR/AB/3-43.7-3/AB %% 1503 ["89--13" ]: matches TR/AB/3-43.7-3/AB %% 1504 ["89--15" ]: matches TR/AB/3-43.7-3/AB %% 1505 ["89--2" ]: matches TR/AB/3-43.7-3/AB %% 1506 ["89--29" ]: matches TR/AB/3-43.7-3/AB %% 1507 ["89--3" ]: matches TR/AB/3-43.7-3/AB %% 1508 ["89--65" ]: matches TR/AB/3-43.7-3/AB %% 1509 ["89--7" ]: matches TR/AB/3-43.7-3/AB %% 1510 ["89--85" ]: matches TR/AB/3-43.7-3/AB %% 1511 ["89--92" ]: matches TR/AB/3-43.7-3/AB %% 1512 ["89--B--5" ]: matches TR/AB/3-43.7-3/AB %% 1513 ["89-09" ]: matches 23-27 %% 1514 ["89-1" ]: matches 23-27 %% 1515 ["89-11" ]: matches 23-27 %% 1516 ["89-12" ]: matches 23-27 %% 1517 ["89-2" ]: matches 23-27 %% 1518 ["89-260" ]: matches 23-27 %% 1519 ["89-3" ]: matches 23-27 %% 1520 ["89-313" ]: matches 23-27 %% 1521 ["89-57" ]: matches 23-27 %% 1522 ["89-984" ]: matches 23-27 %% 1523 ["89/20" ]: matches 23/27 %% 1524 ["89/204" ]: matches 23/27 %% 1525 ["89/26" ]: matches 23/27 %% 1526 ["89/3" ]: matches 23/27 %% 1527 ["890" ]: matches 23 %% 1528 ["8917/A" ]: matches TR/AB/3-43.7-3/AB %% 1529 ["893" ]: matches 23 %% 1530 ["8939" ]: matches 23 %% 1531 ["8971" ]: matches 23 %% 1532 ["9" ]: matches 23 %% 1533 ["9--12" ]: matches TR/AB/3-43.7-3/AB %% 1534 ["9-10" ]: matches 23-27 %% 1535 ["9/10" ]: matches 23/27 %% 1536 ["90" ]: matches 23 %% 1537 ["90--01" ]: matches TR/AB/3-43.7-3/AB %% 1538 ["90--03" ]: matches TR/AB/3-43.7-3/AB %% 1539 ["90--07" ]: matches TR/AB/3-43.7-3/AB %% 1540 ["90--12" ]: matches TR/AB/3-43.7-3/AB %% 1541 ["90--14" ]: matches TR/AB/3-43.7-3/AB %% 1542 ["90--22" ]: matches TR/AB/3-43.7-3/AB %% 1543 ["90--28" ]: matches TR/AB/3-43.7-3/AB %% 1544 ["90--53" ]: matches TR/AB/3-43.7-3/AB %% 1545 ["90--83" ]: matches TR/AB/3-43.7-3/AB %% 1546 ["90-09" ]: matches 23-27 %% 1547 ["90-1" ]: matches 23-27 %% 1548 ["90-10" ]: matches 23-27 %% 1549 ["90-2" ]: matches 23-27 %% 1550 ["90-20" ]: matches 23-27 %% 1551 ["90-4" ]: matches 23-27 %% 1552 ["90-6" ]: matches 23-27 %% 1553 ["90-83" ]: matches 23-27 %% 1554 ["90/302" ]: matches 23/27 %% 1555 ["901" ]: matches 23 %% 1556 ["903" ]: matches 23 %% 1557 ["9030" ]: matches 23 %% 1558 ["9035" ]: matches 23 %% 1559 ["907" ]: matches 23 %% 1560 ["91" ]: matches 23 %% 1561 ["91--04" ]: matches TR/AB/3-43.7-3/AB %% 1562 ["91--05" ]: matches TR/AB/3-43.7-3/AB %% 1563 ["91--06" ]: matches TR/AB/3-43.7-3/AB %% 1564 ["91--10" ]: matches TR/AB/3-43.7-3/AB %% 1565 ["91--13" ]: matches TR/AB/3-43.7-3/AB %% 1566 ["91--27" ]: matches TR/AB/3-43.7-3/AB %% 1567 ["91--47" ]: matches TR/AB/3-43.7-3/AB %% 1568 ["91--7" ]: matches TR/AB/3-43.7-3/AB %% 1569 ["91-03" ]: matches 23-27 %% 1570 ["91-04" ]: matches 23-27 %% 1571 ["91-044" ]: matches 23-27 %% 1572 ["91-14" ]: matches 23-27 %% 1573 ["91-2" ]: matches 23-27 %% 1574 ["91-279" ]: matches 23-27 %% 1575 ["91-294" ]: matches 23-27 %% 1576 ["91-311" ]: matches 23-27 %% 1577 ["91-328" ]: matches 23-27 %% 1578 ["91-72" ]: matches 23-27 %% 1579 ["91-80" ]: matches 23-27 %% 1580 ["91-CSE-6" ]: matches TR/AB/3-43.7-3/AB %% 1581 ["91/10" ]: matches 23/27 %% 1582 ["91/447/31" ]: matches TR/AB/3-43.7-3/AB %% 1583 ["91/8" ]: matches 23/27 %% 1584 ["9140" ]: matches 23 %% 1585 ["917" ]: matches 23 %% 1586 ["919" ]: matches 23 %% 1587 ["92" ]: matches 23 %% 1588 ["92-067" ]: matches 23-27 %% 1589 ["92-068" ]: matches 23-27 %% 1590 ["92-069" ]: matches 23-27 %% 1591 ["92-075" ]: matches 23-27 %% 1592 ["92-084" ]: matches 23-27 %% 1593 ["92-09" ]: matches 23-27 %% 1594 ["92-1" ]: matches 23-27 %% 1595 ["92-126" ]: matches 23-27 %% 1596 ["92-16" ]: matches 23-27 %% 1597 ["92-161" ]: matches 23-27 %% 1598 ["92-24" ]: matches 23-27 %% 1599 ["92-241" ]: matches 23-27 %% 1600 ["92-28" ]: matches 23-27 %% 1601 ["92-28d" ]: matches TR/AB/3-43.7-3/AB %% 1602 ["92-31" ]: matches 23-27 %% 1603 ["92-35" ]: matches 23-27 %% 1604 ["92-36" ]: matches 23-27 %% 1605 ["92-38" ]: matches 23-27 %% 1606 ["92-421" ]: matches 23-27 %% 1607 ["92-5-A" ]: matches TR/AB/3-43.7-3/AB %% 1608 ["92/15" ]: matches 23/27 %% 1609 ["92/302" ]: matches 23/27 %% 1610 ["92/4" ]: matches 23/27 %% 1611 ["921" ]: matches 23 %% 1612 ["922" ]: matches 23 %% 1613 ["9236" ]: matches 23 %% 1614 ["93" ]: matches 23 %% 1615 ["93--96" ]: matches TR/AB/3-43.7-3/AB %% 1616 ["93-021" ]: matches 23-27 %% 1617 ["93-027" ]: matches 23-27 %% 1618 ["93-093" ]: matches 23-27 %% 1619 ["93-102" ]: matches 23-27 %% 1620 ["93-107" ]: matches 23-27 %% 1621 ["93-13" ]: matches 23-27 %% 1622 ["93-17" ]: matches 23-27 %% 1623 ["93-21b" ]: matches TR/AB/3-43.7-3/AB %% 1624 ["93-31" ]: matches 23-27 %% 1625 ["93-42" ]: matches 23-27 %% 1626 ["93-8" ]: matches 23-27 %% 1627 ["93-9" ]: matches 23-27 %% 1628 ["934" ]: matches 23 %% 1629 ["936" ]: matches 23 %% 1630 ["937" ]: matches 23 %% 1631 ["93NO00009" ]: matches Computer Science Report 100 %% 1632 ["94" ]: matches 23 %% 1633 ["94---" ]: matches TR/AB/3-43.7-3/AB %% 1634 ["94-008" ]: matches 23-27 %% 1635 ["94-03a" ]: matches TR/AB/3-43.7-3/AB %% 1636 ["94-069" ]: matches 23-27 %% 1637 ["94-16" ]: matches 23-27 %% 1638 ["94-18a" ]: matches TR/AB/3-43.7-3/AB %% 1639 ["94-21" ]: matches 23-27 %% 1640 ["94-3" ]: matches 23-27 %% 1641 ["94-4168" ]: matches 23-27 %% 1642 ["94-501" ]: matches 23-27 %% 1643 ["94-8" ]: matches 23-27 %% 1644 ["94/5" ]: matches 23/27 %% 1645 ["9406" ]: matches 23 %% 1646 ["944" ]: matches 23 %% 1647 ["949" ]: matches 23 %% 1648 ["95" ]: matches 23 %% 1649 ["95-08" ]: matches 23-27 %% 1650 ["95-19" ]: matches 23-27 %% 1651 ["95-20" ]: matches 23-27 %% 1652 ["95-29" ]: matches 23-27 %% 1653 ["950" ]: matches 23 %% 1654 ["951" ]: matches 23 %% 1655 ["952" ]: matches 23 %% 1656 ["952144" ]: matches 23 %% 1657 ["956" ]: matches 23 %% 1658 ["96" ]: matches 23 %% 1659 ["963" ]: matches 23 %% 1660 ["964" ]: matches 23 %% 1661 ["9649" ]: matches 23 %% 1662 ["966" ]: matches 23 %% 1663 ["967" ]: matches 23 %% 1664 ["97" ]: matches 23 %% 1665 ["97--100" ]: matches TR/AB/3-43.7-3/AB %% 1666 ["970" ]: matches 23 %% 1667 ["971" ]: matches 23 %% 1668 ["974" ]: matches 23 %% 1669 ["978" ]: matches 23 %% 1670 ["98" ]: matches 23 %% 1671 ["987" ]: matches 23 %% 1672 ["99 00 04" ]: matches Computer Science Report 100 %% 1673 ["99 90 12" ]: matches Computer Science Report 100 %% 1674 ["99 90 62" ]: matches Computer Science Report 100 %% 1675 ["99" ]: matches 23 ?? 1676 ["?" ]: illegal value ?? 1677 ["??" ]: illegal value ?? 1678 ["??-??" ]: illegal value ?? 1679 ["????" ]: illegal value %% 1680 ["A-18" ]: matches TR-2189 %% 1681 ["A-48" ]: matches TR-2189 %% 1682 ["A. I. MEMO 421" ]: matches TR/AB/3-43.7-3/AB %% 1683 ["A. I. MEMO 70 and MAC-M-165"]: matches TR/AB/3-43.7-3/AB %% 1684 ["A.E.R.E. 8781" ]: matches TR/AB/3-43.7-3/AB %% 1685 ["A68 8" ]: matches Computer Science Report 100 %% 1686 ["AA61641-00A" ]: matches TR/AB/3-43.7-3/AB %% 1687 ["AAEC/E190" ]: matches TR/AB/3-43.7-3/AB %% 1688 ["AAEC/E488" ]: matches TR/AB/3-43.7-3/AB %% 1689 ["AAEC/TM 366" ]: matches TR/AB/3-43.7-3/AB %% 1690 ["AAEC/TM 370" ]: matches TR/AB/3-43.7-3/AB %% 1691 ["AAEC/TM 544" ]: matches TR/AB/3-43.7-3/AB %% 1692 ["AAEC/TM455" ]: matches TR/AB/3-43.7-3/AB %% 1693 ["AAEC/TM470" ]: matches TR/AB/3-43.7-3/AB %% 1694 ["ACM--91--3" ]: matches TR/AB/3-43.7-3/AB %% 1695 ["ACPC/TR 92-3" ]: matches TR/AB/3-43.7-3/AB %% 1696 ["ACPC/TR 92-4" ]: matches TR/AB/3-43.7-3/AB %% 1697 ["AD 702 910" ]: matches Computer Science Report 100 %% 1698 ["AD 769-124" ]: matches TR/AB/3-43.7-3/AB %% 1699 ["AD 779 841" ]: matches Computer Science Report 100 %% 1700 ["AD-A050135" ]: matches TR/AB/3-43.7-3/AB %% 1701 ["AD/A-039 741" ]: matches TR/AB/3-43.7-3/AB %% 1702 ["AECL-7614" ]: matches TR-2189 %% 1703 ["AECL-7794" ]: matches TR-2189 %% 1704 ["AERE -- R 9444" ]: matches TR/AB/3-43.7-3/AB %% 1705 ["AERE M3057" ]: matches PN LPS5001 %% 1706 ["AERE R10533" ]: matches PN LPS5001 %% 1707 ["AERE R10555" ]: matches PN LPS5001 %% 1708 ["AERE R11009" ]: matches PN LPS5001 %% 1709 ["AERE R11432" ]: matches PN LPS5001 %% 1710 ["AERE R11948" ]: matches PN LPS5001 %% 1711 ["AERE R8730" ]: matches PN LPS5001 %% 1712 ["AERE-R 12329" ]: matches TR/AB/3-43.7-3/AB %% 1713 ["AERE-R 12393" ]: matches TR/AB/3-43.7-3/AB %% 1714 ["AERE-R. 4599 (pt. 1)" ]: matches TR/AB/3-43.7-3/AB %% 1715 ["AFFDL-TR-66-207" ]: matches UMIAC-TR-89-11 %% 1716 ["AGESS810528" ]: matches LPS0064 %% 1717 ["AIM-106" ]: matches TR-2189 %% 1718 ["AM--87--11" ]: matches TR/AB/3-43.7-3/AB %% 1719 ["AM--88--08" ]: matches TR/AB/3-43.7-3/AB %% 1720 ["ANL AMD 328" ]: matches Computer Science Report 100 %% 1721 ["ANL AMD 71" ]: matches Computer Science Report 100 %% 1722 ["ANL--80--68" ]: matches TR/AB/3-43.7-3/AB %% 1723 ["ANL--80--74" ]: matches TR/AB/3-43.7-3/AB %% 1724 ["ANL--82--48" ]: matches TR/AB/3-43.7-3/AB %% 1725 ["ANL-7231" ]: matches TR-2189 %% 1726 ["ANL-80-68" ]: matches ANL-30-74 %% 1727 ["ANL-80-74" ]: matches ANL-30-74 %% 1728 ["ANL-81-43" ]: matches ANL-30-74 %% 1729 ["ANL-83-97" ]: matches ANL-30-74 %% 1730 ["ANL-84-83" ]: matches ANL-30-74 %% 1731 ["ANL-85-70" ]: matches ANL-30-74 %% 1732 ["ANL-8579" ]: matches TR-2189 %% 1733 ["ANL-86-10" ]: matches ANL-30-74 %% 1734 ["ANL-87-23" ]: matches ANL-30-74 %% 1735 ["ANL-87-40" ]: matches ANL-30-74 %% 1736 ["ANL-88-38" ]: matches ANL-30-74 %% 1737 ["ANL-89/2 Rev. 1" ]: matches TR/AB/3-43.7-3/AB %% 1738 ["ANL-91/1" ]: matches TR/AB/3-43.7-3/AB %% 1739 ["ANL-91/14" ]: matches TR/AB/3-43.7-3/AB %% 1740 ["ANL-MCS-TM 99" ]: matches TR/AB/3-43.7-3/AB %% 1741 ["ANL-MCS-TM-119" ]: matches TR/AB/3-43.7-3/AB %% 1742 ["ANL-MCS-TM-57 (Revision 1)"]: matches TR/AB/3-43.7-3/AB %% 1743 ["ANL-MCS-TM-86" ]: matches TR/AB/3-43.7-3/AB %% 1744 ["ANL-MCS-TM-88" ]: matches TR/AB/3-43.7-3/AB %% 1745 ["ANL/MCS--TM--148" ]: matches TR/AB/3-43.7-3/AB %% 1746 ["ANL/MCS--TM--158" ]: matches TR/AB/3-43.7-3/AB %% 1747 ["ANL/MCS--TM--159" ]: matches TR/AB/3-43.7-3/AB %% 1748 ["ANL/MCS--TM--16" ]: matches TR/AB/3-43.7-3/AB %% 1749 ["ANL/MCS-TM-15" ]: matches TR/AB/3-43.7-3/AB %% 1750 ["ANL/MCS-TM-150" ]: matches TR/AB/3-43.7-3/AB %% 1751 ["ANL/MCS-TM-157" ]: matches TR/AB/3-43.7-3/AB %% 1752 ["ANL/MCS-TM-27" ]: matches TR/AB/3-43.7-3/AB %% 1753 ["ANL/MCS-TM-84" ]: matches TR/AB/3-43.7-3/AB %% 1754 ["ANL/MCS-TM-97" ]: matches TR/AB/3-43.7-3/AB %% 1755 ["ANL/MCS/TM-33" ]: matches TR/AB/3-43.7-3/AB %% 1756 ["ANL/MLS-TM-63" ]: matches TR/AB/3-43.7-3/AB %% 1757 ["ANL84-51, Rev.1" ]: matches TR/AB/3-43.7-3/AB %% 1758 ["ANS-12" ]: matches TR-2189 %% 1759 ["ANS-13" ]: matches TR-2189 %% 1760 ["ANS-16" ]: matches TR-2189 %% 1761 ["ANS-20" ]: matches TR-2189 %% 1762 ["ANS-22" ]: matches TR-2189 %% 1763 ["ANS-23" ]: matches TR-2189 %% 1764 ["ANS-24" ]: matches TR-2189 %% 1765 ["ANS-7" ]: matches TR-2189 %% 1766 ["ANS/MCS-TM-37" ]: matches TR/AB/3-43.7-3/AB %% 1767 ["APL-UW TM-4-83" ]: matches TR/AB/3-43.7-3/AB %% 1768 ["AR-92-2" ]: matches ANL-30-74 %% 1769 ["ARE TM (N1) 86501" ]: matches TR/AB/3-43.7-3/AB %% 1770 ["ARE-TM (N1) 86501" ]: matches TR/AB/3-43.7-3/AB %% 1771 ["ARL 69-0005" ]: matches TR/AB/3-43.7-3/AB %% 1772 ["ARL 69-0017" ]: matches TR/AB/3-43.7-3/AB %% 1773 ["ARL 69-0054" ]: matches TR/AB/3-43.7-3/AB %% 1774 ["ARL 70-0066" ]: matches TR/AB/3-43.7-3/AB %% 1775 ["ARRL TR 1018" ]: matches Computer Science Report 100 %% 1776 ["ASRL TR 1020" ]: matches Computer Science Report 100 %% 1777 ["ASRL TR 1021" ]: matches Computer Science Report 100 %% 1778 ["Arbeitspapiere der GMD, Nr. 588 0723-0508"]: matches TR/AB/3-43.7-3/AB %% 1779 ["B--180" ]: matches TR/AB/3-43.7-3/AB %% 1780 ["B--239" ]: matches TR/AB/3-43.7-3/AB %% 1781 ["B--243" ]: matches TR/AB/3-43.7-3/AB %% 1782 ["B12" ]: matches LPS0064 %% 1783 ["B57-01a" ]: matches TR/AB/3-43.7-3/AB %% 1784 ["B9" ]: matches LPS0064 %% 1785 ["BESSY TB Nr. 158" ]: matches TR/AB/3-43.7-3/AB %% 1786 ["BNL 25680." ]: matches TR/AB/3-43.7-3/AB %% 1787 ["BSC 88/15" ]: matches TR/AB/3-43.7-3/AB %% 1788 ["BU-660-M" ]: matches TR/AB/3-43.7-3/AB %% 1789 ["BU-784-M" ]: matches TR/AB/3-43.7-3/AB %% 1790 ["BUCSTR 79-01" ]: matches TR/AB/3-43.7-3/AB %% 1791 ["B\#84" ]: matches LPS0064 %% 1792 ["British Library R and D report 6155"]: matches Computer Science Report 100 %% 1793 ["C 2504-E5. N74-13290" ]: matches TR/AB/3-43.7-3/AB %% 1794 ["C.S.S. 52" ]: matches TR/AB/3-43.7-3/AB %% 1795 ["C2" ]: matches LPS0064 %% 1796 ["CAM 14" ]: matches XNSS 288811 %% 1797 ["CAM 7" ]: matches XNSS 288811 %% 1798 ["CAM 88-16" ]: matches TR/AB/3-43.7-3/AB %% 1799 ["CAM 88-21" ]: matches TR/AB/3-43.7-3/AB %% 1800 ["CAM 89-28" ]: matches TR/AB/3-43.7-3/AB %% 1801 ["CAM 92-07" ]: matches TR/AB/3-43.7-3/AB %% 1802 ["CAP-3 837" ]: matches PB-251 845 %% 1803 ["CBPF-NT-001/88" ]: matches TR/AB/3-43.7-3/AB %% 1804 ["CC-147" ]: matches TR-2189 %% 1805 ["CC-151" ]: matches TR-2189 %% 1806 ["CC-152" ]: matches TR-2189 %% 1807 ["CC-153" ]: matches TR-2189 %% 1808 ["CC-154" ]: matches TR-2189 %% 1809 ["CC-156" ]: matches TR-2189 %% 1810 ["CC-158" ]: matches TR-2189 %% 1811 ["CC-161" ]: matches TR-2189 %% 1812 ["CC-163" ]: matches TR-2189 %% 1813 ["CC-164-4" ]: matches ANL-30-74 %% 1814 ["CC-200-2" ]: matches ANL-30-74 %% 1815 ["CC-60" ]: matches TR-2189 %% 1816 ["CC-71" ]: matches TR-2189 %% 1817 ["CC-93" ]: matches TR-2189 %% 1818 ["CCRL-3" ]: matches TR-2189 %% 1819 ["CCRL-8" ]: matches TR-2189 %% 1820 ["CCS 206" ]: matches XNSS 288811 %% 1821 ["CCS 86/10" ]: matches TR/AB/3-43.7-3/AB %% 1822 ["CCS~501" ]: matches TR/AB/3-43.7-3/AB %% 1823 ["CCUM 7" ]: matches XNSS 288811 %% 1824 ["CDC 14.2.6" ]: matches TR/AB/3-43.7-3/AB %% 1825 ["CES-88-24" ]: matches ANL-30-74 %% 1826 ["CES-94-??" ]: matches TR/AB/3-43.7-3/AB %% 1827 ["CFDL-TR-87-11" ]: matches UMIAC-TR-89-11 %% 1828 ["CICS--P--169" ]: matches TR/AB/3-43.7-3/AB %% 1829 ["CIS-83-34" ]: matches ANL-30-74 %% 1830 ["CIS-TR-88-16" ]: matches UMIAC-TR-89-11 %% 1831 ["CLNS-197" ]: matches TR-2189 %% 1832 ["CLNS-209" ]: matches TR-2189 %% 1833 ["CM--286" ]: matches TR/AB/3-43.7-3/AB %% 1834 ["CMI 88/45052-1" ]: matches TR/AB/3-43.7-3/AB %% 1835 ["CMPT TR 81-6" ]: matches TR/AB/3-43.7-3/AB %% 1836 ["CMPT TR 83-4" ]: matches TR/AB/3-43.7-3/AB %% 1837 ["CMU-CS-78-125" ]: matches UMIAC-TR-89-11 %% 1838 ["CMU-CS-78-141" ]: matches UMIAC-TR-89-11 %% 1839 ["CMU-CS-80-125" ]: matches UMIAC-TR-89-11 %% 1840 ["CMU-CS-80-131" ]: matches UMIAC-TR-89-11 %% 1841 ["CMU-CS-84-141" ]: matches UMIAC-TR-89-11 %% 1842 ["CMU-CS-85-187" ]: matches UMIAC-TR-89-11 %% 1843 ["CMU-CS-86-168" ]: matches UMIAC-TR-89-11 %% 1844 ["CMU-CS-87-109" ]: matches UMIAC-TR-89-11 %% 1845 ["CMU-CS-88-135" ]: matches UMIAC-TR-89-11 %% 1846 ["CMU-CS-89-111" ]: matches UMIAC-TR-89-11 %% 1847 ["CMU-CS-89-129" ]: matches UMIAC-TR-89-11 %% 1848 ["CMU-CS-89-207" ]: matches UMIAC-TR-89-11 %% 1849 ["CMU-CS-89-209" ]: matches UMIAC-TR-89-11 %% 1850 ["CMU-CS-90-102" ]: matches UMIAC-TR-89-11 %% 1851 ["CMU-CS-90-137" ]: matches UMIAC-TR-89-11 %% 1852 ["CMU-CS-90-139" ]: matches UMIAC-TR-89-11 %% 1853 ["CMU-CS-90-184" ]: matches UMIAC-TR-89-11 %% 1854 ["CMU-CS-91-106" ]: matches UMIAC-TR-89-11 %% 1855 ["CMU-CS-91-111" ]: matches UMIAC-TR-89-11 %% 1856 ["CMU-CS-91-161" ]: matches UMIAC-TR-89-11 %% 1857 ["CMU-CS-91-205" ]: matches UMIAC-TR-89-11 %% 1858 ["CMU-CS-92-163" ]: matches UMIAC-TR-89-11 %% 1859 ["CMU-CS-93-124" ]: matches UMIAC-TR-89-11 %% 1860 ["CMU-CS-93-151" ]: matches UMIAC-TR-89-11 %% 1861 ["CMU-CS-93-164" ]: matches UMIAC-TR-89-11 %% 1862 ["CMU-CS-94-125" ]: matches UMIAC-TR-89-11 %% 1863 ["CMU-CS-94-200" ]: matches UMIAC-TR-89-11 %% 1864 ["CMU-SEI-92-34" ]: matches UMIAC-TR-89-11 %% 1865 ["CN -28/F-14" ]: matches TR/AB/3-43.7-3/AB %% 1866 ["CN-22" ]: matches TR-2189 %% 1867 ["CN-22.2" ]: matches TR/AB/3-43.7-3/AB %% 1868 ["CNA--126" ]: matches TR/AB/3-43.7-3/AB %% 1869 ["CNA--139" ]: matches TR/AB/3-43.7-3/AB %% 1870 ["CNA--150" ]: matches TR/AB/3-43.7-3/AB %% 1871 ["CNA--164" ]: matches TR/AB/3-43.7-3/AB %% 1872 ["CNA--173" ]: matches TR/AB/3-43.7-3/AB %% 1873 ["CNA--18" ]: matches TR/AB/3-43.7-3/AB %% 1874 ["CNA--189" ]: matches TR/AB/3-43.7-3/AB %% 1875 ["CNA--191" ]: matches TR/AB/3-43.7-3/AB %% 1876 ["CNA--200" ]: matches TR/AB/3-43.7-3/AB %% 1877 ["CNA--216" ]: matches TR/AB/3-43.7-3/AB %% 1878 ["CNA--220" ]: matches TR/AB/3-43.7-3/AB %% 1879 ["CNA--222" ]: matches TR/AB/3-43.7-3/AB %% 1880 ["CNA--228" ]: matches TR/AB/3-43.7-3/AB %% 1881 ["CNA--23" ]: matches TR/AB/3-43.7-3/AB %% 1882 ["CNA--232" ]: matches TR/AB/3-43.7-3/AB %% 1883 ["CNA--24" ]: matches TR/AB/3-43.7-3/AB %% 1884 ["CNA--240" ]: matches TR/AB/3-43.7-3/AB %% 1885 ["CNA--244" ]: matches TR/AB/3-43.7-3/AB %% 1886 ["CNA--249" ]: matches TR/AB/3-43.7-3/AB %% 1887 ["CNA--250" ]: matches TR/AB/3-43.7-3/AB %% 1888 ["CNA--255" ]: matches TR/AB/3-43.7-3/AB %% 1889 ["CNA--26" ]: matches TR/AB/3-43.7-3/AB %% 1890 ["CNA--33" ]: matches TR/AB/3-43.7-3/AB %% 1891 ["CNA--52" ]: matches TR/AB/3-43.7-3/AB %% 1892 ["CNA--90" ]: matches TR/AB/3-43.7-3/AB %% 1893 ["CNA-139" ]: matches TR-2189 %% 1894 ["CNA-150" ]: matches TR-2189 %% 1895 ["CNA-164" ]: matches TR-2189 %% 1896 ["CNA-173" ]: matches TR-2189 %% 1897 ["CNA-189" ]: matches TR-2189 %% 1898 ["CNA-191" ]: matches TR-2189 %% 1899 ["CNA-198" ]: matches TR-2189 %% 1900 ["CNA-199" ]: matches TR-2189 %% 1901 ["CNA-202" ]: matches TR-2189 %% 1902 ["CNA-208" ]: matches TR-2189 %% 1903 ["CNA-222" ]: matches TR-2189 %% 1904 ["CNA-232" ]: matches TR-2189 %% 1905 ["CNA-244" ]: matches TR-2189 %% 1906 ["CNA-250" ]: matches TR-2189 %% 1907 ["CNA-26" ]: matches TR-2189 %% 1908 ["CNA-33" ]: matches TR-2189 %% 1909 ["CNA-52" ]: matches TR-2189 %% 1910 ["CNC/1993/028" ]: matches TR/AB/3-43.7-3/AB %% 1911 ["COINS 87-134" ]: matches TR/AB/3-43.7-3/AB %% 1912 ["COINS TR 91-13" ]: matches TR/AB/3-43.7-3/AB %% 1913 ["COMP TR85-16" ]: matches TR/AB/3-43.7-3/AB %% 1914 ["COMP TR86-38" ]: matches TR/AB/3-43.7-3/AB %% 1915 ["COMP TR90-14" ]: matches TR/AB/3-43.7-3/AB %% 1916 ["COMP TR91-149" ]: matches TR/AB/3-43.7-3/AB %% 1917 ["COMP TR91-15" ]: matches TR/AB/3-43.7-3/AB %% 1918 ["COMP TR91-154" ]: matches TR/AB/3-43.7-3/AB %% 1919 ["COMP TR91-160" ]: matches TR/AB/3-43.7-3/AB %% 1920 ["COMP TR91-169" ]: matches TR/AB/3-43.7-3/AB %% 1921 ["COMP TR91-170" ]: matches TR/AB/3-43.7-3/AB %% 1922 ["COMP TR92-178" ]: matches TR/AB/3-43.7-3/AB %% 1923 ["COMP TR92-198" ]: matches TR/AB/3-43.7-3/AB %% 1924 ["COMP TR93-203" ]: matches TR/AB/3-43.7-3/AB %% 1925 ["COMP TR93-213" ]: matches TR/AB/3-43.7-3/AB %% 1926 ["COMP TR93-918" ]: matches TR/AB/3-43.7-3/AB %% 1927 ["CORR 83-11" ]: matches TR/AB/3-43.7-3/AB %% 1928 ["CORR 83-2" ]: matches TR/AB/3-43.7-3/AB %% 1929 ["CORR 84-1" ]: matches TR/AB/3-43.7-3/AB %% 1930 ["CORR 86-23" ]: matches TR/AB/3-43.7-3/AB %% 1931 ["CORR 86-29" ]: matches TR/AB/3-43.7-3/AB %% 1932 ["CORR 93-18" ]: matches TR/AB/3-43.7-3/AB %% 1933 ["CORR Report 94-32" ]: matches TR/AB/3-43.7-3/AB %% 1934 ["CP 74028" ]: matches XNSS 288811 %% 1935 ["CP 78" ]: matches XNSS 288811 %% 1936 ["CP-2012" ]: matches TR-2189 %% 1937 ["CP-390" ]: matches TR-2189 %% 1938 ["CP-391" ]: matches TR-2189 %% 1939 ["CP-700011" ]: matches TR-2189 %% 1940 ["CP-72009" ]: matches TR-2189 %% 1941 ["CP-72017" ]: matches TR-2189 %% 1942 ["CP-72022" ]: matches TR-2189 %% 1943 ["CPT-88" ]: matches TR-2189 %% 1944 ["CR-2032" ]: matches TR-2189 %% 1945 ["CR-R; 84009" ]: matches TR/AB/3-43.7-3/AB %% 1946 ["CRHC-91-21" ]: matches ANL-30-74 %% 1947 ["CRL 91/1 (Revised)" ]: matches TR/AB/3-43.7-3/AB %% 1948 ["CRPC-TR90079" ]: matches TR/AB/3-43.7-3/AB %% 1949 ["CRSC-TR94-10" ]: matches TN-K\slash 27-70 %% 1950 ["CRSC-TR95-12" ]: matches TN-K\slash 27-70 %% 1951 ["CRT-750" ]: matches TR-2189 %% 1952 ["CRT-794" ]: matches TR-2189 %% 1953 ["CRT-807" ]: matches TR-2189 %% 1954 ["CRT-866" ]: matches TR-2189 %% 1955 ["CRT-867" ]: matches TR-2189 %% 1956 ["CRT-920" ]: matches TR-2189 %% 1957 ["CS 142" ]: matches XNSS 288811 %% 1958 ["CS 150" ]: matches XNSS 288811 %% 1959 ["CS 157" ]: matches XNSS 288811 %% 1960 ["CS 252" ]: matches XNSS 288811 %% 1961 ["CS 367A" ]: matches Computer Science Report 100 %% 1962 ["CS 59" ]: matches XNSS 288811 %% 1963 ["CS 60" ]: matches XNSS 288811 %% 1964 ["CS 7708" ]: matches XNSS 288811 %% 1965 ["CS 7714" ]: matches XNSS 288811 %% 1966 ["CS 7808" ]: matches XNSS 288811 %% 1967 ["CS TR 1144" ]: matches Computer Science Report 100 %% 1968 ["CS TR 708" ]: matches Computer Science Report 100 %% 1969 ["CS--90--32" ]: matches TR/AB/3-43.7-3/AB %% 1970 ["CS--91--02" ]: matches TR/AB/3-43.7-3/AB %% 1971 ["CS--91--04" ]: matches TR/AB/3-43.7-3/AB %% 1972 ["CS--TR--303--91" ]: matches TR/AB/3-43.7-3/AB %% 1973 ["CS-142" ]: matches TR-2189 %% 1974 ["CS-186" ]: matches TR-2189 %% 1975 ["CS-1984-13" ]: matches ANL-30-74 %% 1976 ["CS-72-270" ]: matches ANL-30-74 %% 1977 ["CS-78-19" ]: matches ANL-30-74 %% 1978 ["CS-80-13" ]: matches ANL-30-74 %% 1979 ["CS-81-25" ]: matches ANL-30-74 %% 1980 ["CS-82-40" ]: matches ANL-30-74 %% 1981 ["CS-83-06" ]: matches ANL-30-74 %% 1982 ["CS-83-10" ]: matches ANL-30-74 %% 1983 ["CS-83-16" ]: matches ANL-30-74 %% 1984 ["CS-83-41" ]: matches ANL-30-74 %% 1985 ["CS-84-04" ]: matches ANL-30-74 %% 1986 ["CS-84-13" ]: matches ANL-30-74 %% 1987 ["CS-84-2" ]: matches ANL-30-74 %% 1988 ["CS-84-22" ]: matches ANL-30-74 %% 1989 ["CS-85-01" ]: matches ANL-30-74 %% 1990 ["CS-85-56" ]: matches ANL-30-74 %% 1991 ["CS-86-11" ]: matches ANL-30-74 %% 1992 ["CS-86-14" ]: matches ANL-30-74 %% 1993 ["CS-87-01" ]: matches ANL-30-74 %% 1994 ["CS-87-02" ]: matches ANL-30-74 %% 1995 ["CS-87-08" ]: matches ANL-30-74 %% 1996 ["CS-87-17" ]: matches ANL-30-74 %% 1997 ["CS-87-24" ]: matches ANL-30-74 %% 1998 ["CS-87-27" ]: matches ANL-30-74 %% 1999 ["CS-88-10" ]: matches ANL-30-74 %% 2000 ["CS-88-13" ]: matches ANL-30-74 %% 2001 ["CS-88-19" ]: matches ANL-30-74 %% 2002 ["CS-88-33" ]: matches ANL-30-74 %% 2003 ["CS-88-35" ]: matches ANL-30-74 %% 2004 ["CS-89-61" ]: matches ANL-30-74 %% 2005 ["CS-89-85" ]: matches ANL-30-74 %% 2006 ["CS-89-87" ]: matches ANL-30-74 %% 2007 ["CS-89-89" ]: matches ANL-30-74 %% 2008 ["CS-89-90" ]: matches ANL-30-74 %% 2009 ["CS-89-92" ]: matches ANL-30-74 %% 2010 ["CS-90-103" ]: matches ANL-30-74 %% 2011 ["CS-90-105" ]: matches ANL-30-74 %% 2012 ["CS-90-115" ]: matches ANL-30-74 %% 2013 ["CS-90-116" ]: matches ANL-30-74 %% 2014 ["CS-90-117" ]: matches ANL-30-74 %% 2015 ["CS-90-118" ]: matches ANL-30-74 %% 2016 ["CS-90-23" ]: matches ANL-30-74 %% 2017 ["CS-9003-09" ]: matches ANL-30-74 %% 2018 ["CS-91-130 and ORNL/TM-12006"]: matches TR/AB/3-43.7-3/AB %% 2019 ["CS-91-134" ]: matches ANL-30-74 %% 2020 ["CS-91-137" ]: matches ANL-30-74 %% 2021 ["CS-91-138" ]: matches ANL-30-74 %% 2022 ["CS-91-139" ]: matches ANL-30-74 %% 2023 ["CS-91-142" ]: matches ANL-30-74 %% 2024 ["CS-91-146" ]: matches ANL-30-74 %% 2025 ["CS-92-01, revised" ]: matches TR/AB/3-43.7-3/AB %% 2026 ["CS-92-167" ]: matches ANL-30-74 %% 2027 ["CS-92-168" ]: matches ANL-30-74 %% 2028 ["CS-92-181" ]: matches ANL-30-74 %% 2029 ["CS-92-21" ]: matches ANL-30-74 %% 2030 ["CS-92-33" ]: matches ANL-30-74 %% 2031 ["CS-92-55" ]: matches ANL-30-74 %% 2032 ["CS-93-01" ]: matches ANL-30-74 %% 2033 ["CS-93-02" ]: matches ANL-30-74 %% 2034 ["CS-93-2" ]: matches ANL-30-74 %% 2035 ["CS-93-214" ]: matches ANL-30-74 %% 2036 ["CS-93-27" ]: matches ANL-30-74 %% 2037 ["CS-94-228" ]: matches ANL-30-74 %% 2038 ["CS-94-233" ]: matches ANL-30-74 %% 2039 ["CS-94-236" ]: matches ANL-30-74 %% 2040 ["CS-94-239" ]: matches ANL-30-74 %% 2041 ["CS-94-244" ]: matches ANL-30-74 %% 2042 ["CS-94-250" ]: matches ANL-30-74 %% 2043 ["CS-94-257" ]: matches ANL-30-74 %% 2044 ["CS-95-290" ]: matches ANL-30-74 %% 2045 ["CS-95-291" ]: matches ANL-30-74 %% 2046 ["CS-95-301" ]: matches ANL-30-74 %% 2047 ["CS-TR 2539" ]: matches TR/AB/3-43.7-3/AB %% 2048 ["CS-TR 2626" ]: matches TR/AB/3-43.7-3/AB %% 2049 ["CS-TR 3045" ]: matches TR/AB/3-43.7-3/AB %% 2050 ["CS-TR-1705" ]: matches CS-TR-2189 %% 2051 ["CS-TR-2030" ]: matches CS-TR-2189 %% 2052 ["CS-TR-2305" ]: matches CS-TR-2189 %% 2053 ["CS-TR-2403, UMIACS-TR-90-16"]: matches TR/AB/3-43.7-3/AB %% 2054 ["CS-TR-2908" ]: matches CS-TR-2189 %% 2055 ["CS-TR-310-91" ]: matches UMIAC-TR-89-11 %% 2056 ["CS-TR-3268" ]: matches CS-TR-2189 %% 2057 ["CS-TR-3268.1" ]: matches CS-TR-21.7 %% 2058 ["CS-TR-351-91" ]: matches UMIAC-TR-89-11 %% 2059 ["CS-TR-412-93" ]: matches UMIAC-TR-89-11 %% 2060 ["CS-TR-750" ]: matches CS-TR-2189 %% 2061 ["CS-TR2907 (UMIACS-TR-92-60)"]: matches TR/AB/3-43.7-3/AB %% 2062 ["CS-xx-yyy" ]: matches TR/AB/3-43.7-3/AB %% 2063 ["CS/82/5" ]: matches TR/AB/3-43.7-3/AB %% 2064 ["CS81-1 (Revised)" ]: matches TR/AB/3-43.7-3/AB %% 2065 ["CS81-1" ]: matches SP43-29 %% 2066 ["CSD 92/693" ]: matches TR/AB/3-43.7-3/AB %% 2067 ["CSD-890044" ]: matches TR-2189 %% 2068 ["CSD-TR 516" ]: matches TR/AB/3-43.7-3/AB %% 2069 ["CSD-TR-408" ]: matches CS-TR-2189 %% 2070 ["CSD-TR-433" ]: matches CS-TR-2189 %% 2071 ["CSD-TR-576" ]: matches CS-TR-2189 %% 2072 ["CSD-TR-612" ]: matches CS-TR-2189 %% 2073 ["CSD-TR-661" ]: matches CS-TR-2189 %% 2074 ["CSD-TR-688" ]: matches CS-TR-2189 %% 2075 ["CSD-TR-735" ]: matches CS-TR-2189 %% 2076 ["CSD-TR-745" ]: matches CS-TR-2189 %% 2077 ["CSD-TR-93-059" ]: matches UMIAC-TR-89-11 %% 2078 ["CSDG 78-2" ]: matches TR/AB/3-43.7-3/AB %% 2079 ["CSDG 81-1" ]: matches TR/AB/3-43.7-3/AB %% 2080 ["CSDG" ]: matches Computer Science Report 100 %% 2081 ["CSDG-80-1" ]: matches ANL-30-74 %% 2082 ["CSDG-83-3" ]: matches ANL-30-74 %% 2083 ["CSE 7910" ]: matches XNSS 288811 %% 2084 ["CSE-93-19" ]: matches ANL-30-74 %% 2085 ["CSE89-91" ]: matches SP43-29 %% 2086 ["CSL-79-3" ]: matches ANL-30-74 %% 2087 ["CSL-81-12" ]: matches ANL-30-74 %% 2088 ["CSL-89-9" ]: matches ANL-30-74 %% 2089 ["CSL-93-3" ]: matches ANL-30-74 %% 2090 ["CSL-TR-93-554" ]: matches UMIAC-TR-89-11 %% 2091 ["CSR-94-81" ]: matches ANL-30-74 %% 2092 ["CSRC 966" ]: matches XNSS 288811 %% 2093 ["CSRD 1041" ]: matches XNSS 288811 %% 2094 ["CSRD 601" ]: matches XNSS 288811 %% 2095 ["CSRD 624" ]: matches XNSS 288811 %% 2096 ["CSRD 665" ]: matches XNSS 288811 %% 2097 ["CSRD 731" ]: matches XNSS 288811 %% 2098 ["CSRD 785" ]: matches XNSS 288811 %% 2099 ["CSRD 983" ]: matches XNSS 288811 %% 2100 ["CSRD No. 860, UILU-ENG-89-8003"]: matches TR/AB/3-43.7-3/AB %% 2101 ["CSS 155, 1984" ]: matches TR/AB/3-43.7-3/AB %% 2102 ["CSS 171" ]: matches XNSS 288811 %% 2103 ["CSS 214" ]: matches XNSS 288811 %% 2104 ["CSS-210" ]: matches TR-2189 %% 2105 ["CSS-211" ]: matches TR-2189 %% 2106 ["CSS-229" ]: matches TR-2189 %% 2107 ["CSS213" ]: matches LPS0064 %% 2108 ["CSTR 89-7" ]: matches TR/AB/3-43.7-3/AB %% 2109 ["CTC 90 TR26" ]: matches Computer Science Report 100 %% 2110 ["CTC 91 TR85" ]: matches Computer Science Report 100 %% 2111 ["CTC 92 TR115" ]: matches Computer Science Report 100 %% 2112 ["CTC 93 TR126" ]: matches Computer Science Report 100 %% 2113 ["CTC 94 TR172" ]: matches Computer Science Report 100 %% 2114 ["CTC92TR100" ]: matches Computer Science Report 100 %% 2115 ["CTS WN 26" ]: matches Computer Science Report 100 %% 2116 ["CU-CS-420-89" ]: matches UMIAC-TR-89-11 %% 2117 ["CU-CS-534-91" ]: matches UMIAC-TR-89-11 %% 2118 ["CU-CS-579-92" ]: matches UMIAC-TR-89-11 %% 2119 ["CU-CS-623-92" ]: matches UMIAC-TR-89-11 %% 2120 ["CU-CS-682-93" ]: matches UMIAC-TR-89-11 %% 2121 ["CUED/F-CAMS/TR.241" ]: matches TR/AB/3-43.7-3/AB %% 2122 ["CUED/F-CAMS/TR.242" ]: matches TR/AB/3-43.7-3/AB %% 2123 ["CUED/F-CAMS/TR.248" ]: matches TR/AB/3-43.7-3/AB %% 2124 ["Computer Science Report 100"]: matches Computer Science Report 100 %% 2125 ["Computer Science Report 91"]: matches Computer Science Report 100 %% 2126 ["Computer Science Technical Report 89"]: matches Computer Science Report 100 %% 2127 ["Contract no. AD/A-056 839CU-CS-129-78"]: matches TR/AB/3-43.7-3/AB %% 2128 ["D 889778" ]: matches XNSS 288811 %% 2129 ["D--134, Rev. B" ]: matches TR/AB/3-43.7-3/AB %% 2130 ["D-6545" ]: matches TR-2189 %% 2131 ["D-6734" ]: matches TR-2189 %% 2132 ["D-6959" ]: matches TR-2189 %% 2133 ["D-7329" ]: matches TR-2189 %% 2134 ["D-8020" ]: matches TR-2189 %% 2135 ["D-91-13" ]: matches ANL-30-74 %% 2136 ["D-92-08" ]: matches ANL-30-74 %% 2137 ["D-93-05" ]: matches ANL-30-74 %% 2138 ["DAIMI FN-19" ]: matches TR/AB/3-43.7-3/AB %% 2139 ["DAIMI PB - 345" ]: matches TR/AB/3-43.7-3/AB %% 2140 ["DAIMI PB - 355" ]: matches TR/AB/3-43.7-3/AB %% 2141 ["DAIMI PB - 357" ]: matches TR/AB/3-43.7-3/AB %% 2142 ["DAIMI-PB - 318" ]: matches TR/AB/3-43.7-3/AB %% 2143 ["DCS/RR-783" ]: matches TR/AB/3-43.7-3/AB %% 2144 ["DCS/RR-826" ]: matches TR/AB/3-43.7-3/AB %% 2145 ["DD 84-14" ]: matches TR/AB/3-43.7-3/AB %% 2146 ["DD/85/18" ]: matches TR/AB/3-43.7-3/AB %% 2147 ["DEC-TR-566" ]: matches CS-TR-2189 %% 2148 ["DEC-TR-593" ]: matches CS-TR-2189 %% 2149 ["DECUS No. 10-21" ]: matches TR/AB/3-43.7-3/AB %% 2150 ["DITC 12/82" ]: matches TR/AB/3-43.7-3/AB %% 2151 ["DITC 192/91" ]: matches TR/AB/3-43.7-3/AB %% 2152 ["DITC 200/92" ]: matches TR/AB/3-43.7-3/AB %% 2153 ["DITC 203/92" ]: matches TR/AB/3-43.7-3/AB %% 2154 ["DITC 214/93" ]: matches TR/AB/3-43.7-3/AB %% 2155 ["DITC 23/83" ]: matches TR/AB/3-43.7-3/AB %% 2156 ["DITC 8/82" ]: matches TR/AB/3-43.7-3/AB %% 2157 ["DKBS-TR-94-5" ]: matches UMIAC-TR-89-11 %% 2158 ["DMS-618-IR" ]: matches TR/AB/3-43.7-3/AB %% 2159 ["DMS-646-IR" ]: matches TR/AB/3-43.7-3/AB %% 2160 ["DNACS 10/78" ]: matches TR/AB/3-43.7-3/AB %% 2161 ["DNACS 13/79" ]: matches TR/AB/3-43.7-3/AB %% 2162 ["DNACS 30/80" ]: matches TR/AB/3-43.7-3/AB %% 2163 ["DNACS 34/80" ]: matches TR/AB/3-43.7-3/AB %% 2164 ["DPh-T/78-75" ]: matches TR/AB/3-43.7-3/AB %% 2165 ["Dep. Report STA" ]: matches TR/AB/3-43.7-3/AB %% 2166 ["DpH-T 43/78" ]: matches TR/AB/3-43.7-3/AB %% 2167 ["E-2637" ]: matches TR-2189 %% 2168 ["E-2700" ]: matches TR-2189 %% 2169 ["E-2779" ]: matches TR-2189 %% 2170 ["E11-87-10" ]: matches GG24-3611-00 %% 2171 ["E11-89-755" ]: matches GG24-3611-00 %% 2172 ["E2-89-286" ]: matches GG24-3611-00 %% 2173 ["E251" ]: matches LPS0064 %% 2174 ["E253" ]: matches LPS0064 %% 2175 ["E4-85-262" ]: matches GG24-3611-00 %% 2176 ["E4-85-263" ]: matches GG24-3611-00 %% 2177 ["E4-85-264" ]: matches GG24-3611-00 %% 2178 ["E5-85-39" ]: matches GG24-3611-00 %% 2179 ["E5-89-141" ]: matches GG24-3611-00 %% 2180 ["E5-91-401" ]: matches GG24-3611-00 %% 2181 ["ECS-LFCS-86-14" ]: matches UMIAC-TR-89-11 %% 2182 ["ECS-LFCS-86-2" ]: matches UMIAC-TR-89-11 %% 2183 ["ECS-LFCS-89-73 (also CSR-290-89)"]: matches TR/AB/3-43.7-3/AB %% 2184 ["ECS-LFCS-92-226" ]: matches UMIAC-TR-89-11 %% 2185 ["ECS-LFCS-93-275" ]: matches UMIAC-TR-89-11 %% 2186 ["ECS-LFCS-94-280" ]: matches UMIAC-TR-89-11 %% 2187 ["ECS-LFCS-94-303" ]: matches UMIAC-TR-89-11 %% 2188 ["EDFB-IBP 74-6" ]: matches TR/AB/3-43.7-3/AB %% 2189 ["EE-CEG-85-2" ]: matches UMIAC-TR-89-11 %% 2190 ["EE-CEG-85-7" ]: matches UMIAC-TR-89-11 %% 2191 ["EE-CEG-86-1" ]: matches UMIAC-TR-89-11 %% 2192 ["EE-CEG-86-2" ]: matches UMIAC-TR-89-11 %% 2193 ["EE-CEG-86-5" ]: matches UMIAC-TR-89-11 %% 2194 ["EE-CEG-86-7" ]: matches UMIAC-TR-89-11 %% 2195 ["EP-78-E-23" ]: matches TR/AB/3-43.7-3/AB %% 2196 ["EPA-600/4-78-001" ]: matches TR/AB/3-43.7-3/AB %% 2197 ["EPM/RT-84-6" ]: matches TR/AB/3-43.7-3/AB %% 2198 ["ER/25026--30" ]: matches TR/AB/3-43.7-3/AB %% 2199 ["ERL 269-APCL 28" ]: matches TR/AB/3-43.7-3/AB %% 2200 ["ERL SEL-32" ]: matches TR/AB/3-43.7-3/AB %% 2201 ["ERL-0545-RR" ]: matches TR/AB/3-43.7-3/AB %% 2202 ["ERL-M467" ]: matches TR/AB/3-43.7-3/AB %% 2203 ["ERL-M481" ]: matches TR/AB/3-43.7-3/AB %% 2204 ["ERLTM-SDL 14" ]: matches TR/AB/3-43.7-3/AB %% 2205 ["ES--227/90" ]: matches TR/AB/3-43.7-3/AB %% 2206 ["ES--230/90" ]: matches TR/AB/3-43.7-3/AB %% 2207 ["ES--238/90" ]: matches TR/AB/3-43.7-3/AB %% 2208 ["ES--246/91" ]: matches TR/AB/3-43.7-3/AB %% 2209 ["ESAT-KUL-88/3" ]: matches TR/AB/3-43.7-3/AB %% 2210 ["ETA-TR-43" ]: matches CS-TR-2189 %% 2211 ["ETA-TR-49" ]: matches CS-TR-2189 %% 2212 ["ETA-TR-51" ]: matches CS-TR-2189 %% 2213 ["ETA-TR-52" ]: matches CS-TR-2189 %% 2214 ["ETA-TR-53" ]: matches CS-TR-2189 %% 2215 ["ETA-TR-57" ]: matches CS-TR-2189 %% 2216 ["ETA-TR-60" ]: matches CS-TR-2189 %% 2217 ["ETA-TR-61" ]: matches CS-TR-2189 %% 2218 ["ETA-TR-85" ]: matches CS-TR-2189 %% 2219 ["ETA-TR-90" ]: matches CS-TR-2189 %% 2220 ["ETR 7/91" ]: matches TR/AB/3-43.7-3/AB %% 2221 ["F4 Bound" ]: matches Computer Science Report 100 %% 2222 ["FA-STS-991324" ]: matches CS-TR-2189 %% 2223 ["FAO-2" ]: matches TR-2189 %% 2224 ["FAO-70-L" ]: matches TR/AB/3-43.7-3/AB %% 2225 ["FCVS66-VSR205. ADA040385"]: matches TR/AB/3-43.7-3/AB %% 2226 ["FCVS66-VSR210. ADA040392"]: matches TR/AB/3-43.7-3/AB %% 2227 ["FCVS78-VSR806" ]: matches TR/AB/3-43.7-3/AB %% 2228 ["FF-X-6" ]: matches CS-TR-2189 %% 2229 ["FHWA-IP-79-5" ]: matches UMIAC-TR-89-11 %% 2230 ["FHWA-TS-79-222" ]: matches UMIAC-TR-89-11 %% 2231 ["FMR-X-23" ]: matches CS-TR-2189 %% 2232 ["FMR-X-42" ]: matches CS-TR-2189 %% 2233 ["FMR-X-7" ]: matches CS-TR-2189 %% 2234 ["FMR-X-78" ]: matches CS-TR-2189 %% 2235 ["FN--535" ]: matches TR/AB/3-43.7-3/AB %% 2236 ["FR/PA/93/19" ]: matches TR/AB/3-43.7-3/AB %% 2237 ["FRA-ORD and D-74-6" ]: matches TR/AB/3-43.7-3/AB %% 2238 ["FS-81-2" ]: matches ANL-30-74 %% 2239 ["FS81-2" ]: matches SP43-29 %% 2240 ["FSU-SCRI-87-30" ]: matches UMIAC-TR-89-11 %% 2241 ["FSU-SCRI-87-43" ]: matches UMIAC-TR-89-11 %% 2242 ["FSU-SCRI-90-91" ]: matches UMIAC-TR-89-11 %% 2243 ["FSU-SCRI-94-06" ]: matches UMIAC-TR-89-11 %% 2244 ["FTD-HC-23-897-74" ]: matches TR/AB/3-43.7-3/AB %% 2245 ["G--89--25" ]: matches TR/AB/3-43.7-3/AB %% 2246 ["G1/1" ]: matches TR/AB/3-43.7-3/AB %% 2247 ["G2/1" ]: matches TR/AB/3-43.7-3/AB %% 2248 ["G320-3490" ]: matches SP43-29 %% 2249 ["G4550-CM-39" ]: matches TR/AB/3-43.7-3/AB %% 2250 ["GAO/IMTEC-92-26" ]: matches TR/AB/3-43.7-3/AB %% 2251 ["GAS/OP/MCL; TM-248" ]: matches TR/AB/3-43.7-3/AB %% 2252 ["GER-16109" ]: matches TR-2189 %% 2253 ["GG24-3611-00" ]: matches GG24-3611-00 %% 2254 ["GIT-ICS; 82/10" ]: matches TR/AB/3-43.7-3/AB %% 2255 ["GIT-SERC-86/02, GIT-ICS-85/06"]: matches TR/AB/3-43.7-3/AB %% 2256 ["GJBX 10(81)" ]: matches RJ 34(49) %% 2257 ["GJBX 11(81)" ]: matches RJ 34(49) %% 2258 ["GJBX 192-82" ]: matches TR/AB/3-43.7-3/AB %% 2259 ["GJBX 193-82" ]: matches TR/AB/3-43.7-3/AB %% 2260 ["GJBX 246(80)" ]: matches RJ 34(49) %% 2261 ["GJBX 247(80)" ]: matches RJ 34(49) %% 2262 ["GJBX 248(80)" ]: matches RJ 34(49) %% 2263 ["GMR-5174" ]: matches TR-2189 %% 2264 ["GMR-5299" ]: matches TR-2189 %% 2265 ["GN33-9342" ]: matches SP43-29 %% 2266 ["GS1976/236" ]: matches TR/AB/3-43.7-3/AB %% 2267 ["GU TPA 88/12-1" ]: matches TR/AB/3-43.7-3/AB %% 2268 ["GUTPA 88/04-01" ]: matches TR/AB/3-43.7-3/AB %% 2269 ["GWU-IIST-82-20" ]: matches UMIAC-TR-89-11 %% 2270 ["HDL-TR-1942" ]: matches CS-TR-2189 %% 2271 ["HPL-90-22" ]: matches ANL-30-74 %% 2272 ["HPL-91-50" ]: matches ANL-30-74 %% 2273 ["HPL-93-42" ]: matches ANL-30-74 %% 2274 ["HPL-94-??" ]: matches TR/AB/3-43.7-3/AB %% 2275 ["HTKK-TKO-B59" ]: matches TR/AB/3-43.7-3/AB %% 2276 ["Habilitationsschrift" ]: matches Computer Science Report 100 %% 2277 ["Heft 17" ]: matches XNSS 288811 %% 2278 ["Hm-97" ]: matches TR-2189 %% 2279 ["I-140" ]: matches TR-2189 %% 2280 ["I-3" ]: matches TR-2189 %% 2281 ["I-8525" ]: matches TR-2189 %% 2282 ["I-8607" ]: matches TR-2189 %% 2283 ["I-8701" ]: matches TR-2189 %% 2284 ["I-8712" ]: matches TR-2189 %% 2285 ["I-8801" ]: matches TR-2189 %% 2286 ["I-8810" ]: matches TR-2189 %% 2287 ["I-8814" ]: matches TR-2189 %% 2288 ["I-9135" ]: matches TR-2189 %% 2289 ["I-9136" ]: matches TR-2189 %% 2290 ["I-9215" ]: matches TR-2189 %% 2291 ["I-9217" ]: matches TR-2189 %% 2292 ["I-9220" ]: matches TR-2189 %% 2293 ["I-9304" ]: matches TR-2189 %% 2294 ["IB 262-82 RO1" ]: matches TR/AB/3-43.7-3/AB %% 2295 ["IBM-E-148/8, NSF-E-872"]: matches TR/AB/3-43.7-3/AB %% 2296 ["IBM-Form GC33-6163, GN33-9342"]: matches TR/AB/3-43.7-3/AB %% 2297 ["IBM-Form Gc33-6163" ]: matches TR/AB/3-43.7-3/AB %% 2298 ["IBM-Form SA22-7093" ]: matches TR/AB/3-43.7-3/AB %% 2299 ["IBM-Form Sc33-6164" ]: matches TR/AB/3-43.7-3/AB %% 2300 ["IC/85/205" ]: matches TR/AB/3-43.7-3/AB %% 2301 ["ICMA-83-66" ]: matches ANL-30-74 %% 2302 ["ICMA-87-105" ]: matches ANL-30-74 %% 2303 ["IFI-B-66/80" ]: matches TR/AB/3-43.7-3/AB %% 2304 ["II/13" ]: matches TR/AB/3-43.7-3/AB %% 2305 ["IMMR82/067" ]: matches TR/AB/3-43.7-3/AB %% 2306 ["INF-85-11" ]: matches ANL-30-74 %% 2307 ["INF-85-12" ]: matches ANL-30-74 %% 2308 ["INF-87-4" ]: matches ANL-30-74 %% 2309 ["INF-88-36" ]: matches ANL-30-74 %% 2310 ["INFN/TC-92/05" ]: matches TR/AB/3-43.7-3/AB %% 2311 ["INP 90-42" ]: matches TR/AB/3-43.7-3/AB %% 2312 ["INP 90-62" ]: matches TR/AB/3-43.7-3/AB %% 2313 ["INP 90-71" ]: matches TR/AB/3-43.7-3/AB %% 2314 ["INP 91-46" ]: matches TR/AB/3-43.7-3/AB %% 2315 ["INP 91-56" ]: matches TR/AB/3-43.7-3/AB %% 2316 ["INS-REP.-487" ]: matches TR/AB/3-43.7-3/AB %% 2317 ["INT 273" ]: matches XNSS 288811 %% 2318 ["INTT-12" ]: matches TR-2189 %% 2319 ["INTT-17" ]: matches TR-2189 %% 2320 ["INTT-19" ]: matches TR-2189 %% 2321 ["INTT-20" ]: matches TR-2189 %% 2322 ["INTT-21" ]: matches TR-2189 %% 2323 ["INTT-28" ]: matches TR-2189 %% 2324 ["IPP 6/143" ]: matches TR/AB/3-43.7-3/AB %% 2325 ["IRCS 92 - 24" ]: matches TR/AB/3-43.7-3/AB %% 2326 ["ISA-S61.1" ]: matches TR/AB/3-43.7-3/AB %% 2327 ["ISI/RS-86-169" ]: matches TR/AB/3-43.7-3/AB %% 2328 ["ISIS-RR-93-17E" ]: matches TR/AB/3-43.7-3/AB %% 2329 ["ISL-85-8" ]: matches ANL-30-74 %% 2330 ["ISO 1539 (norme NF Z 65-110)"]: matches TR/AB/3-43.7-3/AB %% 2331 ["ISO/IEC TR 9573" ]: matches TR/AB/3-43.7-3/AB %% 2332 ["ISO/IEC TR 9573-13" ]: matches TR/AB/3-43.7-3/AB %% 2333 ["IX" ]: matches Computer Science Report 100 %% 2334 ["IfI-HH-B-71/80" ]: matches TR/AB/3-43.7-3/AB %% 2335 ["IfI-HH-M34/76" ]: matches TR/AB/3-43.7-3/AB %% 2336 ["IfI-HH-M36/76" ]: matches TR/AB/3-43.7-3/AB %% 2337 ["IfI-HH-M65/79" ]: matches TR/AB/3-43.7-3/AB %% 2338 ["Informatica 89-40" ]: matches TR/AB/3-43.7-3/AB %% 2339 ["J--91--07" ]: matches TR/AB/3-43.7-3/AB %% 2340 ["J530-82-020" ]: matches GG24-3611-00 %% 2341 ["JHU-EE 84/14" ]: matches TR/AB/3-43.7-3/AB %% 2342 ["JPL Section 366 Internal Computing Memorandum 437"]: matches Computer Science Report 100 %% 2343 ["J~88--4" ]: matches TR/AB/3-43.7-3/AB %% 2344 ["K-39/67" ]: matches TR/AB/3-43.7-3/AB %% 2345 ["K-73-1" ]: matches ANL-30-74 %% 2346 ["K/CSD/INF-81/25" ]: matches TR/AB/3-43.7-3/AB %% 2347 ["K/CSD/TM-20" ]: matches TR/AB/3-43.7-3/AB %% 2348 ["K/CSD/TM-27" ]: matches TR/AB/3-43.7-3/AB %% 2349 ["K34" ]: matches LPS0064 %% 2350 ["KFA-ZAM-IB-9322" ]: matches TR/AB/3-43.7-3/AB %% 2351 ["KFA-ZAM-IB-9401" ]: matches TR/AB/3-43.7-3/AB %% 2352 ["KFA-ZAM-IB-9404" ]: matches TR/AB/3-43.7-3/AB %% 2353 ["KFA-ZAM-IB-9410" ]: matches TR/AB/3-43.7-3/AB %% 2354 ["KFA-ZAM-IB-9414" ]: matches TR/AB/3-43.7-3/AB %% 2355 ["KFA-ZAM-IB-9415" ]: matches TR/AB/3-43.7-3/AB %% 2356 ["KFA-ZAM-IB-9417" ]: matches TR/AB/3-43.7-3/AB %% 2357 ["KFKI-1982-19" ]: matches ANL-30-74 %% 2358 ["KFKI-1984-115" ]: matches ANL-30-74 %% 2359 ["KFKI-1986-33/B" ]: matches TR/AB/3-43.7-3/AB %% 2360 ["KGN-137" ]: matches TR-2189 %% 2361 ["KGN-184" ]: matches TR-2189 %% 2362 ["KGN-190" ]: matches TR-2189 %% 2363 ["KGN-209" ]: matches TR-2189 %% 2364 ["KGN-216" ]: matches TR-2189 %% 2365 ["KGN-217" ]: matches TR-2189 %% 2366 ["KGN-219" ]: matches TR-2189 %% 2367 ["KUL-TF-79/032" ]: matches TR/AB/3-43.7-3/AB %% 2368 ["LA 7196-MS" ]: matches TR/AB/3-43.7-3/AB %% 2369 ["LA 7467-MS" ]: matches TR/AB/3-43.7-3/AB %% 2370 ["LA-10005" ]: matches TR-2189 %% 2371 ["LA-10284-MS, US-32" ]: matches TR/AB/3-43.7-3/AB %% 2372 ["LA-4531" ]: matches TR-2189 %% 2373 ["LA-6774" ]: matches TR-2189 %% 2374 ["LA-7524-MS" ]: matches TR/AB/3-43.7-3/AB %% 2375 ["LA-8609-MS" ]: matches TR/AB/3-43.7-3/AB %% 2376 ["LA-8849-MS" ]: matches TR/AB/3-43.7-3/AB %% 2377 ["LA-UR-83-1392" ]: matches UMIAC-TR-89-11 %% 2378 ["LA-UR-83-1676" ]: matches UMIAC-TR-89-11 %% 2379 ["LA-UR-84-2004" ]: matches UMIAC-TR-89-11 %% 2380 ["LA-UR-85-2393" ]: matches UMIAC-TR-89-11 %% 2381 ["LA-UR-85-3597" ]: matches UMIAC-TR-89-11 %% 2382 ["LA-UR-85-3967" ]: matches UMIAC-TR-89-11 %% 2383 ["LA-UR-86-2080" ]: matches UMIAC-TR-89-11 %% 2384 ["LA-UR-86-2890" ]: matches UMIAC-TR-89-11 %% 2385 ["LA-UR-86-3773" ]: matches UMIAC-TR-89-11 %% 2386 ["LA-UR-86-4218" ]: matches UMIAC-TR-89-11 %% 2387 ["LA-UR-86-4219" ]: matches UMIAC-TR-89-11 %% 2388 ["LA-UR-87-1522" ]: matches UMIAC-TR-89-11 %% 2389 ["LA-UR-87-2163" ]: matches UMIAC-TR-89-11 %% 2390 ["LA-UR-87-2164" ]: matches UMIAC-TR-89-11 %% 2391 ["LA-UR-87-2879" ]: matches UMIAC-TR-89-11 %% 2392 ["LA-UR-87-3136" ]: matches UMIAC-TR-89-11 %% 2393 ["LA-UR-87-3635" ]: matches UMIAC-TR-89-11 %% 2394 ["LA-UR-87-659" ]: matches UMIAC-TR-89-11 %% 2395 ["LA-UR-88-901" ]: matches UMIAC-TR-89-11 %% 2396 ["LBL 5283" ]: matches XNSS 288811 %% 2397 ["LBL-22584" ]: matches TR-2189 %% 2398 ["LCSR--TR--121" ]: matches TR/AB/3-43.7-3/AB %% 2399 ["LCSR--TR--130" ]: matches TR/AB/3-43.7-3/AB %% 2400 ["LCSR--TR--91" ]: matches TR/AB/3-43.7-3/AB %% 2401 ["LMSC 4-22-66-3" ]: matches TR/AB/3-43.7-3/AB %% 2402 ["LMSD-285875" ]: matches TR-2189 %% 2403 ["LMSD-703073" ]: matches TR-2189 %% 2404 ["LPS4004" ]: matches LPS0064 %% 2405 ["LPS5004" ]: matches LPS0064 %% 2406 ["LPS5006" ]: matches LPS0064 %% 2407 ["LPS5047" ]: matches LPS0064 %% 2408 ["LPS5086" ]: matches LPS0064 %% 2409 ["LUFTD2\slash (TFRT-7333)\slash 1040\slash (1986)"]: matches TR/AB/3-43.7-3/AB %% 2410 ["Lawrence Livermore UCRL-87522"]: matches TR/AB/3-43.7-3/AB %% 2411 ["LiTH--MAT--R--1985--10"]: matches TR/AB/3-43.7-3/AB %% 2412 ["LiTH--MAT--R--1990--02"]: matches TR/AB/3-43.7-3/AB %% 2413 ["LiTH-IDA-R-93-34" ]: matches TR/AB/3-43.7-3/AB %% 2414 ["LiTH-MAT-R-1990-11" ]: matches TR/AB/3-43.7-3/AB %% 2415 ["LiTH-MAT-R-1992-05" ]: matches TR/AB/3-43.7-3/AB %% 2416 ["LiTH-MAT-R-1992-49" ]: matches TR/AB/3-43.7-3/AB %% 2417 ["LiTH-MAT-R-1993-39" ]: matches TR/AB/3-43.7-3/AB %% 2418 ["LiTH-MAT-R-1994-19" ]: matches TR/AB/3-43.7-3/AB %% 2419 ["LiTh Mat R 1988-02" ]: matches TR/AB/3-43.7-3/AB %% 2420 ["M33" ]: matches LPS0064 %% 2421 ["M78/40" ]: matches TR/AB/3-43.7-3/AB %% 2422 ["MA/17/1024" ]: matches TR/AB/3-43.7-3/AB %% 2423 ["MAS2-CT920022" ]: matches TR/AB/3-43.7-3/AB %% 2424 ["MASC-TR82-6" ]: matches TN-K\slash 27-70 %% 2425 ["MCA-TM-23" ]: matches CS-TR-2189 %% 2426 ["MCS--P162--0790" ]: matches TR/AB/3-43.7-3/AB %% 2427 ["MCS--P180--1190" ]: matches TR/AB/3-43.7-3/AB %% 2428 ["MCS--P204--0191" ]: matches TR/AB/3-43.7-3/AB %% 2429 ["MCS--P228--0491" ]: matches TR/AB/3-43.7-3/AB %% 2430 ["MCS--P246-0691" ]: matches TR/AB/3-43.7-3/AB %% 2431 ["MCS--P263--0991" ]: matches TR/AB/3-43.7-3/AB %% 2432 ["MCS--TM--140" ]: matches TR/AB/3-43.7-3/AB %% 2433 ["MCS-P153-0692" ]: matches TN-K\slash 27-70 %% 2434 ["MCS-P179-0990" ]: matches TN-K\slash 27-70 %% 2435 ["MCS-P189-1090" ]: matches TN-K\slash 27-70 %% 2436 ["MCS-P218-0391" ]: matches TN-K\slash 27-70 %% 2437 ["MCS-P250-0791" ]: matches TN-K\slash 27-70 %% 2438 ["MCS-P268-1091" ]: matches TN-K\slash 27-70 %% 2439 ["MCS-P273-1191" ]: matches TN-K\slash 27-70 %% 2440 ["MCS-P286-0192" ]: matches TN-K\slash 27-70 %% 2441 ["MCS-P308-0592" ]: matches TN-K\slash 27-70 %% 2442 ["MCS-P330-1092" ]: matches TN-K\slash 27-70 %% 2443 ["MCS-P356-0393" ]: matches TN-K\slash 27-70 %% 2444 ["MCS-P379-0893" ]: matches TN-K\slash 27-70 %% 2445 ["MCS-P61-0289" ]: matches TN-K\slash 27-70 %% 2446 ["MCS-P69-0389" ]: matches TN-K\slash 27-70 %% 2447 ["MCS-P90-0789" ]: matches TN-K\slash 27-70 %% 2448 ["MCS-TM-129" ]: matches CS-TR-2189 %% 2449 ["MCS-TM-138" ]: matches CS-TR-2189 %% 2450 ["MCS-TM-68" ]: matches CS-TR-2189 %% 2451 ["MCS-TM-78" ]: matches CS-TR-2189 %% 2452 ["MCS-TM-80" ]: matches CS-TR-2189 %% 2453 ["MIT/LCS/TM-73" ]: matches TR/AB/3-43.7-3/AB %% 2454 ["MLM-3635" ]: matches TR-2189 %% 2455 ["MM 69-1374-26" ]: matches TR/AB/3-43.7-3/AB %% 2456 ["MM 69-1374-29" ]: matches TR/AB/3-43.7-3/AB %% 2457 ["MPI H-1985-V21" ]: matches TR/AB/3-43.7-3/AB %% 2458 ["MR 128" ]: matches XNSS 288811 %% 2459 ["MR 134" ]: matches XNSS 288811 %% 2460 ["MSSU-EIRS-ERC 94-2" ]: matches TR/AB/3-43.7-3/AB %% 2461 ["MSUCL -- 751" ]: matches TR/AB/3-43.7-3/AB %% 2462 ["MSUCL -- 755" ]: matches TR/AB/3-43.7-3/AB %% 2463 ["MSUCL -- 771" ]: matches TR/AB/3-43.7-3/AB %% 2464 ["MTP 288" ]: matches XNSS 288811 %% 2465 ["M\&A-5" ]: matches TR-2189 %% 2466 ["Math./91/1" ]: matches TR/AB/3-43.7-3/AB %% 2467 ["Math./91/2" ]: matches TR/AB/3-43.7-3/AB %% 2468 ["Math: 062090-051" ]: matches TR/AB/3-43.7-3/AB %% 2469 ["Memorandum INF-85-12" ]: matches TR/AB/3-43.7-3/AB %% 2470 ["N/89/16" ]: matches TR/AB/3-43.7-3/AB %% 2471 ["N75-12657" ]: matches SP43-29 %% 2472 ["N78-32751 NASA TM-7877"]: matches TR/AB/3-43.7-3/AB %% 2473 ["NA 87-07" ]: matches TR/AB/3-43.7-3/AB %% 2474 ["NA-91-05" ]: matches ANL-30-74 %% 2475 ["NA/131" ]: matches TR/AB/3-43.7-3/AB %% 2476 ["NA/154" ]: matches TR/AB/3-43.7-3/AB %% 2477 ["NAC 55" ]: matches XNSS 288811 %% 2478 ["NAC 69" ]: matches XNSS 288811 %% 2479 ["NAC 73" ]: matches XNSS 288811 %% 2480 ["NAC 82" ]: matches XNSS 288811 %% 2481 ["NAM 03" ]: matches XNSS 288811 %% 2482 ["NAS2-9896" ]: matches SP43-29 %% 2483 ["NAS2-9897" ]: matches SP43-29 %% 2484 ["NASA CR 189664; ICASE report 92-22"]: matches TR/AB/3-43.7-3/AB %% 2485 ["NASA CR-1478" ]: matches TR/AB/3-43.7-3/AB %% 2486 ["NASA CR-177410" ]: matches TR/AB/3-43.7-3/AB %% 2487 ["NASA CR-177462" ]: matches TR/AB/3-43.7-3/AB %% 2488 ["NASA CR-177985" ]: matches TR/AB/3-43.7-3/AB %% 2489 ["NASA CR-178364, ICASE interim report 178364"]: matches TR/AB/3-43.7-3/AB %% 2490 ["NASA CR-182806" ]: matches TR/AB/3-43.7-3/AB %% 2491 ["NASA CR-187590" ]: matches TR/AB/3-43.7-3/AB %% 2492 ["NASA CR-189623. ICASE report 92-9"]: matches TR/AB/3-43.7-3/AB %% 2493 ["NASA CR-189629" ]: matches TR/AB/3-43.7-3/AB %% 2494 ["NASA CR-191425" ]: matches TR/AB/3-43.7-3/AB %% 2495 ["NASA CR-191451; ICASE report 93-17"]: matches TR/AB/3-43.7-3/AB %% 2496 ["NASA CR-191575; ICASE report 93-92"]: matches TR/AB/3-43.7-3/AB %% 2497 ["NASA CR-194913; ICASE report no. 94-34"]: matches TR/AB/3-43.7-3/AB %% 2498 ["NASA CR-194943; ICASE report no. 94-54"]: matches TR/AB/3-43.7-3/AB %% 2499 ["NASA CR-2821" ]: matches TR/AB/3-43.7-3/AB %% 2500 ["NASA CR-2901" ]: matches TR/AB/3-43.7-3/AB %% 2501 ["NASA CR-3980" ]: matches TR/AB/3-43.7-3/AB %% 2502 ["NASA CR-3980." ]: matches TR/AB/3-43.7-3/AB %% 2503 ["NASA CR-426" ]: matches TR/AB/3-43.7-3/AB %% 2504 ["NASA CR-4265" ]: matches TR/AB/3-43.7-3/AB %% 2505 ["NASA SP-347" ]: matches TR/AB/3-43.7-3/AB %% 2506 ["NASA TM X-2967" ]: matches TR/AB/3-43.7-3/AB %% 2507 ["NASA TM100217" ]: matches PN LPS5001 %% 2508 ["NASA TN D-2579" ]: matches TR/AB/3-43.7-3/AB %% 2509 ["NASA TN D-6020" ]: matches TR/AB/3-43.7-3/AB %% 2510 ["NASA TN D-7056" ]: matches TR/AB/3-43.7-3/AB %% 2511 ["NASA TN D-734" ]: matches TR/AB/3-43.7-3/AB %% 2512 ["NASA TN D-7385" ]: matches TR/AB/3-43.7-3/AB %% 2513 ["NASA TN D-739" ]: matches TR/AB/3-43.7-3/AB %% 2514 ["NASA TN D-7391" ]: matches TR/AB/3-43.7-3/AB %% 2515 ["NASA TN D-7487" ]: matches TR/AB/3-43.7-3/AB %% 2516 ["NASA TN D-7545" ]: matches TR/AB/3-43.7-3/AB %% 2517 ["NASA TN D-7831" ]: matches TR/AB/3-43.7-3/AB %% 2518 ["NASA TN D-8063" ]: matches TR/AB/3-43.7-3/AB %% 2519 ["NASA TN D-8132" ]: matches TR/AB/3-43.7-3/AB %% 2520 ["NASA TN D-843" ]: matches TR/AB/3-43.7-3/AB %% 2521 ["NASA TN D-8430, D-8431"]: matches TR/AB/3-43.7-3/AB %% 2522 ["NASA TN D-8509 NASA" ]: matches TR/AB/3-43.7-3/AB %% 2523 ["NASA TT-20317" ]: matches TR/AB/3-43.7-3/AB %% 2524 ["NASA Technical Paper 1200"]: matches Computer Science Report 100 %% 2525 ["NASA technical memorandum NASA-TM-108019 4004232378"]: matches TR/AB/3-43.7-3/AB %% 2526 ["NASA-CR 172518" ]: matches TR/AB/3-43.7-3/AB %% 2527 ["NASA-CR 180299" ]: matches TR/AB/3-43.7-3/AB %% 2528 ["NASA-TM-89082" ]: matches CS-TR-2189 %% 2529 ["NASA-TM-89119" ]: matches CS-TR-2189 %% 2530 ["NI-80-07" ]: matches ANL-30-74 %% 2531 ["NISTIR 5287" ]: matches XNSS 288811 %% 2532 ["NISTIR 5381" ]: matches XNSS 288811 %% 2533 ["NISTIR~89--4225" ]: matches TR/AB/3-43.7-3/AB %% 2534 ["NM-8518" ]: matches TR-2189 %% 2535 ["NM-9017" ]: matches TR-2189 %% 2536 ["NM-9018" ]: matches TR-2189 %% 2537 ["NM-N8801" ]: matches TR/AB/3-43.7-3/AB %% 2538 ["NM-R8501" ]: matches TR/AB/3-43.7-3/AB %% 2539 ["NM-R8702" ]: matches TR/AB/3-43.7-3/AB %% 2540 ["NM-R8719" ]: matches TR/AB/3-43.7-3/AB %% 2541 ["NM-R8903" ]: matches TR/AB/3-43.7-3/AB %% 2542 ["NM-R8915" ]: matches TR/AB/3-43.7-3/AB %% 2543 ["NM-R9004" ]: matches TR/AB/3-43.7-3/AB %% 2544 ["NM-R9014" ]: matches TR/AB/3-43.7-3/AB %% 2545 ["NM-R9015" ]: matches TR/AB/3-43.7-3/AB %% 2546 ["NM-R9107" ]: matches TR/AB/3-43.7-3/AB %% 2547 ["NM-R9301" ]: matches TR/AB/3-43.7-3/AB %% 2548 ["NM-R9414" ]: matches TR/AB/3-43.7-3/AB %% 2549 ["NM-R9421" ]: matches TR/AB/3-43.7-3/AB %% 2550 ["NN 24" ]: matches XNSS 288811 %% 2551 ["NOC TR170" ]: matches PN LPS5001 %% 2552 ["NOC TR176" ]: matches PN LPS5001 %% 2553 ["NOC TR177" ]: matches PN LPS5001 %% 2554 ["NOC TR205" ]: matches PN LPS5001 %% 2555 ["NOC TR209" ]: matches PN LPS5001 %% 2556 ["NOC TR210" ]: matches PN LPS5001 %% 2557 ["NOC TR224" ]: matches PN LPS5001 %% 2558 ["NOC TR228" ]: matches PN LPS5001 %% 2559 ["NP 1201" ]: matches XNSS 288811 %% 2560 ["NP1168" ]: matches LPS0064 %% 2561 ["NPS-53-86-012" ]: matches TR/AB/3-43.7-3/AB %% 2562 ["NPS-MA-88-009" ]: matches UMIAC-TR-89-11 %% 2563 ["NPS-MA-89-001" ]: matches UMIAC-TR-89-11 %% 2564 ["NPS-MA-89-014" ]: matches UMIAC-TR-89-11 %% 2565 ["NPS-MA-90-004" ]: matches UMIAC-TR-89-11 %% 2566 ["NPS-MA-91-009" ]: matches UMIAC-TR-89-11 %% 2567 ["NPS-MA-92-004" ]: matches UMIAC-TR-89-11 %% 2568 ["NPS-MA-92-010" ]: matches UMIAC-TR-89-11 %% 2569 ["NPS-MA-93-014" ]: matches UMIAC-TR-89-11 %% 2570 ["NPS-MA-94-001" ]: matches UMIAC-TR-89-11 %% 2571 ["NPS-MA-94-003" ]: matches UMIAC-TR-89-11 %% 2572 ["NPS012-81-005" ]: matches GG24-3611-00 %% 2573 ["NR 15" ]: matches XNSS 288811 %% 2574 ["NSWC TR 85-54" ]: matches TR/AB/3-43.7-3/AB %% 2575 ["NUREG/CR-3624, SAND83-2365"]: matches TR/AB/3-43.7-3/AB %% 2576 ["NUREG/CR-4478, ORNL/TDMC-4, NRC FIN A9100"]: matches TR/AB/3-43.7-3/AB %% 2577 ["NW 11" ]: matches XNSS 288811 %% 2578 ["NW 18" ]: matches XNSS 288811 %% 2579 ["NW 24" ]: matches XNSS 288811 %% 2580 ["NW 3" ]: matches XNSS 288811 %% 2581 ["NW 6" ]: matches XNSS 288811 %% 2582 ["NW 66" ]: matches XNSS 288811 %% 2583 ["NW 7" ]: matches XNSS 288811 %% 2584 ["NW 8" ]: matches XNSS 288811 %% 2585 ["NW 9" ]: matches XNSS 288811 %% 2586 ["NW 93" ]: matches XNSS 288811 %% 2587 ["NW 98" ]: matches XNSS 288811 %% 2588 ["NYO-9083" ]: matches TR-2189 %% 2589 ["NYU Report No. DOE/ER/03077-277"]: matches TR/AB/3-43.7-3/AB %% 2590 ["Ni-80-03" ]: matches ANL-30-74 %% 2591 ["No. 1008" ]: matches TR/AB/3-43.7-3/AB %% 2592 ["No. 103B" ]: matches TR/AB/3-43.7-3/AB %% 2593 ["No. 105" ]: matches TR/AB/3-43.7-3/AB %% 2594 ["No. 108" ]: matches TR/AB/3-43.7-3/AB %% 2595 ["No. 1168" ]: matches TR/AB/3-43.7-3/AB %% 2596 ["No. 139" ]: matches TR/AB/3-43.7-3/AB %% 2597 ["No. 1428" ]: matches TR/AB/3-43.7-3/AB %% 2598 ["No. 1469" ]: matches TR/AB/3-43.7-3/AB %% 2599 ["No. 1470" ]: matches TR/AB/3-43.7-3/AB %% 2600 ["No. 149" ]: matches TR/AB/3-43.7-3/AB %% 2601 ["No. 17" ]: matches TR/AB/3-43.7-3/AB %% 2602 ["No. 171" ]: matches TR/AB/3-43.7-3/AB %% 2603 ["No. 172" ]: matches TR/AB/3-43.7-3/AB %% 2604 ["No. 175" ]: matches TR/AB/3-43.7-3/AB %% 2605 ["No. 176" ]: matches TR/AB/3-43.7-3/AB %% 2606 ["No. 180" ]: matches TR/AB/3-43.7-3/AB %% 2607 ["No. 182" ]: matches TR/AB/3-43.7-3/AB %% 2608 ["No. 210" ]: matches TR/AB/3-43.7-3/AB %% 2609 ["No. 22" ]: matches TR/AB/3-43.7-3/AB %% 2610 ["No. 223" ]: matches TR/AB/3-43.7-3/AB %% 2611 ["No. 237" ]: matches TR/AB/3-43.7-3/AB %% 2612 ["No. 239" ]: matches TR/AB/3-43.7-3/AB %% 2613 ["No. 241" ]: matches TR/AB/3-43.7-3/AB %% 2614 ["No. 242" ]: matches TR/AB/3-43.7-3/AB %% 2615 ["No. 254" ]: matches TR/AB/3-43.7-3/AB %% 2616 ["No. 26" ]: matches TR/AB/3-43.7-3/AB %% 2617 ["No. 265" ]: matches TR/AB/3-43.7-3/AB %% 2618 ["No. 276" ]: matches TR/AB/3-43.7-3/AB %% 2619 ["No. 277" ]: matches TR/AB/3-43.7-3/AB %% 2620 ["No. 279" ]: matches TR/AB/3-43.7-3/AB %% 2621 ["No. 28" ]: matches TR/AB/3-43.7-3/AB %% 2622 ["No. 2832" ]: matches TR/AB/3-43.7-3/AB %% 2623 ["No. 289" ]: matches TR/AB/3-43.7-3/AB %% 2624 ["No. 2xx" ]: matches TR/AB/3-43.7-3/AB %% 2625 ["No. 32" ]: matches TR/AB/3-43.7-3/AB %% 2626 ["No. 45" ]: matches TR/AB/3-43.7-3/AB %% 2627 ["No. 49" ]: matches TR/AB/3-43.7-3/AB %% 2628 ["No. 619" ]: matches TR/AB/3-43.7-3/AB %% 2629 ["No. 67" ]: matches TR/AB/3-43.7-3/AB %% 2630 ["No. 791" ]: matches TR/AB/3-43.7-3/AB %% 2631 ["No. 8201" ]: matches TR/AB/3-43.7-3/AB %% 2632 ["No. 830" ]: matches TR/AB/3-43.7-3/AB %% 2633 ["No. 86" ]: matches TR/AB/3-43.7-3/AB %% 2634 ["No. 880" ]: matches TR/AB/3-43.7-3/AB %% 2635 ["No. 881" ]: matches TR/AB/3-43.7-3/AB %% 2636 ["No. 89" ]: matches TR/AB/3-43.7-3/AB %% 2637 ["No. 90-32" ]: matches TR/AB/3-43.7-3/AB %% 2638 ["No. 91" ]: matches TR/AB/3-43.7-3/AB %% 2639 ["No. 97" ]: matches TR/AB/3-43.7-3/AB %% 2640 ["No. CS41" ]: matches TR/AB/3-43.7-3/AB %% 2641 ["No. G320-3558x" ]: matches TR/AB/3-43.7-3/AB %% 2642 ["No. UCB/ERL M77/21" ]: matches TR/AB/3-43.7-3/AB %% 2643 ["No. UCB/ERL M77/23" ]: matches TR/AB/3-43.7-3/AB %% 2644 ["Nr. 70/17" ]: matches TR/AB/3-43.7-3/AB %% 2645 ["Nr. 70/8" ]: matches TR/AB/3-43.7-3/AB %% 2646 ["Number SR-2081, Version 5.0"]: matches TR/AB/3-43.7-3/AB %% 2647 ["Numerical Analysis Manuscript 90-10"]: matches TR/AB/3-43.7-3/AB %% 2648 ["O-79-1" ]: matches ANL-30-74 %% 2649 ["ORC~87--4" ]: matches TR/AB/3-43.7-3/AB %% 2650 ["ORNL 6190" ]: matches XNSS 288811 %% 2651 ["ORNL-1574" ]: matches TR-2189 %% 2652 ["ORNL-5532" ]: matches TR-2189 %% 2653 ["ORNL-5970" ]: matches TR-2189 %% 2654 ["ORNL-6150" ]: matches TR-2189 %% 2655 ["ORNL-6190" ]: matches TR-2189 %% 2656 ["ORNL-6211" ]: matches TR-2189 %% 2657 ["ORNL-6335" ]: matches TR-2189 %% 2658 ["ORNL-NSF-EATC-7" ]: matches TR/AB/3-43.7-3/AB %% 2659 ["ORNL/CSD-48" ]: matches TR/AB/3-43.7-3/AB %% 2660 ["ORNL/CSD-59" ]: matches TR/AB/3-43.7-3/AB %% 2661 ["ORNL/CSD/TM-265" ]: matches TR/AB/3-43.7-3/AB %% 2662 ["ORNL/TM 10835" ]: matches TR/AB/3-43.7-3/AB %% 2663 ["ORNL/TM 11261" ]: matches TR/AB/3-43.7-3/AB %% 2664 ["ORNL/TM 11373" ]: matches TR/AB/3-43.7-3/AB %% 2665 ["ORNL/TM 11407" ]: matches TR/AB/3-43.7-3/AB %% 2666 ["ORNL/TM 12050" ]: matches TR/AB/3-43.7-3/AB %% 2667 ["ORNL/TM 7051" ]: matches TR/AB/3-43.7-3/AB %% 2668 ["ORNL/TM-10367" ]: matches TR/AB/3-43.7-3/AB %% 2669 ["ORNL/TM-10400" ]: matches TR/AB/3-43.7-3/AB %% 2670 ["ORNL/TM-10581" ]: matches TR/AB/3-43.7-3/AB %% 2671 ["ORNL/TM-10691" ]: matches TR/AB/3-43.7-3/AB %% 2672 ["ORNL/TM-10865" ]: matches TR/AB/3-43.7-3/AB %% 2673 ["ORNL/TM-10866" ]: matches TR/AB/3-43.7-3/AB %% 2674 ["ORNL/TM-10881" ]: matches TR/AB/3-43.7-3/AB %% 2675 ["ORNL/TM-10937" ]: matches TR/AB/3-43.7-3/AB %% 2676 ["ORNL/TM-10938" ]: matches TR/AB/3-43.7-3/AB %% 2677 ["ORNL/TM-10945" ]: matches TR/AB/3-43.7-3/AB %% 2678 ["ORNL/TM-11375" ]: matches TR/AB/3-43.7-3/AB %% 2679 ["ORNL/TM-11655" ]: matches TR/AB/3-43.7-3/AB %% 2680 ["ORNL/TM-11669" ]: matches TR/AB/3-43.7-3/AB %% 2681 ["ORNL/TM-11760" ]: matches TR/AB/3-43.7-3/AB %% 2682 ["ORNL/TM-11826" ]: matches TR/AB/3-43.7-3/AB %% 2683 ["ORNL/TM-11847" ]: matches TR/AB/3-43.7-3/AB %% 2684 ["ORNL/TM-12003" ]: matches TR/AB/3-43.7-3/AB %% 2685 ["ORNL/TM-12006" ]: matches TR/AB/3-43.7-3/AB %% 2686 ["ORNL/TM-12126" ]: matches TR/AB/3-43.7-3/AB %% 2687 ["ORNL/TM-12231" ]: matches TR/AB/3-43.7-3/AB %% 2688 ["ORNL/TM-12318" ]: matches TR/AB/3-43.7-3/AB %% 2689 ["ORNL/TM-12404" ]: matches TR/AB/3-43.7-3/AB %% 2690 ["ORNL/TM-12470" ]: matches TR/AB/3-43.7-3/AB %% 2691 ["ORNL/TM-12680" ]: matches TR/AB/3-43.7-3/AB %% 2692 ["ORNL/TM-12999" ]: matches TR/AB/3-43.7-3/AB %% 2693 ["ORNL/TM-8776" ]: matches TR/AB/3-43.7-3/AB %% 2694 ["OR~3186--90--MS" ]: matches TR/AB/3-43.7-3/AB %% 2695 ["OSD/FCTC-82/017" ]: matches TR/AB/3-43.7-3/AB %% 2696 ["OSD/FSTC-82/021 (FCVS 78)"]: matches TR/AB/3-43.7-3/AB %% 2697 ["OSU-CISRC-4\slash 87-TR9"]: matches TR/AB/3-43.7-3/AB %% 2698 ["OSU-CISRC-7/88-TR22" ]: matches TR/AB/3-43.7-3/AB %% 2699 ["OSU-CISRC-7/90-TR18" ]: matches TR/AB/3-43.7-3/AB %% 2700 ["OU-PPI, TR-85-02" ]: matches TR/AB/3-43.7-3/AB %% 2701 ["OU-PPI-TR-85-05" ]: matches TR/AB/3-43.7-3/AB %% 2702 ["P-4428" ]: matches TR-2189 %% 2703 ["P-72" ]: matches TR-2189 %% 2704 ["P-7578" ]: matches TR-2189 %% 2705 ["P10-11944" ]: matches SP43-29 %% 2706 ["P11-87-19" ]: matches GG24-3611-00 %% 2707 ["P11-87-302" ]: matches GG24-3611-00 %% 2708 ["P11-87-303" ]: matches GG24-3611-00 %% 2709 ["P11-87-452" ]: matches GG24-3611-00 %% 2710 ["P11-88-402" ]: matches GG24-3611-00 %% 2711 ["P2 - 11589" ]: matches TR/AB/3-43.7-3/AB %% 2712 ["P2-80-436" ]: matches GG24-3611-00 %% 2713 ["P2-86-825" ]: matches GG24-3611-00 %% 2714 ["P2-86-848" ]: matches GG24-3611-00 %% 2715 ["P2-88-769" ]: matches GG24-3611-00 %% 2716 ["P3" ]: matches LPS0064 %% 2717 ["PAM-212" ]: matches TR-2189 %% 2718 ["PAM-343" ]: matches TR-2189 %% 2719 ["PAM-352" ]: matches TR-2189 %% 2720 ["PAM-579" ]: matches TR-2189 %% 2721 ["PB-251 845" ]: matches PB-251 845 %% 2722 ["PB-291 725 CER76-77TJ-HJM48"]: matches TR/AB/3-43.7-3/AB %% 2723 ["PB-291 762 CER75-76TJ-HJM36"]: matches TR/AB/3-43.7-3/AB %% 2724 ["PCS-TR86-134" ]: matches TN-K\slash 27-70 %% 2725 ["PDR 3171" ]: matches XNSS 288811 %% 2726 ["PEL 126" ]: matches XNSS 288811 %% 2727 ["PFC/RR-82-4" ]: matches TR/AB/3-43.7-3/AB %% 2728 ["PN LPS5001" ]: matches PN LPS5001 %% 2729 ["PN LPS5002" ]: matches PN LPS5001 %% 2730 ["PNW GTR-211" ]: matches TR/AB/3-43.7-3/AB %% 2731 ["PP 93/061" ]: matches TR/AB/3-43.7-3/AB %% 2732 ["PPR-4-83" ]: matches ANL-30-74 %% 2733 ["PR/PA/92/10" ]: matches TR/AB/3-43.7-3/AB %% 2734 ["PRG 58" ]: matches XNSS 288811 %% 2735 ["PRG-63" ]: matches TR-2189 %% 2736 ["PRG-74" ]: matches TR-2189 %% 2737 ["PRG-TR-9-91" ]: matches UMIAC-TR-89-11 %% 2738 ["PRR 76/17" ]: matches TR/AB/3-43.7-3/AB %% 2739 ["PRR 77/9" ]: matches TR/AB/3-43.7-3/AB %% 2740 ["PS-16" ]: matches TR-2189 %% 2741 ["PUB-1255" ]: matches TR-2189 %% 2742 ["PURE, no. 44" ]: matches TR/AB/3-43.7-3/AB %% 2743 ["Preprint 690" ]: matches XNSS 288811 %% 2744 ["Preprint MCS-P144-0390"]: matches TR/AB/3-43.7-3/AB %% 2745 ["Preprint SC 88-2" ]: matches TR/AB/3-43.7-3/AB %% 2746 ["Pt 1" ]: matches XNSS 288811 %% 2747 ["Pt 10" ]: matches XNSS 288811 %% 2748 ["Pt 11" ]: matches XNSS 288811 %% 2749 ["Pt 12" ]: matches XNSS 288811 %% 2750 ["Pt 2" ]: matches XNSS 288811 %% 2751 ["Pt 3" ]: matches XNSS 288811 %% 2752 ["Pt 4" ]: matches XNSS 288811 %% 2753 ["Pt 5" ]: matches XNSS 288811 %% 2754 ["Pt 7" ]: matches XNSS 288811 %% 2755 ["Pt 8" ]: matches XNSS 288811 %% 2756 ["Pt 9" ]: matches XNSS 288811 %% 2757 ["QTP-TF-234" ]: matches CS-TR-2189 %% 2758 ["QTP.770921.01" ]: matches TR/AB/3-43.7-3/AB %% 2759 ["QTP.770927.02" ]: matches TR/AB/3-43.7-3/AB %% 2760 ["QTP.771205.03" ]: matches TR/AB/3-43.7-3/AB %% 2761 ["QTP.780503.04" ]: matches TR/AB/3-43.7-3/AB %% 2762 ["QTP.780614.05" ]: matches TR/AB/3-43.7-3/AB %% 2763 ["QTP.780703.06" ]: matches TR/AB/3-43.7-3/AB %% 2764 ["QTP.780725.07" ]: matches TR/AB/3-43.7-3/AB %% 2765 ["QTP.780822.08" ]: matches TR/AB/3-43.7-3/AB %% 2766 ["QTP.780825.09" ]: matches TR/AB/3-43.7-3/AB %% 2767 ["R-2572-1-AF" ]: matches TR/AB/3-43.7-3/AB %% 2768 ["R-73" ]: matches TR-2189 %% 2769 ["R-82-139" ]: matches ANL-30-74 %% 2770 ["R-86-1246" ]: matches ANL-30-74 %% 2771 ["R-87-1373" ]: matches ANL-30-74 %% 2772 ["R-Math-01/90 0233-2876"]: matches TR/AB/3-43.7-3/AB %% 2773 ["R.10533" ]: matches TR/AB/3-43.7-3/AB %% 2774 ["R12.1281" ]: matches TR/AB/3-43.7-3/AB %% 2775 ["R7470" ]: matches LPS0064 %% 2776 ["R8730" ]: matches LPS0064 %% 2777 ["RADC-TR-82-78" ]: matches UMIAC-TR-89-11 %% 2778 ["RAL 92-086" ]: matches TR/AB/3-43.7-3/AB %% 2779 ["RAL 92-087" ]: matches TR/AB/3-43.7-3/AB %% 2780 ["RAL 93-036" ]: matches TR/AB/3-43.7-3/AB %% 2781 ["RAL 93-055" ]: matches TR/AB/3-43.7-3/AB %% 2782 ["RAL 93-064" ]: matches TR/AB/3-43.7-3/AB %% 2783 ["RAL 93-066" ]: matches TR/AB/3-43.7-3/AB %% 2784 ["RAL 93-072" ]: matches TR/AB/3-43.7-3/AB %% 2785 ["RAL 94-019" ]: matches TR/AB/3-43.7-3/AB %% 2786 ["RAL-92-075" ]: matches ANL-30-74 %% 2787 ["RAL-92-086" ]: matches ANL-30-74 %% 2788 ["RAL-93-064" ]: matches ANL-30-74 %% 2789 ["RAL-93-072" ]: matches ANL-30-74 %% 2790 ["RAL-95-001" ]: matches ANL-30-74 %% 2791 ["RC 10260" ]: matches XNSS 288811 %% 2792 ["RC 10580" ]: matches XNSS 288811 %% 2793 ["RC 11094 (\#49829)" ]: matches TR/AB/3-43.7-3/AB %% 2794 ["RC 11407" ]: matches XNSS 288811 %% 2795 ["RC 11408 (\#51330)" ]: matches TR/AB/3-43.7-3/AB %% 2796 ["RC 11506" ]: matches XNSS 288811 %% 2797 ["RC 11676" ]: matches XNSS 288811 %% 2798 ["RC 12150" ]: matches XNSS 288811 %% 2799 ["RC 12327 (\#55257)" ]: matches TR/AB/3-43.7-3/AB %% 2800 ["RC 12515" ]: matches XNSS 288811 %% 2801 ["RC 12595 (\#56575)" ]: matches TR/AB/3-43.7-3/AB %% 2802 ["RC 12849" ]: matches XNSS 288811 %% 2803 ["RC 13245 (\#59268)" ]: matches TR/AB/3-43.7-3/AB %% 2804 ["RC 13844" ]: matches XNSS 288811 %% 2805 ["RC 14160" ]: matches XNSS 288811 %% 2806 ["RC 14211 (\#63576)" ]: matches TR/AB/3-43.7-3/AB %% 2807 ["RC 15101 (\#67356)" ]: matches TR/AB/3-43.7-3/AB %% 2808 ["RC 15202(\#67767)" ]: matches RJ 34(49) %% 2809 ["RC 19991 (88480)" ]: matches TR/AB/3-43.7-3/AB %% 2810 ["RC 20085 (88832)" ]: matches TR/AB/3-43.7-3/AB %% 2811 ["RC 3259" ]: matches XNSS 288811 %% 2812 ["RC 4608" ]: matches XNSS 288811 %% 2813 ["RC 4962" ]: matches XNSS 288811 %% 2814 ["RC 6203" ]: matches XNSS 288811 %% 2815 ["RC 7681" ]: matches XNSS 288811 %% 2816 ["RC 8348" ]: matches XNSS 288811 %% 2817 ["RC 8425 (\#36568)" ]: matches TR/AB/3-43.7-3/AB %% 2818 ["RC 8743" ]: matches XNSS 288811 %% 2819 ["RC 9009" ]: matches XNSS 288811 %% 2820 ["RC 9203 (#39787)" ]: matches TR/AB/3-43.7-3/AB %% 2821 ["RC 9577" ]: matches XNSS 288811 %% 2822 ["RC 9582 (42314)" ]: matches TR/AB/3-43.7-3/AB %% 2823 ["RC 9789" ]: matches XNSS 288811 %% 2824 ["RC-12686" ]: matches TR-2189 %% 2825 ["RC-55" ]: matches TR-2189 %% 2826 ["RC-6026" ]: matches TR-2189 %% 2827 ["RC-6903" ]: matches TR-2189 %% 2828 ["RC-8644" ]: matches TR-2189 %% 2829 ["RC11719(52739)" ]: matches TR/AB/3-43.7-3/AB %% 2830 ["RC12878" ]: matches LPS0064 %% 2831 ["RC13429" ]: matches LPS0064 %% 2832 ["RC7776" ]: matches LPS0064 %% 2833 ["RC~15030~(67093)" ]: matches TR/AB/3-43.7-3/AB %% 2834 ["RC~15886" ]: matches TR/AB/3-43.7-3/AB %% 2835 ["RFP-624" ]: matches TR-2189 %% 2836 ["RIFIS-TR-CS-105" ]: matches TR/AB/3-43.7-3/AB %% 2837 ["RIFIS-TR-CS-110" ]: matches TR/AB/3-43.7-3/AB %% 2838 ["RIFIS-TR-CS-111" ]: matches TR/AB/3-43.7-3/AB %% 2839 ["RIFIS-TR-CS-117" ]: matches TR/AB/3-43.7-3/AB %% 2840 ["RIFIS-TR-CS-122" ]: matches TR/AB/3-43.7-3/AB %% 2841 ["RJ 9925 (87305)" ]: matches TR/AB/3-43.7-3/AB %% 2842 ["RJ-1218" ]: matches TR-2189 %% 2843 ["RJ3441 (40927)" ]: matches TR/AB/3-43.7-3/AB %% 2844 ["RJ3455 (41061)" ]: matches TR/AB/3-43.7-3/AB %% 2845 ["RJ3503" ]: matches LPS0064 %% 2846 ["RJ~5923" ]: matches TR/AB/3-43.7-3/AB %% 2847 ["RJ~6327" ]: matches TR/AB/3-43.7-3/AB %% 2848 ["RJ~6486" ]: matches TR/AB/3-43.7-3/AB %% 2849 ["RJ~6638~(63949)" ]: matches TR/AB/3-43.7-3/AB %% 2850 ["RJ~7720~(71585)" ]: matches TR/AB/3-43.7-3/AB %% 2851 ["RJ~7872~(72532)" ]: matches TR/AB/3-43.7-3/AB %% 2852 ["RM-4867-PR" ]: matches TR/AB/3-43.7-3/AB %% 2853 ["RM-5618" ]: matches TR-2189 %% 2854 ["RM-5618-PR" ]: matches TR/AB/3-43.7-3/AB %% 2855 ["RM-6248-PR" ]: matches TR/AB/3-43.7-3/AB %% 2856 ["RM-86-13" ]: matches ANL-30-74 %% 2857 ["RM-88-17" ]: matches ANL-30-74 %% 2858 ["RMI 87 -- 02" ]: matches TR/AB/3-43.7-3/AB %% 2859 ["RMI 90--01" ]: matches TR/AB/3-43.7-3/AB %% 2860 ["RNR-90-022" ]: matches ANL-30-74 %% 2861 ["RNR-91-025" ]: matches ANL-30-74 %% 2862 ["RNR-93-004" ]: matches ANL-30-74 %% 2863 ["RNR-93-008" ]: matches ANL-30-74 %% 2864 ["RNR-94-013" ]: matches ANL-30-74 %% 2865 ["RR 2475" ]: matches XNSS 288811 %% 2866 ["RR No 1200" ]: matches Computer Science Report 100 %% 2867 ["RR YALEU/DCS/R-766" ]: matches TR/AB/3-43.7-3/AB %% 2868 ["RR YALEU/DCS/RR-831" ]: matches TR/AB/3-43.7-3/AB %% 2869 ["RR-520" ]: matches TR-2189 %% 2870 ["RR-616" ]: matches TR-2189 %% 2871 ["RR-629" ]: matches TR-2189 %% 2872 ["RR-91-01" ]: matches ANL-30-74 %% 2873 ["RR-91-11" ]: matches ANL-30-74 %% 2874 ["RR-91-15" ]: matches ANL-30-74 %% 2875 ["RR-92-16" ]: matches ANL-30-74 %% 2876 ["RR-92-48" ]: matches ANL-30-74 %% 2877 ["RR-93-03" ]: matches ANL-30-74 %% 2878 ["RR-93-11" ]: matches ANL-30-74 %% 2879 ["RR-93-33" ]: matches ANL-30-74 %% 2880 ["RR1698" ]: matches LPS0064 %% 2881 ["RRR~25--90" ]: matches TR/AB/3-43.7-3/AB %% 2882 ["RRR~46--89" ]: matches TR/AB/3-43.7-3/AB %% 2883 ["RRR~67--90" ]: matches TR/AB/3-43.7-3/AB %% 2884 ["RR~457" ]: matches TR/AB/3-43.7-3/AB %% 2885 ["RT-BIO (68) 1" ]: matches TR/AB/3-43.7-3/AB %% 2886 ["RT/APO/94/2" ]: matches TR/AB/3-43.7-3/AB %% 2887 ["RT/APO/94/4" ]: matches TR/AB/3-43.7-3/AB %% 2888 ["RZ-166" ]: matches TR-2189 %% 2889 ["Rand Publication CP84 (4/83)"]: matches TR/AB/3-43.7-3/AB %% 2890 ["Rap. 04.93" ]: matches TR/AB/3-43.7-3/AB %% 2891 ["Report 91-09" ]: matches TR/AB/3-43.7-3/AB %% 2892 ["Report A1.1, Alvey Project SE/065"]: matches TR/AB/3-43.7-3/AB %% 2893 ["Report A1.2, Alvey Project SE/065"]: matches TR/AB/3-43.7-3/AB %% 2894 ["Report ANL-90/3" ]: matches TR/AB/3-43.7-3/AB %% 2895 ["Res.R. No.R" ]: matches TR/AB/3-43.7-3/AB %% 2896 ["Research Report RJ 5440."]: matches TR/AB/3-43.7-3/AB %% 2897 ["Research Report YALEU/ DCS/ RR-461"]: matches TR/AB/3-43.7-3/AB %% 2898 ["Rice COMP TR476-029-4" ]: matches TR/AB/3-43.7-3/AB %% 2899 ["Ris{\o}-M-564" ]: matches CS-TR-2189 %% 2900 ["Ris{\o}-M-957" ]: matches CS-TR-2189 %% 2901 ["S-22" ]: matches TR-2189 %% 2902 ["S-22(H)" ]: matches TR/AB/3-43.7-3/AB %% 2903 ["S1" ]: matches LPS0064 %% 2904 ["S2" ]: matches LPS0064 %% 2905 ["S544-3421" ]: matches SP43-29 %% 2906 ["S701" ]: matches LPS0064 %% 2907 ["SAE\slash SP-95\slash 1080"]: matches TR-2189 %% 2908 ["SAND-77-0898" ]: matches ANL-30-74 %% 2909 ["SAND-85-2727" ]: matches ANL-30-74 %% 2910 ["SAND85-2752" ]: matches SP43-29 %% 2911 ["SAND89-8691" ]: matches SP43-29 %% 2912 ["SAND90-8723" ]: matches SP43-29 %% 2913 ["SAND91-8240" ]: matches SP43-29 %% 2914 ["SAND92-8548" ]: matches SP43-29 %% 2915 ["SARL-2" ]: matches TR-2189 %% 2916 ["SC 88-1" ]: matches TR/AB/3-43.7-3/AB %% 2917 ["SC 88-2" ]: matches TR/AB/3-43.7-3/AB %% 2918 ["SC 89-4" ]: matches TR/AB/3-43.7-3/AB %% 2919 ["SC 89-6" ]: matches TR/AB/3-43.7-3/AB %% 2920 ["SC 90-1" ]: matches TR/AB/3-43.7-3/AB %% 2921 ["SC 91--3" ]: matches TR/AB/3-43.7-3/AB %% 2922 ["SDS 90 00 03 C" ]: matches Computer Science Report 100 %% 2923 ["SEI-93-TR-4" ]: matches TR/AB/3-43.7-3/AB %% 2924 ["SERC-TR-0-P" ]: matches TR/AB/3-43.7-3/AB %% 2925 ["SERC-TR-4-P" ]: matches TR/AB/3-43.7-3/AB %% 2926 ["SERC-TR-41-P" ]: matches TR/AB/3-43.7-3/AB %% 2927 ["SERC-TR-49-F" ]: matches TR/AB/3-43.7-3/AB %% 2928 ["SERC-TR-55-P" ]: matches TR/AB/3-43.7-3/AB %% 2929 ["SERC-TR-9-P" ]: matches TR/AB/3-43.7-3/AB %% 2930 ["SERC-TR-92-P" ]: matches TR/AB/3-43.7-3/AB %% 2931 ["SETL Newsletter \#102" ]: matches Computer Science Report 100 %% 2932 ["SLAC-PUB-1118" ]: matches CS-TR-2189 %% 2933 ["SLAC-PUB-1183" ]: matches CS-TR-2189 %% 2934 ["SLAC-PUB-1188" ]: matches CS-TR-2189 %% 2935 ["SLAC-PUB-2725" ]: matches CS-TR-2189 %% 2936 ["SLAC-PUB-795" ]: matches CS-TR-2189 %% 2937 ["SLL-73-0225" ]: matches ANL-30-74 %% 2938 ["SM-0017" ]: matches TR-2189 %% 2939 ["SOL 77-7 (NTIS AD/A-044 905)"]: matches TR/AB/3-43.7-3/AB %% 2940 ["SOL 78-19" ]: matches TR/AB/3-43.7-3/AB %% 2941 ["SOL 82-10" ]: matches TR/AB/3-43.7-3/AB %% 2942 ["SOL 82-9" ]: matches TR/AB/3-43.7-3/AB %% 2943 ["SOL 83-20R" ]: matches TR/AB/3-43.7-3/AB %% 2944 ["SOL 86-2" ]: matches TR/AB/3-43.7-3/AB %% 2945 ["SOL 94-4" ]: matches TR/AB/3-43.7-3/AB %% 2946 ["SOL~85--5" ]: matches TR/AB/3-43.7-3/AB %% 2947 ["SOL~86--7" ]: matches TR/AB/3-43.7-3/AB %% 2948 ["SOL~88--10" ]: matches TR/AB/3-43.7-3/AB %% 2949 ["SOL~88--14" ]: matches TR/AB/3-43.7-3/AB %% 2950 ["SOL~88--9" ]: matches TR/AB/3-43.7-3/AB %% 2951 ["SOL~89--6" ]: matches TR/AB/3-43.7-3/AB %% 2952 ["SOL~90--16" ]: matches TR/AB/3-43.7-3/AB %% 2953 ["SOL~90--4" ]: matches TR/AB/3-43.7-3/AB %% 2954 ["SOL~90--6" ]: matches TR/AB/3-43.7-3/AB %% 2955 ["SOL~90-8" ]: matches TR/AB/3-43.7-3/AB %% 2956 ["SOL~91--10" ]: matches TR/AB/3-43.7-3/AB %% 2957 ["SOL~91--2" ]: matches TR/AB/3-43.7-3/AB %% 2958 ["SOL~91-3" ]: matches TR/AB/3-43.7-3/AB %% 2959 ["SOL~91-7" ]: matches TR/AB/3-43.7-3/AB %% 2960 ["SOR~88--3" ]: matches TR/AB/3-43.7-3/AB %% 2961 ["SOR~88--5" ]: matches TR/AB/3-43.7-3/AB %% 2962 ["SOR~89--21" ]: matches TR/AB/3-43.7-3/AB %% 2963 ["SOR~90--03" ]: matches TR/AB/3-43.7-3/AB %% 2964 ["SOR~90--08" ]: matches TR/AB/3-43.7-3/AB %% 2965 ["SOR~90--14" ]: matches TR/AB/3-43.7-3/AB %% 2966 ["SOR~91--18" ]: matches TR/AB/3-43.7-3/AB %% 2967 ["SOR~91--7" ]: matches TR/AB/3-43.7-3/AB %% 2968 ["SP43-29" ]: matches SP43-29 %% 2969 ["SP85-1/5.1E" ]: matches TR/AB/3-43.7-3/AB %% 2970 ["SP85-1/5E" ]: matches TR/AB/3-43.7-3/AB %% 2971 ["SPI//1" ]: matches TR/AB/3-43.7-3/AB %% 2972 ["SPI//2" ]: matches TR/AB/3-43.7-3/AB %% 2973 ["SR-0009" ]: matches TR-2189 %% 2974 ["SR-2079 5.0" ]: matches TR/AB/3-43.7-3/AB %% 2975 ["SR-2079 6.0" ]: matches TR/AB/3-43.7-3/AB %% 2976 ["SR-2079" ]: matches TR-2189 %% 2977 ["SR-3071, SR-3072, SR-3073, SR-3074"]: matches TR/AB/3-43.7-3/AB %% 2978 ["SR-3071, SR-3072, SR-3074"]: matches TR/AB/3-43.7-3/AB %% 2979 ["SR-3772" ]: matches TR-2189 %% 2980 ["SRC TR 89-61r1" ]: matches TR/AB/3-43.7-3/AB %% 2981 ["SRC-TR-94-130" ]: matches UMIAC-TR-89-11 %% 2982 ["SRI-CSL-90-16" ]: matches UMIAC-TR-89-11 %% 2983 ["SSL91-16/P91-00143" ]: matches TR/AB/3-43.7-3/AB %% 2984 ["ST4" ]: matches LPS0064 %% 2985 ["STAN CS-TR-2238, UMIACS-TR-89-45"]: matches TR/AB/3-43.7-3/AB %% 2986 ["STAN-CS-70-163" ]: matches UMIAC-TR-89-11 %% 2987 ["STAN-CS-72-270" ]: matches UMIAC-TR-89-11 %% 2988 ["STAN-CS-73-374" ]: matches UMIAC-TR-89-11 %% 2989 ["STAN-CS-75-478" ]: matches UMIAC-TR-89-11 %% 2990 ["STAN-CS-75-496" ]: matches UMIAC-TR-89-11 %% 2991 ["STAN-CS-75-511" ]: matches UMIAC-TR-89-11 %% 2992 ["STAN-CS-76-535" ]: matches UMIAC-TR-89-11 %% 2993 ["STAN-CS-76-548" ]: matches UMIAC-TR-89-11 %% 2994 ["STAN-CS-76-585" ]: matches UMIAC-TR-89-11 %% 2995 ["STAN-CS-77-595" ]: matches UMIAC-TR-89-11 %% 2996 ["STAN-CS-77-602" ]: matches UMIAC-TR-89-11 %% 2997 ["STAN-CS-77-622" ]: matches UMIAC-TR-89-11 %% 2998 ["STAN-CS-77-623" ]: matches UMIAC-TR-89-11 %% 2999 ["STAN-CS-78-648" ]: matches UMIAC-TR-89-11 %% 3000 ["STAN-CS-78-656" ]: matches UMIAC-TR-89-11 %% 3001 ["STAN-CS-78-675" ]: matches UMIAC-TR-89-11 %% 3002 ["STAN-CS-78-684" ]: matches UMIAC-TR-89-11 %% 3003 ["STAN-CS-78-685" ]: matches UMIAC-TR-89-11 %% 3004 ["STAN-CS-78-698" ]: matches UMIAC-TR-89-11 %% 3005 ["STAN-CS-79-713" ]: matches UMIAC-TR-89-11 %% 3006 ["STAN-CS-79-762" ]: matches UMIAC-TR-89-11 %% 3007 ["STAN-CS-80-780" ]: matches UMIAC-TR-89-11 %% 3008 ["STAN-CS-80-787" ]: matches UMIAC-TR-89-11 %% 3009 ["STAN-CS-80-795" ]: matches UMIAC-TR-89-11 %% 3010 ["STAN-CS-80-803" ]: matches UMIAC-TR-89-11 %% 3011 ["STAN-CS-80-817" ]: matches UMIAC-TR-89-11 %% 3012 ["STAN-CS-80-824" ]: matches UMIAC-TR-89-11 %% 3013 ["STAN-CS-81-848" ]: matches UMIAC-TR-89-11 %% 3014 ["STAN-CS-81-886" ]: matches UMIAC-TR-89-11 %% 3015 ["STAN-CS-82-901" ]: matches UMIAC-TR-89-11 %% 3016 ["STAN-CS-82-914" ]: matches UMIAC-TR-89-11 %% 3017 ["STAN-CS-83-965" ]: matches UMIAC-TR-89-11 %% 3018 ["STAN-CS-83-966" ]: matches UMIAC-TR-89-11 %% 3019 ["STAN-CS-83-971" ]: matches UMIAC-TR-89-11 %% 3020 ["STAN-CS-83-974" ]: matches UMIAC-TR-89-11 %% 3021 ["STAN-CS-83-977" ]: matches UMIAC-TR-89-11 %% 3022 ["STAN-CS-83-978" ]: matches UMIAC-TR-89-11 %% 3023 ["STAN-CS-83-980" ]: matches UMIAC-TR-89-11 %% 3024 ["STAN-CS-83-981" ]: matches UMIAC-TR-89-11 %% 3025 ["STAN-CS-83-985" ]: matches UMIAC-TR-89-11 %% 3026 ["STAN-CS-83-987" ]: matches UMIAC-TR-89-11 %% 3027 ["STAN-CS-84-1013" ]: matches UMIAC-TR-89-11 %% 3028 ["STAN-CS-84-1027" ]: matches UMIAC-TR-89-11 %% 3029 ["STAN-CS-85-1074" ]: matches UMIAC-TR-89-11 %% 3030 ["STAN-CS-86-1095" ]: matches UMIAC-TR-89-11 %% 3031 ["STAN-CS-86-1097" ]: matches UMIAC-TR-89-11 %% 3032 ["STAN-CS-88-1223" ]: matches UMIAC-TR-89-11 %% 3033 ["STAN-CS-89-04, NA-89-04"]: matches TR/AB/3-43.7-3/AB %% 3034 ["STAN-CS-89-08, NA-89-08"]: matches TR/AB/3-43.7-3/AB %% 3035 ["STAN-CS-89-1251" ]: matches UMIAC-TR-89-11 %% 3036 ["STAN-CS-TR-2001" ]: matches TR/AB/3-43.7-3/AB %% 3037 ["STAN-CS-TR-2002" ]: matches TR/AB/3-43.7-3/AB %% 3038 ["STL-86-13" ]: matches ANL-30-74 %% 3039 ["STL-88-21" ]: matches ANL-30-74 %% 3040 ["STL-89-25" ]: matches ANL-30-74 %% 3041 ["STL-89-26" ]: matches ANL-30-74 %% 3042 ["STP-172-86" ]: matches ANL-30-74 %% 3043 ["Section 914, Internal Computing Memorandum 337"]: matches TR/AB/3-43.7-3/AB %% 3044 ["Special Publication 424"]: matches Computer Science Report 100 %% 3045 ["Standard 8613" ]: matches XNSS 288811 %% 3046 ["Suppl 1" ]: matches XNSS 288811 %% 3047 ["Supplement" ]: matches Computer Science Report 100 %% 3048 ["T" ]: matches Computer Science Report 100 %% 3049 ["T-11" ]: matches TR-2189 %% 3050 ["T.P. 322" ]: matches TR/AB/3-43.7-3/AB %% 3051 ["T62-3" ]: matches SP43-29 %% 3052 ["T62-4" ]: matches SP43-29 %% 3053 ["TAU 86-04" ]: matches TR/AB/3-43.7-3/AB %% 3054 ["TBD" ]: matches Computer Science Report 100 %% 3055 ["TC-NA-94-1" ]: matches UMIAC-TR-89-11 %% 3056 ["TC-NA-94-2" ]: matches UMIAC-TR-89-11 %% 3057 ["TC-NA-94-3" ]: matches UMIAC-TR-89-11 %% 3058 ["TC-NA-94-4" ]: matches UMIAC-TR-89-11 %% 3059 ["TC-NA-94-5" ]: matches UMIAC-TR-89-11 %% 3060 ["TC-PC-95-1" ]: matches UMIAC-TR-89-11 %% 3061 ["TEC 715" ]: matches XNSS 288811 %% 3062 ["TEC 816 Canada" ]: matches Computer Science Report 100 %% 3063 ["TH.2548-CERN" ]: matches TR/AB/3-43.7-3/AB %% 3064 ["TIM005" ]: matches LPS0064 %% 3065 ["TIM007.A" ]: matches TR/AB/3-43.7-3/AB %% 3066 ["TIM009.A" ]: matches TR/AB/3-43.7-3/AB %% 3067 ["TIM010.A" ]: matches TR/AB/3-43.7-3/AB %% 3068 ["TIM011" ]: matches LPS0064 %% 3069 ["TIM012" ]: matches LPS0064 %% 3070 ["TIM013" ]: matches LPS0064 %% 3071 ["TIM015.A" ]: matches TR/AB/3-43.7-3/AB %% 3072 ["TIM016.A" ]: matches TR/AB/3-43.7-3/AB %% 3073 ["TIM017.A" ]: matches TR/AB/3-43.7-3/AB %% 3074 ["TIM018.A" ]: matches TR/AB/3-43.7-3/AB %% 3075 ["TIM020" ]: matches LPS0064 %% 3076 ["TIM021" ]: matches LPS0064 %% 3077 ["TIM022.A" ]: matches TR/AB/3-43.7-3/AB %% 3078 ["TIM023" ]: matches LPS0064 %% 3079 ["TIM024" ]: matches LPS0064 %% 3080 ["TIM026" ]: matches LPS0064 %% 3081 ["TIM027" ]: matches LPS0064 %% 3082 ["TM X-73904" ]: matches TR/AB/3-43.7-3/AB %% 3083 ["TM-12231" ]: matches TR-2189 %% 3084 ["TM-385" ]: matches TR-2189 %% 3085 ["TM-73203" ]: matches TR-2189 %% 3086 ["TM-78665" ]: matches TR-2189 %% 3087 ["TM-78733" ]: matches TR-2189 %% 3088 ["TM-78816" ]: matches TR-2189 %% 3089 ["TM-81-11271-9" ]: matches TR/AB/3-43.7-3/AB %% 3090 ["TM-85710" ]: matches TR-2189 %% 3091 ["TM-85945" ]: matches TR-2189 %% 3092 ["TM-85965" ]: matches TR-2189 %% 3093 ["TM-90-04" ]: matches ANL-30-74 %% 3094 ["TM/OA/79-13" ]: matches TR/AB/3-43.7-3/AB %% 3095 ["TMC-148, PL87-7" ]: matches TR/AB/3-43.7-3/AB %% 3096 ["TMC-184" ]: matches TR-2189 %% 3097 ["TN D-7653" ]: matches TR/AB/3-43.7-3/AB %% 3098 ["TN D-8372" ]: matches TR/AB/3-43.7-3/AB %% 3099 ["TN D-8430, D-8431" ]: matches TR/AB/3-43.7-3/AB %% 3100 ["TN--87--32" ]: matches TR/AB/3-43.7-3/AB %% 3101 ["TN-109" ]: matches TR-2189 %% 3102 ["TN-K/27-70" ]: matches TR/AB/3-43.7-3/AB %% 3103 ["TN-K\slash 27-70" ]: matches TN-K\slash 27-70 %% 3104 ["TN309" ]: matches LPS0064 %% 3105 ["TNN--94" ]: matches TR/AB/3-43.7-3/AB %% 3106 ["TNN-1" ]: matches TR-2189 %% 3107 ["TNN-105" ]: matches TR-2189 %% 3108 ["TNN-12" ]: matches TR-2189 %% 3109 ["TNN-14" ]: matches TR-2189 %% 3110 ["TNN-2" ]: matches TR-2189 %% 3111 ["TNN-20" ]: matches TR-2189 %% 3112 ["TNN-21" ]: matches TR-2189 %% 3113 ["TNN-3" ]: matches TR-2189 %% 3114 ["TNN-30" ]: matches TR-2189 %% 3115 ["TNN-39" ]: matches TR-2189 %% 3116 ["TNN-4" ]: matches TR-2189 %% 3117 ["TNN-46" ]: matches TR-2189 %% 3118 ["TNN-5" ]: matches TR-2189 %% 3119 ["TNN-9" ]: matches TR-2189 %% 3120 ["TNN-94" ]: matches TR-2189 %% 3121 ["TNN-96" ]: matches TR-2189 %% 3122 ["TR 1026" ]: matches XNSS 288811 %% 3123 ["TR 1086" ]: matches XNSS 288811 %% 3124 ["TR 1098" ]: matches XNSS 288811 %% 3125 ["TR 1099" ]: matches XNSS 288811 %% 3126 ["TR 1137" ]: matches XNSS 288811 %% 3127 ["TR 394" ]: matches XNSS 288811 %% 3128 ["TR 479" ]: matches XNSS 288811 %% 3129 ["TR 69-31" ]: matches TR/AB/3-43.7-3/AB %% 3130 ["TR 7" ]: matches XNSS 288811 %% 3131 ["TR 75.91.20" ]: matches TR/AB/3-43.7-3/AB %% 3132 ["TR 78-352" ]: matches TR/AB/3-43.7-3/AB %% 3133 ["TR 78-354" ]: matches TR/AB/3-43.7-3/AB %% 3134 ["TR 79-4" ]: matches TR/AB/3-43.7-3/AB %% 3135 ["TR 80-423" ]: matches TR/AB/3-43.7-3/AB %% 3136 ["TR 80-430" ]: matches TR/AB/3-43.7-3/AB %% 3137 ["TR 80-431" ]: matches TR/AB/3-43.7-3/AB %% 3138 ["TR 81-454" ]: matches TR/AB/3-43.7-3/AB %% 3139 ["TR 82-521" ]: matches TR/AB/3-43.7-3/AB %% 3140 ["TR 83-554" ]: matches TR/AB/3-43.7-3/AB %% 3141 ["TR 83-565" ]: matches TR/AB/3-43.7-3/AB %% 3142 ["TR 836" ]: matches XNSS 288811 %% 3143 ["TR 84-603" ]: matches TR/AB/3-43.7-3/AB %% 3144 ["TR 85-664" ]: matches TR/AB/3-43.7-3/AB %% 3145 ["TR 85-675" ]: matches TR/AB/3-43.7-3/AB %% 3146 ["TR 86-789" ]: matches TR/AB/3-43.7-3/AB %% 3147 ["TR 86.3" ]: matches Version 3.20 %% 3148 ["TR 869" ]: matches XNSS 288811 %% 3149 ["TR 87-803" ]: matches TR/AB/3-43.7-3/AB %% 3150 ["TR 87-812" ]: matches TR/AB/3-43.7-3/AB %% 3151 ["TR 88-30" ]: matches TR/AB/3-43.7-3/AB %% 3152 ["TR 89-10" ]: matches TR/AB/3-43.7-3/AB %% 3153 ["TR 89-21" ]: matches TR/AB/3-43.7-3/AB %% 3154 ["TR 89-9" ]: matches TR/AB/3-43.7-3/AB %% 3155 ["TR 90-1" ]: matches TR/AB/3-43.7-3/AB %% 3156 ["TR 90-29" ]: matches TR/AB/3-43.7-3/AB %% 3157 ["TR 90-34" ]: matches TR/AB/3-43.7-3/AB %% 3158 ["TR 90-43" ]: matches TR/AB/3-43.7-3/AB %% 3159 ["TR 90-60r1" ]: matches TR/AB/3-43.7-3/AB %% 3160 ["TR 90.40" ]: matches Version 3.20 %% 3161 ["TR 916" ]: matches XNSS 288811 %% 3162 ["TR 92-1280" ]: matches TR/AB/3-43.7-3/AB %% 3163 ["TR 92-1291" ]: matches TR/AB/3-43.7-3/AB %% 3164 ["TR 92-23" ]: matches TR/AB/3-43.7-3/AB %% 3165 ["TR 92-47" ]: matches TR/AB/3-43.7-3/AB %% 3166 ["TR 92.12" ]: matches Version 3.20 %% 3167 ["TR 92.13" ]: matches Version 3.20 %% 3168 ["TR 921" ]: matches XNSS 288811 %% 3169 ["TR 93-1371" ]: matches TR/AB/3-43.7-3/AB %% 3170 ["TR 93-2" ]: matches TR/AB/3-43.7-3/AB %% 3171 ["TR 930" ]: matches XNSS 288811 %% 3172 ["TR 96-740" ]: matches TR/AB/3-43.7-3/AB %% 3173 ["TR 965" ]: matches XNSS 288811 %% 3174 ["TR 996" ]: matches XNSS 288811 %% 3175 ["TR 997" ]: matches XNSS 288811 %% 3176 ["TR AM-87-11" ]: matches TR/AB/3-43.7-3/AB %% 3177 ["TR CSc-84-15" ]: matches TR/AB/3-43.7-3/AB %% 3178 ["TR STAN-CS-76-556" ]: matches TR/AB/3-43.7-3/AB %% 3179 ["TR--87--13" ]: matches TR/AB/3-43.7-3/AB %% 3180 ["TR--89--01" ]: matches TR/AB/3-43.7-3/AB %% 3181 ["TR--91--15" ]: matches TR/AB/3-43.7-3/AB %% 3182 ["TR--91--22" ]: matches TR/AB/3-43.7-3/AB %% 3183 ["TR--91--26" ]: matches TR/AB/3-43.7-3/AB %% 3184 ["TR-1648" ]: matches TR-2189 %% 3185 ["TR-1859, UMIACS-TR-87-20"]: matches TR/AB/3-43.7-3/AB %% 3186 ["TR-2101" ]: matches TR-2189 %% 3187 ["TR-219" ]: matches TR-2189 %% 3188 ["TR-22-78" ]: matches ANL-30-74 %% 3189 ["TR-2339" ]: matches TR-2189 %% 3190 ["TR-24 (Revised \# TR-24R)"]: matches TR/AB/3-43.7-3/AB %% 3191 ["TR-2714" ]: matches TR-2189 %% 3192 ["TR-3" ]: matches TR-2189 %% 3193 ["TR-3064" ]: matches TR-2189 %% 3194 ["TR-31" ]: matches TR-2189 %% 3195 ["TR-31-81" ]: matches ANL-30-74 %% 3196 ["TR-3133" ]: matches TR-2189 %% 3197 ["TR-3145" ]: matches TR-2189 %% 3198 ["TR-3238" ]: matches TR-2189 %% 3199 ["TR-3263" ]: matches TR-2189 %% 3200 ["TR-328" ]: matches TR-2189 %% 3201 ["TR-3306" ]: matches TR-2189 %% 3202 ["TR-3307" ]: matches TR-2189 %% 3203 ["TR-3345" ]: matches TR-2189 %% 3204 ["TR-408" ]: matches TR-2189 %% 3205 ["TR-456" ]: matches TR-2189 %% 3206 ["TR-458" ]: matches TR-2189 %% 3207 ["TR-571" ]: matches TR-2189 %% 3208 ["TR-683" ]: matches TR-2189 %% 3209 ["TR-696" ]: matches TR-2189 %% 3210 ["TR-7" ]: matches TR-2189 %% 3211 ["TR-708" ]: matches TR-2189 %% 3212 ["TR-77-2" ]: matches ANL-30-74 %% 3213 ["TR-82-522" ]: matches ANL-30-74 %% 3214 ["TR-85.2" ]: matches TR/AB/3-43.7-3/AB %% 3215 ["TR-85.3" ]: matches TR/AB/3-43.7-3/AB %% 3216 ["TR-87.2" ]: matches TR/AB/3-43.7-3/AB %% 3217 ["TR-88" ]: matches TR-2189 %% 3218 ["TR-88-53" ]: matches ANL-30-74 %% 3219 ["TR-89-9" ]: matches ANL-30-74 %% 3220 ["TR-9" ]: matches TR-2189 %% 3221 ["TR-91-023" ]: matches ANL-30-74 %% 3222 ["TR-91-042" ]: matches ANL-30-74 %% 3223 ["TR-91-35" ]: matches ANL-30-74 %% 3224 ["TR-93-040" ]: matches ANL-30-74 %% 3225 ["TR-94-017" ]: matches ANL-30-74 %% 3226 ["TR-CS-82-10" ]: matches UMIAC-TR-89-11 %% 3227 ["TR-CS-82-11" ]: matches UMIAC-TR-89-11 %% 3228 ["TR-CS-92-17" ]: matches UMIAC-TR-89-11 %% 3229 ["TR. UTUDCDS-??" ]: matches TR/AB/3-43.7-3/AB %% 3230 ["TR.CSG 8" ]: matches TR/AB/3-43.7-3/AB %% 3231 ["TR/PA/91/63" ]: matches TR/AB/3-43.7-3/AB %% 3232 ["TR/PA/92/70" ]: matches TR/AB/3-43.7-3/AB %% 3233 ["TR/PA/92/85" ]: matches TR/AB/3-43.7-3/AB %% 3234 ["TR/PA/93/05" ]: matches TR/AB/3-43.7-3/AB %% 3235 ["TR/PA/93/10" ]: matches TR/AB/3-43.7-3/AB %% 3236 ["TR/PA/93/26" ]: matches TR/AB/3-43.7-3/AB %% 3237 ["TR/PA/93/27" ]: matches TR/AB/3-43.7-3/AB %% 3238 ["TR/PA/94/09" ]: matches TR/AB/3-43.7-3/AB %% 3239 ["TR/PA/95/02" ]: matches TR/AB/3-43.7-3/AB %% 3240 ["TR/PA/95/05" ]: matches TR/AB/3-43.7-3/AB %% 3241 ["TR04/92" ]: matches TR/AB/3-43.7-3/AB %% 3242 ["TR04/93" ]: matches TR/AB/3-43.7-3/AB %% 3243 ["TR1/92" ]: matches TR/AB/3-43.7-3/AB %% 3244 ["TR1/94 ATR/7 (NP2680)" ]: matches TR/AB/3-43.7-3/AB %% 3245 ["TR11/88" ]: matches TR/AB/3-43.7-3/AB %% 3246 ["TR1143" ]: matches LPS0064 %% 3247 ["TR19/93" ]: matches TR/AB/3-43.7-3/AB %% 3248 ["TR2/92" ]: matches TR/AB/3-43.7-3/AB %% 3249 ["TR2/93 (ATR/6) (NP2556)"]: matches TR/AB/3-43.7-3/AB %% 3250 ["TR26-92" ]: matches SP43-29 %% 3251 ["TR3/92 (ATR/1) (NP2490)"]: matches TR/AB/3-43.7-3/AB %% 3252 ["TR32/89" ]: matches TR/AB/3-43.7-3/AB %% 3253 ["TR4/92 (ATR/2) (NP2491)"]: matches TR/AB/3-43.7-3/AB %% 3254 ["TR5/92 (ATR/3) (NP2492)"]: matches TR/AB/3-43.7-3/AB %% 3255 ["TR6/90" ]: matches TR/AB/3-43.7-3/AB %% 3256 ["TR6/92 (ATR/4) (NP2493)"]: matches TR/AB/3-43.7-3/AB %% 3257 ["TR7/92 (ATR/5) (NP2522)"]: matches TR/AB/3-43.7-3/AB %% 3258 ["TR77-5" ]: matches SP43-29 %% 3259 ["TR8/90" ]: matches TR/AB/3-43.7-3/AB %% 3260 ["TR839" ]: matches LPS0064 %% 3261 ["TR84-1" ]: matches SP43-29 %% 3262 ["TR86-38" ]: matches SP43-29 %% 3263 ["TR86-7" ]: matches SP43-29 %% 3264 ["TR89/10" ]: matches TR/AB/3-43.7-3/AB %% 3265 ["TR90-54" ]: matches SP43-29 %% 3266 ["TR91/7" ]: matches TR/AB/3-43.7-3/AB %% 3267 ["TR91121" ]: matches LPS0064 %% 3268 ["TR92-17" ]: matches SP43-29 %% 3269 ["TR92-9" ]: matches SP43-29 %% 3270 ["TR93-01" ]: matches SP43-29 %% 3271 ["TR93-08" ]: matches SP43-29 %% 3272 ["TR93-09" ]: matches SP43-29 %% 3273 ["TR93-10" ]: matches SP43-29 %% 3274 ["TR93-45" ]: matches SP43-29 %% 3275 ["TR94--34" ]: matches TR/AB/3-43.7-3/AB %% 3276 ["TR94-13" ]: matches SP43-29 %% 3277 ["TRCS 91-15" ]: matches TR/AB/3-43.7-3/AB %% 3278 ["TRCS85-09" ]: matches SP43-29 %% 3279 ["TRCS88-27" ]: matches SP43-29 %% 3280 ["TRI-PP-83-95" ]: matches UMIAC-TR-89-11 %% 3281 ["TRITA-MEK-76-02" ]: matches UMIAC-TR-89-11 %% 3282 ["TRITA-MEK-76-03" ]: matches UMIAC-TR-89-11 %% 3283 ["TRITA-NA-8311" ]: matches CS-TR-2189 %% 3284 ["TRR-514" ]: matches TR-2189 %% 3285 ["TR~87--7" ]: matches TR/AB/3-43.7-3/AB %% 3286 ["TR~90--06" ]: matches TR/AB/3-43.7-3/AB %% 3287 ["TR~90--16R1" ]: matches TR/AB/3-43.7-3/AB %% 3288 ["TR~90--40" ]: matches TR/AB/3-43.7-3/AB %% 3289 ["TR~90--6" ]: matches TR/AB/3-43.7-3/AB %% 3290 ["TR~90--9" ]: matches TR/AB/3-43.7-3/AB %% 3291 ["TR~91--10" ]: matches TR/AB/3-43.7-3/AB %% 3292 ["TUM-I9120" ]: matches TR/AB/3-43.7-3/AB %% 3293 ["TUM-ISU-7830" ]: matches CS-TR-2189 %% 3294 ["Technical report ITPR-95022"]: matches TR/AB/3-43.7-3/AB %% 3295 ["Technion-PH-76-25" ]: matches UMIAC-TR-89-11 %% 3296 ["Technion-PH-77-36" ]: matches UMIAC-TR-89-11 %% 3297 ["UBLCS" ]: matches Computer Science Report 100 %% 3298 ["UBLCS-6" ]: matches TR-2189 %% 3299 ["UBLCS-7" ]: matches TR-2189 %% 3300 ["UBLCS-94-14" ]: matches ANL-30-74 %% 3301 ["UBLCS-94-5" ]: matches ANL-30-74 %% 3302 ["UCB/CSD 88/469" ]: matches TR/AB/3-43.7-3/AB %% 3303 ["UCB/CSD 94/802 4004667978"]: matches TR/AB/3-43.7-3/AB %% 3304 ["UCB/CSD 94/805" ]: matches TR/AB/3-43.7-3/AB %% 3305 ["UCB/CSD 95-870" ]: matches TR/AB/3-43.7-3/AB %% 3306 ["UCB/CSD-92-703" ]: matches TR/AB/3-43.7-3/AB %% 3307 ["UCB/CSD-94-793" ]: matches TR/AB/3-43.7-3/AB %% 3308 ["UCB/CSD-94-???" ]: matches TR/AB/3-43.7-3/AB %% 3309 ["UCB/ERL 84/5" ]: matches TR/AB/3-43.7-3/AB %% 3310 ["UCB/ERL M77/21" ]: matches TR/AB/3-43.7-3/AB %% 3311 ["UCB/ERL~M85/61" ]: matches TR/AB/3-43.7-3/AB %% 3312 ["UCID-17515" ]: matches TR-2189 %% 3313 ["UCID-18549" ]: matches TR-2189 %% 3314 ["UCID-18619" ]: matches TR-2189 %% 3315 ["UCID-20167" ]: matches TR-2189 %% 3316 ["UCID-21482" ]: matches TR-2189 %% 3317 ["UCID-30175" ]: matches TR-2189 %% 3318 ["UCLA/84/TEP/19" ]: matches TR/AB/3-43.7-3/AB %% 3319 ["UCP-19" ]: matches TR-2189 %% 3320 ["UCP-32" ]: matches TR-2189 %% 3321 ["UCP-33" ]: matches TR-2189 %% 3322 ["UCRL 85752" ]: matches XNSS 288811 %% 3323 ["UCRL 89913. CONF-831247--1"]: matches TR/AB/3-43.7-3/AB %% 3324 ["UCRL-500021-81" ]: matches ANL-30-74 %% 3325 ["UCRL-51186, Rev. 1" ]: matches TR/AB/3-43.7-3/AB %% 3326 ["UCRL-53401" ]: matches TR-2189 %% 3327 ["UCRL-76993, Rev. 1" ]: matches TR/AB/3-43.7-3/AB %% 3328 ["UCRL-78652" ]: matches TR-2189 %% 3329 ["UCRL-88710" ]: matches TR-2189 %% 3330 ["UCRL-91734" ]: matches TR-2189 %% 3331 ["UCRL-92077-II" ]: matches TR/AB/3-43.7-3/AB %% 3332 ["UCRL-93792" ]: matches TR-2189 %% 3333 ["UCRL-94464" ]: matches TR-2189 %% 3334 ["UCRL-95055" ]: matches TR-2189 %% 3335 ["UCRL-95278" ]: matches TR-2189 %% 3336 ["UCRL-95669" ]: matches TR-2189 %% 3337 ["UCRL-96034" ]: matches TR-2189 %% 3338 ["UCRL-97580" ]: matches TR-2189 %% 3339 ["UCRL-98508" ]: matches TR-2189 %% 3340 ["UIB-11" ]: matches TR-2189 %% 3341 ["UILU-ENG-85-1727" ]: matches UMIAC-TR-89-11 %% 3342 ["UIUCDCS-R-71-488" ]: matches UMIAC-TR-89-11 %% 3343 ["UIUCDCS-R-72-493" ]: matches UMIAC-TR-89-11 %% 3344 ["UIUCDCS-R-76-787" ]: matches UMIAC-TR-89-11 %% 3345 ["UIUCDCS-R-77, 883" ]: matches TR/AB/3-43.7-3/AB %% 3346 ["UIUCDCS-R-85-1129" ]: matches UMIAC-TR-89-11 %% 3347 ["UIUCDCS-R-85-1201" ]: matches UMIAC-TR-89-11 %% 3348 ["UIUCDCS-R-85-1203" ]: matches UMIAC-TR-89-11 %% 3349 ["UIUCDCS-R-86-1229" ]: matches UMIAC-TR-89-11 %% 3350 ["UMCS-90-9-1" ]: matches TR/AB/3-43.7-3/AB %% 3351 ["UMCS-93-7-1" ]: matches TR/AB/3-43.7-3/AB %% 3352 ["UMIACS-TR-89-11, CS-TR-2189, SRC-TR-89-13"]: matches TR/AB/3-43.7-3/AB %% 3353 ["UMINF 125.85" ]: matches Version 3.20 %% 3354 ["UMINF 92.11" ]: matches Version 3.20 %% 3355 ["UMINF 93.23" ]: matches Version 3.20 %% 3356 ["UMINF 94.03" ]: matches Version 3.20 %% 3357 ["UMINF 94.04" ]: matches Version 3.20 %% 3358 ["UMINF-132.86" ]: matches TR/AB/3-43.7-3/AB %% 3359 ["UMINF-136.87" ]: matches TR/AB/3-43.7-3/AB %% 3360 ["UMINF-154.88" ]: matches TR/AB/3-43.7-3/AB %% 3361 ["UMINF-155.88" ]: matches TR/AB/3-43.7-3/AB %% 3362 ["UMINF-58.77" ]: matches TR/AB/3-43.7-3/AB %% 3363 ["UMINF-91.29" ]: matches TR/AB/3-43.7-3/AB %% 3364 ["UMSI 86145" ]: matches XNSS 288811 %% 3365 ["UMSI 93-234" ]: matches TR/AB/3-43.7-3/AB %% 3366 ["UMSI 94-101" ]: matches TR/AB/3-43.7-3/AB %% 3367 ["UMSI 94-29" ]: matches TR/AB/3-43.7-3/AB %% 3368 ["UMSI 94-90" ]: matches TR/AB/3-43.7-3/AB %% 3369 ["UMSI-93/131" ]: matches TR/AB/3-43.7-3/AB %% 3370 ["UNIC-92-03" ]: matches ANL-30-74 %% 3371 ["UNIC-93-09" ]: matches ANL-30-74 %% 3372 ["UNIGRAZ-UTP 08/79" ]: matches TR/AB/3-43.7-3/AB %% 3373 ["URI-037" ]: matches TR-2189 %% 3374 ["URI-044" ]: matches TR-2189 %% 3375 ["USAS X3.9-1966" ]: matches TR/AB/3-43.7-3/AB %% 3376 ["USCG Op. Note No. 40" ]: matches TR/AB/3-43.7-3/AB %% 3377 ["USERDA/EY-76-S-02-2895*000/Tr/76/6"]: matches TR/AB/3-43.7-3/AB %% 3378 ["USGS-GD-73-030" ]: matches UMIAC-TR-89-11 %% 3379 ["USI-28" ]: matches TR-2189 %% 3380 ["USI-31" ]: matches TR-2189 %% 3381 ["USI-44" ]: matches TR-2189 %% 3382 ["USI-7" ]: matches TR-2189 %% 3383 ["USNRDL-TR-67-7, AD649288"]: matches TR/AB/3-43.7-3/AB %% 3384 ["UUCS-79-108" ]: matches ANL-30-74 %% 3385 ["UUCS-91-017" ]: matches ANL-30-74 %% 3386 ["UUICDCS-R-89-1539 and UILU-ENG-89-1758"]: matches TR/AB/3-43.7-3/AB %% 3387 ["UWE and CE-92-02" ]: matches TR/AB/3-43.7-3/AB %% 3388 ["UWFDM-658" ]: matches TR-2189 %% 3389 ["V" ]: matches Computer Science Report 100 %% 3390 ["VLSI-82-22" ]: matches ANL-30-74 %% 3391 ["Version 1.1" ]: matches Version 3.20 %% 3392 ["Version 3.20" ]: matches Version 3.20 %% 3393 ["WCAP-8261 Revision 1" ]: matches TR/AB/3-43.7-3/AB %% 3394 ["WSDG-AD-00002" ]: matches CS-TR-2189 %% 3395 ["WSU-CS-77-02" ]: matches UMIAC-TR-89-11 %% 3396 ["WSU-CS-90-01" ]: matches UMIAC-TR-89-11 %% 3397 ["WSU-CS-90-08" ]: matches UMIAC-TR-89-11 %% 3398 ["WSU-CS-90-10" ]: matches UMIAC-TR-89-11 %% 3399 ["WSU-CS-91-02" ]: matches UMIAC-TR-89-11 %% 3400 ["WUCS91-08" ]: matches SP43-29 %% 3401 ["Working Paper 851" ]: matches Computer Science Report 100 %% 3402 ["X-1707" ]: matches TR-2189 %% 3403 ["X-3286" ]: matches TR-2189 %% 3404 ["X-62282" ]: matches TR-2189 %% 3405 ["X-70477" ]: matches TR-2189 %% 3406 ["XNSS 288811" ]: matches XNSS 288811 %% 3407 ["YALEU DCS RR-339" ]: matches TR/AB/3-43.7-3/AB %% 3408 ["YALEU DCS RR-389" ]: matches TR/AB/3-43.7-3/AB %% 3409 ["YALEU DCS RR-428" ]: matches TR/AB/3-43.7-3/AB %% 3410 ["YALEU DCS RR-532" ]: matches TR/AB/3-43.7-3/AB %% 3411 ["YALEU DCS RR-569" ]: matches TR/AB/3-43.7-3/AB %% 3412 ["YALEU/ DCS/ RR- Draft" ]: matches TR/AB/3-43.7-3/AB %% 3413 ["YALEU/ DCS/ RR-463" ]: matches TR/AB/3-43.7-3/AB %% 3414 ["YALEU/DCS/RR-276" ]: matches TR/AB/3-43.7-3/AB %% 3415 ["YALEU/DCS/RR-292" ]: matches TR/AB/3-43.7-3/AB %% 3416 ["YALEU/DCS/RR-299" ]: matches TR/AB/3-43.7-3/AB %% 3417 ["YALEU/DCS/RR-339" ]: matches TR/AB/3-43.7-3/AB %% 3418 ["YALEU/DCS/RR-347" ]: matches TR/AB/3-43.7-3/AB %% 3419 ["YALEU/DCS/RR-363" ]: matches TR/AB/3-43.7-3/AB %% 3420 ["YALEU/DCS/RR-367" ]: matches TR/AB/3-43.7-3/AB %% 3421 ["YALEU/DCS/RR-368" ]: matches TR/AB/3-43.7-3/AB %% 3422 ["YALEU/DCS/RR-373" ]: matches TR/AB/3-43.7-3/AB %% 3423 ["YALEU/DCS/RR-381" ]: matches TR/AB/3-43.7-3/AB %% 3424 ["YALEU/DCS/RR-389" ]: matches TR/AB/3-43.7-3/AB %% 3425 ["YALEU/DCS/RR-397" ]: matches TR/AB/3-43.7-3/AB %% 3426 ["YALEU/DCS/RR-428" ]: matches TR/AB/3-43.7-3/AB %% 3427 ["YALEU/DCS/RR-443" ]: matches TR/AB/3-43.7-3/AB %% 3428 ["YALEU/DCS/RR-444" ]: matches TR/AB/3-43.7-3/AB %% 3429 ["YALEU/DCS/RR-458" ]: matches TR/AB/3-43.7-3/AB %% 3430 ["YALEU/DCS/RR-461" ]: matches TR/AB/3-43.7-3/AB %% 3431 ["YALEU/DCS/RR-462" ]: matches TR/AB/3-43.7-3/AB %% 3432 ["YALEU/DCS/RR-537" ]: matches TR/AB/3-43.7-3/AB %% 3433 ["YALEU/DCS/RR-539" ]: matches TR/AB/3-43.7-3/AB %% 3434 ["YALEU/DCS/RR-540" ]: matches TR/AB/3-43.7-3/AB %% 3435 ["YALEU/DCS/RR-542" ]: matches TR/AB/3-43.7-3/AB %% 3436 ["YALEU/DCS/RR-543" ]: matches TR/AB/3-43.7-3/AB %% 3437 ["YALEU/DCS/RR-544" ]: matches TR/AB/3-43.7-3/AB %% 3438 ["YALEU/DCS/RR-548" ]: matches TR/AB/3-43.7-3/AB %% 3439 ["YALEU/DCS/RR-552" ]: matches TR/AB/3-43.7-3/AB %% 3440 ["YALEU/DCS/RR-553" ]: matches TR/AB/3-43.7-3/AB %% 3441 ["YALEU/DCS/RR-554" ]: matches TR/AB/3-43.7-3/AB %% 3442 ["YALEU/DCS/RR-570" ]: matches TR/AB/3-43.7-3/AB %% 3443 ["YALEU/DCS/RR-594" ]: matches TR/AB/3-43.7-3/AB %% 3444 ["YALEU/DCS/RR-726" ]: matches TR/AB/3-43.7-3/AB %% 3445 ["YALEU/DCS/RR-880" ]: matches TR/AB/3-43.7-3/AB %% 3446 ["YALEU/DCS/RR-934" ]: matches TR/AB/3-43.7-3/AB %% 3447 ["YALEU/DCS/RR-942" ]: matches TR/AB/3-43.7-3/AB %% 3448 ["YALEU/DCS/TR-532" ]: matches TR/AB/3-43.7-3/AB %% 3449 ["\# 1030" ]: matches 23 %% 3450 ["\# 947" ]: matches 23 %% 3451 ["\# 963" ]: matches 23 %% 3452 ["\#167-O-310789" ]: matches TR/AB/3-43.7-3/AB %% 3453 ["\#180-O-170591" ]: matches TR/AB/3-43.7-3/AB %% 3454 ["\#191-O-191291" ]: matches TR/AB/3-43.7-3/AB %% 3455 ["\#20" ]: matches 23 %% 3456 ["\#26" ]: matches 23 %% 3457 ["\#59" ]: matches 23 %% 3458 ["\#961" ]: matches 23 %% 3459 ["\#985" ]: matches 23 %% 3460 ["liens-94-18" ]: matches ANL-30-74 %% 3461 ["pt.1" ]: matches TR/AB/3-43.7-3/AB %% 3462 ["pt.A" ]: matches TR/AB/3-43.7-3/AB %% 3463 ["special issue" ]: matches Computer Science Report 100 %% 3464 ["suppl. 2" ]: matches TR/AB/3-43.7-3/AB %% 3465 ["suppl. issue" ]: matches TR/AB/3-43.7-3/AB %% 3466 ["vol 12 pp 7.1-7.19" ]: matches TR/AB/3-43.7-3/AB %% 3467 ["vol. 7" ]: matches TR/AB/3-43.7-3/AB %% 3468 ["vyp. 90" ]: matches TR/AB/3-43.7-3/AB ?? 3469 ["{/DCS/RR-409}" ]: illegal value ?? 3470 ["{/DCS/RR-414}" ]: illegal value ?? 3471 ["{/DCS/RR-534}" ]: illegal value %% 3472 ["{AM}--87--13" ]: matches TR/AB/3-43.7-3/AB %% 3473 ["{AM}--88--09" ]: matches TR/AB/3-43.7-3/AB %% 3474 ["{CS}980" ]: matches LPS0064 %% 3475 ["{ICE-VS}06" ]: matches TR/AB/3-43.7-3/AB %% 3476 ["{NRL} Report 8179" ]: matches Computer Science Report 100 %% 3477 ["{SACLANTCEN} {CP}-19" ]: matches TR/AB/3-43.7-3/AB %% 3478 ["{SACLANTCEN} {SM}-72" ]: matches TR/AB/3-43.7-3/AB %% 3479 ["{STAN-CS-79-714}" ]: matches UMIAC-TR-89-11 %% 3480 ["{STAN-CS-88-1223}" ]: matches UMIAC-TR-89-11 %% 3481 ["{STAN-CS-89-1256}" ]: matches UMIAC-TR-89-11 %% 3482 ["{TR SRI-CSL-91-05}" ]: matches TR/AB/3-43.7-3/AB %% 3483 ["{TR90-141}" ]: matches SP43-29 %% 3484 [ ]: ignored %% 3485 [ ]: ignored %% 3486 ["1--26" ]: matches 23--27 ?? 3487 ["1--27 (or 3--28??)" ]: illegal value ?? 3488 ["1--28 (or 1--18??)" ]: illegal value ?? 3489 ["1--??" ]: illegal value ?? 3490 ["1-70" ]: illegal value ?? 3491 ["1.0--3.0" ]: illegal value ?? 3492 ["1.1--1.27" ]: illegal value ?? 3493 ["1.2/1--8" ]: illegal value ?? 3494 ["1.3/1--6" ]: illegal value ?? 3495 ["1.4/1--7" ]: illegal value ?? 3496 ["1.42--1.54" ]: illegal value ?? 3497 ["1.5/1--3" ]: illegal value ?? 3498 ["1/1--1/5" ]: illegal value ?? 3499 ["10 + 622" ]: illegal value ?? 3500 ["10 + [16]" ]: illegal value ?? 3501 ["10 + [2]" ]: illegal value ?? 3502 ["10 + [9]" ]: illegal value ?? 3503 ["10 -- 11" ]: illegal value ?? 3504 ["10 -- 15" ]: illegal value ?? 3505 ["10 computer disks guide + 2 templates."]: illegal value ?? 3506 ["10 videocassettes (ca. 253 min.), guide (vii + 104)"]: illegal value %% 3507 ["10, 11, 19" ]: matches 23, 27, 45 %% 3508 ["10, 12" ]: matches 23, 27 ?? 3509 ["10,560--10,574" ]: illegal value ?? 3510 ["10--??" ]: illegal value ?? 3511 ["10.1--10.29" ]: illegal value ?? 3512 ["10/1--2" ]: illegal value ?? 3513 ["10/1--25" ]: illegal value ?? 3514 ["100 -- 104" ]: illegal value ?? 3515 ["100--122 (of vi + 335)"]: illegal value ?? 3516 ["100--??" ]: illegal value ?? 3517 ["1001--??" ]: illegal value ?? 3518 ["1003--??" ]: illegal value ?? 3519 ["101 + [43]" ]: illegal value ?? 3520 ["101 -- 110" ]: illegal value ?? 3521 ["101--113 (or 51--60??)"]: illegal value ?? 3522 ["103 -- 123" ]: illegal value %% 3523 ["103, 117" ]: matches 23, 27 ?? 3524 ["104 -- 126" ]: illegal value ?? 3525 ["104 -- 133" ]: illegal value ?? 3526 ["104--116 (of xii + 199)"]: illegal value ?? 3527 ["105--127 (of x + 552)" ]: illegal value ?? 3528 ["1059 -- 1072" ]: illegal value %% 3529 ["106--108" ]: matches 23--27 ?? 3530 ["1065--1067 (vol. 2)" ]: illegal value ?? 3531 ["107." ]: illegal value ?? 3532 ["1075--1095 vol.2" ]: illegal value ?? 3533 ["108 -- 111" ]: illegal value ?? 3534 ["108 -- 128" ]: illegal value %% 3535 ["108--110, 112--115" ]: matches 23--27, 29--32 ?? 3536 ["1091 -- 1103" ]: illegal value ?? 3537 ["1099 -- 1114" ]: illegal value ?? 3538 ["11 + 13" ]: illegal value ?? 3539 ["11 + [12]" ]: illegal value ?? 3540 ["11 + [3]" ]: illegal value ?? 3541 ["11 + [5]" ]: illegal value ?? 3542 ["11 + [6]" ]: illegal value ?? 3543 ["11 -- 59" ]: illegal value %% 3544 ["11--14, 109--112" ]: matches 23--27, 29--32 ?? 3545 ["11.1--11.27" ]: illegal value ?? 3546 ["11/1--11/4" ]: illegal value ?? 3547 ["11/1--3" ]: illegal value ?? 3548 ["11/1--8" ]: illegal value ?? 3549 ["110 + [4]" ]: illegal value ?? 3550 ["111 -- 113, 106" ]: illegal value ?? 3551 ["111--123, 131" ]: illegal value ?? 3552 ["1112 -- 1120" ]: illegal value ?? 3553 ["112 + I20" ]: illegal value ?? 3554 ["112--1--112--15" ]: illegal value ?? 3555 ["114 -- 144" ]: illegal value ?? 3556 ["1144 -- 1156" ]: illegal value ?? 3557 ["115 + 5 + 3" ]: illegal value ?? 3558 ["115 -- 133" ]: illegal value ?? 3559 ["115 -- 137" ]: illegal value ?? 3560 ["115--120, 122" ]: illegal value ?? 3561 ["1152 columns" ]: illegal value ?? 3562 ["118--120, 136" ]: illegal value ?? 3563 ["119--129, 132" ]: illegal value ?? 3564 ["119." ]: illegal value ?? 3565 ["1193--1198 (vol. 2)" ]: illegal value ?? 3566 ["11P" ]: illegal value ?? 3567 ["12 + [14]" ]: illegal value ?? 3568 ["12 + [6] + A--18" ]: illegal value ?? 3569 ["12 computer disks" ]: illegal value ?? 3570 ["12 program files + 1 text file (MS--DOS + IBM--PC)"]: illegal value ?? 3571 ["12+" ]: illegal value ?? 3572 ["12--18, 81" ]: illegal value ?? 3573 ["12.1--12.15" ]: illegal value ?? 3574 ["120 -- 131" ]: illegal value ?? 3575 ["121 -- 139" ]: illegal value ?? 3576 ["121--122, 124, 126--127, 130, 132"]: illegal value %% 3577 ["122, 101" ]: matches 23, 27 %% 3578 ["122, 98" ]: matches 23, 27 ?? 3579 ["122--123, 106" ]: illegal value ?? 3580 ["1227 -- 1240" ]: illegal value ?? 3581 ["123--124, 126, 128" ]: illegal value ?? 3582 ["123--131 (or 122--129??)"]: illegal value ?? 3583 ["1233--1236 (vol. 3)" ]: illegal value ?? 3584 ["1233--1236 vol.3" ]: illegal value ?? 3585 ["1247-" ]: illegal value ?? 3586 ["126 + [4]" ]: illegal value ?? 3587 ["127 -- 148" ]: illegal value ?? 3588 ["127--134 (of xiv + 517)"]: illegal value ?? 3589 ["127-130" ]: illegal value ?? 3590 ["1279 -- 1292" ]: illegal value ?? 3591 ["129--130, 132--134, 136"]: illegal value ?? 3592 ["129--135 (or 129--136??)"]: illegal value ?? 3593 ["129--138 (vol. 1)" ]: illegal value ?? 3594 ["13 + 36 + [2]" ]: illegal value ?? 3595 ["13 + A1--11 + B1--6 + C1--10 + D1--8 + E1--5"]: illegal value ?? 3596 ["13 + A13" ]: illegal value ?? 3597 ["13 computer disks guide + codeview and utilities"]: illegal value ?? 3598 ["13 computer disks guide."]: illegal value ?? 3599 ["13--14, 16" ]: illegal value ?? 3600 ["13." ]: illegal value ?? 3601 ["13.1--13.16" ]: illegal value ?? 3602 ["1306 -- 1309" ]: illegal value ?? 3603 ["131 + [1]" ]: illegal value ?? 3604 ["131--142 (of ix + 394)"]: illegal value ?? 3605 ["1311 -- 1328" ]: illegal value ?? 3606 ["1329 -- 1347" ]: illegal value ?? 3607 ["1332-1350" ]: illegal value ?? 3608 ["134 pp" ]: illegal value ?? 3609 ["1347 -- 1362" ]: illegal value ?? 3610 ["135 -- 148" ]: illegal value ?? 3611 ["136 + 5" ]: illegal value ?? 3612 ["136 -- 140" ]: illegal value ?? 3613 ["137 + [1]" ]: illegal value ?? 3614 ["137 +" ]: illegal value %% 3615 ["138, 119" ]: matches 23, 27 %% 3616 ["138, 121" ]: matches 23, 27 ?? 3617 ["138." ]: illegal value ?? 3618 ["139--148 (or 139--147??)"]: illegal value ?? 3619 ["139--161 (or 138--151??)"]: illegal value ?? 3620 ["14 + 12" ]: illegal value ?? 3621 ["14 + 2.5" ]: illegal value ?? 3622 ["14 + 573" ]: illegal value ?? 3623 ["14 + [13]" ]: illegal value ?? 3624 ["14 + [24]" ]: illegal value ?? 3625 ["14 + [3] (env. 918 p.)"]: illegal value ?? 3626 ["14 -- 17" ]: illegal value ?? 3627 ["14 program files (IBM PC) on 2 computer disks"]: illegal value ?? 3628 ["14, 82--85" ]: illegal value ?? 3629 ["14.1--14.15" ]: illegal value ?? 3630 ["14.1.1--14.1.4" ]: illegal value ?? 3631 ["14/1/1--6" ]: illegal value ?? 3632 ["14/3/1--8" ]: illegal value ?? 3633 ["14/4/1--6" ]: illegal value ?? 3634 ["14/5/1--8" ]: illegal value ?? 3635 ["140--152 (or 148--160??)"]: illegal value ?? 3636 ["141 -- 156" ]: illegal value ?? 3637 ["141--148 (of xix + 453)"]: illegal value ?? 3638 ["142 -- 169" ]: illegal value ?? 3639 ["143--154 (of ix + 394)"]: illegal value ?? 3640 ["144--148, 150, 152, 154, 156, 158, 160--161"]: illegal value ?? 3641 ["146 -- 160" ]: illegal value ?? 3642 ["147---156" ]: illegal value %% 3643 ["147--156, 157--168" ]: matches 23--27, 29--32 ?? 3644 ["148--154, 156, 158, 160, 162, 164"]: illegal value ?? 3645 ["149 -- 158" ]: illegal value ?? 3646 ["15 + 8" ]: illegal value ?? 3647 ["15 + [1]" ]: illegal value %% 3648 ["15--18, 22--23" ]: matches 23--27, 29--32 ?? 3649 ["15--21, 110" ]: illegal value ?? 3650 ["15.1--15.24" ]: illegal value ?? 3651 ["15.1/1--4" ]: illegal value ?? 3652 ["15.2/1--4" ]: illegal value ?? 3653 ["15/1/1--4" ]: illegal value ?? 3654 ["150 -- 165" ]: illegal value ?? 3655 ["150 l." ]: illegal value ?? 3656 ["1509--1514 vol.2" ]: illegal value ?? 3657 ["152 -- 179" ]: illegal value %% 3658 ["152--160, 300--301" ]: matches 23--27, 29--32 ?? 3659 ["152--164, 166" ]: illegal value ?? 3660 ["155 -- 189" ]: illegal value ?? 3661 ["155--156, 158" ]: illegal value ?? 3662 ["1550 -- 1560" ]: illegal value %% 3663 ["1587, with 31 illustrations"]: matches 239, with 27 illustrations ?? 3664 ["159 ff." ]: illegal value ?? 3665 ["16 + 10" ]: illegal value ?? 3666 ["16 + [8]" ]: illegal value ?? 3667 ["16--17, 44" ]: illegal value ?? 3668 ["16--18, 20, 22" ]: illegal value ?? 3669 ["16.1--16.22" ]: illegal value ?? 3670 ["16/1/1--3" ]: illegal value ?? 3671 ["16/2/1--7" ]: illegal value ?? 3672 ["16/3/1--3" ]: illegal value ?? 3673 ["16/5/1--10" ]: illegal value ?? 3674 ["160F--??" ]: illegal value ?? 3675 ["161 -- 184" ]: illegal value ?? 3676 ["162--172, 174" ]: illegal value ?? 3677 ["163 -- 170" ]: illegal value ?? 3678 ["1647-1652" ]: illegal value ?? 3679 ["165 -- 170" ]: illegal value %% 3680 ["165--170, 499--511" ]: matches 23--27, 29--32 ?? 3681 ["166 + 61" ]: illegal value ?? 3682 ["166 columns." ]: illegal value ?? 3683 ["166--1f" ]: illegal value %% 3684 ["168--173, 175--176, 178--181"]: matches 23--27, 29--32, 35--37 ?? 3685 ["169 -- 176" ]: illegal value ?? 3686 ["169-" ]: illegal value ?? 3687 ["17 -- 24" ]: illegal value ?? 3688 ["17 -- 41" ]: illegal value ?? 3689 ["17 v. in 1" ]: illegal value ?? 3690 ["17--25 (discussion 27--28)"]: illegal value ?? 3691 ["17." ]: illegal value ?? 3692 ["170--181 (of xi + 528)"]: illegal value ?? 3693 ["171 -- 179" ]: illegal value ?? 3694 ["171 -- 187" ]: illegal value ?? 3695 ["172 pages." ]: illegal value ?? 3696 ["172--173, 175" ]: illegal value ?? 3697 ["172--176, 178, 180--182, 184, 186--187, 192--197]: illegal value ?? 3698 ["173 + 11 + 3" ]: illegal value ?? 3699 ["173 -- 177" ]: illegal value %% 3700 ["173--174, 191--192" ]: matches 23--27, 29--32 ?? 3701 ["173--176 (vol. 1)" ]: illegal value %% 3702 ["174, 176" ]: matches 23, 27 ?? 3703 ["175--178 (Vol. 1)" ]: illegal value ?? 3704 ["175--208 (or 175--207??)"]: illegal value ?? 3705 ["176, 196--206" ]: illegal value ?? 3706 ["177 -- 184" ]: illegal value ?? 3707 ["177 -- 197" ]: illegal value ?? 3708 ["177 -- 209" ]: illegal value ?? 3709 ["177--184 (or 171--176??)"]: illegal value ?? 3710 ["1784--1791 vol.4" ]: illegal value ?? 3711 ["179 -- 200" ]: illegal value ?? 3712 ["179--194 and 315--326" ]: illegal value ?? 3713 ["1792--1795 vol.4" ]: illegal value ?? 3714 ["1796--1799 vol.4" ]: illegal value ?? 3715 ["18 + [18]" ]: illegal value ?? 3716 ["18 + [21]" ]: illegal value ?? 3717 ["18 + [33]" ]: illegal value ?? 3718 ["18 + [58]" ]: illegal value ?? 3719 ["18 -- 24" ]: illegal value ?? 3720 ["18--20, 22, 24, 26, 91"]: illegal value ?? 3721 ["18." ]: illegal value ?? 3722 ["18/0/1--5" ]: illegal value ?? 3723 ["18/1/1--12" ]: illegal value ?? 3724 ["18/2/1--5" ]: illegal value ?? 3725 ["18/3/1--6" ]: illegal value ?? 3726 ["18/4/1--8" ]: illegal value ?? 3727 ["180." ]: illegal value ?? 3728 ["1800--1803 vol.4" ]: illegal value ?? 3729 ["181 -- 191" ]: illegal value ?? 3730 ["181 -- 198" ]: illegal value ?? 3731 ["181--182, 184" ]: illegal value ?? 3732 ["181-197" ]: illegal value ?? 3733 ["184 (Macintosh), 192 (Windows)"]: illegal value ?? 3734 ["187 -- 196" ]: illegal value ?? 3735 ["187 -- 209" ]: illegal value ?? 3736 ["187 -- 217" ]: illegal value ?? 3737 ["1876--1881 (vol. 3)" ]: illegal value ?? 3738 ["188--200 (or 201??)" ]: illegal value ?? 3739 ["19 + 4 + 1" ]: illegal value ?? 3740 ["19 -- 46" ]: illegal value ?? 3741 ["19 program files on 2 computer disks 1 user's guide"]: illegal value ?? 3742 ["19+117" ]: illegal value ?? 3743 ["19--27 (of xviii + 1621)"]: illegal value %% 3744 ["190, 192" ]: matches 23, 27 ?? 3745 ["191--197 vol.1" ]: illegal value ?? 3746 ["193--194, 196" ]: illegal value ?? 3747 ["193--206 (of ix + 453)"]: illegal value ?? 3748 ["193--6, 198" ]: illegal value %% 3749 ["194, 196" ]: matches 23, 27 ?? 3750 ["194--196, 198, 200, 202--203, 205--206, 208, 210"]: illegal value ?? 3751 ["195 -- 204" ]: illegal value ?? 3752 ["197 + [1]" ]: illegal value ?? 3753 ["2 + 2 + 335" ]: illegal value ?? 3754 ["2 + 2 + 354" ]: illegal value ?? 3755 ["2 + 216" ]: illegal value ?? 3756 ["2 + 4 (C source code)" ]: illegal value ?? 3757 ["2 + 475" ]: illegal value ?? 3758 ["2 + 7 + 227" ]: illegal value ?? 3759 ["2 + [6]." ]: illegal value ?? 3760 ["2 + xi + 237" ]: illegal value ?? 3761 ["2 -- 9" ]: illegal value ?? 3762 ["2 computer disks" ]: illegal value ?? 3763 ["2 microfiches (125 fr.)"]: illegal value ?? 3764 ["2 microfiches (134 fr.)"]: illegal value ?? 3765 ["2 microfiches (138 fr.)"]: illegal value ?? 3766 ["2 microfiches" ]: illegal value ?? 3767 ["2 program files (FORTRAN + IBM PC) on 1 computer disk"]: illegal value ?? 3768 ["2 pts. in 1" ]: illegal value ?? 3769 ["2 v" ]: illegal value ?? 3770 ["2 v." ]: illegal value ?? 3771 ["2--18--2--15" ]: illegal value ?? 3772 ["2.1--2.13" ]: illegal value ?? 3773 ["2/1--3" ]: illegal value ?? 3774 ["20 -- 21 \& 8 ff." ]: illegal value ?? 3775 ["20 transparencies. color. 10 x 12 in."]: illegal value ?? 3776 ["20 transparencies. color. 10x12 in."]: illegal value ?? 3777 ["20 videocassettes (VHS) (30 min. ea.) + book."]: illegal value ?? 3778 ["20, 22, 24--25" ]: illegal value ?? 3779 ["20--22 (or 20--23??)" ]: illegal value ?? 3780 ["20.21--20.25" ]: illegal value ?? 3781 ["2002 +" ]: illegal value %% 3782 ["201--202, 204--208" ]: matches 23--27, 29--32 ?? 3783 ["201--206 (or 201--207??)"]: illegal value ?? 3784 ["203 -- 229" ]: illegal value ?? 3785 ["2038 -- 2050" ]: illegal value ?? 3786 ["204 -- 217" ]: illegal value ?? 3787 ["204--206, 209--210, 212, 215--216, 218--221"]: illegal value ?? 3788 ["205 + [3] " ]: illegal value ?? 3789 ["205 -- 215" ]: illegal value ?? 3790 ["205 -- 240" ]: illegal value ?? 3791 ["2063 -- 2068" ]: illegal value %% 3792 ["207--220, 71--78" ]: matches 23--27, 29--32 ?? 3793 ["208." ]: illegal value ?? 3794 ["209--221 (or 209--222??)"]: illegal value ?? 3795 ["21 + 133 + 87" ]: illegal value ?? 3796 ["21--2--21--13" ]: illegal value ?? 3797 ["211 -- 213" ]: illegal value ?? 3798 ["211 -- 227" ]: illegal value ?? 3799 ["213 +" ]: illegal value ?? 3800 ["213 -- 216" ]: illegal value ?? 3801 ["213--216??" ]: illegal value ?? 3802 ["213--243, esp.~219--224"]: illegal value ?? 3803 ["215 -- 224" ]: illegal value ?? 3804 ["216--220, 222, 224--226, 228, 230, 232--234"]: illegal value %% 3805 ["217--250, 276--300, 372--389"]: matches 23--27, 29--32, 35--37 ?? 3806 ["218 -- 240" ]: illegal value ?? 3807 ["219--239 (of xii + 394)"]: illegal value ?? 3808 ["22 + 3" ]: illegal value ?? 3809 ["22 + 331 (Chapter 1), 8 + 373 (Chapter 2)"]: illegal value ?? 3810 ["22 cassettes. 2--track. mono."]: illegal value ?? 3811 ["221--222, 224, 226" ]: illegal value ?? 3812 ["221--224 (vol. 1)" ]: illegal value ?? 3813 ["221--231 (or 221--232??)"]: illegal value %% 3814 ["222--225, 227--235" ]: matches 23--27, 29--32 ?? 3815 ["223 + [8]" ]: illegal value ?? 3816 ["223 -- 227" ]: illegal value ?? 3817 ["223 -- 252" ]: illegal value ?? 3818 ["224 + [1]" ]: illegal value ?? 3819 ["224A--??" ]: illegal value ?? 3820 ["227 -- 234" ]: illegal value ?? 3821 ["228 -- 236" ]: illegal value ?? 3822 ["228ff" ]: illegal value ?? 3823 ["22:00--35:28" ]: illegal value ?? 3824 ["23 + iii" ]: illegal value ?? 3825 ["23 -- 27" ]: illegal value ?? 3826 ["231 -- 232" ]: illegal value ?? 3827 ["231 -- 240" ]: illegal value ?? 3828 ["231 -- 264" ]: illegal value ?? 3829 ["232-236" ]: illegal value ?? 3830 ["233--242 (of xix + 453)"]: illegal value ?? 3831 ["235--255 (of ix + 403)"]: illegal value ?? 3832 ["236--238, 240" ]: illegal value ?? 3833 ["237 + 15 + 18." ]: illegal value ?? 3834 ["237--253 (of xvii + 529)"]: illegal value ?? 3835 ["237-256" ]: illegal value ?? 3836 ["238 -- 251" ]: illegal value ?? 3837 ["239 + [2]" ]: illegal value ?? 3838 ["239 -- 259" ]: illegal value %% 3839 ["239, 240" ]: matches 23, 27 ?? 3840 ["239--242, 144" ]: illegal value ?? 3841 ["24 + 27" ]: illegal value ?? 3842 ["24 + [12]" ]: illegal value ?? 3843 ["24 -- 30" ]: illegal value ?? 3844 ["24--85 (or 42??)" ]: illegal value ?? 3845 ["24-30" ]: illegal value ?? 3846 ["240 -- 250" ]: illegal value %% 3847 ["240, 303" ]: matches 23, 27 ?? 3848 ["241--242 (?? check ??) or 696--698"]: illegal value %% 3849 ["241--244, 246--247" ]: matches 23--27, 29--32 ?? 3850 ["241-246" ]: illegal value ?? 3851 ["241-250" ]: illegal value ?? 3852 ["241-264" ]: illegal value ?? 3853 ["243 + 12 + 10 + 6" ]: illegal value ?? 3854 ["243 -- 248" ]: illegal value ?? 3855 ["243 -- 268" ]: illegal value ?? 3856 ["244-244" ]: illegal value ?? 3857 ["245 -- 255" ]: illegal value ?? 3858 ["246--260 (or 246--259??)"]: illegal value ?? 3859 ["246-250" ]: illegal value ?? 3860 ["247--250 vol.1" ]: illegal value ?? 3861 ["247-254" ]: illegal value ?? 3862 ["249 -- 259" ]: illegal value ?? 3863 ["249--252, 254, 256" ]: illegal value ?? 3864 ["25--28, 30--32, 34, 36, 38--39"]: illegal value ?? 3865 ["250 +" ]: illegal value ?? 3866 ["250--255 (of xii + 423)"]: illegal value ?? 3867 ["254 + [2]" ]: illegal value ?? 3868 ["255 -- 286" ]: illegal value ?? 3869 ["257--258, 260" ]: illegal value ?? 3870 ["257--258, 260, 262" ]: illegal value ?? 3871 ["257--284 (of x + 338)" ]: illegal value ?? 3872 ["258--287 (of viii + 655)"]: illegal value ?? 3873 ["259 -- 271" ]: illegal value ?? 3874 ["26 + 19" ]: illegal value ?? 3875 ["26 + 324 + 8" ]: illegal value ?? 3876 ["26 -- 43" ]: illegal value ?? 3877 ["260--274 (or 260--273??)"]: illegal value ?? 3878 ["261 +" ]: illegal value %% 3879 ["263, 267" ]: matches 23, 27 ?? 3880 ["265--266, 268" ]: illegal value %% 3881 ["265--271, 332--345" ]: matches 23--27, 29--32 %% 3882 ["265--272, 332--345" ]: matches 23--27, 29--32 ?? 3883 ["265--273, 341" ]: illegal value ?? 3884 ["267--283 (or 268--283??)"]: illegal value ?? 3885 ["268 + 106" ]: illegal value ?? 3886 ["268--270 (or 268--274??)"]: illegal value ?? 3887 ["268--274 (or 268--270??)"]: illegal value ?? 3888 ["269--288 (of ix + 453)"]: illegal value ?? 3889 ["27--30, 32, 34, 36" ]: illegal value ?? 3890 ["273--314 (of ix + 388)"]: illegal value ?? 3891 ["274 pp" ]: illegal value ?? 3892 ["275 +" ]: illegal value ?? 3893 ["275 -- 282" ]: illegal value ?? 3894 ["275 -- 297" ]: illegal value ?? 3895 ["276--280, 282, 284--285, 289--291, 293, 295, 299]: illegal value ?? 3896 ["277 +" ]: illegal value ?? 3897 ["279--289 (vol. 2)" ]: illegal value ?? 3898 ["279--290 (or 279--298??)"]: illegal value ?? 3899 ["2794 -- 2802" ]: illegal value ?? 3900 ["27:1--27:10" ]: illegal value ?? 3901 ["27P-28P" ]: illegal value ?? 3902 ["28 -- 41" ]: illegal value %% 3903 ["28, 29, 285" ]: matches 23, 27, 45 ?? 3904 ["28, 30, 32, 34, 36, 38, 91--92"]: illegal value ?? 3905 ["28, 30, 32, 34, 84, 86--87"]: illegal value ?? 3906 ["28, 30--31" ]: illegal value ?? 3907 ["28--35 (or 28--34??)" ]: illegal value ?? 3908 ["280 -- 294" ]: illegal value ?? 3909 ["2803 -- 2812" ]: illegal value ?? 3910 ["281 -- 294" ]: illegal value ?? 3911 ["282 -- 292" ]: illegal value ?? 3912 ["283 +" ]: illegal value ?? 3913 ["286 -- 300" ]: illegal value ?? 3914 ["286--2xx" ]: illegal value ?? 3915 ["287 -- 295" ]: illegal value ?? 3916 ["287 -- 301" ]: illegal value ?? 3917 ["287--290??" ]: illegal value ?? 3918 ["29 + 5 + 7 + 9 + 6" ]: illegal value ?? 3919 ["29 -- 42" ]: illegal value ?? 3920 ["29, 32--38" ]: illegal value ?? 3921 ["29--37 (of xix + 685)" ]: illegal value ?? 3922 ["29--49 (of xi + 425)" ]: illegal value ?? 3923 ["29--82 (of x + 415)" ]: illegal value ?? 3924 ["29." ]: illegal value ?? 3925 ["291 -- 309" ]: illegal value ?? 3926 ["292--296 (of xi + 437)"]: illegal value ?? 3927 ["293--312 (or 293--311??)"]: illegal value ?? 3928 ["295--296, 298" ]: illegal value ?? 3929 ["297-" ]: illegal value ?? 3930 ["2P-3P" ]: illegal value ?? 3931 ["2c6.1--??" ]: illegal value ?? 3932 ["2c6.9--??" ]: illegal value ?? 3933 ["3 + 6" ]: illegal value ?? 3934 ["3 + 810 + 15" ]: illegal value ?? 3935 ["3 + [11]" ]: illegal value ?? 3936 ["3 + [16] + [1]" ]: illegal value ?? 3937 ["3 books + 4 diskettes + 1 booklet."]: illegal value ?? 3938 ["3 computer disks" ]: illegal value ?? 3939 ["3 microfiches (221 im.)"]: illegal value ?? 3940 ["3 microfiches." ]: illegal value ?? 3941 ["3 pts." ]: illegal value ?? 3942 ["3 v. in 1" ]: illegal value ?? 3943 ["3 v." ]: illegal value ?? 3944 ["3+" ]: illegal value %% 3945 ["3, 18" ]: matches 23, 27 %% 3946 ["3, 20" ]: matches 23, 27 ?? 3947 ["3--" ]: illegal value ?? 3948 ["3--27 (or 3--28??)" ]: illegal value ?? 3949 ["3.1--3.10" ]: illegal value ?? 3950 ["3.1--3.13" ]: illegal value ?? 3951 ["3.4.1--3.4.4" ]: illegal value ?? 3952 ["3/206" ]: illegal value ?? 3953 ["3/308" ]: illegal value ?? 3954 ["30, 32--33" ]: illegal value ?? 3955 ["30.3/1--4" ]: illegal value ?? 3956 ["300 -- 308" ]: illegal value ?? 3957 ["301 -- 320" ]: illegal value ?? 3958 ["301 -- 331" ]: illegal value ?? 3959 ["301--321 (or 301--324??)"]: illegal value ?? 3960 ["301." ]: illegal value ?? 3961 ["303--304??" ]: illegal value ?? 3962 ["303--?" ]: illegal value ?? 3963 ["305 -- 316" ]: illegal value %% 3964 ["307, 307" ]: matches 23, 27 ?? 3965 ["309 -- 318" ]: illegal value ?? 3966 ["309 -- 322" ]: illegal value ?? 3967 ["309--323 (of viii + 426)"]: illegal value ?? 3968 ["309--328 (or 300--328??)"]: illegal value ?? 3969 ["309--376 (of xv + 608)"]: illegal value ?? 3970 ["31--45 (of 255)" ]: illegal value ?? 3971 ["310--" ]: illegal value ?? 3972 ["313." ]: illegal value ?? 3973 ["315 -- 327" ]: illegal value ?? 3974 ["315 -- 333" ]: illegal value ?? 3975 ["315--340 (or 315--339 ?? or 315--349 ??)"]: illegal value ?? 3976 ["317 -- 318, 503" ]: illegal value ?? 3977 ["317 -- 330" ]: illegal value ?? 3978 ["317--318, 503" ]: illegal value ?? 3979 ["317--365, 1870" ]: illegal value ?? 3980 ["319--326 (or 318--326??)"]: illegal value ?? 3981 ["32 + 36" ]: illegal value ?? 3982 ["32 + A1--A4" ]: illegal value ?? 3983 ["32 -- 45" ]: illegal value ?? 3984 ["32, 34, 38--39, 101" ]: illegal value %% 3985 ["32--48, 96--100" ]: matches 23--27, 29--32 ?? 3986 ["32." ]: illegal value ?? 3987 ["325--330 (of xiii + 426)"]: illegal value ?? 3988 ["327 (without CD--ROM), 388 (with CD--ROM)"]: illegal value ?? 3989 ["327 -- 329" ]: illegal value ?? 3990 ["327 -- 340" ]: illegal value ?? 3991 ["328-335" ]: illegal value ?? 3992 ["329 -- 345" ]: illegal value ?? 3993 ["33 + 26" ]: illegal value ?? 3994 ["33 + [9]" ]: illegal value ?? 3995 ["33 -- 41" ]: illegal value ?? 3996 ["33 slides (in carousel slide tray) col. 2 x 2 in."]: illegal value ?? 3997 ["33--43, 45" ]: illegal value ?? 3998 ["330 -- 340" ]: illegal value ?? 3999 ["330 -- 345" ]: illegal value ?? 4000 ["333 -- 365" ]: illegal value ?? 4001 ["337 -- 338" ]: illegal value ?? 4002 ["337 -- 340" ]: illegal value %% 4003 ["337--357, 458--474" ]: matches 23--27, 29--32 ?? 4004 ["338 -- 346, 250 -- 252, 97"]: illegal value ?? 4005 ["339--352 (of xvii + 559)"]: illegal value ?? 4006 ["34 + 16 + 15" ]: illegal value ?? 4007 ["34 + 25" ]: illegal value ?? 4008 ["34 slides (in carousel slide tray) col. 2 x 2 in."]: illegal value ?? 4009 ["341 -- 348" ]: illegal value ?? 4010 ["343--348 (or 343--347??)"]: illegal value ?? 4011 ["347--363 (or 347--364??)"]: illegal value ?? 4012 ["349--385 and 435--471" ]: illegal value ?? 4013 ["35 + 14" ]: illegal value ?? 4014 ["35 + [80]" ]: illegal value ?? 4015 ["35--62 (of xiv + 644)" ]: illegal value ?? 4016 ["35/1/1--13" ]: illegal value ?? 4017 ["35/2/1--6" ]: illegal value ?? 4018 ["35/4/1--5" ]: illegal value ?? 4019 ["350-353" ]: illegal value ?? 4020 ["354-" ]: illegal value ?? 4021 ["355 -- 358" ]: illegal value ?? 4022 ["357--428 (of ix + 523)"]: illegal value %% 4023 ["359, with 9 illustrations"]: matches 239, with 27 illustrations ?? 4024 ["36 + [4]" ]: illegal value ?? 4025 ["36 microfiche." ]: illegal value ?? 4026 ["36 slides (in carousel slide tray) col. 2 x 2 in."]: illegal value ?? 4027 ["36, 38, 40, 42, 86, 88--89"]: illegal value ?? 4028 ["36--38, 40, 42--44, 46--47, 50--51"]: illegal value %% 4029 ["361, 365" ]: matches 23, 27 ?? 4030 ["361--364, 366, 368" ]: illegal value ?? 4031 ["363--366 (of xviii + 654)"]: illegal value ?? 4032 ["363--394 (??)" ]: illegal value ?? 4033 ["363--8, 370, 372, 374, 376"]: illegal value ?? 4034 ["364 +" ]: illegal value ?? 4035 ["365 -- 392" ]: illegal value ?? 4036 ["365--375 (or 365--381??)"]: illegal value ?? 4037 ["369 -- 383" ]: illegal value ?? 4038 ["369--374 (??)" ]: illegal value ?? 4039 ["37 + [31]" ]: illegal value ?? 4040 ["373--377, 385" ]: illegal value ?? 4041 ["375 -- 412" ]: illegal value ?? 4042 ["375--378 (vol. 1)" ]: illegal value ?? 4043 ["375--386, discussion 386--388"]: illegal value %% 4044 ["38--42, 44--46, 48--51"]: matches 23--27, 29--32, 35--37 ?? 4045 ["38--45, 77" ]: illegal value ?? 4046 ["381--385, 387" ]: illegal value ?? 4047 ["382 -- 384" ]: illegal value ?? 4048 ["385,386,388,390,392,395"]: illegal value ?? 4049 ["38a + 1559" ]: illegal value ?? 4050 ["39 + [14]" ]: illegal value %% 4051 ["39--45, 48--52" ]: matches 23--27, 29--32 ?? 4052 ["39--84 (of xiii + 444)"]: illegal value ?? 4053 ["391-" ]: illegal value ?? 4054 ["391--394 (plus microfiche listing)"]: illegal value ?? 4055 ["395 -- 412" ]: illegal value ?? 4056 ["4 + 2 + 8" ]: illegal value ?? 4057 ["4 + 366" ]: illegal value ?? 4058 ["4 + 5" ]: illegal value ?? 4059 ["4 + [13]" ]: illegal value ?? 4060 ["4 + [2] + 8" ]: illegal value ?? 4061 ["4 + [3]" ]: illegal value ?? 4062 ["4 + [5]" ]: illegal value ?? 4063 ["4 + iv + 216" ]: illegal value ?? 4064 ["4 cassettes + 240 min."]: illegal value ?? 4065 ["4 computer disks" ]: illegal value ?? 4066 ["4 program files (IBM--PC) on 3 computer disks"]: illegal value ?? 4067 ["4 v. in 1" ]: illegal value ?? 4068 ["4 v." ]: illegal value ?? 4069 ["4.1--4.12" ]: illegal value ?? 4070 ["4.1--4.21" ]: illegal value ?? 4071 ["4/1--6" ]: illegal value ?? 4072 ["4/1--8" ]: illegal value ?? 4073 ["40 +" ]: illegal value %% 4074 ["40--42, 44--49" ]: matches 23--27, 29--32 ?? 4075 ["404-408" ]: illegal value ?? 4076 ["4053 -- 4062" ]: illegal value ?? 4077 ["407--422 (of x + 668)" ]: illegal value ?? 4078 ["408 -- 414" ]: illegal value ?? 4079 ["41 + x" ]: illegal value ?? 4080 ["41 -- 72" ]: illegal value ?? 4081 ["41--54 (or 41--47??)" ]: illegal value ?? 4082 ["413--440 (or 413--439??)"]: illegal value %% 4083 ["415--440, 517--523" ]: matches 23--27, 29--32 ?? 4084 ["417--429 (vol. 1)" ]: illegal value ?? 4085 ["418 -- 450" ]: illegal value ?? 4086 ["419-429" ]: illegal value ?? 4087 ["41P" ]: illegal value ?? 4088 ["42 + 8." ]: illegal value ?? 4089 ["42--46, 54, 57--79" ]: illegal value ?? 4090 ["421--430 (or 421--431??)"]: illegal value ?? 4091 ["424--436 (or 424--431??)"]: illegal value ?? 4092 ["425--?" ]: illegal value ?? 4093 ["425ff" ]: illegal value ?? 4094 ["426 +" ]: illegal value ?? 4095 ["428--434 (of xix + 453)"]: illegal value %% 4096 ["43, 126" ]: matches 23, 27 ?? 4097 ["431 +" ]: illegal value ?? 4098 ["433ff" ]: illegal value ?? 4099 ["434--443 vol.2" ]: illegal value ?? 4100 ["44 + [1]" ]: illegal value ?? 4101 ["44--45, 285" ]: illegal value ?? 4102 ["441 ff." ]: illegal value ?? 4103 ["445-507" ]: illegal value ?? 4104 ["449--461 vol.2" ]: illegal value %% 4105 ["45, 116" ]: matches 23, 27 ?? 4106 ["450 vol.1" ]: illegal value ?? 4107 ["450--453 (plus microfiche supplement)"]: illegal value %% 4108 ["46, 79, 82" ]: matches 23, 27, 45 ?? 4109 ["46--47, 286" ]: illegal value ?? 4110 ["463 -- 464" ]: illegal value ?? 4111 ["465 -- 471" ]: illegal value ?? 4112 ["466 + [14]" ]: illegal value ?? 4113 ["467--474 (vol. 1)" ]: illegal value ?? 4114 ["47 -- 66" ]: illegal value ?? 4115 ["473 +" ]: illegal value ?? 4116 ["476 + 88" ]: illegal value ?? 4117 ["479--514 (of 514)" ]: illegal value ?? 4118 ["48 + [2]" ]: illegal value ?? 4119 ["48--49, 287" ]: illegal value ?? 4120 ["48/1/1--8" ]: illegal value ?? 4121 ["48/5/1--7" ]: illegal value ?? 4122 ["481 +" ]: illegal value ?? 4123 ["484--488 vol.1" ]: illegal value ?? 4124 ["486 -- 487" ]: illegal value ?? 4125 ["49 -- 67" ]: illegal value ?? 4126 ["493--1099 + xviii + xvi + xviii"]: illegal value ?? 4127 ["494, with subject index, author index, and glossary"]: illegal value ?? 4128 ["5 + 86 [i.e. 89] + 5" ]: illegal value ?? 4129 ["5 + [3]" ]: illegal value ?? 4130 ["5 + [4] + 24" ]: illegal value ?? 4131 ["5 + [4]" ]: illegal value ?? 4132 ["5 + [6] + [1] + [4] + [1]"]: illegal value ?? 4133 ["5 cubic ft. + 10 panels + and 1 videotape."]: illegal value ?? 4134 ["5 v. in 1" ]: illegal value ?? 4135 ["5 v." ]: illegal value ?? 4136 ["5--9, 36" ]: illegal value ?? 4137 ["5.1--5.29" ]: illegal value ?? 4138 ["5/1--3" ]: illegal value ?? 4139 ["5/1--5/4" ]: illegal value ?? 4140 ["50 + [28]" ]: illegal value ?? 4141 ["50--51, 288" ]: illegal value ?? 4142 ["50--56, 58" ]: illegal value ?? 4143 ["50." ]: illegal value ?? 4144 ["501--504 vol.2" ]: illegal value ?? 4145 ["503 -- 524" ]: illegal value ?? 4146 ["509--519 (or 509--520??)"]: illegal value ?? 4147 ["51 + 38" ]: illegal value ?? 4148 ["51 + A--2 + 12" ]: illegal value ?? 4149 ["51 + [78]" ]: illegal value ?? 4150 ["51 -- 89" ]: illegal value ?? 4151 ["51--52, 54, 55" ]: illegal value ?? 4152 ["512 -- 521" ]: illegal value ?? 4153 ["515 +" ]: illegal value ?? 4154 ["519 -- 554" ]: illegal value ?? 4155 ["52, 54--56" ]: illegal value ?? 4156 ["52, 55--56, 58, 90" ]: illegal value ?? 4157 ["52--53, 289" ]: illegal value %% 4158 ["52--53, 56--58" ]: matches 23--27, 29--32 ?? 4159 ["53 + [1]" ]: illegal value ?? 4160 ["53 -- 65" ]: illegal value ?? 4161 ["53--142 (of xi + 499)" ]: illegal value ?? 4162 ["53--147 (of ix + 332)" ]: illegal value ?? 4163 ["531 -- 549" ]: illegal value ?? 4164 ["534 -- 544" ]: illegal value ?? 4165 ["535 + 16" ]: illegal value ?? 4166 ["536 -- 539" ]: illegal value ?? 4167 ["54 -- 99" ]: illegal value ?? 4168 ["54--55, 290" ]: illegal value ?? 4169 ["541--555 (of xiv + 644)"]: illegal value %% 4170 ["544, with 22 illustrations"]: matches 239, with 27 illustrations ?? 4171 ["55 + [28]" ]: illegal value ?? 4172 ["55 -- 73" ]: illegal value %% 4173 ["55, 57, 59" ]: matches 23, 27, 45 ?? 4174 ["55, 57--63" ]: illegal value %% 4175 ["55--62, 64--70" ]: matches 23--27, 29--32 ?? 4176 ["551 -- 560" ]: illegal value ?? 4177 ["552 -- 563" ]: illegal value ?? 4178 ["556 (v. 1), 1056 (v. 2)"]: illegal value ?? 4179 ["557--558, 578" ]: illegal value ?? 4180 ["557--558, 594" ]: illegal value ?? 4181 ["56 + 39" ]: illegal value ?? 4182 ["56, 58, 60--61, 101--102"]: illegal value ?? 4183 ["560 -- 566" ]: illegal value ?? 4184 ["566 o." ]: illegal value %% 4185 ["57--58, 61--68, 70--71"]: matches 23--27, 29--32, 35--37 ?? 4186 ["57-63" ]: illegal value ?? 4187 ["570--598 vol.1" ]: illegal value ?? 4188 ["572--578, 585" ]: illegal value ?? 4189 ["576--580 and 583" ]: illegal value ?? 4190 ["58 + [35]" ]: illegal value ?? 4191 ["58, 60, 62, 96, 98, 99"]: illegal value ?? 4192 ["58--78 (of 196)" ]: illegal value ?? 4193 ["581 -- 595" ]: illegal value ?? 4194 ["59 + 15" ]: illegal value %% 4195 ["59, 61" ]: matches 23, 27 ?? 4196 ["59, 62--64" ]: illegal value %% 4197 ["59--60, 63--64" ]: matches 23--27, 29--32 ?? 4198 ["593 -- 608" ]: illegal value ?? 4199 ["598--603, 643" ]: illegal value ?? 4200 ["6 + 379" ]: illegal value ?? 4201 ["6 + A2" ]: illegal value ?? 4202 ["6 + [2]" ]: illegal value ?? 4203 ["6 + [3]" ]: illegal value ?? 4204 ["6 + [6]" ]: illegal value ?? 4205 ["6 cartridges" ]: illegal value ?? 4206 ["6 computer disks guide."]: illegal value ?? 4207 ["6 motion pictures. sd. color. super 8 mm."]: illegal value ?? 4208 ["6 sound cassettes kit + program coding forms."]: illegal value ?? 4209 ["6 v. in 1" ]: illegal value %% 4210 ["6, 22" ]: matches 23, 27 ?? 4211 ["6." ]: illegal value ?? 4212 ["6.1--6.23" ]: illegal value ?? 4213 ["6/1--6/3" ]: illegal value ?? 4214 ["6/2/1--7" ]: illegal value ?? 4215 ["60--1--??" ]: illegal value ?? 4216 ["60." ]: illegal value ?? 4217 ["604 -- 621" ]: illegal value ?? 4218 ["604--609 (vol. 2)" ]: illegal value ?? 4219 ["61 -- 94" ]: illegal value ?? 4220 ["619--621 vol.2" ]: illegal value ?? 4221 ["62 + 70" ]: illegal value ?? 4222 ["628-666" ]: illegal value ?? 4223 ["63 + 45" ]: illegal value ?? 4224 ["63 + [51]" ]: illegal value ?? 4225 ["63 -- 94" ]: illegal value ?? 4226 ["63--66, 69--72, 77--78, 80"]: illegal value ?? 4227 ["64, 69--70" ]: illegal value ?? 4228 ["64--1--??" ]: illegal value ?? 4229 ["641--650 vol.1" ]: illegal value ?? 4230 ["644-653" ]: illegal value ?? 4231 ["645 -- 677" ]: illegal value ?? 4232 ["646--649 (vol. 2)" ]: illegal value ?? 4233 ["649 \& 703" ]: illegal value %% 4234 ["649, 703" ]: matches 23, 27 ?? 4235 ["64NA4--??" ]: illegal value ?? 4236 ["65 -- 88" ]: illegal value %% 4237 ["65--66, 68--69" ]: matches 23--27, 29--32 ?? 4238 ["65--68 (or 65--67??)" ]: illegal value ?? 4239 ["653 -- 660" ]: illegal value ?? 4240 ["654--662 (or 654--660??)"]: illegal value ?? 4241 ["657--658 (vol. 1)" ]: illegal value ?? 4242 ["65H--??" ]: illegal value ?? 4243 ["66 + 12" ]: illegal value ?? 4244 ["66--76, 130--139, 187--196, 246--261"]: illegal value ?? 4245 ["66--99 (of vi + 335)" ]: illegal value ?? 4246 ["668 -- 675" ]: illegal value ?? 4247 ["67--68, 70" ]: illegal value ?? 4248 ["67--68, 70, 72, 74--77, 79"]: illegal value ?? 4249 ["67--70, 72, 74, 77--78, 80--81"]: illegal value %% 4250 ["67--71, 115--116" ]: matches 23--27, 29--32 %% 4251 ["68--80, 98--102" ]: matches 23--27, 29--32 ?? 4252 ["69 -- 100" ]: illegal value ?? 4253 ["69 -- 88" ]: illegal value ?? 4254 ["691 -- 699" ]: illegal value ?? 4255 ["694 -- 695" ]: illegal value ?? 4256 ["7 + 4 + 12 + 25 + [5]" ]: illegal value ?? 4257 ["7 + 573" ]: illegal value ?? 4258 ["7 + 9 (C source code)" ]: illegal value ?? 4259 ["7 + [24]" ]: illegal value ?? 4260 ["7 + [2]" ]: illegal value ?? 4261 ["7 + [7]" ]: illegal value ?? 4262 ["7 -- 9" ]: illegal value ?? 4263 ["7 computer disks" ]: illegal value ?? 4264 ["7 fasc." ]: illegal value ?? 4265 ["7 v. in 1" ]: illegal value ?? 4266 ["7 v.in 1" ]: illegal value ?? 4267 ["7, 8, 10, 12, 13, 16" ]: illegal value ?? 4268 ["7." ]: illegal value ?? 4269 ["7.1--7.18" ]: illegal value ?? 4270 ["7/2/1--5" ]: illegal value ?? 4271 ["7/3/1--9" ]: illegal value ?? 4272 ["7/4/1--3" ]: illegal value ?? 4273 ["70 microfiches" ]: illegal value ?? 4274 ["701 -- 721" ]: illegal value ?? 4275 ["71 -- 95" ]: illegal value ?? 4276 ["71." ]: illegal value ?? 4277 ["714-736" ]: illegal value ?? 4278 ["718 + 95 + 16" ]: illegal value ?? 4279 ["72 + [6]" ]: illegal value %% 4280 ["72, 74, 76, 78" ]: matches 23, 27, 45, 98 ?? 4281 ["72, 74--75, 86--87" ]: illegal value ?? 4282 ["723--762 (of xix + 762)"]: illegal value ?? 4283 ["727--?? (or 158--??)" ]: illegal value ?? 4284 ["72IS/11--12" ]: illegal value ?? 4285 ["73 -- 78" ]: illegal value ?? 4286 ["73 -- 90" ]: illegal value %% 4287 ["73, 210" ]: matches 23, 27 ?? 4288 ["73--75, 78, 80--85 and 1"]: illegal value ?? 4289 ["730--734 vol.2" ]: illegal value ?? 4290 ["731--740, 798" ]: illegal value ?? 4291 ["738 -- 741" ]: illegal value ?? 4292 ["74 -- 86" ]: illegal value ?? 4293 ["742--749, 774" ]: illegal value ?? 4294 ["745 -- 755" ]: illegal value ?? 4295 ["74S--74S" ]: illegal value ?? 4296 ["75--78, 80--82, 84" ]: illegal value ?? 4297 ["75-89" ]: illegal value ?? 4298 ["754--760 (vol. 1)" ]: illegal value ?? 4299 ["76 + 6 + 3" ]: illegal value %% 4300 ["76--78, 180--188" ]: matches 23--27, 29--32 ?? 4301 ["762 -- 777" ]: illegal value ?? 4302 ["77 -- 84" ]: illegal value ?? 4303 ["77--78, 80" ]: illegal value ?? 4304 ["773 -- 782" ]: illegal value ?? 4305 ["78 + A34" ]: illegal value ?? 4306 ["78 + [26]" ]: illegal value ?? 4307 ["78 + [2]" ]: illegal value ?? 4308 ["79 + [76]" ]: illegal value ?? 4309 ["793--799, 803" ]: illegal value ?? 4310 ["797 -- 806" ]: illegal value ?? 4311 ["799 -- 806" ]: illegal value ?? 4312 ["8 + 1" ]: illegal value ?? 4313 ["8 + 196" ]: illegal value ?? 4314 ["8 + 223" ]: illegal value ?? 4315 ["8 + 24 + 20" ]: illegal value ?? 4316 ["8 + 4" ]: illegal value ?? 4317 ["8 + A--33" ]: illegal value ?? 4318 ["8 + [10]" ]: illegal value ?? 4319 ["8 + [15]" ]: illegal value ?? 4320 ["8 computer disks" ]: illegal value ?? 4321 ["8 microfiche." ]: illegal value ?? 4322 ["8 sound cassettes" ]: illegal value ?? 4323 ["8 sound tape reels (354 min.)"]: illegal value ?? 4324 ["8 videocassettes (ca. 45 min. ea.)"]: illegal value ?? 4325 ["8, 10--13" ]: illegal value ?? 4326 ["8--9, 11" ]: illegal value ?? 4327 ["8.1--8.24" ]: illegal value ?? 4328 ["80--83, 362" ]: illegal value ?? 4329 ["807 -- 815" ]: illegal value ?? 4330 ["81 -- 95" ]: illegal value ?? 4331 ["81." ]: illegal value ?? 4332 ["820--835 (or 820--834??)"]: illegal value ?? 4333 ["820--835 (or 836--855??)"]: illegal value ?? 4334 ["821 -- 833" ]: illegal value ?? 4335 ["83 -- 108" ]: illegal value ?? 4336 ["831 -- 847" ]: illegal value ?? 4337 ["84 -- 117" ]: illegal value ?? 4338 ["84, 86--89, 96--97" ]: illegal value ?? 4339 ["85 (or 86??)" ]: illegal value ?? 4340 ["85 -- 94" ]: illegal value ?? 4341 ["85--98 (or 85--97??)" ]: illegal value ?? 4342 ["852--873 (or 852--872??)"]: illegal value ?? 4343 ["86--100 (or 99??)" ]: illegal value ?? 4344 ["86--88, 90, 92, 94, 97"]: illegal value ?? 4345 ["87 -- 96" ]: illegal value ?? 4346 ["87--98 (or 87--97??)" ]: illegal value ?? 4347 ["88 -- 95" ]: illegal value ?? 4348 ["88--111 (of xii + 404)"]: illegal value ?? 4349 ["880--884 vol.2" ]: illegal value ?? 4350 ["885--888 (or 887?)" ]: illegal value ?? 4351 ["89--113 (or 89--114??)"]: illegal value ?? 4352 ["890--897 vol.2" ]: illegal value ?? 4353 ["891--905 (or 903??)" ]: illegal value ?? 4354 ["896--910 (or 896--911??)"]: illegal value ?? 4355 ["898--902 (vol. 2)" ]: illegal value ?? 4356 ["898--902 vol.2" ]: illegal value ?? 4357 ["8f--??" ]: illegal value ?? 4358 ["9 + 10 + 37" ]: illegal value ?? 4359 ["9 + [15]" ]: illegal value ?? 4360 ["9 + [16]" ]: illegal value ?? 4361 ["9 + [20] + [1]" ]: illegal value ?? 4362 ["9." ]: illegal value ?? 4363 ["9.1--9.25" ]: illegal value ?? 4364 ["9/1--7" ]: illegal value ?? 4365 ["90 + [1]" ]: illegal value ?? 4366 ["90--99 (or 90--98??)" ]: illegal value ?? 4367 ["91 + 5" ]: illegal value ?? 4368 ["91 +" ]: illegal value ?? 4369 ["91--103 (of ix + 394)" ]: illegal value ?? 4370 ["91--128 (of viii + 248)"]: illegal value ?? 4371 ["91--98 (of xiii + 623)"]: illegal value ?? 4372 ["92--105 (or 92--104??)"]: illegal value ?? 4373 ["93 +" ]: illegal value %% 4374 ["93--103, 108--110" ]: matches 23--27, 29--32 ?? 4375 ["94 -- 99" ]: illegal value %% 4376 ["94--104, 74--93" ]: matches 23--27, 29--32 ?? 4377 ["95 + 16" ]: illegal value ?? 4378 ["951--963 (vol. 2)" ]: illegal value ?? 4379 ["961 +" ]: illegal value ?? 4380 ["96A--??" ]: illegal value ?? 4381 ["96D--??" ]: illegal value ?? 4382 ["96NA1--??" ]: illegal value ?? 4383 ["97 -- 110" ]: illegal value ?? 4384 ["97--108 (or 97--107??)"]: illegal value ?? 4385 ["97--123." ]: illegal value ?? 4386 ["97--99 (or 87--99??)" ]: illegal value ?? 4387 ["98-101" ]: illegal value ?? 4388 ["984--1004, esp.\ 1001--1002"]: illegal value ?? 4389 ["99 + 8" ]: illegal value ?? 4390 ["99 -- 115" ]: illegal value ?? 4391 ["99--102, 117" ]: illegal value ?? 4392 ["996--1003 (vol. 2)" ]: illegal value ?? 4393 ["?" ]: illegal value ?? 4394 ["??" ]: illegal value ?? 4395 ["??--?? (of 178)" ]: illegal value ?? 4396 ["??--?? (of 514)" ]: illegal value ?? 4397 ["??--?? (of vi + 335)" ]: illegal value ?? 4398 ["??--?? (of xi + 468)" ]: illegal value ?? 4399 ["??--?? (of xiv + 644)" ]: illegal value ?? 4400 ["??--?? (of xv + 1243)" ]: illegal value ?? 4401 ["??--?? (of xvi + 694)" ]: illegal value ?? 4402 ["??--?? (of xviii + 654)"]: illegal value ?? 4403 ["??--?? (of xxii + 484)"]: illegal value ?? 4404 ["??--??" ]: illegal value ?? 4405 ["???" ]: illegal value ?? 4406 ["???--122" ]: illegal value ?? 4407 ["????" ]: illegal value ?? 4408 ["????--????" ]: illegal value ?? 4409 ["A--i--A--x, A--1--A--71"]: illegal value ?? 4410 ["A-1--A-66" ]: illegal value %% 4411 ["A14" ]: matches L23 ?? 4412 ["A14--1--A14--51 + A15--1--A15--6"]: illegal value %% 4413 ["A25" ]: matches L23 ?? 4414 ["ALL" ]: illegal value ?? 4415 ["AP-14" ]: illegal value ?? 4416 ["AP-15--AP-16" ]: illegal value ?? 4417 ["Appendix A" ]: illegal value ?? 4418 ["Approx 670" ]: illegal value ?? 4419 ["B 6 + II--4" ]: illegal value ?? 4420 ["B--i--B--iii, B--1--B--15"]: illegal value %% 4421 ["B121" ]: matches L23 %% 4422 ["B149" ]: matches L23 ?? 4423 ["B721-B729" ]: illegal value %% 4424 ["B97" ]: matches L23 ?? 4425 ["C--i--C--iii, C--1--C--28"]: illegal value ?? 4426 ["C-01--C-??" ]: illegal value ?? 4427 ["C-107--C-??" ]: illegal value ?? 4428 ["C-127--C-??" ]: illegal value ?? 4429 ["C-13--C-??" ]: illegal value ?? 4430 ["C-143--C-??" ]: illegal value ?? 4431 ["C-155--C-??" ]: illegal value ?? 4432 ["C-167--C-??" ]: illegal value ?? 4433 ["C-179--C-??" ]: illegal value ?? 4434 ["C-185--C-??" ]: illegal value ?? 4435 ["C-195--C-??" ]: illegal value ?? 4436 ["C-205--C-??" ]: illegal value ?? 4437 ["C-221--C-??" ]: illegal value ?? 4438 ["C-23--C-??" ]: illegal value ?? 4439 ["C-233--C-??" ]: illegal value ?? 4440 ["C-247--C-??" ]: illegal value ?? 4441 ["C-259--C-??" ]: illegal value ?? 4442 ["C-271--C-??" ]: illegal value ?? 4443 ["C-281--C-??" ]: illegal value ?? 4444 ["C-293--C-??" ]: illegal value ?? 4445 ["C-305--C-??" ]: illegal value ?? 4446 ["C-317--C-??" ]: illegal value ?? 4447 ["C-329--C-??" ]: illegal value ?? 4448 ["C-33--C-??" ]: illegal value ?? 4449 ["C-339--C-??" ]: illegal value ?? 4450 ["C-349--C-??" ]: illegal value ?? 4451 ["C-361--C-??" ]: illegal value ?? 4452 ["C-371--C-??" ]: illegal value ?? 4453 ["C-381--C-??" ]: illegal value ?? 4454 ["C-393--C-??" ]: illegal value ?? 4455 ["C-407--C-??" ]: illegal value ?? 4456 ["C-421--C-??" ]: illegal value ?? 4457 ["C-433--C-??" ]: illegal value ?? 4458 ["C-443--C-??" ]: illegal value ?? 4459 ["C-45--C-??" ]: illegal value ?? 4460 ["C-455--C-??" ]: illegal value ?? 4461 ["C-467--C-??" ]: illegal value ?? 4462 ["C-477--C-??" ]: illegal value ?? 4463 ["C-489--C-??" ]: illegal value ?? 4464 ["C-503--C-??" ]: illegal value ?? 4465 ["C-513--C-??" ]: illegal value ?? 4466 ["C-514--C-??" ]: illegal value ?? 4467 ["C-515--C-??" ]: illegal value ?? 4468 ["C-55--C-??" ]: illegal value ?? 4469 ["C-65--C-??" ]: illegal value ?? 4470 ["C-75--C-??" ]: illegal value ?? 4471 ["C-85--C-??" ]: illegal value ?? 4472 ["C-97--C-??" ]: illegal value ?? 4473 ["C/33--44" ]: illegal value %% 4474 ["C3" ]: matches L23 ?? 4475 ["C3--??" ]: illegal value ?? 4476 ["D--i--D--iii, D--1--D--16"]: illegal value ?? 4477 ["E--i--E--iv, E--1--E--27"]: illegal value ?? 4478 ["EL-1--EL-6" ]: illegal value ?? 4479 ["F--i--F--viii, F--1--F--61"]: illegal value ?? 4480 ["F53 + 1229 + B29" ]: illegal value ?? 4481 ["G--i--G--v, G--1--G--28"]: illegal value ?? 4482 ["H--i--H--iv, H--1--H--37"]: illegal value %% 4483 ["H439--H448" ]: matches L23--L27 ?? 4484 ["I" ]: illegal value ?? 4485 ["I--257, I--260" ]: illegal value ?? 4486 ["I--340" ]: illegal value ?? 4487 ["I--57--I--66" ]: illegal value ?? 4488 ["I-30 - I-44" ]: illegal value ?? 4489 ["I-45 - I-57" ]: illegal value ?? 4490 ["I181--5 (vol. 1)" ]: illegal value ?? 4491 ["II--103--II--106" ]: illegal value ?? 4492 ["II--297--II--300" ]: illegal value ?? 4493 ["II--305--II--308" ]: illegal value ?? 4494 ["II--337--II--340" ]: illegal value ?? 4495 ["II-282--II-283" ]: illegal value ?? 4496 ["II-653--II-658" ]: illegal value ?? 4497 ["II:351--II:358" ]: illegal value ?? 4498 ["III--125--III--133" ]: illegal value ?? 4499 ["III--2023" ]: illegal value ?? 4500 ["III--??" ]: illegal value ?? 4501 ["III-197--III-201" ]: illegal value ?? 4502 ["III.29--III.36" ]: illegal value ?? 4503 ["IV--??" ]: illegal value ?? 4504 ["IV-1 to IV-27" ]: illegal value %% 4505 ["IX + 215" ]: matches viii + 445 %% 4506 ["L115" ]: matches L23 %% 4507 ["L1331--L1337" ]: matches L23--L27 %% 4508 ["L169--L179" ]: matches L23--L27 ?? 4509 ["L227-L230" ]: illegal value ?? 4510 ["L383-L388" ]: illegal value %% 4511 ["L547--L551" ]: matches L23--L27 ?? 4512 ["L569-L573" ]: illegal value ?? 4513 ["L819-L823" ]: illegal value ?? 4514 ["LO-93--LO-97" ]: illegal value ?? 4515 ["PM01" ]: illegal value %% 4516 ["R114--R121" ]: matches L23--L27 %% 4517 ["R2183--R2186" ]: matches L23--L27 ?? 4518 ["Ri--Rx, R1--R163" ]: illegal value ?? 4519 ["S-10--S-??" ]: illegal value ?? 4520 ["S-11--S-??" ]: illegal value ?? 4521 ["S-12--S-??" ]: illegal value ?? 4522 ["S-13--S-??" ]: illegal value ?? 4523 ["S-14--S-??" ]: illegal value ?? 4524 ["S-16--S-??" ]: illegal value ?? 4525 ["S-18--S-??" ]: illegal value ?? 4526 ["S-2--S-??" ]: illegal value ?? 4527 ["S-20--S-??" ]: illegal value ?? 4528 ["S-21--S-??" ]: illegal value ?? 4529 ["S-22--S-??" ]: illegal value ?? 4530 ["S-23--S-??" ]: illegal value ?? 4531 ["S-24--S-??" ]: illegal value ?? 4532 ["S-25--S-??" ]: illegal value ?? 4533 ["S-26--S-??" ]: illegal value ?? 4534 ["S-27--S-??" ]: illegal value ?? 4535 ["S-28--S-??" ]: illegal value ?? 4536 ["S-3--S-??" ]: illegal value ?? 4537 ["S-30--S-??" ]: illegal value ?? 4538 ["S-33--S-??" ]: illegal value ?? 4539 ["S-34--S-??" ]: illegal value ?? 4540 ["S-35--S-??" ]: illegal value ?? 4541 ["S-36--S-??" ]: illegal value ?? 4542 ["S-37--S-??" ]: illegal value ?? 4543 ["S-38--S-??" ]: illegal value ?? 4544 ["S-4--S-??" ]: illegal value ?? 4545 ["S-40--S-??" ]: illegal value ?? 4546 ["S-42--S-??" ]: illegal value ?? 4547 ["S-44--S-??" ]: illegal value ?? 4548 ["S-45--S-??" ]: illegal value ?? 4549 ["S-46--S-??" ]: illegal value ?? 4550 ["S-48--S-??" ]: illegal value ?? 4551 ["S-5--S-??" ]: illegal value ?? 4552 ["S-6--S-??" ]: illegal value ?? 4553 ["S-8--S-??" ]: illegal value ?? 4554 ["S1--??" ]: illegal value ?? 4555 ["S1/19--??" ]: illegal value ?? 4556 ["S1/3--S1/17" ]: illegal value ?? 4557 ["S1/35--??" ]: illegal value ?? 4558 ["S1/47--??" ]: illegal value ?? 4559 ["S1/47--S1/61" ]: illegal value ?? 4560 ["S1/63--??" ]: illegal value ?? 4561 ["S1/89--??" ]: illegal value %% 4562 ["S148--S149" ]: matches L23--L27 ?? 4563 ["S2/109--??" ]: illegal value ?? 4564 ["S2/119--??" ]: illegal value ?? 4565 ["S2/137--??" ]: illegal value ?? 4566 ["S2/35--??" ]: illegal value ?? 4567 ["S2/5--??" ]: illegal value ?? 4568 ["S2/69--??" ]: illegal value ?? 4569 ["S2/83--??" ]: illegal value %% 4570 ["S201--S209" ]: matches L23--L27 ?? 4571 ["S435--438" ]: illegal value %% 4572 ["S539" ]: matches L23 ?? 4573 ["S565--569" ]: illegal value ?? 4574 ["ST-134--ST-143" ]: illegal value ?? 4575 ["ST-144" ]: illegal value ?? 4576 ["Sec. 33--4" ]: illegal value ?? 4577 ["Sound cassettes." ]: illegal value ?? 4578 ["T 532--534" ]: illegal value ?? 4579 ["T11, 1--8" ]: illegal value %% 4580 ["T141--T143" ]: matches L23--L27 %% 4581 ["T176--T177" ]: matches L23--L27 %% 4582 ["T181--T182" ]: matches L23--L27 %% 4583 ["T182--T184" ]: matches L23--L27 %% 4584 ["T188--T189" ]: matches L23--L27 %% 4585 ["T188--T190" ]: matches L23--L27 %% 4586 ["T190--T191" ]: matches L23--L27 %% 4587 ["T191--T193" ]: matches L23--L27 %% 4588 ["T197--T198" ]: matches L23--L27 %% 4589 ["T202--T204" ]: matches L23--L27 %% 4590 ["T207--T208" ]: matches L23--L27 %% 4591 ["T208--T209" ]: matches L23--L27 %% 4592 ["T217--T218" ]: matches L23--L27 %% 4593 ["T219--T220" ]: matches L23--L27 %% 4594 ["T220--T221" ]: matches L23--L27 %% 4595 ["T221--T223" ]: matches L23--L27 %% 4596 ["T222" ]: matches L23 %% 4597 ["T225--T226" ]: matches L23--L27 %% 4598 ["T229--T230" ]: matches L23--L27 %% 4599 ["T237--T238" ]: matches L23--L27 %% 4600 ["T240--T242" ]: matches L23--L27 %% 4601 ["T262--T263" ]: matches L23--L27 %% 4602 ["T263--T270" ]: matches L23--L27 %% 4603 ["T265--T266" ]: matches L23--L27 %% 4604 ["T270--T272" ]: matches L23--L27 %% 4605 ["T273--T274" ]: matches L23--L27 %% 4606 ["T274--T275" ]: matches L23--L27 %% 4607 ["T275--T277" ]: matches L23--L27 %% 4608 ["T282--T283" ]: matches L23--L27 %% 4609 ["T282--T284" ]: matches L23--L27 %% 4610 ["T284--T286" ]: matches L23--L27 %% 4611 ["T286--T287" ]: matches L23--L27 %% 4612 ["T288--T289" ]: matches L23--L27 %% 4613 ["T290--T292" ]: matches L23--L27 %% 4614 ["T291--T292" ]: matches L23--L27 %% 4615 ["T293--T295" ]: matches L23--L27 %% 4616 ["T294--T295" ]: matches L23--L27 %% 4617 ["T294--T296" ]: matches L23--L27 %% 4618 ["T296--T297" ]: matches L23--L27 %% 4619 ["T301--T304" ]: matches L23--L27 %% 4620 ["T308--T309" ]: matches L23--L27 ?? 4621 ["T309-T312" ]: illegal value %% 4622 ["T311--T313" ]: matches L23--L27 %% 4623 ["T313--T315" ]: matches L23--L27 %% 4624 ["T315--T317" ]: matches L23--L27 %% 4625 ["T319--T320" ]: matches L23--L27 %% 4626 ["T32--T33" ]: matches L23--L27 %% 4627 ["T33" ]: matches L23 %% 4628 ["T33--T35" ]: matches L23--L27 %% 4629 ["T331--T332" ]: matches L23--L27 %% 4630 ["T355--T357" ]: matches L23--L27 %% 4631 ["T379--T381" ]: matches L23--L27 ?? 4632 ["T380-T382" ]: illegal value %% 4633 ["T403--T404" ]: matches L23--L27 %% 4634 ["T404--T405" ]: matches L23--L27 %% 4635 ["T405--T407" ]: matches L23--L27 %% 4636 ["T407--T408" ]: matches L23--L27 %% 4637 ["T408--T410" ]: matches L23--L27 %% 4638 ["T416--T418" ]: matches L23--L27 %% 4639 ["T426--T427" ]: matches L23--L27 %% 4640 ["T428--T429" ]: matches L23--L27 %% 4641 ["T434--T436" ]: matches L23--L27 %% 4642 ["T493--T503" ]: matches L23--L27 %% 4643 ["T494--T495" ]: matches L23--L27 %% 4644 ["T50--T51" ]: matches L23--L27 %% 4645 ["T56" ]: matches L23 %% 4646 ["T59--T60" ]: matches L23--L27 %% 4647 ["T68--T69" ]: matches L23--L27 %% 4648 ["T69" ]: matches L23 %% 4649 ["T69--T71" ]: matches L23--L27 %% 4650 ["T69--T72" ]: matches L23--L27 %% 4651 ["T70--T71" ]: matches L23--L27 %% 4652 ["T71--T73" ]: matches L23--L27 %% 4653 ["T72--T73" ]: matches L23--L27 %% 4654 ["T72--T85" ]: matches L23--L27 %% 4655 ["T76--T79" ]: matches L23--L27 %% 4656 ["T79--T80" ]: matches L23--L27 ?? 4657 ["TBD" ]: illegal value ?? 4658 ["VI--73--VI--76" ]: illegal value ?? 4659 ["XIV--113" ]: illegal value ?? 4660 ["[10] + 138" ]: illegal value ?? 4661 ["[11] + 138" ]: illegal value ?? 4662 ["[11]." ]: illegal value ?? 4663 ["[18]" ]: illegal value ?? 4664 ["[1] + 24" ]: illegal value ?? 4665 ["[1] + iii + 61" ]: illegal value ?? 4666 ["[1] + vii + [46]" ]: illegal value ?? 4667 ["[256]" ]: illegal value ?? 4668 ["[2] + 12" ]: illegal value ?? 4669 ["[2] + 16" ]: illegal value ?? 4670 ["[2] + 3 + 248" ]: illegal value ?? 4671 ["[2] + 51 + [1]" ]: illegal value ?? 4672 ["[2]" ]: illegal value ?? 4673 ["[384]" ]: illegal value ?? 4674 ["[3] + 105" ]: illegal value ?? 4675 ["[3] + 152" ]: illegal value ?? 4676 ["[3] + 38" ]: illegal value ?? 4677 ["[3] + 39" ]: illegal value ?? 4678 ["[3] + 63" ]: illegal value ?? 4679 ["[4] + 16 [19]" ]: illegal value ?? 4680 ["[4] + 61" ]: illegal value ?? 4681 ["[5] + 14" ]: illegal value ?? 4682 ["[5] + 152 + 3--44" ]: illegal value ?? 4683 ["[5] + 20" ]: illegal value ?? 4684 ["[5] + 354" ]: illegal value ?? 4685 ["[5] 42 [4]" ]: illegal value ?? 4686 ["[6] + 22 + [2]" ]: illegal value ?? 4687 ["[6] + 25 + [1]" ]: illegal value ?? 4688 ["[6] + 41" ]: illegal value ?? 4689 ["[6] + 59" ]: illegal value ?? 4690 ["[6] + 77" ]: illegal value ?? 4691 ["[6] 182" ]: illegal value ?? 4692 ["[72] + 19 + 12" ]: illegal value ?? 4693 ["[7] + 52" ]: illegal value ?? 4694 ["[7] + 82 + [82]" ]: illegal value ?? 4695 ["[ca. 200]" ]: illegal value ?? 4696 ["[i] + 11" ]: illegal value ?? 4697 ["[ii] + 20" ]: illegal value ?? 4698 ["[iii] + 40" ]: illegal value ?? 4699 ["[v] + 164" ]: illegal value ?? 4700 ["[vi] + 246" ]: illegal value ?? 4701 ["[xiii] + 923" ]: illegal value ?? 4702 ["[xiv] + 144" ]: illegal value ?? 4703 ["b + [4]" ]: illegal value ?? 4704 ["ca. 1 program file (IBM PC) on 1 computer disk"]: illegal value ?? 4705 ["ca. 160" ]: illegal value ?? 4706 ["ca. 175" ]: illegal value ?? 4707 ["ca. 200" ]: illegal value ?? 4708 ["ca. 250" ]: illegal value ?? 4709 ["ca. 350" ]: illegal value ?? 4710 ["ca. 400" ]: illegal value ?? 4711 ["ca. 89" ]: illegal value ?? 4712 ["d42--??" ]: illegal value %% 4713 ["i + 109" ]: matches viii + 445 ?? 4714 ["i + 12 + [11]" ]: illegal value %% 4715 ["i + 12" ]: matches viii + 445 %% 4716 ["i + 13" ]: matches viii + 445 %% 4717 ["i + 135" ]: matches viii + 445 %% 4718 ["i + 15" ]: matches viii + 445 %% 4719 ["i + 23" ]: matches viii + 445 %% 4720 ["i + 27" ]: matches viii + 445 %% 4721 ["i + 28" ]: matches viii + 445 %% 4722 ["i + 30" ]: matches viii + 445 %% 4723 ["i + 31" ]: matches viii + 445 %% 4724 ["i + 311" ]: matches viii + 445 %% 4725 ["i + 33" ]: matches viii + 445 %% 4726 ["i + 39" ]: matches viii + 445 %% 4727 ["i + 45" ]: matches viii + 445 ?? 4728 ["i + 47 + 67" ]: illegal value %% 4729 ["i + 48" ]: matches viii + 445 %% 4730 ["i + 58" ]: matches viii + 445 %% 4731 ["i + 60" ]: matches viii + 445 %% 4732 ["i + 61" ]: matches viii + 445 %% 4733 ["i + 82" ]: matches viii + 445 %% 4734 ["i + 92" ]: matches viii + 445 ?? 4735 ["i, 1--10" ]: illegal value ?? 4736 ["i, 1--14" ]: illegal value ?? 4737 ["i--ii, 1--315" ]: illegal value %% 4738 ["ii + 104" ]: matches viii + 445 %% 4739 ["ii + 105" ]: matches viii + 445 %% 4740 ["ii + 115" ]: matches viii + 445 %% 4741 ["ii + 133" ]: matches viii + 445 %% 4742 ["ii + 136" ]: matches viii + 445 %% 4743 ["ii + 139" ]: matches viii + 445 %% 4744 ["ii + 14" ]: matches viii + 445 %% 4745 ["ii + 142" ]: matches viii + 445 %% 4746 ["ii + 15" ]: matches viii + 445 %% 4747 ["ii + 153" ]: matches viii + 445 ?? 4748 ["ii + 16 + [3]" ]: illegal value %% 4749 ["ii + 16" ]: matches viii + 445 %% 4750 ["ii + 17" ]: matches viii + 445 ?? 4751 ["ii + 18 + [26]" ]: illegal value %% 4752 ["ii + 18" ]: matches viii + 445 %% 4753 ["ii + 19" ]: matches viii + 445 %% 4754 ["ii + 20" ]: matches viii + 445 %% 4755 ["ii + 223" ]: matches viii + 445 %% 4756 ["ii + 24" ]: matches viii + 445 %% 4757 ["ii + 25" ]: matches viii + 445 %% 4758 ["ii + 259" ]: matches viii + 445 %% 4759 ["ii + 27" ]: matches viii + 445 %% 4760 ["ii + 28" ]: matches viii + 445 %% 4761 ["ii + 29" ]: matches viii + 445 %% 4762 ["ii + 293" ]: matches viii + 445 %% 4763 ["ii + 31" ]: matches viii + 445 ?? 4764 ["ii + 33 + [69]" ]: illegal value %% 4765 ["ii + 34" ]: matches viii + 445 %% 4766 ["ii + 35" ]: matches viii + 445 %% 4767 ["ii + 36" ]: matches viii + 445 ?? 4768 ["ii + 37 + 38" ]: illegal value %% 4769 ["ii + 37" ]: matches viii + 445 %% 4770 ["ii + 38" ]: matches viii + 445 %% 4771 ["ii + 41" ]: matches viii + 445 %% 4772 ["ii + 42" ]: matches viii + 445 %% 4773 ["ii + 43" ]: matches viii + 445 %% 4774 ["ii + 44" ]: matches viii + 445 ?? 4775 ["ii + 45 + [6]" ]: illegal value %% 4776 ["ii + 46" ]: matches viii + 445 %% 4777 ["ii + 5" ]: matches viii + 445 %% 4778 ["ii + 50" ]: matches viii + 445 %% 4779 ["ii + 52" ]: matches viii + 445 %% 4780 ["ii + 53" ]: matches viii + 445 %% 4781 ["ii + 57" ]: matches viii + 445 ?? 4782 ["ii + 61 + [3]" ]: illegal value %% 4783 ["ii + 61" ]: matches viii + 445 %% 4784 ["ii + 62" ]: matches viii + 445 %% 4785 ["ii + 64" ]: matches viii + 445 %% 4786 ["ii + 65" ]: matches viii + 445 ?? 4787 ["ii + 66 + [11]" ]: illegal value %% 4788 ["ii + 66" ]: matches viii + 445 %% 4789 ["ii + 744" ]: matches viii + 445 ?? 4790 ["ii + 91 + [2]" ]: illegal value ?? 4791 ["ii + A--H + 101" ]: illegal value ?? 4792 ["ii + [15]" ]: illegal value ?? 4793 ["ii, 1--9" ]: illegal value ?? 4794 ["ii--??" ]: illegal value %% 4795 ["iii + 101" ]: matches viii + 445 %% 4796 ["iii + 102" ]: matches viii + 445 %% 4797 ["iii + 103" ]: matches viii + 445 %% 4798 ["iii + 104" ]: matches viii + 445 %% 4799 ["iii + 105" ]: matches viii + 445 %% 4800 ["iii + 106" ]: matches viii + 445 %% 4801 ["iii + 107" ]: matches viii + 445 %% 4802 ["iii + 108" ]: matches viii + 445 %% 4803 ["iii + 112" ]: matches viii + 445 %% 4804 ["iii + 115" ]: matches viii + 445 %% 4805 ["iii + 116" ]: matches viii + 445 %% 4806 ["iii + 12" ]: matches viii + 445 %% 4807 ["iii + 125" ]: matches viii + 445 %% 4808 ["iii + 13" ]: matches viii + 445 %% 4809 ["iii + 130" ]: matches viii + 445 %% 4810 ["iii + 132" ]: matches viii + 445 %% 4811 ["iii + 134" ]: matches viii + 445 %% 4812 ["iii + 14" ]: matches viii + 445 ?? 4813 ["iii + 15 + [17]" ]: illegal value ?? 4814 ["iii + 150 + [6]" ]: illegal value %% 4815 ["iii + 16" ]: matches viii + 445 %% 4816 ["iii + 160" ]: matches viii + 445 %% 4817 ["iii + 171" ]: matches viii + 445 %% 4818 ["iii + 177" ]: matches viii + 445 %% 4819 ["iii + 18" ]: matches viii + 445 %% 4820 ["iii + 180" ]: matches viii + 445 %% 4821 ["iii + 181" ]: matches viii + 445 %% 4822 ["iii + 183" ]: matches viii + 445 %% 4823 ["iii + 19" ]: matches viii + 445 ?? 4824 ["iii + 199 + ix" ]: illegal value %% 4825 ["iii + 20" ]: matches viii + 445 %% 4826 ["iii + 21" ]: matches viii + 445 %% 4827 ["iii + 23" ]: matches viii + 445 %% 4828 ["iii + 24" ]: matches viii + 445 %% 4829 ["iii + 25" ]: matches viii + 445 %% 4830 ["iii + 257" ]: matches viii + 445 %% 4831 ["iii + 26" ]: matches viii + 445 %% 4832 ["iii + 268" ]: matches viii + 445 %% 4833 ["iii + 29" ]: matches viii + 445 %% 4834 ["iii + 30" ]: matches viii + 445 %% 4835 ["iii + 305" ]: matches viii + 445 %% 4836 ["iii + 31" ]: matches viii + 445 %% 4837 ["iii + 314" ]: matches viii + 445 %% 4838 ["iii + 32" ]: matches viii + 445 %% 4839 ["iii + 33" ]: matches viii + 445 %% 4840 ["iii + 34" ]: matches viii + 445 ?? 4841 ["iii + 343 + 25" ]: illegal value %% 4842 ["iii + 343" ]: matches viii + 445 %% 4843 ["iii + 35" ]: matches viii + 445 %% 4844 ["iii + 36" ]: matches viii + 445 %% 4845 ["iii + 39" ]: matches viii + 445 %% 4846 ["iii + 41" ]: matches viii + 445 %% 4847 ["iii + 42" ]: matches viii + 445 %% 4848 ["iii + 425" ]: matches viii + 445 %% 4849 ["iii + 43" ]: matches viii + 445 %% 4850 ["iii + 443" ]: matches viii + 445 %% 4851 ["iii + 45" ]: matches viii + 445 %% 4852 ["iii + 46" ]: matches viii + 445 %% 4853 ["iii + 47" ]: matches viii + 445 %% 4854 ["iii + 49" ]: matches viii + 445 %% 4855 ["iii + 5" ]: matches viii + 445 %% 4856 ["iii + 50" ]: matches viii + 445 %% 4857 ["iii + 51" ]: matches viii + 445 %% 4858 ["iii + 52" ]: matches viii + 445 %% 4859 ["iii + 55" ]: matches viii + 445 %% 4860 ["iii + 57" ]: matches viii + 445 %% 4861 ["iii + 58" ]: matches viii + 445 %% 4862 ["iii + 59" ]: matches viii + 445 %% 4863 ["iii + 6" ]: matches viii + 445 %% 4864 ["iii + 60" ]: matches viii + 445 %% 4865 ["iii + 61" ]: matches viii + 445 %% 4866 ["iii + 62" ]: matches viii + 445 %% 4867 ["iii + 63" ]: matches viii + 445 %% 4868 ["iii + 64" ]: matches viii + 445 %% 4869 ["iii + 65" ]: matches viii + 445 %% 4870 ["iii + 70" ]: matches viii + 445 %% 4871 ["iii + 72" ]: matches viii + 445 %% 4872 ["iii + 75" ]: matches viii + 445 %% 4873 ["iii + 77" ]: matches viii + 445 %% 4874 ["iii + 81" ]: matches viii + 445 %% 4875 ["iii + 82" ]: matches viii + 445 %% 4876 ["iii + 83" ]: matches viii + 445 %% 4877 ["iii + 84" ]: matches viii + 445 %% 4878 ["iii + 89" ]: matches viii + 445 ?? 4879 ["iii + 9, A-85" ]: illegal value %% 4880 ["iii + 90" ]: matches viii + 445 ?? 4881 ["iii + 93." ]: illegal value %% 4882 ["iii + 94" ]: matches viii + 445 %% 4883 ["iii + 99" ]: matches viii + 445 ?? 4884 ["iii + [152]" ]: illegal value ?? 4885 ["iii + [93]" ]: illegal value ?? 4886 ["iii" ]: illegal value ?? 4887 ["iii, 1--56" ]: illegal value ?? 4888 ["iii, 212" ]: illegal value ?? 4889 ["iii--iii" ]: illegal value ?? 4890 ["iii--v" ]: illegal value ?? 4891 ["iii--x + 263" ]: illegal value %% 4892 ["iv + 100" ]: matches viii + 445 %% 4893 ["iv + 101" ]: matches viii + 445 %% 4894 ["iv + 102" ]: matches viii + 445 %% 4895 ["iv + 103" ]: matches viii + 445 %% 4896 ["iv + 105" ]: matches viii + 445 %% 4897 ["iv + 106" ]: matches viii + 445 %% 4898 ["iv + 107" ]: matches viii + 445 %% 4899 ["iv + 108" ]: matches viii + 445 %% 4900 ["iv + 109" ]: matches viii + 445 %% 4901 ["iv + 110" ]: matches viii + 445 %% 4902 ["iv + 116" ]: matches viii + 445 %% 4903 ["iv + 117" ]: matches viii + 445 %% 4904 ["iv + 120" ]: matches viii + 445 %% 4905 ["iv + 124" ]: matches viii + 445 %% 4906 ["iv + 125" ]: matches viii + 445 %% 4907 ["iv + 127" ]: matches viii + 445 %% 4908 ["iv + 128" ]: matches viii + 445 %% 4909 ["iv + 129" ]: matches viii + 445 %% 4910 ["iv + 130" ]: matches viii + 445 %% 4911 ["iv + 131" ]: matches viii + 445 %% 4912 ["iv + 132" ]: matches viii + 445 %% 4913 ["iv + 136" ]: matches viii + 445 %% 4914 ["iv + 139" ]: matches viii + 445 %% 4915 ["iv + 15" ]: matches viii + 445 %% 4916 ["iv + 150" ]: matches viii + 445 %% 4917 ["iv + 153" ]: matches viii + 445 %% 4918 ["iv + 156" ]: matches viii + 445 %% 4919 ["iv + 158" ]: matches viii + 445 %% 4920 ["iv + 165" ]: matches viii + 445 %% 4921 ["iv + 167" ]: matches viii + 445 %% 4922 ["iv + 168" ]: matches viii + 445 ?? 4923 ["iv + 17 + [1]" ]: illegal value %% 4924 ["iv + 17" ]: matches viii + 445 %% 4925 ["iv + 171" ]: matches viii + 445 %% 4926 ["iv + 173" ]: matches viii + 445 %% 4927 ["iv + 174" ]: matches viii + 445 %% 4928 ["iv + 178" ]: matches viii + 445 %% 4929 ["iv + 188" ]: matches viii + 445 ?? 4930 ["iv + 19 + 11 + [66]" ]: illegal value %% 4931 ["iv + 19" ]: matches viii + 445 %% 4932 ["iv + 192" ]: matches viii + 445 %% 4933 ["iv + 197" ]: matches viii + 445 %% 4934 ["iv + 198" ]: matches viii + 445 ?? 4935 ["iv + 20 + 22 + 25" ]: illegal value %% 4936 ["iv + 20" ]: matches viii + 445 %% 4937 ["iv + 200" ]: matches viii + 445 %% 4938 ["iv + 201" ]: matches viii + 445 %% 4939 ["iv + 203" ]: matches viii + 445 %% 4940 ["iv + 207" ]: matches viii + 445 %% 4941 ["iv + 208" ]: matches viii + 445 %% 4942 ["iv + 215" ]: matches viii + 445 %% 4943 ["iv + 218" ]: matches viii + 445 %% 4944 ["iv + 22" ]: matches viii + 445 %% 4945 ["iv + 227" ]: matches viii + 445 ?? 4946 ["iv + 23 + [18]" ]: illegal value %% 4947 ["iv + 230" ]: matches viii + 445 %% 4948 ["iv + 24" ]: matches viii + 445 %% 4949 ["iv + 246" ]: matches viii + 445 %% 4950 ["iv + 25" ]: matches viii + 445 %% 4951 ["iv + 252" ]: matches viii + 445 %% 4952 ["iv + 255" ]: matches viii + 445 %% 4953 ["iv + 269" ]: matches viii + 445 %% 4954 ["iv + 270" ]: matches viii + 445 ?? 4955 ["iv + 28 + [1]" ]: illegal value %% 4956 ["iv + 28" ]: matches viii + 445 %% 4957 ["iv + 286" ]: matches viii + 445 %% 4958 ["iv + 29" ]: matches viii + 445 %% 4959 ["iv + 30" ]: matches viii + 445 %% 4960 ["iv + 300" ]: matches viii + 445 %% 4961 ["iv + 31" ]: matches viii + 445 %% 4962 ["iv + 33" ]: matches viii + 445 %% 4963 ["iv + 34" ]: matches viii + 445 %% 4964 ["iv + 353" ]: matches viii + 445 %% 4965 ["iv + 359" ]: matches viii + 445 %% 4966 ["iv + 36" ]: matches viii + 445 %% 4967 ["iv + 38" ]: matches viii + 445 %% 4968 ["iv + 383" ]: matches viii + 445 %% 4969 ["iv + 397" ]: matches viii + 445 ?? 4970 ["iv + 4 + 184" ]: illegal value %% 4971 ["iv + 40" ]: matches viii + 445 %% 4972 ["iv + 403" ]: matches viii + 445 %% 4973 ["iv + 426" ]: matches viii + 445 %% 4974 ["iv + 45" ]: matches viii + 445 %% 4975 ["iv + 456" ]: matches viii + 445 %% 4976 ["iv + 48" ]: matches viii + 445 %% 4977 ["iv + 489" ]: matches viii + 445 %% 4978 ["iv + 49" ]: matches viii + 445 %% 4979 ["iv + 492" ]: matches viii + 445 %% 4980 ["iv + 50" ]: matches viii + 445 %% 4981 ["iv + 509" ]: matches viii + 445 %% 4982 ["iv + 51" ]: matches viii + 445 %% 4983 ["iv + 52" ]: matches viii + 445 %% 4984 ["iv + 53" ]: matches viii + 445 %% 4985 ["iv + 54" ]: matches viii + 445 %% 4986 ["iv + 548" ]: matches viii + 445 %% 4987 ["iv + 55" ]: matches viii + 445 %% 4988 ["iv + 56" ]: matches viii + 445 %% 4989 ["iv + 59" ]: matches viii + 445 ?? 4990 ["iv + 6 + 22 + 30" ]: illegal value %% 4991 ["iv + 61" ]: matches viii + 445 %% 4992 ["iv + 63" ]: matches viii + 445 %% 4993 ["iv + 64" ]: matches viii + 445 ?? 4994 ["iv + 64." ]: illegal value %% 4995 ["iv + 65" ]: matches viii + 445 %% 4996 ["iv + 67" ]: matches viii + 445 %% 4997 ["iv + 68" ]: matches viii + 445 %% 4998 ["iv + 7" ]: matches viii + 445 %% 4999 ["iv + 70" ]: matches viii + 445 ?? 5000 ["iv + 73 [i.e. 165]" ]: illegal value %% 5001 ["iv + 73" ]: matches viii + 445 %% 5002 ["iv + 74" ]: matches viii + 445 %% 5003 ["iv + 76" ]: matches viii + 445 ?? 5004 ["iv + 77 + [1]" ]: illegal value %% 5005 ["iv + 77" ]: matches viii + 445 %% 5006 ["iv + 79" ]: matches viii + 445 ?? 5007 ["iv + 79." ]: illegal value %% 5008 ["iv + 82" ]: matches viii + 445 %% 5009 ["iv + 83" ]: matches viii + 445 %% 5010 ["iv + 84" ]: matches viii + 445 %% 5011 ["iv + 85" ]: matches viii + 445 %% 5012 ["iv + 86" ]: matches viii + 445 %% 5013 ["iv + 90" ]: matches viii + 445 %% 5014 ["iv + 91" ]: matches viii + 445 %% 5015 ["iv + 93" ]: matches viii + 445 %% 5016 ["iv + 95" ]: matches viii + 445 %% 5017 ["iv + 96" ]: matches viii + 445 %% 5018 ["iv + 99" ]: matches viii + 445 ?? 5019 ["iv+86" ]: illegal value ?? 5020 ["iv, 1--88" ]: illegal value ?? 5021 ["iv, 101--126, 201--239, 301--380, 401--441"]: illegal value %% 5022 ["ix + 101" ]: matches viii + 445 ?? 5023 ["ix + 160 + [7] + [64]" ]: illegal value ?? 5024 ["ix + 168 l" ]: illegal value %% 5025 ["ix + 171" ]: matches viii + 445 ?? 5026 ["ix + 187 + 3 appendices"]: illegal value ?? 5027 ["ix + 194 + 68" ]: illegal value %% 5028 ["ix + 663" ]: matches viii + 445 ?? 5029 ["ix + 664 + [53]" ]: illegal value %% 5030 ["ix + 67" ]: matches viii + 445 %% 5031 ["ix + 99" ]: matches viii + 445 ?? 5032 ["ix + [171]" ]: illegal value ?? 5033 ["ix + [234]" ]: illegal value ?? 5034 ["ix + iv + 429" ]: illegal value ?? 5035 ["ix" ]: illegal value ?? 5036 ["ix--xxi" ]: illegal value %% 5037 ["l + 273" ]: matches viii + 445 ?? 5038 ["l v." ]: illegal value %% 5039 ["lvi + 1405" ]: matches viii + 445 %% 5040 ["lviii + 1387" ]: matches viii + 445 %% 5041 ["lviii + 1540" ]: matches viii + 445 %% 5042 ["lviii + 2034" ]: matches viii + 445 %% 5043 ["lxv + 644" ]: matches viii + 445 %% 5044 ["lxxi + 719" ]: matches viii + 445 %% 5045 ["lxxiv + 790" ]: matches viii + 445 ?? 5046 ["program files (IBM PC) on 1 computer disk manual."]: illegal value ?? 5047 ["s118-s138" ]: illegal value %% 5048 ["s139--s154" ]: matches L23--L27 ?? 5049 ["s139-s154" ]: illegal value ?? 5050 ["s14-s26" ]: illegal value %% 5051 ["s155--s165" ]: matches L23--L27 ?? 5052 ["s155-s165" ]: illegal value %% 5053 ["s166--s202" ]: matches L23--L27 ?? 5054 ["s166-s202" ]: illegal value %% 5055 ["s2--s13" ]: matches L23--L27 ?? 5056 ["s2-s13" ]: illegal value ?? 5057 ["s203-s219" ]: illegal value %% 5058 ["s220--s226" ]: matches L23--L27 ?? 5059 ["s220-s226" ]: illegal value %% 5060 ["s227--s287" ]: matches L23--L27 ?? 5061 ["s227-s287" ]: illegal value ?? 5062 ["s27-s42" ]: illegal value ?? 5063 ["s43-s58" ]: illegal value ?? 5064 ["s59-s72" ]: illegal value ?? 5065 ["s73-s95" ]: illegal value ?? 5066 ["s96-s117" ]: illegal value ?? 5067 ["to appear" ]: illegal value ?? 5068 ["to be published" ]: illegal value %% 5069 ["v + 104" ]: matches viii + 445 %% 5070 ["v + 105" ]: matches viii + 445 %% 5071 ["v + 112" ]: matches viii + 445 ?? 5072 ["v + 1152 + [80] (doubled--up)"]: illegal value %% 5073 ["v + 117" ]: matches viii + 445 %% 5074 ["v + 29" ]: matches viii + 445 ?? 5075 ["v + 308 + x" ]: illegal value ?? 5076 ["v + 491 + ii + 97 + ii + 107 + 12"]: illegal value ?? 5077 ["v + 60 + 3" ]: illegal value ?? 5078 ["v + 60 + [19]" ]: illegal value ?? 5079 ["v + 60 + [23]" ]: illegal value ?? 5080 ["v + 60 + [24]" ]: illegal value %% 5081 ["v + 60" ]: matches viii + 445 ?? 5082 ["v + 61 + 7" ]: illegal value ?? 5083 ["v + 81 + [34]" ]: illegal value ?? 5084 ["v + [285]" ]: illegal value ?? 5085 ["v + [338]" ]: illegal value ?? 5086 ["v" ]: illegal value ?? 5087 ["v, 1--51" ]: illegal value ?? 5088 ["v, 1--85" ]: illegal value ?? 5089 ["v--vi" ]: illegal value ?? 5090 ["v. <1--2 >" ]: illegal value ?? 5091 ["v." ]: illegal value ?? 5092 ["various (??)" ]: illegal value ?? 5093 ["various" ]: illegal value %% 5094 ["vi + 100" ]: matches viii + 445 ?? 5095 ["vi + 1152 + [79]" ]: illegal value ?? 5096 ["vi + 1152 columns" ]: illegal value ?? 5097 ["vi + 1232 + [75] (doubled--up)"]: illegal value ?? 5098 ["vi + 1232 + [75]" ]: illegal value %% 5099 ["vi + 136" ]: matches viii + 445 ?? 5100 ["vi + 136--341" ]: illegal value ?? 5101 ["vi + 228 + 1" ]: illegal value %% 5102 ["vi + 448" ]: matches viii + 445 ?? 5103 ["vi + 45 + 1" ]: illegal value ?? 5104 ["vi + 50 + 10" ]: illegal value ?? 5105 ["vi + 53[1]" ]: illegal value ?? 5106 ["vi + 64." ]: illegal value ?? 5107 ["vi + 65 + [2]" ]: illegal value %% 5108 ["vi + 65" ]: matches viii + 445 %% 5109 ["vi + 658" ]: matches viii + 445 ?? 5110 ["vi + 66 + [45] + [1]" ]: illegal value ?? 5111 ["vi + [124]" ]: illegal value ?? 5112 ["vi + [25]" ]: illegal value ?? 5113 ["vii + 1232 columns" ]: illegal value ?? 5114 ["vii + 2--154" ]: illegal value ?? 5115 ["vii + 217 + 16 [i.e. 17]"]: illegal value ?? 5116 ["vii + 282 + [113]" ]: illegal value ?? 5117 ["vii + 357 + xvi" ]: illegal value ?? 5118 ["vii + 9 + [3] + 1" ]: illegal value %% 5119 ["vii + 96" ]: matches viii + 445 ?? 5120 ["vii + 97 l" ]: illegal value ?? 5121 ["vii + I--59" ]: illegal value ?? 5122 ["vii + [100]" ]: illegal value ?? 5123 ["vii + [111]" ]: illegal value ?? 5124 ["vii + [192]" ]: illegal value ?? 5125 ["vii + [200]" ]: illegal value ?? 5126 ["vii + [various]" ]: illegal value ?? 5127 ["vii" ]: illegal value ?? 5128 ["vii--??" ]: illegal value %% 5129 ["viii + 100" ]: matches viii + 445 ?? 5130 ["viii + 12 + 794 + [173]"]: illegal value ?? 5131 ["viii + 191 + [52]" ]: illegal value ?? 5132 ["viii + 216 + 43" ]: illegal value ?? 5133 ["viii + 216 + iii + 43" ]: illegal value %% 5134 ["viii + 216" ]: matches viii + 445 ?? 5135 ["viii + 36 + 9" ]: illegal value %% 5136 ["viii + 36" ]: matches viii + 445 %% 5137 ["viii + 98" ]: matches viii + 445 ?? 5138 ["viii + [125]" ]: illegal value ?? 5139 ["viii + [181]" ]: illegal value %% 5140 ["x + 100" ]: matches viii + 445 ?? 5141 ["x + 125." ]: illegal value ?? 5142 ["x + 198 + 48 + 6" ]: illegal value ?? 5143 ["x + 48 + [25]" ]: illegal value ?? 5144 ["x + 492 (A1--A18 and B1--B14 and I1--I19)"]: illegal value ?? 5145 ["x + 492 + A22 + B16 + I18"]: illegal value ?? 5146 ["x + 492 + appendices" ]: illegal value ?? 5147 ["x + 92 + [1]" ]: illegal value ?? 5148 ["x + [241]" ]: illegal value ?? 5149 ["x+235" ]: illegal value ?? 5150 ["x+578" ]: illegal value %% 5151 ["xi + 108" ]: matches viii + 445 ?? 5152 ["xi + 201 + 105" ]: illegal value ?? 5153 ["xi + 45 + 201 + 105" ]: illegal value %% 5154 ["xi + 450" ]: matches viii + 445 %% 5155 ["xi + 669" ]: matches viii + 445 ?? 5156 ["xi + 679 + 36 + 7" ]: illegal value ?? 5157 ["xi" ]: illegal value ?? 5158 ["xi--xii" ]: illegal value ?? 5159 ["xi--xvi" ]: illegal value %% 5160 ["xii + 100" ]: matches viii + 445 ?? 5161 ["xii + 1084 + 12" ]: illegal value ?? 5162 ["xii + 152 + [91]" ]: illegal value ?? 5163 ["xii + 157 + [2]" ]: illegal value ?? 5164 ["xii + 162 + 97" ]: illegal value ?? 5165 ["xii + 377 + 23" ]: illegal value ?? 5166 ["xii + 384 + [55]" ]: illegal value %% 5167 ["xii + 385" ]: matches viii + 445 %% 5168 ["xii + 387" ]: matches viii + 445 ?? 5169 ["xii + 389 + 76 + 16" ]: illegal value ?? 5170 ["xii + 408 + [5]" ]: illegal value ?? 5171 ["xii + 460 + [6]" ]: illegal value ?? 5172 ["xii + 522 (or xii + 514??)"]: illegal value ?? 5173 ["xii + 538 + 57" ]: illegal value ?? 5174 ["xii + 607 + A18 + B16 + I18"]: illegal value ?? 5175 ["xii+241" ]: illegal value ?? 5176 ["xiii + 423 + 33 + 3" ]: illegal value %% 5177 ["xiii + 457, with 230 illustrations"]: matches viii + 445, with 30 illustrations ?? 5178 ["xiii + 464 + 10" ]: illegal value ?? 5179 ["xiii" ]: illegal value ?? 5180 ["xiii, 320" ]: illegal value ?? 5181 ["xiii, 555" ]: illegal value ?? 5182 ["xiv + 383 + 4" ]: illegal value ?? 5183 ["xiv + 432 + 8" ]: illegal value ?? 5184 ["xiv + 518 + 9" ]: illegal value ?? 5185 ["xix + 1041 + iv" ]: illegal value ?? 5186 ["xix + 310 (or xv + 377)"]: illegal value ?? 5187 ["xix + 525 + 52 pages back matter"]: illegal value ?? 5188 ["xv + 118 + listings" ]: illegal value ?? 5189 ["xv + 199 + 8" ]: illegal value ?? 5190 ["xv + 527 + 4" ]: illegal value ?? 5191 ["xv + 534 + 117 + [41]" ]: illegal value ?? 5192 ["xvi + 102 + 6" ]: illegal value ?? 5193 ["xvi + 404 + [68]" ]: illegal value ?? 5194 ["xvi + 570 + Appendix + Index"]: illegal value ?? 5195 ["xvi + 595 (or xix + 861??)"]: illegal value ?? 5196 ["xvi + 637 + 67 + 7" ]: illegal value ?? 5197 ["xvi + 984, with 686 illustrations, 40 in color"]: illegal value ?? 5198 ["xvi + x + 390" ]: illegal value ?? 5199 ["xvii + 254 + 12" ]: illegal value ?? 5200 ["xviii + 568 + 92" ]: illegal value ?? 5201 ["xviii + [265]" ]: illegal value ?? 5202 ["xx + 1241 + 1" ]: illegal value ?? 5203 ["xx + 1269 + 5" ]: illegal value ?? 5204 ["xx + 525 [63]" ]: illegal value ?? 5205 ["xx + 793 " ]: illegal value ?? 5206 ["xxi + 567 + [4]" ]: illegal value ?? 5207 ["xxi + 640 + [30]" ]: illegal value ?? 5208 ["xxi + 666 + 119" ]: illegal value ?? 5209 ["xxii + 416 + 6" ]: illegal value ?? 5210 ["xxiii + 491 + 509 + 502"]: illegal value ?? 5211 ["xxiv + 648 + appendices"]: illegal value ?? 5212 ["xxvi + 438 + A182 + B62 + C6 + D4 + E4"]: illegal value ?? 5213 ["xxvi + 779 + Appendix + Index"]: illegal value ?? 5214 ["xxvii + 797 + vii" ]: illegal value ?? 5215 ["xxvii" ]: illegal value ?? 5216 ["xxviii + 594 + appendices"]: illegal value ?? 5217 ["xxviii + 638 + [169]" ]: illegal value ?? 5218 ["xxxvii + 23 + 2154" ]: illegal value ?? 5219 [ pages = {154--165} ]: illegal value ?? 5220 [ pages = {1973--1986}]: illegal value ?? 5221 [ pages = {3--29} ]: illegal value ?? 5222 [ pages = {360--361} ]: illegal value ?? 5223 [ pages = {491-496} ]: illegal value ?? 5224 [ pages = {937--940} ]: illegal value ?? 5225 [" 24 -- 85" ]: illegal value ?? 5226 [" 356-372" ]: illegal value ?? 5227 ["" ]: illegal value ?? 5228 ["(1--29)-(1--58)" ]: illegal value ?? 5229 ["(1--59)-(1--113)" ]: illegal value ?? 5230 ["(to appear)" ]: illegal value ?? 5231 ["(various)" ]: illegal value ?? 5232 ["0-12-696201-4" ]: illegal value ?? 5233 ["1 + 22" ]: illegal value ?? 5234 ["1 -- 10" ]: illegal value ?? 5235 ["1 -- 11" ]: illegal value ?? 5236 ["1 -- 17" ]: illegal value ?? 5237 ["1 -- 22" ]: illegal value ?? 5238 ["1 -- 40" ]: illegal value ?? 5239 ["1 -- 6" ]: illegal value ?? 5240 ["1 -- 62" ]: illegal value ?? 5241 ["1 -- 7" ]: illegal value ?? 5242 ["1 -- 74, " ]: illegal value ?? 5243 ["1 -- 8" ]: illegal value ?? 5244 ["1 card" ]: illegal value ?? 5245 ["1 cassette." ]: illegal value ?? 5246 ["1 computer disk" ]: illegal value ?? 5247 ["1 microfiche" ]: illegal value ?? 5248 ["1 program file (IBM PC) on 2 computer disks manuals."]: illegal value ?? 5249 ["1 program file (IBM--PC) on 1 computer disk manual."]: illegal value ?? 5250 ["1 program file on 6 computer disks"]: illegal value ?? 5251 ["1 reel + 5 min." ]: illegal value ?? 5252 ["1 reel + 6 min." ]: illegal value ?? 5253 ["1 reel + 7 min." ]: illegal value ?? 5254 ["1 reel + 8 min." ]: illegal value ?? 5255 ["1 reel + ca. 20 min." ]: illegal value ?? 5256 ["1 roll. guide." ]: illegal value ?? 5257 ["1 v" ]: illegal value ?? 5258 ["1 v. (various paging) 29 cm."]: illegal value ?? 5259 ["1 v. (various pagings)"]: illegal value ?? 5260 ["1 v. disks (5 1/4 in.)"]: illegal value ?? 5261 ["1 video cassette + 25 min. b and w."]: illegal value ?? 5262 ["1 videocassette (13 min.)"]: illegal value ?? 5263 ["1 videocassette (32 min.)"]: illegal value %% 5264 ["1, 113" ]: matches 23, 27 %% 5265 ["1, 141" ]: matches 23, 27 %% 5266 ["1, 16" ]: matches 23, 27 %% 5267 ["1, 17" ]: matches 23, 27 ?? 5268 ["1, 3--13, 16--19" ]: illegal value ?? 5269 ["1, 3--4, 6" ]: illegal value %% 5270 ["1, 4, 13" ]: matches 23, 27, 45 ?? 5271 ["1--10 (of xii + 323)" ]: illegal value ?? 5272 ["1--13 (of x + 787)" ]: illegal value %% 5273 [ ]: ignored %% 5274 [ ]: ignored ?? 5275 ["" ]: illegal value ?? 5276 ["(Fourth Series) 1" ]: illegal value ?? 5277 ["(to appear)" ]: illegal value %% 5278 ["0" ]: matches 27 %% 5279 ["01" ]: matches 27 %% 5280 ["02" ]: matches 27 %% 5281 ["07" ]: matches 27 %% 5282 ["09" ]: matches 27 ?? 5283 ["1 (1837--1853)" ]: illegal value %% 5284 ["1" ]: matches 27 ?? 5285 ["1(4)" ]: illegal value %% 5286 ["1.2" ]: matches 1.2 %% 5287 ["1/1977" ]: matches 27/3 %% 5288 ["1/2" ]: matches 27/3 %% 5289 ["10" ]: matches 27 ?? 5290 ["10, 11" ]: illegal value %% 5291 ["10-11" ]: matches SMC-13 %% 5292 ["100" ]: matches 27 %% 5293 ["109A" ]: matches 27A %% 5294 ["11 and 12" ]: matches 11 and 12 ?? 5295 ["11, 4" ]: illegal value ?? 5296 ["11, 9" ]: illegal value ?? 5297 ["113-C" ]: illegal value %% 5298 ["114/115" ]: matches 27/3 %% 5299 ["116A" ]: matches 27A %% 5300 ["11D" ]: matches 27A %% 5301 ["12 and 13" ]: matches 11 and 12 ?? 5302 ["12, 1" ]: illegal value %% 5303 ["12/13" ]: matches 27/3 ?? 5304 ["122/3/4" ]: illegal value ?? 5305 ["1259-V" ]: illegal value %% 5306 ["127A" ]: matches 27A %% 5307 ["12A" ]: matches 27A ?? 5308 ["13, 14" ]: illegal value ?? 5309 ["13, 2" ]: illegal value ?? 5310 ["13, 4" ]: illegal value ?? 5311 ["134, No. 2" ]: illegal value %% 5312 ["135B" ]: matches 27A ?? 5313 ["14 (or 9?)" ]: illegal value ?? 5314 ["14--15" ]: illegal value %% 5315 ["140B" ]: matches 27A %% 5316 ["148B" ]: matches 27A ?? 5317 ["15 (1-2)" ]: illegal value ?? 5318 ["15, 2" ]: illegal value %% 5319 ["15.1" ]: matches 1.2 %% 5320 ["15.3" ]: matches 1.2 %% 5321 ["152/153" ]: matches 27/3 %% 5322 ["154-156" ]: matches SMC-13 %% 5323 ["161B" ]: matches 27A ?? 5324 ["162--164" ]: illegal value %% 5325 ["162-164" ]: matches SMC-13 %% 5326 ["167B" ]: matches 27A %% 5327 ["16S" ]: matches 27A ?? 5328 ["17, no. 3" ]: illegal value %% 5329 ["18 Supl" ]: matches Special issue A ?? 5330 ["18, 4" ]: illegal value %% 5331 ["18/19" ]: matches 27/3 ?? 5332 ["183, 292" ]: illegal value ?? 5333 ["185, 186" ]: illegal value %% 5334 ["18\slash 19" ]: matches 27 ?? 5335 ["19, 1" ]: illegal value ?? 5336 ["19, 3" ]: illegal value ?? 5337 ["19, No. 3" ]: illegal value ?? 5338 ["19. Jahrg." ]: illegal value %% 5339 ["19/20" ]: matches 27/3 %% 5340 ["197/198" ]: matches 27/3 %% 5341 ["1984/24" ]: matches 27/3 %% 5342 ["1S" ]: matches 27A ?? 5343 ["2(4)" ]: illegal value ?? 5344 ["2. Anwendungen" ]: illegal value %% 5345 ["2/85" ]: matches 27/3 ?? 5346 ["20 (or 19??)" ]: illegal value %% 5347 ["20 B" ]: matches Special issue A ?? 5348 ["20, 23, 25" ]: illegal value %% 5349 ["20/21" ]: matches 27/3 ?? 5350 ["203, 204" ]: illegal value %% 5351 ["208/209" ]: matches 27/3 ?? 5352 ["21, 2" ]: illegal value ?? 5353 ["21, Supplement 6" ]: illegal value %% 5354 ["212/213" ]: matches 27/3 %% 5355 ["217A" ]: matches 27A %% 5356 ["22 B" ]: matches Special issue A ?? 5357 ["221 (or 213??)" ]: illegal value ?? 5358 ["23(9)" ]: illegal value %% 5359 ["2304-16" ]: matches SMC-13 %% 5360 ["239/240" ]: matches 27/3 ?? 5361 ["24, 3" ]: illegal value ?? 5362 ["24, no. 9" ]: illegal value ?? 5363 ["249, 250" ]: illegal value ?? 5364 ["25 (or 26??)" ]: illegal value ?? 5365 ["254, 255" ]: illegal value ?? 5366 ["258, 259" ]: illegal value ?? 5367 ["26 (or 25??)" ]: illegal value ?? 5368 ["26, 2" ]: illegal value %% 5369 ["26.4" ]: matches 1.2 %% 5370 ["26A" ]: matches 27A %% 5371 ["26B" ]: matches 27A ?? 5372 ["27, no. 12" ]: illegal value %% 5373 ["27S" ]: matches 27A ?? 5374 ["298, Series III" ]: illegal value %% 5375 ["299/300" ]: matches 27/3 %% 5376 ["2S" ]: matches 27A ?? 5377 ["3, 2" ]: illegal value ?? 5378 ["3, 4" ]: illegal value ?? 5379 ["3--4" ]: illegal value ?? 5380 ["3. Algorithms and applications"]: illegal value %% 5381 ["3/1975" ]: matches 27/3 %% 5382 ["3/1979" ]: matches 27/3 %% 5383 ["3/4" ]: matches 27/3 ?? 5384 ["30--31" ]: illegal value %% 5385 ["307/308" ]: matches 27/3 ?? 5386 ["32, no. 2" ]: illegal value %% 5387 ["32-1" ]: matches SMC-13 %% 5388 ["32-2" ]: matches SMC-13 ?? 5389 ["33,34" ]: illegal value %% 5390 ["35-37" ]: matches SMC-13 ?? 5391 ["351, 352" ]: illegal value ?? 5392 ["36 (or 38??)" ]: illegal value ?? 5393 ["36, no. 12" ]: illegal value ?? 5394 ["365, 366" ]: illegal value ?? 5395 ["37??" ]: illegal value %% 5396 ["37A" ]: matches 27A %% 5397 ["38A" ]: matches 27A %% 5398 ["39B" ]: matches 27A %% 5399 ["3M" ]: matches 27A %% 5400 ["3S" ]: matches 27A ?? 5401 ["4 (No. 1)" ]: illegal value ?? 5402 ["4 (or 11??)" ]: illegal value ?? 5403 ["40, 41" ]: illegal value ?? 5404 ["40--41" ]: illegal value %% 5405 ["40A" ]: matches 27A ?? 5406 ["41, 4" ]: illegal value ?? 5407 ["41, pt. 1" ]: illegal value %% 5408 ["41B" ]: matches 27A %% 5409 ["42A" ]: matches 27A %% 5410 ["44A" ]: matches 27A ?? 5411 ["46--47" ]: illegal value ?? 5412 ["47.1 - 47.7" ]: illegal value %% 5413 ["475A" ]: matches 27A %% 5414 ["47A" ]: matches 27A %% 5415 ["4M" ]: matches 27A ?? 5416 ["5 (1976)" ]: illegal value ?? 5417 ["5 (??)" ]: illegal value ?? 5418 ["5, 1" ]: illegal value ?? 5419 ["5, Numerical Methods in Thermal Problems"]: illegal value ?? 5420 ["50, Pt. 4" ]: illegal value ?? 5421 ["505, 506" ]: illegal value %% 5422 ["52/53" ]: matches 27/3 %% 5423 ["54/55" ]: matches 27/3 ?? 5424 ["551, 552" ]: illegal value %% 5425 ["55B" ]: matches 27A %% 5426 ["56A" ]: matches 27A %% 5427 ["5S" ]: matches 27A ?? 5428 ["6 (No. 3)" ]: illegal value ?? 5429 ["62--63" ]: illegal value %% 5430 ["62A" ]: matches 27A ?? 5431 ["63(4)" ]: illegal value %% 5432 ["634-677" ]: matches SMC-13 ?? 5433 ["63:207" ]: illegal value %% 5434 ["63A" ]: matches 27A %% 5435 ["6A" ]: matches 27A %% 5436 ["6B" ]: matches 27A %% 5437 ["6S" ]: matches 27A ?? 5438 ["70, no. 6" ]: illegal value %% 5439 ["71B" ]: matches 27A ?? 5440 ["728-P" ]: illegal value %% 5441 ["74b" ]: matches 27A %% 5442 ["76-3" ]: matches SMC-13 ?? 5443 ["78--257" ]: illegal value %% 5444 ["78/9" ]: matches 27/3 %% 5445 ["79-1458" ]: matches SMC-13 %% 5446 ["7A" ]: matches 27A %% 5447 ["7B" ]: matches 27A ?? 5448 ["800, 801" ]: illegal value ?? 5449 ["81--1025" ]: illegal value ?? 5450 ["81--1027" ]: illegal value ?? 5451 ["81--1245" ]: illegal value %% 5452 ["81-1028" ]: matches SMC-13 %% 5453 ["81-1259" ]: matches SMC-13 %% 5454 ["81/6" ]: matches 27/3 %% 5455 ["81A" ]: matches 27A ?? 5456 ["82--0931" ]: illegal value ?? 5457 ["82--0976" ]: illegal value %% 5458 ["82/1" ]: matches 27/3 ?? 5459 ["83--0034" ]: illegal value ?? 5460 ["83--0124" ]: illegal value ?? 5461 ["83--1885" ]: illegal value ?? 5462 ["83--1896" ]: illegal value ?? 5463 ["83--1945" ]: illegal value %% 5464 ["83-1893" ]: matches SMC-13 %% 5465 ["83A" ]: matches 27A %% 5466 ["84-0093" ]: matches SMC-13 ?? 5467 ["85--0017" ]: illegal value ?? 5468 ["85--0295" ]: illegal value ?? 5469 ["85--1493--CP" ]: illegal value ?? 5470 ["85--1500" ]: illegal value ?? 5471 ["85--1523CP" ]: illegal value %% 5472 ["85-0293" ]: matches SMC-13 ?? 5473 ["85-1508-CP" ]: illegal value %% 5474 ["85A" ]: matches 27A ?? 5475 ["86--1063" ]: illegal value ?? 5476 ["86--1081" ]: illegal value %% 5477 ["86/87" ]: matches 27/3 ?? 5478 ["87--0275" ]: illegal value ?? 5479 ["87--0353" ]: illegal value ?? 5480 ["87--0560" ]: illegal value ?? 5481 ["87--0602" ]: illegal value ?? 5482 ["87--1152 CP" ]: illegal value ?? 5483 ["87--2627--CP" ]: illegal value ?? 5484 ["88--0224" ]: illegal value ?? 5485 ["88--0715" ]: illegal value ?? 5486 ["88-1997 CP" ]: illegal value %% 5487 ["88/89" ]: matches 27/3 ?? 5488 ["89--0121" ]: illegal value ?? 5489 ["89--0274" ]: illegal value ?? 5490 ["89--0338" ]: illegal value ?? 5491 ["89--0548" ]: illegal value %% 5492 ["89-1791" ]: matches SMC-13 %% 5493 ["89-1949" ]: matches SMC-13 %% 5494 ["89-1953" ]: matches SMC-13 %% 5495 ["89/2" ]: matches 27/3 ?? 5496 ["91--1572" ]: illegal value ?? 5497 ["91--1596" ]: illegal value %% 5498 ["91-101" ]: matches SMC-13 ?? 5499 ["92--0449" ]: illegal value ?? 5500 ["93--0677" ]: illegal value %% 5501 ["93-0236" ]: matches SMC-13 %% 5502 ["93B" ]: matches 27A %% 5503 ["95/2" ]: matches 27/3 %% 5504 ["96A" ]: matches 27A %% 5505 ["99B" ]: matches 27A ?? 5506 ["??" ]: illegal value ?? 5507 ["????" ]: illegal value %% 5508 ["A 248" ]: matches Special issue A %% 5509 ["A 323" ]: matches Special issue A %% 5510 ["A" ]: matches VIII ?? 5511 ["A(2)" ]: illegal value %% 5512 ["A-12" ]: matches SMC-13 %% 5513 ["A-2" ]: matches SMC-13 %% 5514 ["A-48" ]: matches SMC-13 %% 5515 ["A-52" ]: matches SMC-13 %% 5516 ["A12" ]: matches Special issue A %% 5517 ["A128" ]: matches Special issue A %% 5518 ["A14" ]: matches Special issue A %% 5519 ["A15" ]: matches Special issue A %% 5520 ["A16" ]: matches Special issue A %% 5521 ["A20" ]: matches Special issue A %% 5522 ["A258" ]: matches Special issue A %% 5523 ["A298" ]: matches Special issue A %% 5524 ["A39" ]: matches Special issue A %% 5525 ["A405" ]: matches Special issue A ?? 5526 ["A: Tutorials" ]: illegal value %% 5527 ["AC-16" ]: matches SMC-13 %% 5528 ["AC-22" ]: matches SMC-13 %% 5529 ["AC-23" ]: matches SMC-13 %% 5530 ["AC-24" ]: matches SMC-13 %% 5531 ["AC-25" ]: matches SMC-13 %% 5532 ["AC-26" ]: matches SMC-13 %% 5533 ["AC-27" ]: matches SMC-13 %% 5534 ["AC-28" ]: matches SMC-13 %% 5535 ["AC-29" ]: matches SMC-13 %% 5536 ["AC-30" ]: matches SMC-13 %% 5537 ["AC-32" ]: matches SMC-13 %% 5538 ["AC-33" ]: matches SMC-13 %% 5539 ["AC-34" ]: matches SMC-13 %% 5540 ["AC-35" ]: matches SMC-13 %% 5541 ["AC-36" ]: matches SMC-13 %% 5542 ["AC-37" ]: matches SMC-13 %% 5543 ["AC-39" ]: matches SMC-13 ?? 5544 ["AC-??" ]: illegal value %% 5545 ["AES 24" ]: matches Special issue A %% 5546 ["AES-11" ]: matches SMC-13 %% 5547 ["AES-12" ]: matches SMC-13 %% 5548 ["AES-22" ]: matches SMC-13 %% 5549 ["AES-23" ]: matches SMC-13 %% 5550 ["AES-5" ]: matches SMC-13 ?? 5551 ["AMD vo. 86" ]: illegal value %% 5552 ["AP-24" ]: matches SMC-13 %% 5553 ["AP-33" ]: matches SMC-13 %% 5554 ["AP-34" ]: matches SMC-13 %% 5555 ["ASSP-24" ]: matches SMC-13 %% 5556 ["ASSP-27" ]: matches SMC-13 %% 5557 ["ASSP-28" ]: matches SMC-13 %% 5558 ["ASSP-29" ]: matches SMC-13 %% 5559 ["ASSP-31" ]: matches SMC-13 %% 5560 ["ASSP-32" ]: matches SMC-13 %% 5561 ["ASSP-34" ]: matches SMC-13 %% 5562 ["ASSP-35" ]: matches SMC-13 %% 5563 ["ASSP-36" ]: matches SMC-13 %% 5564 ["ASSP-37" ]: matches SMC-13 ?? 5565 ["Annual Conference Series, 1995"]: illegal value %% 5566 ["B" ]: matches VIII %% 5567 ["B-10" ]: matches SMC-13 %% 5568 ["B1" ]: matches Special issue A %% 5569 ["B177" ]: matches Special issue A %% 5570 ["B207" ]: matches Special issue A %% 5571 ["B28" ]: matches Special issue A %% 5572 ["B288" ]: matches Special issue A %% 5573 ["B329" ]: matches Special issue A %% 5574 ["B354" ]: matches Special issue A %% 5575 ["B368" ]: matches Special issue A %% 5576 ["B374" ]: matches Special issue A %% 5577 ["B376" ]: matches Special issue A %% 5578 ["B380" ]: matches Special issue A %% 5579 ["B401" ]: matches Special issue A %% 5580 ["B7" ]: matches Special issue A %% 5581 ["B84" ]: matches Special issue A ?? 5582 ["B: Formal Models and Semantics"]: illegal value %% 5583 ["C" ]: matches VIII ?? 5584 ["C--22" ]: illegal value ?? 5585 ["C--35" ]: illegal value ?? 5586 ["C--36" ]: illegal value %% 5587 ["C-17" ]: matches SMC-13 %% 5588 ["C-18" ]: matches SMC-13 %% 5589 ["C-19" ]: matches SMC-13 %% 5590 ["C-20" ]: matches SMC-13 %% 5591 ["C-22" ]: matches SMC-13 %% 5592 ["C-23" ]: matches SMC-13 %% 5593 ["C-24" ]: matches SMC-13 %% 5594 ["C-25" ]: matches SMC-13 %% 5595 ["C-26" ]: matches SMC-13 %% 5596 ["C-27" ]: matches SMC-13 %% 5597 ["C-28" ]: matches SMC-13 %% 5598 ["C-29" ]: matches SMC-13 %% 5599 ["C-30" ]: matches SMC-13 %% 5600 ["C-31" ]: matches SMC-13 %% 5601 ["C-32" ]: matches SMC-13 %% 5602 ["C-33" ]: matches SMC-13 %% 5603 ["C-34" ]: matches SMC-13 %% 5604 ["C-35" ]: matches SMC-13 %% 5605 ["C-36" ]: matches SMC-13 %% 5606 ["C-37" ]: matches SMC-13 %% 5607 ["C-39" ]: matches SMC-13 %% 5608 ["C-40" ]: matches SMC-13 %% 5609 ["C25" ]: matches Special issue A %% 5610 ["C26" ]: matches Special issue A %% 5611 ["CAD-1" ]: matches SMC-13 %% 5612 ["CAD-4" ]: matches SMC-13 ?? 5613 ["CAS--28" ]: illegal value %% 5614 ["CAS-26" ]: matches SMC-13 %% 5615 ["CAS-34" ]: matches SMC-13 %% 5616 ["CE-29" ]: matches SMC-13 %% 5617 ["COM-30" ]: matches SMC-13 %% 5618 ["COM-31" ]: matches SMC-13 %% 5619 ["CP 3224" ]: matches Special issue A %% 5620 ["CXXIV" ]: matches VIII %% 5621 ["D" ]: matches VIII %% 5622 ["D40" ]: matches Special issue A %% 5623 ["E" ]: matches VIII %% 5624 ["E74" ]: matches Special issue A ?? 5625 ["E75-A" ]: illegal value ?? 5626 ["E76--D" ]: illegal value ?? 5627 ["E77-A" ]: illegal value %% 5628 ["EC-11" ]: matches SMC-13 %% 5629 ["EC-13" ]: matches SMC-13 %% 5630 ["EC-14" ]: matches SMC-13 %% 5631 ["EC-8" ]: matches SMC-13 ?? 5632 ["ED--30, 9" ]: illegal value %% 5633 ["ED-30" ]: matches SMC-13 %% 5634 ["EWS-10" ]: matches SMC-13 %% 5635 ["F51" ]: matches Special issue A %% 5636 ["F55" ]: matches Special issue A %% 5637 ["F70" ]: matches Special issue A %% 5638 ["FIPS 152" ]: matches Special issue A %% 5639 ["GE-22" ]: matches SMC-13 %% 5640 ["H6" ]: matches Special issue A %% 5641 ["I 301" ]: matches Special issue A %% 5642 ["I" ]: matches VIII ?? 5643 ["I, Architecture" ]: illegal value ?? 5644 ["I, Univariate Series" ]: illegal value ?? 5645 ["I: Finite Difference Methods---Solution of Equations"]: illegal value %% 5646 ["IEEE Computer Society Order Number 655"]: matches Special issue A ?? 5647 ["II --- Software" ]: illegal value %% 5648 ["II" ]: matches VIII ?? 5649 ["II, Multivariate Series, Prediction and Control"]: illegal value ?? 5650 ["II, Software" ]: illegal value ?? 5651 ["II: Matrix Theory and Analysis"]: illegal value %% 5652 ["III" ]: matches VIII ?? 5653 ["III, Algorithms \& Applications"]: illegal value ?? 5654 ["III: Hearing Disorders"]: illegal value %% 5655 ["IT-17" ]: matches SMC-13 %% 5656 ["IT-18" ]: matches SMC-13 %% 5657 ["IT-31" ]: matches SMC-13 %% 5658 ["IT-32" ]: matches SMC-13 ?? 5659 ["IV (XIII)" ]: illegal value %% 5660 ["IV" ]: matches VIII %% 5661 ["IX" ]: matches VIII ?? 5662 ["In press." ]: illegal value %% 5663 ["J67D" ]: matches Special issue A %% 5664 ["J68D" ]: matches Special issue A ?? 5665 ["J76D-II" ]: illegal value ?? 5666 ["J77-A" ]: illegal value %% 5667 ["LVI" ]: matches VIII %% 5668 ["LXVIII" ]: matches VIII %% 5669 ["LXX" ]: matches VIII %% 5670 ["Libraries" ]: matches VIII %% 5671 ["NS-30" ]: matches SMC-13 %% 5672 ["New Series Number 53" ]: matches Special issue A ?? 5673 ["PAMI--10(4)" ]: illegal value %% 5674 ["PAMI-6" ]: matches SMC-13 %% 5675 ["PAMI-9" ]: matches SMC-13 %% 5676 ["PC-15" ]: matches SMC-13 %% 5677 ["PC-16" ]: matches SMC-13 %% 5678 ["PC-18" ]: matches SMC-13 %% 5679 ["PC-20" ]: matches SMC-13 %% 5680 ["PC-23" ]: matches SMC-13 %% 5681 ["PC-24" ]: matches SMC-13 %% 5682 ["PC-27" ]: matches SMC-13 %% 5683 ["PC-29" ]: matches SMC-13 %% 5684 ["PC-30" ]: matches SMC-13 %% 5685 ["PC-32" ]: matches SMC-13 ?? 5686 ["Pt. E" ]: illegal value %% 5687 ["R-29" ]: matches SMC-13 %% 5688 ["R-32" ]: matches SMC-13 %% 5689 ["R-34" ]: matches SMC-13 ?? 5690 ["RC 12794 (\#57573)" ]: illegal value %% 5691 ["S-2" ]: matches SMC-13 %% 5692 ["S10" ]: matches Special issue A %% 5693 ["S13" ]: matches Special issue A %% 5694 ["S7" ]: matches Special issue A %% 5695 ["S8" ]: matches Special issue A %% 5696 ["S9" ]: matches Special issue A %% 5697 ["SC-17" ]: matches SMC-13 %% 5698 ["SC-19" ]: matches SMC-13 ?? 5699 ["SCD User document version 1.2"]: illegal value %% 5700 ["SE-10" ]: matches SMC-13 %% 5701 ["SE-11" ]: matches SMC-13 %% 5702 ["SE-12" ]: matches SMC-13 %% 5703 ["SE-13" ]: matches SMC-13 %% 5704 ["SE-16" ]: matches SMC-13 %% 5705 ["SE-2" ]: matches SMC-13 %% 5706 ["SE-3" ]: matches SMC-13 %% 5707 ["SE-5" ]: matches SMC-13 %% 5708 ["SE-7" ]: matches SMC-13 %% 5709 ["SE-8" ]: matches SMC-13 %% 5710 ["SE-9" ]: matches SMC-13 %% 5711 ["SMC-14" ]: matches SMC-13 %% 5712 ["SP-1128" ]: matches SMC-13 %% 5713 ["SPE 7687" ]: matches Special issue A ?? 5714 ["SPIE Vol. 1360" ]: illegal value ?? 5715 ["SPIE Vol. 2186" ]: illegal value ?? 5716 ["Ser. I, 295" ]: illegal value ?? 5717 ["Ser. I, 296" ]: illegal value ?? 5718 ["Ser. I, 298" ]: illegal value %% 5719 ["Special issue A" ]: matches Special issue A %% 5720 ["Special issue B" ]: matches Special issue A %% 5721 ["Special issue D" ]: matches Special issue A %% 5722 ["Special issue E" ]: matches Special issue A %% 5723 ["Special issue" ]: matches Special issue A ?? 5724 ["Suppl. 2" ]: illegal value ?? 5725 ["Suppl. XIII" ]: illegal value ?? 5726 ["Suppl." ]: illegal value %% 5727 ["TBD" ]: matches VIII %% 5728 ["To appear" ]: matches Special issue A %% 5729 ["UCP-19" ]: matches SMC-13 %% 5730 ["UMINF" ]: matches VIII %% 5731 ["V" ]: matches VIII ?? 5732 ["V, {Design of Computers, Theory of Automata}"]: illegal value %% 5733 ["VI" ]: matches VIII %% 5734 ["VII" ]: matches VIII %% 5735 ["VIII" ]: matches VIII ?? 5736 ["Vol.2" ]: illegal value ?? 5737 ["Vol.81" ]: illegal value ?? 5738 ["Volume 91, Issue 16" ]: illegal value %% 5739 ["X" ]: matches VIII %% 5740 ["XIV" ]: matches VIII %% 5741 ["XLI" ]: matches VIII %% 5742 ["XLVIII" ]: matches VIII %% 5743 ["XXI" ]: matches VIII %% 5744 ["XXIII" ]: matches VIII %% 5745 ["XXV" ]: matches VIII %% 5746 ["XXVIII" ]: matches VIII %% 5747 ["XXXV" ]: matches VIII %% 5748 ["c-21" ]: matches SMC-13 ?? 5749 ["n. 15" ]: illegal value %% 5750 ["one" ]: matches VIII ?? 5751 ["t. 306, S{\/e}rie I" ]: illegal value ?? 5752 ["t. 309, S{\/e}rie I" ]: illegal value ?? 5753 ["t. 315, Serie I" ]: illegal value %% 5754 ["two" ]: matches VIII %% 5755 ["{19-20}" ]: matches SMC-13 %% 5756 ["{ASSP-35}" ]: matches SMC-13 %% 5757 ["{ASSP-37}" ]: matches SMC-13 %% 5758 ["{Heft 2}" ]: matches Special issue A ?? 5759 ["{II}/13" ]: illegal value %% 5760 ["{I}" ]: matches VIII ?? 5761 ["{Reihe VI, Band 30}" ]: illegal value %% 5762 ["{\em 16}" ]: matches 27 %% 5763 ["{\noopsort{1986a}}A" ]: matches 27A %% 5764 [ ]: ignored %% 5765 [ ]: ignored ?? 5766 [" 1988" ]: illegal value ?? 5767 ["" ]: illegal value ?? 5768 ["(submitted)" ]: illegal value ?? 5769 ["1190" ]: illegal value ?? 5770 ["1785" ]: illegal value %% 5771 ["1837" ]: matches 1892 %% 5772 ["1840" ]: matches 1892 %% 5773 ["1841" ]: matches 1892 %% 5774 ["1846" ]: matches 1892 %% 5775 ["1850" ]: matches 1892 %% 5776 ["1851" ]: matches 1892 %% 5777 ["1854" ]: matches 1892 %% 5778 ["1859" ]: matches 1892 %% 5779 ["1869" ]: matches 1892 %% 5780 ["1870" ]: matches 1892 %% 5781 ["1873" ]: matches 1892 %% 5782 ["1874" ]: matches 1892 %% 5783 ["1881" ]: matches 1892 %% 5784 ["1884" ]: matches 1892 %% 5785 ["1890" ]: matches 1892 %% 5786 ["1894" ]: matches 1892 %% 5787 ["1896" ]: matches 1892 %% 5788 ["1897" ]: matches 1892 ?? 5789 ["19" ]: illegal value ?? 5790 ["19..(?)" ]: illegal value %% 5791 ["1901" ]: matches 1992 %% 5792 ["1902" ]: matches 1992 %% 5793 ["1904" ]: matches 1992 %% 5794 ["1908" ]: matches 1992 %% 5795 ["1909" ]: matches 1992 %% 5796 ["1911" ]: matches 1992 %% 5797 ["1914" ]: matches 1992 %% 5798 ["1916" ]: matches 1992 %% 5799 ["1917" ]: matches 1992 %% 5800 ["1918" ]: matches 1992 %% 5801 ["1922" ]: matches 1992 %% 5802 ["1923" ]: matches 1992 %% 5803 ["1924" ]: matches 1992 %% 5804 ["1925" ]: matches 1992 %% 5805 ["1927" ]: matches 1992 %% 5806 ["1929" ]: matches 1992 %% 5807 ["1930" ]: matches 1992 %% 5808 ["1931" ]: matches 1992 %% 5809 ["1932" ]: matches 1992 %% 5810 ["1933" ]: matches 1992 %% 5811 ["1934" ]: matches 1992 %% 5812 ["1935" ]: matches 1992 %% 5813 ["1936" ]: matches 1992 %% 5814 ["1937" ]: matches 1992 %% 5815 ["1938" ]: matches 1992 %% 5816 ["1939" ]: matches 1992 %% 5817 ["1940" ]: matches 1992 %% 5818 ["1941" ]: matches 1992 %% 5819 ["1942" ]: matches 1992 %% 5820 ["1943" ]: matches 1992 %% 5821 ["1944" ]: matches 1992 %% 5822 ["1945" ]: matches 1992 %% 5823 ["1946" ]: matches 1992 %% 5824 ["1947" ]: matches 1992 %% 5825 ["1948" ]: matches 1992 %% 5826 ["1949" ]: matches 1992 %% 5827 ["1949, 1951, 1969" ]: matches 1989, 1990, 1991 %% 5828 ["1949, 1951, 1970" ]: matches 1989, 1990, 1991 %% 5829 ["1950" ]: matches 1992 %% 5830 ["1951" ]: matches 1992 %% 5831 ["1952" ]: matches 1992 %% 5832 ["1953" ]: matches 1992 %% 5833 ["1954" ]: matches 1992 %% 5834 ["1955" ]: matches 1992 %% 5835 ["1956" ]: matches 1992 %% 5836 ["1957" ]: matches 1992 %% 5837 ["1958" ]: matches 1992 %% 5838 ["1959" ]: matches 1992 ?? 5839 ["1960 (or 1969??)" ]: illegal value %% 5840 ["1960" ]: matches 1992 %% 5841 ["1961" ]: matches 1992 %% 5842 ["1961, 1962" ]: matches 1989, 1990 %% 5843 ["1962" ]: matches 1992 %% 5844 ["1963" ]: matches 1992 ?? 5845 ["1964 (or 1967??)" ]: illegal value %% 5846 ["1964" ]: matches 1992 %% 5847 ["1965" ]: matches 1992 ?? 5848 ["1966 (or 1960??)" ]: illegal value %% 5849 ["1966" ]: matches 1992 %% 5850 ["1967" ]: matches 1992 ?? 5851 ["1967/1968" ]: illegal value ?? 5852 ["1968 (??)" ]: illegal value %% 5853 ["1968" ]: matches 1992 ?? 5854 ["1969 (??)" ]: illegal value ?? 5855 ["1969 (vol. 2)" ]: illegal value %% 5856 ["1969" ]: matches 1992 %% 5857 ["1969, 1979" ]: matches 1989, 1990 ?? 5858 ["1970 (??)" ]: illegal value ?? 5859 ["1970 (or 1975??)" ]: illegal value ?? 5860 ["1970 (or 1978??)" ]: illegal value ?? 5861 ["1970 (or 1979??)" ]: illegal value %% 5862 ["1970" ]: matches 1992 ?? 5863 ["1970--1971" ]: illegal value ?? 5864 ["1970/71" ]: illegal value %% 5865 ["1971" ]: matches 1992 ?? 5866 ["1971--1972" ]: illegal value %% 5867 ["1972" ]: matches 1992 ?? 5868 ["1972--1973" ]: illegal value ?? 5869 ["1972{\noopsort{a}}" ]: illegal value ?? 5870 ["1972{\noopsort{b}}" ]: illegal value %% 5871 ["1973" ]: matches 1992 ?? 5872 ["1973--1981" ]: illegal value ?? 5873 ["1973\noopsort{a}" ]: illegal value %% 5874 ["1974" ]: matches 1992 ?? 5875 ["1975 (??)" ]: illegal value %% 5876 ["1975" ]: matches 1992 %% 5877 ["1976" ]: matches 1992 %% 5878 ["1976, 1982, 1983" ]: matches 1989, 1990, 1991 ?? 5879 ["1976/1977" ]: illegal value ?? 5880 ["1977 and 1978" ]: illegal value %% 5881 ["1977" ]: matches 1992 %% 5882 ["1978" ]: matches 1992 %% 5883 ["1979" ]: matches 1992 %% 5884 ["1979, 1980" ]: matches 1989, 1990 ?? 5885 ["1979/1980" ]: illegal value ?? 5886 ["197x" ]: illegal value ?? 5887 ["1980 (or 1984??)" ]: illegal value ?? 5888 ["1980 (or 1987??)" ]: illegal value ?? 5889 ["1980 (or 1988??)" ]: illegal value %% 5890 ["1980" ]: matches 1992 ?? 5891 ["1981 (??)" ]: illegal value %% 5892 ["1981" ]: matches 1992 %% 5893 ["1981, 1983" ]: matches 1989, 1990 %% 5894 ["1981, 1984, 1989" ]: matches 1989, 1990, 1991 ?? 5895 ["1982 (??)" ]: illegal value %% 5896 ["1982" ]: matches 1992 ?? 5897 ["1983 (??)" ]: illegal value %% 5898 ["1983" ]: matches 1992 %% 5899 ["1984" ]: matches 1992 ?? 5900 ["1984--1993" ]: illegal value ?? 5901 ["1984-1993" ]: illegal value ?? 5902 ["1984/85" ]: illegal value %% 5903 ["1985" ]: matches 1992 ?? 5904 ["1985/86" ]: illegal value ?? 5905 ["1985?" ]: illegal value ?? 5906 ["1986 (??)" ]: illegal value ?? 5907 ["1986 (summer)" ]: illegal value %% 5908 ["1986" ]: matches 1992 ?? 5909 ["1986/87" ]: illegal value ?? 5910 ["1987 (??)" ]: illegal value %% 5911 ["1987" # "\unskip--" ]: matches "1989" # "\unskip--" %% 5912 ["1987" ]: matches 1992 ?? 5913 ["1987--date{}" ]: illegal value ?? 5914 ["1987-88" ]: illegal value ?? 5915 ["1987/88" ]: illegal value ?? 5916 ["1988 (??)" ]: illegal value ?? 5917 ["1988 (summer)" ]: illegal value %% 5918 ["1988" # "\unskip--" ]: matches "1989" # "\unskip--" %% 5919 ["1988" ]: matches 1992 ?? 5920 ["1988--1989" ]: illegal value ?? 5921 ["1988-89" ]: illegal value ?? 5922 ["1988/1990" ]: illegal value %% 5923 ["1989" # "\unskip--" ]: matches "1989" # "\unskip--" %% 5924 ["1989" ]: matches 1992 ?? 5925 ["1989--date{}" ]: illegal value ?? 5926 ["1989--present" ]: illegal value ?? 5927 ["198?" ]: illegal value ?? 5928 ["198x" ]: illegal value %% 5929 ["1990" ]: matches 1992 ?? 5930 ["1990, 12 Juni" ]: illegal value ?? 5931 ["1990--1991" ]: illegal value ?? 5932 ["1990/91" ]: illegal value ?? 5933 ["1990?" ]: illegal value ?? 5934 ["1991 (to appear)" ]: illegal value %% 5935 ["1991" ]: matches 1992 %% 5936 ["1991--2" ]: matches 1991--2 ?? 5937 ["1991-2" ]: illegal value ?? 5938 ["1991/1992" ]: illegal value ?? 5939 ["1991/92" ]: illegal value ?? 5940 ["1992 (??)" ]: illegal value %% 5941 ["1992" ]: matches 1992 ?? 5942 ["1992-93" ]: illegal value %% 5943 ["1993" ]: matches 1992 ?? 5944 ["1993?" ]: illegal value ?? 5945 ["1994 (invited)" ]: illegal value %% 5946 ["1994" ]: matches 1992 ?? 5947 ["1994--" ]: illegal value ?? 5948 ["1994--1995" ]: illegal value ?? 5949 ["1995 (??)" ]: illegal value ?? 5950 ["1995 (in press)" ]: illegal value ?? 5951 ["1995 (invited)" ]: illegal value ?? 5952 ["1995 (to appear)" ]: illegal value %% 5953 ["1995" ]: matches 1992 %% 5954 ["1996" ]: matches 1992 %% 5955 ["1997" ]: matches 1992 %% 5956 ["1998" ]: matches 1992 ?? 5957 ["199x" ]: illegal value ?? 5958 ["19xx" ]: illegal value ?? 5959 ["83" ]: illegal value ?? 5960 ["??" ]: illegal value ?? 5961 ["????" ]: illegal value ?? 5962 ["In progress." ]: illegal value ?? 5963 ["March 20 -- 23, 1989" ]: illegal value ?? 5964 ["Spring 1985" ]: illegal value ?? 5965 ["TBD" ]: illegal value ?? 5966 ["To appear" ]: illegal value ?? 5967 ["To appear" ]: illegal value %% 5968 ["\noopsort{1996}" ]: matches 1992 ?? 5969 ["in preparation" ]: illegal value ?? 5970 ["in print" ]: illegal value ?? 5971 ["in progress" ]: illegal value ?? 5972 ["submitted" ]: illegal value %% 5973 ["{\noopsort{1968a}}1968"]: matches {\noopsort{1985a}}1985 %% 5974 ["{\noopsort{1968b}}1973"]: matches {\noopsort{1985a}}1985 %% 5975 ["{\noopsort{1968c}}1969"]: matches {\noopsort{1985a}}1985 %% 5976 ["{\noopsort{1972a}}1972"]: matches {\noopsort{1985a}}1985 %% 5977 ["{\noopsort{1972b}}1973"]: matches {\noopsort{1985a}}1985 %% 5978 ["{\noopsort{1985a}}1985"]: matches {\noopsort{1985a}}1985 %% 5979 ["{\noopsort{1985b}}1985"]: matches {\noopsort{1985a}}1985 %% 5980 ["{\noopsort{1986a}}1986"]: matches {\noopsort{1985a}}1985 %% 5981 ["{\noopsort{1986b}}1986"]: matches {\noopsort{1985a}}1985 %% 5982 ["{\noopsort{1986c}}1986"]: matches {\noopsort{1985a}}1985 %% 5983 ["{\noopsort{1986d}}1986"]: matches {\noopsort{1985a}}1985 %% 5984 ["{\noopsort{1986e}}1986"]: matches {\noopsort{1985a}}1985 %% 5985 ["{\noopsort{1992a}}1992"]: matches {\noopsort{1985a}}1985 %% 5986 ["{\noopsort{1992b}}1992"]: matches {\noopsort{1985a}}1985 %% 5987 ["{\noopsort{1992c}}1992"]: matches {\noopsort{1985a}}1985 %% 5988 ["{\noopsort{1992d}}1992"]: matches {\noopsort{1985a}}1985 ?? 5989 ["{\noopsort{a}}1978" ]: illegal value ?? 5990 ["{\noopsort{a}}1987" ]: illegal value ?? 5991 ["{\noopsort{a}}1988" ]: illegal value ?? 5992 ["{\noopsort{a}}1990" ]: illegal value ?? 5993 ["{\noopsort{a}}1991" ]: illegal value ?? 5994 ["{\noopsort{b}}1978" ]: illegal value ?? 5995 ["{\noopsort{b}}1987" ]: illegal value ?? 5996 ["{\noopsort{b}}1988" ]: illegal value ?? 5997 ["{\noopsort{b}}1990" ]: illegal value ?? 5998 ["{\noopsort{b}}1991" ]: illegal value bibclean-3.07/test/okay/topt165.out0000444000156700015670000000000112470143224015765 0ustar beebebeebe bibclean-3.07/test/okay/topt361.err0000444000156700015670000022174014023240752015763 0ustar beebebeebe%%% ISBN ranges and country/language groups 0-00 0-19 Region name: Australia Country code(s): AU Language group: 0 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 89999 ; 900000 - 949999 ; 9500000 - 9999999 0-200 0-699 0-2280 0-2289 0-229 0-368 0-3690 0-3699 0-370 0-638 0-6390 0-6397 0-6398000 0-6399999 0-640 0-644 0-6450000 0-6459999 0-646 0-647 0-6480000 0-6489999 0-649 0-654 0-6550 0-6559 0-656 0-699 0-7000 0-8499 0-85000 0-89999 0-900000 0-949999 0-9500000 0-9999999 1-000 1-009 Region name: English language Country code(s): ?? Language group: 1 Publisher(s): 000 - 009; 01 - 02; 030 - 034; 0350 - 0399; 04 - 06; 0700 - 0999; 100 - 397; 3980 - 5499; 55000 - 64999; 6500 - 6799; 68000 - 68599; 6860 - 7139; 714 - 716; 7170 - 7319; 7320000 - 7399999; 74000 - 77499; 7750000 - 7753999; 77540 - 77639; 7764000 - 7764999; 77650 - 77699; 7770000 - 7782999; 77830 - 78999; 7900 - 7999; 80000 - 80049; 80050 - 80499; 80500 - 83799; 8380000 - 8384999; 83850 - 86719; 8672 - 8675; 86760 - 86979; 869800 - 915999; 9160000 - 9165059; 916506 - 972999; 9730 - 9877; 987800 - 991149; 9911500 - 9911999; 991200 - 998989; 9989900 - 9999999 1-01 1-02 1-030 1-034 1-0350 1-0399 1-04 1-06 1-0700 1-0999 1-100 1-399 1-3980 1-5499 1-55000 1-86979 1-6500 1-6799 1-68000 1-68599 1-6860 1-7139 1-714 1-716 1-7170 1-7319 1-7320000 1-7399999 1-74000 1-76999 Region name: Australia Country code(s): AU Language group: 1 Publisher(s): 74000 - 76999 ; 86250 - 86799 ; 875100 - 877099 ; 920680 - 926429 1-7750000 1-7753999 1-77540 1-77639 1-7764000 1-7764999 1-77650 1-77699 1-7770000 1-7782999 1-77830 1-78999 1-7900 1-7999 1-80000 1-80049 1-80050 1-80499 1-80500 1-83799 1-8380000 1-8384999 1-83850 1-86719 1-8672 1-8675 1-86760 1-86979 1-869800 1-998999 [24-Sep-2015] Additions from https://web.archive.org/web/20150801000000*/http://www.isbn-international.org/en/identifiers/List-of-Ranges.pdf 1-9160000 1-9165059 1-916506 1-972999 1-9730 1-9877 1-987800 1-991149 1-9911500 1-9911999 1-991200 1-998989 1-9989900 1-9999999 2-00 2-19 Region name: French language Country code(s): ?? Language group: 2 Publisher(s): 00 - 19; 200 - 349; 35000 - 39999; 400 - 699; 7000 - 8399; 84000 - 89999; 900000 - 949999; 9500000 - 9999999 2-200 2-349 2-35000 2-39999 2-400 2-699 2-490000 2-494999 2-495 2-499 Region name: Luxembourg Country code(s): LU Language group: 2 Publisher(s): 495 - 499 ; 87950 - 87999 ; 919769 - 919999 ; 9599769 - 9599999 2-4960 2-4966 2-49670 2-49699 2-497 2-699 2-7000 2-8399 2-84000 2-89999 2-900000 2-949999 2-91980 2-91980 2-919810 2-919942 2-9199430 2-9199689 2-919969 2-949999 2-9500000 2-9999999 3-00 3-02 Region name: German language Country code(s): ?? Language group: 3 Publisher(s): 00 - 02; 030 - 033; 0340 - 0369; 03700 - 03999; 04 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 949999; 9500000 - 9539999; 95400 - 96999; 9700000 - 9899999; 99000 - 99499; 99500 - 99999 3-030 3-033 3-0340 3-0369 3-03700 3-03999 3-04 3-19 3-200 3-699 3-7000 3-8499 3-85000 3-89999 3-900000 3-949999 3-9500000 3-9539999 3-95400 3-96999 3-9700000 3-9899999 3-98500 3-99999 4-00 4-19 Region name: Japan Country code(s): JP Language group: 4 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 949999; 9500000 - 9999999 4-200 4-699 4-7000 4-8499 4-85000 4-89999 4-900000 4-949999 4-9500000 4-9999999 5-00000 5-00499 Region name: former U.S.S.R Country code(s): ?? Language group: 5 Publisher(s): 00000 - 00499; 0050 - 0099; 01 - 19; 200 - 420; 4210 - 4299; 430 - 430; 4310 - 4399; 440 - 440; 4410 - 4499; 450 - 699; 7000 - 8499; 85000 - 89999; 900000 - 909999; 91000 - 91999; 9200 - 9299; 93000 - 94999; 9500000 - 9500999; 9501 - 9799; 98000 - 98999; 9900000 - 9909999; 9910 - 9999 5-0050 5-0099 5-01 5-19 5-200 5-420 5-4210 5-4299 5-430 5-430 5-4310 5-4399 5-440 5-440 5-4410 5-4499 5-450 5-699 5-6040000 5-6049999 5-605 5-699 5-7000 5-8499 5-85000 5-89999 5-900000 5-909999 5-91000 5-91999 5-9200 5-9299 5-93000 5-94999 5-9500000 5-9500999 5-9501 5-9799 5-98000 5-98999 5-9900000 5-9909999 5-9910 5-9999 600-00 600-09 Region name: Iran Country code(s): IR Language group: 600 Publisher(s): 00 - 09; 100 - 499; 5000 - 8999; 90000 - 99999 600-100 600-499 600-5000 600-8999 600-90000 600-99999 600-9868 600-9929 600-993 600-995 600-99600 600-99999 601-00 601-19 Region name: Kazakhstan Country code(s): KZ Language group: 601 Publisher(s): 00 - 19; 200 - 699; 7000 - 7999; 80000 - 84999; 85 - 99 601-200 601-699 601-7000 601-7999 601-80000 601-84999 601-85 601-99 602-00 602-07 Region name: Indonesia Country code(s): ID Language group: 602 Publisher(s): 00 - 07; 0800 - 0899; 0900 - 1099; 1100 - 1199; 1200 - 1399; 14000 - 14999; 1500 - 1699; 17000 - 17999; 18000 - 18999; 19000 - 19999; 200 - 674; 6750 - 6999; 70000 - 74999; 7500 - 7999; 8000 - 9499; 95000 - 99999 602-0700 602-1399 602-14000 602-14999 602-1500 602-1699 602-17000 602-17999 602-200 602-674 602-50000 602-53999 602-5400 602-5999 602-60000 602-61999 602-6200 602-6999 602-70000 602-74999 602-7500 602-7999 602-95000 602-99999 603-00 603-04 Region name: Saudi Arabia Country code(s): SA Language group: 603 Publisher(s): 00 - 04; 05 - 49; 500 - 799; 8000 - 8999; 90000 - 99999 603-05 603-49 603-500 603-799 603-8000 603-8999 603-90000 603-99999 604-0 604-4 Region name: Vietnam Country code(s): VN Language group: 604 Publisher(s): 0 - 4; 50 - 89; 900 - 979; 9800 - 9999 604-50 604-89 604-900 604-979 604-9800 604-9999 605-00 605-02 Region name: Turkey Country code(s): TR Language group: 605 Publisher(s): 00 - 02; 030 - 039; 04 - 05; 06000 - 06999; 07 - 09; 100 - 199; 2000 - 2399; 240 - 399; 4000 - 5999; 60000 - 74999; 7500 - 7999; 80000 - 89999; 9000 - 9999 605-030 605-039 605-04 605-09 605-06000 605-06999 605-07 605-09 605-100 605-399 605-2000 605-2399 605-240 605-399 605-4000 605-5999 605-60000 605-89999 605-7500 605-7999 605-80000 605-89999 605-9000 605-9999 606-000 606-089 Region name: Romania Country code(s): RO Language group: 606 Publisher(s): 000 - 089; 09 - 49; 500 - 799; 8000 - 9099; 910 - 919; 92000 - 96499; 9650 - 9749; 975 - 999 606-09 606-49 606-500 606-799 606-8000 606-9199 606-910 606-919 606-92000 606-99999 606-9650 606-9749 606-975 606-999 607-00 607-39 Region name: Mexico Country code(s): MX Language group: 607 Publisher(s): 00 - 39; 400 - 749; 7500 - 9499; 95000 - 99999 607-400 607-749 607-7500 607-9499 607-95000 607-99999 608-0 608-0 Region name: Macedonia Country code(s): MK Language group: 608 Publisher(s): 0 - 0; 10 - 19; 200 - 449; 4500 - 6499; 65000 - 69999; 7 - 9 608-10 608-19 608-200 608-449 608-4500 608-6499 608-65000 608-69999 608-7 608-9 609-00 609-39 Region name: Lithuania Country code(s): LT Language group: 609 Publisher(s): 00 - 39; 400 - 799; 8000 - 9499; 95000 - 99999 609-400 609-799 609-8000 609-9499 609-95000 609-99999 612-00 612-29 Region name: Peru Country code(s): PE Language group: 612 Publisher(s): 00 - 29; 300 - 399; 4000 - 4499; 45000 - 49999; 50 - 99 612-300 612-399 612-4000 612-4499 612-45000 612-49999 612-5000 612-5149 613-0 613-9 Region name: Mauritius Country code(s): MU Language group: 613 Publisher(s): 0 - 9 614-00 614-39 Region name: Lebanon Country code(s): LB Language group: 614 Publisher(s): 00 - 39; 400 - 799; 8000 - 9499; 95000 - 99999 614-400 614-799 614-8000 614-9499 614-95000 614-99999 615-00 615-09 Region name: Hungary Country code(s): HU Language group: 615 Publisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 89999 615-100 615-499 615-5000 615-7999 615-80000 615-89999 616-00 616-19 Region name: Thailand Country code(s): TH Language group: 616 Publisher(s): 00 - 19; 200 - 699; 7000 - 8999; 90000 - 99999 616-200 616-699 616-7000 616-8999 616-90000 616-99999 617-00 617-49 Region name: Ukraine Country code(s): UA Language group: 617 Publisher(s): 00 - 49; 500 - 699; 7000 - 8999; 90000 - 99999 617-500 617-699 617-7000 617-8999 617-90000 617-99999 618-00 618-19 Region name: Greece Country code(s): GR Language group: 618 Publisher(s): 00 - 19; 200 - 499; 5000 - 7999; 80000 - 99999 618-200 618-499 618-5000 618-7999 618-80000 618-99999 619-00 619-14 Region name: Bulgaria Country code(s): BG Language group: 619 Publisher(s): 00 - 14; 150 - 699; 7000 - 8999; 90000 - 99999 619-150 619-699 619-7000 619-8999 619-90000 619-99999 620-0 620-9 Region name: Mauritius Country code(s): MU Language group: 620 Publisher(s): 0 - 9 621-00 621-29 Region name: Philippines Country code(s): PH Language group: 621 Publisher(s): 00 - 29; 400 - 599; 8000 - 8999; 95000 - 99999 621-400 621-599 621-8000 621-8999 621-95000 621-99999 622-00 622-08 Region name: Iran Country code(s): IR Language group: 622 Publisher(s): 00 - 08; 200 - 299; 6000 - 7999; 95000 - 99999 622-200 622-299 622-6000 622-7999 622-95000 622-99999 623-00 623-09 Region name: Indonesia Country code(s): ID Language group: 623 Publisher(s): 00 - 09; 200 - 399; 6000 - 7999; 90000 - 99999 623-200 623-399 623-6000 623-7999 623-90000 623-99999 624-00 624-04 Region name: Sri Lanka Country code(s): LK Language group: 624 Publisher(s): 00 - 04; 200 - 249; 5000 - 5999; 95000 - 99999 624-200 624-249 624-5000 624-5999 624-95000 624-99999 625-00 625-00 Region name: Turkey Country code(s): TR Language group: 625 Publisher(s): 00 - 00; 400 - 449; 7000 - 7999 625-400 625-449 625-7000 625-7999 626-00 626-04 Region name: Taiwan Country code(s): TW Language group: 626 Publisher(s): 00 - 04; 300 - 499; 7000 - 7999; 95000 - 99999 626-300 626-499 626-7000 626-7999 626-95000 626-99999 65-00 65-01 Region name: Brazil Country code(s): BR Language group: 65 Publisher(s): 00 - 01; 250 - 299; 300 - 302; 5000 - 5129; 5500 - 5999; 80000 - 81824; 86000 - 89999; 900000 - 902449; 990000 - 999999 65-250 65-299 65-300 65-302 65-5000 65-5129 65-5500 65-5999 65-80000 65-81824 65-86000 65-89999 65-900000 65-902449 65-990000 65-999999 7-00 7-09 Region name: China, People's Republic Country code(s): CN Language group: 7 Publisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 89999; 900000 - 999999 7-100 7-499 7-5000 7-7999 7-80000 7-89999 7-900000 7-999999 80-00 80-19 Region name: former Czechoslovakia Country code(s): ?? Language group: 80 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 999999 80-200 80-699 80-7000 80-8499 80-85000 80-89999 80-900000 80-999999 80-99900 80-99999 81-00 81-19 Region name: India Country code(s): IN Language group: 81 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 999999 81-200 81-699 81-7000 81-8499 81-85000 81-89999 81-900000 81-999999 82-00 82-19 Region name: Norway Country code(s): NO Language group: 82 Publisher(s): 00 - 19; 200 - 689; 690000 - 699999; 7000 - 8999; 90000 - 98999; 990000 - 999999 82-200 82-689 82-690000 82-699999 82-7000 82-8999 82-90000 82-98999 82-990000 82-999999 83-00 83-19 Region name: Poland Country code(s): PL Language group: 83 Publisher(s): 00 - 19; 200 - 599; 60000 - 69999; 7000 - 8499; 85000 - 89999; 900000 - 999999 83-200 83-599 83-60000 83-69999 83-7000 83-8499 83-85000 83-89999 83-900000 83-999999 84-00 84-13 Region name: Spain Country code(s): ES Language group: 84 Publisher(s): 00 - 13; 140 - 149; 15000 - 19999; 200 - 699; 7000 - 8499; 85000 - 89999; 9000 - 9199; 920000 - 923999; 92400 - 92999; 930000 - 949999; 95000 - 96999; 9700 - 9999 84-1100 84-1199 84-120000 84-129999 84-1300 84-1399 84-140 84-149 84-15000 84-19999 84-200 84-699 84-7000 84-8499 84-85000 84-89999 84-9000 84-9199 84-920000 84-923999 84-92400 84-92999 84-930000 84-949999 84-95000 84-96999 84-9700 84-9999 85-00 85-19 Region name: Brazil Country code(s): BR Language group: 85 Publisher(s): 00 - 19; 200 - 549; 5500 - 5999; 60000 - 69999; 7000 - 8499; 85000 - 89999; 900000 - 959999; 96 - 97; 98000 - 99999 85-200 85-549 85-455000 85-455299 85-45530 85-45599 85-456 85-528 85-52900 85-53199 85-5320 85-5339 85-534 85-539 85-54000 85-54029 85-54030 85-54039 85-540400 85-540499 85-54050 85-54089 85-540900 85-540999 85-54100 85-54399 85-5440 85-5479 85-54800 85-54999 85-5500 85-5999 85-60000 85-69999 85-7000 85-8499 85-85000 85-89999 85-900000 85-959999 85-92500 85-94499 85-9450 85-9599 85-96 85-97 85-98000 85-99999 86-00 86-29 Region name: former Yugoslavia Country code(s): ?? Language group: 86 Publisher(s): 00 - 29; 300 - 599; 6000 - 7999; 80000 - 89999; 900000 - 999999 86-300 86-599 86-6000 86-7999 86-80000 86-89999 86-900000 86-999999 87-00 87-29 Region name: Denmark Country code(s): DK Language group: 87 Publisher(s): 00 - 29; 400 - 649; 7000 - 7999; 85000 - 94999; 970000 - 999999 87-400 87-649 87-7000 87-7999 87-85000 87-94999 87-970000 87-999999 88-00 88-19 Region name: Italy Country code(s): IT Language group: 88 Publisher(s): 00 - 19; 200 - 599; 6000 - 8499; 85000 - 89999; 900000 - 909999; 910 - 929; 9300 - 9399; 940000 - 949999; 95000 - 99999 88-200 88-599 88-31200 88-31499 88-315 88-318 88-31900 88-32299 88-323 88-326 88-3270 88-3389 88-339 88-360 88-3610 88-3629 88-363 88-548 88-5490 88-5549 88-555 88-599 88-6000 88-8499 88-85000 88-89999 88-900000 88-909999 88-910 88-929 88-9270 88-9399 88-940000 88-949999 88-94800 88-99999 89-00 89-24 Region name: Korea, Republic Country code(s): KR Language group: 89 Publisher(s): 00 - 24; 250 - 549; 5500 - 8499; 85000 - 94999; 950000 - 969999; 97000 - 98999; 990 - 999 89-250 89-549 89-5500 89-8499 89-85000 89-94999 89-950000 89-969999 89-97000 89-98999 89-990 89-999 90-00 90-19 Region name: Netherlands Country code(s): NL Language group: 90 Publisher(s): 00 - 19; 200 - 499; 5000 - 6999; 70000 - 79999; 800000 - 849999; 8500 - 8999; 90 - 90; 94 - 94 90-200 90-499 90-5000 90-6999 90-70000 90-79999 90-800000 90-849999 90-8500 90-8999 90-90 90-90 90-94 90-94 91-0 91-1 Region name: Sweden Country code(s): SE Language group: 91 Publisher(s): 0 - 1; 20 - 49; 500 - 649; 7000 - 7999; 85000 - 94999; 970000 - 999999 91-20 91-49 91-500 91-649 91-7000 91-7999 91-85000 91-94999 91-970000 91-999999 92-0 92-5 Region name: International NGO Publishers and EU Organizations Country code(s): ?? Language group: 92 Publisher(s): 0 - 5; 60 - 79; 800 - 899; 9000 - 9499; 95000 - 98999; 990000 - 999999 92-60 92-79 92-800 92-899 92-9000 92-9499 92-95000 92-98999 92-990000 92-999999 93-00 93-09 Region name: India Country code(s): IN Language group: 93 Publisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 94999; 950000 - 999999 93-100 93-499 93-5000 93-7999 93-80000 93-94999 93-950000 93-999999 94-000 94-599 Region name: Netherlands Country code(s): NL Language group: 94 Publisher(s): 000 - 599; 6000 - 8999; 90000 - 99999 94-6000 94-8999 94-90000 94-99999 950-00 950-49 Region name: Argentina Country code(s): AR Language group: 950 Publisher(s): 00 - 49; 500 - 899; 9000 - 9899; 99000 - 99999 950-500 950-899 950-9000 950-9899 950-99000 950-99999 951-0 951-1 Region name: Finland Country code(s): FI Language group: 951 Publisher(s): 0 - 1; 20 - 54; 550 - 889; 8900 - 9499; 95000 - 99999 951-20 951-54 951-550 951-889 951-8900 951-9499 951-95000 951-99999 952-00 952-19 Region name: Finland Country code(s): FI Language group: 952 Publisher(s): 00 - 19; 200 - 499; 5000 - 5999; 60 - 65; 6600 - 6699; 67000 - 69999; 7000 - 7999; 80 - 94; 9500 - 9899; 99000 - 99999 952-200 952-499 952-5000 952-5999 952-60 952-65 952-6600 952-6699 952-67000 952-69999 952-7000 952-7999 952-80 952-94 952-9500 952-9899 952-99000 952-99999 953-0 953-0 Region name: Croatia Country code(s): HR Language group: 953 Publisher(s): 0 - 0; 10 - 14; 150 - 509; 51 - 54; 55000 - 59999; 6000 - 9499; 95000 - 99999 953-10 953-14 953-150 953-509 953-48000 953-49999 953-500 953-500 953-50100 953-50999 953-51 953-54 953-55000 953-59999 953-6000 953-9499 953-95000 953-99999 954-00 954-28 Region name: Bulgaria Country code(s): BG Language group: 954 Publisher(s): 00 - 28; 2900 - 2999; 300 - 799; 8000 - 8999; 90000 - 92999; 9300 - 9999 954-2900 954-2999 954-300 954-799 954-8000 954-8999 954-90000 954-92999 954-9300 954-9999 955-0000 955-1999 Region name: Sri Lanka Country code(s): LK Language group: 955 Publisher(s): 0000 - 1999; 20 - 40; 41000 - 43999; 44000 - 44999; 4500 - 4999; 50000 - 54999; 550 - 749; 7500 - 7999; 8000 - 9499; 95000 - 99999 955-20 955-40 955-3400 955-3549 955-35500 955-35999 955-3600 955-3799 955-38000 955-38999 955-3900 955-4099 955-41000 955-43999 955-4500 955-4999 955-50000 955-54999 955-550 955-749 955-71100 955-71499 955-7150 955-9499 955-95000 955-99999 956-00 956-19 Region name: Chile Country code(s): CL Language group: 956 Publisher(s): 00 - 19; 200 - 699; 7000 - 9999 956-09000 956-09999 956-10 956-19 956-200 956-699 956-6000 956-6999 956-7000 956-9999 957-00 957-02 Region name: Taiwan Country code(s): TW Language group: 957 Publisher(s): 00 - 02; 0300 - 0499; 05 - 19; 2000 - 2099; 21 - 27; 28000 - 30999; 31 - 43; 440 - 819; 8200 - 9699; 97000 - 99999 957-0300 957-0499 957-05 957-19 957-2000 957-2099 957-21 957-27 957-28000 957-30999 957-31 957-43 957-440 957-819 957-8200 957-9699 957-97000 957-99999 958-00 958-56 Region name: Colombia Country code(s): CO Language group: 958 Publisher(s): 00 - 56; 57000 - 59999; 600 - 799; 8000 - 9499; 95000 - 99999 958-490 958-509 958-5100 958-5199 958-52000 958-53999 958-5400 958-5599 958-56000 958-59999 958-600 958-799 958-8000 958-9499 958-95000 958-99999 959-00 959-19 Region name: Cuba Country code(s): CU Language group: 959 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 99999 959-200 959-699 959-7000 959-8499 959-85000 959-99999 960-00 960-19 Region name: Greece Country code(s): GR Language group: 960 Publisher(s): 00 - 19; 200 - 659; 6600 - 6899; 690 - 699; 7000 - 8499; 85000 - 92999; 93 - 93; 9400 - 9799; 98000 - 99999 960-200 960-659 960-6600 960-6899 960-690 960-699 960-7000 960-8499 960-85000 960-92999 960-93 960-93 960-9400 960-9799 960-98000 960-99999 961-00 961-19 Region name: Slovenia Country code(s): SI Language group: 961 Publisher(s): 00 - 19; 200 - 599; 6000 - 8999; 90000 - 94999 961-200 961-599 961-6000 961-8999 961-90000 961-94999 962-00 962-19 Region name: Hong Kong, China Country code(s): HK Language group: 962 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 86999; 8700 - 8999; 900 - 999 962-200 962-699 962-7000 962-8499 962-85000 962-86999 962-8700 962-8999 962-900 962-999 963-00 963-19 Region name: Hungary Country code(s): HU Language group: 963 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 9000 - 9999 963-200 963-699 963-7000 963-8499 963-85000 963-89999 963-9000 963-9999 964-00 964-14 Region name: Iran Country code(s): IR Language group: 964 Publisher(s): 00 - 14; 150 - 249; 2500 - 2999; 300 - 549; 5500 - 8999; 90000 - 96999; 970 - 989; 9900 - 9999 964-150 964-249 964-2500 964-2999 964-300 964-549 964-5500 964-8999 964-90000 964-96999 964-970 964-989 964-9900 964-9999 965-00 965-19 Region name: Israel Country code(s): IL Language group: 965 Publisher(s): 00 - 19; 200 - 599; 7000 - 7999; 90000 - 99999 965-200 965-599 965-7000 965-7999 965-90000 965-99999 966-00 966-12 Region name: Ukraine Country code(s): UA Language group: 966 Publisher(s): 00 - 12; 130 - 139; 14 - 14; 1500 - 1699; 170 - 199; 2000 - 2789; 279 - 289; 2900 - 2999; 300 - 699; 7000 - 8999; 90000 - 90999; 910 - 949; 95000 - 97999; 980 - 999 966-130 966-139 966-14 966-14 966-1500 966-1699 966-170 966-199 966-2000 966-2789 966-279 966-289 966-2900 966-2999 966-300 966-699 966-7000 966-8999 966-90000 966-90999 966-910 966-949 966-95000 966-97999 966-980 966-999 967-00 967-00 Region name: Malaysia Country code(s): MY Language group: 967 Publisher(s): 00 - 00; 0100 - 0999; 10000 - 19999; 300 - 499; 5000 - 5999; 60 - 89; 900 - 989; 9900 - 9989; 99900 - 99999 967-0100 967-0999 967-10000 967-19999 967-2000 967-2499 967-250 967-254 967-2800 967-2999 967-300 967-499 967-5000 967-5999 967-60 967-89 967-900 967-989 967-9900 967-9989 967-99900 967-99999 968-01 968-39 Region name: Mexico Country code(s): MX Language group: 968 Publisher(s): 01 - 39; 400 - 499; 5000 - 7999; 800 - 899; 9000 - 9999 968-400 968-499 968-5000 968-7999 968-800 968-899 968-9000 968-9999 969-0 969-1 Region name: Pakistan Country code(s): PK Language group: 969 Publisher(s): 0 - 1; 20 - 22; 23000 - 23999; 24 - 39; 400 - 749; 7500 - 9999 969-20 969-22 969-210 969-219 969-2200 969-2299 969-23000 969-23999 969-24 969-39 969-400 969-749 969-7500 969-9999 970-01 970-59 Region name: Mexico Country code(s): MX Language group: 970 Publisher(s): 01 - 59; 600 - 899; 9000 - 9099; 91000 - 96999; 9700 - 9999 970-600 970-899 970-9000 970-9099 970-91000 970-96999 970-9700 970-9999 971-000 971-015 Region name: Philippines Country code(s): PH Language group: 971 Publisher(s): 000 - 015; 0160 - 0199; 02 - 02; 0300 - 0599; 06 - 49; 500 - 849; 8500 - 9099; 91000 - 95999; 9600 - 9699; 97 - 98; 9900 - 9999 971-0160 971-0199 971-02 971-02 971-0300 971-0599 971-06 971-49 971-500 971-849 971-8500 971-9099 971-91000 971-95999 971-9600 971-9699 971-97 971-98 971-9900 971-9999 972-0 972-1 Region name: Portugal Country code(s): PT Language group: 972 Publisher(s): 0 - 1; 20 - 54; 550 - 799; 8000 - 9499; 95000 - 99999 972-20 972-54 972-550 972-799 972-8000 972-9499 972-95000 972-99999 973-0 973-0 Region name: Romania Country code(s): RO Language group: 973 Publisher(s): 0 - 0; 100 - 169; 1700 - 1999; 20 - 54; 550 - 759; 7600 - 8499; 85000 - 88999; 8900 - 9499; 95000 - 99999 973-100 973-169 973-1700 973-1999 973-20 973-54 973-550 973-759 973-7600 973-8499 973-85000 973-88999 973-8900 973-9499 973-95000 973-99999 974-00 974-19 Region name: Thailand Country code(s): TH Language group: 974 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 90000 - 94999; 9500 - 9999 974-200 974-699 974-7000 974-8499 974-85000 974-89999 974-90000 974-94999 974-9500 974-9999 975-00000 975-01999 Region name: Turkey Country code(s): TR Language group: 975 Publisher(s): 00000 - 01999; 02 - 24; 250 - 599; 6000 - 9199; 92000 - 98999; 990 - 999 975-02 975-24 975-2400 975-2499 975-250 975-599 975-6000 975-9199 975-92000 975-98999 975-990 975-999 976-0 976-3 Region name: Caribbean Community Country code(s): ?? Language group: 976 Publisher(s): 0 - 3; 40 - 59; 600 - 799; 8000 - 9499; 95000 - 99999 976-40 976-59 976-600 976-799 976-8000 976-9499 976-95000 976-99999 977-00 977-19 Region name: Egypt Country code(s): EG Language group: 977 Publisher(s): 00 - 19; 200 - 499; 5000 - 6999; 700 - 849; 85000 - 89999; 90 - 99 977-200 977-499 977-5000 977-6999 977-700 977-849 977-85000 977-89999 977-90 977-99 977-990 977-999 978-000 978-199 Region name: Nigeria Country code(s): NG Language group: 978 Publisher(s): 000 - 199; 2000 - 2999; 30000 - 79999; 8000 - 8999; 900 - 999 978-2000 978-2999 978-30000 978-79999 978-8000 978-8999 978-900 978-999 979-000 979-099 Region name: Indonesia Country code(s): ID Language group: 979 Publisher(s): 000 - 099; 1000 - 1499; 15000 - 19999; 20 - 29; 3000 - 3999; 400 - 799; 8000 - 9499; 95000 - 99999 979-1000 979-1499 979-15000 979-19999 979-20 979-29 979-3000 979-3999 979-400 979-799 979-8000 979-9499 979-95000 979-99999 980-00 980-19 Region name: Venezuela Country code(s): VE Language group: 980 Publisher(s): 00 - 19; 200 - 599; 6000 - 9999 980-200 980-599 980-6000 980-9999 981-00 981-16 Region name: Singapore Country code(s): SG Language group: 981 Publisher(s): 00 - 16; 17000 - 19999; 200 - 299; 3000 - 3099; 310 - 399; 4000 - 9999 981-17000 981-19999 981-18 981-19 981-200 981-299 981-3000 981-3099 981-310 981-399 981-4000 981-9999 982-00 982-09 Region name: South Pacific Country code(s): ?? Language group: 982 Publisher(s): 00 - 09; 100 - 699; 70 - 89; 9000 - 9799; 98000 - 99999 982-100 982-699 982-70 982-89 982-9000 982-9799 982-98000 982-99999 983-00 983-01 Region name: Malaysia Country code(s): MY Language group: 983 Publisher(s): 00 - 01; 020 - 199; 2000 - 3999; 40000 - 44999; 45 - 49; 50 - 79; 800 - 899; 9000 - 9899; 99000 - 99999 983-020 983-199 983-2000 983-3999 983-40000 983-44999 983-45 983-49 983-50 983-79 983-800 983-899 983-9000 983-9899 983-99000 983-99999 984-00 984-39 Region name: Bangladesh Country code(s): BD Language group: 984 Publisher(s): 00 - 39; 400 - 799; 8000 - 8999; 90000 - 99999 984-400 984-799 984-8000 984-8999 984-90000 984-99999 985-00 985-39 Region name: Belarus Country code(s): BY Language group: 985 Publisher(s): 00 - 39; 400 - 599; 6000 - 8999; 90000 - 99999 985-400 985-599 985-6000 985-8999 985-880 985-899 985-90000 985-99999 986-00 986-11 Region name: Taiwan Country code(s): TW Language group: 986 Publisher(s): 00 - 11; 120 - 559; 5600 - 7999; 80000 - 99999 986-06000 986-06999 986-0700 986-0799 986-08 986-11 986-120 986-559 986-5400 986-7999 986-80000 986-99999 987-00 987-09 Region name: Argentina Country code(s): AR Language group: 987 Publisher(s): 00 - 09; 1000 - 1999; 20000 - 29999; 30 - 35; 3600 - 3999; 4000 - 4199; 42 - 43; 4400 - 4499; 45000 - 48999; 4900 - 4999; 500 - 899; 9000 - 9499; 95000 - 99999 987-1000 987-1999 987-20000 987-29999 987-30 987-35 987-3600 987-3999 987-4000 987-4199 987-42 987-43 987-4400 987-4499 987-45000 987-48999 987-4900 987-4999 987-500 987-899 987-8300 987-8499 987-85 987-89 987-9000 987-9499 987-95000 987-99999 988-00 988-11 Region name: Hong Kong, China Country code(s): HK Language group: 988 Publisher(s): 00 - 11; 12000 - 14999; 15000 - 16999; 17000 - 19999; 200 - 769; 77000 - 79999; 8000 - 9699; 97000 - 99999 988-12000 988-14999 988-200 988-769 988-74000 988-76999 988-77000 988-79999 988-8000 988-9699 988-97000 988-99999 989-0 989-1 Region name: Portugal Country code(s): PT Language group: 989 Publisher(s): 0 - 1; 20 - 54; 550 - 799; 8000 - 9499; 95000 - 99999 989-20 989-54 989-35000 989-36999 989-37 989-52 989-53000 989-54999 989-550 989-799 989-8000 989-9499 989-95000 989-99999 9914-40 9914-44 Region name: Kenya Country code(s): KE Language group: 9914 Publisher(s): 40 - 44; 700 - 749; 9850 - 9999 9914-700 9914-749 9914-9850 9914-9999 9915-40 9915-59 Region name: Uruguay Country code(s): UY Language group: 9915 Publisher(s): 40 - 59; 650 - 799; 9300 - 9999 9915-650 9915-799 9915-9300 9915-9999 9916-0 9916-0 Region name: Estonia Country code(s): EE Language group: 9916 Publisher(s): 0 - 0; 10 - 39; 4 - 4; 600 - 749; 9500 - 9999 9916-10 9916-39 9916-4 9916-4 9916-600 9916-749 9916-9500 9916-9999 9917-0 9917-0 Region name: Bolivia Country code(s): BO Language group: 9917 Publisher(s): 0 - 0; 30 - 34; 600 - 699; 9800 - 9999 9917-30 9917-34 9917-600 9917-699 9917-9800 9917-9999 9918-0 9918-0 Region name: Malta Country code(s): MT Language group: 9918 Publisher(s): 0 - 0; 20 - 29; 600 - 799; 9500 - 9999 9918-20 9918-29 9918-600 9918-799 9918-9500 9918-9999 9919-20 9919-27 Region name: Mongolia Country code(s): MN Language group: 9919 Publisher(s): 20 - 27; 500 - 599; 9500 - 9999 9919-500 9919-599 9919-9500 9919-9999 9920-32 9920-39 Region name: Morocco Country code(s): MA Language group: 9920 Publisher(s): 32 - 39; 550 - 799; 9000 - 9999 9920-550 9920-799 9920-9000 9920-9999 9921-0 9921-0 Region name: Kuwait Country code(s): KW Language group: 9921 Publisher(s): 0 - 0; 30 - 39; 700 - 899; 9700 - 9999 9921-30 9921-39 9921-700 9921-899 9921-9700 9921-9999 9922-20 9922-29 Region name: Iraq Country code(s): IQ Language group: 9922 Publisher(s): 20 - 29; 600 - 799; 9000 - 9999 9922-600 9922-799 9922-9000 9922-9999 9923-0 9923-0 Region name: Jordan Country code(s): JO Language group: 9923 Publisher(s): 0 - 0; 10 - 49; 700 - 899; 9700 - 9999 9923-10 9923-49 9923-700 9923-899 9923-9700 9923-9999 9924-30 9924-39 Region name: Cambodia Country code(s): KH Language group: 9924 Publisher(s): 30 - 39; 500 - 649; 9000 - 9999 9924-500 9924-649 9924-9000 9924-9999 9925-0 9925-2 Region name: Cyprus Country code(s): CY Language group: 9925 Publisher(s): 0 - 2; 30 - 54; 550 - 734; 7350 - 9999 9925-30 9925-54 9925-550 9925-734 9925-7350 9925-9999 9926-0 9926-1 Region name: Bosnia and Herzegovina Country code(s): BA Language group: 9926 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999 9926-20 9926-39 9926-400 9926-799 9926-8000 9926-9999 9927-00 9927-09 Region name: Qatar Country code(s): QA Language group: 9927 Publisher(s): 00 - 09; 100 - 399; 4000 - 4999 9927-100 9927-399 9927-4000 9927-4999 9928-00 9928-09 Region name: Albania Country code(s): AL Language group: 9928 Publisher(s): 00 - 09; 100 - 399; 4000 - 4999 9928-100 9928-399 9928-4000 9928-4999 9929-0 9929-3 Region name: Guatemala Country code(s): GT Language group: 9929 Publisher(s): 0 - 3; 40 - 54; 550 - 799; 8000 - 9999 9929-40 9929-54 9929-550 9929-799 9929-8000 9929-9999 9930-00 9930-49 Region name: Costa Rica Country code(s): CR Language group: 9930 Publisher(s): 00 - 49; 500 - 939; 9400 - 9999 9930-500 9930-939 9930-9400 9930-9999 9931-00 9931-29 Region name: Algeria Country code(s): DZ Language group: 9931 Publisher(s): 00 - 29; 300 - 899; 9000 - 9999 9931-300 9931-899 9931-9000 9931-9999 9932-00 9932-39 Region name: Lao People's Democratic Republic Country code(s): LA Language group: 9932 Publisher(s): 00 - 39; 400 - 849; 8500 - 9999 9932-400 9932-849 9932-8500 9932-9999 9933-0 9933-0 Region name: Syria Country code(s): SY Language group: 9933 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999 9933-10 9933-39 9933-400 9933-899 9933-9000 9933-9999 9934-0 9934-0 Region name: Latvia Country code(s): LV Language group: 9934 Publisher(s): 0 - 0; 10 - 49; 500 - 799; 8000 - 9999 9934-10 9934-49 9934-500 9934-799 9934-8000 9934-9999 9935-0 9935-0 Region name: Iceland Country code(s): IS Language group: 9935 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999 9935-10 9935-39 9935-400 9935-899 9935-9000 9935-9999 9936-0 9936-1 Region name: Afghanistan Country code(s): AF Language group: 9936 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999 9936-20 9936-39 9936-400 9936-799 9936-8000 9936-9999 9937-0 9937-2 Region name: Nepal Country code(s): NP Language group: 9937 Publisher(s): 0 - 2; 30 - 49; 500 - 799; 8000 - 9999 9937-30 9937-49 9937-500 9937-799 9937-8000 9937-9999 9938-00 9938-79 Region name: Tunisia Country code(s): TN Language group: 9938 Publisher(s): 00 - 79; 800 - 949; 9500 - 9999 9938-800 9938-949 9938-9500 9938-9999 9939-0 9939-4 Region name: Armenia Country code(s): AM Language group: 9939 Publisher(s): 0 - 4; 50 - 79; 800 - 899; 9000 - 9999 9939-50 9939-79 9939-800 9939-899 9939-9000 9939-9999 9939-98 9939-99 9940-0 9940-1 Region name: Montenegro Country code(s): ME Language group: 9940 Publisher(s): 0 - 1; 20 - 49; 500 - 899; 9000 - 9999 9940-20 9940-49 9940-500 9940-899 9940-84 9940-86 9940-8700 9940-9999 9941-0 9941-0 Region name: Georgia Country code(s): GE Language group: 9941 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999 9941-10 9941-39 9941-400 9941-899 9941-8 9941-8 9941-9000 9941-9999 9942-00 9942-84 Region name: Ecuador Country code(s): EC Language group: 9942 Publisher(s): 00 - 84; 8500 - 8999; 900 - 984; 9850 - 9999 9942-750 9942-849 9942-8500 9942-8999 9942-900 9942-984 9942-9850 9942-9999 9943-00 9943-29 Region name: Uzbekistan Country code(s): UZ Language group: 9943 Publisher(s): 00 - 29; 300 - 399; 4000 - 9749; 975 - 999 9943-300 9943-399 9943-4000 9943-9749 9943-975 9943-999 9944-0000 9944-0999 Region name: Turkey Country code(s): TR Language group: 9944 Publisher(s): 0000 - 0999; 100 - 499; 5000 - 5999; 60 - 69; 700 - 799; 80 - 89; 900 - 999 9944-100 9944-499 9944-5000 9944-5999 9944-60 9944-69 9944-700 9944-799 9944-80 9944-89 9944-900 9944-999 9945-00 9945-00 Region name: Dominican Republic Country code(s): DO Language group: 9945 Publisher(s): 00 - 00; 010 - 079; 08 - 39; 400 - 569; 57 - 57; 580 - 849; 8500 - 9999 9945-010 9945-079 9945-08 9945-39 9945-400 9945-569 9945-57 9945-57 9945-580 9945-849 9945-80 9945-80 9945-810 9945-849 9945-8500 9945-9999 9946-0 9946-1 Region name: Korea, P.D.R. Country code(s): KP Language group: 9946 Publisher(s): 0 - 1; 20 - 39; 400 - 899; 9000 - 9999 9946-20 9946-39 9946-400 9946-899 9946-9000 9946-9999 9947-0 9947-1 Region name: Algeria Country code(s): DZ Language group: 9947 Publisher(s): 0 - 1; 20 - 79; 800 - 999 9947-20 9947-79 9947-800 9947-999 9948-00 9948-39 Region name: United Arab Emirates Country code(s): AE Language group: 9948 Publisher(s): 00 - 39; 400 - 849; 8500 - 9999 9948-400 9948-849 9948-8500 9948-9999 9949-00 9949-08 Region name: Estonia Country code(s): EE Language group: 9949 Publisher(s): 00 - 08; 090 - 099; 10 - 39; 400 - 699; 70 - 71; 7200 - 7499; 75 - 89; 9000 - 9999 9949-090 9949-099 9949-10 9949-39 9949-400 9949-749 9949-70 9949-71 9949-7200 9949-7499 9949-75 9949-89 9949-9000 9949-9999 9950-00 9950-29 Region name: Palestine Country code(s): PS Language group: 9950 Publisher(s): 00 - 29; 300 - 849; 8500 - 9999 9950-300 9950-849 9950-8500 9950-9999 9951-00 9951-39 Region name: Kosova Country code(s): ?? Language group: 9951 Publisher(s): 00 - 39; 400 - 849; 8500 - 9999 9951-400 9951-849 9951-8500 9951-9999 9952-0 9952-1 Region name: Azerbaijan Country code(s): AZ Language group: 9952 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999 9952-20 9952-39 9952-400 9952-799 9952-8000 9952-9999 9953-0 9953-0 Region name: Lebanon Country code(s): LB Language group: 9953 Publisher(s): 0 - 0; 10 - 39; 400 - 599; 60 - 89; 9000 - 9999 9953-10 9953-39 9953-400 9953-599 9953-60 9953-89 9953-9000 9953-9999 9953-93 9953-96 9953-970 9953-999 9954-0 9954-1 Region name: Morocco Country code(s): MA Language group: 9954 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999 9954-20 9954-39 9954-400 9954-799 9954-8000 9954-9999 9954-99 9954-99 9955-00 9955-39 Region name: Lithuania Country code(s): LT Language group: 9955 Publisher(s): 00 - 39; 400 - 929; 9300 - 9999 9955-400 9955-929 9955-9300 9955-9999 9956-0 9956-0 Region name: Cameroon Country code(s): CM Language group: 9956 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999 9956-10 9956-39 9956-400 9956-899 9956-9000 9956-9999 9957-00 9957-39 Region name: Jordan Country code(s): JO Language group: 9957 Publisher(s): 00 - 39; 400 - 649; 65 - 69; 70 - 84; 8500 - 8799; 88 - 99 9957-400 9957-649 9957-65 9957-69 9957-680 9957-699 9957-70 9957-84 9957-8500 9957-8799 9957-88 9957-99 9958-00 9958-01 Region name: Bosnia and Herzegovina Country code(s): BA Language group: 9958 Publisher(s): 00 - 01; 020 - 029; 0300 - 0399; 040 - 089; 0900 - 0999; 10 - 18; 1900 - 1999; 20 - 49; 500 - 899; 9000 - 9999 9958-020 9958-029 9958-0300 9958-0399 9958-040 9958-089 9958-0900 9958-0999 9958-10 9958-18 9958-1900 9958-1999 9958-20 9958-49 9958-500 9958-899 9958-9000 9958-9999 9959-0 9959-1 Region name: Libya Country code(s): LY Language group: 9959 Publisher(s): 0 - 1; 20 - 79; 800 - 949; 9500 - 9699; 970 - 979; 98 - 99 9959-20 9959-79 9959-800 9959-949 9959-9500 9959-9699 9959-970 9959-979 9959-98 9959-99 9960-00 9960-59 Region name: Saudi Arabia Country code(s): SA Language group: 9960 Publisher(s): 00 - 59; 600 - 899; 9000 - 9999 9960-600 9960-899 9960-9000 9960-9999 9961-0 9961-2 Region name: Algeria Country code(s): DZ Language group: 9961 Publisher(s): 0 - 2; 30 - 69; 700 - 949; 9500 - 9999 9961-30 9961-69 9961-700 9961-949 9961-9500 9961-9999 9962-00 9962-54 Region name: Panama Country code(s): PA Language group: 9962 Publisher(s): 00 - 54; 5500 - 5599; 56 - 59; 600 - 849; 8500 - 9999 9962-5500 9962-5599 9962-56 9962-59 9962-600 9962-849 9962-8500 9962-9999 9963-0 9963-1 Region name: Cyprus Country code(s): CY Language group: 9963 Publisher(s): 0 - 1; 2000 - 2499; 250 - 279; 2800 - 2999; 30 - 54; 550 - 734; 7350 - 7499; 7500 - 9999 9963-2000 9963-2499 9963-250 9963-279 9963-2800 9963-2999 9963-30 9963-54 9963-550 9963-734 9963-7350 9963-7499 9963-7500 9963-9999 9964-0 9964-6 Region name: Ghana Country code(s): GH Language group: 9964 Publisher(s): 0 - 6; 70 - 94; 950 - 999 9964-70 9964-94 9964-950 9964-999 9965-00 9965-39 Region name: Kazakhstan Country code(s): KZ Language group: 9965 Publisher(s): 00 - 39; 400 - 899; 9000 - 9999 9965-400 9965-899 9965-9000 9965-9999 9966-000 9966-149 Region name: Kenya Country code(s): KE Language group: 9966 Publisher(s): 000 - 149; 1500 - 1999; 20 - 69; 7000 - 7499; 750 - 959; 9600 - 9999 9966-14 9966-14 9966-1500 9966-1999 9966-20 9966-69 9966-7000 9966-7499 9966-750 9966-959 9966-8210 9966-8249 9966-825 9966-825 9966-8260 9966-8289 9966-829 9966-959 9966-9600 9966-9999 9967-00 9967-39 Region name: Kyrgyz Republic Country code(s): KG Language group: 9967 Publisher(s): 00 - 39; 400 - 899; 9000 - 9999 9967-400 9967-899 9967-9000 9967-9999 9968-00 9968-49 Region name: Costa Rica Country code(s): CR Language group: 9968 Publisher(s): 00 - 49; 500 - 939; 9400 - 9999 9968-500 9968-939 9968-9400 9968-9999 9970-00 9970-39 Region name: Uganda Country code(s): UG Language group: 9970 Publisher(s): 00 - 39; 400 - 899; 9000 - 9999 9970-400 9970-899 9970-9000 9970-9999 9971-0 9971-5 Region name: Singapore Country code(s): SG Language group: 9971 Publisher(s): 0 - 5; 60 - 89; 900 - 989; 9900 - 9999 9971-60 9971-89 9971-900 9971-989 9971-9900 9971-9999 9972-00 9972-09 Region name: Peru Country code(s): PE Language group: 9972 Publisher(s): 00 - 09; 1 - 1; 200 - 249; 2500 - 2999; 30 - 59; 600 - 899; 9000 - 9999 9972-1 9972-1 9972-200 9972-249 9972-2500 9972-2999 9972-30 9972-59 9972-600 9972-899 9972-9000 9972-9999 9973-00 9973-05 Region name: Tunisia Country code(s): TN Language group: 9973 Publisher(s): 00 - 05; 060 - 089; 0900 - 0999; 10 - 69; 700 - 969; 9700 - 9999 9973-060 9973-089 9973-0900 9973-0999 9973-10 9973-69 9973-700 9973-969 9973-9700 9973-9999 9974-0 9974-2 Region name: Uruguay Country code(s): UY Language group: 9974 Publisher(s): 0 - 2; 30 - 54; 550 - 749; 7500 - 9099; 91 - 94; 95 - 99 9974-30 9974-54 9974-550 9974-749 9974-7500 9974-9099 9974-880 9974-909 9974-91 9974-94 9974-95 9974-99 9975-0 9975-0 Region name: Moldova Country code(s): MD Language group: 9975 Publisher(s): 0 - 0; 100 - 299; 3000 - 3999; 4000 - 4499; 45 - 89; 900 - 949; 9500 - 9999 9975-100 9975-299 9975-3000 9975-3999 9975-4000 9975-4499 9975-45 9975-89 9975-900 9975-949 9975-9500 9975-9999 9976-0 9976-5 Region name: Tanzania Country code(s): TZ Language group: 9976 Publisher(s): 0 - 5; 60 - 89; 900 - 989; 9900 - 9999 9976-5000 9976-5799 9976-580 9976-589 9976-59 9976-89 9976-900 9976-989 9976-9900 9976-9999 9977-00 9977-89 Region name: Costa Rica Country code(s): CR Language group: 9977 Publisher(s): 00 - 89; 900 - 989; 9900 - 9999 9977-900 9977-989 9977-9900 9977-9999 9978-00 9978-29 Region name: Ecuador Country code(s): EC Language group: 9978 Publisher(s): 00 - 29; 300 - 399; 40 - 94; 950 - 989; 9900 - 9999 9978-300 9978-399 9978-40 9978-94 9978-950 9978-989 9978-9900 9978-9999 9979-0 9979-4 Region name: Iceland Country code(s): IS Language group: 9979 Publisher(s): 0 - 4; 50 - 64; 650 - 659; 66 - 75; 760 - 899; 9000 - 9999 9979-50 9979-64 9979-650 9979-659 9979-66 9979-75 9979-760 9979-899 9979-9000 9979-9999 9980-0 9980-3 Region name: Papua New Guinea Country code(s): PG Language group: 9980 Publisher(s): 0 - 3; 40 - 89; 900 - 989; 9900 - 9999 9980-40 9980-89 9980-900 9980-989 9980-9900 9980-9999 9981-00 9981-09 Region name: Morocco Country code(s): MA Language group: 9981 Publisher(s): 00 - 09; 100 - 159; 1600 - 1999; 20 - 79; 800 - 949; 9500 - 9999 9981-100 9981-159 9981-1600 9981-1999 9981-20 9981-79 9981-800 9981-949 9981-9500 9981-9999 9982-00 9982-79 Region name: Zambia Country code(s): ZM Language group: 9982 Publisher(s): 00 - 79; 800 - 989; 9900 - 9999 9982-800 9982-989 9982-9900 9982-9999 9983-80 9983-94 Region name: Gambia Country code(s): GM Language group: 9983 Publisher(s): 80 - 94; 950 - 989; 9900 - 9999 9983-950 9983-989 9983-9900 9983-9999 9984-00 9984-49 Region name: Latvia Country code(s): LV Language group: 9984 Publisher(s): 00 - 49; 500 - 899; 9000 - 9999 9984-500 9984-899 9984-9000 9984-9999 9985-0 9985-4 Region name: Estonia Country code(s): EE Language group: 9985 Publisher(s): 0 - 4; 50 - 79; 800 - 899; 9000 - 9999 9985-50 9985-79 9985-800 9985-899 9985-9000 9985-9999 9986-00 9986-39 Region name: Lithuania Country code(s): LT Language group: 9986 Publisher(s): 00 - 39; 400 - 899; 9000 - 9399; 940 - 969; 97 - 99 9986-400 9986-899 9986-9000 9986-9399 9986-940 9986-969 9986-97 9986-99 9987-00 9987-39 Region name: Tanzania Country code(s): TZ Language group: 9987 Publisher(s): 00 - 39; 400 - 879; 8800 - 9999 9987-400 9987-879 9987-8800 9987-9999 9988-0 9988-2 Region name: Ghana Country code(s): GH Language group: 9988 Publisher(s): 0 - 2; 30 - 54; 550 - 749; 7500 - 9999 9988-40 9988-54 9988-550 9988-749 9988-7500 9988-9999 9989-0 9989-0 Region name: Macedonia Country code(s): MK Language group: 9989 Publisher(s): 0 - 0; 100 - 199; 2000 - 2999; 30 - 59; 600 - 949; 9500 - 9999 9989-100 9989-199 9989-2000 9989-2999 9989-30 9989-59 9989-600 9989-949 9989-9500 9989-9999 99901-00 99901-49 Region name: Bahrain Country code(s): BH Language group: 99901 Publisher(s): 00 - 49; 500 - 799; 80 - 99 99901-500 99901-799 99901-80 99901-99 99903-0 99903-1 Region name: Mauritius Country code(s): MU Language group: 99903 Publisher(s): 0 - 1; 20 - 89; 900 - 999 99903-20 99903-89 99903-900 99903-999 99904-0 99904-5 Region name: Curacao Country code(s): ?? Language group: 99904 Publisher(s): 0 - 5; 60 - 89; 900 - 999 99904-60 99904-89 99904-900 99904-999 99905-0 99905-3 Region name: Bolivia Country code(s): BO Language group: 99905 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99905-40 99905-79 99905-800 99905-999 99906-0 99906-2 Region name: Kuwait Country code(s): KW Language group: 99906 Publisher(s): 0 - 2; 30 - 59; 600 - 699; 70 - 89; 90 - 94; 950 - 999 99906-30 99906-59 99906-600 99906-699 99906-70 99906-89 99906-90 99906-94 99906-950 99906-999 99908-0 99908-0 Region name: Malawi Country code(s): MW Language group: 99908 Publisher(s): 0 - 0; 10 - 89; 900 - 999 99908-10 99908-89 99908-900 99908-999 99909-0 99909-3 Region name: Malta Country code(s): MT Language group: 99909 Publisher(s): 0 - 3; 40 - 94; 950 - 999 99909-40 99909-94 99909-950 99909-999 99910-0 99910-2 Region name: Sierra Leone Country code(s): SL Language group: 99910 Publisher(s): 0 - 2; 30 - 89; 900 - 999 99910-30 99910-89 99910-900 99910-999 99911-00 99911-59 Region name: Lesotho Country code(s): LS Language group: 99911 Publisher(s): 00 - 59; 600 - 999 99911-600 99911-999 99912-0 99912-3 Region name: Botswana Country code(s): BW Language group: 99912 Publisher(s): 0 - 3; 400 - 599; 60 - 89; 900 - 999 99912-400 99912-599 99912-60 99912-89 99912-900 99912-999 99913-0 99913-2 Region name: Andorra Country code(s): AD Language group: 99913 Publisher(s): 0 - 2; 30 - 35; 600 - 604 99913-30 99913-35 99913-600 99913-604 99914-0 99914-4 Region name: Suriname Country code(s): SR Language group: 99914 Publisher(s): 0 - 4; 50 - 89; 900 - 999 99914-50 99914-89 99914-7 99914-7 99914-80 99914-89 99914-900 99914-999 99915-0 99915-4 Region name: Maldives Country code(s): MV Language group: 99915 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99915-50 99915-79 99915-800 99915-999 99916-0 99916-2 Region name: Namibia Country code(s): NA Language group: 99916 Publisher(s): 0 - 2; 30 - 69; 700 - 999 99916-30 99916-69 99916-700 99916-999 99917-0 99917-2 Region name: Brunei Darussalam Country code(s): BN Language group: 99917 Publisher(s): 0 - 2; 30 - 89; 900 - 999 99917-30 99917-89 99917-890 99917-999 99918-0 99918-3 Region name: Faroe Islands Country code(s): FO Language group: 99918 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99918-40 99918-79 99918-800 99918-999 99919-0 99919-2 Region name: Benin Country code(s): BJ Language group: 99919 Publisher(s): 0 - 2; 300 - 399; 40 - 69; 70 - 79; 800 - 849; 850 - 899; 900 - 999 99919-300 99919-399 99919-40 99919-69 99919-800 99919-849 99920-0 99920-4 Region name: Andorra Country code(s): AD Language group: 99920 Publisher(s): 0 - 4; 50 - 89; 900 - 999 99920-50 99920-89 99920-900 99920-999 99921-0 99921-1 Region name: Qatar Country code(s): QA Language group: 99921 Publisher(s): 0 - 1; 20 - 69; 700 - 799; 8 - 8; 90 - 99 99921-20 99921-69 99921-700 99921-799 99921-8 99921-8 99921-90 99921-99 99922-0 99922-3 Region name: Guatemala Country code(s): GT Language group: 99922 Publisher(s): 0 - 3; 40 - 69; 700 - 999 99922-40 99922-69 99922-700 99922-999 99923-0 99923-1 Region name: El Salvador Country code(s): SV Language group: 99923 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99923-20 99923-79 99923-800 99923-999 99924-0 99924-1 Region name: Nicaragua Country code(s): NI Language group: 99924 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99924-20 99924-79 99924-800 99924-999 99925-0 99925-3 Region name: Paraguay Country code(s): PY Language group: 99925 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99925-10 99925-19 99925-200 99925-299 99925-3 99925-3 99925-40 99925-79 99925-800 99925-999 99926-0 99926-0 Region name: Honduras Country code(s): HN Language group: 99926 Publisher(s): 0 - 0; 10 - 59; 600 - 869; 87 - 89; 90 - 99 99926-10 99926-59 99926-600 99926-869 99926-87 99926-89 99926-90 99926-99 99927-0 99927-2 Region name: Albania Country code(s): AL Language group: 99927 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99927-30 99927-59 99927-600 99927-999 99928-0 99928-0 Region name: Georgia Country code(s): GE Language group: 99928 Publisher(s): 0 - 0; 10 - 79; 800 - 999 99928-10 99928-79 99928-800 99928-999 99929-0 99929-4 Region name: Mongolia Country code(s): MN Language group: 99929 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99929-50 99929-79 99929-800 99929-999 99930-0 99930-4 Region name: Armenia Country code(s): AM Language group: 99930 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99930-50 99930-79 99930-800 99930-999 99931-0 99931-4 Region name: Seychelles Country code(s): SC Language group: 99931 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99931-50 99931-79 99931-800 99931-999 99932-0 99932-0 Region name: Malta Country code(s): MT Language group: 99932 Publisher(s): 0 - 0; 10 - 59; 600 - 699; 7 - 7; 80 - 99 99932-10 99932-59 99932-600 99932-699 99932-7 99932-7 99932-80 99932-99 99933-0 99933-2 Region name: Nepal Country code(s): NP Language group: 99933 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99933-30 99933-59 99933-600 99933-999 99934-0 99934-1 Region name: Dominican Republic Country code(s): DO Language group: 99934 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99934-20 99934-79 99934-800 99934-999 99935-0 99935-2 Region name: Haiti Country code(s): HT Language group: 99935 Publisher(s): 0 - 2; 30 - 59; 600 - 699; 7 - 8; 90 - 99 99935-30 99935-59 99935-600 99935-699 99935-7 99935-8 99935-90 99935-99 99936-0 99936-0 Region name: Bhutan Country code(s): BT Language group: 99936 Publisher(s): 0 - 0; 10 - 59; 600 - 999 99936-10 99936-59 99936-600 99936-999 99937-0 99937-1 Region name: Macau Country code(s): MO Language group: 99937 Publisher(s): 0 - 1; 20 - 59; 600 - 999 99937-20 99937-59 99937-600 99937-999 99938-0 99938-1 Region name: Srpska, Republic of Country code(s): ?? Language group: 99938 Publisher(s): 0 - 1; 20 - 59; 600 - 899; 90 - 99 99938-20 99938-59 99938-600 99938-899 99938-90 99938-99 99939-0 99939-5 Region name: Guatemala Country code(s): GT Language group: 99939 Publisher(s): 0 - 5; 60 - 89; 900 - 999 99939-60 99939-89 99939-900 99939-999 99940-0 99940-0 Region name: Georgia Country code(s): GE Language group: 99940 Publisher(s): 0 - 0; 10 - 69; 700 - 999 99940-10 99940-69 99940-700 99940-999 99941-0 99941-2 Region name: Armenia Country code(s): AM Language group: 99941 Publisher(s): 0 - 2; 30 - 79; 800 - 999 99941-30 99941-79 99941-800 99941-999 99942-0 99942-4 Region name: Sudan Country code(s): SD Language group: 99942 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99942-50 99942-79 99942-800 99942-999 99943-0 99943-2 Region name: Albania Country code(s): AL Language group: 99943 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99943-30 99943-59 99943-600 99943-999 99944-0 99944-4 Region name: Ethiopia Country code(s): ET Language group: 99944 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99944-50 99944-79 99944-800 99944-999 99945-0 99945-5 Region name: Namibia Country code(s): NA Language group: 99945 Publisher(s): 0 - 5; 60 - 89; 900 - 999 99945-50 99945-89 99945-900 99945-999 99946-0 99946-2 Region name: Nepal Country code(s): NP Language group: 99946 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99946-30 99946-59 99946-600 99946-999 99947-0 99947-2 Region name: Tajikistan Country code(s): TJ Language group: 99947 Publisher(s): 0 - 2; 30 - 69; 700 - 999 99947-30 99947-69 99947-700 99947-999 99948-0 99948-4 Region name: Eritrea Country code(s): ER Language group: 99948 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99948-50 99948-79 99948-800 99948-999 99949-0 99949-1 Region name: Mauritius Country code(s): MU Language group: 99949 Publisher(s): 0 - 1; 20 - 89; 900 - 999 99949-20 99949-89 99949-900 99949-999 99950-0 99950-4 Region name: Cambodia Country code(s): KH Language group: 99950 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99950-50 99950-79 99950-800 99950-999 99952-0 99952-4 Region name: Mali Country code(s): ML Language group: 99952 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99952-50 99952-79 99952-800 99952-999 99953-0 99953-2 Region name: Paraguay Country code(s): PY Language group: 99953 Publisher(s): 0 - 2; 30 - 79; 800 - 939; 94 - 99 99953-30 99953-79 99953-800 99953-939 99953-94 99953-99 99954-0 99954-2 Region name: Bolivia Country code(s): BO Language group: 99954 Publisher(s): 0 - 2; 30 - 69; 700 - 879; 88 - 99 99954-30 99954-69 99954-700 99954-879 99954-88 99954-99 99955-0 99955-1 Region name: Srpska, Republic of Country code(s): ?? Language group: 99955 Publisher(s): 0 - 1; 20 - 59; 600 - 799; 80 - 99 99955-20 99955-59 99955-600 99955-799 99955-80 99955-99 99956-00 99956-59 Region name: Albania Country code(s): AL Language group: 99956 Publisher(s): 00 - 59; 600 - 859; 86 - 99 99956-600 99956-859 99956-86 99956-99 99957-0 99957-1 Region name: Malta Country code(s): MT Language group: 99957 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99957-20 99957-79 99957-800 99957-999 99957-95 99957-99 99958-0 99958-4 Region name: Bahrain Country code(s): BH Language group: 99958 Publisher(s): 0 - 4; 50 - 93; 940 - 949; 950 - 999 99958-50 99958-93 99958-940 99958-949 99958-950 99958-999 99959-0 99959-2 Region name: Luxembourg Country code(s): LU Language group: 99959 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99959-30 99959-59 99959-600 99959-999 99960-070 99960-099 Region name: Malawi Country code(s): MW Language group: 99960 Publisher(s): 070 - 099; 10 - 94; 950 - 999 99960-10 99960-94 99960-950 99960-999 99961-0 99961-3 Region name: El Salvador Country code(s): SV Language group: 99961 Publisher(s): 0 - 3; 40 - 89; 900 - 999 99961-300 99961-369 99961-37 99961-89 99961-900 99961-999 99962-0 99962-4 Region name: Mongolia Country code(s): MN Language group: 99962 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99962-50 99962-79 99962-800 99962-999 99963-00 99963-49 Region name: Cambodia Country code(s): KH Language group: 99963 Publisher(s): 00 - 49; 500 - 919; 92 - 99 99963-500 99963-919 99963-92 99963-99 99964-0 99964-1 Region name: Nicaragua Country code(s): NI Language group: 99964 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99964-20 99964-79 99964-800 99964-999 99965-0 99965-3 Region name: Macau Country code(s): MO Language group: 99965 Publisher(s): 0 - 3; 40 - 62; 630 - 999 99965-300 99965-359 99965-36 99965-62 99965-630 99965-999 99966-0 99966-2 Region name: Kuwait Country code(s): KW Language group: 99966 Publisher(s): 0 - 2; 30 - 69; 700 - 799; 80 - 94 99966-30 99966-69 99966-700 99966-799 99966-80 99966-94 99966-970 99966-999 99967-0 99967-1 Region name: Paraguay Country code(s): PY Language group: 99967 Publisher(s): 0 - 1; 20 - 59; 600 - 899 99967-10 99967-59 99967-600 99967-899 99968-0 99968-3 Region name: Botswana Country code(s): BW Language group: 99968 Publisher(s): 0 - 3; 400 - 599; 60 - 89; 900 - 999 99968-400 99968-599 99968-60 99968-89 99968-900 99968-999 99969-0 99969-4 Region name: Oman Country code(s): OM Language group: 99969 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99969-50 99969-79 99969-800 99969-999 99970-0 99970-4 Region name: Haiti Country code(s): HT Language group: 99970 Publisher(s): 0 - 4; 50 - 89; 900 - 999 99970-50 99970-89 99970-900 99970-999 99971-0 99971-5 Region name: Myanmar Country code(s): MM Language group: 99971 Publisher(s): 0 - 5; 60 - 84; 850 - 999 99971-40 99971-84 99971-850 99971-999 99972-0 99972-4 Region name: Faroe Islands Country code(s): FO Language group: 99972 Publisher(s): 0 - 4; 50 - 89; 900 - 999 99972-50 99972-89 99972-900 99972-999 99973-0 99973-3 Region name: Mongolia Country code(s): MN Language group: 99973 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99973-40 99973-79 99973-800 99973-999 99974-0 99974-0 Region name: Bolivia Country code(s): BO Language group: 99974 Publisher(s): 0 - 0; 10 - 25; 260 - 399; 40 - 63; 640 - 649; 65 - 79; 800 - 999 99974-10 99974-25 99974-260 99974-399 99974-40 99974-79 Region name: Bolivia Country code(s): BO Language group: 99974 Publisher(s): 40 - 79; 800 - 999 99974-640 99974-649 99974-65 99974-79 99974-800 99974-999 99975-0 99975-3 Region name: Tajikistan Country code(s): TJ Language group: 99975 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99975-300 99975-399 99975-40 99975-79 99975-800 99975-999 99976-0 99976-1 Region name: Srpska, Republic of Country code(s): ?? Language group: 99976 Publisher(s): 0 - 1; 20 - 59; 600 - 799 99976-20 99976-59 99976-600 99976-799 99976-900 99976-999 99977-0 99977-1 Region name: Rwanda Country code(s): RW Language group: 99977 Publisher(s): 0 - 1; 40 - 69; 700 - 799 99977-40 99977-69 99977-700 99977-799 99977-995 99977-999 99978-0 99978-4 Region name: Mongolia Country code(s): MN Language group: 99978 Publisher(s): 0 - 4; 50 - 69; 700 - 999 99978-50 99978-69 99978-700 99978-999 99979-0 99979-4 Region name: Honduras Country code(s): HN Language group: 99979 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99979-50 99979-79 99979-800 99979-999 99980-0 99980-0 Region name: Bhutan Country code(s): BT Language group: 99980 Publisher(s): 0 - 0; 30 - 59; 800 - 999 99980-30 99980-59 99980-800 99980-999 99981-0 99981-1 Region name: Macau Country code(s): MO Language group: 99981 Publisher(s): 0 - 1; 30 - 59; 800 - 999 99981-30 99981-59 99981-800 99981-999 99982-0 99982-0 Region name: Benin Country code(s): BJ Language group: 99982 Publisher(s): 0 - 0; 50 - 65; 900 - 979 99982-50 99982-65 99982-900 99982-979 99983-0 99983-0 Region name: El Salvador Country code(s): SV Language group: 99983 Publisher(s): 0 - 0; 50 - 69; 950 - 999 99983-50 99983-69 99983-950 99983-999 99985-55 99985-59 Region name: Tajikistan Country code(s): TJ Language group: 99985 Publisher(s): 55 - 59; 950 - 999 99985-950 99985-999 99986-0 99986-0 Region name: Myanmar Country code(s): MM Language group: 99986 Publisher(s): 0 - 0; 50 - 69; 950 - 999 99986-50 99986-69 99986-950 99986-999 99987-850 99987-999 Region name: Luxembourg Country code(s): LU Language group: 99987 Publisher(s): 850 - 999 10-00 10-19 Region name: France Country code(s): FR Language group: 10 Publisher(s): 00 - 19; 200 - 699; 7000 - 8999; 90000 - 97599; 976000 - 999999 10-200 10-699 10-7000 10-8999 10-90000 10-97599 10-976000 10-999999 11-00 11-24 Region name: Korea, Republic Country code(s): KR Language group: 11 Publisher(s): 00 - 24; 250 - 549; 5500 - 8499; 85000 - 94999; 950000 - 999999 11-250 11-549 11-5500 11-8499 11-85000 11-94999 11-950000 11-999999 12-200 12-200 Region name: Italy Country code(s): IT Language group: 12 Publisher(s): 200 - 200 12-5950 12-5999 12-80000 12-84999 8-200 8-219 Region name: United States Country code(s): US Language group: 8 Publisher(s): 200 - 219; 5500 - 7499; 9850000 - 9850009 8-5500 8-7499 8-9850000 8-9850009 0-315 0-315 [24-Sep-2015] Updated list from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 0-458 0-459 0-612 0-612 0-616 0-616 0-660 0-660 0-662 0-662 0-665 0-665 0-7700 0-7799 0-86488 0-86507 0-88500 0-88668 0-88750 0-88999 0-919000 0-921999 0-9680000 0-9699999 0-9730000 0-9739999 0-9583000 0-9583049 Region name: Gibraltar Country code(s): GI Language group: 0 Publisher(s): 9583000 - 9583049 0-9633400 0-9633499 Region name: Puerto Rico Country code(s): PR Language group: 0 Publisher(s): 9633400 - 9633499 0-620 0-629 Region name: South Africa Country code(s): ZA Language group: 0 Publisher(s): 620 - 629 ; 636 - 639 ; 7954 - 7973 ; 7975 - 7999 ; 86483 - 86487 ; 86808 - 86817 ; 86843 - 86852 ; 86873 - 86887 ; 86950 - 86999 ; 907980 - 907999 ; 908352 - 908409 ; 909060 - 909079 ; 909230 - 909239 ; 947000 - 947059 ; 949934 - 949998 ; 9583050 - 9583249 ; 9583750 - 9585149 0-636 0-639 0-7021 0-7021 [24-Sep-2015] Addition from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 0-7954 0-7973 0-7975 0-7977 0-7979 0-7998 0-9583750 0-9585149 Region name: Swaziland Country code(s): SZ Language group: 0 Publisher(s): ??????? - ??????? 0-7974 0-7974 Region name: Zimbabwe Country code(s): ZW Language group: 0 Publisher(s): 7974 ; 86918 - 86929 ; 908300 - 908305 ; 949225 - 949933 0-86918 0-86929 0-908300 0-908305 0-949225 0-949933 1-86250 1-86799 1-875100 1-877099 1-920680 1-926429 1-894000 1-896999 [24-Sep-2015] Additions from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 1-897000 1-897579 1-919655 1-919679 Region name: Gibraltar Country code(s): GI Language group: 1 Publisher(s): 919655 - 919679 1-86930 1-86979 Region name: New Zealand Country code(s): NZ Language group: 1 Publisher(s): 86930 - 86979 ; 877130 - 877579 1-877130 1-877579 1-881700 1-881749 Region name: Puerto Rico Country code(s): PR Language group: 1 Publisher(s): 881700 - 881749 1-4150 1-4154 [24-Sep-2015] Additions from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 1-77000 1-77019 1-919680 1-920679 Region name: United Kingdom Country code(s): GB Language group: 1 Publisher(s): 84000 - 86249 ; 869800 - 874799 ; 897580 - 919679 1-4050 1-4099 [24-Sep-2015] Updated list from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 1-84000 1-85122 1-85124 1-86249 1-871032 1-874799 1-897580 1-919654 1-952246 1-952246 1-987807 1-987807 1-4000 1-5499 1-4100 1-4149 1-55500 1-59999 1-871031 1-871031 1-877580 1-897579 1-928530 1-952245 1-952247 1-987806 1-987808 1-998999 1-77900 1-77919 Region name: Zimbabwe Country code(s): ZW Language group: 1 Publisher(s): 77900 - 77919 ; 877100 - 877129 1-877100 1-877129 2-500 2-549 Region name: Belgium Country code(s): BE Language group: 2 Publisher(s): 500 - 549 ; 8000 - 8249 ; 87000 - 87949 ; 930000 - 939999 ; 9600000 - 9699999 2-8000 2-8249 2-87000 2-87949 2-930000 2-939999 2-9600000 2-9699999 2-550 2-599 Region name: Canada Country code(s): CA Language group: 2 Publisher(s): 550 - 599 ; 7600 - 7653 ; 7655 - 7776 ; 7778 - 7999 ; 89000 - 89999 ; 920000 - 929999 ; 9800000 - 9999999 2-7600 2-7653 2-7655 2-7776 2-7778 2-7999 2-89000 2-89999 2-920000 2-929999 2-9800000 2-9999999 2-87950 2-87999 2-919769 2-919999 2-9599769 2-9599999 2-600 2-699 Region name: Switzerland (French speaking) Country code(s): CH Language group: 2 Publisher(s): 600 - 699 ; 8250 - 8399 ; 88000 - 88999 ; 940000 - 949999 ; 9700000 - 9799999 2-8250 2-8399 2-88000 2-88999 2-940000 2-949999 2-9700000 2-9799999 3-01 3-02 Region name: Austria Country code(s): AT Language group: 3 Publisher(s): 01 - 02 ; 200 - 249 ; 7000 - 7149 ; 85000 - 85499 ; 900000 - 904999 ; 9500000 - 9519999 3-05 3-19 3-320 3-379 3-400 3-699 3-7300 3-8499 [24-Sep-2015] Updates from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 3-86000 3-89999 3-250 3-319 3-7150 3-7299 3-85500 3-85999 3-905000 3-909999 3-9520000 3-9539999 5-00 5-19 Region name: Armenia Country code(s): AM Language group: 5 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 89999 ; 800000 - 919999 5-800000 5-919999 5-950000 5-979999 5-9800000 5-9999999 86-7000 86-7999 88-7000 88-8499 952-89 952-94 953-96000 953-99999 954-9500 954-9999 955-0 955-1 Region name: Sri Lanka Country code(s): LK Language group: 955 Publisher(s): 0 - 1 ; 20 - 54 ; 550 - 799 ; 8000 - 9499 ; 95000 - 99999 955-8000 955-9499 957-30000 957-30999 966-500 966-699 967-0 967-5 Region name: Malaysia Country code(s): MY Language group: 967 Publisher(s): 0 - 5 ; 60 - 89 ; 900 - 989 ; 9900 - 9989 ; 99900 - 99999 968-10 968-39 Region name: Mexico Country code(s): MX Language group: 968 Publisher(s): 10 - 39 ; 400 - 499 ; 5000 - 7999 ; 800 - 899 969-8000 969-9999 970-00 970-59 Region name: Mexico Country code(s): MX Language group: 970 Publisher(s): 00 - 59 ; 600 - 899 ; 9000 - 9099 ; 91000 - 99999 971-00 971-49 Region name: Philippines Country code(s): PH Language group: 971 Publisher(s): 00 - 49 ; 500 - 849 ; 8500 - 9099 ; 91000 - 99999 973-8000 973-8499 975-00 975-29 Region name: Turkey Country code(s): TR Language group: 975 Publisher(s): 00 - 29 ; 300 - 599 ; 6000 - 9199 ; 92000 - 97999 975-300 975-599 977-70000 977-99999 986-200 986-559 986-5600 986-7999 986-8000 986-99999 9955-9000 9955-9999 9958-0 9958-0 Region name: Bosnia and Herzegovina Country code(s): BA Language group: 9958 Publisher(s): 0 ; 10 - 49 ; 500 - 899 ; 9000 - 9999 9961-50 9961-79 9961-800 9961-949 9966-00 9966-69 Region name: Kenya Country code(s): KE Language group: 9966 Publisher(s): 00 - 69 ; 800 - 959 ; 9600 - 9999 9966-800 9966-959 9968-0 9968-0 Region name: Costa Rica Country code(s): CR Language group: 9968 Publisher(s): 0 ; 10 - 69 ; 700 - 969 ; 9700 - 9999 9968-10 9968-69 9968-700 9968-969 9968-9700 9968-9999 9972-40 9972-59 9973-0 9973-0 Region name: Tunisia Country code(s): TN Language group: 9973 Publisher(s): 0 ; 10 - 69 ; 700 - 969 ; 9700 - 9999 9975-50 9975-89 9976-60 9976-89 9976-9990 9976-9999 9988-30 9988-54 9989-8500 9989-9999 99917-900 99917-999 99918-900 99918-999 99919-900 99919-999 99922-50 99922-79 99922-800 99922-900 99924-30 99924-79 99938-30 99938-59 1-00 1-09 Region name: English language Country code(s): ?? Language group: 1 Publisher(s): 00 - 09; 100 - 399; 4000 - 5499; 55000 - 86979; 869800 - 998999; 9990000 - 9999999 1-9990000 1-9999999 3-99000 3-99499 3-99500 3-99999 602-0800 602-0899 602-0900 602-1099 602-1100 602-1199 602-1200 602-1399 602-18000 602-18999 602-19000 602-19999 602-6750 602-6999 602-8000 602-9499 605-01 605-02 Region name: Turkey Country code(s): TR Language group: 605 Publisher(s): 01 - 02; 030 - 039; 04 - 09; 100 - 399; 4000 - 5999; 60000 - 89999; 9000 - 9999 606-0 606-0 Region name: Romania Country code(s): RO Language group: 606 Publisher(s): 0 - 0; 10 - 49; 500 - 799; 8000 - 9199; 92000 - 99999 606-10 606-49 612-50 612-99 88-9300 88-9399 88-95000 88-99999 955-44000 955-44999 955-7500 955-7999 958-57000 958-59999 988-15000 988-16999 988-17000 988-19999 9940-9000 9940-9999 9949-0 9949-0 Region name: Estonia Country code(s): EE Language group: 9949 Publisher(s): 0 - 0; 10 - 39; 400 - 749; 75 - 89; 9000 - 9999 99919-70 99919-79 99919-850 99919-899 99945-60 99945-89 99960-0 99960-0 Region name: Malawi Country code(s): MW Language group: 99960 Publisher(s): 0 - 0; 10 - 94; 950 - 999 99961-40 99961-89 99965-40 99965-62 99967-20 99967-59 99971-60 99971-84 bibclean-3.07/test/okay/testopt5.err0000664000156700015670000005167314162101371016341 0ustar beebebeebe%% :0:Unrecognized option switch: -bogus-option. bibclean Version 3.07 [26-Dec-2021] with native pattern matching E-mail bug reports to Nelson H. F. Beebe Copyright (C) 1990--2021 by Nelson H. F. Beebe and the Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Usage: ../bibclean [ -author ] [ -copyleft ] [ -copyright ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -ISBN-file filename ] [ -keyword-file filename ] [ -max-width nnn ] [ -[no-]align-equals ] [ -[no-]brace-protect ] [ -[no-]check-values ] [ -[no-]debug-match-failures ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-accents ] [ -[no-]fix-braces ] [ -[no-]fix-degrees ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-math ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-ISBN-table ] [ -[no-]print-keyword-table ] [ -[no-]print-patterns ] [ -[no-]quiet ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -output-file filename ] [ -version ] [ outfile Command-line switches may be abbreviated to a unique leading prefix, and letter case is not significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag to no. For such options, the last setting determines the flag value used. That is significant when options are also specified in initialization files (see the INITIALIZATION FILES manual section). The leading hyphen that distinguishes an option from a filename may be doubled, for compatibility with GNU and POSIX conventions. Thus, -author and --author are equivalent. To avoid confusion with options, if a filename begins with a hyphen, it must be disguised by a leading absolute or relative directory path, e.g., /tmp/-foo.bib or ./-foo.bib. -author Display an author credit on the standard error unit, stderr, and then terminate with a success return code. Sometimes an executable program is separated from its documentation and source code; this option provides a way to recover from that. -copyleft Display copyright information on the standard error unit, stderr, and then terminate with a success return code. -copyright Display copyright information on the standard error unit, stderr, and then terminate with a success return code. -error-log filename Redirect stderr to the indicated file, which then contains all of the error and warning messages. This option is provided for those systems that have difficulty redirecting stderr. -help or -? Display a help message on stderr, giving a usage description, similar to this section of the manual pages, and then terminate with a success return code. -ISBN-file filename Provide an explicit ISBN-range initialization file. It is processed after any system-wide and job-wide ISBN initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. The ISBN initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANISBN, but defaults to .bibclean.isbn on UNIX, and bibclean.isb elsewhere. For further details, see the ISBN INITIALIZATION FILES manual section. -init-file filename Provide an explicit value pattern initialization file. It is processed after any system-wide and job-wide initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANINI, but defaults to .bibcleanrc on UNIX, and to bibclean.ini elsewhere. For further details, see the INITIALIZATION FILES manual section. -keyword-file filename Provide an explicit keyword initialization file. It is processed after any system-wide and job-wide keyword initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. The keyword initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANKEY, but defaults to .bibclean.key on UNIX, and bibclean.key elsewhere. For further details, see the KEYWORD INITIALIZATION FILES manual section. -max-width nnn bibclean normally limits output line widths to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special-purpose applications may require different maximum line widths, so this option provides that capability. The number following the option name can be specified in decimal, octal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is interpreted to mean unlimited, so -max-width 0 can be used to ensure that each field/value pair appears on a single line. When -no-prettyprint requests bibclean to act as a lexical analyzer, the default line width is unlimited, unless overridden by this option. When bibclean is prettyprinting, line wrapping is done only at a space. Consequently, a long non-blank character sequence may result in the output exceeding the requested line width. When bibclean is lexing, line wrapping is done by inserting a backslash-newline pair when the specified maximum is reached, so no line length ever exceeds the maximum. -[no-]align-equals With the positive form, align the equals sign in key/value assignments at the same column, separated by a single space from the value string. Otherwise, the equals sign follows the key, separated by a single space. Default: no. -[no-]brace-protect Protect uppercase and mixedcase words at brace-level zero with braces to prevent downcasing by some BibTeX styles. Default: yes. -[no-]check-values With the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g., ``year = "192"'' instead of ``year = "1992"''), and issue warnings when unexpected patterns are found. That checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can disable it with the negative form of this option. Default: yes. -[no-]debug-match-failures With the positive form, print out a warning when a value pattern fails to match a value string. That is helpful in debugging new patterns, but because the output can be voluminous, you should use this option only with small test files, and initialization files that eliminate all patterns apart from the ones that you are testing. Default: no. -[no-]delete-empty-values With the positive form, remove all field/value pairs for which the value is an empty string. That is helpful in cleaning up bibliographies generated from text editor templates. Compare this option with -[no-]remove-OPT-prefixes described below. Default: no. -[no-]file-position With the positive form, give detailed file position information in warning and error messages. Default: no. -[no-]fix-accents With the positive form, normalize TeX accents in annotes, authors, booktitles, editors, notes, remarks, and titles. Default: no. -[no-]fix-braces With the positive form, normalize bracing in annotes, authors, booktitles, editors, notes, remarks, and titles, by removing unnecessary levels of braces. Default: no. -[no-]fix-degrees With the positive form, remove spaces in author/editor fields inside braces after letter-ending periods. That makes reductions from J. J. {Thomson, M. A., F. R. S.}, Frederick {Soddy, B. A. (Oxon.)}, and John A. {Cable, M. A., M. Ed., Dipl. Deutsch (Marburg), A. L. C. M.} to J. J. {Thomson, M.A., F.R.S.}, Frederick {Soddy, B.A. (Oxon.)}, and John A. {Cable, M.A., M.Ed., Dipl.Deutsch (Marburg), A.L.C.M.}, respectively. In journals in the humanities and history of science, as well as in some scientific journals until well into the 20th Century, academic, honorary, and professional titles and degrees are commonly attached to personal names. Even though modern publishing practice avoids such decorations, for accuracy, bibliography entries should preferably retain them. Journal typographical practice generally follows the reductions described here. -[no-]fix-font-changes With the positive form, supply an additional brace level around font changes in titles to protect against downcasing by some BibTeX styles. Font changes that already have more than one level of braces are not modified. For example, if a title contains the Latin phrase {\em Dictyostelium discoideum} or {\em {D}ictyostelium discoideum}, then downcasing incorrectly converts the phrase to lower-case letters. Most BibTeX users are surprised that bracing the initial letters does not prevent the downcase action. The correct coding is {{\em Dictyostelium discoideum}}. However, there are also legitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, bibclean normally does not supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this option to supply them. If you think that you need this option, it is strongly recommended that you apply bibclean to your bibliography file with and without -fix-font-changes, then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You must decide which of the two output files is the better choice, then repair the incorrect title bracing by hand. Because font changes in titles are uncommon, except for cases of the type that this option is designed to correct, it should do more good than harm. Default: no. -[no-]fix-initials With the positive form, insert a space after a period following author initials. Default: yes. -[no-]fix-math With the positive form, improve readability of math mode in titles by inserting spaces around operators, deleting other unnecessary space, and removing braces around single- character subscripts and superscripts. Default: no. -[no-]fix-names With the positive form, reorder author and editor name lists to remove commas at brace level zero, placing first names or initials before last names. Default: yes. -[no-]German-style With the positive form, interpret quote characters ["] inside braced value strings at brace level 1 according to the conventions of the TeX style file german.sty, which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, invisible hyphens, raised/lowered quotes, French guillemets, and discretionary hyphens. Recognized character combinations are braced to prevent BibTeX from interpreting the quote as a string delimiter. Quoted strings receive no special handling from this option, and because German nouns in titles must anyway be protected from the downcasing operation of most BibTeX bibliography styles, German value strings that use the overloaded quote character can always be entered in the form "{...}", without the need to specify this option at all. Default: no. -[no-]keep-linebreaks Normally, line breaks inside value strings are collapsed into a single space, so that long value strings can later be broken to provide lines of reasonable length. With the positive form, linebreaks are preserved in value strings. If -max-width is set to zero, this preserves the original line breaks. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-parbreaks With the positive form, preserve paragraph breaks (either formfeeds, or lines containing only spaces) in value strings. Normally, paragraph breaks are collapsed into a single space. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-preamble-spaces With the positive form, preserve all whitespace in @Preamble{...} entries. Default: no. -[no-]keep-spaces With the positive form, preserve all spaces in value strings. Normally, multiple spaces are collapsed into a single space. This option can be used together with -keep-linebreaks, -keep-parbreaks, and -max-width 0 to preserve the form of value strings while still providing syntax and value checking. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-string-spaces With the positive form, preserve all whitespace in @String{...} entries. Default: no. -[no-]parbreaks With the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field/value pairs. That may be useful to quickly trap runaway strings arising from mismatched delimiters. Default: yes. -[no-]prettyprint Normally, bibclean functions as a prettyprinter. However, with the negative form of this option, it acts as a lexical analyzer instead, producing a stream of lexical tokens. See the LEXICAL ANALYSIS manual section for further details. Default: yes. -[no-]print-ISBN-table With the positive form, print the ISBN-range table on stderr, then terminate with a success return code. That action is taken after all command-line options are processed, and before any input files are read (other than those that are values of command-line options). The format of the output ISBN-range table is acceptable for input as an ISBN initialization file (see the ISBN INITIALIZATION FILES manual section). Default: no. -[no-]print-keyword-table With the positive form, print the keyword initialization table on stderr, then terminate with a success return code. That action is taken after all command-line options are processed, and before any input files are read (other than those that are values of command-line options). The format of the output table is acceptable for input as a keyword initialization file (see the KEYWORD INITIALIZATION FILES manual section). Default: no. -[no-]print-patterns With the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used. When bibclean is compiled with native pattern-matching code (the default), those patterns are the ones that are used in checking value strings for valid syntax, and all of them are specified in initialization files, rather than hard-coded into the program. For further details, see the INITIALIZATION FILES manual section. Default: no. -[no-]quiet This option is the opposite of -[no-]warning; it exists for user convenience, and for compatibility with other programs that use -q for quiet operation, without warning messages. -[no-]read-init-files With the negative form, suppress loading of system-, user-, and file-specific initialization files. Initializations then come only from those files explicitly given by -init-file filename options. Default: yes. -[no-]remove-OPT-prefixes With the positive form, remove the ``OPT'' prefix from each field name where the corresponding value is not an empty string. The prefix ``OPT'' must be entirely in upper-case to be recognized. This option is for bibliographies generated with the help of the GNU Emacs BibTeX editing support, which generates templates with optional fields identified by the ``OPT'' prefix. Although the function M-x bibtex-remove-OPT normally bound to the keystrokes C-c C-o does the job, users often forget, with the result that BibTeX does not recognize the field name, and ignores the value string. Compare this option with -[no-]delete-empty-values described above. Default: no. -[no-]scribe With the positive form, accept input syntax conforming to the Scribe document system. The output is converted to conform to BibTeX syntax. See the SCRIBE BIBLIOGRAPHY FORMAT manual section for further details. Default: no. -[no-]trace-file-opening With the positive form, record in the error log file the names of all files that bibclean attempts to open. Use this option to identify where initialization files are located. Default: no. -[no-]warnings With the positive form, allow all warning messages. The negative form is not recommended because it may mask problems that should be repaired. Default: yes. -output-file filename Supply an alternate output file to replace stdout. If the filename cannot be opened for output, execution terminates immediately with a nonzero exit code. -version Display the program version number on stderr, and then terminate with a success return code. That includes an indication of who compiled the program, the host name on which it was compiled, the time of compilation, and the type of string-value matching code selected, when that information is available to the compiler. bibclean-3.07/test/okay/testoptk.out0000444000156700015670000000000007342757570016440 0ustar beebebeebebibclean-3.07/test/okay/topt119.out0000444000156700015670000000000112470143210015757 0ustar beebebeebe bibclean-3.07/test/okay/testoptr.err0000444000156700015670000000000012071433427016413 0ustar beebebeebebibclean-3.07/test/okay/testscr2.blg0000444000156700015670000000134307342750522016272 0ustar beebebeebeWarning--entry type for "COMMENT" isn't style-file defined --line 1 of file testscr2.bib Repeated entry---line 6 of file testscr2.bib : @end{COMMENT : } I'm skipping whatever remains of this entry Warning--string name "bsi" is undefined --line 56 of file testscr2.bib Warning--string name "bs" is undefined --line 61 of file testscr2.bib Warning--string name "bsi" is undefined --line 66 of file testscr2.bib Warning--string name "bs" is undefined --line 72 of file testscr2.bib Warning--to sort, need author or key in COMMENT Warning--to sort, need author or key in bs-1629-4 Warning--to sort, need author or key in bs-1629-5 Warning--empty author in bs-1629-4 Warning--empty author in bs-1629-5 (There was 1 error message) bibclean-3.07/test/okay/topt152.err0000444000156700015670000000000012470142673015750 0ustar beebebeebebibclean-3.07/test/okay/topt356.out0000444000156700015670000000000112470143231015765 0ustar beebebeebe bibclean-3.07/test/okay/testopt2.err0000444000156700015670000000000007342761025016316 0ustar beebebeebebibclean-3.07/test/okay/testoptl.out0000444000156700015670000000317214023206351016432 0ustar beebebeebe@Article{Blow:2013:EP, author = "Joe Blow", title = "{e-CON 2011} conference summary", title = "The {e-CON 2011} conference summary", title = "The {e-CON 2011} conference summary", title = "The {FORTRAN-to-C} manual", title = "The {ExCeLeNt} Program", title = "The {EXcelENt} Program", title = "The {excELEnt} Program", title = "The Excelent Program", title = "Up and Down Letter Case in Title", booktitle = "{e-CON 2011} conference summary", booktitle = "The {e-CON 2011} conference summary", booktitle = "The {e-CON 2011} conference summary", booktitle = "The {FORTRAN-to-C} manual", booktitle = "The {ExCeLeNt} Program", booktitle = "The {EXcelENt} Program", booktitle = "The {excELEnt} Program", booktitle = "The Excelent Program", booktitle = "Up and Down Letter Case in Title", title = "The {IEEE} {P754} draft floating-point standard", title = "The {IEEE 754} floating-point standard", title = "The {GCC 4.8-20120401} compiler release", title = "The {IEEE 802.11(p)/1609} network standard", title = "{IEEE} {P754} draft floating-point standard", title = "{IEEE 754} floating-point standard", title = "{GCC 4.8-20120401} compiler release", title = "{IEEE 802.11(p)/1609} network standard", journal = "Journal of Something", volume = "1", number = "1", pages = "1--3", day = "1", month = jan, year = "2013", bibdate = "Tue Jan 01 09:18:32 2013", acknowledgement = ack-nhfb, } bibclean-3.07/test/okay/testoptu.err0000444000156700015670000000000012111667551016420 0ustar beebebeebebibclean-3.07/test/okay/topt155.err0000444000156700015670000000000012470142673015753 0ustar beebebeebebibclean-3.07/test/okay/topt351.out0000444000156700015670000000000112470143230015757 0ustar beebebeebe bibclean-3.07/test/okay/topt162.out0000444000156700015670000000000012470142673015770 0ustar beebebeebebibclean-3.07/test/okay/topt366.err0000444000156700015670000000000012470142676015762 0ustar beebebeebebibclean-3.07/test/okay/topt129.err0000444000156700015670000000000012470142673015754 0ustar beebebeebebibclean-3.07/test/okay/topt110.out0000444000156700015670000000000112470143206015753 0ustar beebebeebe bibclean-3.07/test/okay/testoptb.out0000444000156700015670000000000107342757231016422 0ustar beebebeebe bibclean-3.07/test/okay/topt314.err0000444000156700015670000000000012470142674015751 0ustar beebebeebebibclean-3.07/test/okay/testscr4.err0000444000156700015670000000214507342747607016333 0ustar beebebeebe?? "testscr4.bib", line 21: Unexpected paragraph break for field ``title''. ?? File positions: input [testscr4.bib] output [stdout] ?? Entry input byte=489 line=19 column= 1 output byte=474 line=17 column= 0 ?? Value input byte=547 line=21 column=14 output byte=538 line=19 column=17 ?? Current input byte=564 line=23 column= 0 output byte=553 line=19 column=32 ?? "testscr4.bib", line 45: Unexpected paragraph break for field ``title''. ?? File positions: input [testscr4.bib] output [stdout] ?? Entry input byte=919 line=43 column= 1 output byte=1309 line=46 column= 0 ?? Value input byte=977 line=45 column=14 output byte=1373 line=48 column=17 ?? Current input byte=994 line=47 column= 0 output byte=1388 line=48 column=32 ?? "testscr4.bib", line 67: Unexpected paragraph break for field ``title''. ?? File positions: input [testscr4.bib] output [stdout] ?? Entry input byte=1337 line=65 column= 1 output byte=2146 line=74 column= 0 ?? Value input byte=1393 line=67 column=14 output byte=2210 line=76 column=17 ?? Current input byte=1410 line=69 column= 0 output byte=2225 line=76 column=32 bibclean-3.07/test/okay/topt368.err0000664000156700015670000000055714162101403015770 0ustar beebebeebebibclean Version 3.07 [26-Dec-2021] with native pattern matching E-mail bug reports to Nelson H. F. Beebe Copyright (C) 1990--2021 by Nelson H. F. Beebe and the Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. bibclean-3.07/test/okay/testbib7.err0000444000156700015670000000103712317316004016257 0ustar beebebeebe%% testbib7.bib:227:Unusual compound assignment or equality-test operator in math mode value ``"For $|x| >= 17$"'' (e.g., perhaps replace <= by \leq). %% testbib7.bib:231:Unusual compound assignment or equality-test operator in math mode value ``"For $|x| <= 17$"'' (e.g., perhaps replace <= by \leq). %% testbib7.bib:235:Unusual compound assignment or equality-test operator in math mode value ``"For $|x| := 17$"'' (e.g., perhaps replace <= by \leq). %% testbib7.bib:245:Unbackslashed math word in math mode in value ``"For $x > log(y)$"''. bibclean-3.07/test/okay/topt127.err0000444000156700015670000000000012470142673015752 0ustar beebebeebebibclean-3.07/test/okay/topt323.out0000444000156700015670000000000112470143225015762 0ustar beebebeebe bibclean-3.07/test/okay/testltx1.out0000444000156700015670000021713314023206356016355 0ustar beebebeebe% REDUCE BIBLIOGRAPHY % Part 1: A-F % Copyright (c) 1990 The RAND Corporation. All Rights Reserved. % Additions and corrections are solicited. Please send them, in the % same format as these entries if possible, to reduce at rand.org. @Article{Abbott:85, author = "J. A. Abbott and R. J. Bradford and J. H. Davenport", title = "A Remark on Factorisation", journal = "{SIGSAM} Bulletin", year = "1985", volume = "19", number = "2", pages = "31--33", month = may, } @InProceedings{Abbott:86, author = "J. A. Abbott and R. J. Bradford and J. H. Davenport", title = "The {Bath} Algebraic Number Package", booktitle = "Proc. of {SYMSAC} '86", year = "1986", pages = "250--253", } @InProceedings{Abbott:87, author = "J. A. Abbott and J. H. Davenport", title = "Polynomial Factorization: An Exploration of {Lenstra's} Algorithm", booktitle = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", year = "1987", volume = "378", pages = "391--402", publisher = "Springer-Verlag", } @InProceedings{Abbott:87a, author = "J. A. Abbott", title = "Integration: Solving the {Risch} Differential Equation", booktitle = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", year = "1987", volume = "378", pages = "465--467", publisher = "Springer-Verlag", } @PhdThesis{Abbott:88, author = "J. A. Abbott", title = "Factorisation of Polynomials over Algebraic Number Fields", school = "Univ. of Bath, England", year = "1988", } @Article{Abbott:88a, author = "J. A. Abbott and J. H. Davenport", title = "A Remark on a Paper by {Wang}: Another Surprising Property of 42", journal = "Math. Comp.", year = "1988", volume = "51", pages = "837--839", } @InProceedings{Abbott:89, author = "J. A. Abbott", title = "Recovery of Algebraic Numbers from their p-Adic Approximations", booktitle = "Proc. of {ISSAC} '89", publisher = "{ACM} Press, New York", year = "1989", pages = "112--120", } @TechReport{Abbott:89a, author = "J. A. Abbott and R. J. Bradford and J. H. Davenport", title = "A Remark on the Multiplication of Sparse Polynomials", number = "TR 89-21", year = "1989", institution = "School of Mathematical Sciences, University of Bath", } @InProceedings{Abdali:88, author = "S. K. Abdali and D. S. Wise", title = "Experiments with Quadtree Representation of Matrices", booktitle = "Proc. of {ISSAC} '88", publisher = "Springer-Verlag", year = "1988", volume = "358", pages = "96--108", } @Article{Abiezzi:83, author = "Salim S. {Abi-Ezzi}", title = "Clarification to the Symbolic Mode in {REDUCE}", journal = "{SIGSAM} Bulletin", year = "1983", volume = "17", number = "3 and 4", pages = "43--47", month = aug # " and " # nov, } @Article{Adams:83, author = "K. J. Adams", title = "Analytic Estimates for the Dynamic Aperture of Nonlinear Lattices", journal = "IEEE Trans. Nucl. Sci.", year = "1983", volume = "NS-30", pages = "2436--2438", } %"For an accelerator lattice..." REDUCE was used to obtain low order %coefficients in the calculation of the amplitude. @Article{Adkins:83, author = "G. S. Adkins", title = "Analytic Evaluation of an {O}($\alpha$) Vertex Correction to the Rate of Orthopositronium", journal = "Phys. Rev. A", year = "1983", volume = "27", pages = "530--532", abstract = "The order-$\alpha$ correction to the lowest order orthopositronium decay rate due to the two outer-vertex graphs obtained in analytic form.", } @Article{Adkins:83a, author = "G. S. Adkins and F. R. Brown", title = "Rate for Positronium Decay to Five Photons", journal = "Phys. Rev. A", year = "1983", volume = "28", pages = "1164--1165", abstract = "{REDUCE} used to calculate trace of $\gamma$ matrices. Large calculation.", } @Article{Adkins:85, author = "G. S. Adkins", title = "Inner-Vertex Contributions to the Decay Rate of Orthopositronium", journal = "Phys. Rev. A", year = "1985", volume = "31", pages = "1250--1252", abstract = "{REDUCE} trace calculations. {"}In this paper the order-$\alpha$ contribution to the inner-vertex graphs to the decay rate of orthopositronium is obtained in analytic form.{"}", } @Article{Aguilera-Navarro:87, author = "V. C. Aguilera-Navarro and R. Guardiola and C. Keller and M. de Llano and M. Popovic and M. Fortes", title = "Van der {Waals} Perturbation Theory for Fermion and Boson Ground-State Matter", journal = "Phys. Rev. A", year = "1987", volume = "35", pages = "563--584", } %Uses computer algebra to rearrange ideal-gas-based low-density %expansions; to them REDUCE or MACSYMA provide just the expertise they %require to substitute forms into equations, and so makes their %formulation possible. @Article{Aldins:69, author = "J. Aldins and S. J. Brodsky and A. J. Dufner and T. Kinoshita", title = "Photon-Photon Scattering Contribution to the Sixth Order Magnetic Moments of the Muon and Electron", journal = "Phys. Rev. Lett.", year = "1969", volume = "23", pages = "441--443", } @TechReport{Alekseev:86, author = "A. I. Alekseev and V. F. Edneral", title = "Tensor Structure of Axial Gauge Polarization Operator in the Infrared Region", institution = "IHEP", year = "1986", type = "Preprint", number = "86-46", } @Article{Alekseev:87, author = "A. I. Alekseev and V. F. Edneral", title = "Tensor Structure of Gluon Polarization Operator in the Axial Gauge for Infra-Red Region", journal = "Journal of Nuclear Physics", year = "1987", pages = "1105--1114", } @TechReport{Alekseev:87a, author = "A. I. Alekseev and V. F. Edneral", title = "On Evaluation of {Feynman} Integrals in Axial Gauge", institution = "IHEP", year = "1987", type = "Preprint", number = "87-118", } %The recurrent algorithm for axial gauge calculations of %one-loop massless {Feynman} integrals in the n-dimensional %momentum space is described. The algorithm we suggest is %realized on the basis of REDUCE system and presented as %a procedure. It is rather effective for cumbersome %combinations of those integrals. @Article{Alfeld:82, author = "P. Alfeld", title = "Fixed Point Iteration with Inexact Function Values", journal = "Math. Comp.", year = "1982", volume = "38", pages = "87--98", } %Numerical analysis generating an improved iterative scheme. "The %technical manipulations in this paper were carried out using the %symbol manipulation language REDUCE." @TechReport{Amirkhanov:87, author = "I. V. Amirkhanov and E. P. Zhydkov and I. E. Zhydkova", title = "The Conditions of Bounding of the Oscillation Amplitudes of Charge Particle within the Resonance Vicinity Investigations", institution = "J.I.N.R., Dubna", year = "1987", number = "P11-87-452", } @Article{Antweiler:89, author = "Werner Antweiler and Andreas Strotmann and Volker Winkelmann", title = "A {{\TeX-{REDUCE}-Interface}}", journal = "SIGSAM Bulletin", year = "1989", volume = "23", month = feb, pages = "26--33", } @Article{Appelquist:70, author = "T. W. Appelquist and S. J. Brodsky", title = "The Order $\alpha^{2}$ Electrodynamic Corrections to the {Lamb} Shift", journal = "Phys. Rev. Letters", year = "1970", volume = "24", pages = "562--565", } @TechReport{Arbuzov:86, author = "B. A. Arbuzov and E. E. Boos and A. I. Davydychev", title = "Infrared Asymptotics of Gluonic {Green} Functions in Covariant Gauge", institution = "IHEP", year = "1986", type = "Preprint", number = "86-123", } @Article{Aso:81, author = "T. Aso and T. Nonoyama and S. Kato", title = "Numerical Simulation of Semidiurnal Atmospheric Tides", journal = "J. Geophysical R.", year = "1981", volume = "86", number = "11", pages = "388--400", } %"Numerical modeling of the solar and lunar semidiurnal atmospheric %tides has been performed by invoking a comprehensive approach that %includes both algebraic manipluation and numerical solution of the %primitive equation system." Used REDUCE to overcome difficulties of %complication and error. @Article{Atherton:73, author = "R. W. Atherton and G. M. Homsey", title = "Use of Symbolic Computation to Generate Evolution Equations and Asymptotic Solutions to Elliptic Equations", journal = "Journ. Comp. Phys.", year = "1973", volume = "1", pages = "45--59", } @Article{Aurenche:84, author = "P. Aurenche and A. Douir and R. Baier and M. Fontannaz and D. Schiff", title = "Photoproduction of Hadrons at Large Transverse Momentum in Second Order {QCD}", journal = "Phys. Lett.", year = "1984", volume = "135B", pages = "164--168", } % Uses REDUCE and SCHOONSCHIP in the extension of calculations to a %higher order to keep pace with experimental results. @Article{Aurenche:84a, author = "P. Aurenche and A. Douir and R. Baier and M. Fontannaz and D. Schiff", title = "Prompt Photon Production at Large $p_{\tau}$ in {GCD} Beyond the Leading Order", journal = "Phys. Lett.", year = "1984", volume = "140B", pages = "87--92", } %Uses REDUCE and SCHOONSCHIP. @Article{Autin:89, author = "B. Autin and J. Bengtsson", title = "Symbolic Evaluation of Integrals Occurring in Accelerator Orbit Theory", journal = "J. Symbolic Computation", year = "1989", volume = "7", number = "2", pages = "183--187", month = feb, } @Article{Baekler:84, author = "P. Baekler and F. W. Hehl", title = "A Charged {Taub-NUT} Metric with Torsion: A New Axially Symmetric Solution of the {Poincar\'{e}} Gauge Field Theory", journal = "Phys. Lett.", year = "1984", volume = "100A", pages = "277--316", } @TechReport{Baekler:84a, author = "Peter Baekler and Friedrich W. Hehl", title = "On the Dynamics of the Torsion of Spacetime: Exact Solutions in a Gauge Theoretical Model of Gravity", institution = "Department of Physics, University of California, Los Angeles", year = "1984", number = "UCLA/84/TEP/19", page = "18", month = dec, } @InProceedings{Baekler:86, author = "P. Baekler and F. W. Hehl and E. W. Mielke", title = "Nonmetricity and Torsion: Facts and Fancies in Gauge Approaches to Gravity", editor = "R. Ruffini", booktitle = "Proc. 4th Marcel Grossmann Meeting on General Relativity, ed.", publisher = "North-Holland, Amsterdam", year = "1986", pages = "277--316", } @Article{Baekler:87, author = "P. Baekler and R. Hecht and F. W. Hehl and T. Shirafuji", title = "Mass and Spin of Exact Solutions of the {Poincar\'{e}} Gauge Theory", journal = "Prog. Theor. Phys.", year = "1987", volume = "78", pages = "16--21", } @Article{Baekler:87a, author = "P. Baekler and M. Guerses", title = "Exact Solutions of the {Poincar\'{e}} Gauge Theory from Its Linearized Field Equations", journal = "Lett. Math. Phys.", year = "1987", volume = "14", pages = "185--191", } @Article{Baekler:87b, author = "P. Baekler and E. W. Mielke and F. W. Hehl", title = "Kinky Torsion in a {Poincar\'{e}} Gauge Model of Gravity Coupled to a Massless Scalar Field", journal = "Nuclear Phys.", year = "1987", volume = "B288", pages = "800--812", } @Article{Baekler:88, author = "P. Baekler and M. Seitz and V. Winkelmann", title = "Cyclindrically Symmetric Solutions of Self-Consistently Coupled {Dirac} Fields in Gauge Theories of Gravity", journal = "Class. Quantum Grav.", year = "1988", volume = "5", pages = "479--490", } @Article{Baekler:88a, author = "P. Baekler and M. Guerses and F. W. Hehl and J. D. McCrea", title = "The Exterior Gravitational Field of a Charged Spinning Source in the {Poincar\'{e}} Gauge Theory: A {Kerr-Newman} Metric with Dynamic Torsion", journal = "Phys. Lett.", year = "1988", volume = "A128", pages = "245--250", } @Article{Baekler:88b, author = "P. Baekler and M. Guerses and F. W. Hehl", title = "A New Method to Solve the Field Equations of {Poincar\'{e}} Gauge Theories", journal = "Class. Quantum Grav.", year = "1988", } @TechReport{Bajla:78, author = "I. Bajla and G. A. Ososkov and A. C. Hearn", title = "The Orthogonalization Program of Polynomials in Two Variables in {REDUCE}-2 Language", institution = "J.I.N.R., Dubna", year = "1978", type = "Report", number = "P10-11944", } %The analytical algorithm for constructing orthogonal %polynomials in two variables, based on the Gram-Schmidt %orthogonalization method, is proposed. @InProceedings{Balian:78, author = "R. Balian and G. Parisi and A. Voros", title = "Quartic Oscillator", year = "1978", month = may, booktitle = "Proc. of the Colloq. on Mathematical Problems in {Feynman} Path Integrals, Marseille", } %On the example of the semi-classical expansion for the levels %of the quartic oscillator -(d**2/dq**2)+q**4, we show how the %complex WKB method provides information about the %singularities of the Borel transform of the semi-classical %series. @Article{Baker:81, author = "G. A. Baker and L. P. Benofy and M. Fortes and M. de Llano and S. M. Peltier and A. Plastino", title = "Hard-Core Square-Well Fermion", journal = "Phys. Rev. A", year = "1982", volume = "26", pages = "3575--3588", } %The mixed use of FORTRAN and REDUCE, various derivative were calculated %algebraically, but the double series was evaluated numerically. @Article{Bark:78, author = "Fritz H. Bark and Herman Tinoco", title = "Stability of Plane {Poiseuille} Flow of a Dilute Suspension of Slender Fibres", journal = "J. Fluid Mech.", year = "1978", volume = "87", pages = "321--333", } %The linear hydrodynamic stability problem for plane Poiseuille %flow of a dilute suspension of rigid fibers is solved %numerically. The constitutive equation given by Batchelor %is used to model the rheological properties of the suspension. %The resulting eigenvalue problem is shown to be singular. @Article{Barthes-Biesel:73, author = "D. Barthes-Biesel and A. Acrivos", title = "On Computer Generated Analytic Solutions to the Equations of Fluid Mechanics, The Case of Creeping Flows", journal = "Journ. Comp. Phys.", year = "1973", volume = "3", pages = "403--411", } @Article{Barton:72, author = "David Barton and Anthony C. Hearn", title = "Comment on Problem \#2 - The {Y(2n)} Functions", journal = "SIGSAM Bulletin", year = "1972", volume = "15", } %A compact program for the solution of SIGSAM Problem \#2 %is presented. @Article{Bateman:86, author = "G. Bateman and R. G. Storer", title = "Direct Determination of Axisymmetric Magnetohydrodynamic Equilibrium in {Hamada} Coordinates", journal = "Journ. Comp. Phys.", year = "1986", volume = "64", pages = "161--176", } %Plasma. "REDUCE was used to analyse the general set of equations %for large numbers of Fourier harmonics ...." @TechReport{Bennett, author = "J. P. Bennett and J. H. Davenport and H. M. Sauro", title = "Solution of Some Equations in Biochemistry", institution = "School of Mathematical Sciences, University of Bath, England", number = "88-12", } @Article{Berends:81, author = "A. Berends and R. Kleiss and P. de Causmaecher and T. T. Wu", title = "Single Bremsstrahlung Process in Gauge Theories", journal = "Phys. Lett.", year = "1981", volume = "103B", pages = "124--128", } %Used REDUCE to calculate 25 {Feynman} diagrams to produce theoretical %results which could be checked against experiment. @TechReport{Berkovich:89, author = "L. M. Berkovich and V. P. Gerdt and Z. T. Kostova and M. L. Nechaevsky", title = "Second Order Reducible Linear Differential Equations", institution = "J.I.N.R., Dubna", year = "1989", type = "Preprint", number = "E5-89-141", } @Article{Berman:63, author = "S. M. Berman and Y. S. Tsai", title = "Intermediate Boson Pair Production as a Means for Determining its Magnetic Moment", journal = "Phys. Rev. Lett.", year = "1963", volume = "11", pages = "483--487", } @Article{Bessis:85, author = "N. Bessis and G. Bessis and D. Roux", title = "Closed-Form Expressions for the {Dirac-Coulomb} Radial $r^{t}$ Integrals", journal = "Phys. Rev. A", year = "1985", volume = "32", pages = "2044--2050", } %No direct algebraic manipluation, but the formula is stated to be %well suited to evaluation by REDUCE or MACSYMA, and this is an %advantage of their formula. @TechReport{Billoire:78, author = "A. Billoire and R. Lacaze and A. Morel and H. Navelet", title = "The {OZI} Rule Violating Radiative Decays of the Heavy Pseudoscalars", institution = "{CEN}-Saclay", year = "1978", type = "Report", number = "DpH-T 43/78", } %Submitted to Phys. Letters B. %In lowest order QCD the rates for radiative transitions violating the OZI %rule of heavy pseudoscalars are found to be extremely small. @Article{Biro:86, author = "T. S. Biro and J. Zimanyi and M. Zimanyi", title = "Hadrochemistry in Relativistic Mean Fields", journal = "Physics Letters", year = "1986", volume = "167B", number = "3", pages = "271--276", month = feb, } @Article{Biro:87, author = "T. S. Biro and K. Niita and A. L. de Paoli and W. Bauer and W. Cassing and U. Mosel", title = "Microscopic Theory of Photon Production in Proton-Nucleus and Nucleus-Nucleus Collisions", journal = "Nuclear Physics", year = "1987", volume = "475A", pages = "579--597", month = dec, } MONTH = "December"} @TechReport{Birrell:77, author = "N. D. Birrell", title = "The Application of Adiabatic Regularization to Calculations of Cosmological Interest", institution = "Dept. Math, King's College, London", year = "1977", } @Article{Biswas:75, author = "S. N. Biswas and S. R. Chaudhuri and K. S. Taank and J. A. Campbell", title = "Neutrino Production in Stellar Matter by Photons in a Renormalizable Scalar-Boson-Exchange Model of Weak Interactions", journal = "Phys. Rev. D", year = "1975", volume = "8", pages = "2523--2525", } @TechReport{Bittencourt:90, author = "Guilherme Bittencourt and Jacques Calmet", title = "Integrating Computer Algebra and Knowledge Representation", institution = "{Universit\"{a}t} Karlsruhe Institut {f\"{u}r} Algorithmen und Kognitive Systeme", year = "1990", type = "Preprint", } @Article{Boege:86, author = "W. Boege and R. Gebauer and H. Kredel", title = "Some Examples for Solving Systems of Algebraic Equations by Calculating {Groebner} Bases", journal = "J. Symbolic Computation", year = "1986", volume = "2", number = "1", pages = "83--98", month = mar, } @Article{Bogdanova:88, author = "N. Bogdanova and H. Hogreve", title = "A {REDUCE} Package for Exact {Coulomb} Interaction Matrix Elements", journal = "Comp. Phys. Commun.", year = "1988", volume = "48", number = "2", pages = "319--326", month = feb, } @Article{Bordoni:81, author = "Luciana Bordoni and Attilio Colagrossi", title = "An Application of {REDUCE} to Industrial Mechanics", journal = "{SIGSAM} Bulletin", year = "1981", volume = "15", number = "2", pages = "8--12", month = may, } @InProceedings{Bowyer:87, author = "A. Bowyer and J. H. Davenport and P. S. Milne and J. A. Padget and A. F. Wallis", title = "Applications of Computer Algebra in Solid Modelling", booktitle = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", year = "1987", volume = "378", pages = "244--245", publisher = "Springer-Verlag", } @TechReport{Boyd:78, author = "John P. Boyd", title = "The Effects of Latitudinal Shear on Equatorial Waves, Part {I}: Theory and Methods", institution = "Dept. of Atmos. and Oceanic Science, Univ. of Michigan", year = "1978", type = "Preprint", month = jan, } %To be published in Journal of The Atmospheric Sciences. %By using the method of multiple scales in height and a %variety of methods in latitude, analytic solutions for %equatorial waves in combined vertical and horizontal shear %are derived. @InProceedings{Brackx:87, author = "F. Brackx and H. Serras", title = "Boundary Value Problems for the {Laplacian} in {Euclidean} Space Solved by Symbolic Computation", booktitle = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", year = "1987", volume = "378", pages = "208--215", publisher = "Springer-Verlag", } @Article{Brackx:87a, author = "F. Brackx and D. Constales and R. Delanghe and H. Serras", title = "{Clifford} Algebra with {REDUCE}", journal = "Rend. Circ. Mat. Palermo, Ser. II", year = "1987", volume = "16", pages = "11--19", } @Article{Brackx:89, author = "F. Brackx and D. Constales and A. Ronveaux and H. Serras", title = "On the Harmonic and Monogenic Decomposition of Polynomials", journal = "J. Symbolic Computation", year = "1989", volume = "8", number = "3", pages = "297--304", month = sep, } @InProceedings{Bradford:86, author = "R. J. Bradford and A. C. Hearn and J. A. Padget and E. {Schr\"{u}fer}", title = "Enlarging the {REDUCE} Domain of Computation", booktitle = "Proc. of {SYMSAC} '86", year = "1986", pages = "100--106", } @InProceedings{Bradford:88, author = "R. J. Bradford and J. H. Davenport", title = "Effective Tests for Cyclotomic Polynomials", booktitle = "Proc. of {ISSAC} '88", publisher = "Springer-Verlag", year = "1988", volume = "358", pages = "244--251", } @Article{Broadhurst:85, author = "D. J. Broadhurst", title = "Evaluation of a Class of {Feynman} Diagrams for all Numbers of Loops and Dimensions", journal = "Phys. Lett. B", year = "1985", volume = "164", pages = "356--360", } %Uses REDUCE to calculate explicitely the l-loop member of a class of %massless, dimensionally regularized {Feynman} diagrams, in order to verify %an explicit formula. @Article{Brodsky:62, author = "S. J. Brodsky and A. C. Hearn and R. G. Parsons", title = "Determination of the Real Part of the {Compton} Amplitude at a Nucleon Resonance", journal = "Phys. Rev.", year = "1962", volume = "187", pages = "1899--1904", } @Article{Brodsky:67, author = "S. J. Brodsky and J. D. Sullivan", title = "W-Boson Contribution to the Anomalous Magnetic Moment of the Muon", journal = "Phys. Rev.", year = "1967", volume = "156", pages = "1644--1647", } @InProceedings{Brodsky:69, author = "S. J. Brodsky", title = "Status of Quantum Electrodynamics", year = "1969", booktitle = "Proc. International Symposium on Electron and Photon Interactions at High Energies, Liverpool, England", } @TechReport{Brodsky:70, author = "S. J. Brodsky", title = "Quantum Electrodynamic Theory: Its Relation to Precision Low Energy Experiments", institution = "SLAC", year = "1970", type = "Report", number = "SLAC-PUB-795", month = aug, } %Stanford Linear Accelerator Center Report. @InProceedings{Brodsky:71, author = "S. J. Brodsky", title = "Algebraic Computation Techniques in Quantum Electrodynamics", year = "1971", volume = "II", pages = "IV-1--IV-27", booktitle = "Proc. {2nd} Computing Methods in Theoretical Physics, Marseilles", } @TechReport{Brodsky:72, author = "S. J. Brodsky", title = "Atomic Physics and Quantum Electrodynamics in the Infinite Momentum Frame", institution = "SLAC", year = "1972", type = "Report", number = "SLAC-PUB-1118", month = aug, } %Presented at the Third International Conference on Atomic Physics. @Article{Brodsky:72a, author = "S. J. Brodsky and J. F. Gunion and R. L. Jaffe", title = "Test for Fractionally Charged Partons from Deep-Inelastic Bremsstrahlung in the Scaling Region", journal = "Phys. Rev. D", year = "1972", volume = "6", pages = "2487--2494", } @Article{Brodsky:72b, author = "S. J. Brodsky and R. Roskies", title = "Quantum Electrodynamics and Renormalization Theory in The Infinite Momentum Frame", journal = "Phys. Lett.", year = "1972", volume = "41B", pages = "517--520", } @Article{Brodsky:73, author = "S. J. Brodsky and R. Roskies and R. Suaya", title = "Quantum Electrodynamics and Renormalization Theory in the Infinite-Momentum Frame", journal = "Phys. Rev. D", year = "1973", volume = "8", pages = "4574--4594", } @Article{Broughan:82, author = "K. A. Broughan", title = "{Grad-Fokker-Planck} Plasma Equations. Part 1. {Collision} Moments", journal = "J. Plasma Phys.", year = "1982", volume = "27", pages = "437--452", } %REDUCE used in collaboration with hand calculation. REDUCE did the %substitutions, with hand integrations. "Thirteen moments are taken of the %collision term in Boltzmann-Fokker-Planck equation....plasma..." @Article{Brown:79, author = "W. S. Brown and A. C. Hearn", title = "Applications of Symbolic Algebraic Computation", journal = "Comp. Phys. Comm.", year = "1979", volume = "17", pages = "207--215", } %This paper is a survey of applications of systems for symbolic %algebraic computation. @Article{Bryan-Jones:87, author = "Jane Bryan-Jones", title = "A Tutorial in Computer Algebra for Statisticians", journal = "The Professional Statistician", year = "1987", volume = "6", number = "6", month = dec, pages = "TBD", } @TechReport{Calmet:72, author = "Jacques Calmet", title = "Further Evaluation of the Sixth Order Corrections to the Anomalous Magnetic Moment of the Electron", institution = "Department of Physics, University of Utah", year = "1972", } %We report on the contributions to the $\alpha^{3}$ %part of the anomalous magnetic moment of the electron from the %seven so-called cross and ladder diagrams. @Article{Calmet:72a, author = "Jacques Calmet", title = "A {REDUCE} Approach to the Calculation of {Feynman} Diagrams", journal = "Comp. Phys. Comm.", year = "1972", volume = "4", pages = "199--204", } %A brief survey of two existing REDUCE programs (by Campbell-Hearn %and by Calmet) dealing with algebraic computation of {Feynman} diagrams is %given. Work in progress on a more general approach to this problem %is discussed. @Article{Calmet:74, author = "Jacques Calmet", title = "Computer Recognition of Divergences in {Feynman} Graphs", journal = "SIGSAM Bulletin", year = "1974", volume = "8", number = "3", pages = "74--75", month = aug, } %A description of a program for the recognition of divergences %in {Feynman} graphs is given. @InCollection{Calmet:83, author = "J. Calmet and J. A. van Hulzen", title = "Computer Algebra Applications", editor = "B. Buchberger and G. E. Collins and R. Loos and R. Albrecht", booktitle = "Computer Algebra Symbolic and Algebraic Computation", edition = "2nd", publisher = "Springer-Verlag", year = "1983", } @Article{Campbell:67, author = "J. A. Campbell", title = "Algebraic Computation of Radiative Corrections for Electron-Positron Scattering", journal = "Nucl. Phys.", year = "1967", volume = "B1", pages = "283--300", } @Article{Campbell:68, author = "J. A. Campbell", title = "Astrophysical Consequences of the Existence of Charged Intermediate Vector Bosons", journal = "Aust. Journ. of Phys.", year = "1968", volume = "21", pages = "139--148", } @Article{Campbell:70, author = "J. A. Campbell and A. C. Hearn", title = "Symbolic Analysis of {Feynman} Diagrams by Computer", journal = "Journ. of Comp. Phys.", year = "1970", volume = "5", pages = "280--327", } @Article{Campbell:70a, author = "J. A. Campbell and R. B. Clark and D. Horn", title = "Low-T Theorems for Charged-Pion Photoproduction", journal = "Phys. Rev. D", year = "1970", volume = "2", pages = "217--224", } @Article{Campbell:74, author = "J. A. Campbell", title = "Symbolic Computing and Its Relationship to Particle Physics", journal = "Acta Physica Austriaca", year = "1974", volume = "XIII", pages = "595--647", } @Article{Campbell:87, author = "J. A. Campbell and P. O. {Fr\"{o}man} and E. Walles", title = "Explicit series formulae for the evaluation of integrals by the method of steepest descents", journal = "Studies in Applied Mathematics", year = "1987", volume = "77", pages = "151--172", } @TechReport{Caprasse:84, author = "H. Caprasse", title = "Description et Utilisation {d'Une} Extension du Programme {REDUCE}", institution = "Physique Th\'{e}orique et Math\'{e}matique, Universit\'{e} de Li\`{e}ge", year = "1984", month = oct, } @Article{Caprasse:85, author = "H. Caprasse and M. Hans", title = "A New Use of Operators in the Algebraic Mode of {REDUCE}", journal = "{SIGSAM} Bulletin", year = "1985", volume = "19", number = "3", pages = "46--52", month = aug, } @Article{Caprasse:86, author = "H. Caprasse", title = "Description of an Extension of the Matrix Package of {REDUCE}", journal = "{SIGSAM} Bulletin", year = "1986", volume = "20", number = "4", pages = "7--10", month = dec, } @Article{Caprasse:86a, author = "H. Caprasse", title = "A Complete Simplification Package for the Absolute Value Function in {REDUCE}", journal = "{SIGSAM} Bulletin", year = "1986", volume = "20", number = "1 and 2", pages = "18--21", month = feb # " and " # may, } %Implementation for REDUCE 3.2 of the function "ABS". @InProceedings{Caprasse:88, author = "H. Caprasse and J. Demaret and E. Schruefer", title = "Can {EXCALC} be Used to Investigate {High-dimensional} Cosmological Models with {Non-Linear Lagrangians}", booktitle = "Proc. of {ISSAC} '88", publisher = "Springer-Verlag", year = "1988", pages = "116--124", } @Article{Caprasse:90, author = "H. Caprasse", title = "Renormalization Group, Function Iterations and Computer Algebra", journal = "J. Symbolic Computation", year = "1990", volume = "9", number = "1", pages = "61--72", month = jan, } %Based on a renormalization group equation met in Quantum Field Theory, %Continuous Iterations of a large class of functions are computed using %REDUCE. @Article{Caprasse:89a, author = "H. Caprasse", title = "Les Th\'{e}ories des {Champs} dans le monde de {REDUCE} (in French)", journal = "{CALSYF} (to appear)", year = "1989", } @Article{Carlson:80, author = "P. Carlson", title = "Coordinate Free Relativity", journal = "J. Math. Phys.", year = "1980", volume = "21", pages = "1149--1154", } %REDUCE programs for tetrad formulation of GR. @PhdThesis{Carroll:73, author = "R. Carroll", title = "The Anomalous Magnetic Moment of the Electron in the Mass Operator Formalism", school = "University of Michigan", year = "1973", } @Article{Carroll:75, author = "R. Carroll", title = "Mass-Operator Calculation of the Electron g-Factor", journal = "Phys. Rev. D", year = "1975", volume = "8", pages = "2344--2354", } @TechReport{Cejchan, author = "A. Cejchan and J. Nadrchal", title = "Application of {REDUCE}-2 and Analytic Integration Program in the Theoretical Solid State Physics", institution = "Institute of Physics, CSAV, Prague", } @InProceedings{Chaffy:88, author = "C. Chaffy-Camus", title = "An Application of {REDUCE} to the Approximation of {f(x,y)}", booktitle = "Proc. of {ISSAC} '88", publisher = "Springer-Verlag", year = "1988", volume = "358", pages = "73--84", } @Article{Chinnick:86, author = "K. Chinnick and C. Gibson and J. F. Griffiths and W. Kordylewski", title = "Isothermal Interpretations of Oscillatory Ignition During Hydrogen Oxidation in an Open System. {I}. {Analytical} Predictions and Experimental Measurements of Periodicity", journal = "Proc. Royal Soc. Lond.", year = "1986", volume = "A405", pages = "117--128", } %Used REDUCE to solve Jacobian, but answer too complicated to be of any use. @Article{Cline:90, author = "Terry Cline and Harold Abelson and Warren Harris", title = "Symbolic Computing in Engineering Design", journal = "AI EDAM", year = "1990", month = feb, } @TechReport{Cohen:76, author = "H. I. Cohen and O. Leringe and Y. Sundblad", title = "The Use of Algebraic Computing in General Relativity", institution = "The Royal Institute of Technology Department of Mechanics", year = "1976", number = "TRITA-MEK-76-02", } @TechReport{Cohen:76a, author = "I. Cohen and F. Bark", title = "Perturbation Calculations for the Spin Up Problem Using {REDUCE}", institution = "The Royal Institute of Technology, Department of Mechanics", year = "1976", number = "TRITA-MEK-76-03", } @TechReport{Cohen:77, author = "I. Cohen and S. Yu. Slavyanov", title = "Smooth Perturbations of the {Schr\"{o}dinger} Equation with a Linear Potential Related to the Charmonium Models", institution = "University of Stockholm Institute of Physics", year = "1977", type = "USIP Report", number = "77-17", } @Article{Cohen:79, author = "J. P. Fitch and H. I. Cohen", title = "Using {CAMAL} for Algebraic Calculations in General Relativity", journal = "General Relativity and Gravitation", volume = "11", year = "1979", pages = "411--418", } @Article{Cohen:84, author = "H. I. Cohen and I. B. Frick and J. E. {\AA}man", title = "Algebraic Computing in General Relativity", journal = "General Relativity and Gravitation, ed.", year = "1984", pages = "139--162", } %General relativity review. @InProceedings{Cohen:89, author = "Joel S. Cohen", title = "The Effective Use of Computer Algebra Systems", year = "1989", pages = "677--698", booktitle = "Transactions of the Sixth Army Conference on Applied Mathematics and Computing", } % Review of author's experience with four computer algebra systems. @Article{Connor:84, author = "J. N. L. Connor and P. R. Curtis and D. Farrelly", title = "The Uniform Asymptotic Swallowtail Approximation: Practical Methods for Oscillating Integrals with Four Coalescing Saddle Points", journal = "J. Phys. A", year = "1984", volume = "17", pages = "283--310", } %Used REDUCE and SCHOONSCHIP for some algebraic manipulations, and then %checked the results with MACSYMA; this is the most distrustful %reference we have found. @Article{Connor:84a, author = "J. N. L. Connor and P. R. Curtis and C. J. Edge and A. Lagan`{a}", title = "The Uniform Asymptotic Swallowtail Approximation: Application to the Collinear {$H+F_{2}$}", journal = "J. Chem. Phys.", year = "1984", volume = "80", number = "3", pages = "1362--1363", month = feb, } @Article{Conwell:84, author = "P. R. Conwell and P. W. Barber and C. K. Rushworth", title = "Resonant Spectra of Dielectric Sphere", journal = "J. Opt. Soc. Am. A", year = "1984", volume = "1", pages = "62--67", } %REDUCE used to confirm independently convergence and accuracy of %Numerical Bessel function routine, expanding series by REDUCE and %using bigfloats. Described as slow but worthwhile. @InProceedings{Cowan:79, author = "Richard M. Cowan and Martin L. Griss", title = "Hashing -- The Key to Rapid Pattern Matching", booktitle = "Proc. {EUROSAM} 1979, Lecture Notes in Computer Science", year = "1979", volume = "72", pages = "266--278", publisher = "Springer-Verlag", } @Article{Cung:75, author = "V. K. Cung", title = "Differential Cross Section of e+ + e- to e+ + mu- + nubar(mu) + nubar(e)", journal = "Phys. Lett.", year = "1975", volume = "55B", pages = "67--70", } @TechReport{Darbaidze:86, author = "Ya. Z. Darbaidze", title = "A Gluon Bremsstrahlung in Supersymmetry {QCD}", institution = "JINR", year = "1986", type = "Preprint", number = "P2-86-825", } @Article{Darbaidze:86a, author = "J. Z. Darbaidze and V. A. Matveev and Z. V. Merebashvili and L. A. Slepchenko", title = "Gluon Bremsstrahlung in Supersymmetric {QCD}", journal = "Phys. Lett.", year = "1986", volume = "B177", page = "188", } @TechReport{Darbaidze:88, author = "Ya. Z. Darbaidze and Z. V. Merebashvili and V. A. Rostovtsev", title = "Some Computer Realizations of the {REDUCE-3} Calculations for Exclusive Processes", institution = "JINR", year = "1988", type = "Preprint", number = "P2-88-769", } @TechReport{Darbaidze:89, author = "Ya. Z. Darbaidze and V. A. Rostovtsev", title = "Analysis of the Differential Equations for the Exclusive Processes and Explanation for the {"Mystery"} of the {Gamma-Distribution}", institution = "JINR", year = "1989", type = "Preprint", number = "E2-89-286", } @InProceedings{Dautcourt:79, author = "G. Dautcourt", title = "Application of {REDUCE} to Algebraic Computations in General Relativity and Astrophysics", year = "1979", month = sep, booktitle = "Proc. of the Workshop in Symbolic Computation, Dubna, {U.S.S.R.}", } %Reports the use of the system REDUCE 2 for general relativistic %calculations. @TechReport{Dautcourt:80, author = "G. Dautcourt and K. P. Jann", title = "A Program Package in {REDUCE} 2 for Algebraic Computations in General Relativity", year = "1980", institution = "Zentralinstitut fuer Astrophysik der Akademie der Wissenschaften", } @Article{Dautcourt:81, author = "G. Dautcourt and K. P. Jann and E. Riemer and M. Riemer", title = "User's Guide to {REDUCE} Subroutines For Algebraic Computations in General Relativity", journal = "Astron. Nachr.", year = "1981", volume = "302", pages = "1--13", } @Article{Dautcourt:83, author = "G. Dautcourt", title = "The Cosmological Problem as an Initial Value Problem on the Observer's Past Light Cone: Geometry", journal = "J. Phys. A", year = "1983", volume = "16", pages = "3507--3528", } %Checked calculations with REDUCE, mainly Riemann tensor in null %coordinates. @Article{Davenport:81, author = "James Harold Davenport", title = "On the Integration of Algebraic Functions", journal = "Lecture Notes in Computer Science", year = "1981", volume = "102", pages = "1--197", } @Article{Davenport:82, author = "James H. Davenport", title = "Fast {REDUCE:} The {trade-off} between efficiency and generality", journal = "{SIGSAM} Bulletin", year = "1982", volume = "16", number = "1", pages = "8--11", month = feb, } @Article{Davenport:82a, author = "James H. Davenport", title = "What do we want from a {high-level} language?", journal = "{SIGSAM} Bulletin", year = "1982", volume = "16", number = "4", pages = "6--9", month = nov, } @InProceedings{Davenport:85, author = "James Davenport and Julian Padget", title = "{HEUGCD:} How Elementary Upperbounds Generate Cheaper Data", booktitle = "Proc. {EUROCAL} 1985, Lecture Notes in Computer Science", year = "1985", volume = "204", pages = "18--28", publisher = "Springer-Verlag", } @Article{Davenport:88, author = "J. H. Davenport", title = "The World of Computer Algebra", journal = "New Scientist", year = "1988", month = sep, volume = "1629", pages = "71--72", } @Book{Davenport:88a, author = "J. H. Davenport and Y. Siret and E. Tournier", title = "Computer Algebra, Systems and Algorithms for Algebraic Computation", publisher = "Academic Press", year = "1988", } @TechReport{Della-Dora:81, author = "J. Della Dora and E. Tournier", title = "Solutions Formelles {D'Equations} Differentielles au Voisinage de Points Singuliers Reguliers", institution = "Centre National de la Recherche Scientifique", year = "1981", type = "Report", number = "239", } @InProceedings{Della-Dora:84, author = "J. Della Dora and E. Tournier", title = "Homogeneous Linear Difference Equation {(Frobenius-Boole Method)}", booktitle = "Proc. {EUROSAM} 1984, Lecture Notes in Computer Science", year = "1984", volume = "174", pages = "2--12", publisher = "Springer-Verlag", } @TechReport{Della-Dora:85, author = "Jean Della-Dora and Claire Dicrescenzo and Dominique Duval", title = "About a New Method for Computing in Algebraic Number Fields", institution = "Universit\'{e} de Grenoble, Institut Fourier, France", year = "1985", month = nov, } @Article{Demaret:89, author = "J. Demaret and H. Caprasse and A. Moussiaux and Ph. Tombal and D. Papadopoulos", title = "{Ten-dimensional Lovelock-type Space-Times}", journal = "{To appear} Phys. Rev. D", year = "1989", month = jul, } @Article{DeMenna:87, author = "L. De Menna and G. Miano and G. Rubinacci", title = "Volterra's Series Solutions of Free Boundary Plasma Equilibria", journal = "Phys. Fluids", year = "1987", volume = "30", pages = "409--416", } %Magnetohydrodynamics. "We have carried out the computations up to %the fourth order, (the fourth order has been obtained by means of the %symbolic program REDUCE". @Article{Demichev:85, author = "A. P. Demichev and A. Ya. Rodionov", title = "A {REDUCE} Program for the Calculation of Geometrical Characteristics of Compactified Multidimensional {Riemannian} Space", journal = "Comp. Phys. Comm.", year = "1985", volume = "38", pages = "441--448", } %Covariant theories in N dimensional ($N \geq 4$) space-time. %REDUCE programs to calculate Ricci, Einstein and Yang-Mills curvature %and energy-momentum tensor. @TechReport{Demichev:86, author = "A. P. Demichev and A. Ya. Rodionov", title = "Freund-{Rubin} Type Solutions for Different Compactifications of the Eleven-Dimensional Space", institution = "Institute for High Energy Physics", year = "1986", type = "Preprint", number = "86-85", } %The results of calculating geometrical characteristics of %seven-dimensional quotient spaces are represented. These %quantities are necessary for the construction of compactifying %solutions of the eleven-dimensional supergravity. @Article{deRop:88, author = "Y. de Rop and J. Demaret", title = "Using {EXCALC} to Study Nondiagonal Multidimensional Spatially Homogeneous Cosmologies", journal = "Gen. Rel. Grav.", year = "1988", volume = "20", pages = "1127--1139", } @TechReport{DeVos:89, author = "Alexis De Vos", title = "The use of {Reduce} in solar energy conversion theory", institution = "State University of Gent, {CAGe} Computer Algebra Group", year = "1989", type = "Reports of the {CAGe} Project", number = "4", month = aug, } @InProceedings{Dewar:89, author = "M. C. Dewar", title = "{IRENA --} An Integrated Symbolic and Numerical Computation Environment", booktitle = "Proc. of {ISSAC} '89", publisher = "{ACM} Press, New York", year = "1989", pages = "171--179", } @Article{Dhar:85, author = "D. Dhar and J-M. Maillard", title = "Susceptibility of the Checkerboard {Ising} Model", journal = "J. Phys. A", year = "1985", volume = "18", pages = "L383--L388", } %Used REDUCE for tedious algebra, and got a simple answer. Statistical %mechanics(?). "At the disorder variety, the n-point correlation %functions of the checkerboard Potts model has a simple causal %structure. An exact expression for the susceptibility in the Ising %case is obtained." @TechReport{Dicrescenzo:85, author = "Claire Dicrescenzo", title = "Algebraic Computation on Algebraic Numbers", institution = "Institut Fourier, Laboratoire de Math\'{e}matiques, France", year = "1985", month = dec, } %Examples are given of a new method, implemented on REDUCE, %for computing algebraically on algebraic numbers. @TechReport{Diver, author = "D. A. Diver and E. Q. Laing and C. C. Sellar", title = "Waves in a Cold Plasma with a Spatially Rotating Magnetic Field", institution = "Department of Physics and Astronomy, University of Glasgow, Plasma Physics Group", type = "Report", number = "GU TPA 88/12-1", } %"...The algebraic manipulation system REDUCE was used in constructing the %following tensor definitions which allows us to make fewer %approximations than other authors." @InProceedings{Diver:86, author = "D. A. Diver and E. W. Laing", title = "Proc. 8th {Europhysics} Conference on Computational Physics", year = "1986", booktitle = "Computing in Plasma Physics", } @InProceedings{Diver:88, author = "D. A. Diver and E. W. Laing", title = "Proc. {XV} {European} Conference on Controlled Fusion and Plasma Heating", year = "1988", } @TechReport{Diver:88a, author = "D. A. Diver and E. W. Laing", title = "Alfven Resonance Absorption in a Magnetofluid", year = "1988", type = "Internal Report", number = "GUTPA 88/04-01", month = jul, } %Presented at 15th UK Plasma Physics Conference, UMIST. @TechReport{Dorfi:85, author = "E. A. Dorfi and L. O'C. Drury", title = "Simple Adaptive Grids for {1D} Initial Value Problems", institution = "Max-Plack-Institut fuer Kernphysik, Heidelberg, West Germany", year = "1985", number = "MPI H-1985-V21", } @Article{Dorizzi:86, author = "B. Dorizzi and B. Grammaticos and J. Hietarinta and A. Ramani and F. Schwarz", title = "New integrable three dimensional quartic potentials", journal = "Phys. Lett.", year = "1986", volume = "116A", pages = "432--436", } %REDUCE is used to construct and verify constants of motion. @TechReport{dosSantos:85, author = "R. P. dos Santos and P. P. Srivastava", title = "Two-loop Effective Potential for Wess-Zumino Model using Superfields", institution = "International Centre for Theoretical Physics", year = "1985", number = "IC/85/205", month = oct, } %"For the case of several interacting chiral superfields the propagators %for the unconstrained superfield potentials in the 'shifted' theory, %where the supersymmetry is explicity broken, are derived in a compact %form. They are used to compute one-loop effective potential in the %general case, while a superfield calculation of renormalized effective %potential to two loops for the Wess-Zumino model is performed." @Article{dosSantos:87, author = "Renato P. dos Santos", title = "Using {REDUCE} in Supersymmetry", journal = "J. Symb. Comp.", year = "1989", volume = "7", pages = "523--525", } @PhdThesis{dosSantos:87a, author = "R. P. dos Santos", title = "{O} M\'{e}todo de Supercampos para o C\'{a}lculo de Potencial Efetivo em Modelos com Supercampos Quirais: Os Modelos de Wess e Zumino e de {O'Raifeartaigh}", school = "Centro Brasileiro de Pesquisas F\'{i}sicas", year = "1987", } %(In Portuguese) Using the method of Superfields, the effective %potential for supersymmetric models of Wess-Zumino and of %O'Raifeartaigh is evaluated up to two-loop order. The spontaneous %supersymmetry breaking is discussed. REDUCE plays very important %role in evaluation of the Feynman superdiagrams and in %renormalization. @TechReport{dosSantos:88a, author = "Renato P. dos Santos", title = "Introdu\c{c}\~{a}o ao Sistema {REDUCE} de C\'{a}lculo Alg\'{e}brico", institution = "CBPF, Rio de Janeiro, Brazil", year = "1988", number = "CBPF-NT-001/88", } %(In Portuguese) Lecture notes of a course on REDUCE. @Article{Dubowsky:75, author = "S. Dubowsky and J. L. Grant", title = "Application of Symbolic Manipulation to Time Domain Analysis of Nonlinear Dynamic Systems", journal = "Journ. of Dynamic Systems, Measurement, and Control", year = "1975", number = "75-Aut-J", } @Article{Dudley:89, author = "M. L. Dudley and R. W. James", title = "{Computer-aided} Derivation of Spherical Harmonic Spectral Equations in Astrogeophyics", journal = "J. Symbolic Computation", year = "1989", volume = "8", number = "4", pages = "423--427", month = oct, } @Article{Dufner:69, author = "A. M. Dufner and Y. S. Tsai", title = "Phenomenological Analysis of the $\gamma${NN*} Form Factors", journal = "Phys. Rev.", year = "1969", volume = "168", pages = "1801--1809", } @InProceedings{Dulyan:87, author = "L. S. Dulyan", title = "The Calculation of {QCD} Triangular {Feynman} Graphs in the External Gluonic Field Using {REDUCE}-2 System", booktitle = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", year = "1987", volume = "378", pages = "172--173", publisher = "Springer-Verlag", } @Article{Duncan:86, author = "Anthony Duncan and Ralph Roskies", title = "Representations of Unusual Mathematical Structures in Scientific Applications of Symbolic Computation", journal = "J. Symbolic Computation", year = "1986", volume = "2", number = "2", pages = "201--206", month = jun, } %We present examples of techniques we have used to apply REDUCE to problems %in particle physics which have mathematical structures unknown to REDUCE. @PhdThesis{Duval:87, author = "Dominique Duval", title = "Diverses questions relatives au Calcul Formel Avec des Nombres Alg\'{e}briques", school = "L'Universit\'{e} Scientifique, Technologique et M\'{e}dicale de Grenoble", year = "1987", } @Article{Earles:70, author = "D. Earles", title = "A Measurement of the Electron-Production of Muon Pairs", journal = "Phys. Rev. Lett.", year = "1970", volume = "25", pages = "129--133", } @Article{Eastwood:87, author = "James W. Eastwood", title = "Orthovec: A {REDUCE} Program for {3-D} Vector Analysis in Orthogonal Curvilinear Coordinates", journal = "Comp. Phys. Commun.", year = "1987", volume = "47", number = "1", pages = "139--147", month = oct, } @TechReport{Edelen:81, author = "Dominic G. B. Edelen", title = "Programs for Calculation of Isovector Fields in the {REDUCE}-2 Environment", institution = "Center for the Application of Mathematics, Lehigh University", year = "1981", number = "TBD", month = aug, } @Article{Edelen:82, author = "D. G. B. Edelen", title = "Isovector Fields for Problems in the Mechanics of Solids and Fluids", journal = "Int. Journ. Eng. Sci.", year = "1982", volume = "20", pages = "803--815", } %Prolongation methods as a REDUCE package for this, available from %Center for Applications of Mathematics, Lehigh Univ., Bethlehem, PA %18015. Applications to mechanics of solids and fluids. @Book{Edneral:89, author = "Viktor F. Edneral and Aleksandr P. Kryukov and Anatolii Ia. Rodionov", title = "The language of the analytic computer program {REDUCE}", publisher = "Moscow, {Izd-vo}, Moskovskogo {un-ta}", year = "1989", } %This monograph -- first in The Soviet Union with a systematic treatment %of the analytical computer (program) REDUCE. @Article{Eisenberger:90, author = "Moshe Eisenberger", title = "Application of Symbolic Algebra to the Analysis of Plates on Variable Elastic Foundation", journal = "J. Symbolic Computation", year = "1990", volume = "9", number = "2", pages = "207--213", month = feb, } @TechReport{Eissfeller:86, author = "Bernd {Ei{\ss}feller} and {G\"{u}nter} W. Hein", title = "A Contribution to {3D-Operational} Geodesy", institution = "{Universit\"{a}rer} Studiengang Vermessungswesen and {Universit\"{a}t} der Bundeswehr {M\"{u}nchen}", year = "1986", number = "Heft 17", month = dec, } @PhdThesis{Eitelbach:73, author = "D. L. Eitelbach", title = "Automatic Analysis of Problems in Elementary Mechanics", school = "University of Illinois", year = "1973", } @Article{Eleuterio:82, author = "S. M. Eleut\'{e}rio and R. V. Mendes", title = "Note on Equivalence and Singularities: An Application of Computer Algebra", journal = "Journ. Comp. Phys.", year = "1982", volume = "48", pages = "150--156", } %GR equivalence, commenting on \AAman & Karlhede. @Article{Eliseev:85, author = "V. P. Eliseev and R. N. Fedorova and V. V. Kornyak", title = "A {REDUCE} Program for Determining Point and Contact {Lie} Symmetries of Differential Equations", journal = "Comp. Phys. Comm.", year = "1985", volume = "36", pages = "383--389", } %"A universal REDUCE program for obtaining the systems of %determining equations of the Lie algebra of point and contact %symmetries is proposed". @Article{Elishakoff:87, author = "Isaac Elishakoff and Joseph Hollkamp", title = "Computerized Symbolic Solution for a Nonconservative System in Which Instability Occurs by Flutter in One Range of a Parameter and by Divergence in Another", journal = "Comp. Methods in Applied Mechanics and Engineering", year = "1987", volume = "62", pages = "27--46", } %"...the problem is solved by the Galerkin method in conjunction with %computerized symbolic algebra". The system used is REDUCE. "It %carries out algebraic operations irrespective of their complexity". %Includes snatches of code and algebraic answers. Mainly %differentiation and substitution, plus a little integration. The %coefficients get rather large (18 digits or so). @Article{Elishakoff:87a, author = "Isaac Elishakoff and Brian Couch", title = "Application of Symbolic Algebra to the Instability of a Nonconservative System", journal = "J. Symbolic Computation", year = "1987", volume = "4", number = "3", pages = "391--396", month = dec, } @Article{Esteban:90, author = "E. P. Esteban and E. Ramos", title = "Algebraic computing and the {Newman-Penrose} formalism", journal = "Computers in Physics", year = "1990", pages = "285--290", month = may # "/" # jun, } @Article{Falck:89, author = "N. K. Falck and D. Graudenz and G. Kramer", title = "Cross section for {five-parton} production in $e^{+} e^{-}$ annihilation", journal = "Comp. Phys. Comm.", year = "1989", volume = "56", pages = "181--198", number = "2", month = dec, } @Article{Fazio:84, author = "P. M. Fazio and G. E. Copeland", title = "Cooper-Type Minima in Multipole Cross Sections of Atomic Hydrogen", journal = "Phys. Rev. Lett.", year = "1984", volume = "53", number = "2", month = jul, } @InProceedings{Fedorova:87, author = "R. N. Fedorova and V. P. Gerdt and N. N. Govorun and V. P. Shirikov", title = "Computer Algebra in Physical Research of {Joint Institute} for {Nuclear Research}", booktitle = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", year = "1987", volume = "378", pages = "1--10", publisher = "Springer-Verlag", } @InProceedings{Fedorova:87a, author = "R. N. Fedorova and V. V. Kornyak", title = "Computer Algebra Application for Determining Local Symmetries of Differential Equations", booktitle = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", year = "1987", volume = "378", pages = "174--175", publisher = "Springer-Verlag", } @Article{Feldmar:86, author = "E. Feldmar and K. S. {K\"{o}lbig}", title = "{REDUCE} Procedures for the Manipulation of Generalized Power Series", journal = "Comp. Phys. Comm.", year = "1986", volume = "39", pages = "267--284", } @Article{Feuillebois:84, author = "F. Feuillebois", title = "Sedimentation in a Dispersion with Vertical Inhomogenieties", journal = "Journ. Fluid Mech.", year = "1984", volume = "139", pages = "145--171", } %Uses REDUCE and INT to evaluate some integrals in the expansion of %1/s, a small quantity. @Article{Fitch:73, author = "John Fitch", title = "Problems \#3 and \#4 in {REDUCE} and {MACSYMA}", journal = "SIGSAM Bulletin", year = "1973", pages = "10--11", } %The algebra systems REDUCE and MACSYMA are used to solve SIGSAM %Problem \#3, the Reversion of a Double Series, and SIGSAM Problem \#4, %the Lie Transform Solution of the Harmonic Oscillator. @InProceedings{Fitch:81, author = "J. P. Fitch", title = "User-based Integration Software", booktitle = "Proc. 1981 {ACM} Symposium on Symbolic and Algebraic Computation", year = "1981", pages = "245--248", } @InProceedings{Fitch:83, author = "J. P. Fitch", title = "Implementing {REDUCE} on a Microprocessor", booktitle = "Proc. {EUROCAL} 1983, Lecture Notes in Computer Science", year = "1983", volume = "162", pages = "128--136", publisher = "Springer-Verlag", } @Article{Fitch:85, author = "J. P. Fitch", title = "Solving Algebraic Problems with {REDUCE}", journal = "J. of Symbolic Computation", year = "1985", volume = "1", number = "2", pages = "211--227", month = jun, } @InProceedings{Fitch:85a, author = "J. P. Fitch", title = "Applying Computer Algebra", booktitle = "International Conference on Computer Algebra and its Application in Theory", year = "1985", pages = "262--275", } @InProceedings{Fitch:87, author = "J. P. Fitch", title = "Utilisation du Calcul Formel", booktitle = "Calcul Formel et Automatique", editor = "P. Chenin", publisher = "Editions du {CNRS}", year = "1987", pages = "119--136", } @InProceedings{Fitch:87a, author = "J. P. Fitch and R. G. Hall", title = "Symbolic Computation and the Finite Element Method", booktitle = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", year = "1987", volume = "378", pages = "95--96", publisher = "Springer-Verlag", } @InProceedings{Fitch:89, author = "J. P. Fitch", title = "Can {REDUCE} be run in parallel?", booktitle = "Proc. of {ISSAC} '89", publisher = "{ACM} Press, New York", year = "1989", pages = "155--162", } @Article{Fitch:89a, author = "J. Fitch", title = "Compiling for Parallelism", journal = "Computer Algebra and Parallelism", editor = "J. Della Dora and J. Fitch", year = "1989", pages = "19--31", publisher = "Academic Press, London", } @TechReport{Flatau:86, author = "Piotr J. Flatau and John P. Boyd and William R. Cotton", title = "Symbolic Algebra in Applied Mathematics and Geophysical Fluid Dynamics - {REDUCE} Examples", institution = "Dept. of Atmospheric and Oceanic Science, University of Michigan, and Dept. of Atmospheric Science, Colorado State University", year = "1986", } @TechReport{Flath:86, author = "Dan Flath", title = "Remarks on Tensor Operators", institution = "National University of Singapore, Department of Mathematics", type = "Research Report", year = "1986", number = "266", month = jul, } @Article{Fleischer:71, author = "J. Fleischer", title = "Partial Wave Analysis of Nucleon-Nucleon {Bethe}-{Salpeter} Equation on the Computer", journal = "Journ. of Comp. Phys.", year = "1971", volume = "12", pages = "112--123", } @Article{Fleischer:73, author = "J. Fleischer and J. L. Gammel and M. T. Menzel", title = "Matrix {Pad\'{e}} Approximants for the {1SO}- and {3PO}- Partial Waves in Nucleon-Nucleon Scattering", journal = "Phys. Rev. D", year = "1973", volume = "8", pages = "1545--1552", } @Article{Fleischer:75, author = "J. Fleischer and J. A. Tjon", title = "Bethe-{Salpeter} Equation for {J}=0 Nucleon-Nucleon Scattering with One-Boson Exchange", journal = "Nuclear Physics", year = "1975", volume = "B84", pages = "375--396", } @Article{Fogelholm:82, author = "Rabbe Fogelholm and Inge B. Frick", title = "Standard {LISP} for the {VAX:} A Provisional Implementation", journal = "{SIGSAM} Bulletin", year = "1982", volume = "16", number = "4", pages = "10--12", month = nov, } @Article{Foster:89, author = "Kenneth R. Foster and Haim H. Bau", title = "Symbolic Manipulation Programs for the Personal Computer", journal = "Science", year = "1989", volume = "243", pages = "679--243", month = feb, } %Reviews several algebra programs that run on small machines. Doesn't %rate the PC version of REDUCE very highly because of the small workspace. @Article{Fox:71, author = "J. A. Fox", title = "Recalculation of the Crossed Graph Contribution to the 4th Order {Lamb} Shift", journal = "Phys. Rev. D", year = "1971", volume = "3", pages = "3228--3230", } @Article{Fox:74, author = "John A. Fox and Anthony C. Hearn", title = "Analytic Computation of Some Integrals in Fourth Order Quantum Electrodynamics", journal = "Journ. Comp. Phys.", year = "1974", volume = "14", pages = "301--317", } %A program for the analytic evaluation of some parametric integrals %which occur in fourth order QED calculations is described. @Article{Franceschetti:85, author = "G. Franceschetti and I. Pinto", title = "Nonlinear Propagation and Scattering: Analytical Solution and Symbolic Code Implementation", journal = "J. Opt. Soc. Am. A", year = "1985", volume = "2", pages = "997--1006", } %Volterra series using REDUCE. Perturbation expansions. @InProceedings{Freire:88, author = "E. Freire and E. Gamero and E. Ponce and L. G. Franquelo", title = "An Algorithm for Symbolic Computation of Center Manifolds", booktitle = "Proc. of {ISSAC} '88", publisher = "Springer-Verlag", year = "1988", volume = "358", pages = "218--230", } @InProceedings{Freire:89, author = "E. Freire and E. Gamero and E. Ponce", title = "An Algorithm for Symbolic Computation of {Hopf} Bifurcation", booktitle = "Proc. Computers and Mathematics '89", editor = "E. Kaltofen and S. M. Watt", year = "1989", pages = "109--118", publisher = "Springer-Verlag, New York", } @TechReport{Frick:82, author = "I. G. Frick and R. Fogelholm", title = "An Implementation of {Standard} {Lisp} Built on Top of {Franz Lisp}", institution = "University of Stockholm, Institute of Physics", year = "1982", type = "Report", month = apr, } %A Standard LISP system has been built for the VAX-11 %large-address-space computer by embedding the required %function definitions in the available Franz Lisp system %for VAX/UNIX. @Article{Fujimoto:84, author = "Y. Fujimoto and T. Garavaglia", title = "Phase Diagrams in {Scalar QED}", journal = "Physics Letters", year = "1984", volume = "148B", number = "1,2,3", pages = "220--224", month = nov, } @Article{Fuzio:85, author = "P. M. Fuzio and G. E. Copeland", title = "Partial Radiative-Recombination Cross Sections for Excited States of Hydrogen", journal = "Phys. Rev. A", year = "1985", volume = "31", number = "1", pages = "187--195", } %"The squares of the dipole and quadrupole matrix elements for the %free-to-bond transitions of hydrogen uptp high bound states are %derived in closed analytic form using a method suitable for computer %algebra". bibclean-3.07/test/okay/topt120.err0000444000156700015670000005103313660517103015753 0ustar beebebeebe Usage: ../bibclean [ -author ] [ -copyleft ] [ -copyright ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -ISBN-file filename ] [ -keyword-file filename ] [ -max-width nnn ] [ -[no-]align-equals ] [ -[no-]brace-protect ] [ -[no-]check-values ] [ -[no-]debug-match-failures ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-accents ] [ -[no-]fix-braces ] [ -[no-]fix-degrees ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-math ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-ISBN-table ] [ -[no-]print-keyword-table ] [ -[no-]print-patterns ] [ -[no-]quiet ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -output-file filename ] [ -version ] [ outfile Command-line switches may be abbreviated to a unique leading prefix, and letter case is not significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag to no. For such options, the last setting determines the flag value used. That is significant when options are also specified in initialization files (see the INITIALIZATION FILES manual section). The leading hyphen that distinguishes an option from a filename may be doubled, for compatibility with GNU and POSIX conventions. Thus, -author and --author are equivalent. To avoid confusion with options, if a filename begins with a hyphen, it must be disguised by a leading absolute or relative directory path, e.g., /tmp/-foo.bib or ./-foo.bib. -author Display an author credit on the standard error unit, stderr, and then terminate with a success return code. Sometimes an executable program is separated from its documentation and source code; this option provides a way to recover from that. -copyleft Display copyright information on the standard error unit, stderr, and then terminate with a success return code. -copyright Display copyright information on the standard error unit, stderr, and then terminate with a success return code. -error-log filename Redirect stderr to the indicated file, which then contains all of the error and warning messages. This option is provided for those systems that have difficulty redirecting stderr. -help or -? Display a help message on stderr, giving a usage description, similar to this section of the manual pages, and then terminate with a success return code. -ISBN-file filename Provide an explicit ISBN-range initialization file. It is processed after any system-wide and job-wide ISBN initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. The ISBN initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANISBN, but defaults to .bibclean.isbn on UNIX, and bibclean.isb elsewhere. For further details, see the ISBN INITIALIZATION FILES manual section. -init-file filename Provide an explicit value pattern initialization file. It is processed after any system-wide and job-wide initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANINI, but defaults to .bibcleanrc on UNIX, and to bibclean.ini elsewhere. For further details, see the INITIALIZATION FILES manual section. -keyword-file filename Provide an explicit keyword initialization file. It is processed after any system-wide and job-wide keyword initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. The keyword initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANKEY, but defaults to .bibclean.key on UNIX, and bibclean.key elsewhere. For further details, see the KEYWORD INITIALIZATION FILES manual section. -max-width nnn bibclean normally limits output line widths to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special-purpose applications may require different maximum line widths, so this option provides that capability. The number following the option name can be specified in decimal, octal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is interpreted to mean unlimited, so -max-width 0 can be used to ensure that each field/value pair appears on a single line. When -no-prettyprint requests bibclean to act as a lexical analyzer, the default line width is unlimited, unless overridden by this option. When bibclean is prettyprinting, line wrapping is done only at a space. Consequently, a long non-blank character sequence may result in the output exceeding the requested line width. When bibclean is lexing, line wrapping is done by inserting a backslash-newline pair when the specified maximum is reached, so no line length ever exceeds the maximum. -[no-]align-equals With the positive form, align the equals sign in key/value assignments at the same column, separated by a single space from the value string. Otherwise, the equals sign follows the key, separated by a single space. Default: no. -[no-]brace-protect Protect uppercase and mixedcase words at brace-level zero with braces to prevent downcasing by some BibTeX styles. Default: yes. -[no-]check-values With the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g., ``year = "192"'' instead of ``year = "1992"''), and issue warnings when unexpected patterns are found. That checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can disable it with the negative form of this option. Default: yes. -[no-]debug-match-failures With the positive form, print out a warning when a value pattern fails to match a value string. That is helpful in debugging new patterns, but because the output can be voluminous, you should use this option only with small test files, and initialization files that eliminate all patterns apart from the ones that you are testing. Default: no. -[no-]delete-empty-values With the positive form, remove all field/value pairs for which the value is an empty string. That is helpful in cleaning up bibliographies generated from text editor templates. Compare this option with -[no-]remove-OPT-prefixes described below. Default: no. -[no-]file-position With the positive form, give detailed file position information in warning and error messages. Default: no. -[no-]fix-accents With the positive form, normalize TeX accents in annotes, authors, booktitles, editors, notes, remarks, and titles. Default: no. -[no-]fix-braces With the positive form, normalize bracing in annotes, authors, booktitles, editors, notes, remarks, and titles, by removing unnecessary levels of braces. Default: no. -[no-]fix-degrees With the positive form, remove spaces in author/editor fields inside braces after letter-ending periods. That makes reductions from J. J. {Thomson, M. A., F. R. S.}, Frederick {Soddy, B. A. (Oxon.)}, and John A. {Cable, M. A., M. Ed., Dipl. Deutsch (Marburg), A. L. C. M.} to J. J. {Thomson, M.A., F.R.S.}, Frederick {Soddy, B.A. (Oxon.)}, and John A. {Cable, M.A., M.Ed., Dipl.Deutsch (Marburg), A.L.C.M.}, respectively. In journals in the humanities and history of science, as well as in some scientific journals until well into the 20th Century, academic, honorary, and professional titles and degrees are commonly attached to personal names. Even though modern publishing practice avoids such decorations, for accuracy, bibliography entries should preferably retain them. Journal typographical practice generally follows the reductions described here. -[no-]fix-font-changes With the positive form, supply an additional brace level around font changes in titles to protect against downcasing by some BibTeX styles. Font changes that already have more than one level of braces are not modified. For example, if a title contains the Latin phrase {\em Dictyostelium discoideum} or {\em {D}ictyostelium discoideum}, then downcasing incorrectly converts the phrase to lower-case letters. Most BibTeX users are surprised that bracing the initial letters does not prevent the downcase action. The correct coding is {{\em Dictyostelium discoideum}}. However, there are also legitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, bibclean normally does not supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this option to supply them. If you think that you need this option, it is strongly recommended that you apply bibclean to your bibliography file with and without -fix-font-changes, then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You must decide which of the two output files is the better choice, then repair the incorrect title bracing by hand. Because font changes in titles are uncommon, except for cases of the type that this option is designed to correct, it should do more good than harm. Default: no. -[no-]fix-initials With the positive form, insert a space after a period following author initials. Default: yes. -[no-]fix-math With the positive form, improve readability of math mode in titles by inserting spaces around operators, deleting other unnecessary space, and removing braces around single- character subscripts and superscripts. Default: no. -[no-]fix-names With the positive form, reorder author and editor name lists to remove commas at brace level zero, placing first names or initials before last names. Default: yes. -[no-]German-style With the positive form, interpret quote characters ["] inside braced value strings at brace level 1 according to the conventions of the TeX style file german.sty, which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, invisible hyphens, raised/lowered quotes, French guillemets, and discretionary hyphens. Recognized character combinations are braced to prevent BibTeX from interpreting the quote as a string delimiter. Quoted strings receive no special handling from this option, and because German nouns in titles must anyway be protected from the downcasing operation of most BibTeX bibliography styles, German value strings that use the overloaded quote character can always be entered in the form "{...}", without the need to specify this option at all. Default: no. -[no-]keep-linebreaks Normally, line breaks inside value strings are collapsed into a single space, so that long value strings can later be broken to provide lines of reasonable length. With the positive form, linebreaks are preserved in value strings. If -max-width is set to zero, this preserves the original line breaks. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-parbreaks With the positive form, preserve paragraph breaks (either formfeeds, or lines containing only spaces) in value strings. Normally, paragraph breaks are collapsed into a single space. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-preamble-spaces With the positive form, preserve all whitespace in @Preamble{...} entries. Default: no. -[no-]keep-spaces With the positive form, preserve all spaces in value strings. Normally, multiple spaces are collapsed into a single space. This option can be used together with -keep-linebreaks, -keep-parbreaks, and -max-width 0 to preserve the form of value strings while still providing syntax and value checking. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-string-spaces With the positive form, preserve all whitespace in @String{...} entries. Default: no. -[no-]parbreaks With the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field/value pairs. That may be useful to quickly trap runaway strings arising from mismatched delimiters. Default: yes. -[no-]prettyprint Normally, bibclean functions as a prettyprinter. However, with the negative form of this option, it acts as a lexical analyzer instead, producing a stream of lexical tokens. See the LEXICAL ANALYSIS manual section for further details. Default: yes. -[no-]print-ISBN-table With the positive form, print the ISBN-range table on stderr, then terminate with a success return code. That action is taken after all command-line options are processed, and before any input files are read (other than those that are values of command-line options). The format of the output ISBN-range table is acceptable for input as an ISBN initialization file (see the ISBN INITIALIZATION FILES manual section). Default: no. -[no-]print-keyword-table With the positive form, print the keyword initialization table on stderr, then terminate with a success return code. That action is taken after all command-line options are processed, and before any input files are read (other than those that are values of command-line options). The format of the output table is acceptable for input as a keyword initialization file (see the KEYWORD INITIALIZATION FILES manual section). Default: no. -[no-]print-patterns With the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used. When bibclean is compiled with native pattern-matching code (the default), those patterns are the ones that are used in checking value strings for valid syntax, and all of them are specified in initialization files, rather than hard-coded into the program. For further details, see the INITIALIZATION FILES manual section. Default: no. -[no-]quiet This option is the opposite of -[no-]warning; it exists for user convenience, and for compatibility with other programs that use -q for quiet operation, without warning messages. -[no-]read-init-files With the negative form, suppress loading of system-, user-, and file-specific initialization files. Initializations then come only from those files explicitly given by -init-file filename options. Default: yes. -[no-]remove-OPT-prefixes With the positive form, remove the ``OPT'' prefix from each field name where the corresponding value is not an empty string. The prefix ``OPT'' must be entirely in upper-case to be recognized. This option is for bibliographies generated with the help of the GNU Emacs BibTeX editing support, which generates templates with optional fields identified by the ``OPT'' prefix. Although the function M-x bibtex-remove-OPT normally bound to the keystrokes C-c C-o does the job, users often forget, with the result that BibTeX does not recognize the field name, and ignores the value string. Compare this option with -[no-]delete-empty-values described above. Default: no. -[no-]scribe With the positive form, accept input syntax conforming to the Scribe document system. The output is converted to conform to BibTeX syntax. See the SCRIBE BIBLIOGRAPHY FORMAT manual section for further details. Default: no. -[no-]trace-file-opening With the positive form, record in the error log file the names of all files that bibclean attempts to open. Use this option to identify where initialization files are located. Default: no. -[no-]warnings With the positive form, allow all warning messages. The negative form is not recommended because it may mask problems that should be repaired. Default: yes. -output-file filename Supply an alternate output file to replace stdout. If the filename cannot be opened for output, execution terminates immediately with a nonzero exit code. -version Display the program version number on stderr, and then terminate with a success return code. That includes an indication of who compiled the program, the host name on which it was compiled, the time of compilation, and the type of string-value matching code selected, when that information is available to the compiler. bibclean-3.07/test/okay/topt324.out0000444000156700015670000000000112470143225015763 0ustar beebebeebe bibclean-3.07/test/okay/topt117.out0000444000156700015670000000000112470143210015755 0ustar beebebeebe bibclean-3.07/test/okay/topt313.err0000444000156700015670000000000012470142674015750 0ustar beebebeebebibclean-3.07/test/okay/testopte.out0000444000156700015670000000000007342757115016425 0ustar beebebeebebibclean-3.07/test/okay/testscr3.err0000444000156700015670000000000005304617566016312 0ustar beebebeebebibclean-3.07/test/okay/topt358.out0000444000156700015670000000000012470142676016002 0ustar beebebeebebibclean-3.07/test/okay/topt335.out0000444000156700015670000000000112470143227015767 0ustar beebebeebe bibclean-3.07/test/okay/topt131.err0000444000156700015670000000000012470142673015745 0ustar beebebeebebibclean-3.07/test/okay/topt349.out0000444000156700015670000000000112470143230015766 0ustar beebebeebe bibclean-3.07/test/okay/topt302.err0000444000156700015670000000000012470142674015746 0ustar beebebeebebibclean-3.07/test/okay/topt106.out0000444000156700015670000000000112470143204015756 0ustar beebebeebe bibclean-3.07/test/okay/testltx1.bbl0000444000156700015670000012404707342724304016312 0ustar beebebeebe\newcommand{\etalchar}[1]{$^{#1}$} \begin{thebibliography}{ANGK{\etalchar{+}}87} \bibitem[AB70]{Appelquist:70} T.~W. Appelquist and S.~J. Brodsky. \newblock The order $\alpha^{2}$ electrodynamic corrections to the {Lamb} shift. \newblock {\em Phys. Rev. Letters}, 24:562--565, 1970. \bibitem[AB83]{Adkins:83a} G.~S. Adkins and F.~R. Brown. \newblock Rate for positronium decay to five photons. \newblock {\em Phys. Rev. A}, 28:1164--1165, 1983. \bibitem[AB89]{Autin:89} B.~Autin and J.~Bengtsson. \newblock Symbolic evaluation of integrals occurring in accelerator orbit theory. \newblock {\em J. Symbolic Computation}, 7(2):183--187, February 1989. \bibitem[Abb87]{Abbott:87a} J.~A. Abbott. \newblock Integration: Solving the {Risch} differential equation. \newblock In {\em Proc. {EUROCAL} '87, Lecture Notes in Computer Science}, volume 378, pages 465--467. Springer-Verlag, 1987. \bibitem[Abb88]{Abbott:88} J.~A. Abbott. \newblock {\em Factorisation of Polynomials over Algebraic Number Fields}. \newblock PhD thesis, Univ. of Bath, England, 1988. \bibitem[Abb89]{Abbott:89} J.~A. Abbott. \newblock Recovery of algebraic numbers from their p-adic approximations. \newblock In {\em Proc. of {ISSAC} '89}, pages 112--120. {ACM} Press, New York, 1989. \bibitem[ABD85]{Abbott:85} J.~A. Abbott, R.~J. Bradford, and J.~H. Davenport. \newblock A remark on factorisation. \newblock {\em {SIGSAM} Bulletin}, 19(2):31--33, May 1985. \bibitem[ABD86a]{Abbott:86} J.~A. Abbott, R.~J. Bradford, and J.~H. Davenport. \newblock The {Bath} algebraic number package. \newblock In {\em Proc. of {SYMSAC} '86}, pages 250--253, 1986. \bibitem[ABD86b]{Arbuzov:86} B.~A. Arbuzov, E.~E. Boos, and A.~I. Davydychev. \newblock Infrared asymptotics of gluonic {Green} functions in covariant gauge. \newblock Preprint 86-123, IHEP, 1986. \bibitem[ABD89]{Abbott:89a} J.~A. Abbott, R.~J. Bradford, and J.~H. Davenport. \newblock A remark on the multiplication of sparse polynomials. \newblock Technical Report TR 89-21, School of Mathematical Sciences, University of Bath, 1989. \bibitem[ABDK69]{Aldins:69} J.~Aldins, S.~J. Brodsky, A.~J. Dufner, and T.~Kinoshita. \newblock Photon-photon scattering contribution to the sixth order magnetic moments of the muon and electron. \newblock {\em Phys. Rev. Lett.}, 23:441--443, 1969. \bibitem[{Abi}83]{Abiezzi:83} Salim~S. {Abi-Ezzi}. \newblock Clarification to the symbolic mode in {REDUCE}. \newblock {\em {SIGSAM} Bulletin}, 17(3 and 4):43--47, August and November 1983. \bibitem[AD87]{Abbott:87} J.~A. Abbott and J.~H. Davenport. \newblock Polynomial factorization: An exploration of {Lenstra's} algorithm. \newblock In {\em Proc. {EUROCAL} '87, Lecture Notes in Computer Science}, volume 378, pages 391--402. Springer-Verlag, 1987. \bibitem[AD88]{Abbott:88a} J.~A. Abbott and J.~H. Davenport. \newblock A remark on a paper by {Wang}: Another surprising property of 42. \newblock {\em Math. Comp.}, 51:837--839, 1988. \bibitem[Ada83]{Adams:83} K.~J. Adams. \newblock Analytic estimates for the dynamic aperture of nonlinear lattices. \newblock {\em IEEE Trans. Nucl. Sci.}, NS-30:2436--2438, 1983. \bibitem[ADB{\etalchar{+}}84a]{Aurenche:84} P.~Aurenche, A.~Douir, R.~Baier, M.~Fontannaz, and D.~Schiff. \newblock Photoproduction of hadrons at large transverse momentum in second order {QCD}. \newblock {\em Phys. Lett.}, 135B:164--168, 1984. \bibitem[ADB{\etalchar{+}}84b]{Aurenche:84a} P.~Aurenche, A.~Douir, R.~Baier, M.~Fontannaz, and D.~Schiff. \newblock Prompt photon production at large $p_{\tau}$ in {GCD} beyond the leading order. \newblock {\em Phys. Lett.}, 140B:87--92, 1984. \bibitem[Adk83]{Adkins:83} G.~S. Adkins. \newblock Analytic evaluation of an {O}($\alpha$) vertex correction to the rate of orthopositronium. \newblock {\em Phys. Rev. A}, 27:530--532, 1983. \bibitem[Adk85]{Adkins:85} G.~S. Adkins. \newblock Inner-vertex contributions to the decay rate of orthopositronium. \newblock {\em Phys. Rev. A}, 31:1250--1252, 1985. \bibitem[AE86]{Alekseev:86} A.~I. Alekseev and V.~F. Edneral. \newblock Tensor structure of axial gauge polarization operator in the infrared region. \newblock Preprint 86-46, IHEP, 1986. \bibitem[AE87a]{Alekseev:87a} A.~I. Alekseev and V.~F. Edneral. \newblock On evaluation of {Feynman} integrals in axial gauge. \newblock Preprint 87-118, IHEP, 1987. \bibitem[AE87b]{Alekseev:87} A.~I. Alekseev and V.~F. Edneral. \newblock Tensor structure of gluon polarization operator in the axial gauge for infra-red region. \newblock {\em Journal of Nuclear Physics}, pages 1105--1114, 1987. \bibitem[AH73]{Atherton:73} R.~W. Atherton and G.~M. Homsey. \newblock Use of symbolic computation to generate evolution equations and asymptotic solutions to elliptic equations. \newblock {\em Journ. Comp. Phys.}, 1:45--59, 1973. \bibitem[Alf82]{Alfeld:82} P.~Alfeld. \newblock Fixed point iteration with inexact function values. \newblock {\em Math. Comp.}, 38:87--98, 1982. \bibitem[ANGK{\etalchar{+}}87]{Aguilera-Navarro:87} V.~C. Aguilera-Navarro, R.~Guardiola, C.~Keller, M.~de~Llano, M.~Popovic, and M.~Fortes. \newblock Van der {Waals} perturbation theory for fermion and boson ground-state matter. \newblock {\em Phys. Rev. A}, 35:563--584, 1987. \bibitem[ANK81]{Aso:81} T.~Aso, T.~Nonoyama, and S.~Kato. \newblock Numerical simulation of semidiurnal atmospheric tides. \newblock {\em J. Geophysical R.}, 86(11):388--400, 1981. \bibitem[ASW89]{Antweiler:89} Werner Antweiler, Andreas Strotmann, and Volker Winkelmann. \newblock A {\TeX-{reduce}-interface}. \newblock {\em SIGSAM Bulletin}, 23:26--33, February 1989. \bibitem[AW88]{Abdali:88} S.~K. Abdali and D.~S. Wise. \newblock Experiments with quadtree representation of matrices. \newblock In {\em Proc. of {ISSAC} '88}, volume 358, pages 96--108. Springer-Verlag, 1988. \bibitem[AZZ87]{Amirkhanov:87} I.~V. Amirkhanov, E.~P. Zhydkov, and I.~E. Zhydkova. \newblock The conditions of bounding of the oscillation amplitudes of charge particle within the resonance vicinity investigations. \newblock Technical Report P11-87-452, J.I.N.R., Dubna, 1987. \bibitem[BBA73]{Barthes-Biesel:73} D.~Barthes-Biesel and A.~Acrivos. \newblock On computer generated analytic solutions to the equations of fluid mechanics, the case of creeping flows. \newblock {\em Journ. Comp. Phys.}, 3:403--411, 1973. \bibitem[BBF{\etalchar{+}}82]{Baker:81} G.~A. Baker, L.~P. Benofy, M.~Fortes, M.~de~Llano, S.~M. Peltier, and A.~Plastino. \newblock Hard-core square-well fermion. \newblock {\em Phys. Rev. A}, 26:3575--3588, 1982. \bibitem[BBR85]{Bessis:85} N.~Bessis, G.~Bessis, and D.~Roux. \newblock Closed-form expressions for the {Dirac-Coulomb} radial $r^{t}$ integrals. \newblock {\em Phys. Rev. A}, 32:2044--2050, 1985. \bibitem[BC81]{Bordoni:81} Luciana Bordoni and Attilio Colagrossi. \newblock An application of {REDUCE} to industrial mechanics. \newblock {\em {SIGSAM} Bulletin}, 15(2):8--12, May 1981. \bibitem[BC90]{Bittencourt:90} Guilherme Bittencourt and Jacques Calmet. \newblock Integrating computer algebra and knowledge representation. \newblock Preprint, {Universit\"{a}t} Karlsruhe Institut {f\"{u}r} Algorithmen und Kognitive Systeme, 1990. \bibitem[BCDS87]{Brackx:87a} F.~Brackx, D.~Constales, R.~Delanghe, and H.~Serras. \newblock {Clifford} algebra with {REDUCE}. \newblock {\em Rend. Circ. Mat. Palermo, Ser. II}, 16:11--19, 1987. \bibitem[BCRS89]{Brackx:89} F.~Brackx, D.~Constales, A.~Ronveaux, and H.~Serras. \newblock On the harmonic and monogenic decomposition of polynomials. \newblock {\em J. Symbolic Computation}, 8(3):297--304, September 1989. \bibitem[BCTC75]{Biswas:75} S.~N. Biswas, S.~R. Chaudhuri, K.~S. Taank, and J.~A. Campbell. \newblock Neutrino production in stellar matter by photons in a renormalizable scalar-boson-exchange model of weak interactions. \newblock {\em Phys. Rev. D}, 8:2523--2525, 1975. \bibitem[BD88]{Bradford:88} R.~J. Bradford and J.~H. Davenport. \newblock Effective tests for cyclotomic polynomials. \newblock In {\em Proc. of {ISSAC} '88}, volume 358, pages 244--251. Springer-Verlag, 1988. \bibitem[BDM{\etalchar{+}}87]{Bowyer:87} A.~Bowyer, J.~H. Davenport, P.~S. Milne, J.~A. Padget, and A.~F. Wallis. \newblock Applications of computer algebra in solid modelling. \newblock In {\em Proc. {EUROCAL} '87, Lecture Notes in Computer Science}, volume 378, pages 244--245. Springer-Verlag, 1987. \bibitem[BDS]{Bennett} J.~P. Bennett, J.~H. Davenport, and H.~M. Sauro. \newblock Solution of some equations in biochemistry. \newblock Technical Report 88-12, School of Mathematical Sciences, University of Bath, England. \bibitem[BG87]{Baekler:87a} P.~Baekler and M.~Guerses. \newblock Exact solutions of the {Poincar\'{e}} gauge theory from its linearized field equations. \newblock {\em Lett. Math. Phys.}, 14:185--191, 1987. \bibitem[BGH88]{Baekler:88b} P.~Baekler, M.~Guerses, and F.~W. Hehl. \newblock A new method to solve the field equations of {Poincar\'{e}} gauge theories. \newblock {\em Class. Quantum Grav.}, 1988. \bibitem[BGHM88]{Baekler:88a} P.~Baekler, M.~Guerses, F.~W. Hehl, and J.~D. McCrea. \newblock The exterior gravitational field of a charged spinning source in the {Poincar\'{e}} gauge theory: A {Kerr-Newman} metric with dynamic torsion. \newblock {\em Phys. Lett.}, A128:245--250, 1988. \bibitem[BGJ72]{Brodsky:72a} S.~J. Brodsky, J.~F. Gunion, and R.~L. Jaffe. \newblock Test for fractionally charged partons from deep-inelastic bremsstrahlung in the scaling region. \newblock {\em Phys. Rev. D}, 6:2487--2494, 1972. \bibitem[BGK86]{Boege:86} W.~Boege, R.~Gebauer, and H.~Kredel. \newblock Some examples for solving systems of algebraic equations by calculating {Groebner} bases. \newblock {\em J. Symbolic Computation}, 2(1):83--98, March 1986. \bibitem[BGKN89]{Berkovich:89} L.M. Berkovich, V.P. Gerdt, Z.T. Kostova, and M.L. Nechaevsky. \newblock Second order reducible linear differential equations. \newblock Preprint E5-89-141, J.I.N.R., Dubna, 1989. \bibitem[BH72]{Barton:72} David Barton and Anthony~C. Hearn. \newblock Comment on problem \#2 - the {Y(2n)} functions. \newblock {\em SIGSAM Bulletin}, 15, 1972. \bibitem[BH79]{Brown:79} W.~S. Brown and A.~C. Hearn. \newblock Applications of symbolic algebraic computation. \newblock {\em Comp. Phys. Comm.}, 17:207--215, 1979. \bibitem[BH84a]{Baekler:84} P.~Baekler and F.~W. Hehl. \newblock A charged {Taub-NUT} metric with torsion: A new axially symmetric solution of the {Poincar\'{e}} gauge field theory. \newblock {\em Phys. Lett.}, 100A:277--316, 1984. \bibitem[BH84b]{Baekler:84a} Peter Baekler and Friedrich~W. Hehl. \newblock On the dynamics of the torsion of spacetime: Exact solutions in a gauge theoretical model of gravity. \newblock Technical Report UCLA/84/TEP/19, Department of Physics, University of California, Los Angeles, December 1984. \bibitem[BH88]{Bogdanova:88} N.~Bogdanova and H.~Hogreve. \newblock A {REDUCE} package for exact {Coulomb} interaction matrix elements. \newblock {\em Comp. Phys. Commun.}, 48(2):319--326, February 1988. \bibitem[BHHS87]{Baekler:87} P.~Baekler, R.~Hecht, F.~W. Hehl, and T.~Shirafuji. \newblock Mass and spin of exact solutions of the {Poincar\'{e}} gauge theory. \newblock {\em Prog. Theor. Phys.}, 78:16--21, 1987. \bibitem[BHM86]{Baekler:86} P.~Baekler, F.~W. Hehl, and E.~W. Mielke. \newblock Nonmetricity and torsion: Facts and fancies in gauge approaches to gravity. \newblock In R.~Ruffini, editor, {\em Proc. 4th Marcel Grossmann Meeting on General Relativity, ed.}, pages 277--316. North-Holland, Amsterdam, 1986. \bibitem[BHP62]{Brodsky:62} S.~J. Brodsky, A.~C. Hearn, and R.~G. Parsons. \newblock Determination of the real part of the {Compton} amplitude at a nucleon resonance. \newblock {\em Phys. Rev.}, 187:1899--1904, 1962. \bibitem[BHPS86]{Bradford:86} R.~J. Bradford, A.~C. Hearn, J.~A. Padget, and E.~{Schr\"{u}fer}. \newblock Enlarging the {REDUCE} domain of computation. \newblock In {\em Proc. of {SYMSAC} '86}, pages 100--106, 1986. \bibitem[Bir77]{Birrell:77} N.~D. Birrell. \newblock The application of adiabatic regularization to calculations of cosmological interest. \newblock Technical report, Dept. Math, King's College, London, 1977. \bibitem[BJ87]{Bryan-Jones:87} Jane Bryan-Jones. \newblock A tutorial in computer algebra for statisticians. \newblock {\em The Professional Statistician}, 6(6):TBD, December 1987. \bibitem[BKdCW81]{Berends:81} A.~Berends, R.~Kleiss, P.~de~Causmaecher, and T.~T. Wu. \newblock Single bremsstrahlung process in gauge theories. \newblock {\em Phys. Lett.}, 103B:124--128, 1981. \bibitem[BLMN78]{Billoire:78} A.~Billoire, R.~Lacaze, A.~Morel, and H.~Navelet. \newblock The {OZI} rule violating radiative decays of the heavy pseudoscalars. \newblock Report DpH-T 43/78, {CEN}-Saclay, 1978. \bibitem[BMH87]{Baekler:87b} P.~Baekler, E.~W. Mielke, and F.~W. Hehl. \newblock Kinky torsion in a {Poincar\'{e}} gauge model of gravity coupled to a massless scalar field. \newblock {\em Nuclear Phys.}, B288:800--812, 1987. \bibitem[BNdP{\etalchar{+}}87]{Biro:87} T.~S. Biro, K.~Niita, A.~L. de~Paoli, W.~Bauer, W.~Cassing, and U.~Mosel. \newblock Microscopic theory of photon production in proton-nucleus and nucleus-nucleus collisions. \newblock {\em Nuclear Physics}, 475A:579--597, December 1987. \bibitem[BOH78]{Bajla:78} I.~Bajla, G.~A. Ososkov, and A.~C. Hearn. \newblock The orthogonalization program of polynomials in two variables in {REDUCE}-2 language. \newblock Report P10-11944, J.I.N.R., Dubna, 1978. \bibitem[Boy78]{Boyd:78} John~P. Boyd. \newblock The effects of latitudinal shear on equatorial waves, part {I}: Theory and methods. \newblock Preprint, Dept. of Atmos. and Oceanic Science, Univ. of Michigan, January 1978. \bibitem[BPV78]{Balian:78} R.~Balian, G.~Parisi, and A.~Voros. \newblock Quartic oscillator. \newblock In {\em Proc. of the Colloq. on Mathematical Problems in {Feynman} Path Integrals, Marseille}, May 1978. \bibitem[BR72]{Brodsky:72b} S.~J. Brodsky and R.~Roskies. \newblock Quantum electrodynamics and renormalization theory in the infinite momentum frame. \newblock {\em Phys. Lett.}, 41B:517--520, 1972. \bibitem[Bro69]{Brodsky:69} S.~J. Brodsky. \newblock Status of quantum electrodynamics. \newblock In {\em Proc. International Symposium on Electron and Photon Interactions at High Energies, Liverpool, England}, 1969. \bibitem[Bro70]{Brodsky:70} S.~J. Brodsky. \newblock Quantum electrodynamic theory: Its relation to precision low energy experiments. \newblock Report SLAC-PUB-795, SLAC, August 1970. \bibitem[Bro71]{Brodsky:71} S.~J. Brodsky. \newblock Algebraic computation techniques in quantum electrodynamics. \newblock In {\em Proc. {2nd} Computing Methods in Theoretical Physics, Marseilles}, volume~II, pages IV--1--IV--27, 1971. \bibitem[Bro72]{Brodsky:72} S.~J. Brodsky. \newblock Atomic physics and quantum electrodynamics in the infinite momentum frame. \newblock Report SLAC-PUB-1118, SLAC, August 1972. \bibitem[Bro82]{Broughan:82} K.~A. Broughan. \newblock {Grad-Fokker-Planck} plasma equations. part 1. {Collision} moments. \newblock {\em J. Plasma Phys.}, 27:437--452, 1982. \bibitem[Bro85]{Broadhurst:85} D.~J. Broadhurst. \newblock Evaluation of a class of {Feynman} diagrams for all numbers of loops and dimensions. \newblock {\em Phys. Lett. B}, 164:356--360, 1985. \bibitem[BRS73]{Brodsky:73} S.~J. Brodsky, R.~Roskies, and R.~Suaya. \newblock Quantum electrodynamics and renormalization theory in the infinite-momentum frame. \newblock {\em Phys. Rev. D}, 8:4574--4594, 1973. \bibitem[BS67]{Brodsky:67} S.~J. Brodsky and J.~D. Sullivan. \newblock W-boson contribution to the anomalous magnetic moment of the muon. \newblock {\em Phys. Rev.}, 156:1644--1647, 1967. \bibitem[BS86]{Bateman:86} G.~Bateman and R.~G. Storer. \newblock Direct determination of axisymmetric magnetohydrodynamic equilibrium in {Hamada} coordinates. \newblock {\em Journ. Comp. Phys.}, 64:161--176, 1986. \bibitem[BS87]{Brackx:87} F.~Brackx and H.~Serras. \newblock Boundary value problems for the {Laplacian} in {Euclidean} space solved by symbolic computation. \newblock In {\em Proc. {EUROCAL} '87, Lecture Notes in Computer Science}, volume 378, pages 208--215. Springer-Verlag, 1987. \bibitem[BSW88]{Baekler:88} P.~Baekler, M.~Seitz, and V.~Winkelmann. \newblock Cyclindrically symmetric solutions of self-consistently coupled {Dirac} fields in gauge theories of gravity. \newblock {\em Class. Quantum Grav.}, 5:479--490, 1988. \bibitem[BT63]{Berman:63} S.~M. Berman and Y.~S. Tsai. \newblock Intermediate boson pair production as a means for determining its magnetic moment. \newblock {\em Phys. Rev. Lett.}, 11:483--487, 1963. \bibitem[BT78]{Bark:78} Fritz~H. Bark and Herman Tinoco. \newblock Stability of plane {Poiseuille} flow of a dilute suspension of slender fibres. \newblock {\em J. Fluid Mech.}, 87:321--333, 1978. \bibitem[BZZ86]{Biro:86} T.~S. Biro, J.~Zimanyi, and M.~Zimanyi. \newblock Hadrochemistry in relativistic mean fields. \newblock {\em Physics Letters}, 167B(3):271--276, February 1986. \bibitem[CAH90]{Cline:90} Terry Cline, Harold Abelson, and Warren Harris. \newblock Symbolic computing in engineering design. \newblock {\em AI EDAM}, February 1990. \bibitem[Cal72a]{Calmet:72} Jacques Calmet. \newblock Further evaluation of the sixth order corrections to the anomalous magnetic moment of the electron. \newblock Technical report, Department of Physics, University of Utah, 1972. \bibitem[Cal72b]{Calmet:72a} Jacques Calmet. \newblock A {REDUCE} approach to the calculation of {Feynman} diagrams. \newblock {\em Comp. Phys. Comm.}, 4:199--204, 1972. \bibitem[Cal74]{Calmet:74} Jacques Calmet. \newblock Computer recognition of divergences in {Feynman} graphs. \newblock {\em SIGSAM Bulletin}, 8(3):74--75, August 1974. \bibitem[Cam67]{Campbell:67} J.~A. Campbell. \newblock Algebraic computation of radiative corrections for electron-positron scattering. \newblock {\em Nucl. Phys.}, B1:283--300, 1967. \bibitem[Cam68]{Campbell:68} J.~A. Campbell. \newblock Astrophysical consequences of the existence of charged intermediate vector bosons. \newblock {\em Aust. Journ. of Phys.}, 21:139--148, 1968. \bibitem[Cam74]{Campbell:74} J.~A. Campbell. \newblock Symbolic computing and its relationship to particle physics. \newblock {\em Acta Physica Austriaca}, XIII:595--647, 1974. \bibitem[Cap84]{Caprasse:84} H.~Caprasse. \newblock Description et utilisation d'une extension du programme {REDUCE}. \newblock Technical report, Physique Th\'{e}orique et Math\'{e}matique, Universit\'{e} de Li\`{e}ge, October 1984. \bibitem[Cap86a]{Caprasse:86a} H.~Caprasse. \newblock A complete simplification package for the absolute value function in {REDUCE}. \newblock {\em {SIGSAM} Bulletin}, 20(1 and 2):18--21, February and May 1986. \bibitem[Cap86b]{Caprasse:86} H.~Caprasse. \newblock Description of an extension of the matrix package of {REDUCE}. \newblock {\em {SIGSAM} Bulletin}, 20(4):7--10, December 1986. \bibitem[Cap89]{Caprasse:89a} H.~Caprasse. \newblock Les th\'{e}ories des {Champs} dans le monde de {REDUCE} (in french). \newblock {\em {CALSYF} (to appear)}, 1989. \bibitem[Cap90]{Caprasse:90} H.~Caprasse. \newblock Renormalization group, function iterations and computer algebra. \newblock {\em J. Symbolic Computation}, 9(1):61--72, January 1990. \bibitem[Car73]{Carroll:73} R.~Carroll. \newblock {\em The Anomalous Magnetic Moment of the Electron in the Mass Operator Formalism}. \newblock PhD thesis, University of Michigan, 1973. \bibitem[Car75]{Carroll:75} R.~Carroll. \newblock Mass-operator calculation of the electron g-factor. \newblock {\em Phys. Rev. D}, 8:2344--2354, 1975. \bibitem[Car80]{Carlson:80} P.~Carlson. \newblock Coordinate free relativity. \newblock {\em J. Math. Phys.}, 21:1149--1154, 1980. \bibitem[CB76]{Cohen:76a} I.~Cohen and F.~Bark. \newblock Perturbation calculations for the spin up problem using {REDUCE}. \newblock Technical Report TRITA-MEK-76-03, The Royal Institute of Technology, Department of Mechanics, 1976. \bibitem[CBR84]{Conwell:84} P.~R. Conwell, P.~W. Barber, and C.~K. Rushworth. \newblock Resonant spectra of dielectric sphere. \newblock {\em J. Opt. Soc. Am. A}, 1:62--67, 1984. \bibitem[CC88]{Chaffy:88} C.~Chaffy-Camus. \newblock An application of {REDUCE} to the approximation of {f(x,y)}. \newblock In {\em Proc. of {ISSAC} '88}, volume 358, pages 73--84. Springer-Verlag, 1988. \bibitem[CCEL84]{Connor:84a} J.~N.~L. Connor, P.~R. Curtis, C.~J. Edge, and A.~Lagan`{a}. \newblock The uniform asymptotic swallowtail approximation: Application to the collinear $h+f_{2}$. \newblock {\em J. Chem. Phys.}, 80(3):1362--1363, February 1984. \bibitem[CCF84]{Connor:84} J.~N.~L. Connor, P.~R. Curtis, and D.~Farrelly. \newblock The uniform asymptotic swallowtail approximation: Practical methods for oscillating integrals with four coalescing saddle points. \newblock {\em J. Phys. A}, 17:283--310, 1984. \bibitem[CCH70]{Campbell:70a} J.~A. Campbell, R.~B. Clark, and D.~Horn. \newblock Low-t theorems for charged-pion photoproduction. \newblock {\em Phys. Rev. D}, 2:217--224, 1970. \bibitem[CDS88]{Caprasse:88} H.~Caprasse, J.~Demaret, and E.~Schruefer. \newblock Can {EXCALC} be used to investigate {High-dimensional} cosmological models with {Non-Linear Lagrangians}. \newblock In {\em Proc. of {ISSAC} '88}, pages 116--124. Springer-Verlag, 1988. \bibitem[CF{\AA}84]{Cohen:84} H.~I. Cohen, I.~B. Frick, and J.~E. {\AA}man. \newblock Algebraic computing in general relativity. \newblock {\em General Relativity and Gravitation, ed.}, pages 139--162, 1984. \bibitem[CFW87]{Campbell:87} J.~A. Campbell, P.~O. {Fr\"{o}man}, and E.~Walles. \newblock Explicit series formulae for the evaluation of integrals by the method of steepest descents. \newblock {\em Studies in Applied Mathematics}, 77:151--172, 1987. \bibitem[CG79]{Cowan:79} Richard~M. Cowan and Martin~L. Griss. \newblock Hashing -- the key to rapid pattern matching. \newblock In {\em Proc. {EUROSAM} 1979, Lecture Notes in Computer Science}, volume~72, pages 266--278. Springer-Verlag, 1979. \bibitem[CGGK86]{Chinnick:86} K.~Chinnick, C.~Gibson, J.~F. Griffiths, and W.~Kordylewski. \newblock Isothermal interpretations of oscillatory ignition during hydrogen oxidation in an open system. {I}. {Analytical} predictions and experimental measurements of periodicity. \newblock {\em Proc. Royal Soc. Lond.}, A405:117--128, 1986. \bibitem[CH70]{Campbell:70} J.~A. Campbell and A.~C. Hearn. \newblock Symbolic analysis of {Feynman} diagrams by computer. \newblock {\em Journ. of Comp. Phys.}, 5:280--327, 1970. \bibitem[CH85]{Caprasse:85} H.~Caprasse and M.~Hans. \newblock A new use of operators in the algebraic mode of {REDUCE}. \newblock {\em {SIGSAM} Bulletin}, 19(3):46--52, August 1985. \bibitem[CLS76]{Cohen:76} H.~I. Cohen, O.~Leringe, and Y.~Sundblad. \newblock The use of algebraic computing in general relativity. \newblock Technical Report TRITA-MEK-76-02, The Royal Institute of Technology Department of Mechanics, 1976. \bibitem[CN]{Cejchan} A.~Cejchan and J.~Nadrchal. \newblock Application of {REDUCE}-2 and analytic integration program in the theoretical solid state physics. \newblock Technical report, Institute of Physics, CSAV, Prague. \bibitem[Coh89]{Cohen:89} Joel~S. Cohen. \newblock The effective use of computer algebra systems. \newblock In {\em Transactions of the Sixth Army Conference on Applied Mathematics and Computing}, pages 677--698, 1989. \bibitem[CS77]{Cohen:77} I.~Cohen and S.~Yu. Slavyanov. \newblock Smooth perturbations of the {Schr\"{o}dinger} equation with a linear potential related to the charmonium models. \newblock USIP Report 77-17, University of Stockholm Institute of Physics, 1977. \bibitem[Cun75]{Cung:75} V.~K. Cung. \newblock Differential cross section of e+ + e- to e+ + mu- + nubar(mu) + nubar(e). \newblock {\em Phys. Lett.}, 55B:67--70, 1975. \bibitem[CvH83]{Calmet:83} J.~Calmet and J.~A. van Hulzen. \newblock Computer algebra applications. \newblock In B.~Buchberger, G.~E. Collins, R.~Loos, and R.~Albrecht, editors, {\em Computer Algebra Symbolic and Algebraic Computation}. Springer-Verlag, 2nd edition, 1983. \bibitem[Dar86]{Darbaidze:86} Ya.~Z. Darbaidze. \newblock A gluon bremsstrahlung in supersymmetry {QCD}. \newblock Preprint P2-86-825, JINR, 1986. \bibitem[Dau79]{Dautcourt:79} G.~Dautcourt. \newblock Application of {REDUCE} to algebraic computations in general relativity and astrophysics. \newblock In {\em Proc. of the Workshop in Symbolic Computation, Dubna, {U.S.S.R.}}, September 1979. \bibitem[Dau83]{Dautcourt:83} G.~Dautcourt. \newblock The cosmological problem as an initial value problem on the observer's past light cone: Geometry. \newblock {\em J. Phys. A}, 16:3507--3528, 1983. \bibitem[Dav81]{Davenport:81} James~Harold Davenport. \newblock On the integration of algebraic functions. \newblock {\em Lecture Notes in Computer Science}, 102:1--197, 1981. \bibitem[Dav82a]{Davenport:82} James~H. Davenport. \newblock Fast {REDUCE:} the {trade-off} between efficiency and generality. \newblock {\em {SIGSAM} Bulletin}, 16(1):8--11, February 1982. \bibitem[Dav82b]{Davenport:82a} James~H. Davenport. \newblock What do we want from a {high-level} language? \newblock {\em {SIGSAM} Bulletin}, 16(4):6--9, November 1982. \bibitem[Dav88]{Davenport:88} J.~H. Davenport. \newblock The world of computer algebra. \newblock {\em New Scientist}, 1629:71--72, September 1988. \bibitem[DCM{\etalchar{+}}89]{Demaret:89} J.~Demaret, H.~Caprasse, A.~Moussiaux, Ph. Tombal, and D.~Papadopoulos. \newblock {Ten-dimensional Lovelock-type Space-Times}. \newblock {\em {To appear} Phys. Rev. D}, July 1989. \bibitem[DD85]{Dorfi:85} E.~A. Dorfi and L.~O'C. Drury. \newblock Simple adaptive grids for {1D} initial value problems. \newblock Technical Report MPI H-1985-V21, Max-Plack-Institut fuer Kernphysik, Heidelberg, West Germany, 1985. \bibitem[DDDD85]{Della-Dora:85} Jean Della-Dora, Claire Dicrescenzo, and Dominique Duval. \newblock About a new method for computing in algebraic number fields. \newblock Technical report, Universit\'{e} de Grenoble, Institut Fourier, France, November 1985. \bibitem[Dew89]{Dewar:89} M.~C. Dewar. \newblock {IRENA --} an integrated symbolic and numerical computation environment. \newblock In {\em Proc. of {ISSAC} '89}, pages 171--179. {ACM} Press, New York, 1989. \bibitem[DG75]{Dubowsky:75} S.~Dubowsky and J.~L. Grant. \newblock Application of symbolic manipulation to time domain analysis of nonlinear dynamic systems. \newblock {\em Journ. of Dynamic Systems, Measurement, and Control}, (75-Aut-J), 1975. \bibitem[DGH{\etalchar{+}}86]{Dorizzi:86} B.~Dorizzi, B.~Grammaticos, J.~Hietarinta, A.~Ramani, and F.~Schwarz. \newblock New integrable three dimensional quartic potentials. \newblock {\em Phys. Lett.}, 116A:432--436, 1986. \bibitem[Dic85]{Dicrescenzo:85} Claire Dicrescenzo. \newblock Algebraic computation on algebraic numbers. \newblock Technical report, Institut Fourier, Laboratoire de Math\'{e}matiques, France, December 1985. \bibitem[DJ80]{Dautcourt:80} G.~Dautcourt and K.~P. Jann. \newblock A program package in {REDUCE} 2 for algebraic computations in general relativity. \newblock Technical report, Zentralinstitut fuer Astrophysik der Akademie der Wissenschaften, 1980. \bibitem[DJ89]{Dudley:89} M.~L. Dudley and R.~W. James. \newblock {Computer-aided} derivation of spherical harmonic spectral equations in astrogeophyics. \newblock {\em J. Symbolic Computation}, 8(4):423--427, October 1989. \bibitem[DJRR81]{Dautcourt:81} G.~Dautcourt, K.~P. Jann, E.~Riemer, and M.~Riemer. \newblock User's guide to {REDUCE} subroutines for algebraic computations in general relativity. \newblock {\em Astron. Nachr.}, 302:1--13, 1981. \bibitem[DL86]{Diver:86} D.~A. Diver and E.~W. Laing. \newblock Proc. 8th {Europhysics} conference on computational physics. \newblock In {\em Computing in Plasma Physics}, 1986. \bibitem[DL88a]{Diver:88a} D.~A. Diver and E.~W. Laing. \newblock Alfven resonance absorption in a magnetofluid. \newblock Internal Report GUTPA 88/04-01, July 1988. \bibitem[DL88b]{Diver:88} D.~A. Diver and E.~W. Laing. \newblock Proc. {XV} {European} conference on controlled fusion and plasma heating. \newblock 1988. \bibitem[DLS]{Diver} D.~A. Diver, E.~Q. Laing, and C.~C. Sellar. \newblock Waves in a cold plasma with a spatially rotating magnetic field. \newblock Report GU TPA 88/12-1, Department of Physics and Astronomy, University of Glasgow, Plasma Physics Group. \bibitem[DM85]{Dhar:85} D.~Dhar and J-M. Maillard. \newblock Susceptibility of the checkerboard {Ising} model. \newblock {\em J. Phys. A}, 18:L383--L388, 1985. \bibitem[DMMS86]{Darbaidze:86a} J.~Z. Darbaidze, V.~A. Matveev, Z.~V. Merebashvili, and L.~A. Slepchenko. \newblock Gluon bremsstrahlung in supersymmetric {QCD}. \newblock {\em Phys. Lett.}, B177, 1986. \bibitem[DMR88]{Darbaidze:88} Ya.~Z. Darbaidze, Z.V. Merebashvili, and V.A. Rostovtsev. \newblock Some computer realizations of the {REDUCE-3} calculations for exclusive processes. \newblock Preprint P2-88-769, JINR, 1988. \bibitem[DP85]{Davenport:85} James Davenport and Julian Padget. \newblock {HEUGCD:} how elementary upperbounds generate cheaper data. \newblock In {\em Proc. {EUROCAL} 1985, Lecture Notes in Computer Science}, volume 204, pages 18--28. Springer-Verlag, 1985. \bibitem[DR85]{Demichev:85} A.~P. Demichev and A.~Ya. Rodionov. \newblock A {REDUCE} program for the calculation of geometrical characteristics of compactified multidimensional {Riemannian} space. \newblock {\em Comp. Phys. Comm.}, 38:441--448, 1985. \bibitem[DR86a]{Demichev:86} A.~P. Demichev and A.~Ya. Rodionov. \newblock Freund-{Rubin} type solutions for different compactifications of the eleven-dimensional space. \newblock Preprint 86-85, Institute for High Energy Physics, 1986. \bibitem[DR86b]{Duncan:86} Anthony Duncan and Ralph Roskies. \newblock Representations of unusual mathematical structures in scientific applications of symbolic computation. \newblock {\em J. Symbolic Computation}, 2(2):201--206, June 1986. \bibitem[DR89]{Darbaidze:89} Ya.~Z. Darbaidze and V.A. Rostovtsev. \newblock Analysis of the differential equations for the exclusive processes and explanation for the {"Mystery"} of the {Gamma-Distribution}. \newblock Preprint E2-89-286, JINR, 1989. \bibitem[dRD88]{deRop:88} Y.~de~Rop and J.~Demaret. \newblock Using {EXCALC} to study nondiagonal multidimensional spatially homogeneous cosmologies. \newblock {\em Gen. Rel. Grav.}, 20:1127--1139, 1988. \bibitem[dS87]{dosSantos:87a} R.~P. dos Santos. \newblock {\em O M\'{e}todo de Supercampos para o C\'{a}lculo de Potencial Efetivo em Modelos com Supercampos Quirais: Os Modelos de Wess e Zumino e de O'Raifeartaigh}. \newblock PhD thesis, Centro Brasileiro de Pesquisas F\'{i}sicas, 1987. \bibitem[dS88]{dosSantos:88a} Renato~P. dos Santos. \newblock Introdu\c{c}\~{a}o ao sistema {REDUCE} de c\'{a}lculo alg\'{e}brico. \newblock Technical Report CBPF-NT-001/88, CBPF, Rio de Janeiro, Brazil, 1988. \bibitem[dS89]{dosSantos:87} Renato~P. dos Santos. \newblock Using {REDUCE} in supersymmetry. \newblock {\em J. Symb. Comp.}, 7:523--525, 1989. \bibitem[dSS85]{dosSantos:85} R.~P. dos Santos and P.~P. Srivastava. \newblock Two-loop effective potential for wess-zumino model using superfields. \newblock Technical Report IC/85/205, International Centre for Theoretical Physics, October 1985. \bibitem[DST88]{Davenport:88a} J.~H. Davenport, Y.~Siret, and E.~Tournier. \newblock {\em Computer Algebra, Systems and Algorithms for Algebraic Computation}. \newblock Academic Press, 1988. \bibitem[DT69]{Dufner:69} A.~M. Dufner and Y.~S. Tsai. \newblock Phenomenological analysis of the $\gamma$nn* form factors. \newblock {\em Phys. Rev.}, 168:1801--1809, 1969. \bibitem[DT81]{Della-Dora:81} J.~Della Dora and E.~Tournier. \newblock Solutions formelles {D'Equations} differentielles au voisinage de points singuliers reguliers. \newblock Report 239, Centre National de la Recherche Scientifique, 1981. \bibitem[DT84]{Della-Dora:84} J.~Della Dora and E.~Tournier. \newblock Homogeneous linear difference equation {(Frobenius-Boole Method)}. \newblock In {\em Proc. {EUROSAM} 1984, Lecture Notes in Computer Science}, volume 174, pages 2--12. Springer-Verlag, 1984. \bibitem[Dul87]{Dulyan:87} L.~S. Dulyan. \newblock The calculation of {QCD} triangular {Feynman} graphs in the external gluonic field using {REDUCE}-2 system. \newblock In {\em Proc. {EUROCAL} '87, Lecture Notes in Computer Science}, volume 378, pages 172--173. Springer-Verlag, 1987. \bibitem[Duv87]{Duval:87} Dominique Duval. \newblock {\em Diverses questions relatives au Calcul Formel Avec des Nombres Alg\'{e}briques}. \newblock PhD thesis, L'Universit\'{e} Scientifique, Technologique et M\'{e}dicale de Grenoble, 1987. \bibitem[Ear70]{Earles:70} D.~Earles. \newblock A measurement of the electron-production of muon pairs. \newblock {\em Phys. Rev. Lett.}, 25:129--133, 1970. \bibitem[Eas87]{Eastwood:87} James~W. Eastwood. \newblock Orthovec: A {REDUCE} program for {3-D} vector analysis in orthogonal curvilinear coordinates. \newblock {\em Comp. Phys. Commun.}, 47(1):139--147, October 1987. \bibitem[EC87]{Elishakoff:87a} Isaac Elishakoff and Brian Couch. \newblock Application of symbolic algebra to the instability of a nonconservative system. \newblock {\em J. Symbolic Computation}, 4(3):391--396, December 1987. \bibitem[Ede81]{Edelen:81} Dominic G.~B. Edelen. \newblock Programs for calculation of isovector fields in the {REDUCE}-2 environment. \newblock Technical Report TBD, Center for the Application of Mathematics, Lehigh University, August 1981. \bibitem[Ede82]{Edelen:82} D.~G.~B. Edelen. \newblock Isovector fields for problems in the mechanics of solids and fluids. \newblock {\em Int. Journ. Eng. Sci.}, 20:803--815, 1982. \bibitem[EFK85]{Eliseev:85} V.~P. Eliseev, R.~N. Fedorova, and V.~V. Kornyak. \newblock A {REDUCE} program for determining point and contact {Lie} symmetries of differential equations. \newblock {\em Comp. Phys. Comm.}, 36:383--389, 1985. \bibitem[EH86]{Eissfeller:86} Bernd {Ei{\ss}feller} and {G\"{u}nter}~W. Hein. \newblock A contribution to {3D-Operational} geodesy. \newblock Technical Report Heft 17, {Universit\"{a}rer} Studiengang Vermessungswesen and {Universit\"{a}t} der Bundeswehr {M\"{u}nchen}, December 1986. \bibitem[EH87]{Elishakoff:87} Isaac Elishakoff and Joseph Hollkamp. \newblock Computerized symbolic solution for a nonconservative system in which instability occurs by flutter in one range of a parameter and by divergence in another. \newblock {\em Comp. Methods in Applied Mechanics and Engineering}, 62:27--46, 1987. \bibitem[Eis90]{Eisenberger:90} Moshe Eisenberger. \newblock Application of symbolic algebra to the analysis of plates on variable elastic foundation. \newblock {\em J. Symbolic Computation}, 9(2):207--213, February 1990. \bibitem[Eit73]{Eitelbach:73} D.~L. Eitelbach. \newblock {\em Automatic Analysis of Problems in Elementary Mechanics}. \newblock PhD thesis, University of Illinois, 1973. \bibitem[EKR89]{Edneral:89} Viktor~F. Edneral, Aleksandr~P. Kryukov, and Anatolii~Ia. Rodionov. \newblock {\em The language of the analytic computer program {REDUCE}}. \newblock Moscow, {Izd-vo}, Moskovskogo {un-ta}, 1989. \bibitem[EM82]{Eleuterio:82} S.~M. Eleut\'{e}rio and R.~V. Mendes. \newblock Note on equivalence and singularities: An application of computer algebra. \newblock {\em Journ. Comp. Phys.}, 48:150--156, 1982. \bibitem[ER90]{Esteban:90} E.P. Esteban and E.~Ramos. \newblock Algebraic computing and the {Newman-Penrose} formalism. \newblock {\em Computers in Physics}, pages 285--290, May/June 1990. \bibitem[FB89]{Foster:89} Kenneth~R. Foster and Haim~H. Bau. \newblock Symbolic manipulation programs for the personal computer. \newblock {\em Science}, 243:679--243, February 1989. \bibitem[FBC86]{Flatau:86} Piotr~J. Flatau, John~P. Boyd, and William~R. Cotton. \newblock Symbolic algebra in applied mathematics and geophysical fluid dynamics - {REDUCE} examples. \newblock Technical report, Dept. of Atmospheric and Oceanic Science, University of Michigan, and Dept. of Atmospheric Science, Colorado State University, 1986. \bibitem[FC79]{Cohen:79} J.~P. Fitch and H.~I. Cohen. \newblock Using {CAMAL} for algebraic calculations in general relativity. \newblock {\em General Relativity and Gravitation}, 11:411--418, 1979. \bibitem[FC84]{Fazio:84} P.~M. Fazio and G.~E. Copeland. \newblock Cooper-type minima in multipole cross sections of atomic hydrogen. \newblock {\em Phys. Rev. Lett.}, 53(2), July 1984. \bibitem[FC85]{Fuzio:85} P.~M. Fuzio and G.~E. Copeland. \newblock Partial radiative-recombination cross sections for excited states of hydrogen. \newblock {\em Phys. Rev. A}, 31(1):187--195, 1985. \bibitem[Feu84]{Feuillebois:84} F.~Feuillebois. \newblock Sedimentation in a dispersion with vertical inhomogenieties. \newblock {\em Journ. Fluid Mech.}, 139:145--171, 1984. \bibitem[FF82a]{Fogelholm:82} Rabbe Fogelholm and Inge~B. Frick. \newblock Standard {LISP} for the {VAX:} a provisional implementation. \newblock {\em {SIGSAM} Bulletin}, 16(4):10--12, November 1982. \bibitem[FF82b]{Frick:82} I.~G. Frick and R.~Fogelholm. \newblock An implementation of {Standard} {Lisp} built on top of {Franz Lisp}. \newblock Report, University of Stockholm, Institute of Physics, April 1982. \bibitem[FG84]{Fujimoto:84} Y.~Fujimoto and T.~Garavaglia. \newblock Phase diagrams in {Scalar QED}. \newblock {\em Physics Letters}, 148B(1,2,3):220--224, November 1984. \bibitem[FGGS87]{Fedorova:87} R.~N. Fedorova, V.~P. Gerdt, N.~N. Govorun, and V.~P. Shirikov. \newblock Computer algebra in physical research of {Joint Institute} for {Nuclear Research}. \newblock In {\em Proc. {EUROCAL} '87, Lecture Notes in Computer Science}, volume 378, pages 1--10. Springer-Verlag, 1987. \bibitem[FGK89]{Falck:89} N.~K. Falck, D.~Graudenz, and G.~Kramer. \newblock Cross section for {five-parton} production in $e^{+} e^{-}$ annihilation. \newblock {\em Comp. Phys. Comm.}, 56(2):181--198, December 1989. \bibitem[FGM73]{Fleischer:73} J.~Fleischer, J.~L. Gammel, and M.~T. Menzel. \newblock Matrix {Pad\'{e}} approximants for the {1SO}- and {3PO}- partial waves in nucleon-nucleon scattering. \newblock {\em Phys. Rev. D}, 8:1545--1552, 1973. \bibitem[FGP89]{Freire:89} E.~Freire, E.~Gamero, and E.~Ponce. \newblock An algorithm for symbolic computation of {Hopf} bifurcation. \newblock In E.~Kaltofen and S.~M. Watt, editors, {\em Proc. Computers and Mathematics '89}, pages 109--118. Springer-Verlag, New York, 1989. \bibitem[FGPF88]{Freire:88} E.~Freire, E.~Gamero, E.~Ponce, and L.~G. Franquelo. \newblock An algorithm for symbolic computation of center manifolds. \newblock In {\em Proc. of {ISSAC} '88}, volume 358, pages 218--230. Springer-Verlag, 1988. \bibitem[FH74]{Fox:74} John~A. Fox and Anthony~C. Hearn. \newblock Analytic computation of some integrals in fourth order quantum electrodynamics. \newblock {\em Journ. Comp. Phys.}, 14:301--317, 1974. \bibitem[FH87]{Fitch:87a} J.~P. Fitch and R.~G. Hall. \newblock Symbolic computation and the finite element method. \newblock In {\em Proc. {EUROCAL} '87, Lecture Notes in Computer Science}, volume 378, pages 95--96. Springer-Verlag, 1987. \bibitem[Fit73]{Fitch:73} John Fitch. \newblock Problems \#3 and \#4 in {REDUCE} and {MACSYMA}. \newblock {\em SIGSAM Bulletin}, pages 10--11, 1973. \bibitem[Fit81]{Fitch:81} J.~P. Fitch. \newblock User-based integration software. \newblock In {\em Proc. 1981 {ACM} Symposium on Symbolic and Algebraic Computation}, pages 245--248, 1981. \bibitem[Fit83]{Fitch:83} J.~P. Fitch. \newblock Implementing {REDUCE} on a microprocessor. \newblock In {\em Proc. {EUROCAL} 1983, Lecture Notes in Computer Science}, volume 162, pages 128--136. Springer-Verlag, 1983. \bibitem[Fit85a]{Fitch:85a} J.~P. Fitch. \newblock Applying computer algebra. \newblock In {\em International Conference on Computer Algebra and its Application in Theory}, pages 262--275, 1985. \bibitem[Fit85b]{Fitch:85} J.~P. Fitch. \newblock Solving algebraic problems with {REDUCE}. \newblock {\em J. of Symbolic Computation}, 1(2):211--227, June 1985. \bibitem[Fit87]{Fitch:87} J.~P. Fitch. \newblock Utilisation du calcul formel. \newblock In P.~Chenin, editor, {\em Calcul Formel et Automatique}, pages 119--136. Editions du {CNRS}, 1987. \bibitem[Fit89a]{Fitch:89a} J.~Fitch. \newblock Compiling for parallelism. \newblock {\em Computer Algebra and Parallelism}, pages 19--31, 1989. \bibitem[Fit89b]{Fitch:89} J.~P. Fitch. \newblock Can {REDUCE} be run in parallel? \newblock In {\em Proc. of {ISSAC} '89}, pages 155--162. {ACM} Press, New York, 1989. \bibitem[FK86]{Feldmar:86} E.~Feldmar and K.~S. {K\"{o}lbig}. \newblock {REDUCE} procedures for the manipulation of generalized power series. \newblock {\em Comp. Phys. Comm.}, 39:267--284, 1986. \bibitem[FK87]{Fedorova:87a} R.~N. Fedorova and V.~V. Kornyak. \newblock Computer algebra application for determining local symmetries of differential equations. \newblock In {\em Proc. {EUROCAL} '87, Lecture Notes in Computer Science}, volume 378, pages 174--175. Springer-Verlag, 1987. \bibitem[Fla86]{Flath:86} Dan Flath. \newblock Remarks on tensor operators. \newblock Research Report 266, National University of Singapore, Department of Mathematics, July 1986. \bibitem[Fle71]{Fleischer:71} J.~Fleischer. \newblock Partial wave analysis of nucleon-nucleon {Bethe}-{Salpeter} equation on the computer. \newblock {\em Journ. of Comp. Phys.}, 12:112--123, 1971. \bibitem[Fox71]{Fox:71} J.~A. Fox. \newblock Recalculation of the crossed graph contribution to the 4th order {Lamb} shift. \newblock {\em Phys. Rev. D}, 3:3228--3230, 1971. \bibitem[FP85]{Franceschetti:85} G.~Franceschetti and I.~Pinto. \newblock Nonlinear propagation and scattering: Analytical solution and symbolic code implementation. \newblock {\em J. Opt. Soc. Am. A}, 2:997--1006, 1985. \bibitem[FT75]{Fleischer:75} J.~Fleischer and J.~A. Tjon. \newblock Bethe-{Salpeter} equation for {J}=0 nucleon-nucleon scattering with one-boson exchange. \newblock {\em Nuclear Physics}, B84:375--396, 1975. \bibitem[MMR87]{DeMenna:87} L.~De Menna, G.~Miano, and G.~Rubinacci. \newblock Volterra's series solutions of free boundary plasma equilibria. \newblock {\em Phys. Fluids}, 30:409--416, 1987. \bibitem[Vos89]{DeVos:89} Alexis~De Vos. \newblock The use of {Reduce} in solar energy conversion theory. \newblock Reports of the {CAGe} Project~4, State University of Gent, {CAGe} Computer Algebra Group, August 1989. \end{thebibliography} bibclean-3.07/test/okay/topt305.err0000444000156700015670000000040312470143224015750 0ustar beebebeebeAuthor: Nelson H. F. Beebe University of Utah Department of Mathematics, 110 LCB 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA Tel: +1 801 581 5254 FAX: +1 801 581 4148 Email: beebe@math.utah.edu, beebe@acm.org, beebe@computer.org (Internet) bibclean-3.07/test/okay/topt101.out0000444000156700015670000000000012470145076015761 0ustar beebebeebebibclean-3.07/test/okay/topt332.out0000444000156700015670000000000112470143226015763 0ustar beebebeebe bibclean-3.07/test/okay/topt136.err0000444000156700015670000000000012470142673015752 0ustar beebebeebebibclean-3.07/test/okay/topt340.out0000444000156700015670000000000112470143227015763 0ustar beebebeebe bibclean-3.07/test/okay/topt144.err0000444000156700015670000000000012470142673015751 0ustar beebebeebebibclean-3.07/test/okay/topt138.err0000444000156700015670000000000012470142673015754 0ustar beebebeebebibclean-3.07/test/okay/topt370.err0000444000156700015670000000000012663433424015753 0ustar beebebeebebibclean-3.07/test/okay/topt347.out0000444000156700015670000000000112470143230015764 0ustar beebebeebe bibclean-3.07/test/okay/topt143.err0000444000156700015670000000000012470142673015750 0ustar beebebeebebibclean-3.07/test/okay/topt108.out0000444000156700015670000000000012470142672015767 0ustar beebebeebebibclean-3.07/test/okay/topt345.err0000444000156700015670000000000012470142676015757 0ustar beebebeebebibclean-3.07/test/okay/topt141.out0000444000156700015670000000000112470143220015753 0ustar beebebeebe bibclean-3.07/test/okay/topt372.out0000664000156700015670000000131614162101404015775 0ustar beebebeebe@Article{Ewing:2021:TGH, author = "J. R. Ewing and D. J. {St. Aubin} and E. K. {Ste. Aubine} and F. G. {Sta. Maria}", title = "Title goes here", journal = "Journal of the Bibliography Testing", volume = "1", number = "1", pages = "1--10", month = dec, year = "2021", } @Article{Cee:2021:TGH, author = "A. B. Cee and J. R. Ewing and D. J. {St.Aubin} and E. K. {Ste.Aubine} and F. G. {Sta.Maria}", title = "Title goes here", journal = "Journal of the Bibliography Testing", volume = "1", number = "1", pages = "1--10", month = dec, year = "2021", } bibclean-3.07/test/okay/topt339.err0000444000156700015670000000000012470142676015762 0ustar beebebeebebibclean-3.07/test/okay/topt171.err0000444000156700015670000000000013070534767015757 0ustar beebebeebebibclean-3.07/test/okay/topt309.out0000444000156700015670000000000012470142674015774 0ustar beebebeebebibclean-3.07/test/okay/topt342.err0000444000156700015670000000000012470142676015754 0ustar beebebeebebibclean-3.07/test/okay/topt146.out0000444000156700015670000000000112470143220015760 0ustar beebebeebe bibclean-3.07/test/okay/topt330.err0000444000156700015670000000000012470142676015751 0ustar beebebeebebibclean-3.07/test/okay/testisxn.err0000444000156700015670000001123114023240744016415 0ustar beebebeebe%% testisxn.bib:23:Invalid checksum for ISSN 1018-9367 in ``ISSN = "1018-9367"''. %% testisxn.bib:24:Invalid checksum for ISSN 2080-3863 in ``ISSN = "2080-3863"''. %% testisxn.bib:25:Invalid checksum for ISSN 3094-3770 in ``ISSN = "3094-3770"''. %% testisxn.bib:26:Invalid checksum for ISSN 4197-3622 in ``ISSN = "4197-3622"''. %% testisxn.bib:27:Invalid checksum for ISSN 5346-914X in ``ISSN = "5346-914X"''. %% testisxn.bib:28:Invalid checksum for ISSN 6346-914X in ``ISSN = "6346-914X"''. %% testisxn.bib:29:Invalid checksum for ISSN 7362-613X in ``ISSN = "7362-613X"''. %% testisxn.bib:30:Invalid checksum for ISSN 8891-2513 in ``ISSN = "8891-2513"''. %% testisxn.bib:31:Invalid checksum for ISSN 9899-7667 in ``ISSN = "9899-7667"''. %% testisxn.bib:32:Invalid checksum for ISSN 9589-341? in ``ISSN = "X958-9341"''. %% testisxn.bib:33:Invalid checksum for ISSN 1964-5098 in ``ISSN = "1964-5098"''. %% testisxn.bib:34:Invalid checksum for ISSN 2047-5974 in ``ISSN = "2047-5974"''. %% testisxn.bib:35:Invalid checksum for ISSN 3059-5325 in ``ISSN = "3059-5325"''. %% testisxn.bib:38:Invalid checksum for ISSN 3???-???? in ``ISSN = "3"''. %% testisxn.bib:39:Invalid checksum for ISSN 30??-???? in ``ISSN = "30"''. %% testisxn.bib:40:Invalid checksum for ISSN 305?-???? in ``ISSN = "305"''. %% testisxn.bib:41:Invalid checksum for ISSN 3059-???? in ``ISSN = "3059"''. %% testisxn.bib:42:Invalid checksum for ISSN 3059-5??? in ``ISSN = "3059-5"''. %% testisxn.bib:43:Invalid checksum for ISSN 3059-53?? in ``ISSN = "3059-53"''. %% testisxn.bib:44:Invalid checksum for ISSN 3059-532? in ``ISSN = "3059-532"''. %% testisxn.bib:45:Invalid checksum for ISSN 3059-5325 in ``ISSN = "3059-5325-X"''. %% testisxn.bib:45:Invalid checksum for ISSN 3059-5325 in ``ISSN = "3059-5325-X"''. %% testisxn.bib:598:Invalid checksum for ISBN 1-241-13267-3 in ``ISBN = "1-241-13267-3"''. %% testisxn.bib:599:Invalid checksum for ISBN 250080221? in ``ISBN = "2 500 8022 1"''. %% testisxn.bib:600:Invalid checksum for ISBN 3-85331-623-6 in ``ISBN = "3-85331-623-6"''. %% testisxn.bib:601:Invalid checksum for ISBN 4-913720-72-0 in ``ISBN = "4-913720-72-0"''. %% testisxn.bib:602:Invalid checksum for ISBN 5-94890-572-7 in ``ISBN = "5-94890-572-7"''. %% testisxn.bib:603:Invalid checksum for ISBN 694890576X in ``ISBN = "6 948905 76 X"''. %% testisxn.bib:604:Invalid checksum for ISBN 7-03-063892-5 in ``ISBN = "7-03-063892-5"''. %% testisxn.bib:605:Invalid checksum for ISBN 80-7008-845-4 in ``ISBN = "80-7008-845-4"''. %% testisxn.bib:606:Invalid checksum for ISBN 90-70088-45-4 in ``ISBN = "90-70088-45-4"''. %% testisxn.bib:607:Invalid checksum for ISBN 070216231? in ``ISBN = "X-07-021623-1"''. %% testisxn.bib:608:Invalid checksum for ISBN 1-0702-6751-0 in ``ISBN = "1-0702-6751-0"''. %% testisxn.bib:609:Invalid checksum for ISBN 2-07-033508-7 in ``ISBN = "2-07-033508-7"''. %% testisxn.bib:610:Invalid checksum for ISBN 3-07-039006-1 in ``ISBN = "3-07-039006-1 (hardback), 4-07-039002-9 (paperback)"''. %% testisxn.bib:610:Invalid checksum for ISBN 4-07-039002-9 in ``ISBN = "3-07-039006-1 (hardback), 4-07-039002-9 (paperback)"''. %% testisxn.bib:611:Invalid checksum for ISBN 5-07-043109-4 in ``ISBN = "5-07-043109-4"''. %% testisxn.bib:612:Invalid checksum for ISBN 607-8816-45-9 in ``ISBN = "607-8816-45-9"''. %% testisxn.bib:613:Invalid checksum for ISBN 7-07-015557-7 in ``ISBN = "7-07-015557-7"''. %% testisxn.bib:614:Invalid checksum for ISBN 80-8030-713-2 in ``ISBN = "80-8030-713-2"''. %% testisxn.bib:615:Invalid checksum for ISBN 91-20-79062-9 in ``ISBN = "91-20-79062-9"''. %% testisxn.bib:616:Invalid checksum for ISBN 121176452? in ``ISBN = "X-12-117645-2"''. %% testisxn.bib:617:Invalid checksum for ISBN 1-121-17650-9 in ``ISBN = "1-121-17650-9"''. %% testisxn.bib:618:Invalid checksum for ISBN 2-12-117650-9 in ``ISBN = "2-12-117650-9"''. %% testisxn.bib:621:Invalid checksum for ISBN 2????????? in ``ISBN = "2"''. %% testisxn.bib:622:Invalid checksum for ISBN 21???????? in ``ISBN = "2-1"''. %% testisxn.bib:623:Invalid checksum for ISBN 212??????? in ``ISBN = "2-12"''. %% testisxn.bib:624:Invalid checksum for ISBN 2121?????? in ``ISBN = "2-12-1"''. %% testisxn.bib:625:Invalid checksum for ISBN 21211????? in ``ISBN = "2-12-11"''. %% testisxn.bib:626:Invalid checksum for ISBN 212117???? in ``ISBN = "2-12-117"''. %% testisxn.bib:627:Invalid checksum for ISBN 2121176??? in ``ISBN = "2-12-1176"''. %% testisxn.bib:628:Invalid checksum for ISBN 21211765?? in ``ISBN = "2-12-11765"''. %% testisxn.bib:629:Invalid checksum for ISBN 212117650? in ``ISBN = "2-12-117650"''. %% testisxn.bib:630:Invalid checksum for ISBN 2-12-117650-9 in ``ISBN = "2-1-211-76509-X"''. %% testisxn.bib:630:Invalid checksum for ISBN 2-12-117650-9 in ``ISBN = "2-1-211-76509-X"''. bibclean-3.07/test/okay/topt134.out0000444000156700015670000000000112470143216015762 0ustar beebebeebe bibclean-3.07/test/okay/topt307.out0000444000156700015670000000000112470143224015763 0ustar beebebeebe bibclean-3.07/test/okay/topt103.err0000444000156700015670000000000012470142672015743 0ustar beebebeebebibclean-3.07/test/okay/topt148.out0000444000156700015670000000000012470142673015774 0ustar beebebeebebibclean-3.07/test/okay/topt104.err0000444000156700015670000000000012470142672015744 0ustar beebebeebebibclean-3.07/test/okay/testscr1.bbl0000444000156700015670000003542507342750521016273 0ustar beebebeebe\begin{thebibliography}{10} \bibitem{Adomaitis79Computer} \bibitem{singer-portion-volume} The late nineteenth century. \bibitem{singer-portion-chapter} The late nineteenth century. \newblock In Charles~Joseph Singer, E.~J. Holmyard, and A.~R. Hall, editors, {\em A history of technology}, vol.~5. Oxford University Press, London, 1954--58. \bibitem{anon-67} Anon. \newblock {\em Title title title title title title title title title title}. \newblock Organization organization organization, 1967. \bibitem{aslin-49} E.~J. Aslin. \newblock Photostat recording in library work. \newblock {\em Aslib Proceedings}, 1:49--52, 1949. \bibitem{BCM-59} {Association of British Chemical Manufacturers}. \newblock {\em British chemicals and their manufacturers}. \newblock 1959. \bibitem{bloggs-60} A.~J. Bloggs. \newblock Title title title title title title title title title title. \newblock {\em Journal journal journal}, 1960. \bibitem{bloggs-61} A.~J. Bloggs. \newblock Title title title title title title title title title title. \newblock {\em Journal journal journal}, 1961. \bibitem{bloggs-jones} A.~J. Bloggs and X.~Y. Jones. \newblock Title title title title title title title title title title. \newblock {\em Journal journal journal}, 1959. \bibitem{bloggs-s-j} A.~J. Bloggs, R.~S. Smith, and X.~Y. Jones. \newblock Title title title title title title title title title title. \newblock {\em Journal journal journal}, 1955. \bibitem{brown-f-s} H.~W. Brown, A.~S. Forbes, and S.~D. Smith. \newblock Title title title title title title title title title title. \newblock {\em Journal journal journal}, 1900. \bibitem{brunswick-85} `Brunswick'. \newblock The piper and the rats: A musical experiment. \newblock Technical Report 1984, Rodent Activities Termination Section (RATS), Pest Control Division, Brunswick Public Welfare Department, Hamelin, 1985. \bibitem{bry-afflerbach} I.~Bry and L.~Afflerbach. \newblock In search of an organizing principle for behavioural science literature. \newblock {\em Community Mental Health}, 4(1):75--84, 1968. \bibitem{bs-2570-inbook} BSI. \newblock {\em {BS} 2570: Natural Fibre Twines}, {Table}~5. \newblock British Standards Institution, London, 3rd edition, 1973. \bibitem{bs-2570-manual} BSI. \newblock {\em Natural Fibre Twines}. \newblock British Standards Institution, London, 3rd edition, 1973. \newblock BS 2570. \bibitem{bs-2570-techreport} BSI. \newblock Natural fibre twines. \newblock BS 2570, British Standards Institution, London, 1973. \newblock 3rd. edn. \bibitem{bs-1629} BSI. \newblock Bibliographic references. \newblock BS 1629, British Standards Institution, 1976. \bibitem{bs-5605} BSI. \newblock Citing publications by bibliographic references. \newblock BS 5606, British Standards Institution, 1978. \bibitem{bs-6371} BSI. \newblock Citation of unpublished documents. \newblock BS 6371, British Standards Institution, 1983. \bibitem{butcher-81} Judith Butcher. \newblock {\em Copy-editing}. \newblock Cambridge University Press, 2nd edition, 1981. \bibitem{chapman-75} Jefferson Chapman. \newblock {\em The {Icehouse Bottom} Site---{40MR23}}. \newblock Number~23 in University of Tennessee Department of Anthropology Publication. Univ. of Tennessee Press, Knoxville, 1975. \bibitem{chave-64} K.~E. Chave. \newblock Skeletal durability and preservation. \newblock In J.~Imbrie and N.~Newel, editors, {\em Approaches to paleoecology}, pages 377--87, New York, 1964. Wiley. \bibitem{chicago-82} `Chicago'. \newblock {\em The {C}hicago Manual of Style}. \newblock University of Chicago Press, 13th edition, 1982. \bibitem{chomsky-73} N.~Chomsky. \newblock Conditions on transformations. \newblock In S.~R. Anderson and P.~Kiparsky, editors, {\em A festschrift for {Morris Halle}}, New York, 1973. Holt, Rinehart \& Winston. \bibitem{croft-78} W.~B. Croft. \newblock {\em Organizing and searching large files of document descriptions}. \newblock PhD thesis, Cambridge University, 1978. \bibitem{darcy-20-amaz} Firstname D'Arcy. \newblock {\em Title title title title title title title title title title}. \newblock Publisher publisher publisher, 1920. \bibitem{darcy-20-again} Firstname D'Arcy. \newblock {\em Title title title title title title title title title title}. \newblock Publisher publisher publisher, 1920. \bibitem{downes-74} W.~J. Downes. \newblock Systemic grammar and structural sentence relatedness. \newblock London School of Economics. Mimeo., 1974. \bibitem{eckstein-zuckerman} P.~Eckstein and S.~Zuckermann. \newblock Morphology of the reproductive tract. \newblock In A.~S. Parkes, editor, {\em Marshall's Physiology of Reproduction}, volume~1, pages 43--154. Longman, London, 1960. \bibitem{ellis-walton} B.~Ellis and A.~K. Walton. \newblock A bibliography on optical modulators. \newblock Technical Report RAE-TR-71009, Royal Aircraft Establishment, 1971. \bibitem{exchequer-34-39} Exchequer. \newblock Act books. \newblock Edinburgh, Scottish Record Office, E.4/5, 1634--1639. \bibitem{feigl-58} F.~Feigl. \newblock {\em Spot Tests in Organic Analysis}, chapter~6. \newblock Publisher publisher, 5th edition, 1958. \bibitem{fletcher-hopkins} W.~M. Fletcher and F.~G. Hopkins. \newblock Lactic acid in amphibian muscle. \newblock {\em J. Physiol.}, 35:247--309, 1907. \bibitem{godfrey-59} G.~Bernard Godfrey. \newblock Joints in tubular structures. \newblock {\em Struct. Eng.}, 37(4):126--135, 1959. \bibitem{gordon-75} Robert Gordon. \newblock The tunes of {Chicken Little}. \newblock In Arthur~H. Ballet, editor, {\em Playwrights for Tomorrow: A Collection of Plays}, volume~13. University of Minnesota Press, Minneapolis, 1975. \newblock One of four plays included in vol. 13. \bibitem{hanlon-72} Joseph Hanlon. \newblock Designing buildings by computer. \newblock {\em New Scientist}, pages 429--432, 31 Aug 1972. \bibitem{hanson-67} C.~W. Hanson. \newblock Subject inquiries and literature searching. \newblock In W.~Ashworth, editor, {\em Handbook of special librarianship and information work}, pages 414--452. 3rd edition, 1967. \bibitem{heller-lederis} H.~Heller and K.~Lederis. \newblock Paper chromatography of small amounts of vasopressin and oxytocin. \newblock {\em Nature}, 182:1231--2, 1958. \bibitem{hershkovitz-62} P.~Hershkovitz. \newblock {\em Evolution of {Neotropical} cricetine rodents ({Muridae}) with special reference to the phyllotine group}, volume~46 of {\em Fieldiana: Zoology}. \newblock Field Museum of Natural History, Chicago, 1962. \bibitem{hoel-71-whole} Paul~Gerhard Hoel. \newblock {\em Elementary Statistics}. \newblock Wiley series in probability and mathematical statistics. Wiley, New York, Chichester, 3rd edition, 1971. \newblock ISBN 0~471~40300. \bibitem{hoel-71-portion} Paul~Gerhard Hoel. \newblock {\em Elementary Statistics}, pages 19--33. \newblock Wiley series in probability and mathematical statistics. Wiley, New York, Chichester, 3rd edition, 1971. \newblock ISBN 0~471~40300. \bibitem{howells-51} W.~W. Howells. \newblock Factors of human physique. \newblock {\em American Journal of Physical Anthropology}, 9:159--192, 1951. \bibitem{howells-66-pop} W.~W. Howells. \newblock Population distances: Biological, linguistic, geographical and environmental. \newblock {\em Current Anthropology}, 7:531--540, 1966. \bibitem{howells-66-var} W.~W. Howells. \newblock Variability in family lines vs. population variability. \newblock {\em Annals of the {New York Academy of Sciences}}, 134:624--631, 1966. \bibitem{hunt-76} Horace~[pseud.] Hunt. \newblock Interview. \newblock Tape recording, Pennsylvania Historical and Museum Commission, Harrisburg, 1976. \newblock Interview by {Ronald Schatz, 16 May 1976}. \bibitem{jackson-79} Richard Jackson. \newblock Running down the up-escalator: Regional inequality in {Papua New Guinea}. \newblock {\em Australian Geographer}, 14:175--84, May 1979. \bibitem{johnson-74} G.~B. Johnson. \newblock Enzyme polymorphism. \newblock {\em Science}, 184:28--37, 1974. \bibitem{johnson-howells} G.~B. Johnson and W.~W. Howells. \newblock Title title title title title title title title title title. \newblock {\em Journal journal journal}, 1974. \bibitem{johnson-etc} G.~B. Johnson, W.~W. Howells, and A.~N. Other. \newblock Title title title title title title title title title title. \newblock {\em Journal journal journal}, 1976. \bibitem{jones-65} Firstname Jones. \newblock Title title title title title title title title title title. \newblock {\em Journal journal journal}, 1965. \bibitem{jones-69} Firstname Jones. \newblock Title title title title title title title title title title. \newblock {\em Journal journal journal}, 1969. \bibitem{jones-abrams} Firstname Jones and Firstname Abrams. \newblock Title title title title title title title title title title. \newblock {\em Journal journal journal}, 1968. \bibitem{jones-a-s} Firstname Jones, Firstname Abrams, and Firstname Smith. \newblock Title title title title title title title title title title. \newblock {\em Journal journal journal}, 1966. \bibitem{jones-n-h-r} Firstname Jones, Firstname Norman, Firstname Hazel, and Firstname Robinson. \newblock Title title title title title title title title title title. \newblock {\em Journal journal journal}, 1962. \bibitem{jones-smith} Firstname Jones and Firstname Smith. \newblock Title title title title title title title title title title. \newblock {\em Journal journal journal}, 1965. \bibitem{jones-s-r} Firstname Jones, Firstname Smith, and Firstname Robinson. \newblock Title title title title title title title title title title. \newblock {\em Journal journal journal}, 1962. \bibitem{kelley-96-spring} Firstname Kelley. \newblock Title title title title title title title title title title. \newblock {\em Journal journal journal}, 1896. \bibitem{kelley-96-autumn} Firstname Kelley. \newblock Title title title title title title title title title title. \newblock {\em Journal journal journal}, 1896. \bibitem{kelley-07} Firstname Kelley. \newblock Title title title title title title title title title title. \newblock {\em Journal journal journal}, 1907. \bibitem{kendeigh-52} S.~C. Kendeigh. \newblock {\em Prenatal care and its evolution in birds}, volume~22 of {\em Illinois Biological Monographs}. \newblock University of Illinois Press, Champaign, 1952. \bibitem{kingston-76} Firstname Kingston. \newblock Title title title title title title title title title title. \newblock {\em Journal journal journal}, 1976. \bibitem{light-72} Firstname Light. \newblock Title title title title title title title title title title. \newblock {\em Journal journal journal}, 1972. \bibitem{light-wong} Firstname Light and Firstname Wong. \newblock Title title title title title title title title title title. \newblock {\em Journal journal journal}, 1975. \bibitem{maguire-76} J.~Maguire. \newblock {\em A taxonomic and ecological study of the living and fossil {Hystricidae} with particular reference to southern {Africa}}. \newblock Ph.d. diss., Department of Geology, University of the Witwatersrand, Johannesburg, 1976. \bibitem{mann-68} A.~E. Mann. \newblock {\em The palaeodemography of {Australopithecus}}. \newblock Ph.d. diss., University of California, Berkeley, 1968. \bibitem{mccolvin-nodate} L.~R. McColvin. \newblock {\em Libraries in {Britain}}. \newblock {Longmans Green, for the British Council}, London, 1961. \bibitem{mcneill-63} William~H. McNeill. \newblock The era of {Middle Eastern} dominance to 500 {\sc b.c.} \newblock In {\em The Rise of the {West}}, part~1. {University of Chicago Press}, Chicago, 1963. \bibitem{milton-24} John Milton. \newblock Paradise lost. \newblock In William~Vaughn Moody, editor, {\em The Complete Poetical Works of {John Milton}}. Houghton Mifflin, Boston, {Student's Cambridge} edition, 1924. \bibitem{ogilvy-65} David Ogilvy. \newblock The creative chef. \newblock In Gary~A. Steiner, editor, {\em The Creative Organization}, pages 199--213. University of Chicago Press, Chicago, 1965. \bibitem{tub:NPo92b} Nico Poppelier. \bibitem{ntg:PH92} Nico Poppelier and Amy Hendrickson. \newblock Book reviews. \newblock 92(1):135--138, May 1992. \bibitem{pratt-75} Firstname Pratt. \newblock {\em Title title title title title title title title title title}. \newblock Publisher publisher publisher, 1975. \bibitem{prufer-64} Olaf Prufer. \newblock The {Hopewell} cult. \newblock {\em Scientific {American}}, pages 90--102, December 1964. \bibitem{pym-24} J.~Pym. \newblock Diary. \newblock Northampton, Northamptonshire Record Office, Finch-Hatton 50, 1624. \bibitem{ramsbottom-31} John Ramsbottom. \newblock Fungi pathogenic to man. \newblock In {\em A System of Bacteriology in relation to Medicine}, volume~8, pages 11--70. HMSO, for Medical Research Council, London, 1931. \bibitem{ranganathan-51} S.~R. Ranganthan. \newblock Colon classification and its approach to documentation. \newblock In Jesse~H. Shera and Margaret~E. Egan, editors, {\em Bibliographic Organization}, pages 94--105. University of Chicago Press, 1951. \bibitem{shotwell-01} Firstname Shotwell. \newblock {\em Title title title title title title title title title title}. \newblock Publisher publisher publisher, 1901. \bibitem{singer-whole} Charles~Joseph Singer, E.~J. Holmyard, and A.~R. Hall, editors. \newblock {\em A history of technology}. \newblock Oxford University Press, London, 1954--58. \newblock 5 vol. \bibitem{smart-76} Ninian Smart. \newblock {\em The religious experience of mankind}. \newblock Schribner, New York, 2nd edition, 1976. \bibitem{strong-01} Firstname Strong. \newblock {\em Title title title title title title title title title title}. \newblock Publisher publisher publisher, 1901. \bibitem{strong-02} Firstname Strong. \newblock {\em Title title title title title title title title title title}. \newblock Publisher publisher publisher, 1902. \bibitem{thomson-71} Virgil Thomson. \newblock Cage and the collage of noises. \newblock In {\em American Music since 1910}, chapter~8. Holt, Rinehart and Winston, New York, 1971. \bibitem{traquair-38} {Earl of} Traquair. \newblock Letter to {Marquess of Hamilton, 28 Aug.} \newblock Lennoxlove (E.~Lothian), Muniments of Duke of Hamilton and Brandon, C.1, no. 963, 1638. \bibitem{winget-67} {Winget Ltd.} \newblock Detachable bulldozer attachment for dumper vehicles. \newblock GB Patent Specification 1060631, 8 Mar 1967. \bibitem{wood-61} R.~H. Wood. \newblock {\em Plastic and Elastic Design of Slabs and Plates}. \newblock Thames \& Hudson, London, 1961. \bibitem{wright-63} R.~C. Wright. \newblock {\em Report Literature}, pages 46--59. \newblock The Library Association, 1963. \bibitem{wright-78-book} Sewall Wright. \newblock {\em Evolution and the genetics of populations}, volume~4. \newblock Univ. of Chicago Press, Chicago, 1978. \bibitem{wright-78-incollection} Sewall Wright. \newblock Variability within and among natural populations. \newblock In {\em Evolution and the genetics of populations}, vol.~4. Univ. of Chicago Press, Chicago, 1978. \end{thebibliography} bibclean-3.07/test/okay/topt337.err0000444000156700015670000000000012470142676015760 0ustar beebebeebebibclean-3.07/test/okay/topt133.out0000444000156700015670000000000112470143215015760 0ustar beebebeebe bibclean-3.07/test/okay/topt149.err0000444000156700015670000000000012470142673015756 0ustar beebebeebebibclean-3.07/test/okay/topt102.out0000444000156700015670000000000112470143203015751 0ustar beebebeebe bibclean-3.07/test/okay/topt306.err0000444000156700015670000000000012470142674015752 0ustar beebebeebebibclean-3.07/test/okay/romtol.err0000444000156700015670000000000007342726001016041 0ustar beebebeebebibclean-3.07/test/okay/topt135.err0000444000156700015670000000000012470142673015751 0ustar beebebeebebibclean-3.07/test/okay/topt331.out0000444000156700015670000000000112470143226015762 0ustar beebebeebe bibclean-3.07/test/okay/topt132.err0000444000156700015670000000000012470142673015746 0ustar beebebeebebibclean-3.07/test/okay/topt336.out0000444000156700015670000000000112470143227015770 0ustar beebebeebe bibclean-3.07/test/okay/topt105.out0000444000156700015670000000000012470142672015764 0ustar beebebeebebibclean-3.07/test/okay/topt301.err0000444000156700015670000005103313660517106015757 0ustar beebebeebe Usage: ../bibclean [ -author ] [ -copyleft ] [ -copyright ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -ISBN-file filename ] [ -keyword-file filename ] [ -max-width nnn ] [ -[no-]align-equals ] [ -[no-]brace-protect ] [ -[no-]check-values ] [ -[no-]debug-match-failures ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-accents ] [ -[no-]fix-braces ] [ -[no-]fix-degrees ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-math ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-ISBN-table ] [ -[no-]print-keyword-table ] [ -[no-]print-patterns ] [ -[no-]quiet ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -output-file filename ] [ -version ] [ outfile Command-line switches may be abbreviated to a unique leading prefix, and letter case is not significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag to no. For such options, the last setting determines the flag value used. That is significant when options are also specified in initialization files (see the INITIALIZATION FILES manual section). The leading hyphen that distinguishes an option from a filename may be doubled, for compatibility with GNU and POSIX conventions. Thus, -author and --author are equivalent. To avoid confusion with options, if a filename begins with a hyphen, it must be disguised by a leading absolute or relative directory path, e.g., /tmp/-foo.bib or ./-foo.bib. -author Display an author credit on the standard error unit, stderr, and then terminate with a success return code. Sometimes an executable program is separated from its documentation and source code; this option provides a way to recover from that. -copyleft Display copyright information on the standard error unit, stderr, and then terminate with a success return code. -copyright Display copyright information on the standard error unit, stderr, and then terminate with a success return code. -error-log filename Redirect stderr to the indicated file, which then contains all of the error and warning messages. This option is provided for those systems that have difficulty redirecting stderr. -help or -? Display a help message on stderr, giving a usage description, similar to this section of the manual pages, and then terminate with a success return code. -ISBN-file filename Provide an explicit ISBN-range initialization file. It is processed after any system-wide and job-wide ISBN initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. The ISBN initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANISBN, but defaults to .bibclean.isbn on UNIX, and bibclean.isb elsewhere. For further details, see the ISBN INITIALIZATION FILES manual section. -init-file filename Provide an explicit value pattern initialization file. It is processed after any system-wide and job-wide initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANINI, but defaults to .bibcleanrc on UNIX, and to bibclean.ini elsewhere. For further details, see the INITIALIZATION FILES manual section. -keyword-file filename Provide an explicit keyword initialization file. It is processed after any system-wide and job-wide keyword initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. The keyword initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANKEY, but defaults to .bibclean.key on UNIX, and bibclean.key elsewhere. For further details, see the KEYWORD INITIALIZATION FILES manual section. -max-width nnn bibclean normally limits output line widths to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special-purpose applications may require different maximum line widths, so this option provides that capability. The number following the option name can be specified in decimal, octal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is interpreted to mean unlimited, so -max-width 0 can be used to ensure that each field/value pair appears on a single line. When -no-prettyprint requests bibclean to act as a lexical analyzer, the default line width is unlimited, unless overridden by this option. When bibclean is prettyprinting, line wrapping is done only at a space. Consequently, a long non-blank character sequence may result in the output exceeding the requested line width. When bibclean is lexing, line wrapping is done by inserting a backslash-newline pair when the specified maximum is reached, so no line length ever exceeds the maximum. -[no-]align-equals With the positive form, align the equals sign in key/value assignments at the same column, separated by a single space from the value string. Otherwise, the equals sign follows the key, separated by a single space. Default: no. -[no-]brace-protect Protect uppercase and mixedcase words at brace-level zero with braces to prevent downcasing by some BibTeX styles. Default: yes. -[no-]check-values With the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g., ``year = "192"'' instead of ``year = "1992"''), and issue warnings when unexpected patterns are found. That checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can disable it with the negative form of this option. Default: yes. -[no-]debug-match-failures With the positive form, print out a warning when a value pattern fails to match a value string. That is helpful in debugging new patterns, but because the output can be voluminous, you should use this option only with small test files, and initialization files that eliminate all patterns apart from the ones that you are testing. Default: no. -[no-]delete-empty-values With the positive form, remove all field/value pairs for which the value is an empty string. That is helpful in cleaning up bibliographies generated from text editor templates. Compare this option with -[no-]remove-OPT-prefixes described below. Default: no. -[no-]file-position With the positive form, give detailed file position information in warning and error messages. Default: no. -[no-]fix-accents With the positive form, normalize TeX accents in annotes, authors, booktitles, editors, notes, remarks, and titles. Default: no. -[no-]fix-braces With the positive form, normalize bracing in annotes, authors, booktitles, editors, notes, remarks, and titles, by removing unnecessary levels of braces. Default: no. -[no-]fix-degrees With the positive form, remove spaces in author/editor fields inside braces after letter-ending periods. That makes reductions from J. J. {Thomson, M. A., F. R. S.}, Frederick {Soddy, B. A. (Oxon.)}, and John A. {Cable, M. A., M. Ed., Dipl. Deutsch (Marburg), A. L. C. M.} to J. J. {Thomson, M.A., F.R.S.}, Frederick {Soddy, B.A. (Oxon.)}, and John A. {Cable, M.A., M.Ed., Dipl.Deutsch (Marburg), A.L.C.M.}, respectively. In journals in the humanities and history of science, as well as in some scientific journals until well into the 20th Century, academic, honorary, and professional titles and degrees are commonly attached to personal names. Even though modern publishing practice avoids such decorations, for accuracy, bibliography entries should preferably retain them. Journal typographical practice generally follows the reductions described here. -[no-]fix-font-changes With the positive form, supply an additional brace level around font changes in titles to protect against downcasing by some BibTeX styles. Font changes that already have more than one level of braces are not modified. For example, if a title contains the Latin phrase {\em Dictyostelium discoideum} or {\em {D}ictyostelium discoideum}, then downcasing incorrectly converts the phrase to lower-case letters. Most BibTeX users are surprised that bracing the initial letters does not prevent the downcase action. The correct coding is {{\em Dictyostelium discoideum}}. However, there are also legitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, bibclean normally does not supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this option to supply them. If you think that you need this option, it is strongly recommended that you apply bibclean to your bibliography file with and without -fix-font-changes, then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You must decide which of the two output files is the better choice, then repair the incorrect title bracing by hand. Because font changes in titles are uncommon, except for cases of the type that this option is designed to correct, it should do more good than harm. Default: no. -[no-]fix-initials With the positive form, insert a space after a period following author initials. Default: yes. -[no-]fix-math With the positive form, improve readability of math mode in titles by inserting spaces around operators, deleting other unnecessary space, and removing braces around single- character subscripts and superscripts. Default: no. -[no-]fix-names With the positive form, reorder author and editor name lists to remove commas at brace level zero, placing first names or initials before last names. Default: yes. -[no-]German-style With the positive form, interpret quote characters ["] inside braced value strings at brace level 1 according to the conventions of the TeX style file german.sty, which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, invisible hyphens, raised/lowered quotes, French guillemets, and discretionary hyphens. Recognized character combinations are braced to prevent BibTeX from interpreting the quote as a string delimiter. Quoted strings receive no special handling from this option, and because German nouns in titles must anyway be protected from the downcasing operation of most BibTeX bibliography styles, German value strings that use the overloaded quote character can always be entered in the form "{...}", without the need to specify this option at all. Default: no. -[no-]keep-linebreaks Normally, line breaks inside value strings are collapsed into a single space, so that long value strings can later be broken to provide lines of reasonable length. With the positive form, linebreaks are preserved in value strings. If -max-width is set to zero, this preserves the original line breaks. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-parbreaks With the positive form, preserve paragraph breaks (either formfeeds, or lines containing only spaces) in value strings. Normally, paragraph breaks are collapsed into a single space. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-preamble-spaces With the positive form, preserve all whitespace in @Preamble{...} entries. Default: no. -[no-]keep-spaces With the positive form, preserve all spaces in value strings. Normally, multiple spaces are collapsed into a single space. This option can be used together with -keep-linebreaks, -keep-parbreaks, and -max-width 0 to preserve the form of value strings while still providing syntax and value checking. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-string-spaces With the positive form, preserve all whitespace in @String{...} entries. Default: no. -[no-]parbreaks With the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field/value pairs. That may be useful to quickly trap runaway strings arising from mismatched delimiters. Default: yes. -[no-]prettyprint Normally, bibclean functions as a prettyprinter. However, with the negative form of this option, it acts as a lexical analyzer instead, producing a stream of lexical tokens. See the LEXICAL ANALYSIS manual section for further details. Default: yes. -[no-]print-ISBN-table With the positive form, print the ISBN-range table on stderr, then terminate with a success return code. That action is taken after all command-line options are processed, and before any input files are read (other than those that are values of command-line options). The format of the output ISBN-range table is acceptable for input as an ISBN initialization file (see the ISBN INITIALIZATION FILES manual section). Default: no. -[no-]print-keyword-table With the positive form, print the keyword initialization table on stderr, then terminate with a success return code. That action is taken after all command-line options are processed, and before any input files are read (other than those that are values of command-line options). The format of the output table is acceptable for input as a keyword initialization file (see the KEYWORD INITIALIZATION FILES manual section). Default: no. -[no-]print-patterns With the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used. When bibclean is compiled with native pattern-matching code (the default), those patterns are the ones that are used in checking value strings for valid syntax, and all of them are specified in initialization files, rather than hard-coded into the program. For further details, see the INITIALIZATION FILES manual section. Default: no. -[no-]quiet This option is the opposite of -[no-]warning; it exists for user convenience, and for compatibility with other programs that use -q for quiet operation, without warning messages. -[no-]read-init-files With the negative form, suppress loading of system-, user-, and file-specific initialization files. Initializations then come only from those files explicitly given by -init-file filename options. Default: yes. -[no-]remove-OPT-prefixes With the positive form, remove the ``OPT'' prefix from each field name where the corresponding value is not an empty string. The prefix ``OPT'' must be entirely in upper-case to be recognized. This option is for bibliographies generated with the help of the GNU Emacs BibTeX editing support, which generates templates with optional fields identified by the ``OPT'' prefix. Although the function M-x bibtex-remove-OPT normally bound to the keystrokes C-c C-o does the job, users often forget, with the result that BibTeX does not recognize the field name, and ignores the value string. Compare this option with -[no-]delete-empty-values described above. Default: no. -[no-]scribe With the positive form, accept input syntax conforming to the Scribe document system. The output is converted to conform to BibTeX syntax. See the SCRIBE BIBLIOGRAPHY FORMAT manual section for further details. Default: no. -[no-]trace-file-opening With the positive form, record in the error log file the names of all files that bibclean attempts to open. Use this option to identify where initialization files are located. Default: no. -[no-]warnings With the positive form, allow all warning messages. The negative form is not recommended because it may mask problems that should be repaired. Default: yes. -output-file filename Supply an alternate output file to replace stdout. If the filename cannot be opened for output, execution terminates immediately with a nonzero exit code. -version Display the program version number on stderr, and then terminate with a success return code. That includes an indication of who compiled the program, the host name on which it was compiled, the time of compilation, and the type of string-value matching code selected, when that information is available to the compiler. bibclean-3.07/test/okay/topt338.out0000444000156700015670000000000112470143227015772 0ustar beebebeebe bibclean-3.07/test/okay/topt140.err0000444000156700015670000000000012470142673015745 0ustar beebebeebebibclean-3.07/test/okay/topt344.out0000444000156700015670000000000112470143227015767 0ustar beebebeebe bibclean-3.07/test/okay/topt147.err0000444000156700015670000000000012470142673015754 0ustar beebebeebebibclean-3.07/test/okay/topt343.out0000444000156700015670000000000112470143227015766 0ustar beebebeebe bibclean-3.07/test/okay/topt308.err0000664000156700015670000000035514162101400015753 0ustar beebebeebeCopyright (C) 1990--2021 by Nelson H. F. Beebe and the Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. bibclean-3.07/test/okay/topt170.out0000444000156700015670000000000112663433402015765 0ustar beebebeebe bibclean-3.07/test/okay/topt139.out0000444000156700015670000000000112470143217015770 0ustar beebebeebe bibclean-3.07/test/okay/topt145.out0000444000156700015670000000000112470143220015757 0ustar beebebeebe bibclean-3.07/test/okay/topt341.err0000444000156700015670000000000012470142676015753 0ustar beebebeebebibclean-3.07/test/okay/topt109.err0000664000156700015670000000035514162101374015764 0ustar beebebeebeCopyright (C) 1990--2021 by Nelson H. F. Beebe and the Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. bibclean-3.07/test/okay/topt142.out0000444000156700015670000000000112470143220015754 0ustar beebebeebe bibclean-3.07/test/okay/topt346.err0000444000156700015670000000000012470142676015760 0ustar beebebeebebibclean-3.07/test/okay/topt371.out0000444000156700015670000000000113070535011015760 0ustar beebebeebe bibclean-3.07/test/okay/topt107.err0000444000156700015670000000000012470142672015747 0ustar beebebeebebibclean-3.07/test/okay/topt303.out0000444000156700015670000000000112470143224015757 0ustar beebebeebe bibclean-3.07/test/okay/topt348.err0000444000156700015670000000000012470142676015762 0ustar beebebeebebibclean-3.07/test/okay/testscr2.bbl0000444000156700015670000000141007342750522016260 0ustar beebebeebe\begin{thebibliography}{1} \bibitem{COMMENT} \bibitem{bs-1629-4} Bibliographic references. \newblock Technical Report 1629, British Standards Institution, 1976. \bibitem{bs-1629-5} Bibliographic references. \newblock Technical Report 1629, British Standards Institution, 1976. \bibitem{bs-1629-0} BSI. \newblock Bibliographic references. \newblock BS 1629, British Standards Institution, 1976. \bibitem{bs-1629-1} BSI. \newblock Bibliographic references. \newblock BS 1629, British Standards Institution, 1976. \bibitem{bs-1629-2} BSI. \newblock Bibliographic references. \newblock BS 1629, British Standards Institution, 1976. \bibitem{bs-1629-3} BSI. \newblock Bibliographic references. \newblock BS 1629, British Standards Institution, 1976. \end{thebibliography} bibclean-3.07/test/okay/topt130.out0000444000156700015670000000000112470143214015754 0ustar beebebeebe bibclean-3.07/test/okay/topt334.err0000444000156700015670000000000012470142676015755 0ustar beebebeebebibclean-3.07/test/okay/topt137.out0000444000156700015670000000000112470143216015765 0ustar beebebeebe bibclean-3.07/test/okay/topt333.err0000444000156700015670000000000012470142676015754 0ustar beebebeebebibclean-3.07/test/okay/testcodn.out0000444000156700015670000011516706140704201016405 0ustar beebebeebe%% /u/sy/beebe/tex/bibclean/2-11/testcodn.org, Sun Apr 28 09:01:10 1996 %% Edit by Nelson H. F. Beebe @Article{good-CODEN, comment = "The following CODEN values are valid", CODEN = "AAAAE6", CODEN = "AACRAT", CODEN = "AAFMAT", CODEN = "AAICAE", CODEN = "AALEE5", CODEN = "AAMADV", CODEN = "AAPBBD", CODEN = "AARIA9", CODEN = "AASTAD", CODEN = "ABACEJ", CODEN = "ABBIA4", CODEN = "ABBPAP", CODEN = "ABMECF", CODEN = "ACACBN", CODEN = "ACACEQ", CODEN = "ACCSCE", CODEN = "ACCYDX", CODEN = "ACMAA8", CODEN = "ACMJB2", CODEN = "ACMSCU", CODEN = "ACMTAV", CODEN = "ACNRCW", CODEN = "ACPZAU", CODEN = "ACRABY", CODEN = "ACVMAL", CODEN = "ADIMEZ", CODEN = "ADMOAN", CODEN = "ADMTA4", CODEN = "ADVBAT", CODEN = "ADVMEW", CODEN = "AEDEER", CODEN = "AEDSAV", CODEN = "AEMABN", CODEN = "AEMIDF", CODEN = "AERAAD", CODEN = "AESODT", CODEN = "AESWEK", CODEN = "AHCOE5", CODEN = "AHPBAR", CODEN = "AHSUAV", CODEN = "AIAJAH", CODEN = "AIFUA7", CODEN = "AINFA2", CODEN = "AINTBB", CODEN = "AISJB6", CODEN = "AJAEBA", CODEN = "AJCLD9", CODEN = "AJCPAI", CODEN = "AJMAAN", CODEN = "AJPCAA", CODEN = "AJPHAP", CODEN = "AJPIAS", CODEN = "AJSOAR", CODEN = "ALGOBG", CODEN = "ALGOEJ", CODEN = "ALLCB5", CODEN = "ALNBAB", CODEN = "ALPSE8", CODEN = "ALSHAK", CODEN = "AMACCQ", CODEN = "AMEAE8", CODEN = "AMHCBQ", CODEN = "AMICCW", CODEN = "AMLEEL", CODEN = "AMMYAE", CODEN = "AMNOAN", CODEN = "AMNTA4", CODEN = "AMOMBN", CODEN = "AMPSAB", CODEN = "AMREAD", CODEN = "AMSCAC", CODEN = "ANBCA2", CODEN = "ANCHAM", CODEN = "ANJOAA", CODEN = "ANMAAH", CODEN = "ANMAEL", CODEN = "ANMBCM", CODEN = "ANNSA8", CODEN = "ANYAA9", CODEN = "AOREEV", CODEN = "APANCC", CODEN = "APBYAE", CODEN = "APITE4", CODEN = "APLQD9", CODEN = "APMTAK", CODEN = "APOPAI", CODEN = "APPHE3", CODEN = "APPLAB", CODEN = "APSSBE", CODEN = "APSTAG", CODEN = "ARBOAW", CODEN = "ARCBE2", CODEN = "AREDEI", CODEN = "AREOAD", CODEN = "ARGSB2", CODEN = "ARITBF", CODEN = "ARMSCX", CODEN = "ARNSD5", CODEN = "ARPHAD", CODEN = "ASFPDV", CODEN = "ASJOAB", CODEN = "ASLPAO", CODEN = "ASNAAN", CODEN = "ASRSDW", CODEN = "ASTAAJ", CODEN = "ASTSC7", CODEN = "ASTTA8", CODEN = "ATCAA9", CODEN = "ATDSD3", CODEN = "ATENBP", CODEN = "ATGRDF", CODEN = "ATISET", CODEN = "ATOSDO", CODEN = "ATPSDT", CODEN = "AUJPAS", CODEN = "AURCAT", CODEN = "AVRMAW", CODEN = "AWIFA7", CODEN = "AWREDI", CODEN = "BAMOAD", CODEN = "BASICR", CODEN = "BBACAQ", CODEN = "BBIADT", CODEN = "BBPCAX", CODEN = "BBRCA9", CODEN = "BCBIEQ", CODEN = "BCHSEI", CODEN = "BCPCA6", CODEN = "BCSTB5", CODEN = "BECTA6", CODEN = "BEITD5", CODEN = "BEVEDP", CODEN = "BGDQAG", CODEN = "BIBUBX", CODEN = "BICHAW", CODEN = "BICIAZ", CODEN = "BICMBE", CODEN = "BICYAF", CODEN = "BIINDF", CODEN = "BIJOAK", CODEN = "BIJODN", CODEN = "BIOEEJ", CODEN = "BIOJAU", CODEN = "BIOKAX", CODEN = "BIOMB6", CODEN = "BIOPAE", CODEN = "BIORAK", CODEN = "BISNAS", CODEN = "BITTEL", CODEN = "BIZBAR", CODEN = "BIZEB3", CODEN = "BJCAAI", CODEN = "BJMRDK", CODEN = "BJMSAK", CODEN = "BLCEDD", CODEN = "BLOOAW", CODEN = "BLRRDP", CODEN = "BMBIES", CODEN = "BMFRA3", CODEN = "BMSSB4", CODEN = "BMTBAP", CODEN = "BOMBB5", CODEN = "BOMIET", CODEN = "BRCPAH", CODEN = "BRHLAU", CODEN = "BRMCEW", CODEN = "BRPTDT", CODEN = "BSECBU", CODEN = "BSMFAA", CODEN = "BSMHBH", CODEN = "BSMSAF", CODEN = "BSSYAT", CODEN = "BSTJAN", CODEN = "BSYMBO", CODEN = "BTCHDA", CODEN = "BUWEA3", CODEN = "BYTEDJ", CODEN = "CACMA2", CODEN = "CAIDA5", CODEN = "CAMRE3", CODEN = "CANED2", CODEN = "CANMER", CODEN = "CASSI6", CODEN = "CBIIEV", CODEN = "CBIODE", CODEN = "CBMDAW", CODEN = "CBMRB7", CODEN = "CBPBB8", CODEN = "CBPCEE", CODEN = "CBRPDS", CODEN = "CCCTD6", CODEN = "CCEJEL", CODEN = "CCENDW", CODEN = "CCOMDB", CODEN = "CCRED2", CODEN = "CCROAT", CODEN = "CCUJEX", CODEN = "CDDEE8", CODEN = "CDWOEV", CODEN = "CECADV", CODEN = "CEJOE7", CODEN = "CELLB5", CODEN = "CELREQ", CODEN = "CENGAX", CODEN = "CESIEY", CODEN = "CEXIAL", CODEN = "CFSBEK", CODEN = "CGFODY", CODEN = "CGISES", CODEN = "CGMPE5", CODEN = "CGOSDN", CODEN = "CGRADI", CODEN = "CGTNAU", CODEN = "CGWODH", CODEN = "CHASAP", CODEN = "CHEDAY", CODEN = "CHKWEN", CODEN = "CHMBAY", CODEN = "CHPLBC", CODEN = "CHRLEP", CODEN = "CILSEN", CODEN = "CINDDL", CODEN = "CINUD4", CODEN = "CIRUAL", CODEN = "CIUNEJ", CODEN = "CJBBDU", CODEN = "CJEEEL", CODEN = "CJISDE", CODEN = "CJMAAB", CODEN = "CJMIAZ", CODEN = "CJPHAD", CODEN = "CLDFAT", CODEN = "CLHAD3", CODEN = "CLMCAV", CODEN = "CLSRE8", CODEN = "CMAPDK", CODEN = "CMBUA9", CODEN = "CMCYEO", CODEN = "CMENEZ", CODEN = "CMERA9", CODEN = "CMMECC", CODEN = "CMMEEE", CODEN = "CMMPA9", CODEN = "CMORAP", CODEN = "CMOTDY", CODEN = "CMPBEK", CODEN = "CMPDAM", CODEN = "CMPHAY", CODEN = "CMPHC2", CODEN = "CMPJA6", CODEN = "CMPMAF", CODEN = "CMPWAB", CODEN = "CMRED4", CODEN = "CMSTCJ", CODEN = "CMSVAN", CODEN = "CMSYE2", CODEN = "CMUCAA", CODEN = "CMUJDY", CODEN = "CNEVEW", CODEN = "CNISE9", CODEN = "CNOMEL", CODEN = "COABER", CODEN = "COATBA", CODEN = "COBUAH", CODEN = "COCBE3", CODEN = "COCHDK", CODEN = "COCOD7", CODEN = "COGDET", CODEN = "COGRD2", CODEN = "COHUAD", CODEN = "COLADA", CODEN = "COLAEB", CODEN = "COLJD3", CODEN = "COMBDI", CODEN = "COMEDR", CODEN = "COMGDX", CODEN = "COMHAX", CODEN = "COMIE6", CODEN = "COMLEF", CODEN = "COMPER", CODEN = "COMSE2", CODEN = "COPIEL", CODEN = "COSEEO", CODEN = "COSPDM", CODEN = "COSTCX", CODEN = "CPAUAJ", CODEN = "CPBTAL", CODEN = "CPCIBS", CODEN = "CPCLE6", CODEN = "CPCPAI", CODEN = "CPDIDZ", CODEN = "CPEXEI", CODEN = "CPFLBI", CODEN = "CPGRA6", CODEN = "CPHCBZ", CODEN = "CPHREF", CODEN = "CPHYE2", CODEN = "CPLIE8", CODEN = "CPMAMV", CODEN = "CPMTA8", CODEN = "CPPNB6", CODEN = "CPSEDU", CODEN = "CPTRB4", CODEN = "CQGRDG", CODEN = "CQMAAQ", CODEN = "CRASEV", CODEN = "CRBRAT", CODEN = "CRCHE8", CODEN = "CRGRDN", CODEN = "CRLIAI", CODEN = "CRPFEX", CODEN = "CRVMAC", CODEN = "CRYPE6", CODEN = "CSCIAE", CODEN = "CSDADW", CODEN = "CSFUDY", CODEN = "CSHSAZ", CODEN = "CSINET", CODEN = "CSMNEF", CODEN = "CSPLEO", CODEN = "CSSCDB", CODEN = "CSSEEI", CODEN = "CSTAEB", CODEN = "CSTIEZ", CODEN = "CSYND6", CODEN = "CTCRAE", CODEN = "CTDBA5", CODEN = "CTMEET", CODEN = "CTPHDI", CODEN = "CTRAA4", CODEN = "CUBLE2", CODEN = "CUGED5", CODEN = "CUMIDD", CODEN = "CUOBE3", CODEN = "CUSCAM", CODEN = "CVGPDB", CODEN = "CVIUF4", CODEN = "CWLJDP", CODEN = "CYBNAW", CODEN = "CYTOAN", CODEN = "CYTODQ", CODEN = "CYTZAM", CODEN = "CZMJAE", CODEN = "DACODM", CODEN = "DAMADU", CODEN = "DANKAS", CODEN = "DBANAD", CODEN = "DBMSEO", CODEN = "DCEBE8", CODEN = "DCGEER", CODEN = "DDJOEB", CODEN = "DEBIAO", CODEN = "DEMADO", CODEN = "DESUED", CODEN = "DEVPED", CODEN = "DFFNAW", CODEN = "DGDFA5", CODEN = "DGNTDW", CODEN = "DHSTEV", CODEN = "DHWHAB", CODEN = "DIEQAN", CODEN = "DIGNAO", CODEN = "DIRVE5", CODEN = "DJTGEB", CODEN = "DKENEW", CODEN = "DNAADR", CODEN = "DNSEES", CODEN = "DPCOEQ", CODEN = "DSINE6", CODEN = "DSJOEE", CODEN = "DSMHA4", CODEN = "DSSYDK", CODEN = "DTBSDQ", CODEN = "DTGDE7", CODEN = "DTMNAT", CODEN = "DUMJAO", CODEN = "EAPPEY", CODEN = "ECJSER", CODEN = "ECMTA7", CODEN = "ECREAL", CODEN = "EDNSBH", CODEN = "EDNSBM", CODEN = "EFMEAH", CODEN = "EIVKAX", CODEN = "EJABDD", CODEN = "EJBCAI", CODEN = "EJCBDN", CODEN = "EJCBEO", CODEN = "EJNMEA", CODEN = "EJOCDI", CODEN = "EJORDT", CODEN = "EJPREZ", CODEN = "EKRKAR", CODEN = "ELCTDN", CODEN = "ELEADA", CODEN = "ELLEAK", CODEN = "ELLIDZ", CODEN = "ELMMAF", CODEN = "ELNEAU", CODEN = "ELNTA7", CODEN = "ELODAW", CODEN = "ELRAA4", CODEN = "EMIREL", CODEN = "EMJODG", CODEN = "ENDEAS", CODEN = "ENMAAR", CODEN = "ENPOEK", CODEN = "EOCMEO", CODEN = "EONLE8", CODEN = "EPEBD7", CODEN = "EPMEAJ", CODEN = "EPODEU", CODEN = "ERGOAX", CODEN = "ERMGB6", CODEN = "ESBIAV", CODEN = "ESTHAG", CODEN = "ETTIEU", CODEN = "ETTTET", CODEN = "EWWWE6", CODEN = "EXEEE5", CODEN = "EXMYD2", CODEN = "EXPEAM", CODEN = "EXPSAU", CODEN = "EXSEE7", CODEN = "EYPRE4", CODEN = "FAJOEC", CODEN = "FASRDV", CODEN = "FEADEU", CODEN = "FEBLAL", CODEN = "FEBPBY", CODEN = "FEPRA7", CODEN = "FIBQAU", CODEN = "FMLED7", CODEN = "FMREE4", CODEN = "FODMD5", CODEN = "FORBA5", CODEN = "FORTAP", CODEN = "FSSYD8", CODEN = "FUJTAR", CODEN = "FUMAAJ", CODEN = "GAMOE4", CODEN = "GEDEEP", CODEN = "GENED6", CODEN = "GENTAE", CODEN = "GLSEED", CODEN = "GLYCE3", CODEN = "GNMCEP", CODEN = "GPYSA7", CODEN = "GRGVA8", CODEN = "GRWAAP", CODEN = "HABRAX", CODEN = "HAEMAX", CODEN = "HALEAA", CODEN = "HALRAF", CODEN = "HAMAA3", CODEN = "HCMYAL", CODEN = "HIMADS", CODEN = "HJICAI", CODEN = "HJKHDC", CODEN = "HLTPAO", CODEN = "HPJOAX", CODEN = "HUBIAA", CODEN = "HUFAA6", CODEN = "HUHEAS", CODEN = "HUNEDR", CODEN = "HVERAP", CODEN = "HYPRAX", CODEN = "IAPMEZ", CODEN = "IBMBES", CODEN = "IBMJAE", CODEN = "IBMSA7", CODEN = "IBMTAA", CODEN = "ICCBAF", CODEN = "ICGADZ", CODEN = "ICHPCG", CODEN = "ICOEEK", CODEN = "ICOMD9", CODEN = "ICSAES", CODEN = "ICSYBT", CODEN = "IDXRA5", CODEN = "IEANEP", CODEN = "IEARAX", CODEN = "IEBEAX", CODEN = "IECMBT", CODEN = "IECTAF", CODEN = "IEEDAB", CODEN = "IEEDEF", CODEN = "IEEECA", CODEN = "IEEPAD", CODEN = "IEERAJ", CODEN = "IEESAM", CODEN = "IEEWAY", CODEN = "IEITEF", CODEN = "IEJQA7", CODEN = "IEMGAQ", CODEN = "IEMIDZ", CODEN = "IEPCBU", CODEN = "IERNE8", CODEN = "IESEDJ", CODEN = "IESOEG", CODEN = "IETAA9", CODEN = "IETABA", CODEN = "IETDAI", CODEN = "IETIAX", CODEN = "IETMAB", CODEN = "IETPAK", CODEN = "IETTAW", CODEN = "IFCAE3", CODEN = "IFCEBC", CODEN = "IFCNA4", CODEN = "IFCSEN", CODEN = "IFDBEB", CODEN = "IFESEX", CODEN = "IFPLAT", CODEN = "IFSRAS", CODEN = "IGRSD2", CODEN = "IHPRBS", CODEN = "IHSCEZ", CODEN = "IICOEW", CODEN = "IIOMEI", CODEN = "IJAEDW", CODEN = "IJANDP", CODEN = "IJARE4", CODEN = "IJAUED", CODEN = "IJBBBQ", CODEN = "IJBBFU", CODEN = "IJBOBV", CODEN = "IJCIAH", CODEN = "IJCMAT", CODEN = "IJCOAZ", CODEN = "IJCTEK", CODEN = "IJCVEQ", CODEN = "IJDBE5", CODEN = "IJEBA6", CODEN = "IJEEAF", CODEN = "IJHMAK", CODEN = "IJHYEQ", CODEN = "IJISED", CODEN = "IJMEBM", CODEN = "IJMMBC", CODEN = "IJMPDN", CODEN = "IJMPEO", CODEN = "IJMTAW", CODEN = "IJNADH", CODEN = "IJNFDW", CODEN = "IJNMBH", CODEN = "IJPBEV", CODEN = "IJPPE5", CODEN = "IJQBDZ", CODEN = "IJQCB2", CODEN = "IJQSAF", CODEN = "IJQSDI", CODEN = "IJRAE4", CODEN = "IJRBE7", CODEN = "IJSAE9", CODEN = "IJSCBC", CODEN = "IJSYA9", CODEN = "IJSZEG", CODEN = "IJTPBM", CODEN = "IMCSE4", CODEN = "IMPAEF", CODEN = "IMPDEO", CODEN = "IMPEER", CODEN = "IMSIEK", CODEN = "IMTHAI", CODEN = "IMTHBJ", CODEN = "INFAC4", CODEN = "INFCDB", CODEN = "INFCEC", CODEN = "INFRCL", CODEN = "INFTCR", CODEN = "INFWE4", CODEN = "INPEEY", CODEN = "INSKDW", CODEN = "INSYD6", CODEN = "INWODU", CODEN = "IPDAD9", CODEN = "IPDTEX", CODEN = "IPETD3", CODEN = "IPJIEI", CODEN = "IPMADK", CODEN = "IPPADZ", CODEN = "IPPDDA", CODEN = "IPPRDI", CODEN = "IPRODJ", CODEN = "IRAMEB", CODEN = "IRCYAJ", CODEN = "IRELAO", CODEN = "IRITAY", CODEN = "IRLAAQ", CODEN = "IRMGBG", CODEN = "ISACEM", CODEN = "ISIJBC", CODEN = "ISISA4", CODEN = "ISJMAP", CODEN = "ISOTE7", CODEN = "ISUDX8", CODEN = "ISYMAW", CODEN = "ISYSDJ", CODEN = "ITADAS", CODEN = "ITBTEH", CODEN = "ITCEDA", CODEN = "ITCOB4", CODEN = "ITCSDI", CODEN = "ITDSEO", CODEN = "ITKEEH", CODEN = "ITLBDC", comment = "These CODEN are correct, except that they have been converted to lower case", CODEN = "itmeer", CODEN = "itmgex", CODEN = "itmid4", CODEN = "itnnep", CODEN = "itpidj", CODEN = "itpred", CODEN = "itpseg", CODEN = "itrdde", CODEN = "iumjab", CODEN = "ivjodl", CODEN = "iweea4", CODEN = "izamat", CODEN = "jacgar", CODEN = "jacoah", CODEN = "jacsat", CODEN = "jactaw", CODEN = "jaecet", CODEN = "jahsak", CODEN = "jalga4", CODEN = "jalsa6", CODEN = "jamaap", CODEN = "jamads", CODEN = "jamcav", CODEN = "jammdu", CODEN = "japgbp", CODEN = "japiau", CODEN = "jareew", CODEN = "jasman", CODEN = "jatsdf", CODEN = "jaumax", CODEN = "jaxtaz", CODEN = "jbbmdg", CODEN = "jbcha3", CODEN = "jbditd", CODEN = "jbmrej", CODEN = "jbsdd6", CODEN = "jcaleg", CODEN = "jcamdi", CODEN = "jcatd5", CODEN = "jcbta7", CODEN = "jcbtb8", CODEN = "jccee5", CODEN = "jcchdd", CODEN = "jcebd5", CODEN = "jcinao", CODEN = "jcisd8", CODEN = "jcise9", CODEN = "jclba3", CODEN = "jcllax", CODEN = "jcmbdb", CODEN = "jcmiex", CODEN = "jcmmeb", CODEN = "jcmtdv", CODEN = "jcnrev", CODEN = "jcoid8", CODEN = "jcpadn", CODEN = "jcpsa6", CODEN = "jcrgae", CODEN = "jcssbm", CODEN = "jcssep", CODEN = "jcteem", CODEN = "jcthar", CODEN = "jctpah", CODEN = "jdadex", CODEN = "jdeqak", CODEN = "jdgeas", CODEN = "jdimew", CODEN = "jdocas", CODEN = "jdsmaa", CODEN = "jeaiel", CODEN = "jebiam", CODEN = "jeclb3", CODEN = "jecmb6", CODEN = "jedrap", CODEN = "jeemaf", CODEN = "jemied", CODEN = "jemsa5", CODEN = "jenmdt", CODEN = "jepcea", CODEN = "jezoao", CODEN = "jflsa7", CODEN = "jfuaaw", CODEN = "jganeg", CODEN = "jgmian", CODEN = "jgopeo", CODEN = "jgplad", CODEN = "jgrea2", CODEN = "jgthdo", CODEN = "jhaddq", CODEN = "jicye5", CODEN = "jietau", CODEN = "jipea6", CODEN = "jiprde", CODEN = "jirral", CODEN = "jiscdi", CODEN = "jjatdk", CODEN = "jjgpd4", CODEN = "jjind8", CODEN = "jlcmak", CODEN = "jllien", CODEN = "jlmsak", CODEN = "jlpre2", CODEN = "jmanak", CODEN = "jmapaq", CODEN = "jmbbbo", CODEN = "jmblaj", CODEN = "jmdeec", CODEN = "jmevau", CODEN = "jmiado", CODEN = "jmivek", CODEN = "jmkyaz", CODEN = "jmobak", CODEN = "jmopew", CODEN = "jmpaam", CODEN = "jmpha9", CODEN = "jmrae2", CODEN = "jmrmd3", CODEN = "jmtaa8", CODEN = "jmvaai", CODEN = "jnbbau", CODEN = "jnbcax", CODEN = "jnbraa", CODEN = "jnciam", CODEN = "jncieq", CODEN = "jncme4", CODEN = "jncsai", CODEN = "jnrsds", CODEN = "jnuta9", CODEN = "joaldv", CODEN = "joamav", CODEN = "joaod6", CODEN = "jobaay", CODEN = "jobiao", CODEN = "jobpde", CODEN = "jobsdn", CODEN = "jocma7", CODEN = "jocreq", CODEN = "johea8", CODEN = "jomman", CODEN = "jomra4", CODEN = "jonea4", CODEN = "jonra9", CODEN = "joopec", CODEN = "jopad5", CODEN = "jophan", CODEN = "josaah", CODEN = "josha4", CODEN = "josmar", CODEN = "josued", CODEN = "jotabn", CODEN = "joviam", CODEN = "jpama4", CODEN = "jpbpdl", CODEN = "jpchd2", CODEN = "jpdcer", CODEN = "jpepe3", CODEN = "jpetab", CODEN = "jpgedd", CODEN = "jphac5", CODEN = "jphnb9", CODEN = "jphya7", CODEN = "jpiedn", CODEN = "jqsrae", CODEN = "jqutau", CODEN = "jrarax", CODEN = "jrcee8", CODEN = "jrcpa3", CODEN = "jrmaa8", CODEN = "jrmab9", CODEN = "jrnaad", CODEN = "jrnbag", CODEN = "jsbiem", CODEN = "jscsaj", CODEN = "jsimav", CODEN = "jsinay", CODEN = "jsirac", CODEN = "jsomar", CODEN = "jspueq", CODEN = "jssaef", CODEN = "jssie5", CODEN = "jssodm", CODEN = "jstbaj", CODEN = "jstnal", CODEN = "jstpsb", CODEN = "jsyceh", CODEN = "jsyla6", CODEN = "jsyma9", CODEN = "jtbiap", CODEN = "jtpedi", CODEN = "jvcaeo", CODEN = "jvcre7", CODEN = "jvlce7", CODEN = "jvsped", CODEN = "jwssap", CODEN = "jyceaj", CODEN = "kbrna5", CODEN = "keree3", CODEN = "kerneu", CODEN = "kesea4", CODEN = "kybeap", CODEN = "laapaw", CODEN = "latedt", CODEN = "lcrcao", CODEN = "lcsrea", CODEN = "lfwoe8", CODEN = "linmec", CODEN = "llcoei", CODEN = "lmicdi", CODEN = "lmphdy", CODEN = "lmsbbt", CODEN = "lnbmah", CODEN = "lncsd9", CODEN = "lnmaa2", CODEN = "lnmlaz", CODEN = "lnpha4", CODEN = "lscoex", CODEN = "lssad2", CODEN = "maana3", CODEN = "mabiar", CODEN = "macwea", CODEN = "madeap", CODEN = "magaas", CODEN = "magda3", CODEN = "maindc", CODEN = "maioeg", CODEN = "mamcau", CODEN = "mamga8", CODEN = "marear", CODEN = "mastba", CODEN = "masyes", CODEN = "matged", CODEN = "mazeax", CODEN = "mbceev", CODEN = "mbeveo", CODEN = "mbipdp", CODEN = "mbred3", CODEN = "mcbia7", CODEN = "mcbib8", CODEN = "mcblag", CODEN = "mcebd4", CODEN = "mcedda", CODEN = "mcend6", CODEN = "mcene7", CODEN = "mcmoeg", CODEN = "mcmpaf", CODEN = "mcrlas", CODEN = "mcsidr", CODEN = "mcsye8", CODEN = "mcusey", CODEN = "mdawah", CODEN = "meacbx", CODEN = "medve6", CODEN = "meenah", CODEN = "menzau", CODEN = "mesbel", CODEN = "metaaj", CODEN = "mfkaaf", CODEN = "mggeae", CODEN = "mibldr", CODEN = "mimcai", CODEN = "mimid5", CODEN = "mimja5", CODEN = "miscei", CODEN = "mkscas", CODEN = "mlbb", CODEN = "mmbied", CODEN = "mmbybo", CODEN = "mmdeeb", CODEN = "mmicdt", CODEN = "mmpha8", CODEN = "mmscdb", CODEN = "mnmta2", CODEN = "moeceo", CODEN = "momiee", CODEN = "mopma3", CODEN = "moredq", CODEN = "mosiea", CODEN = "mpcpco", CODEN = "mpevek", CODEN = "mpstdf", CODEN = "mpysa5", CODEN = "mrcod2", CODEN = "mrobeo", CODEN = "msciam", CODEN = "mstmbi", CODEN = "mthca2", CODEN = "mthnb2", CODEN = "mtkaab", CODEN = "mtmnaq", CODEN = "mtscan", CODEN = "mtseat", CODEN = "mttcas", CODEN = "mureav", CODEN = "musbbs", CODEN = "mvbrav", CODEN = "mweeei", CODEN = "mwreab", CODEN = "mycgao", CODEN = "nadoaw", CODEN = "narhad", CODEN = "nasbd3", CODEN = "nasfeg", CODEN = "natuas", CODEN = "natway", CODEN = "nawia7", CODEN = "nbitab", CODEN = "nebie2", CODEN = "nejmag", CODEN = "neredz", CODEN = "nessef", CODEN = "neuceb", CODEN = "nfaddl", CODEN = "nimaer", CODEN = "nnbya7", CODEN = "nneteb", CODEN = "nnobe7", CODEN = "noandd", CODEN = "nrloep", CODEN = "nrlqar", CODEN = "nstbat", CODEN = "ntelap", CODEN = "ntroav", CODEN = "ntwkaa", CODEN = "nualeg", CODEN = "numma7", CODEN = "nupabl", CODEN = "nupbbo", CODEN = "nusaaz", CODEN = "nwscal", CODEN = "nytiao", CODEN = "nzmab7", CODEN = "ocamd5", CODEN = "ocmiek", CODEN = "ocnsdk", CODEN = "ofsyeh", CODEN = "oigjav", CODEN = "omega6", CODEN = "omsoe2", CODEN = "oncnes", CODEN = "onlidn", CODEN = "opacat", CODEN = "opcob8", CODEN = "opcoeb", CODEN = "opegar", CODEN = "opledp", CODEN = "oprea1", CODEN = "oprqak", CODEN = "optzdq", CODEN = "oqeldi", CODEN = "ordyam", CODEN = "orled5", CODEN = "otikaj", CODEN = "pacoej", CODEN = "paisdq", CODEN = "pamyar", CODEN = "papcaa", CODEN = "pbimac", CODEN = "pbliej", CODEN = "pbmea8", CODEN = "pcaua3", CODEN = "pcbrd2", CODEN = "pcmpei", CODEN = "pcpsa4", CODEN = "pcsoda", CODEN = "pcwddv", CODEN = "pcwodu", CODEN = "pdnpdt", CODEN = "peevd9", CODEN = "pemsa3", CODEN = "pepsbj", CODEN = "peredn", CODEN = "pfecdr", CODEN = "pflabk", CODEN = "pharat", CODEN = "phblag", CODEN = "phcbap", CODEN = "phfle6", CODEN = "phjrd9", CODEN = "phmaa4", CODEN = "phrea7", CODEN = "phrvao", CODEN = "phstbo", CODEN = "phtoad", CODEN = "phwoew", CODEN = "physag", CODEN = "pireae", CODEN = "pjmaai", CODEN = "planab", CODEN = "plcmdl", CODEN = "pljued", CODEN = "plmtal", CODEN = "plraan", CODEN = "plrbaq", CODEN = "plsmdx", CODEN = "pmbidb", CODEN = "pmfaa4", CODEN = "pmhaa4", CODEN = "pmosaz", CODEN = "pnasa6", CODEN = "pnende", CODEN = "pnmbaf", CODEN = "podie2", CODEN = "ppexep", CODEN = "ppltee", CODEN = "ppsoau", CODEN = "preaay", CODEN = "preba3", CODEN = "prerel", CODEN = "prgmbd", CODEN = "prgrdu", CODEN = "pricdt", CODEN = "prlaaz", CODEN = "prlba4", CODEN = "prledg", CODEN = "prltao", CODEN = "progd3", CODEN = "prota5", CODEN = "prowae", CODEN = "prplcm", CODEN = "prseae", CODEN = "prslaz", CODEN = "prssdp", CODEN = "prvcan", CODEN = "prvdaq", CODEN = "psdae6", CODEN = "psfgey", CODEN = "psisdg", CODEN = "psmiax", CODEN = "psyma7", CODEN = "ptnra8", CODEN = "ptrbae", CODEN = "ptrdeo", CODEN = "ptrfeu", CODEN = "ptrsav", CODEN = "pwoqdy", CODEN = "pylaag", CODEN = "pylbaj", CODEN = "qamaay", CODEN = "qcbuen", CODEN = "qjmaat", CODEN = "qjmmav", CODEN = "qjmsaf", CODEN = "qjrmam", CODEN = "qrbudp", CODEN = "qsardi", CODEN = "radbe7", CODEN = "rascad", CODEN = "rcmmar", CODEN = "rcmtae", CODEN = "rctjdm", CODEN = "rdigau", CODEN = "refias", CODEN = "reltan", CODEN = "rfaadn", CODEN = "rfands", CODEN = "rfdedg", CODEN = "rjcldq", CODEN = "rmhpbe", CODEN = "rmjmae", CODEN = "rmmaev", CODEN = "rmmgab", CODEN = "rmphat", CODEN = "roagd2", CODEN = "rptwad", CODEN = "rsalfd", CODEN = "rsrod3", CODEN = "rtdvaq", CODEN = "rveebt", CODEN = "saapda", CODEN = "sacje3", CODEN = "samcas", CODEN = "samsec", CODEN = "sanabs", CODEN = "sanbbv", CODEN = "sapmb6", CODEN = "scamac", CODEN = "scebe3", CODEN = "scieas", CODEN = "scipev", CODEN = "scise6", CODEN = "scjaep", CODEN = "scledc", CODEN = "scnebk", CODEN = "scomdh", CODEN = "scpgd4", CODEN = "sejoed", CODEN = "selid4", CODEN = "semybl", CODEN = "sepsbi", CODEN = "sewoea", CODEN = "sfendp", CODEN = "sgbud4", CODEN = "sgnwd2", CODEN = "sidpaa", CODEN = "sigbel", CODEN = "sigmdj", CODEN = "signdm", CODEN = "sigsbz", CODEN = "sigsd3", CODEN = "sijcd4", CODEN = "simua2", CODEN = "simud5", CODEN = "sinodq", CODEN = "siread", CODEN = "sjamdu", CODEN = "sjcodc", CODEN = "sjcsep", CODEN = "sjdba9", CODEN = "sjmaah", CODEN = "sjmael", CODEN = "sjnaam", CODEN = "sjoce3", CODEN = "sjope8", CODEN = "smataz", CODEN = "smcpax", CODEN = "smeped", CODEN = "smjcat", CODEN = "smjmap", CODEN = "smster", CODEN = "snewd6", CODEN = "somadl", CODEN = "soriax", CODEN = "spcoel", CODEN = "spexbl", CODEN = "sphda9", CODEN = "splban", CODEN = "sprodr", CODEN = "sproes", CODEN = "spvieu", CODEN = "srdfed", CODEN = "srecd8", CODEN = "sroldh", CODEN = "srpsd9", CODEN = "ssbde4", CODEN = "sseba9", CODEN = "ssmaac", CODEN = "sssaa8", CODEN = "sstrey", CODEN = "stace3", CODEN = "stopb7", CODEN = "strue6", CODEN = "stscep", CODEN = "sunwdw", CODEN = "surveg", CODEN = "svmda8", CODEN = "sycna9", CODEN = "syine9", CODEN = "taeea5", CODEN = "tamtam", CODEN = "tansao", CODEN = "tbscdb", CODEN = "tbsrdm", CODEN = "tchaam", CODEN = "tcmta2", CODEN = "tcmte6", CODEN = "tcscdi", CODEN = "tereau", CODEN = "tetref", CODEN = "thejd4", CODEN = "tlcmbt", CODEN = "tmisaf", CODEN = "tplgaf", CODEN = "tprbau", CODEN = "trgee2", CODEN = "trmiea", CODEN = "trrebk", CODEN = "trscbj", CODEN = "tsaea9", CODEN = "tsica9", CODEN = "twasde", CODEN = "tymea9", CODEN = "ulccdc", CODEN = "ultrd6", CODEN = "uncoet", CODEN = "unred5", CODEN = "utmada", CODEN = "vaxpen", CODEN = "vicoe5", CODEN = "visram", CODEN = "vslgao", CODEN = "vuese9", CODEN = "wewefp", CODEN = "wiine9", CODEN = "wpklao", CODEN = "wredem", CODEN = "wreraq", CODEN = "wsjoaf", CODEN = "wstee5", CODEN = "wzhlde", CODEN = "wztkay", CODEN = "wztuau", CODEN = "xjouea", CODEN = "xresea", CODEN = "yeasa8", CODEN = "yeste3", CODEN = "zammax", CODEN = "zampdb", CODEN = "zdace2", CODEN = "zmlgaq", CODEN = "zmrrep", CODEN = "zncbda", CODEN = "zoscex", CODEN = "zpaadb", CODEN = "zpbbdj", CODEN = "zpcfd2", CODEN = "zpcmdn", CODEN = "ztvram", CODEN = "zwvgaa", } @Article{check-digit-less-CODEN, comment = "The following CODEN are valid, except that they are missing their final check digits (this is common in some library catalogs", CODEN = "AALEE", CODEN = "AASTA", CODEN = "ABACE", CODEN = "ACMSC", CODEN = "ADMOA", CODEN = "AINFA", CODEN = "AINTB", CODEN = "AISJB", CODEN = "AJSOA", CODEN = "ALGOE", CODEN = "ALSHA", CODEN = "AMHCB", CODEN = "ANMAA", CODEN = "ANMAE", CODEN = "AOREE", CODEN = "APLQD", CODEN = "AREOA", CODEN = "ARGSB", CODEN = "ARITB", CODEN = "ASLPA", CODEN = "AURCA", CODEN = "AVTEA", CODEN = "BASIC", CODEN = "BCPCA", CODEN = "BEVED", CODEN = "BITTE", CODEN = "BIZBA", CODEN = "BJMSA", CODEN = "BMFRA", CODEN = "BMSSB", CODEN = "BSMSA", CODEN = "BYTED", CODEN = "CACMA", CODEN = "CAGDE", CODEN = "CAIDA", CODEN = "CCEND", CODEN = "CGFOD", CODEN = "CGRAD", CODEN = "CHKWE", CODEN = "CJISD", CODEN = "CMAPD", CODEN = "CMORA", CODEN = "CMPJA", CODEN = "CMPTA", CODEN = "CMSYE", CODEN = "CNISE", CODEN = "CNOME", CODEN = "COATB", CODEN = "COCOD", CODEN = "COGRD", CODEN = "COHUA", CODEN = "COMHA", CODEN = "COSPD", CODEN = "COSTC", CODEN = "CPAMA", CODEN = "CPHCB", CODEN = "CPLIE", CODEN = "CPTRB", CODEN = "CQMAA", CODEN = "CSAEE", CODEN = "CSTIE", CODEN = "DDJSD", CODEN = "DGRCD", CODEN = "DJTAE", CODEN = "DJTGE", CODEN = "DPCOE", CODEN = "DSINE", CODEN = "DTJOE", CODEN = "DTMNA", CODEN = "ECJSE", CODEN = "ECREA", CODEN = "EKRKA", CODEN = "ELLEA", CODEN = "ELLID", CODEN = "EMODD", CODEN = "EONLE", CODEN = "EPODE", CODEN = "ERMGB", CODEN = "ETTIE", CODEN = "FASRD", CODEN = "FSSYD", CODEN = "FUJTA", CODEN = "GLSEE", CODEN = "HAMAA", CODEN = "HJKHD", CODEN = "HUHEA", CODEN = "IAIEE", CODEN = "ICCBA", CODEN = "ICGAD", CODEN = "ICSAE", CODEN = "ICSYB", CODEN = "IEPCB", CODEN = "IESOE", CODEN = "IFDBE", CODEN = "IFESE", CODEN = "IJARE", CODEN = "IJBOB", CODEN = "IJISE", CODEN = "IJMPE", CODEN = "INFAC", CODEN = "INFTC", CODEN = "INSKD", CODEN = "IPMAD", CODEN = "IRCYA", CODEN = "IRELA", CODEN = "IRLAA", CODEN = "ISIJB", CODEN = "ISUDX", CODEN = "ISYSD", CODEN = "ITBTE", CODEN = "ITMEE", CODEN = "ITPRE", CODEN = "ITPSE", CODEN = "IZAMA", CODEN = "JAUMA", CODEN = "JCAMD", CODEN = "JCTHA", CODEN = "JCTPA", CODEN = "JDOCA", CODEN = "JIRRA", CODEN = "JISCD", CODEN = "JLPRE", CODEN = "JMPHA", CODEN = "JNBRA", CODEN = "JOMMA", CODEN = "JOSHA", CODEN = "JOTAB", CODEN = "JRNBA", CODEN = "JSIMA", CODEN = "JSINA", CODEN = "JSSOD", CODEN = "JSYCE", CODEN = "JVLCE", CODEN = "JWSSA", CODEN = "KESEA", CODEN = "LLCOE", CODEN = "LMICD", CODEN = "MCENE", CODEN = "MCMPA", CODEN = "MCRLA", CODEN = "MCSID", CODEN = "MDMZD", CODEN = "MEORD", CODEN = "MICOE", CODEN = "MIMCA", CODEN = "MIMJA", CODEN = "MKSCA", CODEN = "MMPHA", CODEN = "MOPMA", CODEN = "MSTMB", CODEN = "MTHNB", CODEN = "MTSEA", CODEN = "MTTCA", CODEN = "NADOA", CODEN = "NAWIA", CODEN = "NRLOE", CODEN = "NSTBA", CODEN = "NTROA", CODEN = "NZMAB", CODEN = "OCMIE", CODEN = "ORDYA", CODEN = "OTIKA", CODEN = "PACOE", CODEN = "PCAUA", CODEN = "PNMBA", CODEN = "PPSOA", CODEN = "PRGMB", CODEN = "PROGD", CODEN = "PROWA", CODEN = "PRSEA", CODEN = "PRSLA", CODEN = "PSISD", CODEN = "PSYMA", CODEN = "PTRSA", CODEN = "RDIGA", CODEN = "RMMGA", CODEN = "SAMCA", CODEN = "SEPSB", CODEN = "SGNWD", CODEN = "SIGBE", CODEN = "SIGSB", CODEN = "SINOD", CODEN = "SJCOD", CODEN = "SMJCA", CODEN = "SMSTE", CODEN = "SNEWD", CODEN = "SRDFE", CODEN = "SRECD", CODEN = "SRPSD", CODEN = "SSEJE", CODEN = "STPGE", CODEN = "SVMDA", CODEN = "TAEEA", CODEN = "TANSA", CODEN = "TCSCD", CODEN = "TMISA", CODEN = "TSCSE", CODEN = "TSICA", CODEN = "UNCOE", CODEN = "VICOE", CODEN = "WIINE", CODEN = "WZTUA", CODEN = "YEASA", CODEN = "ZAMMA", CODEN = "ZMRRE", } @Article{bad-CODEN, comment = "These CODEN have incorrect check digits.", CODEN = "ITDSEP", CODEN = "ITKEEI", CODEN = "ITLBDD", CODEN = "itmees", CODEN = "itmgey", CODEN = "itmid5", comment = "This is the British Dental Journal CODEN, but the assigned check digit in library catalogs is wrong.", CODEN = "BDJOHJ", } @Article{short-CODEN, comment = "These CODEN values are short", CODEN = "I", CODEN = "IT", CODEN = "ITD", CODEN = "ITDS", CODEN = "ITDSE", } @Article{long-CODEN, comment = "These CODEN have too many characters", CODEN = "AITDSEO", CODEN = "ABITDSEO", CODEN = "ABCITDSEO", CODEN = "ABCDITDSEO", CODEN = "ABCDEITDSEO", CODEN = "ABCDEFITDSEO", } bibclean-3.07/test/okay/topt304.out0000444000156700015670000000000112470143224015760 0ustar beebebeebe bibclean-3.07/test/okay/topt322.err0000444000156700015670000000000012470142675015751 0ustar beebebeebebibclean-3.07/test/okay/topt126.out0000444000156700015670000000000112470143212015757 0ustar beebebeebe bibclean-3.07/test/okay/testbib6.out0000444000156700015670000001633606525171464016322 0ustar beebebeebe@Article{x, month = MAR # "\slash " # APR, month = MAR # "\slash" # APR, month = mar # "\slash " # apr, month = mar # "\slash" # apr, month = MAR # "- " # APR, month = MAR # "-" # APR, month = mar # "- " # apr, month = mar # "-" # apr, month = MAR # "-- " # APR, month = MAR # "--" # APR, month = mar # "-- " # apr, month = mar # "--" # apr, month = MAR # " -- " # APR, month = MAR # "--" # APR, month = mar # " -- " # apr, month = mar # "--" # apr, month = MAR # " \endash{} " # APR, month = MAR # "\endash{} " # APR, month = mar # " \endash{} " # apr, month = mar # "\endash{} " # apr, month = MAR # " \endash " # APR, month = MAR # "\endash " # APR, month = mar # " \endash " # apr, month = mar # "\endash " # apr, month = mar # "\slash " # APR, month = mar # "\slash" # APR, month = mar # "\slash " # apr, month = mar # "\slash" # apr, month = mar # "- " # APR, month = mar # "-" # APR, month = mar # "- " # apr, month = mar # "-" # apr, month = mar # "-- " # APR, month = mar # "--" # APR, month = mar # "-- " # apr, month = mar # "--" # apr, month = mar # " -- " # APR, month = mar # "--" # APR, month = mar # " -- " # apr, month = mar # "--" # apr, month = mar # " \endash{} " # APR, month = mar # "\endash{} " # APR, month = mar # " \endash{} " # apr, month = mar # "\endash{} " # apr, month = mar # " \endash " # APR, month = mar # "\endash " # APR, month = mar # " \endash " # apr, month = mar # "\endash " # apr, month = MAR # "\slash " # apr, month = MAR # "\slash" # apr, month = mar # "\slash " # apr, month = mar # "\slash" # apr, month = MAR # "- " # apr, month = MAR # "-" # apr, month = mar # "- " # apr, month = mar # "-" # apr, month = MAR # "-- " # apr, month = MAR # "--" # apr, month = mar # "-- " # apr, month = mar # "--" # apr, month = MAR # " -- " # apr, month = MAR # "--" # apr, month = mar # " -- " # apr, month = mar # "--" # apr, month = MAR # " \endash{} " # apr, month = MAR # "\endash{} " # apr, month = mar # " \endash{} " # apr, month = mar # "\endash{} " # apr, month = MAR # " \endash " # apr, month = MAR # "\endash " # apr, month = mar # " \endash " # apr, month = mar # "\endash " # apr, month = mar # "\slash " # apr, month = mar # "\slash" # apr, month = mar # "\slash " # apr, month = mar # "\slash" # apr, month = mar # "- " # apr, month = mar # "-" # apr, month = mar # "- " # apr, month = mar # "-" # apr, month = mar # "-- " # apr, month = mar # "--" # apr, month = mar # "-- " # apr, month = mar # "--" # apr, month = mar # " -- " # apr, month = mar # "--" # apr, month = mar # " -- " # apr, month = mar # "--" # apr, month = mar # " \endash{} " # apr, month = mar # "\endash{} " # apr, month = mar # " \endash{} " # apr, month = mar # "\endash{} " # apr, month = mar # " \endash " # apr, month = mar # "\endash " # apr, month = mar # " \endash " # apr, month = mar # "\endash " # apr, month = MAR # "\slash " # APR, month = MAR # "\slash" # APR, month = mar # "\slash " # apr, month = mar # "\slash" # apr, month = MAR # "- " # APR, month = MAR # "-" # APR, month = mar # "- " # apr, month = mar # "-" # apr, month = MAR # "-- " # APR, month = MAR # "--" # APR, month = mar # "-- " # apr, month = mar # "--" # apr, month = MAR # " -- " # APR, month = MAR # "--" # APR, month = mar # " -- " # apr, month = mar # "--" # apr, month = MAR # " \endash{} " # APR, month = MAR # "\endash{} " # APR, month = mar # " \endash{} " # apr, month = mar # "\endash{} " # apr, month = MAR # " \endash " # APR, month = MAR # "\endash " # APR, month = mar # " \endash " # apr, month = mar # "\endash " # apr, month = mar # "\slash " # APR, month = mar # "\slash" # APR, month = mar # "\slash " # apr, month = mar # "\slash" # apr, month = mar # "- " # APR, month = mar # "-" # APR, month = mar # "- " # apr, month = mar # "-" # apr, month = mar # "-- " # APR, month = mar # "--" # APR, month = mar # "-- " # apr, month = mar # "--" # apr, month = mar # " -- " # APR, month = mar # "--" # APR, month = mar # " -- " # apr, month = mar # "--" # apr, month = mar # " \endash{} " # APR, month = mar # "\endash{} " # APR, month = mar # " \endash{} " # apr, month = mar # "\endash{} " # apr, month = mar # " \endash " # APR, month = mar # "\endash " # APR, month = mar # " \endash " # apr, month = mar # "\endash " # apr, month = MAR # "\slash " # apr, month = MAR # "\slash" # apr, month = mar # "\slash " # apr, month = mar # "\slash" # apr, month = MAR # "- " # apr, month = MAR # "-" # apr, month = mar # "- " # apr, month = mar # "-" # apr, month = MAR # "-- " # apr, month = MAR # "--" # apr, month = mar # "-- " # apr, month = mar # "--" # apr, month = MAR # " -- " # apr, month = MAR # "--" # apr, month = mar # " -- " # apr, month = mar # "--" # apr, month = MAR # " \endash{} " # apr, month = MAR # "\endash{} " # apr, month = mar # " \endash{} " # apr, month = mar # "\endash{} " # apr, month = MAR # " \endash " # apr, month = MAR # "\endash " # apr, month = mar # " \endash " # apr, month = mar # "\endash " # apr, month = mar # "\slash " # apr, month = mar # "\slash" # apr, month = mar # "\slash " # apr, month = mar # "\slash" # apr, month = mar # "- " # apr, month = mar # "-" # apr, month = mar # "- " # apr, month = mar # "-" # apr, month = mar # "-- " # apr, month = mar # "--" # apr, month = mar # "-- " # apr, month = mar # "--" # apr, month = mar # " -- " # apr, month = mar # "--" # apr, month = mar # " -- " # apr, month = mar # "--" # apr, month = mar # " \endash{} " # apr, month = mar # "\endash{} " # apr, month = mar # " \endash{} " # apr, month = mar # "\endash{} " # apr, month = mar # " \endash " # apr, month = mar # "\endash " # apr, month = mar # " \endash " # apr, month = mar # "\endash " # apr, } bibclean-3.07/test/okay/topt369.out0000444000156700015670000000000112470143235015775 0ustar beebebeebe bibclean-3.07/test/okay/topt315.out0000444000156700015670000000000112470143224015762 0ustar beebebeebe bibclean-3.07/test/okay/testoptc.err0000444000156700015670000022174014023240745016412 0ustar beebebeebe%%% ISBN ranges and country/language groups 0-00 0-19 Region name: Australia Country code(s): AU Language group: 0 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 89999 ; 900000 - 949999 ; 9500000 - 9999999 0-200 0-699 0-2280 0-2289 0-229 0-368 0-3690 0-3699 0-370 0-638 0-6390 0-6397 0-6398000 0-6399999 0-640 0-644 0-6450000 0-6459999 0-646 0-647 0-6480000 0-6489999 0-649 0-654 0-6550 0-6559 0-656 0-699 0-7000 0-8499 0-85000 0-89999 0-900000 0-949999 0-9500000 0-9999999 1-000 1-009 Region name: English language Country code(s): ?? Language group: 1 Publisher(s): 000 - 009; 01 - 02; 030 - 034; 0350 - 0399; 04 - 06; 0700 - 0999; 100 - 397; 3980 - 5499; 55000 - 64999; 6500 - 6799; 68000 - 68599; 6860 - 7139; 714 - 716; 7170 - 7319; 7320000 - 7399999; 74000 - 77499; 7750000 - 7753999; 77540 - 77639; 7764000 - 7764999; 77650 - 77699; 7770000 - 7782999; 77830 - 78999; 7900 - 7999; 80000 - 80049; 80050 - 80499; 80500 - 83799; 8380000 - 8384999; 83850 - 86719; 8672 - 8675; 86760 - 86979; 869800 - 915999; 9160000 - 9165059; 916506 - 972999; 9730 - 9877; 987800 - 991149; 9911500 - 9911999; 991200 - 998989; 9989900 - 9999999 1-01 1-02 1-030 1-034 1-0350 1-0399 1-04 1-06 1-0700 1-0999 1-100 1-399 1-3980 1-5499 1-55000 1-86979 1-6500 1-6799 1-68000 1-68599 1-6860 1-7139 1-714 1-716 1-7170 1-7319 1-7320000 1-7399999 1-74000 1-76999 Region name: Australia Country code(s): AU Language group: 1 Publisher(s): 74000 - 76999 ; 86250 - 86799 ; 875100 - 877099 ; 920680 - 926429 1-7750000 1-7753999 1-77540 1-77639 1-7764000 1-7764999 1-77650 1-77699 1-7770000 1-7782999 1-77830 1-78999 1-7900 1-7999 1-80000 1-80049 1-80050 1-80499 1-80500 1-83799 1-8380000 1-8384999 1-83850 1-86719 1-8672 1-8675 1-86760 1-86979 1-869800 1-998999 [24-Sep-2015] Additions from https://web.archive.org/web/20150801000000*/http://www.isbn-international.org/en/identifiers/List-of-Ranges.pdf 1-9160000 1-9165059 1-916506 1-972999 1-9730 1-9877 1-987800 1-991149 1-9911500 1-9911999 1-991200 1-998989 1-9989900 1-9999999 2-00 2-19 Region name: French language Country code(s): ?? Language group: 2 Publisher(s): 00 - 19; 200 - 349; 35000 - 39999; 400 - 699; 7000 - 8399; 84000 - 89999; 900000 - 949999; 9500000 - 9999999 2-200 2-349 2-35000 2-39999 2-400 2-699 2-490000 2-494999 2-495 2-499 Region name: Luxembourg Country code(s): LU Language group: 2 Publisher(s): 495 - 499 ; 87950 - 87999 ; 919769 - 919999 ; 9599769 - 9599999 2-4960 2-4966 2-49670 2-49699 2-497 2-699 2-7000 2-8399 2-84000 2-89999 2-900000 2-949999 2-91980 2-91980 2-919810 2-919942 2-9199430 2-9199689 2-919969 2-949999 2-9500000 2-9999999 3-00 3-02 Region name: German language Country code(s): ?? Language group: 3 Publisher(s): 00 - 02; 030 - 033; 0340 - 0369; 03700 - 03999; 04 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 949999; 9500000 - 9539999; 95400 - 96999; 9700000 - 9899999; 99000 - 99499; 99500 - 99999 3-030 3-033 3-0340 3-0369 3-03700 3-03999 3-04 3-19 3-200 3-699 3-7000 3-8499 3-85000 3-89999 3-900000 3-949999 3-9500000 3-9539999 3-95400 3-96999 3-9700000 3-9899999 3-98500 3-99999 4-00 4-19 Region name: Japan Country code(s): JP Language group: 4 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 949999; 9500000 - 9999999 4-200 4-699 4-7000 4-8499 4-85000 4-89999 4-900000 4-949999 4-9500000 4-9999999 5-00000 5-00499 Region name: former U.S.S.R Country code(s): ?? Language group: 5 Publisher(s): 00000 - 00499; 0050 - 0099; 01 - 19; 200 - 420; 4210 - 4299; 430 - 430; 4310 - 4399; 440 - 440; 4410 - 4499; 450 - 699; 7000 - 8499; 85000 - 89999; 900000 - 909999; 91000 - 91999; 9200 - 9299; 93000 - 94999; 9500000 - 9500999; 9501 - 9799; 98000 - 98999; 9900000 - 9909999; 9910 - 9999 5-0050 5-0099 5-01 5-19 5-200 5-420 5-4210 5-4299 5-430 5-430 5-4310 5-4399 5-440 5-440 5-4410 5-4499 5-450 5-699 5-6040000 5-6049999 5-605 5-699 5-7000 5-8499 5-85000 5-89999 5-900000 5-909999 5-91000 5-91999 5-9200 5-9299 5-93000 5-94999 5-9500000 5-9500999 5-9501 5-9799 5-98000 5-98999 5-9900000 5-9909999 5-9910 5-9999 600-00 600-09 Region name: Iran Country code(s): IR Language group: 600 Publisher(s): 00 - 09; 100 - 499; 5000 - 8999; 90000 - 99999 600-100 600-499 600-5000 600-8999 600-90000 600-99999 600-9868 600-9929 600-993 600-995 600-99600 600-99999 601-00 601-19 Region name: Kazakhstan Country code(s): KZ Language group: 601 Publisher(s): 00 - 19; 200 - 699; 7000 - 7999; 80000 - 84999; 85 - 99 601-200 601-699 601-7000 601-7999 601-80000 601-84999 601-85 601-99 602-00 602-07 Region name: Indonesia Country code(s): ID Language group: 602 Publisher(s): 00 - 07; 0800 - 0899; 0900 - 1099; 1100 - 1199; 1200 - 1399; 14000 - 14999; 1500 - 1699; 17000 - 17999; 18000 - 18999; 19000 - 19999; 200 - 674; 6750 - 6999; 70000 - 74999; 7500 - 7999; 8000 - 9499; 95000 - 99999 602-0700 602-1399 602-14000 602-14999 602-1500 602-1699 602-17000 602-17999 602-200 602-674 602-50000 602-53999 602-5400 602-5999 602-60000 602-61999 602-6200 602-6999 602-70000 602-74999 602-7500 602-7999 602-95000 602-99999 603-00 603-04 Region name: Saudi Arabia Country code(s): SA Language group: 603 Publisher(s): 00 - 04; 05 - 49; 500 - 799; 8000 - 8999; 90000 - 99999 603-05 603-49 603-500 603-799 603-8000 603-8999 603-90000 603-99999 604-0 604-4 Region name: Vietnam Country code(s): VN Language group: 604 Publisher(s): 0 - 4; 50 - 89; 900 - 979; 9800 - 9999 604-50 604-89 604-900 604-979 604-9800 604-9999 605-00 605-02 Region name: Turkey Country code(s): TR Language group: 605 Publisher(s): 00 - 02; 030 - 039; 04 - 05; 06000 - 06999; 07 - 09; 100 - 199; 2000 - 2399; 240 - 399; 4000 - 5999; 60000 - 74999; 7500 - 7999; 80000 - 89999; 9000 - 9999 605-030 605-039 605-04 605-09 605-06000 605-06999 605-07 605-09 605-100 605-399 605-2000 605-2399 605-240 605-399 605-4000 605-5999 605-60000 605-89999 605-7500 605-7999 605-80000 605-89999 605-9000 605-9999 606-000 606-089 Region name: Romania Country code(s): RO Language group: 606 Publisher(s): 000 - 089; 09 - 49; 500 - 799; 8000 - 9099; 910 - 919; 92000 - 96499; 9650 - 9749; 975 - 999 606-09 606-49 606-500 606-799 606-8000 606-9199 606-910 606-919 606-92000 606-99999 606-9650 606-9749 606-975 606-999 607-00 607-39 Region name: Mexico Country code(s): MX Language group: 607 Publisher(s): 00 - 39; 400 - 749; 7500 - 9499; 95000 - 99999 607-400 607-749 607-7500 607-9499 607-95000 607-99999 608-0 608-0 Region name: Macedonia Country code(s): MK Language group: 608 Publisher(s): 0 - 0; 10 - 19; 200 - 449; 4500 - 6499; 65000 - 69999; 7 - 9 608-10 608-19 608-200 608-449 608-4500 608-6499 608-65000 608-69999 608-7 608-9 609-00 609-39 Region name: Lithuania Country code(s): LT Language group: 609 Publisher(s): 00 - 39; 400 - 799; 8000 - 9499; 95000 - 99999 609-400 609-799 609-8000 609-9499 609-95000 609-99999 612-00 612-29 Region name: Peru Country code(s): PE Language group: 612 Publisher(s): 00 - 29; 300 - 399; 4000 - 4499; 45000 - 49999; 50 - 99 612-300 612-399 612-4000 612-4499 612-45000 612-49999 612-5000 612-5149 613-0 613-9 Region name: Mauritius Country code(s): MU Language group: 613 Publisher(s): 0 - 9 614-00 614-39 Region name: Lebanon Country code(s): LB Language group: 614 Publisher(s): 00 - 39; 400 - 799; 8000 - 9499; 95000 - 99999 614-400 614-799 614-8000 614-9499 614-95000 614-99999 615-00 615-09 Region name: Hungary Country code(s): HU Language group: 615 Publisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 89999 615-100 615-499 615-5000 615-7999 615-80000 615-89999 616-00 616-19 Region name: Thailand Country code(s): TH Language group: 616 Publisher(s): 00 - 19; 200 - 699; 7000 - 8999; 90000 - 99999 616-200 616-699 616-7000 616-8999 616-90000 616-99999 617-00 617-49 Region name: Ukraine Country code(s): UA Language group: 617 Publisher(s): 00 - 49; 500 - 699; 7000 - 8999; 90000 - 99999 617-500 617-699 617-7000 617-8999 617-90000 617-99999 618-00 618-19 Region name: Greece Country code(s): GR Language group: 618 Publisher(s): 00 - 19; 200 - 499; 5000 - 7999; 80000 - 99999 618-200 618-499 618-5000 618-7999 618-80000 618-99999 619-00 619-14 Region name: Bulgaria Country code(s): BG Language group: 619 Publisher(s): 00 - 14; 150 - 699; 7000 - 8999; 90000 - 99999 619-150 619-699 619-7000 619-8999 619-90000 619-99999 620-0 620-9 Region name: Mauritius Country code(s): MU Language group: 620 Publisher(s): 0 - 9 621-00 621-29 Region name: Philippines Country code(s): PH Language group: 621 Publisher(s): 00 - 29; 400 - 599; 8000 - 8999; 95000 - 99999 621-400 621-599 621-8000 621-8999 621-95000 621-99999 622-00 622-08 Region name: Iran Country code(s): IR Language group: 622 Publisher(s): 00 - 08; 200 - 299; 6000 - 7999; 95000 - 99999 622-200 622-299 622-6000 622-7999 622-95000 622-99999 623-00 623-09 Region name: Indonesia Country code(s): ID Language group: 623 Publisher(s): 00 - 09; 200 - 399; 6000 - 7999; 90000 - 99999 623-200 623-399 623-6000 623-7999 623-90000 623-99999 624-00 624-04 Region name: Sri Lanka Country code(s): LK Language group: 624 Publisher(s): 00 - 04; 200 - 249; 5000 - 5999; 95000 - 99999 624-200 624-249 624-5000 624-5999 624-95000 624-99999 625-00 625-00 Region name: Turkey Country code(s): TR Language group: 625 Publisher(s): 00 - 00; 400 - 449; 7000 - 7999 625-400 625-449 625-7000 625-7999 626-00 626-04 Region name: Taiwan Country code(s): TW Language group: 626 Publisher(s): 00 - 04; 300 - 499; 7000 - 7999; 95000 - 99999 626-300 626-499 626-7000 626-7999 626-95000 626-99999 65-00 65-01 Region name: Brazil Country code(s): BR Language group: 65 Publisher(s): 00 - 01; 250 - 299; 300 - 302; 5000 - 5129; 5500 - 5999; 80000 - 81824; 86000 - 89999; 900000 - 902449; 990000 - 999999 65-250 65-299 65-300 65-302 65-5000 65-5129 65-5500 65-5999 65-80000 65-81824 65-86000 65-89999 65-900000 65-902449 65-990000 65-999999 7-00 7-09 Region name: China, People's Republic Country code(s): CN Language group: 7 Publisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 89999; 900000 - 999999 7-100 7-499 7-5000 7-7999 7-80000 7-89999 7-900000 7-999999 80-00 80-19 Region name: former Czechoslovakia Country code(s): ?? Language group: 80 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 999999 80-200 80-699 80-7000 80-8499 80-85000 80-89999 80-900000 80-999999 80-99900 80-99999 81-00 81-19 Region name: India Country code(s): IN Language group: 81 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 999999 81-200 81-699 81-7000 81-8499 81-85000 81-89999 81-900000 81-999999 82-00 82-19 Region name: Norway Country code(s): NO Language group: 82 Publisher(s): 00 - 19; 200 - 689; 690000 - 699999; 7000 - 8999; 90000 - 98999; 990000 - 999999 82-200 82-689 82-690000 82-699999 82-7000 82-8999 82-90000 82-98999 82-990000 82-999999 83-00 83-19 Region name: Poland Country code(s): PL Language group: 83 Publisher(s): 00 - 19; 200 - 599; 60000 - 69999; 7000 - 8499; 85000 - 89999; 900000 - 999999 83-200 83-599 83-60000 83-69999 83-7000 83-8499 83-85000 83-89999 83-900000 83-999999 84-00 84-13 Region name: Spain Country code(s): ES Language group: 84 Publisher(s): 00 - 13; 140 - 149; 15000 - 19999; 200 - 699; 7000 - 8499; 85000 - 89999; 9000 - 9199; 920000 - 923999; 92400 - 92999; 930000 - 949999; 95000 - 96999; 9700 - 9999 84-1100 84-1199 84-120000 84-129999 84-1300 84-1399 84-140 84-149 84-15000 84-19999 84-200 84-699 84-7000 84-8499 84-85000 84-89999 84-9000 84-9199 84-920000 84-923999 84-92400 84-92999 84-930000 84-949999 84-95000 84-96999 84-9700 84-9999 85-00 85-19 Region name: Brazil Country code(s): BR Language group: 85 Publisher(s): 00 - 19; 200 - 549; 5500 - 5999; 60000 - 69999; 7000 - 8499; 85000 - 89999; 900000 - 959999; 96 - 97; 98000 - 99999 85-200 85-549 85-455000 85-455299 85-45530 85-45599 85-456 85-528 85-52900 85-53199 85-5320 85-5339 85-534 85-539 85-54000 85-54029 85-54030 85-54039 85-540400 85-540499 85-54050 85-54089 85-540900 85-540999 85-54100 85-54399 85-5440 85-5479 85-54800 85-54999 85-5500 85-5999 85-60000 85-69999 85-7000 85-8499 85-85000 85-89999 85-900000 85-959999 85-92500 85-94499 85-9450 85-9599 85-96 85-97 85-98000 85-99999 86-00 86-29 Region name: former Yugoslavia Country code(s): ?? Language group: 86 Publisher(s): 00 - 29; 300 - 599; 6000 - 7999; 80000 - 89999; 900000 - 999999 86-300 86-599 86-6000 86-7999 86-80000 86-89999 86-900000 86-999999 87-00 87-29 Region name: Denmark Country code(s): DK Language group: 87 Publisher(s): 00 - 29; 400 - 649; 7000 - 7999; 85000 - 94999; 970000 - 999999 87-400 87-649 87-7000 87-7999 87-85000 87-94999 87-970000 87-999999 88-00 88-19 Region name: Italy Country code(s): IT Language group: 88 Publisher(s): 00 - 19; 200 - 599; 6000 - 8499; 85000 - 89999; 900000 - 909999; 910 - 929; 9300 - 9399; 940000 - 949999; 95000 - 99999 88-200 88-599 88-31200 88-31499 88-315 88-318 88-31900 88-32299 88-323 88-326 88-3270 88-3389 88-339 88-360 88-3610 88-3629 88-363 88-548 88-5490 88-5549 88-555 88-599 88-6000 88-8499 88-85000 88-89999 88-900000 88-909999 88-910 88-929 88-9270 88-9399 88-940000 88-949999 88-94800 88-99999 89-00 89-24 Region name: Korea, Republic Country code(s): KR Language group: 89 Publisher(s): 00 - 24; 250 - 549; 5500 - 8499; 85000 - 94999; 950000 - 969999; 97000 - 98999; 990 - 999 89-250 89-549 89-5500 89-8499 89-85000 89-94999 89-950000 89-969999 89-97000 89-98999 89-990 89-999 90-00 90-19 Region name: Netherlands Country code(s): NL Language group: 90 Publisher(s): 00 - 19; 200 - 499; 5000 - 6999; 70000 - 79999; 800000 - 849999; 8500 - 8999; 90 - 90; 94 - 94 90-200 90-499 90-5000 90-6999 90-70000 90-79999 90-800000 90-849999 90-8500 90-8999 90-90 90-90 90-94 90-94 91-0 91-1 Region name: Sweden Country code(s): SE Language group: 91 Publisher(s): 0 - 1; 20 - 49; 500 - 649; 7000 - 7999; 85000 - 94999; 970000 - 999999 91-20 91-49 91-500 91-649 91-7000 91-7999 91-85000 91-94999 91-970000 91-999999 92-0 92-5 Region name: International NGO Publishers and EU Organizations Country code(s): ?? Language group: 92 Publisher(s): 0 - 5; 60 - 79; 800 - 899; 9000 - 9499; 95000 - 98999; 990000 - 999999 92-60 92-79 92-800 92-899 92-9000 92-9499 92-95000 92-98999 92-990000 92-999999 93-00 93-09 Region name: India Country code(s): IN Language group: 93 Publisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 94999; 950000 - 999999 93-100 93-499 93-5000 93-7999 93-80000 93-94999 93-950000 93-999999 94-000 94-599 Region name: Netherlands Country code(s): NL Language group: 94 Publisher(s): 000 - 599; 6000 - 8999; 90000 - 99999 94-6000 94-8999 94-90000 94-99999 950-00 950-49 Region name: Argentina Country code(s): AR Language group: 950 Publisher(s): 00 - 49; 500 - 899; 9000 - 9899; 99000 - 99999 950-500 950-899 950-9000 950-9899 950-99000 950-99999 951-0 951-1 Region name: Finland Country code(s): FI Language group: 951 Publisher(s): 0 - 1; 20 - 54; 550 - 889; 8900 - 9499; 95000 - 99999 951-20 951-54 951-550 951-889 951-8900 951-9499 951-95000 951-99999 952-00 952-19 Region name: Finland Country code(s): FI Language group: 952 Publisher(s): 00 - 19; 200 - 499; 5000 - 5999; 60 - 65; 6600 - 6699; 67000 - 69999; 7000 - 7999; 80 - 94; 9500 - 9899; 99000 - 99999 952-200 952-499 952-5000 952-5999 952-60 952-65 952-6600 952-6699 952-67000 952-69999 952-7000 952-7999 952-80 952-94 952-9500 952-9899 952-99000 952-99999 953-0 953-0 Region name: Croatia Country code(s): HR Language group: 953 Publisher(s): 0 - 0; 10 - 14; 150 - 509; 51 - 54; 55000 - 59999; 6000 - 9499; 95000 - 99999 953-10 953-14 953-150 953-509 953-48000 953-49999 953-500 953-500 953-50100 953-50999 953-51 953-54 953-55000 953-59999 953-6000 953-9499 953-95000 953-99999 954-00 954-28 Region name: Bulgaria Country code(s): BG Language group: 954 Publisher(s): 00 - 28; 2900 - 2999; 300 - 799; 8000 - 8999; 90000 - 92999; 9300 - 9999 954-2900 954-2999 954-300 954-799 954-8000 954-8999 954-90000 954-92999 954-9300 954-9999 955-0000 955-1999 Region name: Sri Lanka Country code(s): LK Language group: 955 Publisher(s): 0000 - 1999; 20 - 40; 41000 - 43999; 44000 - 44999; 4500 - 4999; 50000 - 54999; 550 - 749; 7500 - 7999; 8000 - 9499; 95000 - 99999 955-20 955-40 955-3400 955-3549 955-35500 955-35999 955-3600 955-3799 955-38000 955-38999 955-3900 955-4099 955-41000 955-43999 955-4500 955-4999 955-50000 955-54999 955-550 955-749 955-71100 955-71499 955-7150 955-9499 955-95000 955-99999 956-00 956-19 Region name: Chile Country code(s): CL Language group: 956 Publisher(s): 00 - 19; 200 - 699; 7000 - 9999 956-09000 956-09999 956-10 956-19 956-200 956-699 956-6000 956-6999 956-7000 956-9999 957-00 957-02 Region name: Taiwan Country code(s): TW Language group: 957 Publisher(s): 00 - 02; 0300 - 0499; 05 - 19; 2000 - 2099; 21 - 27; 28000 - 30999; 31 - 43; 440 - 819; 8200 - 9699; 97000 - 99999 957-0300 957-0499 957-05 957-19 957-2000 957-2099 957-21 957-27 957-28000 957-30999 957-31 957-43 957-440 957-819 957-8200 957-9699 957-97000 957-99999 958-00 958-56 Region name: Colombia Country code(s): CO Language group: 958 Publisher(s): 00 - 56; 57000 - 59999; 600 - 799; 8000 - 9499; 95000 - 99999 958-490 958-509 958-5100 958-5199 958-52000 958-53999 958-5400 958-5599 958-56000 958-59999 958-600 958-799 958-8000 958-9499 958-95000 958-99999 959-00 959-19 Region name: Cuba Country code(s): CU Language group: 959 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 99999 959-200 959-699 959-7000 959-8499 959-85000 959-99999 960-00 960-19 Region name: Greece Country code(s): GR Language group: 960 Publisher(s): 00 - 19; 200 - 659; 6600 - 6899; 690 - 699; 7000 - 8499; 85000 - 92999; 93 - 93; 9400 - 9799; 98000 - 99999 960-200 960-659 960-6600 960-6899 960-690 960-699 960-7000 960-8499 960-85000 960-92999 960-93 960-93 960-9400 960-9799 960-98000 960-99999 961-00 961-19 Region name: Slovenia Country code(s): SI Language group: 961 Publisher(s): 00 - 19; 200 - 599; 6000 - 8999; 90000 - 94999 961-200 961-599 961-6000 961-8999 961-90000 961-94999 962-00 962-19 Region name: Hong Kong, China Country code(s): HK Language group: 962 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 86999; 8700 - 8999; 900 - 999 962-200 962-699 962-7000 962-8499 962-85000 962-86999 962-8700 962-8999 962-900 962-999 963-00 963-19 Region name: Hungary Country code(s): HU Language group: 963 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 9000 - 9999 963-200 963-699 963-7000 963-8499 963-85000 963-89999 963-9000 963-9999 964-00 964-14 Region name: Iran Country code(s): IR Language group: 964 Publisher(s): 00 - 14; 150 - 249; 2500 - 2999; 300 - 549; 5500 - 8999; 90000 - 96999; 970 - 989; 9900 - 9999 964-150 964-249 964-2500 964-2999 964-300 964-549 964-5500 964-8999 964-90000 964-96999 964-970 964-989 964-9900 964-9999 965-00 965-19 Region name: Israel Country code(s): IL Language group: 965 Publisher(s): 00 - 19; 200 - 599; 7000 - 7999; 90000 - 99999 965-200 965-599 965-7000 965-7999 965-90000 965-99999 966-00 966-12 Region name: Ukraine Country code(s): UA Language group: 966 Publisher(s): 00 - 12; 130 - 139; 14 - 14; 1500 - 1699; 170 - 199; 2000 - 2789; 279 - 289; 2900 - 2999; 300 - 699; 7000 - 8999; 90000 - 90999; 910 - 949; 95000 - 97999; 980 - 999 966-130 966-139 966-14 966-14 966-1500 966-1699 966-170 966-199 966-2000 966-2789 966-279 966-289 966-2900 966-2999 966-300 966-699 966-7000 966-8999 966-90000 966-90999 966-910 966-949 966-95000 966-97999 966-980 966-999 967-00 967-00 Region name: Malaysia Country code(s): MY Language group: 967 Publisher(s): 00 - 00; 0100 - 0999; 10000 - 19999; 300 - 499; 5000 - 5999; 60 - 89; 900 - 989; 9900 - 9989; 99900 - 99999 967-0100 967-0999 967-10000 967-19999 967-2000 967-2499 967-250 967-254 967-2800 967-2999 967-300 967-499 967-5000 967-5999 967-60 967-89 967-900 967-989 967-9900 967-9989 967-99900 967-99999 968-01 968-39 Region name: Mexico Country code(s): MX Language group: 968 Publisher(s): 01 - 39; 400 - 499; 5000 - 7999; 800 - 899; 9000 - 9999 968-400 968-499 968-5000 968-7999 968-800 968-899 968-9000 968-9999 969-0 969-1 Region name: Pakistan Country code(s): PK Language group: 969 Publisher(s): 0 - 1; 20 - 22; 23000 - 23999; 24 - 39; 400 - 749; 7500 - 9999 969-20 969-22 969-210 969-219 969-2200 969-2299 969-23000 969-23999 969-24 969-39 969-400 969-749 969-7500 969-9999 970-01 970-59 Region name: Mexico Country code(s): MX Language group: 970 Publisher(s): 01 - 59; 600 - 899; 9000 - 9099; 91000 - 96999; 9700 - 9999 970-600 970-899 970-9000 970-9099 970-91000 970-96999 970-9700 970-9999 971-000 971-015 Region name: Philippines Country code(s): PH Language group: 971 Publisher(s): 000 - 015; 0160 - 0199; 02 - 02; 0300 - 0599; 06 - 49; 500 - 849; 8500 - 9099; 91000 - 95999; 9600 - 9699; 97 - 98; 9900 - 9999 971-0160 971-0199 971-02 971-02 971-0300 971-0599 971-06 971-49 971-500 971-849 971-8500 971-9099 971-91000 971-95999 971-9600 971-9699 971-97 971-98 971-9900 971-9999 972-0 972-1 Region name: Portugal Country code(s): PT Language group: 972 Publisher(s): 0 - 1; 20 - 54; 550 - 799; 8000 - 9499; 95000 - 99999 972-20 972-54 972-550 972-799 972-8000 972-9499 972-95000 972-99999 973-0 973-0 Region name: Romania Country code(s): RO Language group: 973 Publisher(s): 0 - 0; 100 - 169; 1700 - 1999; 20 - 54; 550 - 759; 7600 - 8499; 85000 - 88999; 8900 - 9499; 95000 - 99999 973-100 973-169 973-1700 973-1999 973-20 973-54 973-550 973-759 973-7600 973-8499 973-85000 973-88999 973-8900 973-9499 973-95000 973-99999 974-00 974-19 Region name: Thailand Country code(s): TH Language group: 974 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 90000 - 94999; 9500 - 9999 974-200 974-699 974-7000 974-8499 974-85000 974-89999 974-90000 974-94999 974-9500 974-9999 975-00000 975-01999 Region name: Turkey Country code(s): TR Language group: 975 Publisher(s): 00000 - 01999; 02 - 24; 250 - 599; 6000 - 9199; 92000 - 98999; 990 - 999 975-02 975-24 975-2400 975-2499 975-250 975-599 975-6000 975-9199 975-92000 975-98999 975-990 975-999 976-0 976-3 Region name: Caribbean Community Country code(s): ?? Language group: 976 Publisher(s): 0 - 3; 40 - 59; 600 - 799; 8000 - 9499; 95000 - 99999 976-40 976-59 976-600 976-799 976-8000 976-9499 976-95000 976-99999 977-00 977-19 Region name: Egypt Country code(s): EG Language group: 977 Publisher(s): 00 - 19; 200 - 499; 5000 - 6999; 700 - 849; 85000 - 89999; 90 - 99 977-200 977-499 977-5000 977-6999 977-700 977-849 977-85000 977-89999 977-90 977-99 977-990 977-999 978-000 978-199 Region name: Nigeria Country code(s): NG Language group: 978 Publisher(s): 000 - 199; 2000 - 2999; 30000 - 79999; 8000 - 8999; 900 - 999 978-2000 978-2999 978-30000 978-79999 978-8000 978-8999 978-900 978-999 979-000 979-099 Region name: Indonesia Country code(s): ID Language group: 979 Publisher(s): 000 - 099; 1000 - 1499; 15000 - 19999; 20 - 29; 3000 - 3999; 400 - 799; 8000 - 9499; 95000 - 99999 979-1000 979-1499 979-15000 979-19999 979-20 979-29 979-3000 979-3999 979-400 979-799 979-8000 979-9499 979-95000 979-99999 980-00 980-19 Region name: Venezuela Country code(s): VE Language group: 980 Publisher(s): 00 - 19; 200 - 599; 6000 - 9999 980-200 980-599 980-6000 980-9999 981-00 981-16 Region name: Singapore Country code(s): SG Language group: 981 Publisher(s): 00 - 16; 17000 - 19999; 200 - 299; 3000 - 3099; 310 - 399; 4000 - 9999 981-17000 981-19999 981-18 981-19 981-200 981-299 981-3000 981-3099 981-310 981-399 981-4000 981-9999 982-00 982-09 Region name: South Pacific Country code(s): ?? Language group: 982 Publisher(s): 00 - 09; 100 - 699; 70 - 89; 9000 - 9799; 98000 - 99999 982-100 982-699 982-70 982-89 982-9000 982-9799 982-98000 982-99999 983-00 983-01 Region name: Malaysia Country code(s): MY Language group: 983 Publisher(s): 00 - 01; 020 - 199; 2000 - 3999; 40000 - 44999; 45 - 49; 50 - 79; 800 - 899; 9000 - 9899; 99000 - 99999 983-020 983-199 983-2000 983-3999 983-40000 983-44999 983-45 983-49 983-50 983-79 983-800 983-899 983-9000 983-9899 983-99000 983-99999 984-00 984-39 Region name: Bangladesh Country code(s): BD Language group: 984 Publisher(s): 00 - 39; 400 - 799; 8000 - 8999; 90000 - 99999 984-400 984-799 984-8000 984-8999 984-90000 984-99999 985-00 985-39 Region name: Belarus Country code(s): BY Language group: 985 Publisher(s): 00 - 39; 400 - 599; 6000 - 8999; 90000 - 99999 985-400 985-599 985-6000 985-8999 985-880 985-899 985-90000 985-99999 986-00 986-11 Region name: Taiwan Country code(s): TW Language group: 986 Publisher(s): 00 - 11; 120 - 559; 5600 - 7999; 80000 - 99999 986-06000 986-06999 986-0700 986-0799 986-08 986-11 986-120 986-559 986-5400 986-7999 986-80000 986-99999 987-00 987-09 Region name: Argentina Country code(s): AR Language group: 987 Publisher(s): 00 - 09; 1000 - 1999; 20000 - 29999; 30 - 35; 3600 - 3999; 4000 - 4199; 42 - 43; 4400 - 4499; 45000 - 48999; 4900 - 4999; 500 - 899; 9000 - 9499; 95000 - 99999 987-1000 987-1999 987-20000 987-29999 987-30 987-35 987-3600 987-3999 987-4000 987-4199 987-42 987-43 987-4400 987-4499 987-45000 987-48999 987-4900 987-4999 987-500 987-899 987-8300 987-8499 987-85 987-89 987-9000 987-9499 987-95000 987-99999 988-00 988-11 Region name: Hong Kong, China Country code(s): HK Language group: 988 Publisher(s): 00 - 11; 12000 - 14999; 15000 - 16999; 17000 - 19999; 200 - 769; 77000 - 79999; 8000 - 9699; 97000 - 99999 988-12000 988-14999 988-200 988-769 988-74000 988-76999 988-77000 988-79999 988-8000 988-9699 988-97000 988-99999 989-0 989-1 Region name: Portugal Country code(s): PT Language group: 989 Publisher(s): 0 - 1; 20 - 54; 550 - 799; 8000 - 9499; 95000 - 99999 989-20 989-54 989-35000 989-36999 989-37 989-52 989-53000 989-54999 989-550 989-799 989-8000 989-9499 989-95000 989-99999 9914-40 9914-44 Region name: Kenya Country code(s): KE Language group: 9914 Publisher(s): 40 - 44; 700 - 749; 9850 - 9999 9914-700 9914-749 9914-9850 9914-9999 9915-40 9915-59 Region name: Uruguay Country code(s): UY Language group: 9915 Publisher(s): 40 - 59; 650 - 799; 9300 - 9999 9915-650 9915-799 9915-9300 9915-9999 9916-0 9916-0 Region name: Estonia Country code(s): EE Language group: 9916 Publisher(s): 0 - 0; 10 - 39; 4 - 4; 600 - 749; 9500 - 9999 9916-10 9916-39 9916-4 9916-4 9916-600 9916-749 9916-9500 9916-9999 9917-0 9917-0 Region name: Bolivia Country code(s): BO Language group: 9917 Publisher(s): 0 - 0; 30 - 34; 600 - 699; 9800 - 9999 9917-30 9917-34 9917-600 9917-699 9917-9800 9917-9999 9918-0 9918-0 Region name: Malta Country code(s): MT Language group: 9918 Publisher(s): 0 - 0; 20 - 29; 600 - 799; 9500 - 9999 9918-20 9918-29 9918-600 9918-799 9918-9500 9918-9999 9919-20 9919-27 Region name: Mongolia Country code(s): MN Language group: 9919 Publisher(s): 20 - 27; 500 - 599; 9500 - 9999 9919-500 9919-599 9919-9500 9919-9999 9920-32 9920-39 Region name: Morocco Country code(s): MA Language group: 9920 Publisher(s): 32 - 39; 550 - 799; 9000 - 9999 9920-550 9920-799 9920-9000 9920-9999 9921-0 9921-0 Region name: Kuwait Country code(s): KW Language group: 9921 Publisher(s): 0 - 0; 30 - 39; 700 - 899; 9700 - 9999 9921-30 9921-39 9921-700 9921-899 9921-9700 9921-9999 9922-20 9922-29 Region name: Iraq Country code(s): IQ Language group: 9922 Publisher(s): 20 - 29; 600 - 799; 9000 - 9999 9922-600 9922-799 9922-9000 9922-9999 9923-0 9923-0 Region name: Jordan Country code(s): JO Language group: 9923 Publisher(s): 0 - 0; 10 - 49; 700 - 899; 9700 - 9999 9923-10 9923-49 9923-700 9923-899 9923-9700 9923-9999 9924-30 9924-39 Region name: Cambodia Country code(s): KH Language group: 9924 Publisher(s): 30 - 39; 500 - 649; 9000 - 9999 9924-500 9924-649 9924-9000 9924-9999 9925-0 9925-2 Region name: Cyprus Country code(s): CY Language group: 9925 Publisher(s): 0 - 2; 30 - 54; 550 - 734; 7350 - 9999 9925-30 9925-54 9925-550 9925-734 9925-7350 9925-9999 9926-0 9926-1 Region name: Bosnia and Herzegovina Country code(s): BA Language group: 9926 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999 9926-20 9926-39 9926-400 9926-799 9926-8000 9926-9999 9927-00 9927-09 Region name: Qatar Country code(s): QA Language group: 9927 Publisher(s): 00 - 09; 100 - 399; 4000 - 4999 9927-100 9927-399 9927-4000 9927-4999 9928-00 9928-09 Region name: Albania Country code(s): AL Language group: 9928 Publisher(s): 00 - 09; 100 - 399; 4000 - 4999 9928-100 9928-399 9928-4000 9928-4999 9929-0 9929-3 Region name: Guatemala Country code(s): GT Language group: 9929 Publisher(s): 0 - 3; 40 - 54; 550 - 799; 8000 - 9999 9929-40 9929-54 9929-550 9929-799 9929-8000 9929-9999 9930-00 9930-49 Region name: Costa Rica Country code(s): CR Language group: 9930 Publisher(s): 00 - 49; 500 - 939; 9400 - 9999 9930-500 9930-939 9930-9400 9930-9999 9931-00 9931-29 Region name: Algeria Country code(s): DZ Language group: 9931 Publisher(s): 00 - 29; 300 - 899; 9000 - 9999 9931-300 9931-899 9931-9000 9931-9999 9932-00 9932-39 Region name: Lao People's Democratic Republic Country code(s): LA Language group: 9932 Publisher(s): 00 - 39; 400 - 849; 8500 - 9999 9932-400 9932-849 9932-8500 9932-9999 9933-0 9933-0 Region name: Syria Country code(s): SY Language group: 9933 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999 9933-10 9933-39 9933-400 9933-899 9933-9000 9933-9999 9934-0 9934-0 Region name: Latvia Country code(s): LV Language group: 9934 Publisher(s): 0 - 0; 10 - 49; 500 - 799; 8000 - 9999 9934-10 9934-49 9934-500 9934-799 9934-8000 9934-9999 9935-0 9935-0 Region name: Iceland Country code(s): IS Language group: 9935 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999 9935-10 9935-39 9935-400 9935-899 9935-9000 9935-9999 9936-0 9936-1 Region name: Afghanistan Country code(s): AF Language group: 9936 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999 9936-20 9936-39 9936-400 9936-799 9936-8000 9936-9999 9937-0 9937-2 Region name: Nepal Country code(s): NP Language group: 9937 Publisher(s): 0 - 2; 30 - 49; 500 - 799; 8000 - 9999 9937-30 9937-49 9937-500 9937-799 9937-8000 9937-9999 9938-00 9938-79 Region name: Tunisia Country code(s): TN Language group: 9938 Publisher(s): 00 - 79; 800 - 949; 9500 - 9999 9938-800 9938-949 9938-9500 9938-9999 9939-0 9939-4 Region name: Armenia Country code(s): AM Language group: 9939 Publisher(s): 0 - 4; 50 - 79; 800 - 899; 9000 - 9999 9939-50 9939-79 9939-800 9939-899 9939-9000 9939-9999 9939-98 9939-99 9940-0 9940-1 Region name: Montenegro Country code(s): ME Language group: 9940 Publisher(s): 0 - 1; 20 - 49; 500 - 899; 9000 - 9999 9940-20 9940-49 9940-500 9940-899 9940-84 9940-86 9940-8700 9940-9999 9941-0 9941-0 Region name: Georgia Country code(s): GE Language group: 9941 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999 9941-10 9941-39 9941-400 9941-899 9941-8 9941-8 9941-9000 9941-9999 9942-00 9942-84 Region name: Ecuador Country code(s): EC Language group: 9942 Publisher(s): 00 - 84; 8500 - 8999; 900 - 984; 9850 - 9999 9942-750 9942-849 9942-8500 9942-8999 9942-900 9942-984 9942-9850 9942-9999 9943-00 9943-29 Region name: Uzbekistan Country code(s): UZ Language group: 9943 Publisher(s): 00 - 29; 300 - 399; 4000 - 9749; 975 - 999 9943-300 9943-399 9943-4000 9943-9749 9943-975 9943-999 9944-0000 9944-0999 Region name: Turkey Country code(s): TR Language group: 9944 Publisher(s): 0000 - 0999; 100 - 499; 5000 - 5999; 60 - 69; 700 - 799; 80 - 89; 900 - 999 9944-100 9944-499 9944-5000 9944-5999 9944-60 9944-69 9944-700 9944-799 9944-80 9944-89 9944-900 9944-999 9945-00 9945-00 Region name: Dominican Republic Country code(s): DO Language group: 9945 Publisher(s): 00 - 00; 010 - 079; 08 - 39; 400 - 569; 57 - 57; 580 - 849; 8500 - 9999 9945-010 9945-079 9945-08 9945-39 9945-400 9945-569 9945-57 9945-57 9945-580 9945-849 9945-80 9945-80 9945-810 9945-849 9945-8500 9945-9999 9946-0 9946-1 Region name: Korea, P.D.R. Country code(s): KP Language group: 9946 Publisher(s): 0 - 1; 20 - 39; 400 - 899; 9000 - 9999 9946-20 9946-39 9946-400 9946-899 9946-9000 9946-9999 9947-0 9947-1 Region name: Algeria Country code(s): DZ Language group: 9947 Publisher(s): 0 - 1; 20 - 79; 800 - 999 9947-20 9947-79 9947-800 9947-999 9948-00 9948-39 Region name: United Arab Emirates Country code(s): AE Language group: 9948 Publisher(s): 00 - 39; 400 - 849; 8500 - 9999 9948-400 9948-849 9948-8500 9948-9999 9949-00 9949-08 Region name: Estonia Country code(s): EE Language group: 9949 Publisher(s): 00 - 08; 090 - 099; 10 - 39; 400 - 699; 70 - 71; 7200 - 7499; 75 - 89; 9000 - 9999 9949-090 9949-099 9949-10 9949-39 9949-400 9949-749 9949-70 9949-71 9949-7200 9949-7499 9949-75 9949-89 9949-9000 9949-9999 9950-00 9950-29 Region name: Palestine Country code(s): PS Language group: 9950 Publisher(s): 00 - 29; 300 - 849; 8500 - 9999 9950-300 9950-849 9950-8500 9950-9999 9951-00 9951-39 Region name: Kosova Country code(s): ?? Language group: 9951 Publisher(s): 00 - 39; 400 - 849; 8500 - 9999 9951-400 9951-849 9951-8500 9951-9999 9952-0 9952-1 Region name: Azerbaijan Country code(s): AZ Language group: 9952 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999 9952-20 9952-39 9952-400 9952-799 9952-8000 9952-9999 9953-0 9953-0 Region name: Lebanon Country code(s): LB Language group: 9953 Publisher(s): 0 - 0; 10 - 39; 400 - 599; 60 - 89; 9000 - 9999 9953-10 9953-39 9953-400 9953-599 9953-60 9953-89 9953-9000 9953-9999 9953-93 9953-96 9953-970 9953-999 9954-0 9954-1 Region name: Morocco Country code(s): MA Language group: 9954 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999 9954-20 9954-39 9954-400 9954-799 9954-8000 9954-9999 9954-99 9954-99 9955-00 9955-39 Region name: Lithuania Country code(s): LT Language group: 9955 Publisher(s): 00 - 39; 400 - 929; 9300 - 9999 9955-400 9955-929 9955-9300 9955-9999 9956-0 9956-0 Region name: Cameroon Country code(s): CM Language group: 9956 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999 9956-10 9956-39 9956-400 9956-899 9956-9000 9956-9999 9957-00 9957-39 Region name: Jordan Country code(s): JO Language group: 9957 Publisher(s): 00 - 39; 400 - 649; 65 - 69; 70 - 84; 8500 - 8799; 88 - 99 9957-400 9957-649 9957-65 9957-69 9957-680 9957-699 9957-70 9957-84 9957-8500 9957-8799 9957-88 9957-99 9958-00 9958-01 Region name: Bosnia and Herzegovina Country code(s): BA Language group: 9958 Publisher(s): 00 - 01; 020 - 029; 0300 - 0399; 040 - 089; 0900 - 0999; 10 - 18; 1900 - 1999; 20 - 49; 500 - 899; 9000 - 9999 9958-020 9958-029 9958-0300 9958-0399 9958-040 9958-089 9958-0900 9958-0999 9958-10 9958-18 9958-1900 9958-1999 9958-20 9958-49 9958-500 9958-899 9958-9000 9958-9999 9959-0 9959-1 Region name: Libya Country code(s): LY Language group: 9959 Publisher(s): 0 - 1; 20 - 79; 800 - 949; 9500 - 9699; 970 - 979; 98 - 99 9959-20 9959-79 9959-800 9959-949 9959-9500 9959-9699 9959-970 9959-979 9959-98 9959-99 9960-00 9960-59 Region name: Saudi Arabia Country code(s): SA Language group: 9960 Publisher(s): 00 - 59; 600 - 899; 9000 - 9999 9960-600 9960-899 9960-9000 9960-9999 9961-0 9961-2 Region name: Algeria Country code(s): DZ Language group: 9961 Publisher(s): 0 - 2; 30 - 69; 700 - 949; 9500 - 9999 9961-30 9961-69 9961-700 9961-949 9961-9500 9961-9999 9962-00 9962-54 Region name: Panama Country code(s): PA Language group: 9962 Publisher(s): 00 - 54; 5500 - 5599; 56 - 59; 600 - 849; 8500 - 9999 9962-5500 9962-5599 9962-56 9962-59 9962-600 9962-849 9962-8500 9962-9999 9963-0 9963-1 Region name: Cyprus Country code(s): CY Language group: 9963 Publisher(s): 0 - 1; 2000 - 2499; 250 - 279; 2800 - 2999; 30 - 54; 550 - 734; 7350 - 7499; 7500 - 9999 9963-2000 9963-2499 9963-250 9963-279 9963-2800 9963-2999 9963-30 9963-54 9963-550 9963-734 9963-7350 9963-7499 9963-7500 9963-9999 9964-0 9964-6 Region name: Ghana Country code(s): GH Language group: 9964 Publisher(s): 0 - 6; 70 - 94; 950 - 999 9964-70 9964-94 9964-950 9964-999 9965-00 9965-39 Region name: Kazakhstan Country code(s): KZ Language group: 9965 Publisher(s): 00 - 39; 400 - 899; 9000 - 9999 9965-400 9965-899 9965-9000 9965-9999 9966-000 9966-149 Region name: Kenya Country code(s): KE Language group: 9966 Publisher(s): 000 - 149; 1500 - 1999; 20 - 69; 7000 - 7499; 750 - 959; 9600 - 9999 9966-14 9966-14 9966-1500 9966-1999 9966-20 9966-69 9966-7000 9966-7499 9966-750 9966-959 9966-8210 9966-8249 9966-825 9966-825 9966-8260 9966-8289 9966-829 9966-959 9966-9600 9966-9999 9967-00 9967-39 Region name: Kyrgyz Republic Country code(s): KG Language group: 9967 Publisher(s): 00 - 39; 400 - 899; 9000 - 9999 9967-400 9967-899 9967-9000 9967-9999 9968-00 9968-49 Region name: Costa Rica Country code(s): CR Language group: 9968 Publisher(s): 00 - 49; 500 - 939; 9400 - 9999 9968-500 9968-939 9968-9400 9968-9999 9970-00 9970-39 Region name: Uganda Country code(s): UG Language group: 9970 Publisher(s): 00 - 39; 400 - 899; 9000 - 9999 9970-400 9970-899 9970-9000 9970-9999 9971-0 9971-5 Region name: Singapore Country code(s): SG Language group: 9971 Publisher(s): 0 - 5; 60 - 89; 900 - 989; 9900 - 9999 9971-60 9971-89 9971-900 9971-989 9971-9900 9971-9999 9972-00 9972-09 Region name: Peru Country code(s): PE Language group: 9972 Publisher(s): 00 - 09; 1 - 1; 200 - 249; 2500 - 2999; 30 - 59; 600 - 899; 9000 - 9999 9972-1 9972-1 9972-200 9972-249 9972-2500 9972-2999 9972-30 9972-59 9972-600 9972-899 9972-9000 9972-9999 9973-00 9973-05 Region name: Tunisia Country code(s): TN Language group: 9973 Publisher(s): 00 - 05; 060 - 089; 0900 - 0999; 10 - 69; 700 - 969; 9700 - 9999 9973-060 9973-089 9973-0900 9973-0999 9973-10 9973-69 9973-700 9973-969 9973-9700 9973-9999 9974-0 9974-2 Region name: Uruguay Country code(s): UY Language group: 9974 Publisher(s): 0 - 2; 30 - 54; 550 - 749; 7500 - 9099; 91 - 94; 95 - 99 9974-30 9974-54 9974-550 9974-749 9974-7500 9974-9099 9974-880 9974-909 9974-91 9974-94 9974-95 9974-99 9975-0 9975-0 Region name: Moldova Country code(s): MD Language group: 9975 Publisher(s): 0 - 0; 100 - 299; 3000 - 3999; 4000 - 4499; 45 - 89; 900 - 949; 9500 - 9999 9975-100 9975-299 9975-3000 9975-3999 9975-4000 9975-4499 9975-45 9975-89 9975-900 9975-949 9975-9500 9975-9999 9976-0 9976-5 Region name: Tanzania Country code(s): TZ Language group: 9976 Publisher(s): 0 - 5; 60 - 89; 900 - 989; 9900 - 9999 9976-5000 9976-5799 9976-580 9976-589 9976-59 9976-89 9976-900 9976-989 9976-9900 9976-9999 9977-00 9977-89 Region name: Costa Rica Country code(s): CR Language group: 9977 Publisher(s): 00 - 89; 900 - 989; 9900 - 9999 9977-900 9977-989 9977-9900 9977-9999 9978-00 9978-29 Region name: Ecuador Country code(s): EC Language group: 9978 Publisher(s): 00 - 29; 300 - 399; 40 - 94; 950 - 989; 9900 - 9999 9978-300 9978-399 9978-40 9978-94 9978-950 9978-989 9978-9900 9978-9999 9979-0 9979-4 Region name: Iceland Country code(s): IS Language group: 9979 Publisher(s): 0 - 4; 50 - 64; 650 - 659; 66 - 75; 760 - 899; 9000 - 9999 9979-50 9979-64 9979-650 9979-659 9979-66 9979-75 9979-760 9979-899 9979-9000 9979-9999 9980-0 9980-3 Region name: Papua New Guinea Country code(s): PG Language group: 9980 Publisher(s): 0 - 3; 40 - 89; 900 - 989; 9900 - 9999 9980-40 9980-89 9980-900 9980-989 9980-9900 9980-9999 9981-00 9981-09 Region name: Morocco Country code(s): MA Language group: 9981 Publisher(s): 00 - 09; 100 - 159; 1600 - 1999; 20 - 79; 800 - 949; 9500 - 9999 9981-100 9981-159 9981-1600 9981-1999 9981-20 9981-79 9981-800 9981-949 9981-9500 9981-9999 9982-00 9982-79 Region name: Zambia Country code(s): ZM Language group: 9982 Publisher(s): 00 - 79; 800 - 989; 9900 - 9999 9982-800 9982-989 9982-9900 9982-9999 9983-80 9983-94 Region name: Gambia Country code(s): GM Language group: 9983 Publisher(s): 80 - 94; 950 - 989; 9900 - 9999 9983-950 9983-989 9983-9900 9983-9999 9984-00 9984-49 Region name: Latvia Country code(s): LV Language group: 9984 Publisher(s): 00 - 49; 500 - 899; 9000 - 9999 9984-500 9984-899 9984-9000 9984-9999 9985-0 9985-4 Region name: Estonia Country code(s): EE Language group: 9985 Publisher(s): 0 - 4; 50 - 79; 800 - 899; 9000 - 9999 9985-50 9985-79 9985-800 9985-899 9985-9000 9985-9999 9986-00 9986-39 Region name: Lithuania Country code(s): LT Language group: 9986 Publisher(s): 00 - 39; 400 - 899; 9000 - 9399; 940 - 969; 97 - 99 9986-400 9986-899 9986-9000 9986-9399 9986-940 9986-969 9986-97 9986-99 9987-00 9987-39 Region name: Tanzania Country code(s): TZ Language group: 9987 Publisher(s): 00 - 39; 400 - 879; 8800 - 9999 9987-400 9987-879 9987-8800 9987-9999 9988-0 9988-2 Region name: Ghana Country code(s): GH Language group: 9988 Publisher(s): 0 - 2; 30 - 54; 550 - 749; 7500 - 9999 9988-40 9988-54 9988-550 9988-749 9988-7500 9988-9999 9989-0 9989-0 Region name: Macedonia Country code(s): MK Language group: 9989 Publisher(s): 0 - 0; 100 - 199; 2000 - 2999; 30 - 59; 600 - 949; 9500 - 9999 9989-100 9989-199 9989-2000 9989-2999 9989-30 9989-59 9989-600 9989-949 9989-9500 9989-9999 99901-00 99901-49 Region name: Bahrain Country code(s): BH Language group: 99901 Publisher(s): 00 - 49; 500 - 799; 80 - 99 99901-500 99901-799 99901-80 99901-99 99903-0 99903-1 Region name: Mauritius Country code(s): MU Language group: 99903 Publisher(s): 0 - 1; 20 - 89; 900 - 999 99903-20 99903-89 99903-900 99903-999 99904-0 99904-5 Region name: Curacao Country code(s): ?? Language group: 99904 Publisher(s): 0 - 5; 60 - 89; 900 - 999 99904-60 99904-89 99904-900 99904-999 99905-0 99905-3 Region name: Bolivia Country code(s): BO Language group: 99905 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99905-40 99905-79 99905-800 99905-999 99906-0 99906-2 Region name: Kuwait Country code(s): KW Language group: 99906 Publisher(s): 0 - 2; 30 - 59; 600 - 699; 70 - 89; 90 - 94; 950 - 999 99906-30 99906-59 99906-600 99906-699 99906-70 99906-89 99906-90 99906-94 99906-950 99906-999 99908-0 99908-0 Region name: Malawi Country code(s): MW Language group: 99908 Publisher(s): 0 - 0; 10 - 89; 900 - 999 99908-10 99908-89 99908-900 99908-999 99909-0 99909-3 Region name: Malta Country code(s): MT Language group: 99909 Publisher(s): 0 - 3; 40 - 94; 950 - 999 99909-40 99909-94 99909-950 99909-999 99910-0 99910-2 Region name: Sierra Leone Country code(s): SL Language group: 99910 Publisher(s): 0 - 2; 30 - 89; 900 - 999 99910-30 99910-89 99910-900 99910-999 99911-00 99911-59 Region name: Lesotho Country code(s): LS Language group: 99911 Publisher(s): 00 - 59; 600 - 999 99911-600 99911-999 99912-0 99912-3 Region name: Botswana Country code(s): BW Language group: 99912 Publisher(s): 0 - 3; 400 - 599; 60 - 89; 900 - 999 99912-400 99912-599 99912-60 99912-89 99912-900 99912-999 99913-0 99913-2 Region name: Andorra Country code(s): AD Language group: 99913 Publisher(s): 0 - 2; 30 - 35; 600 - 604 99913-30 99913-35 99913-600 99913-604 99914-0 99914-4 Region name: Suriname Country code(s): SR Language group: 99914 Publisher(s): 0 - 4; 50 - 89; 900 - 999 99914-50 99914-89 99914-7 99914-7 99914-80 99914-89 99914-900 99914-999 99915-0 99915-4 Region name: Maldives Country code(s): MV Language group: 99915 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99915-50 99915-79 99915-800 99915-999 99916-0 99916-2 Region name: Namibia Country code(s): NA Language group: 99916 Publisher(s): 0 - 2; 30 - 69; 700 - 999 99916-30 99916-69 99916-700 99916-999 99917-0 99917-2 Region name: Brunei Darussalam Country code(s): BN Language group: 99917 Publisher(s): 0 - 2; 30 - 89; 900 - 999 99917-30 99917-89 99917-890 99917-999 99918-0 99918-3 Region name: Faroe Islands Country code(s): FO Language group: 99918 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99918-40 99918-79 99918-800 99918-999 99919-0 99919-2 Region name: Benin Country code(s): BJ Language group: 99919 Publisher(s): 0 - 2; 300 - 399; 40 - 69; 70 - 79; 800 - 849; 850 - 899; 900 - 999 99919-300 99919-399 99919-40 99919-69 99919-800 99919-849 99920-0 99920-4 Region name: Andorra Country code(s): AD Language group: 99920 Publisher(s): 0 - 4; 50 - 89; 900 - 999 99920-50 99920-89 99920-900 99920-999 99921-0 99921-1 Region name: Qatar Country code(s): QA Language group: 99921 Publisher(s): 0 - 1; 20 - 69; 700 - 799; 8 - 8; 90 - 99 99921-20 99921-69 99921-700 99921-799 99921-8 99921-8 99921-90 99921-99 99922-0 99922-3 Region name: Guatemala Country code(s): GT Language group: 99922 Publisher(s): 0 - 3; 40 - 69; 700 - 999 99922-40 99922-69 99922-700 99922-999 99923-0 99923-1 Region name: El Salvador Country code(s): SV Language group: 99923 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99923-20 99923-79 99923-800 99923-999 99924-0 99924-1 Region name: Nicaragua Country code(s): NI Language group: 99924 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99924-20 99924-79 99924-800 99924-999 99925-0 99925-3 Region name: Paraguay Country code(s): PY Language group: 99925 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99925-10 99925-19 99925-200 99925-299 99925-3 99925-3 99925-40 99925-79 99925-800 99925-999 99926-0 99926-0 Region name: Honduras Country code(s): HN Language group: 99926 Publisher(s): 0 - 0; 10 - 59; 600 - 869; 87 - 89; 90 - 99 99926-10 99926-59 99926-600 99926-869 99926-87 99926-89 99926-90 99926-99 99927-0 99927-2 Region name: Albania Country code(s): AL Language group: 99927 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99927-30 99927-59 99927-600 99927-999 99928-0 99928-0 Region name: Georgia Country code(s): GE Language group: 99928 Publisher(s): 0 - 0; 10 - 79; 800 - 999 99928-10 99928-79 99928-800 99928-999 99929-0 99929-4 Region name: Mongolia Country code(s): MN Language group: 99929 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99929-50 99929-79 99929-800 99929-999 99930-0 99930-4 Region name: Armenia Country code(s): AM Language group: 99930 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99930-50 99930-79 99930-800 99930-999 99931-0 99931-4 Region name: Seychelles Country code(s): SC Language group: 99931 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99931-50 99931-79 99931-800 99931-999 99932-0 99932-0 Region name: Malta Country code(s): MT Language group: 99932 Publisher(s): 0 - 0; 10 - 59; 600 - 699; 7 - 7; 80 - 99 99932-10 99932-59 99932-600 99932-699 99932-7 99932-7 99932-80 99932-99 99933-0 99933-2 Region name: Nepal Country code(s): NP Language group: 99933 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99933-30 99933-59 99933-600 99933-999 99934-0 99934-1 Region name: Dominican Republic Country code(s): DO Language group: 99934 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99934-20 99934-79 99934-800 99934-999 99935-0 99935-2 Region name: Haiti Country code(s): HT Language group: 99935 Publisher(s): 0 - 2; 30 - 59; 600 - 699; 7 - 8; 90 - 99 99935-30 99935-59 99935-600 99935-699 99935-7 99935-8 99935-90 99935-99 99936-0 99936-0 Region name: Bhutan Country code(s): BT Language group: 99936 Publisher(s): 0 - 0; 10 - 59; 600 - 999 99936-10 99936-59 99936-600 99936-999 99937-0 99937-1 Region name: Macau Country code(s): MO Language group: 99937 Publisher(s): 0 - 1; 20 - 59; 600 - 999 99937-20 99937-59 99937-600 99937-999 99938-0 99938-1 Region name: Srpska, Republic of Country code(s): ?? Language group: 99938 Publisher(s): 0 - 1; 20 - 59; 600 - 899; 90 - 99 99938-20 99938-59 99938-600 99938-899 99938-90 99938-99 99939-0 99939-5 Region name: Guatemala Country code(s): GT Language group: 99939 Publisher(s): 0 - 5; 60 - 89; 900 - 999 99939-60 99939-89 99939-900 99939-999 99940-0 99940-0 Region name: Georgia Country code(s): GE Language group: 99940 Publisher(s): 0 - 0; 10 - 69; 700 - 999 99940-10 99940-69 99940-700 99940-999 99941-0 99941-2 Region name: Armenia Country code(s): AM Language group: 99941 Publisher(s): 0 - 2; 30 - 79; 800 - 999 99941-30 99941-79 99941-800 99941-999 99942-0 99942-4 Region name: Sudan Country code(s): SD Language group: 99942 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99942-50 99942-79 99942-800 99942-999 99943-0 99943-2 Region name: Albania Country code(s): AL Language group: 99943 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99943-30 99943-59 99943-600 99943-999 99944-0 99944-4 Region name: Ethiopia Country code(s): ET Language group: 99944 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99944-50 99944-79 99944-800 99944-999 99945-0 99945-5 Region name: Namibia Country code(s): NA Language group: 99945 Publisher(s): 0 - 5; 60 - 89; 900 - 999 99945-50 99945-89 99945-900 99945-999 99946-0 99946-2 Region name: Nepal Country code(s): NP Language group: 99946 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99946-30 99946-59 99946-600 99946-999 99947-0 99947-2 Region name: Tajikistan Country code(s): TJ Language group: 99947 Publisher(s): 0 - 2; 30 - 69; 700 - 999 99947-30 99947-69 99947-700 99947-999 99948-0 99948-4 Region name: Eritrea Country code(s): ER Language group: 99948 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99948-50 99948-79 99948-800 99948-999 99949-0 99949-1 Region name: Mauritius Country code(s): MU Language group: 99949 Publisher(s): 0 - 1; 20 - 89; 900 - 999 99949-20 99949-89 99949-900 99949-999 99950-0 99950-4 Region name: Cambodia Country code(s): KH Language group: 99950 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99950-50 99950-79 99950-800 99950-999 99952-0 99952-4 Region name: Mali Country code(s): ML Language group: 99952 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99952-50 99952-79 99952-800 99952-999 99953-0 99953-2 Region name: Paraguay Country code(s): PY Language group: 99953 Publisher(s): 0 - 2; 30 - 79; 800 - 939; 94 - 99 99953-30 99953-79 99953-800 99953-939 99953-94 99953-99 99954-0 99954-2 Region name: Bolivia Country code(s): BO Language group: 99954 Publisher(s): 0 - 2; 30 - 69; 700 - 879; 88 - 99 99954-30 99954-69 99954-700 99954-879 99954-88 99954-99 99955-0 99955-1 Region name: Srpska, Republic of Country code(s): ?? Language group: 99955 Publisher(s): 0 - 1; 20 - 59; 600 - 799; 80 - 99 99955-20 99955-59 99955-600 99955-799 99955-80 99955-99 99956-00 99956-59 Region name: Albania Country code(s): AL Language group: 99956 Publisher(s): 00 - 59; 600 - 859; 86 - 99 99956-600 99956-859 99956-86 99956-99 99957-0 99957-1 Region name: Malta Country code(s): MT Language group: 99957 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99957-20 99957-79 99957-800 99957-999 99957-95 99957-99 99958-0 99958-4 Region name: Bahrain Country code(s): BH Language group: 99958 Publisher(s): 0 - 4; 50 - 93; 940 - 949; 950 - 999 99958-50 99958-93 99958-940 99958-949 99958-950 99958-999 99959-0 99959-2 Region name: Luxembourg Country code(s): LU Language group: 99959 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99959-30 99959-59 99959-600 99959-999 99960-070 99960-099 Region name: Malawi Country code(s): MW Language group: 99960 Publisher(s): 070 - 099; 10 - 94; 950 - 999 99960-10 99960-94 99960-950 99960-999 99961-0 99961-3 Region name: El Salvador Country code(s): SV Language group: 99961 Publisher(s): 0 - 3; 40 - 89; 900 - 999 99961-300 99961-369 99961-37 99961-89 99961-900 99961-999 99962-0 99962-4 Region name: Mongolia Country code(s): MN Language group: 99962 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99962-50 99962-79 99962-800 99962-999 99963-00 99963-49 Region name: Cambodia Country code(s): KH Language group: 99963 Publisher(s): 00 - 49; 500 - 919; 92 - 99 99963-500 99963-919 99963-92 99963-99 99964-0 99964-1 Region name: Nicaragua Country code(s): NI Language group: 99964 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99964-20 99964-79 99964-800 99964-999 99965-0 99965-3 Region name: Macau Country code(s): MO Language group: 99965 Publisher(s): 0 - 3; 40 - 62; 630 - 999 99965-300 99965-359 99965-36 99965-62 99965-630 99965-999 99966-0 99966-2 Region name: Kuwait Country code(s): KW Language group: 99966 Publisher(s): 0 - 2; 30 - 69; 700 - 799; 80 - 94 99966-30 99966-69 99966-700 99966-799 99966-80 99966-94 99966-970 99966-999 99967-0 99967-1 Region name: Paraguay Country code(s): PY Language group: 99967 Publisher(s): 0 - 1; 20 - 59; 600 - 899 99967-10 99967-59 99967-600 99967-899 99968-0 99968-3 Region name: Botswana Country code(s): BW Language group: 99968 Publisher(s): 0 - 3; 400 - 599; 60 - 89; 900 - 999 99968-400 99968-599 99968-60 99968-89 99968-900 99968-999 99969-0 99969-4 Region name: Oman Country code(s): OM Language group: 99969 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99969-50 99969-79 99969-800 99969-999 99970-0 99970-4 Region name: Haiti Country code(s): HT Language group: 99970 Publisher(s): 0 - 4; 50 - 89; 900 - 999 99970-50 99970-89 99970-900 99970-999 99971-0 99971-5 Region name: Myanmar Country code(s): MM Language group: 99971 Publisher(s): 0 - 5; 60 - 84; 850 - 999 99971-40 99971-84 99971-850 99971-999 99972-0 99972-4 Region name: Faroe Islands Country code(s): FO Language group: 99972 Publisher(s): 0 - 4; 50 - 89; 900 - 999 99972-50 99972-89 99972-900 99972-999 99973-0 99973-3 Region name: Mongolia Country code(s): MN Language group: 99973 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99973-40 99973-79 99973-800 99973-999 99974-0 99974-0 Region name: Bolivia Country code(s): BO Language group: 99974 Publisher(s): 0 - 0; 10 - 25; 260 - 399; 40 - 63; 640 - 649; 65 - 79; 800 - 999 99974-10 99974-25 99974-260 99974-399 99974-40 99974-79 Region name: Bolivia Country code(s): BO Language group: 99974 Publisher(s): 40 - 79; 800 - 999 99974-640 99974-649 99974-65 99974-79 99974-800 99974-999 99975-0 99975-3 Region name: Tajikistan Country code(s): TJ Language group: 99975 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99975-300 99975-399 99975-40 99975-79 99975-800 99975-999 99976-0 99976-1 Region name: Srpska, Republic of Country code(s): ?? Language group: 99976 Publisher(s): 0 - 1; 20 - 59; 600 - 799 99976-20 99976-59 99976-600 99976-799 99976-900 99976-999 99977-0 99977-1 Region name: Rwanda Country code(s): RW Language group: 99977 Publisher(s): 0 - 1; 40 - 69; 700 - 799 99977-40 99977-69 99977-700 99977-799 99977-995 99977-999 99978-0 99978-4 Region name: Mongolia Country code(s): MN Language group: 99978 Publisher(s): 0 - 4; 50 - 69; 700 - 999 99978-50 99978-69 99978-700 99978-999 99979-0 99979-4 Region name: Honduras Country code(s): HN Language group: 99979 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99979-50 99979-79 99979-800 99979-999 99980-0 99980-0 Region name: Bhutan Country code(s): BT Language group: 99980 Publisher(s): 0 - 0; 30 - 59; 800 - 999 99980-30 99980-59 99980-800 99980-999 99981-0 99981-1 Region name: Macau Country code(s): MO Language group: 99981 Publisher(s): 0 - 1; 30 - 59; 800 - 999 99981-30 99981-59 99981-800 99981-999 99982-0 99982-0 Region name: Benin Country code(s): BJ Language group: 99982 Publisher(s): 0 - 0; 50 - 65; 900 - 979 99982-50 99982-65 99982-900 99982-979 99983-0 99983-0 Region name: El Salvador Country code(s): SV Language group: 99983 Publisher(s): 0 - 0; 50 - 69; 950 - 999 99983-50 99983-69 99983-950 99983-999 99985-55 99985-59 Region name: Tajikistan Country code(s): TJ Language group: 99985 Publisher(s): 55 - 59; 950 - 999 99985-950 99985-999 99986-0 99986-0 Region name: Myanmar Country code(s): MM Language group: 99986 Publisher(s): 0 - 0; 50 - 69; 950 - 999 99986-50 99986-69 99986-950 99986-999 99987-850 99987-999 Region name: Luxembourg Country code(s): LU Language group: 99987 Publisher(s): 850 - 999 10-00 10-19 Region name: France Country code(s): FR Language group: 10 Publisher(s): 00 - 19; 200 - 699; 7000 - 8999; 90000 - 97599; 976000 - 999999 10-200 10-699 10-7000 10-8999 10-90000 10-97599 10-976000 10-999999 11-00 11-24 Region name: Korea, Republic Country code(s): KR Language group: 11 Publisher(s): 00 - 24; 250 - 549; 5500 - 8499; 85000 - 94999; 950000 - 999999 11-250 11-549 11-5500 11-8499 11-85000 11-94999 11-950000 11-999999 12-200 12-200 Region name: Italy Country code(s): IT Language group: 12 Publisher(s): 200 - 200 12-5950 12-5999 12-80000 12-84999 8-200 8-219 Region name: United States Country code(s): US Language group: 8 Publisher(s): 200 - 219; 5500 - 7499; 9850000 - 9850009 8-5500 8-7499 8-9850000 8-9850009 0-315 0-315 [24-Sep-2015] Updated list from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 0-458 0-459 0-612 0-612 0-616 0-616 0-660 0-660 0-662 0-662 0-665 0-665 0-7700 0-7799 0-86488 0-86507 0-88500 0-88668 0-88750 0-88999 0-919000 0-921999 0-9680000 0-9699999 0-9730000 0-9739999 0-9583000 0-9583049 Region name: Gibraltar Country code(s): GI Language group: 0 Publisher(s): 9583000 - 9583049 0-9633400 0-9633499 Region name: Puerto Rico Country code(s): PR Language group: 0 Publisher(s): 9633400 - 9633499 0-620 0-629 Region name: South Africa Country code(s): ZA Language group: 0 Publisher(s): 620 - 629 ; 636 - 639 ; 7954 - 7973 ; 7975 - 7999 ; 86483 - 86487 ; 86808 - 86817 ; 86843 - 86852 ; 86873 - 86887 ; 86950 - 86999 ; 907980 - 907999 ; 908352 - 908409 ; 909060 - 909079 ; 909230 - 909239 ; 947000 - 947059 ; 949934 - 949998 ; 9583050 - 9583249 ; 9583750 - 9585149 0-636 0-639 0-7021 0-7021 [24-Sep-2015] Addition from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 0-7954 0-7973 0-7975 0-7977 0-7979 0-7998 0-9583750 0-9585149 Region name: Swaziland Country code(s): SZ Language group: 0 Publisher(s): ??????? - ??????? 0-7974 0-7974 Region name: Zimbabwe Country code(s): ZW Language group: 0 Publisher(s): 7974 ; 86918 - 86929 ; 908300 - 908305 ; 949225 - 949933 0-86918 0-86929 0-908300 0-908305 0-949225 0-949933 1-86250 1-86799 1-875100 1-877099 1-920680 1-926429 1-894000 1-896999 [24-Sep-2015] Additions from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 1-897000 1-897579 1-919655 1-919679 Region name: Gibraltar Country code(s): GI Language group: 1 Publisher(s): 919655 - 919679 1-86930 1-86979 Region name: New Zealand Country code(s): NZ Language group: 1 Publisher(s): 86930 - 86979 ; 877130 - 877579 1-877130 1-877579 1-881700 1-881749 Region name: Puerto Rico Country code(s): PR Language group: 1 Publisher(s): 881700 - 881749 1-4150 1-4154 [24-Sep-2015] Additions from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 1-77000 1-77019 1-919680 1-920679 Region name: United Kingdom Country code(s): GB Language group: 1 Publisher(s): 84000 - 86249 ; 869800 - 874799 ; 897580 - 919679 1-4050 1-4099 [24-Sep-2015] Updated list from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 1-84000 1-85122 1-85124 1-86249 1-871032 1-874799 1-897580 1-919654 1-952246 1-952246 1-987807 1-987807 1-4000 1-5499 1-4100 1-4149 1-55500 1-59999 1-871031 1-871031 1-877580 1-897579 1-928530 1-952245 1-952247 1-987806 1-987808 1-998999 1-77900 1-77919 Region name: Zimbabwe Country code(s): ZW Language group: 1 Publisher(s): 77900 - 77919 ; 877100 - 877129 1-877100 1-877129 2-500 2-549 Region name: Belgium Country code(s): BE Language group: 2 Publisher(s): 500 - 549 ; 8000 - 8249 ; 87000 - 87949 ; 930000 - 939999 ; 9600000 - 9699999 2-8000 2-8249 2-87000 2-87949 2-930000 2-939999 2-9600000 2-9699999 2-550 2-599 Region name: Canada Country code(s): CA Language group: 2 Publisher(s): 550 - 599 ; 7600 - 7653 ; 7655 - 7776 ; 7778 - 7999 ; 89000 - 89999 ; 920000 - 929999 ; 9800000 - 9999999 2-7600 2-7653 2-7655 2-7776 2-7778 2-7999 2-89000 2-89999 2-920000 2-929999 2-9800000 2-9999999 2-87950 2-87999 2-919769 2-919999 2-9599769 2-9599999 2-600 2-699 Region name: Switzerland (French speaking) Country code(s): CH Language group: 2 Publisher(s): 600 - 699 ; 8250 - 8399 ; 88000 - 88999 ; 940000 - 949999 ; 9700000 - 9799999 2-8250 2-8399 2-88000 2-88999 2-940000 2-949999 2-9700000 2-9799999 3-01 3-02 Region name: Austria Country code(s): AT Language group: 3 Publisher(s): 01 - 02 ; 200 - 249 ; 7000 - 7149 ; 85000 - 85499 ; 900000 - 904999 ; 9500000 - 9519999 3-05 3-19 3-320 3-379 3-400 3-699 3-7300 3-8499 [24-Sep-2015] Updates from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 3-86000 3-89999 3-250 3-319 3-7150 3-7299 3-85500 3-85999 3-905000 3-909999 3-9520000 3-9539999 5-00 5-19 Region name: Armenia Country code(s): AM Language group: 5 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 89999 ; 800000 - 919999 5-800000 5-919999 5-950000 5-979999 5-9800000 5-9999999 86-7000 86-7999 88-7000 88-8499 952-89 952-94 953-96000 953-99999 954-9500 954-9999 955-0 955-1 Region name: Sri Lanka Country code(s): LK Language group: 955 Publisher(s): 0 - 1 ; 20 - 54 ; 550 - 799 ; 8000 - 9499 ; 95000 - 99999 955-8000 955-9499 957-30000 957-30999 966-500 966-699 967-0 967-5 Region name: Malaysia Country code(s): MY Language group: 967 Publisher(s): 0 - 5 ; 60 - 89 ; 900 - 989 ; 9900 - 9989 ; 99900 - 99999 968-10 968-39 Region name: Mexico Country code(s): MX Language group: 968 Publisher(s): 10 - 39 ; 400 - 499 ; 5000 - 7999 ; 800 - 899 969-8000 969-9999 970-00 970-59 Region name: Mexico Country code(s): MX Language group: 970 Publisher(s): 00 - 59 ; 600 - 899 ; 9000 - 9099 ; 91000 - 99999 971-00 971-49 Region name: Philippines Country code(s): PH Language group: 971 Publisher(s): 00 - 49 ; 500 - 849 ; 8500 - 9099 ; 91000 - 99999 973-8000 973-8499 975-00 975-29 Region name: Turkey Country code(s): TR Language group: 975 Publisher(s): 00 - 29 ; 300 - 599 ; 6000 - 9199 ; 92000 - 97999 975-300 975-599 977-70000 977-99999 986-200 986-559 986-5600 986-7999 986-8000 986-99999 9955-9000 9955-9999 9958-0 9958-0 Region name: Bosnia and Herzegovina Country code(s): BA Language group: 9958 Publisher(s): 0 ; 10 - 49 ; 500 - 899 ; 9000 - 9999 9961-50 9961-79 9961-800 9961-949 9966-00 9966-69 Region name: Kenya Country code(s): KE Language group: 9966 Publisher(s): 00 - 69 ; 800 - 959 ; 9600 - 9999 9966-800 9966-959 9968-0 9968-0 Region name: Costa Rica Country code(s): CR Language group: 9968 Publisher(s): 0 ; 10 - 69 ; 700 - 969 ; 9700 - 9999 9968-10 9968-69 9968-700 9968-969 9968-9700 9968-9999 9972-40 9972-59 9973-0 9973-0 Region name: Tunisia Country code(s): TN Language group: 9973 Publisher(s): 0 ; 10 - 69 ; 700 - 969 ; 9700 - 9999 9975-50 9975-89 9976-60 9976-89 9976-9990 9976-9999 9988-30 9988-54 9989-8500 9989-9999 99917-900 99917-999 99918-900 99918-999 99919-900 99919-999 99922-50 99922-79 99922-800 99922-900 99924-30 99924-79 99938-30 99938-59 1-00 1-09 Region name: English language Country code(s): ?? Language group: 1 Publisher(s): 00 - 09; 100 - 399; 4000 - 5499; 55000 - 86979; 869800 - 998999; 9990000 - 9999999 1-9990000 1-9999999 3-99000 3-99499 3-99500 3-99999 602-0800 602-0899 602-0900 602-1099 602-1100 602-1199 602-1200 602-1399 602-18000 602-18999 602-19000 602-19999 602-6750 602-6999 602-8000 602-9499 605-01 605-02 Region name: Turkey Country code(s): TR Language group: 605 Publisher(s): 01 - 02; 030 - 039; 04 - 09; 100 - 399; 4000 - 5999; 60000 - 89999; 9000 - 9999 606-0 606-0 Region name: Romania Country code(s): RO Language group: 606 Publisher(s): 0 - 0; 10 - 49; 500 - 799; 8000 - 9199; 92000 - 99999 606-10 606-49 612-50 612-99 88-9300 88-9399 88-95000 88-99999 955-44000 955-44999 955-7500 955-7999 958-57000 958-59999 988-15000 988-16999 988-17000 988-19999 9940-9000 9940-9999 9949-0 9949-0 Region name: Estonia Country code(s): EE Language group: 9949 Publisher(s): 0 - 0; 10 - 39; 400 - 749; 75 - 89; 9000 - 9999 99919-70 99919-79 99919-850 99919-899 99945-60 99945-89 99960-0 99960-0 Region name: Malawi Country code(s): MW Language group: 99960 Publisher(s): 0 - 0; 10 - 94; 950 - 999 99961-40 99961-89 99965-40 99965-62 99967-20 99967-59 99971-60 99971-84 bibclean-3.07/test/okay/topt111.err0000444000156700015670000000000012470142672015742 0ustar beebebeebebibclean-3.07/test/okay/topt359.err0000444000156700015670000000000012470142676015764 0ustar beebebeebebibclean-3.07/test/okay/testscr2.out0000444000156700015670000000303305304617630016331 0ustar beebebeebe@Comment{ This file contains some test Scribe bibliography entries with embedded paragraph breaks for testing the -no-parbreaks switch in bibclean. Without that switch, it should process correctly; with it, 3 sets of error messages should be displayed. } @TechReport{bs-1629-0, author = "BSI", title = "Bibliographic References", institution = "British Standards Institution", year = "1976", type = "BS", number = "1629", } @TechReport{bs-1629-1, author = "BSI", title = "Bibliographic References", institution = "British Standards Institution", year = "1976", type = "BS", number = "1629", } @TechReport{bs-1629-2, author = "BSI", title = "Bibliographic References", institution = "British Standards Institution", year = "1976", type = "BS", number = "1629", } @TechReport{bs-1629-3, author = "BSI", title = "Bibliographic References", institution = "British Standards Institution", year = "1976", type = "BS", number = "1629", } @TechReport{bs-1629-4, author = "BSI", title = "Bibliographic References", institution = "British Standards Institution", year = "1976", type = "BS", number = "1629", } @TechReport{bs-1629-5, author = "BSI", title = "Bibliographic References", institution = "British Standards Institution", year = "1976", type = "BS", number = "1629", } bibclean-3.07/test/okay/testoptd.err0000444000156700015670000000000007342757115016405 0ustar beebebeebebibclean-3.07/test/okay/topt312.out0000444000156700015670000000000112470143224015757 0ustar beebebeebe bibclean-3.07/test/okay/topt116.err0000444000156700015670000000000012470142673015750 0ustar beebebeebebibclean-3.07/test/okay/topt325.err0000444000156700015670000000000012470142675015754 0ustar beebebeebebibclean-3.07/test/okay/topt121.out0000444000156700015670000000000112470143211015751 0ustar beebebeebe bibclean-3.07/test/okay/testbib1.out0000444000156700015670000003033505574125665016315 0ustar beebebeebe@Misc{value-test, comment = "This entry contains several value patterns designed to pass the value pattern checks in bibclean 2.05 or later.", comment = "The following values should all be accepted.", chapter = "13", month = "31 " # aug, number = "23 + 24", number = "23 / 24", number = "23 \& 24", number = "23+24", number = "23/24", number = "23\&24", number = "3+4", number = "TR\#89-24", number = "UMIACS-TR-89-3.1, CS-TR-2177.1", number = "{STAN-CS-88-1223}", pages = "1, 3, 5, 7", pages = "1--3", pages = "12, 13, 17", pages = "12--13", pages = "L301--L305", pages = "ix + 399", pages = "viii + 445, with 30 illustrations", pages = "viii + 445", price = "UK\pounds 12.95", price = "US\$12.95", price = "US\$13", volume = "23", volume = "23-1", volume = "23a", volume = "One", volume = "XXIII", volume = "xxiii", year = "1978 (1985)", year = "1987" # "\unskip--", year = "2001", comment = "The following values should raise warnings.", chapter = "23.", chapter = "Two", month = "janvier", pages = "1,3,5,7", pages = "1--3, 5, 7", pages = "10,560--10,574", pages = "12--13, 17, 18", pages = "12--13, 17--18", pages = "147--156, 157--168", pages = "445 + viii with 30 illustrations", pages = "445 + viii", price = "DM\$60.5", price = "DM\$60.537", price = "US\$12.9", price = "\$12.95", price = "\$13", price = "\pounds 13", volume = "1.", volume = "12(5)", volume = "1:", year = "(1985)", year = "1789", year = "23", year = "2525", year = "????", } @Testcharset{Test-8-bit-set, charset = "\000", charset = "\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017", charset = "\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037", charset = "\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057", charset = "\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077", charset = "\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117", charset = "\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137", charset = "\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157", charset = "\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177", charset = "\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217", charset = "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237", charset = "\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257", charset = "\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277", charset = "\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317", charset = "\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337", charset = "\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357", charset = "\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377", charset = "\004\b\t\n\v\f\r ", charset = " \032", charset = "!{"}#$%&'()*+,-./", charset = "0123456789:;<=>?", charset = "@ABCDEFGHIJKLMNO", charset = "PQRSTUVWXYZ[\]^_", charset = "`abcdefghijklmno", charset = "pqrstuvwxyz{|}~", charset = "", charset = "", charset = "", charset = "", charset = "", charset = "", charset = "", charset = "", } %%% This entry enumerates all 256 characters of an 8-bit character %%% set, except for these 10 characters that are required for other %%% purposes: %%% %%% NUL string delimiter in C %%% CTL-A BIBTEX-HIDDEN-DELIMITER (internal marker) %%% CTL-I..CTL-M,SPACE whitespace characters %%% LEFT-BRACE, RIGHT-BRACE BibTeX character protectors %%% %%% Each entry contains the octal representation of a character value %%% followed by =, except for the above %%% 10 exceptions, for which is replaced by a %%% . %%% %%% If bibclean is working properly, the remaining 246 characters %%% should be passed through untouched. With the default indentation, %%% the output of bibclean on this example should be exactly the same %%% as the input. @Testcharset{Test-8-bit-set, charset = "\000 = ", charset = "\001 = ", charset = "\002 = ", charset = "\003 = ", charset = "\004 = ", charset = "\005 = ", charset = "\006 = ", charset = "\007 = ", charset = "\010 = ", charset = "\011 = ", charset = "\012 = ", charset = "\013 = ", charset = "\014 = ", charset = "\015 = ", charset = "\016 = ", charset = "\017 = ", charset = "\020 = ", charset = "\021 = ", charset = "\022 = ", charset = "\023 = ", charset = "\024 = ", charset = "\025 = ", charset = "\026 = ", charset = "\027 = ", charset = "\030 = ", charset = "\031 = ", charset = "\032 = ", charset = "\033 = ", charset = "\034 = ", charset = "\035 = ", charset = "\036 = ", charset = "\037 = ", charset = "\040 = ", charset = "\041 = !", charset = "\042 = {"}", charset = "\043 = #", charset = "\044 = $", charset = "\045 = %", charset = "\046 = &", charset = "\047 = '", charset = "\050 = (", charset = "\051 = )", charset = "\052 = *", charset = "\053 = +", charset = "\054 = ,", charset = "\055 = -", charset = "\056 = .", charset = "\057 = /", charset = "\060 = 0", charset = "\061 = 1", charset = "\062 = 2", charset = "\063 = 3", charset = "\064 = 4", charset = "\065 = 5", charset = "\066 = 6", charset = "\067 = 7", charset = "\070 = 8", charset = "\071 = 9", charset = "\072 = :", charset = "\073 = ;", charset = "\074 = <", charset = "\075 = =", charset = "\076 = >", charset = "\077 = ?", charset = "\100 = @", charset = "\101 = A", charset = "\102 = B", charset = "\103 = C", charset = "\104 = D", charset = "\105 = E", charset = "\106 = F", charset = "\107 = G", charset = "\110 = H", charset = "\111 = I", charset = "\112 = J", charset = "\113 = K", charset = "\114 = L", charset = "\115 = M", charset = "\116 = N", charset = "\117 = O", charset = "\120 = P", charset = "\121 = Q", charset = "\122 = R", charset = "\123 = S", charset = "\124 = T", charset = "\125 = U", charset = "\126 = V", charset = "\127 = W", charset = "\130 = X", charset = "\131 = Y", charset = "\132 = Z", charset = "\133 = [", charset = "\134 = {\}", charset = "\135 = ]", charset = "\136 = ^", charset = "\137 = _", charset = "\140 = `", charset = "\141 = a", charset = "\142 = b", charset = "\143 = c", charset = "\144 = d", charset = "\145 = e", charset = "\146 = f", charset = "\147 = g", charset = "\150 = h", charset = "\151 = i", charset = "\152 = j", charset = "\153 = k", charset = "\154 = l", charset = "\155 = m", charset = "\156 = n", charset = "\157 = o", charset = "\160 = p", charset = "\161 = q", charset = "\162 = r", charset = "\163 = s", charset = "\164 = t", charset = "\165 = u", charset = "\166 = v", charset = "\167 = w", charset = "\170 = x", charset = "\171 = y", charset = "\172 = z", charset = "\173 = ", charset = "\174 = |", charset = "\175 = ", charset = "\176 = ~", charset = "\177 = ", charset = "\200 = ", charset = "\201 = ", charset = "\202 = ", charset = "\203 = ", charset = "\204 = ", charset = "\205 = ", charset = "\206 = ", charset = "\207 = ", charset = "\210 = ", charset = "\211 = ", charset = "\212 = ", charset = "\213 = ", charset = "\214 = ", charset = "\215 = ", charset = "\216 = ", charset = "\217 = ", charset = "\220 = ", charset = "\221 = ", charset = "\222 = ", charset = "\223 = ", charset = "\224 = ", charset = "\225 = ", charset = "\226 = ", charset = "\227 = ", charset = "\230 = ", charset = "\231 = ", charset = "\232 = ", charset = "\233 = ", charset = "\234 = ", charset = "\235 = ", charset = "\236 = ", charset = "\237 = ", charset = "\240 = ", charset = "\241 = ", charset = "\242 = ", charset = "\243 = ", charset = "\244 = ", charset = "\245 = ", charset = "\246 = ", charset = "\247 = ", charset = "\250 = ", charset = "\251 = ", charset = "\252 = ", charset = "\253 = ", charset = "\254 = ", charset = "\255 = ", charset = "\256 = ", charset = "\257 = ", charset = "\260 = ", charset = "\261 = ", charset = "\262 = ", charset = "\263 = ", charset = "\264 = ", charset = "\265 = ", charset = "\266 = ", charset = "\267 = ", charset = "\270 = ", charset = "\271 = ", charset = "\272 = ", charset = "\273 = ", charset = "\274 = ", charset = "\275 = ", charset = "\276 = ", charset = "\277 = ", charset = "\300 = ", charset = "\301 = ", charset = "\302 = ", charset = "\303 = ", charset = "\304 = ", charset = "\305 = ", charset = "\306 = ", charset = "\307 = ", charset = "\310 = ", charset = "\311 = ", charset = "\312 = ", charset = "\313 = ", charset = "\314 = ", charset = "\315 = ", charset = "\316 = ", charset = "\317 = ", charset = "\320 = ", charset = "\321 = ", charset = "\322 = ", charset = "\323 = ", charset = "\324 = ", charset = "\325 = ", charset = "\326 = ", charset = "\327 = ", charset = "\330 = ", charset = "\331 = ", charset = "\332 = ", charset = "\333 = ", charset = "\334 = ", charset = "\335 = ", charset = "\336 = ", charset = "\337 = ", charset = "\340 = ", charset = "\341 = ", charset = "\342 = ", charset = "\343 = ", charset = "\344 = ", charset = "\345 = ", charset = "\346 = ", charset = "\347 = ", charset = "\350 = ", charset = "\351 = ", charset = "\352 = ", charset = "\353 = ", charset = "\354 = ", charset = "\355 = ", charset = "\356 = ", charset = "\357 = ", charset = "\360 = ", charset = "\361 = ", charset = "\362 = ", charset = "\363 = ", charset = "\364 = ", charset = "\365 = ", charset = "\366 = ", charset = "\367 = ", charset = "\370 = ", charset = "\371 = ", charset = "\372 = ", charset = "\373 = ", charset = "\374 = ", charset = "\375 = ", charset = "\376 = ", charset = "\377 = ", } bibclean-3.07/test/okay/topt357.err0000444000156700015670000000000012470142676015762 0ustar beebebeebebibclean-3.07/test/okay/topt153.out0000444000156700015670000000000112470143222015760 0ustar beebebeebe bibclean-3.07/test/okay/testopts.out0000444000156700015670000000570314023206351016443 0ustar beebebeebe@Misc{x, title = "On {Galileo} and his {{\em Dialogue}}", } @Misc{x, title = "{Einstein}'s relativity: a companion to {Einstein}'s {\booktitle{The meaning of relativity}}", } @Misc{x, title = "Erratum: {Bose--Einstein condensation in the alkali gases: Some fundamental concepts [Rev. Mod. Phys. {\bf 73}, 307 (2001)]}", } @Misc{x, title = "{Zum {\em Ehrenfest}schen Paradoxon. Bemerkung zu {\em V. Varicaks} Aufsatz}. ({German}) [{On} the {Ehrenfest} paradox: Remark on {V. Varicaks}'s essay]", } @Misc{x, booktitle = "{PARLE}, Parallel Architectures and Languages Europe: Eindhoven, The Netherlands, June 15--19, 1987: Proceedings. Part {II}. Parallel Languages", } @Misc{x, title = "{\TeX}, {XML}, and Digital Typography: International Conference on {\TeX}, {XML}, and Digital Typography, held jointly with the 25th Annual Meeting of the {\TeX} Users Group, {TUG 2004}, Xanthi, Greece, August 30--September 3, 2004: Proceedings", } @Misc{x, title = "The {4.4BSD} Operating System", title = "The Design and Implementation of the {4.4BSD} Operating System", } @Misc{x, title = "Dots, dots, dots, ... and more dots", } @Misc{x, title = "Part {XVII}.", } @Misc{x, title = "Part {III} of {XVII}", } @Misc{x, title = "{IEEE 802.11(p)/1609} network standard", } @Misc{x, author = "H{\'a}n{ }Th{\^e}\llap{\raise 0.5ex\hbox{\'{\relax}}}{ }Th{\'a}nh", } @Misc{x, author = "Kawasaki{ }Kimio", } @Misc{x, author = "Mao{ }Tse-Tung", } @Misc{x, author = "Neumann{ }Jan{\'o}s", } @Misc{x, author = "Park{ }Chung-hee", } @Misc{x, author = "{von{ }E{\"o}tv{\"o}s{ }Lor{\'a}nd}", } @Misc{x, title = "The fraternity {$\Sigma \Phi \Delta$}", } @Misc{x, title = "The fraternity {$\Sigma \Phi \Delta$} and others", } @Misc{x, title = "The fraternity {$$\Sigma \Phi \Delta$$}", } @Misc{x, title = "The fraternity {$$\Sigma \Phi \Delta$$} and others", } @Misc{x, title = "Unclosed display math mode $$\sigma and others", } @Misc{x, title = "Unclosed normal math mode $\sigma and others", } @Misc{x, title = "{\TeX}, {XML}, etc.", title = "Part {XVII}.", } @Misc{x, title = "Dots, dots, dots, ...", title = "Part {XVII}.", } @Misc{x, title = "{\TeX}book", } @Misc{x, title = "{\TeX book}", } @Misc{x, title = "{{\em Bose--Einstein}}", } @Misc{x, title = "{\H{o}} is {O}-long-Hungarianaccent", } @Misc{x, title = "{{\"O}} is {O}-with-umlaut", } bibclean-3.07/test/okay/topt118.err0000444000156700015670000000000012470142673015752 0ustar beebebeebebibclean-3.07/test/okay/testoptj.err0000444000156700015670000005103313660517102016415 0ustar beebebeebe Usage: ../bibclean [ -author ] [ -copyleft ] [ -copyright ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -ISBN-file filename ] [ -keyword-file filename ] [ -max-width nnn ] [ -[no-]align-equals ] [ -[no-]brace-protect ] [ -[no-]check-values ] [ -[no-]debug-match-failures ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-accents ] [ -[no-]fix-braces ] [ -[no-]fix-degrees ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-math ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-ISBN-table ] [ -[no-]print-keyword-table ] [ -[no-]print-patterns ] [ -[no-]quiet ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -output-file filename ] [ -version ] [ outfile Command-line switches may be abbreviated to a unique leading prefix, and letter case is not significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag to no. For such options, the last setting determines the flag value used. That is significant when options are also specified in initialization files (see the INITIALIZATION FILES manual section). The leading hyphen that distinguishes an option from a filename may be doubled, for compatibility with GNU and POSIX conventions. Thus, -author and --author are equivalent. To avoid confusion with options, if a filename begins with a hyphen, it must be disguised by a leading absolute or relative directory path, e.g., /tmp/-foo.bib or ./-foo.bib. -author Display an author credit on the standard error unit, stderr, and then terminate with a success return code. Sometimes an executable program is separated from its documentation and source code; this option provides a way to recover from that. -copyleft Display copyright information on the standard error unit, stderr, and then terminate with a success return code. -copyright Display copyright information on the standard error unit, stderr, and then terminate with a success return code. -error-log filename Redirect stderr to the indicated file, which then contains all of the error and warning messages. This option is provided for those systems that have difficulty redirecting stderr. -help or -? Display a help message on stderr, giving a usage description, similar to this section of the manual pages, and then terminate with a success return code. -ISBN-file filename Provide an explicit ISBN-range initialization file. It is processed after any system-wide and job-wide ISBN initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. The ISBN initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANISBN, but defaults to .bibclean.isbn on UNIX, and bibclean.isb elsewhere. For further details, see the ISBN INITIALIZATION FILES manual section. -init-file filename Provide an explicit value pattern initialization file. It is processed after any system-wide and job-wide initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANINI, but defaults to .bibcleanrc on UNIX, and to bibclean.ini elsewhere. For further details, see the INITIALIZATION FILES manual section. -keyword-file filename Provide an explicit keyword initialization file. It is processed after any system-wide and job-wide keyword initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. The keyword initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANKEY, but defaults to .bibclean.key on UNIX, and bibclean.key elsewhere. For further details, see the KEYWORD INITIALIZATION FILES manual section. -max-width nnn bibclean normally limits output line widths to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special-purpose applications may require different maximum line widths, so this option provides that capability. The number following the option name can be specified in decimal, octal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is interpreted to mean unlimited, so -max-width 0 can be used to ensure that each field/value pair appears on a single line. When -no-prettyprint requests bibclean to act as a lexical analyzer, the default line width is unlimited, unless overridden by this option. When bibclean is prettyprinting, line wrapping is done only at a space. Consequently, a long non-blank character sequence may result in the output exceeding the requested line width. When bibclean is lexing, line wrapping is done by inserting a backslash-newline pair when the specified maximum is reached, so no line length ever exceeds the maximum. -[no-]align-equals With the positive form, align the equals sign in key/value assignments at the same column, separated by a single space from the value string. Otherwise, the equals sign follows the key, separated by a single space. Default: no. -[no-]brace-protect Protect uppercase and mixedcase words at brace-level zero with braces to prevent downcasing by some BibTeX styles. Default: yes. -[no-]check-values With the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g., ``year = "192"'' instead of ``year = "1992"''), and issue warnings when unexpected patterns are found. That checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can disable it with the negative form of this option. Default: yes. -[no-]debug-match-failures With the positive form, print out a warning when a value pattern fails to match a value string. That is helpful in debugging new patterns, but because the output can be voluminous, you should use this option only with small test files, and initialization files that eliminate all patterns apart from the ones that you are testing. Default: no. -[no-]delete-empty-values With the positive form, remove all field/value pairs for which the value is an empty string. That is helpful in cleaning up bibliographies generated from text editor templates. Compare this option with -[no-]remove-OPT-prefixes described below. Default: no. -[no-]file-position With the positive form, give detailed file position information in warning and error messages. Default: no. -[no-]fix-accents With the positive form, normalize TeX accents in annotes, authors, booktitles, editors, notes, remarks, and titles. Default: no. -[no-]fix-braces With the positive form, normalize bracing in annotes, authors, booktitles, editors, notes, remarks, and titles, by removing unnecessary levels of braces. Default: no. -[no-]fix-degrees With the positive form, remove spaces in author/editor fields inside braces after letter-ending periods. That makes reductions from J. J. {Thomson, M. A., F. R. S.}, Frederick {Soddy, B. A. (Oxon.)}, and John A. {Cable, M. A., M. Ed., Dipl. Deutsch (Marburg), A. L. C. M.} to J. J. {Thomson, M.A., F.R.S.}, Frederick {Soddy, B.A. (Oxon.)}, and John A. {Cable, M.A., M.Ed., Dipl.Deutsch (Marburg), A.L.C.M.}, respectively. In journals in the humanities and history of science, as well as in some scientific journals until well into the 20th Century, academic, honorary, and professional titles and degrees are commonly attached to personal names. Even though modern publishing practice avoids such decorations, for accuracy, bibliography entries should preferably retain them. Journal typographical practice generally follows the reductions described here. -[no-]fix-font-changes With the positive form, supply an additional brace level around font changes in titles to protect against downcasing by some BibTeX styles. Font changes that already have more than one level of braces are not modified. For example, if a title contains the Latin phrase {\em Dictyostelium discoideum} or {\em {D}ictyostelium discoideum}, then downcasing incorrectly converts the phrase to lower-case letters. Most BibTeX users are surprised that bracing the initial letters does not prevent the downcase action. The correct coding is {{\em Dictyostelium discoideum}}. However, there are also legitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, bibclean normally does not supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this option to supply them. If you think that you need this option, it is strongly recommended that you apply bibclean to your bibliography file with and without -fix-font-changes, then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You must decide which of the two output files is the better choice, then repair the incorrect title bracing by hand. Because font changes in titles are uncommon, except for cases of the type that this option is designed to correct, it should do more good than harm. Default: no. -[no-]fix-initials With the positive form, insert a space after a period following author initials. Default: yes. -[no-]fix-math With the positive form, improve readability of math mode in titles by inserting spaces around operators, deleting other unnecessary space, and removing braces around single- character subscripts and superscripts. Default: no. -[no-]fix-names With the positive form, reorder author and editor name lists to remove commas at brace level zero, placing first names or initials before last names. Default: yes. -[no-]German-style With the positive form, interpret quote characters ["] inside braced value strings at brace level 1 according to the conventions of the TeX style file german.sty, which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, invisible hyphens, raised/lowered quotes, French guillemets, and discretionary hyphens. Recognized character combinations are braced to prevent BibTeX from interpreting the quote as a string delimiter. Quoted strings receive no special handling from this option, and because German nouns in titles must anyway be protected from the downcasing operation of most BibTeX bibliography styles, German value strings that use the overloaded quote character can always be entered in the form "{...}", without the need to specify this option at all. Default: no. -[no-]keep-linebreaks Normally, line breaks inside value strings are collapsed into a single space, so that long value strings can later be broken to provide lines of reasonable length. With the positive form, linebreaks are preserved in value strings. If -max-width is set to zero, this preserves the original line breaks. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-parbreaks With the positive form, preserve paragraph breaks (either formfeeds, or lines containing only spaces) in value strings. Normally, paragraph breaks are collapsed into a single space. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-preamble-spaces With the positive form, preserve all whitespace in @Preamble{...} entries. Default: no. -[no-]keep-spaces With the positive form, preserve all spaces in value strings. Normally, multiple spaces are collapsed into a single space. This option can be used together with -keep-linebreaks, -keep-parbreaks, and -max-width 0 to preserve the form of value strings while still providing syntax and value checking. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-string-spaces With the positive form, preserve all whitespace in @String{...} entries. Default: no. -[no-]parbreaks With the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field/value pairs. That may be useful to quickly trap runaway strings arising from mismatched delimiters. Default: yes. -[no-]prettyprint Normally, bibclean functions as a prettyprinter. However, with the negative form of this option, it acts as a lexical analyzer instead, producing a stream of lexical tokens. See the LEXICAL ANALYSIS manual section for further details. Default: yes. -[no-]print-ISBN-table With the positive form, print the ISBN-range table on stderr, then terminate with a success return code. That action is taken after all command-line options are processed, and before any input files are read (other than those that are values of command-line options). The format of the output ISBN-range table is acceptable for input as an ISBN initialization file (see the ISBN INITIALIZATION FILES manual section). Default: no. -[no-]print-keyword-table With the positive form, print the keyword initialization table on stderr, then terminate with a success return code. That action is taken after all command-line options are processed, and before any input files are read (other than those that are values of command-line options). The format of the output table is acceptable for input as a keyword initialization file (see the KEYWORD INITIALIZATION FILES manual section). Default: no. -[no-]print-patterns With the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used. When bibclean is compiled with native pattern-matching code (the default), those patterns are the ones that are used in checking value strings for valid syntax, and all of them are specified in initialization files, rather than hard-coded into the program. For further details, see the INITIALIZATION FILES manual section. Default: no. -[no-]quiet This option is the opposite of -[no-]warning; it exists for user convenience, and for compatibility with other programs that use -q for quiet operation, without warning messages. -[no-]read-init-files With the negative form, suppress loading of system-, user-, and file-specific initialization files. Initializations then come only from those files explicitly given by -init-file filename options. Default: yes. -[no-]remove-OPT-prefixes With the positive form, remove the ``OPT'' prefix from each field name where the corresponding value is not an empty string. The prefix ``OPT'' must be entirely in upper-case to be recognized. This option is for bibliographies generated with the help of the GNU Emacs BibTeX editing support, which generates templates with optional fields identified by the ``OPT'' prefix. Although the function M-x bibtex-remove-OPT normally bound to the keystrokes C-c C-o does the job, users often forget, with the result that BibTeX does not recognize the field name, and ignores the value string. Compare this option with -[no-]delete-empty-values described above. Default: no. -[no-]scribe With the positive form, accept input syntax conforming to the Scribe document system. The output is converted to conform to BibTeX syntax. See the SCRIBE BIBLIOGRAPHY FORMAT manual section for further details. Default: no. -[no-]trace-file-opening With the positive form, record in the error log file the names of all files that bibclean attempts to open. Use this option to identify where initialization files are located. Default: no. -[no-]warnings With the positive form, allow all warning messages. The negative form is not recommended because it may mask problems that should be repaired. Default: yes. -output-file filename Supply an alternate output file to replace stdout. If the filename cannot be opened for output, execution terminates immediately with a nonzero exit code. -version Display the program version number on stderr, and then terminate with a success return code. That includes an indication of who compiled the program, the host name on which it was compiled, the time of compilation, and the type of string-value matching code selected, when that information is available to the compiler. bibclean-3.07/test/okay/testopt4.out0000444000156700015670000000000007342755360016344 0ustar beebebeebebibclean-3.07/test/okay/topt360.out0000444000156700015670000000000112470143232015761 0ustar beebebeebe bibclean-3.07/test/okay/topt164.err0000444000156700015670000000000012470142673015753 0ustar beebebeebebibclean-3.07/test/okay/testltx1.blg0000444000156700015670000000036707342724304016315 0ustar beebebeebeWarning--empty year in Bennett Warning--empty year in Cejchan Warning--there's a number but no volume in Dubowsky:75 Warning--empty institution in Diver:88a Warning--empty booktitle in Diver:88 Warning--empty year in Diver (There were 6 warnings) bibclean-3.07/test/okay/topt128.out0000444000156700015670000000000112470143213015762 0ustar beebebeebe bibclean-3.07/test/okay/testbib8.out0000444000156700015670000002634612663433316016323 0ustar beebebeebe@Article{Thomson:1896:XPE, author = "J. J. {Thomson, M.A., F.R.S.} and Ernest {Rutherford, M.A.}", title = "{XL}. {On} the passage of electricity through gases exposed to {R{\"o}ntgen} rays", journal = j-PHILOS-MAG-5, volume = "42", number = "258", pages = "392--407", month = nov, year = "1896", CODEN = "PHMAA4", DOI = "http://dx.doi.org/10.1080/14786449608620932", ISSN = "1941-5982 (print), 1941-5990 (electronic)", ISSN-L = "1941-5982", bibdate = "Fri Dec 25 17:38:18 2015", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/r/rutherford-ernest.bib", URL = "http://www.tandfonline.com/doi/abs/10.1080/14786449608620932", acknowledgement = ack-nhfb, fjournal = "Philosophical Magazine (5)", journal-URL = "http://www.tandfonline.com/loi/tphm16", onlinedate = "8 May 2009", } @Article{Rutherford:1897:MDE, author = "Ernest {Rutherford, M.A.}", title = "A Magnetic Detector of Electrical Waves and Some of Its Applications", journal = j-PHILOS-TRANS-R-SOC-LOND-SER-A, volume = "189", pages = "1--24", month = jan, year = "1897", CODEN = "PTMSFB", DOI = "http://dx.doi.org/10.1098/rsta.1897.0001", ISSN = "1364-503X (print), 1471-2962 (electronic)", ISSN-L = "1364-503X", bibdate = "Fri Dec 25 07:58:14 2015", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/r/rutherford-ernest.bib", acknowledgement = ack-nhfb, fjournal = "Philosophical Transactions of the Royal Society A: Mathematical, Physical, and Engineering Sciences", journal-URL = "http://rsta.royalsocietypublishing.org/", } @Article{Rutherford:1897:LVR, author = "Ernest {Rutherford, M.A., B.Sc.}", title = "{LIV}. {The} velocity and rate of recombination of the ions of gases exposed to {R{\"o}ntgen} radiation", journal = j-PHILOS-MAG-5, volume = "44", number = "270", pages = "422--440", month = nov, year = "1897", CODEN = "PHMAA4", DOI = "http://dx.doi.org/10.1080/14786449708621085", ISSN = "1941-5982 (print), 1941-5990 (electronic)", ISSN-L = "1941-5982", bibdate = "Fri Dec 25 17:43:12 2015", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/r/rutherford-ernest.bib", URL = "http://www.tandfonline.com/doi/abs/10.1080/14786449708621085", acknowledgement = ack-nhfb, fjournal = "Philosophical Magazine (5)", journal-URL = "http://www.tandfonline.com/loi/tphm16", onlinedate = "8 May 2009", } @Article{Rutherford:1899:ITU, author = "{Professor} Ernest {Rutherford, M.A., B.Sc.} and {Professor} Robert B. {Owens, E.E.}", title = "{II}. Thorium and Uranium Radiation", journal = j-TRANS-R-SOC-CAN, volume = "5", number = "Section {III}", pages = "9--12", day = "26", month = may, year = "1899", CODEN = "TRSCAI", ISSN = "0035-9122", ISSN-L = "0035-9122", bibdate = "Fri Dec 25 17:49:24 2015", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/r/rutherford-ernest.bib", note = "This paper contains the discovery of radon, before Pierre and Marie Curie (1899), and Ernst Dorn (1900). See \cite{Brenner:2000:RCR}.", URL = "http://tinyurl.com/pw5lo8z; http://www.biodiversitylibrary.org/page/10793245", acknowledgement = ack-nhfb, ajournal = "Trans. R. Soc. Can.", book-URL = "http://hdl.handle.net/2027/inu.32000004343184", fjournal = "Transactions of the Royal Society of Canada, Second Series", journal-URL = "http://www.rsc-src.ca/en/publications-resources/transactions-and-proceedings", xxURL = "http://hdl.handle.net/2027/inu.32000004343184?urlappend=%3Bseq=921", } @Article{Rutherford:1901:NGR, author = "Ernest {Rutherford, M.A., D.Sc.} and {Miss} Harriet T. {Brooks, M.A.}", title = "The New Gas from Radium", journal = j-TRANS-R-SOC-CAN, volume = "7", number = "Section {III}", pages = "21--25", day = "23", month = may, year = "1901", CODEN = "TRSCAI", ISSN = "0035-9122", ISSN-L = "0035-9122", bibdate = "Fri Dec 25 19:10:58 2015", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/r/rutherford-ernest.bib", URL = "http://hdl.handle.net/2027/inu.32000004343010?urlappend=%3Bseq=819; http://www.biodiversitylibrary.org/page/10745147", acknowledgement = ack-nhfb, book-URL = "http://hdl.handle.net/2027/inu.32000004343010", fjournal = "Transactions of the Royal Society of Canada", journal-URL = "http://www.rsc-src.ca/en/publications-resources/transactions-and-proceedings", } @Article{Rutherford:1914:SPR, author = "{Sir} Ernest {Rutherford, R.R.S.} and E. N. da C. (Edward Neville da Costa) {Andrade, B.Sc., Ph.D.}", title = "The Spectrum of the Penetrating $ \gamma $ Rays from Radium {B} and Radium {C}", journal = j-PHILOS-MAG-6, volume = "28", number = "164", pages = "263--273", month = aug, year = "1914", CODEN = "PHMAA4", DOI = "http://dx.doi.org/10.1080/14786440808635207", ISSN = "1941-5982 (print), 1941-5990 (electronic)", ISSN-L = "1941-5982", bibdate = "Sat Dec 26 06:18:17 2015", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/r/rutherford-ernest.bib", URL = "http://www.tandfonline.com/doi/abs/10.1080/14786440808635207", acknowledgement = ack-nhfb, fjournal = "The London, Edinburgh, and Dublin Philosophical Magazine and Journal of Science, VI. Series", journal-URL = "http://www.tandfonline.com/loi/tphm17", onlinedate = "8 Apr 2009", } @Article{Rutherford:1931:HP, author = "{The Right Honourable Lord} {Rutherford, O.M., F.R.S.}", title = "Helium and its properties", journal = j-NATURE, volume = "128", number = "3221", pages = "137--138", day = "25", month = jul, year = "1931", CODEN = "NATUAS", DOI = "http://dx.doi.org/10.1038/128137a0", ISSN = "0028-0836 (print), 1476-4687 (electronic)", ISSN-L = "0028-0836", bibdate = "Wed Jan 06 18:34:54 2016", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/r/rutherford-ernest.bib", URL = "http://www.nature.com/nature/journal/v128/n3221/pdf/128137a0.pdf", acknowledgement = ack-nhfb, fjournal = "Nature", journal-URL = "http://www.nature.com/nature/archive/", } @Article{Rutherford:1931:OR, author = "{Lord} {Rutherford, O.M., F.R.S.} and C. D. {Ellis, F.R.S.}", title = "The Origin of the $ \gamma $-Rays", journal = j-PROC-R-SOC-LOND-SER-A-MATH-PHYS, volume = "132", number = "820", pages = "667--688", day = "1", month = aug, year = "1931", DOI = "http://dx.doi.org/10.1098/rspa.1931.0125", ISSN = "0950-1207 (print), 2053-9150 (electronic)", ISSN-L = "0950-1207", bibdate = "Sat Dec 26 06:18:17 2015", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/r/rutherford-ernest.bib", URL = "http://rspa.royalsocietypublishing.org/content/132/820/667", acknowledgement = ack-nhfb, fjournal = "Proceedings of the Royal Society of London. Series A, Containing Papers of a Mathematical and Physical Character", journal-URL = "http://rspa.royalsocietypublishing.org/", received = "4 July 1931", } @Article{Stephens:1973:CAE, author = "Michael D. {Stephens, M.A., M.Ed., Ph.D., F.R.G.S.} and Gordon W. {Roderick, B.Sc., M.A., Ph.D., M.Inst.P.}", title = "Changing attitudes to education in {England} \& {Wales} 1833--1902: The governmental reports, with particular reference to science \& technical studies", journal = j-ANN-SCIENCE, volume = "30", number = "2", pages = "149--164", year = "1973", CODEN = "ANNSA8", DOI = "http://dx.doi.org/10.1080/00033797300200081", ISSN = "0003-3790 (print), 1464-505X (electronic)", ISSN-L = "0003-3790", bibdate = "Sat Nov 10 18:51:52 MST 2012", bibsource = "http://www.math.utah.edu/pub/tex/bib/annscience.bib", acknowledgement = ack-nhfb, fjournal = "Annals of Science", journal-URL = "http://www.tandfonline.com/loi/tasc20", onlinedate = "22 Aug 2006", } @Article{Schove:1973:WSD, author = "D. J. {Schove, Ph.D., F.R.Met.S.} and David {Reynolds, B.A.}", title = "Weather in {Scotland}, 1659--1660: The diary of {Andrew Hay}", journal = j-ANN-SCIENCE, volume = "30", number = "2", pages = "165--177", year = "1973", CODEN = "ANNSA8", DOI = "http://dx.doi.org/10.1080/00033797300200091", ISSN = "0003-3790 (print), 1464-505X (electronic)", ISSN-L = "0003-3790", bibdate = "Sat Nov 10 18:51:52 MST 2012", bibsource = "http://www.math.utah.edu/pub/tex/bib/annscience.bib", acknowledgement = ack-nhfb, fjournal = "Annals of Science", journal-URL = "http://www.tandfonline.com/loi/tasc20", onlinedate = "22 Aug 2006", } @Article{Cable:1973:ESSa, author = "John A. {Cable, M.A., M.Ed., Dipl.Deutsch (Marburg), A.L.C.M.}", title = "Early {Scottish} science: The vocational provision", journal = j-ANN-SCIENCE, volume = "30", number = "2", pages = "179--199", year = "1973", CODEN = "ANNSA8", DOI = "http://dx.doi.org/10.1080/00033797300200101", ISSN = "0003-3790 (print), 1464-505X (electronic)", ISSN-L = "0003-3790", bibdate = "Sat Nov 10 18:51:52 MST 2012", bibsource = "http://www.math.utah.edu/pub/tex/bib/annscience.bib", acknowledgement = ack-nhfb, fjournal = "Annals of Science", journal-URL = "http://www.tandfonline.com/loi/tasc20", onlinedate = "22 Aug 2006", } @Article{Cable:1973:ESSb, author = "John A. {Cable, M.A., M.Ed., Dipl.~Deutsch (Marburg), A.L.C.M.}", title = "Early {Scottish} science: The vocational provision", journal = j-ANN-SCIENCE, volume = "30", number = "2", pages = "179--199", year = "1973", CODEN = "ANNSA8", DOI = "http://dx.doi.org/10.1080/00033797300200101", ISSN = "0003-3790 (print), 1464-505X (electronic)", ISSN-L = "0003-3790", bibdate = "Sat Nov 10 18:51:52 MST 2012", bibsource = "http://www.math.utah.edu/pub/tex/bib/annscience.bib", acknowledgement = ack-nhfb, fjournal = "Annals of Science", journal-URL = "http://www.tandfonline.com/loi/tasc20", onlinedate = "22 Aug 2006", } bibclean-3.07/test/okay/topt367.out0000444000156700015670000000000112470143235015773 0ustar beebebeebe bibclean-3.07/test/okay/topt163.err0000444000156700015670000005571612470143224015773 0ustar beebebeebefile=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 19dd"] file=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 19dd"] file=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 20dd"] file=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd aaa 20dd"] file=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 20dd"] file=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 19dd"] file=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 20dd"] file=[/usr/local/bin/.bibcleanrc] field=[chapter ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[chapter ] pattern=["D"] file=[/usr/local/bin/.bibcleanrc] field=[chapter ] pattern=["D-D"] file=[/usr/local/bin/.bibcleanrc] field=[month ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # " D"] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # " D--D"] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=["D " # aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=["D--D " # aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # "" # aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # "--" # aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # " -- " # aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # "/" # aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # " A " # aaa] file=[/usr/local/bin/.bibcleanrc] field=[number ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A AD"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A D(D)"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A D\.D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-A-D-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-A-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-A-D\.D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-AD-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-D D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-D-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["AD-D-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["AD-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["AD"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A\#D-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D \an\d D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D+D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D+D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D/D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["DA"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D\.D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["W-W W"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["W-W-WW-W"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["W"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["X"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D--D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD--aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D, D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD, aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D, D, D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD, aD, aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D, D, D, D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD, aD, aD, aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["R + D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["R + D, w D w"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D, w D w"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D--D, D--D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D--D, D--D, D--D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD--aD, aD--aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD--aD, aD--aD, aD--aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["??--??"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["????"] file=[/usr/local/bin/.bibcleanrc] field=[price ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[price ] pattern=["AD\.dd"] file=[/usr/local/bin/.bibcleanrc] field=[price ] pattern=["D\.dd"] message[Put country prefix on price %v] file=[/usr/local/bin/.bibcleanrc] field=[price ] pattern=["AD"] file=[/usr/local/bin/.bibcleanrc] field=[price ] pattern=["D"] message[Put country prefix on price %v] file=[/usr/local/bin/.bibcleanrc] field=[tag ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[tag ] pattern=[A:Add] file=[/usr/local/bin/.bibcleanrc] field=[tag ] pattern=[A:Adda] file=[/usr/local/bin/.bibcleanrc] field=[volume ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["D"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["DA"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["D/D"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["DA D"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["w-D"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["A"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["D.D"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["D \an\d D"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["W"] file=[/usr/local/bin/.bibcleanrc] field=[year ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dd, 19dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dd, 19dd, 19dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dda19dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["18dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["18dd, 18dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["18dd, 18dd, 18dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["18dda18dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dd (19dd)"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dd" # "--"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["20dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["18dd--d"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dd--d"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["20dd--d"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["20dd--d"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 20dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd aaa 20dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 20dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 20dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[chapter ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[chapter ] pattern=["D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[chapter ] pattern=["D-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # " D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # " D--D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=["D " # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=["D--D " # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # "" # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # "--" # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # " -- " # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # "/" # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # " A " # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A AD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A D(D)"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A D\.D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-A-D-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-A-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-A-D\.D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-AD-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-D D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-D-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["AD-D-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["AD-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["AD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A\#D-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D \an\d D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D+D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D+D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D/D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["DA"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D\.D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["W-W W"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["W-W-WW-W"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["W"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["X"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D--D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD--aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D, D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD, aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D, D, D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD, aD, aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D, D, D, D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD, aD, aD, aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["R + D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["R + D, w D w"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D, w D w"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D--D, D--D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D--D, D--D, D--D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD--aD, aD--aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD--aD, aD--aD, aD--aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["??--??"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["????"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[price ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[price ] pattern=["AD\.dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[price ] pattern=["D\.dd"] message[Put country prefix on price %v] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[price ] pattern=["AD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[price ] pattern=["D"] message[Put country prefix on price %v] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[tag ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[tag ] pattern=[A:Add] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[tag ] pattern=[A:Adda] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["DA"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["D/D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["DA D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["w-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["A"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["D.D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["D \an\d D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["W"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dd, 19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dd, 19dd, 19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dda19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["18dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["18dd, 18dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["18dd, 18dd, 18dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["18dda18dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dd (19dd)"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dd" # "--"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["20dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["18dd--d"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dd--d"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["20dd--d"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["20dd--d"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 19dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 19dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 20dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd aaa 20dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 20dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 19dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 20dd"] file=[../bibclean.ini] field=[chapter ] existing patterns discarded file=[../bibclean.ini] field=[chapter ] pattern=["D"] file=[../bibclean.ini] field=[chapter ] pattern=["D-D"] file=[../bibclean.ini] field=[month ] existing patterns discarded file=[../bibclean.ini] field=[month ] pattern=[aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # " D"] file=[../bibclean.ini] field=[month ] pattern=[aaa # " D--D"] file=[../bibclean.ini] field=[month ] pattern=["D " # aaa] file=[../bibclean.ini] field=[month ] pattern=["D--D " # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # "" # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # "--" # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # " -- " # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # "/" # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # " A " # aaa] file=[../bibclean.ini] field=[number ] existing patterns discarded file=[../bibclean.ini] field=[number ] pattern=["D"] file=[../bibclean.ini] field=[number ] pattern=["A AD"] file=[../bibclean.ini] field=[number ] pattern=["A D(D)"] file=[../bibclean.ini] field=[number ] pattern=["A D"] file=[../bibclean.ini] field=[number ] pattern=["A D\.D"] file=[../bibclean.ini] field=[number ] pattern=["A-A-D-D"] file=[../bibclean.ini] field=[number ] pattern=["A-A-D"] file=[../bibclean.ini] field=[number ] pattern=["A-A-D\.D"] file=[../bibclean.ini] field=[number ] pattern=["A-AD-D"] file=[../bibclean.ini] field=[number ] pattern=["A-D D"] file=[../bibclean.ini] field=[number ] pattern=["A-D-D"] file=[../bibclean.ini] field=[number ] pattern=["A-D"] file=[../bibclean.ini] field=[number ] pattern=["AD-D-D"] file=[../bibclean.ini] field=[number ] pattern=["AD-D"] file=[../bibclean.ini] field=[number ] pattern=["AD"] file=[../bibclean.ini] field=[number ] pattern=["A\#D-D"] file=[../bibclean.ini] field=[number ] pattern=["D \an\d D"] file=[../bibclean.ini] field=[number ] pattern=["D+D"] file=[../bibclean.ini] field=[number ] pattern=["D+D"] file=[../bibclean.ini] field=[number ] pattern=["D-D"] file=[../bibclean.ini] field=[number ] pattern=["D/D"] file=[../bibclean.ini] field=[number ] pattern=["D D"] file=[../bibclean.ini] field=[number ] pattern=["DA"] file=[../bibclean.ini] field=[number ] pattern=["D\.D"] file=[../bibclean.ini] field=[number ] pattern=["W-W W"] file=[../bibclean.ini] field=[number ] pattern=["W-W-WW-W"] file=[../bibclean.ini] field=[number ] pattern=["W"] file=[../bibclean.ini] field=[number ] pattern=["X"] file=[../bibclean.ini] field=[pages ] existing patterns discarded file=[../bibclean.ini] field=[pages ] pattern=["D"] file=[../bibclean.ini] field=[pages ] pattern=["aD"] file=[../bibclean.ini] field=[pages ] pattern=["D--D"] file=[../bibclean.ini] field=[pages ] pattern=["aD--aD"] file=[../bibclean.ini] field=[pages ] pattern=["D, D"] file=[../bibclean.ini] field=[pages ] pattern=["aD, aD"] file=[../bibclean.ini] field=[pages ] pattern=["D, D, D"] file=[../bibclean.ini] field=[pages ] pattern=["aD, aD, aD"] file=[../bibclean.ini] field=[pages ] pattern=["D, D, D, D"] file=[../bibclean.ini] field=[pages ] pattern=["aD, aD, aD, aD"] file=[../bibclean.ini] field=[pages ] pattern=["R + D"] file=[../bibclean.ini] field=[pages ] pattern=["R + D, w D w"] file=[../bibclean.ini] field=[pages ] pattern=["D, w D w"] file=[../bibclean.ini] field=[pages ] pattern=["D--D, D--D"] file=[../bibclean.ini] field=[pages ] pattern=["D--D, D--D, D--D"] file=[../bibclean.ini] field=[pages ] pattern=["aD--aD, aD--aD"] file=[../bibclean.ini] field=[pages ] pattern=["aD--aD, aD--aD, aD--aD"] file=[../bibclean.ini] field=[pages ] pattern=["??--??"] file=[../bibclean.ini] field=[pages ] pattern=["????"] file=[../bibclean.ini] field=[price ] existing patterns discarded file=[../bibclean.ini] field=[price ] pattern=["AD\.dd"] file=[../bibclean.ini] field=[price ] pattern=["D\.dd"] message[Put country prefix on price %v] file=[../bibclean.ini] field=[price ] pattern=["AD"] file=[../bibclean.ini] field=[price ] pattern=["D"] message[Put country prefix on price %v] file=[../bibclean.ini] field=[tag ] existing patterns discarded file=[../bibclean.ini] field=[tag ] pattern=[A:Add] file=[../bibclean.ini] field=[tag ] pattern=[A:Adda] file=[../bibclean.ini] field=[volume ] existing patterns discarded file=[../bibclean.ini] field=[volume ] pattern=["D"] file=[../bibclean.ini] field=[volume ] pattern=["DA"] file=[../bibclean.ini] field=[volume ] pattern=["D/D"] file=[../bibclean.ini] field=[volume ] pattern=["DA D"] file=[../bibclean.ini] field=[volume ] pattern=["w-D"] file=[../bibclean.ini] field=[volume ] pattern=["A"] file=[../bibclean.ini] field=[volume ] pattern=["D.D"] file=[../bibclean.ini] field=[volume ] pattern=["D \an\d D"] file=[../bibclean.ini] field=[volume ] pattern=["W"] file=[../bibclean.ini] field=[year ] existing patterns discarded file=[../bibclean.ini] field=[year ] pattern=["19dd"] file=[../bibclean.ini] field=[year ] pattern=["19dd, 19dd"] file=[../bibclean.ini] field=[year ] pattern=["19dd, 19dd, 19dd"] file=[../bibclean.ini] field=[year ] pattern=["19dda19dd"] file=[../bibclean.ini] field=[year ] pattern=["18dd"] file=[../bibclean.ini] field=[year ] pattern=["18dd, 18dd"] file=[../bibclean.ini] field=[year ] pattern=["18dd, 18dd, 18dd"] file=[../bibclean.ini] field=[year ] pattern=["18dda18dd"] file=[../bibclean.ini] field=[year ] pattern=["19dd (19dd)"] file=[../bibclean.ini] field=[year ] pattern=["19dd" # "--"] file=[../bibclean.ini] field=[year ] pattern=["20dd"] file=[../bibclean.ini] field=[year ] pattern=["18dd--d"] file=[../bibclean.ini] field=[year ] pattern=["19dd--d"] file=[../bibclean.ini] field=[year ] pattern=["20dd--d"] file=[../bibclean.ini] field=[year ] pattern=["20dd--d"] bibclean-3.07/test/okay/topt350.err0000444000156700015670000000000012470142676015753 0ustar beebebeebebibclean-3.07/test/okay/topt154.out0000444000156700015670000000000112470143222015761 0ustar beebebeebe bibclean-3.07/test/okay/testoptt.out0000444000156700015670000001261614023206351016445 0ustar beebebeebe@Article{a1, author = "A. Bee", title = "$r^3$", title = "{$R^3$}", title = "{{\bf R}}", title = "{{\bf Word}}", title = "Erd{\H{o}}s", title = "{\TeX}", title = "Erd{{\H O}}s", title = "{$\u{R}$}", title = "$\u{R}$", title = "$\mathbb{R}^3$", title = "{$\mathbb{R}$}$^3$", booktitle = "Embedding Plane $3$-Trees in $\mathbb{R}^2$ and {$\mathbb{R}$}$^3$ and alternate title: Embedding Plane $3$-Trees in {${\cal R}^2$} and {${\cal R}$}$^3$ and more alternate title: Embedding Plane $3$-Trees in {{\bf R}}$^2$ and {{\bf R}}$^3$", year = "2012", } @Article{a2, author = "A. Bee", year = "2012", title = "{{\bf R}}$^3$", } @Article{a3, title = "Efficient Mining of Frequent Items Coupled with Weight and \slash or Support over Progressive Databases", title = "{$R^3$}", } @Article{a4, author = "Kenny Q. Zhu and Kathleen Fisher and David Walker", title = "{LearnPADS$^{++}$}: Incremental Inference of Ad Hoc Data Formats", } @Article{a5, title = "{LearnPADS$^{++}$}: Incremental Inference of Ad Hoc Data Formats", title = "Is Light Blue ({\em azzurro}) Color Name Universal in the {Italian} Language?", } @Article{a6, title = "Optimal Anti-{Bayesian} Pattern", title = "Optimal Anti-Bayesian Pattern", title = "Optimal {``Anti-{establishment}''} Pattern", title = "Optimal {``Anti-{Bayesian}''} Pattern", title = "Optimal {``Anti-Bayesian''} Pattern", } @Misc{m01, title = "Postscript${}^{TM}$ printer", } @Misc{m02, title = "Postscript$^{TM}$ printer", } @Misc{m03, title = "On $\wedge$-operations and $\vee$-operations", } @Misc{m04, title = "Erd{\H{o}}s equation", } @Misc{m05, title = "Erd{{\H{O}}}s equation", } @Misc{m06, title = "Erd{\H{o}}s", } @Misc{m07, title = "Ath\'enes", } @Misc{m08, title = "Ath{\'e}nes", } @Misc{m09, title = "Ath{\'{e}}nes", } @Misc{m10, title = "{$3$D} graphics", } @Misc{m11, title = "Let $x$ and $y$ be positive.", } @Article{x1a, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {Erd}{\H{O}}s equation", } @Article{x1b, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {Erd}{{\H{O}}}s equation", } @Article{x1c, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {Erd}{{\H{O}}}s equation", } @Article{x2a, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {\TeX}", } @Article{x2b, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {\TeX}", } @Article{x2c, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {{\TeX}}", } @Article{x3a, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {\TeX} book", } @Article{x3b, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {\TeX book}", } @Article{x3c, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {{\TeX book}}", } @Article{x4a, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {\TeX} Book", } @Article{x4b, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {{\TeX Book}}", } @Article{x4c, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {{\TeX Book}}", } @Article{x5a, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {\H{o}} is a Long Accent", } @Article{x5b, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {{\H{o} is a Long Accent}}", } @Article{x5c, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {{\H{o} is a Long Accent}}", } @Article{x6a, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {\H{O}} is a Long Accent", } @Article{x6b, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {{\H{O} is a Long Accent}}", } @Article{x6c, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {{\H{O} is a Long Accent}}", } @Article{x7a, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- \em Bose--Einstein", } @Article{x7b, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {{\em Bose--Einstein}}", } @Article{x7c, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {{\em Bose--Einstein}}", } bibclean-3.07/test/okay/testoptm.err0000444000156700015670000000127612071124047016421 0ustar beebebeebe%% testoptm.bib:11:Invalid checksum for ISBN_13 978038709823X in ``ISBN-13 = "978-0-387-09823-X (bad check digit)"''. %% testoptm.bib:12:ISBN-13 must begin with either 978 or 979: ``"9770387098234 (bad prefix)"''. %% testoptm.bib:12:ISBN-13 must begin with either 978 or 979: ``"9-770-387098234-x (bad prefix)"''. %% testoptm.bib:12:Invalid checksum for ISBN_13 9770387098234 in ``ISBN-13 = "9-770-387098234-x (bad prefix)"''. %% testoptm.bib:12:ISBN-13 must begin with either 978 or 979: ``"9-770-387098234-x (bad prefix)"''. %% testoptm.bib:12:Invalid checksum for ISBN_13 9770387098234 in ``ISBN-13 = "9-770-387098234-x (bad prefix)"''. %% testoptm.bib:29:Unexpected value in ``pages = "various"''. bibclean-3.07/test/okay/testopt3.out0000444000156700015670000000000007342755360016343 0ustar beebebeebebibclean-3.07/test/okay/testopt1.err0000444000156700015670000000000007342761025016315 0ustar beebebeebebibclean-3.07/test/okay/testopto.out0000444000156700015670000001407014023206351016434 0ustar beebebeebe@Article{x, title = "The equation $ x = f (y + z / d) $", title = "The displayed equation $$ x = f (y + z / d) $$", title = "Literal dollar sign, \$, and more: \$\$\$\$", title = "Unbalanced dollar sign: $ 100 a n d u p", title = "The relation $ a : b : c $", title = "The equation {$ x := F [y + z / d] $}", title = "The displayed equation {$$ x := F [y + z / d] $$}", title = "Subs and sups: $ x_n = y^k + z^k $", title = "Display subs and sups: $$ x_n = y^k + z^k $$", title = "Tricky math: {$ \{ A, B, C \} $}", title = "Display tricky math: {$$ \{ A, B, C \} $$}", title = "Math ties: $ a~ = ~b~ + ~c $", title = "Tight math: $ r = f(a, b, c; x, y, z) $", title = "Tight tricky math: {$ \{ A, B, C \} $}", } @Article{x, title = "Display lc subs and sups: $$ x_n = y^k + z^k $$", title = "Display uc subs and sups: {$$ x_N = y^K + z^K $$}", title = "Display uc subs and sups: {$$ x_N = y^K + z^K $$}", title = "Display uc subs and sups: $$ x_{\rm left} = y^{\rm middle} + z^{\rm right} $$", title = "Display uc subs and sups: {$$ x_{\Gamma } = y^{\Delta } + z^{\Theta } $$}", title = "Display uc subs and sups: {$$ x_\Gamma = y^\Delta + z^\Theta $$}", title = "The matrix {$H$} is called the {Hamiltonian}.", title = "Modeling of $ \sup {13} ${C} {NMR} and $ \sup {11} ${C}$ \sup {2+} $ ions", title = "Modeling of $^{13}${C} {NMR} and $^{11}${C}$^{2+}$ ions", title = "Modeling of $ \sup {13} ${C} {NMR} and $ \sup {11} ${C}$ \sup {+ + +} $ ions", title = "Modeling of $^{13}${C} {NMR} and $^{11}${C}$^{+ + +}$ ions", title = "The crystal Cr$_2${O}$_3$", title = "The crystal {Cr_2O_3}", title = "The crystal {Cr$_2$O$_3$}", title = "The crystal {Cr}$_2${O}$_3$", title = "Two lowercase equations: $ a = b $ and $ c = d $", title = "Two uppercase equations: {$ A = B $} and {$ C = D $}", } @Article{Sadkane:2012:ASM, author = "Miloud Sadkane and Ahmed Touhami", title = "Algorithm 918: {{\tt specdicho}}: a {MATLAB} Program for the Spectral Dichotomy of Regular Matrix Pencils", journal = j-TOMS, volume = "38", number = "3", pages = "21:1--21:13", month = apr, year = "2012", CODEN = "ACMSCU", DOI = "http://dx.doi.org/10.1145/2168773.2168780", ISSN = "0098-3500 (print), 1557-7295 (electronic)", ISSN-L = "0098-3500", bibdate = "Thu May 3 16:27:26 MDT 2012", bibsource = "http://www.acm.org/pubs/contents/journals/toms/; http://www.math.utah.edu/pub/tex/bib/toms.bib", abstract = "Given a regular matrix pencil $ \lambda B - A $ and a positively oriented contour $ \gamma $ in the complex plane, the spectral dichotomy methods applied to $ \lambda B - A $ and $ \gamma $ consist in determining whether $ \lambda B - A $ possesses eigenvalues on or in a neighborhood of $ \gamma $. When no such eigenvalues exist, these methods compute iteratively the spectral projector $P$ onto the right deflating subspace of $ \lambda B - A$ associated with the eigenvalues inside/outside $ \gamma $. The computation of the projector is accompanied by the spectral norm $ ||H||$ of a Hermitian positive definite matrix $H$ called the dichotomy condition number, which indicates the numerical quality of the spectral projector $P$. The smaller $ ||H||$ is, the better this quality. This article presents a MATLAB program ({\tt specdicho}) implementing the main types of spectral dichotomy where $ \gamma $ is a circle, an ellipse, the imaginary axis or a parabola.", acknowledgement = ack-nhfb, articleno = "21", fjournal = "ACM Transactions on Mathematical Software (TOMS)", } @Article{Ragazzi:2002:IMM, author = "Massimo Ragazzi and Paola Carbone and Dino R. Ferro", title = "Ab initio molecular modeling of {$^{13}$C NMR} chemical shifts of polymers. 1. {Ethylene--norbornene} copolymers", journal = j-IJQC, volume = "88", number = "5", pages = "663--669", day = "20", month = jun, year = "2002", CODEN = "IJQCB2", DOI = "http://dx.doi.org/10.1002/qua.10055", ISSN = "0020-7608 (print), 1097-461X (electronic)", ISSN-L = "0020-7608", bibdate = "Thu Sep 29 18:45:09 MDT 2011", bibsource = "http://www.math.utah.edu/pub/tex/bib/ijqc2000.bib", acknowledgement = ack-nhfb, ajournal = "Int. J. Quantum Chem.", fjournal = "International Journal of Quantum Chemistry", onlinedate = "17 Apr 2002", } @Article{Nikiforov:2002:CPS, author = "I. S. Nikiforov and D. A. Filippov", title = "Calculation of a power spectrum and definition of wave functions of an ion {Cr$^{3+}$} in antiferromagnetic crystal {Cr$_2$O$_3$} in the model of a crystalline field", journal = j-IJQC, volume = "88", number = "5", pages = "676--680", day = "20", month = jun, year = "2002", CODEN = "IJQCB2", DOI = "http://dx.doi.org/10.1002/qua.10219", ISSN = "0020-7608 (print), 1097-461X (electronic)", ISSN-L = "0020-7608", bibdate = "Thu Sep 29 18:45:09 MDT 2011", bibsource = "http://www.math.utah.edu/pub/tex/bib/ijqc2000.bib", acknowledgement = ack-nhfb, ajournal = "Int. J. Quantum Chem.", fjournal = "International Journal of Quantum Chemistry", onlinedate = "14 May 2002", } bibclean-3.07/test/okay/topt319.err0000444000156700015670000000000012470142675015757 0ustar beebebeebebibclean-3.07/test/okay/testoptv.err0000444000156700015670000000000012112252635016413 0ustar beebebeebebibclean-3.07/test/okay/topt352.out0000444000156700015670000000000112470143231015761 0ustar beebebeebe bibclean-3.07/test/okay/topt156.err0000444000156700015670000000000012470142673015754 0ustar beebebeebebibclean-3.07/test/okay/topt365.err0000444000156700015670000000000012470142676015761 0ustar beebebeebebibclean-3.07/test/okay/topt161.out0000444000156700015670000000000012470142673015767 0ustar beebebeebebibclean-3.07/test/okay/topt362.err0000444000156700015670000001122513565266700015772 0ustar beebebeebe%%% keyword mappings ansi-standard-number ANSI-standard-number book-doi book-DOI book-url book-URL coden CODEN doi DOI ieee-standard-number IEEE-standard-number isbn ISBN journal-url journal-URL isbn-13 ISBN-13 iso-standard-number ISO-standard-number issn ISSN issn-l ISSN-L lccn LCCN mrclass MRclass mrnumber MRnumber mrreviewer MRreviewer uri URI url URL urn URN xxansi-standard-number xxANSI-standard-number xxcoden xxCODEN xxdoi xxDOI xxieee-standard-number xxIEEE-standard-number xxisbn xxISBN xxiso-standard-number xxISO-standard-number xxissn xxISSN xxmrclass xxMRclass xxmrnumber xxMRnumber xxmrreviewer xxMRreviewer xxuri xxURI xxurl xxURL xxurn xxURN zmclass ZMclass zmnumber ZMnumber zmreviewer ZMreviewer optcoden OPTCODEN optissn OPTISSN optisbn OPTISBN optlccn OPTLCCN urlpublisher URLpublisher urlseries URLseries warning WARNING xmldata XMLdata ecmanumber ECMAnumber crclass CRclass crnumber CRnumber xxlccn xxLCCN ean EAN dewey DEWEY schilpp-number Schilpp-number whittaker-number Whittaker-number pacs PACS calaprice-number Calaprice-number mrtitle MRtitle mryear MRyear asnumber ASnumber pmnumber PMnumber hdnumber HDnumber adsurl URL adsnote OPTadsnote lsnumber LSnumber ksnumber KSnumber aclp-number ACLP-number bc-number BC-number cp-number CP-number rep-number REP-number series-url series-URL mrauthor MRauthor zbl ZMnumber msc2010 MRnumber abstract-url abstract-URL ismn ISMN orcid-numbers ORCID-numbers scopus-author-id SCOPUS-author-ID bibclean-3.07/test/okay/topt166.out0000444000156700015670000000000112470143224015766 0ustar beebebeebe bibclean-3.07/test/okay/topt329.out0000444000156700015670000000000112470143226015771 0ustar beebebeebe bibclean-3.07/test/okay/testopt6.err0000444000156700015670000022174014023240744016334 0ustar beebebeebe%%% ISBN ranges and country/language groups 0-00 0-19 Region name: Australia Country code(s): AU Language group: 0 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 89999 ; 900000 - 949999 ; 9500000 - 9999999 0-200 0-699 0-2280 0-2289 0-229 0-368 0-3690 0-3699 0-370 0-638 0-6390 0-6397 0-6398000 0-6399999 0-640 0-644 0-6450000 0-6459999 0-646 0-647 0-6480000 0-6489999 0-649 0-654 0-6550 0-6559 0-656 0-699 0-7000 0-8499 0-85000 0-89999 0-900000 0-949999 0-9500000 0-9999999 1-000 1-009 Region name: English language Country code(s): ?? Language group: 1 Publisher(s): 000 - 009; 01 - 02; 030 - 034; 0350 - 0399; 04 - 06; 0700 - 0999; 100 - 397; 3980 - 5499; 55000 - 64999; 6500 - 6799; 68000 - 68599; 6860 - 7139; 714 - 716; 7170 - 7319; 7320000 - 7399999; 74000 - 77499; 7750000 - 7753999; 77540 - 77639; 7764000 - 7764999; 77650 - 77699; 7770000 - 7782999; 77830 - 78999; 7900 - 7999; 80000 - 80049; 80050 - 80499; 80500 - 83799; 8380000 - 8384999; 83850 - 86719; 8672 - 8675; 86760 - 86979; 869800 - 915999; 9160000 - 9165059; 916506 - 972999; 9730 - 9877; 987800 - 991149; 9911500 - 9911999; 991200 - 998989; 9989900 - 9999999 1-01 1-02 1-030 1-034 1-0350 1-0399 1-04 1-06 1-0700 1-0999 1-100 1-399 1-3980 1-5499 1-55000 1-86979 1-6500 1-6799 1-68000 1-68599 1-6860 1-7139 1-714 1-716 1-7170 1-7319 1-7320000 1-7399999 1-74000 1-76999 Region name: Australia Country code(s): AU Language group: 1 Publisher(s): 74000 - 76999 ; 86250 - 86799 ; 875100 - 877099 ; 920680 - 926429 1-7750000 1-7753999 1-77540 1-77639 1-7764000 1-7764999 1-77650 1-77699 1-7770000 1-7782999 1-77830 1-78999 1-7900 1-7999 1-80000 1-80049 1-80050 1-80499 1-80500 1-83799 1-8380000 1-8384999 1-83850 1-86719 1-8672 1-8675 1-86760 1-86979 1-869800 1-998999 [24-Sep-2015] Additions from https://web.archive.org/web/20150801000000*/http://www.isbn-international.org/en/identifiers/List-of-Ranges.pdf 1-9160000 1-9165059 1-916506 1-972999 1-9730 1-9877 1-987800 1-991149 1-9911500 1-9911999 1-991200 1-998989 1-9989900 1-9999999 2-00 2-19 Region name: French language Country code(s): ?? Language group: 2 Publisher(s): 00 - 19; 200 - 349; 35000 - 39999; 400 - 699; 7000 - 8399; 84000 - 89999; 900000 - 949999; 9500000 - 9999999 2-200 2-349 2-35000 2-39999 2-400 2-699 2-490000 2-494999 2-495 2-499 Region name: Luxembourg Country code(s): LU Language group: 2 Publisher(s): 495 - 499 ; 87950 - 87999 ; 919769 - 919999 ; 9599769 - 9599999 2-4960 2-4966 2-49670 2-49699 2-497 2-699 2-7000 2-8399 2-84000 2-89999 2-900000 2-949999 2-91980 2-91980 2-919810 2-919942 2-9199430 2-9199689 2-919969 2-949999 2-9500000 2-9999999 3-00 3-02 Region name: German language Country code(s): ?? Language group: 3 Publisher(s): 00 - 02; 030 - 033; 0340 - 0369; 03700 - 03999; 04 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 949999; 9500000 - 9539999; 95400 - 96999; 9700000 - 9899999; 99000 - 99499; 99500 - 99999 3-030 3-033 3-0340 3-0369 3-03700 3-03999 3-04 3-19 3-200 3-699 3-7000 3-8499 3-85000 3-89999 3-900000 3-949999 3-9500000 3-9539999 3-95400 3-96999 3-9700000 3-9899999 3-98500 3-99999 4-00 4-19 Region name: Japan Country code(s): JP Language group: 4 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 949999; 9500000 - 9999999 4-200 4-699 4-7000 4-8499 4-85000 4-89999 4-900000 4-949999 4-9500000 4-9999999 5-00000 5-00499 Region name: former U.S.S.R Country code(s): ?? Language group: 5 Publisher(s): 00000 - 00499; 0050 - 0099; 01 - 19; 200 - 420; 4210 - 4299; 430 - 430; 4310 - 4399; 440 - 440; 4410 - 4499; 450 - 699; 7000 - 8499; 85000 - 89999; 900000 - 909999; 91000 - 91999; 9200 - 9299; 93000 - 94999; 9500000 - 9500999; 9501 - 9799; 98000 - 98999; 9900000 - 9909999; 9910 - 9999 5-0050 5-0099 5-01 5-19 5-200 5-420 5-4210 5-4299 5-430 5-430 5-4310 5-4399 5-440 5-440 5-4410 5-4499 5-450 5-699 5-6040000 5-6049999 5-605 5-699 5-7000 5-8499 5-85000 5-89999 5-900000 5-909999 5-91000 5-91999 5-9200 5-9299 5-93000 5-94999 5-9500000 5-9500999 5-9501 5-9799 5-98000 5-98999 5-9900000 5-9909999 5-9910 5-9999 600-00 600-09 Region name: Iran Country code(s): IR Language group: 600 Publisher(s): 00 - 09; 100 - 499; 5000 - 8999; 90000 - 99999 600-100 600-499 600-5000 600-8999 600-90000 600-99999 600-9868 600-9929 600-993 600-995 600-99600 600-99999 601-00 601-19 Region name: Kazakhstan Country code(s): KZ Language group: 601 Publisher(s): 00 - 19; 200 - 699; 7000 - 7999; 80000 - 84999; 85 - 99 601-200 601-699 601-7000 601-7999 601-80000 601-84999 601-85 601-99 602-00 602-07 Region name: Indonesia Country code(s): ID Language group: 602 Publisher(s): 00 - 07; 0800 - 0899; 0900 - 1099; 1100 - 1199; 1200 - 1399; 14000 - 14999; 1500 - 1699; 17000 - 17999; 18000 - 18999; 19000 - 19999; 200 - 674; 6750 - 6999; 70000 - 74999; 7500 - 7999; 8000 - 9499; 95000 - 99999 602-0700 602-1399 602-14000 602-14999 602-1500 602-1699 602-17000 602-17999 602-200 602-674 602-50000 602-53999 602-5400 602-5999 602-60000 602-61999 602-6200 602-6999 602-70000 602-74999 602-7500 602-7999 602-95000 602-99999 603-00 603-04 Region name: Saudi Arabia Country code(s): SA Language group: 603 Publisher(s): 00 - 04; 05 - 49; 500 - 799; 8000 - 8999; 90000 - 99999 603-05 603-49 603-500 603-799 603-8000 603-8999 603-90000 603-99999 604-0 604-4 Region name: Vietnam Country code(s): VN Language group: 604 Publisher(s): 0 - 4; 50 - 89; 900 - 979; 9800 - 9999 604-50 604-89 604-900 604-979 604-9800 604-9999 605-00 605-02 Region name: Turkey Country code(s): TR Language group: 605 Publisher(s): 00 - 02; 030 - 039; 04 - 05; 06000 - 06999; 07 - 09; 100 - 199; 2000 - 2399; 240 - 399; 4000 - 5999; 60000 - 74999; 7500 - 7999; 80000 - 89999; 9000 - 9999 605-030 605-039 605-04 605-09 605-06000 605-06999 605-07 605-09 605-100 605-399 605-2000 605-2399 605-240 605-399 605-4000 605-5999 605-60000 605-89999 605-7500 605-7999 605-80000 605-89999 605-9000 605-9999 606-000 606-089 Region name: Romania Country code(s): RO Language group: 606 Publisher(s): 000 - 089; 09 - 49; 500 - 799; 8000 - 9099; 910 - 919; 92000 - 96499; 9650 - 9749; 975 - 999 606-09 606-49 606-500 606-799 606-8000 606-9199 606-910 606-919 606-92000 606-99999 606-9650 606-9749 606-975 606-999 607-00 607-39 Region name: Mexico Country code(s): MX Language group: 607 Publisher(s): 00 - 39; 400 - 749; 7500 - 9499; 95000 - 99999 607-400 607-749 607-7500 607-9499 607-95000 607-99999 608-0 608-0 Region name: Macedonia Country code(s): MK Language group: 608 Publisher(s): 0 - 0; 10 - 19; 200 - 449; 4500 - 6499; 65000 - 69999; 7 - 9 608-10 608-19 608-200 608-449 608-4500 608-6499 608-65000 608-69999 608-7 608-9 609-00 609-39 Region name: Lithuania Country code(s): LT Language group: 609 Publisher(s): 00 - 39; 400 - 799; 8000 - 9499; 95000 - 99999 609-400 609-799 609-8000 609-9499 609-95000 609-99999 612-00 612-29 Region name: Peru Country code(s): PE Language group: 612 Publisher(s): 00 - 29; 300 - 399; 4000 - 4499; 45000 - 49999; 50 - 99 612-300 612-399 612-4000 612-4499 612-45000 612-49999 612-5000 612-5149 613-0 613-9 Region name: Mauritius Country code(s): MU Language group: 613 Publisher(s): 0 - 9 614-00 614-39 Region name: Lebanon Country code(s): LB Language group: 614 Publisher(s): 00 - 39; 400 - 799; 8000 - 9499; 95000 - 99999 614-400 614-799 614-8000 614-9499 614-95000 614-99999 615-00 615-09 Region name: Hungary Country code(s): HU Language group: 615 Publisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 89999 615-100 615-499 615-5000 615-7999 615-80000 615-89999 616-00 616-19 Region name: Thailand Country code(s): TH Language group: 616 Publisher(s): 00 - 19; 200 - 699; 7000 - 8999; 90000 - 99999 616-200 616-699 616-7000 616-8999 616-90000 616-99999 617-00 617-49 Region name: Ukraine Country code(s): UA Language group: 617 Publisher(s): 00 - 49; 500 - 699; 7000 - 8999; 90000 - 99999 617-500 617-699 617-7000 617-8999 617-90000 617-99999 618-00 618-19 Region name: Greece Country code(s): GR Language group: 618 Publisher(s): 00 - 19; 200 - 499; 5000 - 7999; 80000 - 99999 618-200 618-499 618-5000 618-7999 618-80000 618-99999 619-00 619-14 Region name: Bulgaria Country code(s): BG Language group: 619 Publisher(s): 00 - 14; 150 - 699; 7000 - 8999; 90000 - 99999 619-150 619-699 619-7000 619-8999 619-90000 619-99999 620-0 620-9 Region name: Mauritius Country code(s): MU Language group: 620 Publisher(s): 0 - 9 621-00 621-29 Region name: Philippines Country code(s): PH Language group: 621 Publisher(s): 00 - 29; 400 - 599; 8000 - 8999; 95000 - 99999 621-400 621-599 621-8000 621-8999 621-95000 621-99999 622-00 622-08 Region name: Iran Country code(s): IR Language group: 622 Publisher(s): 00 - 08; 200 - 299; 6000 - 7999; 95000 - 99999 622-200 622-299 622-6000 622-7999 622-95000 622-99999 623-00 623-09 Region name: Indonesia Country code(s): ID Language group: 623 Publisher(s): 00 - 09; 200 - 399; 6000 - 7999; 90000 - 99999 623-200 623-399 623-6000 623-7999 623-90000 623-99999 624-00 624-04 Region name: Sri Lanka Country code(s): LK Language group: 624 Publisher(s): 00 - 04; 200 - 249; 5000 - 5999; 95000 - 99999 624-200 624-249 624-5000 624-5999 624-95000 624-99999 625-00 625-00 Region name: Turkey Country code(s): TR Language group: 625 Publisher(s): 00 - 00; 400 - 449; 7000 - 7999 625-400 625-449 625-7000 625-7999 626-00 626-04 Region name: Taiwan Country code(s): TW Language group: 626 Publisher(s): 00 - 04; 300 - 499; 7000 - 7999; 95000 - 99999 626-300 626-499 626-7000 626-7999 626-95000 626-99999 65-00 65-01 Region name: Brazil Country code(s): BR Language group: 65 Publisher(s): 00 - 01; 250 - 299; 300 - 302; 5000 - 5129; 5500 - 5999; 80000 - 81824; 86000 - 89999; 900000 - 902449; 990000 - 999999 65-250 65-299 65-300 65-302 65-5000 65-5129 65-5500 65-5999 65-80000 65-81824 65-86000 65-89999 65-900000 65-902449 65-990000 65-999999 7-00 7-09 Region name: China, People's Republic Country code(s): CN Language group: 7 Publisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 89999; 900000 - 999999 7-100 7-499 7-5000 7-7999 7-80000 7-89999 7-900000 7-999999 80-00 80-19 Region name: former Czechoslovakia Country code(s): ?? Language group: 80 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 999999 80-200 80-699 80-7000 80-8499 80-85000 80-89999 80-900000 80-999999 80-99900 80-99999 81-00 81-19 Region name: India Country code(s): IN Language group: 81 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 999999 81-200 81-699 81-7000 81-8499 81-85000 81-89999 81-900000 81-999999 82-00 82-19 Region name: Norway Country code(s): NO Language group: 82 Publisher(s): 00 - 19; 200 - 689; 690000 - 699999; 7000 - 8999; 90000 - 98999; 990000 - 999999 82-200 82-689 82-690000 82-699999 82-7000 82-8999 82-90000 82-98999 82-990000 82-999999 83-00 83-19 Region name: Poland Country code(s): PL Language group: 83 Publisher(s): 00 - 19; 200 - 599; 60000 - 69999; 7000 - 8499; 85000 - 89999; 900000 - 999999 83-200 83-599 83-60000 83-69999 83-7000 83-8499 83-85000 83-89999 83-900000 83-999999 84-00 84-13 Region name: Spain Country code(s): ES Language group: 84 Publisher(s): 00 - 13; 140 - 149; 15000 - 19999; 200 - 699; 7000 - 8499; 85000 - 89999; 9000 - 9199; 920000 - 923999; 92400 - 92999; 930000 - 949999; 95000 - 96999; 9700 - 9999 84-1100 84-1199 84-120000 84-129999 84-1300 84-1399 84-140 84-149 84-15000 84-19999 84-200 84-699 84-7000 84-8499 84-85000 84-89999 84-9000 84-9199 84-920000 84-923999 84-92400 84-92999 84-930000 84-949999 84-95000 84-96999 84-9700 84-9999 85-00 85-19 Region name: Brazil Country code(s): BR Language group: 85 Publisher(s): 00 - 19; 200 - 549; 5500 - 5999; 60000 - 69999; 7000 - 8499; 85000 - 89999; 900000 - 959999; 96 - 97; 98000 - 99999 85-200 85-549 85-455000 85-455299 85-45530 85-45599 85-456 85-528 85-52900 85-53199 85-5320 85-5339 85-534 85-539 85-54000 85-54029 85-54030 85-54039 85-540400 85-540499 85-54050 85-54089 85-540900 85-540999 85-54100 85-54399 85-5440 85-5479 85-54800 85-54999 85-5500 85-5999 85-60000 85-69999 85-7000 85-8499 85-85000 85-89999 85-900000 85-959999 85-92500 85-94499 85-9450 85-9599 85-96 85-97 85-98000 85-99999 86-00 86-29 Region name: former Yugoslavia Country code(s): ?? Language group: 86 Publisher(s): 00 - 29; 300 - 599; 6000 - 7999; 80000 - 89999; 900000 - 999999 86-300 86-599 86-6000 86-7999 86-80000 86-89999 86-900000 86-999999 87-00 87-29 Region name: Denmark Country code(s): DK Language group: 87 Publisher(s): 00 - 29; 400 - 649; 7000 - 7999; 85000 - 94999; 970000 - 999999 87-400 87-649 87-7000 87-7999 87-85000 87-94999 87-970000 87-999999 88-00 88-19 Region name: Italy Country code(s): IT Language group: 88 Publisher(s): 00 - 19; 200 - 599; 6000 - 8499; 85000 - 89999; 900000 - 909999; 910 - 929; 9300 - 9399; 940000 - 949999; 95000 - 99999 88-200 88-599 88-31200 88-31499 88-315 88-318 88-31900 88-32299 88-323 88-326 88-3270 88-3389 88-339 88-360 88-3610 88-3629 88-363 88-548 88-5490 88-5549 88-555 88-599 88-6000 88-8499 88-85000 88-89999 88-900000 88-909999 88-910 88-929 88-9270 88-9399 88-940000 88-949999 88-94800 88-99999 89-00 89-24 Region name: Korea, Republic Country code(s): KR Language group: 89 Publisher(s): 00 - 24; 250 - 549; 5500 - 8499; 85000 - 94999; 950000 - 969999; 97000 - 98999; 990 - 999 89-250 89-549 89-5500 89-8499 89-85000 89-94999 89-950000 89-969999 89-97000 89-98999 89-990 89-999 90-00 90-19 Region name: Netherlands Country code(s): NL Language group: 90 Publisher(s): 00 - 19; 200 - 499; 5000 - 6999; 70000 - 79999; 800000 - 849999; 8500 - 8999; 90 - 90; 94 - 94 90-200 90-499 90-5000 90-6999 90-70000 90-79999 90-800000 90-849999 90-8500 90-8999 90-90 90-90 90-94 90-94 91-0 91-1 Region name: Sweden Country code(s): SE Language group: 91 Publisher(s): 0 - 1; 20 - 49; 500 - 649; 7000 - 7999; 85000 - 94999; 970000 - 999999 91-20 91-49 91-500 91-649 91-7000 91-7999 91-85000 91-94999 91-970000 91-999999 92-0 92-5 Region name: International NGO Publishers and EU Organizations Country code(s): ?? Language group: 92 Publisher(s): 0 - 5; 60 - 79; 800 - 899; 9000 - 9499; 95000 - 98999; 990000 - 999999 92-60 92-79 92-800 92-899 92-9000 92-9499 92-95000 92-98999 92-990000 92-999999 93-00 93-09 Region name: India Country code(s): IN Language group: 93 Publisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 94999; 950000 - 999999 93-100 93-499 93-5000 93-7999 93-80000 93-94999 93-950000 93-999999 94-000 94-599 Region name: Netherlands Country code(s): NL Language group: 94 Publisher(s): 000 - 599; 6000 - 8999; 90000 - 99999 94-6000 94-8999 94-90000 94-99999 950-00 950-49 Region name: Argentina Country code(s): AR Language group: 950 Publisher(s): 00 - 49; 500 - 899; 9000 - 9899; 99000 - 99999 950-500 950-899 950-9000 950-9899 950-99000 950-99999 951-0 951-1 Region name: Finland Country code(s): FI Language group: 951 Publisher(s): 0 - 1; 20 - 54; 550 - 889; 8900 - 9499; 95000 - 99999 951-20 951-54 951-550 951-889 951-8900 951-9499 951-95000 951-99999 952-00 952-19 Region name: Finland Country code(s): FI Language group: 952 Publisher(s): 00 - 19; 200 - 499; 5000 - 5999; 60 - 65; 6600 - 6699; 67000 - 69999; 7000 - 7999; 80 - 94; 9500 - 9899; 99000 - 99999 952-200 952-499 952-5000 952-5999 952-60 952-65 952-6600 952-6699 952-67000 952-69999 952-7000 952-7999 952-80 952-94 952-9500 952-9899 952-99000 952-99999 953-0 953-0 Region name: Croatia Country code(s): HR Language group: 953 Publisher(s): 0 - 0; 10 - 14; 150 - 509; 51 - 54; 55000 - 59999; 6000 - 9499; 95000 - 99999 953-10 953-14 953-150 953-509 953-48000 953-49999 953-500 953-500 953-50100 953-50999 953-51 953-54 953-55000 953-59999 953-6000 953-9499 953-95000 953-99999 954-00 954-28 Region name: Bulgaria Country code(s): BG Language group: 954 Publisher(s): 00 - 28; 2900 - 2999; 300 - 799; 8000 - 8999; 90000 - 92999; 9300 - 9999 954-2900 954-2999 954-300 954-799 954-8000 954-8999 954-90000 954-92999 954-9300 954-9999 955-0000 955-1999 Region name: Sri Lanka Country code(s): LK Language group: 955 Publisher(s): 0000 - 1999; 20 - 40; 41000 - 43999; 44000 - 44999; 4500 - 4999; 50000 - 54999; 550 - 749; 7500 - 7999; 8000 - 9499; 95000 - 99999 955-20 955-40 955-3400 955-3549 955-35500 955-35999 955-3600 955-3799 955-38000 955-38999 955-3900 955-4099 955-41000 955-43999 955-4500 955-4999 955-50000 955-54999 955-550 955-749 955-71100 955-71499 955-7150 955-9499 955-95000 955-99999 956-00 956-19 Region name: Chile Country code(s): CL Language group: 956 Publisher(s): 00 - 19; 200 - 699; 7000 - 9999 956-09000 956-09999 956-10 956-19 956-200 956-699 956-6000 956-6999 956-7000 956-9999 957-00 957-02 Region name: Taiwan Country code(s): TW Language group: 957 Publisher(s): 00 - 02; 0300 - 0499; 05 - 19; 2000 - 2099; 21 - 27; 28000 - 30999; 31 - 43; 440 - 819; 8200 - 9699; 97000 - 99999 957-0300 957-0499 957-05 957-19 957-2000 957-2099 957-21 957-27 957-28000 957-30999 957-31 957-43 957-440 957-819 957-8200 957-9699 957-97000 957-99999 958-00 958-56 Region name: Colombia Country code(s): CO Language group: 958 Publisher(s): 00 - 56; 57000 - 59999; 600 - 799; 8000 - 9499; 95000 - 99999 958-490 958-509 958-5100 958-5199 958-52000 958-53999 958-5400 958-5599 958-56000 958-59999 958-600 958-799 958-8000 958-9499 958-95000 958-99999 959-00 959-19 Region name: Cuba Country code(s): CU Language group: 959 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 99999 959-200 959-699 959-7000 959-8499 959-85000 959-99999 960-00 960-19 Region name: Greece Country code(s): GR Language group: 960 Publisher(s): 00 - 19; 200 - 659; 6600 - 6899; 690 - 699; 7000 - 8499; 85000 - 92999; 93 - 93; 9400 - 9799; 98000 - 99999 960-200 960-659 960-6600 960-6899 960-690 960-699 960-7000 960-8499 960-85000 960-92999 960-93 960-93 960-9400 960-9799 960-98000 960-99999 961-00 961-19 Region name: Slovenia Country code(s): SI Language group: 961 Publisher(s): 00 - 19; 200 - 599; 6000 - 8999; 90000 - 94999 961-200 961-599 961-6000 961-8999 961-90000 961-94999 962-00 962-19 Region name: Hong Kong, China Country code(s): HK Language group: 962 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 86999; 8700 - 8999; 900 - 999 962-200 962-699 962-7000 962-8499 962-85000 962-86999 962-8700 962-8999 962-900 962-999 963-00 963-19 Region name: Hungary Country code(s): HU Language group: 963 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 9000 - 9999 963-200 963-699 963-7000 963-8499 963-85000 963-89999 963-9000 963-9999 964-00 964-14 Region name: Iran Country code(s): IR Language group: 964 Publisher(s): 00 - 14; 150 - 249; 2500 - 2999; 300 - 549; 5500 - 8999; 90000 - 96999; 970 - 989; 9900 - 9999 964-150 964-249 964-2500 964-2999 964-300 964-549 964-5500 964-8999 964-90000 964-96999 964-970 964-989 964-9900 964-9999 965-00 965-19 Region name: Israel Country code(s): IL Language group: 965 Publisher(s): 00 - 19; 200 - 599; 7000 - 7999; 90000 - 99999 965-200 965-599 965-7000 965-7999 965-90000 965-99999 966-00 966-12 Region name: Ukraine Country code(s): UA Language group: 966 Publisher(s): 00 - 12; 130 - 139; 14 - 14; 1500 - 1699; 170 - 199; 2000 - 2789; 279 - 289; 2900 - 2999; 300 - 699; 7000 - 8999; 90000 - 90999; 910 - 949; 95000 - 97999; 980 - 999 966-130 966-139 966-14 966-14 966-1500 966-1699 966-170 966-199 966-2000 966-2789 966-279 966-289 966-2900 966-2999 966-300 966-699 966-7000 966-8999 966-90000 966-90999 966-910 966-949 966-95000 966-97999 966-980 966-999 967-00 967-00 Region name: Malaysia Country code(s): MY Language group: 967 Publisher(s): 00 - 00; 0100 - 0999; 10000 - 19999; 300 - 499; 5000 - 5999; 60 - 89; 900 - 989; 9900 - 9989; 99900 - 99999 967-0100 967-0999 967-10000 967-19999 967-2000 967-2499 967-250 967-254 967-2800 967-2999 967-300 967-499 967-5000 967-5999 967-60 967-89 967-900 967-989 967-9900 967-9989 967-99900 967-99999 968-01 968-39 Region name: Mexico Country code(s): MX Language group: 968 Publisher(s): 01 - 39; 400 - 499; 5000 - 7999; 800 - 899; 9000 - 9999 968-400 968-499 968-5000 968-7999 968-800 968-899 968-9000 968-9999 969-0 969-1 Region name: Pakistan Country code(s): PK Language group: 969 Publisher(s): 0 - 1; 20 - 22; 23000 - 23999; 24 - 39; 400 - 749; 7500 - 9999 969-20 969-22 969-210 969-219 969-2200 969-2299 969-23000 969-23999 969-24 969-39 969-400 969-749 969-7500 969-9999 970-01 970-59 Region name: Mexico Country code(s): MX Language group: 970 Publisher(s): 01 - 59; 600 - 899; 9000 - 9099; 91000 - 96999; 9700 - 9999 970-600 970-899 970-9000 970-9099 970-91000 970-96999 970-9700 970-9999 971-000 971-015 Region name: Philippines Country code(s): PH Language group: 971 Publisher(s): 000 - 015; 0160 - 0199; 02 - 02; 0300 - 0599; 06 - 49; 500 - 849; 8500 - 9099; 91000 - 95999; 9600 - 9699; 97 - 98; 9900 - 9999 971-0160 971-0199 971-02 971-02 971-0300 971-0599 971-06 971-49 971-500 971-849 971-8500 971-9099 971-91000 971-95999 971-9600 971-9699 971-97 971-98 971-9900 971-9999 972-0 972-1 Region name: Portugal Country code(s): PT Language group: 972 Publisher(s): 0 - 1; 20 - 54; 550 - 799; 8000 - 9499; 95000 - 99999 972-20 972-54 972-550 972-799 972-8000 972-9499 972-95000 972-99999 973-0 973-0 Region name: Romania Country code(s): RO Language group: 973 Publisher(s): 0 - 0; 100 - 169; 1700 - 1999; 20 - 54; 550 - 759; 7600 - 8499; 85000 - 88999; 8900 - 9499; 95000 - 99999 973-100 973-169 973-1700 973-1999 973-20 973-54 973-550 973-759 973-7600 973-8499 973-85000 973-88999 973-8900 973-9499 973-95000 973-99999 974-00 974-19 Region name: Thailand Country code(s): TH Language group: 974 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 90000 - 94999; 9500 - 9999 974-200 974-699 974-7000 974-8499 974-85000 974-89999 974-90000 974-94999 974-9500 974-9999 975-00000 975-01999 Region name: Turkey Country code(s): TR Language group: 975 Publisher(s): 00000 - 01999; 02 - 24; 250 - 599; 6000 - 9199; 92000 - 98999; 990 - 999 975-02 975-24 975-2400 975-2499 975-250 975-599 975-6000 975-9199 975-92000 975-98999 975-990 975-999 976-0 976-3 Region name: Caribbean Community Country code(s): ?? Language group: 976 Publisher(s): 0 - 3; 40 - 59; 600 - 799; 8000 - 9499; 95000 - 99999 976-40 976-59 976-600 976-799 976-8000 976-9499 976-95000 976-99999 977-00 977-19 Region name: Egypt Country code(s): EG Language group: 977 Publisher(s): 00 - 19; 200 - 499; 5000 - 6999; 700 - 849; 85000 - 89999; 90 - 99 977-200 977-499 977-5000 977-6999 977-700 977-849 977-85000 977-89999 977-90 977-99 977-990 977-999 978-000 978-199 Region name: Nigeria Country code(s): NG Language group: 978 Publisher(s): 000 - 199; 2000 - 2999; 30000 - 79999; 8000 - 8999; 900 - 999 978-2000 978-2999 978-30000 978-79999 978-8000 978-8999 978-900 978-999 979-000 979-099 Region name: Indonesia Country code(s): ID Language group: 979 Publisher(s): 000 - 099; 1000 - 1499; 15000 - 19999; 20 - 29; 3000 - 3999; 400 - 799; 8000 - 9499; 95000 - 99999 979-1000 979-1499 979-15000 979-19999 979-20 979-29 979-3000 979-3999 979-400 979-799 979-8000 979-9499 979-95000 979-99999 980-00 980-19 Region name: Venezuela Country code(s): VE Language group: 980 Publisher(s): 00 - 19; 200 - 599; 6000 - 9999 980-200 980-599 980-6000 980-9999 981-00 981-16 Region name: Singapore Country code(s): SG Language group: 981 Publisher(s): 00 - 16; 17000 - 19999; 200 - 299; 3000 - 3099; 310 - 399; 4000 - 9999 981-17000 981-19999 981-18 981-19 981-200 981-299 981-3000 981-3099 981-310 981-399 981-4000 981-9999 982-00 982-09 Region name: South Pacific Country code(s): ?? Language group: 982 Publisher(s): 00 - 09; 100 - 699; 70 - 89; 9000 - 9799; 98000 - 99999 982-100 982-699 982-70 982-89 982-9000 982-9799 982-98000 982-99999 983-00 983-01 Region name: Malaysia Country code(s): MY Language group: 983 Publisher(s): 00 - 01; 020 - 199; 2000 - 3999; 40000 - 44999; 45 - 49; 50 - 79; 800 - 899; 9000 - 9899; 99000 - 99999 983-020 983-199 983-2000 983-3999 983-40000 983-44999 983-45 983-49 983-50 983-79 983-800 983-899 983-9000 983-9899 983-99000 983-99999 984-00 984-39 Region name: Bangladesh Country code(s): BD Language group: 984 Publisher(s): 00 - 39; 400 - 799; 8000 - 8999; 90000 - 99999 984-400 984-799 984-8000 984-8999 984-90000 984-99999 985-00 985-39 Region name: Belarus Country code(s): BY Language group: 985 Publisher(s): 00 - 39; 400 - 599; 6000 - 8999; 90000 - 99999 985-400 985-599 985-6000 985-8999 985-880 985-899 985-90000 985-99999 986-00 986-11 Region name: Taiwan Country code(s): TW Language group: 986 Publisher(s): 00 - 11; 120 - 559; 5600 - 7999; 80000 - 99999 986-06000 986-06999 986-0700 986-0799 986-08 986-11 986-120 986-559 986-5400 986-7999 986-80000 986-99999 987-00 987-09 Region name: Argentina Country code(s): AR Language group: 987 Publisher(s): 00 - 09; 1000 - 1999; 20000 - 29999; 30 - 35; 3600 - 3999; 4000 - 4199; 42 - 43; 4400 - 4499; 45000 - 48999; 4900 - 4999; 500 - 899; 9000 - 9499; 95000 - 99999 987-1000 987-1999 987-20000 987-29999 987-30 987-35 987-3600 987-3999 987-4000 987-4199 987-42 987-43 987-4400 987-4499 987-45000 987-48999 987-4900 987-4999 987-500 987-899 987-8300 987-8499 987-85 987-89 987-9000 987-9499 987-95000 987-99999 988-00 988-11 Region name: Hong Kong, China Country code(s): HK Language group: 988 Publisher(s): 00 - 11; 12000 - 14999; 15000 - 16999; 17000 - 19999; 200 - 769; 77000 - 79999; 8000 - 9699; 97000 - 99999 988-12000 988-14999 988-200 988-769 988-74000 988-76999 988-77000 988-79999 988-8000 988-9699 988-97000 988-99999 989-0 989-1 Region name: Portugal Country code(s): PT Language group: 989 Publisher(s): 0 - 1; 20 - 54; 550 - 799; 8000 - 9499; 95000 - 99999 989-20 989-54 989-35000 989-36999 989-37 989-52 989-53000 989-54999 989-550 989-799 989-8000 989-9499 989-95000 989-99999 9914-40 9914-44 Region name: Kenya Country code(s): KE Language group: 9914 Publisher(s): 40 - 44; 700 - 749; 9850 - 9999 9914-700 9914-749 9914-9850 9914-9999 9915-40 9915-59 Region name: Uruguay Country code(s): UY Language group: 9915 Publisher(s): 40 - 59; 650 - 799; 9300 - 9999 9915-650 9915-799 9915-9300 9915-9999 9916-0 9916-0 Region name: Estonia Country code(s): EE Language group: 9916 Publisher(s): 0 - 0; 10 - 39; 4 - 4; 600 - 749; 9500 - 9999 9916-10 9916-39 9916-4 9916-4 9916-600 9916-749 9916-9500 9916-9999 9917-0 9917-0 Region name: Bolivia Country code(s): BO Language group: 9917 Publisher(s): 0 - 0; 30 - 34; 600 - 699; 9800 - 9999 9917-30 9917-34 9917-600 9917-699 9917-9800 9917-9999 9918-0 9918-0 Region name: Malta Country code(s): MT Language group: 9918 Publisher(s): 0 - 0; 20 - 29; 600 - 799; 9500 - 9999 9918-20 9918-29 9918-600 9918-799 9918-9500 9918-9999 9919-20 9919-27 Region name: Mongolia Country code(s): MN Language group: 9919 Publisher(s): 20 - 27; 500 - 599; 9500 - 9999 9919-500 9919-599 9919-9500 9919-9999 9920-32 9920-39 Region name: Morocco Country code(s): MA Language group: 9920 Publisher(s): 32 - 39; 550 - 799; 9000 - 9999 9920-550 9920-799 9920-9000 9920-9999 9921-0 9921-0 Region name: Kuwait Country code(s): KW Language group: 9921 Publisher(s): 0 - 0; 30 - 39; 700 - 899; 9700 - 9999 9921-30 9921-39 9921-700 9921-899 9921-9700 9921-9999 9922-20 9922-29 Region name: Iraq Country code(s): IQ Language group: 9922 Publisher(s): 20 - 29; 600 - 799; 9000 - 9999 9922-600 9922-799 9922-9000 9922-9999 9923-0 9923-0 Region name: Jordan Country code(s): JO Language group: 9923 Publisher(s): 0 - 0; 10 - 49; 700 - 899; 9700 - 9999 9923-10 9923-49 9923-700 9923-899 9923-9700 9923-9999 9924-30 9924-39 Region name: Cambodia Country code(s): KH Language group: 9924 Publisher(s): 30 - 39; 500 - 649; 9000 - 9999 9924-500 9924-649 9924-9000 9924-9999 9925-0 9925-2 Region name: Cyprus Country code(s): CY Language group: 9925 Publisher(s): 0 - 2; 30 - 54; 550 - 734; 7350 - 9999 9925-30 9925-54 9925-550 9925-734 9925-7350 9925-9999 9926-0 9926-1 Region name: Bosnia and Herzegovina Country code(s): BA Language group: 9926 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999 9926-20 9926-39 9926-400 9926-799 9926-8000 9926-9999 9927-00 9927-09 Region name: Qatar Country code(s): QA Language group: 9927 Publisher(s): 00 - 09; 100 - 399; 4000 - 4999 9927-100 9927-399 9927-4000 9927-4999 9928-00 9928-09 Region name: Albania Country code(s): AL Language group: 9928 Publisher(s): 00 - 09; 100 - 399; 4000 - 4999 9928-100 9928-399 9928-4000 9928-4999 9929-0 9929-3 Region name: Guatemala Country code(s): GT Language group: 9929 Publisher(s): 0 - 3; 40 - 54; 550 - 799; 8000 - 9999 9929-40 9929-54 9929-550 9929-799 9929-8000 9929-9999 9930-00 9930-49 Region name: Costa Rica Country code(s): CR Language group: 9930 Publisher(s): 00 - 49; 500 - 939; 9400 - 9999 9930-500 9930-939 9930-9400 9930-9999 9931-00 9931-29 Region name: Algeria Country code(s): DZ Language group: 9931 Publisher(s): 00 - 29; 300 - 899; 9000 - 9999 9931-300 9931-899 9931-9000 9931-9999 9932-00 9932-39 Region name: Lao People's Democratic Republic Country code(s): LA Language group: 9932 Publisher(s): 00 - 39; 400 - 849; 8500 - 9999 9932-400 9932-849 9932-8500 9932-9999 9933-0 9933-0 Region name: Syria Country code(s): SY Language group: 9933 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999 9933-10 9933-39 9933-400 9933-899 9933-9000 9933-9999 9934-0 9934-0 Region name: Latvia Country code(s): LV Language group: 9934 Publisher(s): 0 - 0; 10 - 49; 500 - 799; 8000 - 9999 9934-10 9934-49 9934-500 9934-799 9934-8000 9934-9999 9935-0 9935-0 Region name: Iceland Country code(s): IS Language group: 9935 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999 9935-10 9935-39 9935-400 9935-899 9935-9000 9935-9999 9936-0 9936-1 Region name: Afghanistan Country code(s): AF Language group: 9936 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999 9936-20 9936-39 9936-400 9936-799 9936-8000 9936-9999 9937-0 9937-2 Region name: Nepal Country code(s): NP Language group: 9937 Publisher(s): 0 - 2; 30 - 49; 500 - 799; 8000 - 9999 9937-30 9937-49 9937-500 9937-799 9937-8000 9937-9999 9938-00 9938-79 Region name: Tunisia Country code(s): TN Language group: 9938 Publisher(s): 00 - 79; 800 - 949; 9500 - 9999 9938-800 9938-949 9938-9500 9938-9999 9939-0 9939-4 Region name: Armenia Country code(s): AM Language group: 9939 Publisher(s): 0 - 4; 50 - 79; 800 - 899; 9000 - 9999 9939-50 9939-79 9939-800 9939-899 9939-9000 9939-9999 9939-98 9939-99 9940-0 9940-1 Region name: Montenegro Country code(s): ME Language group: 9940 Publisher(s): 0 - 1; 20 - 49; 500 - 899; 9000 - 9999 9940-20 9940-49 9940-500 9940-899 9940-84 9940-86 9940-8700 9940-9999 9941-0 9941-0 Region name: Georgia Country code(s): GE Language group: 9941 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999 9941-10 9941-39 9941-400 9941-899 9941-8 9941-8 9941-9000 9941-9999 9942-00 9942-84 Region name: Ecuador Country code(s): EC Language group: 9942 Publisher(s): 00 - 84; 8500 - 8999; 900 - 984; 9850 - 9999 9942-750 9942-849 9942-8500 9942-8999 9942-900 9942-984 9942-9850 9942-9999 9943-00 9943-29 Region name: Uzbekistan Country code(s): UZ Language group: 9943 Publisher(s): 00 - 29; 300 - 399; 4000 - 9749; 975 - 999 9943-300 9943-399 9943-4000 9943-9749 9943-975 9943-999 9944-0000 9944-0999 Region name: Turkey Country code(s): TR Language group: 9944 Publisher(s): 0000 - 0999; 100 - 499; 5000 - 5999; 60 - 69; 700 - 799; 80 - 89; 900 - 999 9944-100 9944-499 9944-5000 9944-5999 9944-60 9944-69 9944-700 9944-799 9944-80 9944-89 9944-900 9944-999 9945-00 9945-00 Region name: Dominican Republic Country code(s): DO Language group: 9945 Publisher(s): 00 - 00; 010 - 079; 08 - 39; 400 - 569; 57 - 57; 580 - 849; 8500 - 9999 9945-010 9945-079 9945-08 9945-39 9945-400 9945-569 9945-57 9945-57 9945-580 9945-849 9945-80 9945-80 9945-810 9945-849 9945-8500 9945-9999 9946-0 9946-1 Region name: Korea, P.D.R. Country code(s): KP Language group: 9946 Publisher(s): 0 - 1; 20 - 39; 400 - 899; 9000 - 9999 9946-20 9946-39 9946-400 9946-899 9946-9000 9946-9999 9947-0 9947-1 Region name: Algeria Country code(s): DZ Language group: 9947 Publisher(s): 0 - 1; 20 - 79; 800 - 999 9947-20 9947-79 9947-800 9947-999 9948-00 9948-39 Region name: United Arab Emirates Country code(s): AE Language group: 9948 Publisher(s): 00 - 39; 400 - 849; 8500 - 9999 9948-400 9948-849 9948-8500 9948-9999 9949-00 9949-08 Region name: Estonia Country code(s): EE Language group: 9949 Publisher(s): 00 - 08; 090 - 099; 10 - 39; 400 - 699; 70 - 71; 7200 - 7499; 75 - 89; 9000 - 9999 9949-090 9949-099 9949-10 9949-39 9949-400 9949-749 9949-70 9949-71 9949-7200 9949-7499 9949-75 9949-89 9949-9000 9949-9999 9950-00 9950-29 Region name: Palestine Country code(s): PS Language group: 9950 Publisher(s): 00 - 29; 300 - 849; 8500 - 9999 9950-300 9950-849 9950-8500 9950-9999 9951-00 9951-39 Region name: Kosova Country code(s): ?? Language group: 9951 Publisher(s): 00 - 39; 400 - 849; 8500 - 9999 9951-400 9951-849 9951-8500 9951-9999 9952-0 9952-1 Region name: Azerbaijan Country code(s): AZ Language group: 9952 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999 9952-20 9952-39 9952-400 9952-799 9952-8000 9952-9999 9953-0 9953-0 Region name: Lebanon Country code(s): LB Language group: 9953 Publisher(s): 0 - 0; 10 - 39; 400 - 599; 60 - 89; 9000 - 9999 9953-10 9953-39 9953-400 9953-599 9953-60 9953-89 9953-9000 9953-9999 9953-93 9953-96 9953-970 9953-999 9954-0 9954-1 Region name: Morocco Country code(s): MA Language group: 9954 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999 9954-20 9954-39 9954-400 9954-799 9954-8000 9954-9999 9954-99 9954-99 9955-00 9955-39 Region name: Lithuania Country code(s): LT Language group: 9955 Publisher(s): 00 - 39; 400 - 929; 9300 - 9999 9955-400 9955-929 9955-9300 9955-9999 9956-0 9956-0 Region name: Cameroon Country code(s): CM Language group: 9956 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999 9956-10 9956-39 9956-400 9956-899 9956-9000 9956-9999 9957-00 9957-39 Region name: Jordan Country code(s): JO Language group: 9957 Publisher(s): 00 - 39; 400 - 649; 65 - 69; 70 - 84; 8500 - 8799; 88 - 99 9957-400 9957-649 9957-65 9957-69 9957-680 9957-699 9957-70 9957-84 9957-8500 9957-8799 9957-88 9957-99 9958-00 9958-01 Region name: Bosnia and Herzegovina Country code(s): BA Language group: 9958 Publisher(s): 00 - 01; 020 - 029; 0300 - 0399; 040 - 089; 0900 - 0999; 10 - 18; 1900 - 1999; 20 - 49; 500 - 899; 9000 - 9999 9958-020 9958-029 9958-0300 9958-0399 9958-040 9958-089 9958-0900 9958-0999 9958-10 9958-18 9958-1900 9958-1999 9958-20 9958-49 9958-500 9958-899 9958-9000 9958-9999 9959-0 9959-1 Region name: Libya Country code(s): LY Language group: 9959 Publisher(s): 0 - 1; 20 - 79; 800 - 949; 9500 - 9699; 970 - 979; 98 - 99 9959-20 9959-79 9959-800 9959-949 9959-9500 9959-9699 9959-970 9959-979 9959-98 9959-99 9960-00 9960-59 Region name: Saudi Arabia Country code(s): SA Language group: 9960 Publisher(s): 00 - 59; 600 - 899; 9000 - 9999 9960-600 9960-899 9960-9000 9960-9999 9961-0 9961-2 Region name: Algeria Country code(s): DZ Language group: 9961 Publisher(s): 0 - 2; 30 - 69; 700 - 949; 9500 - 9999 9961-30 9961-69 9961-700 9961-949 9961-9500 9961-9999 9962-00 9962-54 Region name: Panama Country code(s): PA Language group: 9962 Publisher(s): 00 - 54; 5500 - 5599; 56 - 59; 600 - 849; 8500 - 9999 9962-5500 9962-5599 9962-56 9962-59 9962-600 9962-849 9962-8500 9962-9999 9963-0 9963-1 Region name: Cyprus Country code(s): CY Language group: 9963 Publisher(s): 0 - 1; 2000 - 2499; 250 - 279; 2800 - 2999; 30 - 54; 550 - 734; 7350 - 7499; 7500 - 9999 9963-2000 9963-2499 9963-250 9963-279 9963-2800 9963-2999 9963-30 9963-54 9963-550 9963-734 9963-7350 9963-7499 9963-7500 9963-9999 9964-0 9964-6 Region name: Ghana Country code(s): GH Language group: 9964 Publisher(s): 0 - 6; 70 - 94; 950 - 999 9964-70 9964-94 9964-950 9964-999 9965-00 9965-39 Region name: Kazakhstan Country code(s): KZ Language group: 9965 Publisher(s): 00 - 39; 400 - 899; 9000 - 9999 9965-400 9965-899 9965-9000 9965-9999 9966-000 9966-149 Region name: Kenya Country code(s): KE Language group: 9966 Publisher(s): 000 - 149; 1500 - 1999; 20 - 69; 7000 - 7499; 750 - 959; 9600 - 9999 9966-14 9966-14 9966-1500 9966-1999 9966-20 9966-69 9966-7000 9966-7499 9966-750 9966-959 9966-8210 9966-8249 9966-825 9966-825 9966-8260 9966-8289 9966-829 9966-959 9966-9600 9966-9999 9967-00 9967-39 Region name: Kyrgyz Republic Country code(s): KG Language group: 9967 Publisher(s): 00 - 39; 400 - 899; 9000 - 9999 9967-400 9967-899 9967-9000 9967-9999 9968-00 9968-49 Region name: Costa Rica Country code(s): CR Language group: 9968 Publisher(s): 00 - 49; 500 - 939; 9400 - 9999 9968-500 9968-939 9968-9400 9968-9999 9970-00 9970-39 Region name: Uganda Country code(s): UG Language group: 9970 Publisher(s): 00 - 39; 400 - 899; 9000 - 9999 9970-400 9970-899 9970-9000 9970-9999 9971-0 9971-5 Region name: Singapore Country code(s): SG Language group: 9971 Publisher(s): 0 - 5; 60 - 89; 900 - 989; 9900 - 9999 9971-60 9971-89 9971-900 9971-989 9971-9900 9971-9999 9972-00 9972-09 Region name: Peru Country code(s): PE Language group: 9972 Publisher(s): 00 - 09; 1 - 1; 200 - 249; 2500 - 2999; 30 - 59; 600 - 899; 9000 - 9999 9972-1 9972-1 9972-200 9972-249 9972-2500 9972-2999 9972-30 9972-59 9972-600 9972-899 9972-9000 9972-9999 9973-00 9973-05 Region name: Tunisia Country code(s): TN Language group: 9973 Publisher(s): 00 - 05; 060 - 089; 0900 - 0999; 10 - 69; 700 - 969; 9700 - 9999 9973-060 9973-089 9973-0900 9973-0999 9973-10 9973-69 9973-700 9973-969 9973-9700 9973-9999 9974-0 9974-2 Region name: Uruguay Country code(s): UY Language group: 9974 Publisher(s): 0 - 2; 30 - 54; 550 - 749; 7500 - 9099; 91 - 94; 95 - 99 9974-30 9974-54 9974-550 9974-749 9974-7500 9974-9099 9974-880 9974-909 9974-91 9974-94 9974-95 9974-99 9975-0 9975-0 Region name: Moldova Country code(s): MD Language group: 9975 Publisher(s): 0 - 0; 100 - 299; 3000 - 3999; 4000 - 4499; 45 - 89; 900 - 949; 9500 - 9999 9975-100 9975-299 9975-3000 9975-3999 9975-4000 9975-4499 9975-45 9975-89 9975-900 9975-949 9975-9500 9975-9999 9976-0 9976-5 Region name: Tanzania Country code(s): TZ Language group: 9976 Publisher(s): 0 - 5; 60 - 89; 900 - 989; 9900 - 9999 9976-5000 9976-5799 9976-580 9976-589 9976-59 9976-89 9976-900 9976-989 9976-9900 9976-9999 9977-00 9977-89 Region name: Costa Rica Country code(s): CR Language group: 9977 Publisher(s): 00 - 89; 900 - 989; 9900 - 9999 9977-900 9977-989 9977-9900 9977-9999 9978-00 9978-29 Region name: Ecuador Country code(s): EC Language group: 9978 Publisher(s): 00 - 29; 300 - 399; 40 - 94; 950 - 989; 9900 - 9999 9978-300 9978-399 9978-40 9978-94 9978-950 9978-989 9978-9900 9978-9999 9979-0 9979-4 Region name: Iceland Country code(s): IS Language group: 9979 Publisher(s): 0 - 4; 50 - 64; 650 - 659; 66 - 75; 760 - 899; 9000 - 9999 9979-50 9979-64 9979-650 9979-659 9979-66 9979-75 9979-760 9979-899 9979-9000 9979-9999 9980-0 9980-3 Region name: Papua New Guinea Country code(s): PG Language group: 9980 Publisher(s): 0 - 3; 40 - 89; 900 - 989; 9900 - 9999 9980-40 9980-89 9980-900 9980-989 9980-9900 9980-9999 9981-00 9981-09 Region name: Morocco Country code(s): MA Language group: 9981 Publisher(s): 00 - 09; 100 - 159; 1600 - 1999; 20 - 79; 800 - 949; 9500 - 9999 9981-100 9981-159 9981-1600 9981-1999 9981-20 9981-79 9981-800 9981-949 9981-9500 9981-9999 9982-00 9982-79 Region name: Zambia Country code(s): ZM Language group: 9982 Publisher(s): 00 - 79; 800 - 989; 9900 - 9999 9982-800 9982-989 9982-9900 9982-9999 9983-80 9983-94 Region name: Gambia Country code(s): GM Language group: 9983 Publisher(s): 80 - 94; 950 - 989; 9900 - 9999 9983-950 9983-989 9983-9900 9983-9999 9984-00 9984-49 Region name: Latvia Country code(s): LV Language group: 9984 Publisher(s): 00 - 49; 500 - 899; 9000 - 9999 9984-500 9984-899 9984-9000 9984-9999 9985-0 9985-4 Region name: Estonia Country code(s): EE Language group: 9985 Publisher(s): 0 - 4; 50 - 79; 800 - 899; 9000 - 9999 9985-50 9985-79 9985-800 9985-899 9985-9000 9985-9999 9986-00 9986-39 Region name: Lithuania Country code(s): LT Language group: 9986 Publisher(s): 00 - 39; 400 - 899; 9000 - 9399; 940 - 969; 97 - 99 9986-400 9986-899 9986-9000 9986-9399 9986-940 9986-969 9986-97 9986-99 9987-00 9987-39 Region name: Tanzania Country code(s): TZ Language group: 9987 Publisher(s): 00 - 39; 400 - 879; 8800 - 9999 9987-400 9987-879 9987-8800 9987-9999 9988-0 9988-2 Region name: Ghana Country code(s): GH Language group: 9988 Publisher(s): 0 - 2; 30 - 54; 550 - 749; 7500 - 9999 9988-40 9988-54 9988-550 9988-749 9988-7500 9988-9999 9989-0 9989-0 Region name: Macedonia Country code(s): MK Language group: 9989 Publisher(s): 0 - 0; 100 - 199; 2000 - 2999; 30 - 59; 600 - 949; 9500 - 9999 9989-100 9989-199 9989-2000 9989-2999 9989-30 9989-59 9989-600 9989-949 9989-9500 9989-9999 99901-00 99901-49 Region name: Bahrain Country code(s): BH Language group: 99901 Publisher(s): 00 - 49; 500 - 799; 80 - 99 99901-500 99901-799 99901-80 99901-99 99903-0 99903-1 Region name: Mauritius Country code(s): MU Language group: 99903 Publisher(s): 0 - 1; 20 - 89; 900 - 999 99903-20 99903-89 99903-900 99903-999 99904-0 99904-5 Region name: Curacao Country code(s): ?? Language group: 99904 Publisher(s): 0 - 5; 60 - 89; 900 - 999 99904-60 99904-89 99904-900 99904-999 99905-0 99905-3 Region name: Bolivia Country code(s): BO Language group: 99905 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99905-40 99905-79 99905-800 99905-999 99906-0 99906-2 Region name: Kuwait Country code(s): KW Language group: 99906 Publisher(s): 0 - 2; 30 - 59; 600 - 699; 70 - 89; 90 - 94; 950 - 999 99906-30 99906-59 99906-600 99906-699 99906-70 99906-89 99906-90 99906-94 99906-950 99906-999 99908-0 99908-0 Region name: Malawi Country code(s): MW Language group: 99908 Publisher(s): 0 - 0; 10 - 89; 900 - 999 99908-10 99908-89 99908-900 99908-999 99909-0 99909-3 Region name: Malta Country code(s): MT Language group: 99909 Publisher(s): 0 - 3; 40 - 94; 950 - 999 99909-40 99909-94 99909-950 99909-999 99910-0 99910-2 Region name: Sierra Leone Country code(s): SL Language group: 99910 Publisher(s): 0 - 2; 30 - 89; 900 - 999 99910-30 99910-89 99910-900 99910-999 99911-00 99911-59 Region name: Lesotho Country code(s): LS Language group: 99911 Publisher(s): 00 - 59; 600 - 999 99911-600 99911-999 99912-0 99912-3 Region name: Botswana Country code(s): BW Language group: 99912 Publisher(s): 0 - 3; 400 - 599; 60 - 89; 900 - 999 99912-400 99912-599 99912-60 99912-89 99912-900 99912-999 99913-0 99913-2 Region name: Andorra Country code(s): AD Language group: 99913 Publisher(s): 0 - 2; 30 - 35; 600 - 604 99913-30 99913-35 99913-600 99913-604 99914-0 99914-4 Region name: Suriname Country code(s): SR Language group: 99914 Publisher(s): 0 - 4; 50 - 89; 900 - 999 99914-50 99914-89 99914-7 99914-7 99914-80 99914-89 99914-900 99914-999 99915-0 99915-4 Region name: Maldives Country code(s): MV Language group: 99915 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99915-50 99915-79 99915-800 99915-999 99916-0 99916-2 Region name: Namibia Country code(s): NA Language group: 99916 Publisher(s): 0 - 2; 30 - 69; 700 - 999 99916-30 99916-69 99916-700 99916-999 99917-0 99917-2 Region name: Brunei Darussalam Country code(s): BN Language group: 99917 Publisher(s): 0 - 2; 30 - 89; 900 - 999 99917-30 99917-89 99917-890 99917-999 99918-0 99918-3 Region name: Faroe Islands Country code(s): FO Language group: 99918 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99918-40 99918-79 99918-800 99918-999 99919-0 99919-2 Region name: Benin Country code(s): BJ Language group: 99919 Publisher(s): 0 - 2; 300 - 399; 40 - 69; 70 - 79; 800 - 849; 850 - 899; 900 - 999 99919-300 99919-399 99919-40 99919-69 99919-800 99919-849 99920-0 99920-4 Region name: Andorra Country code(s): AD Language group: 99920 Publisher(s): 0 - 4; 50 - 89; 900 - 999 99920-50 99920-89 99920-900 99920-999 99921-0 99921-1 Region name: Qatar Country code(s): QA Language group: 99921 Publisher(s): 0 - 1; 20 - 69; 700 - 799; 8 - 8; 90 - 99 99921-20 99921-69 99921-700 99921-799 99921-8 99921-8 99921-90 99921-99 99922-0 99922-3 Region name: Guatemala Country code(s): GT Language group: 99922 Publisher(s): 0 - 3; 40 - 69; 700 - 999 99922-40 99922-69 99922-700 99922-999 99923-0 99923-1 Region name: El Salvador Country code(s): SV Language group: 99923 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99923-20 99923-79 99923-800 99923-999 99924-0 99924-1 Region name: Nicaragua Country code(s): NI Language group: 99924 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99924-20 99924-79 99924-800 99924-999 99925-0 99925-3 Region name: Paraguay Country code(s): PY Language group: 99925 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99925-10 99925-19 99925-200 99925-299 99925-3 99925-3 99925-40 99925-79 99925-800 99925-999 99926-0 99926-0 Region name: Honduras Country code(s): HN Language group: 99926 Publisher(s): 0 - 0; 10 - 59; 600 - 869; 87 - 89; 90 - 99 99926-10 99926-59 99926-600 99926-869 99926-87 99926-89 99926-90 99926-99 99927-0 99927-2 Region name: Albania Country code(s): AL Language group: 99927 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99927-30 99927-59 99927-600 99927-999 99928-0 99928-0 Region name: Georgia Country code(s): GE Language group: 99928 Publisher(s): 0 - 0; 10 - 79; 800 - 999 99928-10 99928-79 99928-800 99928-999 99929-0 99929-4 Region name: Mongolia Country code(s): MN Language group: 99929 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99929-50 99929-79 99929-800 99929-999 99930-0 99930-4 Region name: Armenia Country code(s): AM Language group: 99930 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99930-50 99930-79 99930-800 99930-999 99931-0 99931-4 Region name: Seychelles Country code(s): SC Language group: 99931 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99931-50 99931-79 99931-800 99931-999 99932-0 99932-0 Region name: Malta Country code(s): MT Language group: 99932 Publisher(s): 0 - 0; 10 - 59; 600 - 699; 7 - 7; 80 - 99 99932-10 99932-59 99932-600 99932-699 99932-7 99932-7 99932-80 99932-99 99933-0 99933-2 Region name: Nepal Country code(s): NP Language group: 99933 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99933-30 99933-59 99933-600 99933-999 99934-0 99934-1 Region name: Dominican Republic Country code(s): DO Language group: 99934 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99934-20 99934-79 99934-800 99934-999 99935-0 99935-2 Region name: Haiti Country code(s): HT Language group: 99935 Publisher(s): 0 - 2; 30 - 59; 600 - 699; 7 - 8; 90 - 99 99935-30 99935-59 99935-600 99935-699 99935-7 99935-8 99935-90 99935-99 99936-0 99936-0 Region name: Bhutan Country code(s): BT Language group: 99936 Publisher(s): 0 - 0; 10 - 59; 600 - 999 99936-10 99936-59 99936-600 99936-999 99937-0 99937-1 Region name: Macau Country code(s): MO Language group: 99937 Publisher(s): 0 - 1; 20 - 59; 600 - 999 99937-20 99937-59 99937-600 99937-999 99938-0 99938-1 Region name: Srpska, Republic of Country code(s): ?? Language group: 99938 Publisher(s): 0 - 1; 20 - 59; 600 - 899; 90 - 99 99938-20 99938-59 99938-600 99938-899 99938-90 99938-99 99939-0 99939-5 Region name: Guatemala Country code(s): GT Language group: 99939 Publisher(s): 0 - 5; 60 - 89; 900 - 999 99939-60 99939-89 99939-900 99939-999 99940-0 99940-0 Region name: Georgia Country code(s): GE Language group: 99940 Publisher(s): 0 - 0; 10 - 69; 700 - 999 99940-10 99940-69 99940-700 99940-999 99941-0 99941-2 Region name: Armenia Country code(s): AM Language group: 99941 Publisher(s): 0 - 2; 30 - 79; 800 - 999 99941-30 99941-79 99941-800 99941-999 99942-0 99942-4 Region name: Sudan Country code(s): SD Language group: 99942 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99942-50 99942-79 99942-800 99942-999 99943-0 99943-2 Region name: Albania Country code(s): AL Language group: 99943 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99943-30 99943-59 99943-600 99943-999 99944-0 99944-4 Region name: Ethiopia Country code(s): ET Language group: 99944 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99944-50 99944-79 99944-800 99944-999 99945-0 99945-5 Region name: Namibia Country code(s): NA Language group: 99945 Publisher(s): 0 - 5; 60 - 89; 900 - 999 99945-50 99945-89 99945-900 99945-999 99946-0 99946-2 Region name: Nepal Country code(s): NP Language group: 99946 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99946-30 99946-59 99946-600 99946-999 99947-0 99947-2 Region name: Tajikistan Country code(s): TJ Language group: 99947 Publisher(s): 0 - 2; 30 - 69; 700 - 999 99947-30 99947-69 99947-700 99947-999 99948-0 99948-4 Region name: Eritrea Country code(s): ER Language group: 99948 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99948-50 99948-79 99948-800 99948-999 99949-0 99949-1 Region name: Mauritius Country code(s): MU Language group: 99949 Publisher(s): 0 - 1; 20 - 89; 900 - 999 99949-20 99949-89 99949-900 99949-999 99950-0 99950-4 Region name: Cambodia Country code(s): KH Language group: 99950 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99950-50 99950-79 99950-800 99950-999 99952-0 99952-4 Region name: Mali Country code(s): ML Language group: 99952 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99952-50 99952-79 99952-800 99952-999 99953-0 99953-2 Region name: Paraguay Country code(s): PY Language group: 99953 Publisher(s): 0 - 2; 30 - 79; 800 - 939; 94 - 99 99953-30 99953-79 99953-800 99953-939 99953-94 99953-99 99954-0 99954-2 Region name: Bolivia Country code(s): BO Language group: 99954 Publisher(s): 0 - 2; 30 - 69; 700 - 879; 88 - 99 99954-30 99954-69 99954-700 99954-879 99954-88 99954-99 99955-0 99955-1 Region name: Srpska, Republic of Country code(s): ?? Language group: 99955 Publisher(s): 0 - 1; 20 - 59; 600 - 799; 80 - 99 99955-20 99955-59 99955-600 99955-799 99955-80 99955-99 99956-00 99956-59 Region name: Albania Country code(s): AL Language group: 99956 Publisher(s): 00 - 59; 600 - 859; 86 - 99 99956-600 99956-859 99956-86 99956-99 99957-0 99957-1 Region name: Malta Country code(s): MT Language group: 99957 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99957-20 99957-79 99957-800 99957-999 99957-95 99957-99 99958-0 99958-4 Region name: Bahrain Country code(s): BH Language group: 99958 Publisher(s): 0 - 4; 50 - 93; 940 - 949; 950 - 999 99958-50 99958-93 99958-940 99958-949 99958-950 99958-999 99959-0 99959-2 Region name: Luxembourg Country code(s): LU Language group: 99959 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99959-30 99959-59 99959-600 99959-999 99960-070 99960-099 Region name: Malawi Country code(s): MW Language group: 99960 Publisher(s): 070 - 099; 10 - 94; 950 - 999 99960-10 99960-94 99960-950 99960-999 99961-0 99961-3 Region name: El Salvador Country code(s): SV Language group: 99961 Publisher(s): 0 - 3; 40 - 89; 900 - 999 99961-300 99961-369 99961-37 99961-89 99961-900 99961-999 99962-0 99962-4 Region name: Mongolia Country code(s): MN Language group: 99962 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99962-50 99962-79 99962-800 99962-999 99963-00 99963-49 Region name: Cambodia Country code(s): KH Language group: 99963 Publisher(s): 00 - 49; 500 - 919; 92 - 99 99963-500 99963-919 99963-92 99963-99 99964-0 99964-1 Region name: Nicaragua Country code(s): NI Language group: 99964 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99964-20 99964-79 99964-800 99964-999 99965-0 99965-3 Region name: Macau Country code(s): MO Language group: 99965 Publisher(s): 0 - 3; 40 - 62; 630 - 999 99965-300 99965-359 99965-36 99965-62 99965-630 99965-999 99966-0 99966-2 Region name: Kuwait Country code(s): KW Language group: 99966 Publisher(s): 0 - 2; 30 - 69; 700 - 799; 80 - 94 99966-30 99966-69 99966-700 99966-799 99966-80 99966-94 99966-970 99966-999 99967-0 99967-1 Region name: Paraguay Country code(s): PY Language group: 99967 Publisher(s): 0 - 1; 20 - 59; 600 - 899 99967-10 99967-59 99967-600 99967-899 99968-0 99968-3 Region name: Botswana Country code(s): BW Language group: 99968 Publisher(s): 0 - 3; 400 - 599; 60 - 89; 900 - 999 99968-400 99968-599 99968-60 99968-89 99968-900 99968-999 99969-0 99969-4 Region name: Oman Country code(s): OM Language group: 99969 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99969-50 99969-79 99969-800 99969-999 99970-0 99970-4 Region name: Haiti Country code(s): HT Language group: 99970 Publisher(s): 0 - 4; 50 - 89; 900 - 999 99970-50 99970-89 99970-900 99970-999 99971-0 99971-5 Region name: Myanmar Country code(s): MM Language group: 99971 Publisher(s): 0 - 5; 60 - 84; 850 - 999 99971-40 99971-84 99971-850 99971-999 99972-0 99972-4 Region name: Faroe Islands Country code(s): FO Language group: 99972 Publisher(s): 0 - 4; 50 - 89; 900 - 999 99972-50 99972-89 99972-900 99972-999 99973-0 99973-3 Region name: Mongolia Country code(s): MN Language group: 99973 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99973-40 99973-79 99973-800 99973-999 99974-0 99974-0 Region name: Bolivia Country code(s): BO Language group: 99974 Publisher(s): 0 - 0; 10 - 25; 260 - 399; 40 - 63; 640 - 649; 65 - 79; 800 - 999 99974-10 99974-25 99974-260 99974-399 99974-40 99974-79 Region name: Bolivia Country code(s): BO Language group: 99974 Publisher(s): 40 - 79; 800 - 999 99974-640 99974-649 99974-65 99974-79 99974-800 99974-999 99975-0 99975-3 Region name: Tajikistan Country code(s): TJ Language group: 99975 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99975-300 99975-399 99975-40 99975-79 99975-800 99975-999 99976-0 99976-1 Region name: Srpska, Republic of Country code(s): ?? Language group: 99976 Publisher(s): 0 - 1; 20 - 59; 600 - 799 99976-20 99976-59 99976-600 99976-799 99976-900 99976-999 99977-0 99977-1 Region name: Rwanda Country code(s): RW Language group: 99977 Publisher(s): 0 - 1; 40 - 69; 700 - 799 99977-40 99977-69 99977-700 99977-799 99977-995 99977-999 99978-0 99978-4 Region name: Mongolia Country code(s): MN Language group: 99978 Publisher(s): 0 - 4; 50 - 69; 700 - 999 99978-50 99978-69 99978-700 99978-999 99979-0 99979-4 Region name: Honduras Country code(s): HN Language group: 99979 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99979-50 99979-79 99979-800 99979-999 99980-0 99980-0 Region name: Bhutan Country code(s): BT Language group: 99980 Publisher(s): 0 - 0; 30 - 59; 800 - 999 99980-30 99980-59 99980-800 99980-999 99981-0 99981-1 Region name: Macau Country code(s): MO Language group: 99981 Publisher(s): 0 - 1; 30 - 59; 800 - 999 99981-30 99981-59 99981-800 99981-999 99982-0 99982-0 Region name: Benin Country code(s): BJ Language group: 99982 Publisher(s): 0 - 0; 50 - 65; 900 - 979 99982-50 99982-65 99982-900 99982-979 99983-0 99983-0 Region name: El Salvador Country code(s): SV Language group: 99983 Publisher(s): 0 - 0; 50 - 69; 950 - 999 99983-50 99983-69 99983-950 99983-999 99985-55 99985-59 Region name: Tajikistan Country code(s): TJ Language group: 99985 Publisher(s): 55 - 59; 950 - 999 99985-950 99985-999 99986-0 99986-0 Region name: Myanmar Country code(s): MM Language group: 99986 Publisher(s): 0 - 0; 50 - 69; 950 - 999 99986-50 99986-69 99986-950 99986-999 99987-850 99987-999 Region name: Luxembourg Country code(s): LU Language group: 99987 Publisher(s): 850 - 999 10-00 10-19 Region name: France Country code(s): FR Language group: 10 Publisher(s): 00 - 19; 200 - 699; 7000 - 8999; 90000 - 97599; 976000 - 999999 10-200 10-699 10-7000 10-8999 10-90000 10-97599 10-976000 10-999999 11-00 11-24 Region name: Korea, Republic Country code(s): KR Language group: 11 Publisher(s): 00 - 24; 250 - 549; 5500 - 8499; 85000 - 94999; 950000 - 999999 11-250 11-549 11-5500 11-8499 11-85000 11-94999 11-950000 11-999999 12-200 12-200 Region name: Italy Country code(s): IT Language group: 12 Publisher(s): 200 - 200 12-5950 12-5999 12-80000 12-84999 8-200 8-219 Region name: United States Country code(s): US Language group: 8 Publisher(s): 200 - 219; 5500 - 7499; 9850000 - 9850009 8-5500 8-7499 8-9850000 8-9850009 0-315 0-315 [24-Sep-2015] Updated list from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 0-458 0-459 0-612 0-612 0-616 0-616 0-660 0-660 0-662 0-662 0-665 0-665 0-7700 0-7799 0-86488 0-86507 0-88500 0-88668 0-88750 0-88999 0-919000 0-921999 0-9680000 0-9699999 0-9730000 0-9739999 0-9583000 0-9583049 Region name: Gibraltar Country code(s): GI Language group: 0 Publisher(s): 9583000 - 9583049 0-9633400 0-9633499 Region name: Puerto Rico Country code(s): PR Language group: 0 Publisher(s): 9633400 - 9633499 0-620 0-629 Region name: South Africa Country code(s): ZA Language group: 0 Publisher(s): 620 - 629 ; 636 - 639 ; 7954 - 7973 ; 7975 - 7999 ; 86483 - 86487 ; 86808 - 86817 ; 86843 - 86852 ; 86873 - 86887 ; 86950 - 86999 ; 907980 - 907999 ; 908352 - 908409 ; 909060 - 909079 ; 909230 - 909239 ; 947000 - 947059 ; 949934 - 949998 ; 9583050 - 9583249 ; 9583750 - 9585149 0-636 0-639 0-7021 0-7021 [24-Sep-2015] Addition from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 0-7954 0-7973 0-7975 0-7977 0-7979 0-7998 0-9583750 0-9585149 Region name: Swaziland Country code(s): SZ Language group: 0 Publisher(s): ??????? - ??????? 0-7974 0-7974 Region name: Zimbabwe Country code(s): ZW Language group: 0 Publisher(s): 7974 ; 86918 - 86929 ; 908300 - 908305 ; 949225 - 949933 0-86918 0-86929 0-908300 0-908305 0-949225 0-949933 1-86250 1-86799 1-875100 1-877099 1-920680 1-926429 1-894000 1-896999 [24-Sep-2015] Additions from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 1-897000 1-897579 1-919655 1-919679 Region name: Gibraltar Country code(s): GI Language group: 1 Publisher(s): 919655 - 919679 1-86930 1-86979 Region name: New Zealand Country code(s): NZ Language group: 1 Publisher(s): 86930 - 86979 ; 877130 - 877579 1-877130 1-877579 1-881700 1-881749 Region name: Puerto Rico Country code(s): PR Language group: 1 Publisher(s): 881700 - 881749 1-4150 1-4154 [24-Sep-2015] Additions from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 1-77000 1-77019 1-919680 1-920679 Region name: United Kingdom Country code(s): GB Language group: 1 Publisher(s): 84000 - 86249 ; 869800 - 874799 ; 897580 - 919679 1-4050 1-4099 [24-Sep-2015] Updated list from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 1-84000 1-85122 1-85124 1-86249 1-871032 1-874799 1-897580 1-919654 1-952246 1-952246 1-987807 1-987807 1-4000 1-5499 1-4100 1-4149 1-55500 1-59999 1-871031 1-871031 1-877580 1-897579 1-928530 1-952245 1-952247 1-987806 1-987808 1-998999 1-77900 1-77919 Region name: Zimbabwe Country code(s): ZW Language group: 1 Publisher(s): 77900 - 77919 ; 877100 - 877129 1-877100 1-877129 2-500 2-549 Region name: Belgium Country code(s): BE Language group: 2 Publisher(s): 500 - 549 ; 8000 - 8249 ; 87000 - 87949 ; 930000 - 939999 ; 9600000 - 9699999 2-8000 2-8249 2-87000 2-87949 2-930000 2-939999 2-9600000 2-9699999 2-550 2-599 Region name: Canada Country code(s): CA Language group: 2 Publisher(s): 550 - 599 ; 7600 - 7653 ; 7655 - 7776 ; 7778 - 7999 ; 89000 - 89999 ; 920000 - 929999 ; 9800000 - 9999999 2-7600 2-7653 2-7655 2-7776 2-7778 2-7999 2-89000 2-89999 2-920000 2-929999 2-9800000 2-9999999 2-87950 2-87999 2-919769 2-919999 2-9599769 2-9599999 2-600 2-699 Region name: Switzerland (French speaking) Country code(s): CH Language group: 2 Publisher(s): 600 - 699 ; 8250 - 8399 ; 88000 - 88999 ; 940000 - 949999 ; 9700000 - 9799999 2-8250 2-8399 2-88000 2-88999 2-940000 2-949999 2-9700000 2-9799999 3-01 3-02 Region name: Austria Country code(s): AT Language group: 3 Publisher(s): 01 - 02 ; 200 - 249 ; 7000 - 7149 ; 85000 - 85499 ; 900000 - 904999 ; 9500000 - 9519999 3-05 3-19 3-320 3-379 3-400 3-699 3-7300 3-8499 [24-Sep-2015] Updates from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 3-86000 3-89999 3-250 3-319 3-7150 3-7299 3-85500 3-85999 3-905000 3-909999 3-9520000 3-9539999 5-00 5-19 Region name: Armenia Country code(s): AM Language group: 5 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 89999 ; 800000 - 919999 5-800000 5-919999 5-950000 5-979999 5-9800000 5-9999999 86-7000 86-7999 88-7000 88-8499 952-89 952-94 953-96000 953-99999 954-9500 954-9999 955-0 955-1 Region name: Sri Lanka Country code(s): LK Language group: 955 Publisher(s): 0 - 1 ; 20 - 54 ; 550 - 799 ; 8000 - 9499 ; 95000 - 99999 955-8000 955-9499 957-30000 957-30999 966-500 966-699 967-0 967-5 Region name: Malaysia Country code(s): MY Language group: 967 Publisher(s): 0 - 5 ; 60 - 89 ; 900 - 989 ; 9900 - 9989 ; 99900 - 99999 968-10 968-39 Region name: Mexico Country code(s): MX Language group: 968 Publisher(s): 10 - 39 ; 400 - 499 ; 5000 - 7999 ; 800 - 899 969-8000 969-9999 970-00 970-59 Region name: Mexico Country code(s): MX Language group: 970 Publisher(s): 00 - 59 ; 600 - 899 ; 9000 - 9099 ; 91000 - 99999 971-00 971-49 Region name: Philippines Country code(s): PH Language group: 971 Publisher(s): 00 - 49 ; 500 - 849 ; 8500 - 9099 ; 91000 - 99999 973-8000 973-8499 975-00 975-29 Region name: Turkey Country code(s): TR Language group: 975 Publisher(s): 00 - 29 ; 300 - 599 ; 6000 - 9199 ; 92000 - 97999 975-300 975-599 977-70000 977-99999 986-200 986-559 986-5600 986-7999 986-8000 986-99999 9955-9000 9955-9999 9958-0 9958-0 Region name: Bosnia and Herzegovina Country code(s): BA Language group: 9958 Publisher(s): 0 ; 10 - 49 ; 500 - 899 ; 9000 - 9999 9961-50 9961-79 9961-800 9961-949 9966-00 9966-69 Region name: Kenya Country code(s): KE Language group: 9966 Publisher(s): 00 - 69 ; 800 - 959 ; 9600 - 9999 9966-800 9966-959 9968-0 9968-0 Region name: Costa Rica Country code(s): CR Language group: 9968 Publisher(s): 0 ; 10 - 69 ; 700 - 969 ; 9700 - 9999 9968-10 9968-69 9968-700 9968-969 9968-9700 9968-9999 9972-40 9972-59 9973-0 9973-0 Region name: Tunisia Country code(s): TN Language group: 9973 Publisher(s): 0 ; 10 - 69 ; 700 - 969 ; 9700 - 9999 9975-50 9975-89 9976-60 9976-89 9976-9990 9976-9999 9988-30 9988-54 9989-8500 9989-9999 99917-900 99917-999 99918-900 99918-999 99919-900 99919-999 99922-50 99922-79 99922-800 99922-900 99924-30 99924-79 99938-30 99938-59 1-00 1-09 Region name: English language Country code(s): ?? Language group: 1 Publisher(s): 00 - 09; 100 - 399; 4000 - 5499; 55000 - 86979; 869800 - 998999; 9990000 - 9999999 1-9990000 1-9999999 3-99000 3-99499 3-99500 3-99999 602-0800 602-0899 602-0900 602-1099 602-1100 602-1199 602-1200 602-1399 602-18000 602-18999 602-19000 602-19999 602-6750 602-6999 602-8000 602-9499 605-01 605-02 Region name: Turkey Country code(s): TR Language group: 605 Publisher(s): 01 - 02; 030 - 039; 04 - 09; 100 - 399; 4000 - 5999; 60000 - 89999; 9000 - 9999 606-0 606-0 Region name: Romania Country code(s): RO Language group: 606 Publisher(s): 0 - 0; 10 - 49; 500 - 799; 8000 - 9199; 92000 - 99999 606-10 606-49 612-50 612-99 88-9300 88-9399 88-95000 88-99999 955-44000 955-44999 955-7500 955-7999 958-57000 958-59999 988-15000 988-16999 988-17000 988-19999 9940-9000 9940-9999 9949-0 9949-0 Region name: Estonia Country code(s): EE Language group: 9949 Publisher(s): 0 - 0; 10 - 39; 400 - 749; 75 - 89; 9000 - 9999 99919-70 99919-79 99919-850 99919-899 99945-60 99945-89 99960-0 99960-0 Region name: Malawi Country code(s): MW Language group: 99960 Publisher(s): 0 - 0; 10 - 94; 950 - 999 99961-40 99961-89 99965-40 99965-62 99967-20 99967-59 99971-60 99971-84 bibclean-3.07/test/okay/testopth.out0000444000156700015670000000000107342757570016436 0ustar beebebeebe bibclean-3.07/test/okay/testoptq.err0000444000156700015670000000045612072343023016422 0ustar beebebeebe%% testoptq.bib:79:Final period/dot/fullstop is unexpected, and often wrong, in BibTeX title ``"Baidoties no ekonomikas recesijas, kas skartu visu pasauli, amerik{\=a}{\c{n}}i izv{\=e}las pl{\=a}noto taup{\=\i}{\v{s}}anu atcelt l{\=\i}dz febru{\=a}rim. Mekl{\=e}s citu br{\=\i}numn{\=u}ji{\c{n}}u."''. bibclean-3.07/test/okay/topt355.out0000444000156700015670000000000112470143231015764 0ustar beebebeebe bibclean-3.07/test/okay/testscr1.blg0000444000156700015670000000457507342750521016302 0ustar beebebeebeI was expecting a `{' or a `('---line 2 of file testscr1.bib : : This file contains a sample set of bibliography data base entries in (Error may have been on previous line) I'm skipping whatever remains of this entry """ immediately follows a field part---line 30 of file testscr1.bib : key = < : "Outer and inner " quotes">, I'm skipping whatever remains of this entry Warning--string name "ntg" is undefined --line 49 of file testscr1.bib I was expecting a `,' or a `)'---line 55 of file testscr1.bib : annote = [Contains : reviews of ``\LaTeX{} for Everyone'' I'm skipping whatever remains of this entry Warning--string name "[book" is undefined --line 64 of file testscr1.bib I was expecting a `,' or a `)'---line 64 of file testscr1.bib : title = [book : reviews: {Jane Hahn, {\LaTeX} for Everyone}; I'm skipping whatever remains of this entry Warning--string name "london" is undefined --line 221 of file testscr1.bib Warning--string name "" is undefined --line 227 of file testscr1.bib Warning--string name "`singer-portion-chapter`" is undefined --line 275 of file testscr1.bib You're missing a field part---line 288 of file testscr1.bib : key = : 'singer-portion-volume', I'm skipping whatever remains of this entry Warning--string name "[unknown]" is undefined --line 371 of file testscr1.bib Warning--to sort, need author or key in Adomaitis79Computer Warning--to sort, need author or key in singer-portion-chapter Warning--to sort, need author or key in singer-portion-volume Warning--empty author in Adomaitis79Computer Warning--empty title in Adomaitis79Computer Warning--empty booktitle in Adomaitis79Computer Warning--empty year in Adomaitis79Computer Warning--empty author in singer-portion-volume Warning--empty booktitle in singer-portion-volume Warning--empty publisher in singer-portion-volume Warning--empty year in singer-portion-volume Warning--empty author in singer-portion-chapter Warning--empty publisher in BCM-59 Warning--empty publisher in hanson-67 Warning--can't use both volume and number fields in kendeigh-52 Warning--empty title in tub:NPo92b Warning--empty journal in tub:NPo92b Warning--empty year in tub:NPo92b Warning--empty journal in ntg:PH92 Warning--empty institution in winget-67 Warning--can't use both author and editor fields in wright-63 (There were 5 error messages) bibclean-3.07/test/okay/topt151.err0000444000156700015670000000000012470142673015747 0ustar beebebeebebibclean-3.07/test/okay/topt168.out0000444000156700015670000000000012470142674015777 0ustar beebebeebebibclean-3.07/test/okay/testbib3.err0000444000156700015670000000017213565544456016276 0ustar beebebeebe%% testbib3.bib:69:Unexpected value in ``month = "Janu."''. %% testbib3.bib:88:Unexpected value in ``month = "unknown"''. bibclean-3.07/test/okay/topt327.out0000444000156700015670000000000112470143225015766 0ustar beebebeebe bibclean-3.07/test/okay/topt123.err0000444000156700015670000000000012470142673015746 0ustar beebebeebebibclean-3.07/test/okay/testopt8.err0000444000156700015670000001122513565266665016355 0ustar beebebeebe%%% keyword mappings ansi-standard-number ANSI-standard-number book-doi book-DOI book-url book-URL coden CODEN doi DOI ieee-standard-number IEEE-standard-number isbn ISBN journal-url journal-URL isbn-13 ISBN-13 iso-standard-number ISO-standard-number issn ISSN issn-l ISSN-L lccn LCCN mrclass MRclass mrnumber MRnumber mrreviewer MRreviewer uri URI url URL urn URN xxansi-standard-number xxANSI-standard-number xxcoden xxCODEN xxdoi xxDOI xxieee-standard-number xxIEEE-standard-number xxisbn xxISBN xxiso-standard-number xxISO-standard-number xxissn xxISSN xxmrclass xxMRclass xxmrnumber xxMRnumber xxmrreviewer xxMRreviewer xxuri xxURI xxurl xxURL xxurn xxURN zmclass ZMclass zmnumber ZMnumber zmreviewer ZMreviewer optcoden OPTCODEN optissn OPTISSN optisbn OPTISBN optlccn OPTLCCN urlpublisher URLpublisher urlseries URLseries warning WARNING xmldata XMLdata ecmanumber ECMAnumber crclass CRclass crnumber CRnumber xxlccn xxLCCN ean EAN dewey DEWEY schilpp-number Schilpp-number whittaker-number Whittaker-number pacs PACS calaprice-number Calaprice-number mrtitle MRtitle mryear MRyear asnumber ASnumber pmnumber PMnumber hdnumber HDnumber adsurl URL adsnote OPTadsnote lsnumber LSnumber ksnumber KSnumber aclp-number ACLP-number bc-number BC-number cp-number CP-number rep-number REP-number series-url series-URL mrauthor MRauthor zbl ZMnumber msc2010 MRnumber abstract-url abstract-URL ismn ISMN orcid-numbers ORCID-numbers scopus-author-id SCOPUS-author-ID bibclean-3.07/test/okay/topt310.err0000444000156700015670000000000012470142674015745 0ustar beebebeebebibclean-3.07/test/okay/testoptf.out0000444000156700015670000000000107342757232016427 0ustar beebebeebe bibclean-3.07/test/okay/topt114.out0000444000156700015670000000000112470143210015752 0ustar beebebeebe bibclean-3.07/test/okay/testopta.out0000444000156700015670000000000107342757231016421 0ustar beebebeebe bibclean-3.07/test/okay/topt317.err0000444000156700015670000000000012470142675015755 0ustar beebebeebebibclean-3.07/test/okay/topt113.out0000444000156700015670000000000112470143210015751 0ustar beebebeebe bibclean-3.07/test/okay/testoptx.err0000444000156700015670000005632112470141214016433 0ustar beebebeebefile=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 19dd"] file=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 19dd"] file=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 20dd"] file=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd aaa 20dd"] file=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 20dd"] file=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 19dd"] file=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 20dd"] file=[/usr/local/bin/.bibcleanrc] field=[chapter ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[chapter ] pattern=["D"] file=[/usr/local/bin/.bibcleanrc] field=[chapter ] pattern=["D-D"] file=[/usr/local/bin/.bibcleanrc] field=[month ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # " D"] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # " D--D"] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=["D " # aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=["D--D " # aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # "" # aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # "--" # aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # " -- " # aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # "/" # aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # " A " # aaa] file=[/usr/local/bin/.bibcleanrc] field=[number ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A AD"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A D(D)"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A D\.D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-A-D-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-A-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-A-D\.D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-AD-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-D D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-D-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["AD-D-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["AD-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["AD"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A\#D-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D \an\d D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D+D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D+D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D/D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["DA"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D\.D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["W-W W"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["W-W-WW-W"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["W"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["X"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D--D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD--aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D, D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD, aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D, D, D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD, aD, aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D, D, D, D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD, aD, aD, aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["R + D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["R + D, w D w"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D, w D w"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D--D, D--D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D--D, D--D, D--D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD--aD, aD--aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD--aD, aD--aD, aD--aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["??--??"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["????"] file=[/usr/local/bin/.bibcleanrc] field=[price ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[price ] pattern=["AD\.dd"] file=[/usr/local/bin/.bibcleanrc] field=[price ] pattern=["D\.dd"] message[Put country prefix on price %v] file=[/usr/local/bin/.bibcleanrc] field=[price ] pattern=["AD"] file=[/usr/local/bin/.bibcleanrc] field=[price ] pattern=["D"] message[Put country prefix on price %v] file=[/usr/local/bin/.bibcleanrc] field=[tag ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[tag ] pattern=[A:Add] file=[/usr/local/bin/.bibcleanrc] field=[tag ] pattern=[A:Adda] file=[/usr/local/bin/.bibcleanrc] field=[volume ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["D"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["DA"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["D/D"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["DA D"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["w-D"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["A"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["D.D"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["D \an\d D"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["W"] file=[/usr/local/bin/.bibcleanrc] field=[year ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dd, 19dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dd, 19dd, 19dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dda19dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["18dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["18dd, 18dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["18dd, 18dd, 18dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["18dda18dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dd (19dd)"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dd" # "--"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["20dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["18dd--d"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dd--d"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["20dd--d"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["20dd--d"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 20dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd aaa 20dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 20dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 20dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[chapter ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[chapter ] pattern=["D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[chapter ] pattern=["D-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # " D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # " D--D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=["D " # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=["D--D " # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # "" # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # "--" # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # " -- " # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # "/" # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # " A " # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A AD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A D(D)"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A D\.D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-A-D-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-A-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-A-D\.D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-AD-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-D D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-D-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["AD-D-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["AD-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["AD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A\#D-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D \an\d D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D+D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D+D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D/D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["DA"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D\.D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["W-W W"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["W-W-WW-W"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["W"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["X"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D--D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD--aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D, D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD, aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D, D, D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD, aD, aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D, D, D, D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD, aD, aD, aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["R + D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["R + D, w D w"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D, w D w"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D--D, D--D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D--D, D--D, D--D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD--aD, aD--aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD--aD, aD--aD, aD--aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["??--??"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["????"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[price ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[price ] pattern=["AD\.dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[price ] pattern=["D\.dd"] message[Put country prefix on price %v] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[price ] pattern=["AD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[price ] pattern=["D"] message[Put country prefix on price %v] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[tag ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[tag ] pattern=[A:Add] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[tag ] pattern=[A:Adda] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["DA"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["D/D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["DA D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["w-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["A"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["D.D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["D \an\d D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["W"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dd, 19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dd, 19dd, 19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dda19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["18dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["18dd, 18dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["18dd, 18dd, 18dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["18dda18dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dd (19dd)"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dd" # "--"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["20dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["18dd--d"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dd--d"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["20dd--d"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["20dd--d"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 19dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 19dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 20dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd aaa 20dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 20dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 19dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 20dd"] file=[../bibclean.ini] field=[chapter ] existing patterns discarded file=[../bibclean.ini] field=[chapter ] pattern=["D"] file=[../bibclean.ini] field=[chapter ] pattern=["D-D"] file=[../bibclean.ini] field=[month ] existing patterns discarded file=[../bibclean.ini] field=[month ] pattern=[aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # " D"] file=[../bibclean.ini] field=[month ] pattern=[aaa # " D--D"] file=[../bibclean.ini] field=[month ] pattern=["D " # aaa] file=[../bibclean.ini] field=[month ] pattern=["D--D " # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # "" # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # "--" # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # " -- " # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # "/" # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # " A " # aaa] file=[../bibclean.ini] field=[number ] existing patterns discarded file=[../bibclean.ini] field=[number ] pattern=["D"] file=[../bibclean.ini] field=[number ] pattern=["A AD"] file=[../bibclean.ini] field=[number ] pattern=["A D(D)"] file=[../bibclean.ini] field=[number ] pattern=["A D"] file=[../bibclean.ini] field=[number ] pattern=["A D\.D"] file=[../bibclean.ini] field=[number ] pattern=["A-A-D-D"] file=[../bibclean.ini] field=[number ] pattern=["A-A-D"] file=[../bibclean.ini] field=[number ] pattern=["A-A-D\.D"] file=[../bibclean.ini] field=[number ] pattern=["A-AD-D"] file=[../bibclean.ini] field=[number ] pattern=["A-D D"] file=[../bibclean.ini] field=[number ] pattern=["A-D-D"] file=[../bibclean.ini] field=[number ] pattern=["A-D"] file=[../bibclean.ini] field=[number ] pattern=["AD-D-D"] file=[../bibclean.ini] field=[number ] pattern=["AD-D"] file=[../bibclean.ini] field=[number ] pattern=["AD"] file=[../bibclean.ini] field=[number ] pattern=["A\#D-D"] file=[../bibclean.ini] field=[number ] pattern=["D \an\d D"] file=[../bibclean.ini] field=[number ] pattern=["D+D"] file=[../bibclean.ini] field=[number ] pattern=["D+D"] file=[../bibclean.ini] field=[number ] pattern=["D-D"] file=[../bibclean.ini] field=[number ] pattern=["D/D"] file=[../bibclean.ini] field=[number ] pattern=["D D"] file=[../bibclean.ini] field=[number ] pattern=["DA"] file=[../bibclean.ini] field=[number ] pattern=["D\.D"] file=[../bibclean.ini] field=[number ] pattern=["W-W W"] file=[../bibclean.ini] field=[number ] pattern=["W-W-WW-W"] file=[../bibclean.ini] field=[number ] pattern=["W"] file=[../bibclean.ini] field=[number ] pattern=["X"] file=[../bibclean.ini] field=[pages ] existing patterns discarded file=[../bibclean.ini] field=[pages ] pattern=["D"] file=[../bibclean.ini] field=[pages ] pattern=["aD"] file=[../bibclean.ini] field=[pages ] pattern=["D--D"] file=[../bibclean.ini] field=[pages ] pattern=["aD--aD"] file=[../bibclean.ini] field=[pages ] pattern=["D, D"] file=[../bibclean.ini] field=[pages ] pattern=["aD, aD"] file=[../bibclean.ini] field=[pages ] pattern=["D, D, D"] file=[../bibclean.ini] field=[pages ] pattern=["aD, aD, aD"] file=[../bibclean.ini] field=[pages ] pattern=["D, D, D, D"] file=[../bibclean.ini] field=[pages ] pattern=["aD, aD, aD, aD"] file=[../bibclean.ini] field=[pages ] pattern=["R + D"] file=[../bibclean.ini] field=[pages ] pattern=["R + D, w D w"] file=[../bibclean.ini] field=[pages ] pattern=["D, w D w"] file=[../bibclean.ini] field=[pages ] pattern=["D--D, D--D"] file=[../bibclean.ini] field=[pages ] pattern=["D--D, D--D, D--D"] file=[../bibclean.ini] field=[pages ] pattern=["aD--aD, aD--aD"] file=[../bibclean.ini] field=[pages ] pattern=["aD--aD, aD--aD, aD--aD"] file=[../bibclean.ini] field=[pages ] pattern=["??--??"] file=[../bibclean.ini] field=[pages ] pattern=["????"] file=[../bibclean.ini] field=[price ] existing patterns discarded file=[../bibclean.ini] field=[price ] pattern=["AD\.dd"] file=[../bibclean.ini] field=[price ] pattern=["D\.dd"] message[Put country prefix on price %v] file=[../bibclean.ini] field=[price ] pattern=["AD"] file=[../bibclean.ini] field=[price ] pattern=["D"] message[Put country prefix on price %v] file=[../bibclean.ini] field=[tag ] existing patterns discarded file=[../bibclean.ini] field=[tag ] pattern=[A:Add] file=[../bibclean.ini] field=[tag ] pattern=[A:Adda] file=[../bibclean.ini] field=[volume ] existing patterns discarded file=[../bibclean.ini] field=[volume ] pattern=["D"] file=[../bibclean.ini] field=[volume ] pattern=["DA"] file=[../bibclean.ini] field=[volume ] pattern=["D/D"] file=[../bibclean.ini] field=[volume ] pattern=["DA D"] file=[../bibclean.ini] field=[volume ] pattern=["w-D"] file=[../bibclean.ini] field=[volume ] pattern=["A"] file=[../bibclean.ini] field=[volume ] pattern=["D.D"] file=[../bibclean.ini] field=[volume ] pattern=["D \an\d D"] file=[../bibclean.ini] field=[volume ] pattern=["W"] file=[../bibclean.ini] field=[year ] existing patterns discarded file=[../bibclean.ini] field=[year ] pattern=["19dd"] file=[../bibclean.ini] field=[year ] pattern=["19dd, 19dd"] file=[../bibclean.ini] field=[year ] pattern=["19dd, 19dd, 19dd"] file=[../bibclean.ini] field=[year ] pattern=["19dda19dd"] file=[../bibclean.ini] field=[year ] pattern=["18dd"] file=[../bibclean.ini] field=[year ] pattern=["18dd, 18dd"] file=[../bibclean.ini] field=[year ] pattern=["18dd, 18dd, 18dd"] file=[../bibclean.ini] field=[year ] pattern=["18dda18dd"] file=[../bibclean.ini] field=[year ] pattern=["19dd (19dd)"] file=[../bibclean.ini] field=[year ] pattern=["19dd" # "--"] file=[../bibclean.ini] field=[year ] pattern=["20dd"] file=[../bibclean.ini] field=[year ] pattern=["18dd--d"] file=[../bibclean.ini] field=[year ] pattern=["19dd--d"] file=[../bibclean.ini] field=[year ] pattern=["20dd--d"] file=[../bibclean.ini] field=[year ] pattern=["20dd--d"] Author: Nelson H. F. Beebe University of Utah Department of Mathematics, 110 LCB 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA Tel: +1 801 581 5254 FAX: +1 801 581 4148 Email: beebe@math.utah.edu, beebe@acm.org, beebe@computer.org (Internet) bibclean-3.07/test/okay/topt158.err0000444000156700015670000000000012470142673015756 0ustar beebebeebebibclean-3.07/test/okay/testbib4.err0000444000156700015670000000000005335511464016252 0ustar beebebeebebibclean-3.07/test/okay/topt320.out0000444000156700015670000000000012470142675015766 0ustar beebebeebebibclean-3.07/test/okay/topt124.err0000444000156700015670000000000012470142673015747 0ustar beebebeebebibclean-3.07/test/okay/testscr4.bbl0000444000156700015670000000141007342750523016263 0ustar beebebeebe\begin{thebibliography}{1} \bibitem{COMMENT} \bibitem{bs-1629-4} Bibliographic references. \newblock Technical Report 1629, British Standards Institution, 1976. \bibitem{bs-1629-5} Bibliographic references. \newblock Technical Report 1629, British Standards Institution, 1976. \bibitem{bs-1629-0} BSI. \newblock Bibliographic references. \newblock BS 1629, British Standards Institution, 1976. \bibitem{bs-1629-1} BSI. \newblock Bibliographic references. \newblock BS 1629, British Standards Institution, 1976. \bibitem{bs-1629-2} BSI. \newblock Bibliographic references. \newblock BS 1629, British Standards Institution, 1976. \bibitem{bs-1629-3} BSI. \newblock Bibliographic references. \newblock BS 1629, British Standards Institution, 1976. \end{thebibliography} bibclean-3.07/test/okay/topt332.err0000444000156700015670000000000012470142676015753 0ustar beebebeebebibclean-3.07/test/okay/topt136.out0000444000156700015670000000000112470143216015764 0ustar beebebeebe bibclean-3.07/test/okay/testoptu.win0000444000156700015670000001630612111751011016426 0ustar beebebeebe@Misc{Blow:2013:Ea, author = "Joe Blow", title = "{O($^3$P) $+$ CH$_3$SH} reactions", expect = "{O($^3$P) $+$ CH$_3$SH} reactions", year = "2013", } @Misc{Blow:2013:Eb, author = "Joe Blow", title = "The {ENIAC}'s 1949 Determination of $ \pi $", expect = "The {ENIAC}'s 1949 Determination of $ \pi $", year = "2013", } @Misc{Blow:2013:Ec, author = "Joe Blow", title = "A Course in the Geometry of $n$-Dimensions", expect = "A Course in the Geometry of $n$-Dimensions", year = "2013", } @Misc{Blow:2013:Ed, author = "Joe Blow", title = "Compression of {$3$D} Points", expect = "Compression of {$3$D} Points", year = "2013", } @Misc{Blow:2013:Ee, author = "Joe Blow", title = "{P$^2$SNR}: Perceptual Full-Reference Image Quality Assessment for {JPEG2000}", expect = "{P$^2$SNR}: Perceptual Full-Reference Image Quality Assessment for {JPEG2000}", year = "2013", } @Misc{Blow:2013:Eg, author = "Joe Blow", title = "{$ P_0 $}-Matrix Products of Matrices", expect = "{$ P_0 $}-Matrix Products of Matrices", year = "2013", } @Misc{Blow:2013:Eh, author = "Joe Blow", title = "Atomic Intentions in {Jason$^+$}", expect = "Atomic Intentions in {Jason$^+$}", year = "2013", } @Misc{Blow:2013:Ei, author = "Joe Blow", title = "{GENote} v. $ \beta $: a {Web} Tool Prototype", expect = "{GENote} v. $ \beta $: a {Web} Tool Prototype", year = "2013", } @Misc{Blow:2013:Ej, author = "Joe Blow", title = "{Polyakov} Action on {$ (\rho, G) $}-Functions", expect = "{Polyakov} Action on {$ (\rho, G) $}-Functions", year = "2013", } @Misc{Blow:2013:Ek, author = "Joe Blow", title = "A New Class of $ \epsilon $-Optimal Learning Automata", expect = "A New Class of $ \epsilon $-Optimal Learning Automata", year = "2013", } @Misc{Blow:2013:El, author = "Joe Blow", title = "Example of {$R$} Functions Management", expect = "Example of {$R$} Functions Management", year = "2013", } @Misc{Blow:2013:Em, author = "Joe Blow", title = "{$ H_\infty $} Output Tracking Control", expect = "{$ H_\infty $} Output Tracking Control", year = "2013", } @Misc{Blow:2013:En, author = "Joe Blow", title = "Ameliorating {$ {\rm GM}(1, 1) $} Model", expect = "Ameliorating {$ {\rm GM}(1, 1) $} Model", year = "2013", } @Misc{Blow:2013:Eo, author = "Joe Blow", title = "$ \sqrt {3} $-Based 1-Form Subdivision", expect = "$ \sqrt {3} $-Based 1-Form Subdivision", year = "2013", } @Misc{Blow:2013:Ep, author = "Joe Blow", title = "Symmetric $ \alpha $-stable distributions for $ q > 1 $", expect = "Symmetric $ \alpha $-stable distributions for $ q > 1 $", year = "2013", } @Misc{Blow:2013:Eq, author = "Joe Blow", title = "{Dirac} spin-$ 1 / 2 $ particles", expect = "{Dirac} spin-$ 1 / 2 $ particles", year = "2013", } @Misc{Blow:2013:Er, author = "Joe Blow", title = "The $ \beta \gamma $-system, and {$ V_4 $} of {$ {\rm sl}(2, \mathbb {C}) $}", expect = "The $ \beta \gamma $-system, and {$ V_4 $} of {$ {\rm sl}(2, \mathbb {C}) $}", year = "2013", } @Misc{Blow:2013:Es, author = "Joe Blow", title = "The {$ \Phi^{2k} $} theory", expect = "The {$ \Phi^{2k} $} theory", year = "2013", } @Misc{Blow:2013:Et, author = "Joe Blow", title = "The $ \chi^2 $ test", expect = "The $ \chi^2 $ test", year = "2013", } @Misc{Blow:2013:Eu, author = "Joe Blow", title = "The {$ A, D, E $} family", expect = "The {$ A, D, E $} family", year = "2013", } @Misc{Blow:2013:Ev, author = "Joe Blow", title = "{$ {\rm SU}(6) \supset {\rm SU}(3) \otimes {\rm SU}(2) $} and {$ {\rm SU}(8) \supset {\rm SU}(4) \otimes {\rm SU}(2) $} {Clebsch--Gordan} coefficients", expect = "{$ {\rm SU}(6) \supset {\rm SU}(3) \otimes {\rm SU}(2) $} and {$ {\rm SU}(8) \supset {\rm SU}(4) \otimes {\rm SU}(2)$} {Clebsch--Gordan} coefficients", year = "2013", } @Misc{Blow:2013:Ey, author = "Joe Blow", title = "Unconfined $ - a / r + b r^2 $ potentials in $d$-dimensions", expect = "Unconfined $ - a / r + b r^2 $ potentials in $d$-dimensions", year = "2013", } @Misc{Blow:2013:Ez, author = "Joe Blow", title = "{CaCuO$_2$} antiferromagnetism", expect = "{CaCuO$_2$} antiferromagnetism", year = "2013", } @Misc{Blow:2013:Eaa, author = "Joe Blow", title = "Theoretical studies of {Au$_m$} and {PtAu$_n$} clusters and their {N$_2$} and {O$_2$} adsorption complexes", expect = "Theoretical studies of {Au$_m$} and {PtAu$_n$} clusters and their {N$_2$} and {O$_2$} adsorption complexes", year = "2013", } @Misc{Blow:2013:Eab, author = "Joe Blow", title = "Systematic assessment on aqueous {pK$_a$} and {pK$_b$} of an amino acid base", expect = "Systematic assessment on aqueous {pK$_a$} and {pK$_b$} of an amino acid base", year = "2013", } @Misc{Blow:2013:Eac, author = "Joe Blow", title = "Density functional studies of {Li$_N$} and {Li$_N^+$} ({$ N = 2 $}--$ 30 $ ) clusters: {Structure}, binding and charge distribution", expect = "Density functional studies of {Li$_N$} and {Li$_N^+$} ($ N = 2 $--$ 30 $) clusters: {Structure}, binding and charge distribution", year = "2013", } @Misc{Blow:2013:Ead, author = "Joe Blow", title = "Calculation of the {H$_2^+$} rovibrational energies and spectroscopic constants in the $ 2 p \pi $, $ 3 d \sigma $, $ 4 d \sigma $, $ 4 f \pi $, $ 4 f \sigma $, $ 5 g \sigma $, and $ 6 i \sigma $ electronic states", expect = "Calculation of the {H$_2^+$} rovibrational energies and spectroscopic constants in the $ 2 p \pi $, $ 3 d \sigma $, $ 4 d \sigma $, $ 4 f \pi $, $ 4 f \sigma $, $ 5 g \sigma $, and $ 6 i \sigma $ electronic states", year = "2013", } @Misc{Blow:2013:Eae, author = "Joe Blow", title = "Complexes of rare gases with {H$_2$S} and {H$_2$S$_2$}", expect = "Complexes of rare gases with {H$_2$S} and {H$_2$S$_2$}", year = "2013", } @Misc{Blow:2013:Eaf, author = "Joe Blow", title = "Solvent effects on {S$_N$2} reaction", expect = "Solvent effects on {S$_N$2} reaction", year = "2013", } @Misc{Blow:2013:Eag, author = "Joe Blow", title = "Reactions of {$^1$S}, {$^1$D}, and {$^3$P} carbon", expect = "Reactions of {$^1$S}, {$^1$D}, and {$^3$P} carbon", year = "2013", } @Misc{Blow:2013:Eah, author = "Joe Blow", title = "Dispersion coefficients for {Li$^+$--H} and {Li$^+$--He} systems with {Coulomb} and screened {Coulomb} potentials", expect = "Dispersion coefficients for {Li$^+$--H} and {Li$^+$--He} systems with {Coulomb} and screened {Coulomb} potentials", year = "2013", } bibclean-3.07/test/okay/topt305.out0000444000156700015670000000000012470142674015770 0ustar beebebeebebibclean-3.07/test/okay/topt101.err0000444000156700015670000005103313660517103015752 0ustar beebebeebe Usage: ../bibclean [ -author ] [ -copyleft ] [ -copyright ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -ISBN-file filename ] [ -keyword-file filename ] [ -max-width nnn ] [ -[no-]align-equals ] [ -[no-]brace-protect ] [ -[no-]check-values ] [ -[no-]debug-match-failures ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-accents ] [ -[no-]fix-braces ] [ -[no-]fix-degrees ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-math ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-ISBN-table ] [ -[no-]print-keyword-table ] [ -[no-]print-patterns ] [ -[no-]quiet ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -output-file filename ] [ -version ] [ outfile Command-line switches may be abbreviated to a unique leading prefix, and letter case is not significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag to no. For such options, the last setting determines the flag value used. That is significant when options are also specified in initialization files (see the INITIALIZATION FILES manual section). The leading hyphen that distinguishes an option from a filename may be doubled, for compatibility with GNU and POSIX conventions. Thus, -author and --author are equivalent. To avoid confusion with options, if a filename begins with a hyphen, it must be disguised by a leading absolute or relative directory path, e.g., /tmp/-foo.bib or ./-foo.bib. -author Display an author credit on the standard error unit, stderr, and then terminate with a success return code. Sometimes an executable program is separated from its documentation and source code; this option provides a way to recover from that. -copyleft Display copyright information on the standard error unit, stderr, and then terminate with a success return code. -copyright Display copyright information on the standard error unit, stderr, and then terminate with a success return code. -error-log filename Redirect stderr to the indicated file, which then contains all of the error and warning messages. This option is provided for those systems that have difficulty redirecting stderr. -help or -? Display a help message on stderr, giving a usage description, similar to this section of the manual pages, and then terminate with a success return code. -ISBN-file filename Provide an explicit ISBN-range initialization file. It is processed after any system-wide and job-wide ISBN initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. The ISBN initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANISBN, but defaults to .bibclean.isbn on UNIX, and bibclean.isb elsewhere. For further details, see the ISBN INITIALIZATION FILES manual section. -init-file filename Provide an explicit value pattern initialization file. It is processed after any system-wide and job-wide initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANINI, but defaults to .bibcleanrc on UNIX, and to bibclean.ini elsewhere. For further details, see the INITIALIZATION FILES manual section. -keyword-file filename Provide an explicit keyword initialization file. It is processed after any system-wide and job-wide keyword initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. The keyword initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANKEY, but defaults to .bibclean.key on UNIX, and bibclean.key elsewhere. For further details, see the KEYWORD INITIALIZATION FILES manual section. -max-width nnn bibclean normally limits output line widths to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special-purpose applications may require different maximum line widths, so this option provides that capability. The number following the option name can be specified in decimal, octal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is interpreted to mean unlimited, so -max-width 0 can be used to ensure that each field/value pair appears on a single line. When -no-prettyprint requests bibclean to act as a lexical analyzer, the default line width is unlimited, unless overridden by this option. When bibclean is prettyprinting, line wrapping is done only at a space. Consequently, a long non-blank character sequence may result in the output exceeding the requested line width. When bibclean is lexing, line wrapping is done by inserting a backslash-newline pair when the specified maximum is reached, so no line length ever exceeds the maximum. -[no-]align-equals With the positive form, align the equals sign in key/value assignments at the same column, separated by a single space from the value string. Otherwise, the equals sign follows the key, separated by a single space. Default: no. -[no-]brace-protect Protect uppercase and mixedcase words at brace-level zero with braces to prevent downcasing by some BibTeX styles. Default: yes. -[no-]check-values With the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g., ``year = "192"'' instead of ``year = "1992"''), and issue warnings when unexpected patterns are found. That checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can disable it with the negative form of this option. Default: yes. -[no-]debug-match-failures With the positive form, print out a warning when a value pattern fails to match a value string. That is helpful in debugging new patterns, but because the output can be voluminous, you should use this option only with small test files, and initialization files that eliminate all patterns apart from the ones that you are testing. Default: no. -[no-]delete-empty-values With the positive form, remove all field/value pairs for which the value is an empty string. That is helpful in cleaning up bibliographies generated from text editor templates. Compare this option with -[no-]remove-OPT-prefixes described below. Default: no. -[no-]file-position With the positive form, give detailed file position information in warning and error messages. Default: no. -[no-]fix-accents With the positive form, normalize TeX accents in annotes, authors, booktitles, editors, notes, remarks, and titles. Default: no. -[no-]fix-braces With the positive form, normalize bracing in annotes, authors, booktitles, editors, notes, remarks, and titles, by removing unnecessary levels of braces. Default: no. -[no-]fix-degrees With the positive form, remove spaces in author/editor fields inside braces after letter-ending periods. That makes reductions from J. J. {Thomson, M. A., F. R. S.}, Frederick {Soddy, B. A. (Oxon.)}, and John A. {Cable, M. A., M. Ed., Dipl. Deutsch (Marburg), A. L. C. M.} to J. J. {Thomson, M.A., F.R.S.}, Frederick {Soddy, B.A. (Oxon.)}, and John A. {Cable, M.A., M.Ed., Dipl.Deutsch (Marburg), A.L.C.M.}, respectively. In journals in the humanities and history of science, as well as in some scientific journals until well into the 20th Century, academic, honorary, and professional titles and degrees are commonly attached to personal names. Even though modern publishing practice avoids such decorations, for accuracy, bibliography entries should preferably retain them. Journal typographical practice generally follows the reductions described here. -[no-]fix-font-changes With the positive form, supply an additional brace level around font changes in titles to protect against downcasing by some BibTeX styles. Font changes that already have more than one level of braces are not modified. For example, if a title contains the Latin phrase {\em Dictyostelium discoideum} or {\em {D}ictyostelium discoideum}, then downcasing incorrectly converts the phrase to lower-case letters. Most BibTeX users are surprised that bracing the initial letters does not prevent the downcase action. The correct coding is {{\em Dictyostelium discoideum}}. However, there are also legitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, bibclean normally does not supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this option to supply them. If you think that you need this option, it is strongly recommended that you apply bibclean to your bibliography file with and without -fix-font-changes, then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You must decide which of the two output files is the better choice, then repair the incorrect title bracing by hand. Because font changes in titles are uncommon, except for cases of the type that this option is designed to correct, it should do more good than harm. Default: no. -[no-]fix-initials With the positive form, insert a space after a period following author initials. Default: yes. -[no-]fix-math With the positive form, improve readability of math mode in titles by inserting spaces around operators, deleting other unnecessary space, and removing braces around single- character subscripts and superscripts. Default: no. -[no-]fix-names With the positive form, reorder author and editor name lists to remove commas at brace level zero, placing first names or initials before last names. Default: yes. -[no-]German-style With the positive form, interpret quote characters ["] inside braced value strings at brace level 1 according to the conventions of the TeX style file german.sty, which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, invisible hyphens, raised/lowered quotes, French guillemets, and discretionary hyphens. Recognized character combinations are braced to prevent BibTeX from interpreting the quote as a string delimiter. Quoted strings receive no special handling from this option, and because German nouns in titles must anyway be protected from the downcasing operation of most BibTeX bibliography styles, German value strings that use the overloaded quote character can always be entered in the form "{...}", without the need to specify this option at all. Default: no. -[no-]keep-linebreaks Normally, line breaks inside value strings are collapsed into a single space, so that long value strings can later be broken to provide lines of reasonable length. With the positive form, linebreaks are preserved in value strings. If -max-width is set to zero, this preserves the original line breaks. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-parbreaks With the positive form, preserve paragraph breaks (either formfeeds, or lines containing only spaces) in value strings. Normally, paragraph breaks are collapsed into a single space. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-preamble-spaces With the positive form, preserve all whitespace in @Preamble{...} entries. Default: no. -[no-]keep-spaces With the positive form, preserve all spaces in value strings. Normally, multiple spaces are collapsed into a single space. This option can be used together with -keep-linebreaks, -keep-parbreaks, and -max-width 0 to preserve the form of value strings while still providing syntax and value checking. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-string-spaces With the positive form, preserve all whitespace in @String{...} entries. Default: no. -[no-]parbreaks With the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field/value pairs. That may be useful to quickly trap runaway strings arising from mismatched delimiters. Default: yes. -[no-]prettyprint Normally, bibclean functions as a prettyprinter. However, with the negative form of this option, it acts as a lexical analyzer instead, producing a stream of lexical tokens. See the LEXICAL ANALYSIS manual section for further details. Default: yes. -[no-]print-ISBN-table With the positive form, print the ISBN-range table on stderr, then terminate with a success return code. That action is taken after all command-line options are processed, and before any input files are read (other than those that are values of command-line options). The format of the output ISBN-range table is acceptable for input as an ISBN initialization file (see the ISBN INITIALIZATION FILES manual section). Default: no. -[no-]print-keyword-table With the positive form, print the keyword initialization table on stderr, then terminate with a success return code. That action is taken after all command-line options are processed, and before any input files are read (other than those that are values of command-line options). The format of the output table is acceptable for input as a keyword initialization file (see the KEYWORD INITIALIZATION FILES manual section). Default: no. -[no-]print-patterns With the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used. When bibclean is compiled with native pattern-matching code (the default), those patterns are the ones that are used in checking value strings for valid syntax, and all of them are specified in initialization files, rather than hard-coded into the program. For further details, see the INITIALIZATION FILES manual section. Default: no. -[no-]quiet This option is the opposite of -[no-]warning; it exists for user convenience, and for compatibility with other programs that use -q for quiet operation, without warning messages. -[no-]read-init-files With the negative form, suppress loading of system-, user-, and file-specific initialization files. Initializations then come only from those files explicitly given by -init-file filename options. Default: yes. -[no-]remove-OPT-prefixes With the positive form, remove the ``OPT'' prefix from each field name where the corresponding value is not an empty string. The prefix ``OPT'' must be entirely in upper-case to be recognized. This option is for bibliographies generated with the help of the GNU Emacs BibTeX editing support, which generates templates with optional fields identified by the ``OPT'' prefix. Although the function M-x bibtex-remove-OPT normally bound to the keystrokes C-c C-o does the job, users often forget, with the result that BibTeX does not recognize the field name, and ignores the value string. Compare this option with -[no-]delete-empty-values described above. Default: no. -[no-]scribe With the positive form, accept input syntax conforming to the Scribe document system. The output is converted to conform to BibTeX syntax. See the SCRIBE BIBLIOGRAPHY FORMAT manual section for further details. Default: no. -[no-]trace-file-opening With the positive form, record in the error log file the names of all files that bibclean attempts to open. Use this option to identify where initialization files are located. Default: no. -[no-]warnings With the positive form, allow all warning messages. The negative form is not recommended because it may mask problems that should be repaired. Default: yes. -output-file filename Supply an alternate output file to replace stdout. If the filename cannot be opened for output, execution terminates immediately with a nonzero exit code. -version Display the program version number on stderr, and then terminate with a success return code. That includes an indication of who compiled the program, the host name on which it was compiled, the time of compilation, and the type of string-value matching code selected, when that information is available to the compiler. bibclean-3.07/test/okay/topt302.out0000444000156700015670000000000112470143224015756 0ustar beebebeebe bibclean-3.07/test/okay/topt106.err0000444000156700015670000000000012470142672015746 0ustar beebebeebebibclean-3.07/test/okay/topt349.err0000444000156700015670000000000012470142676015763 0ustar beebebeebebibclean-3.07/test/okay/testscr3.bbl0000444000156700015670000000014607342750522016266 0ustar beebebeebe\begin{thebibliography}{1} \bibitem{CommENT} \bibitem{foo} \bibitem{bar} \end{thebibliography} bibclean-3.07/test/okay/topt335.err0000444000156700015670000000000012470142676015756 0ustar beebebeebebibclean-3.07/test/okay/topt131.out0000444000156700015670000000000112470143214015755 0ustar beebebeebe bibclean-3.07/test/okay/topt108.err0000664000156700015670000000035514162101374015763 0ustar beebebeebeCopyright (C) 1990--2021 by Nelson H. F. Beebe and the Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. bibclean-3.07/test/okay/topt347.err0000444000156700015670000000000012470142676015761 0ustar beebebeebebibclean-3.07/test/okay/topt143.out0000444000156700015670000000000112470143220015755 0ustar beebebeebe bibclean-3.07/test/okay/topt370.out0000444000156700015670000000000112663433424015773 0ustar beebebeebe bibclean-3.07/test/okay/topt138.out0000444000156700015670000000000112470143217015767 0ustar beebebeebe bibclean-3.07/test/okay/topt340.err0000444000156700015670000000000012470142676015752 0ustar beebebeebebibclean-3.07/test/okay/topt144.out0000444000156700015670000000000112470143220015756 0ustar beebebeebe bibclean-3.07/test/okay/topt342.out0000444000156700015670000000000112470143227015765 0ustar beebebeebe bibclean-3.07/test/okay/topt146.err0000444000156700015670000000000012470142673015753 0ustar beebebeebebibclean-3.07/test/okay/topt309.err0000664000156700015670000000035514162101400015754 0ustar beebebeebeCopyright (C) 1990--2021 by Nelson H. F. Beebe and the Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. bibclean-3.07/test/okay/topt171.out0000444000156700015670000000000113070534767015777 0ustar beebebeebe bibclean-3.07/test/okay/topt339.out0000444000156700015670000000000112470143227015773 0ustar beebebeebe bibclean-3.07/test/okay/topt372.err0000664000156700015670000000000014162101061015742 0ustar beebebeebebibclean-3.07/test/okay/topt345.out0000444000156700015670000000000112470143230015762 0ustar beebebeebe bibclean-3.07/test/okay/topt141.err0000444000156700015670000000000012470142673015746 0ustar beebebeebebibclean-3.07/test/okay/topt337.out0000444000156700015670000000000112470143227015771 0ustar beebebeebe bibclean-3.07/test/okay/topt133.err0000444000156700015670000000000012470142673015747 0ustar beebebeebebibclean-3.07/test/okay/topt104.out0000444000156700015670000000000112470143203015753 0ustar beebebeebe bibclean-3.07/test/okay/topt148.err0000444000156700015670000000000012470142673015755 0ustar beebebeebebibclean-3.07/test/okay/topt307.err0000444000156700015670000000000012470142674015753 0ustar beebebeebebibclean-3.07/test/okay/topt103.out0000444000156700015670000000000112470143203015752 0ustar beebebeebe bibclean-3.07/test/okay/topt330.out0000444000156700015670000000000112470143226015761 0ustar beebebeebe bibclean-3.07/test/okay/testisxn.out0000444000156700015670000005412514023240744016445 0ustar beebebeebe%% /u/sy/beebe/tex/bibclean/testisxn.bib, Thu Nov 12 09:30:41 1992 %% Edit by Nelson H. F. Beebe @Misc{ISSN-test, comment = "The following ISSN values should be valid.", ISSN = "0018-9367", ISSN = "0080-3863", ISSN = "0094-3770", ISSN = "0197-3622", ISSN = "0346-914X", ISSN = "0346-914X", ISSN = "0362-613X", ISSN = "0891-2513", ISSN = "0899-7667", ISSN = "0958-9341", ISSN = "0964-5098", ISSN = "1047-5974", ISSN = "1059-5325", ISSN = "not yet available", ISSN = "", comment = "The following ISSN values have errors in them introduced by perturbing the first digit.", ISSN = "1018-9367", ISSN = "2080-3863", ISSN = "3094-3770", ISSN = "4197-3622", ISSN = "5346-914X", ISSN = "6346-914X", ISSN = "7362-613X", ISSN = "8891-2513", ISSN = "9899-7667", ISSN = "X958-9341", ISSN = "1964-5098", ISSN = "2047-5974", ISSN = "3059-5325", comment = "The following ISSN values have the wrong number of digits.", ISSN = "3", ISSN = "30", ISSN = "305", ISSN = "3059", ISSN = "3059-5", ISSN = "3059-53", ISSN = "3059-532", ISSN = "3059-5325-X", } @Misc{ISBN-test, comment = "The following ISBN values should be valid.", ISBN = "0-241-13267-3", ISBN = "0-85331-623-6", ISBN = "0-913720-72-0", ISBN = "0-948905-72-7", ISBN = "0-948905-76-X", ISBN = "0-03-063892-5", ISBN = "0-07-008845-4", ISBN = "0-07-008845-4", ISBN = "0-07-021623-1", ISBN = "0-07-026751-0", ISBN = "0-07-033508-7", ISBN = "0-07-039006-1 (hardback), 0-07-039002-9 (paperback)", ISBN = "0-07-043109-4", ISBN = "0-07-881645-9", ISBN = "0-07-015557-7", ISBN = "0-08-030713-2", ISBN = "0-12-079062-9", ISBN = "0-12-117645-2", ISBN = "0-12-117650-9", ISBN = "0-12-117650-9", ISBN = "0-12-249050-9", ISBN = "0-12-249051-7", ISBN = "0-12-257960-7", ISBN = "0-12-286160-4", ISBN = "0-12-286165-5", ISBN = "0-12-289255-0", ISBN = "0-12-305340-4", ISBN = "0-12-460515-X", ISBN = "0-12-460515-X", ISBN = "0-12-557580-7", ISBN = "0-12-697545-0", ISBN = "0-13-010778-6", ISBN = "0-13-010778-6", ISBN = "0-13-043530-9", ISBN = "0-13-049189-6", ISBN = "0-13-109802-0", ISBN = "0-13-110008-4", ISBN = "0-13-110933-2", ISBN = "0-13-120486-6", ISBN = "0-13-155045-4", ISBN = "0-13-162959-X", ISBN = "0-13-365412-5", ISBN = "0-13-472242-6", ISBN = "0-13-497074-8", ISBN = "0-13-536657-7", ISBN = "0-13-554619-2", ISBN = "0-13-567090-X", ISBN = "0-13-580944-4", ISBN = "0-13-588187-0", ISBN = "0-13-590464-1", ISBN = "0-13-590472-2", ISBN = "0-13-627258-4", ISBN = "0-13-640616-5", ISBN = "0-13-640673-4", ISBN = "0-13-640681-5", ISBN = "0-13-685835-X", ISBN = "0-13-685843-0", ISBN = "0-13-685850-3", ISBN = "0-13-685868-6", ISBN = "0-13-685876-7", ISBN = "0-13-685884-8", ISBN = "0-13-685892-9", ISBN = "0-13-685967-4", ISBN = "0-13-812611-9", ISBN = "0-13-812611-9", ISBN = "0-13-822064-6", ISBN = "0-13-825001-4", ISBN = "0-13-838012-0", ISBN = "0-13-855974-0", ISBN = "0-13-880733-7", ISBN = "0-13-912296-6", ISBN = "0-13-912296-6", ISBN = "0-13-933441-6", ISBN = "0-13-945593-0", ISBN = "0-13-949876-1", ISBN = "0-13-972167-3", ISBN = "0-13-982992-X", ISBN = "0-19-212983-X", ISBN = "0-19-505838-0", ISBN = "0-19-853387-X", ISBN = "0-19-853387-X", ISBN = "0-19-853443-4", ISBN = "0-19-853755-7 (hardback), 0-19-853756-5 (paperback)", ISBN = "0-201-05866-9", ISBN = "0-201-05992-4", ISBN = "0-201-06008-6", ISBN = "0-201-06663-7", ISBN = "0-201-06663-7", ISBN = "0-201-06672-6", ISBN = "0-201-06672-6", ISBN = "0-201-06673-4", ISBN = "0-201-06755-2", ISBN = "0-201-06824-9", ISBN = "0-201-06896-6", ISBN = "0-201-07981-X", ISBN = "0-201-08017-6", ISBN = "0-201-08319-1", ISBN = "0-201-08319-1", ISBN = "0-201-09346-4 (hardback), 0-201-09356-1 (paperback)", ISBN = "0-201-09355-3", ISBN = "0-201-09528-9", ISBN = "0-201-09591-2", ISBN = "0-201-09689-7", ISBN = "0-201-09696-X", ISBN = "0-201-09720-6", ISBN = "0-201-10174-2", ISBN = "0-201-10174-2", ISBN = "0-201-10179-3", ISBN = "0-201-10179-3", ISBN = "0-201-10331-1", ISBN = "0-201-10381-8", ISBN = "0-201-10745-7", ISBN = "0-201-10877-1", ISBN = "0-201-11114-4", ISBN = "0-201-11537-9", ISBN = "0-201-11603-0", ISBN = "0-201-11749-5", ISBN = "0-201-11938-2", ISBN = "0-201-11941-2", ISBN = "0-201-11982-X", ISBN = "0-201-12008-9", ISBN = "0-201-12078-X", ISBN = "0-201-12110-7", ISBN = "0-201-12584-6", ISBN = "0-201-12593-5", ISBN = "0-201-12649-4", ISBN = "0-201-12792-X", ISBN = "0-201-12910-8", ISBN = "0-201-12920-5", ISBN = "0-201-13046-7", ISBN = "0-201-13437-3", ISBN = "0-201-13437-3", ISBN = "0-201-13438-1", ISBN = "0-201-13438-1", ISBN = "0-201-13445-4", ISBN = "0-201-13445-4", ISBN = "0-201-13446-2", ISBN = "0-201-13446-2", ISBN = "0-201-13447-0", ISBN = "0-201-13447-0", ISBN = "0-201-13448-9", ISBN = "0-201-13448-9", ISBN = "0-201-13548-5", ISBN = "0-201-14236-8", ISBN = "0-201-14236-8", ISBN = "0-201-14396-8", ISBN = "0-201-14396-8", ISBN = "0-201-14468-9", ISBN = "0-201-15002-6", ISBN = "0-201-15198-7", ISBN = "0-201-15572-9", ISBN = "0-201-15585-0", ISBN = "0-201-15672-5", ISBN = "0-201-15673-3", ISBN = "0-201-15674-1", ISBN = "0-201-15675-X", ISBN = "0-201-15676-8", ISBN = "0-201-15680-6", ISBN = "0-201-15681-4 (hardback), 0-201-15685-7 (paperback)", ISBN = "0-201-15683-0", ISBN = "0-201-15688-1", ISBN = "0-201-15790-X", ISBN = "0-201-15790-X", ISBN = "0-201-15911-2", ISBN = "0-201-16116-8", ISBN = "0-201-16410-8", ISBN = "0-201-16411-6", ISBN = "0-201-16503-1 (hardback), 0-201-16504-X (paperback)", ISBN = "0-201-16520-1", ISBN = "0-201-16579-1 (hardback), 0-201-13232-X (paperback)", ISBN = "0-201-16643-7", ISBN = "0-201-16891-X", ISBN = "0-201-17232-1", ISBN = "0-201-17233-X", ISBN = "0-201-17234-8", ISBN = "0-201-17236-4", ISBN = "0-201-17237-2", ISBN = "0-201-17535-5", ISBN = "0-201-17535-5", ISBN = "0-201-17574-6", ISBN = "0-201-17633-5", ISBN = "0-201-17633-5", ISBN = "0-201-17634-3", ISBN = "0-201-17833-8", ISBN = "0-201-18127-4", ISBN = "0-201-18260-2", ISBN = "0-201-18261-0", ISBN = "0-201-18323-4", ISBN = "0-201-19038-9", ISBN = "0-201-19334-5 (hardback), 0-201-19330-2 (paperback)", ISBN = "0-201-19334-5", ISBN = "0-201-19560-7", ISBN = "0-201-41625-5", ISBN = "0-201-41667-0", ISBN = "0-201-50018-3", ISBN = "0-201-50061-2", ISBN = "0-201-50257-7", ISBN = "0-201-50305-0", ISBN = "0-201-50390-5", ISBN = "0-201-50391-3", ISBN = "0-201-50393-X", ISBN = "0-201-50395-6 (hardback), 0-201-51560-1 (paperback)", ISBN = "0-201-50418-9", ISBN = "0-201-50424-3", ISBN = "0-201-50814-1", ISBN = "0-201-50814-1", ISBN = "0-201-50821-4", ISBN = "0-201-50862-1", ISBN = "0-201-50868-0", ISBN = "0-201-50935-0", ISBN = "0-201-50936-9", ISBN = "0-201-50937-7", ISBN = "0-201-51001-4", ISBN = "0-201-51002-2", ISBN = "0-201-51013-8", ISBN = "0-201-51014-6", ISBN = "0-201-51035-9", ISBN = "0-201-51058-8", ISBN = "0-201-51141-X", ISBN = "0-201-51141-X", ISBN = "0-201-51249-1", ISBN = "0-201-51375-7", ISBN = "0-201-51375-7", ISBN = "0-201-51376-5", ISBN = "0-201-51392-7", ISBN = "0-201-51425-7", ISBN = "0-201-51425-7", ISBN = "0-201-51459-1", ISBN = "0-201-51505-9 (hardback), 0-201-51561-X (paperback)", ISBN = "0-201-51507-5", ISBN = "0-201-51509-1 (hardback), 0-201-51506-7 (paperback)", ISBN = "0-201-51814-7", ISBN = "0-201-52149-0 (hardback), 0-201-52150-4 (paperback)", ISBN = "0-201-52243-8", ISBN = "0-201-52251-9", ISBN = "0-201-52253-5", ISBN = "0-201-52425-2", ISBN = "0-201-52781-2", ISBN = "0-201-52810-X", ISBN = "0-201-52811-8", ISBN = "0-201-52812-6", ISBN = "0-201-52813-4", ISBN = "0-201-52899-1", ISBN = "0-201-53472-X", ISBN = "0-201-53472-X", ISBN = "0-201-53992-6", ISBN = "0-201-54611-6", ISBN = "0-201-54709-0", ISBN = "0-201-54799-6", ISBN = "0-201-54799-6", ISBN = "0-201-54848-8", ISBN = "0-201-55703-7", ISBN = "0-201-55703-7", ISBN = "0-201-56345-2", ISBN = "0-201-56882-9", ISBN = "0-201-57044-0", ISBN = "0-231-05146-8", ISBN = "0-262-01063-1", ISBN = "0-262-01077-1 (MIT Press), 0-07-000422-6", ISBN = "0-262-01102-6", ISBN = "0-262-01114-X", ISBN = "0-262-01123-9 (hardback), 0-262-69146-9 (paperback)", ISBN = "0-262-01124-7", ISBN = "0-262-02182-X", ISBN = "0-262-02192-7", ISBN = "0-262-02226-5", ISBN = "0-262-02266-4", ISBN = "0-262-02317-2", ISBN = "0-262-02334-2", ISBN = "0-262-03141-8", ISBN = "0-262-03167-1", ISBN = "0-262-03171-X", ISBN = "0-262-03181-7", ISBN = "0-262-07083-9", ISBN = "0-262-07106-1", ISBN = "0-262-07130-4", ISBN = "0-262-08143-1", ISBN = "0-262-08157-1", ISBN = "0-262-08159-8", ISBN = "0-262-08183-0", ISBN = "0-262-10045-2", ISBN = "0-262-11139-X", ISBN = "0-262-13205-2", ISBN = "0-262-13235-4", ISBN = "0-262-13252-4", ISBN = "0-262-13257-5", ISBN = "0-262-13263-X", ISBN = "0-262-15039-5", ISBN = "0-262-16082-X", ISBN = "0-262-18117-7", ISBN = "0-262-18143-6", ISBN = "0-262-18145-2 (hardback), 0-262-68069-6 (paperback)", ISBN = "0-262-19229-2 (MIT Press) and 0-07-057290-9", ISBN = "0-262-19250-0", ISBN = "0-262-19277-2", ISBN = "0-262-19285-3", ISBN = "0-262-19288-8", ISBN = "0-262-19301-9", ISBN = "0-262-20087-2", ISBN = "0-262-21009-6", ISBN = "0-262-21009-6", ISBN = "0-262-21009-6", ISBN = "0-262-23096-8", ISBN = "0-262-23117-4", ISBN = "0-262-23139-5 (MIT), 0-07-068147-3 (McGraw-Hill)", ISBN = "0-262-23150-6 (volume two), 0-262-23154-9 (two-volume set)", ISBN = "0-262-23151-4 (volume two), 0-262-23154-9 (two-volume set)", ISBN = "0-262-23152-2", ISBN = "0-262-23157-3", ISBN = "0-262-53071-6 (paper), 0-262-03144-2 (hard)", ISBN = "0-262-56038-0", ISBN = "0-262-58072-1", ISBN = "0-262-58080-2", ISBN = "0-262-58086-1", ISBN = "0-262-61026-4", ISBN = "0-262-66070-9 (paper)", ISBN = "0-262-66071-7", ISBN = "0-316-08275-9", ISBN = "0-387-53775-9", ISBN = "0-387-70001-3", ISBN = "0-387-90144-2, 3-540-90144-2", ISBN = "0-387-96048-1, 3-540-96048-1", ISBN = "0-387-96115-1 and 3-540-96115-1", ISBN = "0-387-96527-0, 3-540-96527-0", ISBN = "0-387-96598-X (New York), 3-540-96598-X (Berlin)", ISBN = "0-387-96608-0", ISBN = "0-387-96689-7 (USA) and 3-540-96689-7 (Germany)", ISBN = "0-387-96780-X", ISBN = "0-387-96915-2", ISBN = "0-387-97145-9", ISBN = "0-387-97562-4, 3-540-97562-4", ISBN = "0-387-97562-4, 3-540-97562-4", ISBN = "0-387-97592-6, 3-540-97592-6", ISBN = "0-387-97592-6, 3-540-97592-6", ISBN = "0-387-97616-7, 3-540-97616-7", ISBN = "0-387-97621-3", ISBN = "0-387-97622-1, 3-540-97622-1", OPTISBN = "0-393-95924-47", ISBN = "0-393-95926-0", ISBN = "0-394-35678-0", ISBN = "0-394-58640-9", ISBN = "0-394-72625-1", ISBN = "0-415-07858-X", ISBN = "0-425-11690-5", ISBN = "0-442-22888-0", ISBN = "0-442-31946-0", ISBN = "0-442-31946-0", ISBN = "0-444-70521-X", ISBN = "0-444-88013-5", OPTISBN = "0-444-88768-8", ISBN = "0-452-25497-3", ISBN = "0-452-25497-3", ISBN = "0-471-53294-0", ISBN = "0-471-61857-8", ISBN = "0-471-61976-0", ISBN = "0-471-81888-7", ISBN = "0-471-83185-9", ISBN = "0-471-87569-4", ISBN = "0-471-92139-4", ISBN = "0-471-92142-4 (Wiley), 3-519-02109-9 (Teubner)", ISBN = "0-471-92910-7", ISBN = "0-521-30811-9", ISBN = "0-521-37490-1", ISBN = "0-521-37490-1", ISBN = "0-521-38475-3 (hardback), 0-521-38622-5 (paperback)", ISBN = "0-521-39338-8 (hardback), 0-521-39732-4 (paperback)", ISBN = "0-534-09198-9", ISBN = "0-672-48440-4", ISBN = "0-673-38574-4", ISBN = "0-673-38574-4", ISBN = "0-673-39773-4", ISBN = "0-691-04264-0", ISBN = "0-7167-2136-8", ISBN = "0-7458-0005-X", ISBN = "0-7458-0148-X", ISBN = "0-7923-0635-X", ISBN = "0-7923-0635-X", ISBN = "0-7923-0875-1", ISBN = "0-7923-0929-4", ISBN = "0-7923-9045-8", ISBN = "0-8053-1601-9", ISBN = "0-8092-4368-7", ISBN = "0-8162-2060-3", ISBN = "0-8186-8931-5", ISBN = "0-8186-8945-5", ISBN = "0-8218-0053-1", ISBN = "0-8218-2997-1", ISBN = "0-8218-2999-8", ISBN = "0-8230-0732-4", ISBN = "0-8230-1320-0", ISBN = "0-8230-1320-0", ISBN = "0-8230-2122-X", ISBN = "0-8230-2122-X", ISBN = "0-8352-1704-3", ISBN = "0-8352-1704-3", ISBN = "0-85484-056-7", ISBN = "0-85484-059-1", ISBN = "0-85484-085-0", ISBN = "0-86094-166-3", ISBN = "0-87484-717-6", ISBN = "0-87850-064-2", ISBN = "0-88175-096-4", ISBN = "0-88275-642-7", ISBN = "0-88385-063-X", ISBN = "0-88385-063-X", ISBN = "0-89303-424-X", ISBN = "0-89303-556-4", ISBN = "0-89579-252-4", ISBN = "0-89588-396-1", ISBN = "0-89588-396-1", ISBN = "0-89838-235-1", ISBN = "0-89871-227-0", ISBN = "0-89871-260-2", ISBN = "0-89871-270-X", ISBN = "0-89871-270-X", ISBN = "0-89871-285-8", ISBN = "0-89871-285-8", ISBN = "0-89871-286-6", ISBN = "0-89871-294-7", ISBN = "0-89871-294-7", ISBN = "0-911971-76-9", ISBN = "0-911971-67-X", ISBN = "0-911971-69-6", ISBN = "0-911971-72-6", ISBN = "0-912704-57-8", ISBN = "0-914894-65-X", ISBN = "0-914930-13-3", ISBN = "0-918035-03-1", ISBN = "0-932376-02-9", ISBN = "0-932376-02-9", ISBN = "0-937073-80-6", ISBN = "0-937175-24-2", ISBN = "0-937175-34-X", ISBN = "0-937175-35-8", ISBN = "0-937175-38-2", ISBN = "0-937175-39-0", ISBN = "0-937175-40-4", ISBN = "0-937175-49-8", ISBN = "0-937175-59-5", ISBN = "0-937175-70-6", ISBN = "0-937175-75-7", ISBN = "0-937175-80-3", ISBN = "0-937175-82-X", ISBN = "0-937175-84-6", ISBN = "0-937175-85-4", ISBN = "0-937175-86-2", ISBN = "0-938151-12-6", ISBN = "0-941447-00-6", ISBN = "0-9614729-8-7", ISBN = "0-534-09192-X", ISBN = "1-55512-022-9", ISBN = "1-55512-069-5", ISBN = "1-55512-106-3", ISBN = "1-55512-135-7", ISBN = "1-55521-198-4", ISBN = "1-55521-198-4", ISBN = "1-55558-033-5", ISBN = "1-55558-034-3", ISBN = "1-55558-041-6 (Digital Press) and 0-13-152414-3", ISBN = "1-55558-048-3", ISBN = "1-55558-051-3", ISBN = "1-55828-016-2", ISBN = "1-55828-029-4", ISBN = "1-55828-059-6", ISBN = "1-55851-057-5", ISBN = "1-55860-069-8", ISBN = "1-55860-069-8", ISBN = "1-56131-016-6, 1-56131-017-4 (paperback)", ISBN = "1-56347-009-8", ISBN = "1-56592-001-5", ISBN = "1-56592-007-4", ISBN = "1-877751-44-8; 1-877751-52-9; 1-877751-53-7", ISBN = "1-878567-01-2", ISBN = "1-878956-07-8", ISBN = "1-878956-07-8", ISBN = "2-7296-0233-X", ISBN = "2-7296-0233-X", ISBN = "2-87085-194-4", ISBN = "2-87085-194-4", ISBN = "3-209-01061-7", ISBN = "3-209-01165-6", ISBN = "3-486-21173-0", ISBN = "3-515-04808-1", ISBN = "3-519-02279-6", ISBN = "3-519-02488-8", ISBN = "3-519-02499-3", ISBN = "3-519-03047-0", ISBN = "3-519-03507-3", ISBN = "3-540-13920-6, 0-387-13920-6", ISBN = "3-540-16807-9, 0-387-16807-9", ISBN = "3-540-18797-9", ISBN = "3-540-51211-X", ISBN = "3-540-52707-9 and 0-387-52707-9", ISBN = "3-540-54539-5 and 0-387-54539-5", ISBN = "3-540-97003-7", ISBN = "3-7785-1804-6", ISBN = "3-87439-233-3", ISBN = "3-89319-115-1", ISBN = "3-89319-115-1", ISBN = "3-89319-152-6", ISBN = "3-89319-152-6", ISBN = "3-89319-199-2", ISBN = "3-89319-199-2", ISBN = "3-89319-287-5", ISBN = "3-89319-338-3", ISBN = "3-89319-356-1", ISBN = "3-925118-46-2", ISBN = "3-925118-97-7", ISBN = "3-925118-97-7", ISBN = "3-926515-01-5", ISBN = "3-926515-01-5", ISBN = "3-209-01191-5", ISBN = "3-922715-35-4", ISBN = "4-7561-0010-4", ISBN = "4-7561-0405-3", ISBN = "5-02-014712-5", ISBN = "82-90006-07-1", ISBN = "82-90006-09-8", ISBN = "87-550-1635-9", ISBN = "87-550-1636-7", ISBN = "87-550-1637-5", ISBN = "87-550-1638-3", ISBN = "87-550-1639-1", ISBN = "87-7252-089-2", ISBN = "87-7252-089-2", ISBN = "88-08-07838-8", ISBN = "88-203-1931-4", ISBN = "88-203-1932-2", ISBN = "88-371-0583-5", ISBN = "88-85613-20-9", ISBN = "88-85613-28-4", ISBN = "90-6789-151-7", ISBN = "90-247-3220-4", ISBN = "90-6196-357-5", ISBN = "90-6196-357-5", ISBN = "90-6980-015-2", ISBN = "91-7346-218-7", ISBN = "91-7868-226-6", ISBN = "91-7900-417-2", ISBN = "91-7900-635-3", ISBN = "91-7900-753-8", ISBN = "91-7970-241-4", ISBN = "981-02-0915-0", ISBN = "0-201-56882-9", ISBN = "not yet available", ISBN = "", comment = "The following ISBN values have errors in them introduced by perturbing the first digit.", ISBN = "1-241-13267-3", ISBN = "2 500 8022 1", ISBN = "3-85331-623-6", ISBN = "4-913720-72-0", ISBN = "5-94890-572-7", ISBN = "6 948905 76 X", ISBN = "7-03-063892-5", ISBN = "80-7008-845-4", ISBN = "90-70088-45-4", ISBN = "X-07-021623-1", ISBN = "1-0702-6751-0", ISBN = "2-07-033508-7", ISBN = "3-07-039006-1 (hardback), 4-07-039002-9 (paperback)", ISBN = "5-07-043109-4", ISBN = "607-8816-45-9", ISBN = "7-07-015557-7", ISBN = "80-8030-713-2", ISBN = "91-20-79062-9", ISBN = "X-12-117645-2", ISBN = "1-121-17650-9", ISBN = "2-12-117650-9", comment = "The following ISBN values have the wrong number of digits.", ISBN = "2", ISBN = "2-1", ISBN = "2-12", ISBN = "2-12-1", ISBN = "2-12-11", ISBN = "2-12-117", ISBN = "2-12-1176", ISBN = "2-12-11765", ISBN = "2-12-117650", ISBN = "2-1-211-76509-X", } bibclean-3.07/test/okay/topt134.err0000444000156700015670000000000012470142673015750 0ustar beebebeebebibclean-3.07/test/okay/topt112.out0000444000156700015670000000000112470143207015756 0ustar beebebeebe bibclean-3.07/test/okay/topt316.err0000444000156700015670000000000012470142675015754 0ustar beebebeebebibclean-3.07/test/okay/topt159.err0000444000156700015670000000000012470142673015757 0ustar beebebeebebibclean-3.07/test/okay/testbib5.err0000444000156700015670000000022112071124035016245 0ustar beebebeebe%% testbib5.bib:2:Unexpected quote usage in German-style braced string. %% testbib5.bib:14:Unexpected quote usage in German-style braced string. bibclean-3.07/test/okay/topt125.err0000444000156700015670000000000012470142673015750 0ustar beebebeebebibclean-3.07/test/okay/topt321.out0000444000156700015670000000000112470143225015760 0ustar beebebeebe bibclean-3.07/test/okay/topt169.out0000444000156700015670000000000112470143224015771 0ustar beebebeebe bibclean-3.07/test/okay/testbib2.err0000444000156700015670000000024312072343022016246 0ustar beebebeebe%% testbib2.bib:256:Final period/dot/fullstop is unexpected, and often wrong, in BibTeX title ``"Proc. 4th Marcel Grossmann Meeting on General Relativity, ed."''. bibclean-3.07/test/okay/topt122.err0000444000156700015670000000000012470142673015745 0ustar beebebeebebibclean-3.07/test/okay/topt326.out0000444000156700015670000000000112470143225015765 0ustar beebebeebe bibclean-3.07/test/okay/testopt9.err0000444000156700015670000000000007342757115016332 0ustar beebebeebebibclean-3.07/test/okay/topt115.out0000444000156700015670000000000112470143210015753 0ustar beebebeebe bibclean-3.07/test/okay/testoptg.out0000444000156700015670000000000107342757233016431 0ustar beebebeebe bibclean-3.07/test/okay/topt311.err0000444000156700015670000000000012470142674015746 0ustar beebebeebebibclean-3.07/test/okay/testscr1.err0000444000156700015670000000000005305523564016303 0ustar beebebeebebibclean-3.07/test/okay/match.err0000444000156700015670000000000007342725722015632 0ustar beebebeebebibclean-3.07/test/okay/topt167.out0000444000156700015670000000000112470143224015767 0ustar beebebeebe bibclean-3.07/test/okay/topt363.err0000444000156700015670000005571612470143233015775 0ustar beebebeebefile=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 19dd"] file=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 19dd"] file=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 20dd"] file=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd aaa 20dd"] file=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 20dd"] file=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 19dd"] file=[/usr/local/bin/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 20dd"] file=[/usr/local/bin/.bibcleanrc] field=[chapter ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[chapter ] pattern=["D"] file=[/usr/local/bin/.bibcleanrc] field=[chapter ] pattern=["D-D"] file=[/usr/local/bin/.bibcleanrc] field=[month ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # " D"] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # " D--D"] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=["D " # aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=["D--D " # aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # "" # aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # "--" # aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # " -- " # aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # "/" # aaa] file=[/usr/local/bin/.bibcleanrc] field=[month ] pattern=[aaa # " A " # aaa] file=[/usr/local/bin/.bibcleanrc] field=[number ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A AD"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A D(D)"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A D\.D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-A-D-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-A-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-A-D\.D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-AD-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-D D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-D-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["AD-D-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["AD-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["AD"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["A\#D-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D \an\d D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D+D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D+D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D-D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D/D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["DA"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["D\.D"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["W-W W"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["W-W-WW-W"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["W"] file=[/usr/local/bin/.bibcleanrc] field=[number ] pattern=["X"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D--D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD--aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D, D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD, aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D, D, D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD, aD, aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D, D, D, D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD, aD, aD, aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["R + D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["R + D, w D w"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D, w D w"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D--D, D--D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["D--D, D--D, D--D"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD--aD, aD--aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["aD--aD, aD--aD, aD--aD"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["??--??"] file=[/usr/local/bin/.bibcleanrc] field=[pages ] pattern=["????"] file=[/usr/local/bin/.bibcleanrc] field=[price ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[price ] pattern=["AD\.dd"] file=[/usr/local/bin/.bibcleanrc] field=[price ] pattern=["D\.dd"] message[Put country prefix on price %v] file=[/usr/local/bin/.bibcleanrc] field=[price ] pattern=["AD"] file=[/usr/local/bin/.bibcleanrc] field=[price ] pattern=["D"] message[Put country prefix on price %v] file=[/usr/local/bin/.bibcleanrc] field=[tag ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[tag ] pattern=[A:Add] file=[/usr/local/bin/.bibcleanrc] field=[tag ] pattern=[A:Adda] file=[/usr/local/bin/.bibcleanrc] field=[volume ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["D"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["DA"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["D/D"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["DA D"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["w-D"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["A"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["D.D"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["D \an\d D"] file=[/usr/local/bin/.bibcleanrc] field=[volume ] pattern=["W"] file=[/usr/local/bin/.bibcleanrc] field=[year ] existing patterns discarded file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dd, 19dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dd, 19dd, 19dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dda19dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["18dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["18dd, 18dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["18dd, 18dd, 18dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["18dda18dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dd (19dd)"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dd" # "--"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["20dd"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["18dd--d"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["19dd--d"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["20dd--d"] file=[/usr/local/bin/.bibcleanrc] field=[year ] pattern=["20dd--d"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 20dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd aaa 20dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 20dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 20dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[chapter ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[chapter ] pattern=["D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[chapter ] pattern=["D-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # " D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # " D--D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=["D " # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=["D--D " # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # "" # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # "--" # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # " -- " # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # "/" # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[month ] pattern=[aaa # " A " # aaa] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A AD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A D(D)"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A D\.D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-A-D-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-A-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-A-D\.D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-AD-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-D D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-D-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["AD-D-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["AD-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["AD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["A\#D-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D \an\d D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D+D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D+D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D/D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["DA"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["D\.D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["W-W W"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["W-W-WW-W"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["W"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[number ] pattern=["X"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D--D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD--aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D, D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD, aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D, D, D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD, aD, aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D, D, D, D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD, aD, aD, aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["R + D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["R + D, w D w"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D, w D w"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D--D, D--D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["D--D, D--D, D--D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD--aD, aD--aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["aD--aD, aD--aD, aD--aD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["??--??"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[pages ] pattern=["????"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[price ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[price ] pattern=["AD\.dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[price ] pattern=["D\.dd"] message[Put country prefix on price %v] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[price ] pattern=["AD"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[price ] pattern=["D"] message[Put country prefix on price %v] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[tag ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[tag ] pattern=[A:Add] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[tag ] pattern=[A:Adda] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["DA"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["D/D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["DA D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["w-D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["A"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["D.D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["D \an\d D"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[volume ] pattern=["W"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] existing patterns discarded file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dd, 19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dd, 19dd, 19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dda19dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["18dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["18dd, 18dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["18dd, 18dd, 18dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["18dda18dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dd (19dd)"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dd" # "--"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["20dd"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["18dd--d"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["19dd--d"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["20dd--d"] file=[/u/sy/beebe/tex/bib/.bibcleanrc] field=[year ] pattern=["20dd--d"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 19dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 19dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd 20dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa d dd:dd:dd aaa 20dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd 20dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 19dd"] file=[../bibclean.ini] field=[bibdate ] pattern=["aaa aaa dd dd:dd:dd aaa 20dd"] file=[../bibclean.ini] field=[chapter ] existing patterns discarded file=[../bibclean.ini] field=[chapter ] pattern=["D"] file=[../bibclean.ini] field=[chapter ] pattern=["D-D"] file=[../bibclean.ini] field=[month ] existing patterns discarded file=[../bibclean.ini] field=[month ] pattern=[aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # " D"] file=[../bibclean.ini] field=[month ] pattern=[aaa # " D--D"] file=[../bibclean.ini] field=[month ] pattern=["D " # aaa] file=[../bibclean.ini] field=[month ] pattern=["D--D " # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # "" # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # "--" # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # " -- " # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # "/" # aaa] file=[../bibclean.ini] field=[month ] pattern=[aaa # " A " # aaa] file=[../bibclean.ini] field=[number ] existing patterns discarded file=[../bibclean.ini] field=[number ] pattern=["D"] file=[../bibclean.ini] field=[number ] pattern=["A AD"] file=[../bibclean.ini] field=[number ] pattern=["A D(D)"] file=[../bibclean.ini] field=[number ] pattern=["A D"] file=[../bibclean.ini] field=[number ] pattern=["A D\.D"] file=[../bibclean.ini] field=[number ] pattern=["A-A-D-D"] file=[../bibclean.ini] field=[number ] pattern=["A-A-D"] file=[../bibclean.ini] field=[number ] pattern=["A-A-D\.D"] file=[../bibclean.ini] field=[number ] pattern=["A-AD-D"] file=[../bibclean.ini] field=[number ] pattern=["A-D D"] file=[../bibclean.ini] field=[number ] pattern=["A-D-D"] file=[../bibclean.ini] field=[number ] pattern=["A-D"] file=[../bibclean.ini] field=[number ] pattern=["AD-D-D"] file=[../bibclean.ini] field=[number ] pattern=["AD-D"] file=[../bibclean.ini] field=[number ] pattern=["AD"] file=[../bibclean.ini] field=[number ] pattern=["A\#D-D"] file=[../bibclean.ini] field=[number ] pattern=["D \an\d D"] file=[../bibclean.ini] field=[number ] pattern=["D+D"] file=[../bibclean.ini] field=[number ] pattern=["D+D"] file=[../bibclean.ini] field=[number ] pattern=["D-D"] file=[../bibclean.ini] field=[number ] pattern=["D/D"] file=[../bibclean.ini] field=[number ] pattern=["D D"] file=[../bibclean.ini] field=[number ] pattern=["DA"] file=[../bibclean.ini] field=[number ] pattern=["D\.D"] file=[../bibclean.ini] field=[number ] pattern=["W-W W"] file=[../bibclean.ini] field=[number ] pattern=["W-W-WW-W"] file=[../bibclean.ini] field=[number ] pattern=["W"] file=[../bibclean.ini] field=[number ] pattern=["X"] file=[../bibclean.ini] field=[pages ] existing patterns discarded file=[../bibclean.ini] field=[pages ] pattern=["D"] file=[../bibclean.ini] field=[pages ] pattern=["aD"] file=[../bibclean.ini] field=[pages ] pattern=["D--D"] file=[../bibclean.ini] field=[pages ] pattern=["aD--aD"] file=[../bibclean.ini] field=[pages ] pattern=["D, D"] file=[../bibclean.ini] field=[pages ] pattern=["aD, aD"] file=[../bibclean.ini] field=[pages ] pattern=["D, D, D"] file=[../bibclean.ini] field=[pages ] pattern=["aD, aD, aD"] file=[../bibclean.ini] field=[pages ] pattern=["D, D, D, D"] file=[../bibclean.ini] field=[pages ] pattern=["aD, aD, aD, aD"] file=[../bibclean.ini] field=[pages ] pattern=["R + D"] file=[../bibclean.ini] field=[pages ] pattern=["R + D, w D w"] file=[../bibclean.ini] field=[pages ] pattern=["D, w D w"] file=[../bibclean.ini] field=[pages ] pattern=["D--D, D--D"] file=[../bibclean.ini] field=[pages ] pattern=["D--D, D--D, D--D"] file=[../bibclean.ini] field=[pages ] pattern=["aD--aD, aD--aD"] file=[../bibclean.ini] field=[pages ] pattern=["aD--aD, aD--aD, aD--aD"] file=[../bibclean.ini] field=[pages ] pattern=["??--??"] file=[../bibclean.ini] field=[pages ] pattern=["????"] file=[../bibclean.ini] field=[price ] existing patterns discarded file=[../bibclean.ini] field=[price ] pattern=["AD\.dd"] file=[../bibclean.ini] field=[price ] pattern=["D\.dd"] message[Put country prefix on price %v] file=[../bibclean.ini] field=[price ] pattern=["AD"] file=[../bibclean.ini] field=[price ] pattern=["D"] message[Put country prefix on price %v] file=[../bibclean.ini] field=[tag ] existing patterns discarded file=[../bibclean.ini] field=[tag ] pattern=[A:Add] file=[../bibclean.ini] field=[tag ] pattern=[A:Adda] file=[../bibclean.ini] field=[volume ] existing patterns discarded file=[../bibclean.ini] field=[volume ] pattern=["D"] file=[../bibclean.ini] field=[volume ] pattern=["DA"] file=[../bibclean.ini] field=[volume ] pattern=["D/D"] file=[../bibclean.ini] field=[volume ] pattern=["DA D"] file=[../bibclean.ini] field=[volume ] pattern=["w-D"] file=[../bibclean.ini] field=[volume ] pattern=["A"] file=[../bibclean.ini] field=[volume ] pattern=["D.D"] file=[../bibclean.ini] field=[volume ] pattern=["D \an\d D"] file=[../bibclean.ini] field=[volume ] pattern=["W"] file=[../bibclean.ini] field=[year ] existing patterns discarded file=[../bibclean.ini] field=[year ] pattern=["19dd"] file=[../bibclean.ini] field=[year ] pattern=["19dd, 19dd"] file=[../bibclean.ini] field=[year ] pattern=["19dd, 19dd, 19dd"] file=[../bibclean.ini] field=[year ] pattern=["19dda19dd"] file=[../bibclean.ini] field=[year ] pattern=["18dd"] file=[../bibclean.ini] field=[year ] pattern=["18dd, 18dd"] file=[../bibclean.ini] field=[year ] pattern=["18dd, 18dd, 18dd"] file=[../bibclean.ini] field=[year ] pattern=["18dda18dd"] file=[../bibclean.ini] field=[year ] pattern=["19dd (19dd)"] file=[../bibclean.ini] field=[year ] pattern=["19dd" # "--"] file=[../bibclean.ini] field=[year ] pattern=["20dd"] file=[../bibclean.ini] field=[year ] pattern=["18dd--d"] file=[../bibclean.ini] field=[year ] pattern=["19dd--d"] file=[../bibclean.ini] field=[year ] pattern=["20dd--d"] file=[../bibclean.ini] field=[year ] pattern=["20dd--d"] bibclean-3.07/test/okay/topt328.out0000444000156700015670000000000112470143226015770 0ustar beebebeebe bibclean-3.07/test/okay/testopt7.err0000444000156700015670000000000007342757115016330 0ustar beebebeebebibclean-3.07/test/okay/testopti.out0000444000156700015670000000000007342757570016436 0ustar beebebeebebibclean-3.07/test/okay/testoptp.err0000444000156700015670000000211213116525207016416 0ustar beebebeebe%% testoptp.bib:18:Unexpected prefix in DOI value ``"http://link.springer.com/accesspage/chapter/10.1007/978-3-642-25704-9_1"''. %% testoptp.bib:22:Unexpected DOI in URL value ``"http://dx.doi.org/10.1007/978-3-642-25704-9_1"'': move to separate DOI = "..." key/value in this entry. %% testoptp.bib:26:Unexpected prefix in DOI value ``"http://www.springerlink.com/content/978-3-642-25704-9"''. %% testoptp.bib:30:Unexpected DOI in URL value ``"http://dx.doi.org/10.1007/978-3-642-25704-9"'': move to separate DOI = "..." key/value in this entry. %% testoptp.bib:34:Unexpected space or list separator in DOI value ``"http://dx.doi.org/10.1002/spe.2105; http://dx.doi.org/10.1002/spe.2106"''. %% testoptp.bib:38:Unexpected DOI in URL value ``"http://dx.doi.org/10.1002/spe.2105; http://dx.doi.org/10.1002/spe.2106"'': move to separate DOI = "..." key/value in this entry. %% testoptp.bib:42:Unexpected protocol://... in URL value ``"rss://rss.example.com/web-feed/rich-site-summary"'': normally ftp://... or http://... or https://.... %% testoptp.bib:46:Expected protocol://... in URL value ``%v%''. bibclean-3.07/test/okay/topt150.err0000444000156700015670000000000012470142673015746 0ustar beebebeebebibclean-3.07/test/okay/topt354.out0000444000156700015670000000000112470143231015763 0ustar beebebeebe bibclean-3.07/test/okay/topt318.err0000444000156700015670000000000012470142675015756 0ustar beebebeebebibclean-3.07/test/okay/testoptn.out0000444000156700015670000000205514023206351016433 0ustar beebebeebe@Article{Barker:2012:VPW, author = "Ken Barker", title = "{``Valuing''} Privacy While Exposing Data Utility", journal = j-LECT-NOTES-COMP-SCI, volume = "6121", pages = "1--2", year = "2012", CODEN = "LNCSD9", DOI = "http://dx.doi.org/10.1007/978-3-642-25704-9_1", ISSN = "0302-9743 (print), 1611-3349 (electronic)", ISSN = "0302-9744 (bad check digit), 1611-334X (bad check digit)", ISSN-L = "0302-9743", ISSN-L = "0302-9742 (bad check digit)", %% bad ISSN-L length in next line ISSN-L = "03029742", bibdate = "Wed Dec 19 15:20:12 MST 2012", bibsource = "http://www.math.utah.edu/pub/tex/bib/lncs2012a.bib", URL = "http://link.springer.com/accesspage/chapter/10.1007/978-3-642-25704-9_1", acknowledgement = ack-nhfb, book-DOI = "http://dx.doi.org/10.1007/978-3-642-25704-9", book-URL = "http://www.springerlink.com/content/978-3-642-25704-9", fjournal = "Lecture Notes in Computer Science", } bibclean-3.07/test/okay/testoptw.err0000444000156700015670000000055612317316140016433 0ustar beebebeebe%% testoptw.bib:4:Unbackslashed math word in math mode in value ``"$O(n log n)$ vs $O(n \log n)$"''. %% testoptw.bib:11:Unbackslashed math word in math mode in value ``"$Pr(x > y)$ is wrong"''. %% testoptw.bib:25:Unusual compound assignment or equality-test operator in math mode value ``"The {K\=oriyama} theorem for $x >= 3$"'' (e.g., perhaps replace <= by \leq). bibclean-3.07/test/okay/topt157.err0000444000156700015670000000000012470142673015755 0ustar beebebeebebibclean-3.07/test/okay/topt353.out0000444000156700015670000000000112470143231015762 0ustar beebebeebe bibclean-3.07/test/okay/topt160.out0000444000156700015670000000000112470143223015757 0ustar beebebeebe bibclean-3.07/test/okay/topt364.err0000444000156700015670000000000012470142676015760 0ustar beebebeebebibclean-3.07/test/okay/topt129.out0000444000156700015670000000000112470143214015764 0ustar beebebeebe bibclean-3.07/test/okay/topt162.err0000444000156700015670000001122513565266674016002 0ustar beebebeebe%%% keyword mappings ansi-standard-number ANSI-standard-number book-doi book-DOI book-url book-URL coden CODEN doi DOI ieee-standard-number IEEE-standard-number isbn ISBN journal-url journal-URL isbn-13 ISBN-13 iso-standard-number ISO-standard-number issn ISSN issn-l ISSN-L lccn LCCN mrclass MRclass mrnumber MRnumber mrreviewer MRreviewer uri URI url URL urn URN xxansi-standard-number xxANSI-standard-number xxcoden xxCODEN xxdoi xxDOI xxieee-standard-number xxIEEE-standard-number xxisbn xxISBN xxiso-standard-number xxISO-standard-number xxissn xxISSN xxmrclass xxMRclass xxmrnumber xxMRnumber xxmrreviewer xxMRreviewer xxuri xxURI xxurl xxURL xxurn xxURN zmclass ZMclass zmnumber ZMnumber zmreviewer ZMreviewer optcoden OPTCODEN optissn OPTISSN optisbn OPTISBN optlccn OPTLCCN urlpublisher URLpublisher urlseries URLseries warning WARNING xmldata XMLdata ecmanumber ECMAnumber crclass CRclass crnumber CRnumber xxlccn xxLCCN ean EAN dewey DEWEY schilpp-number Schilpp-number whittaker-number Whittaker-number pacs PACS calaprice-number Calaprice-number mrtitle MRtitle mryear MRyear asnumber ASnumber pmnumber PMnumber hdnumber HDnumber adsurl URL adsnote OPTadsnote lsnumber LSnumber ksnumber KSnumber aclp-number ACLP-number bc-number BC-number cp-number CP-number rep-number REP-number series-url series-URL mrauthor MRauthor zbl ZMnumber msc2010 MRnumber abstract-url abstract-URL ismn ISMN orcid-numbers ORCID-numbers scopus-author-id SCOPUS-author-ID bibclean-3.07/test/okay/topt366.out0000444000156700015670000000000112470143235015772 0ustar beebebeebe bibclean-3.07/test/okay/topt155.out0000444000156700015670000000000112470143222015762 0ustar beebebeebe bibclean-3.07/test/okay/topt351.err0000444000156700015670000000000012470142676015754 0ustar beebebeebebibclean-3.07/test/okay/testoptu.out0000444000156700015670000001652014023206351016444 0ustar beebebeebe@Misc{Blow:2013:Ea, author = "Joe Blow", title = "{O($^3$P) $+$ CH$_3$SH} reactions", expect = "{O($^3$P) $+$ CH$_3$SH} reactions", year = "2013", } @Misc{Blow:2013:Eb, author = "Joe Blow", title = "The {ENIAC}'s 1949 Determination of $ \pi $", expect = "The {ENIAC}'s 1949 Determination of $ \pi $", year = "2013", } @Misc{Blow:2013:Ec, author = "Joe Blow", title = "A Course in the Geometry of $n$-Dimensions", expect = "A Course in the Geometry of $n$-Dimensions", year = "2013", } @Misc{Blow:2013:Ed, author = "Joe Blow", title = "Compression of {$3$D} Points", expect = "Compression of {$3$D} Points", year = "2013", } @Misc{Blow:2013:Ee, author = "Joe Blow", title = "{P$^2$SNR}: Perceptual Full-Reference Image Quality Assessment for {JPEG2000}", expect = "{P$^2$SNR}: Perceptual Full-Reference Image Quality Assessment for {JPEG2000}", year = "2013", } @Misc{Blow:2013:Ef, author = "Joe Blow", title = "The \$10 bet", expect = "The \$10 bet", year = "2013", } @Misc{Blow:2013:Eg, author = "Joe Blow", title = "{$ P_0 $}-Matrix Products of Matrices", expect = "{$ P_0 $}-Matrix Products of Matrices", year = "2013", } @Misc{Blow:2013:Eh, author = "Joe Blow", title = "Atomic Intentions in {Jason$^+$}", expect = "Atomic Intentions in {Jason$^+$}", year = "2013", } @Misc{Blow:2013:Ei, author = "Joe Blow", title = "{GENote} v. $ \beta $: a {Web} Tool Prototype", expect = "{GENote} v. $ \beta $: a {Web} Tool Prototype", year = "2013", } @Misc{Blow:2013:Ej, author = "Joe Blow", title = "{Polyakov} Action on {$ (\rho, G) $}-Functions", expect = "{Polyakov} Action on {$ (\rho, G) $}-Functions", year = "2013", } @Misc{Blow:2013:Ek, author = "Joe Blow", title = "A New Class of $ \epsilon $-Optimal Learning Automata", expect = "A New Class of $ \epsilon $-Optimal Learning Automata", year = "2013", } @Misc{Blow:2013:El, author = "Joe Blow", title = "Example of {$R$} Functions Management", expect = "Example of {$R$} Functions Management", year = "2013", } @Misc{Blow:2013:Em, author = "Joe Blow", title = "{$ H_\infty $} Output Tracking Control", expect = "{$ H_\infty $} Output Tracking Control", year = "2013", } @Misc{Blow:2013:En, author = "Joe Blow", title = "Ameliorating {$ {\rm GM}(1, 1) $} Model", expect = "Ameliorating {$ {\rm GM}(1, 1) $} Model", year = "2013", } @Misc{Blow:2013:Eo, author = "Joe Blow", title = "$ \sqrt {3}$-Based 1-Form Subdivision", expect = "$ \sqrt {3} $-Based 1-Form Subdivision", year = "2013", } @Misc{Blow:2013:Ep, author = "Joe Blow", title = "Symmetric $ \alpha $-stable distributions for $ q > 1$", expect = "Symmetric $ \alpha $-stable distributions for $ q > 1 $", year = "2013", } @Misc{Blow:2013:Eq, author = "Joe Blow", title = "{Dirac} spin-$ 1 / 2 $ particles", expect = "{Dirac} spin-$ 1 / 2 $ particles", year = "2013", } @Misc{Blow:2013:Er, author = "Joe Blow", title = "The $ \beta \gamma $-system, and {$ V_4$} of {$ {\rm sl}(2, \mathbb {C})$}", expect = "The $ \beta \gamma $-system, and {$ V_4 $} of {$ {\rm sl}(2, \mathbb {C}) $}", year = "2013", } @Misc{Blow:2013:Es, author = "Joe Blow", title = "The {$ \Phi^{2k} $} theory", expect = "The {$ \Phi^{2k} $} theory", year = "2013", } @Misc{Blow:2013:Et, author = "Joe Blow", title = "The $ \chi^2 $ test", expect = "The $ \chi^2 $ test", year = "2013", } @Misc{Blow:2013:Eu, author = "Joe Blow", title = "The {$ A, D, E $} family", expect = "The {$ A, D, E $} family", year = "2013", } @Misc{Blow:2013:Ev, author = "Joe Blow", title = "{$ {\rm SU}(6) \supset {\rm SU}(3) \otimes {\rm SU}(2) $} and {$ {\rm SU}(8) \supset {\rm SU}(4) \otimes {\rm SU}(2) $} {Clebsch--Gordan} coefficients", expect = "{$ {\rm SU}(6) \supset {\rm SU}(3) \otimes {\rm SU}(2) $} and {$ {\rm SU}(8) \supset {\rm SU}(4) \otimes {\rm SU}(2)$} {Clebsch--Gordan} coefficients", year = "2013", } @Misc{Blow:2013:Ey, author = "Joe Blow", title = "Unconfined $ - a / r + b r^2 $ potentials in $d$-dimensions", expect = "Unconfined $ - a / r + b r^2 $ potentials in $d$-dimensions", year = "2013", } @Misc{Blow:2013:Ez, author = "Joe Blow", title = "{CaCuO$_2$} antiferromagnetism", expect = "{CaCuO$_2$} antiferromagnetism", year = "2013", } @Misc{Blow:2013:Eaa, author = "Joe Blow", title = "Theoretical studies of {Au$_m$} and {PtAu$_n$} clusters and their {N$_2$} and {O$_2$} adsorption complexes", expect = "Theoretical studies of {Au$_m$} and {PtAu$_n$} clusters and their {N$_2$} and {O$_2$} adsorption complexes", year = "2013", } @Misc{Blow:2013:Eab, author = "Joe Blow", title = "Systematic assessment on aqueous {pK$_a$} and {pK$_b$} of an amino acid base", expect = "Systematic assessment on aqueous {pK$_a$} and {pK$_b$} of an amino acid base", year = "2013", } @Misc{Blow:2013:Eac, author = "Joe Blow", title = "Density functional studies of {Li$_N$} and {Li$_N^+$} ({$ N = 2$}{--}$ 30$) clusters: {Structure}, binding and charge distribution", expect = "Density functional studies of {Li$_N$} and {Li$_N^+$} ($ N = 2 $--$ 30 $) clusters: {Structure}, binding and charge distribution", year = "2013", } @Misc{Blow:2013:Ead, author = "Joe Blow", title = "Calculation of the {H$_2^+$} rovibrational energies and spectroscopic constants in the $ 2 p \pi $, $ 3 d \sigma $, $ 4 d \sigma $, $ 4 f \pi $, $ 4 f \sigma $, $ 5 g \sigma $, and $ 6 i \sigma $ electronic states", expect = "Calculation of the {H$_2^+$} rovibrational energies and spectroscopic constants in the $ 2 p \pi $, $ 3 d \sigma $, $ 4 d \sigma $, $ 4 f \pi $, $ 4 f \sigma $, $ 5 g \sigma $, and $ 6 i \sigma $ electronic states", year = "2013", } @Misc{Blow:2013:Eae, author = "Joe Blow", title = "Complexes of rare gases with {H$_2$S} and {H$_2$S$_2$}", expect = "Complexes of rare gases with {H$_2$S} and {H$_2$S$_2$}", year = "2013", } @Misc{Blow:2013:Eaf, author = "Joe Blow", title = "Solvent effects on {S$_N$2} reaction", expect = "Solvent effects on {S$_N$2} reaction", year = "2013", } @Misc{Blow:2013:Eag, author = "Joe Blow", title = "Reactions of {$^1$S}, {$^1$D}, and {$^3$P} carbon", expect = "Reactions of {$^1$S}, {$^1$D}, and {$^3$P} carbon", year = "2013", } @Misc{Blow:2013:Eah, author = "Joe Blow", title = "Dispersion coefficients for {Li$^+$--H} and {Li$^+$--He} systems with {Coulomb} and screened {Coulomb} potentials", expect = "Dispersion coefficients for {Li$^+$--H} and {Li$^+$--He} systems with {Coulomb} and screened {Coulomb} potentials", year = "2013", } bibclean-3.07/test/okay/testoptl.err0000444000156700015670000000000012071104573016402 0ustar beebebeebebibclean-3.07/test/okay/testopt2.out0000444000156700015670000000000107342761026016337 0ustar beebebeebe bibclean-3.07/test/okay/topt152.out0000444000156700015670000000000112470143222015757 0ustar beebebeebe bibclean-3.07/test/okay/topt356.err0000444000156700015670000000000012470142676015761 0ustar beebebeebebibclean-3.07/test/okay/testoptr.out0000444000156700015670000000310112071432662016437 0ustar beebebeebe@Book{x, title = "The {ExCeLeNt} Program", booktitle = "The {ExCeLeNt} Program", } @Book{x, title = "{3. [i.e., drei] Fachtagung {\"u}ber Programmiersprachen, Kiel, 5.--7. Marz 1974. (German) [Third Technical Conference on Programming Languages, Kiel, 5--7 March, 1974]}", } @Book{x, title = "Logic of programs: workshop, {ETH Z{\"u}rich, May--July 1979}", } @Proceedings{x, title = "{Advances in database technology, EDBT '88: International Conference on Extending Database Technology, Venice, Italy, March 14--18, 1988, proceedings}", } @Proceedings{x, title = "{CONPAR} 90-{VAPP IV}: Joint International Conference on Vector and Parallel Processing, {Z}{\"u}rich, Switzerland, September 10--13, 1990: proceedings", } @Proceedings{x, title = "{CONPAR 90-VAPP IV: Joint International Conference on Vector and Parallel Processing, Z{\"u}rich, Switzerland, September 10--13, 1990: proceedings}", } @Proceedings{x, title = "{Advances in computing and information --- ICCI '90}", } @Book{x, title = "{Text understanding in LILOG: integrating computational linguistics and artificial intelligence: final report on the IBM Germany LILOG-project}", } @Book{x, title = "{Dynamic $3$D Imaging: DAGM 2009 Workshop, Dyn3D 2009, Jena, Germany, September 9, 2009. Proceedings}", } bibclean-3.07/test/okay/testoptk.err0000664000156700015670000000055714162101372016423 0ustar beebebeebebibclean Version 3.07 [26-Dec-2021] with native pattern matching E-mail bug reports to Nelson H. F. Beebe Copyright (C) 1990--2021 by Nelson H. F. Beebe and the Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. bibclean-3.07/test/okay/topt119.err0000444000156700015670000000000012470142673015753 0ustar beebebeebebibclean-3.07/test/okay/testopt5.out0000444000156700015670000000000007342761026016341 0ustar beebebeebebibclean-3.07/test/okay/topt165.err0000444000156700015670000000000012470142674015755 0ustar beebebeebebibclean-3.07/test/okay/topt361.out0000444000156700015670000000000012470142676015774 0ustar beebebeebebibclean-3.07/test/okay/topt358.err0000444000156700015670000000000012470142676015763 0ustar beebebeebebibclean-3.07/test/okay/testscr3.out0000444000156700015670000000065305304617630016337 0ustar beebebeebe@Comment{Old style comment} @Comment{ This is a block comment with two lines. } @Comment{ This is a block comment with nested environments. @Begin{foo} @Begin{bar} @End"bar" @End"foo" } @Comment{ This is a block comment with two lines and embedded braces: {one} {two} {three} } @Comment{ This is a block comment with two lines and embedded braces: {one} {two} {three}. Here are some mismatched braces: { { { } } } {} {} } bibclean-3.07/test/okay/topt117.err0000444000156700015670000000000012470142673015751 0ustar beebebeebebibclean-3.07/test/okay/topt313.out0000444000156700015670000000000112470143224015760 0ustar beebebeebe bibclean-3.07/test/okay/testopte.err0000444000156700015670000001122513565266666016433 0ustar beebebeebe%%% keyword mappings ansi-standard-number ANSI-standard-number book-doi book-DOI book-url book-URL coden CODEN doi DOI ieee-standard-number IEEE-standard-number isbn ISBN journal-url journal-URL isbn-13 ISBN-13 iso-standard-number ISO-standard-number issn ISSN issn-l ISSN-L lccn LCCN mrclass MRclass mrnumber MRnumber mrreviewer MRreviewer uri URI url URL urn URN xxansi-standard-number xxANSI-standard-number xxcoden xxCODEN xxdoi xxDOI xxieee-standard-number xxIEEE-standard-number xxisbn xxISBN xxiso-standard-number xxISO-standard-number xxissn xxISSN xxmrclass xxMRclass xxmrnumber xxMRnumber xxmrreviewer xxMRreviewer xxuri xxURI xxurl xxURL xxurn xxURN zmclass ZMclass zmnumber ZMnumber zmreviewer ZMreviewer optcoden OPTCODEN optissn OPTISSN optisbn OPTISBN optlccn OPTLCCN urlpublisher URLpublisher urlseries URLseries warning WARNING xmldata XMLdata ecmanumber ECMAnumber crclass CRclass crnumber CRnumber xxlccn xxLCCN ean EAN dewey DEWEY schilpp-number Schilpp-number whittaker-number Whittaker-number pacs PACS calaprice-number Calaprice-number mrtitle MRtitle mryear MRyear asnumber ASnumber pmnumber PMnumber hdnumber HDnumber adsurl URL adsnote OPTadsnote lsnumber LSnumber ksnumber KSnumber aclp-number ACLP-number bc-number BC-number cp-number CP-number rep-number REP-number series-url series-URL mrauthor MRauthor zbl ZMnumber msc2010 MRnumber abstract-url abstract-URL ismn ISMN orcid-numbers ORCID-numbers scopus-author-id SCOPUS-author-ID bibclean-3.07/test/okay/topt120.out0000444000156700015670000000000012470142673015762 0ustar beebebeebebibclean-3.07/test/okay/topt324.err0000444000156700015670000000000012470142675015753 0ustar beebebeebebibclean-3.07/test/okay/testltx1.err0000444000156700015670000000024313251500574016327 0ustar beebebeebe%% testltx1.bin:256:Final period/dot/fullstop is unexpected, and often wrong, in BibTeX title ``"Proc. 4th Marcel Grossmann Meeting on General Relativity, ed."''. bibclean-3.07/test/okay/topt127.out0000444000156700015670000000000112470143213015761 0ustar beebebeebe bibclean-3.07/test/okay/topt323.err0000444000156700015670000000000012470142675015752 0ustar beebebeebebibclean-3.07/test/okay/testbib7.out0000444000156700015670000001720414023206350016277 0ustar beebebeebe@Article{xxx-01, author-1 = "Nikola{\u\i} Nikolaevich Bogoljubov", author-2 = "Nikola{\u{\i}} Nikolaevich Bogoljubov", author-3 = "Nikola{\u{{\i}}} Nikolaevich Bogoljubov", author-4 = "Nikola{\u{{}\i}} Nikolaevich Bogoljubov", author-5 = "Nikola{\u{{}{}\i}} Nikolaevich Bogoljubov", author-6 = "Nikola{\u{{}{}{}\i}} Nikolaevich Bogoljubov", } @Article{xxx-02, author-1 = "Nikola{\u \i} Nikolaevich Bogoljubov", author-2 = "Nikola{\u {\i}} Nikolaevich Bogoljubov", author-3 = "Nikola{\u {{\i}}} Nikolaevich Bogoljubov", author-4 = "Nikola{\u {{}\i}} Nikolaevich Bogoljubov", author-5 = "Nikola{\u {{}{}\i}} Nikolaevich Bogoljubov", author-6 = "Nikola{\u {{}{}{}\i}} Nikolaevich Bogoljubov", } @Article{xxx-03, author-1 = "Nikola{\u \i } Nikolaevich Bogoljubov", author-2 = "Nikola{\u {\i }} Nikolaevich Bogoljubov", author-3 = "Nikola{\u {{\i }}} Nikolaevich Bogoljubov", author-4 = "Nikola{\u {{}\i }} Nikolaevich Bogoljubov", author-5 = "Nikola{\u {{}{}\i }} Nikolaevich Bogoljubov", author-6 = "Nikola{\u {{}{}{}\i }} Nikolaevich Bogoljubov", } @Article{xxx-04, author-1 = "Nikola{\u \i } Nikolaevich Bogoljubov", author-2 = "Nikola{\u {\i }} Nikolaevich Bogoljubov", author-3 = "Nikola{\u {{\i }}} Nikolaevich Bogoljubov", author-4 = "Nikola{\u {{}\i }} Nikolaevich Bogoljubov", author-5 = "Nikola{\u {{}{}\i }} Nikolaevich Bogoljubov", author-6 = "Nikola{\u {{}{}{}\i }} Nikolaevich Bogoljubov", } @Article{xxx-05, author-1 = "Nikola{\u{\i}} Nikolaevich Bogoljubov", author-2 = "Nikola{\u{{\i}}} Nikolaevich Bogoljubov", author-3 = "Nikola{\u{{{\i}}}} Nikolaevich Bogoljubov", author-4 = "Nikola{\u{{}{\i}}} Nikolaevich Bogoljubov", author-5 = "Nikola{\u{{}{}{\i}}} Nikolaevich Bogoljubov", author-6 = "Nikola{\u{{}{}{}{\i}}} Nikolaevich Bogoljubov", } @Article{xxx-06, author-1 = "Nikola{\u {\i}} Nikolaevich Bogoljubov", author-2 = "Nikola{\u {{\i}}} Nikolaevich Bogoljubov", author-3 = "Nikola{\u {{{\i}}}} Nikolaevich Bogoljubov", author-4 = "Nikola{\u {{}{\i}}} Nikolaevich Bogoljubov", author-5 = "Nikola{\u {{}{}{\i}}} Nikolaevich Bogoljubov", author-6 = "Nikola{\u {{}{}{}{\i}}} Nikolaevich Bogoljubov", } @Article{xxx-07, author-1 = "Nikola{\u {\i} } Nikolaevich Bogoljubov", author-2 = "Nikola{\u {{\i} }} Nikolaevich Bogoljubov", author-3 = "Nikola{\u {{{\i} }}} Nikolaevich Bogoljubov", author-4 = "Nikola{\u {{}{\i} }} Nikolaevich Bogoljubov", author-5 = "Nikola{\u {{}{}{\i} }} Nikolaevich Bogoljubov", author-6 = "Nikola{\u {{}{}{}{\i} }} Nikolaevich Bogoljubov", } @Article{xxx-08, author-1 = "Nikola{\u {\i} } Nikolaevich Bogoljubov", author-2 = "Nikola{\u {{\i} }} Nikolaevich Bogoljubov", author-3 = "Nikola{\u {{{\i} }}} Nikolaevich Bogoljubov", author-4 = "Nikola{\u {{}{\i} }} Nikolaevich Bogoljubov", author-5 = "Nikola{\u {{}{}{\i} }} Nikolaevich Bogoljubov", author-6 = "Nikola{\u {{}{}{}{\i} }} Nikolaevich Bogoljubov", } @Article{xxx-09, title = "Harmonic Radius and Concentration of Energy; Hyperbolic Radius and {Liouville}'s Equations {$ \Delta U = e^U $} and {$ \Delta U = U^{\frac {n + 2}{n - 2}} $}", } @Article{xxx-10, booktitle = "On $ \frac {n + 2} {n - 2} $ and {offloading}", title = "On $ \frac {n + 2}{n - 2} $ and {offloading}", } @Article{xxx-11, booktitle = "On $ \frac {n + 2} {n - 2} $ and {offloading}", title = "On $ \frac {n + 2}{n - 2} $ and {offloading}", } @Article{xxx-12, booktitle = "On $ \frac {n + 2} {n - 2} $ and {offloading}", title = "On $ \frac {n + 2}{n - 2} $ and {offloading}", } @Article{xxx-13, title = "Math $_2 {F}_2 (\ldots)$", } @Article{xxx-14, title = "The Asymptotic Expansion of a Hypergeometric Function $_2 {F}_2 (1, \alpha; \rho_1, \rho_2; z)$", } @Article{xxx-15, title = "Multiple-pathways of carbon dioxide binding by a {Lewis} acid {[B(C$_6$F$_5$)$_3$]} and a {Lewis} base {[P(tBu)$_3$]}: the energy landscape perspective", } @Article{xxx-16, title = "$_2 {F}$", } @Article{xxx-17, title = "{$_2 F$}", } @Article{xxx-18, title = "{${}_2 F$}", } @Article{xxx-19, title = "$_2 {F}$", } @Article{xxx-20, title = "{Lewis} acid {[B(C$_6$F$_5$)$_3$]} and a {Lewis} base {[P(tBu)$_3$]}", } @Article{xxx-21, title = "($x$)", title = "( $x$ )", title = "[$x$]", title = "[ $x$ ]", title = "{$x$}", title = "{ $x$ }", title = "<$x$ >", title = "< $x$ >", title = "$x$ word", title = "$x$ value", title = "$x$-valued", } @Article{xxx-22, note = "Cited in {{\AA}ke Bj{\"o}rck's} bibliography.", note = "Cited in {\AA}ke Bj{\"o}rck's bibliography.", note = "Cited in {\AA}ke Bj{\"o}rck's bibliography.", } @Article{xxx-23, title = "Mixed mortar element method for {$ P_1^{NC-}P_0 $} element and its multigrid for {Stokes} problem", } @Article{xxx-24, title = "Universidad pontificia de Santo Tom{\'a}s", title = "{Universidad pontificia de Santo Tom{\'a}s}", } @Article{xxx-25, title = "Le{\c{c}}ons", title = "Le{\c{c}}ons", } @Article{xxx-26, title = "On a Conjecture by {Erd{\H{o}}s--Straus}", title = "On a Conjecture by {Erd{\H{o}}s--Straus}", title = "On a Conjecture by {Erd{\H{o}}s--Straus}", } @Article{xxx-27, title = "Review of {{\em Programmeringsspr{\aa}k\/}}", title = "Review of {{\em Programmeringsspr{\aa}k\/}}", } @Article{xxx-28, title = "Beltr{\'a}n Mar{\'\i}", title = "Beltr{\'a}n Mar{\'\i}", } @Article{xxx-29, title = "{Georges Lema{\^\i}tre's} {\em annus mirabilis}", title = "{Georges Lema{\^\i}tre's} {\em annus mirabilis}", } @Article{xxx-30, title = "Lema{\^\i}tre", title = "Doro{\u\j}", title = "Doro{\d{k}}", title = "Bo{\^\alpha}", title = "Bo{\^\beta}", } @Article{xxx-31, editor = "Behram Kur{\c{s}}uno{\u{g}}lu and Eugene Paul Wigner", editor = "Behram Kur{\c{s}}uno{\u{g}}lu and Eugene Paul Wigner", } @Article{xxx-32, title = "{ECMA-236}: 3,81\,mm Wide Magnetic Tape Cartridge", title = "{ECMA-236}: 3,81,mm Wide Magnetic Tape Cartridge", title = "{ECMA-236}: 3,81, mm Wide Magnetic Tape Cartridge", } @Article{xxx-33, title = "The applicative part of {APL\@}. Sequences", title = "The applicative part of {APL\@} . Sequences", } @Article{xxx-34, booktitle = "Semi\-nu\-mer\-i\-cal Algorithms", title = "The {Experium\TM} {Knowledge Resource System}", remark = "From \cite {Logan:1978:FDP}: ``Benford's paper was \ldots{}.''", } @Article{xxx-35, booktitle = "Below 3,000,000,000", title = "Below $ 3, 000, 000, 000 $", note = "Below $ 3 \, 000 \, 000 \, 000 $", } @Article{xxx-36, title = "The $ \alpha { and } \beta $ study", } @Article{xxx-37, title = "For $ |x| >= 17 $", } @Article{xxx-38, title = "For $ |x| <= 17 $", } @Article{xxx-39, title = "For $ |x| := 17 $", } @Article{xxx-40, title = "Applications (K{\=o}riyama, 1988)", title = "Applications (K{\=o}riyama, 1988)", title = "Applications (K{\=o}riyama, 1988)", } @Article{xxx-41, title = "For $ x > l o g(y) $", title = "For $ x > \log (y) $", } bibclean-3.07/test/okay/topt368.out0000444000156700015670000000000012470142676016003 0ustar beebebeebebibclean-3.07/test/okay/testscr4.out0000444000156700015670000000531007342747607016347 0ustar beebebeebe@Comment{ This file contains some test Scribe bibliography entries with embedded paragraph breaks for testing the -no-parbreaks switch in bibclean. Without that switch, it should process correctly; with it, 3 sets of error messages should be displayed. } @TechReport{bs-1629-0, author = "BSI", title = "Bibliographic References", institution = "British Standards Institution", year = "1976", type = "BS", number = "1629", } @TechReport{bs-1629-1, author = "BSI", title = "Bibliographic ?? Unexpected paragraph break for field ``title''. ?? File positions: input [testscr4.bib] output [stdout] ?? Entry input byte=489 line=19 column= 1 output byte=474 line=17 column= 0 ?? Value input byte=547 line=21 column=14 output byte=538 line=19 column=17 ?? Current input byte=564 line=23 column= 0 output byte=553 line=19 column=32 References", INSTITUTION = "British Standards Institution", YEAR = "1976", TYPE = "BS", NUMBER = "1629" ) @TechReport{bs-1629-2, author = "BSI", title = "Bibliographic References", institution = "British Standards Institution", year = "1976", type = "BS", number = "1629", } @TechReport{bs-1629-3, author = "BSI", title = "Bibliographic ?? Unexpected paragraph break for field ``title''. ?? File positions: input [testscr4.bib] output [stdout] ?? Entry input byte=919 line=43 column= 1 output byte=1309 line=46 column= 0 ?? Value input byte=977 line=45 column=14 output byte=1373 line=48 column=17 ?? Current input byte=994 line=47 column= 0 output byte=1388 line=48 column=32 References", INSTITUTION = "British Standards Institution", YEAR = "1976", TYPE = "BS", NUMBER = "1629" ) @TechReport{bs-1629-4, author = "BSI", title = "Bibliographic References", institution = "British Standards Institution", year = "1976", type = "BS", number = "1629", } @TechReport{bs-1629-5, author = "BSI", title = "Bibliographic ?? Unexpected paragraph break for field ``title''. ?? File positions: input [testscr4.bib] output [stdout] ?? Entry input byte=1337 line=65 column= 1 output byte=2146 line=74 column= 0 ?? Value input byte=1393 line=67 column=14 output byte=2210 line=76 column=17 ?? Current input byte=1410 line=69 column= 0 output byte=2225 line=76 column=32 References", INSTITUTION = "British Standards Institution", YEAR = 1976, TYPE = BS, NUMBER = 1629 ) bibclean-3.07/test/okay/topt110.err0000444000156700015670000000000012470142672015741 0ustar beebebeebebibclean-3.07/test/okay/testoptb.err0000444000156700015670000000000007342757115016403 0ustar beebebeebebibclean-3.07/test/okay/topt314.out0000444000156700015670000000000112470143224015761 0ustar beebebeebe bibclean-3.07/test/topt320.bib0000444000156700015670000000000012470142231014734 0ustar beebebeebebibclean-3.07/test/testbib8.bib0000664000156700015670000002646112663433134015305 0ustar beebebeebe@Article{Thomson:1896:XPE, author = "J. J. {Thomson, M. A., F. R. S.} and Ernest {Rutherford, M. A.}", title = "{XL}. {On} the passage of electricity through gases exposed to {R{\"o}ntgen} rays", journal = j-PHILOS-MAG-5, volume = "42", number = "258", pages = "392--407", month = nov, year = "1896", CODEN = "PHMAA4", DOI = "http://dx.doi.org/10.1080/14786449608620932", ISSN = "1941-5982 (print), 1941-5990 (electronic)", ISSN-L = "1941-5982", bibdate = "Fri Dec 25 17:38:18 2015", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/r/rutherford-ernest.bib", URL = "http://www.tandfonline.com/doi/abs/10.1080/14786449608620932", acknowledgement = ack-nhfb, fjournal = "Philosophical Magazine (5)", journal-URL = "http://www.tandfonline.com/loi/tphm16", onlinedate = "8 May 2009", } @Article{Rutherford:1897:MDE, author = "Ernest {Rutherford, M. A.}", title = "A Magnetic Detector of Electrical Waves and Some of Its Applications", journal = j-PHILOS-TRANS-R-SOC-LOND-SER-A, volume = "189", pages = "1--24", month = jan, year = "1897", CODEN = "PTMSFB", DOI = "http://dx.doi.org/10.1098/rsta.1897.0001", ISSN = "1364-503X (print), 1471-2962 (electronic)", ISSN-L = "1364-503X", bibdate = "Fri Dec 25 07:58:14 2015", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/r/rutherford-ernest.bib", acknowledgement = ack-nhfb, fjournal = "Philosophical Transactions of the Royal Society A: Mathematical, Physical, and Engineering Sciences", journal-URL = "http://rsta.royalsocietypublishing.org/", } @Article{Rutherford:1897:LVR, author = "Ernest {Rutherford, M. A., B. Sc.}", title = "{LIV}. {The} velocity and rate of recombination of the ions of gases exposed to {R{\"o}ntgen} radiation", journal = j-PHILOS-MAG-5, volume = "44", number = "270", pages = "422--440", month = nov, year = "1897", CODEN = "PHMAA4", DOI = "http://dx.doi.org/10.1080/14786449708621085", ISSN = "1941-5982 (print), 1941-5990 (electronic)", ISSN-L = "1941-5982", bibdate = "Fri Dec 25 17:43:12 2015", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/r/rutherford-ernest.bib", URL = "http://www.tandfonline.com/doi/abs/10.1080/14786449708621085", acknowledgement = ack-nhfb, fjournal = "Philosophical Magazine (5)", journal-URL = "http://www.tandfonline.com/loi/tphm16", onlinedate = "8 May 2009", } @Article{Rutherford:1899:ITU, author = "{Professor} Ernest {Rutherford, M. A., B. Sc.} and {Professor} Robert B. {Owens, E. E.}", title = "{II}. Thorium and Uranium Radiation", journal = j-TRANS-R-SOC-CAN, volume = "5", number = "Section {III}", pages = "9--12", day = "26", month = may, year = "1899", CODEN = "TRSCAI", ISSN = "0035-9122", ISSN-L = "0035-9122", bibdate = "Fri Dec 25 17:49:24 2015", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/r/rutherford-ernest.bib", note = "This paper contains the discovery of radon, before Pierre and Marie Curie (1899), and Ernst Dorn (1900). See \cite{Brenner:2000:RCR}.", URL = "http://tinyurl.com/pw5lo8z; http://www.biodiversitylibrary.org/page/10793245", acknowledgement = ack-nhfb, ajournal = "Trans. R. Soc. Can.", book-URL = "http://hdl.handle.net/2027/inu.32000004343184", fjournal = "Transactions of the Royal Society of Canada, Second Series", journal-URL = "http://www.rsc-src.ca/en/publications-resources/transactions-and-proceedings", xxURL = "http://hdl.handle.net/2027/inu.32000004343184?urlappend=%3Bseq=921", } @Article{Rutherford:1901:NGR, author = "Ernest {Rutherford, M. A. , D. Sc. } and {Miss} Harriet T. {Brooks, M. A. }", title = "The New Gas from Radium", journal = j-TRANS-R-SOC-CAN, volume = "7", number = "Section {III}", pages = "21--25", day = "23", month = may, year = "1901", CODEN = "TRSCAI", ISSN = "0035-9122", ISSN-L = "0035-9122", bibdate = "Fri Dec 25 19:10:58 2015", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/r/rutherford-ernest.bib", URL = "http://hdl.handle.net/2027/inu.32000004343010?urlappend=%3Bseq=819; http://www.biodiversitylibrary.org/page/10745147", acknowledgement = ack-nhfb, book-URL = "http://hdl.handle.net/2027/inu.32000004343010", fjournal = "Transactions of the Royal Society of Canada", journal-URL = "http://www.rsc-src.ca/en/publications-resources/transactions-and-proceedings", } @Article{Rutherford:1914:SPR, author = "{Sir} Ernest {Rutherford, R. R. S. } and E. N. da C. (Edward Neville da Costa) {Andrade, B. Sc. , Ph. D. }", title = "The Spectrum of the Penetrating $ \gamma $ Rays from Radium {B} and Radium {C}", journal = j-PHILOS-MAG-6, volume = "28", number = "164", pages = "263--273", month = aug, year = "1914", CODEN = "PHMAA4", DOI = "http://dx.doi.org/10.1080/14786440808635207", ISSN = "1941-5982 (print), 1941-5990 (electronic)", ISSN-L = "1941-5982", bibdate = "Sat Dec 26 06:18:17 2015", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/r/rutherford-ernest.bib", URL = "http://www.tandfonline.com/doi/abs/10.1080/14786440808635207", acknowledgement = ack-nhfb, fjournal = "The London, Edinburgh, and Dublin Philosophical Magazine and Journal of Science, VI. Series", journal-URL = "http://www.tandfonline.com/loi/tphm17", onlinedate = "8 Apr 2009", } @Article{Rutherford:1931:HP, author = "{The Right Honourable Lord} {Rutherford, O. M. , F. R. S. }", title = "Helium and its properties", journal = j-NATURE, volume = "128", number = "3221", pages = "137--138", day = "25", month = jul, year = "1931", CODEN = "NATUAS", DOI = "http://dx.doi.org/10.1038/128137a0", ISSN = "0028-0836 (print), 1476-4687 (electronic)", ISSN-L = "0028-0836", bibdate = "Wed Jan 06 18:34:54 2016", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/r/rutherford-ernest.bib", URL = "http://www.nature.com/nature/journal/v128/n3221/pdf/128137a0.pdf", acknowledgement = ack-nhfb, fjournal = "Nature", journal-URL = "http://www.nature.com/nature/archive/", } @Article{Rutherford:1931:OR, author = "{Lord} {Rutherford, O. M. , F. R. S. } and C. D. {Ellis, F. R. S. }", title = "The Origin of the $ \gamma $-Rays", journal = j-PROC-R-SOC-LOND-SER-A-MATH-PHYS, volume = "132", number = "820", pages = "667--688", day = "1", month = aug, year = "1931", DOI = "http://dx.doi.org/10.1098/rspa.1931.0125", ISSN = "0950-1207 (print), 2053-9150 (electronic)", ISSN-L = "0950-1207", bibdate = "Sat Dec 26 06:18:17 2015", bibsource = "http://www.math.utah.edu/pub/bibnet/authors/r/rutherford-ernest.bib", URL = "http://rspa.royalsocietypublishing.org/content/132/820/667", acknowledgement = ack-nhfb, fjournal = "Proceedings of the Royal Society of London. Series A, Containing Papers of a Mathematical and Physical Character", journal-URL = "http://rspa.royalsocietypublishing.org/", received = "4 July 1931", } @Article{Stephens:1973:CAE, author = "Michael D. {Stephens, M. A. , M. Ed. , Ph. D. , F. R. G. S. } and Gordon W. {Roderick, B. Sc. , M. A. , Ph. D. , M. Inst. P. }", title = "Changing attitudes to education in {England} \& {Wales} 1833--1902: The governmental reports, with particular reference to science \& technical studies", journal = j-ANN-SCIENCE, volume = "30", number = "2", pages = "149--164", year = "1973", CODEN = "ANNSA8", DOI = "http://dx.doi.org/10.1080/00033797300200081", ISSN = "0003-3790 (print), 1464-505X (electronic)", ISSN-L = "0003-3790", bibdate = "Sat Nov 10 18:51:52 MST 2012", bibsource = "http://www.math.utah.edu/pub/tex/bib/annscience.bib", acknowledgement = ack-nhfb, fjournal = "Annals of Science", journal-URL = "http://www.tandfonline.com/loi/tasc20", onlinedate = "22 Aug 2006", } @Article{Schove:1973:WSD, author = "D. J. {Schove, Ph. D., F. R. Met. S.} and David {Reynolds, B. A.}", title = "Weather in {Scotland}, 1659--1660: The diary of {Andrew Hay}", journal = j-ANN-SCIENCE, volume = "30", number = "2", pages = "165--177", year = "1973", CODEN = "ANNSA8", DOI = "http://dx.doi.org/10.1080/00033797300200091", ISSN = "0003-3790 (print), 1464-505X (electronic)", ISSN-L = "0003-3790", bibdate = "Sat Nov 10 18:51:52 MST 2012", bibsource = "http://www.math.utah.edu/pub/tex/bib/annscience.bib", acknowledgement = ack-nhfb, fjournal = "Annals of Science", journal-URL = "http://www.tandfonline.com/loi/tasc20", onlinedate = "22 Aug 2006", } @Article{Cable:1973:ESSa, author = "John A. {Cable, M. A., M. Ed., Dipl. Deutsch (Marburg), A. L. C. M.}", title = "Early {Scottish} science: The vocational provision", journal = j-ANN-SCIENCE, volume = "30", number = "2", pages = "179--199", year = "1973", CODEN = "ANNSA8", DOI = "http://dx.doi.org/10.1080/00033797300200101", ISSN = "0003-3790 (print), 1464-505X (electronic)", ISSN-L = "0003-3790", bibdate = "Sat Nov 10 18:51:52 MST 2012", bibsource = "http://www.math.utah.edu/pub/tex/bib/annscience.bib", acknowledgement = ack-nhfb, fjournal = "Annals of Science", journal-URL = "http://www.tandfonline.com/loi/tasc20", onlinedate = "22 Aug 2006", } @Article{Cable:1973:ESSb, author = "John A. {Cable, M. A., M. Ed., Dipl.~Deutsch (Marburg), A. L. C. M.}", title = "Early {Scottish} science: The vocational provision", journal = j-ANN-SCIENCE, volume = "30", number = "2", pages = "179--199", year = "1973", CODEN = "ANNSA8", DOI = "http://dx.doi.org/10.1080/00033797300200101", ISSN = "0003-3790 (print), 1464-505X (electronic)", ISSN-L = "0003-3790", bibdate = "Sat Nov 10 18:51:52 MST 2012", bibsource = "http://www.math.utah.edu/pub/tex/bib/annscience.bib", acknowledgement = ack-nhfb, fjournal = "Annals of Science", journal-URL = "http://www.tandfonline.com/loi/tasc20", onlinedate = "22 Aug 2006", } bibclean-3.07/test/topt102.opt0000444000156700015670000000001612470142073015013 0ustar beebebeebe-German-style bibclean-3.07/test/testopt3.bib0000444000156700015670000000000007342756043015324 0ustar beebebeebebibclean-3.07/test/topt331.opt0000444000156700015670000000002312470142160015012 0ustar beebebeebe--no-brace-protect bibclean-3.07/test/testoptt.bib0000444000156700015670000001115212073026021015416 0ustar beebebeebe@Article{a1, author = "A. Bee", title = "$r$$^3$", title = "$R$$^3$", title = "{\bf R}", title = "{\bf Word}", title = "Erd\H os", title = "\TeX", title = "Erd{\H O}s", title = "{$\u{R}$}", title = "$\u{R}$", title = "$\mathbb{R}$$^3$", title = "{$\mathbb{R}$}$^3$", booktitle = "Embedding Plane $3$-Trees in $\mathbb{R}$$^2$ and {$\mathbb{R}$}$^3$ and alternate title: Embedding Plane $3$-Trees in ${\cal R}$$^2$ and {${\cal R}$}$^3$ and more alternate title: Embedding Plane $3$-Trees in {\bf R}$^2$ and {\bf R}$^3$", year = "2012", } @Article{a2, author = "A. Bee", year = "2012", title = "{\bf R}$^3$", } @Article{a3, title = "Efficient Mining of Frequent Items Coupled with Weight and \slash or Support over Progressive Databases", title = "$R$$^3$", } @Article{a4, author = "Kenny Q. Zhu and Kathleen Fisher and David Walker", title = "{LearnPADS$^{++}$}: Incremental Inference of Ad Hoc Data Formats", } @Article{a5, title = "{LearnPADS$^{++}$}: Incremental Inference of Ad Hoc Data Formats", title = "Is Light Blue ({\em azzurro}) Color Name Universal in the {Italian} Language?", } @Article{a6, title = "Optimal Anti-{Bayesian} Pattern", title = "Optimal Anti-Bayesian Pattern", title = "Optimal ``Anti-{establishment}'' Pattern", title = "Optimal ``Anti-{Bayesian}'' Pattern", title = "Optimal ``Anti-Bayesian'' Pattern", } @Misc{m01, title = "Postscript${}^{TM}$ printer", } @Misc{m02, title = "Postscript$^{TM}$ printer", } @Misc{m03, title = "On $\wedge$-operations and $\vee$-operations", } @Misc{m04, title = "Erd\H os equation", } @Misc{m05, title = "Erd{\H{O}}s equation", } @Misc{m06, title = "Erd{\H{o}}s", } @Misc{m07, title = "Ath\'enes", } @Misc{m08, title = "Ath{\'e}nes", } @Misc{m09, title = "Ath{\'{e}}nes", } @Misc{m10, title = "{$3$D} graphics" } @Misc{m11, title = "Let $x$ and $y$ be positive." } @Article{x1a, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {Erd}\H{O}s equation", } @Article{x1b, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {Erd}{\H{O}}s equation", } @Article{x1c, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {Erd}{{\H{O}}}s equation", } @Article{x2a, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- \TeX" } @Article{x2b, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {\TeX}" } @Article{x2c, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {{\TeX}}" } @Article{x3a, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- \TeX book" } @Article{x3b, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {\TeX book}" } @Article{x3c, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {{\TeX book}}" } @Article{x4a, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- \TeX Book" } @Article{x4b, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {\TeX Book}" } @Article{x4c, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {{\TeX Book}}" } @Article{x5a, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- \H{o} is a Long Accent" } @Article{x5b, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {\H{o} is a Long Accent}" } @Article{x5c, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {\H{o} is a Long Accent}" } @Article{x6a, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- \H{O} is a Long Accent" } @Article{x6b, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {\H{O} is a Long Accent}" } @Article{x6c, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {{\H{O} is a Long Accent}}" } @Article{x7a, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- \em Bose--Einstein" } @Article{x7b, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {\em Bose--Einstein}" } @Article{x7c, author = "A. Uthor", journal = "J. Ournal", year = "2000", title = "Sample --- {{\em Bose--Einstein}}" } bibclean-3.07/test/topt113.bib0000444000156700015670000000000012470142227014741 0ustar beebebeebebibclean-3.07/test/topt113.opt0000444000156700015670000000001712470142073015016 0ustar beebebeebe-file-position bibclean-3.07/test/testoptt.opt0000444000156700015670000000001412112253212015455 0ustar beebebeebe-fix-braces bibclean-3.07/test/topt331.bib0000444000156700015670000000000012470142232014737 0ustar beebebeebebibclean-3.07/test/testopt3.opt0000444000156700015670000000066307342756262015414 0ustar beebebeebe-no-German-style -no-align-equals -no-check-values -no-debug-match-failures -no-delete-empty-values -no-file-position -no-fix-font-changes -no-fix-initials -no-fix-names -no-keep-linebreaks -no-keep-parbreaks -no-keep-preamble-spaces -no-keep-spaces -no-keep-string-spaces -no-parbreaks -no-prettyprint -no-print-ISBN-table -no-print-keyword-table -no-print-patterns -no-read-init-files -no-remove-OPT-prefixes -no-scribe -no-warnings bibclean-3.07/test/topt102.bib0000444000156700015670000000000012470142225014735 0ustar beebebeebebibclean-3.07/test/testbib8.opt0000664000156700015670000000001612663426037015343 0ustar beebebeebe--fix-degrees bibclean-3.07/test/topt320.opt0000444000156700015670000000000712470142160015012 0ustar beebebeebe--help bibclean-3.07/test/topt168.opt0000444000156700015670000000001112470142073015022 0ustar beebebeebe-version bibclean-3.07/test/topt105.bib0000444000156700015670000000000012470142225014740 0ustar beebebeebebibclean-3.07/test/topt327.opt0000444000156700015670000000003112470142160015016 0ustar beebebeebe--keyword-file /dev/null bibclean-3.07/test/topt114.opt0000444000156700015670000000001512470142073015015 0ustar beebebeebe-fix-accents bibclean-3.07/test/testopts.opt0000444000156700015670000000004712071674507015504 0ustar beebebeebe-fix-accents -fix-braces -max-width 60 bibclean-3.07/test/topt336.bib0000444000156700015670000000000012470142232014744 0ustar beebebeebebibclean-3.07/test/testopt4.opt0000444000156700015670000000032207342756265015410 0ustar beebebeebe-no-G -no-a -no-c -no-deb -no-del -no-fil -no-fix-f -no-fix-i -no-fix-n -no-keep-l -no-keep-pa -no-keep-pr -no-keep-sp -no-keep-st -no-pa -no-pre -no-print-I -no-print-k -no-print-p -no-rea -no-rem -no-s -no-w bibclean-3.07/test/topt166.opt0000444000156700015670000000002512470142073015025 0ustar beebebeebe-remove-OPT-prefixes bibclean-3.07/test/testbib1.opt0000444000156700015670000000000007342717006015316 0ustar beebebeebebibclean-3.07/test/topt329.opt0000444000156700015670000000002212470142160015020 0ustar beebebeebe--no-German-style bibclean-3.07/test/topt344.bib0000444000156700015670000000000012470142232014743 0ustar beebebeebebibclean-3.07/test/testscr2.opt0000444000156700015670000000003007342721610015351 0ustar beebebeebe-scribe -file -no-check bibclean-3.07/test/topt355.opt0000444000156700015670000000001412470142160015020 0ustar beebebeebe--no-scribe bibclean-3.07/test/topt338.bib0000444000156700015670000000000012470142232014746 0ustar beebebeebebibclean-3.07/test/topt170.bib0000664000156700015670000000000012663425702014756 0ustar beebebeebebibclean-3.07/test/topt352.opt0000444000156700015670000000001312470142160015014 0ustar beebebeebe--no-quiet bibclean-3.07/test/topt161.opt0000444000156700015670000000004612470456624015035 0ustar beebebeebe-no-read-init-files -print-ISBN-table bibclean-3.07/test/testbib6.opt0000444000156700015670000000000007342717006015323 0ustar beebebeebebibclean-3.07/test/testcodn.bib0000444000156700015670000011517006140704075015372 0ustar beebebeebe%% /u/sy/beebe/tex/bibclean/2-11/testcodn.org, Sun Apr 28 09:01:10 1996 %% Edit by Nelson H. F. Beebe @Article{good-CODEN, comment = "The following CODEN values are valid", CODEN = "AAAAE6", CODEN = "AACRAT", CODEN = "AAFMAT", CODEN = "AAICAE", CODEN = "AALEE5", CODEN = "AAMADV", CODEN = "AAPBBD", CODEN = "AARIA9", CODEN = "AASTAD", CODEN = "ABACEJ", CODEN = "ABBIA4", CODEN = "ABBPAP", CODEN = "ABMECF", CODEN = "ACACBN", CODEN = "ACACEQ", CODEN = "ACCSCE", CODEN = "ACCYDX", CODEN = "ACMAA8", CODEN = "ACMJB2", CODEN = "ACMSCU", CODEN = "ACMTAV", CODEN = "ACNRCW", CODEN = "ACPZAU", CODEN = "ACRABY", CODEN = "ACVMAL", CODEN = "ADIMEZ", CODEN = "ADMOAN", CODEN = "ADMTA4", CODEN = "ADVBAT", CODEN = "ADVMEW", CODEN = "AEDEER", CODEN = "AEDSAV", CODEN = "AEMABN", CODEN = "AEMIDF", CODEN = "AERAAD", CODEN = "AESODT", CODEN = "AESWEK", CODEN = "AHCOE5", CODEN = "AHPBAR", CODEN = "AHSUAV", CODEN = "AIAJAH", CODEN = "AIFUA7", CODEN = "AINFA2", CODEN = "AINTBB", CODEN = "AISJB6", CODEN = "AJAEBA", CODEN = "AJCLD9", CODEN = "AJCPAI", CODEN = "AJMAAN", CODEN = "AJPCAA", CODEN = "AJPHAP", CODEN = "AJPIAS", CODEN = "AJSOAR", CODEN = "ALGOBG", CODEN = "ALGOEJ", CODEN = "ALLCB5", CODEN = "ALNBAB", CODEN = "ALPSE8", CODEN = "ALSHAK", CODEN = "AMACCQ", CODEN = "AMEAE8", CODEN = "AMHCBQ", CODEN = "AMICCW", CODEN = "AMLEEL", CODEN = "AMMYAE", CODEN = "AMNOAN", CODEN = "AMNTA4", CODEN = "AMOMBN", CODEN = "AMPSAB", CODEN = "AMREAD", CODEN = "AMSCAC", CODEN = "ANBCA2", CODEN = "ANCHAM", CODEN = "ANJOAA", CODEN = "ANMAAH", CODEN = "ANMAEL", CODEN = "ANMBCM", CODEN = "ANNSA8", CODEN = "ANYAA9", CODEN = "AOREEV", CODEN = "APANCC", CODEN = "APBYAE", CODEN = "APITE4", CODEN = "APLQD9", CODEN = "APMTAK", CODEN = "APOPAI", CODEN = "APPHE3", CODEN = "APPLAB", CODEN = "APSSBE", CODEN = "APSTAG", CODEN = "ARBOAW", CODEN = "ARCBE2", CODEN = "AREDEI", CODEN = "AREOAD", CODEN = "ARGSB2", CODEN = "ARITBF", CODEN = "ARMSCX", CODEN = "ARNSD5", CODEN = "ARPHAD", CODEN = "ASFPDV", CODEN = "ASJOAB", CODEN = "ASLPAO", CODEN = "ASNAAN", CODEN = "ASRSDW", CODEN = "ASTAAJ", CODEN = "ASTSC7", CODEN = "ASTTA8", CODEN = "ATCAA9", CODEN = "ATDSD3", CODEN = "ATENBP", CODEN = "ATGRDF", CODEN = "ATISET", CODEN = "ATOSDO", CODEN = "ATPSDT", CODEN = "AUJPAS", CODEN = "AURCAT", CODEN = "AVRMAW", CODEN = "AWIFA7", CODEN = "AWREDI", CODEN = "BAMOAD", CODEN = "BASICR", CODEN = "BBACAQ", CODEN = "BBIADT", CODEN = "BBPCAX", CODEN = "BBRCA9", CODEN = "BCBIEQ", CODEN = "BCHSEI", CODEN = "BCPCA6", CODEN = "BCSTB5", CODEN = "BECTA6", CODEN = "BEITD5", CODEN = "BEVEDP", CODEN = "BGDQAG", CODEN = "BIBUBX", CODEN = "BICHAW", CODEN = "BICIAZ", CODEN = "BICMBE", CODEN = "BICYAF", CODEN = "BIINDF", CODEN = "BIJOAK", CODEN = "BIJODN", CODEN = "BIOEEJ", CODEN = "BIOJAU", CODEN = "BIOKAX", CODEN = "BIOMB6", CODEN = "BIOPAE", CODEN = "BIORAK", CODEN = "BISNAS", CODEN = "BITTEL", CODEN = "BIZBAR", CODEN = "BIZEB3", CODEN = "BJCAAI", CODEN = "BJMRDK", CODEN = "BJMSAK", CODEN = "BLCEDD", CODEN = "BLOOAW", CODEN = "BLRRDP", CODEN = "BMBIES", CODEN = "BMFRA3", CODEN = "BMSSB4", CODEN = "BMTBAP", CODEN = "BOMBB5", CODEN = "BOMIET", CODEN = "BRCPAH", CODEN = "BRHLAU", CODEN = "BRMCEW", CODEN = "BRPTDT", CODEN = "BSECBU", CODEN = "BSMFAA", CODEN = "BSMHBH", CODEN = "BSMSAF", CODEN = "BSSYAT", CODEN = "BSTJAN", CODEN = "BSYMBO", CODEN = "BTCHDA", CODEN = "BUWEA3", CODEN = "BYTEDJ", CODEN = "CACMA2", CODEN = "CAIDA5", CODEN = "CAMRE3", CODEN = "CANED2", CODEN = "CANMER", CODEN = "CASSI6", CODEN = "CBIIEV", CODEN = "CBIODE", CODEN = "CBMDAW", CODEN = "CBMRB7", CODEN = "CBPBB8", CODEN = "CBPCEE", CODEN = "CBRPDS", CODEN = "CCCTD6", CODEN = "CCEJEL", CODEN = "CCENDW", CODEN = "CCOMDB", CODEN = "CCRED2", CODEN = "CCROAT", CODEN = "CCUJEX", CODEN = "CDDEE8", CODEN = "CDWOEV", CODEN = "CECADV", CODEN = "CEJOE7", CODEN = "CELLB5", CODEN = "CELREQ", CODEN = "CENGAX", CODEN = "CESIEY", CODEN = "CEXIAL", CODEN = "CFSBEK", CODEN = "CGFODY", CODEN = "CGISES", CODEN = "CGMPE5", CODEN = "CGOSDN", CODEN = "CGRADI", CODEN = "CGTNAU", CODEN = "CGWODH", CODEN = "CHASAP", CODEN = "CHEDAY", CODEN = "CHKWEN", CODEN = "CHMBAY", CODEN = "CHPLBC", CODEN = "CHRLEP", CODEN = "CILSEN", CODEN = "CINDDL", CODEN = "CINUD4", CODEN = "CIRUAL", CODEN = "CIUNEJ", CODEN = "CJBBDU", CODEN = "CJEEEL", CODEN = "CJISDE", CODEN = "CJMAAB", CODEN = "CJMIAZ", CODEN = "CJPHAD", CODEN = "CLDFAT", CODEN = "CLHAD3", CODEN = "CLMCAV", CODEN = "CLSRE8", CODEN = "CMAPDK", CODEN = "CMBUA9", CODEN = "CMCYEO", CODEN = "CMENEZ", CODEN = "CMERA9", CODEN = "CMMECC", CODEN = "CMMEEE", CODEN = "CMMPA9", CODEN = "CMORAP", CODEN = "CMOTDY", CODEN = "CMPBEK", CODEN = "CMPDAM", CODEN = "CMPHAY", CODEN = "CMPHC2", CODEN = "CMPJA6", CODEN = "CMPMAF", CODEN = "CMPWAB", CODEN = "CMRED4", CODEN = "CMSTCJ", CODEN = "CMSVAN", CODEN = "CMSYE2", CODEN = "CMUCAA", CODEN = "CMUJDY", CODEN = "CNEVEW", CODEN = "CNISE9", CODEN = "CNOMEL", CODEN = "COABER", CODEN = "COATBA", CODEN = "COBUAH", CODEN = "COCBE3", CODEN = "COCHDK", CODEN = "COCOD7", CODEN = "COGDET", CODEN = "COGRD2", CODEN = "COHUAD", CODEN = "COLADA", CODEN = "COLAEB", CODEN = "COLJD3", CODEN = "COMBDI", CODEN = "COMEDR", CODEN = "COMGDX", CODEN = "COMHAX", CODEN = "COMIE6", CODEN = "COMLEF", CODEN = "COMPER", CODEN = "COMSE2", CODEN = "COPIEL", CODEN = "COSEEO", CODEN = "COSPDM", CODEN = "COSTCX", CODEN = "CPAUAJ", CODEN = "CPBTAL", CODEN = "CPCIBS", CODEN = "CPCLE6", CODEN = "CPCPAI", CODEN = "CPDIDZ", CODEN = "CPEXEI", CODEN = "CPFLBI", CODEN = "CPGRA6", CODEN = "CPHCBZ", CODEN = "CPHREF", CODEN = "CPHYE2", CODEN = "CPLIE8", CODEN = "CPMAMV", CODEN = "CPMTA8", CODEN = "CPPNB6", CODEN = "CPSEDU", CODEN = "CPTRB4", CODEN = "CQGRDG", CODEN = "CQMAAQ", CODEN = "CRASEV", CODEN = "CRBRAT", CODEN = "CRCHE8", CODEN = "CRGRDN", CODEN = "CRLIAI", CODEN = "CRPFEX", CODEN = "CRVMAC", CODEN = "CRYPE6", CODEN = "CSCIAE", CODEN = "CSDADW", CODEN = "CSFUDY", CODEN = "CSHSAZ", CODEN = "CSINET", CODEN = "CSMNEF", CODEN = "CSPLEO", CODEN = "CSSCDB", CODEN = "CSSEEI", CODEN = "CSTAEB", CODEN = "CSTIEZ", CODEN = "CSYND6", CODEN = "CTCRAE", CODEN = "CTDBA5", CODEN = "CTMEET", CODEN = "CTPHDI", CODEN = "CTRAA4", CODEN = "CUBLE2", CODEN = "CUGED5", CODEN = "CUMIDD", CODEN = "CUOBE3", CODEN = "CUSCAM", CODEN = "CVGPDB", CODEN = "CVIUF4", CODEN = "CWLJDP", CODEN = "CYBNAW", CODEN = "CYTOAN", CODEN = "CYTODQ", CODEN = "CYTZAM", CODEN = "CZMJAE", CODEN = "DACODM", CODEN = "DAMADU", CODEN = "DANKAS", CODEN = "DBANAD", CODEN = "DBMSEO", CODEN = "DCEBE8", CODEN = "DCGEER", CODEN = "DDJOEB", CODEN = "DEBIAO", CODEN = "DEMADO", CODEN = "DESUED", CODEN = "DEVPED", CODEN = "DFFNAW", CODEN = "DGDFA5", CODEN = "DGNTDW", CODEN = "DHSTEV", CODEN = "DHWHAB", CODEN = "DIEQAN", CODEN = "DIGNAO", CODEN = "DIRVE5", CODEN = "DJTGEB", CODEN = "DKENEW", CODEN = "DNAADR", CODEN = "DNSEES", CODEN = "DPCOEQ", CODEN = "DSINE6", CODEN = "DSJOEE", CODEN = "DSMHA4", CODEN = "DSSYDK", CODEN = "DTBSDQ", CODEN = "DTGDE7", CODEN = "DTMNAT", CODEN = "DUMJAO", CODEN = "EAPPEY", CODEN = "ECJSER", CODEN = "ECMTA7", CODEN = "ECREAL", CODEN = "EDNSBH", CODEN = "EDNSBM", CODEN = "EFMEAH", CODEN = "EIVKAX", CODEN = "EJABDD", CODEN = "EJBCAI", CODEN = "EJCBDN", CODEN = "EJCBEO", CODEN = "EJNMEA", CODEN = "EJOCDI", CODEN = "EJORDT", CODEN = "EJPREZ", CODEN = "EKRKAR", CODEN = "ELCTDN", CODEN = "ELEADA", CODEN = "ELLEAK", CODEN = "ELLIDZ", CODEN = "ELMMAF", CODEN = "ELNEAU", CODEN = "ELNTA7", CODEN = "ELODAW", CODEN = "ELRAA4", CODEN = "EMIREL", CODEN = "EMJODG", CODEN = "ENDEAS", CODEN = "ENMAAR", CODEN = "ENPOEK", CODEN = "EOCMEO", CODEN = "EONLE8", CODEN = "EPEBD7", CODEN = "EPMEAJ", CODEN = "EPODEU", CODEN = "ERGOAX", CODEN = "ERMGB6", CODEN = "ESBIAV", CODEN = "ESTHAG", CODEN = "ETTIEU", CODEN = "ETTTET", CODEN = "EWWWE6", CODEN = "EXEEE5", CODEN = "EXMYD2", CODEN = "EXPEAM", CODEN = "EXPSAU", CODEN = "EXSEE7", CODEN = "EYPRE4", CODEN = "FAJOEC", CODEN = "FASRDV", CODEN = "FEADEU", CODEN = "FEBLAL", CODEN = "FEBPBY", CODEN = "FEPRA7", CODEN = "FIBQAU", CODEN = "FMLED7", CODEN = "FMREE4", CODEN = "FODMD5", CODEN = "FORBA5", CODEN = "FORTAP", CODEN = "FSSYD8", CODEN = "FUJTAR", CODEN = "FUMAAJ", CODEN = "GAMOE4", CODEN = "GEDEEP", CODEN = "GENED6", CODEN = "GENTAE", CODEN = "GLSEED", CODEN = "GLYCE3", CODEN = "GNMCEP", CODEN = "GPYSA7", CODEN = "GRGVA8", CODEN = "GRWAAP", CODEN = "HABRAX", CODEN = "HAEMAX", CODEN = "HALEAA", CODEN = "HALRAF", CODEN = "HAMAA3", CODEN = "HCMYAL", CODEN = "HIMADS", CODEN = "HJICAI", CODEN = "HJKHDC", CODEN = "HLTPAO", CODEN = "HPJOAX", CODEN = "HUBIAA", CODEN = "HUFAA6", CODEN = "HUHEAS", CODEN = "HUNEDR", CODEN = "HVERAP", CODEN = "HYPRAX", CODEN = "IAPMEZ", CODEN = "IBMBES", CODEN = "IBMJAE", CODEN = "IBMSA7", CODEN = "IBMTAA", CODEN = "ICCBAF", CODEN = "ICGADZ", CODEN = "ICHPCG", CODEN = "ICOEEK", CODEN = "ICOMD9", CODEN = "ICSAES", CODEN = "ICSYBT", CODEN = "IDXRA5", CODEN = "IEANEP", CODEN = "IEARAX", CODEN = "IEBEAX", CODEN = "IECMBT", CODEN = "IECTAF", CODEN = "IEEDAB", CODEN = "IEEDEF", CODEN = "IEEECA", CODEN = "IEEPAD", CODEN = "IEERAJ", CODEN = "IEESAM", CODEN = "IEEWAY", CODEN = "IEITEF", CODEN = "IEJQA7", CODEN = "IEMGAQ", CODEN = "IEMIDZ", CODEN = "IEPCBU", CODEN = "IERNE8", CODEN = "IESEDJ", CODEN = "IESOEG", CODEN = "IETAA9", CODEN = "IETABA", CODEN = "IETDAI", CODEN = "IETIAX", CODEN = "IETMAB", CODEN = "IETPAK", CODEN = "IETTAW", CODEN = "IFCAE3", CODEN = "IFCEBC", CODEN = "IFCNA4", CODEN = "IFCSEN", CODEN = "IFDBEB", CODEN = "IFESEX", CODEN = "IFPLAT", CODEN = "IFSRAS", CODEN = "IGRSD2", CODEN = "IHPRBS", CODEN = "IHSCEZ", CODEN = "IICOEW", CODEN = "IIOMEI", CODEN = "IJAEDW", CODEN = "IJANDP", CODEN = "IJARE4", CODEN = "IJAUED", CODEN = "IJBBBQ", CODEN = "IJBBFU", CODEN = "IJBOBV", CODEN = "IJCIAH", CODEN = "IJCMAT", CODEN = "IJCOAZ", CODEN = "IJCTEK", CODEN = "IJCVEQ", CODEN = "IJDBE5", CODEN = "IJEBA6", CODEN = "IJEEAF", CODEN = "IJHMAK", CODEN = "IJHYEQ", CODEN = "IJISED", CODEN = "IJMEBM", CODEN = "IJMMBC", CODEN = "IJMPDN", CODEN = "IJMPEO", CODEN = "IJMTAW", CODEN = "IJNADH", CODEN = "IJNFDW", CODEN = "IJNMBH", CODEN = "IJPBEV", CODEN = "IJPPE5", CODEN = "IJQBDZ", CODEN = "IJQCB2", CODEN = "IJQSAF", CODEN = "IJQSDI", CODEN = "IJRAE4", CODEN = "IJRBE7", CODEN = "IJSAE9", CODEN = "IJSCBC", CODEN = "IJSYA9", CODEN = "IJSZEG", CODEN = "IJTPBM", CODEN = "IMCSE4", CODEN = "IMPAEF", CODEN = "IMPDEO", CODEN = "IMPEER", CODEN = "IMSIEK", CODEN = "IMTHAI", CODEN = "IMTHBJ", CODEN = "INFAC4", CODEN = "INFCDB", CODEN = "INFCEC", CODEN = "INFRCL", CODEN = "INFTCR", CODEN = "INFWE4", CODEN = "INPEEY", CODEN = "INSKDW", CODEN = "INSYD6", CODEN = "INWODU", CODEN = "IPDAD9", CODEN = "IPDTEX", CODEN = "IPETD3", CODEN = "IPJIEI", CODEN = "IPMADK", CODEN = "IPPADZ", CODEN = "IPPDDA", CODEN = "IPPRDI", CODEN = "IPRODJ", CODEN = "IRAMEB", CODEN = "IRCYAJ", CODEN = "IRELAO", CODEN = "IRITAY", CODEN = "IRLAAQ", CODEN = "IRMGBG", CODEN = "ISACEM", CODEN = "ISIJBC", CODEN = "ISISA4", CODEN = "ISJMAP", CODEN = "ISOTE7", CODEN = "ISUDX8", CODEN = "ISYMAW", CODEN = "ISYSDJ", CODEN = "ITADAS", CODEN = "ITBTEH", CODEN = "ITCEDA", CODEN = "ITCOB4", CODEN = "ITCSDI", CODEN = "ITDSEO", CODEN = "ITKEEH", CODEN = "ITLBDC", comment = "These CODEN are correct, except that they have been converted to lower case", coden = "itmeer", coden = "itmgex", coden = "itmid4", coden = "itnnep", coden = "itpidj", coden = "itpred", coden = "itpseg", coden = "itrdde", coden = "iumjab", coden = "ivjodl", coden = "iweea4", coden = "izamat", coden = "jacgar", coden = "jacoah", coden = "jacsat", coden = "jactaw", coden = "jaecet", coden = "jahsak", coden = "jalga4", coden = "jalsa6", coden = "jamaap", coden = "jamads", coden = "jamcav", coden = "jammdu", coden = "japgbp", coden = "japiau", coden = "jareew", coden = "jasman", coden = "jatsdf", coden = "jaumax", coden = "jaxtaz", coden = "jbbmdg", coden = "jbcha3", coden = "jbditd", coden = "jbmrej", coden = "jbsdd6", coden = "jcaleg", coden = "jcamdi", coden = "jcatd5", coden = "jcbta7", coden = "jcbtb8", coden = "jccee5", coden = "jcchdd", coden = "jcebd5", coden = "jcinao", coden = "jcisd8", coden = "jcise9", coden = "jclba3", coden = "jcllax", coden = "jcmbdb", coden = "jcmiex", coden = "jcmmeb", coden = "jcmtdv", coden = "jcnrev", coden = "jcoid8", coden = "jcpadn", coden = "jcpsa6", coden = "jcrgae", coden = "jcssbm", coden = "jcssep", coden = "jcteem", coden = "jcthar", coden = "jctpah", coden = "jdadex", coden = "jdeqak", coden = "jdgeas", coden = "jdimew", coden = "jdocas", coden = "jdsmaa", coden = "jeaiel", coden = "jebiam", coden = "jeclb3", coden = "jecmb6", coden = "jedrap", coden = "jeemaf", coden = "jemied", coden = "jemsa5", coden = "jenmdt", coden = "jepcea", coden = "jezoao", coden = "jflsa7", coden = "jfuaaw", coden = "jganeg", coden = "jgmian", coden = "jgopeo", coden = "jgplad", coden = "jgrea2", coden = "jgthdo", coden = "jhaddq", coden = "jicye5", coden = "jietau", coden = "jipea6", coden = "jiprde", coden = "jirral", coden = "jiscdi", coden = "jjatdk", coden = "jjgpd4", coden = "jjind8", coden = "jlcmak", coden = "jllien", coden = "jlmsak", coden = "jlpre2", coden = "jmanak", coden = "jmapaq", coden = "jmbbbo", coden = "jmblaj", coden = "jmdeec", coden = "jmevau", coden = "jmiado", coden = "jmivek", coden = "jmkyaz", coden = "jmobak", coden = "jmopew", coden = "jmpaam", coden = "jmpha9", coden = "jmrae2", coden = "jmrmd3", coden = "jmtaa8", coden = "jmvaai", coden = "jnbbau", coden = "jnbcax", coden = "jnbraa", coden = "jnciam", coden = "jncieq", coden = "jncme4", coden = "jncsai", coden = "jnrsds", coden = "jnuta9", coden = "joaldv", coden = "joamav", coden = "joaod6", coden = "jobaay", coden = "jobiao", coden = "jobpde", coden = "jobsdn", coden = "jocma7", coden = "jocreq", coden = "johea8", coden = "jomman", coden = "jomra4", coden = "jonea4", coden = "jonra9", coden = "joopec", coden = "jopad5", coden = "jophan", coden = "josaah", coden = "josha4", coden = "josmar", coden = "josued", coden = "jotabn", coden = "joviam", coden = "jpama4", coden = "jpbpdl", coden = "jpchd2", coden = "jpdcer", coden = "jpepe3", coden = "jpetab", coden = "jpgedd", coden = "jphac5", coden = "jphnb9", coden = "jphya7", coden = "jpiedn", coden = "jqsrae", coden = "jqutau", coden = "jrarax", coden = "jrcee8", coden = "jrcpa3", coden = "jrmaa8", coden = "jrmab9", coden = "jrnaad", coden = "jrnbag", coden = "jsbiem", coden = "jscsaj", coden = "jsimav", coden = "jsinay", coden = "jsirac", coden = "jsomar", coden = "jspueq", coden = "jssaef", coden = "jssie5", coden = "jssodm", coden = "jstbaj", coden = "jstnal", coden = "jstpsb", coden = "jsyceh", coden = "jsyla6", coden = "jsyma9", coden = "jtbiap", coden = "jtpedi", coden = "jvcaeo", coden = "jvcre7", coden = "jvlce7", coden = "jvsped", coden = "jwssap", coden = "jyceaj", coden = "kbrna5", coden = "keree3", coden = "kerneu", coden = "kesea4", coden = "kybeap", coden = "laapaw", coden = "latedt", coden = "lcrcao", coden = "lcsrea", coden = "lfwoe8", coden = "linmec", coden = "llcoei", coden = "lmicdi", coden = "lmphdy", coden = "lmsbbt", coden = "lnbmah", coden = "lncsd9", coden = "lnmaa2", coden = "lnmlaz", coden = "lnpha4", coden = "lscoex", coden = "lssad2", coden = "maana3", coden = "mabiar", coden = "macwea", coden = "madeap", coden = "magaas", coden = "magda3", coden = "maindc", coden = "maioeg", coden = "mamcau", coden = "mamga8", coden = "marear", coden = "mastba", coden = "masyes", coden = "matged", coden = "mazeax", coden = "mbceev", coden = "mbeveo", coden = "mbipdp", coden = "mbred3", coden = "mcbia7", coden = "mcbib8", coden = "mcblag", coden = "mcebd4", coden = "mcedda", coden = "mcend6", coden = "mcene7", coden = "mcmoeg", coden = "mcmpaf", coden = "mcrlas", coden = "mcsidr", coden = "mcsye8", coden = "mcusey", coden = "mdawah", coden = "meacbx", coden = "medve6", coden = "meenah", coden = "menzau", coden = "mesbel", coden = "metaaj", coden = "mfkaaf", coden = "mggeae", coden = "mibldr", coden = "mimcai", coden = "mimid5", coden = "mimja5", coden = "miscei", coden = "mkscas", coden = "mlbb", coden = "mmbied", coden = "mmbybo", coden = "mmdeeb", coden = "mmicdt", coden = "mmpha8", coden = "mmscdb", coden = "mnmta2", coden = "moeceo", coden = "momiee", coden = "mopma3", coden = "moredq", coden = "mosiea", coden = "mpcpco", coden = "mpevek", coden = "mpstdf", coden = "mpysa5", coden = "mrcod2", coden = "mrobeo", coden = "msciam", coden = "mstmbi", coden = "mthca2", coden = "mthnb2", coden = "mtkaab", coden = "mtmnaq", coden = "mtscan", coden = "mtseat", coden = "mttcas", coden = "mureav", coden = "musbbs", coden = "mvbrav", coden = "mweeei", coden = "mwreab", coden = "mycgao", coden = "nadoaw", coden = "narhad", coden = "nasbd3", coden = "nasfeg", coden = "natuas", coden = "natway", coden = "nawia7", coden = "nbitab", coden = "nebie2", coden = "nejmag", coden = "neredz", coden = "nessef", coden = "neuceb", coden = "nfaddl", coden = "nimaer", coden = "nnbya7", coden = "nneteb", coden = "nnobe7", coden = "noandd", coden = "nrloep", coden = "nrlqar", coden = "nstbat", coden = "ntelap", coden = "ntroav", coden = "ntwkaa", coden = "nualeg", coden = "numma7", coden = "nupabl", coden = "nupbbo", coden = "nusaaz", coden = "nwscal", coden = "nytiao", coden = "nzmab7", coden = "ocamd5", coden = "ocmiek", coden = "ocnsdk", coden = "ofsyeh", coden = "oigjav", coden = "omega6", coden = "omsoe2", coden = "oncnes", coden = "onlidn", coden = "opacat", coden = "opcob8", coden = "opcoeb", coden = "opegar", coden = "opledp", coden = "oprea1", coden = "oprqak", coden = "optzdq", coden = "oqeldi", coden = "ordyam", coden = "orled5", coden = "otikaj", coden = "pacoej", coden = "paisdq", coden = "pamyar", coden = "papcaa", coden = "pbimac", coden = "pbliej", coden = "pbmea8", coden = "pcaua3", coden = "pcbrd2", coden = "pcmpei", coden = "pcpsa4", coden = "pcsoda", coden = "pcwddv", coden = "pcwodu", coden = "pdnpdt", coden = "peevd9", coden = "pemsa3", coden = "pepsbj", coden = "peredn", coden = "pfecdr", coden = "pflabk", coden = "pharat", coden = "phblag", coden = "phcbap", coden = "phfle6", coden = "phjrd9", coden = "phmaa4", coden = "phrea7", coden = "phrvao", coden = "phstbo", coden = "phtoad", coden = "phwoew", coden = "physag", coden = "pireae", coden = "pjmaai", coden = "planab", coden = "plcmdl", coden = "pljued", coden = "plmtal", coden = "plraan", coden = "plrbaq", coden = "plsmdx", coden = "pmbidb", coden = "pmfaa4", coden = "pmhaa4", coden = "pmosaz", coden = "pnasa6", coden = "pnende", coden = "pnmbaf", coden = "podie2", coden = "ppexep", coden = "ppltee", coden = "ppsoau", coden = "preaay", coden = "preba3", coden = "prerel", coden = "prgmbd", coden = "prgrdu", coden = "pricdt", coden = "prlaaz", coden = "prlba4", coden = "prledg", coden = "prltao", coden = "progd3", coden = "prota5", coden = "prowae", coden = "prplcm", coden = "prseae", coden = "prslaz", coden = "prssdp", coden = "prvcan", coden = "prvdaq", coden = "psdae6", coden = "psfgey", coden = "psisdg", coden = "psmiax", coden = "psyma7", coden = "ptnra8", coden = "ptrbae", coden = "ptrdeo", coden = "ptrfeu", coden = "ptrsav", coden = "pwoqdy", coden = "pylaag", coden = "pylbaj", coden = "qamaay", coden = "qcbuen", coden = "qjmaat", coden = "qjmmav", coden = "qjmsaf", coden = "qjrmam", coden = "qrbudp", coden = "qsardi", coden = "radbe7", coden = "rascad", coden = "rcmmar", coden = "rcmtae", coden = "rctjdm", coden = "rdigau", coden = "refias", coden = "reltan", coden = "rfaadn", coden = "rfands", coden = "rfdedg", coden = "rjcldq", coden = "rmhpbe", coden = "rmjmae", coden = "rmmaev", coden = "rmmgab", coden = "rmphat", coden = "roagd2", coden = "rptwad", coden = "rsalfd", coden = "rsrod3", coden = "rtdvaq", coden = "rveebt", coden = "saapda", coden = "sacje3", coden = "samcas", coden = "samsec", coden = "sanabs", coden = "sanbbv", coden = "sapmb6", coden = "scamac", coden = "scebe3", coden = "scieas", coden = "scipev", coden = "scise6", coden = "scjaep", coden = "scledc", coden = "scnebk", coden = "scomdh", coden = "scpgd4", coden = "sejoed", coden = "selid4", coden = "semybl", coden = "sepsbi", coden = "sewoea", coden = "sfendp", coden = "sgbud4", coden = "sgnwd2", coden = "sidpaa", coden = "sigbel", coden = "sigmdj", coden = "signdm", coden = "sigsbz", coden = "sigsd3", coden = "sijcd4", coden = "simua2", coden = "simud5", coden = "sinodq", coden = "siread", coden = "sjamdu", coden = "sjcodc", coden = "sjcsep", coden = "sjdba9", coden = "sjmaah", coden = "sjmael", coden = "sjnaam", coden = "sjoce3", coden = "sjope8", coden = "smataz", coden = "smcpax", coden = "smeped", coden = "smjcat", coden = "smjmap", coden = "smster", coden = "snewd6", coden = "somadl", coden = "soriax", coden = "spcoel", coden = "spexbl", coden = "sphda9", coden = "splban", coden = "sprodr", coden = "sproes", coden = "spvieu", coden = "srdfed", coden = "srecd8", coden = "sroldh", coden = "srpsd9", coden = "ssbde4", coden = "sseba9", coden = "ssmaac", coden = "sssaa8", coden = "sstrey", coden = "stace3", coden = "stopb7", coden = "strue6", coden = "stscep", coden = "sunwdw", coden = "surveg", coden = "svmda8", coden = "sycna9", coden = "syine9", coden = "taeea5", coden = "tamtam", coden = "tansao", coden = "tbscdb", coden = "tbsrdm", coden = "tchaam", coden = "tcmta2", coden = "tcmte6", coden = "tcscdi", coden = "tereau", coden = "tetref", coden = "thejd4", coden = "tlcmbt", coden = "tmisaf", coden = "tplgaf", coden = "tprbau", coden = "trgee2", coden = "trmiea", coden = "trrebk", coden = "trscbj", coden = "tsaea9", coden = "tsica9", coden = "twasde", coden = "tymea9", coden = "ulccdc", coden = "ultrd6", coden = "uncoet", coden = "unred5", coden = "utmada", coden = "vaxpen", coden = "vicoe5", coden = "visram", coden = "vslgao", coden = "vuese9", coden = "wewefp", coden = "wiine9", coden = "wpklao", coden = "wredem", coden = "wreraq", coden = "wsjoaf", coden = "wstee5", coden = "wzhlde", coden = "wztkay", coden = "wztuau", coden = "xjouea", coden = "xresea", coden = "yeasa8", coden = "yeste3", coden = "zammax", coden = "zampdb", coden = "zdace2", coden = "zmlgaq", coden = "zmrrep", coden = "zncbda", coden = "zoscex", coden = "zpaadb", coden = "zpbbdj", coden = "zpcfd2", coden = "zpcmdn", coden = "ztvram", coden = "zwvgaa", } @Article{check-digit-less-CODEN, comment = "The following CODEN are valid, except that they are missing their final check digits (this is common in some library catalogs", CODEN = "AALEE", CODEN = "AASTA", CODEN = "ABACE", CODEN = "ACMSC", CODEN = "ADMOA", CODEN = "AINFA", CODEN = "AINTB", CODEN = "AISJB", CODEN = "AJSOA", CODEN = "ALGOE", CODEN = "ALSHA", CODEN = "AMHCB", CODEN = "ANMAA", CODEN = "ANMAE", CODEN = "AOREE", CODEN = "APLQD", CODEN = "AREOA", CODEN = "ARGSB", CODEN = "ARITB", CODEN = "ASLPA", CODEN = "AURCA", CODEN = "AVTEA", CODEN = "BASIC", CODEN = "BCPCA", CODEN = "BEVED", CODEN = "BITTE", CODEN = "BIZBA", CODEN = "BJMSA", CODEN = "BMFRA", CODEN = "BMSSB", CODEN = "BSMSA", CODEN = "BYTED", CODEN = "CACMA", CODEN = "CAGDE", CODEN = "CAIDA", CODEN = "CCEND", CODEN = "CGFOD", CODEN = "CGRAD", CODEN = "CHKWE", CODEN = "CJISD", CODEN = "CMAPD", CODEN = "CMORA", CODEN = "CMPJA", CODEN = "CMPTA", CODEN = "CMSYE", CODEN = "CNISE", CODEN = "CNOME", CODEN = "COATB", CODEN = "COCOD", CODEN = "COGRD", CODEN = "COHUA", CODEN = "COMHA", CODEN = "COSPD", CODEN = "COSTC", CODEN = "CPAMA", CODEN = "CPHCB", CODEN = "CPLIE", CODEN = "CPTRB", CODEN = "CQMAA", CODEN = "CSAEE", CODEN = "CSTIE", CODEN = "DDJSD", CODEN = "DGRCD", CODEN = "DJTAE", CODEN = "DJTGE", CODEN = "DPCOE", CODEN = "DSINE", CODEN = "DTJOE", CODEN = "DTMNA", CODEN = "ECJSE", CODEN = "ECREA", CODEN = "EKRKA", CODEN = "ELLEA", CODEN = "ELLID", CODEN = "EMODD", CODEN = "EONLE", CODEN = "EPODE", CODEN = "ERMGB", CODEN = "ETTIE", CODEN = "FASRD", CODEN = "FSSYD", CODEN = "FUJTA", CODEN = "GLSEE", CODEN = "HAMAA", CODEN = "HJKHD", CODEN = "HUHEA", CODEN = "IAIEE", CODEN = "ICCBA", CODEN = "ICGAD", CODEN = "ICSAE", CODEN = "ICSYB", CODEN = "IEPCB", CODEN = "IESOE", CODEN = "IFDBE", CODEN = "IFESE", CODEN = "IJARE", CODEN = "IJBOB", CODEN = "IJISE", CODEN = "IJMPE", CODEN = "INFAC", CODEN = "INFTC", CODEN = "INSKD", CODEN = "IPMAD", CODEN = "IRCYA", CODEN = "IRELA", CODEN = "IRLAA", CODEN = "ISIJB", CODEN = "ISUDX", CODEN = "ISYSD", CODEN = "ITBTE", CODEN = "ITMEE", CODEN = "ITPRE", CODEN = "ITPSE", CODEN = "IZAMA", CODEN = "JAUMA", CODEN = "JCAMD", CODEN = "JCTHA", CODEN = "JCTPA", CODEN = "JDOCA", CODEN = "JIRRA", CODEN = "JISCD", CODEN = "JLPRE", CODEN = "JMPHA", CODEN = "JNBRA", CODEN = "JOMMA", CODEN = "JOSHA", CODEN = "JOTAB", CODEN = "JRNBA", CODEN = "JSIMA", CODEN = "JSINA", CODEN = "JSSOD", CODEN = "JSYCE", CODEN = "JVLCE", CODEN = "JWSSA", CODEN = "KESEA", CODEN = "LLCOE", CODEN = "LMICD", CODEN = "MCENE", CODEN = "MCMPA", CODEN = "MCRLA", CODEN = "MCSID", CODEN = "MDMZD", CODEN = "MEORD", CODEN = "MICOE", CODEN = "MIMCA", CODEN = "MIMJA", CODEN = "MKSCA", CODEN = "MMPHA", CODEN = "MOPMA", CODEN = "MSTMB", CODEN = "MTHNB", CODEN = "MTSEA", CODEN = "MTTCA", CODEN = "NADOA", CODEN = "NAWIA", CODEN = "NRLOE", CODEN = "NSTBA", CODEN = "NTROA", CODEN = "NZMAB", CODEN = "OCMIE", CODEN = "ORDYA", CODEN = "OTIKA", CODEN = "PACOE", CODEN = "PCAUA", CODEN = "PNMBA", CODEN = "PPSOA", CODEN = "PRGMB", CODEN = "PROGD", CODEN = "PROWA", CODEN = "PRSEA", CODEN = "PRSLA", CODEN = "PSISD", CODEN = "PSYMA", CODEN = "PTRSA", CODEN = "RDIGA", CODEN = "RMMGA", CODEN = "SAMCA", CODEN = "SEPSB", CODEN = "SGNWD", CODEN = "SIGBE", CODEN = "SIGSB", CODEN = "SINOD", CODEN = "SJCOD", CODEN = "SMJCA", CODEN = "SMSTE", CODEN = "SNEWD", CODEN = "SRDFE", CODEN = "SRECD", CODEN = "SRPSD", CODEN = "SSEJE", CODEN = "STPGE", CODEN = "SVMDA", CODEN = "TAEEA", CODEN = "TANSA", CODEN = "TCSCD", CODEN = "TMISA", CODEN = "TSCSE", CODEN = "TSICA", CODEN = "UNCOE", CODEN = "VICOE", CODEN = "WIINE", CODEN = "WZTUA", CODEN = "YEASA", CODEN = "ZAMMA", CODEN = "ZMRRE", } @Article{bad-CODEN, comment = "These CODEN have incorrect check digits.", CODEN = "ITDSEP", CODEN = "ITKEEI", CODEN = "ITLBDD", coden = "itmees", coden = "itmgey", coden = "itmid5", comment = "This is the British Dental Journal CODEN, but the assigned check digit in library catalogs is wrong.", CODEN = "BDJOHJ", } @Article{short-CODEN, comment = "These CODEN values are short", CODEN = "I", CODEN = "IT", CODEN = "ITD", CODEN = "ITDS", CODEN = "ITDSE", } @Article{long-CODEN, comment = "These CODEN have too many characters", CODEN = "AITDSEO", CODEN = "ABITDSEO", CODEN = "ABCITDSEO", CODEN = "ABCDITDSEO", CODEN = "ABCDEITDSEO", CODEN = "ABCDEFITDSEO", } bibclean-3.07/test/topt343.bib0000444000156700015670000000000012470142232014742 0ustar beebebeebebibclean-3.07/test/topt145.bib0000444000156700015670000000000012470142231014741 0ustar beebebeebebibclean-3.07/test/topt128.opt0000444000156700015670000000001712470142073015024 0ustar beebebeebe-max-width nnn bibclean-3.07/test/match.in0000444000156700015670000044031606142407604014520 0ustar beebebeebe%% /u/sy/beebe/tex/bibclean/2-11/match.dat, Fri May 3 07:05:42 1996 %% Edit by Nelson H. F. Beebe %% This is a test file for match month = "", month = "02 " # apr, month = "03 " # apr, month = "03 " # jul, month = "05 " # apr, month = "05 " # dec, month = "05 " # feb, month = "05 " # jan, month = "05 " # jul, month = "05 " # jun, month = "05 " # mar, month = "05 " # may, month = "05 " # nov, month = "05 " # oct, month = "05 " # sep, month = "07 " # nov, month = "08 " # apr, month = "08 " # mar, month = "08 " # nov, month = "09 " # dec, month = "09 " # jul, month = "09 " # jun, month = "09 " # may, month = "09 " # nov, month = "1-3,", month = "10 " # aug, month = "10 " # dec, month = "10 " # feb, month = "10 " # jun, month = "10 " # mar, month = "10 " # nov, month = "10--11 " # mar, month = "11 " # feb, month = "11 " # jun, month = "11 " # mar, month = "11 " # may, month = "11 " # nov, month = "11--12~" # sep, month = "11-12 " # jan, month = "12 " # dec, month = "12 " # jul, month = "12 " # may, month = "12 " # sep, month = "12--13~" # nov, month = "13 " # dec, month = "13 " # oct, month = "14 " # apr, month = "14 " # feb, month = "14 " # jan, month = "14 " # sep, month = "15 " # apr, month = "15 " # feb, month = "15 " # jan, month = "15 " # jul, month = "15 " # jun, month = "15 " # may, month = "15 " # oct, month = "15~" # sep, month = "16 " # apr, month = "16~" # nov, month = "17 " # apr, month = "17 " # dec, month = "17 " # may, month = "17--21" # jun, month = "18 " # mar, month = "18 " # oct, month = "19 " # jun, month = "19 " # nov, month = "19 " # oct, month = "1988 3 vol. xxxix+", month = "1988", month = "1990-", month = "1991 2 vol. xxi+", month = "1992 2 vol. xlix+", month = "1992 3 vol. lvii+", month = "1992 3 vol. xlviii+", month = "1993 2 vol. xxxv+", month = "1993 2 vol.", month = "1~" # jul, month = "20 " # aug, month = "20 " # dec, month = "20 " # jan, month = "20--24~" # mar, month = "21 " # dec, month = "21 " # jan, month = "21--25 " # jun, month = "21--25 " # oct, month = "22 " # mar, month = "23 " # dec, month = "23 " # feb, month = "23--24~" # nov, month = "24 " # aug, month = "24 " # feb, month = "24 " # jul, month = "24 " # mar, month = "24--28~" # jul, month = "24--29 " # jul, month = "24~" # aug, month = "25 " # feb, month = "25 " # jan, month = "25 " # jun, month = "25 " # may, month = "26 " # feb, month = "26 " # jul, month = "26 " # may, month = "26 " # sep, month = "26~" # jun # "--" # "2~" # jul, month = "27 " # apr, month = "27 " # jan, month = "27 " # jun, month = "27 " # sep, month = "27--29 " # jul, month = "27~" # nov # "--" # "1~" # dec, month = "28 " # dec, month = "28 " # feb, month = "28 " # jan, month = "28 " # may, month = "28 " # oct, month = "28 " # sep, month = "29 " # apr, month = "29 " # may, month = "29 " # nov, month = "2~" # dec, month = "30 " # apr, month = "30 " # aug, month = "30 " # dec, month = "30 " # nov, month = "30 " # sep, month = "31 " # aug, month = "31~" # aug # "--" # "2~" # sep, month = "4--6~" # mar, month = "5--8 " # apr, month = "6 " # nov, month = "7--10~" # sep, month = "9 " # may, month = "??", month = "????", month = "August and November", month = "Autumn", month = "December 1,", month = "December 3,", month = "December 6,", month = "Fall", month = "February and May", month = "January", month = "January/February", month = "June and July", month = "March 27,", month = "March~5,", month = "May \& July", month = "May/June", month = "November 19, ", month = "November and February", month = "Spring", month = "Summer", month = "Winter 1992-", month = "Winter", month = "avril", month = "decembre", month = "d{\'{e}}cembre", month = "juillet", month = "lipiec", month = "mai", month = "mars", month = "may", month = "novembre", month = "octobre", month = "septembre", month = Aug, month = Mar, month = Oct, month = apr # " 1", month = apr # " 11-14", month = apr # " 15", month = apr # " 16", month = apr # " 19-22", month = apr # " 19-23", month = apr # " 23", month = apr # "-" # may, month = apr # "--" # jun, month = apr # "/" # jul, month = apr # "/" # may, month = apr # "\slash " # jun, month = apr, month = aug # " 12", month = aug # " 15", month = aug # " 20", month = aug # " 22", month = aug # " 23", month = aug # " 25", month = aug # " 27-" # sep # " 2", month = aug # " 28-31, 1989", month = aug # " 3", month = aug # " 31", month = aug # " 5", month = aug # " 8", month = aug # " 9--11", month = aug # "-" # sep, month = aug # "--" # sep, month = aug # "/" # nov, month = aug # "\slash " # nov, month = aug # "\slash " # sep, month = aug, month = dec # " 10", month = dec # " 14", month = dec # " 15", month = dec # " 23", month = dec # " 3", month = dec # " 5", month = dec # "13-18", month = dec # "\slash " # jan, month = dec, month = feb # " 04", month = feb # " 07", month = feb # " 11", month = feb # " 12", month = feb # " 14", month = feb # " 15", month = feb # " 16", month = feb # " 17", month = feb # " 2-6", month = feb # " 27", month = feb # " 5", month = feb # " 8", month = feb # "/" # mar, month = feb # "/" # may, month = feb # "\slash " # mar, month = feb # "\slash " # may, month = feb # "~14", month = feb # "~6", month = feb, month = jan # " -- " # mar, month = jan # " 11", month = jan # " 13", month = jan # " 16", month = jan # " 17", month = jan # " 22", month = jan # " 23 -- " # feb # " 2", month = jan # " 25", month = jan # "-" # feb, month = jan # "--" # feb, month = jan # "/" # feb , month = jan # "/" # feb, month = jan # "\slash " # feb # ",", month = jan # "\slash " # feb, month = jan # "\slash " # mar, month = jan, month = jul # " (?? or " # sep # ")", month = jul # " 1", month = jul # " 13", month = jul # " 1969 to " # dec # " 1970", month = jul # " 20", month = jul # " 25", month = jul # " 25--27", month = jul # " 26", month = jul # " 28-29", month = jul # " 3", month = jul # " 4-6", month = jul # " 4-8", month = jul # " 9", month = jul # "-" # aug, month = jul # "-" # oct, month = jul # "--" # aug, month = jul # "--" # sep, month = jul # "/" # aug, month = jul # "\emdash " # aug, month = jul # "\slash " # aug, month = jul # "\slash " # sep, month = jul # "\slash{}" # aug, month = jul, month = jun # " 04", month = jun # " 10", month = jun # " 12", month = jun # " 12--15", month = jun # " 14", month = jun # " 2-6", month = jun # " 20--24", month = jun # " 21-23", month = jun # " 26-29", month = jun # " 28", month = jun # " 30", month = jun # " 4", month = jun # " 5", month = jun # "\slash " # jul, month = jun # "~5", month = jun, month = mar # " 13", month = mar # " 15", month = mar # " 18", month = mar # " 21", month = mar # " 23", month = mar # " 25--28", month = mar # " 27", month = mar # " 29", month = mar # " 3", month = mar # " 4", month = mar # " 7--10", month = mar # " 9", month = mar # "-" # apr, month = mar # "-" # dec, month = mar # "--" # apr, month = mar # "--" # dec, month = mar # "/" # apr, month = mar # "\slash " # apr, month = mar # "\slash " # may, month = mar, month = may # " -- " # jun, month = may # " 10-12", month = may # " 11", month = may # " 13", month = may # " 14", month = may # " 15", month = may # " 17", month = may # " 18", month = may # " 22", month = may # " 23", month = may # " 28", month = may # " 3", month = may # " 4-8", month = may # " 5", month = may # " 7", month = may # " 8-12", month = may # " 9", month = may # "-" # jun # " (or March??)", month = may # "-" # jun, month = may # "--" # june, month = may # "/" # jul, month = may # "/" # jun, month = may # "\slash " # jun # ",", month = may # "\slash " # jun, month = may, month = nov # " 15", month = nov # " 24", month = nov # " 3", month = nov # " 30", month = nov # " 4", month = nov # " 8", month = nov # " 9-11", month = nov # " and " # feb, month = nov # "-" # dec, month = nov # "/" # dec, month = nov # "\slash " # dec, month = nov # "\slash " # feb, month = nov, month = oct # " 07", month = oct # " 1", month = oct # " 10", month = oct # " 15", month = oct # " 16", month = oct # " 2", month = oct # " 28", month = oct # " 31", month = oct # "-" # dec, month = oct # "-" # nov, month = oct # "--" # dec, month = oct # "/" # nov, month = oct # "\slash " # dec, month = oct # "\slash " # nov, month = oct # "~28", month = oct, month = sep # " 1", month = sep # " 18", month = sep # " 21", month = sep # " 23", month = sep # " 24", month = sep # " 25-" # oct # " 1", month = sep # " 27", month = sep # " 28", month = sep # " 28-29", month = sep # " 4", month = sep # " 6", month = sep # " or " # jun # "??", month = sep # "-" # dec, month = sep # "-" # nov, month = sep # "-" # oct, month = sep # "--" # oct, month = sep # "/" # oct, month = sep # "\slash " # oct, month = sep, number = "", number = "(1-2)", number = "(89/7)", number = "(XIII) 6", number = "(in preparation)", number = "(to appear)", number = "0", number = "001", number = "0236", number = "027.07.1988", number = "07-11-81", number = "07-27-76", number = "07-28-76", number = "07-30-79", number = "07.95", number = "1 \& 2", number = "1 and 2", number = "1", number = "1(1)", number = "1+8", number = "1, (part 2)", number = "1, 3", number = "1,2", number = "1,2,3", number = "1--2", number = "1--3", number = "1--4", number = "1--5", number = "1--ABR/86", number = "1-2", number = "1-23-84", number = "1-3", number = "1-4", number = "1-5", number = "1-6", number = "1.0", number = "1.3", number = "1/2", number = "1/89", number = "10", number = "10--11", number = "10-11", number = "10-12", number = "100", number = "1000", number = "1004", number = "1005", number = "101", number = "1012", number = "10159", number = "101614", number = "102", number = "1020", number = "1025", number = "1029", number = "103", number = "1033", number = "104", number = "104237", number = "104612", number = "1048", number = "105", number = "1054", number = "1055", number = "106", number = "1065", number = "107", number = "108", number = "1084", number = "1088", number = "109", number = "1097", number = "10A", number = "11 and 12", number = "11", number = "11-12", number = "11/12", number = "11/145", number = "110", number = "1100", number = "1103", number = "1105", number = "111", number = "112", number = "1123", number = "113", number = "1136", number = "114", number = "1140", number = "1141", number = "11483", number = "115", number = "116", number = "116, SSA 11-11500", number = "1168", number = "117", number = "118", number = "118-87", number = "119", number = "12 (9119)", number = "12", number = "12-83", number = "12-93", number = "12.2.6", number = "120", number = "1200", number = "121-5", number = "121-6", number = "1210", number = "1212", number = "1213", number = "1215", number = "122", number = "1225/1225a", number = "123", number = "124", number = "1242", number = "125", number = "1259", number = "126", number = "1268", number = "127", number = "1274", number = "1278", number = "128", number = "129", number = "12A", number = "12B", number = "13", number = "13, section B", number = "130", number = "1302", number = "1307", number = "131", number = "131M", number = "132", number = "1328", number = "133", number = "1332", number = "1333", number = "1334", number = "1343", number = "1344", number = "1346", number = "135", number = "1356", number = "136", number = "1366", number = "137", number = "138", number = "14", number = "14.2.2", number = "14/92", number = "141", number = "142", number = "1420", number = "1428", number = "143", number = "144", number = "145", number = "1454", number = "1458", number = "1460", number = "1469", number = "147", number = "1470", number = "1471", number = "1474", number = "148", number = "149", number = "14A", number = "14B", number = "15", number = "150", number = "1505", number = "1506", number = "151", number = "1518", number = "152", number = "1532", number = "1545", number = "1548", number = "155", number = "1555", number = "1556", number = "156", number = "1563", number = "157", number = "158", number = "1585", number = "1586", number = "159", number = "16", number = "16-92", number = "16/92", number = "160", number = "161", number = "161/84", number = "162", number = "163", number = "165", number = "166", number = "167", number = "168", number = "1680", number = "1686", number = "169", number = "1690", number = "1697", number = "17", number = "17-92", number = "170", number = "1704", number = "1705", number = "171", number = "171.2R", number = "172", number = "172205", number = "1729", number = "173", number = "1731", number = "1732", number = "174", number = "17414 JSC", number = "17477", number = "175", number = "1755", number = "1758/92", number = "176", number = "1769", number = "178", number = "1782", number = "179", number = "1796", number = "18", number = "18-26", number = "18-94", number = "180", number = "1807", number = "181", number = "182", number = "1825", number = "1838", number = "1846-79", number = "1846-98", number = "1846-99", number = "1848-1854", number = "185", number = "186", number = "1860", number = "1868", number = "187", number = "187590 4004291034", number = "188", number = "189", number = "1892", number = "19", number = "19-94", number = "190", number = "1901", number = "1907", number = "1908", number = "191", number = "1923", number = "193", number = "194", number = "194-82 GJBX", number = "1944", number = "195", number = "1958", number = "196", number = "1967-2", number = "1969-42", number = "197", number = "1972-43", number = "1973/2", number = "1976", number = "1977-1", number = "1979-18", number = "1979-3", number = "1979-4", number = "1979-5", number = "1980-02-20", number = "1982/IE/1", number = "1985/OR/2", number = "1985/OR/5", number = "1986/11-524", number = "199", number = "1991-01", number = "1992/35", number = "1993-08", number = "1993-09", number = "1994-02", number = "1A", number = "2 ", number = "2 (or 3??)", number = "2 107-", number = "2 123-", number = "2 199-", number = "2 and 3", number = "2", number = "2,", number = "2--3", number = "2-3", number = "2-4", number = "2-94", number = "2-94*", number = "2.2", number = "2.3.1", number = "2/3", number = "2/RT/81", number = "20", number = "20/93", number = "200", number = "2009", number = "201", number = "202", number = "2022", number = "203", number = "2030", number = "204", number = "2049--88", number = "205", number = "2050--88", number = "2057", number = "206", number = "207", number = "208", number = "2083", number = "209", number = "2095", number = "21", number = "21/93", number = "210", number = "2100--89", number = "212", number = "213", number = "2136", number = "215-227", number = "216", number = "217", number = "218", number = "2181", number = "2184", number = "2190", number = "22 0714-1181", number = "22", number = "22/81", number = "220", number = "222", number = "2240207", number = "225", number = "226", number = "2268", number = "2271", number = "228", number = "2286", number = "2287", number = "229", number = "23", number = "23-92", number = "230", number = "233", number = "235", number = "236", number = "2367", number = "237", number = "2374", number = "238", number = "239", number = "23905", number = "24 ", number = "24", number = "24-81", number = "24-92", number = "2400", number = "241", number = "24155", number = "242", number = "243", number = "244", number = "244-260", number = "2445", number = "245", number = "2452", number = "246", number = "247", number = "248", number = "2481", number = "249", number = "2497", number = "25", number = "25-81", number = "25-92", number = "251", number = "25134", number = "252", number = "254", number = "255", number = "257", number = "258", number = "2583", number = "2590", number = "26", number = "26/94", number = "260", number = "264", number = "2644", number = "265", number = "266", number = "267", number = "2688", number = "27", number = "27-94", number = "27/28", number = "272", number = "273", number = "275", number = "276", number = "2768", number = "28", number = "28-94", number = "28/94", number = "2815", number = "2835", number = "285", number = "289", number = "29", number = "29-94", number = "2908", number = "2913", number = "294 (AD 207929)", number = "294", number = "2957", number = "296", number = "298", number = "29e ann{\'e}e", number = "2??", number = "3 (or 11??)", number = "3 (or 2??)", number = "3 (or 4??)", number = "3 0723-2187", number = "3 Pt 2", number = "3 \& 4", number = "3 and 4", number = "3 or 5??", number = "3", number = "3+4", number = "3, 4", number = "3--4", number = "3-30", number = "3-31-84", number = "3-4", number = "3/4", number = "3/6", number = "3/79", number = "30", number = "30(2)", number = "3048", number = "3071", number = "3079--89--MS", number = "30G-0009", number = "31", number = "31-89", number = "3106", number = "314", number = "315", number = "32", number = "320 -- 2956", number = "3229-3234", number = "323", number = "3237", number = "33", number = "33-78-2", number = "330", number = "331", number = "332", number = "337", number = "339, also Ultracomputer Note 131", number = "34", number = "342/10/92 A", number = "342/10/93 A/ I-9319", number = "342/11/92 A", number = "342/13/93 A", number = "342/17/90", number = "342/26/92 A", number = "3430", number = "3459", number = "346", number = "3462", number = "3467", number = "349", number = "35", number = "3507", number = "3509", number = "353", number = "355", number = "3560", number = "358-364", number = "359", number = "36", number = "361", number = "3619", number = "367", number = "368", number = "369", number = "37", number = "37--82", number = "370", number = "373", number = "377", number = "3776", number = "38", number = "3833", number = "3885", number = "389", number = "39 (or 4??)", number = "39", number = "390", number = "391", number = "398", number = "399", number = "3B", number = "3\&4", number = "4 (or 5??)", number = "4 Pt 1", number = "4 and 1", number = "4 or 5?", number = "4", number = "4, 5", number = "4, Part II", number = "4--5", number = "4-10", number = "4-22-66-1", number = "4-5", number = "4-6", number = "4-94", number = "4/1", number = "40", number = "400-63", number = "400-75 SeF", number = "400-75", number = "400-85", number = "401", number = "405", number = "406 0723-0508", number = "408", number = "409", number = "41", number = "412", number = "418", number = "42", number = "421", number = "424", number = "428", number = "4287:TR:81", number = "43", number = "430", number = "431-014", number = "434", number = "4356", number = "439", number = "44", number = "443", number = "449", number = "45", number = "4543", number = "456", number = "458", number = "46", number = "466", number = "468", number = "47", number = "473-499", number = "476-029-4 (re-released as Rice COMP TR84-9)", number = "4776", number = "478", number = "48", number = "4805", number = "4816", number = "486", number = "4872", number = "49", number = "4911", number = "4922", number = "4930", number = "495", number = "5 (or 15??)", number = "5", number = "5-6", number = "5-93", number = "5/6", number = "5/92", number = "50", number = "500-32", number = "5054", number = "507", number = "51", number = "51--52", number = "511", number = "5118", number = "5121", number = "5123", number = "522", number = "523-538", number = "527", number = "53", number = "530", number = "539", number = "54", number = "541", number = "5419", number = "543", number = "5470", number = "55", number = "5504", number = "555", number = "5573", number = "56", number = "560", number = "56038", number = "562", number = "562M2-169. UCS II.", number = "564", number = "5656", number = "567", number = "568", number = "57", number = "570", number = "572", number = "574", number = "577", number = "579", number = "58", number = "580", number = "581", number = "582", number = "583T", number = "584", number = "589", number = "59", number = "590", number = "591", number = "595", number = "596", number = "5B", number = "5a", number = "6 Pt 1", number = "6 Pt 2", number = "6", number = "6--7", number = "6-7", number = "6-93", number = "6/7", number = "6/80", number = "60", number = "6003", number = "60174900A", number = "602", number = "60457040", number = "606", number = "6062", number = "607", number = "6086", number = "609", number = "61", number = "611", number = "612", number = "6133", number = "6158.", number = "616", number = "62", number = "623", number = "6240", number = "625", number = "626", number = "629", number = "6292", number = "63", number = "634", number = "6368", number = "6370", number = "640-M", number = "645", number = "65", number = "652", number = "657", number = "659", number = "66", number = "66-10", number = "661", number = "663", number = "664", number = "665", number = "666", number = "668", number = "67", number = "671", number = "676", number = "679", number = "68", number = "68-1", number = "68/5", number = "68/6", number = "68/8", number = "6824", number = "684", number = "685", number = "689", number = "69", number = "69-05", number = "69-1", number = "69-18", number = "69-19", number = "69-3", number = "69-5", number = "69/1", number = "69/11", number = "69/2", number = "69/3", number = "69/4", number = "69/5", number = "69/6", number = "69/7", number = "69/9", number = "690", number = "6905", number = "6A", number = "6B", number = "7", number = "7-14", number = "7-8", number = "7-93", number = "7/8", number = "70", number = "70/10", number = "70/15", number = "70/17", number = "70/18", number = "70/2", number = "70/3", number = "70/5", number = "70/7", number = "70/8", number = "700", number = "7002", number = "7041", number = "705", number = "707", number = "71", number = "71-20", number = "71-51", number = "71/6", number = "71/7", number = "72", number = "72-08", number = "72/2", number = "722", number = "726", number = "73/2", number = "73/3", number = "73/4", number = "73/6", number = "7304", number = "731", number = "734", number = "74", number = "74-1 NML/GSO", number = "74-1", number = "74-5", number = "74/1", number = "74/2", number = "74/3", number = "74/4", number = "741", number = "75", number = "75-01", number = "75-1", number = "75-159", number = "75-2", number = "75-47", number = "75-Aut-J", number = "75/1", number = "75/3", number = "75/5", number = "75/7", number = "751", number = "757", number = "76", number = "76-05", number = "76-1", number = "76-13", number = "76-22", number = "76-3", number = "76-67", number = "76/4", number = "76/86", number = "7640", number = "768", number = "77", number = "77-14", number = "77-17", number = "77-459", number = "77-671", number = "77-671.", number = "776", number = "777", number = "78 0458-2128", number = "78", number = "78- 1069", number = "78-1", number = "78-12", number = "78-160", number = "78-287", number = "78-3", number = "78-669", number = "78/1", number = "78/10", number = "78/2", number = "78/3", number = "78/5", number = "78/6", number = "78/7", number = "78/8", number = "78/P.1019", number = "781", number = "786", number = "79", number = "79-0276", number = "79-07", number = "79-1", number = "79-282", number = "79-3", number = "79-9", number = "79/1", number = "79/10", number = "79/2", number = "79/3", number = "79/5", number = "79/6", number = "79/7", number = "79/8", number = "790", number = "794", number = "797", number = "7994", number = "7997", number = "8 (??)", number = "8", number = "8, Part 2", number = "8--9", number = "8-9", number = "80", number = "80- 004", number = "80-03", number = "80-1274", number = "80-2", number = "80-3", number = "80-34", number = "80-411", number = "80-844", number = "80/1", number = "80/10", number = "80/2", number = "80/3", number = "80/4", number = "80/5", number = "80/6", number = "80/7", number = "80/9", number = "80192", number = "80205", number = "807", number = "809", number = "81", number = "81-02", number = "81-1020", number = "81-1091", number = "81-158", number = "81-19", number = "81-29", number = "81-574", number = "81/1", number = "81/10", number = "81/2", number = "81/3", number = "81/4", number = "81/5", number = "81/6", number = "81/7", number = "81/8", number = "81/9", number = "816", number = "818", number = "819", number = "82", number = "82-11-03", number = "82-308", number = "82-831", number = "82/1", number = "82/10", number = "82/2", number = "82/3", number = "82/4", number = "82/5", number = "82/6", number = "82/7", number = "82/9", number = "82448-9", number = "83-01-01", number = "83-0223", number = "83-0372", number = "83-0421", number = "83-0500", number = "83-155", number = "83-1893", number = "83-3", number = "83-4", number = "83-4051", number = "83-47", number = "83-5", number = "83-713", number = "83-883", number = "83-97", number = "83/09", number = "83/1", number = "83/10", number = "83/2", number = "83/4", number = "83/5", number = "83/7", number = "83/9", number = "830", number = "832", number = "83304", number = "836", number = "83CRD054 (Technical information series)", number = "84", number = "84-0162", number = "84-21", number = "84-2156", number = "84-501", number = "84-637", number = "84-651", number = "84-690", number = "84-777", number = "84-777.", number = "84-827", number = "84.2", number = "84/10", number = "84/154/12", number = "84/162/20", number = "84/2", number = "84/3", number = "84/4", number = "84/5", number = "84/6", number = "84/7", number = "84/8", number = "84/9", number = "84/R", number = "8428", number = "843", number = "849", number = "85", number = "85--01", number = "85--105", number = "85--12", number = "85--14", number = "85--18", number = "85--23", number = "85--B--1", number = "85--OR--3", number = "85-0366", number = "85-1", number = "85-122", number = "85-257", number = "85-279", number = "85-29", number = "85-45", number = "85-48", number = "85-5", number = "85-739", number = "85/10", number = "85/2", number = "85/212", number = "85/3", number = "85/4", number = "85/8", number = "85/9", number = "851", number = "852", number = "854", number = "856", number = "86", number = "86--10", number = "86--128", number = "86-06", number = "86-1-5", number = "86-123", number = "86-17", number = "86-21", number = "86-268", number = "86-3055", number = "86-32", number = "86-3473", number = "86-4", number = "86-437", number = "86-451", number = "86-46", number = "86-475", number = "86-54", number = "86-55", number = "86-85", number = "86.7", number = "86/10", number = "86/1292", number = "86/2", number = "86/230/4", number = "86/235/9", number = "86/5", number = "86/6", number = "86/7", number = "86/8", number = "860", number = "861", number = "8610", number = "862", number = "86392", number = "86407", number = "866", number = "86750", number = "869", number = "8696", number = "87 869", number = "87", number = "87--2", number = "87--41", number = "87--53", number = "87--87", number = "87-0004-A-B", number = "87-002", number = "87-02, I1-I50", number = "87-04", number = "87-1-1", number = "87-10", number = "87-11", number = "87-118", number = "87-14", number = "87-16", number = "87-20", number = "87-21", number = "87-22", number = "87-25", number = "87-34", number = "87-37", number = "87-39", number = "87-4", number = "87-41", number = "87-49", number = "87-5", number = "87-50", number = "87-51", number = "87-52", number = "87-58", number = "87-641", number = "87-65", number = "87-75", number = "87-82", number = "87/347", number = "87/7", number = "87/88-5-2", number = "87001", number = "87002", number = "87003", number = "871", number = "873", number = "8744", number = "877", number = "878", number = "879", number = "88--101", number = "88--13", number = "88--17", number = "88--44", number = "88--68", number = "88--74", number = "88-10", number = "88-11", number = "88-115", number = "88-12", number = "88-136", number = "88-14", number = "88-140", number = "88-15", number = "88-16", number = "88-19", number = "88-2", number = "88-20", number = "88-234", number = "88-258-A", number = "88-29/50", number = "88-3", number = "88-49/70", number = "88-5", number = "88-6", number = "88-60-20", number = "88-942", number = "88-95", number = "88/304", number = "88/322/34", number = "882", number = "88288", number = "88293", number = "88363", number = "888", number = "89", number = "89--04", number = "89--13", number = "89--15", number = "89--2", number = "89--29", number = "89--3", number = "89--65", number = "89--7", number = "89--85", number = "89--92", number = "89--B--5", number = "89-09", number = "89-1", number = "89-11", number = "89-12", number = "89-2", number = "89-260", number = "89-3", number = "89-313", number = "89-57", number = "89-984", number = "89/20", number = "89/204", number = "89/26", number = "89/3", number = "890", number = "8917/A", number = "893", number = "8939", number = "8971", number = "9", number = "9--12", number = "9-10", number = "9/10", number = "90", number = "90--01", number = "90--03", number = "90--07", number = "90--12", number = "90--14", number = "90--22", number = "90--28", number = "90--53", number = "90--83", number = "90-09", number = "90-1", number = "90-10", number = "90-2", number = "90-20", number = "90-4", number = "90-6", number = "90-83", number = "90/302", number = "901", number = "903", number = "9030", number = "9035", number = "907", number = "91", number = "91--04", number = "91--05", number = "91--06", number = "91--10", number = "91--13", number = "91--27", number = "91--47", number = "91--7", number = "91-03", number = "91-04", number = "91-044", number = "91-14", number = "91-2", number = "91-279", number = "91-294", number = "91-311", number = "91-328", number = "91-72", number = "91-80", number = "91-CSE-6", number = "91/10", number = "91/447/31", number = "91/8", number = "9140", number = "917", number = "919", number = "92", number = "92-067", number = "92-068", number = "92-069", number = "92-075", number = "92-084", number = "92-09", number = "92-1", number = "92-126", number = "92-16", number = "92-161", number = "92-24", number = "92-241", number = "92-28", number = "92-28d", number = "92-31", number = "92-35", number = "92-36", number = "92-38", number = "92-421", number = "92-5-A", number = "92/15", number = "92/302", number = "92/4", number = "921", number = "922", number = "9236", number = "93", number = "93--96", number = "93-021", number = "93-027", number = "93-093", number = "93-102", number = "93-107", number = "93-13", number = "93-17", number = "93-21b", number = "93-31", number = "93-42", number = "93-8", number = "93-9", number = "934", number = "936", number = "937", number = "93NO00009", number = "94", number = "94---", number = "94-008", number = "94-03a", number = "94-069", number = "94-16", number = "94-18a", number = "94-21", number = "94-3", number = "94-4168", number = "94-501", number = "94-8", number = "94/5", number = "9406", number = "944", number = "949", number = "95", number = "95-08", number = "95-19", number = "95-20", number = "95-29", number = "950", number = "951", number = "952", number = "952144", number = "956", number = "96", number = "963", number = "964", number = "9649", number = "966", number = "967", number = "97", number = "97--100", number = "970", number = "971", number = "974", number = "978", number = "98", number = "987", number = "99 00 04", number = "99 90 12", number = "99 90 62", number = "99", number = "?", number = "??", number = "??-??", number = "????", number = "A-18", number = "A-48", number = "A. I. MEMO 421", number = "A. I. MEMO 70 and MAC-M-165", number = "A.E.R.E. 8781", number = "A68 8", number = "AA61641-00A", number = "AAEC/E190", number = "AAEC/E488", number = "AAEC/TM 366", number = "AAEC/TM 370", number = "AAEC/TM 544", number = "AAEC/TM455", number = "AAEC/TM470", number = "ACM--91--3", number = "ACPC/TR 92-3", number = "ACPC/TR 92-4", number = "AD 702 910", number = "AD 769-124", number = "AD 779 841", number = "AD-A050135", number = "AD/A-039 741", number = "AECL-7614", number = "AECL-7794", number = "AERE -- R 9444", number = "AERE M3057", number = "AERE R10533", number = "AERE R10555", number = "AERE R11009", number = "AERE R11432", number = "AERE R11948", number = "AERE R8730", number = "AERE-R 12329", number = "AERE-R 12393", number = "AERE-R. 4599 (pt. 1)", number = "AFFDL-TR-66-207", number = "AGESS810528", number = "AIM-106", number = "AM--87--11", number = "AM--88--08", number = "ANL AMD 328", number = "ANL AMD 71", number = "ANL--80--68", number = "ANL--80--74", number = "ANL--82--48", number = "ANL-7231", number = "ANL-80-68", number = "ANL-80-74", number = "ANL-81-43", number = "ANL-83-97", number = "ANL-84-83", number = "ANL-85-70", number = "ANL-8579", number = "ANL-86-10", number = "ANL-87-23", number = "ANL-87-40", number = "ANL-88-38", number = "ANL-89/2 Rev. 1", number = "ANL-91/1", number = "ANL-91/14", number = "ANL-MCS-TM 99", number = "ANL-MCS-TM-119", number = "ANL-MCS-TM-57 (Revision 1)", number = "ANL-MCS-TM-86", number = "ANL-MCS-TM-88", number = "ANL/MCS--TM--148", number = "ANL/MCS--TM--158", number = "ANL/MCS--TM--159", number = "ANL/MCS--TM--16", number = "ANL/MCS-TM-15", number = "ANL/MCS-TM-150", number = "ANL/MCS-TM-157", number = "ANL/MCS-TM-27", number = "ANL/MCS-TM-84", number = "ANL/MCS-TM-97", number = "ANL/MCS/TM-33", number = "ANL/MLS-TM-63", number = "ANL84-51, Rev.1", number = "ANS-12", number = "ANS-13", number = "ANS-16", number = "ANS-20", number = "ANS-22", number = "ANS-23", number = "ANS-24", number = "ANS-7", number = "ANS/MCS-TM-37", number = "APL-UW TM-4-83", number = "AR-92-2", number = "ARE TM (N1) 86501", number = "ARE-TM (N1) 86501", number = "ARL 69-0005", number = "ARL 69-0017", number = "ARL 69-0054", number = "ARL 70-0066", number = "ARRL TR 1018", number = "ASRL TR 1020", number = "ASRL TR 1021", number = "Arbeitspapiere der GMD, Nr. 588 0723-0508", number = "B--180", number = "B--239", number = "B--243", number = "B12", number = "B57-01a", number = "B9", number = "BESSY TB Nr. 158", number = "BNL 25680.", number = "BSC 88/15", number = "BU-660-M", number = "BU-784-M", number = "BUCSTR 79-01", number = "B\#84", number = "British Library R and D report 6155", number = "C 2504-E5. N74-13290", number = "C.S.S. 52", number = "C2", number = "CAM 14", number = "CAM 7", number = "CAM 88-16", number = "CAM 88-21", number = "CAM 89-28", number = "CAM 92-07", number = "CAP-3 837", number = "CBPF-NT-001/88", number = "CC-147", number = "CC-151", number = "CC-152", number = "CC-153", number = "CC-154", number = "CC-156", number = "CC-158", number = "CC-161", number = "CC-163", number = "CC-164-4", number = "CC-200-2", number = "CC-60", number = "CC-71", number = "CC-93", number = "CCRL-3", number = "CCRL-8", number = "CCS 206", number = "CCS 86/10", number = "CCS~501", number = "CCUM 7", number = "CDC 14.2.6", number = "CES-88-24", number = "CES-94-??", number = "CFDL-TR-87-11", number = "CICS--P--169", number = "CIS-83-34", number = "CIS-TR-88-16", number = "CLNS-197", number = "CLNS-209", number = "CM--286", number = "CMI 88/45052-1", number = "CMPT TR 81-6", number = "CMPT TR 83-4", number = "CMU-CS-78-125", number = "CMU-CS-78-141", number = "CMU-CS-80-125", number = "CMU-CS-80-131", number = "CMU-CS-84-141", number = "CMU-CS-85-187", number = "CMU-CS-86-168", number = "CMU-CS-87-109", number = "CMU-CS-88-135", number = "CMU-CS-89-111", number = "CMU-CS-89-129", number = "CMU-CS-89-207", number = "CMU-CS-89-209", number = "CMU-CS-90-102", number = "CMU-CS-90-137", number = "CMU-CS-90-139", number = "CMU-CS-90-184", number = "CMU-CS-91-106", number = "CMU-CS-91-111", number = "CMU-CS-91-161", number = "CMU-CS-91-205", number = "CMU-CS-92-163", number = "CMU-CS-93-124", number = "CMU-CS-93-151", number = "CMU-CS-93-164", number = "CMU-CS-94-125", number = "CMU-CS-94-200", number = "CMU-SEI-92-34", number = "CN -28/F-14", number = "CN-22", number = "CN-22.2", number = "CNA--126", number = "CNA--139", number = "CNA--150", number = "CNA--164", number = "CNA--173", number = "CNA--18", number = "CNA--189", number = "CNA--191", number = "CNA--200", number = "CNA--216", number = "CNA--220", number = "CNA--222", number = "CNA--228", number = "CNA--23", number = "CNA--232", number = "CNA--24", number = "CNA--240", number = "CNA--244", number = "CNA--249", number = "CNA--250", number = "CNA--255", number = "CNA--26", number = "CNA--33", number = "CNA--52", number = "CNA--90", number = "CNA-139", number = "CNA-150", number = "CNA-164", number = "CNA-173", number = "CNA-189", number = "CNA-191", number = "CNA-198", number = "CNA-199", number = "CNA-202", number = "CNA-208", number = "CNA-222", number = "CNA-232", number = "CNA-244", number = "CNA-250", number = "CNA-26", number = "CNA-33", number = "CNA-52", number = "CNC/1993/028", number = "COINS 87-134", number = "COINS TR 91-13", number = "COMP TR85-16", number = "COMP TR86-38", number = "COMP TR90-14", number = "COMP TR91-149", number = "COMP TR91-15", number = "COMP TR91-154", number = "COMP TR91-160", number = "COMP TR91-169", number = "COMP TR91-170", number = "COMP TR92-178", number = "COMP TR92-198", number = "COMP TR93-203", number = "COMP TR93-213", number = "COMP TR93-918", number = "CORR 83-11", number = "CORR 83-2", number = "CORR 84-1", number = "CORR 86-23", number = "CORR 86-29", number = "CORR 93-18", number = "CORR Report 94-32", number = "CP 74028", number = "CP 78", number = "CP-2012", number = "CP-390", number = "CP-391", number = "CP-700011", number = "CP-72009", number = "CP-72017", number = "CP-72022", number = "CPT-88", number = "CR-2032", number = "CR-R; 84009", number = "CRHC-91-21", number = "CRL 91/1 (Revised)", number = "CRPC-TR90079", number = "CRSC-TR94-10", number = "CRSC-TR95-12", number = "CRT-750", number = "CRT-794", number = "CRT-807", number = "CRT-866", number = "CRT-867", number = "CRT-920", number = "CS 142", number = "CS 150", number = "CS 157", number = "CS 252", number = "CS 367A", number = "CS 59", number = "CS 60", number = "CS 7708", number = "CS 7714", number = "CS 7808", number = "CS TR 1144", number = "CS TR 708", number = "CS--90--32", number = "CS--91--02", number = "CS--91--04", number = "CS--TR--303--91", number = "CS-142", number = "CS-186", number = "CS-1984-13", number = "CS-72-270", number = "CS-78-19", number = "CS-80-13", number = "CS-81-25", number = "CS-82-40", number = "CS-83-06", number = "CS-83-10", number = "CS-83-16", number = "CS-83-41", number = "CS-84-04", number = "CS-84-13", number = "CS-84-2", number = "CS-84-22", number = "CS-85-01", number = "CS-85-56", number = "CS-86-11", number = "CS-86-14", number = "CS-87-01", number = "CS-87-02", number = "CS-87-08", number = "CS-87-17", number = "CS-87-24", number = "CS-87-27", number = "CS-88-10", number = "CS-88-13", number = "CS-88-19", number = "CS-88-33", number = "CS-88-35", number = "CS-89-61", number = "CS-89-85", number = "CS-89-87", number = "CS-89-89", number = "CS-89-90", number = "CS-89-92", number = "CS-90-103", number = "CS-90-105", number = "CS-90-115", number = "CS-90-116", number = "CS-90-117", number = "CS-90-118", number = "CS-90-23", number = "CS-9003-09", number = "CS-91-130 and ORNL/TM-12006", number = "CS-91-134", number = "CS-91-137", number = "CS-91-138", number = "CS-91-139", number = "CS-91-142", number = "CS-91-146", number = "CS-92-01, revised", number = "CS-92-167", number = "CS-92-168", number = "CS-92-181", number = "CS-92-21", number = "CS-92-33", number = "CS-92-55", number = "CS-93-01", number = "CS-93-02", number = "CS-93-2", number = "CS-93-214", number = "CS-93-27", number = "CS-94-228", number = "CS-94-233", number = "CS-94-236", number = "CS-94-239", number = "CS-94-244", number = "CS-94-250", number = "CS-94-257", number = "CS-95-290", number = "CS-95-291", number = "CS-95-301", number = "CS-TR 2539", number = "CS-TR 2626", number = "CS-TR 3045", number = "CS-TR-1705", number = "CS-TR-2030", number = "CS-TR-2305", number = "CS-TR-2403, UMIACS-TR-90-16", number = "CS-TR-2908", number = "CS-TR-310-91", number = "CS-TR-3268", number = "CS-TR-3268.1", number = "CS-TR-351-91", number = "CS-TR-412-93", number = "CS-TR-750", number = "CS-TR2907 (UMIACS-TR-92-60)", number = "CS-xx-yyy", number = "CS/82/5", number = "CS81-1 (Revised)", number = "CS81-1", number = "CSD 92/693", number = "CSD-890044", number = "CSD-TR 516", number = "CSD-TR-408", number = "CSD-TR-433", number = "CSD-TR-576", number = "CSD-TR-612", number = "CSD-TR-661", number = "CSD-TR-688", number = "CSD-TR-735", number = "CSD-TR-745", number = "CSD-TR-93-059", number = "CSDG 78-2", number = "CSDG 81-1", number = "CSDG", number = "CSDG-80-1", number = "CSDG-83-3", number = "CSE 7910", number = "CSE-93-19", number = "CSE89-91", number = "CSL-79-3", number = "CSL-81-12", number = "CSL-89-9", number = "CSL-93-3", number = "CSL-TR-93-554", number = "CSR-94-81", number = "CSRC 966", number = "CSRD 1041", number = "CSRD 601", number = "CSRD 624", number = "CSRD 665", number = "CSRD 731", number = "CSRD 785", number = "CSRD 983", number = "CSRD No. 860, UILU-ENG-89-8003", number = "CSS 155, 1984", number = "CSS 171", number = "CSS 214", number = "CSS-210", number = "CSS-211", number = "CSS-229", number = "CSS213", number = "CSTR 89-7", number = "CTC 90 TR26", number = "CTC 91 TR85", number = "CTC 92 TR115", number = "CTC 93 TR126", number = "CTC 94 TR172", number = "CTC92TR100", number = "CTS WN 26", number = "CU-CS-420-89", number = "CU-CS-534-91", number = "CU-CS-579-92", number = "CU-CS-623-92", number = "CU-CS-682-93", number = "CUED/F-CAMS/TR.241", number = "CUED/F-CAMS/TR.242", number = "CUED/F-CAMS/TR.248", number = "Computer Science Report 100", number = "Computer Science Report 91", number = "Computer Science Technical Report 89", number = "Contract no. AD/A-056 839CU-CS-129-78", number = "D 889778", number = "D--134, Rev. B", number = "D-6545", number = "D-6734", number = "D-6959", number = "D-7329", number = "D-8020", number = "D-91-13", number = "D-92-08", number = "D-93-05", number = "DAIMI FN-19", number = "DAIMI PB - 345", number = "DAIMI PB - 355", number = "DAIMI PB - 357", number = "DAIMI-PB - 318", number = "DCS/RR-783", number = "DCS/RR-826", number = "DD 84-14", number = "DD/85/18", number = "DEC-TR-566", number = "DEC-TR-593", number = "DECUS No. 10-21", number = "DITC 12/82", number = "DITC 192/91", number = "DITC 200/92", number = "DITC 203/92", number = "DITC 214/93", number = "DITC 23/83", number = "DITC 8/82", number = "DKBS-TR-94-5", number = "DMS-618-IR", number = "DMS-646-IR", number = "DNACS 10/78", number = "DNACS 13/79", number = "DNACS 30/80", number = "DNACS 34/80", number = "DPh-T/78-75", number = "Dep. Report STA", number = "DpH-T 43/78", number = "E-2637", number = "E-2700", number = "E-2779", number = "E11-87-10", number = "E11-89-755", number = "E2-89-286", number = "E251", number = "E253", number = "E4-85-262", number = "E4-85-263", number = "E4-85-264", number = "E5-85-39", number = "E5-89-141", number = "E5-91-401", number = "ECS-LFCS-86-14", number = "ECS-LFCS-86-2", number = "ECS-LFCS-89-73 (also CSR-290-89)", number = "ECS-LFCS-92-226", number = "ECS-LFCS-93-275", number = "ECS-LFCS-94-280", number = "ECS-LFCS-94-303", number = "EDFB-IBP 74-6", number = "EE-CEG-85-2", number = "EE-CEG-85-7", number = "EE-CEG-86-1", number = "EE-CEG-86-2", number = "EE-CEG-86-5", number = "EE-CEG-86-7", number = "EP-78-E-23", number = "EPA-600/4-78-001", number = "EPM/RT-84-6", number = "ER/25026--30", number = "ERL 269-APCL 28", number = "ERL SEL-32", number = "ERL-0545-RR", number = "ERL-M467", number = "ERL-M481", number = "ERLTM-SDL 14", number = "ES--227/90", number = "ES--230/90", number = "ES--238/90", number = "ES--246/91", number = "ESAT-KUL-88/3", number = "ETA-TR-43", number = "ETA-TR-49", number = "ETA-TR-51", number = "ETA-TR-52", number = "ETA-TR-53", number = "ETA-TR-57", number = "ETA-TR-60", number = "ETA-TR-61", number = "ETA-TR-85", number = "ETA-TR-90", number = "ETR 7/91", number = "F4 Bound", number = "FA-STS-991324", number = "FAO-2", number = "FAO-70-L", number = "FCVS66-VSR205. ADA040385", number = "FCVS66-VSR210. ADA040392", number = "FCVS78-VSR806", number = "FF-X-6", number = "FHWA-IP-79-5", number = "FHWA-TS-79-222", number = "FMR-X-23", number = "FMR-X-42", number = "FMR-X-7", number = "FMR-X-78", number = "FN--535", number = "FR/PA/93/19", number = "FRA-ORD and D-74-6", number = "FS-81-2", number = "FS81-2", number = "FSU-SCRI-87-30", number = "FSU-SCRI-87-43", number = "FSU-SCRI-90-91", number = "FSU-SCRI-94-06", number = "FTD-HC-23-897-74", number = "G--89--25", number = "G1/1", number = "G2/1", number = "G320-3490", number = "G4550-CM-39", number = "GAO/IMTEC-92-26", number = "GAS/OP/MCL; TM-248", number = "GER-16109", number = "GG24-3611-00", number = "GIT-ICS; 82/10", number = "GIT-SERC-86/02, GIT-ICS-85/06", number = "GJBX 10(81)", number = "GJBX 11(81)", number = "GJBX 192-82", number = "GJBX 193-82", number = "GJBX 246(80)", number = "GJBX 247(80)", number = "GJBX 248(80)", number = "GMR-5174", number = "GMR-5299", number = "GN33-9342", number = "GS1976/236", number = "GU TPA 88/12-1", number = "GUTPA 88/04-01", number = "GWU-IIST-82-20", number = "HDL-TR-1942", number = "HPL-90-22", number = "HPL-91-50", number = "HPL-93-42", number = "HPL-94-??", number = "HTKK-TKO-B59", number = "Habilitationsschrift", number = "Heft 17", number = "Hm-97", number = "I-140", number = "I-3", number = "I-8525", number = "I-8607", number = "I-8701", number = "I-8712", number = "I-8801", number = "I-8810", number = "I-8814", number = "I-9135", number = "I-9136", number = "I-9215", number = "I-9217", number = "I-9220", number = "I-9304", number = "IB 262-82 RO1", number = "IBM-E-148/8, NSF-E-872", number = "IBM-Form GC33-6163, GN33-9342", number = "IBM-Form Gc33-6163", number = "IBM-Form SA22-7093", number = "IBM-Form Sc33-6164", number = "IC/85/205", number = "ICMA-83-66", number = "ICMA-87-105", number = "IFI-B-66/80", number = "II/13", number = "IMMR82/067", number = "INF-85-11", number = "INF-85-12", number = "INF-87-4", number = "INF-88-36", number = "INFN/TC-92/05", number = "INP 90-42", number = "INP 90-62", number = "INP 90-71", number = "INP 91-46", number = "INP 91-56", number = "INS-REP.-487", number = "INT 273", number = "INTT-12", number = "INTT-17", number = "INTT-19", number = "INTT-20", number = "INTT-21", number = "INTT-28", number = "IPP 6/143", number = "IRCS 92 - 24", number = "ISA-S61.1", number = "ISI/RS-86-169", number = "ISIS-RR-93-17E", number = "ISL-85-8", number = "ISO 1539 (norme NF Z 65-110)", number = "ISO/IEC TR 9573", number = "ISO/IEC TR 9573-13", number = "IX", number = "IfI-HH-B-71/80", number = "IfI-HH-M34/76", number = "IfI-HH-M36/76", number = "IfI-HH-M65/79", number = "Informatica 89-40", number = "J--91--07", number = "J530-82-020", number = "JHU-EE 84/14", number = "JPL Section 366 Internal Computing Memorandum 437", number = "J~88--4", number = "K-39/67", number = "K-73-1", number = "K/CSD/INF-81/25", number = "K/CSD/TM-20", number = "K/CSD/TM-27", number = "K34", number = "KFA-ZAM-IB-9322", number = "KFA-ZAM-IB-9401", number = "KFA-ZAM-IB-9404", number = "KFA-ZAM-IB-9410", number = "KFA-ZAM-IB-9414", number = "KFA-ZAM-IB-9415", number = "KFA-ZAM-IB-9417", number = "KFKI-1982-19", number = "KFKI-1984-115", number = "KFKI-1986-33/B", number = "KGN-137", number = "KGN-184", number = "KGN-190", number = "KGN-209", number = "KGN-216", number = "KGN-217", number = "KGN-219", number = "KUL-TF-79/032", number = "LA 7196-MS", number = "LA 7467-MS", number = "LA-10005", number = "LA-10284-MS, US-32", number = "LA-4531", number = "LA-6774", number = "LA-7524-MS", number = "LA-8609-MS", number = "LA-8849-MS", number = "LA-UR-83-1392", number = "LA-UR-83-1676", number = "LA-UR-84-2004", number = "LA-UR-85-2393", number = "LA-UR-85-3597", number = "LA-UR-85-3967", number = "LA-UR-86-2080", number = "LA-UR-86-2890", number = "LA-UR-86-3773", number = "LA-UR-86-4218", number = "LA-UR-86-4219", number = "LA-UR-87-1522", number = "LA-UR-87-2163", number = "LA-UR-87-2164", number = "LA-UR-87-2879", number = "LA-UR-87-3136", number = "LA-UR-87-3635", number = "LA-UR-87-659", number = "LA-UR-88-901", number = "LBL 5283", number = "LBL-22584", number = "LCSR--TR--121", number = "LCSR--TR--130", number = "LCSR--TR--91", number = "LMSC 4-22-66-3", number = "LMSD-285875", number = "LMSD-703073", number = "LPS4004", number = "LPS5004", number = "LPS5006", number = "LPS5047", number = "LPS5086", number = "LUFTD2\slash (TFRT-7333)\slash 1040\slash (1986)", number = "Lawrence Livermore UCRL-87522", number = "LiTH--MAT--R--1985--10", number = "LiTH--MAT--R--1990--02", number = "LiTH-IDA-R-93-34", number = "LiTH-MAT-R-1990-11", number = "LiTH-MAT-R-1992-05", number = "LiTH-MAT-R-1992-49", number = "LiTH-MAT-R-1993-39", number = "LiTH-MAT-R-1994-19", number = "LiTh Mat R 1988-02", number = "M33", number = "M78/40", number = "MA/17/1024", number = "MAS2-CT920022", number = "MASC-TR82-6", number = "MCA-TM-23", number = "MCS--P162--0790", number = "MCS--P180--1190", number = "MCS--P204--0191", number = "MCS--P228--0491", number = "MCS--P246-0691", number = "MCS--P263--0991", number = "MCS--TM--140", number = "MCS-P153-0692", number = "MCS-P179-0990", number = "MCS-P189-1090", number = "MCS-P218-0391", number = "MCS-P250-0791", number = "MCS-P268-1091", number = "MCS-P273-1191", number = "MCS-P286-0192", number = "MCS-P308-0592", number = "MCS-P330-1092", number = "MCS-P356-0393", number = "MCS-P379-0893", number = "MCS-P61-0289", number = "MCS-P69-0389", number = "MCS-P90-0789", number = "MCS-TM-129", number = "MCS-TM-138", number = "MCS-TM-68", number = "MCS-TM-78", number = "MCS-TM-80", number = "MIT/LCS/TM-73", number = "MLM-3635", number = "MM 69-1374-26", number = "MM 69-1374-29", number = "MPI H-1985-V21", number = "MR 128", number = "MR 134", number = "MSSU-EIRS-ERC 94-2", number = "MSUCL -- 751", number = "MSUCL -- 755", number = "MSUCL -- 771", number = "MTP 288", number = "M\&A-5", number = "Math./91/1", number = "Math./91/2", number = "Math: 062090-051", number = "Memorandum INF-85-12", number = "N/89/16", number = "N75-12657", number = "N78-32751 NASA TM-7877", number = "NA 87-07", number = "NA-91-05", number = "NA/131", number = "NA/154", number = "NAC 55", number = "NAC 69", number = "NAC 73", number = "NAC 82", number = "NAM 03", number = "NAS2-9896", number = "NAS2-9897", number = "NASA CR 189664; ICASE report 92-22", number = "NASA CR-1478", number = "NASA CR-177410", number = "NASA CR-177462", number = "NASA CR-177985", number = "NASA CR-178364, ICASE interim report 178364", number = "NASA CR-182806", number = "NASA CR-187590", number = "NASA CR-189623. ICASE report 92-9", number = "NASA CR-189629", number = "NASA CR-191425", number = "NASA CR-191451; ICASE report 93-17", number = "NASA CR-191575; ICASE report 93-92", number = "NASA CR-194913; ICASE report no. 94-34", number = "NASA CR-194943; ICASE report no. 94-54", number = "NASA CR-2821", number = "NASA CR-2901", number = "NASA CR-3980", number = "NASA CR-3980.", number = "NASA CR-426", number = "NASA CR-4265", number = "NASA SP-347", number = "NASA TM X-2967", number = "NASA TM100217", number = "NASA TN D-2579", number = "NASA TN D-6020", number = "NASA TN D-7056", number = "NASA TN D-734", number = "NASA TN D-7385", number = "NASA TN D-739", number = "NASA TN D-7391", number = "NASA TN D-7487", number = "NASA TN D-7545", number = "NASA TN D-7831", number = "NASA TN D-8063", number = "NASA TN D-8132", number = "NASA TN D-843", number = "NASA TN D-8430, D-8431", number = "NASA TN D-8509 NASA", number = "NASA TT-20317", number = "NASA Technical Paper 1200", number = "NASA technical memorandum NASA-TM-108019 4004232378", number = "NASA-CR 172518", number = "NASA-CR 180299", number = "NASA-TM-89082", number = "NASA-TM-89119", number = "NI-80-07", number = "NISTIR 5287", number = "NISTIR 5381", number = "NISTIR~89--4225", number = "NM-8518", number = "NM-9017", number = "NM-9018", number = "NM-N8801", number = "NM-R8501", number = "NM-R8702", number = "NM-R8719", number = "NM-R8903", number = "NM-R8915", number = "NM-R9004", number = "NM-R9014", number = "NM-R9015", number = "NM-R9107", number = "NM-R9301", number = "NM-R9414", number = "NM-R9421", number = "NN 24", number = "NOC TR170", number = "NOC TR176", number = "NOC TR177", number = "NOC TR205", number = "NOC TR209", number = "NOC TR210", number = "NOC TR224", number = "NOC TR228", number = "NP 1201", number = "NP1168", number = "NPS-53-86-012", number = "NPS-MA-88-009", number = "NPS-MA-89-001", number = "NPS-MA-89-014", number = "NPS-MA-90-004", number = "NPS-MA-91-009", number = "NPS-MA-92-004", number = "NPS-MA-92-010", number = "NPS-MA-93-014", number = "NPS-MA-94-001", number = "NPS-MA-94-003", number = "NPS012-81-005", number = "NR 15", number = "NSWC TR 85-54", number = "NUREG/CR-3624, SAND83-2365", number = "NUREG/CR-4478, ORNL/TDMC-4, NRC FIN A9100", number = "NW 11", number = "NW 18", number = "NW 24", number = "NW 3", number = "NW 6", number = "NW 66", number = "NW 7", number = "NW 8", number = "NW 9", number = "NW 93", number = "NW 98", number = "NYO-9083", number = "NYU Report No. DOE/ER/03077-277", number = "Ni-80-03", number = "No. 1008", number = "No. 103B", number = "No. 105", number = "No. 108", number = "No. 1168", number = "No. 139", number = "No. 1428", number = "No. 1469", number = "No. 1470", number = "No. 149", number = "No. 17", number = "No. 171", number = "No. 172", number = "No. 175", number = "No. 176", number = "No. 180", number = "No. 182", number = "No. 210", number = "No. 22", number = "No. 223", number = "No. 237", number = "No. 239", number = "No. 241", number = "No. 242", number = "No. 254", number = "No. 26", number = "No. 265", number = "No. 276", number = "No. 277", number = "No. 279", number = "No. 28", number = "No. 2832", number = "No. 289", number = "No. 2xx", number = "No. 32", number = "No. 45", number = "No. 49", number = "No. 619", number = "No. 67", number = "No. 791", number = "No. 8201", number = "No. 830", number = "No. 86", number = "No. 880", number = "No. 881", number = "No. 89", number = "No. 90-32", number = "No. 91", number = "No. 97", number = "No. CS41", number = "No. G320-3558x", number = "No. UCB/ERL M77/21", number = "No. UCB/ERL M77/23", number = "Nr. 70/17", number = "Nr. 70/8", number = "Number SR-2081, Version 5.0", number = "Numerical Analysis Manuscript 90-10", number = "O-79-1", number = "ORC~87--4", number = "ORNL 6190", number = "ORNL-1574", number = "ORNL-5532", number = "ORNL-5970", number = "ORNL-6150", number = "ORNL-6190", number = "ORNL-6211", number = "ORNL-6335", number = "ORNL-NSF-EATC-7", number = "ORNL/CSD-48", number = "ORNL/CSD-59", number = "ORNL/CSD/TM-265", number = "ORNL/TM 10835", number = "ORNL/TM 11261", number = "ORNL/TM 11373", number = "ORNL/TM 11407", number = "ORNL/TM 12050", number = "ORNL/TM 7051", number = "ORNL/TM-10367", number = "ORNL/TM-10400", number = "ORNL/TM-10581", number = "ORNL/TM-10691", number = "ORNL/TM-10865", number = "ORNL/TM-10866", number = "ORNL/TM-10881", number = "ORNL/TM-10937", number = "ORNL/TM-10938", number = "ORNL/TM-10945", number = "ORNL/TM-11375", number = "ORNL/TM-11655", number = "ORNL/TM-11669", number = "ORNL/TM-11760", number = "ORNL/TM-11826", number = "ORNL/TM-11847", number = "ORNL/TM-12003", number = "ORNL/TM-12006", number = "ORNL/TM-12126", number = "ORNL/TM-12231", number = "ORNL/TM-12318", number = "ORNL/TM-12404", number = "ORNL/TM-12470", number = "ORNL/TM-12680", number = "ORNL/TM-12999", number = "ORNL/TM-8776", number = "OR~3186--90--MS", number = "OSD/FCTC-82/017", number = "OSD/FSTC-82/021 (FCVS 78)", number = "OSU-CISRC-4\slash 87-TR9", number = "OSU-CISRC-7/88-TR22", number = "OSU-CISRC-7/90-TR18", number = "OU-PPI, TR-85-02", number = "OU-PPI-TR-85-05", number = "P-4428", number = "P-72", number = "P-7578", number = "P10-11944", number = "P11-87-19", number = "P11-87-302", number = "P11-87-303", number = "P11-87-452", number = "P11-88-402", number = "P2 - 11589", number = "P2-80-436", number = "P2-86-825", number = "P2-86-848", number = "P2-88-769", number = "P3", number = "PAM-212", number = "PAM-343", number = "PAM-352", number = "PAM-579", number = "PB-251 845", number = "PB-291 725 CER76-77TJ-HJM48", number = "PB-291 762 CER75-76TJ-HJM36", number = "PCS-TR86-134", number = "PDR 3171", number = "PEL 126", number = "PFC/RR-82-4", number = "PN LPS5001", number = "PN LPS5002", number = "PNW GTR-211", number = "PP 93/061", number = "PPR-4-83", number = "PR/PA/92/10", number = "PRG 58", number = "PRG-63", number = "PRG-74", number = "PRG-TR-9-91", number = "PRR 76/17", number = "PRR 77/9", number = "PS-16", number = "PUB-1255", number = "PURE, no. 44", number = "Preprint 690", number = "Preprint MCS-P144-0390", number = "Preprint SC 88-2", number = "Pt 1", number = "Pt 10", number = "Pt 11", number = "Pt 12", number = "Pt 2", number = "Pt 3", number = "Pt 4", number = "Pt 5", number = "Pt 7", number = "Pt 8", number = "Pt 9", number = "QTP-TF-234", number = "QTP.770921.01", number = "QTP.770927.02", number = "QTP.771205.03", number = "QTP.780503.04", number = "QTP.780614.05", number = "QTP.780703.06", number = "QTP.780725.07", number = "QTP.780822.08", number = "QTP.780825.09", number = "R-2572-1-AF", number = "R-73", number = "R-82-139", number = "R-86-1246", number = "R-87-1373", number = "R-Math-01/90 0233-2876", number = "R.10533", number = "R12.1281", number = "R7470", number = "R8730", number = "RADC-TR-82-78", number = "RAL 92-086", number = "RAL 92-087", number = "RAL 93-036", number = "RAL 93-055", number = "RAL 93-064", number = "RAL 93-066", number = "RAL 93-072", number = "RAL 94-019", number = "RAL-92-075", number = "RAL-92-086", number = "RAL-93-064", number = "RAL-93-072", number = "RAL-95-001", number = "RC 10260", number = "RC 10580", number = "RC 11094 (\#49829)", number = "RC 11407", number = "RC 11408 (\#51330)", number = "RC 11506", number = "RC 11676", number = "RC 12150", number = "RC 12327 (\#55257)", number = "RC 12515", number = "RC 12595 (\#56575)", number = "RC 12849", number = "RC 13245 (\#59268)", number = "RC 13844", number = "RC 14160", number = "RC 14211 (\#63576)", number = "RC 15101 (\#67356)", number = "RC 15202(\#67767)", number = "RC 19991 (88480)", number = "RC 20085 (88832)", number = "RC 3259", number = "RC 4608", number = "RC 4962", number = "RC 6203", number = "RC 7681", number = "RC 8348", number = "RC 8425 (\#36568)", number = "RC 8743", number = "RC 9009", number = "RC 9203 (#39787)", number = "RC 9577", number = "RC 9582 (42314)", number = "RC 9789", number = "RC-12686", number = "RC-55", number = "RC-6026", number = "RC-6903", number = "RC-8644", number = "RC11719(52739)", number = "RC12878", number = "RC13429", number = "RC7776", number = "RC~15030~(67093)", number = "RC~15886", number = "RFP-624", number = "RIFIS-TR-CS-105", number = "RIFIS-TR-CS-110", number = "RIFIS-TR-CS-111", number = "RIFIS-TR-CS-117", number = "RIFIS-TR-CS-122", number = "RJ 9925 (87305)", number = "RJ-1218", number = "RJ3441 (40927)", number = "RJ3455 (41061)", number = "RJ3503", number = "RJ~5923", number = "RJ~6327", number = "RJ~6486", number = "RJ~6638~(63949)", number = "RJ~7720~(71585)", number = "RJ~7872~(72532)", number = "RM-4867-PR", number = "RM-5618", number = "RM-5618-PR", number = "RM-6248-PR", number = "RM-86-13", number = "RM-88-17", number = "RMI 87 -- 02", number = "RMI 90--01", number = "RNR-90-022", number = "RNR-91-025", number = "RNR-93-004", number = "RNR-93-008", number = "RNR-94-013", number = "RR 2475", number = "RR No 1200", number = "RR YALEU/DCS/R-766", number = "RR YALEU/DCS/RR-831", number = "RR-520", number = "RR-616", number = "RR-629", number = "RR-91-01", number = "RR-91-11", number = "RR-91-15", number = "RR-92-16", number = "RR-92-48", number = "RR-93-03", number = "RR-93-11", number = "RR-93-33", number = "RR1698", number = "RRR~25--90", number = "RRR~46--89", number = "RRR~67--90", number = "RR~457", number = "RT-BIO (68) 1", number = "RT/APO/94/2", number = "RT/APO/94/4", number = "RZ-166", number = "Rand Publication CP84 (4/83)", number = "Rap. 04.93", number = "Report 91-09", number = "Report A1.1, Alvey Project SE/065", number = "Report A1.2, Alvey Project SE/065", number = "Report ANL-90/3", number = "Res.R. No.R", number = "Research Report RJ 5440.", number = "Research Report YALEU/ DCS/ RR-461", number = "Rice COMP TR476-029-4", number = "Ris{\o}-M-564", number = "Ris{\o}-M-957", number = "S-22", number = "S-22(H)", number = "S1", number = "S2", number = "S544-3421", number = "S701", number = "SAE\slash SP-95\slash 1080", number = "SAND-77-0898", number = "SAND-85-2727", number = "SAND85-2752", number = "SAND89-8691", number = "SAND90-8723", number = "SAND91-8240", number = "SAND92-8548", number = "SARL-2", number = "SC 88-1", number = "SC 88-2", number = "SC 89-4", number = "SC 89-6", number = "SC 90-1", number = "SC 91--3", number = "SDS 90 00 03 C", number = "SEI-93-TR-4", number = "SERC-TR-0-P", number = "SERC-TR-4-P", number = "SERC-TR-41-P", number = "SERC-TR-49-F", number = "SERC-TR-55-P", number = "SERC-TR-9-P", number = "SERC-TR-92-P", number = "SETL Newsletter \#102", number = "SLAC-PUB-1118", number = "SLAC-PUB-1183", number = "SLAC-PUB-1188", number = "SLAC-PUB-2725", number = "SLAC-PUB-795", number = "SLL-73-0225", number = "SM-0017", number = "SOL 77-7 (NTIS AD/A-044 905)", number = "SOL 78-19", number = "SOL 82-10", number = "SOL 82-9", number = "SOL 83-20R", number = "SOL 86-2", number = "SOL 94-4", number = "SOL~85--5", number = "SOL~86--7", number = "SOL~88--10", number = "SOL~88--14", number = "SOL~88--9", number = "SOL~89--6", number = "SOL~90--16", number = "SOL~90--4", number = "SOL~90--6", number = "SOL~90-8", number = "SOL~91--10", number = "SOL~91--2", number = "SOL~91-3", number = "SOL~91-7", number = "SOR~88--3", number = "SOR~88--5", number = "SOR~89--21", number = "SOR~90--03", number = "SOR~90--08", number = "SOR~90--14", number = "SOR~91--18", number = "SOR~91--7", number = "SP43-29", number = "SP85-1/5.1E", number = "SP85-1/5E", number = "SPI//1", number = "SPI//2", number = "SR-0009", number = "SR-2079 5.0", number = "SR-2079 6.0", number = "SR-2079", number = "SR-3071, SR-3072, SR-3073, SR-3074", number = "SR-3071, SR-3072, SR-3074", number = "SR-3772", number = "SRC TR 89-61r1", number = "SRC-TR-94-130", number = "SRI-CSL-90-16", number = "SSL91-16/P91-00143", number = "ST4", number = "STAN CS-TR-2238, UMIACS-TR-89-45", number = "STAN-CS-70-163", number = "STAN-CS-72-270", number = "STAN-CS-73-374", number = "STAN-CS-75-478", number = "STAN-CS-75-496", number = "STAN-CS-75-511", number = "STAN-CS-76-535", number = "STAN-CS-76-548", number = "STAN-CS-76-585", number = "STAN-CS-77-595", number = "STAN-CS-77-602", number = "STAN-CS-77-622", number = "STAN-CS-77-623", number = "STAN-CS-78-648", number = "STAN-CS-78-656", number = "STAN-CS-78-675", number = "STAN-CS-78-684", number = "STAN-CS-78-685", number = "STAN-CS-78-698", number = "STAN-CS-79-713", number = "STAN-CS-79-762", number = "STAN-CS-80-780", number = "STAN-CS-80-787", number = "STAN-CS-80-795", number = "STAN-CS-80-803", number = "STAN-CS-80-817", number = "STAN-CS-80-824", number = "STAN-CS-81-848", number = "STAN-CS-81-886", number = "STAN-CS-82-901", number = "STAN-CS-82-914", number = "STAN-CS-83-965", number = "STAN-CS-83-966", number = "STAN-CS-83-971", number = "STAN-CS-83-974", number = "STAN-CS-83-977", number = "STAN-CS-83-978", number = "STAN-CS-83-980", number = "STAN-CS-83-981", number = "STAN-CS-83-985", number = "STAN-CS-83-987", number = "STAN-CS-84-1013", number = "STAN-CS-84-1027", number = "STAN-CS-85-1074", number = "STAN-CS-86-1095", number = "STAN-CS-86-1097", number = "STAN-CS-88-1223", number = "STAN-CS-89-04, NA-89-04", number = "STAN-CS-89-08, NA-89-08", number = "STAN-CS-89-1251", number = "STAN-CS-TR-2001", number = "STAN-CS-TR-2002", number = "STL-86-13", number = "STL-88-21", number = "STL-89-25", number = "STL-89-26", number = "STP-172-86", number = "Section 914, Internal Computing Memorandum 337", number = "Special Publication 424", number = "Standard 8613", number = "Suppl 1", number = "Supplement", number = "T", number = "T-11", number = "T.P. 322", number = "T62-3", number = "T62-4", number = "TAU 86-04", number = "TBD", number = "TC-NA-94-1", number = "TC-NA-94-2", number = "TC-NA-94-3", number = "TC-NA-94-4", number = "TC-NA-94-5", number = "TC-PC-95-1", number = "TEC 715", number = "TEC 816 Canada", number = "TH.2548-CERN", number = "TIM005", number = "TIM007.A", number = "TIM009.A", number = "TIM010.A", number = "TIM011", number = "TIM012", number = "TIM013", number = "TIM015.A", number = "TIM016.A", number = "TIM017.A", number = "TIM018.A", number = "TIM020", number = "TIM021", number = "TIM022.A", number = "TIM023", number = "TIM024", number = "TIM026", number = "TIM027", number = "TM X-73904", number = "TM-12231", number = "TM-385", number = "TM-73203", number = "TM-78665", number = "TM-78733", number = "TM-78816", number = "TM-81-11271-9", number = "TM-85710", number = "TM-85945", number = "TM-85965", number = "TM-90-04", number = "TM/OA/79-13", number = "TMC-148, PL87-7", number = "TMC-184", number = "TN D-7653", number = "TN D-8372", number = "TN D-8430, D-8431", number = "TN--87--32", number = "TN-109", number = "TN-K/27-70", number = "TN-K\slash 27-70", number = "TN309", number = "TNN--94", number = "TNN-1", number = "TNN-105", number = "TNN-12", number = "TNN-14", number = "TNN-2", number = "TNN-20", number = "TNN-21", number = "TNN-3", number = "TNN-30", number = "TNN-39", number = "TNN-4", number = "TNN-46", number = "TNN-5", number = "TNN-9", number = "TNN-94", number = "TNN-96", number = "TR 1026", number = "TR 1086", number = "TR 1098", number = "TR 1099", number = "TR 1137", number = "TR 394", number = "TR 479", number = "TR 69-31", number = "TR 7", number = "TR 75.91.20", number = "TR 78-352", number = "TR 78-354", number = "TR 79-4", number = "TR 80-423", number = "TR 80-430", number = "TR 80-431", number = "TR 81-454", number = "TR 82-521", number = "TR 83-554", number = "TR 83-565", number = "TR 836", number = "TR 84-603", number = "TR 85-664", number = "TR 85-675", number = "TR 86-789", number = "TR 86.3", number = "TR 869", number = "TR 87-803", number = "TR 87-812", number = "TR 88-30", number = "TR 89-10", number = "TR 89-21", number = "TR 89-9", number = "TR 90-1", number = "TR 90-29", number = "TR 90-34", number = "TR 90-43", number = "TR 90-60r1", number = "TR 90.40", number = "TR 916", number = "TR 92-1280", number = "TR 92-1291", number = "TR 92-23", number = "TR 92-47", number = "TR 92.12", number = "TR 92.13", number = "TR 921", number = "TR 93-1371", number = "TR 93-2", number = "TR 930", number = "TR 96-740", number = "TR 965", number = "TR 996", number = "TR 997", number = "TR AM-87-11", number = "TR CSc-84-15", number = "TR STAN-CS-76-556", number = "TR--87--13", number = "TR--89--01", number = "TR--91--15", number = "TR--91--22", number = "TR--91--26", number = "TR-1648", number = "TR-1859, UMIACS-TR-87-20", number = "TR-2101", number = "TR-219", number = "TR-22-78", number = "TR-2339", number = "TR-24 (Revised \# TR-24R)", number = "TR-2714", number = "TR-3", number = "TR-3064", number = "TR-31", number = "TR-31-81", number = "TR-3133", number = "TR-3145", number = "TR-3238", number = "TR-3263", number = "TR-328", number = "TR-3306", number = "TR-3307", number = "TR-3345", number = "TR-408", number = "TR-456", number = "TR-458", number = "TR-571", number = "TR-683", number = "TR-696", number = "TR-7", number = "TR-708", number = "TR-77-2", number = "TR-82-522", number = "TR-85.2", number = "TR-85.3", number = "TR-87.2", number = "TR-88", number = "TR-88-53", number = "TR-89-9", number = "TR-9", number = "TR-91-023", number = "TR-91-042", number = "TR-91-35", number = "TR-93-040", number = "TR-94-017", number = "TR-CS-82-10", number = "TR-CS-82-11", number = "TR-CS-92-17", number = "TR. UTUDCDS-??", number = "TR.CSG 8", number = "TR/PA/91/63", number = "TR/PA/92/70", number = "TR/PA/92/85", number = "TR/PA/93/05", number = "TR/PA/93/10", number = "TR/PA/93/26", number = "TR/PA/93/27", number = "TR/PA/94/09", number = "TR/PA/95/02", number = "TR/PA/95/05", number = "TR04/92", number = "TR04/93", number = "TR1/92", number = "TR1/94 ATR/7 (NP2680)", number = "TR11/88", number = "TR1143", number = "TR19/93", number = "TR2/92", number = "TR2/93 (ATR/6) (NP2556)", number = "TR26-92", number = "TR3/92 (ATR/1) (NP2490)", number = "TR32/89", number = "TR4/92 (ATR/2) (NP2491)", number = "TR5/92 (ATR/3) (NP2492)", number = "TR6/90", number = "TR6/92 (ATR/4) (NP2493)", number = "TR7/92 (ATR/5) (NP2522)", number = "TR77-5", number = "TR8/90", number = "TR839", number = "TR84-1", number = "TR86-38", number = "TR86-7", number = "TR89/10", number = "TR90-54", number = "TR91/7", number = "TR91121", number = "TR92-17", number = "TR92-9", number = "TR93-01", number = "TR93-08", number = "TR93-09", number = "TR93-10", number = "TR93-45", number = "TR94--34", number = "TR94-13", number = "TRCS 91-15", number = "TRCS85-09", number = "TRCS88-27", number = "TRI-PP-83-95", number = "TRITA-MEK-76-02", number = "TRITA-MEK-76-03", number = "TRITA-NA-8311", number = "TRR-514", number = "TR~87--7", number = "TR~90--06", number = "TR~90--16R1", number = "TR~90--40", number = "TR~90--6", number = "TR~90--9", number = "TR~91--10", number = "TUM-I9120", number = "TUM-ISU-7830", number = "Technical report ITPR-95022", number = "Technion-PH-76-25", number = "Technion-PH-77-36", number = "UBLCS", number = "UBLCS-6", number = "UBLCS-7", number = "UBLCS-94-14", number = "UBLCS-94-5", number = "UCB/CSD 88/469", number = "UCB/CSD 94/802 4004667978", number = "UCB/CSD 94/805", number = "UCB/CSD 95-870", number = "UCB/CSD-92-703", number = "UCB/CSD-94-793", number = "UCB/CSD-94-???", number = "UCB/ERL 84/5", number = "UCB/ERL M77/21", number = "UCB/ERL~M85/61", number = "UCID-17515", number = "UCID-18549", number = "UCID-18619", number = "UCID-20167", number = "UCID-21482", number = "UCID-30175", number = "UCLA/84/TEP/19", number = "UCP-19", number = "UCP-32", number = "UCP-33", number = "UCRL 85752", number = "UCRL 89913. CONF-831247--1", number = "UCRL-500021-81", number = "UCRL-51186, Rev. 1", number = "UCRL-53401", number = "UCRL-76993, Rev. 1", number = "UCRL-78652", number = "UCRL-88710", number = "UCRL-91734", number = "UCRL-92077-II", number = "UCRL-93792", number = "UCRL-94464", number = "UCRL-95055", number = "UCRL-95278", number = "UCRL-95669", number = "UCRL-96034", number = "UCRL-97580", number = "UCRL-98508", number = "UIB-11", number = "UILU-ENG-85-1727", number = "UIUCDCS-R-71-488", number = "UIUCDCS-R-72-493", number = "UIUCDCS-R-76-787", number = "UIUCDCS-R-77, 883", number = "UIUCDCS-R-85-1129", number = "UIUCDCS-R-85-1201", number = "UIUCDCS-R-85-1203", number = "UIUCDCS-R-86-1229", number = "UMCS-90-9-1", number = "UMCS-93-7-1", number = "UMIACS-TR-89-11, CS-TR-2189, SRC-TR-89-13", number = "UMINF 125.85", number = "UMINF 92.11", number = "UMINF 93.23", number = "UMINF 94.03", number = "UMINF 94.04", number = "UMINF-132.86", number = "UMINF-136.87", number = "UMINF-154.88", number = "UMINF-155.88", number = "UMINF-58.77", number = "UMINF-91.29", number = "UMSI 86145", number = "UMSI 93-234", number = "UMSI 94-101", number = "UMSI 94-29", number = "UMSI 94-90", number = "UMSI-93/131", number = "UNIC-92-03", number = "UNIC-93-09", number = "UNIGRAZ-UTP 08/79", number = "URI-037", number = "URI-044", number = "USAS X3.9-1966", number = "USCG Op. Note No. 40", number = "USERDA/EY-76-S-02-2895*000/Tr/76/6", number = "USGS-GD-73-030", number = "USI-28", number = "USI-31", number = "USI-44", number = "USI-7", number = "USNRDL-TR-67-7, AD649288", number = "UUCS-79-108", number = "UUCS-91-017", number = "UUICDCS-R-89-1539 and UILU-ENG-89-1758", number = "UWE and CE-92-02", number = "UWFDM-658", number = "V", number = "VLSI-82-22", number = "Version 1.1", number = "Version 3.20", number = "WCAP-8261 Revision 1", number = "WSDG-AD-00002", number = "WSU-CS-77-02", number = "WSU-CS-90-01", number = "WSU-CS-90-08", number = "WSU-CS-90-10", number = "WSU-CS-91-02", number = "WUCS91-08", number = "Working Paper 851", number = "X-1707", number = "X-3286", number = "X-62282", number = "X-70477", number = "XNSS 288811", number = "YALEU DCS RR-339", number = "YALEU DCS RR-389", number = "YALEU DCS RR-428", number = "YALEU DCS RR-532", number = "YALEU DCS RR-569", number = "YALEU/ DCS/ RR- Draft", number = "YALEU/ DCS/ RR-463", number = "YALEU/DCS/RR-276", number = "YALEU/DCS/RR-292", number = "YALEU/DCS/RR-299", number = "YALEU/DCS/RR-339", number = "YALEU/DCS/RR-347", number = "YALEU/DCS/RR-363", number = "YALEU/DCS/RR-367", number = "YALEU/DCS/RR-368", number = "YALEU/DCS/RR-373", number = "YALEU/DCS/RR-381", number = "YALEU/DCS/RR-389", number = "YALEU/DCS/RR-397", number = "YALEU/DCS/RR-428", number = "YALEU/DCS/RR-443", number = "YALEU/DCS/RR-444", number = "YALEU/DCS/RR-458", number = "YALEU/DCS/RR-461", number = "YALEU/DCS/RR-462", number = "YALEU/DCS/RR-537", number = "YALEU/DCS/RR-539", number = "YALEU/DCS/RR-540", number = "YALEU/DCS/RR-542", number = "YALEU/DCS/RR-543", number = "YALEU/DCS/RR-544", number = "YALEU/DCS/RR-548", number = "YALEU/DCS/RR-552", number = "YALEU/DCS/RR-553", number = "YALEU/DCS/RR-554", number = "YALEU/DCS/RR-570", number = "YALEU/DCS/RR-594", number = "YALEU/DCS/RR-726", number = "YALEU/DCS/RR-880", number = "YALEU/DCS/RR-934", number = "YALEU/DCS/RR-942", number = "YALEU/DCS/TR-532", number = "\# 1030", number = "\# 947", number = "\# 963", number = "\#167-O-310789", number = "\#180-O-170591", number = "\#191-O-191291", number = "\#20", number = "\#26", number = "\#59", number = "\#961", number = "\#985", number = "liens-94-18", number = "pt.1", number = "pt.A", number = "special issue", number = "suppl. 2", number = "suppl. issue", number = "vol 12 pp 7.1-7.19", number = "vol. 7", number = "vyp. 90", number = "{/DCS/RR-409}", number = "{/DCS/RR-414}", number = "{/DCS/RR-534}", number = "{AM}--87--13", number = "{AM}--88--09", number = "{CS}980", number = "{ICE-VS}06", number = "{NRL} Report 8179", number = "{SACLANTCEN} {CP}-19", number = "{SACLANTCEN} {SM}-72", number = "{STAN-CS-79-714}", number = "{STAN-CS-88-1223}", number = "{STAN-CS-89-1256}", number = "{TR SRI-CSL-91-05}", number = "{TR90-141}", pages = "1--26", pages = "1--27 (or 3--28??)", pages = "1--28 (or 1--18??)", pages = "1--??", pages = "1-70", pages = "1.0--3.0", pages = "1.1--1.27", pages = "1.2/1--8", pages = "1.3/1--6", pages = "1.4/1--7", pages = "1.42--1.54", pages = "1.5/1--3", pages = "1/1--1/5", pages = "10 + 622", pages = "10 + [16]", pages = "10 + [2]", pages = "10 + [9]", pages = "10 -- 11", pages = "10 -- 15", pages = "10 computer disks guide + 2 templates.", pages = "10 videocassettes (ca. 253 min.), guide (vii + 104)", pages = "10, 11, 19", pages = "10, 12", pages = "10,560--10,574", pages = "10--??", pages = "10.1--10.29", pages = "10/1--2", pages = "10/1--25", pages = "100 -- 104", pages = "100--122 (of vi + 335)", pages = "100--??", pages = "1001--??", pages = "1003--??", pages = "101 + [43]", pages = "101 -- 110", pages = "101--113 (or 51--60??)", pages = "103 -- 123", pages = "103, 117", pages = "104 -- 126", pages = "104 -- 133", pages = "104--116 (of xii + 199)", pages = "105--127 (of x + 552)", pages = "1059 -- 1072", pages = "106--108", pages = "1065--1067 (vol. 2)", pages = "107.", pages = "1075--1095 vol.2", pages = "108 -- 111", pages = "108 -- 128", pages = "108--110, 112--115", pages = "1091 -- 1103", pages = "1099 -- 1114", pages = "11 + 13", pages = "11 + [12]", pages = "11 + [3]", pages = "11 + [5]", pages = "11 + [6]", pages = "11 -- 59", pages = "11--14, 109--112", pages = "11.1--11.27", pages = "11/1--11/4", pages = "11/1--3", pages = "11/1--8", pages = "110 + [4]", pages = "111 -- 113, 106", pages = "111--123, 131", pages = "1112 -- 1120", pages = "112 + I20", pages = "112--1--112--15", pages = "114 -- 144", pages = "1144 -- 1156", pages = "115 + 5 + 3", pages = "115 -- 133", pages = "115 -- 137", pages = "115--120, 122", pages = "1152 columns", pages = "118--120, 136", pages = "119--129, 132", pages = "119.", pages = "1193--1198 (vol. 2)", pages = "11P", pages = "12 + [14]", pages = "12 + [6] + A--18", pages = "12 computer disks", pages = "12 program files + 1 text file (MS--DOS + IBM--PC)", pages = "12+", pages = "12--18, 81", pages = "12.1--12.15", pages = "120 -- 131", pages = "121 -- 139", pages = "121--122, 124, 126--127, 130, 132", pages = "122, 101", pages = "122, 98", pages = "122--123, 106", pages = "1227 -- 1240", pages = "123--124, 126, 128", pages = "123--131 (or 122--129??)", pages = "1233--1236 (vol. 3)", pages = "1233--1236 vol.3", pages = "1247-", pages = "126 + [4]", pages = "127 -- 148", pages = "127--134 (of xiv + 517)", pages = "127-130", pages = "1279 -- 1292", pages = "129--130, 132--134, 136", pages = "129--135 (or 129--136??)", pages = "129--138 (vol. 1)", pages = "13 + 36 + [2]", pages = "13 + A1--11 + B1--6 + C1--10 + D1--8 + E1--5", pages = "13 + A13", pages = "13 computer disks guide + codeview and utilities", pages = "13 computer disks guide.", pages = "13--14, 16", pages = "13.", pages = "13.1--13.16", pages = "1306 -- 1309", pages = "131 + [1]", pages = "131--142 (of ix + 394)", pages = "1311 -- 1328", pages = "1329 -- 1347", pages = "1332-1350", pages = "134 pp", pages = "1347 -- 1362", pages = "135 -- 148", pages = "136 + 5", pages = "136 -- 140", pages = "137 + [1]", pages = "137 +", pages = "138, 119", pages = "138, 121", pages = "138.", pages = "139--148 (or 139--147??)", pages = "139--161 (or 138--151??)", pages = "14 + 12", pages = "14 + 2.5", pages = "14 + 573", pages = "14 + [13]", pages = "14 + [24]", pages = "14 + [3] (env. 918 p.)", pages = "14 -- 17", pages = "14 program files (IBM PC) on 2 computer disks", pages = "14, 82--85", pages = "14.1--14.15", pages = "14.1.1--14.1.4", pages = "14/1/1--6", pages = "14/3/1--8", pages = "14/4/1--6", pages = "14/5/1--8", pages = "140--152 (or 148--160??)", pages = "141 -- 156", pages = "141--148 (of xix + 453)", pages = "142 -- 169", pages = "143--154 (of ix + 394)", pages = "144--148, 150, 152, 154, 156, 158, 160--161", pages = "146 -- 160", pages = "147---156", pages = "147--156, 157--168", pages = "148--154, 156, 158, 160, 162, 164", pages = "149 -- 158", pages = "15 + 8", pages = "15 + [1]", pages = "15--18, 22--23", pages = "15--21, 110", pages = "15.1--15.24", pages = "15.1/1--4", pages = "15.2/1--4", pages = "15/1/1--4", pages = "150 -- 165", pages = "150 l.", pages = "1509--1514 vol.2", pages = "152 -- 179", pages = "152--160, 300--301", pages = "152--164, 166", pages = "155 -- 189", pages = "155--156, 158", pages = "1550 -- 1560", pages = "1587, with 31 illustrations", pages = "159 ff.", pages = "16 + 10", pages = "16 + [8]", pages = "16--17, 44", pages = "16--18, 20, 22", pages = "16.1--16.22", pages = "16/1/1--3", pages = "16/2/1--7", pages = "16/3/1--3", pages = "16/5/1--10", pages = "160F--??", pages = "161 -- 184", pages = "162--172, 174", pages = "163 -- 170", pages = "1647-1652", pages = "165 -- 170", pages = "165--170, 499--511", pages = "166 + 61", pages = "166 columns.", pages = "166--1f", pages = "168--173, 175--176, 178--181", pages = "169 -- 176", pages = "169-", pages = "17 -- 24", pages = "17 -- 41", pages = "17 v. in 1", pages = "17--25 (discussion 27--28)", pages = "17.", pages = "170--181 (of xi + 528)", pages = "171 -- 179", pages = "171 -- 187", pages = "172 pages.", pages = "172--173, 175", pages = "172--176, 178, 180--182, 184, 186--187, 192--197, pages = "173 + 11 + 3", pages = "173 -- 177", pages = "173--174, 191--192", pages = "173--176 (vol. 1)", pages = "174, 176", pages = "175--178 (Vol. 1)", pages = "175--208 (or 175--207??)", pages = "176, 196--206", pages = "177 -- 184", pages = "177 -- 197", pages = "177 -- 209", pages = "177--184 (or 171--176??)", pages = "1784--1791 vol.4", pages = "179 -- 200", pages = "179--194 and 315--326", pages = "1792--1795 vol.4", pages = "1796--1799 vol.4", pages = "18 + [18]", pages = "18 + [21]", pages = "18 + [33]", pages = "18 + [58]", pages = "18 -- 24", pages = "18--20, 22, 24, 26, 91", pages = "18.", pages = "18/0/1--5", pages = "18/1/1--12", pages = "18/2/1--5", pages = "18/3/1--6", pages = "18/4/1--8", pages = "180.", pages = "1800--1803 vol.4", pages = "181 -- 191", pages = "181 -- 198", pages = "181--182, 184", pages = "181-197", pages = "184 (Macintosh), 192 (Windows)", pages = "187 -- 196", pages = "187 -- 209", pages = "187 -- 217", pages = "1876--1881 (vol. 3)", pages = "188--200 (or 201??)", pages = "19 + 4 + 1", pages = "19 -- 46", pages = "19 program files on 2 computer disks 1 user's guide", pages = "19+117", pages = "19--27 (of xviii + 1621)", pages = "190, 192", pages = "191--197 vol.1", pages = "193--194, 196", pages = "193--206 (of ix + 453)", pages = "193--6, 198", pages = "194, 196", pages = "194--196, 198, 200, 202--203, 205--206, 208, 210", pages = "195 -- 204", pages = "197 + [1]", pages = "2 + 2 + 335", pages = "2 + 2 + 354", pages = "2 + 216", pages = "2 + 4 (C source code)", pages = "2 + 475", pages = "2 + 7 + 227", pages = "2 + [6].", pages = "2 + xi + 237", pages = "2 -- 9", pages = "2 computer disks", pages = "2 microfiches (125 fr.)", pages = "2 microfiches (134 fr.)", pages = "2 microfiches (138 fr.)", pages = "2 microfiches", pages = "2 program files (FORTRAN + IBM PC) on 1 computer disk", pages = "2 pts. in 1", pages = "2 v", pages = "2 v.", pages = "2--18--2--15", pages = "2.1--2.13", pages = "2/1--3", pages = "20 -- 21 \& 8 ff.", pages = "20 transparencies. color. 10 x 12 in.", pages = "20 transparencies. color. 10x12 in.", pages = "20 videocassettes (VHS) (30 min. ea.) + book.", pages = "20, 22, 24--25", pages = "20--22 (or 20--23??)", pages = "20.21--20.25", pages = "2002 +", pages = "201--202, 204--208", pages = "201--206 (or 201--207??)", pages = "203 -- 229", pages = "2038 -- 2050", pages = "204 -- 217", pages = "204--206, 209--210, 212, 215--216, 218--221", pages = "205 + [3] ", pages = "205 -- 215", pages = "205 -- 240", pages = "2063 -- 2068", pages = "207--220, 71--78", pages = "208.", pages = "209--221 (or 209--222??)", pages = "21 + 133 + 87", pages = "21--2--21--13", pages = "211 -- 213", pages = "211 -- 227", pages = "213 +", pages = "213 -- 216", pages = "213--216??", pages = "213--243, esp.~219--224", pages = "215 -- 224", pages = "216--220, 222, 224--226, 228, 230, 232--234", pages = "217--250, 276--300, 372--389", pages = "218 -- 240", pages = "219--239 (of xii + 394)", pages = "22 + 3", pages = "22 + 331 (Chapter 1), 8 + 373 (Chapter 2)", pages = "22 cassettes. 2--track. mono.", pages = "221--222, 224, 226", pages = "221--224 (vol. 1)", pages = "221--231 (or 221--232??)", pages = "222--225, 227--235", pages = "223 + [8]", pages = "223 -- 227", pages = "223 -- 252", pages = "224 + [1]", pages = "224A--??", pages = "227 -- 234", pages = "228 -- 236", pages = "228ff", pages = "22:00--35:28", pages = "23 + iii", pages = "23 -- 27", pages = "231 -- 232", pages = "231 -- 240", pages = "231 -- 264", pages = "232-236", pages = "233--242 (of xix + 453)", pages = "235--255 (of ix + 403)", pages = "236--238, 240", pages = "237 + 15 + 18.", pages = "237--253 (of xvii + 529)", pages = "237-256", pages = "238 -- 251", pages = "239 + [2]", pages = "239 -- 259", pages = "239, 240", pages = "239--242, 144", pages = "24 + 27", pages = "24 + [12]", pages = "24 -- 30", pages = "24--85 (or 42??)", pages = "24-30", pages = "240 -- 250", pages = "240, 303", pages = "241--242 (?? check ??) or 696--698", pages = "241--244, 246--247", pages = "241-246", pages = "241-250", pages = "241-264", pages = "243 + 12 + 10 + 6", pages = "243 -- 248", pages = "243 -- 268", pages = "244-244", pages = "245 -- 255", pages = "246--260 (or 246--259??)", pages = "246-250", pages = "247--250 vol.1", pages = "247-254", pages = "249 -- 259", pages = "249--252, 254, 256", pages = "25--28, 30--32, 34, 36, 38--39", pages = "250 +", pages = "250--255 (of xii + 423)", pages = "254 + [2]", pages = "255 -- 286", pages = "257--258, 260", pages = "257--258, 260, 262", pages = "257--284 (of x + 338)", pages = "258--287 (of viii + 655)", pages = "259 -- 271", pages = "26 + 19", pages = "26 + 324 + 8", pages = "26 -- 43", pages = "260--274 (or 260--273??)", pages = "261 +", pages = "263, 267", pages = "265--266, 268", pages = "265--271, 332--345", pages = "265--272, 332--345", pages = "265--273, 341", pages = "267--283 (or 268--283??)", pages = "268 + 106", pages = "268--270 (or 268--274??)", pages = "268--274 (or 268--270??)", pages = "269--288 (of ix + 453)", pages = "27--30, 32, 34, 36", pages = "273--314 (of ix + 388)", pages = "274 pp", pages = "275 +", pages = "275 -- 282", pages = "275 -- 297", pages = "276--280, 282, 284--285, 289--291, 293, 295, 299, pages = "277 +", pages = "279--289 (vol. 2)", pages = "279--290 (or 279--298??)", pages = "2794 -- 2802", pages = "27:1--27:10", pages = "27P-28P", pages = "28 -- 41", pages = "28, 29, 285", pages = "28, 30, 32, 34, 36, 38, 91--92", pages = "28, 30, 32, 34, 84, 86--87", pages = "28, 30--31", pages = "28--35 (or 28--34??)", pages = "280 -- 294", pages = "2803 -- 2812", pages = "281 -- 294", pages = "282 -- 292", pages = "283 +", pages = "286 -- 300", pages = "286--2xx", pages = "287 -- 295", pages = "287 -- 301", pages = "287--290??", pages = "29 + 5 + 7 + 9 + 6", pages = "29 -- 42", pages = "29, 32--38", pages = "29--37 (of xix + 685)", pages = "29--49 (of xi + 425)", pages = "29--82 (of x + 415)", pages = "29.", pages = "291 -- 309", pages = "292--296 (of xi + 437)", pages = "293--312 (or 293--311??)", pages = "295--296, 298", pages = "297-", pages = "2P-3P", pages = "2c6.1--??", pages = "2c6.9--??", pages = "3 + 6", pages = "3 + 810 + 15", pages = "3 + [11]", pages = "3 + [16] + [1]", pages = "3 books + 4 diskettes + 1 booklet.", pages = "3 computer disks", pages = "3 microfiches (221 im.)", pages = "3 microfiches.", pages = "3 pts.", pages = "3 v. in 1", pages = "3 v.", pages = "3+", pages = "3, 18", pages = "3, 20", pages = "3--", pages = "3--27 (or 3--28??)", pages = "3.1--3.10", pages = "3.1--3.13", pages = "3.4.1--3.4.4", pages = "3/206", pages = "3/308", pages = "30, 32--33", pages = "30.3/1--4", pages = "300 -- 308", pages = "301 -- 320", pages = "301 -- 331", pages = "301--321 (or 301--324??)", pages = "301.", pages = "303--304??", pages = "303--?", pages = "305 -- 316", pages = "307, 307", pages = "309 -- 318", pages = "309 -- 322", pages = "309--323 (of viii + 426)", pages = "309--328 (or 300--328??)", pages = "309--376 (of xv + 608)", pages = "31--45 (of 255)", pages = "310--", pages = "313.", pages = "315 -- 327", pages = "315 -- 333", pages = "315--340 (or 315--339 ?? or 315--349 ??)", pages = "317 -- 318, 503", pages = "317 -- 330", pages = "317--318, 503", pages = "317--365, 1870", pages = "319--326 (or 318--326??)", pages = "32 + 36", pages = "32 + A1--A4", pages = "32 -- 45", pages = "32, 34, 38--39, 101", pages = "32--48, 96--100", pages = "32.", pages = "325--330 (of xiii + 426)", pages = "327 (without CD--ROM), 388 (with CD--ROM)", pages = "327 -- 329", pages = "327 -- 340", pages = "328-335", pages = "329 -- 345", pages = "33 + 26", pages = "33 + [9]", pages = "33 -- 41", pages = "33 slides (in carousel slide tray) col. 2 x 2 in.", pages = "33--43, 45", pages = "330 -- 340", pages = "330 -- 345", pages = "333 -- 365", pages = "337 -- 338", pages = "337 -- 340", pages = "337--357, 458--474", pages = "338 -- 346, 250 -- 252, 97", pages = "339--352 (of xvii + 559)", pages = "34 + 16 + 15", pages = "34 + 25", pages = "34 slides (in carousel slide tray) col. 2 x 2 in.", pages = "341 -- 348", pages = "343--348 (or 343--347??)", pages = "347--363 (or 347--364??)", pages = "349--385 and 435--471", pages = "35 + 14", pages = "35 + [80]", pages = "35--62 (of xiv + 644)", pages = "35/1/1--13", pages = "35/2/1--6", pages = "35/4/1--5", pages = "350-353", pages = "354-", pages = "355 -- 358", pages = "357--428 (of ix + 523)", pages = "359, with 9 illustrations", pages = "36 + [4]", pages = "36 microfiche.", pages = "36 slides (in carousel slide tray) col. 2 x 2 in.", pages = "36, 38, 40, 42, 86, 88--89", pages = "36--38, 40, 42--44, 46--47, 50--51", pages = "361, 365", pages = "361--364, 366, 368", pages = "363--366 (of xviii + 654)", pages = "363--394 (??)", pages = "363--8, 370, 372, 374, 376", pages = "364 +", pages = "365 -- 392", pages = "365--375 (or 365--381??)", pages = "369 -- 383", pages = "369--374 (??)", pages = "37 + [31]", pages = "373--377, 385", pages = "375 -- 412", pages = "375--378 (vol. 1)", pages = "375--386, discussion 386--388", pages = "38--42, 44--46, 48--51", pages = "38--45, 77", pages = "381--385, 387", pages = "382 -- 384", pages = "385,386,388,390,392,395", pages = "38a + 1559", pages = "39 + [14]", pages = "39--45, 48--52", pages = "39--84 (of xiii + 444)", pages = "391-", pages = "391--394 (plus microfiche listing)", pages = "395 -- 412", pages = "4 + 2 + 8", pages = "4 + 366", pages = "4 + 5", pages = "4 + [13]", pages = "4 + [2] + 8", pages = "4 + [3]", pages = "4 + [5]", pages = "4 + iv + 216", pages = "4 cassettes + 240 min.", pages = "4 computer disks", pages = "4 program files (IBM--PC) on 3 computer disks", pages = "4 v. in 1", pages = "4 v.", pages = "4.1--4.12", pages = "4.1--4.21", pages = "4/1--6", pages = "4/1--8", pages = "40 +", pages = "40--42, 44--49", pages = "404-408", pages = "4053 -- 4062", pages = "407--422 (of x + 668)", pages = "408 -- 414", pages = "41 + x", pages = "41 -- 72", pages = "41--54 (or 41--47??)", pages = "413--440 (or 413--439??)", pages = "415--440, 517--523", pages = "417--429 (vol. 1)", pages = "418 -- 450", pages = "419-429", pages = "41P", pages = "42 + 8.", pages = "42--46, 54, 57--79", pages = "421--430 (or 421--431??)", pages = "424--436 (or 424--431??)", pages = "425--?", pages = "425ff", pages = "426 +", pages = "428--434 (of xix + 453)", pages = "43, 126", pages = "431 +", pages = "433ff", pages = "434--443 vol.2", pages = "44 + [1]", pages = "44--45, 285", pages = "441 ff.", pages = "445-507", pages = "449--461 vol.2", pages = "45, 116", pages = "450 vol.1", pages = "450--453 (plus microfiche supplement)", pages = "46, 79, 82", pages = "46--47, 286", pages = "463 -- 464", pages = "465 -- 471", pages = "466 + [14]", pages = "467--474 (vol. 1)", pages = "47 -- 66", pages = "473 +", pages = "476 + 88", pages = "479--514 (of 514)", pages = "48 + [2]", pages = "48--49, 287", pages = "48/1/1--8", pages = "48/5/1--7", pages = "481 +", pages = "484--488 vol.1", pages = "486 -- 487", pages = "49 -- 67", pages = "493--1099 + xviii + xvi + xviii", pages = "494, with subject index, author index, and glossary", pages = "5 + 86 [i.e. 89] + 5", pages = "5 + [3]", pages = "5 + [4] + 24", pages = "5 + [4]", pages = "5 + [6] + [1] + [4] + [1]", pages = "5 cubic ft. + 10 panels + and 1 videotape.", pages = "5 v. in 1", pages = "5 v.", pages = "5--9, 36", pages = "5.1--5.29", pages = "5/1--3", pages = "5/1--5/4", pages = "50 + [28]", pages = "50--51, 288", pages = "50--56, 58", pages = "50.", pages = "501--504 vol.2", pages = "503 -- 524", pages = "509--519 (or 509--520??)", pages = "51 + 38", pages = "51 + A--2 + 12", pages = "51 + [78]", pages = "51 -- 89", pages = "51--52, 54, 55", pages = "512 -- 521", pages = "515 +", pages = "519 -- 554", pages = "52, 54--56", pages = "52, 55--56, 58, 90", pages = "52--53, 289", pages = "52--53, 56--58", pages = "53 + [1]", pages = "53 -- 65", pages = "53--142 (of xi + 499)", pages = "53--147 (of ix + 332)", pages = "531 -- 549", pages = "534 -- 544", pages = "535 + 16", pages = "536 -- 539", pages = "54 -- 99", pages = "54--55, 290", pages = "541--555 (of xiv + 644)", pages = "544, with 22 illustrations", pages = "55 + [28]", pages = "55 -- 73", pages = "55, 57, 59", pages = "55, 57--63", pages = "55--62, 64--70", pages = "551 -- 560", pages = "552 -- 563", pages = "556 (v. 1), 1056 (v. 2)", pages = "557--558, 578", pages = "557--558, 594", pages = "56 + 39", pages = "56, 58, 60--61, 101--102", pages = "560 -- 566", pages = "566 o.", pages = "57--58, 61--68, 70--71", pages = "57-63", pages = "570--598 vol.1", pages = "572--578, 585", pages = "576--580 and 583", pages = "58 + [35]", pages = "58, 60, 62, 96, 98, 99", pages = "58--78 (of 196)", pages = "581 -- 595", pages = "59 + 15", pages = "59, 61", pages = "59, 62--64", pages = "59--60, 63--64", pages = "593 -- 608", pages = "598--603, 643", pages = "6 + 379", pages = "6 + A2", pages = "6 + [2]", pages = "6 + [3]", pages = "6 + [6]", pages = "6 cartridges", pages = "6 computer disks guide.", pages = "6 motion pictures. sd. color. super 8 mm.", pages = "6 sound cassettes kit + program coding forms.", pages = "6 v. in 1", pages = "6, 22", pages = "6.", pages = "6.1--6.23", pages = "6/1--6/3", pages = "6/2/1--7", pages = "60--1--??", pages = "60.", pages = "604 -- 621", pages = "604--609 (vol. 2)", pages = "61 -- 94", pages = "619--621 vol.2", pages = "62 + 70", pages = "628-666", pages = "63 + 45", pages = "63 + [51]", pages = "63 -- 94", pages = "63--66, 69--72, 77--78, 80", pages = "64, 69--70", pages = "64--1--??", pages = "641--650 vol.1", pages = "644-653", pages = "645 -- 677", pages = "646--649 (vol. 2)", pages = "649 \& 703", pages = "649, 703", pages = "64NA4--??", pages = "65 -- 88", pages = "65--66, 68--69", pages = "65--68 (or 65--67??)", pages = "653 -- 660", pages = "654--662 (or 654--660??)", pages = "657--658 (vol. 1)", pages = "65H--??", pages = "66 + 12", pages = "66--76, 130--139, 187--196, 246--261", pages = "66--99 (of vi + 335)", pages = "668 -- 675", pages = "67--68, 70", pages = "67--68, 70, 72, 74--77, 79", pages = "67--70, 72, 74, 77--78, 80--81", pages = "67--71, 115--116", pages = "68--80, 98--102", pages = "69 -- 100", pages = "69 -- 88", pages = "691 -- 699", pages = "694 -- 695", pages = "7 + 4 + 12 + 25 + [5]", pages = "7 + 573", pages = "7 + 9 (C source code)", pages = "7 + [24]", pages = "7 + [2]", pages = "7 + [7]", pages = "7 -- 9", pages = "7 computer disks", pages = "7 fasc.", pages = "7 v. in 1", pages = "7 v.in 1", pages = "7, 8, 10, 12, 13, 16", pages = "7.", pages = "7.1--7.18", pages = "7/2/1--5", pages = "7/3/1--9", pages = "7/4/1--3", pages = "70 microfiches", pages = "701 -- 721", pages = "71 -- 95", pages = "71.", pages = "714-736", pages = "718 + 95 + 16", pages = "72 + [6]", pages = "72, 74, 76, 78", pages = "72, 74--75, 86--87", pages = "723--762 (of xix + 762)", pages = "727--?? (or 158--??)", pages = "72IS/11--12", pages = "73 -- 78", pages = "73 -- 90", pages = "73, 210", pages = "73--75, 78, 80--85 and 1", pages = "730--734 vol.2", pages = "731--740, 798", pages = "738 -- 741", pages = "74 -- 86", pages = "742--749, 774", pages = "745 -- 755", pages = "74S--74S", pages = "75--78, 80--82, 84", pages = "75-89", pages = "754--760 (vol. 1)", pages = "76 + 6 + 3", pages = "76--78, 180--188", pages = "762 -- 777", pages = "77 -- 84", pages = "77--78, 80", pages = "773 -- 782", pages = "78 + A34", pages = "78 + [26]", pages = "78 + [2]", pages = "79 + [76]", pages = "793--799, 803", pages = "797 -- 806", pages = "799 -- 806", pages = "8 + 1", pages = "8 + 196", pages = "8 + 223", pages = "8 + 24 + 20", pages = "8 + 4", pages = "8 + A--33", pages = "8 + [10]", pages = "8 + [15]", pages = "8 computer disks", pages = "8 microfiche.", pages = "8 sound cassettes", pages = "8 sound tape reels (354 min.)", pages = "8 videocassettes (ca. 45 min. ea.)", pages = "8, 10--13", pages = "8--9, 11", pages = "8.1--8.24", pages = "80--83, 362", pages = "807 -- 815", pages = "81 -- 95", pages = "81.", pages = "820--835 (or 820--834??)", pages = "820--835 (or 836--855??)", pages = "821 -- 833", pages = "83 -- 108", pages = "831 -- 847", pages = "84 -- 117", pages = "84, 86--89, 96--97", pages = "85 (or 86??)", pages = "85 -- 94", pages = "85--98 (or 85--97??)", pages = "852--873 (or 852--872??)", pages = "86--100 (or 99??)", pages = "86--88, 90, 92, 94, 97", pages = "87 -- 96", pages = "87--98 (or 87--97??)", pages = "88 -- 95", pages = "88--111 (of xii + 404)", pages = "880--884 vol.2", pages = "885--888 (or 887?)", pages = "89--113 (or 89--114??)", pages = "890--897 vol.2", pages = "891--905 (or 903??)", pages = "896--910 (or 896--911??)", pages = "898--902 (vol. 2)", pages = "898--902 vol.2", pages = "8f--??", pages = "9 + 10 + 37", pages = "9 + [15]", pages = "9 + [16]", pages = "9 + [20] + [1]", pages = "9.", pages = "9.1--9.25", pages = "9/1--7", pages = "90 + [1]", pages = "90--99 (or 90--98??)", pages = "91 + 5", pages = "91 +", pages = "91--103 (of ix + 394)", pages = "91--128 (of viii + 248)", pages = "91--98 (of xiii + 623)", pages = "92--105 (or 92--104??)", pages = "93 +", pages = "93--103, 108--110", pages = "94 -- 99", pages = "94--104, 74--93", pages = "95 + 16", pages = "951--963 (vol. 2)", pages = "961 +", pages = "96A--??", pages = "96D--??", pages = "96NA1--??", pages = "97 -- 110", pages = "97--108 (or 97--107??)", pages = "97--123.", pages = "97--99 (or 87--99??)", pages = "98-101", pages = "984--1004, esp.\ 1001--1002", pages = "99 + 8", pages = "99 -- 115", pages = "99--102, 117", pages = "996--1003 (vol. 2)", pages = "?", pages = "??", pages = "??--?? (of 178)", pages = "??--?? (of 514)", pages = "??--?? (of vi + 335)", pages = "??--?? (of xi + 468)", pages = "??--?? (of xiv + 644)", pages = "??--?? (of xv + 1243)", pages = "??--?? (of xvi + 694)", pages = "??--?? (of xviii + 654)", pages = "??--?? (of xxii + 484)", pages = "??--??", pages = "???", pages = "???--122", pages = "????", pages = "????--????", pages = "A--i--A--x, A--1--A--71", pages = "A-1--A-66", pages = "A14", pages = "A14--1--A14--51 + A15--1--A15--6", pages = "A25", pages = "ALL", pages = "AP-14", pages = "AP-15--AP-16", pages = "Appendix A", pages = "Approx 670", pages = "B 6 + II--4", pages = "B--i--B--iii, B--1--B--15", pages = "B121", pages = "B149", pages = "B721-B729", pages = "B97", pages = "C--i--C--iii, C--1--C--28", pages = "C-01--C-??", pages = "C-107--C-??", pages = "C-127--C-??", pages = "C-13--C-??", pages = "C-143--C-??", pages = "C-155--C-??", pages = "C-167--C-??", pages = "C-179--C-??", pages = "C-185--C-??", pages = "C-195--C-??", pages = "C-205--C-??", pages = "C-221--C-??", pages = "C-23--C-??", pages = "C-233--C-??", pages = "C-247--C-??", pages = "C-259--C-??", pages = "C-271--C-??", pages = "C-281--C-??", pages = "C-293--C-??", pages = "C-305--C-??", pages = "C-317--C-??", pages = "C-329--C-??", pages = "C-33--C-??", pages = "C-339--C-??", pages = "C-349--C-??", pages = "C-361--C-??", pages = "C-371--C-??", pages = "C-381--C-??", pages = "C-393--C-??", pages = "C-407--C-??", pages = "C-421--C-??", pages = "C-433--C-??", pages = "C-443--C-??", pages = "C-45--C-??", pages = "C-455--C-??", pages = "C-467--C-??", pages = "C-477--C-??", pages = "C-489--C-??", pages = "C-503--C-??", pages = "C-513--C-??", pages = "C-514--C-??", pages = "C-515--C-??", pages = "C-55--C-??", pages = "C-65--C-??", pages = "C-75--C-??", pages = "C-85--C-??", pages = "C-97--C-??", pages = "C/33--44", pages = "C3", pages = "C3--??", pages = "D--i--D--iii, D--1--D--16", pages = "E--i--E--iv, E--1--E--27", pages = "EL-1--EL-6", pages = "F--i--F--viii, F--1--F--61", pages = "F53 + 1229 + B29", pages = "G--i--G--v, G--1--G--28", pages = "H--i--H--iv, H--1--H--37", pages = "H439--H448", pages = "I", pages = "I--257, I--260", pages = "I--340", pages = "I--57--I--66", pages = "I-30 - I-44", pages = "I-45 - I-57", pages = "I181--5 (vol. 1)", pages = "II--103--II--106", pages = "II--297--II--300", pages = "II--305--II--308", pages = "II--337--II--340", pages = "II-282--II-283", pages = "II-653--II-658", pages = "II:351--II:358", pages = "III--125--III--133", pages = "III--2023", pages = "III--??", pages = "III-197--III-201", pages = "III.29--III.36", pages = "IV--??", pages = "IV-1 to IV-27", pages = "IX + 215", pages = "L115", pages = "L1331--L1337", pages = "L169--L179", pages = "L227-L230", pages = "L383-L388", pages = "L547--L551", pages = "L569-L573", pages = "L819-L823", pages = "LO-93--LO-97", pages = "PM01", pages = "R114--R121", pages = "R2183--R2186", pages = "Ri--Rx, R1--R163", pages = "S-10--S-??", pages = "S-11--S-??", pages = "S-12--S-??", pages = "S-13--S-??", pages = "S-14--S-??", pages = "S-16--S-??", pages = "S-18--S-??", pages = "S-2--S-??", pages = "S-20--S-??", pages = "S-21--S-??", pages = "S-22--S-??", pages = "S-23--S-??", pages = "S-24--S-??", pages = "S-25--S-??", pages = "S-26--S-??", pages = "S-27--S-??", pages = "S-28--S-??", pages = "S-3--S-??", pages = "S-30--S-??", pages = "S-33--S-??", pages = "S-34--S-??", pages = "S-35--S-??", pages = "S-36--S-??", pages = "S-37--S-??", pages = "S-38--S-??", pages = "S-4--S-??", pages = "S-40--S-??", pages = "S-42--S-??", pages = "S-44--S-??", pages = "S-45--S-??", pages = "S-46--S-??", pages = "S-48--S-??", pages = "S-5--S-??", pages = "S-6--S-??", pages = "S-8--S-??", pages = "S1--??", pages = "S1/19--??", pages = "S1/3--S1/17", pages = "S1/35--??", pages = "S1/47--??", pages = "S1/47--S1/61", pages = "S1/63--??", pages = "S1/89--??", pages = "S148--S149", pages = "S2/109--??", pages = "S2/119--??", pages = "S2/137--??", pages = "S2/35--??", pages = "S2/5--??", pages = "S2/69--??", pages = "S2/83--??", pages = "S201--S209", pages = "S435--438", pages = "S539", pages = "S565--569", pages = "ST-134--ST-143", pages = "ST-144", pages = "Sec. 33--4", pages = "Sound cassettes.", pages = "T 532--534", pages = "T11, 1--8", pages = "T141--T143", pages = "T176--T177", pages = "T181--T182", pages = "T182--T184", pages = "T188--T189", pages = "T188--T190", pages = "T190--T191", pages = "T191--T193", pages = "T197--T198", pages = "T202--T204", pages = "T207--T208", pages = "T208--T209", pages = "T217--T218", pages = "T219--T220", pages = "T220--T221", pages = "T221--T223", pages = "T222", pages = "T225--T226", pages = "T229--T230", pages = "T237--T238", pages = "T240--T242", pages = "T262--T263", pages = "T263--T270", pages = "T265--T266", pages = "T270--T272", pages = "T273--T274", pages = "T274--T275", pages = "T275--T277", pages = "T282--T283", pages = "T282--T284", pages = "T284--T286", pages = "T286--T287", pages = "T288--T289", pages = "T290--T292", pages = "T291--T292", pages = "T293--T295", pages = "T294--T295", pages = "T294--T296", pages = "T296--T297", pages = "T301--T304", pages = "T308--T309", pages = "T309-T312", pages = "T311--T313", pages = "T313--T315", pages = "T315--T317", pages = "T319--T320", pages = "T32--T33", pages = "T33", pages = "T33--T35", pages = "T331--T332", pages = "T355--T357", pages = "T379--T381", pages = "T380-T382", pages = "T403--T404", pages = "T404--T405", pages = "T405--T407", pages = "T407--T408", pages = "T408--T410", pages = "T416--T418", pages = "T426--T427", pages = "T428--T429", pages = "T434--T436", pages = "T493--T503", pages = "T494--T495", pages = "T50--T51", pages = "T56", pages = "T59--T60", pages = "T68--T69", pages = "T69", pages = "T69--T71", pages = "T69--T72", pages = "T70--T71", pages = "T71--T73", pages = "T72--T73", pages = "T72--T85", pages = "T76--T79", pages = "T79--T80", pages = "TBD", pages = "VI--73--VI--76", pages = "XIV--113", pages = "[10] + 138", pages = "[11] + 138", pages = "[11].", pages = "[18]", pages = "[1] + 24", pages = "[1] + iii + 61", pages = "[1] + vii + [46]", pages = "[256]", pages = "[2] + 12", pages = "[2] + 16", pages = "[2] + 3 + 248", pages = "[2] + 51 + [1]", pages = "[2]", pages = "[384]", pages = "[3] + 105", pages = "[3] + 152", pages = "[3] + 38", pages = "[3] + 39", pages = "[3] + 63", pages = "[4] + 16 [19]", pages = "[4] + 61", pages = "[5] + 14", pages = "[5] + 152 + 3--44", pages = "[5] + 20", pages = "[5] + 354", pages = "[5] 42 [4]", pages = "[6] + 22 + [2]", pages = "[6] + 25 + [1]", pages = "[6] + 41", pages = "[6] + 59", pages = "[6] + 77", pages = "[6] 182", pages = "[72] + 19 + 12", pages = "[7] + 52", pages = "[7] + 82 + [82]", pages = "[ca. 200]", pages = "[i] + 11", pages = "[ii] + 20", pages = "[iii] + 40", pages = "[v] + 164", pages = "[vi] + 246", pages = "[xiii] + 923", pages = "[xiv] + 144", pages = "b + [4]", pages = "ca. 1 program file (IBM PC) on 1 computer disk", pages = "ca. 160", pages = "ca. 175", pages = "ca. 200", pages = "ca. 250", pages = "ca. 350", pages = "ca. 400", pages = "ca. 89", pages = "d42--??", pages = "i + 109", pages = "i + 12 + [11]", pages = "i + 12", pages = "i + 13", pages = "i + 135", pages = "i + 15", pages = "i + 23", pages = "i + 27", pages = "i + 28", pages = "i + 30", pages = "i + 31", pages = "i + 311", pages = "i + 33", pages = "i + 39", pages = "i + 45", pages = "i + 47 + 67", pages = "i + 48", pages = "i + 58", pages = "i + 60", pages = "i + 61", pages = "i + 82", pages = "i + 92", pages = "i, 1--10", pages = "i, 1--14", pages = "i--ii, 1--315", pages = "ii + 104", pages = "ii + 105", pages = "ii + 115", pages = "ii + 133", pages = "ii + 136", pages = "ii + 139", pages = "ii + 14", pages = "ii + 142", pages = "ii + 15", pages = "ii + 153", pages = "ii + 16 + [3]", pages = "ii + 16", pages = "ii + 17", pages = "ii + 18 + [26]", pages = "ii + 18", pages = "ii + 19", pages = "ii + 20", pages = "ii + 223", pages = "ii + 24", pages = "ii + 25", pages = "ii + 259", pages = "ii + 27", pages = "ii + 28", pages = "ii + 29", pages = "ii + 293", pages = "ii + 31", pages = "ii + 33 + [69]", pages = "ii + 34", pages = "ii + 35", pages = "ii + 36", pages = "ii + 37 + 38", pages = "ii + 37", pages = "ii + 38", pages = "ii + 41", pages = "ii + 42", pages = "ii + 43", pages = "ii + 44", pages = "ii + 45 + [6]", pages = "ii + 46", pages = "ii + 5", pages = "ii + 50", pages = "ii + 52", pages = "ii + 53", pages = "ii + 57", pages = "ii + 61 + [3]", pages = "ii + 61", pages = "ii + 62", pages = "ii + 64", pages = "ii + 65", pages = "ii + 66 + [11]", pages = "ii + 66", pages = "ii + 744", pages = "ii + 91 + [2]", pages = "ii + A--H + 101", pages = "ii + [15]", pages = "ii, 1--9", pages = "ii--??", pages = "iii + 101", pages = "iii + 102", pages = "iii + 103", pages = "iii + 104", pages = "iii + 105", pages = "iii + 106", pages = "iii + 107", pages = "iii + 108", pages = "iii + 112", pages = "iii + 115", pages = "iii + 116", pages = "iii + 12", pages = "iii + 125", pages = "iii + 13", pages = "iii + 130", pages = "iii + 132", pages = "iii + 134", pages = "iii + 14", pages = "iii + 15 + [17]", pages = "iii + 150 + [6]", pages = "iii + 16", pages = "iii + 160", pages = "iii + 171", pages = "iii + 177", pages = "iii + 18", pages = "iii + 180", pages = "iii + 181", pages = "iii + 183", pages = "iii + 19", pages = "iii + 199 + ix", pages = "iii + 20", pages = "iii + 21", pages = "iii + 23", pages = "iii + 24", pages = "iii + 25", pages = "iii + 257", pages = "iii + 26", pages = "iii + 268", pages = "iii + 29", pages = "iii + 30", pages = "iii + 305", pages = "iii + 31", pages = "iii + 314", pages = "iii + 32", pages = "iii + 33", pages = "iii + 34", pages = "iii + 343 + 25", pages = "iii + 343", pages = "iii + 35", pages = "iii + 36", pages = "iii + 39", pages = "iii + 41", pages = "iii + 42", pages = "iii + 425", pages = "iii + 43", pages = "iii + 443", pages = "iii + 45", pages = "iii + 46", pages = "iii + 47", pages = "iii + 49", pages = "iii + 5", pages = "iii + 50", pages = "iii + 51", pages = "iii + 52", pages = "iii + 55", pages = "iii + 57", pages = "iii + 58", pages = "iii + 59", pages = "iii + 6", pages = "iii + 60", pages = "iii + 61", pages = "iii + 62", pages = "iii + 63", pages = "iii + 64", pages = "iii + 65", pages = "iii + 70", pages = "iii + 72", pages = "iii + 75", pages = "iii + 77", pages = "iii + 81", pages = "iii + 82", pages = "iii + 83", pages = "iii + 84", pages = "iii + 89", pages = "iii + 9, A-85", pages = "iii + 90", pages = "iii + 93.", pages = "iii + 94", pages = "iii + 99", pages = "iii + [152]", pages = "iii + [93]", pages = "iii", pages = "iii, 1--56", pages = "iii, 212", pages = "iii--iii", pages = "iii--v", pages = "iii--x + 263", pages = "iv + 100", pages = "iv + 101", pages = "iv + 102", pages = "iv + 103", pages = "iv + 105", pages = "iv + 106", pages = "iv + 107", pages = "iv + 108", pages = "iv + 109", pages = "iv + 110", pages = "iv + 116", pages = "iv + 117", pages = "iv + 120", pages = "iv + 124", pages = "iv + 125", pages = "iv + 127", pages = "iv + 128", pages = "iv + 129", pages = "iv + 130", pages = "iv + 131", pages = "iv + 132", pages = "iv + 136", pages = "iv + 139", pages = "iv + 15", pages = "iv + 150", pages = "iv + 153", pages = "iv + 156", pages = "iv + 158", pages = "iv + 165", pages = "iv + 167", pages = "iv + 168", pages = "iv + 17 + [1]", pages = "iv + 17", pages = "iv + 171", pages = "iv + 173", pages = "iv + 174", pages = "iv + 178", pages = "iv + 188", pages = "iv + 19 + 11 + [66]", pages = "iv + 19", pages = "iv + 192", pages = "iv + 197", pages = "iv + 198", pages = "iv + 20 + 22 + 25", pages = "iv + 20", pages = "iv + 200", pages = "iv + 201", pages = "iv + 203", pages = "iv + 207", pages = "iv + 208", pages = "iv + 215", pages = "iv + 218", pages = "iv + 22", pages = "iv + 227", pages = "iv + 23 + [18]", pages = "iv + 230", pages = "iv + 24", pages = "iv + 246", pages = "iv + 25", pages = "iv + 252", pages = "iv + 255", pages = "iv + 269", pages = "iv + 270", pages = "iv + 28 + [1]", pages = "iv + 28", pages = "iv + 286", pages = "iv + 29", pages = "iv + 30", pages = "iv + 300", pages = "iv + 31", pages = "iv + 33", pages = "iv + 34", pages = "iv + 353", pages = "iv + 359", pages = "iv + 36", pages = "iv + 38", pages = "iv + 383", pages = "iv + 397", pages = "iv + 4 + 184", pages = "iv + 40", pages = "iv + 403", pages = "iv + 426", pages = "iv + 45", pages = "iv + 456", pages = "iv + 48", pages = "iv + 489", pages = "iv + 49", pages = "iv + 492", pages = "iv + 50", pages = "iv + 509", pages = "iv + 51", pages = "iv + 52", pages = "iv + 53", pages = "iv + 54", pages = "iv + 548", pages = "iv + 55", pages = "iv + 56", pages = "iv + 59", pages = "iv + 6 + 22 + 30", pages = "iv + 61", pages = "iv + 63", pages = "iv + 64", pages = "iv + 64.", pages = "iv + 65", pages = "iv + 67", pages = "iv + 68", pages = "iv + 7", pages = "iv + 70", pages = "iv + 73 [i.e. 165]", pages = "iv + 73", pages = "iv + 74", pages = "iv + 76", pages = "iv + 77 + [1]", pages = "iv + 77", pages = "iv + 79", pages = "iv + 79.", pages = "iv + 82", pages = "iv + 83", pages = "iv + 84", pages = "iv + 85", pages = "iv + 86", pages = "iv + 90", pages = "iv + 91", pages = "iv + 93", pages = "iv + 95", pages = "iv + 96", pages = "iv + 99", pages = "iv+86", pages = "iv, 1--88", pages = "iv, 101--126, 201--239, 301--380, 401--441", pages = "ix + 101", pages = "ix + 160 + [7] + [64]", pages = "ix + 168 l", pages = "ix + 171", pages = "ix + 187 + 3 appendices", pages = "ix + 194 + 68", pages = "ix + 663", pages = "ix + 664 + [53]", pages = "ix + 67", pages = "ix + 99", pages = "ix + [171]", pages = "ix + [234]", pages = "ix + iv + 429", pages = "ix", pages = "ix--xxi", pages = "l + 273", pages = "l v.", pages = "lvi + 1405", pages = "lviii + 1387", pages = "lviii + 1540", pages = "lviii + 2034", pages = "lxv + 644", pages = "lxxi + 719", pages = "lxxiv + 790", pages = "program files (IBM PC) on 1 computer disk manual.", pages = "s118-s138", pages = "s139--s154", pages = "s139-s154", pages = "s14-s26", pages = "s155--s165", pages = "s155-s165", pages = "s166--s202", pages = "s166-s202", pages = "s2--s13", pages = "s2-s13", pages = "s203-s219", pages = "s220--s226", pages = "s220-s226", pages = "s227--s287", pages = "s227-s287", pages = "s27-s42", pages = "s43-s58", pages = "s59-s72", pages = "s73-s95", pages = "s96-s117", pages = "to appear", pages = "to be published", pages = "v + 104", pages = "v + 105", pages = "v + 112", pages = "v + 1152 + [80] (doubled--up)", pages = "v + 117", pages = "v + 29", pages = "v + 308 + x", pages = "v + 491 + ii + 97 + ii + 107 + 12", pages = "v + 60 + 3", pages = "v + 60 + [19]", pages = "v + 60 + [23]", pages = "v + 60 + [24]", pages = "v + 60", pages = "v + 61 + 7", pages = "v + 81 + [34]", pages = "v + [285]", pages = "v + [338]", pages = "v", pages = "v, 1--51", pages = "v, 1--85", pages = "v--vi", pages = "v. <1--2 >", pages = "v.", pages = "various (??)", pages = "various", pages = "vi + 100", pages = "vi + 1152 + [79]", pages = "vi + 1152 columns", pages = "vi + 1232 + [75] (doubled--up)", pages = "vi + 1232 + [75]", pages = "vi + 136", pages = "vi + 136--341", pages = "vi + 228 + 1", pages = "vi + 448", pages = "vi + 45 + 1", pages = "vi + 50 + 10", pages = "vi + 53[1]", pages = "vi + 64.", pages = "vi + 65 + [2]", pages = "vi + 65", pages = "vi + 658", pages = "vi + 66 + [45] + [1]", pages = "vi + [124]", pages = "vi + [25]", pages = "vii + 1232 columns", pages = "vii + 2--154", pages = "vii + 217 + 16 [i.e. 17]", pages = "vii + 282 + [113]", pages = "vii + 357 + xvi", pages = "vii + 9 + [3] + 1", pages = "vii + 96", pages = "vii + 97 l", pages = "vii + I--59", pages = "vii + [100]", pages = "vii + [111]", pages = "vii + [192]", pages = "vii + [200]", pages = "vii + [various]", pages = "vii", pages = "vii--??", pages = "viii + 100", pages = "viii + 12 + 794 + [173]", pages = "viii + 191 + [52]", pages = "viii + 216 + 43", pages = "viii + 216 + iii + 43", pages = "viii + 216", pages = "viii + 36 + 9", pages = "viii + 36", pages = "viii + 98", pages = "viii + [125]", pages = "viii + [181]", pages = "x + 100", pages = "x + 125.", pages = "x + 198 + 48 + 6", pages = "x + 48 + [25]", pages = "x + 492 (A1--A18 and B1--B14 and I1--I19)", pages = "x + 492 + A22 + B16 + I18", pages = "x + 492 + appendices", pages = "x + 92 + [1]", pages = "x + [241]", pages = "x+235", pages = "x+578", pages = "xi + 108", pages = "xi + 201 + 105", pages = "xi + 45 + 201 + 105", pages = "xi + 450", pages = "xi + 669", pages = "xi + 679 + 36 + 7", pages = "xi", pages = "xi--xii", pages = "xi--xvi", pages = "xii + 100", pages = "xii + 1084 + 12", pages = "xii + 152 + [91]", pages = "xii + 157 + [2]", pages = "xii + 162 + 97", pages = "xii + 377 + 23", pages = "xii + 384 + [55]", pages = "xii + 385", pages = "xii + 387", pages = "xii + 389 + 76 + 16", pages = "xii + 408 + [5]", pages = "xii + 460 + [6]", pages = "xii + 522 (or xii + 514??)", pages = "xii + 538 + 57", pages = "xii + 607 + A18 + B16 + I18", pages = "xii+241", pages = "xiii + 423 + 33 + 3", pages = "xiii + 457, with 230 illustrations", pages = "xiii + 464 + 10", pages = "xiii", pages = "xiii, 320", pages = "xiii, 555", pages = "xiv + 383 + 4", pages = "xiv + 432 + 8", pages = "xiv + 518 + 9", pages = "xix + 1041 + iv", pages = "xix + 310 (or xv + 377)", pages = "xix + 525 + 52 pages back matter", pages = "xv + 118 + listings", pages = "xv + 199 + 8", pages = "xv + 527 + 4", pages = "xv + 534 + 117 + [41]", pages = "xvi + 102 + 6", pages = "xvi + 404 + [68]", pages = "xvi + 570 + Appendix + Index", pages = "xvi + 595 (or xix + 861??)", pages = "xvi + 637 + 67 + 7", pages = "xvi + 984, with 686 illustrations, 40 in color", pages = "xvi + x + 390", pages = "xvii + 254 + 12", pages = "xviii + 568 + 92", pages = "xviii + [265]", pages = "xx + 1241 + 1", pages = "xx + 1269 + 5", pages = "xx + 525 [63]", pages = "xx + 793 ", pages = "xxi + 567 + [4]", pages = "xxi + 640 + [30]", pages = "xxi + 666 + 119", pages = "xxii + 416 + 6", pages = "xxiii + 491 + 509 + 502", pages = "xxiv + 648 + appendices", pages = "xxvi + 438 + A182 + B62 + C6 + D4 + E4", pages = "xxvi + 779 + Appendix + Index", pages = "xxvii + 797 + vii", pages = "xxvii", pages = "xxviii + 594 + appendices", pages = "xxviii + 638 + [169]", pages = "xxxvii + 23 + 2154", pages = {154--165}, pages = {1973--1986}, pages = {3--29}, pages = {360--361}, pages = {491-496}, pages = {937--940}, pages = " 24 -- 85", pages = " 356-372", pages = "", pages = "(1--29)-(1--58)", pages = "(1--59)-(1--113)", pages = "(to appear)", pages = "(various)", pages = "0-12-696201-4", pages = "1 + 22", pages = "1 -- 10", pages = "1 -- 11", pages = "1 -- 17", pages = "1 -- 22", pages = "1 -- 40", pages = "1 -- 6", pages = "1 -- 62", pages = "1 -- 7", pages = "1 -- 74, ", pages = "1 -- 8", pages = "1 card", pages = "1 cassette.", pages = "1 computer disk", pages = "1 microfiche", pages = "1 program file (IBM PC) on 2 computer disks manuals.", pages = "1 program file (IBM--PC) on 1 computer disk manual.", pages = "1 program file on 6 computer disks", pages = "1 reel + 5 min.", pages = "1 reel + 6 min.", pages = "1 reel + 7 min.", pages = "1 reel + 8 min.", pages = "1 reel + ca. 20 min.", pages = "1 roll. guide.", pages = "1 v", pages = "1 v. (various paging) 29 cm.", pages = "1 v. (various pagings)", pages = "1 v. disks (5 1/4 in.)", pages = "1 video cassette + 25 min. b and w.", pages = "1 videocassette (13 min.)", pages = "1 videocassette (32 min.)", pages = "1, 113", pages = "1, 141", pages = "1, 16", pages = "1, 17", pages = "1, 3--13, 16--19", pages = "1, 3--4, 6", pages = "1, 4, 13", pages = "1--10 (of xii + 323)", pages = "1--13 (of x + 787)", volume = "", volume = "(Fourth Series) 1", volume = "(to appear)", volume = "0", volume = "01", volume = "02", volume = "07", volume = "09", volume = "1 (1837--1853)", volume = "1", volume = "1(4)", volume = "1.2", volume = "1/1977", volume = "1/2", volume = "10", volume = "10, 11", volume = "10-11", volume = "100", volume = "109A", volume = "11 and 12", volume = "11, 4", volume = "11, 9", volume = "113-C", volume = "114/115", volume = "116A", volume = "11D", volume = "12 and 13", volume = "12, 1", volume = "12/13", volume = "122/3/4", volume = "1259-V", volume = "127A", volume = "12A", volume = "13, 14", volume = "13, 2", volume = "13, 4", volume = "134, No. 2", volume = "135B", volume = "14 (or 9?)", volume = "14--15", volume = "140B", volume = "148B", volume = "15 (1-2)", volume = "15, 2", volume = "15.1", volume = "15.3", volume = "152/153", volume = "154-156", volume = "161B", volume = "162--164", volume = "162-164", volume = "167B", volume = "16S", volume = "17, no. 3", volume = "18 Supl", volume = "18, 4", volume = "18/19", volume = "183, 292", volume = "185, 186", volume = "18\slash 19", volume = "19, 1", volume = "19, 3", volume = "19, No. 3", volume = "19. Jahrg.", volume = "19/20", volume = "197/198", volume = "1984/24", volume = "1S", volume = "2(4)", volume = "2. Anwendungen", volume = "2/85", volume = "20 (or 19??)", volume = "20 B", volume = "20, 23, 25", volume = "20/21", volume = "203, 204", volume = "208/209", volume = "21, 2", volume = "21, Supplement 6", volume = "212/213", volume = "217A", volume = "22 B", volume = "221 (or 213??)", volume = "23(9)", volume = "2304-16", volume = "239/240", volume = "24, 3", volume = "24, no. 9", volume = "249, 250", volume = "25 (or 26??)", volume = "254, 255", volume = "258, 259", volume = "26 (or 25??)", volume = "26, 2", volume = "26.4", volume = "26A", volume = "26B", volume = "27, no. 12", volume = "27S", volume = "298, Series III", volume = "299/300", volume = "2S", volume = "3, 2", volume = "3, 4", volume = "3--4", volume = "3. Algorithms and applications", volume = "3/1975", volume = "3/1979", volume = "3/4", volume = "30--31", volume = "307/308", volume = "32, no. 2", volume = "32-1", volume = "32-2", volume = "33,34", volume = "35-37", volume = "351, 352", volume = "36 (or 38??)", volume = "36, no. 12", volume = "365, 366", volume = "37??", volume = "37A", volume = "38A", volume = "39B", volume = "3M", volume = "3S", volume = "4 (No. 1)", volume = "4 (or 11??)", volume = "40, 41", volume = "40--41", volume = "40A", volume = "41, 4", volume = "41, pt. 1", volume = "41B", volume = "42A", volume = "44A", volume = "46--47", volume = "47.1 - 47.7", volume = "475A", volume = "47A", volume = "4M", volume = "5 (1976)", volume = "5 (??)", volume = "5, 1", volume = "5, Numerical Methods in Thermal Problems", volume = "50, Pt. 4", volume = "505, 506", volume = "52/53", volume = "54/55", volume = "551, 552", volume = "55B", volume = "56A", volume = "5S", volume = "6 (No. 3)", volume = "62--63", volume = "62A", volume = "63(4)", volume = "634-677", volume = "63:207", volume = "63A", volume = "6A", volume = "6B", volume = "6S", volume = "70, no. 6", volume = "71B", volume = "728-P", volume = "74b", volume = "76-3", volume = "78--257", volume = "78/9", volume = "79-1458", volume = "7A", volume = "7B", volume = "800, 801", volume = "81--1025", volume = "81--1027", volume = "81--1245", volume = "81-1028", volume = "81-1259", volume = "81/6", volume = "81A", volume = "82--0931", volume = "82--0976", volume = "82/1", volume = "83--0034", volume = "83--0124", volume = "83--1885", volume = "83--1896", volume = "83--1945", volume = "83-1893", volume = "83A", volume = "84-0093", volume = "85--0017", volume = "85--0295", volume = "85--1493--CP", volume = "85--1500", volume = "85--1523CP", volume = "85-0293", volume = "85-1508-CP", volume = "85A", volume = "86--1063", volume = "86--1081", volume = "86/87", volume = "87--0275", volume = "87--0353", volume = "87--0560", volume = "87--0602", volume = "87--1152 CP", volume = "87--2627--CP", volume = "88--0224", volume = "88--0715", volume = "88-1997 CP", volume = "88/89", volume = "89--0121", volume = "89--0274", volume = "89--0338", volume = "89--0548", volume = "89-1791", volume = "89-1949", volume = "89-1953", volume = "89/2", volume = "91--1572", volume = "91--1596", volume = "91-101", volume = "92--0449", volume = "93--0677", volume = "93-0236", volume = "93B", volume = "95/2", volume = "96A", volume = "99B", volume = "??", volume = "????", volume = "A 248", volume = "A 323", volume = "A", volume = "A(2)", volume = "A-12", volume = "A-2", volume = "A-48", volume = "A-52", volume = "A12", volume = "A128", volume = "A14", volume = "A15", volume = "A16", volume = "A20", volume = "A258", volume = "A298", volume = "A39", volume = "A405", volume = "A: Tutorials", volume = "AC-16", volume = "AC-22", volume = "AC-23", volume = "AC-24", volume = "AC-25", volume = "AC-26", volume = "AC-27", volume = "AC-28", volume = "AC-29", volume = "AC-30", volume = "AC-32", volume = "AC-33", volume = "AC-34", volume = "AC-35", volume = "AC-36", volume = "AC-37", volume = "AC-39", volume = "AC-??", volume = "AES 24", volume = "AES-11", volume = "AES-12", volume = "AES-22", volume = "AES-23", volume = "AES-5", volume = "AMD vo. 86", volume = "AP-24", volume = "AP-33", volume = "AP-34", volume = "ASSP-24", volume = "ASSP-27", volume = "ASSP-28", volume = "ASSP-29", volume = "ASSP-31", volume = "ASSP-32", volume = "ASSP-34", volume = "ASSP-35", volume = "ASSP-36", volume = "ASSP-37", volume = "Annual Conference Series, 1995", volume = "B", volume = "B-10", volume = "B1", volume = "B177", volume = "B207", volume = "B28", volume = "B288", volume = "B329", volume = "B354", volume = "B368", volume = "B374", volume = "B376", volume = "B380", volume = "B401", volume = "B7", volume = "B84", volume = "B: Formal Models and Semantics", volume = "C", volume = "C--22", volume = "C--35", volume = "C--36", volume = "C-17", volume = "C-18", volume = "C-19", volume = "C-20", volume = "C-22", volume = "C-23", volume = "C-24", volume = "C-25", volume = "C-26", volume = "C-27", volume = "C-28", volume = "C-29", volume = "C-30", volume = "C-31", volume = "C-32", volume = "C-33", volume = "C-34", volume = "C-35", volume = "C-36", volume = "C-37", volume = "C-39", volume = "C-40", volume = "C25", volume = "C26", volume = "CAD-1", volume = "CAD-4", volume = "CAS--28", volume = "CAS-26", volume = "CAS-34", volume = "CE-29", volume = "COM-30", volume = "COM-31", volume = "CP 3224", volume = "CXXIV", volume = "D", volume = "D40", volume = "E", volume = "E74", volume = "E75-A", volume = "E76--D", volume = "E77-A", volume = "EC-11", volume = "EC-13", volume = "EC-14", volume = "EC-8", volume = "ED--30, 9", volume = "ED-30", volume = "EWS-10", volume = "F51", volume = "F55", volume = "F70", volume = "FIPS 152", volume = "GE-22", volume = "H6", volume = "I 301", volume = "I", volume = "I, Architecture", volume = "I, Univariate Series", volume = "I: Finite Difference Methods---Solution of Equations", volume = "IEEE Computer Society Order Number 655", volume = "II --- Software", volume = "II", volume = "II, Multivariate Series, Prediction and Control", volume = "II, Software", volume = "II: Matrix Theory and Analysis", volume = "III", volume = "III, Algorithms \& Applications", volume = "III: Hearing Disorders", volume = "IT-17", volume = "IT-18", volume = "IT-31", volume = "IT-32", volume = "IV (XIII)", volume = "IV", volume = "IX", volume = "In press.", volume = "J67D", volume = "J68D", volume = "J76D-II", volume = "J77-A", volume = "LVI", volume = "LXVIII", volume = "LXX", volume = "Libraries", volume = "NS-30", volume = "New Series Number 53", volume = "PAMI--10(4)", volume = "PAMI-6", volume = "PAMI-9", volume = "PC-15", volume = "PC-16", volume = "PC-18", volume = "PC-20", volume = "PC-23", volume = "PC-24", volume = "PC-27", volume = "PC-29", volume = "PC-30", volume = "PC-32", volume = "Pt. E", volume = "R-29", volume = "R-32", volume = "R-34", volume = "RC 12794 (\#57573)", volume = "S-2", volume = "S10", volume = "S13", volume = "S7", volume = "S8", volume = "S9", volume = "SC-17", volume = "SC-19", volume = "SCD User document version 1.2", volume = "SE-10", volume = "SE-11", volume = "SE-12", volume = "SE-13", volume = "SE-16", volume = "SE-2", volume = "SE-3", volume = "SE-5", volume = "SE-7", volume = "SE-8", volume = "SE-9", volume = "SMC-14", volume = "SP-1128", volume = "SPE 7687", volume = "SPIE Vol. 1360", volume = "SPIE Vol. 2186", volume = "Ser. I, 295", volume = "Ser. I, 296", volume = "Ser. I, 298", volume = "Special issue A", volume = "Special issue B", volume = "Special issue D", volume = "Special issue E", volume = "Special issue", volume = "Suppl. 2", volume = "Suppl. XIII", volume = "Suppl.", volume = "TBD", volume = "To appear", volume = "UCP-19", volume = "UMINF", volume = "V", volume = "V, {Design of Computers, Theory of Automata}", volume = "VI", volume = "VII", volume = "VIII", volume = "Vol.2", volume = "Vol.81", volume = "Volume 91, Issue 16", volume = "X", volume = "XIV", volume = "XLI", volume = "XLVIII", volume = "XXI", volume = "XXIII", volume = "XXV", volume = "XXVIII", volume = "XXXV", volume = "c-21", volume = "n. 15", volume = "one", volume = "t. 306, S{\/e}rie I", volume = "t. 309, S{\/e}rie I", volume = "t. 315, Serie I", volume = "two", volume = "{19-20}", volume = "{ASSP-35}", volume = "{ASSP-37}", volume = "{Heft 2}", volume = "{II}/13", volume = "{I}", volume = "{Reihe VI, Band 30}", volume = "{\em 16}", volume = "{\noopsort{1986a}}A", year = " 1988", year = "", year = "(submitted)", year = "1190", year = "1785", year = "1837", year = "1840", year = "1841", year = "1846", year = "1850", year = "1851", year = "1854", year = "1859", year = "1869", year = "1870", year = "1873", year = "1874", year = "1881", year = "1884", year = "1890", year = "1894", year = "1896", year = "1897", year = "19", year = "19..(?)", year = "1901", year = "1902", year = "1904", year = "1908", year = "1909", year = "1911", year = "1914", year = "1916", year = "1917", year = "1918", year = "1922", year = "1923", year = "1924", year = "1925", year = "1927", year = "1929", year = "1930", year = "1931", year = "1932", year = "1933", year = "1934", year = "1935", year = "1936", year = "1937", year = "1938", year = "1939", year = "1940", year = "1941", year = "1942", year = "1943", year = "1944", year = "1945", year = "1946", year = "1947", year = "1948", year = "1949", year = "1949, 1951, 1969", year = "1949, 1951, 1970", year = "1950", year = "1951", year = "1952", year = "1953", year = "1954", year = "1955", year = "1956", year = "1957", year = "1958", year = "1959", year = "1960 (or 1969??)", year = "1960", year = "1961", year = "1961, 1962", year = "1962", year = "1963", year = "1964 (or 1967??)", year = "1964", year = "1965", year = "1966 (or 1960??)", year = "1966", year = "1967", year = "1967/1968", year = "1968 (??)", year = "1968", year = "1969 (??)", year = "1969 (vol. 2)", year = "1969", year = "1969, 1979", year = "1970 (??)", year = "1970 (or 1975??)", year = "1970 (or 1978??)", year = "1970 (or 1979??)", year = "1970", year = "1970--1971", year = "1970/71", year = "1971", year = "1971--1972", year = "1972", year = "1972--1973", year = "1972{\noopsort{a}}", year = "1972{\noopsort{b}}", year = "1973", year = "1973--1981", year = "1973\noopsort{a}", year = "1974", year = "1975 (??)", year = "1975", year = "1976", year = "1976, 1982, 1983", year = "1976/1977", year = "1977 and 1978", year = "1977", year = "1978", year = "1979", year = "1979, 1980", year = "1979/1980", year = "197x", year = "1980 (or 1984??)", year = "1980 (or 1987??)", year = "1980 (or 1988??)", year = "1980", year = "1981 (??)", year = "1981", year = "1981, 1983", year = "1981, 1984, 1989", year = "1982 (??)", year = "1982", year = "1983 (??)", year = "1983", year = "1984", year = "1984--1993", year = "1984-1993", year = "1984/85", year = "1985", year = "1985/86", year = "1985?", year = "1986 (??)", year = "1986 (summer)", year = "1986", year = "1986/87", year = "1987 (??)", year = "1987" # "\unskip--", year = "1987", year = "1987--date{}", year = "1987-88", year = "1987/88", year = "1988 (??)", year = "1988 (summer)", year = "1988" # "\unskip--", year = "1988", year = "1988--1989", year = "1988-89", year = "1988/1990", year = "1989" # "\unskip--", year = "1989", year = "1989--date{}", year = "1989--present", year = "198?", year = "198x", year = "1990", year = "1990, 12 Juni", year = "1990--1991", year = "1990/91", year = "1990?", year = "1991 (to appear)", year = "1991", year = "1991--2", year = "1991-2", year = "1991/1992", year = "1991/92", year = "1992 (??)", year = "1992", year = "1992-93", year = "1993", year = "1993?", year = "1994 (invited)", year = "1994", year = "1994--", year = "1994--1995", year = "1995 (??)", year = "1995 (in press)", year = "1995 (invited)", year = "1995 (to appear)", year = "1995", year = "1996", year = "1997", year = "1998", year = "199x", year = "19xx", year = "83", year = "??", year = "????", year = "In progress.", year = "March 20 -- 23, 1989", year = "Spring 1985", year = "TBD", year = "To appear", year = "To appear", year = "\noopsort{1996}", year = "in preparation", year = "in print", year = "in progress", year = "submitted", year = "{\noopsort{1968a}}1968", year = "{\noopsort{1968b}}1973", year = "{\noopsort{1968c}}1969", year = "{\noopsort{1972a}}1972", year = "{\noopsort{1972b}}1973", year = "{\noopsort{1985a}}1985", year = "{\noopsort{1985b}}1985", year = "{\noopsort{1986a}}1986", year = "{\noopsort{1986b}}1986", year = "{\noopsort{1986c}}1986", year = "{\noopsort{1986d}}1986", year = "{\noopsort{1986e}}1986", year = "{\noopsort{1992a}}1992", year = "{\noopsort{1992b}}1992", year = "{\noopsort{1992c}}1992", year = "{\noopsort{1992d}}1992", year = "{\noopsort{a}}1978", year = "{\noopsort{a}}1987", year = "{\noopsort{a}}1988", year = "{\noopsort{a}}1990", year = "{\noopsort{a}}1991", year = "{\noopsort{b}}1978", year = "{\noopsort{b}}1987", year = "{\noopsort{b}}1988", year = "{\noopsort{b}}1990", year = "{\noopsort{b}}1991", bibclean-3.07/test/topt367.opt0000444000156700015670000000001112470142160015020 0ustar beebebeebe--scribe bibclean-3.07/test/testopta.opt0000444000156700015670000000004407342756737015472 0ustar beebebeebe-no-read-init-files -print-patterns bibclean-3.07/test/topt139.bib0000444000156700015670000000000012470142231014744 0ustar beebebeebebibclean-3.07/test/topt154.opt0000444000156700015670000000003012470142073015016 0ustar beebebeebe-no-remove-OPT-prefixes bibclean-3.07/test/testoptf.opt0000444000156700015670000000001407342757015015462 0ustar beebebeebe-no-print-k bibclean-3.07/test/topt153.opt0000444000156700015670000000002412470142073015020 0ustar beebebeebe-no-read-init-files bibclean-3.07/test/topt371.bib0000664000156700015670000000000012663425702014761 0ustar beebebeebebibclean-3.07/test/topt142.bib0000444000156700015670000000000012470142231014736 0ustar beebebeebebibclean-3.07/test/topt360.opt0000444000156700015670000000001612470142160015016 0ustar beebebeebe--prettyprint bibclean-3.07/test/testopth.opt0000444000156700015670000000001407342757042015464 0ustar beebebeebe-no-print-p bibclean-3.07/test/topt130.bib0000444000156700015670000000000012470142230014732 0ustar beebebeebebibclean-3.07/test/topt312.opt0000444000156700015670000000002612470142160015014 0ustar beebebeebe--error-log /dev/null bibclean-3.07/test/topt121.opt0000444000156700015670000000002512470142073015014 0ustar beebebeebe-init-file /dev/null bibclean-3.07/test/topt303.bib0000444000156700015670000000000012470142231014735 0ustar beebebeebebibclean-3.07/test/topt126.opt0000444000156700015670000000002412470142073015020 0ustar beebebeebe-keep-string-spaces bibclean-3.07/test/topt304.bib0000444000156700015670000000000012470142231014736 0ustar beebebeebebibclean-3.07/test/topt369.opt0000444000156700015670000000001312470142160015024 0ustar beebebeebe--warnings bibclean-3.07/test/topt137.bib0000444000156700015670000000000012470142231014742 0ustar beebebeebebibclean-3.07/test/testopto.opt0000444000156700015670000000001212071104441015451 0ustar beebebeebe-fix-math bibclean-3.07/test/topt315.opt0000444000156700015670000000001512470142160015015 0ustar beebebeebe--fix-braces bibclean-3.07/test/topt321.bib0000444000156700015670000000000012470142231014735 0ustar beebebeebebibclean-3.07/test/topt103.opt0000444000156700015670000000002512470142073015014 0ustar beebebeebe-ISBN-file /dev/null bibclean-3.07/test/testopt2.bib0000444000156700015670000000000007342756043015323 0ustar beebebeebebibclean-3.07/test/topt330.opt0000444000156700015670000000002212470142160015010 0ustar beebebeebe--no-align-equals bibclean-3.07/test/testoptu.bib0000444000156700015670000001725412112150033015423 0ustar beebebeebe@Misc{Blow:2013:Ea, author = "Joe Blow", title = "{O($^3$P) $+$ CH$_3$SH} reactions", expect = "{O($^3$P) $+$ CH$_3$SH} reactions", year = "2013", } @Misc{Blow:2013:Eb, author = "Joe Blow", title = "The {ENIAC}'s 1949 Determination of $\pi$", expect = "The {ENIAC}'s 1949 Determination of $ \pi $", year = "2013", } @Misc{Blow:2013:Ec, author = "Joe Blow", title = "A Course in the Geometry of $n$-Dimensions", expect = "A Course in the Geometry of $n$-Dimensions", year = "2013", } @Misc{Blow:2013:Ed, author = "Joe Blow", title = "Compression of {$3$D} Points", expect = "Compression of {$3$D} Points", year = "2013", } @Misc{Blow:2013:Ee, author = "Joe Blow", title = "{P$^2$SNR}: Perceptual Full-Reference Image Quality Assessment for {JPEG2000}", expect = "{P$^2$SNR}: Perceptual Full-Reference Image Quality Assessment for {JPEG2000}", year = "2013", } @Misc{Blow:2013:Ef, author = "Joe Blow", title = "The \$10 bet", expect = "The \$10 bet", year = "2013", } @Misc{Blow:2013:Eg, author = "Joe Blow", title = "{$P_0$}-Matrix Products of Matrices", expect = "{$ P_0 $}-Matrix Products of Matrices", year = "2013", } @Misc{Blow:2013:Eh, author = "Joe Blow", title = "Atomic Intentions in {Jason$^+$}", expect = "Atomic Intentions in {Jason$^+$}", year = "2013", } @Misc{Blow:2013:Ei, author = "Joe Blow", title = "{GENote} v. $\beta$: a {Web} Tool Prototype", expect = "{GENote} v. $ \beta $: a {Web} Tool Prototype", year = "2013", } @Misc{Blow:2013:Ej, author = "Joe Blow", title = "{Polyakov} Action on {$(\rho,G)$}-Functions", expect = "{Polyakov} Action on {$ (\rho, G) $}-Functions", year = "2013", } @Misc{Blow:2013:Ek, author = "Joe Blow", title = "A New Class of $\epsilon$-Optimal Learning Automata", expect = "A New Class of $ \epsilon $-Optimal Learning Automata", year = "2013", } @Misc{Blow:2013:El, author = "Joe Blow", title = "Example of {$R$} Functions Management", expect = "Example of {$R$} Functions Management", year = "2013", } @Misc{Blow:2013:Em, author = "Joe Blow", title = "{$H_\infty$} Output Tracking Control", expect = "{$ H_\infty $} Output Tracking Control", year = "2013", } @Misc{Blow:2013:En, author = "Joe Blow", title = "Ameliorating {${\rm GM}(1,1)$} Model", expect = "Ameliorating {$ {\rm GM}(1, 1) $} Model", year = "2013", } @Misc{Blow:2013:Eo, author = "Joe Blow", title = "$\sqrt{3}$-Based 1-Form Subdivision", expect = "$ \sqrt {3} $-Based 1-Form Subdivision", year = "2013", } @Misc{Blow:2013:Ep, author = "Joe Blow", title = "Symmetric $\alpha$-stable distributions for $q > 1$", expect = "Symmetric $ \alpha $-stable distributions for $ q > 1 $", year = "2013", } @Misc{Blow:2013:Eq, author = "Joe Blow", title = "{Dirac} spin-$1/2$ particles", expect = "{Dirac} spin-$ 1 / 2 $ particles", year = "2013", } @Misc{Blow:2013:Er, author = "Joe Blow", title = "The $\beta\gamma$-system, and $V_4$ of {${\rm sl}(2,\mathbb{C})$}", expect = "The $ \beta \gamma $-system, and {$ V_4 $} of {$ {\rm sl}(2, \mathbb {C}) $}", year = "2013", } @Misc{Blow:2013:Es, author = "Joe Blow", title = "The $\Phi^{2k}$ theory", expect = "The {$ \Phi^{2k} $} theory", year = "2013", } @Misc{Blow:2013:Et, author = "Joe Blow", title = "The $\chi^2$ test", expect = "The $ \chi^2 $ test", year = "2013", } @Misc{Blow:2013:Eu, author = "Joe Blow", title = "The $A, D, E$ family", expect = "The {$ A, D, E $} family", year = "2013", } @Misc{Blow:2013:Ev, author = "Joe Blow", title = "{${\rm SU}(6)\supset{\rm SU}(3)\otimes{\rm SU}(2)$} and {${\rm SU}(8)\supset{\rm SU}(4)\otimes{\rm SU}(2)$} {Clebsch--Gordan} coefficients", expect = "{$ {\rm SU}(6) \supset {\rm SU}(3) \otimes {\rm SU}(2) $} and {$ {\rm SU}(8) \supset {\rm SU}(4) \otimes {\rm SU}(2)$} {Clebsch--Gordan} coefficients", year = "2013", } @Misc{Blow:2013:Ey, author = "Joe Blow", title = "Unconfined $-a/r+br^2$ potentials in $d$-dimensions", expect = "Unconfined $ - a / r + b r^2 $ potentials in $d$-dimensions", year = "2013", } @Misc{Blow:2013:Ez, author = "Joe Blow", title = "{CaCuO$_2$} antiferromagnetism", expect = "{CaCuO$_2$} antiferromagnetism", year = "2013", } @Misc{Blow:2013:Eaa, author = "Joe Blow", title = "Theoretical studies of {Au$_m$} and {PtAu$_n$} clusters and their {N$_2$} and {O$_2$} adsorption complexes", expect = "Theoretical studies of {Au$_m$} and {PtAu$_n$} clusters and their {N$_2$} and {O$_2$} adsorption complexes", year = "2013", } @Misc{Blow:2013:Eab, author = "Joe Blow", title = "Systematic assessment on aqueous {pK$_a$} and {pK$_b$} of an amino acid base", expect = "Systematic assessment on aqueous {pK$_a$} and {pK$_b$} of an amino acid base", year = "2013", } @Misc{Blow:2013:Eac, author = "Joe Blow", title = "Density functional studies of {Li$_N$} and {Li$_N^+$} ($N=2$--$30$) clusters: {Structure}, binding and charge distribution", expect = "Density functional studies of {Li$_N$} and {Li$_N^+$} ($ N = 2 $--$ 30 $) clusters: {Structure}, binding and charge distribution", year = "2013", } @Misc{Blow:2013:Ead, author = "Joe Blow", title = "Calculation of the {H$_2^+$} rovibrational energies and spectroscopic constants in the $2p\pi$, $3d\sigma$, $4d\sigma$, $4f\pi$, $4f\sigma$, $5g\sigma$, and $6i\sigma$ electronic states", expect = "Calculation of the {H$_2^+$} rovibrational energies and spectroscopic constants in the $ 2 p \pi $, $ 3 d \sigma $, $ 4 d \sigma $, $ 4 f \pi $, $ 4 f \sigma $, $ 5 g \sigma $, and $ 6 i \sigma $ electronic states", year = "2013", } @Misc{Blow:2013:Eae, author = "Joe Blow", title = "Complexes of rare gases with {H$_2$S} and {H$_2$S$_2$}", expect = "Complexes of rare gases with {H$_2$S} and {H$_2$S$_2$}", year = "2013", } @Misc{Blow:2013:Eaf, author = "Joe Blow", title = "Solvent effects on {S$_N$2} reaction", expect = "Solvent effects on {S$_N$2} reaction", year = "2013", } @Misc{Blow:2013:Eag, author = "Joe Blow", title = "Reactions of {$^1$S}, {$^1$D}, and {$^3$P} carbon", expect = "Reactions of {$^1$S}, {$^1$D}, and {$^3$P} carbon", year = "2013", } @Misc{Blow:2013:Eah, author = "Joe Blow", title = "Dispersion coefficients for {Li$^+$--H} and {Li$^+$--He} systems with {Coulomb} and screened {Coulomb} potentials", expect = "Dispersion coefficients for {Li$^+$--H} and {Li$^+$--He} systems with {Coulomb} and screened {Coulomb} potentials", year = "2013", } bibclean-3.07/test/topt112.bib0000444000156700015670000000000012470142227014740 0ustar beebebeebebibclean-3.07/test/testopt5.bib0000444000156700015670000000000007342757150015326 0ustar beebebeebebibclean-3.07/test/topt337.opt0000444000156700015670000000002012470142160015015 0ustar beebebeebe--no-fix-braces bibclean-3.07/test/testoptr.bib0000444000156700015670000000315212071432654015430 0ustar beebebeebe@Book{x, title = "The {E}x{C}e{L}e{N}t Program", booktitle = "The {ExCeLeNt} Program", } @Book{x, title = "{3. [i.e., drei] Fachtagung {\"u}ber Programmiersprachen, Kiel, 5.--7. Marz 1974. (German) [Third Technical Conference on Programming Languages, Kiel, 5--7 March, 1974]}", } @Book{x, title = "Logic of programs: workshop, {ETH Z{\"u}rich, May--July 1979}", } @Proceedings{x, title = "{Advances in database technology, {EDBT '88}: International Conference on Extending Database Technology, Venice, Italy, March 14--18, 1988, proceedings}", } @Proceedings{x, title = "{CONPAR} 90-{VAPP IV}: Joint International Conference on Vector and Parallel Processing, {Z}{\"u}rich, Switzerland, September 10--13, 1990: proceedings", } @Proceedings{x, title = "{{CONPAR} 90-{VAPP IV}: Joint International Conference on Vector and Parallel Processing, {Z}{\"u}rich, Switzerland, September 10--13, 1990: proceedings}", } @Proceedings{x, title = "{Advances in computing and information --- {ICCI '90}}", } @Book{x, title = "{Text understanding in {LILOG}: integrating computational linguistics and artificial intelligence: final report on the {IBM} Germany {LILOG}-project}", } @Book{x, title = "{Dynamic {$3$D} Imaging: DAGM 2009 Workshop, Dyn3D 2009, Jena, Germany, September 9, 2009. Proceedings}", } bibclean-3.07/test/topt115.bib0000444000156700015670000000000012470142227014743 0ustar beebebeebebibclean-3.07/test/topt326.bib0000444000156700015670000000000012470142231014742 0ustar beebebeebebibclean-3.07/test/topt104.opt0000444000156700015670000000001612470142073015015 0ustar beebebeebe-align-equals bibclean-3.07/test/topt169.bib0000444000156700015670000000000012470142231014747 0ustar beebebeebebibclean-3.07/test/testoptx.in0000444000156700015670000000000012470140671015273 0ustar beebebeebebibclean-3.07/test/topt339.opt0000444000156700015670000000002212470142160015021 0ustar beebebeebe--no-fix-initials bibclean-3.07/test/topt354.bib0000444000156700015670000000000012470142232014744 0ustar beebebeebebibclean-3.07/test/testscr3.bib0000444000156700015670000000077305304620240015313 0ustar beebebeebe@Comment "Old style comment" @Begin {CommENT} This is a block comment with two lines. @End @Begin {CommENT} This is a block comment with nested environments. @Begin{foo} @Begin{bar} @End{bar} @End{foo} @End @Begin {CommENT} This is a block comment with two lines and embedded braces: {one} {two} {three} @End @Begin {CommENT} This is a block comment with two lines and embedded braces: {one} {two} {three}. Here are some mismatched braces: { { { } } } } } @End bibclean-3.07/test/plain.bst0000664000156700015670000005020513247545272014717 0ustar beebebeebe% BibTeX standard bibliography style `plain' % Version 0.99b (8-Dec-10 release) for BibTeX versions 0.99a or later. % Copyright (C) 1984, 1985, 1988, 2010 Howard Trickey and Oren Patashnik. % Unlimited copying and redistribution of this file are permitted as long as % it is unmodified. Modifications (and redistribution of modified versions) % are also permitted, but only if the resulting file is renamed to something % besides btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. % This restriction helps ensure that all standard styles are identical. % The file btxbst.doc has the documentation for this style. ENTRY { address author booktitle chapter edition editor howpublished institution journal key month note number organization pages publisher school series title type volume year } {} { label } INTEGERS { output.state before.all mid.sentence after.sentence after.block } FUNCTION {init.state.consts} { #0 'before.all := #1 'mid.sentence := #2 'after.sentence := #3 'after.block := } STRINGS { s t } FUNCTION {output.nonnull} { 's := output.state mid.sentence = { ", " * write$ } { output.state after.block = { add.period$ write$ newline$ "\newblock " write$ } { output.state before.all = 'write$ { add.period$ " " * write$ } if$ } if$ mid.sentence 'output.state := } if$ s } FUNCTION {output} { duplicate$ empty$ 'pop$ 'output.nonnull if$ } FUNCTION {output.check} { 't := duplicate$ empty$ { pop$ "empty " t * " in " * cite$ * warning$ } 'output.nonnull if$ } FUNCTION {output.bibitem} { newline$ "\bibitem{" write$ cite$ write$ "}" write$ newline$ "" before.all 'output.state := } FUNCTION {fin.entry} { add.period$ write$ newline$ } FUNCTION {new.block} { output.state before.all = 'skip$ { after.block 'output.state := } if$ } FUNCTION {new.sentence} { output.state after.block = 'skip$ { output.state before.all = 'skip$ { after.sentence 'output.state := } if$ } if$ } FUNCTION {not} { { #0 } { #1 } if$ } FUNCTION {and} { 'skip$ { pop$ #0 } if$ } FUNCTION {or} { { pop$ #1 } 'skip$ if$ } FUNCTION {new.block.checka} { empty$ 'skip$ 'new.block if$ } FUNCTION {new.block.checkb} { empty$ swap$ empty$ and 'skip$ 'new.block if$ } FUNCTION {new.sentence.checka} { empty$ 'skip$ 'new.sentence if$ } FUNCTION {new.sentence.checkb} { empty$ swap$ empty$ and 'skip$ 'new.sentence if$ } FUNCTION {field.or.null} { duplicate$ empty$ { pop$ "" } 'skip$ if$ } FUNCTION {emphasize} { duplicate$ empty$ { pop$ "" } { "{\em " swap$ * "}" * } if$ } INTEGERS { nameptr namesleft numnames } FUNCTION {format.names} { 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := nameptr #1 > { namesleft #1 > { ", " * t * } { numnames #2 > { "," * } 'skip$ if$ t "others" = { " et~al." * } { " and " * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } FUNCTION {format.authors} { author empty$ { "" } { author format.names } if$ } FUNCTION {format.editors} { editor empty$ { "" } { editor format.names editor num.names$ #1 > { ", editors" * } { ", editor" * } if$ } if$ } FUNCTION {format.title} { title empty$ { "" } { title "t" change.case$ } if$ } FUNCTION {n.dashify} { 't := "" { t empty$ not } { t #1 #1 substring$ "-" = { t #1 #2 substring$ "--" = not { "--" * t #2 global.max$ substring$ 't := } { { t #1 #1 substring$ "-" = } { "-" * t #2 global.max$ substring$ 't := } while$ } if$ } { t #1 #1 substring$ * t #2 global.max$ substring$ 't := } if$ } while$ } FUNCTION {format.date} { year empty$ { month empty$ { "" } { "there's a month but no year in " cite$ * warning$ month } if$ } { month empty$ 'year { month " " * year * } if$ } if$ } FUNCTION {format.btitle} { title emphasize } FUNCTION {tie.or.space.connect} { duplicate$ text.length$ #3 < { "~" } { " " } if$ swap$ * * } FUNCTION {either.or.check} { empty$ 'pop$ { "can't use both " swap$ * " fields in " * cite$ * warning$ } if$ } FUNCTION {format.bvolume} { volume empty$ { "" } { "volume" volume tie.or.space.connect series empty$ 'skip$ { " of " * series emphasize * } if$ "volume and number" number either.or.check } if$ } FUNCTION {format.number.series} { volume empty$ { number empty$ { series field.or.null } { output.state mid.sentence = { "number" } { "Number" } if$ number tie.or.space.connect series empty$ { "there's a number but no series in " cite$ * warning$ } { " in " * series * } if$ } if$ } { "" } if$ } FUNCTION {format.edition} { edition empty$ { "" } { output.state mid.sentence = { edition "l" change.case$ " edition" * } { edition "t" change.case$ " edition" * } if$ } if$ } INTEGERS { multiresult } FUNCTION {multi.page.check} { 't := #0 'multiresult := { multiresult not t empty$ not and } { t #1 #1 substring$ duplicate$ "-" = swap$ duplicate$ "," = swap$ "+" = or or { #1 'multiresult := } { t #2 global.max$ substring$ 't := } if$ } while$ multiresult } FUNCTION {format.pages} { pages empty$ { "" } { pages multi.page.check { "pages" pages n.dashify tie.or.space.connect } { "page" pages tie.or.space.connect } if$ } if$ } FUNCTION {format.vol.num.pages} { volume field.or.null number empty$ 'skip$ { "(" number * ")" * * volume empty$ { "there's a number but no volume in " cite$ * warning$ } 'skip$ if$ } if$ pages empty$ 'skip$ { duplicate$ empty$ { pop$ format.pages } { ":" * pages n.dashify * } if$ } if$ } FUNCTION {format.chapter.pages} { chapter empty$ 'format.pages { type empty$ { "chapter" } { type "l" change.case$ } if$ chapter tie.or.space.connect pages empty$ 'skip$ { ", " * format.pages * } if$ } if$ } FUNCTION {format.in.ed.booktitle} { booktitle empty$ { "" } { editor empty$ { "In " booktitle emphasize * } { "In " format.editors * ", " * booktitle emphasize * } if$ } if$ } FUNCTION {empty.misc.check} { author empty$ title empty$ howpublished empty$ month empty$ year empty$ note empty$ and and and and and key empty$ not and { "all relevant fields are empty in " cite$ * warning$ } 'skip$ if$ } FUNCTION {format.thesis.type} { type empty$ 'skip$ { pop$ type "t" change.case$ } if$ } FUNCTION {format.tr.number} { type empty$ { "Technical Report" } 'type if$ number empty$ { "t" change.case$ } { number tie.or.space.connect } if$ } FUNCTION {format.article.crossref} { key empty$ { journal empty$ { "need key or journal for " cite$ * " to crossref " * crossref * warning$ "" } { "In {\em " journal * "\/}" * } if$ } { "In " key * } if$ " \cite{" * crossref * "}" * } FUNCTION {format.crossref.editor} { editor #1 "{vv~}{ll}" format.name$ editor num.names$ duplicate$ #2 > { pop$ " et~al." * } { #2 < 'skip$ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = { " et~al." * } { " and " * editor #2 "{vv~}{ll}" format.name$ * } if$ } if$ } if$ } FUNCTION {format.book.crossref} { volume empty$ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ "In " } { "Volume" volume tie.or.space.connect " of " * } if$ editor empty$ editor field.or.null author field.or.null = or { key empty$ { series empty$ { "need editor, key, or series for " cite$ * " to crossref " * crossref * warning$ "" * } { "{\em " * series * "\/}" * } if$ } { key * } if$ } { format.crossref.editor * } if$ " \cite{" * crossref * "}" * } FUNCTION {format.incoll.inproc.crossref} { editor empty$ editor field.or.null author field.or.null = or { key empty$ { booktitle empty$ { "need editor, key, or booktitle for " cite$ * " to crossref " * crossref * warning$ "" } { "In {\em " booktitle * "\/}" * } if$ } { "In " key * } if$ } { "In " format.crossref.editor * } if$ " \cite{" * crossref * "}" * } FUNCTION {article} { output.bibitem format.authors "author" output.check new.block format.title "title" output.check new.block crossref missing$ { journal emphasize "journal" output.check format.vol.num.pages output format.date "year" output.check } { format.article.crossref output.nonnull format.pages output } if$ new.block note output fin.entry } FUNCTION {book} { output.bibitem author empty$ { format.editors "author and editor" output.check } { format.authors output.nonnull crossref missing$ { "author and editor" editor either.or.check } 'skip$ if$ } if$ new.block format.btitle "title" output.check crossref missing$ { format.bvolume output new.block format.number.series output new.sentence publisher "publisher" output.check address output } { new.block format.book.crossref output.nonnull } if$ format.edition output format.date "year" output.check new.block note output fin.entry } FUNCTION {booklet} { output.bibitem format.authors output new.block format.title "title" output.check howpublished address new.block.checkb howpublished output address output format.date output new.block note output fin.entry } FUNCTION {inbook} { output.bibitem author empty$ { format.editors "author and editor" output.check } { format.authors output.nonnull crossref missing$ { "author and editor" editor either.or.check } 'skip$ if$ } if$ new.block format.btitle "title" output.check crossref missing$ { format.bvolume output format.chapter.pages "chapter and pages" output.check new.block format.number.series output new.sentence publisher "publisher" output.check address output } { format.chapter.pages "chapter and pages" output.check new.block format.book.crossref output.nonnull } if$ format.edition output format.date "year" output.check new.block note output fin.entry } FUNCTION {incollection} { output.bibitem format.authors "author" output.check new.block format.title "title" output.check new.block crossref missing$ { format.in.ed.booktitle "booktitle" output.check format.bvolume output format.number.series output format.chapter.pages output new.sentence publisher "publisher" output.check address output format.edition output format.date "year" output.check } { format.incoll.inproc.crossref output.nonnull format.chapter.pages output } if$ new.block note output fin.entry } FUNCTION {inproceedings} { output.bibitem format.authors "author" output.check new.block format.title "title" output.check new.block crossref missing$ { format.in.ed.booktitle "booktitle" output.check format.bvolume output format.number.series output format.pages output address empty$ { organization publisher new.sentence.checkb organization output publisher output format.date "year" output.check } { address output.nonnull format.date "year" output.check new.sentence organization output publisher output } if$ } { format.incoll.inproc.crossref output.nonnull format.pages output } if$ new.block note output fin.entry } FUNCTION {conference} { inproceedings } FUNCTION {manual} { output.bibitem author empty$ { organization empty$ 'skip$ { organization output.nonnull address output } if$ } { format.authors output.nonnull } if$ new.block format.btitle "title" output.check author empty$ { organization empty$ { address new.block.checka address output } 'skip$ if$ } { organization address new.block.checkb organization output address output } if$ format.edition output format.date output new.block note output fin.entry } FUNCTION {mastersthesis} { output.bibitem format.authors "author" output.check new.block format.title "title" output.check new.block "Master's thesis" format.thesis.type output.nonnull school "school" output.check address output format.date "year" output.check new.block note output fin.entry } FUNCTION {misc} { output.bibitem format.authors output title howpublished new.block.checkb format.title output howpublished new.block.checka howpublished output format.date output new.block note output fin.entry empty.misc.check } FUNCTION {phdthesis} { output.bibitem format.authors "author" output.check new.block format.btitle "title" output.check new.block "PhD thesis" format.thesis.type output.nonnull school "school" output.check address output format.date "year" output.check new.block note output fin.entry } FUNCTION {proceedings} { output.bibitem editor empty$ { organization output } { format.editors output.nonnull } if$ new.block format.btitle "title" output.check format.bvolume output format.number.series output address empty$ { editor empty$ { publisher new.sentence.checka } { organization publisher new.sentence.checkb organization output } if$ publisher output format.date "year" output.check } { address output.nonnull format.date "year" output.check new.sentence editor empty$ 'skip$ { organization output } if$ publisher output } if$ new.block note output fin.entry } FUNCTION {techreport} { output.bibitem format.authors "author" output.check new.block format.title "title" output.check new.block format.tr.number output.nonnull institution "institution" output.check address output format.date "year" output.check new.block note output fin.entry } FUNCTION {unpublished} { output.bibitem format.authors "author" output.check new.block format.title "title" output.check new.block note "note" output.check format.date output fin.entry } FUNCTION {default.type} { misc } MACRO {jan} {"January"} MACRO {feb} {"February"} MACRO {mar} {"March"} MACRO {apr} {"April"} MACRO {may} {"May"} MACRO {jun} {"June"} MACRO {jul} {"July"} MACRO {aug} {"August"} MACRO {sep} {"September"} MACRO {oct} {"October"} MACRO {nov} {"November"} MACRO {dec} {"December"} MACRO {acmcs} {"ACM Computing Surveys"} MACRO {acta} {"Acta Informatica"} MACRO {cacm} {"Communications of the ACM"} MACRO {ibmjrd} {"IBM Journal of Research and Development"} MACRO {ibmsj} {"IBM Systems Journal"} MACRO {ieeese} {"IEEE Transactions on Software Engineering"} MACRO {ieeetc} {"IEEE Transactions on Computers"} MACRO {ieeetcad} {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} MACRO {ipl} {"Information Processing Letters"} MACRO {jacm} {"Journal of the ACM"} MACRO {jcss} {"Journal of Computer and System Sciences"} MACRO {scp} {"Science of Computer Programming"} MACRO {sicomp} {"SIAM Journal on Computing"} MACRO {tocs} {"ACM Transactions on Computer Systems"} MACRO {tods} {"ACM Transactions on Database Systems"} MACRO {tog} {"ACM Transactions on Graphics"} MACRO {toms} {"ACM Transactions on Mathematical Software"} MACRO {toois} {"ACM Transactions on Office Information Systems"} MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} MACRO {tcs} {"Theoretical Computer Science"} READ FUNCTION {sortify} { purify$ "l" change.case$ } INTEGERS { len } FUNCTION {chop.word} { 's := 'len := s #1 len substring$ = { s len #1 + global.max$ substring$ } 's if$ } FUNCTION {sort.format.names} { 's := #1 'nameptr := "" s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { nameptr #1 > { " " * } 'skip$ if$ s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := nameptr numnames = t "others" = and { "et al" * } { t sortify * } if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } FUNCTION {sort.format.title} { 't := "A " #2 "An " #3 "The " #4 t chop.word chop.word chop.word sortify #1 global.max$ substring$ } FUNCTION {author.sort} { author empty$ { key empty$ { "to sort, need author or key in " cite$ * warning$ "" } { key sortify } if$ } { author sort.format.names } if$ } FUNCTION {author.editor.sort} { author empty$ { editor empty$ { key empty$ { "to sort, need author, editor, or key in " cite$ * warning$ "" } { key sortify } if$ } { editor sort.format.names } if$ } { author sort.format.names } if$ } FUNCTION {author.organization.sort} { author empty$ { organization empty$ { key empty$ { "to sort, need author, organization, or key in " cite$ * warning$ "" } { key sortify } if$ } { "The " #4 organization chop.word sortify } if$ } { author sort.format.names } if$ } FUNCTION {editor.organization.sort} { editor empty$ { organization empty$ { key empty$ { "to sort, need editor, organization, or key in " cite$ * warning$ "" } { key sortify } if$ } { "The " #4 organization chop.word sortify } if$ } { editor sort.format.names } if$ } FUNCTION {presort} { type$ "book" = type$ "inbook" = or 'author.editor.sort { type$ "proceedings" = 'editor.organization.sort { type$ "manual" = 'author.organization.sort 'author.sort if$ } if$ } if$ " " * year field.or.null sortify * " " * title field.or.null sort.format.title * #1 entry.max$ substring$ 'sort.key$ := } ITERATE {presort} SORT STRINGS { longest.label } INTEGERS { number.label longest.label.width } FUNCTION {initialize.longest.label} { "" 'longest.label := #1 'number.label := #0 'longest.label.width := } FUNCTION {longest.label.pass} { number.label int.to.str$ 'label := number.label #1 + 'number.label := label width$ longest.label.width > { label 'longest.label := label width$ 'longest.label.width := } 'skip$ if$ } EXECUTE {initialize.longest.label} ITERATE {longest.label.pass} FUNCTION {begin.bib} { preamble$ empty$ 'skip$ { preamble$ write$ newline$ } if$ "\begin{thebibliography}{" longest.label * "}" * write$ newline$ } EXECUTE {begin.bib} EXECUTE {init.state.consts} ITERATE {call.type$} FUNCTION {end.bib} { newline$ "\end{thebibliography}" write$ newline$ } EXECUTE {end.bib} bibclean-3.07/test/topt345.opt0000444000156700015670000000002112470142160015015 0ustar beebebeebe--no-keep-spaces bibclean-3.07/test/topt328.bib0000444000156700015670000000000012470142231014744 0ustar beebebeebebibclean-3.07/test/topt167.bib0000444000156700015670000000000012470142231014745 0ustar beebebeebebibclean-3.07/test/topt342.opt0000444000156700015670000000002512470142160015016 0ustar beebebeebe--no-keep-linebreaks bibclean-3.07/test/testbib7.bib0000444000156700015670000001647612317315623015303 0ustar beebebeebe@Article{xxx-01, author-1 = "Nikola{\u\i} Nikolaevich Bogoljubov", author-2 = "Nikola{\u{\i}} Nikolaevich Bogoljubov", author-3 = "Nikola{\u{{\i}}} Nikolaevich Bogoljubov", author-4 = "Nikola{\u{{}\i}} Nikolaevich Bogoljubov", author-5 = "Nikola{\u{{}{}\i}} Nikolaevich Bogoljubov", author-6 = "Nikola{\u{{}{}{}\i}} Nikolaevich Bogoljubov", } @Article{xxx-02, author-1 = "Nikola{\u \i} Nikolaevich Bogoljubov", author-2 = "Nikola{\u {\i}} Nikolaevich Bogoljubov", author-3 = "Nikola{\u {{\i}}} Nikolaevich Bogoljubov", author-4 = "Nikola{\u {{}\i}} Nikolaevich Bogoljubov", author-5 = "Nikola{\u {{}{}\i}} Nikolaevich Bogoljubov", author-6 = "Nikola{\u {{}{}{}\i}} Nikolaevich Bogoljubov", } @Article{xxx-03, author-1 = "Nikola{\u \i } Nikolaevich Bogoljubov", author-2 = "Nikola{\u {\i }} Nikolaevich Bogoljubov", author-3 = "Nikola{\u {{\i }}} Nikolaevich Bogoljubov", author-4 = "Nikola{\u {{}\i }} Nikolaevich Bogoljubov", author-5 = "Nikola{\u {{}{}\i }} Nikolaevich Bogoljubov", author-6 = "Nikola{\u {{}{}{}\i }} Nikolaevich Bogoljubov", } @Article{xxx-04, author-1 = "Nikola{\u \i } Nikolaevich Bogoljubov", author-2 = "Nikola{\u {\i }} Nikolaevich Bogoljubov", author-3 = "Nikola{\u {{\i }}} Nikolaevich Bogoljubov", author-4 = "Nikola{\u {{}\i }} Nikolaevich Bogoljubov", author-5 = "Nikola{\u {{}{}\i }} Nikolaevich Bogoljubov", author-6 = "Nikola{\u {{}{}{}\i }} Nikolaevich Bogoljubov", } @Article{xxx-05, author-1 = "Nikola{\u{\i}} Nikolaevich Bogoljubov", author-2 = "Nikola{\u{{\i}}} Nikolaevich Bogoljubov", author-3 = "Nikola{\u{{{\i}}}} Nikolaevich Bogoljubov", author-4 = "Nikola{\u{{}{\i}}} Nikolaevich Bogoljubov", author-5 = "Nikola{\u{{}{}{\i}}} Nikolaevich Bogoljubov", author-6 = "Nikola{\u{{}{}{}{\i}}} Nikolaevich Bogoljubov", } @Article{xxx-06, author-1 = "Nikola{\u {\i}} Nikolaevich Bogoljubov", author-2 = "Nikola{\u {{\i}}} Nikolaevich Bogoljubov", author-3 = "Nikola{\u {{{\i}}}} Nikolaevich Bogoljubov", author-4 = "Nikola{\u {{}{\i}}} Nikolaevich Bogoljubov", author-5 = "Nikola{\u {{}{}{\i}}} Nikolaevich Bogoljubov", author-6 = "Nikola{\u {{}{}{}{\i}}} Nikolaevich Bogoljubov", } @Article{xxx-07, author-1 = "Nikola{\u {\i} } Nikolaevich Bogoljubov", author-2 = "Nikola{\u {{\i} }} Nikolaevich Bogoljubov", author-3 = "Nikola{\u {{{\i} }}} Nikolaevich Bogoljubov", author-4 = "Nikola{\u {{}{\i} }} Nikolaevich Bogoljubov", author-5 = "Nikola{\u {{}{}{\i} }} Nikolaevich Bogoljubov", author-6 = "Nikola{\u {{}{}{}{\i} }} Nikolaevich Bogoljubov", } @Article{xxx-08, author-1 = "Nikola{\u {\i} } Nikolaevich Bogoljubov", author-2 = "Nikola{\u {{\i} }} Nikolaevich Bogoljubov", author-3 = "Nikola{\u {{{\i} }}} Nikolaevich Bogoljubov", author-4 = "Nikola{\u {{}{\i} }} Nikolaevich Bogoljubov", author-5 = "Nikola{\u {{}{}{\i} }} Nikolaevich Bogoljubov", author-6 = "Nikola{\u {{}{}{}{\i} }} Nikolaevich Bogoljubov", } @Article{xxx-09, title = "Harmonic Radius and Concentration of Energy; Hyperbolic Radius and {Liouville}'s Equations {$ \Delta U = e^U $} and {$ \Delta U = U^{\frac {n + 2}{n - 2}} $}", } @Article{xxx-10, booktitle = "On $\frac {n + 2} {n - 2}$ and off{}loading", title = "On $\frac {n + 2}{n - 2}$ and of{f}loading", } @Article{xxx-11, booktitle = "On $\frac {n + 2} {n - 2}$ and off{{}}loading", title = "On $\frac {n + 2}{n - 2}$ and of{{f}}loading", } @Article{xxx-12, booktitle = "On $\frac {n + 2} {n - 2}$ and off{{{{{{{}}}}}}}loading", title = "On $\frac {n + 2}{n - 2}$ and of{{{{{{{f}}}}}}}loading", } @Article{xxx-13, title = "Math $_2{F}_2(\ldots)$" } @Article{xxx-14, title = "The Asymptotic Expansion of a Hypergeometric Function $_2{F}_2 (1, \alpha; \rho_1, \rho_2; z)$", } @Article{xxx-15, title = "Multiple-pathways of carbon dioxide binding by a {Lewis} acid {[B(C$_6$F$_5$)$_3$]} and a {Lewis} base {[P(tBu)$_3$]}: the energy landscape perspective", } @Article{xxx-16, title = "$_2{F}$" } @Article{xxx-17, title = "$_2F$" } @Article{xxx-18, title = "${}_2F$" } @Article{xxx-19, title = "$_2{F}$" } @Article{xxx-20, title = "{Lewis} acid {[B(C$_6$F$_5$)$_3$]} and a {Lewis} base {[P(tBu)$_3$]}", } @Article{xxx-21, title = "($x$)", title = "( $x$ )", title = "[$x$]", title = "[ $x$ ]", title = "{$x$}", title = "{ $x$ }", title = "<$x$>", title = "< $x$ >", title = "$x$word", title = "$x$ value", title = "$x$-valued", } @Article{xxx-22, note = "Cited in {{\AA}ke Bj{\"o}rck's} bibliography.", note = "Cited in {\AA}ke Bj{\"o}rck's bibliography.", note = "Cited in \AA ke Bj{\"o}rck's bibliography.", } @Article{xxx-23, title = "Mixed mortar element method for {$P_1^{NC-}P_0$} element and its multigrid for {Stokes} problem", } @Article{xxx-24, title = "Universidad pontificia de Santo Tom\'as", title = "{Universidad pontificia de Santo Tom\'as}", } @Article{xxx-25, title = "Le{\c {c}}ons", title = "Le{\c{c}}ons", } @Article{xxx-26, title = "On a Conjecture by {Erd\H os--Straus}", title = "On a Conjecture by {Erd{\H {o}}s--Straus}", title = "On a Conjecture by {Erd{\H{o}}s--Straus}", } @Article{xxx-27, title = "Review of {\em Programmeringsspr{\aa}k\/}", title = "Review of {\em Programmeringsspr\aa k\/}", } @Article{xxx-28, title = "Beltr{\'a}n Mar{\'\i}", title = "Beltr\'an Mar\'\i", } @Article{xxx-29, title = "{Georges Lema{\^\i}tre's} {\em annus mirabilis}", title = "{Georges Lema\^\itre's} {\em annus mirabilis}", } @Article{xxx-30, title = "Lema\^\itre", title = "Doro\u \j", title = "Doro\d k", title = "Bo\^\alpha", title = "Bo\^\beta", } @Article{xxx-31, editor = "Behram Kur\c suno\u glu and Eugene Paul Wigner", editor = "Behram Kur{\c{s}}uno{\u{g}}lu and Eugene Paul Wigner", } @Article{xxx-32, title = "{ECMA-236}: 3,81\,mm Wide Magnetic Tape Cartridge", title = "{ECMA-236}: 3,81,mm Wide Magnetic Tape Cartridge", title = "{ECMA-236}: 3,81, mm Wide Magnetic Tape Cartridge", } @Article{xxx-33, title = "The applicative part of APL\@. Sequences", title = "The applicative part of APL\@ . Sequences", } @Article{xxx-34, booktitle = "Semi\-nu\-mer\-i\-cal Algorithms", title = "The {Experium\TM} {Knowledge Resource System}", remark = "From \cite {Logan:1978:FDP}: ``Benford's paper was \ldots{}.''", } @Article{xxx-35, booktitle = "Below 3,000,000,000", title = "Below $3,000,000,000$", note = "Below $3\,000\,000\,000$", } @Article{xxx-36, title = "The $\alpha { and } \beta$ study", } @Article{xxx-37, title = "For $|x| >= 17$", } @Article{xxx-38, title = "For $|x| <= 17$", } @Article{xxx-39, title = "For $|x| := 17$", } @Article{xxx-40, title = "Applications (K\=oriyama, 1988)", title = "Applications (K\={o}riyama, 1988)", title = "Applications (K{\=o}riyama, 1988)", } @Article{xxx-41, title = "For $x > log(y)$", title = "For $x > \log(y)$", } bibclean-3.07/test/topt160.bib0000444000156700015670000000000012470142231014736 0ustar beebebeebebibclean-3.07/test/topt353.bib0000444000156700015670000000000012470142232014743 0ustar beebebeebebibclean-3.07/test/testscr4.bib0000444000156700015670000000300405304620240015302 0ustar beebebeebe@BEGIN{COMMENT} This file contains some test Scribe bibliography entries with embedded paragraph breaks for testing the -no-parbreaks switch in bibclean. Without that switch, it should process correctly; with it, 3 sets of error messages should be displayed. @END{COMMENT} @TECHREPORT(bs-1629-0, AUTHOR = "BSI", TITLE = "Bibliographic References", INSTITUTION = "British Standards Institution", YEAR = "1976", TYPE = "BS", NUMBER = "1629" ) @TECHREPORT(bs-1629-1, AUTHOR = "BSI", TITLE = "Bibliographic References", INSTITUTION = "British Standards Institution", YEAR = "1976", TYPE = "BS", NUMBER = "1629" ) @TECHREPORT(bs-1629-2, AUTHOR = "BSI", TITLE = "Bibliographic References", INSTITUTION = "British Standards Institution", YEAR = "1976", TYPE = "BS", NUMBER = "1629" ) @TECHREPORT(bs-1629-3, AUTHOR = "BSI", TITLE = "Bibliographic References", INSTITUTION = "British Standards Institution", YEAR = "1976", TYPE = "BS", NUMBER = "1629" ) @TECHREPORT(bs-1629-4, AUTHOR = BSI, TITLE = "Bibliographic References", INSTITUTION = "British Standards Institution", YEAR = 1976, TYPE = BS, NUMBER = 1629 ) @TECHREPORT(bs-1629-5, AUTHOR = BSI, TITLE = "Bibliographic References", INSTITUTION = "British Standards Institution", YEAR = 1976, TYPE = BS, NUMBER = 1629 ) bibclean-3.07/test/topt171.opt0000664000156700015670000000002012663425653015034 0ustar beebebeebe-no-fix-degrees bibclean-3.07/test/testisxn.opt0000444000156700015670000000000007342717006015462 0ustar beebebeebebibclean-3.07/test/topt155.bib0000444000156700015670000000000012470142231014742 0ustar beebebeebebibclean-3.07/test/topt138.opt0000444000156700015670000000002512470142073015024 0ustar beebebeebe-no-fix-font-changes bibclean-3.07/test/topt366.bib0000444000156700015670000000000012470142232014747 0ustar beebebeebebibclean-3.07/test/topt129.bib0000444000156700015670000000000012470142230014742 0ustar beebebeebebibclean-3.07/test/topt144.opt0000444000156700015670000000003112470142073015016 0ustar beebebeebe-no-keep-preamble-spaces bibclean-3.07/test/topt361.bib0000444000156700015670000000000012470142232014742 0ustar beebebeebebibclean-3.07/test/topt143.opt0000444000156700015670000000002312470142073015016 0ustar beebebeebe-no-keep-parbreaks bibclean-3.07/test/topt370.opt0000664000156700015670000000001612663425653015042 0ustar beebebeebe--fix-degrees bibclean-3.07/test/topt152.bib0000444000156700015670000000000012470142231014737 0ustar beebebeebebibclean-3.07/test/testoptg.bib0000444000156700015670000000000007342757150015410 0ustar beebebeebebibclean-3.07/test/topt302.opt0000444000156700015670000000001712470142160015013 0ustar beebebeebe--German-style bibclean-3.07/test/topt120.bib0000444000156700015670000000000012470142227014737 0ustar beebebeebebibclean-3.07/test/topt313.bib0000444000156700015670000000000012470142231014736 0ustar beebebeebebibclean-3.07/test/testopti.bib0000444000156700015670000000000007342760011015400 0ustar beebebeebebibclean-3.07/test/topt131.opt0000444000156700015670000000002212470142073015012 0ustar beebebeebe-no-brace-protect bibclean-3.07/test/topt314.bib0000444000156700015670000000000012470142231014737 0ustar beebebeebebibclean-3.07/test/topt136.opt0000444000156700015670000000002012470142073015015 0ustar beebebeebe-no-fix-accents bibclean-3.07/test/testoptn.bib0000444000156700015670000000203212071104420015403 0ustar beebebeebe@Article{Barker:2012:VPW, author = "Ken Barker", title = "``Valuing'' Privacy While Exposing Data Utility", journal = j-LECT-NOTES-COMP-SCI, volume = "6121", pages = "1--2", year = "2012", CODEN = "LNCSD9", DOI = "http://dx.doi.org/10.1007/978-3-642-25704-9_1", ISSN = "0302-9743 (print), 1611-3349 (electronic)", ISSN = "0302-9744 (bad check digit), 1611-334X (bad check digit)", ISSN-L = "0302-9743", ISSN-L = "0302-9742 (bad check digit)", %% bad ISSN-L length in next line ISSN-L = "03029742", bibdate = "Wed Dec 19 15:20:12 MST 2012", bibsource = "http://www.math.utah.edu/pub/tex/bib/lncs2012a.bib", URL = "http://link.springer.com/accesspage/chapter/10.1007/978-3-642-25704-9_1", acknowledgement = ack-nhfb, book-DOI = "http://dx.doi.org/10.1007/978-3-642-25704-9", book-URL = "http://www.springerlink.com/content/978-3-642-25704-9", fjournal = "Lecture Notes in Computer Science", } bibclean-3.07/test/topt368.bib0000444000156700015670000000000012470142232014751 0ustar beebebeebebibclean-3.07/test/topt305.opt0000444000156700015670000000001112470142160015010 0ustar beebebeebe--author bibclean-3.07/test/topt127.bib0000444000156700015670000000000012470142230014740 0ustar beebebeebebibclean-3.07/test/topt127.opt0000444000156700015670000000003012470142073015016 0ustar beebebeebe-keyword-file /dev/null bibclean-3.07/test/topt305.bib0000444000156700015670000000000012470142231014737 0ustar beebebeebebibclean-3.07/test/testltx1.bin0000444000156700015670000016333105304620232015346 0ustar beebebeebe% REDUCE BIBLIOGRAPHY % Part 1: A-F % Copyright (c) 1990 The RAND Corporation. All Rights Reserved. % Additions and corrections are solicited. Please send them, in the % same format as these entries if possible, to reduce at rand.org. @ARTICLE{Abbott:85, AUTHOR = "J. A. Abbott and R. J. Bradford and J. H. Davenport", TITLE = "A Remark on Factorisation", JOURNAL = "{SIGSAM} Bulletin", YEAR = 1985, VOLUME = 19, NUMBER = 2, PAGES = "31-33", MONTH = "May"} @INPROCEEDINGS{Abbott:86, AUTHOR = "J. A. Abbott and R. J. Bradford and J. H. Davenport", TITLE = "The {Bath} Algebraic Number Package", BOOKTITLE = "Proc. of {SYMSAC} '86", YEAR = 1986, PAGES = "250-253"} @INPROCEEDINGS{Abbott:87, AUTHOR = "J. A. Abbott and J. H. Davenport", TITLE = "Polynomial Factorization: An Exploration of {Lenstra's} Algorithm", BOOKTITLE = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", YEAR = 1987, VOLUME = 378, PAGES = "391-402", PUBLISHER = "Springer-Verlag"} @INPROCEEDINGS{Abbott:87a, AUTHOR = "J. A. Abbott", TITLE = "Integration: Solving the {Risch} Differential Equation", BOOKTITLE = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", YEAR = 1987, VOLUME = 378, PAGES = "465-467", PUBLISHER = "Springer-Verlag"} @PHDTHESIS{Abbott:88, AUTHOR = "J. A. Abbott", TITLE = "Factorisation of Polynomials over Algebraic Number Fields", SCHOOL = "Univ. of Bath, England", YEAR = 1988} @ARTICLE{Abbott:88a, AUTHOR = "J. A. Abbott and J. H. Davenport", TITLE = "A Remark on a Paper by {Wang}: Another Surprising Property of 42", JOURNAL = "Math. Comp.", YEAR = 1988, VOLUME = 51, PAGES = "837-839"} @INPROCEEDINGS{Abbott:89, AUTHOR = "J. A. Abbott", TITLE = "Recovery of Algebraic Numbers from their p-Adic Approximations", BOOKTITLE = "Proc. of {ISSAC} '89", PUBLISHER = "{ACM} Press, New York", YEAR = 1989, PAGES = "112-120"} @TECHREPORT{Abbott:89a, AUTHOR = "J. A. Abbott and R. J. Bradford and J. H. Davenport", TITLE = "A Remark on the Multiplication of Sparse Polynomials", NUMBER = "TR 89-21", YEAR = 1989, INSTITUTION = "School of Mathematical Sciences, University of Bath"} @INPROCEEDINGS{Abdali:88, AUTHOR = "S. K. Abdali and D. S. Wise", TITLE = "Experiments with Quadtree Representation of Matrices", BOOKTITLE = "Proc. of {ISSAC} '88", PUBLISHER = "Springer-Verlag", YEAR = 1988, VOLUME = 358, PAGES = "96-108"} @ARTICLE{Abiezzi:83, AUTHOR = "Salim S. {Abi-Ezzi}", TITLE = "Clarification to the Symbolic Mode in {REDUCE}", JOURNAL = "{SIGSAM} Bulletin", YEAR = 1983, VOLUME = 17, NUMBER = "3 and 4", PAGES = "43-47", MONTH = "August and November"} @ARTICLE{Adams:83, AUTHOR = "K. J. Adams", TITLE = "Analytic Estimates for the Dynamic Aperture of Nonlinear Lattices", JOURNAL = "IEEE Trans. Nucl. Sci.", YEAR = 1983, VOLUME = "NS-30", PAGES = "2436-2438"} %"For an accelerator lattice..." REDUCE was used to obtain low order %coefficients in the calculation of the amplitude. @ARTICLE{Adkins:83, AUTHOR = "G. S. Adkins", TITLE = "Analytic Evaluation of an {O}($\alpha$) Vertex Correction to the Rate of Orthopositronium", JOURNAL = "Phys. Rev. A", YEAR = 1983, VOLUME = 27, PAGES = "530-532", ABSTRACT = {The order-$\alpha$ correction to the lowest order orthopositronium decay rate due to the two outer-vertex graphs obtained in analytic form.}} @ARTICLE{Adkins:83a, AUTHOR = "G. S. Adkins and F. R. Brown", TITLE = "Rate for Positronium Decay to Five Photons", JOURNAL = "Phys. Rev. A", YEAR = 1983, VOLUME = 28, PAGES = "1164-1165", ABSTRACT = {{REDUCE} used to calculate trace of $\gamma$ matrices. Large calculation.}} @ARTICLE{Adkins:85, AUTHOR = "G. S. Adkins", TITLE = "Inner-Vertex Contributions to the Decay Rate of Orthopositronium", JOURNAL = "Phys. Rev. A", YEAR = 1985, VOLUME = 31, PAGES = "1250-1252", ABSTRACT = {{REDUCE} trace calculations. "In this paper the order-$\alpha$ contribution to the inner-vertex graphs to the decay rate of orthopositronium is obtained in analytic form."}} @ARTICLE{Aguilera-Navarro:87, AUTHOR = "V. C. Aguilera-Navarro and R. Guardiola and C. Keller and M. de Llano and M. Popovic and M. Fortes", TITLE = "Van der {Waals} Perturbation Theory for Fermion and Boson Ground-State Matter", JOURNAL = "Phys. Rev. A", YEAR = 1987, VOLUME = 35, PAGES = "563-584"} %Uses computer algebra to rearrange ideal-gas-based low-density %expansions; to them REDUCE or MACSYMA provide just the expertise they %require to substitute forms into equations, and so makes their %formulation possible. @ARTICLE{Aldins:69, AUTHOR = "J. Aldins and S. J. Brodsky and A. J. Dufner and T. Kinoshita", TITLE = "Photon-Photon Scattering Contribution to the Sixth Order Magnetic Moments of the Muon and Electron", JOURNAL = "Phys. Rev. Lett.", YEAR = 1969, VOLUME = 23, PAGES = "441-443"} @TECHREPORT{Alekseev:86, AUTHOR = "A. I. Alekseev and V. F. Edneral", TITLE = "Tensor Structure of Axial Gauge Polarization Operator in the Infrared Region", INSTITUTION = "IHEP", YEAR = 1986, TYPE = "Preprint", NUMBER = "86-46"} @ARTICLE{Alekseev:87, AUTHOR = "A. I. Alekseev and V. F. Edneral", TITLE = "Tensor Structure of Gluon Polarization Operator in the Axial Gauge for Infra-Red Region", JOURNAL = "Journal of Nuclear Physics", YEAR = 1987, PAGES = "1105-1114"} @TECHREPORT{Alekseev:87a, AUTHOR = "A. I. Alekseev and V. F. Edneral", TITLE = "On Evaluation of {Feynman} Integrals in Axial Gauge", INSTITUTION = "IHEP", YEAR = 1987, TYPE = "Preprint", NUMBER = "87-118"} %The recurrent algorithm for axial gauge calculations of %one-loop massless {Feynman} integrals in the n-dimensional %momentum space is described. The algorithm we suggest is %realized on the basis of REDUCE system and presented as %a procedure. It is rather effective for cumbersome %combinations of those integrals. @ARTICLE{Alfeld:82, AUTHOR = "P. Alfeld", TITLE = "Fixed Point Iteration with Inexact Function Values", JOURNAL = "Math. Comp.", YEAR = 1982, VOLUME = 38, PAGES = "87-98"} %Numerical analysis generating an improved iterative scheme. "The %technical manipulations in this paper were carried out using the %symbol manipulation language REDUCE." @TECHREPORT{Amirkhanov:87, AUTHOR = "I. V. Amirkhanov and E. P. Zhydkov and I. E. Zhydkova", TITLE = "The Conditions of Bounding of the Oscillation Amplitudes of Charge Particle within the Resonance Vicinity Investigations", INSTITUTION = "J.I.N.R., Dubna", YEAR = 1987, NUMBER = "P11-87-452"} @ARTICLE{Antweiler:89, AUTHOR = "Werner Antweiler and Andreas Strotmann and Volker Winkelmann", TITLE = "A {\TeX-{REDUCE}-Interface}", JOURNAL = "SIGSAM Bulletin", YEAR = 1989, VOLUME = 23, MONTH = "February", PAGES = "26-33"} @ARTICLE{Appelquist:70, AUTHOR = "T. W. Appelquist and S. J. Brodsky", TITLE = "The Order $\alpha^{2}$ Electrodynamic Corrections to the {Lamb} Shift", JOURNAL = "Phys. Rev. Letters", YEAR = 1970, VOLUME = 24, PAGES = "562-565"} @TECHREPORT{Arbuzov:86, AUTHOR = "B. A. Arbuzov and E. E. Boos and A. I. Davydychev", TITLE = "Infrared Asymptotics of Gluonic {Green} Functions in Covariant Gauge", INSTITUTION = "IHEP", YEAR = 1986, TYPE = "Preprint", NUMBER = "86-123"} @ARTICLE{Aso:81, AUTHOR = "T. Aso and T. Nonoyama and S. Kato", TITLE = "Numerical Simulation of Semidiurnal Atmospheric Tides", JOURNAL = "J. Geophysical R.", YEAR = 1981, VOLUME = 86, NUMBER = 11, PAGES = "388-400"} %"Numerical modeling of the solar and lunar semidiurnal atmospheric %tides has been performed by invoking a comprehensive approach that %includes both algebraic manipluation and numerical solution of the %primitive equation system." Used REDUCE to overcome difficulties of %complication and error. @ARTICLE{Atherton:73, AUTHOR = "R. W. Atherton and G. M. Homsey", TITLE = "Use of Symbolic Computation to Generate Evolution Equations and Asymptotic Solutions to Elliptic Equations", JOURNAL = "Journ. Comp. Phys.", YEAR = 1973, VOLUME = 1, PAGES = "45-59"} @ARTICLE{Aurenche:84, AUTHOR = "P. Aurenche and A. Douir and R. Baier and M. Fontannaz and D. Schiff", TITLE = "Photoproduction of Hadrons at Large Transverse Momentum in Second Order {QCD}", JOURNAL = "Phys. Lett.", YEAR = 1984, VOLUME = "135B", PAGES = "164-168"} % Uses REDUCE and SCHOONSCHIP in the extension of calculations to a %higher order to keep pace with experimental results. @ARTICLE{Aurenche:84a, AUTHOR = "P. Aurenche and A. Douir and R. Baier and M. Fontannaz and D. Schiff", TITLE = "Prompt Photon Production at Large $p_{\tau}$ in {GCD} Beyond the Leading Order", JOURNAL = "Phys. Lett.", YEAR = 1984, VOLUME = "140B", PAGES = "87-92"} %Uses REDUCE and SCHOONSCHIP. @ARTICLE{Autin:89, AUTHOR = "B. Autin and J. Bengtsson", TITLE = "Symbolic Evaluation of Integrals Occurring in Accelerator Orbit Theory", JOURNAL = "J. Symbolic Computation", YEAR = 1989, VOLUME = 7, NUMBER = 2, PAGES = "183-187", MONTH = "February"} @ARTICLE{Baekler:84, AUTHOR = "P. Baekler and F. W. Hehl", TITLE = "A Charged {Taub-NUT} Metric with Torsion: A New Axially Symmetric Solution of the {Poincar\'{e}} Gauge Field Theory", JOURNAL = "Phys. Lett.", YEAR = 1984, VOLUME = "100A", PAGES = "277-316"} @TECHREPORT{Baekler:84a, AUTHOR = "Peter Baekler and Friedrich W. Hehl", TITLE = "On the Dynamics of the Torsion of Spacetime: Exact Solutions in a Gauge Theoretical Model of Gravity", INSTITUTION = "Department of Physics, University of California, Los Angeles", YEAR = 1984, NUMBER = "UCLA/84/TEP/19", PAGE = "18", MONTH = "December"} @INPROCEEDINGS{Baekler:86, AUTHOR = "P. Baekler and F. W. Hehl and E. W. Mielke", TITLE = "Nonmetricity and Torsion: Facts and Fancies in Gauge Approaches to Gravity", EDITOR = "R. Ruffini", BOOKTITLE = "Proc. 4th Marcel Grossmann Meeting on General Relativity, ed.", PUBLISHER = "North-Holland, Amsterdam", YEAR = 1986, PAGES = "277-316"} @ARTICLE{Baekler:87, AUTHOR = "P. Baekler and R. Hecht and F. W. Hehl and T. Shirafuji", TITLE = "Mass and Spin of Exact Solutions of the {Poincar\'{e}} Gauge Theory", JOURNAL = "Prog. Theor. Phys.", YEAR = 1987, VOLUME = 78, PAGES = "16-21"} @ARTICLE{Baekler:87a, AUTHOR = "P. Baekler and M. Guerses", TITLE = "Exact Solutions of the {Poincar\'{e}} Gauge Theory from Its Linearized Field Equations", JOURNAL = "Lett. Math. Phys.", YEAR = 1987, VOLUME = 14, PAGES = "185-191"} @ARTICLE{Baekler:87b, AUTHOR = "P. Baekler and E. W. Mielke and F. W. Hehl", TITLE = "Kinky Torsion in a {Poincar\'{e}} Gauge Model of Gravity Coupled to a Massless Scalar Field", JOURNAL = "Nuclear Phys.", YEAR = 1987, VOLUME = "B288", PAGES = "800-812"} @ARTICLE{Baekler:88, AUTHOR = "P. Baekler and M. Seitz and V. Winkelmann", TITLE = "Cyclindrically Symmetric Solutions of Self-Consistently Coupled {Dirac} Fields in Gauge Theories of Gravity", JOURNAL = "Class. Quantum Grav.", YEAR = 1988, VOLUME = 5, PAGES = "479-490"} @ARTICLE{Baekler:88a, AUTHOR = "P. Baekler and M. Guerses and F. W. Hehl and J. D. McCrea", TITLE = "The Exterior Gravitational Field of a Charged Spinning Source in the {Poincar\'{e}} Gauge Theory: A {Kerr-Newman} Metric with Dynamic Torsion", JOURNAL = "Phys. Lett.", YEAR = 1988, VOLUME = "A128", PAGES = "245-250"} @ARTICLE{Baekler:88b, AUTHOR = "P. Baekler and M. Guerses and F. W. Hehl", TITLE = "A New Method to Solve the Field Equations of {Poincar\'{e}} Gauge Theories", JOURNAL = "Class. Quantum Grav.", YEAR = 1988} @TECHREPORT{Bajla:78, AUTHOR = "I. Bajla and G. A. Ososkov and A. C. Hearn", TITLE = "The Orthogonalization Program of Polynomials in Two Variables in {REDUCE}-2 Language", INSTITUTION = "J.I.N.R., Dubna", YEAR = 1978, TYPE = "Report", NUMBER = "P10-11944"} %The analytical algorithm for constructing orthogonal %polynomials in two variables, based on the Gram-Schmidt %orthogonalization method, is proposed. @INPROCEEDINGS{Balian:78, AUTHOR = "R. Balian and G. Parisi and A. Voros", TITLE = "Quartic Oscillator", YEAR = 1978, MONTH = "May", BOOKTITLE = "Proc. of the Colloq. on Mathematical Problems in {Feynman} Path Integrals, Marseille"} %On the example of the semi-classical expansion for the levels %of the quartic oscillator -(d**2/dq**2)+q**4, we show how the %complex WKB method provides information about the %singularities of the Borel transform of the semi-classical %series. @ARTICLE{Baker:81, AUTHOR = "G. A. Baker and L. P. Benofy and M. Fortes and M. de Llano and S. M. Peltier and A. Plastino", TITLE = "Hard-Core Square-Well Fermion", JOURNAL = "Phys. Rev. A", YEAR = 1982, VOLUME = 26, PAGES = "3575-3588"} %The mixed use of FORTRAN and REDUCE, various derivative were calculated %algebraically, but the double series was evaluated numerically. @ARTICLE{Bark:78, AUTHOR = "Fritz H. Bark and Herman Tinoco", TITLE = "Stability of Plane {Poiseuille} Flow of a Dilute Suspension of Slender Fibres", JOURNAL = "J. Fluid Mech.", YEAR = 1978, VOLUME = 87, PAGES = "321-333"} %The linear hydrodynamic stability problem for plane Poiseuille %flow of a dilute suspension of rigid fibers is solved %numerically. The constitutive equation given by Batchelor %is used to model the rheological properties of the suspension. %The resulting eigenvalue problem is shown to be singular. @ARTICLE{Barthes-Biesel:73, AUTHOR = "D. Barthes-Biesel and A. Acrivos", TITLE = "On Computer Generated Analytic Solutions to the Equations of Fluid Mechanics, The Case of Creeping Flows", JOURNAL = "Journ. Comp. Phys.", YEAR = 1973, VOLUME = 3, PAGES = "403-411"} @ARTICLE{Barton:72, AUTHOR = "David Barton and Anthony C. Hearn", TITLE = "Comment on Problem \#2 - The {Y(2n)} Functions", JOURNAL = "SIGSAM Bulletin", YEAR = 1972, VOLUME = 15} %A compact program for the solution of SIGSAM Problem \#2 %is presented. @ARTICLE{Bateman:86, AUTHOR = "G. Bateman and R. G. Storer", TITLE = "Direct Determination of Axisymmetric Magnetohydrodynamic Equilibrium in {Hamada} Coordinates", JOURNAL = "Journ. Comp. Phys.", YEAR = 1986, VOLUME = 64, PAGES = "161-176"} %Plasma. "REDUCE was used to analyse the general set of equations %for large numbers of Fourier harmonics ...." @TECHREPORT{Bennett, AUTHOR = "J. P. Bennett and J. H. Davenport and H. M. Sauro", TITLE = "Solution of Some Equations in Biochemistry", INSTITUTION = "School of Mathematical Sciences, University of Bath, England", NUMBER = "88-12"} @ARTICLE{Berends:81, AUTHOR = "A. Berends and R. Kleiss and P. de Causmaecher and T. T. Wu", TITLE = "Single Bremsstrahlung Process in Gauge Theories", JOURNAL = "Phys. Lett.", YEAR = 1981, VOLUME = "103B", PAGES = "124-128"} %Used REDUCE to calculate 25 {Feynman} diagrams to produce theoretical %results which could be checked against experiment. @TECHREPORT{Berkovich:89, AUTHOR = "L.M. Berkovich and V.P. Gerdt and Z.T. Kostova and M.L. Nechaevsky", TITLE = "Second Order Reducible Linear Differential Equations", INSTITUTION = "J.I.N.R., Dubna", YEAR = 1989, TYPE = "Preprint", NUMBER = "E5-89-141"} @ARTICLE{Berman:63, AUTHOR = "S. M. Berman and Y. S. Tsai", TITLE = "Intermediate Boson Pair Production as a Means for Determining its Magnetic Moment", JOURNAL = "Phys. Rev. Lett.", YEAR = 1963, VOLUME = 11, PAGES = "483-487"} @ARTICLE{Bessis:85, AUTHOR = "N. Bessis and G. Bessis and D. Roux", TITLE = "Closed-Form Expressions for the {Dirac-Coulomb} Radial $r^{t}$ Integrals", JOURNAL = "Phys. Rev. A", YEAR = 1985, VOLUME = 32, PAGES = "2044-2050"} %No direct algebraic manipluation, but the formula is stated to be %well suited to evaluation by REDUCE or MACSYMA, and this is an %advantage of their formula. @TECHREPORT{Billoire:78, AUTHOR = "A. Billoire and R. Lacaze and A. Morel and H. Navelet", TITLE = "The {OZI} Rule Violating Radiative Decays of the Heavy Pseudoscalars", INSTITUTION = "{CEN}-Saclay", YEAR = 1978, TYPE = "Report", NUMBER = "DpH-T 43/78"} %Submitted to Phys. Letters B. %In lowest order QCD the rates for radiative transitions violating the OZI %rule of heavy pseudoscalars are found to be extremely small. @ARTICLE{Biro:86, AUTHOR = "T. S. Biro and J. Zimanyi and M. Zimanyi", TITLE = "Hadrochemistry in Relativistic Mean Fields", JOURNAL = "Physics Letters", YEAR = 1986, VOLUME = "167B", NUMBER = 3, PAGES = "271-276", MONTH = "February"} @ARTICLE{Biro:87, AUTHOR = "T. S. Biro and K. Niita and A. L. de Paoli and W. Bauer and W. Cassing and U. Mosel", TITLE = "Microscopic Theory of Photon Production in Proton-Nucleus and Nucleus-Nucleus Collisions", JOURNAL = "Nuclear Physics", YEAR = 1987, VOLUME = "475A", PAGES = "579-597", MONTH = "December"} MONTH = "December"} @TECHREPORT{Birrell:77, AUTHOR = "N. D. Birrell", TITLE = "The Application of Adiabatic Regularization to Calculations of Cosmological Interest", INSTITUTION = "Dept. Math, King's College, London", YEAR = 1977} @ARTICLE{Biswas:75, AUTHOR = "S. N. Biswas and S. R. Chaudhuri and K. S. Taank and J. A. Campbell", TITLE = "Neutrino Production in Stellar Matter by Photons in a Renormalizable Scalar-Boson-Exchange Model of Weak Interactions", JOURNAL = "Phys. Rev. D", YEAR = 1975, VOLUME = 8, PAGES = "2523-2525"} @TECHREPORT{Bittencourt:90, AUTHOR = "Guilherme Bittencourt and Jacques Calmet", TITLE = "Integrating Computer Algebra and Knowledge Representation", INSTITUTION = "{Universit\"{a}t} Karlsruhe Institut {f\"{u}r} Algorithmen und Kognitive Systeme", YEAR = 1990, TYPE = "Preprint"} @ARTICLE{Boege:86, AUTHOR = "W. Boege and R. Gebauer and H. Kredel", TITLE = "Some Examples for Solving Systems of Algebraic Equations by Calculating {Groebner} Bases", JOURNAL = "J. Symbolic Computation", YEAR = 1986, VOLUME = 2, NUMBER = 1, PAGES = "83-98", MONTH = "March"} @ARTICLE{Bogdanova:88, AUTHOR = "N. Bogdanova and H. Hogreve", TITLE = "A {REDUCE} Package for Exact {Coulomb} Interaction Matrix Elements", JOURNAL = "Comp. Phys. Commun.", YEAR = 1988, VOLUME = 48, NUMBER = 2, PAGES = "319-326", MONTH = "February"} @ARTICLE{Bordoni:81, AUTHOR = "Luciana Bordoni and Attilio Colagrossi", TITLE = "An Application of {REDUCE} to Industrial Mechanics", JOURNAL = "{SIGSAM} Bulletin", YEAR = 1981, VOLUME = 15, NUMBER = 2, PAGES = "8-12", MONTH = "May"} @INPROCEEDINGS{Bowyer:87, AUTHOR = "A. Bowyer and J. H. Davenport and P. S. Milne and J. A. Padget and A. F. Wallis", TITLE = "Applications of Computer Algebra in Solid Modelling", BOOKTITLE = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", YEAR = 1987, VOLUME = 378, PAGES = "244-245", PUBLISHER = "Springer-Verlag"} @TECHREPORT{Boyd:78, AUTHOR = "John P. Boyd", TITLE = "The Effects of Latitudinal Shear on Equatorial Waves, Part {I}: Theory and Methods", INSTITUTION = "Dept. of Atmos. and Oceanic Science, Univ. of Michigan", YEAR = 1978, TYPE = "Preprint", MONTH = "January"} %To be published in Journal of The Atmospheric Sciences. %By using the method of multiple scales in height and a %variety of methods in latitude, analytic solutions for %equatorial waves in combined vertical and horizontal shear %are derived. @INPROCEEDINGS{Brackx:87, AUTHOR = "F. Brackx and H. Serras", TITLE = "Boundary Value Problems for the {Laplacian} in {Euclidean} Space Solved by Symbolic Computation", BOOKTITLE = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", YEAR = 1987, VOLUME = 378, PAGES = "208-215", PUBLISHER = "Springer-Verlag"} @ARTICLE{Brackx:87a, AUTHOR = "F. Brackx and D. Constales and R. Delanghe and H. Serras", TITLE = "{Clifford} Algebra with {REDUCE}", JOURNAL = "Rend. Circ. Mat. Palermo, Ser. II", YEAR = 1987, VOLUME = 16, PAGES = "11-19"} @ARTICLE{Brackx:89, AUTHOR = "F. Brackx and D. Constales and A. Ronveaux and H. Serras", TITLE = "On the Harmonic and Monogenic Decomposition of Polynomials", JOURNAL = "J. Symbolic Computation", YEAR = 1989, VOLUME = 8, NUMBER = 3, PAGES = "297-304", MONTH = "September"} @INPROCEEDINGS{Bradford:86, AUTHOR = "R. J. Bradford and A. C. Hearn and J. A. Padget and E. {Schr\"{u}fer}", TITLE = "Enlarging the {REDUCE} Domain of Computation", BOOKTITLE = "Proc. of {SYMSAC} '86", YEAR = 1986, PAGES = "100-106"} @INPROCEEDINGS{Bradford:88, AUTHOR = "R. J. Bradford and J. H. Davenport", TITLE = "Effective Tests for Cyclotomic Polynomials", BOOKTITLE = "Proc. of {ISSAC} '88", PUBLISHER = "Springer-Verlag", YEAR = 1988, VOLUME = 358, PAGES = "244-251"} @ARTICLE{Broadhurst:85, AUTHOR = "D. J. Broadhurst", TITLE = "Evaluation of a Class of {Feynman} Diagrams for all Numbers of Loops and Dimensions", JOURNAL = "Phys. Lett. B", YEAR = "1985", VOLUME = "164", PAGES = "356-360"} %Uses REDUCE to calculate explicitely the l-loop member of a class of %massless, dimensionally regularized {Feynman} diagrams, in order to verify %an explicit formula. @ARTICLE{Brodsky:62, AUTHOR = "S. J. Brodsky and A. C. Hearn and R. G. Parsons", TITLE = "Determination of the Real Part of the {Compton} Amplitude at a Nucleon Resonance", JOURNAL = "Phys. Rev.", YEAR = 1962, VOLUME = 187, PAGES = "1899-1904"} @ARTICLE{Brodsky:67, AUTHOR = "S. J. Brodsky and J. D. Sullivan", TITLE = "W-Boson Contribution to the Anomalous Magnetic Moment of the Muon", JOURNAL = "Phys. Rev.", YEAR = 1967, VOLUME = 156, PAGES = "1644-1647"} @INPROCEEDINGS{Brodsky:69, AUTHOR = "S. J. Brodsky", TITLE = "Status of Quantum Electrodynamics", YEAR = 1969, BOOKTITLE = "Proc. International Symposium on Electron and Photon Interactions at High Energies, Liverpool, England"} @TECHREPORT{Brodsky:70, AUTHOR = "S. J. Brodsky", TITLE = "Quantum Electrodynamic Theory: Its Relation to Precision Low Energy Experiments", INSTITUTION = "SLAC", YEAR = 1970, TYPE = "Report", NUMBER = "SLAC-PUB-795", MONTH = "August"} %Stanford Linear Accelerator Center Report. @INPROCEEDINGS{Brodsky:71, AUTHOR = "S. J. Brodsky", TITLE = "Algebraic Computation Techniques in Quantum Electrodynamics", YEAR = 1971, VOLUME = "II", PAGES = "IV-1--IV-27", BOOKTITLE = "Proc. {2nd} Computing Methods in Theoretical Physics, Marseilles"} @TECHREPORT{Brodsky:72, AUTHOR = "S. J. Brodsky", TITLE = "Atomic Physics and Quantum Electrodynamics in the Infinite Momentum Frame", INSTITUTION = "SLAC", YEAR = 1972, TYPE = "Report", NUMBER = "SLAC-PUB-1118", MONTH = "August"} %Presented at the Third International Conference on Atomic Physics. @ARTICLE{Brodsky:72a, AUTHOR = "S. J. Brodsky and J. F. Gunion and R. L. Jaffe", TITLE = "Test for Fractionally Charged Partons from Deep-Inelastic Bremsstrahlung in the Scaling Region", JOURNAL = "Phys. Rev. D", YEAR = 1972, VOLUME = 6, PAGES = "2487-2494"} @ARTICLE{Brodsky:72b, AUTHOR = "S. J. Brodsky and R. Roskies", TITLE = "Quantum Electrodynamics and Renormalization Theory in The Infinite Momentum Frame", JOURNAL = "Phys. Lett.", YEAR = 1972, VOLUME = "41B", PAGES = "517-520"} @ARTICLE{Brodsky:73, AUTHOR = "S. J. Brodsky and R. Roskies and R. Suaya", TITLE = "Quantum Electrodynamics and Renormalization Theory in the Infinite-Momentum Frame", JOURNAL = "Phys. Rev. D", YEAR = 1973, VOLUME = 8, PAGES = "4574-4594"} @ARTICLE{Broughan:82, AUTHOR = "K. A. Broughan", TITLE = "{Grad-Fokker-Planck} Plasma Equations. Part 1. {Collision} Moments", JOURNAL = "J. Plasma Phys.", YEAR = 1982, VOLUME = 27, PAGES = "437-452"} %REDUCE used in collaboration with hand calculation. REDUCE did the %substitutions, with hand integrations. "Thirteen moments are taken of the %collision term in Boltzmann-Fokker-Planck equation....plasma..." @ARTICLE{Brown:79, AUTHOR = "W. S. Brown and A. C. Hearn", TITLE = "Applications of Symbolic Algebraic Computation", JOURNAL = "Comp. Phys. Comm.", YEAR = 1979, VOLUME = 17, PAGES = "207-215"} %This paper is a survey of applications of systems for symbolic %algebraic computation. @ARTICLE{Bryan-Jones:87, AUTHOR = "Jane Bryan-Jones", TITLE = "A Tutorial in Computer Algebra for Statisticians", JOURNAL = "The Professional Statistician", YEAR = 1987, VOLUME = 6, NUMBER = 6, MONTH = "December",PAGES = "TBD"} @TECHREPORT{Calmet:72, AUTHOR = "Jacques Calmet", TITLE = "Further Evaluation of the Sixth Order Corrections to the Anomalous Magnetic Moment of the Electron", INSTITUTION = "Department of Physics, University of Utah", YEAR = 1972} %We report on the contributions to the $\alpha^{3}$ %part of the anomalous magnetic moment of the electron from the %seven so-called cross and ladder diagrams. @ARTICLE{Calmet:72a, AUTHOR = "Jacques Calmet", TITLE = "A {REDUCE} Approach to the Calculation of {Feynman} Diagrams", JOURNAL = "Comp. Phys. Comm.", YEAR = 1972, VOLUME = 4, PAGES = "199-204"} %A brief survey of two existing REDUCE programs (by Campbell-Hearn %and by Calmet) dealing with algebraic computation of {Feynman} diagrams is %given. Work in progress on a more general approach to this problem %is discussed. @ARTICLE{Calmet:74, AUTHOR = "Jacques Calmet", TITLE = "Computer Recognition of Divergences in {Feynman} Graphs", JOURNAL = "SIGSAM Bulletin", YEAR = 1974, VOLUME = 8, NUMBER = 3, PAGES = "74-75", MONTH = "August"} %A description of a program for the recognition of divergences %in {Feynman} graphs is given. @INCOLLECTION{Calmet:83, AUTHOR = "J. Calmet and J. A. van Hulzen", TITLE = "Computer Algebra Applications", EDITOR = "B. Buchberger and G. E. Collins and R. Loos and R. Albrecht", BOOKTITLE = "Computer Algebra Symbolic and Algebraic Computation", EDITION = "2nd", PUBLISHER = "Springer-Verlag", YEAR = 1983} @ARTICLE{Campbell:67, AUTHOR = "J. A. Campbell", TITLE = "Algebraic Computation of Radiative Corrections for Electron-Positron Scattering", JOURNAL = "Nucl. Phys.", YEAR = 1967, VOLUME = "B1", PAGES = "283-300"} @ARTICLE{Campbell:68, AUTHOR = "J. A. Campbell", TITLE = "Astrophysical Consequences of the Existence of Charged Intermediate Vector Bosons", JOURNAL = "Aust. Journ. of Phys.", YEAR = 1968, VOLUME = 21, PAGES = "139-148"} @ARTICLE{Campbell:70, AUTHOR = "J. A. Campbell and A. C. Hearn", TITLE = "Symbolic Analysis of {Feynman} Diagrams by Computer", JOURNAL = "Journ. of Comp. Phys.", YEAR = 1970, VOLUME = 5, PAGES = "280-327"} @ARTICLE{Campbell:70a, AUTHOR = "J. A. Campbell and R. B. Clark and D. Horn", TITLE = "Low-T Theorems for Charged-Pion Photoproduction", JOURNAL = "Phys. Rev. D", YEAR = 1970, VOLUME = 2, PAGES = "217-224"} @ARTICLE{Campbell:74, AUTHOR = "J. A. Campbell", TITLE = "Symbolic Computing and Its Relationship to Particle Physics", JOURNAL = "Acta Physica Austriaca", YEAR = 1974, VOLUME = "XIII", PAGES = "595-647"} @ARTICLE{Campbell:87, AUTHOR = "J. A. Campbell and P. O. {Fr\"{o}man} and E. Walles", TITLE = "Explicit series formulae for the evaluation of integrals by the method of steepest descents", JOURNAL = "Studies in Applied Mathematics", YEAR = 1987, VOLUME = 77, PAGES = "151-172"} @TECHREPORT{Caprasse:84, AUTHOR = "H. Caprasse", TITLE = "Description et Utilisation d'Une Extension du Programme {REDUCE}", INSTITUTION = "Physique Th\'{e}orique et Math\'{e}matique, Universit\'{e} de Li\`{e}ge", YEAR = 1984, MONTH = "October"} @ARTICLE{Caprasse:85, AUTHOR = "H. Caprasse and M. Hans", TITLE = "A New Use of Operators in the Algebraic Mode of {REDUCE}", JOURNAL = "{SIGSAM} Bulletin", YEAR = 1985, VOLUME = 19, NUMBER = 3, PAGES = "46-52", MONTH = "August"} @ARTICLE{Caprasse:86, AUTHOR = "H. Caprasse", TITLE = "Description of an Extension of the Matrix Package of {REDUCE}", JOURNAL = "{SIGSAM} Bulletin", YEAR = 1986, VOLUME = 20, NUMBER = 4, PAGES = "7-10", MONTH = "December"} @ARTICLE{Caprasse:86a, AUTHOR = "H. Caprasse", TITLE = "A Complete Simplification Package for the Absolute Value Function in {REDUCE}", JOURNAL = "{SIGSAM} Bulletin", YEAR = 1986, VOLUME = 20, NUMBER = "1 and 2", PAGES = "18-21", MONTH = "February and May"} %Implementation for REDUCE 3.2 of the function "ABS". @INPROCEEDINGS{Caprasse:88, AUTHOR = "H. Caprasse and J. Demaret and E. Schruefer", TITLE = "Can {EXCALC} be Used to Investigate {High-dimensional} Cosmological Models with {Non-Linear Lagrangians}", BOOKTITLE = "Proc. of {ISSAC} '88", PUBLISHER = "Springer-Verlag", YEAR = 1988, PAGES = "116-124"} @ARTICLE{Caprasse:90, AUTHOR = "H. Caprasse", TITLE = "Renormalization Group, Function Iterations and Computer Algebra", JOURNAL = "J. Symbolic Computation", YEAR = 1990, VOLUME = 9, NUMBER = 1, PAGES = "61-72", MONTH = "January"} %Based on a renormalization group equation met in Quantum Field Theory, %Continuous Iterations of a large class of functions are computed using %REDUCE. @ARTICLE{Caprasse:89a, AUTHOR = "H. Caprasse", TITLE = "Les Th\'{e}ories des {Champs} dans le monde de {REDUCE} (in French)", JOURNAL = "{CALSYF} (to appear)", YEAR = 1989} @ARTICLE{Carlson:80, AUTHOR = "P. Carlson", TITLE = "Coordinate Free Relativity", JOURNAL = "J. Math. Phys.", YEAR = 1980, VOLUME = 21, PAGES = "1149-1154"} %REDUCE programs for tetrad formulation of GR. @PHDTHESIS{Carroll:73, AUTHOR = "R. Carroll", TITLE = "The Anomalous Magnetic Moment of the Electron in the Mass Operator Formalism", SCHOOL = "University of Michigan", YEAR = 1973} @ARTICLE{Carroll:75, AUTHOR = "R. Carroll", TITLE = "Mass-Operator Calculation of the Electron g-Factor", JOURNAL = "Phys. Rev. D", YEAR = 1975, VOLUME = 8, PAGES = "2344-2354"} @TECHREPORT{Cejchan, AUTHOR = "A. Cejchan and J. Nadrchal", TITLE = "Application of {REDUCE}-2 and Analytic Integration Program in the Theoretical Solid State Physics", INSTITUTION = "Institute of Physics, CSAV, Prague"} @INPROCEEDINGS{Chaffy:88, AUTHOR = "C. Chaffy-Camus", TITLE = "An Application of {REDUCE} to the Approximation of {f(x,y)}", BOOKTITLE = "Proc. of {ISSAC} '88", PUBLISHER = "Springer-Verlag", YEAR = 1988, VOLUME = 358, PAGES = "73-84"} @ARTICLE{Chinnick:86, AUTHOR = "K. Chinnick and C. Gibson and J. F. Griffiths and W. Kordylewski", TITLE = "Isothermal Interpretations of Oscillatory Ignition During Hydrogen Oxidation in an Open System. {I}. {Analytical} Predictions and Experimental Measurements of Periodicity", JOURNAL = "Proc. Royal Soc. Lond.", YEAR = 1986, VOLUME = "A405", PAGES = "117-128"} %Used REDUCE to solve Jacobian, but answer too complicated to be of any use. @ARTICLE{Cline:90, AUTHOR = "Terry Cline and Harold Abelson and Warren Harris", TITLE = "Symbolic Computing in Engineering Design", JOURNAL = "AI EDAM", YEAR = 1990, MONTH = "February"} @TECHREPORT{Cohen:76, AUTHOR = "H. I. Cohen and O. Leringe and Y. Sundblad", TITLE = "The Use of Algebraic Computing in General Relativity", INSTITUTION = "The Royal Institute of Technology Department of Mechanics", YEAR = 1976, NUMBER = "TRITA-MEK-76-02"} @TECHREPORT{Cohen:76a, AUTHOR = "I. Cohen and F. Bark", TITLE = "Perturbation Calculations for the Spin Up Problem Using {REDUCE}", INSTITUTION = "The Royal Institute of Technology, Department of Mechanics", YEAR = 1976, NUMBER = "TRITA-MEK-76-03"} @TECHREPORT{Cohen:77, AUTHOR = "I. Cohen and S. Yu. Slavyanov", TITLE = "Smooth Perturbations of the {Schr\"{o}dinger} Equation with a Linear Potential Related to the Charmonium Models", INSTITUTION = "University of Stockholm Institute of Physics", YEAR = 1977, TYPE = "USIP Report", NUMBER = "77-17"} @ARTICLE{Cohen:79, AUTHOR = "J. P. Fitch and H. I. Cohen", TITLE = "Using {CAMAL} for Algebraic Calculations in General Relativity", JOURNAL = "General Relativity and Gravitation", VOLUME = 11, YEAR = 1979, PAGES = "411-418"} @ARTICLE{Cohen:84, AUTHOR = "H. I. Cohen and I. B. Frick and J. E. {\AA}man", TITLE = "Algebraic Computing in General Relativity", JOURNAL = "General Relativity and Gravitation, ed.", YEAR = 1984, PAGES = "139-162"} %General relativity review. @INPROCEEDINGS{Cohen:89, AUTHOR = "Joel S. Cohen", TITLE = "The Effective Use of Computer Algebra Systems", YEAR = 1989, PAGES = "677-698", BOOKTITLE = "Transactions of the Sixth Army Conference on Applied Mathematics and Computing"} % Review of author's experience with four computer algebra systems. @ARTICLE{Connor:84, AUTHOR = "J. N. L. Connor and P. R. Curtis and D. Farrelly", TITLE = "The Uniform Asymptotic Swallowtail Approximation: Practical Methods for Oscillating Integrals with Four Coalescing Saddle Points", JOURNAL = "J. Phys. A", YEAR = 1984, VOLUME = 17, PAGES = "283-310"} %Used REDUCE and SCHOONSCHIP for some algebraic manipulations, and then %checked the results with MACSYMA; this is the most distrustful %reference we have found. @ARTICLE{Connor:84a, AUTHOR = "J. N. L. Connor and P. R. Curtis and C. J. Edge and A. Lagan`{a}", TITLE = "The Uniform Asymptotic Swallowtail Approximation: Application to the Collinear $H+F_{2}$", JOURNAL = "J. Chem. Phys.", YEAR = 1984, VOLUME = 80, NUMBER = 3, PAGES = "1362-1363", MONTH = "February"} @ARTICLE{Conwell:84, AUTHOR = "P. R. Conwell and P. W. Barber and C. K. Rushworth", TITLE = "Resonant Spectra of Dielectric Sphere", JOURNAL = "J. Opt. Soc. Am. A", YEAR = 1984, VOLUME = 1, PAGES = "62-67"} %REDUCE used to confirm independently convergence and accuracy of %Numerical Bessel function routine, expanding series by REDUCE and %using bigfloats. Described as slow but worthwhile. @INPROCEEDINGS{Cowan:79, AUTHOR = "Richard M. Cowan and Martin L. Griss", TITLE = "Hashing -- The Key to Rapid Pattern Matching", BOOKTITLE = "Proc. {EUROSAM} 1979, Lecture Notes in Computer Science", YEAR = 1979, VOLUME = 72, PAGES = "266-278", PUBLISHER = "Springer-Verlag"} @ARTICLE{Cung:75, AUTHOR = "V. K. Cung", TITLE = "Differential Cross Section of e+ + e- to e+ + mu- + nubar(mu) + nubar(e)", JOURNAL = "Phys. Lett.", YEAR = 1975, VOLUME = "55B", PAGES = "67-70"} @TECHREPORT{Darbaidze:86, AUTHOR = "Ya. Z. Darbaidze", TITLE = "A Gluon Bremsstrahlung in Supersymmetry {QCD}", INSTITUTION = "JINR", YEAR = 1986, TYPE = "Preprint", NUMBER = "P2-86-825"} @ARTICLE{Darbaidze:86a, AUTHOR = "J. Z. Darbaidze and V. A. Matveev and Z. V. Merebashvili and L. A. Slepchenko", TITLE = "Gluon Bremsstrahlung in Supersymmetric {QCD}", JOURNAL = "Phys. Lett.", YEAR = 1986, VOLUME = "B177", PAGE = "188"} @TECHREPORT{Darbaidze:88, AUTHOR = "Ya. Z. Darbaidze and Z.V. Merebashvili and V.A. Rostovtsev", TITLE = "Some Computer Realizations of the {REDUCE-3} Calculations for Exclusive Processes", INSTITUTION = "JINR", YEAR = 1988, TYPE = "Preprint", NUMBER = "P2-88-769"} @TECHREPORT{Darbaidze:89, AUTHOR = "Ya. Z. Darbaidze and V.A. Rostovtsev", TITLE = "Analysis of the Differential Equations for the Exclusive Processes and Explanation for the {"Mystery"} of the {Gamma-Distribution}", INSTITUTION = "JINR", YEAR = 1989, TYPE = "Preprint", NUMBER = "E2-89-286"} @INPROCEEDINGS{Dautcourt:79, AUTHOR = "G. Dautcourt", TITLE = "Application of {REDUCE} to Algebraic Computations in General Relativity and Astrophysics", YEAR = 1979, MONTH = "September", BOOKTITLE = "Proc. of the Workshop in Symbolic Computation, Dubna, {U.S.S.R.}"} %Reports the use of the system REDUCE 2 for general relativistic %calculations. @TECHREPORT{Dautcourt:80, AUTHOR = "G. Dautcourt and K. P. Jann", TITLE = "A Program Package in {REDUCE} 2 for Algebraic Computations in General Relativity", YEAR = 1980, INSTITUTION = "Zentralinstitut fuer Astrophysik der Akademie der Wissenschaften"} @ARTICLE{Dautcourt:81, AUTHOR = "G. Dautcourt and K. P. Jann and E. Riemer and M. Riemer", TITLE = "User's Guide to {REDUCE} Subroutines For Algebraic Computations in General Relativity", JOURNAL = "Astron. Nachr.", YEAR = 1981, VOLUME = 302, PAGES = "1-13"} @ARTICLE{Dautcourt:83, AUTHOR = "G. Dautcourt", TITLE = "The Cosmological Problem as an Initial Value Problem on the Observer's Past Light Cone: Geometry", JOURNAL = "J. Phys. A", YEAR = 1983, VOLUME = 16, PAGES = "3507-3528"} %Checked calculations with REDUCE, mainly Riemann tensor in null %coordinates. @ARTICLE{Davenport:81, AUTHOR = "James Harold Davenport", TITLE = "On the Integration of Algebraic Functions", JOURNAL = "Lecture Notes in Computer Science", YEAR = 1981, VOLUME = 102, PAGES = "1-197"} @ARTICLE{Davenport:82, AUTHOR = "James H. Davenport", TITLE = "Fast {REDUCE:} The {trade-off} between efficiency and generality", JOURNAL = "{SIGSAM} Bulletin", YEAR = 1982, VOLUME = 16, NUMBER = 1, PAGES = "8-11", MONTH = "February"} @ARTICLE{Davenport:82a, AUTHOR = "James H. Davenport", TITLE = "What do we want from a {high-level} language?", JOURNAL = "{SIGSAM} Bulletin", YEAR = 1982, VOLUME = 16, NUMBER = 4, PAGES = "6-9", MONTH = "November"} @INPROCEEDINGS{Davenport:85, AUTHOR = "James Davenport and Julian Padget", TITLE = "{HEUGCD:} How Elementary Upperbounds Generate Cheaper Data", BOOKTITLE = "Proc. {EUROCAL} 1985, Lecture Notes in Computer Science", YEAR = 1985, VOLUME = 204, PAGES = "18-28", PUBLISHER = "Springer-Verlag"} @ARTICLE{Davenport:88, AUTHOR = "J. H. Davenport", TITLE = "The World of Computer Algebra", JOURNAL = "New Scientist", YEAR = 1988, MONTH = "September", VOLUME = 1629, PAGES = "71-72"} @BOOK{Davenport:88a, AUTHOR = "J. H. Davenport and Y. Siret and E. Tournier", TITLE = "Computer Algebra, Systems and Algorithms for Algebraic Computation", PUBLISHER = "Academic Press", YEAR = 1988} @TECHREPORT{Della-Dora:81, AUTHOR = "J. Della Dora and E. Tournier", TITLE = "Solutions Formelles {D'Equations} Differentielles au Voisinage de Points Singuliers Reguliers", INSTITUTION = "Centre National de la Recherche Scientifique", YEAR = 1981, TYPE = "Report", NUMBER = 239} @INPROCEEDINGS{Della-Dora:84, AUTHOR = "J. Della Dora and E. Tournier", TITLE = "Homogeneous Linear Difference Equation {(Frobenius-Boole Method)}", BOOKTITLE = "Proc. {EUROSAM} 1984, Lecture Notes in Computer Science", YEAR = 1984, VOLUME = 174, PAGES = "2-12", PUBLISHER = "Springer-Verlag"} @TECHREPORT{Della-Dora:85, AUTHOR = "Jean Della-Dora and Claire Dicrescenzo and Dominique Duval", TITLE = "About a New Method for Computing in Algebraic Number Fields", INSTITUTION = "Universit\'{e} de Grenoble, Institut Fourier, France", YEAR = 1985, MONTH = "November"} @ARTICLE{Demaret:89, AUTHOR = "J. Demaret and H. Caprasse and A. Moussiaux and Ph. Tombal and D. Papadopoulos", TITLE = "{Ten-dimensional Lovelock-type Space-Times}", JOURNAL = "{To appear} Phys. Rev. D", YEAR = 1989, MONTH = "July"} @ARTICLE{DeMenna:87, AUTHOR = "L. De Menna and G. Miano and G. Rubinacci", TITLE = "Volterra's Series Solutions of Free Boundary Plasma Equilibria", JOURNAL = "Phys. Fluids", YEAR = 1987, VOLUME = 30, PAGES = "409-416"} %Magnetohydrodynamics. "We have carried out the computations up to %the fourth order, (the fourth order has been obtained by means of the %symbolic program REDUCE". @ARTICLE{Demichev:85, AUTHOR = "A. P. Demichev and A. Ya. Rodionov", TITLE = "A {REDUCE} Program for the Calculation of Geometrical Characteristics of Compactified Multidimensional {Riemannian} Space", JOURNAL = "Comp. Phys. Comm.", YEAR = 1985, VOLUME = 38, PAGES = "441-448"} %Covariant theories in N dimensional ($N \geq 4$) space-time. %REDUCE programs to calculate Ricci, Einstein and Yang-Mills curvature %and energy-momentum tensor. @TECHREPORT{Demichev:86, AUTHOR = "A. P. Demichev and A. Ya. Rodionov", TITLE = "Freund-{Rubin} Type Solutions for Different Compactifications of the Eleven-Dimensional Space", INSTITUTION = "Institute for High Energy Physics", YEAR = 1986, TYPE = "Preprint", NUMBER = "86-85"} %The results of calculating geometrical characteristics of %seven-dimensional quotient spaces are represented. These %quantities are necessary for the construction of compactifying %solutions of the eleven-dimensional supergravity. @ARTICLE{deRop:88, AUTHOR = "Y. de Rop and J. Demaret", TITLE = "Using {EXCALC} to Study Nondiagonal Multidimensional Spatially Homogeneous Cosmologies", JOURNAL = "Gen. Rel. Grav.", YEAR = 1988, VOLUME = 20, PAGES = "1127-1139"} @TECHREPORT{DeVos:89, AUTHOR = "Alexis De Vos", TITLE = "The use of {Reduce} in solar energy conversion theory", INSTITUTION = "State University of Gent, {CAGe} Computer Algebra Group", YEAR = 1989, TYPE = "Reports of the {CAGe} Project", NUMBER = 4, MONTH = "August"} @INPROCEEDINGS{Dewar:89, AUTHOR = "M. C. Dewar", TITLE = "{IRENA --} An Integrated Symbolic and Numerical Computation Environment", BOOKTITLE = "Proc. of {ISSAC} '89", PUBLISHER = "{ACM} Press, New York", YEAR = 1989, PAGES = "171-179"} @ARTICLE{Dhar:85, AUTHOR = "D. Dhar and J-M. Maillard", TITLE = "Susceptibility of the Checkerboard {Ising} Model", JOURNAL = "J. Phys. A", YEAR = 1985, VOLUME = 18, PAGES = "L383-L388"} %Used REDUCE for tedious algebra, and got a simple answer. Statistical %mechanics(?). "At the disorder variety, the n-point correlation %functions of the checkerboard Potts model has a simple causal %structure. An exact expression for the susceptibility in the Ising %case is obtained." @TECHREPORT{Dicrescenzo:85, AUTHOR = "Claire Dicrescenzo", TITLE = "Algebraic Computation on Algebraic Numbers", INSTITUTION = "Institut Fourier, Laboratoire de Math\'{e}matiques, France", YEAR = 1985, MONTH = "December"} %Examples are given of a new method, implemented on REDUCE, %for computing algebraically on algebraic numbers. @TECHREPORT{Diver, AUTHOR = "D. A. Diver and E. Q. Laing and C. C. Sellar", TITLE = "Waves in a Cold Plasma with a Spatially Rotating Magnetic Field", INSTITUTION = "Department of Physics and Astronomy, University of Glasgow, Plasma Physics Group", TYPE = "Report", NUMBER = "GU TPA 88/12-1"} %"...The algebraic manipulation system REDUCE was used in constructing the %following tensor definitions which allows us to make fewer %approximations than other authors." @INPROCEEDINGS{Diver:86, AUTHOR = "D. A. Diver and E. W. Laing", TITLE = "Proc. 8th {Europhysics} Conference on Computational Physics", YEAR = 1986, BOOKTITLE = "Computing in Plasma Physics"} @INPROCEEDINGS{Diver:88, AUTHOR = "D. A. Diver and E. W. Laing", TITLE = "Proc. {XV} {European} Conference on Controlled Fusion and Plasma Heating", YEAR = 1988} @TECHREPORT{Diver:88a, AUTHOR = "D. A. Diver and E. W. Laing", TITLE = "Alfven Resonance Absorption in a Magnetofluid", YEAR = 1988, TYPE = "Internal Report", NUMBER = "GUTPA 88/04-01", MONTH = "July"} %Presented at 15th UK Plasma Physics Conference, UMIST. @TECHREPORT{Dorfi:85, AUTHOR = "E. A. Dorfi and L. O'C. Drury", TITLE = "Simple Adaptive Grids for {1D} Initial Value Problems", INSTITUTION = "Max-Plack-Institut fuer Kernphysik, Heidelberg, West Germany", YEAR = 1985, NUMBER = "MPI H-1985-V21"} @ARTICLE{Dorizzi:86, AUTHOR = "B. Dorizzi and B. Grammaticos and J. Hietarinta and A. Ramani and F. Schwarz", TITLE = "New integrable three dimensional quartic potentials", JOURNAL = "Phys. Lett.", YEAR = 1986, VOLUME = "116A", PAGES = "432-436"} %REDUCE is used to construct and verify constants of motion. @TECHREPORT{dosSantos:85, AUTHOR = "R. P. dos Santos and P. P. Srivastava", TITLE = "Two-loop Effective Potential for Wess-Zumino Model using Superfields", INSTITUTION = "International Centre for Theoretical Physics", YEAR = 1985, NUMBER = "IC/85/205", MONTH = "October"} %"For the case of several interacting chiral superfields the propagators %for the unconstrained superfield potentials in the 'shifted' theory, %where the supersymmetry is explicity broken, are derived in a compact %form. They are used to compute one-loop effective potential in the %general case, while a superfield calculation of renormalized effective %potential to two loops for the Wess-Zumino model is performed." @ARTICLE{dosSantos:87, AUTHOR = "Renato P. dos Santos", TITLE = "Using {REDUCE} in Supersymmetry", JOURNAL = "J. Symb. Comp.", YEAR = 1989, VOLUME = 7, PAGES = "523-525"} @PHDTHESIS{dosSantos:87a, AUTHOR = "R. P. dos Santos", TITLE = "O M\'{e}todo de Supercampos para o C\'{a}lculo de Potencial Efetivo em Modelos com Supercampos Quirais: Os Modelos de Wess e Zumino e de O'Raifeartaigh", SCHOOL = "Centro Brasileiro de Pesquisas F\'{i}sicas", YEAR = 1987} %(In Portuguese) Using the method of Superfields, the effective %potential for supersymmetric models of Wess-Zumino and of %O'Raifeartaigh is evaluated up to two-loop order. The spontaneous %supersymmetry breaking is discussed. REDUCE plays very important %role in evaluation of the Feynman superdiagrams and in %renormalization. @TECHREPORT{dosSantos:88a, AUTHOR = "Renato P. dos Santos", TITLE = "Introdu\c{c}\~{a}o ao Sistema {REDUCE} de C\'{a}lculo Alg\'{e}brico", INSTITUTION = "CBPF, Rio de Janeiro, Brazil", YEAR = 1988, NUMBER = "CBPF-NT-001/88"} %(In Portuguese) Lecture notes of a course on REDUCE. @ARTICLE{Dubowsky:75, AUTHOR = "S. Dubowsky and J. L. Grant", TITLE = "Application of Symbolic Manipulation to Time Domain Analysis of Nonlinear Dynamic Systems", JOURNAL = "Journ. of Dynamic Systems, Measurement, and Control", YEAR = 1975, NUMBER = "75-Aut-J"} @ARTICLE{Dudley:89, AUTHOR = "M. L. Dudley and R. W. James", TITLE = "{Computer-aided} Derivation of Spherical Harmonic Spectral Equations in Astrogeophyics", JOURNAL = "J. Symbolic Computation", YEAR = 1989, VOLUME = 8, NUMBER = 4, PAGES = "423-427", MONTH = "October"} @ARTICLE{Dufner:69, AUTHOR = "A. M. Dufner and Y. S. Tsai", TITLE = "Phenomenological Analysis of the $\gamma$NN* Form Factors", JOURNAL = "Phys. Rev.", YEAR = 1969, VOLUME = 168, PAGES = "1801-1809"} @INPROCEEDINGS{Dulyan:87, AUTHOR = "L. S. Dulyan", TITLE = "The Calculation of {QCD} Triangular {Feynman} Graphs in the External Gluonic Field Using {REDUCE}-2 System", BOOKTITLE = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", YEAR = 1987, VOLUME = 378, PAGES = "172-173", PUBLISHER = "Springer-Verlag"} @ARTICLE{Duncan:86, AUTHOR = "Anthony Duncan and Ralph Roskies", TITLE = "Representations of Unusual Mathematical Structures in Scientific Applications of Symbolic Computation", JOURNAL = "J. Symbolic Computation", YEAR = 1986, VOLUME = 2, NUMBER = 2, PAGES = "201-206", MONTH = "June"} %We present examples of techniques we have used to apply REDUCE to problems %in particle physics which have mathematical structures unknown to REDUCE. @PHDTHESIS{Duval:87, AUTHOR = "Dominique Duval", TITLE = "Diverses questions relatives au Calcul Formel Avec des Nombres Alg\'{e}briques", SCHOOL = "L'Universit\'{e} Scientifique, Technologique et M\'{e}dicale de Grenoble", YEAR = 1987} @ARTICLE{Earles:70, AUTHOR = "D. Earles", TITLE = "A Measurement of the Electron-Production of Muon Pairs", JOURNAL = "Phys. Rev. Lett.", YEAR = 1970, VOLUME = 25, PAGES = "129-133"} @ARTICLE{Eastwood:87, AUTHOR = "James W. Eastwood", TITLE = "Orthovec: A {REDUCE} Program for {3-D} Vector Analysis in Orthogonal Curvilinear Coordinates", JOURNAL = "Comp. Phys. Commun.", YEAR = 1987, VOLUME = 47, NUMBER = 1, PAGES = "139-147", MONTH = "October"} @TECHREPORT{Edelen:81, AUTHOR = "Dominic G. B. Edelen", TITLE = "Programs for Calculation of Isovector Fields in the {REDUCE}-2 Environment", INSTITUTION = "Center for the Application of Mathematics, Lehigh University", YEAR = 1981, NUMBER = "TBD", MONTH = "August"} @ARTICLE{Edelen:82, AUTHOR = "D. G. B. Edelen", TITLE = "Isovector Fields for Problems in the Mechanics of Solids and Fluids", JOURNAL = "Int. Journ. Eng. Sci.", YEAR = 1982, VOLUME = 20, PAGES = "803-815"} %Prolongation methods as a REDUCE package for this, available from %Center for Applications of Mathematics, Lehigh Univ., Bethlehem, PA %18015. Applications to mechanics of solids and fluids. @BOOK{Edneral:89, AUTHOR = "Viktor F. Edneral and Aleksandr P. Kryukov and Anatolii Ia. Rodionov", TITLE = "The language of the analytic computer program {REDUCE}", PUBLISHER = "Moscow, {Izd-vo}, Moskovskogo {un-ta}", YEAR = 1989} %This monograph -- first in The Soviet Union with a systematic treatment %of the analytical computer (program) REDUCE. @ARTICLE{Eisenberger:90, AUTHOR = "Moshe Eisenberger", TITLE = "Application of Symbolic Algebra to the Analysis of Plates on Variable Elastic Foundation", JOURNAL = "J. Symbolic Computation", YEAR = 1990, VOLUME = 9, NUMBER = 2, PAGES = "207-213", MONTH = "February"} @TECHREPORT{Eissfeller:86, AUTHOR = "Bernd {Ei{\ss}feller} and {G\"{u}nter} W. Hein", TITLE = "A Contribution to {3D-Operational} Geodesy", INSTITUTION = "{Universit\"{a}rer} Studiengang Vermessungswesen and {Universit\"{a}t} der Bundeswehr {M\"{u}nchen}", YEAR = 1986, NUMBER = "Heft 17", MONTH = "December"} @PHDTHESIS{Eitelbach:73, AUTHOR = "D. L. Eitelbach", TITLE = "Automatic Analysis of Problems in Elementary Mechanics", SCHOOL = "University of Illinois", YEAR = 1973} @ARTICLE{Eleuterio:82, AUTHOR = "S. M. Eleut\'{e}rio and R. V. Mendes", TITLE = "Note on Equivalence and Singularities: An Application of Computer Algebra", JOURNAL = "Journ. Comp. Phys.", YEAR = 1982, VOLUME = 48, PAGES = "150-156"} %GR equivalence, commenting on \AAman & Karlhede. @ARTICLE{Eliseev:85, AUTHOR = "V. P. Eliseev and R. N. Fedorova and V. V. Kornyak", TITLE = "A {REDUCE} Program for Determining Point and Contact {Lie} Symmetries of Differential Equations", JOURNAL = "Comp. Phys. Comm.", YEAR = 1985, VOLUME = 36, PAGES = "383-389"} %"A universal REDUCE program for obtaining the systems of %determining equations of the Lie algebra of point and contact %symmetries is proposed". @ARTICLE{Elishakoff:87, AUTHOR = "Isaac Elishakoff and Joseph Hollkamp", TITLE = "Computerized Symbolic Solution for a Nonconservative System in Which Instability Occurs by Flutter in One Range of a Parameter and by Divergence in Another", JOURNAL = "Comp. Methods in Applied Mechanics and Engineering", YEAR = 1987, VOLUME = 62, PAGES = "27-46"} %"...the problem is solved by the Galerkin method in conjunction with %computerized symbolic algebra". The system used is REDUCE. "It %carries out algebraic operations irrespective of their complexity". %Includes snatches of code and algebraic answers. Mainly %differentiation and substitution, plus a little integration. The %coefficients get rather large (18 digits or so). @ARTICLE{Elishakoff:87a, AUTHOR = "Isaac Elishakoff and Brian Couch", TITLE = "Application of Symbolic Algebra to the Instability of a Nonconservative System", JOURNAL = "J. Symbolic Computation", YEAR = 1987, VOLUME = 4, NUMBER = 3, PAGES = "391-396", MONTH = "December"} @ARTICLE{Esteban:90, AUTHOR = "E.P. Esteban and E. Ramos", TITLE = "Algebraic computing and the {Newman-Penrose} formalism", JOURNAL = "Computers in Physics", YEAR = 1990, PAGES = "285-290", MONTH = "May/June"} @ARTICLE{Falck:89, AUTHOR = "N. K. Falck and D. Graudenz and G. Kramer", TITLE = "Cross section for {five-parton} production in $e^{+} e^{-}$ annihilation", JOURNAL = "Comp. Phys. Comm.", YEAR = 1989, VOLUME = 56, PAGES = "181-198", NUMBER = 2, MONTH = "December"} @ARTICLE{Fazio:84, AUTHOR = "P. M. Fazio and G. E. Copeland", TITLE = "Cooper-Type Minima in Multipole Cross Sections of Atomic Hydrogen", JOURNAL = "Phys. Rev. Lett.", YEAR = 1984, VOLUME = 53, NUMBER = "2", MONTH = "July"} @INPROCEEDINGS{Fedorova:87, AUTHOR = "R. N. Fedorova and V. P. Gerdt and N. N. Govorun and V. P. Shirikov", TITLE = "Computer Algebra in Physical Research of {Joint Institute} for {Nuclear Research}", BOOKTITLE = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", YEAR = 1987, VOLUME = 378, PAGES = "1-10", PUBLISHER = "Springer-Verlag"} @INPROCEEDINGS{Fedorova:87a, AUTHOR = "R. N. Fedorova and V. V. Kornyak", TITLE = "Computer Algebra Application for Determining Local Symmetries of Differential Equations", BOOKTITLE = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", YEAR = 1987, VOLUME = 378, PAGES = "174-175", PUBLISHER = "Springer-Verlag"} @ARTICLE{Feldmar:86, AUTHOR = "E. Feldmar and K. S. {K\"{o}lbig}", TITLE = "{REDUCE} Procedures for the Manipulation of Generalized Power Series", JOURNAL = "Comp. Phys. Comm.", YEAR = 1986, VOLUME = 39, PAGES = "267-284"} @ARTICLE{Feuillebois:84, AUTHOR = "F. Feuillebois", TITLE = "Sedimentation in a Dispersion with Vertical Inhomogenieties", JOURNAL = "Journ. Fluid Mech.", YEAR = 1984, VOLUME = 139, PAGES = "145-171"} %Uses REDUCE and INT to evaluate some integrals in the expansion of %1/s, a small quantity. @ARTICLE{Fitch:73, AUTHOR = "John Fitch", TITLE = "Problems \#3 and \#4 in {REDUCE} and {MACSYMA}", JOURNAL = "SIGSAM Bulletin", YEAR = 1973, PAGES = "10-11"} %The algebra systems REDUCE and MACSYMA are used to solve SIGSAM %Problem \#3, the Reversion of a Double Series, and SIGSAM Problem \#4, %the Lie Transform Solution of the Harmonic Oscillator. @INPROCEEDINGS{Fitch:81, AUTHOR = "J. P. Fitch", TITLE = "User-based Integration Software", BOOKTITLE = "Proc. 1981 {ACM} Symposium on Symbolic and Algebraic Computation", YEAR = 1981, PAGES = "245-248"} @INPROCEEDINGS{Fitch:83, AUTHOR = "J. P. Fitch", TITLE = "Implementing {REDUCE} on a Microprocessor", BOOKTITLE = "Proc. {EUROCAL} 1983, Lecture Notes in Computer Science", YEAR = 1983, VOLUME = 162, PAGES = "128-136", PUBLISHER = "Springer-Verlag"} @ARTICLE{Fitch:85, AUTHOR = "J. P. Fitch", TITLE = "Solving Algebraic Problems with {REDUCE}", JOURNAL = "J. of Symbolic Computation", YEAR = 1985, VOLUME = 1, NUMBER = 2, PAGES = "211-227", MONTH = "June"} @INPROCEEDINGS{Fitch:85a, AUTHOR = "J. P. Fitch", TITLE = "Applying Computer Algebra", BOOKTITLE = "International Conference on Computer Algebra and its Application in Theory", YEAR = 1985, PAGES = "262-275"} @INPROCEEDINGS{Fitch:87, AUTHOR = "J. P. Fitch", TITLE = "Utilisation du Calcul Formel", BOOKTITLE = "Calcul Formel et Automatique", EDITOR = "P. Chenin", PUBLISHER = "Editions du {CNRS}", YEAR = 1987, PAGES = "119-136"} @INPROCEEDINGS{Fitch:87a, AUTHOR = "J. P. Fitch and R. G. Hall", TITLE = "Symbolic Computation and the Finite Element Method", BOOKTITLE = "Proc. {EUROCAL} '87, Lecture Notes in Computer Science", YEAR = 1987, VOLUME = 378, PAGES = "95-96", PUBLISHER = "Springer-Verlag"} @INPROCEEDINGS{Fitch:89, AUTHOR = "J. P. Fitch", TITLE = "Can {REDUCE} be run in parallel?", BOOKTITLE = "Proc. of {ISSAC} '89", PUBLISHER = "{ACM} Press, New York", YEAR = 1989, PAGES = "155-162"} @ARTICLE{Fitch:89a, AUTHOR = "J. Fitch", TITLE = "Compiling for Parallelism", JOURNAL = "Computer Algebra and Parallelism", EDITOR = "J. Della Dora and J. Fitch", YEAR = 1989, PAGES = "19-31", PUBLISHER = "Academic Press, London"} @TECHREPORT{Flatau:86, AUTHOR = "Piotr J. Flatau and John P. Boyd and William R. Cotton", TITLE = "Symbolic Algebra in Applied Mathematics and Geophysical Fluid Dynamics - {REDUCE} Examples", INSTITUTION = "Dept. of Atmospheric and Oceanic Science, University of Michigan, and Dept. of Atmospheric Science, Colorado State University", YEAR = 1986} @TECHREPORT{Flath:86, AUTHOR = "Dan Flath", TITLE = "Remarks on Tensor Operators", INSTITUTION = "National University of Singapore, Department of Mathematics", TYPE = "Research Report", YEAR = 1986, NUMBER = 266, MONTH = "July"} @ARTICLE{Fleischer:71, AUTHOR = "J. Fleischer", TITLE = "Partial Wave Analysis of Nucleon-Nucleon {Bethe}-{Salpeter} Equation on the Computer", JOURNAL = "Journ. of Comp. Phys.", YEAR = 1971, VOLUME = 12, PAGES = "112-123"} @ARTICLE{Fleischer:73, AUTHOR = "J. Fleischer and J. L. Gammel and M. T. Menzel", TITLE = "Matrix {Pad\'{e}} Approximants for the {1SO}- and {3PO}- Partial Waves in Nucleon-Nucleon Scattering", JOURNAL = "Phys. Rev. D", YEAR = 1973, VOLUME = 8, PAGES = "1545-1552"} @ARTICLE{Fleischer:75, AUTHOR = "J. Fleischer and J. A. Tjon", TITLE = "Bethe-{Salpeter} Equation for {J}=0 Nucleon-Nucleon Scattering with One-Boson Exchange", JOURNAL = "Nuclear Physics", YEAR = 1975, VOLUME = "B84", PAGES = "375-396"} @ARTICLE{Fogelholm:82, AUTHOR = "Rabbe Fogelholm and Inge B. Frick", TITLE = "Standard {LISP} for the {VAX:} A Provisional Implementation", JOURNAL = "{SIGSAM} Bulletin", YEAR = 1982, VOLUME = 16, NUMBER = 4, PAGES = "10-12", MONTH = "November"} @ARTICLE{Foster:89, AUTHOR = "Kenneth R. Foster and Haim H. Bau", TITLE = "Symbolic Manipulation Programs for the Personal Computer", JOURNAL = "Science", YEAR = 1989, VOLUME = 243, PAGES = "679-243", MONTH = "February"} %Reviews several algebra programs that run on small machines. Doesn't %rate the PC version of REDUCE very highly because of the small workspace. @ARTICLE{Fox:71, AUTHOR = "J. A. Fox", TITLE = "Recalculation of the Crossed Graph Contribution to the 4th Order {Lamb} Shift", JOURNAL = "Phys. Rev. D", YEAR = 1971, VOLUME = 3, PAGES = "3228-3230"} @ARTICLE{Fox:74, AUTHOR = "John A. Fox and Anthony C. Hearn", TITLE = "Analytic Computation of Some Integrals in Fourth Order Quantum Electrodynamics", JOURNAL = "Journ. Comp. Phys.", YEAR = 1974, VOLUME = 14, PAGES = "301-317"} %A program for the analytic evaluation of some parametric integrals %which occur in fourth order QED calculations is described. @ARTICLE{Franceschetti:85, AUTHOR = "G. Franceschetti and I. Pinto", TITLE = "Nonlinear Propagation and Scattering: Analytical Solution and Symbolic Code Implementation", JOURNAL = "J. Opt. Soc. Am. A", YEAR = 1985, VOLUME = 2, PAGES = "997-1006"} %Volterra series using REDUCE. Perturbation expansions. @INPROCEEDINGS{Freire:88, AUTHOR = "E. Freire and E. Gamero and E. Ponce and L. G. Franquelo", TITLE = "An Algorithm for Symbolic Computation of Center Manifolds", BOOKTITLE = "Proc. of {ISSAC} '88", PUBLISHER = "Springer-Verlag", YEAR = 1988, VOLUME = 358, PAGES = "218-230"} @INPROCEEDINGS{Freire:89, AUTHOR = "E. Freire and E. Gamero and E. Ponce", TITLE = "An Algorithm for Symbolic Computation of {Hopf} Bifurcation", BOOKTITLE = "Proc. Computers and Mathematics '89", EDITOR = "E. Kaltofen and S. M. Watt", YEAR = 1989, PAGES = "109-118", PUBLISHER = "Springer-Verlag, New York"} @TECHREPORT{Frick:82, AUTHOR = "I. G. Frick and R. Fogelholm", TITLE = "An Implementation of {Standard} {Lisp} Built on Top of {Franz Lisp}", INSTITUTION = "University of Stockholm, Institute of Physics", YEAR = 1982, TYPE = "Report", MONTH = "April"} %A Standard LISP system has been built for the VAX-11 %large-address-space computer by embedding the required %function definitions in the available Franz Lisp system %for VAX/UNIX. @ARTICLE{Fujimoto:84, AUTHOR = "Y. Fujimoto and T. Garavaglia", TITLE = "Phase Diagrams in {Scalar QED}", JOURNAL = "Physics Letters", YEAR = 1984, VOLUME = "148B", NUMBER = "1,2,3", PAGES = "220-224", MONTH = "November"} @ARTICLE{Fuzio:85, AUTHOR = "P. M. Fuzio and G. E. Copeland", TITLE = "Partial Radiative-Recombination Cross Sections for Excited States of Hydrogen", JOURNAL = "Phys. Rev. A", YEAR = 1985, VOLUME = 31, NUMBER = 1, PAGES = "187-195"} %"The squares of the dipole and quadrupole matrix elements for the %free-to-bond transitions of hydrogen uptp high bound states are %derived in closed analytic form using a method suitable for computer %algebra". bibclean-3.07/test/topt368.opt0000444000156700015670000000001212470142160015022 0ustar beebebeebe--version bibclean-3.07/test/topt136.bib0000444000156700015670000000000012470142231014741 0ustar beebebeebebibclean-3.07/test/testoptn.opt0000444000156700015670000000000012071104122015441 0ustar beebebeebebibclean-3.07/test/topt314.opt0000444000156700015670000000001612470142160015015 0ustar beebebeebe--fix-accents bibclean-3.07/test/testopti.opt0000444000156700015670000000001107342757456015473 0ustar beebebeebe--author bibclean-3.07/test/topt131.bib0000444000156700015670000000000012470142230014733 0ustar beebebeebebibclean-3.07/test/topt313.opt0000444000156700015670000000002012470142160015007 0ustar beebebeebe--file-position bibclean-3.07/test/topt120.opt0000444000156700015670000000000612470142073015012 0ustar beebebeebe-help bibclean-3.07/test/topt302.bib0000444000156700015670000000000012470142231014734 0ustar beebebeebebibclean-3.07/test/testoptg.opt0000444000156700015670000000003507342757062015470 0ustar beebebeebe-no-read-init-files -print-p bibclean-3.07/test/topt152.opt0000444000156700015670000000001212470142073015014 0ustar beebebeebe-no-quiet bibclean-3.07/test/topt370.bib0000664000156700015670000000000012663425702014760 0ustar beebebeebebibclean-3.07/test/topt143.bib0000444000156700015670000000000012470142231014737 0ustar beebebeebebibclean-3.07/test/topt361.opt0000444000156700015670000000005012470456717015035 0ustar beebebeebe--no-read-init-files --print-ISBN-table bibclean-3.07/test/topt144.bib0000444000156700015670000000000012470142231014740 0ustar beebebeebebibclean-3.07/test/topt129.opt0000444000156700015670000000002112470142073015020 0ustar beebebeebe-no-German-style bibclean-3.07/test/topt366.opt0000444000156700015670000000002612470142160015025 0ustar beebebeebe--remove-OPT-prefixes bibclean-3.07/test/topt138.bib0000444000156700015670000000000012470142231014743 0ustar beebebeebebibclean-3.07/test/topt155.opt0000444000156700015670000000001312470142073015020 0ustar beebebeebe-no-scribe bibclean-3.07/test/testisxn.bib0000444000156700015670000005406305304620236015430 0ustar beebebeebe%% /u/sy/beebe/tex/bibclean/testisxn.bib, Thu Nov 12 09:30:41 1992 %% Edit by Nelson H. F. Beebe @Misc{ISSN-test, comment = "The following ISSN values should be valid.", ISSN = "0018-9367", ISSN = "0080-3863", ISSN = "0094-3770", ISSN = "0197-3622", ISSN = "0346-914X", ISSN = "0346-914X", ISSN = "0362-613X", ISSN = "0891-2513", ISSN = "0899-7667", ISSN = "0958-9341", ISSN = "0964-5098", ISSN = "1047-5974", ISSN = "1059-5325", ISSN = "not yet available", ISSN = "", comment = "The following ISSN values have errors in them introduced by perturbing the first digit.", ISSN = "1018-9367", ISSN = "2080-3863", ISSN = "3094-3770", ISSN = "4197-3622", ISSN = "5346-914X", ISSN = "6346-914X", ISSN = "7362-613X", ISSN = "8891-2513", ISSN = "9899-7667", ISSN = "X958-9341", ISSN = "1964-5098", ISSN = "2047-5974", ISSN = "3059-5325", comment = "The following ISSN values have the wrong number of digits.", ISSN = "3", ISSN = "30", ISSN = "305", ISSN = "3059", ISSN = "3059-5", ISSN = "3059-53", ISSN = "3059-532", ISSN = "3059-5325-X", } @Misc{ISBN-test, comment = "The following ISBN values should be valid.", ISBN = "0 241 13267 3", ISBN = "0 85331 623 6", ISBN = "0 913720 72 0", ISBN = "0 948905 72 7", ISBN = "0 948905 76 X", ISBN = "0-03-063892-5", ISBN = "0-07-008845-4", ISBN = "0-07-008845-4", ISBN = "0-07-021623-1", ISBN = "0-07-026751-0", ISBN = "0-07-033508-7", ISBN = "0-07-039006-1 (hardback), 0-07-039002-9 (paperback)", ISBN = "0-07-043109-4", ISBN = "0-07-881645-9", ISBN = "0-070-15557-7", ISBN = "0-08-030713-2", ISBN = "0-12-079062-9", ISBN = "0-12-117645-2", ISBN = "0-12-117650-9", ISBN = "0-12-117650-9", ISBN = "0-12-249050-9", ISBN = "0-12-249051-7", ISBN = "0-12-257960-7", ISBN = "0-12-286160-4", ISBN = "0-12-286165-5", ISBN = "0-12-289255-0", ISBN = "0-12-305340-4", ISBN = "0-12-460515-X", ISBN = "0-12-460515-X", ISBN = "0-12-557580-7", ISBN = "0-12-697545-0", ISBN = "0-13-010778-6", ISBN = "0-13-010778-6", ISBN = "0-13-043530-9", ISBN = "0-13-049189-6", ISBN = "0-13-109802-0", ISBN = "0-13-110008-4", ISBN = "0-13-110933-2", ISBN = "0-13-120486-6", ISBN = "0-13-155045-4", ISBN = "0-13-162959-X", ISBN = "0-13-365412-5", ISBN = "0-13-472242-6", ISBN = "0-13-497074-8", ISBN = "0-13-536657-7", ISBN = "0-13-554619-2", ISBN = "0-13-567090-X", ISBN = "0-13-580944-4", ISBN = "0-13-588187-0", ISBN = "0-13-590464-1", ISBN = "0-13-590472-2", ISBN = "0-13-627258-4", ISBN = "0-13-640616-5", ISBN = "0-13-640673-4", ISBN = "0-13-640681-5", ISBN = "0-13-685835-X", ISBN = "0-13-685843-0", ISBN = "0-13-685850-3", ISBN = "0-13-685868-6", ISBN = "0-13-685876-7", ISBN = "0-13-685884-8", ISBN = "0-13-685892-9", ISBN = "0-13-685967-4", ISBN = "0-13-812611-9", ISBN = "0-13-812611-9", ISBN = "0-13-822064-6", ISBN = "0-13-825001-4", ISBN = "0-13-838012-0", ISBN = "0-13-855974-0", ISBN = "0-13-880733-7", ISBN = "0-13-912296-6", ISBN = "0-13-912296-6", ISBN = "0-13-933441-6", ISBN = "0-13-945593-0", ISBN = "0-13-949876-1", ISBN = "0-13-972167-3", ISBN = "0-13-982992-X", ISBN = "0-19-212983-X", ISBN = "0-19-505838-0", ISBN = "0-19-853387-X", ISBN = "0-19-853387-X", ISBN = "0-19-853443-4", ISBN = "0-19-853755-7 (hardback), 0-19-853756-5 (paperback)", ISBN = "0-201-05866-9", ISBN = "0-201-05992-4", ISBN = "0-201-06008-6", ISBN = "0-201-06663-7", ISBN = "0-201-06663-7", ISBN = "0-201-06672-6", ISBN = "0-201-06672-6", ISBN = "0-201-06673-4", ISBN = "0-201-06755-2", ISBN = "0-201-06824-9", ISBN = "0-201-06896-6", ISBN = "0-201-07981-X", ISBN = "0-201-08017-6", ISBN = "0-201-08319-1", ISBN = "0-201-08319-1", ISBN = "0-201-09346-4 (hardback), 0-201-09356-1 (paperback)", ISBN = "0-201-09355-3", ISBN = "0-201-09528-9", ISBN = "0-201-09591-2", ISBN = "0-201-09689-7", ISBN = "0-201-09696-X", ISBN = "0-201-09720-6", ISBN = "0-201-10174-2", ISBN = "0-201-10174-2", ISBN = "0-201-10179-3", ISBN = "0-201-10179-3", ISBN = "0-201-10331-1", ISBN = "0-201-10381-8", ISBN = "0-201-10745-7", ISBN = "0-201-10877-1", ISBN = "0-201-11114-4", ISBN = "0-201-11537-9", ISBN = "0-201-11603-0", ISBN = "0-201-11749-5", ISBN = "0-201-11938-2", ISBN = "0-201-11941-2", ISBN = "0-201-11982-X", ISBN = "0-201-12008-9", ISBN = "0-201-12078-X", ISBN = "0-201-12110-7", ISBN = "0-201-12584-6", ISBN = "0-201-12593-5", ISBN = "0-201-12649-4", ISBN = "0-201-12792-X", ISBN = "0-201-12910-8", ISBN = "0-201-12920-5", ISBN = "0-201-13046-7", ISBN = "0-201-13437-3", ISBN = "0-201-13437-3", ISBN = "0-201-13438-1", ISBN = "0-201-13438-1", ISBN = "0-201-13445-4", ISBN = "0-201-13445-4", ISBN = "0-201-13446-2", ISBN = "0-201-13446-2", ISBN = "0-201-13447-0", ISBN = "0-201-13447-0", ISBN = "0-201-13448-9", ISBN = "0-201-13448-9", ISBN = "0-201-13548-5", ISBN = "0-201-14236-8", ISBN = "0-201-14236-8", ISBN = "0-201-14396-8", ISBN = "0-201-14396-8", ISBN = "0-201-14468-9", ISBN = "0-201-15002-6", ISBN = "0-201-15198-7", ISBN = "0-201-15572-9", ISBN = "0-201-15585-0", ISBN = "0-201-15672-5", ISBN = "0-201-15673-3", ISBN = "0-201-15674-1", ISBN = "0-201-15675-X", ISBN = "0-201-15676-8", ISBN = "0-201-15680-6", ISBN = "0-201-15681-4 (hardback), 0-201-15685-7 (paperback)", ISBN = "0-201-15683-0", ISBN = "0-201-15688-1", ISBN = "0-201-15790-X", ISBN = "0-201-15790-X", ISBN = "0-201-15911-2", ISBN = "0-201-16116-8", ISBN = "0-201-16410-8", ISBN = "0-201-16411-6", ISBN = "0-201-16503-1 (hardback), 0-201-16504-X (paperback)", ISBN = "0-201-16520-1", ISBN = "0-201-16579-1 (hardback), 0-201-13232-X (paperback)", ISBN = "0-201-16643-7", ISBN = "0-201-16891-X", ISBN = "0-201-17232-1", ISBN = "0-201-17233-X", ISBN = "0-201-17234-8", ISBN = "0-201-17236-4", ISBN = "0-201-17237-2", ISBN = "0-201-17535-5", ISBN = "0-201-17535-5", ISBN = "0-201-17574-6", ISBN = "0-201-17633-5", ISBN = "0-201-17633-5", ISBN = "0-201-17634-3", ISBN = "0-201-17833-8", ISBN = "0-201-18127-4", ISBN = "0-201-18260-2", ISBN = "0-201-18261-0", ISBN = "0-201-18323-4", ISBN = "0-201-19038-9", ISBN = "0-201-19334-5 (hardback), 0-201-19330-2 (paperback)", ISBN = "0-201-19334-5", ISBN = "0-201-19560-7", ISBN = "0-201-41625-5", ISBN = "0-201-41667-0", ISBN = "0-201-50018-3", ISBN = "0-201-50061-2", ISBN = "0-201-50257-7", ISBN = "0-201-50305-0", ISBN = "0-201-50390-5", ISBN = "0-201-50391-3", ISBN = "0-201-50393-X", ISBN = "0-201-50395-6 (hardback), 0-201-51560-1 (paperback)", ISBN = "0-201-50418-9", ISBN = "0-201-50424-3", ISBN = "0-201-50814-1", ISBN = "0-201-50814-1", ISBN = "0-201-50821-4", ISBN = "0-201-50862-1", ISBN = "0-201-50868-0", ISBN = "0-201-50935-0", ISBN = "0-201-50936-9", ISBN = "0-201-50937-7", ISBN = "0-201-51001-4", ISBN = "0-201-51002-2", ISBN = "0-201-51013-8", ISBN = "0-201-51014-6", ISBN = "0-201-51035-9", ISBN = "0-201-51058-8", ISBN = "0-201-51141-X", ISBN = "0-201-51141-X", ISBN = "0-201-51249-1", ISBN = "0-201-51375-7", ISBN = "0-201-51375-7", ISBN = "0-201-51376-5", ISBN = "0-201-51392-7", ISBN = "0-201-51425-7", ISBN = "0-201-51425-7", ISBN = "0-201-51459-1", ISBN = "0-201-51505-9 (hardback), 0-201-51561-X (paperback)", ISBN = "0-201-51507-5", ISBN = "0-201-51509-1 (hardback), 0-201-51506-7 (paperback)", ISBN = "0-201-51814-7", ISBN = "0-201-52149-0 (hardback), 0-201-52150-4 (paperback)", ISBN = "0-201-52243-8", ISBN = "0-201-52251-9", ISBN = "0-201-52253-5", ISBN = "0-201-52425-2", ISBN = "0-201-52781-2", ISBN = "0-201-52810-X", ISBN = "0-201-52811-8", ISBN = "0-201-52812-6", ISBN = "0-201-52813-4", ISBN = "0-201-52899-1", ISBN = "0-201-53472-X", ISBN = "0-201-53472-X", ISBN = "0-201-53992-6", ISBN = "0-201-54611-6", ISBN = "0-201-54709-0", ISBN = "0-201-54799-6", ISBN = "0-201-54799-6", ISBN = "0-201-54848-8", ISBN = "0-201-55703-7", ISBN = "0-201-55703-7", ISBN = "0-201-56345-2", ISBN = "0-201-56882-9", ISBN = "0-201-57044-0", ISBN = "0-231-05146-8", ISBN = "0-262-01063-1", ISBN = "0-262-01077-1 (MIT Press), 0-07-000-422-6", ISBN = "0-262-01102-6", ISBN = "0-262-01114-X", ISBN = "0-262-01123-9 (hardback), 0-262-69146-9 (paperback)", ISBN = "0-262-01124-7", ISBN = "0-262-02182-X", ISBN = "0-262-02192-7", ISBN = "0-262-02226-5", ISBN = "0-262-02266-4", ISBN = "0-262-02317-2", ISBN = "0-262-02334-2", ISBN = "0-262-03141-8", ISBN = "0-262-03167-1", ISBN = "0-262-03171-X", ISBN = "0-262-03181-7", ISBN = "0-262-07083-9", ISBN = "0-262-07106-1", ISBN = "0-262-07130-4", ISBN = "0-262-08143-1", ISBN = "0-262-08157-1", ISBN = "0-262-08159-8", ISBN = "0-262-08183-0", ISBN = "0-262-10045-2", ISBN = "0-262-11139-X", ISBN = "0-262-13205-2", ISBN = "0-262-13235-4", ISBN = "0-262-13252-4", ISBN = "0-262-13257-5", ISBN = "0-262-13263-X", ISBN = "0-262-15039-5", ISBN = "0-262-16082-X", ISBN = "0-262-18117-7", ISBN = "0-262-18143-6", ISBN = "0-262-18145-2 (hardback), 0-262-68069-6 (paperback)", ISBN = "0-262-19229-2 (MIT Press) and 0-07-057290-9", ISBN = "0-262-19250-0", ISBN = "0-262-19277-2", ISBN = "0-262-19285-3", ISBN = "0-262-19288-8", ISBN = "0-262-19301-9", ISBN = "0-262-20087-2", ISBN = "0-262-21009-6", ISBN = "0-262-21009-6", ISBN = "0-262-21009-6", ISBN = "0-262-23096-8", ISBN = "0-262-23117-4", ISBN = "0-262-23139-5 (MIT), 0-07-068147-3 (McGraw-Hill)", ISBN = "0-262-23150-6 (volume two), 0-262-23154-9 (two-volume set)", ISBN = "0-262-23151-4 (volume two), 0-262-23154-9 (two-volume set)", ISBN = "0-262-23152-2", ISBN = "0-262-23157-3", ISBN = "0-262-53071-6 (paper), 0-262-03144-2 (hard)", ISBN = "0-262-56038-0", ISBN = "0-262-58072-1", ISBN = "0-262-58080-2", ISBN = "0-262-58086-1", ISBN = "0-262-61026-4", ISBN = "0-262-66070-9 (paper)", ISBN = "0-262-66071-7", ISBN = "0-316-08275-9", ISBN = "0-387-53775-9", ISBN = "0-387-70001-3", ISBN = "0-387-90144-2, 3-540-90144-2", ISBN = "0-387-96048-1, 3-540-96048-1", ISBN = "0-387-96115-1 and 3-540-96115-1", ISBN = "0-387-96527-0, 3-540-96527-0", ISBN = "0-387-96598-X (New York), 3-540-96598-X (Berlin)", ISBN = "0-387-96608-0", ISBN = "0-387-96689-7 (USA) and 3-540-96689-7 (Germany)", ISBN = "0-387-96780-X", ISBN = "0-387-96915-2", ISBN = "0-387-97145-9", ISBN = "0-387-97562-4, 3-540-97562-4", ISBN = "0-387-97562-4, 3-540-97562-4", ISBN = "0-387-97592-6, 3-540-97592-6", ISBN = "0-387-97592-6, 3-540-97592-6", ISBN = "0-387-97616-7, 3-540-97616-7", ISBN = "0-387-97621-3", ISBN = "0-387-97622-1, 3-540-97622-1", OPTISBN = "0-393-95924-47", ISBN = "0-393-95926-0", ISBN = "0-394-35678-0", ISBN = "0-394-58640-9", ISBN = "0-394-72625-1", ISBN = "0-415-07858-X", ISBN = "0-425-11690-5", ISBN = "0-442-22888-0", ISBN = "0-442-31946-0", ISBN = "0-442-31946-0", ISBN = "0-444-70521-X", ISBN = "0-444-88013-5", OPTISBN = "0-444-88768-8", ISBN = "0-452-25497-3", ISBN = "0-452-25497-3", ISBN = "0-471-53294-0", ISBN = "0-471-61857-8", ISBN = "0-471-61976-0", ISBN = "0-471-81888-7", ISBN = "0-471-83185-9", ISBN = "0-471-87569-4", ISBN = "0-471-92139-4", ISBN = "0-471-92142-4 (Wiley), 3-519-02109-9 (Teubner)", ISBN = "0-471-92910-7", ISBN = "0-521-30811-9", ISBN = "0-521-37490-1", ISBN = "0-521-37490-1", ISBN = "0-521-38475-3 (hardback), 0-521-38622-5 (paperback)", ISBN = "0-521-39338-8 (hardback), 0-521-39732-4 (paperback)", ISBN = "0-534-09198-9", ISBN = "0-672-48440-4", ISBN = "0-673-38574-4", ISBN = "0-673-38574-4", ISBN = "0-673-39773-4", ISBN = "0-691-04264-0", ISBN = "0-7167-2136-8", ISBN = "0-7458-0005-X", ISBN = "0-7458-0148-X", ISBN = "0-7923-0635-X", ISBN = "0-7923-0635-X", ISBN = "0-7923-0875-1", ISBN = "0-7923-0929-4", ISBN = "0-7923-9045-8", ISBN = "0-8053-1601-9", ISBN = "0-8092-4368-7", ISBN = "0-8162-2060-3", ISBN = "0-8186-8931-5", ISBN = "0-8186-8945-5", ISBN = "0-8218-0053-1", ISBN = "0-8218-2997-1", ISBN = "0-8218-2999-8", ISBN = "0-8230-0732-4", ISBN = "0-8230-1320-0", ISBN = "0-8230-1320-0", ISBN = "0-8230-2122-X", ISBN = "0-8230-2122-X", ISBN = "0-8352-1704-3", ISBN = "0-8352-1704-3", ISBN = "0-85484-056-7", ISBN = "0-85484-059-1", ISBN = "0-85484-085-0", ISBN = "0-86094-166-3", ISBN = "0-87484-717-6", ISBN = "0-87850-064-2", ISBN = "0-88175-096-4", ISBN = "0-88275-642-7", ISBN = "0-88385-063-X", ISBN = "0-88385-063-X", ISBN = "0-89303-424-X", ISBN = "0-89303-556-4", ISBN = "0-89579-252-4", ISBN = "0-89588-396-1", ISBN = "0-89588-396-1", ISBN = "0-898-38235-1", ISBN = "0-89871-227-0", ISBN = "0-89871-260-2", ISBN = "0-89871-270-X", ISBN = "0-89871-270-X", ISBN = "0-89871-285-8", ISBN = "0-89871-285-8", ISBN = "0-89871-286-6", ISBN = "0-89871-294-7", ISBN = "0-89871-294-7", ISBN = "0-911971-76-9", ISBN = "0-911971-67-X", ISBN = "0-911971-69-6", ISBN = "0-911971-72-6", ISBN = "0-912704-57-8", ISBN = "0-914894-65-X", ISBN = "0-914930-13-3", ISBN = "0-918035-03-1", ISBN = "0-932376-02-9", ISBN = "0-932376-02-9", ISBN = "0-937-07380-6", ISBN = "0-937175-24-2", ISBN = "0-937175-34-X", ISBN = "0-937175-35-8", ISBN = "0-937175-38-2", ISBN = "0-937175-390", ISBN = "0-937175-40-4", ISBN = "0-937175-49-8", ISBN = "0-937175-59-5", ISBN = "0-937175-70-6", ISBN = "0-937175-75-7", ISBN = "0-937175-80-3", ISBN = "0-937175-82-X", ISBN = "0-937175-84-6", ISBN = "0-937175-85-4", ISBN = "0-937175-86-2", ISBN = "0-938151-12-6", ISBN = "0-941447-00-6", ISBN = "0-9614729-8-7", ISBN = "0534-09192-X", ISBN = "1-55512-022-9", ISBN = "1-55512-069-5", ISBN = "1-55512-106-3", ISBN = "1-55512-135-7", ISBN = "1-55521-198-4", ISBN = "1-55521-198-4", ISBN = "1-55558-033-5", ISBN = "1-55558-034-3", ISBN = "1-55558-041-6 (Digital Press) and 0-13-152414-3", ISBN = "1-55558-048-3", ISBN = "1-55558-051-3", ISBN = "1-55828-016-2", ISBN = "1-55828-029-4", ISBN = "1-55828-059-6", ISBN = "1-55851-057-5", ISBN = "1-55860-069-8", ISBN = "1-55860-069-8", ISBN = "1-56131-016-6, 1-56131-017-4 (paperback)", ISBN = "1-56347-009-8", ISBN = "1-56592-001-5", ISBN = "1-56592-007-4", ISBN = "1-877751-44-8; 1-877751-52-9; 1-877751-53-7", ISBN = "1-878567-01-2", ISBN = "1-878956-07-8", ISBN = "1-878956-07-8", ISBN = "2-7296-0233-X", ISBN = "2-7296-0233-X", ISBN = "2-87085-194-4", ISBN = "2-87085-194-4", ISBN = "3-209-01061-7", ISBN = "3-209-01165-6", ISBN = "3-486-21173-0", ISBN = "3-515-04808-1", ISBN = "3-519-02279-6", ISBN = "3-519-02488-8", ISBN = "3-519-02499-3", ISBN = "3-519-03047-0", ISBN = "3-519-03507-3", ISBN = "3-540-13920-6, 0-387-13920-6", ISBN = "3-540-16807-9, 0-387-16807-9", ISBN = "3-540-18797-9", ISBN = "3-540-51211-X", ISBN = "3-540-52707-9 and 0-387-52707-9", ISBN = "3-540-54539-5 and 0-387-54539-5", ISBN = "3-540-97003-7", ISBN = "3-7785-1804-6", ISBN = "3-87439-233-3", ISBN = "3-89319-115-1", ISBN = "3-89319-115-1", ISBN = "3-89319-152-6", ISBN = "3-89319-152-6", ISBN = "3-89319-199-2", ISBN = "3-89319-199-2", ISBN = "3-89319-287-5", ISBN = "3-89319-338-3", ISBN = "3-89319-356-1", ISBN = "3-925118-46-2", ISBN = "3-925118-97-7", ISBN = "3-925118-97-7", ISBN = "3-926515-01-5", ISBN = "3-926515-01-5", ISBN = "320901191-5", ISBN = "3922715-35-4", ISBN = "4-7561-0010-4", ISBN = "4-7561-0405-3", ISBN = "5-02-014712-5", ISBN = "82-90006-07-1", ISBN = "82-90006-09-8", ISBN = "87-550-1635-9", ISBN = "87-550-1636-7", ISBN = "87-550-1637-5", ISBN = "87-550-1638-3", ISBN = "87-550-1639-1", ISBN = "87-7252-089-2", ISBN = "87-7252-089-2", ISBN = "88-08-07838-8", ISBN = "88-203-1931-4", ISBN = "88-203-1932-2", ISBN = "88-371-0583-5", ISBN = "88-85613-20-9", ISBN = "88-85613-28-4", ISBN = "9-06789-151-7", ISBN = "90-247-3220-4", ISBN = "90-6196-357-5", ISBN = "90-6196-357-5", ISBN = "90-6980-015-2", ISBN = "91-7346-218-7", ISBN = "91-7868226-6", ISBN = "91-7900-417-2", ISBN = "91-7900-635-3", ISBN = "91-7900-753-8", ISBN = "91-7970-241-4", ISBN = "981-02-0915-0", ISBN = "0-201-56882-9", ISBN = "not yet available", ISBN = "", comment = "The following ISBN values have errors in them introduced by perturbing the first digit.", ISBN = "1 241 13267 3", ISBN = "2 500 8022 1", ISBN = "3 85331 623 6", ISBN = "4 913720 72 0", ISBN = "5 948905 72 7", ISBN = "6 948905 76 X", ISBN = "7-03-063892-5", ISBN = "8-07-008845-4", ISBN = "9-07-008845-4", ISBN = "X-07-021623-1", ISBN = "1-07-026751-0", ISBN = "2-07-033508-7", ISBN = "3-07-039006-1 (hardback), 4-07-039002-9 (paperback)", ISBN = "5-07-043109-4", ISBN = "6-07-881645-9", ISBN = "7-070-15557-7", ISBN = "8-08-030713-2", ISBN = "9-12-079062-9", ISBN = "X-12-117645-2", ISBN = "1-12-117650-9", ISBN = "2-12-117650-9", comment = "The following ISBN values have the wrong number of digits.", ISBN = "2", ISBN = "2-1", ISBN = "2-12", ISBN = "2-12-1", ISBN = "2-12-11", ISBN = "2-12-117", ISBN = "2-12-1176", ISBN = "2-12-11765", ISBN = "2-12-117650", ISBN = "2-12-117650-9X", } bibclean-3.07/test/topt171.bib0000664000156700015670000000000012663425702014757 0ustar beebebeebebibclean-3.07/test/testscr4.opt0000444000156700015670000000004007342747511015364 0ustar beebebeebe-scribe -file -no-check -no-par bibclean-3.07/test/topt353.opt0000444000156700015670000000002512470142160015020 0ustar beebebeebe--no-read-init-files bibclean-3.07/test/topt160.opt0000444000156700015670000000001512470142073015016 0ustar beebebeebe-prettyprint bibclean-3.07/test/testbib7.opt0000444000156700015670000000004312317315716015333 0ustar beebebeebe-fix-accents -fix-braces -fix-math bibclean-3.07/test/topt342.bib0000444000156700015670000000000012470142232014741 0ustar beebebeebebibclean-3.07/test/topt167.opt0000444000156700015670000000001012470142073015020 0ustar beebebeebe-scribe bibclean-3.07/test/topt328.opt0000444000156700015670000000002012470142160015015 0ustar beebebeebe--max-width nnn bibclean-3.07/test/topt345.bib0000444000156700015670000000000012470142232014744 0ustar beebebeebebibclean-3.07/test/testscr3.opt0000444000156700015670000000002207342721621015355 0ustar beebebeebe-scribe -no-check bibclean-3.07/test/topt354.opt0000444000156700015670000000003112470142160015016 0ustar beebebeebe--no-remove-OPT-prefixes bibclean-3.07/test/topt339.bib0000444000156700015670000000000012470142232014747 0ustar beebebeebebibclean-3.07/test/topt169.opt0000444000156700015670000000001212470142073015024 0ustar beebebeebe-warnings bibclean-3.07/test/topt104.bib0000444000156700015670000000000012470142225014737 0ustar beebebeebebibclean-3.07/test/topt326.opt0000444000156700015670000000002512470142160015020 0ustar beebebeebe--keep-string-spaces bibclean-3.07/test/topt115.opt0000444000156700015670000000001412470142073015015 0ustar beebebeebe-fix-braces bibclean-3.07/test/testoptr.opt0000444000156700015670000000001412071433400015456 0ustar beebebeebe-fix-braces bibclean-3.07/test/topt337.bib0000444000156700015670000000000012470142232014745 0ustar beebebeebebibclean-3.07/test/testopt5.opt0000444000156700015670000000001607342757426015411 0ustar beebebeebe-bogus-option bibclean-3.07/test/topt112.opt0000444000156700015670000000002512470142073015014 0ustar beebebeebe-error-log /dev/null bibclean-3.07/test/testoptu.opt0000444000156700015670000000003012112253177015466 0ustar beebebeebe-fix-math -max-width 0 bibclean-3.07/test/topt330.bib0000444000156700015670000000000012470142231014735 0ustar beebebeebebibclean-3.07/test/testopt2.opt0000444000156700015670000000015407342757025015404 0ustar beebebeebe-G -al -c -d -fil -fix-f -fix-i -fix-n -keep-l -keep-pa -keep-pr -keep-sp -keep-st -pa -pre -rea -rem -s -w bibclean-3.07/test/topt103.bib0000444000156700015670000000000012470142225014736 0ustar beebebeebebibclean-3.07/test/topt321.opt0000444000156700015670000000002612470142160015014 0ustar beebebeebe--init-file /dev/null bibclean-3.07/token.h0000644000156700015670000000221013565537666013416 0ustar beebebeebe#ifndef TOKEN_H_DEFINED_ #define TOKEN_H_DEFINED_ #if !defined(MAX_TOKEN) /* ** The value of MAX_TOKEN was originally 4093, but that proved too ** small for many abstract and tableofcontents strings. ** ** A scan of more than 1,500,000 entries in the TeX User Group and ** BibNet Project archives found that the longest complete BibTeX ** entry was less than 43,200 characters, with a longest field value ** of abour 40,600 characters, so a 64KB limit, less a bit ** of overhead, should be ample for future growth. ** ** Modern BibTeX implementations (2007 and later) have larger tables, ** and dynamic array resizing, so the old arbitrary limits on string ** sizes really do need to be relaxed, and reset to reasonable values ** based on real experience. */ #define MAX_TOKEN 65525 /* internal buffer size; no BibTeX string value may be larger than this. */ #endif /* !defined(MAX_TOKEN) */ #define MAX_TOKEN_SIZE (MAX_TOKEN + 3) /* Arrays are always dimensioned MAX_TOKEN_SIZE, so as to have space for an additional pair of braces and a trailing NUL, without tedious subscript checking in inner loops. */ #endif /* TOKEN_H_DEFINED_ */ bibclean-3.07/rofvms.awk0000644000156700015670000000350205277050062014127 0ustar beebebeebe# rofvms.awk -*-awk-*- # Filter to convert nroff -man output to VMS .hlp file format according # to the rules: # # 13 or more consecutive blank lines are reduced to 1 # 3--12 consecutive blank lines are dropped # 2 consecutive blank lines are reduced to 1 # All others output verbatim. # # The peculiar number 13 handles the case where a paragraph break # coincides with a page break. # # In addition, whenever a line in non-blank in column 1, and then # previous line was blank, we insert a blank line; this provides # vertical space before a section heading. # # The output of nroff -man on different UNIX systems is regrettably # quite variable in appearance; this file is likely to need # modifications on other than Sun OS. # # Too bad nroff doesn't have an option to suppress titling! # # The NAME section head becomes 1 BIBCLEAN, and others become # 2 XXX followed by XXX. # [06-Nov-1992] # Match and delete page headers: xxx(nnn) .... xxx(nnn) /^[A-Za-z][-_A-Za-z0-9]*\([0-9A-Za-z]+\).*[A-Za-z][-_A-Za-z0-9]*\([0-9A-Za-z]+\)$/ {next;} # Match and delete page footers: Sun Release ...nnn # These vary from system to system, so extra patterns may be needed here /^Sun Release.*[0-9]+$/ {next;} # Sun OS x.x /^Printed.*[0-9]+$/ {next;} # BSD 4.3 /^Page [0-9].*$/ {next;} # Silicon Graphics /^Version.*Last change:/ {next;}# bibclean.txt on SunOS 4.1.1 # Match all lines and do blank line processing { if (NF == 0) # blank line nb++; else # non blank line { if ((nb == 1) || (nb == 2) || (nb >= 13)) printf("\n"); else if ((nb > 0) && (substr($0,1,1) != " ") && (nf > 0)) printf("\n"); if ($0 == "NAME") # level 1 header $0 = "1 BIBCLEAN"; else if (substr($0,1,1) != " ") # level 2 header { header = $0; gsub(/ /,"-",header); $0 = "2 " header "\n " $0; } printf("%s\n",$0); nb = 0; nf++; } } bibclean-3.07/do.c0000644000156700015670000024250314104503406012655 0ustar beebebeebe#include #include "xctype.h" #include "xlimits.h" #include "xstdbool.h" #include "xstdlib.h" #include "xstring.h" #include "xunistd.h" RCSID("$Id: do.c,v 1.12 2014/04/03 18:02:49 beebe Exp beebe $") #include "ch.h" #include "delete.h" #include "keybrd.h" #include "pattern.h" #include "token.h" #include "toklst.h" #include "yesorno.h" #include "match.h" /* must come AFTER yesorno.h */ #include "typedefs.h" /* must come AFTER match.h */ #define APPEND_CHAR(s,n,c) (s[n] = (char)c, s[n+1] = (char)'\0') /* append c and NUL to s[] */ #if !defined(BIBCLEAN_SUFFIX) #define BIBCLEAN_EXT "BIBCLEANEXT" /* environment variable */ #endif #define EMPTY_STRING(s) (s[0] = (char)'\0', s) /* for return (EMPTY_STRING(foo))*/ #define GETDEFAULT(envname,default) \ ((getenv(envname) != (char *)NULL) ? getenv(envname) : default) #if !defined(INITFILE_EXT) #define INITFILE_EXT ".ini" /* file extension for initialization files */ #endif #define is_fieldvalueseparator(c) (((int)(c) == (int)'=') || ((int)(c) == (int)':')) #define KEEP_PREAMBLE_SPACES() ((in_preamble == YES) && \ (keep_preamble_spaces == YES)) #define KEEP_STRING_SPACES() ((in_string == YES) && \ (keep_string_spaces == YES)) #if defined(MAX) #undef MAX #endif #define MAX(a,b) (((a) > (b)) ? (a) : (b)) #if !defined(MAX_LINE) #define MAX_LINE 10240 /* maximum line length in initialization file */ #endif /* !defined(MAX_LINE) */ #define NOOP /* dummy statement */ #if OS_PCDOS #define OPEN_MODE_R "rb" /* bibliography files are read in binary mode */ /* so that we can handle Ctl-Z properly */ #else #define OPEN_MODE_R "r" #endif #define SKIP_SPACE(p) while (Isspace((unsigned char)*p)) ++p #define TABLE_CHUNKS 25 /* how many table entries to allocate at once */ #define TOLOWER(c) (Isupper((unsigned char)(c)) ? \ tolower(((unsigned char)(c))) : (int)(((unsigned char)(c)))) NAME_PAIR month_pair[] = { {"January", "jan"}, {"February", "feb"}, {"March", "mar"}, {"April", "apr"}, {"May", "may"}, {"June", "jun"}, {"July", "jul"}, {"August", "aug"}, {"September", "sep"}, {"October", "oct"}, {"November", "nov"}, {"December", "dec"}, {"Jan.", "jan"}, {"Feb.", "feb"}, {"Mar.", "mar"}, {"Apr.", "apr"}, {"Jun.", "jun"}, {"Jul.", "jul"}, {"Aug.", "aug"}, {"Sep.", "sep"}, {"Sept.", "sep"}, {"Oct.", "oct"}, {"Nov.", "nov"}, {"Dec.", "dec"}, {"Jan", "jan"}, {"Feb", "feb"}, {"Mar", "mar"}, {"Apr", "apr"}, {"Jun", "jun"}, {"Jul", "jul"}, {"Aug", "aug"}, {"Sep", "sep"}, {"Sept", "sep"}, {"Oct", "oct"}, {"Nov", "nov"}, {"Dec", "dec"}, {(const char*)NULL, (const char*)NULL}, }; #if !defined(MAX_KEYWORD) #define MAX_KEYWORD 200 /* about 8 times the default size */ #endif static NAME_PAIR field_pair[MAX_KEYWORD] = { /* field name case change table */ { "ansi-standard-number", "ANSI-standard-number" }, { "book-doi", "book-DOI" }, /* Digital Object Identifier */ { "book-url", "book-URL" }, /* WWW: Uniform Resource Locator */ { "coden", "CODEN" }, /* 5- and 6-letter standard journal identifier */ { "doi", "DOI" }, /* Digital Object Identifier */ { "ieee-standard-number", "IEEE-standard-number" }, { "isbn", "ISBN" }, /* old-style (10-digit) International Standard Book Number */ { "journal-url", "journal-URL" }, /* WWW: Uniform Resource Locator */ { "isbn-13", "ISBN-13" }, /* new-style (13-digit) International Standard Book Number */ { "iso-standard-number", "ISO-standard-number" }, { "issn", "ISSN" }, /* International Standard Serials Number */ { "issn-l", "ISSN-L" }, /* linking International Standard Serials Number */ { "lccn", "LCCN" }, /* Library of Congress catalog number */ { "mrclass", "MRclass" }, /* Math Reviews class */ { "mrnumber", "MRnumber" }, /* Math Reviews number */ { "mrreviewer", "MRreviewer" }, /* Math Reviews reviewer */ { "uri", "URI" }, /* WWW: Uniform Resource Identifier */ { "url", "URL" }, /* WWW: Uniform Resource Locator */ { "urn", "URN" }, /* WWW: Uniform Resource Name */ { "xxansi-standard-number", "xxANSI-standard-number" }, { "xxcoden", "xxCODEN" }, { "xxdoi", "xxDOI" }, { "xxieee-standard-number", "xxIEEE-standard-number" }, { "xxisbn", "xxISBN" }, { "xxiso-standard-number", "xxISO-standard-number" }, { "xxissn", "xxISSN" }, { "xxmrclass", "xxMRclass" }, { "xxmrnumber", "xxMRnumber" }, { "xxmrreviewer", "xxMRreviewer" }, { "xxuri", "xxURI" }, { "xxurl", "xxURL" }, { "xxurn", "xxURN" }, { "zmclass", "ZMclass" }, { "zmnumber", "ZMnumber" }, { "zmreviewer", "ZMreviewer" }, { (const char*)NULL, (const char*)NULL }, }; extern YESorNO align_equals; /* NO: left-adjust equals */ extern int at_level; /* @ nesting level */ extern int brace_level; /* curly brace nesting level */ extern YESorNO brace_math; /* NO: leave mixed-case math text untouched */ extern YESorNO check_values; /* NO: suppress value checks */ extern int close_char; /* BibTeX entry closing; may */ /* be right paren or brace */ extern char current_entry_name[]; /* entry name */ extern char current_field[]; /* field name */ extern char current_key[]; /* string value */ extern char current_value[]; /* string value */ extern YESorNO delete_empty_values; /* YES: delete empty values */ extern YESorNO discard_next_comma; /* YES: deleting field/value */ extern YESorNO eofile; /* set to YES at end-of-file */ extern int field_indentation; extern FILE *fpin; /* input file pointer */ extern YESorNO in_preamble; /* YES: in @Preamble{...} */ extern YESorNO in_string; /* YES: in @String{...} */ extern YESorNO in_value; /* YES: in value string */ extern YESorNO is_parbreak; /* get_next_non_blank() sets */ extern YESorNO keep_linebreaks; /* YES: keep linebreaks in values */ extern YESorNO keep_parbreaks; /* YES: keep parbreaks in values */ extern YESorNO keep_preamble_spaces; /* YES: keep spaces in @Preamble{} */ extern YESorNO keep_spaces; /* YES: keep spaces in values */ extern YESorNO keep_string_spaces; /* YES: keep spaces in @String{} */ extern int non_white_chars; /* used to test for legal @ */ extern YESorNO parbreaks; /* NO: parbreaks forbidden */ /* in strings and entries */ extern PATTERN_NAMES pattern_names[]; extern YESorNO prettyprint; /* NO: do lexical analysis */ extern char *program_name; /* set to argv[0] */ extern YESorNO print_patterns; /* YES: print value patterns */ extern YESorNO read_initialization_files;/* -[no-]read-init-files sets */ extern YESorNO remove_OPT_prefixes; /* YES: remove OPT prefix */ extern YESorNO rflag; /* YES: resynchronizing */ extern YESorNO Scribe; /* Scribe format input */ extern char shared_string[]; extern FILE *stdlog; /* usually stderr */ extern IO_PAIR token_start; /* used for # line output */ extern IO_PAIR the_entry; /* used in error messages */ extern IO_PAIR the_file; /* used in error messages */ extern IO_PAIR the_value; /* used in error messages */ extern int value_indentation; extern YESorNO wrapping; /* NO: verbatim output */ void do_files ARGS((int argc_, char *argv_[])); void do_keyword_file ARGS((/*@null@*/ const char *pathlist, /*@null@*/ const char *name)); void do_other ARGS((void)); void do_print_keyword_table ARGS((void)); extern YESorNO apply_function ARGS((const char *option_, OPTION_FUNCTION_ENTRY table_[])); extern void check_length ARGS((size_t n_)); extern void check_key ARGS((void)); extern void check_chapter ARGS((void)); extern void check_CODEN ARGS((void)); extern void check_DOI ARGS((void)); extern void check_ISBN ARGS((void)); extern void check_ISBN_13 ARGS((void)); extern void check_ISSN ARGS((void)); extern void check_ISSN_L ARGS((void)); extern void check_month ARGS((void)); extern void check_number ARGS((void)); extern void check_pages ARGS((void)); extern void check_other ARGS((void)); extern void check_URL ARGS((void)); extern void check_volume ARGS((void)); extern void check_year ARGS((void)); extern void do_args ARGS((int argc_, char *argv_[])); extern void do_initfile ARGS((/*@null@*/ const char *pathlist_,/*@null@*/ const char *name_)); extern void error ARGS((const char *msg_)); /*@noreturn@*/ extern void fatal ARGS((const char *msg_)); /*@null@*/ extern char *findfile ARGS((/*@null@*/ const char *pathlist_, /*@null@*/ const char *name_)); extern void finish ARGS((int status)); extern void fix_math_spacing ARGS((void)); extern void fix_month ARGS((void)); extern void fix_namelist ARGS((void)); extern void fix_pages ARGS((void)); extern void fix_title ARGS((void)); extern void free_pattern_table_entries ARGS((PATTERN_TABLE *pt_)); extern int get_char ARGS((void)); /*@null@*/extern char *get_line ARGS((FILE *fp_)); extern int get_linebreak ARGS((void)); extern int get_next_non_blank ARGS((void)); extern char *initialization_file_name; extern bool is_idchar ARGS((int c_)); extern bool is_optionprefix ARGS((int c)); extern void out_at ARGS((void)); extern void out_c ARGS((int c_)); extern void out_flush ARGS((void)); extern void out_newline ARGS((void)); extern void out_s ARGS((const char *s_)); extern void out_spaces ARGS((int n_)); extern void out_string ARGS((token_t type_, const char *token_)); extern void out_token ARGS((token_t type_, const char *token_)); extern void out_with_error ARGS((const char *s_,const char *msg_)); extern void out_with_parbreak_error ARGS((char *s_)); extern void put_back ARGS((int c_)); extern FILE *tfopen ARGS((const char *filename_, const char *mode_)); extern void warning ARGS((const char *msg_)); YESorNO German_style = NO; /* YES: " inside braced string value obeys german.sty style */ static long space_count = 0L; /* count of spaces in do_optional_space() */ static char Scribe_close_delims[] = "}])>'\"`"; static char Scribe_open_delims[] = "{[(<'\"`"; static void add_keyword ARGS((const char *the_old, const char *the_new)); static void add_one_keyword ARGS((const char *the_old, const char *the_new, size_t where)); static void add_one_pattern ARGS((PATTERN_TABLE *pt_, const char *fieldname_, const char *pattern_, /*@null@*/ const char *msg_)); static void add_pattern ARGS((const char *fieldname_, const char *pattern_, /*@null@*/ const char *msg_)); static void append_value ARGS((const char *s_)); static void do_at ARGS((void)); static void do_BibTeX_entry ARGS((void)); static void do_BibTeX_value ARGS((void)); static void do_BibTeX_value_1 ARGS((void)); static void do_BibTeX_value_2 ARGS((void)); static void do_close_brace ARGS((void)); static void do_comma ARGS((void)); static void do_entry_name ARGS((void)); static void do_equals ARGS((void)); static void do_escapes ARGS((char *s_)); static void do_field ARGS((void)); static YESorNO do_field_value_pair ARGS((void)); static void do_fileinit ARGS((const char *bibfilename_)); static void do_group ARGS((void)); static void do_key_name ARGS((void)); static void do_new_pattern ARGS((char *s_)); static void do_newline ARGS((void)); static void do_one_file ARGS((FILE *fp_)); static void do_open_brace ARGS((void)); static void do_optional_inline_comment ARGS((void)); static void do_optional_space ARGS((void)); static void do_preamble ARGS((void)); static void do_preamble_2 ARGS((void)); static void do_Scribe_block_comment ARGS((void)); static void do_Scribe_close_delimiter ARGS((void)); static void do_Scribe_comment ARGS((void)); static void do_Scribe_entry ARGS((void)); static void do_Scribe_open_delimiter ARGS((void)); static void do_Scribe_separator ARGS((void)); static void do_Scribe_value ARGS((void)); static void do_single_arg ARGS((char *s_)); static void do_space ARGS((void)); static void do_string ARGS((void)); static void do_string_2 ARGS((void)); static void enlarge_table ARGS((PATTERN_TABLE *table_)); static void flush_inter_entry_space ARGS((void)); static char *get_braced_string ARGS((void)); static char *get_digit_string ARGS((void)); static char *get_identifier_string ARGS((void)); static char *get_inline_comment ARGS((void)); static char *get_optional_space ARGS((void)); static int get_parbreak ARGS((void)); static char *get_quoted_string ARGS((void)); static char *get_Scribe_delimited_string ARGS((void)); static char *get_Scribe_identifier_string ARGS((void)); static char *get_Scribe_string ARGS((void)); static char *get_simple_string ARGS((void)); /*@null@*/ static char *get_token ARGS((/*@null@*/ char *s_, char **nextp_, const char *terminators_)); static void new_entry ARGS((void)); static void new_io_pair ARGS((IO_PAIR *pair_)); static void new_position ARGS((POSITION *position_)); static void out_close_brace ARGS((void)); static void out_comma ARGS((void)); static void out_complex_value ARGS((void)); static void out_equals ARGS((void)); static void out_field ARGS((void)); static void out_open_brace ARGS((void)); static void out_other ARGS((const char *s_)); static void out_value ARGS((void)); static void prt_pattern ARGS((const char *fieldname_, /*@null@*/ const char *pattern_, /*@null@*/ const char *msg_)); static void put_back_string ARGS((const char *s_)); static void trim_value ARGS((void)); #if defined(HAVE_STDC) static void add_keyword(const char *the_old, const char *the_new) #else /* K&R style */ static void add_keyword(the_old, the_new) const char *the_old; const char *the_new; #endif { /* Search the keyword_range[] table circularly from the last search position for the next non-empty slot matching the_old, and install the new pair (the_old, the_new) there. Otherwise, add the pair at the end, if enough space remains. */ static int error_count = 0; size_t k; static size_t start = (size_t) 0; /* Silently ignore invalid keyword pairs */ if (the_old == (const char *)NULL) return; else if (the_new == (const char *)NULL) return; if (the_old[0] == '-') start = 0; /* because deletions must always find the first match */ for (k = start; (k < MAX_KEYWORD) && (field_pair[k].old_name != (const char *)NULL); ++k) { if (STREQUAL(field_pair[k].old_name, the_old)) { add_one_keyword(the_old, the_new, k); start = k; return; } else if ((the_old[0] == '-') && STREQUAL(field_pair[k].old_name, the_old + 1)) { /* then `delete' this entry by changing its begin prefix to start with a hyphen */ field_pair[k].old_name = Strdup(the_old); start = k; return; } } /* If we fell through, then restart the search in the beginning of the table */ for (k = 0; (k < start) && (field_pair[k].old_name != (const char *)NULL); ++k) { if (STREQUAL(field_pair[k].old_name, the_old)) { add_one_keyword(the_old, the_new, k); start = k; return; } else if ((the_old[0] == '-') && STREQUAL(field_pair[k].old_name, the_old + 1)) { /* then `delete' this entry by changing its begin prefix to start with a hyphen */ field_pair[k].old_name = Strdup(the_old); start = k; return; } } /* If we fell through, then add the new entry at the first deleted entry, or after the last used entry */ for (k = 0; ((k < MAX_KEYWORD) && (field_pair[k].old_name != (const char *)NULL) && (field_pair[k].old_name[0] != '\0')); ++k) continue; if (k < (MAX_KEYWORD - 1)) /* then have space to store this new entry */ { start = k; add_one_keyword(the_old, the_new, k); } else if (++error_count == 1) /* no more than one error message */ (void)fprintf(stdlog, "More than %lu keywords fills internal table\n", (unsigned long)MAX_KEYWORD); } #if defined(HAVE_STDC) static void add_one_keyword(const char *the_old, const char *the_new, size_t where) #else /* K&R style */ static void add_one_keyword(the_old, the_new, where) const char *the_old; const char *the_new; size_t where; #endif { /* add an entry at slot where, without bounds checking */ if (field_pair[where].old_name != (const char *)NULL) FREE(field_pair[where].old_name); if (field_pair[where].new_name != (const char *)NULL) FREE(field_pair[where].new_name); field_pair[where].old_name = (the_old == (const char *)NULL) ? the_old : Strdup(the_old); field_pair[where].new_name = (the_new == (const char *)NULL) ? the_new : Strdup(the_new); } #if defined(HAVE_STDC) static void add_one_pattern(PATTERN_TABLE *pt, const char *fieldname, const char *pattern, /*@null@*/ const char *message) #else /* K&R style */ static void add_one_pattern(pt,fieldname,pattern,message) PATTERN_TABLE *pt; const char *fieldname; const char *pattern; /*@null@*/ const char *message; #endif { if (STREQUAL(pattern,"")) /* then clear pattern table */ free_pattern_table_entries(pt); else /* otherwise add new pattern */ { int m; /* index into pt->patterns[] */ if (pt->current_size == pt->maximum_size) /* then table full */ enlarge_table(pt); for (m = 0; m < pt->current_size; ++m) { /* Make sure this is not a duplicate; if it is, and its message */ /* is the same, then we just ignore the request. Duplicates */ /* are possible when the user and system search paths overlap. */ if (STREQUAL(pattern,pt->patterns[m].pattern)) { /* duplicate pattern found */ if (((pt->patterns[m].message) != (char*)NULL) && (message != (char*)NULL) && STREQUAL(message,pt->patterns[m].message)) return; /* messages duplicate too */ if (pt->patterns[m].message != (const char *)NULL) FREE(pt->patterns[m].message); pt->patterns[m].message = (message == (char*)NULL) ? message : (const char*)Strdup(message); /* replace message string */ prt_pattern(fieldname,pattern,message); return; } } /* We have a new and distinct pattern and message, so save them */ pt->patterns[pt->current_size].pattern = Strdup(pattern); pt->patterns[pt->current_size++].message = (message == (char*)NULL) ? message : (const char*)Strdup(message); } prt_pattern(fieldname,pattern,message); } #if defined(HAVE_STDC) static void add_pattern(const char *fieldname, const char *pattern, /*@null@*/ const char *message) #else /* K&R style */ static void add_pattern(fieldname,pattern,message) const char *fieldname; const char *pattern; /*@null@*/ const char *message; #endif { int k; /* index into pattern_names[] */ for (k = 0; pattern_names[k].name != (const char*)NULL; ++k) { /* find the correct pattern table */ if (stricmp(pattern_names[k].name,fieldname) == 0) { /* then found the required table */ add_one_pattern(pattern_names[k].table,fieldname,pattern,message); return; } } /* If we get here, then the pattern name is not in the built-in list, so create a new entry in pattern_names[] if space remains */ if (k >= (int)((MAX_PATTERN_NAMES - 1))) { /* too many pattern types */ (void)fprintf(stdlog, "%s Out of memory for pattern name [%s] -- pattern ignored\n", WARNING_PREFIX, fieldname); } else { /* sufficient table space remains */ pattern_names[k].name = Strdup(fieldname); /* add new table entry */ pattern_names[k].table = (PATTERN_TABLE*)malloc(sizeof(PATTERN_TABLE)); if (pattern_names[k].table == (PATTERN_TABLE*)NULL) fatal("Out of memory for pattern tables"); pattern_names[k].table->patterns = (MATCH_PATTERN*)NULL; pattern_names[k].table->current_size = 0; pattern_names[k].table->maximum_size = 0; add_one_pattern(pattern_names[k].table,fieldname,pattern,message); pattern_names[k+1].name = (char*)NULL; /* mark new end of table */ pattern_names[k+1].table = (PATTERN_TABLE*)NULL; } } #if defined(HAVE_STDC) static void append_value(const char *s) #else /* K&R style */ static void append_value(s) const char *s; #endif { size_t n_cv = strlen(current_value); size_t n_s = strlen(s); if ((n_cv + n_s) < MAX_TOKEN) (void)strcpy(¤t_value[n_cv],s); else /* string too long; concatenate into parts */ { out_s(current_value); (void)strcpy(current_value,s); out_with_error(" # ","Value too long for field ``%f''"); } } static void do_at(VOID) /* parse @name{...} */ { int c; token_start = the_file; /* remember location of token start */ c = get_char(); the_entry = the_file; if ((non_white_chars == 1) && (c == (int)'@')) { at_level++; out_at(); if (brace_level != 0) { error( "@ begins line, but brace level is not zero after entry ``@%e{%k,''"); brace_level = 0; } } else if (c != EOF) { out_c(c); out_with_error("", "Expected @name{...} after entry ``@%e{%k,''"); } } static void do_BibTeX_entry(VOID) { /************************************************************* Parse a BibTeX entry, one of: @entry-name{key,field=value,field=value,...,} @string{name=value} @preamble{...} *************************************************************/ new_entry(); do_at(); if ((rflag == YES) || (eofile == YES)) return; do_optional_space(); if (prettyprint == YES) out_c(DELETE_WHITESPACE); /* discard any space that we found */ do_entry_name(); if (rflag == YES) return; if (STREQUAL(current_entry_name,"Include")) do_group(); else if (STREQUAL(current_entry_name,"Preamble")) do_preamble(); else if (STREQUAL(current_entry_name,"String")) do_string(); else /* expect @name{key, field = value, ... } */ { do_optional_space(); if (prettyprint == YES) out_c(DELETE_WHITESPACE); /* discard any space that we found */ do_open_brace(); if (rflag == YES) return; do_optional_space(); do_key_name(); if (rflag == YES) return; do_optional_space(); do_comma(); if (rflag == YES) return; do_optional_space(); while (do_field_value_pair() == YES) { do_optional_space(); do_comma(); /* this supplies any missing optional comma */ if ((rflag == YES) || (eofile == YES)) return; do_optional_space(); } if (rflag == YES) return; do_optional_space(); do_close_brace(); } flush_inter_entry_space(); } /*********************************************************************** BibTeX field values can take several forms, as illustrated by this simple BNF grammar: BibTeX-value-string: simple-string | simple-string # BibTeX-value-string simple-string: "quoted string" | {braced-string} | digit-sequence | alpha-sequence | ***********************************************************************/ static void do_BibTeX_value(VOID) /* process BibTeX value string */ { if (prettyprint == YES) do_BibTeX_value_1(); else do_BibTeX_value_2(); } static void do_BibTeX_value_1(VOID) /* process BibTeX value string */ { /* for prettyprinted output */ /* In order to support string value checking, we need to collect complete values, including intervening inline comments, which we bracket by magic delimiters so they can be ignored during pattern matching, and restored on output. Space between values is simply discarded. */ int c; the_value = the_file; current_value[0] = '\0'; append_value(get_simple_string()); do_optional_inline_comment(); while ((c = get_char(), c) == (int)'#') { if (KEEP_PREAMBLE_SPACES()) append_value("#"); else if (KEEP_STRING_SPACES()) append_value("#"); else append_value(" # "); do_optional_inline_comment(); append_value(get_simple_string()); do_optional_inline_comment(); } put_back(c); out_value(); } static void do_BibTeX_value_2(VOID) /* process BibTeX value string */ { /* for lexical analysis output */ int c; the_value = the_file; (void)strcpy(current_value,get_simple_string()); out_string((current_value[0] == '"') ? TOKEN_VALUE : TOKEN_ABBREV, current_value); do_optional_space(); while ((c = get_char(), c) == (int)'#') { out_string(TOKEN_SPACE," "); out_string(TOKEN_SHARP,"#"); out_string(TOKEN_SPACE," "); do_optional_space(); (void)strcpy(current_value,get_simple_string()); out_string((current_value[0] == '"') ? TOKEN_VALUE : TOKEN_ABBREV, current_value); do_optional_space(); } put_back(c); } static void do_close_brace(VOID) /* parse level 1 closing brace or parenthesis */ { int c; c = get_char(); if (c == EOF) return; else if (c == close_char) { if (c == (int)')') brace_level--; /* get_char() could not do this for us */ out_close_brace(); /* standardize parenthesis to brace */ if (brace_level != 0) out_with_error("", "Non-zero brace level after @name{...} processed. Last key = ``%k''"); } else /* raise error and try to resynchronize */ { out_c(c); out_with_error("", "Expected closing brace or parenthesis in entry ``@%e{%k,''"); } } static void do_comma(VOID) { int c; /* Parse a comma, or an optional comma before a closing brace or parenthesis; an omitted legal comma is supplied explicitly. A newline is output after the comma so that field = value pairs appear on separate lines. */ the_value = the_file; c = get_char(); if (c == EOF) NOOP; else if (c == (int)',') { if (discard_next_comma == NO) { out_comma(); out_newline(); } } else if (c == close_char) { /* supply missing comma for last field = value pair*/ if (c == (int)')') brace_level--; /* get_char() could not do this for us */ if (brace_level == 0) /* reached end of bibliography entry */ { if (c == (int)')') brace_level++; /* put_back() could not do this for us */ put_back(c); if (discard_next_comma == NO) { out_comma(); out_newline(); } } else /* no comma, and still in bibliography entry */ { out_c(c); out_with_error("","Non-zero brace level after @name{...} \ processed. Last entry = ``@%e{%k,''"); } } else /* raise error and try to resynchronize */ { out_c(c); out_with_error("", "Expected comma after last field ``%f''"); } discard_next_comma = NO; } static void do_entry_name(VOID) /* process BibTeX entry name */ { int c; size_t k; int n; static NAME_PAIR entry_pair[] = { /* entry name case change table */ { "Deathesis", "DEAthesis" }, { "Inbook", "InBook" }, { "Incollection", "InCollection" }, { "Inproceedings", "InProceedings" }, { "Mastersthesis", "MastersThesis" }, { "Phdthesis", "PhdThesis" }, { "Techreport", "TechReport" }, }; token_start = the_file; /* remember location of token start */ for (k = 0; ((c = get_char(), c) != EOF) && is_idchar(c); ++k) { /* store capitalized entry name */ if ((k == 0) && !Isalpha(c)) error("Non-alphabetic character begins an entry name"); if ((k == 0) && Islower(c)) c = toupper(c); else if ((k > 0) && Isupper(c)) c = tolower(c); if ((parbreaks == NO) && (is_parbreak == YES)) { APPEND_CHAR(current_entry_name,k,c); out_with_parbreak_error(current_entry_name); return; } if (k >= MAX_TOKEN) { APPEND_CHAR(current_entry_name,k,c); out_with_error(current_entry_name, "@entry_name too long"); return; } current_entry_name[k] = (char)c; } current_entry_name[k] = (char)'\0'; if (c != EOF) put_back(c); /* Substitute a few entry names that look better in upper case */ for (n = 0; n < (int)(sizeof(entry_pair)/sizeof(entry_pair[0])); ++n) if (STREQUAL(current_entry_name,entry_pair[n].old_name)) (void)strcpy(current_entry_name,entry_pair[n].new_name); if (prettyprint == YES) out_s(current_entry_name); else if (STREQUAL(current_entry_name,"Include")) out_token(TOKEN_INCLUDE, current_entry_name); else if (STREQUAL(current_entry_name,"Preamble")) out_token(TOKEN_PREAMBLE, current_entry_name); else if (STREQUAL(current_entry_name,"String")) out_token(TOKEN_STRING, current_entry_name); else out_token(TOKEN_ENTRY, current_entry_name); check_length(k); } static void do_equals(VOID) /* process = in field = value */ { int c; the_value = the_file; token_start = the_file; /* remember location of token start */ c = get_char(); if (c == EOF) NOOP; else if (c == (int)'=') out_equals(); else { out_c(c); out_with_error("", "Expected \"=\" after field ``%f''"); } out_spaces((int)(value_indentation - the_file.output.column_position)); /* supply leading indentation */ } #if defined(HAVE_STDC) static void do_escapes(char *s) #else /* K&R style */ static void do_escapes(s) char *s; #endif { /* reduce escape sequences in s[] */ int base; /* number base for strtol() */ char *endptr; /* pointer returned by strtol() */ char *p; /* pointer into output s[] */ if (s == (char*)NULL) /* nothing to do if no string */ return; for (p = s ; (*s != '\0'); ++s) { if (*s == '\\') /* have escaped character */ { base = 8; /* base is tentatively octal */ switch (*++s) { case 'a': *p++ = (char)CTL('G'); break; case 'b': *p++ = (char)CTL('H'); break; case 'f': *p++ = (char)CTL('L'); break; case 'n': *p++ = (char)CTL('J'); break; case 'r': *p++ = (char)CTL('M'); break; case 't': *p++ = (char)CTL('I'); break; case 'v': *p++ = (char)CTL('K'); break; case '0': if (TOLOWER(s[1]) == (int)'x') /* 0x means hexadecimal */ base = 16; /* FALLTHROUGH */ /*@fallthrough@*/ case '1': case '2': case '3': case '4': case '5': case '6': case '7': *p++ = (char)strtol((const char*)s,&endptr,base); s = endptr - 1; /* point to last used character */ break; default: /* \x becomes x for all other x */ *p++ = *s; break; } } else /* not escaped, so just copy it */ *p++ = *s; } *p = '\0'; /* terminate final string */ } #if defined(HAVE_STDC) static void do_fileinit(const char *bibfilename) /* process one initialization file */ #else /* K&R style */ static void do_fileinit(bibfilename) /* process one initialization file */ const char *bibfilename; #endif { char *p; const char *ext; ext = GETDEFAULT(BIBCLEAN_EXT,INITFILE_EXT); if (strrchr(bibfilename,'.') != (char*)NULL) /* then have file extension */ { /* convert foo.bib to foo.ini and then process it as an init file */ if ((p = (char*)malloc(strlen(bibfilename) + strlen(ext) + 1)) != (char*)NULL) { (void)strcpy(p,bibfilename); (void)strcpy(strrchr(p,'.'),ext); do_initfile((char*)NULL,p); FREE(p); } } } static void do_field(VOID) /* process BibTeX field name */ { int c; size_t k; the_value = the_file; token_start = the_file; /* remember location of token start */ for (k = 0, c = get_char(); (c != EOF) && is_idchar(c); c = get_char(), k++) { if (k >= MAX_TOKEN) { APPEND_CHAR(current_field,k,c); out_with_error(current_field, "Entry field name too long"); return; } else if ((k == 0) && !Isalpha(c)) error("Non-alphabetic character begins a field name"); current_field[k] = (char)(((in_string == NO) && Isupper(c)) ? tolower(c) : c); } if (c != EOF) put_back(c); current_field[k] = (char)'\0'; if (in_string == NO) /* @String{...} contents untouched */ { int n; /* Substitute a few field names that look better in upper case */ for (n = 0; (n < MAX_KEYWORD) && (field_pair[n].old_name != (const char*)NULL); ++n) { if (STREQUAL(current_field,field_pair[n].old_name)) { (void)strcpy(current_field,field_pair[n].new_name); break; } } if (strncmp("opt",current_field,3) == 0) { /* Emacs bibtex.el expects OPT */ (void)strncpy(current_field,"OPT",3); } } if (k > 0) out_field(); check_length(k); } static YESorNO do_field_value_pair(VOID) /* process field = value pair */ { if (eofile == YES) return (NO); do_field(); if ((rflag == YES) || (eofile == YES) || (current_field[0] == '\0')) return (NO); space_count = 0L; /* examined in do_Scribe_separator() */ do_optional_space(); /* and set here */ if (Scribe == YES) do_Scribe_separator(); else do_equals(); if ((rflag == YES) || (eofile == YES)) return (NO); do_optional_space(); if (Scribe == YES) do_Scribe_value(); else do_BibTeX_value(); if ((rflag == YES) || (eofile == YES)) return (NO); return (YES); } #if defined(HAVE_STDC) void do_files(int argc, char *argv[]) #else /* K&R style */ void do_files(argc,argv) int argc; char *argv[]; #endif { FILE *fp; int k; /* index into argv[] */ k = argc; /* to remove optimizer complaints about unused argument */ if (argv[1] == (char*)NULL) /* no files specified, so use stdin */ { the_file.input.filename = "stdin"; do_one_file(stdin); } else /* else use command-line files left in argv[] */ { for (k = 1; argv[k] != (char*)NULL; ++k) { if (STREQUAL(argv[k],"-")) { /* A filename of "-" is conventionally interpreted in the UNIX world as a synonym for stdin, since that system otherwise lacks true filenames for stdin, stdout, and stdlog. We process stdin with do_one_file(), but never close it so that subsequent read attempts will silently, and harmlessly, fail at end-of-file. */ the_file.input.filename = "stdin"; do_one_file(stdin); } else if ((fp = tfopen(argv[k], OPEN_MODE_R)) == (FILE*)NULL) { (void)fprintf(stdlog, "\n%s Ignoring open failure on file [%s]\n", ERROR_PREFIX, argv[k]); perror("perror() says"); } else /* open succeeded, so process file */ { if (k > 1) /* supply blank line between */ out_newline(); /* entries at file boundaries */ the_file.input.filename = argv[k]; if (read_initialization_files == YES) do_fileinit(the_file.input.filename); do_one_file(fp); (void)fclose(fp); /* close to save file resources */ } } } } static void do_group(VOID) /* copy a braced group verbatim */ { int c; char *s = shared_string; /* memory-saving device */ do_optional_space(); if (prettyprint == YES) { out_c(DELETE_WHITESPACE); /* discard any space that we found */ do_open_brace(); if (rflag == YES) return; out_c(DELETE_WHITESPACE); /* discard any space that we found */ while ((c = get_char(), c) != EOF) { if ((brace_level == 1) && (close_char == (int)')') && (c == close_char)) { /* end of @entry(...) */ brace_level = 0; c = (int)'}'; } if ((non_white_chars == 1) && (c == (int)'@')) error("@ begins line, but brace level is not zero after \ entry ``@%e{%k,''"); if ((brace_level == 0) && (c == (int)'}')) { out_c(DELETE_WHITESPACE); /* discard any space that we found */ out_close_brace(); } else out_c(c); if (brace_level == 0) break; } } else /* prettyprint == NO */ { /* output entire braced group as one literal*/ size_t k; /* index into s[] */ token_start = the_file; /* remember location of token start */ c = get_char(); if (c == (int)'{') close_char = (int)'}'; else if (c == (int)'(') { close_char = (int)')'; brace_level++; /* get_char() could not do this for us */ } else /* raise error and try to resynchronize */ { s[0] = (char)c; s[1] = '\0'; out_token(TOKEN_LITERAL,s); error( "Expected open brace or parenthesis. Last entry = ``@%e{%k,''"); return; } s[0] = '{'; /* standardize to outer braces */ for (k = 1; c != EOF;) { c = get_char(); if (k >= MAX_TOKEN) { error("Braced literal string too long for entry ``%e''"); s[k] = '\0'; out_token(TOKEN_LITERAL, s); return; } s[k++] = (char)c; if ((c == close_char) && (c == (int)')')) brace_level--; /* get_char() could not do this for us */ if (brace_level == 0) break; /* here's the normal loop exit */ } s[k-1] = '}'; /* standardize to outer braces */ s[k] = '\0'; /* terminate string */ out_token(TOKEN_LITERAL, s); } } #if defined(HAVE_STDC) void do_initfile(/*@null@*/ const char *pathlist, /*@null@*/ const char *name) #else /* K&R style */ void do_initfile(pathlist,name) /*@null@*/ const char *pathlist; /*@null@*/ const char *name; #endif { FILE *fp; char *p; if ((initialization_file_name = findfile(pathlist,name)) == (char*)NULL) return; /* silently ignore missing files */ if ((fp = tfopen(initialization_file_name,"r")) == (FILE*)NULL) return; /* silently ignore missing files */ while ((p = get_line(fp)) != (char *)NULL) { /* process init file lines */ SKIP_SPACE(p); if (*p == '\0') NOOP; else if (*p == COMMENT_PREFIX) NOOP; else if (is_optionprefix((int)*p)) do_single_arg(p); /* then expect -option [value] */ else do_new_pattern(p); /* else expect field = "value" */ } (void)fclose(fp); } static void do_key_name(VOID) /* process BibTeX citation key */ { int c; size_t k; token_start = the_file; /* remember location of token start */ for (k = 0, c = get_char(); (c != EOF) && (c != (int)',') && !Isspace(c); c = get_char(), k++) { if (k >= MAX_TOKEN) { APPEND_CHAR(current_key,k,c); out_with_error(current_key, "Citation key too long"); return; } current_key[k] = (char)c; } current_key[k] = (char)'\0'; if (c != EOF) put_back(c); if (check_values == YES) check_key(); out_string(TOKEN_KEY, current_key); check_length(k); } #if defined(HAVE_STDC) void do_keyword_file(/*@null@*/ const char *pathlist, /*@null@*/ const char *name) #else /* K&R style */ void do_keyword_file(pathlist,name) /*@null@*/ const char *pathlist; /*@null@*/ const char *name; #endif { FILE *fp; char *p; const char *keyword_file; /* name of current keyword file */ if (name == (const char*)NULL) return; if ((keyword_file = findfile(pathlist,name)) == (char*)NULL) return; /* silently ignore missing files */ if ((fp = tfopen(keyword_file,"r")) == (FILE*)NULL) return; /* silently ignore missing files */ /* The keyword file is expected to look like the output of -print-keyword-table: lines are (1) blank or empty, (2) comments from percent to end-of-line, or (3) pairs of whitespace-separated (input-key,output-key) values. */ while ((p = get_line(fp)) != (char*)NULL) { #define TOKEN_SEPARATORS " \t" const char *the_old; const char *the_new; char *comment; comment = strchr(p, BIBTEX_COMMENT_PREFIX); if (comment != (const char*)NULL) *comment = '\0'; /* then discard comment text */ the_old = strtok(p, TOKEN_SEPARATORS); if (the_old == (const char*)NULL) continue; /* ignore blank or empty lines */ if (*the_old == (char)BIBTEX_COMMENT_PREFIX) continue; /* ignore comment lines */ the_new = strtok((char*)NULL, TOKEN_SEPARATORS); if (the_new == (const char*)NULL) { (void)fprintf(stdlog, "Expected output-key after input-key [%s] in keyword file [%s]\n", the_old, keyword_file); continue; } #if defined(DEBUG) (void)fprintf(stdlog, "DEBUG:\t[%s]\t[%s]\t[%s]\n", keyword_file, the_old, the_new); #endif add_keyword(the_old, the_new); } (void)fclose(fp); #undef TOKEN_SEPARATORS } #if defined(HAVE_STDC) static void do_new_pattern(char *s) #else /* K&R style */ static void do_new_pattern(s) char *s; #endif { char *field; char *p; char *value; p = s; /******************************************************************* We expect s[] to contain field = "value" field : "value" field "value" field = "value" "message" field : "value" "message" field "value" "message" Empty lines are silently ignored. *******************************************************************/ field = get_token(p,&p,"=: \t\v\f"); if (field == (char*)NULL) return; /* then we have an empty line */ if (p != (char*)NULL) /* then we have more text */ { YESorNO saw_space; saw_space = Isspace(*p) ? YES : NO; SKIP_SPACE(p); if ((saw_space == YES) || is_fieldvalueseparator(*p)) { if (is_fieldvalueseparator(*p)) ++p; /* then move past separator */ SKIP_SPACE(p); if (*p == '"') /* then have quoted value */ { value = get_token(p,&p," \t\v\f"); if (value != (char*)NULL) { SKIP_SPACE(p); if (*p == '"') /* then have quoted message */ { add_pattern(field,value,get_token(p,&p," \t\v\f")); return; } else if ((*p == '\0') || (*p == (char)COMMENT_PREFIX)) { /* have end of string s[] */ add_pattern(field,value,(char*)NULL); return; } } } } } (void)fprintf(stdlog,"%s Bad line [%s] in initialization file [%s]\n", ERROR_PREFIX, s, initialization_file_name); finish(EXIT_FAILURE); } static void do_newline(VOID) { int c; /* Newlines are standardized by bibclean inside bibliographic entries, */ /* so we only output a newline here if we are outside such an entry. */ c = get_char(); if (c == (int)'\n') { if (brace_level == 0) out_newline(); else if (KEEP_PREAMBLE_SPACES()) out_newline(); else if (KEEP_STRING_SPACES()) out_newline(); } else put_back(c); } #if defined(HAVE_STDC) static void do_one_file(FILE *fp) /* process one input file on fp */ #else /* K&R style */ static void do_one_file(fp) /* process one input file on fp */ FILE *fp; #endif { fpin = fp; /* save file pointer globally for get_char() */ new_io_pair(&the_file); eofile = NO; new_entry(); while (eofile == NO) { do_optional_space(); do_other(); if (Scribe == YES) do_Scribe_entry(); else do_BibTeX_entry(); } if (prettyprint == YES) { out_c(DELETE_WHITESPACE); /* discard all trailing space */ out_c((int)'\n'); /* supply final newline */ } out_flush(); /* flush all buffered output */ if (brace_level != 0) error("Non-zero brace level at end-of-file"); } static void do_open_brace(VOID) /* process open brace or parenthesis */ { int c; c = get_char(); if (c == EOF) return; else if (c == (int)'{') { close_char = (int)'}'; out_open_brace(); } else if (c == (int)'(') { close_char = (int)')'; brace_level++; /* get_char() could not do this for us */ out_open_brace(); /* standardize parenthesis to brace */ } else /* raise error and try to resynchronize */ { out_c(c); out_with_error("", "Expected open brace or parenthesis. Last entry = ``@%e{%k,''"); } } static void do_optional_inline_comment(VOID) { size_t n; char *s; for (;;) { s = get_optional_space(); switch ((int)s[0]) { case BIBTEX_COMMENT_PREFIX: n = strlen(s); Memmove(s+1,s,n); s[0] = BIBTEX_HIDDEN_DELIMITER; s[n+1] = BIBTEX_HIDDEN_DELIMITER; s[n+2] = '\0'; append_value(s); break; case '\n': /* newline or */ case ' ': /* horizontal space token */ case '\f': case '\r': case '\t': case '\v': if (KEEP_PREAMBLE_SPACES()) append_value(s); else if (KEEP_STRING_SPACES()) append_value(s); break; /* else discard white space */ default: /* no more space or inline comments */ return; /* here's the loop exit */ } } } static void do_optional_space(VOID) { /* skip over optional horizontal space, newline, and in-line comments */ YESorNO save_wrapping; char *s; for (;;) { s = get_optional_space(); switch (s[0]) { case '\n': /* newline token */ space_count++; put_back((int)s[0]); do_newline(); break; case ' ': /* horizontal space token */ case '\f': case '\r': case '\t': case '\v': space_count++; put_back((int)s[0]); do_space(); break; case BIBTEX_COMMENT_PREFIX: /* in-line comment token */ save_wrapping = wrapping; wrapping = NO; /* inline comments are never line wrapped */ out_string(TOKEN_INLINE,s); wrapping = save_wrapping; break; default: /* not optional space */ return; /* here's the loop exit */ } } } void do_other(VOID) /* copy non-BibTeX text verbatim */ { int c; /* current input character */ size_t k; /* index into s[] */ YESorNO save_wrapping; char *s = shared_string; /* memory-saving device */ save_wrapping = wrapping; wrapping = NO; /* For the purposes of lexical analysis (-no-prettyprint), we collect complete lines, rather than single characters. */ for (k = 0, s[0] = (char)'\0'; (c = get_char(), c) != EOF; ) { if ((c == (int)'@') && (non_white_chars == 1)) { /* new entry found */ put_back(c); break; } if (k >= MAX_TOKEN) { /* buffer full, empty it and start a new one */ APPEND_CHAR(s,k,c); out_other(s); k = 0; } else if (c == (int)'\n') /* end of line */ { s[k] = (char)'\0'; out_other(s); /* output line contents */ out_newline(); /* and then separate newline token */ k = 0; } else if (Isspace(s[0])) /* then collecting whitespace */ { if (Isspace(c)) /* still collecting whitespace */ s[k++] = (char)c; else /* end of whitespace */ { s[k] = (char)'\0'; out_other(s); /* output whitespace token */ k = 0; s[k++] = (char)c; /* and start new one */ } } else s[k++] = (char)c; } s[k] = (char)'\0'; out_other(s); wrapping = save_wrapping; } static void do_preamble(VOID) { in_preamble = YES; do_preamble_2(); in_preamble = NO; } static void do_preamble_2(VOID) { do_optional_space(); if (prettyprint == YES) out_c(DELETE_WHITESPACE); /* discard any space that we found */ do_open_brace(); if (rflag == YES) return; do_optional_space(); do_BibTeX_value(); if (rflag == YES) return; do_optional_space(); do_close_brace(); } void do_print_keyword_table(VOID) { size_t k; (void)fprintf(stdlog, "%%%%%% keyword mappings\n"); for (k = 0; (field_pair[k].old_name != (const char *)NULL); ++k) { /* We intentionally include `deleted' entries (beginning with a hyphen), so as not to conceal information from the user. */ (void)fprintf(stdlog, "%-31s\t%-31s\n", field_pair[k].old_name, field_pair[k].new_name); } } static void do_Scribe_block_comment(VOID) { char *p; p = get_Scribe_string(); /* expect to get "comment" */ if (stricmp(p,"\"comment\"") == 0) { /* found start of @Begin{comment} */ int c; int k; char s[3+1]; /* to hold "end" */ int b_level = 0; /* brace level */ for (k = 6; k > 0; --k) out_c(DELETE_CHAR); /* delete "@Begin" from output */ /* that was output by do_entry_name() */ out_s("@Comment{"); /* convert to BibTeX `comment' */ while ((c = get_char(), c) != EOF) { switch (c) { case '@': /* lookahead for "@End" */ s[0] = (char)get_char(); s[1] = (char)get_char(); s[2] = (char)get_char(); s[3] = (char)'\0'; if (stricmp(s,"end") == 0) { /* then we have @End */ p = get_Scribe_string(); /* so get what follows */ if (stricmp(p,"\"Comment\"") == 0) { out_close_brace();/* found @End{comment}, so finish conversion to @Comment{...} */ return; /* block comment conversion done! */ } else /* false alarm, just stuff lookahead */ { /* back into input stream */ put_back_string(p); put_back_string(s); } } else /* lookahead was NOT "@End" */ put_back_string(s); break; case '{': b_level++; break; case '}': if (b_level <= 0) out_open_brace(); /* keep output braces balanced */ else b_level--; break; } /* end switch(c) */ out_c(c); /* copy one comment character */ } /* end while ((c = ...)) */ } else /* was not @Begin{comment} after all */ put_back_string(p); } static void do_Scribe_close_delimiter(VOID) { int c; static char fmt[] = "Expected Scribe close delimiter `%c' [8#%03o], but \ found `%c' [8#%03o] instead for field ``%%f''"; char msg[sizeof(fmt)]; c = get_char(); if ((parbreaks == NO) && (is_parbreak == YES)) { APPEND_CHAR(msg,0,c); out_with_parbreak_error(msg); return; } if (c == EOF) return; else if (c == close_char) { if (c == (int)')') brace_level--; /* get_char() could not do this for us */ out_close_brace(); /* standardize parenthesis to brace */ } else /* raise error and try to resynchronize */ { out_c(c); (void)sprintf(msg, fmt, close_char, BYTE_VAL(close_char), (Isprint(c) ? c : (int)'?'), BYTE_VAL(c)); out_with_error("", msg); } } static void do_Scribe_comment(VOID) { int c; int b_level = 0; /* brace level */ /* BibTeX does not yet have a comment syntax, so we just output the Scribe comment in braces, ensuring that internal braces are balanced. */ do_optional_space(); do_Scribe_open_delimiter(); /* this outputs an opening brace */ if (rflag == YES) return; for (c = get_char(); (c != EOF) && (c != close_char); c = get_char()) { if (c == (int)'{') b_level++; else if (c == (int)'}') { b_level--; if (b_level < 0) { out_open_brace(); /* force matching internal braces */ b_level++; } } out_c(c); } for (; b_level > 0; b_level--) out_close_brace(); /* force matching internal braces */ out_close_brace(); } static void do_Scribe_entry(VOID) { /************************************************************* Parse a Scribe entry, one of: @entry-name{key,field=value,field=value,...,} @string{name=value} @comment{...} @begin{comment}...@end{comment} The = separator in field/value pairs may also be a space or a slash. Any of the seven Scribe delimiters can be used to surround the value(s) following @name, and to surround values of field value pairs. *************************************************************/ new_entry(); do_at(); if ((rflag == YES) || (eofile == YES)) return; do_optional_space(); if (prettyprint == YES) out_c(DELETE_WHITESPACE); /* discard any space that we found */ do_entry_name(); if (rflag == YES) return; if (STREQUAL(current_entry_name,"Comment")) do_Scribe_comment(); else if (STREQUAL(current_entry_name,"Begin")) do_Scribe_block_comment(); else if (STREQUAL(current_entry_name,"String")) do_string(); else { int save_close_char; do_optional_space(); if (prettyprint == YES) out_c(DELETE_WHITESPACE); /* discard any space that we found */ do_Scribe_open_delimiter(); if (rflag == YES) return; save_close_char = close_char; brace_level = 1; /* get_char() cannot do this for us */ do_optional_space(); do_key_name(); if (rflag == YES) return; do_optional_space(); do_comma(); if (rflag == YES) return; do_optional_space(); while (do_field_value_pair() == YES) { do_optional_space(); do_comma(); /* this supplies any missing optional comma */ if ((rflag == YES) || (eofile == YES)) return; do_optional_space(); } if (rflag == YES) return; do_optional_space(); close_char = save_close_char; do_Scribe_close_delimiter(); } flush_inter_entry_space(); } static void do_Scribe_open_delimiter(VOID) /* process open delimiter */ { int c; char *p; c = get_char(); if (c == EOF) return; else { p = strchr(Scribe_open_delims,c); if (p == (char*)NULL) { out_c(c); out_with_error("", "Expected Scribe open delimiter, one of { [ ( < ' \" ` for field ``%f''"); return; } close_char = (int)Scribe_close_delims[(int)(p - Scribe_open_delims)]; out_open_brace(); /* standardize open delimiter to brace */ } } static void do_Scribe_separator(VOID) { int c; YESorNO saw_space; the_value = the_file; saw_space = (space_count > 0L) ? YES : NO; c = get_char(); if ((parbreaks == NO) && (is_parbreak == YES)) { char msg[2]; APPEND_CHAR(msg,0,c); out_with_parbreak_error(msg); return; } if (c == EOF) NOOP; else if ((c == (int)'=') || (c == (int)'/')) out_equals(); else if (saw_space == YES) /* have field value with no binary operator */ { out_equals(); /* supply the missing = operator */ put_back(c); /* this is first character of value string */ } else /* looks like run-together fieldvalue */ { out_c(c); out_with_error("", "Expected Scribe separator \"=\", \"/\", or \" \" for field ``%f''"); } out_spaces((int)(value_indentation - the_file.output.column_position)); /* supply leading indentation */ } /*********************************************************************** Scribe field values can take several forms, as illustrated by this simple BNF grammar: Scribe-value-string: * | * ***********************************************************************/ static void do_Scribe_value(VOID) /* process Scribe value string */ { the_value = the_file; (void)strcpy(current_value,get_Scribe_string()); if ((rflag == YES) || (eofile == YES)) out_s(current_value); else out_value(); } #if defined(HAVE_STDC) static void do_single_arg(char *s) #else /* K&R style */ static void do_single_arg(s) char *s; #endif { /* expect -option or -option value */ char *temp_argv[4]; /* "program" "-option" "value" NULL */ int temp_argc; /* temporary argument count */ temp_argv[0] = program_name; /* 0th argument always program name */ temp_argv[1] = get_token(s,&s," \t\v\f"); /* option */ temp_argv[2] = get_token(s,&s," \t\v\f"); /* value */ temp_argv[3] = (char *)NULL; temp_argc = (temp_argv[2] == (char*)NULL) ? 2 : 3; do_args(temp_argc,temp_argv); } static void do_space(VOID) { int c; char *s = shared_string; /* memory-saving device */ size_t k; /* index into s[] */ token_start = the_file; /* remember location of token start */ c = get_char(); s[0] = '\0'; for (k = 0; (c != EOF) && Isspace(c) && (c != (int)'\n'); ) { if (k >= MAX_TOKEN) { /* split long comments into multiple ones */ s[k] = '\0'; if (prettyprint == NO) out_token(TOKEN_SPACE,s); else if (keep_spaces == YES) out_s(s); else if (KEEP_PREAMBLE_SPACES()) out_s(s); else if (KEEP_STRING_SPACES()) out_s(s); /* else discard: spaces are standardized during prettyprinting */ k = 0; } s[k++] = (char)c; c = get_char(); } s[k] = '\0'; /* terminate token string */ if (prettyprint == NO) out_token(TOKEN_SPACE,s); else if (keep_spaces == YES) out_s(s); else if (KEEP_PREAMBLE_SPACES()) out_s(s); else if (KEEP_STRING_SPACES()) out_s(s); /* else discard: spaces are standardized during prettyprinting */ put_back(c); /* restore lookahead */ } static void do_string(VOID) /* process @String{abbrev = "value"} */ { in_string = YES; do_string_2(); in_string = NO; } static void do_string_2(VOID) /* process @String{abbrev = "value"} */ { do_optional_space(); if (prettyprint == YES) out_c(DELETE_WHITESPACE); /* discard any space that we found */ do { /* one trip loop */ do_open_brace(); if (rflag == YES) break; do_optional_space(); if (do_field_value_pair() == NO) break; if (rflag == YES) break; do_optional_space(); do_close_brace(); if (rflag == YES) break; } while (0); } #if defined(HAVE_STDC) static void enlarge_table(PATTERN_TABLE *table) #else /* K&R style */ static void enlarge_table(table) PATTERN_TABLE *table; #endif { if (table->maximum_size == 0) table->patterns = (MATCH_PATTERN*)malloc(sizeof(MATCH_PATTERN) * TABLE_CHUNKS); else table->patterns = (MATCH_PATTERN*)realloc((char*)table->patterns, sizeof(MATCH_PATTERN) * (table->maximum_size + TABLE_CHUNKS)); /* NB: Sun C++ requires (char*) cast */ if (table->patterns == (MATCH_PATTERN*)NULL) fatal("Out of memory for pattern table space"); table->maximum_size += TABLE_CHUNKS; } static void flush_inter_entry_space(VOID) /* standardize to 1 blank line between entries */ { int c; if (keep_spaces == YES) return; put_back((c = get_next_non_blank())); if (c != EOF) out_newline(); out_newline(); } void free_keyword_table(VOID) { int k; for (k = 0; k < MAX_KEYWORD; ++k) { if (field_pair[k].old_name != (const char *)NULL) { FREE(field_pair[k].old_name); field_pair[k].old_name = (const char *)NULL; } if (field_pair[k].new_name != (const char *)NULL) { FREE(field_pair[k].new_name); field_pair[k].new_name = (const char *)NULL; } } } static char * get_braced_string(VOID) { int b_level = 0; /* brace level */ int c; /* current input character */ size_t k; /* index into s[] */ size_t n; /* index into t[] */ char *s = shared_string; /* memory-saving device */ char t[MAX_TOKEN_SIZE]; /* working area for braced string */ in_value = YES; for (c = get_char(), k = 0, *s = '\0'; c != EOF; ) { if ((parbreaks == NO) && (is_parbreak == YES)) { put_back(c); /* so this comes AFTER error message */ out_with_parbreak_error(s); in_value = NO; return (EMPTY_STRING(s)); } else if (k >= MAX_TOKEN) { APPEND_CHAR(s,k,c); out_with_error(s, "BibTeX string too long for field ``%f''"); in_value = NO; return (EMPTY_STRING(s)); } else { if (c == (int)'\n') c = get_parbreak(); else if (c == (int)'\f') { if (keep_linebreaks == NO) c = (keep_parbreaks == YES) ? PARBREAK : (int)' '; } else if (Isspace(c)) c = (int)' '; /* change whitespace to real space */ else if (c == (int)'{') b_level++; else if (c == (int)'}') b_level--; else if (c == (int)'\\') /* \\ -> \\ */ { s[k++] = (char)c; c = get_char(); if (c == (int)'\\') /* found \\ */ { s[k++] = (char)c; c = get_linebreak(); } else /* \ -> \ */ { put_back(c); c = (int)'\0'; } } if (c != (int)'\0') s[k++] = (char)c; if (b_level == 0) break; /* here's the loop exit */ c = Isspace(c) ? get_next_non_blank() : get_char(); } } s[k] = (char)'\0'; /* Now convert braced string to quoted string */ for (b_level = 0, k = 0, n = 0; (s[k] != '\0') && (n < (MAX_TOKEN_SIZE-2)); ++k) { if (s[k] == '{') b_level++; else if (s[k] == '}') b_level--; if ((s[k] == '"') && (b_level == 1)) /* k > 0 if this is true */ { /* so we can omit that check */ if (German_style == YES) { switch (s[k+1]) { case '"': case '-': case '<': case '>': case 'A': case 'E': case 'I': case 'O': case 'U': case '\'': case '`': case 'a': case 'c': case 'e': case 'f': case 'i': case 'l': case 'm': case 'n': case 'o': case 'p': case 's': case 't': case 'u': case '|': t[n++] = (char)'{'; t[n++] = (char)'"'; t[n++] = s[++k]; t[n++] = (char)'}'; break; default: /* should never happen */ t[n++] = (char)'{'; t[n++] = (char)'"'; t[n++] = (char)'}'; warning( "Unexpected quote usage in German-style braced string"); break; } } else /* German_style == NO */ { if ((s[k-1] == '\\') && (s[k+1] == '{') && ((s[k+2] != '\0') && (s[k+2] != '{') && (s[k+2] != '}')) && (s[k+3] == '}')) /* change \"{x}y to {\"{x}}y */ { /* BUG FIX for overlooked case: this branch added [08-Mar-1995] */ n--; /* now t[n] == '\\' */ k--; /* now s[k] == '\\' */ t[n++] = (char)'{'; t[n++] = s[k++]; /* copy 5-char string \"{x} */ t[n++] = s[k++]; t[n++] = s[k++]; t[n++] = s[k++]; t[n++] = s[k]; t[n++] = (char)'}'; } else if (s[k-1] == '\\') /* change \"xy to {\"x}y */ { n--; /* overwriting t[n] == '\\' */ t[n++] = (char)'{'; t[n++] = (char)'\\'; t[n++] = (char)'"'; t[n++] = s[++k]; t[n++] = (char)'}'; } else /* change x" to x{"} */ { t[n++] = (char)'{'; t[n++] = (char)'"'; t[n++] = (char)'}'; } } } else t[n++] = s[k]; } t[0] = (char)'"'; /* change initial and final */ APPEND_CHAR(t,n-1,'"'); /* braces to quotes */ check_length(n); if (c == EOF) error("End-of-file in braced string"); in_value = NO; return (strcpy(s,t)); } static char * get_digit_string(VOID) { int c; /* current input character */ size_t k; /* index into s[] */ char *s = shared_string; /* memory-saving device */ k = 0; s[k++] = (char)'"'; /* convert to quoted string */ for (c = get_char(); (c != EOF) && Isdigit(c); ) { if (k >= MAX_TOKEN) { APPEND_CHAR(s,k,c); out_with_error(s, "BibTeX string too long for field ``%f''"); return (EMPTY_STRING(s)); } else { s[k++] = (char)c; c = get_char(); } } put_back(c); /* we read past end of digit string */ s[k++] = (char)'"'; /* supply terminating quote */ s[k] = (char)'\0'; check_length(k); return (s); } static char * get_identifier_string(VOID) { int c; /* current input character */ size_t k; /* index into s[] */ char *s = shared_string; /* memory-saving device */ for (c = get_char(), k = 0; (c != EOF) && is_idchar(c); ) { if (k >= MAX_TOKEN) { APPEND_CHAR(s,k,c); out_with_error(s, "BibTeX string too long for field ``%f''"); return (EMPTY_STRING(s)); } else { s[k++] = (char)c; c = get_char(); } } put_back(c); /* we read past end of identifier string */ s[k] = (char)'\0'; check_length(k); return (s); } static char * get_inline_comment(VOID) { int c; /* current input character */ char *s = shared_string; /* memory-saving device */ s[0] = '\0'; c = get_char(); if ((Scribe == NO) && (c == BIBTEX_COMMENT_PREFIX)) { size_t k; /* index into s[] */ int newlines; token_start = the_file; /* remember location of token start */ for (s[0] = (char)BIBTEX_COMMENT_PREFIX, c = get_char(), k = 1, newlines = 0; (c != EOF); ) { /* collect up to newline, plus following horizontal space */ if ((newlines == 1) && !Isspace(c)) break; /* here's a loop exit */ if (k >= MAX_TOKEN) { /* split long comments into multiple ones */ s[k++] = '\n'; put_back(c); /* restore lookahead */ c = BIBTEX_COMMENT_PREFIX; /* we put this back too later */ break; /* here's a loop exit */ } if (c == (int)'\n') newlines++; if (newlines > 1) break; /* here's a loop exit */ s[k++] = (char)c; c = get_char(); } s[k] = '\0'; /* terminate token string */ } put_back(c); /* restore lookahead */ return (s); } /*@null@*/ #if defined(HAVE_STDC) char * get_line(FILE *fp) #else /* K&R style */ char * get_line(fp) FILE *fp; #endif { /* return a complete line to the caller, discarding backslash-newlines */ /* on consecutive lines, and discarding the final newline. At EOF, */ /* return (char*)NULL instead. */ static char line[MAX_LINE]; static char *p; static char *more; more = &line[0]; line[0] = (char)'\0'; /* must set in case we hit EOF */ while (fgets(more,(int)(&line[MAX_LINE] - more),fp) != (char *)NULL) { p = strchr(more,'\n'); if (p != (char*)NULL) /* did we get a complete line? */ { /* yes */ *p = '\0'; /* zap final newline */ if ((p > &line[0]) && (*(p-1) == '\\')) /* then have backslash-newline */ more = p - 1; /* so get another line */ else /* otherwise have normal newline */ break; /* so return the current line */ } else /* no, return partial line */ break; } return ((line[0] == '\0' && (feof(fp) != 0)) ? (char*)NULL : &line[0]); } static char * get_optional_space(VOID) { int c; /* current input character */ char *s = shared_string; /* memory-saving device */ /* Space tokens are returned as single-character values, because */ /* do_optional_space() pushes them back into the input stream before */ /* calling do_newline() and do_space() for further processing. However, */ /* inline comments are returned as multiple-character values */ c = get_char(); switch (c) { case '\n': /* newline token */ case ' ': /* horizontal space token */ case '\f': case '\r': case '\t': case '\v': s[0] = (char)c; s[1] = '\0'; break; case BIBTEX_COMMENT_PREFIX: /* in-line comment token */ put_back(c); s = get_inline_comment(); break; default: /* not optional space */ put_back(c); s[0] = '\0'; break; } return (s); } static int get_parbreak(VOID) { /* This function is called when the current input character is a newline. If keep_linebreaks is YES, it returns a LINEBREAK. If keep_parbreaks is NO, then it returns a space. Otherwise, it looks ahead to the next non-blank character, and if a paragraph break was seen, the return value is a PARBREAK, and otherwise, a space, or a newline if keep_linebreaks is YES. */ if ((in_value == YES) && (keep_linebreaks == YES)) return (LINEBREAK); else if (KEEP_PREAMBLE_SPACES()) return (LINEBREAK); else if (KEEP_STRING_SPACES()) return (LINEBREAK); else if ((in_value == YES) && (keep_parbreaks == YES)) { put_back((int)'\n'); /* so get_next_non_blank() finds it */ put_back(get_next_non_blank()); return ((is_parbreak == YES) ? PARBREAK : ((keep_linebreaks == YES) ? (int)'\n' : (int)' ')); } else return ((int)' '); } static char * get_quoted_string(VOID) { int b_level = 0; /* brace level */ int c; /* current input character */ size_t k; /* index into s[] */ char *s = shared_string; /* memory-saving device */ in_value = YES; for (c = get_char(), k = 0, *s = '\0'; c != EOF; ) { if ((parbreaks == NO) && (is_parbreak == YES)) { put_back(c); /* so this comes AFTER error message */ out_with_parbreak_error(s); in_value = NO; return (EMPTY_STRING(s)); } else if (k >= MAX_TOKEN) { APPEND_CHAR(s,k,c); out_with_error(s, "BibTeX string too long for field ``%f''"); in_value = NO; return (EMPTY_STRING(s)); } else { if (c == (int)'\n') c = get_parbreak(); else if (c == (int)'\f') { if (keep_linebreaks == NO) c = (keep_parbreaks == YES) ? PARBREAK : (int)' '; } else if (Isspace(c)) c = (int)' '; /* change whitespace to real space */ else if (c == (int)'{') b_level++; else if (c == (int)'}') b_level--; else if (c == (int)'\\') /* \\ -> \\ */ { s[k++] = (char)c; c = get_char(); if (c == (int)'\\') /* found \\ */ { s[k++] = (char)c; c = get_linebreak(); } else /* \ -> \ */ { put_back(c); c = (int)'\0'; } } if (c != (int)'\0') s[k++] = (char)c; if ((c == (int)'"') && (k > 1) && (b_level == 0)) { if (s[k-2] == '\\') { /* convert \"x inside string at brace-level 0 to {\"x}: */ /* illegal, but hand-entered bibliographies have it */ c = get_char(); if (c != EOF) { k = k - 2; s[k++] = (char)'{'; s[k++] = (char)'\\'; s[k++] = (char)'"'; s[k++] = (char)c; s[k++] = (char)'}'; } } else break; /* here's the loop exit */ } c = Isspace(c) ? get_next_non_blank() : get_char(); } } s[k] = (char)'\0'; check_length(k); if (c == EOF) error("End-of-file in quoted string"); in_value = NO; return (s); } static char * get_Scribe_delimited_string(VOID) { int c; int close_delim; size_t k; int last_c; char *p; char *s; s = shared_string; /* memory-saving device */ last_c = EOF; c = get_char(); p = strchr(Scribe_open_delims,c); /* maybe delimited string? */ if (p == (char*)NULL) { APPEND_CHAR(s,0,c); out_with_error(s,"Expected Scribe value string for field ``%f''"); return (EMPTY_STRING(s)); } /* We have a delimited string */ close_delim = (int)Scribe_close_delims[(int)(p - Scribe_open_delims)]; c = get_next_non_blank(); /* get first character in string */ /* ignoring leading space */ for (k = 0, s[k++] = (char)'"'; (c != EOF) && !((last_c != (int)'\\') && (c == close_delim)) && (k < MAX_TOKEN); k++) { if ((parbreaks == NO) && (is_parbreak == YES)) { s[k] = '\0'; /* ensure string termination */ put_back(c); /* so this comes AFTER error message */ out_with_parbreak_error(s); return (EMPTY_STRING(s)); } if (c == (int)'"') /* protect quotes inside string */ { if (s[k-1] == '\\') { /* then TeX accent in Scribe string */ last_c = c; c = get_char(); if (c == (int)'{') /* change \"{ to {\" */ { s[k-1] = (char)'{'; s[k] = (char)'\\'; s[++k] = (char)'"'; } else /* change \". to {\".} (. = any) */ { s[k-1] = (char)'{'; s[k] = (char)'\\'; s[++k] = (char)'"'; s[++k] = (char)c; s[++k] = (char)'}'; } } else { s[k] = (char)'{'; s[++k] = (char)'"'; s[++k] = (char)'}'; } } else if (c == (int)'\n') s[k] = (char)get_parbreak(); else if (c == (int)'\f') s[k] = (keep_linebreaks == YES) ? (char)'\f' : ((keep_parbreaks == YES) ? (char)PARBREAK : (char)' '); else if (Isspace(c)) s[k] = (char)' '; /* change whitespace to real space */ else if (c == (int)'\\') /* \\ -> \\ */ { s[k] = (char)c; c = get_char(); if (c == (int)'\\') /* found \\ */ { s[++k] = (char)c; c = get_linebreak(); if (c != (int)'\0') s[++k] = (char)c; } else /* \ -> \ */ put_back(c); } else s[k] = (char)c; last_c = c; c = Isspace(c) ? get_next_non_blank() : get_char(); } APPEND_CHAR(s,k,'"'); /* append close delimiter */ if (k >= MAX_TOKEN) { out_with_error(s, "Scribe string too long for field ``%f''"); return (EMPTY_STRING(s)); } check_length(k); return (s); } static char * get_Scribe_identifier_string(VOID) /* read undelimited identifier */ { /* and return quoted equivalent */ int c; size_t k; char *s = shared_string; /* memory-saving device */ c = get_char(); for (k = 0, s[k++] = (char)'"'; is_idchar(c) && (k < MAX_TOKEN); k++, c = get_char()) { s[k] = (char)c; } put_back(c); /* put back lookahead */ APPEND_CHAR(s,k,'"'); if (k >= MAX_TOKEN) { out_with_error(s, "Scribe number string too long for field ``%f''"); return (EMPTY_STRING(s)); } ++k; check_length(k); return (s); } static char * get_Scribe_string(VOID) /* read Scribe string */ { int c; do_optional_space(); c = get_char(); /* peek ahead one character */ put_back(c); return (is_idchar(c) ? get_Scribe_identifier_string() : get_Scribe_delimited_string()); } static char * get_simple_string(VOID) /* read simple BibTeX string */ { int c; /* current input character */ char *s = shared_string; /* memory-saving device */ *s = '\0'; c = get_next_non_blank(); /* peek ahead to next non-blank */ if (c == EOF) return (EMPTY_STRING(s)); else if ((parbreaks == NO) && (is_parbreak == YES)) { put_back(c); /* so this comes AFTER error message */ out_with_parbreak_error(s); return (EMPTY_STRING(s)); } put_back(c); /* put back lookahead */ token_start = the_file; /* remember location of string start */ if (c == (int)'{') return (get_braced_string()); else if (Isdigit(c)) return (get_digit_string()); else if (c == (int)'"') return (get_quoted_string()); else if (Isalpha(c)) return (get_identifier_string()); else { out_with_error("", "Expected BibTeX value string for field ``%f''"); return (EMPTY_STRING(s)); } } /*@null@*/ #if defined(HAVE_STDC) static char * get_token(/*@null@*/ char *s, char **nextp, const char *terminators) #else /* K&R style */ static char * get_token(s,nextp,terminators) /*@null@*/ char *s; char **nextp; const char *terminators; #endif { char *t; char *token; t = s; /******************************************************************* Ignoring leading space, find the next token in s[], stopping at end-of-string, or one of the characters in terminators[], whichever comes first. Replace the terminating character in s[] by a NUL. Set *nextp to point to the next character in s[], or to (char*)NULL if end-of-string was reached. Return (char*)NULL if no token was found, or else a pointer to its start in s[]. The job is terminated with an error message if a syntax error is detected. Quoted strings are correctly recognized as valid tokens, and returned with their surrounding quotes removed, and embedded escape sequences expanded. The comment character is recognized outside quoted strings, but not inside. *******************************************************************/ if (t != (char*)NULL) SKIP_SPACE(t); if ((t == (char*)NULL) || (*t == '\0') || (*t == (char)COMMENT_PREFIX)) { /* initial sanity check */ t = (char*)NULL; /* save for *nextp later */ token = (char*)NULL; } else if (*t == '"') /* then collect quoted string */ { token = ++t; /* drop leading quote */ for ( ; (*t != '\0') && (*t != '"'); ++t) { /* find ending quote */ /* step over escape sequences; it doesn't matter if we have */ /* \123, since we are only looking for the ending quote */ if (*t == '\\') ++t; } if (*t == '"') /* then found valid string */ { *t++ = '\0'; /* terminate token */ do_escapes(token); /* and expand escape sequences */ } else { (void)fprintf(stdlog, "%s Bad line [%s] in initialization file [%s]\n", ERROR_PREFIX, s, initialization_file_name); finish(EXIT_FAILURE); } } else /* else collect unquoted string */ { for (token = t; (*t != '\0') && (*t != (char)COMMENT_PREFIX) && !IN_SET(terminators, *t); ++t) continue; /* scan over token */ if ((*t == '\0') || (*t == (char)COMMENT_PREFIX)) /* then hit end of s[] */ t = (char*)NULL; /* save for *nextp later */ else /* else still inside s[] */ *t++ = '\0'; /* terminate token */ } *nextp = t; /* set continuation position */ return (token); } void keyword_initialize(VOID) { int k; for (k = 0; (k < MAX_KEYWORD) && (field_pair[k].old_name != (const char *)NULL); ++k) { field_pair[k].old_name = Strdup(field_pair[k].old_name); field_pair[k].new_name = Strdup(field_pair[k].new_name); } for ( ; k < MAX_KEYWORD; ++k) { field_pair[k].old_name = (const char *)NULL; field_pair[k].new_name = (const char *)NULL; } } static void new_entry(VOID) /* initialize for new BibTeX @name{...} */ { at_level = 0; brace_level = 0; is_parbreak = NO; non_white_chars = 0; rflag = NO; /* already synchronized */ current_entry_name[0] = '\0'; /* empty current_xxx[] strings */ current_field[0] = '\0'; current_key[0] = '\0'; current_value[0] = '\0'; } #if defined(HAVE_STDC) static void new_io_pair(IO_PAIR *pair) #else /* K&R style */ static void new_io_pair(pair) IO_PAIR *pair; #endif { new_position(&pair->input); new_position(&pair->output); } #if defined(HAVE_STDC) static void new_position(POSITION *position) #else /* K&R style */ static void new_position(position) POSITION *position; #endif { position->byte_position = 0L; position->last_column_position = 0L; position->column_position = 0L; position->line_number = 1L; } static void out_close_brace(VOID) { out_string(TOKEN_RBRACE, "}"); } static void out_comma(VOID) { YESorNO save_wrapping; save_wrapping = wrapping; wrapping = NO; out_string(TOKEN_COMMA, ","); wrapping = save_wrapping; } static void out_complex_value(VOID) { char *s; char *p; /* A complex value may contain concatenated simple strings with */ /* intervening inline comments delimited by BIBTEX_HIDDEN_DELIMITER. */ /* We split it apart and output separate tokens. */ for (s = ¤t_value[0]; (*s != '\0'); ) { p = strchr(s,BIBTEX_HIDDEN_DELIMITER); if (p == (char*)NULL) { out_string((*s == '"') ? TOKEN_VALUE : TOKEN_ABBREV,s); check_length(strlen(s)); return; } *p = '\0'; out_string((*s == '"') ? TOKEN_VALUE : TOKEN_ABBREV,s); check_length(strlen(s)); s = p + 1; p = strchr(s,BIBTEX_HIDDEN_DELIMITER); if (p == (char*)NULL) /* should never happen, but recover safely */ p = strchr(s,'\0'); /* if it does */ *p = '\0'; out_string(TOKEN_INLINE,s); check_length(strlen(s)); s = p + 1; } } static void out_equals(VOID) { if (prettyprint == YES) { if (KEEP_PREAMBLE_SPACES()) out_c((int)'='); else if (KEEP_STRING_SPACES()) out_c((int)'='); else { out_c((int)' '); if (align_equals == YES) out_spaces((int)(value_indentation - the_file.output.column_position - 2)); out_c((int)'='); /* standardize to = */ out_c((int)' '); /* always surround = by spaces */ } } else out_token(TOKEN_EQUALS,"="); } static void out_field(VOID) { if (prettyprint == YES) { if (in_string == NO) out_spaces(field_indentation); out_s(current_field); } else out_token((in_string == YES) ? TOKEN_ABBREV : TOKEN_FIELD, current_field); } static void out_open_brace(VOID) { out_string(TOKEN_LBRACE, "{"); } #if defined(HAVE_STDC) static void out_other(const char *s) /* output a non-BibTeX string */ #else /* K&R style */ static void out_other(s) const char *s; #endif { if (prettyprint == YES) out_s(s); else { if (Isspace(s[0])) /* do_other() guarantees whole token is whitespace */ out_token(TOKEN_SPACE, s); else if (s[0] == (char)BIBTEX_COMMENT_PREFIX) out_token(TOKEN_INLINE, s); else out_token(TOKEN_LITERAL, s); } } static void out_value(VOID) { static OPTION_FUNCTION_ENTRY checks[] = { {"author", 6, check_other}, {"book-DOI", 8, check_DOI}, {"book-URL", 8, check_URL}, {"chapter", 7, check_chapter}, {"CODEN", 5, check_CODEN}, {"DOI", 3, check_DOI}, {"editor", 6, check_other}, {"ISBN", 4, check_ISBN}, {"ISBN-13", 7, check_ISBN_13}, {"ISSN", 4, check_ISSN}, {"ISSN-L", 6, check_ISSN_L}, {"journal-URL", 11, check_URL}, {"month", 5, check_month}, {"number", 6, check_number}, {"pages", 5, check_pages}, {"URL", 3, check_URL}, {"volume", 6, check_volume}, {"year", 4, check_year}, {(const char*)NULL, 0, (void (*)(VOID))NULL}, }; static OPTION_FUNCTION_ENTRY fixes[] = { {"abstract", 8, fix_math_spacing}, {"annote", 6, fix_math_spacing}, {"author", 6, fix_namelist}, {"booktitle", 9, fix_title}, {"editor", 6, fix_namelist}, {"month", 5, fix_month}, {"note", 4, fix_math_spacing}, {"pages", 5, fix_pages}, {"remark", 6, fix_math_spacing}, {"title", 5, fix_title}, {(const char*)NULL, 0, (void (*)(VOID))NULL}, }; trim_value(); if ((in_preamble == NO) && (in_string == NO)) { YESorNO save_brace_math; /* ** None of the keywords in fixes[] at bibclean-2.16 requires ** outer brace protection for math text, so we suppress that ** feature. If new entries are later added to fixes[], then ** it may be necessary to revise this code to set brace_math ** according to the value of current_field. */ save_brace_math = brace_math; brace_math = NO; (void)apply_function(current_field,fixes); brace_math = save_brace_math; if ((check_values == YES) && !STREQUAL(current_value,"\"\"")) { if (apply_function(current_field,checks) == NO) check_other(); } if ((remove_OPT_prefixes == YES) && (strncmp(current_field,"OPT",3) == 0) && (strlen(current_field) > (size_t)3) && (strlen(current_value) > (size_t)2)) /* 2, not 0: quotes are included! */ { out_c(DELETE_LINE); Memmove(current_field,¤t_field[3], (size_t)(strlen(current_field)-3+1)); /* reduce "OPTname" to "name" */ out_field(); out_equals(); out_spaces((int)(value_indentation - the_file.output.column_position)); } else if ((delete_empty_values == YES) && STREQUAL(current_value,"\"\"")) { /* 2, not 0, because quotes are included! */ out_c(DELETE_LINE); discard_next_comma = YES; return; } } out_complex_value(); } #if defined(HAVE_STDC) static void prt_pattern(const char *fieldname, /*@null@*/ const char *pattern, /*@null@*/ const char *message) #else /* K&R style */ static void prt_pattern(fieldname,pattern,message) const char *fieldname; const char *pattern; const char *message; #endif { if (print_patterns == YES) { if ((pattern == (const char*)NULL) || (*pattern == '\0')) (void)fprintf(stdlog, "\nfile=[%s] field=[%-12s] existing patterns discarded\n\n", initialization_file_name, fieldname); else if (message == (char*)NULL) (void)fprintf(stdlog, "file=[%s] field=[%-12s] pattern=[%s]\n", initialization_file_name, fieldname, pattern); else (void)fprintf(stdlog, "file=[%s] field=[%-12s] pattern=[%s] message[%s]\n", initialization_file_name, fieldname, pattern, message); } } #if defined(HAVE_STDC) static void put_back_string(const char *s) /* put string value back onto input stream */ #else /* K&R style */ static void put_back_string(s) /* put string value back onto input stream */ const char *s; #endif { const char *p; for (p = strchr(s,'\0') - 1; p >= s; p--) put_back((int)*p); } static void trim_value(VOID) { /* trim leading and trailing space from current_value[] */ size_t k; size_t n = strlen(current_value); if ((current_value[0] == '"') && Isspace(current_value[1])) { /* then quoted string value with leading space*/ for (k = 1; (k < n) && Isspace(current_value[k]); ++k) continue; Memmove(¤t_value[1], ¤t_value[k], (size_t)(n + 1 - k)); /* copy includes trailing NULL */ n = strlen(current_value); } if (current_value[n-1] == '"') { for (k = n; (k > 1) && Isspace(current_value[k-2]); --k) continue; if (current_value[k-2] == '\\') /* maybe have \ or \\ */ { if ((k > 2) && (current_value[k-3] != '\\')) --k; /* discard final \ */ } current_value[k-1] = (char)'"'; current_value[k] = (char)'\0'; } } bibclean-3.07/isbn-el-to-bibclean-isbn.awk0000644000156700015670000001047213251273621017255 0ustar beebebeebe# /u/sy/beebe/emacs/isbn-el-to-bibclean-isbn.awk, Sun Nov 7 12:03:37 1999 # Edit by Nelson H. F. Beebe # ====================================================================== # Convert data in isbn.el to data for bibclean's isbn.c file. # # Usage: # gawk -f isbn-el-to-bibclean-isbn.awk isbn.el >foo.c # # [11-Mar-2018] -- change (const char NULL) to "" in all but final # countries field to match logic changes in bibclean # to remove all memory leaks # [25-Nov-2000] -- add forgotten dimension MAX_ISBN_RANGE; its absence # caused a core dump in bibclean when a .bibclean.isbn # file was supplied # [07-Nov-1999] -- original version # ====================================================================== BEGIN { print_begin_group() } /^[ \t]*[(]cond/ { In_Cond = 1 } /^[ \t]*[(]t *$/ { In_Cond = 0 } /^[ \t]*$/ { new_group() } /^[ \t]*;; +[(][(]isbn-in-rangep/ { next } # ignore commented-out function calls /^[ \t]*;; +/ { add_group_name($0) } /[(][(]isbn-in-rangep/ { add_range($2,$3) } END { print_group(); print_end_group() } # ====================================================================== function add_group_name(s) { if (In_Cond) { ## Reset Group_Name at each new region, so as to discard the ## commentary about the source of the data if (s ~ "Region name:") Group_Name = "" gsub("[ \t]*;; +","",s) Group_Name = ((Group_Name == "") ? s : (Group_Name "\\t" s)) } } function add_range(begin,end) { gsub("[()]","",begin) gsub("[()]","",end) Begin_Range = begin End_Range = end if (In_Cond) print_group() } function country_language(s) { # Reduce "abc-xyz" to "abc" and return it gsub("-.*$","",s) return (s) } function new_group() { if (Group_Name != "") { print_group() Group_Name = "" Begin_Range = "" End_Range = "" } } function print_begin_group() { "date" | getline current_date_and_time close("date") print "/**********************************************************************/" print "/**********************************************************************/" print "/** WARNING: Do NOT edit this file. It was created automatically **/" print "/** from the master ISBN prefix list on " current_date_and_time " **/" print "/** by **/" print "/** **/" print "/** awk -f isbn-el-to-bibclean-isbn.awk isbn.el >this-file **/" print "/** **/" print "/** Update the bibclean ISBN initialization file, .bibclean.isbn, **/" print "/** instead! **/" print "/**********************************************************************/" print "/**********************************************************************/" print "" print "static ISBN_range_t ISBN_range[MAX_ISBN_RANGE] =" print "{" print " /*******************************************************************" print " NB: We intentionally include the hyphen that separates the" print " countrygroupnumber from the publishernumber, in order to improve" print " readability, even though this complicates the processing in" print " in_ISBN_range(). Given the position of that hyphen, we automatically" print " compute the required hyphen positions." print " *******************************************************************/" } function print_end_group() { print "" print "" print " /* The list is ended by a triple of NULL pointers */" print " { (const char*)NULL, (const char*)NULL, (const char*)NULL}" print "};" } function print_group( new_block) { if ((Group_Name != "") && (Begin_Range != "") && (End_Range != "")) { Country_Language = country_language(Begin_Range) new_block = (Last_Group_Name != Group_Name) || \ (Last_Country_Language != Country_Language) printf("%s { %-25s%-16s%s},\n", \ (new_block ? "\n\n" : ""), \ (Begin_Range ","), \ (End_Range ","), \ (new_block ? ("\"" Group_Name "\"") : "\"\"")) Last_Group_Name = Group_Name Last_Country_Language = Country_Language Begin_Range = "" End_Range = "" } } bibclean-3.07/isbn.c0000644000156700015670000010613114104503417013204 0ustar beebebeebe/*********************************************************************** @C-file{ author = "Nelson H. F. Beebe", version = "2.17", date = "06 March 2021", time = "18:31:33 MST", filename = "isbn.c", address = "University of Utah Department of Mathematics, 110 LCB 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA", telephone = "+1 801 581 5254", FAX = "+1 801 581 4148", URL = "http://www.math.utah.edu/~beebe", checksum = "22111 1383 4584 35929", email = "beebe@math.utah.edu, beebe@acm.org, beebe@computer.org (Internet)", codetable = "ISO/ASCII", keywords = "bibliography, ISBN, hyphenation", license = "GNU General Public License, version 2 or later", supported = "yes", docstring = "This file contains code for hyphenating International Standard Book Numbers (ISBNs), using the function ISBN_hyphenate(s,t,maxs). No other public objects are defined by this file. If this file is compiled with the preprocessor symbol TEST defined, then a standalone program, normally named bibisbn, is produced that can be used to filter test data containing ISBN key/value pairs extracted from BibTeX files. For example, the UNIX commands bibclean -no-warn -max-width 0 *.bib | \ grep '^ *ISBN *=' >tmpfile sed -e 's/-//g' tmpfile | bibisbn | diff tmpfile - should display no differences in ISBN numbers, except where their hyphenation was originally incorrect, or missing. The checksum field above contains a CRC-16 checksum as the first value, followed by the equivalent of the standard UNIX wc (word count) utility output of lines, words, and characters. This is produced by Robert Solovay's checksum utility.", } ***********************************************************************/ #include #include #include "xstdbool.h" #include "xstdlib.h" #include "xstring.h" #include "xctype.h" RCSID("$Id: isbn.c,v 1.12 2014/04/03 18:05:23 beebe Exp beebe $") #include "ch.h" #include "isbn.h" #include "yesorno.h" #if !defined(MAX_ISBN_RANGE) #define MAX_ISBN_RANGE 2560 /* about 8 times the default size */ #endif static const char *ISBN_file = (const char*)NULL; typedef struct { const char *begin; const char *end; const char *countries; } ISBN_range_t; #include "isbn.tbl" /* generated from awk -f isbn-el-to-bibclean-isbn.awk isbn.el */ #define isISBNdigit(c) (Isdigit((int)(c)) || ((int)(c) == (int)'X') || ((int)(c) == (int)'x')) #define isISBN_13digit(c) isISBNdigit(c) #define MAX_ISBN 14 /* array size for complete ISBN and terminal NUL */ #define MAX_ISBN_13 18 /* array size for complete ISBN-13 and terminal NUL */ extern FILE *stdlog; /*@null@*/ extern char *findfile ARGS((/*@null@*/ const char *pathlist_, /*@null@*/ const char *name_)); extern char *get_line ARGS((FILE *fp_)); extern char *Strdup ARGS((const char *s_)); extern FILE *tfopen ARGS((const char *filename_, const char *mode_)); void ISBN_hyphenate ARGS((/*@out@*/ char *s_,/*@out@*/ char *t_,size_t maxs_)); void ISBN_initialize ARGS((void)); static void add_ISBN_range ARGS((const char *the_begin, const char *the_end, const char *the_countries)); static void add_one_ISBN_range ARGS((const char *the_begin, const char *the_end, const char *the_countries, size_t where)); static YESorNO is_valid_ISBN_prefix ARGS((const char *prefix)); static const char *fix_ISBN ARGS((const char *ISBN_)); static const char *hyphenate_one_ISBN ARGS((const char *prefix_, const char *ISBN_)); static const char *hyphenate_one_ISBN_13 ARGS((const char *prefix_, const char *ISBN_13_)); static int in_ISBN_range ARGS((const char *begin_, const char *ISBN_, const char *end_)); static YESorNO ISBN_match_country_language ARGS((const char *p1, const char *p2)); static const char *next_ISBN ARGS((const char *s_, const char **end_)); static const char *next_ISBN_13 ARGS((const char *s_, const char **end_)); static void squeeze_ISBN ARGS((char * out_ISBN_, const char *in_ISBN_)); extern void warning ARGS((const char *msg_)); #if defined(TEST) #define ISBN_DIGIT_VALUE(c) ((((int)(c) == (int)'X') || ((int)(c) == (int)'x')) ? 10 : \ ((int)(c) - (int)'0')) /* correct only if digits are valid; */ /* the code below ensures that */ #define MAX_BUF 4096 #define stdlog stderr int main ARGS((int argc_, char* argv_[])); void ISBN_13_hyphenate ARGS((char *s_, char *t_, size_t maxs_)); static void ISBN_filter ARGS((const char *s_)); static void ISBN_strip_hyphens ARGS((char *s_)); static YESorNO ISBN_10_valid ARGS((const char *ISBN_)); static YESorNO ISBN_13_valid ARGS((const char *ISBN_)); long int line_number; #if defined(HAVE_STDC) int main(int argc, char* argv[]) #else int main(argc,argv) int argc; char* argv[]; #endif { char buf[MAX_BUF]; const char * help_lines[] = { "bibisbn [ --help ] [ --version ] [ arguments ]", "", "Hyphenate apparent ISBN-10 and ISBN-13 data on the command line, or stdin.", "Arguments or lines that resemble Web URLs are copied verbatim.", "", "With one or more arguments, filter them to stdout, and do not read stdin.", "", "Without arguments, filter lines from stdin to stdout.", "", "After careful comparison of input and output streams, it may be safe to", "apply this program to most BibTeX files.", (const char *)NULL }; line_number = 0L; if (argc > 1) /* hyphenate command-line arguments */ { int k, n; n = 0; for (k = 1; k < argc; ++k) { if (k > 1) /* separate arguments by single space */ (void)fputc(' ', stdout); if (strcmp(argv[k], "--help") == 0) { int m; for (m = 0; help_lines[m] != (const char *)NULL; ++m) (void)printf("%s\n", help_lines[m]); return (EXIT_SUCCESS); } else if (strcmp(argv[k], "--version") == 0) { (void)printf("bibisbn %s [%s]\n", PACKAGE_VERSION, PACKAGE_DATE); return (EXIT_SUCCESS); } else { ISBN_filter(argv[k]); ++n; } } if (n > 0) (void)fputs("\n", stdout); } else /* filter lines from stdin to stdout */ { while (fgets(buf,MAX_BUF,stdin) != (char*)NULL) { ++line_number; ISBN_filter(buf); } } return (EXIT_SUCCESS); } /*@noreturn@*/ #if defined(HAVE_STDC) void /* issue an error message and die */ fatal(const char *msg) #else /* K&R style */ void fatal(msg) /* issue an error message and die */ const char *msg; #endif { (void)fprintf(stdlog,"%s %s\n", ERROR_PREFIX, msg); exit(EXIT_FAILURE); } #if defined(HAVE_STDC) static YESorNO ISBN_10_valid(const char *ISBN_10) #else /* K&R style */ static YESorNO ISBN_10_valid(s) const char *ISBN_10; #endif { /* checksum algorithm adapted from validate_ISBN() in chek.c */ int checksum, k; YESorNO result; static const int max_isbn_10 = 10; for (checksum = 0, k = 1, result = NO; ISBN_10[k - 1] != '\0'; ++k) { if (k < max_isbn_10) checksum += ISBN_DIGIT_VALUE(ISBN_10[k - 1]) * k; else if (k == max_isbn_10) { if ((checksum % 11) == ISBN_DIGIT_VALUE(ISBN_10[k - 1])) result = YES; } } /* end for (loop over ISBN_10[]) */ return (result); } #if defined(HAVE_STDC) static YESorNO ISBN_13_valid(const char *ISBN_13) #else /* K&R style */ static YESorNO ISBN_13_valid(ISBN_13) const char *ISBN_13; #endif { int checksum, k; YESorNO result; static const int max_isbn_13 = 13; for (checksum = 0, k = 1, result = NO; ISBN_13[k - 1] != '\0'; ++k) { size_t weight; weight = (k & 1) ? 1 : 3; if (k < max_isbn_13) checksum += ISBN_DIGIT_VALUE(ISBN_13[k - 1]) * weight ; else if (k == max_isbn_13) { size_t digit_13, rem; rem = checksum % 10; digit_13 = (rem == 0) ? 0 : (10 - rem); if (digit_13 == ISBN_DIGIT_VALUE(ISBN_13[k - 1])) result = YES; } } /* end for (loop over ISBN_13[]) */ return (result); } #if defined(HAVE_STDC) static void ISBN_filter(const char *s) #else /* K&R style */ static void ISBN_filter(s) const char *s; #endif { /* ** Tokenize s, writing non-ISBN data verbatim to stdout, and ** hyphenating (if possible) ISBN data. However, make an ** exception for URL-like data in s[], and just write that ** verbatim. That way, for many BibTeX files, this program can be ** safely applied to the entire file. However, caution is ** advised: carefully compare input and output before replacing ** the input with the output! */ if (strstr(s, "://") != (const char *)NULL) (void)fputs(s, stdout); /* preserve URLs */ else { while (*s) { if (isdigit(*s)) { char buf3[MAX_BUF]; char buf2[MAX_BUF]; char buf[MAX_BUF]; char msg[100]; size_t m, n; for (m = 0; (m < (sizeof(buf) - 1)) && (isdigit(*s) || (*s == '-') || (*s == 'X') || (*s == 'x')); ++s) { buf[m++] = *s; } buf[m] = '\0'; (void)strcpy(buf3, buf); ISBN_strip_hyphens(buf3); n = strlen(buf3); if (n == 10) { if (ISBN_10_valid(buf3) == YES) { (void)strcpy(buf, buf3); ISBN_hyphenate(buf, buf2, MAX_BUF); } else { (void)snprintf(msg, sizeof(msg), "invalid ISBN-10 value [%.10s]", buf3); warning(msg); } } else if (n == 13) { if (ISBN_13_valid(buf3) == YES) { (void)strcpy(buf, buf3); ISBN_13_hyphenate(buf, buf2, MAX_BUF); } else { (void)snprintf(msg, sizeof(msg), "invalid ISBN-13 value [%.13s]", buf3); warning(msg); } } n = strlen(buf); if ((strncmp(buf, "978", 3) == 0) && (n == 16)) { (void)fputs("978-", stdout); (void)fputs(&buf[3], stdout); } else if ((strncmp(buf, "979", 3) == 0) && (n == 16)) { (void)fputs("979-", stdout); (void)fputs(&buf[3], stdout); } else (void)fputs(buf,stdout); } else { (void)fputc(*s, stdout); ++s; } } } } #if defined(HAVE_STDC) static void ISBN_strip_hyphens(char *s) #else /* K&R style */ static void ISBN_strip_hyphens(s) char *s; #endif { char *t; for (t = s; *s; ++s) { if (*s != '-') *t++ = *s; } *t = *s; /* copy NUL terminator */ } #if defined(HAVE_STDC) char* Strdup(const char *s) #else /* K&R style */ char* Strdup(s) const char *s; #endif { char *p; p = (char*)malloc(strlen(s)+1); if (p == (char*)NULL) fatal("Out of string memory"); return (strcpy(p,s)); } #if defined(HAVE_STDC) void warning(const char *msg) /* issue a warning message to stdlog */ #else /* K&R style */ void warning(msg) /* issue a warning message to stdlog */ const char *msg; #endif { (void)fprintf(stdlog,"%s:%ld:%s.\n", "-", line_number, msg); (void)fflush(stdlog); } #endif /* defined(TEST) */ #if defined(HAVE_STDC) static void add_ISBN_range(const char *the_begin, const char *the_end, const char *the_countries) #else /* K&R style */ static void add_ISBN_range(the_begin, the_end, the_countries) const char *the_begin; const char *the_end; const char *the_countries; #endif { /* Search the ISBN_range[] table circularly from the last search position for the next non-empty slot matching the_begin, and install the new triple (the_begin,the_end,the_countries) there. Otherwise, add the triple at the end, if enough space remains. */ static int error_count = 0; size_t k; static size_t start = (size_t) 0; /* Silently ignore invalid begin/end pairs */ if (the_begin == (const char *)NULL) return; else if (the_end == (const char *)NULL) return; if (the_begin[0] == '-') start = 0; /* because deletions must always find the first match */ for (k = start; (k < MAX_ISBN_RANGE) && (ISBN_range[k].begin != (const char *)NULL); ++k) { if (ISBN_range[k].begin[0] == '-') { if (STREQUAL(ISBN_range[k].begin,the_begin)) { /* then already deleted this one */ start = k; return; } else continue; /* ignore `deleted' entries */ } else if ((the_begin[0] == '-') && STREQUAL(ISBN_range[k].begin, the_begin + 1)) { /* then `delete' this entry by changing its begin prefix to start with a hyphen */ ISBN_range[k].begin = Strdup(the_begin); start = k; return; } else if (STREQUAL(ISBN_range[k].begin, the_begin)) { add_one_ISBN_range(the_begin, the_end, the_countries, k); start = k; return; } } /* If we fell through, then restart the search in the beginning of the table */ for (k = 0; (k < start) && (ISBN_range[k].begin != (const char *)NULL); ++k) { if (ISBN_range[k].begin[0] == '-') { if (STREQUAL(ISBN_range[k].begin,the_begin)) { /* then already deleted this one */ start = k; return; } else continue; /* ignore `deleted' entries */ } else if ((the_begin[0] == '-') && STREQUAL(ISBN_range[k].begin, the_begin + 1)) { /* then `delete' this entry by changing its begin prefix to start with a hyphen */ ISBN_range[k].begin = Strdup(the_begin); start = k; return; } else if (STREQUAL(ISBN_range[k].begin, the_begin)) { add_one_ISBN_range(the_begin, the_end, the_countries, k); start = k; return; } } /* If we fell through, then add the new entry at the first deleted entry, or after the last used entry */ for (k = 0; ((k < MAX_ISBN_RANGE) && (ISBN_range[k].begin != (const char *)NULL) && (ISBN_range[k].begin[0] != '\0')); ++k) continue; if (k < (MAX_ISBN_RANGE - 1)) /* then have space to store this new entry */ { start = k; add_one_ISBN_range(the_begin, the_end, the_countries, k); } else if (++error_count == 1) /* no more than one error message */ (void)fprintf(stdlog, "More than %lu ISBN ranges fills internal table\n", (unsigned long)MAX_ISBN_RANGE); } #if defined(HAVE_STDC) static void add_one_ISBN_range(const char *the_begin, const char *the_end, const char *the_countries, size_t where) #else /* K&R style */ static void add_one_ISBN_range(the_begin, the_end, the_countries, where) const char *the_begin; const char *the_end; const char *the_countries; size_t where; #endif { /* add an entry at slot where, without bounds checking, but with valid-value checking */ #define FMT_INVALID "Invalid country/language-publisher ISBN prefix [%s] in ISBN file [%s]\n" if ((the_begin != (const char*)NULL) && (is_valid_ISBN_prefix(the_begin) == NO)) { (void)fprintf(stdlog, FMT_INVALID, the_begin, ISBN_file); return; } else if ((the_end != (const char*)NULL) && (is_valid_ISBN_prefix(the_end) == NO)) { (void)fprintf(stdlog, FMT_INVALID, the_end, ISBN_file); return; } else if ((the_begin != (const char*)NULL) && (the_end != (const char*)NULL) && STRGREATER(the_begin,the_end)) { (void)fprintf(stdlog, "Non-increasing country/language-publisher ISBN range [%s .. %s] in ISBN file [%s]\n", the_begin, the_end, ISBN_file); return; } FREE(ISBN_range[where].begin); FREE(ISBN_range[where].end); FREE(ISBN_range[where].countries); if (the_begin == (const char *)NULL) /* sanity check for assumptions elsewhere in bibclean */ { assert(the_end == (const char *)NULL); assert(the_countries == (const char *)NULL); } else { if (the_countries == (const char *)NULL) the_countries = ""; assert(the_end != (const char *)NULL); assert(the_countries != (const char *)NULL); } ISBN_range[where].begin = (the_begin == (const char *)NULL) ? the_begin : Strdup(the_begin); ISBN_range[where].end = (the_end == (const char *)NULL) ? the_end : Strdup(the_end); ISBN_range[where].countries = (the_countries == (const char *)NULL) ? the_countries : Strdup(the_countries); #undef FMT_INVALID } #if !defined(TEST) #if defined(HAVE_STDC) void do_ISBN_file(/*@null@*/ const char *pathlist, /*@null@*/ const char *name) #else /* K&R style */ void do_ISBN_file(pathlist,name) /*@null@*/ const char *pathlist; /*@null@*/ const char *name; #endif { FILE *fp; char *p; if (name == (const char*)NULL) return; if ((ISBN_file = findfile(pathlist,name)) == (char*)NULL) return; /* silently ignore missing files */ if ((fp = tfopen(ISBN_file,"r")) == (FILE*)NULL) return; /* silently ignore missing files */ /* The ISBN file is expected to look like the output of -print-ISBN-table: lines are (1) blank or empty, (2) comments from percent to end-of-line, (3) pairs of whitespace-separated (begin-prefix, end-prefix) values, or (4) triples of whitespace-separated (begin-prefix, end-prefix values, countries). In the latter case, the countries continue to end-of-line or a comment character, whichever comes first, and may include blanks. */ while ((p = get_line(fp)) != (char*)NULL) { #define TOKEN_SEPARATORS " \t" const char *the_begin; const char *the_end; const char *the_countries; char *comment; comment = strchr(p, BIBTEX_COMMENT_PREFIX); if (comment != (const char*)NULL) *comment = '\0'; /* then discard comment text */ the_begin = strtok(p, TOKEN_SEPARATORS); if (the_begin == (const char*)NULL) continue; /* ignore blank or empty lines */ if (*the_begin == (char)BIBTEX_COMMENT_PREFIX) continue; /* ignore comment lines */ the_end = strtok((char*)NULL, TOKEN_SEPARATORS); if (the_end == (const char*)NULL) { (void)fprintf(stdlog,"Expected end-prefix after begin-prefix [%s] in ISBN file [%s]\n", the_begin, ISBN_file); continue; } the_countries = strtok((char*)NULL, ""); if (the_countries != (const char*)NULL) { /* skip over leading space */ while (Isspace((int)*the_countries)) ++the_countries; } if ((the_countries != (const char*)NULL) && (*the_countries == '\0')) the_countries = (const char*)NULL; #if defined(DEBUG) (void)fprintf(stdlog, "DEBUG:\t[%s]\t[%s]\t[%s]\t[%s]\n", ISBN_file, the_begin, the_end, ((the_countries == (const char*)NULL) ? "" : the_countries)); #endif add_ISBN_range(the_begin, the_end, the_countries); } (void)fclose(fp); #undef TOKEN_SEPARATORS } #endif /* !defined(TEST) */ void do_print_ISBN_table(VOID) { size_t k; /* For brevity and readability, we output the country/language group prefix only when it changes, preceded by pair of newlines. */ (void)fprintf(stdlog, "%%%%%% ISBN ranges and country/language groups\n"); for (k = 0; (ISBN_range[k].begin != (const char *)NULL); ++k) { const char *country_names; assert(ISBN_range[k].end != (const char *)NULL); /* sanity check on ISBN_range[] table logic */ assert(ISBN_range[k].countries != (const char *)NULL); if (k == 0) { if (ISBN_range[k].countries[0] == '\0') country_names = (const char *)NULL; else country_names = ISBN_range[k].countries; } else if (STREQUAL(ISBN_range[k-1].countries,ISBN_range[k].countries) && (ISBN_match_country_language(ISBN_range[k-1].begin,ISBN_range[k].begin) == YES)) country_names = (const char *)NULL; else if (ISBN_range[k].countries[0] == '\0') country_names = (const char *)NULL; else country_names = ISBN_range[k].countries; /* We intentionally include `deleted' entries (beginning with a hyphen), so as not to conceal information from the user. */ (void)fprintf(stdlog, "%s%-11s\t%-11s%s%s\n", ((country_names == (const char *)NULL) ? "" : "\n\n"), ISBN_range[k].begin, ISBN_range[k].end, ((country_names == (const char *)NULL) ? "" : "\t"), ((country_names == (const char *)NULL) ? "" : country_names)); } } #if defined(HAVE_STDC) static const char * fix_ISBN(const char *ISBN) #else /* K&R style */ static const char * fix_ISBN(ISBN) const char *ISBN; #endif { size_t k; for (k = 0; (ISBN_range[k].begin != (const char*)NULL); ++k) { if (ISBN_range[k].begin[0] == '-') continue; /* ignored `deleted' entries */ if (in_ISBN_range(ISBN_range[k].begin, ISBN, ISBN_range[k].end) == 0) return (hyphenate_one_ISBN(ISBN_range[k].begin, ISBN)); } return ((const char*)NULL); } #if defined(HAVE_STDC) static const char * fix_ISBN_13(const char *ISBN_13) #else /* K&R style */ static const char * fix_ISBN_13(ISBN_13) const char *ISBN_13; #endif { size_t k; for (k = 0; (ISBN_range[k].begin != (const char*)NULL); ++k) { if (ISBN_range[k].begin[0] == '-') continue; /* ignored `deleted' entries */ if (in_ISBN_range(ISBN_range[k].begin, &ISBN_13[3], ISBN_range[k].end) == 0) return (hyphenate_one_ISBN_13(ISBN_range[k].begin, ISBN_13)); } return ((const char*)NULL); } #define skip_non_ISBN_digit(p) while ((*p != '\0') && !isISBNdigit((int)*p)) p++ #define skip_non_ISBN_13_digit(p) skip_non_ISBN_digit(p) void free_ISBN_table(VOID) { int k; /* index into ISBN_range[] */ for (k = 0; k < MAX_ISBN_RANGE; ++k) { if (ISBN_range[k].begin != (const char *)NULL) { FREE(ISBN_range[k].begin); ISBN_range[k].begin = (const char *)NULL; } if (ISBN_range[k].end != (const char *)NULL) { FREE(ISBN_range[k].end); ISBN_range[k].end = (const char *)NULL; } if (ISBN_range[k].countries != (const char *)NULL) { FREE(ISBN_range[k].countries); ISBN_range[k].countries = (const char *)NULL; } } } #if defined(HAVE_STDC) static const char * hyphenate_one_ISBN(const char *prefix, const char *ISBN) #else /* K&R style */ static const char * hyphenate_one_ISBN(prefix,ISBN) const char *prefix; const char *ISBN; #endif { /******************************************************************* Given a countrygroupnumber-publishernumber prefix, and an ISBN optionally containing spaces and hyphens, return a pointer to an unmodifiable properly-hyphenated ISBN stored in an internal buffer that is overwritten on subsequent calls, or NULL if the correct number of ISBN digits is not found. The input ISBN can contain optional leading and trailing text, such as a line from a BibTeX .bib file, like this: ISBN = "0-387-09823-2 (paperback)", ******************************************************************/ static char new_ISBN[MAX_ISBN]; int k; skip_non_ISBN_digit(ISBN); for (k = 0; (*ISBN != '\0') && (k < (MAX_ISBN - 2)); ) { if (*prefix == '-') { new_ISBN[k++] = '-'; prefix++; } else if (*prefix != '\0') { skip_non_ISBN_digit(ISBN); if (*ISBN == '\0') break; new_ISBN[k++] = *ISBN++; prefix++; if ((*prefix == '\0') && (k < MAX_ISBN)) new_ISBN[k++] = '-'; } else /* past prefix */ { skip_non_ISBN_digit(ISBN); if (*ISBN == '\0') break; new_ISBN[k++] = *ISBN++; } } if ((k == (MAX_ISBN - 2)) && !isISBNdigit(*ISBN)) { new_ISBN[(MAX_ISBN - 2)] = new_ISBN[(MAX_ISBN - 3)]; /* move checksum digit to end */ new_ISBN[(MAX_ISBN - 3)] = '-'; /* prefix it with a hyphen */ new_ISBN[(MAX_ISBN - 1)] = '\0'; /* terminate the string */ return ((const char*)&new_ISBN[0]); } else return ((const char*)NULL); } #if defined(HAVE_STDC) static const char * hyphenate_one_ISBN_13(const char *prefix, const char *ISBN_13) #else /* K&R style */ static const char * hyphenate_one_ISBN_13(prefix,ISBN_13) const char *prefix; const char *ISBN_13; #endif { /******************************************************************* Given an ISBN-10 countrygroupnumber-publishernumber prefix, and an ISBN-13 optionally containing spaces and hyphens, return a pointer to an unmodifiable properly-hyphenated ISBN-13 stored in an internal buffer that is overwritten on subsequent calls, or NULL if the correct number of ISBN-13 digits is not found. The input ISBN-13 can contain optional leading and trailing text, such as a line from a BibTeX .bib file, like this: ISBN-13 = "978-0-387-09823-4 (paperback)", ******************************************************************/ static char new_ISBN_13[MAX_ISBN_13]; int k; skip_non_ISBN_13_digit(ISBN_13); for (k = 0; (*ISBN_13 != '\0') && (k < (MAX_ISBN_13 - 2)); ) { if (k == 0) { if ( (strncmp("978", ISBN_13, 3) == 0) || (strncmp("979", ISBN_13, 3) == 0) ) { new_ISBN_13[k++] = *ISBN_13++; new_ISBN_13[k++] = *ISBN_13++; new_ISBN_13[k++] = *ISBN_13++; new_ISBN_13[k++] = '-'; } else warning("ISBN-13 must begin with either 978 or 979: ``%v''"); } if (*prefix == '-') { new_ISBN_13[k++] = '-'; prefix++; } else if (*prefix != '\0') { skip_non_ISBN_13_digit(ISBN_13); if (*ISBN_13 == '\0') break; new_ISBN_13[k++] = *ISBN_13++; prefix++; if ((*prefix == '\0') && (k < MAX_ISBN_13)) new_ISBN_13[k++] = '-'; } else /* past prefix */ { skip_non_ISBN_13_digit(ISBN_13); if (*ISBN_13 == '\0') break; new_ISBN_13[k++] = *ISBN_13++; } } if ((k == (MAX_ISBN_13 - 2)) && !isISBN_13digit(*ISBN_13)) { new_ISBN_13[(MAX_ISBN_13 - 2)] = new_ISBN_13[(MAX_ISBN_13 - 3)]; /* move checksum digit to end */ new_ISBN_13[(MAX_ISBN_13 - 3)] = '-'; /* prefix it with a hyphen */ new_ISBN_13[(MAX_ISBN_13 - 1)] = '\0'; /* terminate the string */ return ((const char*)&new_ISBN_13[0]); } else return ((const char*)NULL); } #if defined(HAVE_STDC) static int in_ISBN_range(const char *begin, const char *ISBN, const char *end) #else /* K&R style */ static int in_ISBN_range(begin,ISBN,end) const char *begin; const char *ISBN; const char *end; #endif { /* Compare the countrygroupnumber-publishernumber part of ISBN against the range (begin, end), and return -1 (less than), 0 (in range), or +1 (greater than). */ char begin_prefix[MAX_ISBN]; char end_prefix[MAX_ISBN]; char ISBN_prefix[MAX_ISBN]; squeeze_ISBN(begin_prefix, begin); squeeze_ISBN(ISBN_prefix,ISBN); if (strncmp(ISBN_prefix,begin_prefix,strlen(begin_prefix)) < 0) return (-1); squeeze_ISBN(end_prefix,end); if (strncmp(end_prefix,ISBN_prefix,strlen(end_prefix)) < 0) return (1); return (0); } #if defined(HAVE_STDC) static YESorNO is_valid_ISBN_prefix(const char *prefix) #else /* K&R style */ static YESorNO is_valid_ISBN_prefix(prefix) const char *prefix; #endif { /* Return YES if prefix matches "^[0-9]+-[0-9]+$" and has a length < 10, and else, NO */ int n; int len; for (len = 0, n = 0; Isdigit((int)*prefix); ++prefix) (len++, n++); if (n == 0) return (NO); if (*prefix != '-') return (NO); prefix++; len++; for (n = 0; Isdigit((int)*prefix); ++prefix) (len++, n++); if (n == 0) return (NO); if (*prefix != '\0') return (NO); if (len >= 10) /* longest possible is 9999999-9[-9-9] */ return (NO); return (YES); } #if defined(HAVE_STDC) void ISBN_hyphenate(/*@out@*/ char *s, /*@out@*/ char *t, size_t maxs) #else /* K&R style */ void ISBN_hyphenate(s,t,maxs) /*@out@*/ char *s; /*@out@*/ char *t; size_t maxs; #endif { const char *p; const char *r; const char *next; const char *start; /* Given a string s[] containing one or more ISBNs, rewrite the */ /* string in-place with correct ISBN hyphenation. Up to maxs-1 */ /* non-NUL characters of s[] may be used. t[] is workspace, at */ /* least as large as s[]. If insufficient workspace is */ /* available, s[] is returned unchanged. */ t[0] = '\0'; #if defined(__WATCOMC__) /* Watcom 10.0 C++ compilers on IBM PC cannot handle the original version, which was written that way to avoid compiler warnings, sigh... */ for (p = start = s; (p = next_ISBN(p,&next)) != (const char*)NULL; start = p) #else for (p = start = s; (p = next_ISBN(p,&next), p) != (const char*)NULL; start = p) #endif { if ((strlen(t) + (size_t)(p-start)) >= maxs) return; /* insufficient space: premature return */ (void)strncat(t,start,(size_t)(p-start)); r = fix_ISBN(p); if (r != (char*)NULL) { if ((strlen(t) + strlen(r)) >= maxs) return; /* insufficient space: premature return */ (void)strcat(t,r); p = next; } else { if ((strlen(t) + 1) >= maxs) return; /* insufficient space: premature return */ (void)strncat(t,p,1); ++p; } } if ((strlen(t) + strlen(start)) >= maxs) return; /* insufficient space: premature return */ (void)strcat(t,start); (void)strcpy(s,t); } #if defined(HAVE_STDC) void ISBN_13_hyphenate(/*@out@*/ char *s, /*@out@*/ char *t, size_t maxs) #else /* K&R style */ void ISBN_13_hyphenate(s,t,maxs) /*@out@*/ char *s; /*@out@*/ char *t; size_t maxs; #endif { const char *p; const char *r; const char *next; const char *start; /* Given a string s[] containing one or more ISBN_13s, rewrite the */ /* string in-place with correct ISBN_13 hyphenation. Up to maxs-1 */ /* non-NUL characters of s[] may be used. t[] is workspace, at */ /* least as large as s[]. If insufficient workspace is */ /* available, s[] is returned unchanged. */ t[0] = '\0'; #if defined(__WATCOMC__) /* Watcom 10.0 C++ compilers on IBM PC cannot handle the original version, which was written that way to avoid compiler warnings, sigh... */ for (p = start = s; (p = next_ISBN_13(p,&next)) != (const char*)NULL; start = p) #else for (p = start = s; (p = next_ISBN_13(p,&next), p) != (const char*)NULL; start = p) #endif { if ((strlen(t) + (size_t)(p-start)) >= maxs) return; /* insufficient space: premature return */ (void)strncat(t,start,(size_t)(p-start)); r = fix_ISBN_13(p); if (r != (char*)NULL) { if ((strlen(t) + strlen(r)) >= maxs) return; /* insufficient space: premature return */ (void)strcat(t,r); p = next; } else { if ((strlen(t) + 1) >= maxs) return; /* insufficient space: premature return */ (void)strncat(t,p,1); ++p; } } if ((strlen(t) + strlen(start)) >= maxs) return; /* insufficient space: premature return */ (void)strcat(t,start); (void)strcpy(s,t); } void ISBN_initialize(VOID) { size_t k; /* Reallocate static-string entries in the ISBN_range[] table, so that we can later free them on exit, and avoid complaints about memory leaks. Logic elsewhere in bibclean requires that if the begin pointer is non--NULL, then the end and countries pointers are as well. */ for (k = 0; (ISBN_range[k].begin != (const char *)NULL); ++k) { assert(ISBN_range[k].end != (const char *)NULL); assert(ISBN_range[k].countries != (const char *)NULL); ISBN_range[k].begin = Strdup(ISBN_range[k].begin); ISBN_range[k].end = Strdup(ISBN_range[k].end); ISBN_range[k].countries = Strdup(ISBN_range[k].countries); } for (; k < MAX_ISBN_RANGE; ++k) /* fill rest of table with NULL pointers */ { ISBN_range[k].begin = (const char *)NULL; ISBN_range[k].end = (const char *)NULL; ISBN_range[k].countries = (const char *)NULL; } /* Check the consistency of the ISBN_range[] table, and then modify its compile-time setting so that all entries are guaranteed to have non-NULL countries. We need to ensure this, because an "-ISBN-file filename" option can `delete' table entries (by resetting the begin string to start with a hyphen). */ for (k = 0; (ISBN_range[k].begin != (const char *)NULL); ++k) { if (ISBN_range[k].end == (const char*)NULL) { (void)fprintf(stdlog, "Illegal ISBN range end [%s .. NULL]\n", ISBN_range[k].begin); ISBN_range[k].end = ""; } #define FMT_INVALID "Invalid country/language-publisher ISBN prefix [%s]\n" if (is_valid_ISBN_prefix(ISBN_range[k].begin) == NO) { (void)fprintf(stdlog, FMT_INVALID, ISBN_range[k].begin); ISBN_range[k].begin = ""; } if (is_valid_ISBN_prefix(ISBN_range[k].end) == NO) { (void)fprintf(stdlog, FMT_INVALID, ISBN_range[k].end); ISBN_range[k].end = ""; } #undef FMT_INVALID if (STRGREATER(ISBN_range[k].begin, ISBN_range[k].end)) { (void)fprintf(stdlog, "Non-increasing country/language-publisher ISBN range [%s .. %s] deleted\n", ISBN_range[k].begin, ISBN_range[k].end); ISBN_range[k].begin = ISBN_range[k].end = ""; } if (ISBN_range[k].countries == (const char *)NULL) { if ((k == 0) || (ISBN_match_country_language(ISBN_range[k-1].begin,ISBN_range[k].begin) == NO)) { (void)fprintf(stdlog, "Missing country names for ISBN range [%s .. %s]\n", ISBN_range[k].begin, ISBN_range[k].end); ISBN_range[k].countries = Strdup(""); } else if (ISBN_match_country_language(ISBN_range[k-1].begin,ISBN_range[k].begin) == YES) ISBN_range[k].countries = Strdup(ISBN_range[k - 1].countries); else ISBN_range[k].countries = Strdup(""); } } } #if defined(HAVE_STDC) static YESorNO ISBN_match_country_language(const char *p1, const char *p2) #else /* K&R style */ static YESorNO ISBN_match_country_language(p1, p2) const char *p1; const char *p2; #endif { /* Return YES if the country/language prefixes of p1 and p2 match, else NO */ size_t k; if ((p1 == (const char *)NULL) || (p2 == (const char *)NULL)) return (NO); for (k = 0; (p1[k] != '\0') && (p2[k] != '\0'); ++k) { if (p1[k] != p2[k]) return (NO); else if (p1[k] == '-') return (YES); } return (NO); } #if defined(HAVE_STDC) static const char * next_ISBN(const char *s,const char **next) #else /* K&R style */ static const char * next_ISBN(s,next) const char *s; const char **next; #endif { size_t n; const char *start; while (*s != '\0') /* scan over s[] */ { for ( ; (*s != '\0') && !isISBNdigit(*s); ++s) /* ignore non-ISBN digits */ continue; for (n = 0, start = s; (*s != '\0'); ++s) /* scan over ISBN */ { if (isISBNdigit(*s)) { n++; if (n == 10) /* then we found an ISBN */ { *next = s + 1; return (start); } } else if ((*s == ' ') || (*s == '-')) /* NO-OP */; else break; } } *next = (const char*)NULL; return ((const char*)NULL); /* no ISBN recognized */ } #if defined(HAVE_STDC) static const char * next_ISBN_13(const char *s,const char **next) #else /* K&R style */ static const char * next_ISBN_13(s,next) const char *s; const char **next; #endif { size_t n; const char *start; while (*s != '\0') /* scan over s[] */ { for ( ; (*s != '\0') && !isISBN_13digit(*s); ++s) /* ignore non-ISBN_13 digits */ continue; for (n = 0, start = s; (*s != '\0'); ++s) /* scan over ISBN_13 */ { if (isISBN_13digit(*s)) { n++; if (n == 13) /* then we found an ISBN_13 */ { *next = s + 1; return (start); } } else if ((*s == ' ') || (*s == '-')) /* NO-OP */; else break; } } *next = (const char*)NULL; return ((const char*)NULL); /* no ISBN_13 recognized */ } #if defined(HAVE_STDC) static void squeeze_ISBN(char * out_ISBN, const char *in_ISBN) #else /* K&R style */ static void squeeze_ISBN(out_ISBN,in_ISBN) char * out_ISBN; const char *in_ISBN; #endif { /* Copy in_ISBN to out_ISBN, eliminating non-ISBN characters */ char *limit = out_ISBN + MAX_ISBN; for ( ; out_ISBN < limit ; ) { skip_non_ISBN_digit(in_ISBN); *out_ISBN = *in_ISBN; if (*in_ISBN == '\0') break; in_ISBN++; out_ISBN++; } } bibclean-3.07/xunistd.h0000644000156700015670000000111707012057416013755 0ustar beebebeebe#ifndef XUNISTD_H_DEFINED_ #define XUNISTD_H_DEFINED_ #ifdef HAVE_UNISTD_H #include #endif #ifdef HAVE_LIBC_H #include /* e.g. NeXT Mach 3.x system */ #endif #if defined(__NeXT__) && defined(__GNUG__) /* g++ on NeXT has its own libc.h which just includes stdlib.h, but that lacks prototypes for three functions that we need. The vendor-provided libc.h has them. */ extern "C" { extern int access ARGS((const char *, int)); extern int ioctl ARGS((int, long, ...)); extern unsigned int sleep ARGS((unsigned int seconds)); }; #endif #endif /* XUNISTD_H_DEFINED_ */ bibclean-3.07/keybrd.c0000644000156700015670000004363313116532274013545 0ustar beebebeebe#include #if (SCREEN_LINES > 0) #if defined(HAVE_SYS_IOCTL_H) #include #endif #if defined(HAVE_STDLIB_H) #include #endif #include "xctype.h" #include "xstring.h" #include "xunistd.h" RCSID("$Id: keybrd.c,v 1.11 2017/06/09 14:46:20 beebe Exp beebe $") #include "ch.h" #include "keybrd.h" #include "yesorno.h" #define LAST_SCREEN_LINE (-2) /* used in opt_help() and do_more() */ #if defined(MAX) #undef MAX #endif #define MAX(a,b) (((a) > (b)) ? (a) : (b)) #ifdef MIN #undef MIN #endif /* MIN */ #define MIN(a,b) ((a) < (b) ? (a) : (b)) #undef MAX_CHAR #define MAX_CHAR 256 static keyboard_code_t keymap[MAX_CHAR]; extern int screen_lines; /* kbopen() and out_lines() reset */ extern FILE *tfopen ARGS((const char *filename_, const char *mode_)); static void beep ARGS((FILE *fpout)); int do_more ARGS((FILE *fpout_, int line_, int pause_after_, const char *lines[])); static int do_search ARGS((FILE *fpout_, int code_, int line_number_, int pause_after_, const char *lines_[])); static void erase_characters ARGS((FILE *fpout_, int how_many_)); static keyboard_code_t kbcode ARGS((void)); static int kbget ARGS((void)); static void kbinitmap ARGS((void)); static void #if defined (HAVE_STDC) beep(FILE *fpout) #else beep(fpout) FILE *fpout; #endif { (void)fputc(CH_BELL,fpout); (void)fflush(fpout); } #if defined(HAVE_STDC) int do_more(FILE *fpout,int line_number, int pause_after, const char *lines[]) #else /* K&R style */ int do_more(fpout, line_number, pause_after, lines) FILE *fpout; int line_number; int pause_after; const char *lines[]; #endif { int code; #if OS_PCDOS #define MORE_HELP \ "More? f)orwd b)ackwd e)nd q)uit r)efresh t)op \\/)search \030 \031 PgUp \ PgDn Home End\n\r" #else /* NOT OS_PCDOS */ #define MORE_HELP \ "More? f)orward b)ackward d)own e)nd q)uit r)efresh t)op u)p \\/)search\n\r" #endif /* OS_PCDOS */ (void)fputs(MORE_HELP,fpout); (void)fflush(fpout); /* make screen up-to-date */ for (;;) /* loop until a valid input code is received */ { switch (code = kbcode()) { case KEYBOARD_PGUP: /* backward screen */ return (MAX(0,line_number + 1 - 2*pause_after)); case KEYBOARD_DOWN: /* go down 1 line (scroll up 1 line) */ return (line_number + 2 - pause_after); case KEYBOARD_END: /* end */ return (LAST_SCREEN_LINE); case KEYBOARD_PGDN: /* forward screen */ return (line_number + 1); case KEYBOARD_HELP: (void)fputs(MORE_HELP,fpout); break; case KEYBOARD_EOF: case KEYBOARD_QUIT: return (EOF); case KEYBOARD_AGAIN: /* refresh */ return (MAX(0,line_number + 1 - pause_after)); case KEYBOARD_HOME: /* top */ return (0); case KEYBOARD_UP: /* go up 1 line (scroll down 1 line) */ return (line_number + 0 - pause_after); case KEYBOARD_DOWN_PARAGRAPH: /* Move down so that paragraph following the paragraph of the current top-of-screen line is at top-of-screen */ line_number++; if (line_number >= (screen_lines - 2)) line_number -= (screen_lines - 2); while ((lines[line_number] != (char*)NULL) && (lines[line_number][0] != '\n')) line_number++; return ((lines[line_number] == (char*)NULL) ? LAST_SCREEN_LINE : line_number + 1); case KEYBOARD_UP_PARAGRAPH: /* Move up so that paragraph of current top-of-screen line has its first line at top of screen. */ line_number--; if (line_number >= (screen_lines - 2)) line_number -= (screen_lines - 2); while ((line_number >= 0) && (lines[line_number] != (char*)NULL) && (lines[line_number][0] != '\n')) line_number--; return (line_number + 1); case KEYBOARD_SEARCH_BACKWARD: case KEYBOARD_SEARCH_FORWARD: return (do_search(fpout,code,line_number,pause_after,lines)); case KEYBOARD_UNKNOWN: default: /* anything else produces */ beep(fpout); /* an error beep */ break; } /* end switch (c...) */ } /* end for (;;) */ } static int #if defined(HAVE_STDC) do_search(FILE *fpout, int code, int line_number, int pause_after, const char *lines[]) #else do_search(fpout, code, line_number, pause_after, lines) FILE *fpout; int code; int line_number; int pause_after; const char *lines[]; #endif { int c; int k; int last_line_number = line_number; /*@-modobserver@*/ static char search_string[80] = ""; /* preserved across calls */ (void)fputs((code == KEYBOARD_SEARCH_BACKWARD) ? "Search backward: " : "Search forward: ",fpout); (void)fflush(fpout); for (k = 0; ;) { c = kbget(); if ((c == CH_NUL) || (c == CH_ESCAPE) || (c == (int)'\r') || (c == (int)'\n')) break; /* here's the loop exit */ else if ((c == CH_BACKSPACE) || (c == CH_DELETE)) { erase_characters(fpout,1); if (k > 0) k--; search_string[k] = '\0'; } else if (c == CH_LINE_KILL) /* erase entire search string */ { erase_characters(fpout,k); k = 0; search_string[k] = '\0'; } else if (c == CH_REPRINT) /* reprint entire search string */ { int m; erase_characters(fpout,k); for (m = 0; m < k; ++m) (void)fputc((int)search_string[m],fpout); (void)fflush(fpout); } else if (c == CH_WORD_ERASE) /* erase last non-blank word */ { YESorNO saw_word; saw_word = NO; for (--k ; k >= 0; --k) { if (Isspace(search_string[k]) && (saw_word == YES)) { k++; /* so that we keep this space */ break; } if (!Isspace(search_string[k])) saw_word = YES; erase_characters(fpout,1); } if (k < 0) k = 0; search_string[k] = '\0'; (void)fflush(fpout); } else if (k < ((int)sizeof(search_string) - 1)) { search_string[k++] = (char)c; (void)fputc(c,fpout); /* echo input character */ (void)fflush(fpout); } else /* search string too long: beep at user */ beep(fpout); } if (k > 0) /* got new search string */ search_string[k] = '\0'; else /* re-use last search string */ { (void)fputs(search_string,fpout); (void)fputc('\r',fpout); (void)fputc('\n',fpout); (void)fflush(fpout); } (void)fputc('\r',fpout); for (k = (int)(strlen("Search backward: ") + strlen(search_string)); (k > 0); --k) (void)fputc(' ',fpout); /* erase the search line */ (void)fputc('\r',fpout); (void)fflush(fpout); #if defined(DEBUG) (void)sleep(1); /* DEBUG delay */ #endif if (code == KEYBOARD_SEARCH_BACKWARD) line_number = MAX(0,line_number - pause_after); else line_number++; while ((line_number >= 0) && (lines[line_number] != (const char*)NULL)) { if (stristr(lines[line_number],search_string) != (char*)NULL) break; else if (code == KEYBOARD_SEARCH_BACKWARD) line_number--; else line_number++; } if ((line_number < 0) || (lines[line_number] == (const char*)NULL)) { /* then search failed */ beep(fpout); line_number = MAX(0,last_line_number + 1 - pause_after); } return (line_number); } static void #if defined(HAVE_STDC) erase_characters(FILE *fpout, int how_many) #else erase_characters(fpout, how_many) FILE *fpout; int how_many; #endif { for ( ; how_many > 0; --how_many) { (void)fputc(CH_BACKSPACE,fpout); (void)fputc(' ',fpout); (void)fputc(CH_BACKSPACE,fpout); } (void)fflush(fpout); } #if OS_PCDOS #if defined(HAVE_CONIO_H) #include /* needed for getch() declaration */ #endif int get_screen_lines(VOID) { return (SCREEN_LINES); } void kbclose(VOID) { } static keyboard_code_t kbcode(VOID) { int c; c = kbget(); /* get from keyboard without echo */ if ((c == 0) || (c == 0xe0)) /* then have IBM PC function key */ { c = kbget(); /* function key code */ switch (c) /* convert key code to character */ { case 71: /* HOME */ return (KEYBOARD_HOME); case 72: /* UP arrow */ return (KEYBOARD_UP); case 73: /* PGUP */ return (KEYBOARD_PGUP); case 79: /* END */ return (KEYBOARD_END); case 80: /* DOWN arrow */ return (KEYBOARD_DOWN); case 81: /* PGDN */ return (KEYBOARD_PGDN); default: return (KEYBOARD_UNKNOWN); } } else if (c == EOF) return (KEYBOARD_EOF); else return (keymap[(unsigned)c]); } static int kbget(VOID) { return (getch()); } void kbopen(VOID) { kbinitmap(); } #endif /* OS_PCDOS */ #if OS_UNIX static void reset_terminal ARGS((void)); static void set_terminal ARGS((void)); static FILE *fptty = (FILE*)NULL; /* for kbxxx() functions */ static YESorNO tty_init = NO; /* set to YES if tty_save set */ void kbclose(VOID) { reset_terminal(); if (fptty != (FILE*)NULL) (void)fclose(fptty); } keyboard_code_t kbcode(VOID) { int c = kbget(); if (c == EOF) return (KEYBOARD_EOF); else if (c == CH_ESCAPE) { /* handle some X Window System keys */ c = kbget(); if (c == (int)'[') /* ']' for balance */ { c = kbget(); if (c == (int)'A') /* "\e[A" ("]" for balance) */ return (KEYBOARD_UP); else if (c == (int)'B') /* "\e[B" ("]" for balance) */ return (KEYBOARD_DOWN); else if (c == (int)'C') /* "\e[C" ("]" for balance) */ return (KEYBOARD_END); else if (c == (int)'D') /* "\e[D" ("]" for balance) */ return (KEYBOARD_HOME); else if ((c == (int)'5') && (kbget() == (int)'~')) /* "\e[5~" ("]" for balance) */ return (KEYBOARD_PGUP); else if ((c == (int)'6') && (kbget() == (int)'~')) /* "\e[6~" ("]" for balance) */ return (KEYBOARD_PGDN); } return (KEYBOARD_UNKNOWN); } else return (keymap[(unsigned)c]); } int kbget(VOID) { if (fptty != (FILE*)NULL) { #if 0 /* fflush() discards typeahead -- no good for search string input */ (void)fflush(fptty); #endif return (getc(fptty)); } else return (EOF); } void kbopen(VOID) { kbinitmap(); if ((fptty = tfopen("/dev/tty","r")) != (FILE*)NULL) { set_terminal(); screen_lines = get_screen_lines(); } } #if defined(HAVE_TERMIO_H) #include static struct termio tty_save; /* SVID2 and XPG2 interface */ static void reset_terminal(VOID) /* restore saved modes */ { if (tty_init == YES) (void)ioctl((int)(fileno(fptty)),(int)TCSETAF,(char*)&tty_save); } static void set_terminal(VOID) /* set to cbreak input mode */ { struct termio tty; /* SVID2, XPG2 interface */ if (ioctl((int)(fileno(fptty)),(int)TCGETA,(char*)&tty) != -1) { tty_save = tty; tty_init = YES; tty.c_iflag &= ~(INLCR | ICRNL | ISTRIP | IXON | BRKINT); #if defined(IUCLC) tty.c_iflag &= ~IUCLC; /* absent from POSIX */ #endif /* defined(IUCLC) */ tty.c_lflag &= ~(ECHO | ICANON); tty.c_cc[4] = 5; /* MIN */ tty.c_cc[5] = 2; /* TIME */ (void)ioctl((int)(fileno(fptty)),(int)TCSETAF,(char*)&tty); } } #endif /* HAVE_TERMIO_H */ #if defined(HAVE_TERMIOS_H) #include static struct termios tty_save; /* XPG3, POSIX.1, FIPS 151-1 interface */ static void reset_terminal(VOID) /* restore saved modes */ { if (tty_init == YES) (void)tcsetattr((int)(fileno(fptty)),TCSANOW,&tty_save); } static void set_terminal(VOID) /* set to cbreak input mode */ { struct termios tty; /* XPG3, POSIX.1, FIPS 151-1 interface */ if (tcgetattr((int)(fileno(fptty)),&tty) != -1) { tty_save = tty; tty_init = YES; tty.c_iflag &= ~(INLCR | ICRNL | ISTRIP | IXON | BRKINT); #if defined(IUCLC) tty.c_iflag &= ~IUCLC; /* absent from POSIX */ #endif /* defined(IUCLC) */ tty.c_lflag &= ~(ECHO | ICANON); tty.c_cc[VMIN] = 5; /* MIN */ tty.c_cc[VTIME] = 2; /* TIME */ (void)tcsetattr((int)(fileno(fptty)),TCSANOW,&tty); } } #endif /* defined(HAVE_TERMIOS_H) */ #if defined(HAVE_SGTTY_H) #include static struct sgttyb tty_save; /* Berkeley style interface */ static void reset_terminal(VOID) /* restored saved terminal modes */ { if (tty_init == YES) (void)ioctl((int)(fileno(fptty)),(int)TIOCSETP,(char*)&tty_save); } static void set_terminal(VOID) /* set terminal for cbreak input mode */ { struct sgttyb tty; /* Try to put file into cbreak mode for character-at-a-time input */ if (ioctl((int)(fileno(fptty)),(int)TIOCGETP,(char*)&tty) != -1) { tty_save = tty; tty_init = YES; tty.sg_flags &= ~(ECHO | LCASE); tty.sg_flags |= CBREAK; (void)ioctl((int)(fileno(fptty)),(int)TIOCSETP,(char*)&tty); } } #endif /* defined(HAVE_SGTTY_H) */ int get_screen_lines(VOID) /* this must come after terminal header includes! */ { #if defined(HAVE_ISATTY) if ((isatty(fileno(stdin)) == 0) || (isatty(fileno(stdout)) == 0)) return (0); #endif #if defined(TIOCGWINSZ) if (fptty != (FILE*)NULL) { struct winsize window_size; (void)ioctl((int)(fileno(fptty)),(int)TIOCGWINSZ,&window_size); if (window_size.ws_row > 0) return ((int)window_size.ws_row); } #else /* defined(TIOCGWINSZ) */ /* some systems store screen lines in environment variables */ { char *p; if (((p = getenv("ROWS")) != (char*)NULL) || ((p = getenv("LINES")) != (char*)NULL)) { int n; n = (int)atoi(p); if (n > 0) return (n); } } #endif /* defined(TIOCGWINSZ) */ return (SCREEN_LINES); } #endif /* OS_UNIX */ #if OS_VAXVMS #if defined(HAVE_SSDEF_H) #include #endif #if defined(HAVE_DESCRIP_H) #include #endif #if defined(HAVE_IODEF_H) #include #endif #if defined(HAVE_TTDEF_H) #include #endif #if defined(HAVE_TT2DEF_H) #include #endif #if defined(__ALPHA) int sys$assign(void *desc_,int *channel_,int n1_,int n2_); int sys$qiow(int, int channel_, int flags_, int n1_, int n2_, int n3_, int *ret_char_, int n4_, int n5_, int n6_, int n7_, int n8_); int system(const char *s_); #else /* VAX VMS 6.1 has these header files */ #include /* for sys$assign(), sys$qiow() */ #endif extern int lib$screen_info ARGS((short *,short *,short *,short *,)); /* not defined in any system header */ /* file in VMS 6.x */ static int status; /* system service status */ static int tt_channel = -1; /* terminal channel for image QIO's */ static int iomask; /* QIO flag mask */ static $DESCRIPTOR(sys_in,"TT:"); /* terminal descriptor */ static struct { unsigned char class; unsigned char type; unsigned short buffer_size; unsigned long tt; unsigned long tt2; } mode_buf,mode_save; #define FAILED(status) (~(status) & 1) /* failure if LSB is 0 */ int get_screen_lines(VOID) { short flags; short dvtype; short ncols; short nrows = 0; #if defined(__ALPHA) || defined(__VMS_VERSION) /* I don't know what the OpenVMS replacement for lib$screen_info() is yet. */ /* It may be that scr$w_pagesize and scr$w_width in the struct scrdef1 */ /* in are the values we need for nrows and ncols. */ ncols = 80; nrows = 24; #else (void)lib$screen_info(&flags,&dvtype,&ncols,&nrows); #endif return ((int)((nrows > 0) ? nrows : SCREEN_LINES)); } void kbclose(VOID) { #if !defined(__ALPHA) (void)sys$qiow(0,tt_channel,IO$_SETMODE,0,0,0, &mode_save,12,0,0,0,0); #endif } keyboard_code_t kbcode(VOID) { int c = kbget(); return ((c == EOF) ? KEYBOARD_EOF : keymap[(unsigned)c]); } int kbget(VOID) { #if defined(__ALPHA) return (getchar()); #else int c; status = sys$qiow(0,tt_channel,iomask,0,0,0,&c,1,0,0,0,0); return ((int)(FAILED(status) ? EOF : BYTE_VAL(c))); #endif } void kbopen(VOID) { kbinitmap(); #if defined(__ALPHA) /* assume stdin is open for now */ #else status = sys$assign(&sys_in,&tt_channel,0,0); if (!FAILED(status)) { (void)sys$qiow(0,tt_channel,IO$_SENSEMODE,0,0,0,&mode_save,12,0,0,0,0); mode_buf = mode_save; mode_buf.tt &= ~TT$M_WRAP; (void)sys$qiow(0,tt_channel,IO$_SETMODE,0,0,0,&mode_buf,12,0,0,0,0); iomask = IO$_TTYREADALL | IO$M_NOECHO; } #endif } #endif /* OS_VAXVMS */ static void kbinitmap(VOID) { (void)Memset((void*)&keymap[0],(int)KEYBOARD_UNKNOWN,sizeof(keymap)); keymap[(unsigned)'b'] = KEYBOARD_PGUP; keymap[(unsigned)'B'] = KEYBOARD_PGUP; keymap[(unsigned)META('V')] = KEYBOARD_PGUP; /* Emacs scroll-down */ keymap[(unsigned)'\r'] = KEYBOARD_DOWN; /* the less and more pagers bind */ keymap[(unsigned)'\n'] = KEYBOARD_DOWN; /* these keys to KEYBOARD_DOWN */ keymap[(unsigned)'d'] = KEYBOARD_DOWN; keymap[(unsigned)'D'] = KEYBOARD_DOWN; keymap[(unsigned)CTL('N')] = KEYBOARD_DOWN; /* Emacs next-line*/ keymap[(unsigned)'e'] = KEYBOARD_END; keymap[(unsigned)'E'] = KEYBOARD_END; keymap[(unsigned)META('>')] = KEYBOARD_END; /* Emacs end-of-buffer */ keymap[(unsigned)'>'] = KEYBOARD_END; keymap[(unsigned)'f'] = KEYBOARD_PGDN; keymap[(unsigned)'F'] = KEYBOARD_PGDN; keymap[(unsigned)' '] = KEYBOARD_PGDN; keymap[(unsigned)CTL('V')] = KEYBOARD_PGDN; /* Emacs scroll-up */ keymap[(unsigned)'h'] = KEYBOARD_HELP; keymap[(unsigned)'H'] = KEYBOARD_HELP; keymap[(unsigned)'?'] = KEYBOARD_HELP; keymap[(unsigned)CH_BACKSPACE] = KEYBOARD_HELP; /* Emacs help */ keymap[(unsigned)CH_ESCAPE] = KEYBOARD_QUIT; /* ESCape gets out */ keymap[(unsigned)'q'] = KEYBOARD_QUIT; keymap[(unsigned)'Q'] = KEYBOARD_QUIT; keymap[(unsigned)'.'] = KEYBOARD_AGAIN; keymap[(unsigned)'r'] = KEYBOARD_AGAIN; keymap[(unsigned)'R'] = KEYBOARD_AGAIN; keymap[(unsigned)CTL('L')] = KEYBOARD_AGAIN; /* Emacs recenter */ keymap[(unsigned)'t'] = KEYBOARD_HOME; keymap[(unsigned)'T'] = KEYBOARD_HOME; keymap[(unsigned)META('<')] = KEYBOARD_HOME; /* Emacs beginning-of-buffer */ keymap[(unsigned)'<'] = KEYBOARD_HOME; keymap[(unsigned)CTL('R')] = KEYBOARD_SEARCH_BACKWARD; /* Emacs */ keymap[(unsigned)'\\'] = KEYBOARD_SEARCH_BACKWARD; keymap[(unsigned)CTL('S')] = KEYBOARD_SEARCH_FORWARD; /* Emacs */ keymap[(unsigned)'/'] = KEYBOARD_SEARCH_FORWARD; keymap[(unsigned)'u'] = KEYBOARD_UP; keymap[(unsigned)'U'] = KEYBOARD_UP; keymap[(unsigned)CTL('P')] = KEYBOARD_UP; /* Emacs previous-line */ keymap[(unsigned)'['] = KEYBOARD_UP_PARAGRAPH; keymap[(unsigned)']'] = KEYBOARD_DOWN_PARAGRAPH; keymap[(unsigned)'{'] = KEYBOARD_UP_PARAGRAPH; keymap[(unsigned)'}'] = KEYBOARD_DOWN_PARAGRAPH; } #endif /* (SCREEN_LINES > 0) */ bibclean-3.07/testscr2.eo20000444000156700015670000000214507343451014014265 0ustar beebebeebe?? "testscr2.org", line 21: Unexpected paragraph break for field ``title''. ?? File positions: input [testscr2.org] output [stdout] ?? Entry input byte=489 line=19 column= 1 output byte=474 line=17 column= 0 ?? Value input byte=547 line=21 column=14 output byte=538 line=19 column=17 ?? Current input byte=564 line=23 column= 0 output byte=553 line=19 column=32 ?? "testscr2.org", line 45: Unexpected paragraph break for field ``title''. ?? File positions: input [testscr2.org] output [stdout] ?? Entry input byte=919 line=43 column= 1 output byte=1309 line=46 column= 0 ?? Value input byte=977 line=45 column=14 output byte=1373 line=48 column=17 ?? Current input byte=994 line=47 column= 0 output byte=1388 line=48 column=32 ?? "testscr2.org", line 67: Unexpected paragraph break for field ``title''. ?? File positions: input [testscr2.org] output [stdout] ?? Entry input byte=1337 line=65 column= 1 output byte=2146 line=74 column= 0 ?? Value input byte=1393 line=67 column=14 output byte=2210 line=76 column=17 ?? Current input byte=1410 line=69 column= 0 output byte=2225 line=76 column=32 bibclean-3.07/xstdio.h0000644000156700015670000000231412073635234013574 0ustar beebebeebe#ifndef XSTDIO_H_DEFINED_ #define XSTDIO_H_DEFINED_ #ifdef HAVE_STDIO_H #include #endif #if defined(__LCC__) || !defined(HAVE_FILENO_DECL) extern int (fileno)(FILE *); /* fileno() not in lcc */ #endif /* defined(__LCC__) || !defined(HAVE_FILENO_DECL) */ /* There are several variants of the name of the variable that records the longest acceptable file name, so create our own instead. */ #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN FNMAX #endif #if !defined(MAXPATHLEN) && defined(MAXPATH) #define MAXPATHLEN MAXPATH #endif #if !defined(MAXPATHLEN) && defined(_MAX_PATH) #define MAXPATHLEN _MAX_PATH #endif #if !defined(MAXPATHLEN) && defined(PATH_MAX) #define MAXPATHLEN PATH_MAX #endif #if !defined(MAXPATHLEN) && defined(FILENAME_MAX) #define MAXPATHLEN FILENAME_MAX #endif #if !defined(MAXPATHLEN) && defined(NAME_MAX) #define MAXPATHLEN NAME_MAX #endif /* Hewlett-Packard HP-UX 10.20 has FILENAME_MAX == NAME_MAX == 14, but the file system actually supports names up to 255 characters in length, so override ridiculously small values! */ #if !defined(MAXPATHLEN) || (MAXPATHLEN < 255) #undef MAXPATHLEN #define MAXPATHLEN 255 #endif #endif /* XSTDIO_H_DEFINED_ */ bibclean-3.07/pattern.h0000644000156700015670000000055306034271122013732 0ustar beebebeebe#ifndef PATTERN_H_DEFINED_ #define PATTERN_H_DEFINED_ #if !defined(MAX_PATTERN_NAMES) #define MAX_PATTERN_NAMES 100 /* maximum number of field/pattern types; */ /* 100 is far more than ever likely to be */ /* needed, but we only waste 8 bytes each for */ /* unused entries */ #endif /* !defined(MAX_PATTERN_NAMES) */ #endif /* PATTERN_H_DEFINED_ */ bibclean-3.07/xstat.h0000644000156700015670000000043306032343713013421 0ustar beebebeebe#ifndef XSTAT_H_DEFINED_ #define XSTAT_H_DEFINED_ #ifdef HAVE_SYS_TYPES_H #include /* needed on MIPS RC6280 RISCos systems */ #endif #ifdef HAVE_SYS_STAT_H #include #else #ifdef HAVE_STAT_H #include #endif #endif #endif /* XSTAT_H_DEFINED_ */ bibclean-3.07/doc/0000775000156700015670000000000014431412252012651 5ustar beebebeebebibclean-3.07/doc/bibclean.blg0000644000156700015670000000000007721774203015075 0ustar beebebeebebibclean-3.07/doc/bibclean.pdf0000644000156700015670000125565207721774211015133 0ustar beebebeebe%PDF-1.1 % 2 0 obj << /Length 3266 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0((* Fᠠ)EqLn(1 Eo0)ᘠYRᰠH`e:mFH]J2c+ b) d(. +uшr3. qu%Nҍ-F!vf9KBP(8C!ml{qj0#q1HD!^$s"I&#I"aFS!0lb%=;9䀭`|CJ+D +X9 #j< "(C(j0@9Ah CA@#pΩJ #p(Cq|2C50@i"l2aHh0Zr4cZR(q9K@2pJrEjª@QԢM"*-+*3o9!I_*J@@b#)ѐRTPD.g>Jw-k[e.x1-R24Ĕ3@)Qw"4+ 4M̒GZH;A@dRN/d4'-+@ubl,rh;9an'x93"ɶ`!Ki_rx4ySI^ڰ 5$3U c+H.Whj8NM491ٕ@aj-B`{jxu ڰc){N7eʸwM"3^ "};72L67%:t/8U'ݱV.J2&$Y;)p2y&^ M:Ogp˓C1gr,PШbMƔN 4uU&>p3V46Xi+= @eIn4ayvQh,3-I+tV5ڼ-V{$JH0/g @$,M'4 \#2fQ_RuvgI]-g4]JHi5(a|}}r(2AD trAU4) r0Ju_̇#Wk-PLo5 EucגAX67C5i~غ/Fl}4~R+F L3kDe[pEO3WiQVdMB#P1_8V><`} (wLM=Xo) |y+e?RTn) ȉ7 k&ծ'H2,PT}˭mG()p9U3,#Kt ?~QRHmy4Ml-;Їp]HLxe(yq #L%A蘀PzŭAS88E!`%XeOafRAmT}&,7su%F;,chϖ5Hy}d}"PvϤC]N QRgt`c-:|h2ƺ'8ԥ0ƅ\[%%j4(q;^CjWnz-*/ jn4p? f-éyy-tb,jx[q.rŇʔAtsRan +<ZL=,5JF(e7堑ʗ\a_=dO)P )w|5Sa. tNY;BR6,0SJN 5eW詯*Fۃ iI{ͬu<]٭e_8d1-@El'ەn1MoQ?~"[s|fgt@N2SUHD6n*RʗD/hNyM `;@b'h<$:0B,Gi 'IÐ6Ԇ٤"`Zo({Bp?EFg*R<6($)Od(gG *f .|ఌA|uPJ'M0(LbR-qPM0X-P`M&/WҐx/Zq9eYs bD+ ` ^ze"l:}$̪0QI `R Q0B1>Q "Eg\"B1-1qgriqLSqd 0f l@`+)܉͢mD")MD|CԖ~g[q~n%~4+CBjЂQk OBQD8RlDqohԷ溄p' p0yxzdf]Gm%" `,Q!‹%qW踪/?vm8o&&&z'"-bu$B.(vPȈ,*I BH/Qhk" `*DX[iy2Le#..i.yq2v|,Ew@hKZj "(bd8 #+-Tr.rˠr ]0BgR'`tM`DDJ֧Rl`$Z zp=D)J'D ` Z 3;@!”<`S=s /3 E=mY9ӡ:`P ` , t uj+,?/Je'% sxk3R D H8ʡ@ƻA EBD7&t.4:R4>KDS@ [HkjJez-+ED:1J~DB0N$  @$5^B endstream endobj 3 0 obj << /ProcSet [/PDF /Text /ImageB ] /Font << /F3 4 0 R /F15 5 0 R /F16 6 0 R /F17 7 0 R >> /ExtGState << /GS1 8 0 R >> >> endobj 11 0 obj << /Length 11443 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0((E"ѐn5Bj. xPG b6VP\3 (c1\6:l.Z) [X5 E#@ Ok@r99KMa`cxmE%ҡ* apiGQ"ym8ؕ'9d Fn2PtȠe3NFSq4RGo"נ), ,3{$rB3 5B@ZJpҊz̶Æ>O͉ ӳ692cxKP4Ý)>:,MEW9A`7NhJU/PPoOׁmRK-/J Pr~. 2b`6x:B`3(E7+ΒkȰOwHph*,٩3xPʈCppcf4@LR0߶فL 'rp841 /HcT-Br3C4#<Ӛ  n! M4X٫6cTkoV5$0qmnnչ;t{VSԋlu|V^̒})("OOԍfҫyB SpP挫TBfNuGՅBFYi(FmG2w: KC?xJqku :PsaѹbpwIحUdIh|˻HcTBIVL#6JP3 G>蒳=|vn ٣_Jj l TI-Ŵs| O ,M $aaK7~|]x(& UqO$Ij@M}pg8j07҉ ۾6n脥JH.FBcDl_n,N0+n@FpW.Ƹ-`P0p DFnB) ,(oT9muc¬0bdЬhtc`Җ(,YhY- 1J@NWvE4cӧ \ϠhwFept"†V+~ `U" op d* xI/#Rs! 3Cdfbmc fcrgVBEȃ"Fuw6L/qk0d. !\qʂ56Q~K6Cv\ckHCˌ`Ư@|oZguL\Ht eU$dGB>,V#0΃]$2UCNU?f+-CWFwh-YQt ht0.d^BDuY@jEjVj܍STO޷EJ)+4proR zwNnUT QSVM$BtaLJd*)eB Xcm*͈qntoVb*.fFj6\@ = B*BZt`#(܍"y Џ@UTg"FXnw=b8߰@1t6╸- qX/^ Cu̯dR9YH㾄x --{eB D@@p%tڜ@7\%>ba#-!^h/"{w$xCL씗&ojBxqN (ye w(֍Bд*qƩmR*i- pdyRpbt.,x*+J ʁGCvEm@1.րvZ1ϋ.ǖpߒqll=9H_2M -h;L-oL d0—Ζ$q1M%:oPy&QPFb,"Nk^" GnF$HЙ{1|*"r"cA j; k!NQ ҢZfu 1GqfWbOXg޺zocD3H+t`J1 Bm1Y< V*4x7aN< -QلonngzbGj6. +ai0. W2ٔ'G C0fL: 560<*)cXҁRvx|57^eS3[{.z R9zTrx~{|٧:J0#H;Mxc[Yd v4ZC{,C nMn̯JUoh).X4,m;,wۮ]ڠ;67~[jSpS+kU\:',M~&Ӯtw3Dv/dDI5jBJٲ. 1d⽗4:]qy(~MQ`NT ʉ8h)>,)C/γ\k܆Ʈ+oI+1mb 8䄪/9 Qmg 5@8T h$3# N'Mþ"'y \pb&(HN~'2*•.b ..=zY%F8-mV糞Fhbe X]ʞ&EF2o65;KcH5ɚ3 ,Tęq# >9jy(IXV+ƋpByzíؤnP@MX*1Bؕ F42Mr^L P8t>'畾O- p>@"Ga2R yLbOs2цAX+V,瞫[ۨ FxVcf_PUozhʵͨm"h֣Sn51vAf"2R;0H|{HD ,,m7-p߭!9-^-p` Skkrȳ)|@acX2P :8\7+4m  8q~$ăDOVhzl\K/_IVa˓(.}X4vÒ9Qәo.kYqg5-0ZqI!ʭ]L1 ֦+QDqiyMr4RЎWGաQ4gMyJx5=Nlj2uXb@ L`sUX%b SbXTrGQO /Y\Xrٿ0/|iP9~ Ш6٢xK1EٕRհmlHEu};䬧<=[ 2g8K0:]bf 7fRj*y x_qbVҶ`]ޏjґ3q2V7]W6(jSB&\VPg)lL&nK\1Kn4n ecEG޲.6_aJVGlʕ X {-Z$9|ʹB,-=N j$2ȩ."6{ f|z8Gi [ɓhqQGd) Ndi12Dm%rCa-̣/` ]D:R#UNruj;`8uAJB[b9Sb#/.(8]x?)256Lʩ$`znI$@("OsqG63p#EC^}[(*{ Hi6?i5pXeMt0^I_g祉_ӼQrȹ+6x8Ō1,N4ˁk{L4""#!ڗ(Lri:S?‹:* ߘ 1鑝X" ُ;j A< AAئQ&& Ҧ¹,zk$ l #$smrq@၁ix93^ٓ= 8+A(;BnD9' J>C2ľ AZˬ>I;I$͙ÄCR0 @6ϔ `Xً3lVsk -x+ ȱ5U]zc1g㸡*u'LZ1:xVMǧk+x*Ԟ ;0☬"* ఉB$׊س1IJȵB#Gu 찊[X ř! !(1ڣں>Y@G,#ST!ͥ k. Yby4 г(:hL4,cYhk ɒ-*Z <-#X2`22 38\G˥=6y^5% 8#ð>mPͷ$"2 n!:DvmxA\Y᷒"NΑ˨!Y@xZ#Mh)ڑڠڰ0> x#mZ1zINS҆|7e@=]n 8$"neoo[$V ;"J8r>J 2/GI<ӿ>%h.$ , T^\ Q$P'2s ;·&Իij3h,J}%ɓbcH* >kk& 5>Ӫ.<ܛD\Ypk-C2p%W*Av&mb!>04ݯ&8ӝrcDM[ vnb=쒡v2ȶ*4ȚUMM]eT,íζLIQܩ57yS1|ϴhX P3@ OiRgj'Hm0T33 [U[w\5ȕ8 7Ê9yfX7k0h|nq3.xÛxC*)PNxlẼMH3R Lݐ: (B4 ة6|Z0몽à # v"**.RORyL1a5+W6霑 ݲOl A8p sQvʊi.blι gw}K/3ǐ2M} s]J6})E~U[~ճ˩9dS50$/)c..Uty;+?񥼐\5Nbhp1 EHn. ‘ 0Sd@[QItJ `r2 @QlPoGH(6a1 t iHh2EqN "O̕PcOmtXXP\6J)18 -~a(C:p].(e K\iDJP`4ᆏJcLj5f΢GE F #Tfn7SmaH}kNT67͜@qں.}Χosxg9M\\9ˢ :k%)X*@PZ5!f5вҢJ.h77hHl,CJ Àƈb9,h;D Ɗ,e@ a^Mp' p(R* M;fL3CRCh񣴊 PQ?X92PcJL20r dN4h5#pΣ4l#*/'̥T9ɺ*pmD*JjV8ZUBJuV1 Z< pPɎc47AS2)8hʜ!97ͻB u~#OE("R endstream endobj 12 0 obj << /ProcSet [/PDF /Text ] /Font << /F3 4 0 R /F13 13 0 R /F14 14 0 R /F15 5 0 R /F16 6 0 R /F17 7 0 R >> /ExtGState << /GS1 8 0 R >> >> endobj 16 0 obj << /Length 10172 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0((* Fᠠ)EqLn(1 Eo0)ᘠYRᰠH`e:mFH]J2c+ b) d(. +uшr3. qu%Nҍ-F!vgJP!4̌ hFcZUj9UZ]O7,k˵JhӁep;/ (2#+nxͨ(˶(+?o8 (n+Rշ s*ڶ"n&*'8A짎Rڮ#懇@ =>jF3d*쌾mSXhRֽxIp ' "R* H" LHk T,C(OxʺF| l5`!ms@~4 *@kkJA@#Tk8@R;Sխcg>4d/;ٹ,u6Yk4Rgd PW[LL'=U]Pd0;*STJTO0жh9ZCsD4pmiJ.O9QlVKhׁp =dU02PX ZTD782׎g AA ԫkψz˰¾4:4hkڢz{n`X@STONyg78r$Ww+cr hؗlٛge7?b/JXC.rƥgq# 4m4iȬ=6A#`4i l7פ+@^jZb!%mZXTW恾ҬpA9& 59laʌ)I\Ck>} % BH%G SoN0::]+L|/gxôu!C~.}t2:ʳF*ѰS dgUli:%H􂎃+s7^ߋBh (7a =UV.\Y]62OrT-)ދ"}d.!B p0zr(.OMgR3W^*dӃ2fP; 6M&ZjIŽO{ %M5l'4%iC䂎iQ\ܭOA}@k<2P\11M**K YZK8쏀x=T`54]i IG_Pgaa6a O8P `A@b%uOSv ,D!e&K*rX|Wbs'1J꤬h-m:v5 +1 pCX_ѱ(T%b(r1̉ + ,Ӭ$I ĂA2EhamEWB E# 1l4 "gCՑB~//jNK Y<WvτjH¹]( tY~=t:s4x~ 2怈%F5De¶%}Y$a!!~ C&9 DZM];PPS_Z]BKmTl'7Hä5LFe kIKߦ+*IBF]9XuǙA˰Q'P4"ɥ4P(3 Rp\de7)28+}蟧JRHԃQopb隮}t 77z}V(>VA!3Co893]SZאbC40ZXsVy1EZmeU(ff@lH 9t9#XL%Ošv[Aġ*.mpN;j|!e+gXWWIW8TGL.Rqb5{Ń{[OP9hg`joǑ:ݾg_S ڗ4MyN CsQҒ []kV<+ZqXAijt$ykE =T(m1K1;A2cm9H!p0ѳJ/'rռjq*ycFzsxk&vITPYe/oyps"ka)9S׾i:VH +2WO¦k9g >(xH3.+ RCPRuGGkD+[P0Bu‡FbO%(g0dS:.4 iz\J@)}N+ID,$E JLRZLR(bZLNtjPPpLFa/:(H8*:HNVPxdV#T7bFP8XMdF֢v%zeHe>)wM 奈XWn^ Mjb F+L2=/Ɓ.q(V'`8$_kRb%Di6m7`"R")M{8 ,1E$jcE s ' ]a IؒjϚGf?0C;"26ޤ9~ݎ&eq ^F~̀g@.lrC@ g?N|%»D%) n&E"VNт( T P9jO>'>;bj&f0ȷt$&th|9bʖv"¦-qj')|~#Lv;B0C~ U/@xa +Ibb5;:@yT.4- b톣 r-AgPgq34CghifOuw)18i Q+No@&aseB3&.0 {]N< qHX-5J~4bZ<|@*]Dlikp t WKlNm)Cv~ܥ#RGtw4ޜW>.\>cuP:9 쏤~@ҁXĮ.-XnvQwp$HW"f*iԖr'&.W 6% hvHm 1ţfO zW@VAΊvi=^}C ~f1 UgiCafqOׇ:.ai%jj;[X9e`"ʭA 4)|d褩Gmk#6A`.F/*-X)PJa0gzn |X 2+|)DM/n£8vocΜgu^BqzAǎc@=ʋLQ&p!z3ʚ|&FTF,Qbuk-(啐E9`Q xk% +ΈjfV2'Tmh0[hyL0!CzE &ԛ8T3G8 >h/THVH-}P`UJ*h2D6&4L8d" `,op$?O cζDN8'lAR⿂/@6,tG4?m_MdtEb؄x*ބ03j½9>~/Milw4'8XHאYW? w(|,epBNh)H7ngl="¾lEWJ\Å mRVh.iJlLa fs _DGZݟ~'iL_v D!9~ Qc//c]+RG:lg?Qfr,M0P?EZ + Z% Bl,KjSzMW6kp}KgGBC+6 m,׬ÈĹW'E>H6,\k$V#|kd|){*Rs@Ż=$g {N@ $|8 Ͳ1 2WI&[{q= T, ~/] -c"n=_i. 7* haQ9/2wݱp2G;,r/^yA\Ů,4:%jA;H*~vzư ;IÜ=(TZ„#$ À]Ü^H }ޝOU]8n6OuȠ^_U^K}{ [V9 N0_c+([̻V*\CuAܪid|؎` : u!A&v w Y0b/ h,Q CŕY :}z^#H7yYb@\|ӗI5{P Kz&r<`d/,E^柹*#|4& >Jt՞d@)7eҵ`l}Ø/Un~dB0<뮦 ^xȭ<ޱrH0؝i8 ,V\[ϣx a=4YÉ/#ƉD~9 "X݁ZZRB. Hl. q 1"ḠQp9baA znˌP Qh5h\0Cf0Qn4\o9#!ƆfEG6ZFRCzm @9v>ȨJ,Zob3̥Hc dޤ{ϯ.X8m80 2M6#}ݭz58淮@0L9L#H 8&fBj_{:?36d晍fy/d; U #[MҩQQxfv*:ȸ;y" uM⡓66֋dKȳ?{jj@ze+q<+dNƮ'P,MaL+uCX&㿯rBTw13̐i|*>3[8$7?3a~E KBKo\'H_{%NKw?Rk4,༂HR3@)H3hD>eQE9DRbKQ܇8pNQq튣g^TsHV ̗g^+DȲy ٙ@h( D`fZ3,2X+DG$xkIVUPsUy:Pf üqL͇g  5LNk%8Q x0:ƙl#T0&Ĕ8`H&AԎe[FQQZBcavG+K0޿[WMNu<HWLPu %ZCN $6AXJ|".$9D\4g3u,Ď)H4fAf uquEp]~%9#E4ʓ\SaDsBHu6Wl0>)i,0d<*k=q-ˮ{,n*icp f9370{)apP{5j:% c]Okn)Y_c]9h 70QBEM 7/Jq}k#_m2z/!z3(ZO 1  ['Z1C1`2r #YTȨ bN9 ܹh?#H3 (*4}{AkKYnNJ4=8BZ@ŋB! }L/aCKJQFɷ2*AyB F4G"H:&$DB4 "9T )3 `CZH.yH:8h{$8Tk 5C1EZ#zCyZÔ:37z[A+06*q"v:t\|m 6Rొ9;S(*Cҩ Y9 Q+Q0Ah A=Q`AYyؗ1훉ڔKȞؗǛI:J]=kG;כj~;4[@))$*)ܺ' R y.HzV-̀0 !,$$ʈ'*ɹ4t|Y|(0 L 4kɨHTNZ3?Z 2b"3ӈ+npWw+ȌF{E8l?K)˥) GʯX:NIS" /q>4G&':)[ +x޾2^h8A!ڦ*A/RK rԘZ+I5n Ij4FK5G5yJ{{l/)0R/#00Tj _!d؃uDył)htpTa׎K(FZH4qÝxX;@!X"%IłNAa+ ]ٸ1!:ES=80X}(Ep12J^+CKakx֖Z9e[j!7xL;ACS?<9 BƉ:!&DdV*#,.9Aפ@1_\ڠ/{9b/?D\'uх!FM(Jԓ+y"]Ke*UEyA_z6$fS2# (!ڋư@B$;zv=!^XЋbM$;B 44MҚ2/فAuT!#М>z|9Q;N}h38V"TM:\F7aPyF8 aE[CՌ0Q>c uBbd&Q8)38Zz1A)eV}}9eE g4[k ™Ѹ4D4RT0R..N4-%dĈ¦76R vPbU/CEb~NTfM^>dA#L( @|iPᛎ5Y0d-e@+<8 ]ma2<9YR,춙N^5ӈl=Wbi eC6oU^1 ۧ/ݽܓ]m4۴:4KrK.ݐ].-/5Yݽ[y>65 " endstream endobj 17 0 obj << /ProcSet [/PDF /Text ] /Font << /F3 4 0 R /F12 18 0 R /F15 5 0 R /F16 6 0 R /F17 7 0 R >> /ExtGState << /GS1 8 0 R >> >> endobj 20 0 obj << /Length 9964 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0((Ghr7E!APR5 QLLH$ ,*d%& 0Lh΢$ c·)J7Iat0`svکL8iq0apv7c-Y T]28⾱0CB //- )W,ʸ2 2'@xP2xˌ8iq8SFjxQIޫ,HߢjeZ@K*Č#1t=1:AbW2E(U#@b*::Jn<+|<:5_֊Xa['=]J%:a@F2:a/Qma@sV{ʸcxnCyFnU$y w/5gԒ^Be?J5Cngp#4orH8-N I0_@')SBҺA8R`2u[ GҔVϔUVWhhl>iSQ'RxU {P( C/>0f*-v2s H5$Ҡ)a )ZO:15IJ1J_m|T|\PPt V. HoKedÔ_Ai1&eyD_J DΑw(P=e!PZXUa_]e| !ћ(+u)Lsf! ؼM@ d7,ᓪ{ OiE6CL2D(N&)Xk[P4saFB^H@iR Li3֔ucNKs&x`UjRIdy J&# x]b6 ^"־YBvJEz~ʹ}@"V N|eM? !XOorr`ຕEM*kP|7< X;l+O֔/I,⃬?] `bV~P-!/scZ+_&a.p;#h+ov[}O**67L?rGLhnvZ/þ0 f-¤oeAYHvF^ zv5%xs[w ׶Gi%t9ɳjS?/Ϊ@.?I-)خy9 71,hhy5#iM92l BcIA5Ca} =1d8Ԅ[Y-Qz&r!Xr|? 8 ndNj>7n 6)oc Zġ.l6ʮ'kgS1*pj`%詠mWf =θ@} bfqlA`#u\Pʼȍ'V*`R@׆Ye n+?tVh9貲vC4{^WoG}+Pdxf !u7?+Pt&wi=7t䓁!]z#ʐmɐ($=ce;;kdy$x(& |CK ^]!76f,lxgxD{9ˢwch7#'9q}&%3Vq PN(!s[`N(W}@FȨ}35G`2irf/R=ۂIC*T,.Ð0*@u()Zh~EfVAt>x+8K,حf G8x"+#(,ͲrNI2~@,JV*|. ? o.#5#f@_⼦I ~bY0FJޯj.0*F .:ocrBb¤kaJL* (¬)nq;O .Dc%C<.T$¥? ?MȌddrhCLk@cbHM9 ֚-bpɮdV#dhLeY+}ҊfDŽ-?%TTД0͈[e*}fE#@ { ъ<N$ŜJDcAЧi'ZN$B6'!M04dӭ>  f E %Xb?MS$ի{"vP$dR u ]"T>%o6ql)0mRdHT®PPh$SE(eڔL3Ȯ`X,._*PS,RL@dS*N@͢?JKlRC.TxCʈc t'Tcd9Ăs&dc /k\'^*S0(H)2kd5frmֈ@q5(ŲVkt`un+q`B҈,3/o~g NV\ᆭ"3*k$ dFR-+m0he;p ;_B% @2R}-bFԔŨ_::BTl &60NUCWEW0< @pҶ C$0DH|MB6Kdiy'[¥ gY8!.fiN*C 8' q،gi"DJT䧄Zr$)Ed#.COPRbnV2(E2-G@ ɖ`/HQ(,-)&ފ'l' J)2+b<ͩ/U*m,NYeKBȄ'SVSz)He/Wh[ ҟRR+22d,DJvY\t/r*@a1>79\ mLH20f^=` AHr(aq*11'f_"bL5`&Q!*?!i% jTI-SSmAS PhH9jrUT$bڱHMp`zp|'ErW͘r{^iYyYk?OmI7 4P|3$@Zp׃ G_l~o8ŋ + 3sw2O8u{0XU GX9b8$@k<*"/ˢ/&.H[bdWzIub ^P«*&TXIw3x==~-R.7v,ȯlȆhIb4 luknE' 7ҿG.0U֊lrs>DdGfrߢzeF݀Wc͎CB|hkMb_ xCkvWSfPB.c'- 2o>YH0RGpZU4"Y}B1&?_A_[Z;Ҁ/qN>y[N&Òd)~g i0;-.n(b1E%=S$` au.#;ôƨY J8> vp,hX6PR4anE:IrP`:f`ӡ=]!LQ"@Z>) x#ylk-e" F[JN@ ~SȈG mI5@hH.,LqF1h=~Y>|ZKN7qB ,5SBB6-! E3-?V0 nŸI2]"78ksDR9f%#E{ׄfH%1>Q#ȟф4###>#t0=##c%[6$8`mduBIqT2ݹJRCMX87+SsyZK8F{seY@j7YbB.⤾2c#H"PEju;-c<7v#U·9]L DCDP Q˲1"{'Y--H0z[o?uCg=E.x~x0O]/oj~9 oQ \c0{ ~ k׮b-:dwe^x7ˊ\e@(Ȫi9.e<]+3ILx}̯/?D%1sqd;ֹsKO.%gϐ& oh8뎾m1=K/ٲ(0Hs)@)?"_5 Z5@\9#ti b#tV.(Bh0 bP Ep C@T"L 0ނch@m<·(|7 zly tLuulm2S%p4 +ؠaE1bMP`U.acA3aAF(Pb4eαu Pc6L1s=HЕ4wn2jhTI]J#c9-FaA VF#djW!E,} R/AP0.&h1Jɢˢ+8P;cCj!k:IbMʒ:3I:τ[F|Qơh4X7hHb@c*K0rC`bFbF!B$1+{j@"pC,"Nh: /j.hn v4$x:bd68h; "+P򶹎oE,-cªr1+@1k`/bV3ڹk!̺ql_5:႐ƶO9"h 2Z@Jƿ޻,a %/>uC J \.;ĩ r"(ػBCx75ڣ5scrҞ?^*HTN1t>E:Al `aM` rue(F ]&ST ,s0+ )mKJj0+xɃ,/H wd(Pn7 Q=j7"YwK #ff@mӊ 3NJƄ@S3C 0 -8xt CYu24f#s !5:3qL$Y* N"T!жx- 1'/&C [X . C" WDR9Ƈ U@R$M#-,už c\e 72KZYfVqDySWzNj+8A>LbzkyZ$֟iMV~+aܵb!_jIdtԵM[&2%ȴkΤ"N)$/󁶞R(f2WIg.q?y[T8܄Y顦PPgx,(($Q=H)- {b/j3bڄ.%*N _Ȭh~rӐALcW0pC:PgJV.-kXC*!\–i'vT#=Ԣoo @*{c)?1)M{h Tk,B7#6ae8\1@ ǗOo[*% ;B49&C\$<5?VP7-|ݓİK}J9?D2lOO7ŐR3jnl`yB+m$ªUДCāj ɑssi{Ռh2c2`?Kؕ9偪` I="(e++_6_h@Hj-WȚ%p:!¡p̤I?@D 4ªbAyǔjǟ6Q- i}khRa6Έ1}&,aAbٔ4: cQ[LH6 QBp;j.c~6G89I/9Z[[㈯'Z +/cp<}j *}#pAy ́!P{C ӎh 9R[92ڎ8PbbF ; ̌6Q0tIAĢI''$,]@9Y?GHƵ B(@L26!:E+1@3''(1."D|0Q4l3e;KH\㩉!c CXK ԣ*+˂ İ쵌նEC/c0p 2%" d_a8:Z -SC&!~*yKL$C@+՗tw8;ŧ/0<鳩Ƃ"Bz.;$7SI)NjI0H6D'#L,E#-j6ND~$r#EbR빂PEũK>*͂ۏa61τc vs":IyNdȔd-2 *I+4 bJU:%m23S"+,A}HƑеF8NLCMM Z  <;*|G76 X!@ن@l2jSmUC&KVȿ”i!qke;܋feX `:>HC3u=+ŷB ?4Z<Ģm."+l ᇩq U)r ɭq:")L+17a-^X\;UiD~PL҄K|!@[DL2_#(^$9 4X\am6Q jI_z}Q)cƁ#AZ;B(]3p,(LQPr!+K9-0gS~i h=a#QϷcgY u`ԹJ]ޜ=TS]{$>Nd>D7A7;+|ݿP2r`<1b&Ί@B.'O.#㍾gN%!LQ^ CR cwQ߲}ϋϙYArٻ@.ˇ /=(PK"<^ !)9+hkۍ+0$MS{cfk+0úx,#9V?Ŋ# Dcg oKg S}RLİ$ml298gЩĥ@AcQ]N&0S>ӻIZaw؋VS [aaaD]cpֈ$^'nSJR KR-ݡ p!-(l4>?j"3W`jeF`< :DYccQ->#^`Ned6V]aY%~DdZ:NF8U;K0X@'"30930{؅YSi^az8dP(*P endstream endobj 21 0 obj << /ProcSet [/PDF /Text ] /Font << /F3 4 0 R /F12 18 0 R /F15 5 0 R /F17 7 0 R >> /ExtGState << /GS1 8 0 R >> >> endobj 23 0 obj << /Length 9884 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0((* Fᠠ)EqLn(1 Eo0)ᘠYRᰠH`e:mFH]J2c+ b) d(. +uшr3. qu%Nҍ-F!vgJ$k b:FDN5IZ[7ťӑo;Ec| N!O>(2ANz^#K q;7e#ފ 擡>P!l=֩.Sl;4Ϊ-SXtתkr7o"m| | ZAˣ萲hl=Dm;JGK0Q +s" ,j(,!h!,7)xb* O2=.!mVLr~錢`hN@ÎC|t-#S*C #/b2#+t(e E TvMSP7 *(fQa@-ʭF/18GUZ!6&⪔;Ge8QZj؅8؝1aPd,@f1a~`=#µ 0(  R%qJ CPX2MɹTZK*_q W۹XA4gR[+Q75)ABpȢ@  tb]#I*J!A2 -8K^GeZ(h80hT8(HwZԪ҅<' :%9g0sڟ\(c(S V z$QEf昜bO/zF.\NfL <!jRA,ʾsf BZ7Ȫ#l]@p{ ye:MC/).C95i^Aj% ) x㜓J(,E kdD%F!%yґj2e͋ aD uQr YCEb3UԀZIG`<6<*v x_g@l&ɺk! <."25N2+GI ŸE)hC8jR Q!! 8_Y7~e4آ@bXvR1p jj+ O;h6 fuӢ[q=EXMh4UADŽ#;&FtR , !uRRo1<ʿ+2uVjT惮٨9n, xTٔ+J=NӹѮ 0D5!N) q_|zNJa/L멩ͷKY( T4 Qÿҙy]Ial54K2kL8woZ&=mA 6M8aRY XZ:bEﴞw/;CnLOE8$[M*e$&lM+AE:=/4K˩(6~UJxbFM!hR/*gT O)8_T)E.YA rݖ8wsG4VEEITuu!dM7~='.0yy0& `zʴ'+ua,vdG s6;N9P a2Y֒xAB~ulJ?420UAFqdsSl@]tUuIl }߼t!^'u a֚ۘ馝+e{?+ce֤;Z@dmGc(@@Ob~S(6eP/#D'Rs NXm02C6kjZ`QBx&#ehJƃҭrjltE i섋4~ l̠ +Pn6E@ĞI-On+M*\( @0ª'eTq"@Jc [ $DƎ ZlXT̺Ȃ;fLb;bˬF+rꈶq̬plz@v(ʼn"*twD6FƔ G"rM .L^ V.#,4v`+V;Ma6xd^LoJۢ͢Rr?>ێ>R br9iح qq|$n@pbtR0A#H((on)0WBq+ %DG B!'Hgޏp-J _xXq(CnvJvsd`p>;0mY3b$Q 1 /'FX@%"Abʕx+-;L>|D;-(.-0-RҬ1rVervxzԯ"S+=Q8`8d\>H)$>1'B+J?G n޵FC$8qO HFxA&IGuo- H(-XAG;ҏcBhG`€Q="Šx".wʶyF .,d`JB1/Ph4&a4-lI/Tl8 ލ4/̃\H.?H>.p)G<&XbAB@ Q E :LKG3'"kДDyTA)WNZ5Ch)@JZ8vr-$<;5,RRfPL؂鸡GACh'xǮ!b ?9 7[(bsZk 2sJ|DQ'5lƥK dtwض" #ʲrV)S 00*/Cj~^uzC^\hA )IX_nhA*q9(y.-gH纪ޅ\\bFe\:ac&!2|'mgV%lXeP0,4 S+Sqd,a V 7W۩(P4pe5 pkf}EqWţDesUOY-冕.Q `4^{`۴fɊJf IF oȕ7S"U:;zArK`7a z6رw6V_$#ړz%nXG錽dWH2AKH,%WzGJ+\ZKvenht>]koP^ 5z h5vC/>NDX'kx$°pnm`5fق5Gqio24Anh"C)E{kTkjįFw.UfV7|:okrhuf'uUcBk#>h b+ #n _S&Qdg&h(+.ǃ-?beo-.VǎFk)l>;BDE*ᔦlnoY>kI/ES/ G'']l˸BysĶk:ASV vZ l'.-\0jd~0)lFZ9" >Q :p)Z-ՐcXڄW(Af'&D0s;ԩrdOǐ\6fƾ!'93Vm~ցlg$':;b㱓l5"oͫ(`f OG~@^Wtŗ^dZnS3KeņsB{I&9c[\3ˋwl0t :ͺpT8tvjFU:*@ȺRUM6Lx//I[iFΡBo+3g$S],R gM KK-~dvP!HP*$Mfok \/Y960 tg_,lX800ye|gU'}ϐnǬ 7 ʐ"lR r/tm/e5L᯳O N\0\\L\A#n5Z 9 &c7xHu.q12,X;BnQ(mK/&'Vhjd@ǹAؘ1)e2=I68kH@PX|ə)>} edQD Js}7V4e9]=_bxz'wR5~d-ivI!!6F8%uJHevu_4F_e!4W`=HPmtWkw%VgH)Va8ya6HmYx1ŸTЉF6ko|rfr; l;e=FUf_(oYnCPpC&X;/ހte4hu'5#wyfS9j)YHDH ;s2=zESDr~JTAe*xTJhRjzS%S[[2 ?J|>ʀmiD9&d/^|iꈩcu8756ɀ~%W_HVb̅`re;5UG[2SSkYl(C*5m rzo{џVA#pc 6 &(R-ᠠ  QA63IƣH]9Fcci`b.TPh2KBP(d4 #Am - X -NLbr"Ci- HH(2nl- 1eAj 2S\&í+ty sFZ%gSL&QՌCJ)Lp iP 8nri@Qvlb9U:o`LrAO4:q1j\ SFNG?ګJ $)xr(,92(5jȣh)hRB\Z.)9+j~ F4E- F(Lf i~LE$$L:G7+(p8ۆnxQ:`P^#*b ~ " CH"ԬIDg@Ē)55ͯ *NIrû!ıLKV:'0`8:X% ʴl7ZQ?TSu!l@P% bR ?OۊR0l[: `Qv;R82h͋.Kp4ѵ;I췅H1#2BF֮Z4+@NC@vQPS8 4]YggͺFSh.9rU 3n Z΀ҡA 5X5 㶌>ZJnmAØ<-ϬWRn,gh!J洲2HTj즃D.z ޵b+@RU@:teD!.;\ʙ#&N&Xȣ۾`?ZsͧnϯL>4 +(~ƽr\&p -˿c@JQ1]޽+`R Q ūR~L`1.N1[HvNoF&)vF%1 Iqk-lvFS:@  șz j3X6Hk!Etb7ÞSPc,Q.5c6͌v"UHxA$ġ!&m" C+n+ -Bԣoeofe)#x HrI 1j5!#U+%Gr ,8 #Ll+C =r\8a)bD3rI's 8lHret&h#dFˡx"2&d`Ԧo6SH# {?%,†.4 t6 E4̱V(̵<֊ꘓ2eʐPc`$ JR4ѯhC&J: \8pGC3NcQ!JA3B*wC.xOQ@P26uMH<.28yX+@xIrYr2 + .Jh 2% (gDjөĈ/cAHo}jd&~^ˆaLpYvMK +Cܖ =Lj/VLn))D=4 xЏHsJ% ļond/A^ǝ/*򈶐Z54kg-/ķ<0 (*!m洀ӻ i9?Ee :4m:>) _:>zS"]B(X?1͹y%2̅j*xB!Z\Af|R6V6uaohjfv ZEiu&@fiq\f2Sfcre9EA4dBoWU2[֏ QADtIn&I$>$t&Ι" l: 9 8OjYゐZ4fr5W KO 57?{.b7|;(G-S8koz_9#ȅ-cKg $,CzJJ9,۞i|9m>YD#o'}L"$rV kiեjE W\B <'ėV- Ҳ&lw99HlYfZz&_m*9)2ÏF)S9ƌ}:8LSZ@@C"Z$4Z ٺMGC:]KɋJ՝#Xɯ+ ̔EU/KU<1I$ږF5"7137HX=N ӽML %'K H8H;M!VCT岓2 Y 8ԙ Ox/@@0GɋTOeP=SPUTkbO[̅ [2L4AP AQ NJ ?(;yn ih *()b$()JU9 B |Ȋb'2|P< /XHh&<* X &6DDí%9D`܈!v+{IX)'R#d Q "Ͳˆ ģH]](1=ŸC3(0[͑H,[ r b 8-±}é#;{ %Kٺ3Zݳ6>l@"/h0x̓87`MC`;g,P 5 =ٮF /A@˶.ٓN4" u: @(*#˨L@(_@ۉ 0iԾ\ ݋i"{6ެ![ .A^06Ch%m2a3$TuX"> /ExtGState << /GS1 8 0 R >> >> endobj 27 0 obj << /Length 9860 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0((N"ѐn5Bj. xPG b6VP\3 (c1\6:l.Z) [X5 E# K. ,ցr3. rvX'YuoƗJ$ Ma!$P qIPխapv*nӁL=d {Qϊ0b 1>dHEw4P -A訫+P<2CM"('î0<p6! Ƕstn3"sF7M E(uQF@0TůdѨd(Ė/L-84![0*hڡE[4åBTf T"!2 NAv[E^5s/jRs*1h˾B^$0x+IQ Xr48KUO"bxM3'F,~7c6?c8n/(5"S{8>Dꑪmt8~E.k-OĢ@4܃g:~biۡ(P; Cf4#ejX'no7 #5*7@h9ݘ3nZ,e1[5jEH|Ↄ& +J0@jz V2H=B4J: ؑ ,+Q)VAPdgt 2~Z1h_d0Q$RkHpA(( IQYe.Y!&dw$&IK.ӑgp-@#`Z&)]VR\yEhGOoas&<"RFXfB886o{Q(V`ϓfUKP,l6҃K[,t޴j1HJ4o (~Pu  A"e&n\L:NûRڳ : 8uJJ TT^:+ tdY[SL1h{E_4W'txW%L/MsRFLKr(UK OZ7y(14[]30B@ ;>05U&U@# j{L]bTVC\pEVa,#N6EÕdnBF rH{>4y>"աYK+t' ]e ,*HUFĵZ6gR5)5"ZIU''dF=SVqu>:GϔMơicQJb+i}c`u0 z̦|l96{`~6}X͏Yl78PY: nQ{u͖v oMFpE@{a-"%Dȝ⋘y<^9ZԿj$+˶!\MKZe>~*&ƬK\mGjtl@p qwX~2h]zŷM:TPn_LPE-w'k5F1{ywLƮ!)i~5qA0 ʿVx߉n\qpHVKkM=(.#[2Φeǚ(a_=\2VExEbHt|wzg2MM>{΄'pCΉ7s׷)ZHc}j+`7;s*nPp[pI>u pW˴{hCĔ2E:)/%"GYl*M\ !Q]o'zBT!8g b=I?n>pS UNg:b* #@SI2zxĦpE&=J*7GJ\#HuB=XH8%l} HcM>L= *ObtfSE, 3]SŬ Eܓw/cb- $0jYi`ƞ"bcSle(>)Sva-jxQ /0+.kLtwZ2UK$ E1h&(^4N$?>MTT[ qqsI1sEfEhh<0lpp{QCKR%U+ , VS2 ȈIqf]AZ)utM6cˣGxVF]w&'9V> (\g`#Y*EBh+e3>P|7uѬVEWwZ+pρqD^B*w2ƚuV.>X>- FQ LEEl:G@V$Vjw8sr4kZ3ȼ]J}lc1ʠgy]hzLKhQu +-HNIf&DU9~ ,)h>PT+le8\-u\ 6UJͅt| ,Ez trnKTCXZe]sJH>XQϊ P+l"}DS $Kf8D%xcjDV"kی *0F5^x30g` CIE6Z(.ϗ?Ua4 xfX}J85y+|^/q ~Y|]%s1<1jͪ>_Lv]zj]`zjx H 1SuLˢ <2S ӱ!Ll6Y~ƼG'CHuKED"(MAZ=K2I-ikOԇ$`6E ȻJdsvC"8y dH[3@$R2"t "&@jJ*@ BU0K,5 c 4a{> E!j *Cp`5Œ`ؠC1@R9 EAH\1#apPSJP1"eC0(i)΄T2To9gp2P T #  a %*,(. E"ѐkoqpPn2_FCxh2FpyM`1_a!A #a ݓh2IUdsZƧ aÎ0HBo'N(J*~wj W.9pv{A˘#+f }kݩhj C,\P8>)rT6hr<1r3JP2CkƲHR& 5 ;.:L/WܦA.b*J-87hcnB^3h/1#9KP ;? )$3 $0)$Po k0apr : 0J7%Ra@Ҡt.3! 4\ӎs(4,RP,E!7 |+`j˂$.Z3 5cJ }V D ㄹIH=! SKOA0 :R0l6P-?A5$Zu|l*ʰS2G(3o3`D[:1TL]JX -ω&=^C#D#EuUP9[VbQ }яC R2SCB lԽMu&?:0ir`#rPμ<)V/-ڕE`R/huGrԝ7=Fm8#ޤ+^sxgi շ@ƩtD}A#pA뉉?ʀ6%x1WBD~h"31\<D/w(ҸIj&9<gWT )hXAs =,-b̹Ql%g dBhdD)@LyJP̂ @u 49 A$?@|4dLCZg^#K4PC`XfCڇ1 J 9r`<$\ixf[Ma!M]/̲sq$@v~N|N+mdgeKl Rx ܥ.u_!\9@!BpE T떃 Y-&e ƊT҇AV0Ht)FG1(ڑ$ 6@s!ZHdIOxa#<S|]Ԃ"bL QB&E6N YȐt>x@L l=U`H(TE͞D P2=J7EXArt P=ѲNd0(s})H8W)-䄤Y\R]' pǞOk=5Wl/KΚT09DhMÇ]4L0'3dt?s9@%NjUF$҃RDSj4AG㭸ϔ[*MKV[UTSo!L3$J%HƔnV---uJ 'n~K̝;L?zYua!7йmf OD>Qݥ|[J 09x aٺEq`R")Z%qJ9؟_+.VgzT_m}) 5mPDfI _EYuY. ԻzF2QȲ`#˂'J˔ LڦC󹊹4~T k |`D͋| 7XفN C,$JBApM\=tNĒ]pN P z|,ؔ"g)P˨+&:8s؎ mbÂKO 6NM9^FЫ& qQR6;63}A("LQ<'@铂a&Έ7;f7ES(U299K+HC-B\QY b9|OLY.aB:#s Ԫ.l$q`q(%`N` 5"*i&B,;CH( -6U3֛[(;ȡ( tEPM{E,;cҟF\*AQX9qP9EYUgUUy%XHr;JF%9(-a ,4O2QA)LA7W E"B1Fe\P U~CÚI4p4P(0=0űZb|9 ke"}lB*B: %AD 9 9[I覹9 <ЈF4ʼ7,NPlͥ Hˏ>(0Ӛ )Y==ſl@ B/9ȢH31㝴GY,BJlU^/Vf2+֕Z(" endstream endobj 28 0 obj << /ProcSet [/PDF /Text ] /Font << /F3 4 0 R /F11 25 0 R /F15 5 0 R /F16 6 0 R /F17 7 0 R >> /ExtGState << /GS1 8 0 R >> >> endobj 30 0 obj << /Length 8036 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0((* Fᠠ)EqLn(1 Eo0)ᘠYRᰠH`e:mFH]J2c+ b) d(. +uшr3. qu%Nҍ-F!vh0JQq CK-ƃ 8 7i%!`xL>$ :PQ$ kyEL1ăwY$r]Q *OgXP0Jx6/!jJh,@j7P-SX!pl"'*H1R!op!z~4H4«xP6 #ԢK4ꔥ͚.5 Jc+9Gq FJx{mEx(J:  c9+AhhǤ!@' "sCBPP2 : (E-pj: 9íZLO`EZ~ɒpZ3 0!x^:j4d֔f+P7Sv uX/D Щ<&#\ 7Դ}YeSG3@2 tYսs]״4 #aMԄӗP D"d!EB#JAc8dBuωD3(Q^?h[dY=ݖ~hP:ߪa:CPCmB ѤdE=h8b4Vq2",2H\PM4@r.uƁa̤ G(0Lk+AEyQ)f[nۉ*n'\<7EyrSe# 9m(;_[T"O 9#|bap PqS .vp{nyDGT띓wN22zb T b%?evYt M E?*ȃAd\l˗7oo<̧zp+`l'SОl s={ȶ/`Ċ&?b $ U"¦MjόP$'n2&躇on 00N P*Oތڑtie#̢\T »L6SPH0QpV#\`G$0pHLhA'u.= 10I6ǰ> ,pb&PE o b S'+J)JHK(L2mjn+,D P5e ( pTrODd%7 T!ڞFpڮ.º."(d3 JY>bD1hMqG2uµ% *L,I.R)j,>iJQN F0C11 r/ِe#Q)#"ƌ$ J0JJJR$ n02 =]!qRm22% !q29 $q'$N #M@ Ҽt Pt=,EE*D$N" $>ʆƃMLЭP1NhH#pd1e*""{+ ) Dx" b4jl͜c`QƨS ePa@CBb#} a,ު l PD/ ͏@?ˇ21)9`R N g5Rhr$ qdS?j6000e?He Q*znf:]8NTb' 3,ԴC@P" (#@U6bjQЌ)@Rqi(! lF*oli;j@,hctR*9咳H ,T`# 䜿/h[\Kf+A=TLDxb47:7f!&4Ö:COhror #&>6LiQN `qbA5@HM ^BPđG?*aE2]L輙0H@ )LaHʪI,Tj,X$QԩL JK,lWBN9nI`g^”+JvU,}d~ҼV4tBiSN)0URik<ϰ/knLS-F0oLU)n"-V*1dh /?4633 F4(HL˞I3S: nTA2 #PH{N3 TKP+$ 78w2H,2lw ?ɯx%yj̠-NLBƚ{d05 13p ;7{X E={Bbn$b΅zW`Ht#(MOjW zsp U"0Ll M6K ƈ ,6)J9@oc~F_x#)8+)Co%pxFb㆓6iF0bp/Lt 9n'e"©+yi7̼ (7R8D7V?AN4`$ԺFng zsfhTU59$UgYPhuSW}JgHSkFrV)gۗcF~jlmw fbgG噊祖dxgك#EU4tBP2%io 86+w%B>\l?%PsO2!(Qw̑q⊏AYPy(mbb@ xmG+0BTIֈ [8MॖoO2G{]Bˇl{ QvQQ]2D+}t+uZuP+b@;[# LhV>tqgVnsP/W&\rA%I[dk܏Hk(n(L' 'p 4KQmh%ȯ>v`7ba/qM7Б*(nי.\TVB<0wI'7BjaD(J܈}Պ.et|bqLD]Lhd.[ n)񪸂nM(֒B4mΫ齾I6ڋ oѬ@C-r `qTiwj[|~zԷT R'Z-ȗi"B*U.P ЁH1BxP3#blà ETl I,P3G oL3b?*4(P04wx6 ;DBN7 r; @ XTs0^ x"Ʉ(*ko`]XU*$K.V5PɊ AVAvۨ K1UÈUbދ(*)H6H&Yb) VKJs8h=RbΊcd4=He- 48kT cu7j*x΋0P"jL+=gaȚEXHfoVc]VT}q45ڍC>LܸF2;"I9)Š3)ϭS\Ut1dG! W8;3'm"a~b74'ƫ+G|P7^LDfSmg&PUW(_C."Gm8‡OY)~(f7sY }O$I2́`Ҿ:;[<;&&:/P N> 2F QS@\w:y(5PiN@jM[^2Q*ִ2(CS8ژ3k=%tP2 {2R,ec,ّKUaq4%QBp!j 2L "ED (L-.;tT?k+NJ2%MUU}c<@BZ 2ϩ+ i,J1p1MD "eV jsjSWvG(Ε^Jg 2@t`4j1"2.R7eY=`g5([- SLD* ,&(VAĮ:Ez!yzt(iC] P' mWSy3)v+M !CXs{ >NDZOTנ H({RwXsb2(lfa_z#)Wj Q<2ewL}N%`3> u}NT L0-y_vvKk ]COM ]y$nokQh(]l3;]Te F'(hqL~00GPDCeJЃߌ c/m>V E!zBZ}=\2t@L$*9z`ǵS&k5bٙhPEAET3A6^E`mA9.ymP7$(o 5Cp0QE.Jֺ2~,5VĄRt8 `̅}dpdU > /ExtGState << /GS1 8 0 R >> >> endobj 33 0 obj << /Length 9365 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0(( Bhr7E!APR5 QL^٩ G/ԋOR$O,Fmjo Te_7X}k‰miv\ Kr4z)i%E}])!66Rۅ l]Wj)mh?9[ۏExdR \کAp֯r5Q Kk+(1*FH8i;'@ y8̛?KA .Y r+bԽʑ^MhՒyKg@wz+F|`nkIj$F!u%hQ ãfJijj )E訑#J}ƕ0˱V96vN#Dx+#hG7Y4sdž,CB! (~aakԲl "bPRR.EiPqKOĵe< % YK MSBގrYze zh[/]aVe.\kGث2C.qW0S<88p $ɦ[+g-0Ht E%(]r$6ZM3g+Jq@&ۧ-(248=Iޕ1cJSg@Q2.9@-B`8)-Ξ$BdF$—T\a{,l@MV  T `-~~po[8-ni5h^\Wܜ4: OZ$: bB `TZo8VT*DE!Zj&*T%;m-!PD*VIoL,DRe)EMJH `y1݇.~. Q]l: f} `4j Hv)`E㎭PJЅ"mm*4~,L$XJ6*Yf( )tͦ%ZoN][J@P k12ŃXJT|qH̨7O*`)`X>k@sgbj__.4#gBfdQS +Nkxru8WVa:t:-w|53!zV'6U:,-JCO} .T^yPW qi'!E`1T+m3LVQTB!R}Յ+"'u =ͽe~ۘZG5:fCM<i.s4ZՄYɆcU@Ōi0i@u;.LM|JwebZk6` ;ͩi$*D$:D{l1"8jp5:\ПF44pml=;nzGE# C Mm WYS# pu#fn@hQ0t9[ I2h(_VջcUr'HDžwK HJÙ 0)7WG9TsBbkޫf @w  wHiaɇÈ\sC^Cb6j6*7#v8C~8 @ɂ@Pc9##:#:,;#;<#C B='#":#aB>`@H#+z"ʌHof.+p u|5$n(KDZNtꬊlFJO\e  ) BD#h@LJ'iK TeDĆ$^F$jtBN4^L@Tz #ϦI&V66jrN\xX2lXKQd.&QE`hh@l$ h-KvQ|1$FkR}g,Pl Dd;NBD'^ \H7+6#vk RiS.J(N)ުRwLhꤧ~"!3ˌwG9)8W)CD9Og-ωPu)Nt-q$GhPO.Q RB”t4VnGC%SuQdSEgzI@pNZ4B vA>;Wd"^՜F @Q Q!9-BVRxb_QV ELZmQXl4NeR“F0KOk*5-8C\x`)SWIYjF&,_/gP8`H ` t7AD< he5@+kZ2n֖qz)Qv0s0<- ]cZMf88pWLh2G@Ÿo0K1}`evg-fXJ":ͣ+*tܶっ?'>(1+AFkVWl#; ft{q r,EdpAL%,"q@"B N+$ d zB]QBvznjrI)섧B˲\0@*Ăc Ro(?xrQV[vk.J EwP./L4fQUcmI xpC67#8zvGz`T6z"~-RĔfX6 urSUbҀ Gcupx%i*I|]\JYZ6U4,H8Kpѳc^Z `ÍB"\Xb渽5B̽q@-fLJWkতzf msB'ه'@ Е{YRF@N)%&6֏R"BBÙ;jnux+?@-jN&edoݹ5dpM5 @lףQ4IMkh/.~x6j&J_Ig$>S3eI>@QiR@ t~*>Ay 6LCZwKȫx(huK0.Σ>S0xtCG4Y<{Wq.M,1˫ =N~ޅytf N9hȱe"9#QIY \j.ϩga+liX*OD#bbӞ [?ϽfPa$=>BF*D]7ƃVPc AJ%3 ks+a4<0Tq2he606 qMAf#q΃IYj+qAv'L8ox }Ždc(#b=\ 䲎1!h풤+;;-3!`oط h"iB,3ahj8h JhS$!Di%1fL;NH0C3+)藰[ǩs(C,8IҐ:ʉ7ei>~JhQnAJU)S$[O!@7P1$3A1v7"CϤi#4$nmB5hML[W-w:m"ZɃpU:*a  9L* -WCH1# \d+nQ[ʅq8CVK?ur2p(?F;A| :w0u7μN \A9U#:o) `֩6Z 1k% pibB:YnaPRO#̰qM>8IRwW-"[5b]8HY ' ]pm,E:VGxUۻl B&$9ⓥY :2T6mit:eNYA(6Q!_1v$(y͋6HJSVeH (`qGIu%I7`7LPfl 'eR,3d"]].A"X^0}*W4d0FX[he7hiM:!dl@2vR,emP٫:6 C>-VtKKF<^M\ǒs(XdDčFHj0r "ܖ&Y>)6QHw:S!NY9 NؒTB)W*1(MڢCMnyDLb-]@!0 !t ,s"׀`Y)Ea|JQa8R8aAbbֳPaWڪjUdGR\Ų5l \ۘ)>!92jkCo] +ZDح]O t43UV>H!D˹U)5JK &aҼ2\&vV'Sҵ!dQ{f?F²j",cξ6Hb.aC )Z[->ɞo,-@q Y>8<ӅRu 7)XtP.Js]-pyZ@P'#NZ-s QI13mFXn ԈG5_YL(ԗ7-O;V$jM#qptU ELe8BZ\s G!Ѽݗ!ֵ2n8I gf:g3Bγ]IsRۜ ldK% k'!RtB)fm $Q=Ea[ؔcdZz a%ѣm~ W 93i9&̉45ڮVԒ졄(7|bԽ':NT !4Ӊ38lX Tgg"m%,߆4 mҾuM˽;;"rן$ bȲe&yK &e fa#Z/O썓%crS:aVV} gJaX͵Y-zx7FPi6ۘ:v1"c:y(EA9t|< iv[BeRD R(5g^I';#l x*:О:5Ͻ07a'j4AT5k/'-b&?ʯcQ_$q7`93_14o>ص20:^4^Wӑ̒2&BW< ,{&Ҽ 2!Q*x@@@˻Qс!"J9#.c/<3X\ L -a] {a&@Iz۝2޸v 0Z_C z yȗI6_ ?+ha`I =/3+Fs_+YA?Ts"c@+4&_<6Ȱ &2C2rBKHY;b-xJv!96vIֈ\تH)F`# |&Qdˎ͛ULJ\ҥ բ[,($ʡϣ*QG1O,pa6u6+NLxH qzOhQQ PjPI9"+x|"i+Qؘ-R *(ryط IRȽ\aI98԰&+3+uyl @ʵ1i/Bpq<Ń1Hy]ޥPT*-P5 a]'xoŸ$\CqA"|@$Z;XYd1SXCe)ZDģʪ  e\7N1u_(§aN-9V:7RQH֔VΤ) 8KЗ$ӓʝYs,VdNӕ_lX̩H ˊ9/Q9[ؠT<ǡbB.;yдî"dz QPY+ِxI; P7׵'](ɔ% + },V4IJ37,Ә:SYeX; 5!\ӡߟKhՖJ_.pՖ')K[ZUؗۊ%*|8+0 2[X "}OjCMJ)aL :MHKOAuY!8ya¡U.Z‹*,݁<ҦR\)]E[]>æ߲7Wư2-OD9ك IJV# _ޚA'$*0z`zwUM=$ɋ7ۍIH!3TP.aW  '$b IT. T~_`i]YMP" endstream endobj 34 0 obj << /ProcSet [/PDF /Text /ImageB ] /Font << /F3 4 0 R /F11 25 0 R /F12 18 0 R /F15 5 0 R /F17 7 0 R >> /ExtGState << /GS1 8 0 R >> >> endobj 36 0 obj << /Length 6593 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0((* Fᠠ)EqLn(1 Eo0)ᘠYRᰠH`e:mFH]J2c+ b) d(. +uшr3. qu%Nҍ-F!vh0KBT C&AHȒiwbqIPծa0mi7v9(=LW>'H^|(;[ Hc}EP2kp4CƮA! aHd0BJҥC0 5J2l,0*P7Cf(jx/#* G毵mkn-ƆNvڞ2hh>(3*O*Ƨ| kÁ@!D=3|ԩ,k,3 6Ispȯb?S3 P<3FF:ʠKHsJ)P *m+-&Ϋc0@Õ6>؇Cz6[3R˼ ZShfP7 rUP9+Ti-YhkuF7KsVc8R[)C YY8h!E}v*V`؊҆+u-CH3D Ft&Jp #aW Ilvײl)fX8s R0Cp%Vtv׌|<_0|B Ze@ڪc0u*.ļ(QK+RZkKT:óadkr LM`^UzWf4NUJ$VբO5P,.33}+J0̳:@vkUKNUrI7Tn)^7[zwhrj+oE~Sakq~ TZұw~k.v{E(P)4(Ԡ2.H>7E7 JkO6$58zP8!4 9"8"IhA@dQˉ(xDR*( buTQETE5Œ/t{K$UJyQ4~Iq3$,qQC$[U?Fbʂy !8$f)2"` YZ/sR4պ#XR{DɅF2Y cA08YQ3@I;rycK&:UdefluMۓ̾,j唥y%KX7MeW^b&+nPL?TDx8pѶʎ.4UCs{3] {!H&Wz~HWU^#s @ !"u)~cy+ _]a.(}dahpÊ!'E;ceY1v3Q?ShȐCN匢(^-6TU2XWP |tYxϡ*8)J3fY0ܽ; XADq4+X7ZS􁇶²OH @ꟐheSEh1.RcH5'* AAV#/yOFfpuL@*%O E+9Fzr$#CA,$վ^'o7VkoNu`Vv4ðwƢ wf,&ȃ|+;׭;P0uWGLWck=F TA l6h*J0NRIR΃[q(+t+1m(B>hr7P L+J ʜ6E0Ei\XɠC@G- cd+LaDk'j\~;dqm©F#Õp=IMp$_BμTba_d?#[/gB l?@Fڮ Xcd&kVeؑ$qL`QK-$bԫfjghdT/C&@O?0E))2`ODz2LjОX^.9"Mo<.2 `aEdK$Y"x,oU[-LDž%i6 %- 6(l2Q#ׅ%*VapK&94`POhPCR$fE2N~oK*NH,L02|oT Si9IxZ2|D32q Ƞ鼌f 4^L))ҠZ rPE@&ꃥ@UmZU'Ӯ,58sڍ\ @H~H&qP"?@T<"HjfTRd .r bݢq0ijN"@`HĒYF#C&` )c:Vld}$pKYGn[Lo%3.dÅ,G&(? $5$rB BYG|F,|,Q"&?Q#O֐ p-1:m$gJ*eg;%-S B`d͝MP ~KuJ`)DK#cv'.0) )L@VZUu;&{WP @`Y3EWUVI UXR @Z [  K#Ē [U,R@7SrUVTETUHUW1yJ`_["f@ dvF 6OeZGs6hkvq9Z&21\ VFMNcTr/kc$ UZ=ն@`uo`SQSU"U?kgb T`[՜/R XV )VF'Z7)z-vSCr.u6cx+j7;m{I]z-zXmi(=M(X.[CgSq#EO6$WmPLMyik)B}O.q.#`OI*)G7l(/S1nVOW' ɃH)[-PwFf(+g>'Hfxޮkݤ 9lgzl8Qmk8$2( F)lNUi/(^~/L@ޭPPƤf:~(W3p-\"_omsI9ㆊ t EROKw]RCu^Å/ nrބ"ShCNj&H]b*qd)&BSldVt>t\[qJJ^՗%pGq5*?O!^FOJ u9n=_)2CIqMÐd*HBs{(;y&1+6D@oduB'8h nJھQ'%3- ! c &!IP #q fBq AJ!AR/FA(\3 dxc#M\y*Hi t) b@ *04(8kL$i-Z܍#pΧp\K B z6C9#2a¸*ɡ~H@ڳ*+ {'PM 1#*7\nՠxG1wWbÂ1S* K-s89##QmocLKS'_\p_M Z5n63blFNP Sd.[\^\|0Tw HFq-\;0:L; ;Uâ8k2 ?gxĒR!,  L+\)wm\mL c -3P(T%YZ;M/eF iNax6X^82,pA.U\d}`|йu:B endstream endobj 37 0 obj << /ProcSet [/PDF /Text ] /Font << /F3 4 0 R /F11 25 0 R /F15 5 0 R /F16 6 0 R /F17 7 0 R >> /ExtGState << /GS1 8 0 R >> >> endobj 39 0 obj << /Length 9934 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0(( hr7E!APR5 QL)R8Z((05>K{͆\ľs7-dۤ,K./bܴKmoĮdNa%g,:4 :f oDEJaޮC5x(R/)L=_Rla몤3ɡ؎D(8rS[!"=I%*jGS'ł$La+!켽E1 2@.da9uRt+|g$,9LNjX%dhM1R`᭩v H  *5(ri :v+`6tw=(yN`\3IUk]*u0w" JI 9$NWh=)D(YI8 t1P0 *@j7o2.3 bS`^め`9Ҫ D@F$+aB'0eP& I @CtsIaŴV 9;E Z7sޙlz SY>b+RAD4y伵QA]Q -Vg =3x[+JVol.|jdgQ*1)ЄY}EOjF!rw[$"Y@Lpb`\-3oG-e8[.ݓp;=ܾ,]4ٖ0ttU=-] q_փnEf Fx? urŏ(9k{| :(wru+8r SB}k4 3aN'IU|)EIRi{AeGE m7zF.Sx-N*2:b0' HB FIJRN/\H`Ie> һP (jiBҤ`fȦ `  ZPi# &)7m`gºc h ? kR`Gg1&noXcaB>YMNޙRXkS PTbɎPFUüJR pd_QaBv;nbȰ \ PYlRTnF̊ 4Wce(1B4 %9à4㺴@C&pqPNFL` P0"A)d)Rc @J P%oC @ZD `J> GcxW9 Drq-7r,$ 1K,hHdiu-H+o<2rm'؇ `ʺ]  0t s*/"Ү0N+eB.,--ȰT6-49~#rRCR5+M-Ӑ8GO" ,9O&bVnDF'+:ƾz ZE}cGC^:Fhҷ(-&ҵ}$؎.+`#ǦMCRLl0% Q%qdfEyIʂ50T[@4;t!SQ^) q{U=B`.dBI4|#:cl/F!hkHLR*WGh#CYn^*Fzk8YN)`gp0&20-lGK^<0ʲbPFC`ʊҮ F5 M.?<';dt07iFDb6x6$Ht*^@IFfh+,K  TQmE T  I4oXϜn'"أI\F3o,$$P^"ﵠ9Ԏ_BX8PjY@ @hqq+i2 q0;Fޖ"]fڬm)1zqr6JB+±K\]Hq c%(;JݢU4+J~V'fq` ފ ڦB -6NXk1WŌBj>>\$)nBVL9bի kq0ůObLS;X8* @#r&>aj&"8}*"DK;BnGv+M|gP'R9B9t q E˨ykMg~5O,$HbE@EY0tE/J38dחO#%Pt&jQ k&-kPc1%lc(w ;k ʠeAIvFE p0 D^p},W??tLbosx2X>.< B$su ev$$4ei(->c";Ѿ0RzB[Z zZ:oǀgQ7e;XH.S>DmbvEܟGQ>S=GPB~})I.TӇ(-(NNJ|t)v=/pt@ŞdOx*p~t7BɉT3 xN;rn%8-T@3!x7 \'NKt@ b˟xE%Ypr,nZ ̧CA5:U`Qx!B(.ҷ RØVX .J3J< GdZ1 '.zN>1>51d}̊rfS&XDƼ"ex ȅQaPoc `) `Ilz[kڄ:LdY@E ZgPe/?ge ᒔM4 ňk򑗓1 5o1]D+RqBzbN勪>#wL!z+`5M"|T'@o"9pF0-aNW *ØEhB:z=v{ǔWg)qhI$RQz )q-$sG̖-ƌ6QM|Z{(±F5$Oɏ[W|4u^L;Vghd B>fe#F`u#Cލ (7?N@16X65<4.D{@>^C}euPO}cuف5=voCM5 M8- VL`"QPjn \u2E|\("'7P Re@Qn%uV$!@Z's `^6!dXvJDgMBܤ$ s8&|"a#SXBѼn6F$Bǯ{ OG^hkMQwRMMM2.2ZLMy ǣ7*O4tJuĭ/@P'_´h|08Ɔ_/s^oIC)u9'^=# Y3Y^zmU]*<6ghZqAGsKh7 E%ijEXZs-TB͇m~;c.@qVmP@݁枦%8G^Z8ޓM2º%mV)k%=N:ݯBjݒ'g-W_dž,sc;¸SGvɨ˥?fQ:0܋[0a{YR-B^8@_m}k b=nX%z^kX8 `ؠi6"ѐn. fh\7N,4d6bAR0$af(9IFƒ.B 'CDX[e2ce;6F"ᠢ3Th\ F9%iP|&Hlj9MNldJP@-A ʆX (;W1peU 0ѬFcE!E[R Ehp5T3YqA^9qx*oh1=@_5i4ԽʩD›9aZ\.c`pX94brƲpG{H#5{@R$,JB4Ar#B"jTj#A8SHr5ճ,X\ PC3#aJ"1*c;gSdpZ"@p(l +Ȍ#Ɗg#)R޴27r;+s0`H<5 z5%LB4Rѭ2 &N 15MsXMt4@ 2'E# KXa\+">KX9 c,8A@upFCR@HsR.t286 hi@g3'j: ܦc0y>0 W  (Pxa*^hp_-8棶L4;^1:"o"!E}g,,Mo\53 ku#ȲAwu7cXèGtJ$bZ: 7^Th2HnHPۍ+N׆V,Vq=X*JKgQXd{].Al߭/3ha@mzC{pU!.#D5OlP TFJxlPFbP&3"= {MSC9HH}"kWPޙH9hlxqA@ |iY;+h<v r+53s ;dR؏I5f;0ԃH0 7J&Ӷ$ Ji5 1BCHD5hg `'X20ZFQ; "Dk4KG0 pe D3F@3 ").#ǔ2#A-[tF46M^Y4'0KfX$fBKlRC&dşrh AҊ,,(׃YI5rff |dlDFnWdNU0eNLp̱h3!w TnDd2zX)TILn L={Kj|"FcF@(BjFJ#D4TMChm34H<@LD Ɩ-D $ʟ(kbFm>: :c@1#/& ru5j(`)9UbQ$`fՉ\5,9"kp04t)Ea:FWҖKyA-&o'!."SZOqrCFfUX F@A&:EMpqRlr:s=f 5++ D@쑣$8p)%n'c;k55E0AjATSHDÐryn8T7d¼;QGeXUP">05I\1Iuz{5k =$L:!,W)g"wHӾDYr.Ea1=U=U%Y0D]/|P=7h(@׉|I/ >I?\[ځ0gAdu-5A5mVUr 'Q[GpDRM[lgSJ~T{ i$2=D r%VnTFMvDȉnwV-Q0-Kl8(%~FkM@ٕJ#L:? q v jڐf<G@9F9-sa9JέdR'\2X2:82Ϙd/ab>QG/EDh !]﫺VMIE[Fw5O/:eA'@qtWZAX;\m}M7.F`<3Ii\ Nڲ%-vsRvOJ2ْz-wr9׋G "tD LA ID<@TND(DDĔJDF0.|;(֜Q@E ېp9 `9h:7p7k(R6 !IƁ_');a >IqB !R=WZ8YըJp h5( .iFo꡾c@X$d ҕ [ӸƌOH52ïS#0)`05i=f 0`ق'$|H)z|sJ yD(0=K(0Lzr+"*ٓ$Baٛ&JL< +$Q a)2+7jp.!㫪yCg+ԅA ̃ ;0:K {LLQ\Mrk8JŜ8#B2j8ra k{[2˲+(% 'y|+ 9AS \[,YG:hH2! ɝF6‰Ci51"1 ֝*36ڄQ*&HM=B$J8U6# 3! tlO+p­E;PRm`VT>\XI 7p"U  ߉]<;FǑHP8"] ,s ì@Cc~h˒U݁V6@GrA#(#*LĽH ĉ$YS̔`bx=+ŝ(g4H-'ϖ۹ \C,Z҂,(I>[n3- I 5A-@.L;;YR}Ǥ ma0781rU;ƭLs 1b  .uXż\4Up=P G",%X:/r1 hؽ, ޓt Y2qLLo($b!-% [țP 듋H#4X$5U+6>Fa?9UMUhUXrQyUEL0ȁ;5G3?3o{+`Q Ø"Hݥ3>tсO(7`sc Q :?K`:1䰰 2bCc  $]e+ 2ٴ c12 2"XݱX6@4&^D1+ a#DZ"  $Ud(A:'B7\-8=)cdHQUPUʓ\17ve`G5(N?"4I\ Er;! 98fr]54#6ND)37u(BJX&Y3M\9$E6}+P^=tgjNkЎ+q2sT z^ci7%<+])ݝ0l6W&y䢗, &vi1O S]ڭe#jN GWu\5Z| 1D+F::QN"ccChL $=?V8V`V,|܅Y9< 4+e %E-# p9R5FD)( `18]2Ґ|Br$TV(*P endstream endobj 40 0 obj << /ProcSet [/PDF /Text ] /Font << /F3 4 0 R /F12 18 0 R /F15 5 0 R /F16 6 0 R /F17 7 0 R >> /ExtGState << /GS1 8 0 R >> >> endobj 42 0 obj << /Length 10238 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0((* Fᠠ)EqLn(1 Eo0)ᘠYRᰠH`e:mFH]J2c+ b) d(. +uшr3. qu%Nҍ-F!vi9JP!4̌6 eI1C/:QR2ixB ZSasrNWG!PUq6=y>·*4u+ڡʤ$Asj*ơA[6[7 XJ`'sx@ZC4)@+@V9*,~5@ad6NDoz cx8 .9kB #t*9 MpMP:>«GQ*K5+#,JK5d-*x K@. :20{ M%i'6l'qZ~1ZԐhE[Zө{f*UP55 -r: 0O_VwE:26C6a[`), r7NE*3zȀPUroĵP3N:V;ڋmL@XuaCZ(jۆǷzA8ar:L=2! M*Y4Xw9u2*jޟʰzW@Y猷JNsf\u2!j×ÕD.|: : IO-SoHR* O'55m_@1CHļ5Wf0bp{v:Wi'&:a^0dn5*3ߎI]X@UNS.?бPy)0|+3Te @5 `?0`B2UJ@rFմےф1dJ uZ8x QJȐJz]Atp8>F"!ӓ#|7dH2mٲ,`Ȫ"n ,I:٢V)L,(Ba(i_,AX/"{vZ s(+,KE D!+FT0rt2|!U0Я0 io?zs'R!uRS@%5C/DspQ3e3X@گJ jH*S):~2I8e ϛfRj''aa$̢+×%@NH9DDDWBUz*Ja\4P(c=w$8Ay, j [ȫ&<^)]VQIb/HjuZbhi_)(_j(drlbLKq+= Rh@ew"M ^4` 6x^dΌY:֢+@uRW%_W!26ȰH9A͜`CXMGͼbF[S9j;#ލR}մĪU Np]/.e9nL#K S;y]Ԇ@W2q7QQ/"yh] meAg]#BzڈO E9L,E[K/ `* \|> tL A+șh@G.@1bt~|ѠD,z5v=˾ Ad*b01&발E'1 EJ2-l;ez r^<㘹+4'zb" ؋$"Or,,0bԅ:ek"FɄcW9|% b<0t T(1`R\WB>K匒L,:!>QFEf9[U$զ9Phu**RuyDgk-+D"[J2/Y##[ CNkUR@h lPҨ-U_`ʛV^mZR110A8.z7vX9豏uj ^|v)n/,ok53jitIX >9 iKt U-#,o^(@oޫU`X4uK8Il5LO+bkrϨ@A^=x[adfdBFw6j٤gl.l}M֩Cw5,7D!$OSj)f@7mF[ Fd]7-r$$qZ)Rh[DK(G #E>)HKi f 1*cPC"I'P)ЮG cVx 3Ry+9עt xȬQKRҹ4ҭ%Txl W(H=B.b-I?/dlaLlKjDzM亹/eĄȴo{ү'IG$ iy󮨓EKˏJ#Wq'獡FvS %L.Bl:~mw?H!55qedB+Y<#E&%LGRE&_ 0nRnJ)i[ LC2Nh;Ptk +/ 'fb^j& +0^•dRnow?ٽZIփy9Z(RK$j+jxgڪp*EB,Ģ0{ hq&4/cFBFN|/2oQ={ [&暠])EH1;e26'G8UgkDbAu/{0G&Zb0ºBL'. [ΌS̾ K}3Ӕr\IΛUY},L+{(9kv4YzTXا 'Q wÜsAXyjtQ0=Pe{b jcŠh}sBBhI QD7xC1!VZ#jdm5@'n\V#qI ~aK1?0D̈́g1K3 H&ЌiG++WwηBF%b}U"BPO ]*K Ko44Ǡ95n$;dO1s,dGƛ#{[pDfbLÍ[I5̼=|^%4>2/䡸 "1 'e]odx@r|L`!^Fa[ki?"9FMKGGzR\?XɎY-[P h?4`Vf?_j5h'翅hYJF6__E΃pj28@+"2 Fq` *Cp`5Bg4%CP(^FDB3#D* *Eh~B1IF]218m6MIE$JEq_ хz|o%OEaS(Z2 %!b. "Ug MKd'@uo5۱Sf)e:=PTUlue4hl p2V(8E"Ѱl(4wASy QA2@( Fc1XŽJb/(f9wE0Ǹt2’%.p!H0p(;p$oZ*0h HnC{,P!*!r5X,*i a-ȸEc(BB90b9#|=ì8Hh;oj6ކ\DJP1! r߽1 K5+)c.".Z%+k3"܎M:Np+Jb2(* zs6A@9K+9^ۏ,OާD<T4as |M7 @?09\ciPk øR87YWu+ҼZuyq>cUb4\L0:lCHgR>js5ϏنV~63GnGٰmW*d/Nf"h PpMsLS6 jd8#X/=r0PlXb?{~v7D@VP=*/ {0CeFW5f=H+<:ةW2BTDZS+'Roə8sLޡ7&Nxaa ^|JnP Oq a=\R=zk,h':,(uzTi 4ãC+hv)-Jt? W:\(.zO+:$*>8F`pOAչ2|`YS~=`9u#[h!Bޒ5z|”^[o@%܇FVcM,>I`LCɇ ܁J%U{XҐ9zi(/HPl Ҙ%!:86ScxІļ֟ӡner͒+w0!>>;r^ ΁qO+:p_\ o=/oU=$ȹ~`}$\>H :2 ΡW5 QXaYIPA)W4 L6l2 KN-Xx?p۴1+ 9;!9(ڊ:x$㝪77=  P?{I7ҙ-I{;n 3cB6 ȾQ ÛX"I:>ƐD s;97"GR;qb*7;#yAkg{8$|Y& &IGq'zؕF up2G Ht]G {H?IF+.'FH_q =HFXFFjã&7VS?dG#Dtʲ>೛j7['铎RSarD5:,{^, 2L̺!ĵGC"q:f1KKv@L4x[q9)`(|:56o,P<ɢIGC:C)C@Zɪ|kARUWCGG,սHܿIE! =Zty ;ɰ>"tF >T8+c8I鎐4DɰP쏑.+oE08 !l;0΋* W3䁨2."*<ٍڍ(ϘFxJ J,9JC>oΌ?Q@JM ,(;Ԓ0CYҠ6h5 N .42 D"(+Q)+N Ab|()0iB(Ynibߔ;[A(Ĉ19)"BڗG))UܩIy`(Ir4̱1 r: #?PI!Y5P( !s}@^/7q-,Ru }I,^  y|w\p1U[ f Qt] "`Qv~\uM>ܝ1s #ŋ([9 2#ݓH!C3y%>xy.º|^4V- rzq/; ʓ>00+44,YW&@$ KǛ*2l)4U{` FB1<6k9-աj"{!7D%\Z&5a8@e2qU=efah#7VBq2e㸳i86A{‘"¡*jAEŨ׊E Ҏ*,^6E܏RJ6,,I"7!.e-[=.XЫ}`"h2ɛatoܸb mſęb}\>iI!([ .ޒj"/Q憔Vؓ&`.@@p.I^Lh-..AT),* l/"ٹ[Ha*Pc(2P>+} v"gkfljR V]$SQ.ibm\ ) y1x2bL,2p0jXcaUjϼ|^p<2{Qlv<֔@c{ 1v@$9bUq:B<vSk9.Œo3̊a+U=bE%ҥ-l%+kph(%@*Vc;u,X}+9M@ٓ)5*#<z)k[dS qM,)-ҫq.u1uGq9N#[@ٹƎMfp4aΪB`,"6`ۨ9_`" endstream endobj 43 0 obj << /ProcSet [/PDF /Text ] /Font << /F3 4 0 R /F11 25 0 R /F12 18 0 R /F14 14 0 R /F15 5 0 R /F16 6 0 R /F17 7 0 R >> /ExtGState << /GS1 8 0 R >> >> endobj 47 0 obj << /Length 10786 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0(( ‘hr7E!APR5 QL0Pr00U~ Pa| a9aEA_2 ,I0oZ?gJ0b#x;H{1B@.@h+;~sxAp +Vօ{.Dr6Bp`'48Z2@GnK@;j´ Z?c. ahIn|1v-r̶өJ =2 Nꔫ3 >L<2MAC:ҾD͚h\_F㤦RCHS`l{QExa_N :iA[NaN0rFInC i ҹ 8-TVTXv"LyCd7 rD FVh:kU h7m>nd5ciWWP7kem v%˵:P9GilK\&N` 5q&N+[S7ˊjSvn^rG=jR4,TÝP)-&%AUWhVRQ4?$Xv)lԎzszv!ҫn*l|6FB2PX'J,Fc=K{Ĩ쁺4 P v=Z԰nvFZaQ dE~"io/FrlSr7P4 bml~c$ 6'o"bA䃫Gc,>*IְH.-&:o3pDU N4Xɖnrn7j"*>˅)I\kl# ~`bp-@)`}F&;YjzܓhP.Hn,I+b+RRCnq*_IJÂ-HZά4J`*pkDKc ؞`dWn dD# NZK0Z+͂:JET /Hf¹N:A_GrڌHSj> QD\+LزbDv"KN.dEpZM-p1,HV() &b!2bO-e.Em=Zjɓ(8%0ĎÖD1$FGi8H. V#c/[ k S10Gu5\r ĦXI6GR>N(*D>QH)BAe8 9> . \CPr>9CIm7i:rV>jg"s??Bҝ++sr,_8 V$ϲ +.+ QeRdE%Ϝ,Gv涕4iT20$-NTnncL"g2 vR['b6e+Ш_D]H.FhGkb X Lj65qe0 TdV5#Y$4'(tլ0#ZT 4:P6&Pf'O'r\.Ֆr@' q=&gUk/Uˆ\]]Pr֡A%eyMM10 FLI{e+(c'Bv(h֋՛qW Z`j}U,Uus+N'us%sB)]$FR27,90F$_o/\ t?ǪBv\HC̫~bܓkOFcM&63Ek$k8[qRIc"X#\#{K#r\񣘕s̤8%B"SdQRTHbQL;ea$+~?֨+JVf~!<Ӌ9fykyr›](ٓx.'7?EnR *CLP.]Sbc5^#P(!)3uN}&Xԑǐ|r ED\db𸛅ycucЍXªR3? U c?F}x`Z3)fAdޣЫ z:m`"R/LF']cܟ7ԜfQ7xUZ:¸s}n@ V-X}A1bSoe=ZƲ ]{&^Љ? \HhZ| w #٣&[֩Is#VX^iG_ cI_qi4J8Un1-6urH>l0蜉!I>L(m#Ldj}p2_3o6ϸm,:mq5Sgwq =Yt˪co\IF}R!H0gotE 0jda1;AucKn$`&9*^"gZ`B2&Xr-AIl@7ɀ0uC(mc%$ ě) b3pm i `PT\*%DM=dȆ×-fęN+W'v0h "\ )&9L@$#ꢔbRqIgKO$`p z E$؆gB=6̉"dTCdak9r{2p{Yɢ4qn2fW$)I\<1K܉5E񞬀j&D!|yT>A'EC2 C6SˆJrMD.6;#2$~ly%j3ʻom3N<xmqcAtpR򿵠Sic>S{6<") .VHu۶9o[~. )` g ?X+b//L0mA]Osl)-Y׹Us)qY$;:n: ȿr&9 Ba8H9R͉m8rnϝ 1 B2;舢a8~'Sz&k[[iz;N *U#"*`:# //x( {M!Z٧Ȫ -@y5#7C9)͜?A8#8rW3g> lH51!?I;x.HC=)H9 )o-`8\rjAuFߋ9+ɸF\ Q+໊o8c0/)9P;;GʡuƑfk e98ߝ7$Й<}ʈ P8&ؾ30􈍹s,2AP6a􊧂W#DIhD" o95)ܠU$"1%&⸕1(0`8tHl] s/>RR 2+@y:XQ8U 9b9lyI 4!?=DLYBYzUnH%:U tGIɛDQ/k0؃D/tf8jK,MD*9 Lݓ:|EԽ򳁑 *7%{ ,ͱpμ484RO!*h?BxHX"9p,1]PK#pPQ@{h5*=A/5( )L*1P  ȏX?mAYZɼ2́ER8XK:GN,",F(3f%"\9 *覇a~aa2@"ʼn 吂8ZJ/P3Pd zzHP*(1c?j̉AMiŮ UBU츍\aPaw20C ,<30\mI9eg  ".9z3#b Vc@g^ʧ$$$X!\y02x,lFo@VUTMsJ:+d;jX0dޔZM"/RQtbz#S_܈Ө19o@ ^U48;'#ey[e #:*KX"? ^AlrLVi~QFq;7 bu[e+±n b$"ŒבJX`P ɍD5[]K6) 5Ȉx 30`.u箫 Qgegj)4ae(k )薲h-ޠ $MT 3rk f< Z>Y5q5\e8J 6e8>ȏ6fb9fXϠ1iT;p.<35Xvp2i]p69Zh8aU [V""*igpk $y*@=6n [(*P endstream endobj 48 0 obj << /ProcSet [/PDF /Text ] /Font << /F3 4 0 R /F10 49 0 R /F11 25 0 R /F12 18 0 R /F15 5 0 R /F16 6 0 R /F17 7 0 R >> /ExtGState << /GS1 8 0 R >> >> endobj 51 0 obj << /Length 9475 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0((* Fᠠ)EqLn(1 Eo0)ᘠYRᰠH`e:mFH]J2c+ b) d(. +uшr3. qu%Nҍ-F!vh0KBTAcdInQLIPBk h* X!z(4J q+'s*)͆Qb񶂂/øaolڋ d@/x7J67ajҫˆ|HAC8$ PCx\ d/pp ⺼Î+9#d!eB0Ē Ŋ p5!m[lS$ *O@aD4LC,}Bq`l1JbDʕ0tܵ *Gh÷tJFɴJ+E^@e-+LB(WpYb<6P;1Hmj*k8;-96QÛ9ppD݁`?1j $87NnLU8j@{5+!*BPNt=₸lӃ:N;/g K0jn楯@Hk⩪l#ف[݊p*RH̴E[ H7 'O/E2 ?F0 q=XPC*0E,^+p;Ql^7~9+geǷ$D =wjT`i-ǜѢ:瀺(3ThƖI@'0ETJcfRT JoߛD_d4T}`;zi͠*ǐ.:7k6ٚ7i ftSa8LJ@-k,p|JZ_ B]P oT%P ]e!UL:4:T=uJQB22gө0A@CB)R(>NW0}$# ӰQ-Q|G::aeUT:u p~>RGM ֪sYTڇ%R c)U)ثVYmx8.ȆTIw!qa}e$FrϮK[i)K+6<Р7UΞ,_ k6[ C4ۀ ݣ83 X˱b]\a`iN錬չ<'b,PRӓ@^LEZf()h>꼲伛>,J؍tNk?&;B|jN IW q 3%ܱU|cEKi%UHtP;5cU2X첹m&ko2i$8w5•1 ۑ5i 7bʬhbChIͧ$KѽFs2%/V pe<VtIgLM%b oIO> \EhN2OrݽJbʡKIeH8r^YATvuTWݘٽ?HEQjAt$P'SȵԃBu;1tʽSLiҒ4z#f(E龖aGZ+ vrlX3)vbuAiw+ȕ$E>}[~nJEUb4;[Xih9GDm`E )\b%Lź pjDgZ,. QZu-eBD%6T VpZ0`:x-*:b-rZM@J͂~ Cp[*rlS:2Db0II|% kB]IppEH("0#(b۬h _Eز,T诐KXvtdpuּE@" ` 2ӀPfR[`)T$XdJqVS1z-jP`e։Fb)*G`P(дLwE j QFQ,x0HU:ElToQ| VCe0 d +ݯŚ hO_"hR8'E +y.ž([oF\fZƪ!L(jl"Bl" .#X eM.䔥M(Bd1-k SdUO6ZQ⺮LWP^fERɑQ":"L</Qd\iP@_Fzm%$P;0#LxdfNGQh5 $x.$S7XyZ zXa) `wD(:*rA3R Űf40.0(N4' DCȸF-JtDs3#hPf+?/ԏt.@j`x6ФnS: 'D &k JjPU0p(B3CBjGDʐkv%@R<_\A1zpm%Ȧ!|rd.KT=J2S e6TVYpE+qJ#QbSCT(Tn Tഇ7TYLp،td2;D"~N^/\+ "P} :tj~tuSJDL`cR@P EȠRRgM2ѥ:/G8:Jm#AVBW7T'#E)r=J{9$o)Vt?eL 5¶* n BdV\(.[e/ J)IJ' ,3\B}k;eI 7IFnڌkb1!ܳbwn 2'Q+;FS D,."bk"ڠBJ%f,VcD*m+vF6M"tH^txŘ_TW] )Mcs)I[O4iD # K q9F&$T=ө8Ӭh b?g'N{d<-UثfD|3B <{pG//R`p SSl6)O]g\S&BG֥HEB( }%UAQW]ܕj!=q^>Ȑ}w~s ^&Tm;u {fOTKz!! !p{h % |{s8Ő'XZfYc*or;+J,")X/qX r5/Qv#Cen&"&bg/rn#jOk6 J[ pPa b 0[*b "oZ+E$zs*L i`3{2U Hd}aXWldG ӆJbzFww}5IL'G5=ļGmy]6 Xjxs+אwByppt!f'TO:v#)膤.n5s)ΑEt Q vN6[O%v,KkvJmDT ւ՗SFθ^/Y$@Pf~vpP 'pPjuKf@CPp/b>΋\C3(DdYuK 璅`# N*o56Y.ZftsGX,qjF,;޲s7Ep8. ^+!yp")M*gD"r|.+mD5gW7Hc+.::JŐqJ%,?8jR$d#2J0JŸ\*"1XʠDz \YŌcֺE' fkT/T흊m)# ۴S,_3гWԍ+l,p|;V ˦ NgE?#Ӑ:{aY/6+厙Y=Ҿe +U/* $ҩŽ 䮩G Vbt뻑ʸB:O-Dƥ9 Ie]uuv4ſ- VZr{`廏Ņ wtGS3Ԥe8# D2""f)ރ};deץѝGO~kDOTDZ$ )y[]ka;ӇomFS8coB[jE<=Z˽\=w?> `qMwڳq詿?2sd!@fe곔1hCFҪxZ ^Sʉ+J eFp(9N8(\1c1pPf "#e '!hT%Dr0%@T"K%i91b n.#ѐl(:NTpbQA´4@ET[IE2IS2EF1A/ K Q* 1rfjば@0ųټ̩C%CV 1 `9 PƣZV?N]]b%=ֲz0먥r|l`ڕc9gj9L9ΥGf E׳)氘m&xPXikFNRp7 v;4l,ri^,z<== ̆-˲2ql_+*<+~ `!,ArN¢$ @* XDZ&)kp̯b5+G$Ϋ< RxA 2l442E^LS"*1/K4 IJV)v1dѲPk#dSQ H*1Q8p5m"G@b;/P4Y0,졨:lC 5,b %B*vŴuiP2$4,tґİ( +њ(C!heD ߎ$7!3 )a)\ 0MXx&kW9@)qJZ%< aءkp.k4-TҚsS8Uq6&x"hqN9Clq Rv <:%#&L;xwVcjFdX(5FҴFb"9f#γ{I`'#I#C~ S!M_eydGF@S.[E$₀"EbܡA#DR`%&4ie\3ANf@cubGd3܉UsϥQ<z'\C V>ssuEt2GZ>ͤI%O V%u*"iޞ^$%J6D׉VSd2(m>h+Ec[k̈ ff%MNhE@8"[cc̙t)B43Xw$l)s&#ԞqfZ"2:bdPi^? pS}79dhl>4޲EO% tm:U0;ŏEbO9ENaaX q@\ L-04VppmIl,'1$8FI@lTaD8#'`uD;XJI )Ie)k8QkaK&6PXQ?m5S5U霤 d2м2S7b̥ cin<^reʑ 1lEBb'kwtmrO[RJxCm]8\[dK( OGnA+ 9NF#Ny+XSK7R5t>Zrs22.g<\ 5嘺4Xy({f,j]Hèg:*Hs(!rr rK)B #` @±(;ь;\:?G;{AQ°>I$a2I'y)H"CY(ڶY!:82:396s")sL9Ϯn oJ Y< 9lāЊL`.%j& $))5״ۑ7>PsCC/x9:m"3AOP(B8sqGcxS ?3 Ԏ0jÌ`@!eB!Y% k+ h9y,>JYp*p$sc!@5C% tB3p.֒d[t1x69ZJ KIQ363yPz08C r8ۓq9[H$q 0W Ը #>R#~ 2Id$i !5㝎 Mi"SHC}?k;Ƅ1=P\S$}A7lI;O 97B>L4D|vbZ+kFaۛLe0X,*2JL΢9b.Ѻx1w<92*EM&s*#LێBy"U9: G,Gj}pF3l\ʬN%Y3⑱M !䎢w!xF1Zۅx$Q#@ [ۡHBR* Ir>)S4%,I|KL&P-) sa<@)ϐ Z!5ITB5A:WĔOȧu%{:TѕUMeP=QW((7@UCsPLg)*B@. cII7O=`:OmaLִ7Ibh֜x>et]vAdVz V3ը2B"MCUIحn}X zAR"2ȺWH%R7DDœLQH\EC9Zؔ 5$% 9R%%)0KDZ] It<-L]L`Mg;PLiBn8\QLݘ9|C QVJauDJR $ZCjsT!8ȥؾCE\$\@]7—yV #Ri&ȗ@W?ĻtV}Q"γ%x ;L>T.&ց?LX ۊSZ9[< ~bN0uN$](!ͬ`2ۜFVU]Y-`2N;L"p7Ճҽ(2Q109$étWԸV[83چ*,R X43\m q Da#Imht!\(*P endstream endobj 52 0 obj << /ProcSet [/PDF /Text ] /Font << /F3 4 0 R /F12 18 0 R /F15 5 0 R /F16 6 0 R /F17 7 0 R >> /ExtGState << /GS1 8 0 R >> >> endobj 54 0 obj << /Length 7525 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0(( hr7E!APR5 QL>1u0d0LM3*`6ß5#4(AB WXs t9Z(wt0!FFÂYoG5AHo`$@C!.%'BuX t[{@t Z >!"A*"%|2W[)EqH}Pdq"%*Pla)*7^D).dÐa0&=‰9}F PP5d]i*.B"|1Ԟe䣣.k| "*$ ä " A"nI&,ԤH ,%00ǐY0#Ԉ`t5=6 rJ<T yФ4tW{pU ;LԇPAS9ȅ5_RhOMgiϩ]1L0 (¿Q e43Ls.H'4'A),Q6%̮_@R5 MH i1&8I(-J A*Ph٘9&Jo@ $)U_;h8n 82r 阸CUIB.ːPƬØs ˈjyRR)M)ƟW%ȇ"SJ0ɮ^Q]g,p[[k!qP"|!:$ZWH Hl #CkhDظk KbZ9ق[9!ƃdt-Ht~Ee9R 1K-`R,i[xiK\ʊAe7l`w:%@۸,S;~o ?\HV6 A.`bm-'|:Xcz/w<Oc=,ҿD !P}5ވաʈ3cU+rȋ⡓]uQO R9[ 6?kWA9,a/*"ڱ覚1hG1>bjA.0 /4#` 4 $ BsGQ;^`>#7Ks"6 ! 0 T%B Bð s 2S#>`3-J@%12_2T3DsA;3ԇ44PHESLP4_5eSMN">5(L `s O sP2 s$B412@S !SU:Es;DGDEH}Tk5*PYF3_FFuV"Gt4}VP`wHI4ISI:;C @2@Kƿ9UG[)!=[\`nB8TTV'E[YGh,-'༰h~#jFAQ@N,,Z`U)Fh/KK7q'\mHir*CTQ#M)f??gi{[<5KVgP+11=]E Db] =CN9$f q)pKoP=12j8pp'br VS>T6k x f#$jiCkzNB4`i ;w1&ƀ=+,v#gf"tQx ) IВHYZbM@A~tKN,6H9dm>88&@[%-qmՔ(0H)Ӕ,gB@I[i9}z4BEe[wО~(GzoL7#wi,k$GhR 9k@ .D1rruIt"Sɸc'$.d(Tͦx=u<{,qNdžҍhYoup*˨tX!M!}^0Y4=^GurܨI].d[e ޝ4iM"p>ߣh \@;e=TޓgK~\"s%ڴ~+y*GD dTWOV$]zN?88=-(4[3xӷ Fcz]:Idy`F S "۷)z*7ct9 ^IP2 #8 22*N"L@/{J0fZe!c9{*c8)@hDHp7 @6 Ib;-""- HԨG> KkNv 3HiM1C{S5FLlD/9 pLx'PS7[)"p-TPLnN5r_r9`Hi`DX>KjDrKvS;'L9i8&ĉ৕Jn p""JF *s,qwMS1kUp"Pkä;F+6CЦ(R) HĔTQ*E86 C"D"(HnP!(e* 6pbBX\-.bX9QȨ1HQMwMcL5\J c1vLZ[x`I'A_Tb10PFoj-HKx4lg(HNGaH!tkf2MeE2y!C{orR{nR, Dl}ܲ]`|YBVgj6cQXbdnoq\bz$݆ŭ ^e*ŷIo\!:K⢛pǸ9yv^>a[5wX,u ĺ`tꁨݟSjӽr!dE!ehQ !  ~T6RhR G̨B 8TE9)[ΒڼB~aoqL!4|\Q{ K {uwt;L=SHu$/;cKTqԊlaۗBK3uÅu$䬐wD Ŷ>z!eEtMߤFp endstream endobj 55 0 obj << /ProcSet [/PDF /Text ] /Font << /F3 4 0 R /F12 18 0 R /F15 5 0 R /F16 6 0 R /F17 7 0 R >> /ExtGState << /GS1 8 0 R >> >> endobj 57 0 obj << /Length 8531 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0((* Fᠠ)EqLn(1 Eo0)ᘠYRᰠH`e:mFH]J2c+ b) d(. +uшr3. qu%Nҍ-F!vh0KBT 5]C#"M~[jC!8BK0-c8Y_:fSv$O%IHJ).R77/J>N_TSxr* 6 jZ;`\z5b(}ǘV(;HO]Ey[tUw`e źÜ2tnh|9C=]h%/A"o3l*?5c4ZAԻsLK&o 踡UNCԏ{M0N|%jEQV23[i5VvNjR)F:`u2Ғ;18霣szn|6[^6N~pRrXZaR|!L蕗a5$H Q֨O8D,,kw|d"92UZ~|mo6|xcZy3ZUnUHTa2P[re̢HڛpdDL.@҈WuwDM.Ƞ;Ӳezmj26;j L B .>Fv~@NxUNC_R77f'o,<k,)+GdH҃^q()Ȕer*N]ԩxSCjv&芕8k4Iлvܽh0k{^O Z]}8vQS3@gͪR N6BR`B A!XdW*'N2Y~mN]oK&<'&zLSC 2hckٛ;/.:WҚ˶Ɨbmwakc{\~q aP)S:2^W˩O2b88CĒƔfƕ"Qm|7ɝ CH*s[T(χK)|_^zv{-v)q"Bk80-bbưe /D”KϺPrdꠠҼ`Rw2(2DJ&g\'f( +OZVp|vĴ*U5#%N &ik_zȮpek^OB+B@%JdbU]*:oe NDh%V꼉eH Py E9idRCoڌr*FG <Ǥ(䎯JܫkNB>G6Ud4FL ǝFGLBN1)@Pӯ͆j.qjϏ'l^0+JL/0N\QELR-upDpFBM^U~IҒIEUJ &k?ǘnܤnjdnV1͆G@ z)PPJ؅f

outfile P [ -[no-]warnings ] [ -version ] P [ -[no-]scribe ] [ -[no-]trace-file-opening ] P [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] hP [ -[no-]prettyprint ] [ -[no-]print-patterns ] 5P [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] P [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] P [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] P [ -[no-]fix-names ] [ -[no-]German-style ] hP [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] 0P [ -[no-]delete-empty-values ] [ -[no-]file-position ] P [ -[no-]align-equals ] [ -[no-]check-values ] P [ -init-file filename ] [ -max-width width ] P [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] P Usage: ~Pperror() saysdP -- using stderr instead aP%%>P%s cannot open error log file [%s]<PwP[dzP Email: P FAX: +1 801 581 4801 P Tel: +1 801 581 5254 P USA P Salt Lake City, UT 84112 P University of Utah P Department of Mathematics zP Center for Scientific Computing dP Nelson H. F. Beebe [PAuthor: PPP P"P8PHHPtrace-file-opening8Pread-init-files"Pprint-patterns Pno-trace-file-openingPno-read-init-filesPno-print-patternsPUnrecognized option switch: P%s%.*sHPTP`PlPxP$P8PBPPPaPnPxPPPPPPP P,P8PDPPP/\P@hPXtPhPxP P P PPPPPPP P8PDPP(P\4Pp@PLPXPdPpPPwarningsPversionPtrace-file-openingPscribePremove-OPT-prefixespPread-init-files\Pprint-patternsPPprettyprintDPparbreaks8Pno-warnings Pno-trace-file-openingPno-scribePno-remove-OPT-prefixesPno-read-init-filesPno-print-patternsPno-prettyprintPno-parbreaksPno-keep-spacesPno-keep-parbreaksPno-keep-linebreaksxPno-German-stylehPno-fix-namesXPno-fix-initials@Pno-fix-font-changes/Pno-file-positionPno-delete-empty-valuesPno-check-valuesPno-align-equalsPmax-widthPkeep-string-spacesPkeep-spacesPkeep-preamble-spacesPkeep-parbreaksPkeep-linebreaksPinit-filePhelpxPGerman-stylenPfix-namesaPfix-initialsPPfix-font-changesBPfile-position8Perror-logWARNINGSTRACE_FILE_OPENINGSTDLOGSHOW_FILE_POSITIONSCRIBE SCREEN_LINESREMOVE_OPT_PREFIXESREAD_INITIALIZATION_FILES PROGRAM_NAMEPRINT_PATTERNS PRETTYPRINT PARBREAKS MAX_WIDTHKEEP_STRING_SPACES KEEP_SPACESKEEP_PREAMBLE_SPACESKEEP_PARBREAKSKEEP_LINEBREAKS GERMAN_STYLEFIX_FONT_CHANGES FIX_NAMES FIX_INITIALSDELETE_EMPTY_VALUES CHECK_VALUES ALIGN_EQUALSDECC$GA_STDERRR OPTIONp>do_args>noname.3>do_args1>do_args2>do_args3@>?noname.5|H?noname.4e?noname.6e?noname.7x?noname.2?noname.8k nfiles rmsg*& argc argv ? do_preargs? noname.11$Pdelete-empty-valuesPcheck-valuesPauthorPalign-equalsP?P$Id: option.c,v 1.5 1996/04/26 01:16:37 beebe Exp beebe $p>Pp^Rѭ1ЭP޼Q@aPPP1ЭP޼Q@aP`PPISOPTIONPREFIXP1Э<ЭQЬPADЭP޼Q@a@H@PPAPPLY_FUNCTIONP@ݢ@ݏdϺϮr DECC$DSPRINTFrWARNING4ݏ DECC$EXITТ< PЭSSPP޼TЭP޼Q@aCdPPѭ1ЭS޼TCdP^RѭvЭP޼? do_preargs4? do_preargs54@ noname.12e@ noname.13@ noname.10@ noname.14k argc argv @isoptionprefix5@ noname.17D@ noname.18 resultc3L@opt_align_equals]@ noname.20`@ opt_author@ noname.22#@opt_check_values@ noname.24@opt_delete_empty_values@ noname.26Q@aPPPQЭP޼Q@aP`PPISOPTIONPREFIXP4Э<ЭP޼Q@a@ЭQЬPADˆ@PPAPPLY_FUNCTIONPPѭP ^Ѭ- Ѭ/ЭЭPP^bP ALIGN_EQUALSP^\STDLOG OUT_LINES^*P CHECK_VALUESP^PDELETE_EMPTY_VALUESP^R<\\<vݢDTFOPENPSTDLOGSTDLOGTݢDxPDECC$GA_STDERR\l DECC$DFPRINTF`DECC$GA_STDERR\l@ opt_error_log@opt_error_log6O4A noname.28;A noname.29;A noname.30 p>&; ? e?"  n @  )',R_iobuf _cnt _ptr  @_base  `_flag h_file p_pad1 x_pad2R @R @ quot  remR @ quot  remRstat st_dev  st_ino*&Pst_mode`st_nlink st_uid st_gidst_rdev st_sizest_atimest_mtime0st_ctimeP st_fab_rfmX st_fab_rat` st_fab_fszh st_fab_mrsR  NO YESR"s_option_function_entry` name  min_match@function DECC$GA_STDERRdecc$ga_stderr T ALIGN_EQUALS align_equals T CHECK_VALUES check_values TDELETE_EMPTY_VALUESdelete_empty_values T FIX_INITIALS fix_initials T FIX_NAMES fix_names TFIX_FONT_CHANGESfix_font_changes T GERMAN_STYLE German_style TKEEP_LINEBREAKSkeep_linebreaks TKEEP_PARBREAKSkeep_parbreaks TKEEP_PREAMBLE_SPACESkeep_preamble_spaces T KEEP_SPACES keep_spaces TKEEP_STRING_SPACESkeep_string_spaces T MAX_WIDTH max_width PARBREAKS parbreaks T PRETTYPRINT prettyprint TPRINT_PATTERNSprint_patterns T PROGRAM_NAME program_name  READ_INITIALIZATION_FILESread_initialization_files TREMOVE_OPT_PREFIXESremove_OPT_prefixes T SCREEN_LINES screen_lines SCRIBEScribe TSHOW_FILE_POSITIONshow_file_position T STDLOGstdlog TTRACE_FILE_OPENINGtrace_file_opening TWARNINGSwarnings T rcsid*&::9< current_index@current_option D next_option Hoptions3/T @0/options3/T T author3/,  help_lines3/  usage_lines3/Dversion_string3/( =L)PUBLIC$DISK:[NBEEBE.BIBCLEAN]BIBCLEAN.H;1<e(PUBLIC$DISK:[NBEEBE.BIBCLEAN]YESORNO.H;17D(#PUBLIC$DISK:[NBEEBE.BIBCLEAN]CH.H;1> )G6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STRING< ԀiF(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XSTRING.H;1> 96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB< {(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XSTDLIB.H;1; 'PUBLIC$DISK:[NBEEBE.BIBCLEAN]CUSTOM.H;1<6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STAT=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO> 6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1UNIXIO>96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB> j6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1LIMITS=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO< (PUBLIC$DISK:[NBEEBE.BIBCLEAN]CONFIG.H;11;o$'PUBLIC$DISK:[NBEEBE.BIBCLEAN]OPTION.C;1  \ |] &      |  d 7 0  u           d  }    +   k t WARNINGTFOPEN OUT_LINES DO_INITFILE CHECK_INODESAPPLY_FUNCTIONISOPTIONPREFIXSTRNICMP DECC$EXIT DECC$STRTOL DECC$PERROR DECC$DSPRINTF DECC$DFPRINTF p>DO_ARGS ? DO_PREARGS @ISOPTIONPREFIXC$CODE$DATAAPAPxAPdAPPAPbibclean-3.07/vms/vax/isbn.obj0000644000156700015670000004474406142246427015162 0ustar beebebeebeISBNV1.0 2-MAY-1996 17:05DEC C V4.0-0008P (08AJT`hpy!*4>CHNT[hpx &-8@HQZdnu  (1:DNTZahpx$.4:AHPXajt~  &,3@HPYblv{  (1:DNU\enw  (1:AHPXajt~!*18@HPZdnu     ( 0 8 A J Q X ` h r |                    ( 0 8 A J T ^ e p x                   " ) 0 8 @ I X ` h q z                     ( 0 7 @ H P Y b l v }                    ) 8 @ H Q Z d n x                 )2<FMX`hqz )2<FMX`hqz %08@HPYblv )2<HPXajtP99920-904P99920-900P99920-55P99920-50P99920-2P99920-0P99916-704P99916-700P99916-35P99916-30P99916-1P99916-1tP99915-830jP99915-800aP99915-78XP99915-50PP99915-3HP99915-0<P99914-9272P99914-900)P99914-58 P99914-50P99914-4P99914-0P99913-0P99913-0P99912-900P99912-900P99912-79P99912-60P99912-5P99912-0P99911-860P99911-600P99911-32P99911-00P99908-900P99908-900P99908-29vP99908-11lP99904-917bP99904-900YP99904-65PP99904-60HP99904-4@P99904-08P99903-00P99903-0%P9988-0P9988-0P9987-8823 P9987-8800P9987-583P9987-550P9987-30P9987-30P9983-9901P9983-9900P9983-87P9983-85P9982-9900P9982-9900P9982-815P9982-800P9982-30P9982-00P9981-0zP9981-0qP9980-915hP9980-900`P9980-84XP9980-54MP9980-1FP9980-0<P9979-90672P9979-9000)P9979-827 P9979-800P9979-57P9979-50P9979-4P9979-1P9978-9910P9978-9904P9978-971P9978-951P9978-99P9978-57P9977-9999P9977-9900P9977-989P9977-900P9977-89P9977-00P9976-9992zP9976-9990qP9976-988hP9976-900`P9976-84XP9976-60MP9976-5FP9976-1<P9974-75052P9974-7500)P9974-580 P9974-550P9974-36P9974-30P9974-0 P9974-0 P9973-9918 P9973-9700 P9973-925 P9973-700 P9973-18 P9973-10 P9971-9924 P9971-9900 P9971-989 P9971-900 P9971-89 P9971-60 P9971-4 P9971-0x P9968-9703n P9968-9702d P9966-9874Z P9966-9840Q P9966-882H P9966-830@ P9966-498 P9966-20) P9964-990 P9964-950 P9964-94 P9964-70 P9964-6 P9964-0 P9963-7846 P9963-7500 P9963-599 P9963-550 P9963-44 P9963-30 P9963-1 P9963-0 P987-0 P987-0 P984-8085 P984-8005 P984-556 P984-400} P984-30v P984-01l P983-99747b P983-99382Y P983-9750P P983-9000H P983-899@ P983-8007 P983-730 P983-60( P982-500 P982-100 P982-03 P982-01 P981-3099 P981-3000 P981-215 P981-200 P981-03 P981-00 P980-6303 P980-6001 P980-316 P980-200 P980-07 P980-00 P979-8322 P979-8000 P979-557 P979-400 P978-31118z P978-30000q P978-2887h P978-2000` P978-199X P978-000I P977-5235@ P977-50008 P977-4570 P977-200) P977-17" P977-01 P976-8105 P976-8000 P976-636 P976-600 P976-42 P976-40 P975-96606 P975-95384 P975-7797 P975-7402 P975-554 P975-345 P975-19 P975-09 P974-88000 P974-85000 P974-8499 P974-7000x P974-685p P974-200e P974-10^ P974-00T P973-95521J P973-95000A P973-91348 P973-90000 P973-682( P973-550 P973-49 P973-21 P972-97520 P972-95000 P972-9499 P972-8004 P972-722 P972-550 P972-50 P972-20 P972-1 P972-0 P971-91273 P971-91000 P971-8819 P971-8500 P971-631 P971-500 P971-36| P971-06r P970-91074h P970-91000` P970-619X P970-604Q P970-10J P970-05A P969-81598 P969-80000 P969-473( P969-400 P969-39 P969-26 P969-1 P969-0 P968-7275P968-6000P968-899P968-400P968-39P968-10P967-99999P967-99901P967-9989P967-9900P967-989P967-900P967-89P967-60P965-442P965-207uP965-19nP965-01dP963-85084ZP963-85000PP963-8481HP963-700@P963-8928P963-2001P963-18*P963-00!P962-7646P962-7001P962-474P962-201P962-19P962-00P960-85203P960-85000P960-8499P960-7000P960-433P960-200P960-12P960-00P959-7033P959-7000P959-216P959-200P959-13~P959-00tP958-95343jP958-95001aP958-9285XP958-9000PP958-656HP958-600AP958-32:P958-021P957-9699(P957-8500 P957-685P957-500P957-43 P957-05P956-7205P956-7000P956-266P956-200P956-19P956-10P955-95444P955-95000P955-9151P955-9000P955-616P955-550P955-28P955-20P954-0P954-0wP952-9714nP952-9500eP952-6666\P952-6666UP952-90NP952-90DP951-96448:P951-950001P951-9498(P951-8900 P951-889P951-550P951-54 P951-20P951-1P951-0P950-99949P950-99000P950-9899P950-9000P950-795P950-500P950-47P950-00P93-0P93-0P92-9117P92-9001P92-891P92-800P92-77P92-61{P92-5vP92-0lP91-992083bP91-970000YP91-88356PP91-85002HP91-7998@P91-70003P91-632,P91-500&P91-48 P91-20P91-1P91-0 P90-800868P90-800000P90-74319P90-70000P90-6999P90-5000P90-449P90-200P90-18P90-00P89-0P89-0P88-86065P88-81785P88-8402P88-7000P88-461P88-200P88-19~P88-00tP87-997202jP87-980000aP87-89796XP87-85001PP87-7799HP87-7000AP87-611:P87-4114P87-20.P87-00$P86-901289P86-900941P86-82045P86-80001P86-7861P86-7001P86-455P86-301P86-27P86-03P85-900051P85-900000P85-85457P85-85000P85-7261P85-7000P85-341P85-200P85-17P85-00P84-89600xP84-85000pP84-8420hP84-7000aP84-699ZP84-200TP84-07NP84-00DP83-900482:P83-9000001P83-85541(P83-85000 P83-7080P83-7000P83-233 P83-200P83-11P83-00P82-992517P82-990000P82-91769P82-90000P82-7661P82-7000P82-599P82-400P81-900211P81-900000P81-85690P81-85000P81-7266P81-7000uP81-648nP81-200dP80-901081ZP80-900075QP80-85529HP80-85000@P80-71518P80-7000-P80-236&P80-200 P80-09P80-00P7-900000P7-900000P7-81035P7-80000P7-5639P7-5000P7-314P7-100P7-04P7-00P5-900850P5-900165P5-89996P5-85001P5-8396P5-7000P5-690P5-200P5-12P5-01P4-949999xP4-900000pP4-89829hP4-87000[P4-8470TP4-7500NP4-657HP4-250CP4-19>P4-004P3-9802964*P3-9500000!P3-929031P3-900001P3-89524P3-85001P3-8252P3-7001P3-633P3-201P3-19P3-01P2-9900003P2-9500000P2-940028P2-900000P2-89436P2-84001P2-8317P2-7000P2-607P2-200P2-19P2-01yP1-895682pP1-86R ISBN next_ISBNnoname.3 next_ISBN1Xnoname.5Xnoname.6noname.8noname.7noname.4 noname.109800hP1-86957`P1-55000TP0-9801223JP0-9500000AP0-9499998P0-9000000P0-89997(P0-85000P0-8499P0-7000P0-698 P0-200P0-19P0-00P$Id: isbn.c,v 1.2 1995/10/07 15:50:07 beebe Exp $P ^޼P`PP1v޼P`PP1DECC$GA___CTYPEQ޼P`PʏP@aPʏPPz޼P`PPXj޼P`PPxZPPP޼P`PPDDECC$GA___CTYPEQ޼P`PʏP@aPʏPP ޼P`PPX޼P`PPxЬ޼P`PP1 next_ISBN2  noname.11  next_ISBN3 next_ISBN40 noname.13$4 noname.12L noname.16P noname.17T noname.18T noname.15T noname.19knoname.9gk noname.20ynoname.2 noname.14n start s  next fix_ISBN noname.23 fix_ISBN5 noname.24@ noname.26 noname.22  noname.25R @ begin  end i ISBN hyphenate_one_ISBNt noname.29} noname.30 noname.32 noname.31 noname.28 noname.34hyphenate_one_ISBN6hyphenate_one_ISBN7 noname.35DECC$GA___CTYPEQ޼P`PʏP@aPʏPP ޼P`PPX޼P`PPx(PPѭ ޼QPPaЭZP"P޼P`PP  ޼P`PP-PPPP޼P`PP1]޼P`PP1޼P`PP ^RЭP~@8P`YPЭP~@ݬ DECC$STRLENPRݭISBN_hyphenate124 noname.63:L noname.62LISBN_hyphenate13d noname.653 noname.64 noname.66 noname.58 noname.67 noname.61p r  next  start s t   maxsO in_ISBN_range, noname.69` noname.71h noname.70 begin_prefix*&  end_prefix*&  ISBN_prefix*& begin  ISBN  end p squeeze_ISBN noname.74 DECC$STRLENPRR 1ݭݬ DECC$STRCATЭ5Pݬ DECC$STRLENPP 1ݭݬ DECC$STRNCATRRЭ߭ݭ_Pխ1'ݬ DECC$STRLENPRݭ DECC$STRLENPRR !Pݭݬ DECC$STRCATݬݬ DECC$STRCPY4^ݬ{ݬo DECC$STRLENP DECC$STRNCMPP Џ<ݬ 8 DECC$STRLENP DECC$STRNCMPP PP^PPѬ1޼P`PP1squeeze_ISBN14 noname.76 noname.774 noname.794 noname.784 noname.75L noname.80^ noname.81h noname.73h noname.82 limit out_ISBN in_ISBN   X T  k   9 :  < G ^R_iobuf _cnt _ptr  @_base  `_flag h_file p_pad1 x_pad2R @R @ quot  remR @ quot  remRstat st_dev  st_ino*&Pst_mode`st_nlink st_uid st_gidst_rdev st_sizest_atimest_mtime0st_ctimeP st_fab_rfmX st_fab_rat` st_fab_fszh st_fab_mrsDECC$GA___CTYPEdecc$ga___ctype-)& rcsid*&2218 ISBN_range3/Tnew_ISBN*& =)j56ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1CTYPE;B'PUBLIC$DISK:[NBEEBE.BIBCLEAN]XCTYPE.H;1> )G6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STRING< iF(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XSTRING.H;1> 96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB< {(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XSTDLIB.H;1; 'PUBLIC$DISK:[NBEEBE.BIBCLEAN]CUSTOM.H;1<6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STAT=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO> 6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1UNIXIO>96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB> j6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1LIMITS=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO< (PUBLIC$DISK:[NBEEBE.BIBCLEAN]CONFIG.H;119En,%PUBLIC$DISK:[NBEEBE.BIBCLEAN]ISBN.C;1 2 \ |] &      |  d 7 0  u 3       4   N  }  5    6 DECC$GA___CTYPE DECC$STRLEN DECC$STRNCMP DECC$STRNCAT DECC$STRCAT DECC$STRCPY ISBN_HYPHENATEi$CODE$DATADECC$GA___CTYPEQ޼P`PʏP@aPʏPPz޼P`PPXj޼P`PPxZPPP޼P`PPDDECC$GA___CTYPEQ޼P`PʏP@aPʏPP ޼P`PPX޼P`PPx޼Q޼P`a޼P`PPPPPPѬ1 bibclean-3.07/vms/vax/fndfil.obj0000644000156700015670000001335206142246426015457 0ustar beebebeebeFNDFILV1.0 2-MAY-1996 17:05DEC C V4.0-000R FNDFIL envsubnoname.2filename $findfile@noname.4Hnoname.5R findfile1xnoname.9x findfile2 noname.10 noname.11 noname.12< noname.13noname.8znoname.7 noname.14 findfile3  noname.16 noname.17: noname.15  noname.19  findfile4 P ;,|P:]P:]P ;,|P$Id: fndfil.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $P^P^Rլ ޼P`PP1MЬլzݏݬ; DECC$STRNCPYԐ;ѭ K;Pխ;ݭ DECC$STRCMPP#Pݭ; DECC$STRCPYPPѭ ;PPխPP;ݏݬ: DECC$STRNCPYĐ::ϟP :PP1PP1oݭ DECC$STRCSPNPя ЏЭݭݭ: DECC$STRNCPYЭЭH noname.20M noname.21 noname.22 noname.23 noname.24 findfile5 noname.25  noname.27P findfile6| noname.29| findfile7! noname.30M noname.28 findfile8 findfile9! noname.33 noname.34M noname.32 findfile10P@9PPϏ DECC$STRCHRPЭQQPPwA:íPPݬЭP@: DECC$STRNCPY::P:PP1PЭP@9PP]1gPЭP@:: VMS_GETENVPխ1Dݭ: DECC$STRCPY: DECC$STRLENPѭpЭP@8PP.bЭP@9PP]P޼P`PP[ЬPЭP@9 DECC$STRCPY#PЭP]@8޼P`ЭP@9 DECC$STRCPY1ЭP@9PP]R޼P`PP[&ЭP.@9ЬPЭP@: DECC$STRCPYP޼P`ЭP@: DECC$STRCPY9PЭP@# noname.366: noname.35: noname.31P noname.37logname n|P noname.38P noname.26b findfile11! noname.39c noname.40 noname.18noname.6k lenp pathlist  name w isfileisfile12isfile13 noname.44. noname.43@ noname.42 noname.45 existsp filename r c 0T  ,   \ / B  R_iobuf _cnt _ptr  @_base  `_flag h_file p_pad1 x_pad2R @R @ quot  remR @ quot  remRstat st_dev  st_ino*&Pst_mode`st_nlink st_uid st_gidst_rdev st_sizest_atimest_mtime0st_ctimeP st_fab_rfmX st_fab_rat` st_fab_fszh st_fab_mrs rcsid*&::9:fullname*&;fullpath*&>)G6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STRING<iF(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XSTRING.H;1>96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB<{(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XSTDLIB.H;19%PUBLIC$DISK:[NBEEBE.BIBCLEAN]XPWD.H;1= )j56ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1CTYPE; B'PUBLIC$DISK:[NBEEBE.BIBCLEAN]XCTYPE.H;1> i6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1UNISTD< c(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XUNISTD.H;1; 'PUBLIC$DISK:[NBEEBE.BIBCLEAN]CUSTOM.H;1<6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STAT=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO> 6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1UNIXIO>96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB> j6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1LIMITS=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO< (PUBLIC$DISK:[NBEEBE.BIBCLEAN]CONFIG.H;11;m)4'PUBLIC$DISK:[NBEEBE.BIBCLEAN]FNDFIL.C;1 { \ |] &      |  d 7 0  u |     A  }       ~   Y      }   VMS_GETENV DECC$STRLEN DECC$STRSPN DECC$STRCSPN DECC$STRCHR DECC$STRCMP DECC$STRNCPY DECC$STRCPY DECC$ACCESS $FINDFILE$CODE<$DATA9PP:ЭQQPP:A:޼P`ЭP@: DECC$STRCPY:ZP :PPDPP옽PP!PPϛݭ DECC$STRSPNPP옽PP1P^ݬ DECC$ACCESSQPQQխ@ݬGPխ.ݭ DECC$ACCESSQPQQխݭݬ DECC$STRCPYЭЭPbibclean-3.07/vms/vax/bibclean.exe0000644000156700015670000035500006142246434015761 0ustar beebebeebe0D`0205Kh66BIBCLEANV1.0`K05-13  . 0 7 Cb hop   ?$+CMA$TIS_SHR_001!! DECC$SHR_001Q! MTHRTL_001! LIBRTL_001$Id: bibclean.c,v 1.10 1996/04/26 01:15:13 beebe Exp beebe $$Id: chek.c,v 1.2 1996/04/26 01:17:05 beebe Exp beebe $Invalid checksum for CODEN %c%c%c%c%c%c in ``%%f = %%v''Invalid checksum for ISBN %s in ``%%f = %%v''Invalid checksum for ISSN %c%c%c%c-%c%c%c%c in ``%%f = %%v''KPTX\_dIncomplete CODEN %c%c%c%c%c should be %c%c%c%c%c%c in ``%%f = %%v'' $Id: do.c,v 1.5 1996/04/26 01:35:56 beebe Exp beebe $}])>'"`{[(<'"`#0>LZhr|5J`fl 3PX`w      $ * Expected Scribe close delimiter `%c' [8#%03o], but found `%c' [8#%03o] instead for field ``%%f''@%x H%xP%V%` [% `% f%L n% t% {%8%t%t%r%v%z$Id: fix.c,v 1.4 1996/04/26 01:36:27 beebe Exp beebe $$Id: fndfil.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $$Id: isbn.c,v 1.2 1995/10/07 15:50:07 beebe Exp $ (09BLX`hqz…̅օۅ",6;@FLS`hpyʆφԆچ %08@IR\fmxȇЇه  )2<FLRY`hpyˆ̈ֈ܈ &,29@HPYblv|‰ȉω؉$+8@HQZdnsx~ȊЊي  )2<FMT]fox~ċ΋Ջ  )29@HPYblv}Ȍьڌ")08@HR\fmxč΍Ս (09BIPX`jt{Ďʎю؎ (09BLV]hpxɏҏ܏!(08APX`ir|Ȑѐڐ  (/8@HQZdnuȑБّ!08@IR\fpzȒВْ!*4>EPX`ir|ȓГٓ!*4>EPX`iryȔҔ (08@HQZdnwȕЕٕ!*4@HPYblxɖҖܖ$Id: keybrd.c,v 1.3 1996/03/04 18:56:21 beebe Exp beebe $0$Id: match.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $$Id: option.c,v 1.5 1996/04/26 01:16:37 beebe Exp beebe $@BOVdx|<ųʳسPdx ,8HXo|<ȴ Pܴ d    ,4?HV\`px  4HԵ\۵p& 84Lpb x4pܶ (.E\̷շ@pܸ >uڹHp0t8}¼ļFнX̾NPf0u8x68HK H(j eH`dx78>KX8xMX d(l5z"`24F $f1n8vx> 8:Td0HPhjPN^,p "3r4rtHXW"dtv HA<HI4x (8|?CXZc8l8j8^`ip|~$Id: romtol.c,v 1.1 1995/10/07 15:51:44 beebe Exp beebe $8 2d$Id: strist.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $$Id: vaxvms.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $d$Id: vmswild.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $8SYS$INPUT:SYS$OUTPUT:HPX\hltx $(04<@HLTX`dlpx| &.8@HLX`hqx~UNKNOWNABBREVATCOMMACOMMENTENTRYEQUALSFIELDINCLUDEINLINEKEYLBRACELITERALNEWLINEPREAMBLERBRACESHARPSPACESTRINGVALUEchaptermonthnumberpagesvolumeyear%s "%s", line %ld: %s. ???? ?? . ??%s %s ??Out of memory for pattern tables"#%'(),={}BIBCLEANINIBIBCLEANINIbibclean.inistdoutSYS$SYSTEMBIBINPUTS@# line "" %ld input byte=%ld line=%ld column=%2ld output byte=%ld line=%ld column=%2ld File positions: input [] output [] Entry Value Current\%03oUnexpected paragraph break for field ``%f''Pushback buffer overflow: characters lostOut of string memory%s open file [%s]%s %%: FAILED%s%s "%s", line %ld: %s. %%%%^ݬ4Pŭ Q޼PA`P`1ŭ QЬPAPѭ`Эŭ QЬPAP`ݭŭ Q޼PA`P`ݬPŭ QЬPAP`P`%PPŭ Q޼PA`P`1wP^\Ь PQAPՠ@7\\@\\@Р@\LD\\  С   \\ P^Rբ@&Т@\LC\\ բ@Т@\LC\\ ^RТ@\LDТ@խ-Э\LC\\ P\\խЭ\LC\\ խoЭ\LD\\ aЭ\LDZ2\lD1E2\l 1Э\LE2P@ݢ@Э\LEDO բ@1\lD~1@1\le1^Pՠ@Р@\LC\\ЏPP^Q@PPPѭ@ЭP@DPP PЏPP ^SFRѢ@ nѬ P $PP$  PP PPТ@QQPP@AD^W6XVH RRH -((BP ݬPݭݧ#nQh/]hϚh/Ie0Rb07Q0Rb'=0Rbݭ*0Rb 0Rb 0Rb ^ݬ*+/ݏ=/^5W.V'U TSЭR޼PB`RR1ЭP޼Q@aPP%1\PPЭP޼Q@aQQ%1Q%1Qe1QPPe4 x P?P1d.PPP+ݏݬè .ç0è PP1/PdЭP@è t.PP1Peb.PPP+ݏݬè D.ç0è PP1PeЭP@è .PP1Pf-PPP+ݏݬè -ç0è PP1WPfЭP@è -PP1Pg-PPP+ݏݬè l-ç0è PP1PgЭP@è 0-PP<ЭQQPP%Aè (ݏݬè  -ç0è PP1VPѭ*ݏݬè ,ç0è PPWPЭRRPPЭP޼Q@aBè PPPЭP޼Q@aPP1 ЭRBè è RRPP^޼P`޼P`+޼P`ЬPՠЬPݠ+ЬP^լݬݬ+P^լaЬPѭ,P޼QЭPޱQ@agPPЬPѭ޼P`޼P`)+ЬPЬP^RЭ\~Lb\lOЭ\~L\lCЭ\~Lb\l*Э\~Lb\lЭ\~L\l\\Э\~Lb\l< ^S*UTRx x \\x x \L€ *P\\ѭ X1ѭ \\У  eeP*P\ʏ\L`\ʏ\\У  \\ e\\e*ѭ У  \\\ PУ  \\ ѭ{ d\\dPѭ}d\\dЭP^Pѭ1)P\ʏ\L`\ʏ\\dPѭ  ѭ  PjPbP\\aPѭ!)P\ʏ\L`\ʏ\\ݭխ PP^STRP1&PP1P1dPѭ1(P\ʏ\L`\ʏ\\1ѭ  ѭ $BPbc 1P\\%bc ЭkP\\PPѭ$(P\ʏ\L`\ʏ\\1sѭխdPdЭPP^Rѭd1Э\~Lb\l1Э\~Lb\lVЭ\~Lb\Pl &Э\~L\PlЭ\~L\l ]pЭ\~L\޼\lЭ\~L\l\Э\~L\l\\\ѭdЭ\~Lb\l1b^MJ&QPʏP@aPʏPPѬ.Ѭ#Ѭ& Ѭ%ЭDP&QPʏP@aPʏPPݬϝO&PЭP^&S TIR P^ST'Rݬ߬3P%%P!%P PPd%P`޼P`PPcPPݬݬ[2%ݭPIϾ%ݭPIݬݬdd ЏHdЏdݬݬFeH  Џݭi$H  ЏPխ ݭ@$P^ЬЬѭZ PѭPN PPP PPPլ ,PЭRRPPЭQQPPab RR լ 2լ ,PЭQQRRЭPPRR`a RR լ P^Ьլ ЭQQPPa PP լ ЬPP^4P^=RЬPP'P 1P.PP 1 ϳ1H#1@k18ϋPU#QPʏP@aPʏPP1PZP$#QPʏP@aPʏPPݭ\PѬ<Ѭ 6Ѭ%  φ&PPݭ&PѬѬ 1PPѬ Ѭ FϹPѬ Ѭ  !GP1Ѭ +*QPQТ ݏ\ ݬP^!"PѬ`ݬݬݬ!^ݏ)ݏP^6sЬPݠϾ%Z޼P`L@P^RѬ 1#dЭP޼Q@aPPPЭP޼Q@aЭP޼Q@a:ݬЭP޼Q@a  ЭP޼Q@a P PPbPѭP ЭP޼Q@arPbݬbPPݭݬPѭFѭ bPPPPխPѭ PP PPP1$aDPЭP޼Q@a0PݬЭP޼Q@aPPЭP޼Q@aP^π P^ݬf;P^ݬݬϕЬ Pݠ Ь PݠЬ Pݠ ݬ`Ь Pݠ Ь Pݠ$Ь Pݠݬ+P<^UR TS޼P`PP1޼P`QQPPv6 P?P1e'PPf PQ PQPPd P޼P`PPv  c nQ c0TЬPPP PPPЬPPP ޼P`PPkPP޼P`PP1P^5լ 2PPլP^R1ݬݬϏ~ݬρP ݬs~ݬed ݬWnݬIݬݬ<Pݬݬݬ8ݬ]ݬݬP "ݬ=^ ݬGݬ(ݬdPݬݬ ^qSR޼P`PP1P¨0cϘУ¨0ݬe ЬP@S z"p޼P`PP1P޼P`QQ1QPP~z>zzzzzzzzzzzzzzzzzZ P?PP\1,P\1 ݏ\޼P`PP1fPݏ\ݏb1Eݏ\ݏf1%ݏ\~ݏnp1ݏ\^ݏrP1ݏ\>ݏt01ݏ\ݏv1ݏ\ݏnݏ\ݏnjPQ޼P`PʏP@aPʏhPP޼P`PP-޼P`PʏPPTPPP޼P`PP1"G =^޼P`PP`޼P`PPP% ,  P޼P`PPPP޼P`PPP^ݬ$ݬyP^rݬP^S慎T3Rx j1x QQPPx ЬA€ PPQPʏP@aPʏPPPPѬ E4PѬ У PPPѬ  У  P PP Ѭ{ dPPdѬ}dPPdP^Dﶆ ^ݬPPPխ χ"ݬݭPP ^޼P`PP1VQ޼P`PʏP@aPʏPP޼P`PPdP P޼P`PPQ޼P`PʏP@aPʏPP޼P`PPP P޼P`PPѭ1PPPPP޼P`PP1Q޼P`PʏP@aPʏPP޼P`PPP ޼P`PPQ޼P`PʏP@aPʏPP޼P`PP`P P޼P`PPѭ1GQ޼P`PʏP@aPʏPP޼P`PPP ޼P`PP;Q޼P`PʏP@aPʏPP޼P`PPP P޼P`PPíPPP^լ 1(޼P`PP1޼P`PP1 PQ޼P`PʏP@aPʏPP޼P`PPP޼P`PP3PˏPP\Q޼P`PʏP@aPʏPP޼P`PP޼P`PPPˏPPѭЏ1Pѭ {PPPPP PP լ ޼P`PP޼P`PP1լ  42P޼P`PP޼P`PPЏ PP^ݬݬPN<խPP PPPݭݬϺϠjkЭP^WBXV<t((WP  RR vRRݬPݧ Vݭ0hAhϓh^ЭP޼Q@aPPHPBRЭP޼Q@aPʏP@bRʏRRRRЭR޼PB`RRЭR޼PB`RR RRЭP^??????????JrJr.SrSr.SJS.J.S. J.IVXUnexpected citation key ``%k''String length exceeds standard BibTeX limit for ``%f'' entrySuspicious year in ``%f = %v''Non-zero parenthesis level in ``%f = %v''Unexpected value in ``%f = %v''??????9ABCDEFGHIJKLMNOPQRSTUVWXYZ23456789ABCDEFGHIJKLMNOPQRSTUVWXYZ2345678??????????????????^-RЬPPP? ЬPPPЬPPP?PЬPPPЬPPP?PЬPPPЬPPP?PЬPPPЬPPP?PЬPPPЬPPP?PЬPPPݭݭݭݭݭݭ8b^,RώЬPPѭЭݭЬP~r7P^t+RЬPPP? ЬPPPЬPPP?PЬPPPЬPPP?PЬPPPЬPPP?PЬPPPЬPPP?PЬPPPЬPPP?PЬPPPЬPPP?PЬPPPЬPPP?PЬPPPݭݭݭݭݭݭݭݭ  ^PP P^' \\ϟ\\ P^u\l\ \\ \м\ \\ ѭ˭C>\\\\\\\\Э\~L︽\lTPPw P^(žPPK P^Э\~L\lhPЭ\~Lj\l[P+ĨЭ\~LM\lVPP\\Э\~L\lP^xPPϛP ^ЬPѭ1޼PЭQްP~A`P`ݬPq޼PЭQ`P~AP`W޼PЭQ`P~APްP`PP?!޼PЭQ`P~AP`PP[޼PЭQ`P~AP`20PPЬPѭ1UЬPՠPPP^hPPϋP^<P1P_\\\\qP\ʏ\L`\ʏ\\? ߭ݭQPѭ ѭ3 5Э P\\\\P^яa!ѬzÏaPPPecPяAѬZÏAPPP:81Ѭ91PPPѬ0 $PЏPP ^ѭ~PѭPsЭP޼ Q@aPP-FERЭP޼ Q@aPʏP@bRʏRRЭQQRR޼SЭR޼ PB`AcRRѭ RѭRЭR޼SBcЭR޼ SBcRR-)PЭR޼ SBcRʏRB`RʏRRCRRЭR޼ SBcRR-PЭR޼ SBcRʏRB`RʏRRíRRP^!RЬPPPЬPPPЬPPPЬPPPЬPPPЬPPPЬPPPЬPPPЬPPPЬPPPЬPPP P^Q!QլDDѬ- 1uD5oRˏP@bPʏPPDPPDE;PD13RˏP@bPʏPPDPPD PP^ QլHH0Ѭ-RˏP@bPʏPP 11H 5RˏP@bPʏPPHPPHYOPH EcRˏP@bPʏPPѬX ѬxHPPH PP^QլLL0Ѭ-RˏP@bPʏPP 11L5RˏP@bPʏPPLPPLYOPLERˏP@bPʏPPѬX ѬxLPPL PP^ЬЬխݭݭЬ P`PP^ЬQЬPРЬPްP`PPiݭЬPްP`PP޼P`P`PHPPPЬQPPЬPްP`PP!ݭЬPްP`PP޼P`P`PЬRЬQЬPàPP P ^ЬQЬPРЬPްP`PP1ݭЬPްP`PP޼P`P`Pխ1ЬPްP`PP( PP#ЬPްP`PP)PPխPPЬQPPЬPްP`PP+ݭЬPްP`PP޼P`P`P1zխ1rЬRЬQЬPàPP խ 6CP^N/P ^SSݬݬ|PЭRBRRzPѭ*ЭP@PPϱPRЭP@PRRR3Pѭ+zP{"PQPPRBRЭP@PRP PPЭP@PP>P!zP{"PQPPRBϨ Pխ Ϻ$^ϓݬݬ oPЭP@PP1Pѭ JЭP@PPXЭP@PPx ЭP@P0PPŭPPP]ѭ WЭP@PPXЭP@PPx ЭP@P0PPzP{ PQPPRR RRЭRBRR1:P խ όP$^nݬݬ ?PЭP@PP1PѭNЭP@PPXЭP@PPx ЭP@P0PPPĭPPP^ѭWЭP@PPXЭP@PPx ЭP@P0PPzP{ PQPPRR RRЭRBRR16Pխ JanuaryjanFebruaryfebMarchmarAprilaprMaymayJunejunJulyjulAugustaugSeptembersepOctoberoctNovembernovDecemberdecJan.janFeb.febMar.marApr.aprJun.junJul.julAug.augSep.sepSept.sepOct.octNov.novDec.decJanjanFebfebMarmarApraprJunjunJuljulAugaugSepsepSeptsepOctoctNovnovDecdec%s Out of memory for pattern name [%s] -- pattern ignored %%Out of memory for pattern tables # Value too long for field ``%f''@ begins line, but brace level is not zero after entry ``@%e{%k,''Expected @name{...} after entry ``@%e{%k,''IncludePreambleString## # # Non-zero brace level after @name{...} processed. Last key = ``%k''Expected closing brace or parenthesis in entry ``@%e{%k,''Non-zero brace level after @name{...} processed. Last entry = ``@%e{%k,''Expected comma after last field ``%f''DeathesisDEAthesisInbookInBookIncollectionInCollectionInproceedingsInProceedingsMastersthesisMastersThesisPhdthesisPhdThesisTechreportTechReportNon-alphabetic character begins an entry name@entry_name too longIncludePreambleStringExpected "=" after field ``%f''BIBCLEANEXTBIBCLEANEXT.iniansi-standard-numberANSI-standard-numbercodenCODENieee-standard-numberIEEE-standard-numberisbnISBNiso-standard-numberISO-standard-numberissnISSNlccnLCCNmrclassMRclassmrnumberMRnumberuriURIurlURLurnURNxxansi-standard-numberxxANSI-standard-numberxxcodenxxCODENxxieee-standard-numberxxIEEE-standard-numberxxisbnxxISBNxxiso-standard-numberxxISO-standard-numberxxissnxxISSNxxmrclassxxMRclassxxmrnumberxxMRnumberxxurixxURIxxurixxURIxxurlxxURLxxurnxxURNEntry field name too longNon-alphabetic character begins a field nameoptOPTstdin-stdinr %s Ignoring open failure on file [%s] ??perror() says@ begins line, but brace level is not zero after entry ``@%e{%k,''Expected open brace or parenthesis. Last entry = ``@%e{%k,''Braced literal string too long for entry ``%e''rCitation key too long=: %s Bad line [%s] in initialization file [%s] ??Non-zero brace level at end-of-fileExpected open brace or parenthesis. Last entry = ``@%e{%k,''"comment"@Comment{end"Comment"CommentBeginStringExpected Scribe open delimiter, one of { [ ( < ' " ` for field ``%f''Expected Scribe separator "=", "/", or " " for field ``%f'' Out of memory for pattern table spaceBibTeX string too long for field ``%f''Unexpected quote usage in German-style braced stringEnd-of-file in braced stringBibTeX string too long for field ``%f''BibTeX string too long for field ``%f''BibTeX string too long for field ``%f''End-of-file in quoted stringExpected Scribe value string for field ``%f''Scribe string too long for field ``%f''Scribe number string too long for field ``%f''Expected BibTeX value string for field ``%f''%s Bad line [%s] in initialization file [%s] ??},={authorchapterCODENISBNISSNmonthnumberpagesvolumeyearauthoreditormonthpagestitle""OPT"" file=[%s] field=[%-12s] existing patterns discarded file=[%s] field=[%-12s] pattern=[%s] file=[%s] field=[%-12s] pattern=[%s] message[%s] ^ϖݬ Pݬ1?ЬQЬPѡ ݬ'ЬPѭ1P޼PЭQްP~A`P`ݬ "P~޼PЭQ`P~AP`*լ%޼PЭQ`P~AP`ݬP1޼P`QЭP~@RլЬbݬPbݬݬ ݬD1PRRЬRѭ1Iݬ fPQ޼SЬRТP޳R~@bRQbЬSУPPRR޼RbR~@RլЬbݬPbݬݬ ݬYD^ЭP~@DP``PݬЭP~@-P`P&ݬ ݬݬЭP~@ P`.1PPPЭP~@P`ѭc!ݬϘ1PݬUPQЭP~@PQ` PQЭP~@PQ`ЭP~@tP` u_ЭP~@XP`P`ЭP~@FP`PЭP~@3P`Pݬ ݬݬЭP~@P`7ЭP~@P`ЭP~@P` ^LPݬPPPݬЭP@d3P&ݬ@ϫϞP<^((дP((ﹴ&?ѭ@5[RRv[+m[^X[(Pѭݭvp6^<Y &1K」ݏ{ﵣ1P;Z)P τ1#Z P 1 ZP "1k-ݏ,%1P;J vP#^P  P0Ϣ̢ -PϦ P梨PϿ#^q P<^((גּϲC8P3rÿPѭ#s陵,Pzϯ Pϣ7PPPѭ#ݭ+><^((ϊ7PЈ!ÈRR" P煮ݭρ־Pѭ#1:6PC6RR"PݭJPѭ#1uݭ"^$Pѭ`^PѭW6ѭ)W\\W9WݭAA;hP<^((hPѭ1Pѭ,8 }91PѭWvѭ)VRRVV9ѭ)VRRVݭ ז 91PݭuϱϫPݭU|<^ \((qOPѭ1mݭP1[Pխ-SRʏRBcRʏRR խ5sSRʏRBcRʏRRݭ P8Pխ09SRʏRBcRʏRRݭP7﹕.ЭRBuURBhUaUv1Pѭ2ЭRB=URB0Uk$U1nPЭRB URR?PѭݭVP1ЭRBTѭ ݭѭGЭR~BPRbTPЭR~BTRbTRRѭYT~1Pϟ@TP.TkP{TaPT?PXS5PSPSݭP<^((郎Ǭ((ȹPѭ,ѭ= 7PݭϿ@jRR^լ1PЬ޼P`PP1޼P`PP\1PP޼P`QQ01QPP0PPPPPPP?PPa1XPa<PPPPdPPPPPPPxPPPPP PB?P1ЭQQPPa1PЭQQPPa1PЭQQPP a1PЭQQPP a1PЭQQPP a1PЭQQPP a1PЭQQPP a1PVQЬPPʏP@aPʏPPЬPPPPPЬPPPѭxЭRRPPݭ߭ݬPbRRЭPPRR޼Rb`PPЭPPRR޼Rb`RR޼RbRR1 ^Ϛ/PϖP ϐPP.ݬ=PvݬPRݭPRRRPխDݬݭ.ݭݭPݭbݭCP<^\((Eh((9ePѭ1ݭyP1Pѭ2ЭRB_RB_σ_1v2խ-1SRʏRBcRʏRR _ﴏ2SRʏRBcRʏRRݭPЭЭRBB_PRRѭݭP1ѭ ݭ1ЭRB^1ѭKЭR~B̈Rb^PЭR~B̌Rb^RRѭ^zPkh^խϓ2ݭXP^R>1  ^\\|8  P; ܍ CPϫ  ϑPi 懶  PPP ^ЬЬPՠ!iPPiP`&1PЭP޼Q@a19ЭP޼Q@atP PPP`1PЭP޼Q@aPխ3ЭP޼Q@aGѭЭP޼Q@aA jݭAݭbPPЭP޼Q@a1<^ RR ݔ1ݏٹπҔ1 ݏﺹ7Pѭ1PK"K)ѭKKЏ}/ѭ@ "K"ѭ}ݏ6ϩ-Pݭ!KKPPѭ1\1<((9iPѭ{Џ}KNPѭ()JJRRJ.PЭRݭ 奔VM1P{ѭ1PPѭ'ZЭRBݭ HmPЭSSRRCѭFJѭ)/JRR'J!Jѭ1{R}BЭRBݭ پ ^ݬݬtEP1PPխ1ݭPխ1PQPʏP@aPʏPP-PPPQPʏP@aPʏPP֘PPP ݭc ݭ_ݭvPխ1vݭP< ^((K,Pѭ1ѭ,1DSRʏRBcRʏRR1Pѭ2ЭRBhRBhρxhi1PЭRB_hPRRѭ*ѭ,$SRʏRBcRʏRR1oЭRB hѭ ݭ*Gjg Eݭ^Ь߭ݭϐ'Pխ1խ1QPʏP@aPʏPPQPʏP@aPʏPP-PPPQPʏP@aPʏPPѭPP= PP:17PP= PP: PP^QPʏP@aPʏPP-PPP1QPʏP@aPʏPP֘PP"1Ϩ߭ݭ`&Pխ1QPʏP@aPʏPP-PPPQPʏP@aPʏPP֘PP")8߭ݭ%Pݭݭ/Z'PPP PP%ݭݭ2ݬݏP^ЫPѭ JlE ߶6 öz臨 ݭa^Ь; 'Ϸ& ,Pﶍϟ݄}ݏ| r/D #P^̪Pѭ`^Pѭ{Џ}WD(@ѭ()CD5D\\,D(ݭϦϟP ^POP\\PP H?P1ݭPݭݭ\\N\L\LݭGPݭPj} ݭPP1P ^ROP\\PP hHhhhh?PjP8\\8\\ͺNP8\\8\\ﭺ .PJAݭ öЭ+P15P^\\RPѭ1+ѭ@lݭ1 Pѭ&Э\L\Lݭa&1Pѭ "Э\Lݭ@&1PP\ʏ\L`\ʏ\\cP\ʏ\L`\ʏ\\ЭPP\\@*PЭ\Lݭ%ЭPP\\@PЭPP\\@'Pѭ1Э\Lݭp%ЭP^Ѐŀ^z<ݏ;4%PKϒ P3Z^ϖPݭ﮹P1[խPݏ­\\խϹ%Pѭ1 ѭ@1ѭ@-ѭ{1ЭPP{b?P1ɥPᆬPﳥP6P;ϮPݭƸP i!xݭK&B& 7&%\\խώ# \\ݭPѭ1 Pݭ%P^@RP ~1ѭ11ѭT>ѭ)=>\\5>x 1ݭP\ʏ\L`\ʏh\\Э?ˏ\\ݭˏ=\\=Hϧﶵ ^ϖ=g1٣Pѭsѭw=iѭ{\\)Pѭ}\\խ!\\ݭpPѭ ѭ=խP?\\խ,P^ϖ  |1_ϯqݏp/i12P<P 1 gp<P 1MP<P ϔ1ݏϯل1P;;ﱄ{rfPϳ~P0ϣJt {5PσNPOPgЭo;ϾϹ ^RPѭWUPݭHPխ ݭPH\\\L@\\:ϊ<^}\((լ8P;!zﰲlPѭHѭ=ѭ/ 5ѭݭݭ ϐχ4^ RR<^(( CnPjUﻂ yi PP^}B߬ݬϕP1߬ݬPխݭ便<^9RR((eﰒPѭ1SRʏRBcRʏRR1ѭ 1Pѭ{ЭRBݭﻭVyݭ?PxxݭӪxx ݭﳪЭSSRRCﮞPѭ*SRʏRBcRʏRR ѭ 1*ЭRBӀݭVNxݭ(?Px)xݭwx ݭݭP^ww^r4ݏ3,7PCP$'NPP^ЬPՠݏPQ޼PQ`'ЬPPPP޼P`PQ޼PQ`޼P` ZUЬQPPP^v.՞Pݭ®ѭ^vR+\\~vP1P{a#ݭ0ݭ Э1ݭ ((y%zѭ{JP11*SRʏRBcRʏRRϺPdbPѭ"9POMSRʏRBcRʏRRϢP Pϓύ'ЭP^ЬխKQPʏP@aPʏPP*PPYQPʏP@aPʏPPխPP PP% 18PP"1PPЭPP:PP"1PP\ PPPPPP PP"ИPP"ЭQQPPaݭ2=_ݬľϑwٯݏ1ЭPPOPP%FPPݬ P0PPPPPP%PPݬ PИPP PP%ЭQQPPa޼PЭ`ЭPP30m^cf$.>NP^޼P`ЬPPЬPЬPЬP ЬP^v$P^w|wQЭew^yM\\\\1ݭPխ=\\"PݭݭݭP$1\\"ݭݭ]ݭBP\\ݭPխݭPݭ ݭP\\\\1P^ e1y\\ =a^\q\=܉BP Ή'uu\\\\= Pϋ^id&[[+ヘ&[u+ݭF^ ďP^cݬc_Q޼P`PʏP@aPʏPPݬޏ*޼P`PP%ݬ ݬ ﲏ^aR/Z1@Z15@**w5ϬJҫP¸)n*wPTc1lA*P1,*PpJrP]ݏᅦ)QPPP)) ars\\#9Y/ʹIPݏBYP^b1լ ޼P`PP#ݬhYj r UPլ 'ݬݬ2^ \L>\\1P\L>\\-1+cP\L\ʏ\L`\ʏ\\:\\)͟P\L\ʏ\L`\ʏ\\\L!>\\-!P\\\L>\\-pP\L=\ʏ\L`\ʏ\\9P\\7P\L=\ʏ\L`\ʏ\\PP\\-@P\ʏ\L`\ʏ\\.֞P\LL=\ʏ\L`\ʏ\\1P\ʏ\L`\ʏ\\+P\L<\ʏ\L`\ʏ\\`[P\ʏ\L`\ʏ\\+9P\L<\ʏ\L`\ʏ\\\L<\\?PP\\-@ZPPP\\\LR<@ĝP\L;<\ʏ\L`\ʏ\\\L<\\\L;\\1J\L;0P^TPPKЬ1ЭRЭP޼Q@aBЭR޼PB`RR1PЭR޼PB`RR./R{R}1PRR1RRuխkխfQR޼PB`RʏRBaRʏRR<QR޼PB`RʏRBaRʏRRRRЭR BPRRRR1PЭP ^iS\\:\\"1Э\Lm:\\14Э\LY:\\{ \}2`\\ЭQQ\\ЭPP\\@:A1P\\ЭQQ\\ЭPP\\@9A1Pխ1|NPЭ\L9\ʏ\L`\ʏ\\1"P\L9\ʏ\L`\ʏ\\*P\Lo9\ʏ\L`\ʏ\\ZPƚP\L=9\ʏ\L`\ʏ\\*ѭЭ\L9\\AP1Э\L8\\\1|\\EPЭ\L8\ʏ\L`\ʏ\\fPPЭ\L8\ʏ\L`\ʏ\\ \\\\ߙPЭ\LW8\ʏ\L`\ʏ\\\ѭ\1խ1ЭPP\\{@ѭ*ЭQQ\\ЭPP\\@7AѭЭPP\\}@Э\L7\\{$\L7\\}\\3PЭ\L7\\\\L{7\\  \\1%Pխ1ЭPP\\{@PЭ\L07\ʏ\L`\ʏ\\)PЭ\L7\ʏ\L`\ʏ\\tЭQQ\\ЭPP\\@6ADPЭ\L6\ʏ\L`\ʏ\\PЭ\L6\ʏ\L`\ʏ\\ЭPP\\}@"ЭQQ\\ЭPP\\@I6AЭ\L96\\1Э\Lݭ)ݭ6cFω^QլЬ@8<޼Rb@@1@RR1@PP"P{)P}0>P8<<<%8PP8P8PP8PP<=ǖR@PʏP@bPʏPPЬRbPPb@PP@OP@PP.ЬRbPPb@PP@<(޼P`ЬRbPPb@PP@PP@ @PP1޼RbЭЭP ;,|:]:] ;,|^P^Rլ ޼P`PP1MЬլzݏݬ;;ѭ K;Pխ;ݭRP#Pݭ;<PPѭ ;PPխPP;ݏݬ:::ϟP :PP1PP1oݭĔPя ЏЭݭݭ:ЭЭP@9PPϏkPЭQQPPwA:íPPݬЭP@:P::P:PP1PЭP@9PP]1gPЭP@::zPխ1Dݭ:Փ:ғPѭpЭP@8PP.bЭP@9PP]P޼P`PP[ЬPЭP@9x#PЭP]@8޼P`ЭP@9S1ЭP@9PP]R޼P`PP[&ЭP.@9ЬPЭP@: P޼P`ЭP@:9PЭP@9PP:ЭQQPP:A:޼P`ЭP@::ZP :PPDPP옽PP!PPϛݭPP옽PP1P^ݬёQPQQխ@ݬGPխ.ݭQPQQխݭݬЭЭP0-000-190-2000-6980-70000-84990-850000-899970-9000000-9499990-95000000-98012231-550001-869571-8698001-8956822-012-192-2002-6072-70002-83172-840012-894362-9000002-9400282-95000002-99000033-013-193-2013-6333-70013-82523-850013-895243-9000013-9290313-95000003-98029644-004-194-2504-6574-75004-84704-870004-898294-9000004-9499995-015-125-2005-6905-70005-83965-850015-899965-9001655-9008507-007-047-1007-3147-50007-56397-800007-810357-9000007-90000080-0080-0980-20080-23680-700080-715180-8500080-8552980-90007580-90108181-20081-64881-700081-726681-8500081-8569081-90000081-90021182-40082-59982-700082-766182-9000082-9176982-99000082-99251783-0083-1183-20083-23383-700083-708083-8500083-8554183-90000083-90048284-0084-0784-20084-69984-700084-842084-8500084-8960085-0085-1785-20085-34185-700085-726185-8500085-8545785-90000085-90005186-0386-2786-30186-45586-700186-786186-8000186-8204586-90094186-90128987-0087-2087-41187-61187-700087-779987-8500187-8979687-98000087-99720288-0088-1988-20088-46188-700088-840288-8178588-8606589-089-090-0090-1890-20090-44990-500090-699990-7000090-7431990-80000090-80086891-091-191-2091-4891-50091-63291-700091-799891-8500291-8835691-97000091-99208392-092-592-6192-7792-80092-89192-900192-911793-093-0950-00950-47950-500950-795950-9000950-9899950-99000950-99949951-0951-1951-20951-54951-550951-889951-8900951-9498951-95000951-96448952-90952-90952-6666952-6666952-9500952-9714954-0954-0955-20955-28955-550955-616955-9000955-9151955-95000955-95444956-10956-19956-200956-266956-7000956-7205957-05957-43957-500957-685957-8500957-9699958-02958-32958-600958-656958-9000958-9285958-95001958-95343959-00959-13959-200959-216959-7000959-7033960-00960-12960-200960-433960-7000960-8499960-85000960-85203962-00962-19962-201962-474962-7001962-7646963-00963-18963-200963-892963-700963-8481963-85000963-85084965-01965-19965-207965-442967-60967-89967-900967-989967-9900967-9989967-99901967-99999968-10968-39968-400968-899968-6000968-7275969-0969-1969-26969-39969-400969-473969-8000969-8159970-05970-10970-604970-619970-91000970-91074971-06971-36971-500971-631971-8500971-8819971-91000971-91273972-0972-1972-20972-50972-550972-722972-8004972-9499972-95000972-97520973-21973-49973-550973-682973-9000973-9134973-95000973-95521974-00974-10974-200974-685974-7000974-8499974-85000974-88000975-09975-19975-345975-554975-7402975-7797975-95384975-96606976-40976-42976-600976-636976-8000976-8105977-01977-17977-200977-457977-5000977-5235978-000978-199978-2000978-2887978-30000978-31118979-400979-557979-8000979-8322980-00980-07980-200980-316980-6001980-6303981-00981-03981-200981-215981-3000981-3099982-01982-03982-100982-500983-60983-73983-800983-899983-9000983-9750983-99382983-99747984-01984-30984-400984-556984-8005984-8085987-0987-09963-09963-19963-309963-449963-5509963-5999963-75009963-78469964-09964-69964-709964-949964-9509964-9909966-209966-499966-8309966-8829966-98409966-98749968-97029968-97039971-09971-49971-609971-899971-9009971-9899971-99009971-99249973-109973-189973-7009973-9259973-97009973-99189974-09974-09974-309974-369974-5509974-5809974-75009974-75059976-19976-59976-609976-849976-9009976-9889976-99909976-99929977-009977-899977-9009977-9899977-99009977-99999978-579978-999978-9519978-9719978-99049978-99109979-19979-49979-509979-579979-8009979-8279979-90009979-90679980-09980-19980-549980-849980-9009980-9159981-09981-09982-009982-309982-8009982-8159982-99009982-99009983-859983-879983-99009983-99019987-309987-309987-5509987-5839987-88009987-88239988-09988-099903-099903-099904-099904-499904-6099904-6599904-90099904-91799908-1199908-2999908-90099908-90099911-0099911-3299911-60099911-86099912-099912-599912-6099912-7999912-90099912-90099913-099913-099914-099914-499914-5099914-5899914-90099914-92799915-099915-399915-5099915-7899915-80099915-83099916-199916-199916-3099916-3599916-70099916-70499920-099920-299920-5099920-5599920-90099920-904 ^޼P`PP1v޼P`PP1Q޼P`PʏP@aPʏPPz޼P`PPXj޼P`PPxZPPP޼P`PPDQ޼P`PʏP@aPʏPP ޼P`PPX޼P`PPxЬ޼P`PP16Q޼P`PʏP@aPʏPP ޼P`PPX޼P`PPx(PPѭ ޼QPPaЭZP"P޼P`PP  ޼P`PP-PPPP޼P`PP1]޼P`PP1޼P`PP ^RЭP~@8P`YPЭP~@ݬyPRݭyPRR 1ݭݬyЭ5PݬyPP 1ݭݬvyRRЭ߭ݭ_Pխ1'ݬ@yPRݭ2yPRR !Pݭݬyݬݬx4^ݬ{ݬoxPxP Џ<ݬ 8xPxP PP^PPѬ1޼P`PP1hxQ޼P`PʏP@aPʏPPz޼P`PPXj޼P`PPxZPPP޼P`PPDxQ޼P`PʏP@aPʏPP ޼P`PPX޼P`PPx޼Q޼P`a޼P`PPPPPPѬ1 More? f)orward b)ackward d)own e)nd q)uit r)efresh t)op u)p \/)search More? f)orward b)ackward d)own e)nd q)uit r)efresh t)op u)p \/)search Search backward: Search forward: Search backward: TT:^ݬIvݬ6v ^ݬ#vݬvPЭPP%Yiu-y ?P1Q PPQQQ PPQQ1P¬ PP1Џ1PP1ݬϗpu1Џ1P¬ PP P¬ PP1p1iP¬ PP1XPP,PѬP,PPPPЬP޼Q@aAЬP޼Q@aP`PP -PPPЬP޼Q@aЬP޼Q@aP`PP ЬP޼Q@a Џ PPP1PP0,PѬP",PPPPլRЬP޼Q@aEЬP޼Q@aP`PP 1PPPլ!ЬP޼Q@aЬP޼Q@aP`PP PP2Pݬݬ ݬݭݬ PPݬ{1P ^RЬ Ѭ  PP PPPݬݭsݬys]Pխѭ ѭ ѭ 11ѭ ѭ(ݬ խ PPЭP@@1wPѭݭݬЭP@@1RѭRݭݬѭ)PݬЭP@@PPrPPѭݬr1Pѭ1PPխ}rQЭP@@PʏP@aPʏPPѭ PPErQЭP@@PʏP@aPʏPPݬPPխխЭP@@ݬqBѭO.ЭQQPPA@ݬݭqݬq ݬK1(խ ЭP@@6ݬ@qݬ wqݬ iqݬVqݬ PqqPS@qPSSխPݬ qPPխݬ pݬpѬ ì PP  ì PP  PP լ ]Ь P޼S@cP@Ь P޼Q@aRP2Ѭ  PP  P PP լ  Ь P޼Q@aլ  Ь P޼S@c,ݬS¬SS PS¬SS Ь P^լ:Pݬoݬ oݬoPPլݬo^P2\\ 2\\PPP^\ ̴#̔  ^0Pѭ Џ Э\LaP ^aR߭˜” P\ʏ\\ Џˏ\\P<^\ϫ̠̔PP̐̐RʏRR~ ̴'̔ ( ̴̨ˏ̬RR̬ ̨#̔ Џz̘^\ݏlJ̈X̐8̘̔̀4(X̠  lD̸H0P H p L ̼  T @ l t   !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~^PPϊP޼P`PP1W޼P`QQPP WjjJ~>?P1J lQ޼P`PʏP@aPʏPP1uݬsP14kQ޼P`PʏP@aPʏPP19kQ޼P`PʏP@aPʏPP1ݬPqkQ޼P`PʏP@aPʏPP1JkQ޼P`PʏP@aPʏPP1ݬϳP1tkQ޼P`PʏP@aPʏPP1yjQ޼P`PʏP@aPʏPP1ݬSPjQ޼P`PʏP@aPʏPP1޼P`PPKP1ݬP1޼P`PPKP1޼P`PPsKP%PݬϿP޼P`PPNKP1kPjQ޼P`PʏP@aPʏPP1miQ޼P`PʏP@aPʏPP1ݬGPiQ޼P`PʏP@aPʏPP1~iQ޼P`PʏP@aPʏPP1RiQ޼P`PʏP@aPʏPP1ݬP!iQ޼P`PʏP@aPʏPPhQ޼P`PʏP@aPʏPP1hQ޼P`PʏP@aPʏPP1ݬGPhQ޼P`PʏP@aPʏPPhQ޼P`PʏP@aPʏPP4PݬPMhQ޼P`PʏP@aPʏPP1)1"hQ޼P`PʏP@aPʏPP1gQ޼P`PʏP@aPʏPP1ݬgPgQ޼P`PʏP@aPʏPP޼P`PP4egP1P޼P`PP'FgP)PݬP޼P`PPgP?gQ޼P`PʏP@aPʏPP2ݬϯP gQ޼P`PʏP@aPʏPP1E1IfQ޼P`PʏP@aPʏPP1MfQ޼P`PʏP@aPʏPP1ݬ'PfQ޼P`PʏP@aPʏPP1޼P`PP"fP 1P1޼P`PPeP 1P޼P`PPeP)PݬϋP޼P`PPeP3PPP޼P`Q޼P`PQP>Pݬ w%s cannot open error log file [%s]%% -- using stderr instead perror() says Usage: [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]align-equals ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile Command-line switches may be abbreviated to a unique leading prefix, and letter case is not significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag to no. For such options, the last setting determines the flag value used. This is significant when options are also specified in initialization files (see the INITIALIZATION FILES manual section). -author Display an author credit on the standard error unit, stderr. Sometimes an executable program is separated from its documentation and source code; this option provides a way to recover from that. -error-log filename Redirect stderr to the indicated file, which will then contain all of the error and warning messages. This option is provided for those systems that have difficulty redirecting stderr. -help or -? Display a help message on stderr, giving a usage description, similar to this section of the manual pages. -init-file filename Provide an explicit value pattern initialization file. It will be processed after any system-wide and job-wide initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANINI, but defaults to .bibcleanrc on UNIX, and to bibclean.ini elsewhere. For further details, see the INITIALIZATION FILES manual section. -max-width nnn bibclean normally limits output line widths to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special- purpose applications may require different maximum line widths, so this option provides that capability. The number following the option name can be specified in decimal, octal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is interpreted to mean unlimited, so -max-width 0 can be used to ensure that each field/value pair appears on a single line. When -no-prettyprint requests bibclean to act as a lexical analyzer, the default line width is unlimited, unless overridden by this option. When bibclean is prettyprinting, line wrapping will be done only at a space. Consequently, a long non-blank character sequence may result in the output exceeding the requested line width. When bibclean is lexing, line wrapping is done by inserting a backslash-newline pair when the specified maximum is reached, so no line length will ever exceed the maximum. -[no-]align-equals With the positive form, align the equals sign in key/value assignments at the same column, separated by a single space from the value string. Otherwise, the equals sign follows the key, separated by a single space. Default: no. -[no-]check-values With the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g. ``year = "192"'' instead of ``year = "1992"''), and issue warnings when unexpected patterns are found. This checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can disable it with the negative form of this option. Default: yes. -[no-]delete-empty-values With the positive form, remove all field/value pairs for which the value is an empty string. This is helpful in cleaning up bibliographies generated from text editor templates. Compare this option with -[no-]remove-OPT- prefixes described below. Default: no. -[no-]file-position With the positive form, give detailed file position information in warning and error messages. Default: no. -[no-]fix-font-changes With the positive form, supply an additional brace level around font changes in titles to protect against downcasing by some BibTeX styles. Font changes that already have more than one level of braces are not modified. For example, if a title contains the Latin phrase {\em Dictyostelium Discoideum} or {\em {D}ictyostelium {D}iscoideum}, then downcasing will incorrectly convert the phrase to lower-case letters. Most BibTeX users are surprised that bracing the initial letters does not prevent the downcase action. The correct coding is {{\em Dictyostelium Discoideum}}. However, there are also legitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, bibclean will normally not supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this option to supply them. If you think that you need this option, it is strongly recommended that you apply bibclean to your bibliography file with and without -fix-font-changes, then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You will have to decide which of the two output files is the better choice, then repair the incorrect title bracing by hand. Since font changes in titles are uncommon, except for cases of the type which this option is designed to correct, it should do more good than harm. Default: no. -[no-]fix-initials With the positive form, insert a space after a period following author initials. Default: yes. -[no-]fix-names With the positive form, reorder author and editor name lists to remove commas at brace level zero, placing first names or initials before last names. Default: yes. -[no-]German-style With the positive form, interpret quote characters ["] inside braced value strings at brace level 1 according to the conventions of the TeX style file german.sty, which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, invisible hyphens, raised/lowered quotes, French guillemets, and discretionary hyphens. Recognized character combinations will be braced to prevent BibTeX from interpreting the quote as a string delimiter. Quoted strings receive no special handling from this option, and since German nouns in titles must anyway be protected from the downcasing operation of most BibTeX bibliography styles, German value strings that use the overloaded quote character can always be entered in the form "{...}", without the need to specify this option at all. Default: no. -[no-]keep-linebreaks Normally, line breaks inside value strings are collapsed into a single space, so that long value strings can later be broken to provide lines of reasonable length. With the positive form, linebreaks are preserved in value strings. If -max-width is set to zero, this preserves the original line breaks. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-parbreaks With the positive form, preserve paragraph breaks (either formfeeds, or lines containing only spaces) in value strings. Normally, paragraph breaks are collapsed into a single space. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-preamble-spaces With the positive form, preserve all whitespace in @Preamble{...} entries. Default: no. -[no-]keep-spaces With the positive form, preserve all spaces in value strings. Normally, multiple spaces are collapsed into a single space. This option can be used together with - keep-linebreaks, -keep-parbreaks, and -max-width 0 to preserve the form of value strings while still providing syntax and value checking. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-string-spaces With the positive form, preserve all whitespace in @String{...} entries. Default: no. -[no-]parbreaks With the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field/value pairs. This may be useful to quickly trap runaway strings arising from mismatched delimiters. Default: yes. -[no-]prettyprint Normally, bibclean functions as a prettyprinter. However, with the negative form of this option, it acts as a lexical analyzer instead, producing a stream of lexical tokens. See the LEXICAL ANALYSIS manual section for further details. Default: yes. -[no-]print-patterns With the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used. When bibclean is compiled with native pattern-matching code (the default), these patterns are the ones that will be used in checking value strings for valid syntax, and all of them are specified in initialization files, rather than hard-coded into the program. For further details, see the INITIALIZATION FILES manual section. Default: no. -[no-]read-init-files With the negative form, suppress loading of system-, user-, and file-specific initialization files. Initializations will come only from those files explicitly given by -init-file filename options. Default: yes. -[no-]remove-OPT-prefixes With the positive form, remove the ``OPT'' prefix from each field name where the corresponding value is not an empty string. The prefix ``OPT'' must be entirely in upper-case to be recognized. This option is for bibliographies generated with the help of the GNU Emacs BibTeX editing support, which generates templates with optional fields identified by the ``OPT'' prefix. Although the function M-x bibtex-remove-OPT normally bound to the keystrokes C-c C-o does the job, users often forget, with the result that BibTeX does not recognize the field name, and ignores the value string. Compare this option with -[no-]delete-empty-values described above. Default: no. -[no-]scribe With the positive form, accept input syntax conforming to the Scribe document system. The output will be converted to conform to BibTeX syntax. See the SCRIBE BIBLIOGRAPHY FORMAT manual section for further details. Default: no. -[no-]trace-file-opening With the positive form, record in the error log file the names of all files which bibclean attempts to open. Use this option to identify where initialization files are located. Default: no. -[no-]warnings With the positive form, allow all warning messages. The negative form is not recommended since it may mask problems that should be repaired. Default: yes. -version Display the program version number on stderr. This will also include an indication of who compiled the program, the host name on which it was compiled, the time of compilation, and the type of string-value matching code selected, when that information is available to the compiler. Usage: [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]align-equals ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile bibclean Version 2.11.3 [01-May-1996] Compiled on May 2 1996 17:07:20 with native pattern matching no-p^+Rѭ1ЭP޼Q@aPPP1ЭP޼Q@aP`PPXP1Э<ЭQЬPADЭP޼Q@a@H@PPP@ݢ@ݏdϺϮr#r4ݏ#Т< PЭSSPP޼TЭP޼Q@aCdPPѭ1ЭS޼TCdP^RѭvЭP޼Q@aPPPQЭP޼Q@aP`PPKP4Э<ЭP޼Q@a@ЭQЬPADˆ@PPPPѭP ^Ѭ- Ѭ/ЭЭPP^bPˑP^=\^*PP^PP^R<\\<vݢDP<6TݢDxP"\l"`"\l"dg""\l PM^rPP^^PP^JPP^6PP^\Z aݭPeg!P^ŅR<\\<ݢDIF^ϲPSP^ϞPWP^ϊPGP^vP7P^bP'P^NPP^)R<\\<ݢD!P ЏP^PP^PP^PP^ϺPP^ϦPP^ϒPP^PP^GP^_PP^9\ ~̌̈^ \ez^RϜ@\\ P PPЭPivxlcdm^լլ޼P`1PЬQPʏP@aPʏPP,PPPeQPʏP@aPʏPPPPNPPPϐPխ5ѭ íPP PPЭPP옽PPPPլ޼PЭ`ЭPP^ݬPPP^uRQˏP@aPʏPPݬ&PЬݭݢ< Pխ PâxPP2޼P`Q޼P`PPP޼PްQíPPaax PPݬ*PխB޼PްP`ݬ޼P`Q޼P`PPP޼PްQíPPaЭ1PݬPѭ ЏiPP T޼P`P PPPѭ Џ'PPPP  ЏP1}P^޼PްP`7ݬPݬ~PPѭP Џ9ݬPխ޼P`Q޼P`PàPPPЭP^}RѢ<3ߢ<@PPҭ\ʏ\\ ݭ߭ݏzݢ< Pҭ\ʏ\\ ݭЭP^Ь խnѭ ЏЭݭݬݬPխ Џ=խí PP+PPPíPPխí PPPP^PP"޼P`P PʏPP ЏZX޼PްP`Џ=;P޼P`QaPPa޼P`QPP޼P`PްP`PPP^PP޼P`PPqRRPPQ޼P`PʏP@aPʏPP޼P`PPPP޼P`PPbRR޼RbRR:kP8P3$PP:P^籠RHH߬8Pѭ4x?HH߬ P2P@H2PPE2PPP2P@HPP ,P2P@H2PP2PPP2P@HPP ѭ HPPPPP^PP^ݬPЬ߭-P ЏJPˏQQPP$,$ P6?PPЏPPxPPP^ݬ.PP^ݬPPP|^˂RϻPPݏP| ޼P`PݽЭPݠЭPݠЭPݠЭPРP@PЭPݠ ύݭ&PЬݬPԞ|PPĐ}|Pѭ`Џ1ݭ9PЭXPѭ#Pa`Џ8Pѭ4 `Џ PPЭPMe%s: No match. ....][.][%s: Invalid file wildcard. ;Invalid null %sput redirection%s. ...Wildcards (%s) illegal in redirection%s. ..%s %s %s (%s). Warning: Can't reassignto Un*x-style file nameLNM$FILE_DEVCan't open "%s" as `std%s'. in, `<'rwout (`>', `>>', `>&', or `>>&')..LNM$FILE_DEVSYS$ERROR^MR߭MP옲Pݬ ݬO P 1@PP1޼ P`PPPz޼ P`nPխ-ݭ߭ݭϳP޼ P`CPխ4޼ P`P`ݭ߭޼ P`hPPݭ߭޼ P`MPЬQaPPa PP ޼P`1խ ݭ޼PЭ`ЭPP ^լ "ݏ6P޼P`Эp޼P`RzRP{@PQPPRR"޼RbR@RRRݬ P ޼RbR޼ PЬB`ЬP`RR``R޼ PB`Ь PP0^ݬ$}PЬݬ}ϦPЬӰݬ PЬ PPP ^ݬPխݏ$@ЭPP ^ݬݬPխݏ$@ЭPP^:ݬPխݬPխ:խЬ ݭPPP ^*ݬP(%ݬPݬ! PPP^Ьݏ]ݭ\Pխ PPЭ>ݭ5Pխ PPЭ:ݭ Pխ PPЭЭ;ݭ Pխ.ݭ PխЭP^:ݬu Pխ`ݬ[PPP` PRݭR PRRRϸPݭݭ) RRݭ %ݬ P}ݬP PЭRRXP PRʏRB`RʏRRRR P PRRRRRRݭ$ Pխ1PRRRRY ݭPխЭPP^CzRݬ }PЬ}ϯPPբPeݏF PPբP TPݢP PTբT.ݢPPݢP PݢPr PTߢL PяԆݬϫU P`  яяʂ |ˏPPߢL P[1?PPЬQaPPaa޼PްP`P&PЬQaPPaݭdϓϊ4P`ݬݬPPPd/޼P`P>n޼P`rP*޼P`dQτPBPPݭ QP`aЬP^ˏPPPݬ^ЬPPݬ4PЭխ{PPP7QPQP*PPPPP옽PP QPQP٘PP Э2PЬPPPPPЭխЭP@@4@8H-@X8PH((P0@xx,     @ CMA$TIS_SHRDECC$SHRMTHRTLLIBRTLBIBCLEANapply_functionapply_function1Mapply_function2lbcolumn bdelc bdelc3 bdelc47Mbdelline8 8bflushbflush5^bflush6 (blastc3 \bpeekcK bputc bputc7d error fatal0 @formatformat8format9format10Cfree_match_patternfree_match_pattern11free_match_pattern12Cfree_pattern_tablefree_pattern_table13!!free_pattern_table_entries#free_pattern_table_entries14alX free_tablest free_tables15:lget_char: get_char16u get_char17 get_char18 get_char19' get_linebreak0get_linebreak20@get_linebreak21,get_next_non_blank4get_next_non_blank22tget_next_non_blank23get_next_non_blank24BTo( init_tablesT init_tables25|isidchar mainDMemmovef Memmove26K Memmove271 Memset? (out_at @out_cout_c28out_c29out_c30 out_c31out_c32+P out_error0 out_flush"(out_input_positionEp out_lines out_lines33 out_lines34 out_lines35: out_lines36n out_lines37Az out_newline out_number%, out_position~ out_sout_s38 out_s39out_s400A out_spaces out_spaces41- out_status8 out_status42 out_stringl\ out_token out_token43 out_token44P out_token45 out_token46, out_verbatimout_verbatim47(out_verbatim487Lqxout_with_error!out_with_parbreak_errorput_back put_back49N put_back50 resync StrdupO stricmp stricmp51 strnicmpD strnicmp52{ tfopenkwarning# warning53t word_length word_length54,$ wrap_line  h8  $ #h  H=6 # -W  v\6 & k   7 = P2 x }$  jR 1 [ t X9  (2 8`n & E # CHEK bad_CODENbad_ISBN0bad_ISSNHx check_chapter* check_CODEN" check_inodes`  check_ISBN>  check_ISSN"  check_junior  check_junior1  check_junior2L  check_junior3\  check_junior4<?  check_key  check_key5A  check_key6/P  check_length%  check_month  check_month7  check_month8$TL  check_number*x  check_other  check_other9  check_other10(L  check_pages*( check_patterns@ check_patterns11c check_patterns12w check_patterns13Wq  check_volume*8 check_yeart check_year14 check_year15;iCODEN_character_value copy_elementcopy_element16W/incomplete_CODENT is_CODEN_charis_CODEN_char17is_CODEN_char18 is_ISBN_charvis_ISBN_char19is_ISBN_char20 is_ISSN_charZis_ISSN_char21is_ISSN_char22 parse_list parse_list23'=  parse_elementparse_separatorparse_separator244parse_separator25>  unexpectedvalidate_CODEN validate_CODEN26&validate_CODEN27&Vvalidate_CODEN28+avalidate_CODEN29 validate_ISBN0validate_ISBN30validate_ISBN31W- validate_ISSN`validate_ISSN32validate_ISSN33W1 /     # p &   1  J  3:  6  -  1  8 X *  T& + F3 + w + %     DO@&add_one_patternh&add_one_pattern1&add_one_pattern2&add_one_pattern3|>x' add_pattern' add_pattern4' add_pattern5#D;( add_pattern6\( add_pattern7p() append_valuex) append_value81 )do_at )do_at9*do_at101&*do_at11D*do_BibTeX_entry*do_BibTeX_entry12h+do_BibTeX_entry13%p+do_BibTeX_value+do_BibTeX_value_1 ,do_BibTeX_value_114a,do_BibTeX_value_2,do_BibTeX_value_215w-do_close_brace-do_close_brace163-do_close_brace17}.do_commaF. do_comma18N. do_comma19 j. do_comma20. do_comma21. do_comma22 4. do_comma23r. do_comma24/ do_entry_nameL/do_entry_name25/do_entry_name26+60do_entry_name270)1 do_equals2 do_equals28wP2 do_escapest2 do_escapes292 do_escapes303 do_escapes31)#t4 do_fileinit4 do_fileinit324 do_fileinit33Dv05do_field5 do_field345 do_field3506 do_field366 do_field376 do_field38< 7 do_field3987do_field_value_pair8do_files8 do_files4048 do_files41H8 do_files42d8 do_files438 do_files4408 do_files45F889do_groupY9 do_group469 do_group479 do_group489 do_group49H: do_group50~: do_group51: do_group52*: do_group53: do_group54%x;L; do_initfile; do_initfile55u|< do_key_name< do_key_name56< do_key_name570I;=do_new_pattern=do_new_pattern58}>do_new_pattern59>do_new_pattern60?do_new_pattern61g?do_new_pattern62$?do_new_pattern637.? do_newline? do_newline64GlT@ do_one_file@ do_one_file65!@ do_one_file66@ do_open_braceAdo_open_brace67.Ado_open_brace68LAdo_open_brace69}!lAdo_optional_inline_comment#tAdo_optional_inline_comment70#Ado_optional_inline_comment71hBdo_optional_spacetBdo_optional_space72Bdo_optional_space73jDCdo_otherC do_other74C do_other75C do_other76!C do_other77!D do_other78XD do_other79(_D do_preambleD do_preamble_2W^xVget_digit_stringWget_digit_string118Wget_digit_string1190LWget_digit_string120Y+Wget_identifier_stringXget_identifier_string121Xget_identifier_string122/PXget_identifier_string123YXget_inline_commentXget_inline_comment124Yget_inline_comment125NYget_inline_comment126"#Yget_lineZ get_line127.Z get_line1286XZget_optional_space4[get_optional_space1299[ get_parbreak[get_parbreak130@@\get_quoted_string|\get_quoted_string131\get_quoted_string132)\get_quoted_string1337]get_quoted_string134]get_quoted_string135]get_quoted_string136]get_quoted_string137]get_quoted_string138U$^get_quoted_string1397^get_quoted_string140L^get_quoted_string141bws"<_get_Scribe_delimited_string%~_get_Scribe_delimited_string142)%`get_Scribe_delimited_string143%`get_Scribe_delimited_string144+%M`get_Scribe_delimited_string145%c`get_Scribe_delimited_string146%}`get_Scribe_delimited_string147'%`get_Scribe_delimited_string148M%`get_Scribe_delimited_string149/%aget_Scribe_delimited_string150%aget_Scribe_delimited_string1516eg%bget_Scribe_delimited_string152#bget_Scribe_identifier_string&@cget_Scribe_identifier_string153 &cget_Scribe_identifier_string154cget_Scribe_stringO0dget_simple_stringydget_simple_string155"@eget_simple_string1563de get_tokene get_token157e get_token158 f get_token159Ef get_token160`f get_token1611f get_token1620g new_entryBtg new_io_pairg new_position#gout_close_braceg out_comma,gout_complex_valuehout_complex_value163/hout_complex_value164<i out_equals)i out_equals165hi out_equals166@i out_fieldi out_field167$[jout_open_brace0j out_otherLj out_other168^{j out_valuej out_value169k out_value170sk out_value171Zk out_value1725bl prt_pattern!lprt_pattern173lput_back_stringCl trim_value9m trim_value174m trim_value175{n trim_value176% @&'  4'" (  Q +A m,2  s-}   u0 ; 1e u W4B%&L >6  6g B9;  x,:4 T;, Y<' !=o Բ [@ DD" =~E: AFO( MH yHY I  yM< XQT4 (V,W iW(  mX4  Y. lZ; [^oG< ob&C Jcs "f  fn  i l pm ,n FIX obrace_font_changes@obrace_font_changes1dobrace_font_changes2vobrace_font_changes3pbrace_font_changes4(pbrace_font_changes5n(q fix_author|q fix_author6q fix_author72\r fix_author8/r fix_months fix_month98s fix_month10Ps fix_month11s fix_month12Rt fix_namelist0ufix_namelist13Pufix_namelist14nufix_namelist15cv fix_pagesv fix_pages16v fix_pages17&y fix_pages18Wy fix_periodsy fix_periods19(z fix_periods20Ez fix_periods21k/z fix_title{ fix_title22<{ fix_title23{ fix_title24Z| fix_title25&| fix_title26| fix_title272N} fix_title28V} fix_title29x,~ fix_title30  month_token month_token31 month_token32 month_token33>Q month_token34v month_token35 month_token36b = o; ]p5) 2 qD  s  t?  G >v% p #w r sw t w k ky5 zF }" }#" ~ <NI  6 ( FNDFIL envsub findfile: findfile1` findfile2<z findfile3: findfile4 findfile58 findfile6d findfile7!M findfile8 findfile9!M findfile106|J findfile11!cw isfileisfile12isfile13.@r c 0T  ,   \ / kB   ISBN next_ISBN next_ISBN1 next_ISBN2 next_ISBN3 next_ISBN4$gfix_ISBN fix_ISBN5@ hyphenate_one_ISBNhyphenate_one_ISBN6hyphenate_one_ISBN7hyphenate_one_ISBN8$hyphenate_one_ISBN9\hyphenate_one_ISBN10ISBN_hyphenateISBN_hyphenate11ISBN_hyphenate12:DISBN_hyphenate133Oܝ in_ISBN_rangeh squeeze_ISBNsqueeze_ISBN14  P L  c   9 :  w< G V KEYBRD 8beepXdo_morexdo_more1do_more2Hs̢ do_search do_search3P do_search4#~ do_search5 do_search6L do_search7 do_search8< do_search9 n do_search10, do_search116 do_search12=A do_search13,|erase_characterserase_characters14*P̦get_screen_lines7kbclose< @kbcode; |kbgets kbopen-kbopen15~ kbinitmap 8E   6  B aB  ӣ! ~0  z$ !    MATCH match_patternmatch_pattern1match_pattern2match_pattern3Umatch_pattern4p@ next_snext_s5next_s6next_s7Tnext_s8next_s9 ;p "  E ٬ Q խ  Q    1      q *   \#n O A T  ^  G  $ OPTIONdo_argsdo_args1do_args2>do_args3@| do_preargs do_preargs4 do_preargs54eXisoptionprefix3opt_align_equals opt_author#opt_check_valuesopt_delete_empty_values opt_error_log opt_error_log6O|opt_file_positionopt_fix_font_changesopt_fix_initials opt_fix_namesopt_helpJ opt_init_file$<opt_German_stylePopt_keep_linebreaksdopt_keep_parbreaksxopt_keep_preamble_spacesopt_keep_spacesopt_keep_string_spaces opt_max_widthA opt_parbreaks opt_prettyprint opt_print_patterns4opt_read_init_filesHopt_remove_OPT_prefixes\ opt_scribepopt_trace_file_opening opt_version  opt_warnings usage0version# YESorNOarg> &; ? "  n E  )', ROMTOL @romtolJromtol1romtol2;8isroman'`roman_digit_valuez r @   !  STRISTstristr stristr1)   &I VAXVMS vms_fseek vms_fseek1 vms_fseek26 vms_fseek30h vms_fseek4 vms_fseek5Babh vms_ftelly vms_ftell67 vms_getchar vms_getchar73vms_read vms_read8h0 vms_ungetc vms_ungetc97 vms_getenv vms_getenv10f vms_getenv11 vms_getenv122 getjpigetjpi13xgetlogin system4system14 \tell# unlink utimeutime15utime16# utime17 W?   @3   @F3 AYx  VMSWILDcmd_lincmd_lin1Jcmd_lin2.cmd_lin3Ccmd_lin4Dcmd_lin5+pcmd_lin64vKgadd_argadd_arg7" crelnmTemalloc7erealloc;expand_logical[ $iswildSxnameonlyH normalize_filenamed normalize_filename8^_ nxt_wld nxt_wld9D  nxt_wld10.e  nxt_wld11  nxt_wld12   nxt_wld13  nxt_wld14M  nxt_wld15$P  parse_optd  read_cmd_lin read_cmd_lin16@ read_w_promptread_w_prompt17 redir:redir18Bredir19)redir203Tredir21*redir222redirinOXredirout redirout23 redirout24*d \sigvms$ strsubstrsub25t d ;        E =   9 ) B  #   O        bibclean-3.07/vms/vax/getvmsheaders.com0000644000156700015670000001772406142227131017061 0ustar beebebeebe$ ! ==================================================================== $ ! This command file can be used to extract all the C header files in $ ! SYS$LIBRARY:DECC$RTLDEF.TLB. The getoneheader.com file contains $ ! only a single line: $ ! $ library /extract='p1' /output='p1'.hlp SYS$LIBRARY:DECC$RTLDEF.TLB $ ! This could probably be done more automatically with a loop in a $ ! single file, but I don't have time to pursue relearning VMS DCL. $ ! [02-May-1996] $ ! ==================================================================== $ @getoneheader ACCDEF $ @getoneheader ACEDEF $ @getoneheader ACLDEF $ @getoneheader ACRDEF $ @getoneheader AGNDEF $ @getoneheader ALPHADEF $ @getoneheader ARGDEF $ @getoneheader ARMDEF $ @getoneheader ASSERT $ @getoneheader ATRDEF $ @getoneheader BASDEF $ @getoneheader BRKDEF $ @getoneheader BUILTINS $ @getoneheader CCXX$IDENT $ @getoneheader CHFDEF $ @getoneheader CHKPNTDEF $ @getoneheader CHPDEF $ @getoneheader CIADEF $ @getoneheader CLIDEF $ @getoneheader CLIMSGDEF $ @getoneheader CLISERVDEF $ @getoneheader CLIVERBDEF $ @getoneheader CLSDEF $ @getoneheader CMA$DEF $ @getoneheader CMBDEF $ @getoneheader COBDEF $ @getoneheader CONVDEF $ @getoneheader CONVMSGDEF $ @getoneheader CQUALDEF $ @getoneheader CRDEF $ @getoneheader CREDEF $ @getoneheader CRFDEF $ @getoneheader CRFMSG $ @getoneheader CSHDEF $ @getoneheader CTYPE $ @getoneheader CURSES $ @getoneheader CVT$ROUTINES $ @getoneheader CVTDEF $ @getoneheader CVTMSG $ @getoneheader DCDEF $ @getoneheader DDTMDEF $ @getoneheader DDTMMSGDEF $ @getoneheader DESCRIP $ @getoneheader DEVDEF $ @getoneheader DIBDEF $ @getoneheader DISMOUMSGDEF $ @getoneheader DMPDEF $ @getoneheader DMTDEF $ @getoneheader DSCDEF $ @getoneheader DSTDEF $ @getoneheader DTIDEF $ @getoneheader DTK$ROUTINES $ @getoneheader DTKDEF $ @getoneheader DTKMSG $ @getoneheader DVIDEF $ @getoneheader DVSDEF $ @getoneheader EEOMDEF $ @getoneheader EGPSDEF $ @getoneheader EGSDEF $ @getoneheader EGSTDEF $ @getoneheader EGSYDEF $ @getoneheader EIDCDEF $ @getoneheader EMHDEF $ @getoneheader ENVDEF $ @getoneheader EOBJRECDEF $ @getoneheader EOMDEF $ @getoneheader EOMWDEF $ @getoneheader EPMDEF $ @getoneheader EPMMDEF $ @getoneheader EPMVDEF $ @getoneheader EPMWDEF $ @getoneheader ERADEF $ @getoneheader ERRNO $ @getoneheader ERRNODEF $ @getoneheader ESDFDEF $ @getoneheader ESDFMDEF $ @getoneheader ESDFVDEF $ @getoneheader ESGPSDEF $ @getoneheader ESRFDEF $ @getoneheader ETIRDEF $ @getoneheader FAB $ @getoneheader FABDEF $ @getoneheader FALDEF $ @getoneheader FCNTL $ @getoneheader FDLDEF $ @getoneheader FDLMSGDEF $ @getoneheader FIBDEF $ @getoneheader FIDDEF $ @getoneheader FILE $ @getoneheader FLOAT $ @getoneheader FMLDEF $ @getoneheader FORDEF $ @getoneheader FP_CLASS $ @getoneheader FSCNDEF $ @getoneheader GPSDEF $ @getoneheader GSDEF $ @getoneheader GSYDEF $ @getoneheader HLPDEF $ @getoneheader HWDEF $ @getoneheader IACDEF $ @getoneheader ICONV $ @getoneheader IDCDEF $ @getoneheader IN $ @getoneheader INET $ @getoneheader INITDEF $ @getoneheader INTS $ @getoneheader IODEF $ @getoneheader JBCMSGDEF $ @getoneheader JPIDEF $ @getoneheader KGBDEF $ @getoneheader LADEF $ @getoneheader LANGINFO $ @getoneheader LATDEF $ @getoneheader LATMSGDEF $ @getoneheader LBRCTLTBL $ @getoneheader LBRDEF $ @getoneheader LCKDEF $ @getoneheader LEPMDEF $ @getoneheader LHIDEF $ @getoneheader LIB$ROUTINES $ @getoneheader LIBCLIDEF $ @getoneheader LIBDCFDEF $ @getoneheader LIBDEF $ @getoneheader LIBDTDEF $ @getoneheader LIBVMDEF $ @getoneheader LICENSEDEF $ @getoneheader LIMITS $ @getoneheader LKIDEF $ @getoneheader LMFDEF $ @getoneheader LNKDEF $ @getoneheader LNMDEF $ @getoneheader LOCALE $ @getoneheader LPDEF $ @getoneheader LPRODEF $ @getoneheader LSDFDEF $ @getoneheader LSRFDEF $ @getoneheader LSYDEF $ @getoneheader MAILDEF $ @getoneheader MAILMSGDEF $ @getoneheader MATH $ @getoneheader MHDDEF $ @getoneheader MHDEF $ @getoneheader MMEDEF $ @getoneheader MMIDEF $ @getoneheader MNTDEF $ @getoneheader MONETARY $ @getoneheader MOUNDEF $ @getoneheader MSGDEF $ @getoneheader MSGHLPDEF $ @getoneheader MT2DEF $ @getoneheader MTADEF $ @getoneheader MTDEF $ @getoneheader MTH$ROUTINES $ @getoneheader MTHDEF $ @getoneheader NAM $ @getoneheader NAMDEF $ @getoneheader NCS$ROUTINES $ @getoneheader NCSDEF $ @getoneheader NETDB $ @getoneheader NETDEF $ @getoneheader NEW $ @getoneheader NFBDEF $ @getoneheader NL_TYPES $ @getoneheader NSADEF $ @getoneheader NSARECDEF $ @getoneheader OBJRECDEF $ @getoneheader OPCDEF $ @getoneheader OPCMSG $ @getoneheader OPDEF $ @getoneheader OPRDEF $ @getoneheader OSSDEF $ @getoneheader OTS$ROUTINES $ @getoneheader OTSDEF $ @getoneheader PCCDEF $ @getoneheader PERROR $ @getoneheader PLVDEF $ @getoneheader POSIX_SERVICEDEF $ @getoneheader PPL$DEF $ @getoneheader PPL$ROUTINES $ @getoneheader PPLDEF $ @getoneheader PQLDEF $ @getoneheader PR009DEF $ @getoneheader PR1202DEF $ @getoneheader PR1302DEF $ @getoneheader PR13DEF $ @getoneheader PR1701DEF $ @getoneheader PR410DEF $ @getoneheader PR420DEF $ @getoneheader PR43DEF $ @getoneheader PR440DEF $ @getoneheader PR46DEF $ @getoneheader PR49DEF $ @getoneheader PR4ADEF $ @getoneheader PR520DEF $ @getoneheader PR60DEF $ @getoneheader PR650DEF $ @getoneheader PR660DEF $ @getoneheader PR670DEF $ @getoneheader PR730DEF $ @getoneheader PR750DEF $ @getoneheader PR780DEF $ @getoneheader PR790DEF $ @getoneheader PR8NNDEF $ @getoneheader PR8PSDEF $ @getoneheader PR8SSDEF $ @getoneheader PR9AQDEF $ @getoneheader PR9CCDEF $ @getoneheader PR9RRDEF $ @getoneheader PRCDEF $ @getoneheader PRDEF $ @getoneheader PROCESSES $ @getoneheader PRODEF $ @getoneheader PROMDEF $ @getoneheader PROVDEF $ @getoneheader PROWDEF $ @getoneheader PRTDEF $ @getoneheader PRUV1DEF $ @getoneheader PRUV2DEF $ @getoneheader PRVDEF $ @getoneheader PRXDEF $ @getoneheader PSCANDEF $ @getoneheader PSLDEF $ @getoneheader PSMMSGDEF $ @getoneheader PSWDEF $ @getoneheader PTDDEF $ @getoneheader QUIDEF $ @getoneheader RAB $ @getoneheader RABDEF $ @getoneheader REENTRANCY $ @getoneheader RMEDEF $ @getoneheader RMS $ @getoneheader RMSDEF $ @getoneheader RNHBLKDEF $ @getoneheader RSDMDEF $ @getoneheader SBKDEF $ @getoneheader SCRDEF $ @getoneheader SDFDEF $ @getoneheader SDFMDEF $ @getoneheader SDFVDEF $ @getoneheader SDFWDEF $ @getoneheader SECDEF $ @getoneheader SECSRVDEF $ @getoneheader SETJMP $ @getoneheader SFDEF $ @getoneheader SGPSDEF $ @getoneheader SHRDEF $ @getoneheader SIGNAL $ @getoneheader SJCDEF $ @getoneheader SMBMSGDEF $ @getoneheader SMG$ROUTINES $ @getoneheader SMGDEF $ @getoneheader SMGMSG $ @getoneheader SMGTRMPTR $ @getoneheader SMRDEF $ @getoneheader SNAPEVTDEF $ @getoneheader SOCKET $ @getoneheader SOR$ROUTINES $ @getoneheader SORDEF $ @getoneheader SRFDEF $ @getoneheader SRMDEF $ @getoneheader SSDEF $ @getoneheader STARLET $ @getoneheader STAT $ @getoneheader STDARG $ @getoneheader STDDEF $ @getoneheader STDIO $ @getoneheader STDLIB $ @getoneheader STR$ROUTINES $ @getoneheader STRDEF $ @getoneheader STRING $ @getoneheader STSDEF $ @getoneheader SYIDEF $ @getoneheader TCP $ @getoneheader TIME $ @getoneheader TIMEB $ @getoneheader TIRDEF $ @getoneheader TPADEF $ @getoneheader TRMDEF $ @getoneheader TT2DEF $ @getoneheader TT3DEF $ @getoneheader TTCDEF $ @getoneheader TTDEF $ @getoneheader TTYDPORTDEF $ @getoneheader TYPES $ @getoneheader UAIDEF $ @getoneheader UICDEF $ @getoneheader UIDDEF $ @getoneheader UNISTD $ @getoneheader UNIXIO $ @getoneheader UNIXLIB $ @getoneheader USGDEF $ @getoneheader USRIDEF $ @getoneheader VAERDEF $ @getoneheader VARARGS $ @getoneheader VAXDEF $ @getoneheader VPSRDEF $ @getoneheader WCHAR $ @getoneheader XAB $ @getoneheader XABALLDEF $ @getoneheader XABCXFDEF $ @getoneheader XABCXRDEF $ @getoneheader XABDATDEF $ @getoneheader XABDEF $ @getoneheader XABFHCDEF $ @getoneheader XABITMDEF $ @getoneheader XABJNLDEF $ @getoneheader XABKEYDEF $ @getoneheader XABPRODEF $ @getoneheader XABRDTDEF $ @getoneheader XABRUDEF $ @getoneheader XABSUMDEF $ @getoneheader XABTRMDEF $ @getoneheader XADEF $ @getoneheader XFDEF $ @getoneheader XKDEVDEF $ @getoneheader XKSTSDEF $ @getoneheader XMDEF $ @getoneheader XRVDEF $ @getoneheader XWDEF bibclean-3.07/vms/vax/vaxvms.obj0000644000156700015670000016524706142246432015551 0ustar beebebeebeVAXVMSV1.0 2-MAY-1996 17:33DEC C V4.0-000R VAXVMSp vms_fseekxnoname.2x vms_fseek1 vms_fseek2 vms_fseek30noname.7PP%02d-%3s-19%02d %02d:%02d:%02dPP $(,048<@DHLLPDECHPNOVDPOCT@PSEPxPP2޼P`Q޼P`PPP޼PްQíPPaax P vms_fseek4# vms_fseek5Benoname.9aenoname.8 noname.11 noname.13b noname.12 noname.14 noname.15 noname.10km pos val oldpos ٳbuffer R fp Rn  dir vms_ftell vms_ftell6L noname.187L noname.17| noname.20 noname.19 pos valc fp RPݬ DECC$FSEEKPխB޼PްP`ݬ DECC$FGETC޼P`Q޼P`PPP޼PްQíPPaЭ1Pݬ VMS_FTELLPѭ ЏiPP T޼P`P PP DECC$FSTATPѭ Џ'PPPP  ЏP1}P^޼PްP`7ݬ DECC$FGETCPݬ~ VMS_UNGETCPPѭP Џ9ݬ DECC$FTELLPխ޼P`Q޼P`PàPPPЭP^RѢ<3ߢ<@ SYS$ASSIGNPҭ\ʏ vms_getchar vms_getchar7 noname.233 noname.22( noname.240 noname.25ret_char statusDECC$GA___CTYPE VMS_UNGETC VMS_FTELLSYS$QIOWSYS$OPEN SYS$CLOSE SYS$BINTIM SYS$ASSIGNLIB$STOP LIB$SPAWN LIB$GETJPIDECC$LOCALTIMECMA$TIS_ERRNO_GET_ADDR DECC$TOUPPER DECC$STRLEN DECC$MEMSET DECC$STRCHR DECC$READ DECC$LSEEK DECC$DELETE DECC$FSTAT DECC$GETENV DECC$FTELL DECC$FSEEK DECC$FGETC DECC$DSPRINTF p VMS_FSEEK  VMS_FTELL  VMS_GETCHAR8vms_readH noname.28H vms_read8\ noname.30a noname.31 noname.32 noname.34h noname.35 noname.27 noname.33 ngot left file_desc buffer   nbytes vms_ungetc noname.37  noname.40  vms_ungetc97X noname.41X noname.39X noname.38c fp R` vms_getenv| noname.44\\ ݭLIB$STOP߭ݏzݢ< SYS$QIOWPҭ\ʏ\\ ݭLIB$STOPЭP^Ь խnѭ ЏЭݭݬݬ DECC$READPխ Џ=խí PP+PPPíPPխí PPPP^PP"޼P`P PʏPP ЏZX޼PްP`Џ=;P޼P`QaPPa޼P`QPP޼P`PްP`PPP^PP޼P`PPqRRPP| vms_getenv10 noname.46 noname.47f noname.48 noname.43  noname.49  vms_getenv117 vms_getenv12R noname.512R noname.50\ noname.52 ucname*&p  result  name  dgetjpigetjpi13 noname.56 noname.57 noname.58 noname.55x noname.54( noname.59, noname.600 noname.61 retval retlenjpi_codeDECC$GA___CTYPEQ޼P`PʏP@aPʏPP޼P`PP DECC$TOUPPERPP޼P`PPbRR޼RbRR: DECC$STRCHRP DECC$GETENVP3 DECC$GETENVP DECC$GETENVP:P^RHH߬ LIB$GETJPIPѭ4x?HH߬ LIB$GETJPIP2P@H2PPE2PPP2P@HPP ,P2P@H2PP2PPP2P@HPP ѭ HPPPPP8getloginP noname.63 Xsystem noname.65system14 noname.71 noname.66t R stats  tell noname.73 handle# unlink4 noname.75filename ^ DECC$GETENVPP^ݬ DECC$STRLENPЬ߭ LIB$SPAWNP ЏJPˏQQPPP P6?PPЏPPxPPP^ݬ DECC$LSEEKPP^ݬ DECC$DELETEPPP|^RϻPPݏP DECC$MEMSET| DECC$MEMSET޼P`DECC$LOCALTIMEPݽЭPݠЭPݠЭPݠЭPРP@PЭPݠ ύݭ DECC$DSPRINTFP <utime#utime158 noname.77mutime16# noname.79utime17 noname.80 noname.78 time_desc R ٠fab1 R ٘status ٔftime ِ the_timeval R |xab1  R path  times  W?p   @3   @3 Ax   RS TS TS T S_iobuf _cnt _ptr  @_base  `_flag h_file p_pad1 x_pad2 R @ R @ quot  rem R @ quot  remRSTSstat st_dev  st_ino*&Pst_mode`st_nlink st_uid st_gidst_rdev st_sizest_atimest_mtime0st_ctimeP st_fab_rfmX st_fab_rat` st_fab_fszh st_fab_mrsRSTSdsc$descriptor@ dsc$w_length dsc$b_dtype dsc$b_class dsc$a_pointer RSTSdsc$descriptor_s@ dsc$w_length dsc$b_dtype dsc$b_class dsc$a_pointer Rdsc$descriptor_d@ dsc$w_length dsc$b_dtype dsc$b_class dsc$a_pointer Rdsc$descriptor_a dsc$w_length dsc$b_dtype dsc$b_class dsc$a_pointer @ dsc$b_scaleH dsc$b_digitsP dsc$b_aflags RX dsc$b_dimct` dsc$l_arsizeRSTS $"dsc$v_fl_binscale" !"dsc$v_fl_redim" ""dsc$v_fl_column" !"dsc$v_fl_coeff" ""dsc$v_fl_bounds" Rdsc$descriptor_p@ dsc$w_length dsc$b_dtype dsc$b_class dsc$a_pointer Rdsc$descriptor_sd` dsc$w_length dsc$b_dtype dsc$b_class dsc$a_pointer @ dsc$b_scaleH dsc$b_digitsP dsc$b_sflags RRSTS $"dsc$v_fl_binscale" Rdsc$descriptor_nca dsc$w_length dsc$b_dtype dsc$b_class dsc$a_pointer @ dsc$b_scaleH dsc$b_digitsP dsc$b_aflags RX dsc$b_dimct` dsc$l_arsizeRSTS $"dsc$v_fl_binscale" !"dsc$v_fl_redim" Rdsc$descriptor_vs@dsc$w_maxstrlen dsc$b_dtype dsc$b_class dsc$a_pointer Rdsc$descriptor_vsadsc$w_maxstrlen dsc$b_dtype dsc$b_class dsc$a_pointer @ dsc$b_scaleH dsc$b_digitsP dsc$b_aflags RX dsc$b_dimct` dsc$l_arsizeRSTS $"dsc$v_fl_binscale" !"dsc$v_fl_redim"  Rdsc$descriptor_ubs` dsc$w_length dsc$b_dtype dsc$b_class dsc$a_base @ dsc$l_pos!Rdsc$descriptor_uba dsc$w_length dsc$b_dtype dsc$b_class dsc$a_base @ dsc$b_scaleH dsc$b_digitsP dsc$b_aflags "RX dsc$b_dimct` dsc$l_arsize#R"S#T#S $"dsc$v_fl_binscale" !"dsc$v_fl_redim" $Rdsc$descriptor_sb dsc$w_length dsc$b_dtype dsc$b_class dsc$a_pointer @ dsc$l_sb_l1` dsc$l_sb_u1%Rdsc$descriptor_ubsb dsc$w_length dsc$b_dtype dsc$b_class dsc$a_base @ dsc$l_pos` dsc$l_ubsb_l1 dsc$l_ubsb_u1&Riodefio$r_fcode_structure 'Rio$r_errlog_modifiers (Rio$r_disk_tape_modifiers )Rio$r_disk_modifiers *Rio$r_tape_modifiers +Rio$r_dutu_xfer_modifiers ,Rio$r_du_sense_modifiers -R io$r_du_packack_modifiers .Rio$r_du_avail_modifiers /R io$r_du_remshad_modifiers 0R io$r_du_prfpath_modifiers 1Rio$r_du_dcd_modifiers 2Rio$r_du_whm_modifiers 3R"io$r_hbs_copyshad_modifiers 4R!io$r_hbs_creshad_modifiers 5Rio$r_hbs_xfer_modifiers 6Rio$r_dr_modifiers 7Rio$r_dy_modifiers 8Rio$r_dd_modifiers 9Rio$r_ts11_modifiers :Rio$r_tu_modifiers ;R$io$r_tu_lg_transfer_modifiers <R io$r_tu_setmode_modifiers =Rio$r_acp_modifiers >Rio$r_cr_modifiers ?Rio$r_mb_modifiers @R io$r_mb_setmode_modifiers ARio$r_tt_read_modifiers BRio$r_tt_write_modifiers CR"io$r_tt_sensemode_modifiers DR io$r_tt_setmode_modifiers ERio$r_tt_maint_modifiers FR"io$r_tt_outofband_modifiers GR#io$r_tt_psxsetmode_modifiers HR"io$r_tt_posixinit_modifiers IR"io$r_tt_posixflow_modifiers JR io$r_tt_psxread_modifiers KR$io$r_net_write_read_modifiers LR io$r_net_accdea_modifiers MR!io$r_dlink_write_modifiers NR#io$r_dlink_setmode_modifiers OR%io$r_dlink_sensemode_modifiers PRio$r_x25_write_modifiers QR io$r_x25_access_modifiers RRio$r_lpa_start_modifiers SRio$r_xa_modifiers TRio$r_ibm3271_modifiers URio$r_xw_modifiers VRio$r_lt_modifiers WRio$r_lt_mapitem XRYR'SYTYS " io$v_fcode" ""io$v_fmodifiers " ZR(SZTZS $"io$v_fcode_fill_1" " io$v_filler_1"  " io$v_inherlog" " io$v_fill_6" [R)S[T[S $"io$v_fcode_fill_2" ,"io$v_rsvd_for_devdepend_1" " io$v_erase" " io$v_filler_2" +"io$v_rsvd_for_devdepend2" " io$v_exfunc" !"io$v_datacheck"  " io$v_inhretry" " io$v_syncsts"  " io$v_novcache" " io$v_fill_7" \R*S\T\S $"io$v_fcode_fill_3" ,"io$v_rsvd_for_devdepend_2" " io$v_inhseek" " io$v_fill_8" ]R+S]T]S $"io$v_fcode_fill_4" " io$v_reverse" " io$v_nowait" ,"io$v_rsvd_for_devdepend_3" !"io$v_inhextgap" !"io$v_retension" " io$v_fill_9" ^R,S^T^S $"io$v_fcode_fill_5" &"io$v_dutux_reserved" ""io$v_mscpmodifs" " io$v_fill_10" _R-S_T_S $"io$v_fcode_fill_6" " io$v_shadow" " io$v_locate" `R.S`T`S $"io$v_fcode_fill_7" #"io$v_mscp_format" " io$v_fill_11" aR/SaTaS $"io$v_fcode_fill_8" " io$v_allhosts"  " io$v_dissolve" !"io$v_nocleanup" " io$v_fill_12" bR0SbTbS $"io$v_fcode_fill_9" " io$v_spindown" " io$v_fill_13" cR1ScTcS %"io$v_fcode_fill_10" !"io$v_forcepath" " io$v_fill_14" dR2SdTdS %"io$v_fcode_fill_11" $"io$v_est_com_path" $"io$v_lcl_src_unit" $"io$v_rtn_com_path" " io$v_fill_15" eR3SeTeS %"io$v_fcode_fill_12" !"io$v_dealc_all" !"io$v_dealc_hrn" $"io$v_dealc_entloc"  " io$v_decr_afc" " io$v_read_all" " io$v_read_hrn" ""io$v_break_conn" " io$v_fill_16" fR4SfTfS %"io$v_fcode_fill_13" " io$v_stepover" " io$v_cs_fill" " io$v_copyop" " io$v_fill_17" gR5SgTgS %"io$v_fcode_fill_14" " io$v_exists" " io$v_cbs" " io$v_booting" " io$v_fill_18" hR6ShThS %"io$v_fcode_fill_15 " " io$v_vuex_fc" " io$v_fill_19" iR7SiTiS %"io$v_fcode_fill_16" " io$v_commod" ""io$v_movetrackd" ""io$v_diagnostic" !"io$v_skpsecinh" " io$v_fill_20" jR8SjTjS %"io$v_fcode_fill_17" " io$v_deldata" " io$v_fill_21" kR9SkTkS %"io$v_fcode_fill_18" " io$v_nomrsp" " io$v_fill_22" lR:SlTlS %"io$v_fcode_fill_19" ,"io$v_rsvd_for_devdepend_4" " io$v_swap"  " io$v_opposite" " io$v_fill_23" mR;SmTmS %"io$v_fcode_fill_20" ,"io$v_rsvd_for_devdepend_5" !"io$v_clserexcp" " io$v_fill_24" nR<SnTnS %"io$v_fcode_fill_21" !"io$v_chunkdiag" ,"io$v_rsvd_for_devdepend_6" " io$v_tbc" " io$v_fill_25" oR=SoToS %"io$v_fcode_fill_22" " io$v_enarep" " io$v_fill_26" pR>SpTpS %"io$v_fcode_fill_23" " io$v_access" " io$v_create" " io$v_delete" " io$v_mount" " io$v_dmount" " io$v_remount" " io$v_movefile" " io$v_filler_8" !"io$v_rwshelved" " io$v_fill_27" qR?SqTqS %"io$v_fcode_fill_24" " io$v_binary" " io$v_packed" rR@SrTrS %"io$v_fcode_fill_25" " io$v_now" " io$v_stream" #"io$v_readercheck" #"io$v_writercheck" " io$v_norswait" " io$v_fill_28" sRASsTsS %"io$v_fcode_fill_26" &"io$v_mb_room_notify"  " io$v_readattn" " io$v_wrtattn" " io$v_setprot" ""io$v_readerwait" ""io$v_writerwait" " io$v_fill_29" tRBStTtS %"io$v_fcode_fill_27" " io$v_noecho" " io$v_timed" " io$v_cvtlow" " io$v_nofiltr" " io$v_dsablmbx" " io$v_purge" !"io$v_trmnoecho" " io$v_refresh" " io$v_escape" " io$v_extend" uRCSuTuS %"io$v_fcode_fill_28"  " io$v_canctrlo"  " io$v_enablmbx"  " io$v_noformat" !"io$v_breakthru" " io$v_newline" " io$v_fill_30" vRDSvTvS %"io$v_fcode_fill_29" ""io$v_typeahdcnt" ("io$v_reserve_rd_modem" wRESwTwS %"io$v_fcode_fill_30" " io$v_maint"  " io$v_ctrlyast"  " io$v_ctrlcast" " io$v_hangup" " io$v_outband" ""io$v_tt_connect" !"io$v_tt_discon" ""io$v_tt_process" " io$v_brdcst" " io$v_fill_31" xRFSxTxS %"io$v_fcode_fill_31" ."io$v_reserve_maint_escape_1" " io$v_loop" " io$v_unloop"  " io$v_line_off" !"io$v_set_modem" " io$v_line_on" " io$v_loop_ext" ""io$v_autxof_ena" ""io$v_autxof_dis" +"io$v_reserve_int_disable" yRGSyTyS %"io$v_fcode_fill_32" ."io$v_reserve_maint_escape_2" " io$v_include" " io$v_tt_abort" " io$v_fill_32" zRHSzTzS %"io$v_fcode_fill_33" !"io$v_posixinit" !"io$v_posixflow" {RIS{T{S %"io$v_fcode_fill_34" +"io$v_reserve_init_escape" !"io$v_set_posix" #"io$v_clear_posix" #"io$v_set_termios" " io$v_set_ptc" !"io$v_clear_ptc" !"io$v_flush_tab" $"io$v_flush_output" ""io$v_update_ptc" " io$v_fill_33" |RJS|T|S %"io$v_fcode_fill_35" +"io$v_reserve_flow_escape"  " io$v_out_xoff" " io$v_out_xon" " io$v_in_xoff" " io$v_in_xon" " io$v_fill_34" }RKS}T}S %"io$v_fcode_fill_36" ""io$v_o_nonblock" " io$v_fill_35" ~RLS~T~S %"io$v_fcode_fill_37" !"io$v_interrupt"  " io$v_multiple" " io$v_lockbuf" " io$v_noblock" " io$v_fill_36" RMSTS %"io$v_fcode_fill_38" " io$v_reserved" " io$v_abort" " io$v_synch" " io$v_fill_37" RNSTS %"io$v_fcode_fill_39" " io$v_response" " io$v_fill_38" ROSTS %"io$v_fcode_fill_40" " io$v_startup"  " io$v_shutdown" " io$v_attnast" " io$v_ctrl" )"io$v_reserve_set_modem" " io$v_set_mac" " io$v_fill_39" RPSTS %"io$v_fcode_fill_41" " io$v_rd_mem"  " io$v_rd_modem"  " io$v_rd_count" $"io$v_reserve_ctrl" !"io$v_clr_count" !"io$v_sense_mac" " io$v_fill_40" RQSTS %"io$v_fcode_fill_42" " io$v_more" !"io$v_qualified" RRSTS %"io$v_fcode_fill_43" " io$v_redirect" " io$v_accept" RSSTS %"io$v_fcode_fill_44" " io$v_setevf" " io$v_fill_41" RTSTS %"io$v_fcode_fill_45" " io$v_word"  " io$v_filler_3"  " io$v_filler_4" " io$v_setfnct" " io$v_datapath" " io$v_filler_5" " io$v_cycle" " io$v_reset" " io$v_fill_42" RUSTS %"io$v_fcode_fill_46" " io$v_filler_6"  " io$v_setcuadr"  " io$v_setbsize" !"io$v_setpoolsz" !"io$v_setenqcnt" " io$v_clear" " io$v_lpbext" " io$v_lpbint" " io$v_readcsr" RVSTS %"io$v_fcode_fill_47" !"io$v_noctswait"  " io$v_slavloop" !"io$v_nodsrwait" !"io$v_maintloop" !"io$v_lastblock" " io$v_filler_7" " io$v_intclock" " io$v_fill_43" RWSTS %"io$v_fcode_fill_48" ""io$v_lt_connect" !"io$v_lt_discon" #"io$v_lt_readport" #"io$v_lt_map_port" !"io$v_lt_rating" #"io$v_lt_sol_info" #"io$v_lt_rcv_info" ""io$v_lt_setmode" $"io$v_lt_sensemode" " io$v_fill_44" RXSTS %"io$v_lt_map_filler" %"io$v_lt_map_nodnam" %"io$v_lt_map_pornam" %"io$v_lt_map_srvnam" %"io$v_lt_map_lnknam" %"io$v_lt_map_netadr" " io$v_fill_45" RNAM nam$b_bid nam$b_bln nam$b_rss nam$b_rsl nam$l_rsa @nam$r_nop_overlay RH nam$b_rfsP nam$b_essX nam$b_esl` nam$l_esa  nam$l_rlf T nam$t_dvi*& nam$r_fid_overlay RPnam$r_did_overlay Rnam$r_wcc_overlay Rnam$r_fnb_overlay R nam$b_node nam$b_dev nam$b_dir nam$b_name nam$b_type nam$b_vernamdef$$_fill_6*& nam$l_node   nam$l_dev @ nam$l_dir ` nam$l_name  nam$l_type  nam$l_ver namdef$$_fill_7*&RSTS  nam$b_nopnam$r_nop_bits RRSTS " nam$v_pwd" " nam$v_fill_1" " nam$v_fill_2" " nam$v_synchk" ""nam$v_noconceal"  " nam$v_slparse" !"nam$v_srchxabs" " nam$v_fill_5" RSTS 0 nam$w_fid*&nam$r_fid_fields RRSTS 0 nam$w_fid_num nam$w_fid_seq nam$r_fid_rvn_overlay RRSTS  nam$w_fid_rvnnam$r_fid_rvn_fields RRSTS  nam$b_fid_rvn nam$b_fid_nmxRSTS 0 nam$w_did*&nam$r_did_fields RRSTS 0 nam$w_did_num nam$w_did_seq nam$r_did_rvn_overlay RRSTS  nam$w_did_rvnnam$r_did_rvn_fields RRSTS  nam$b_did_rvn nam$b_did_nmxRSTS   nam$l_wccnam$r_wcc_bits RRSTS  ""namdef$$_fill_1" " nam$v_ifi" ""namdef$$_fill_2 "  " nam$v_srchnmf" " nam$v_svctx" RSTS   nam$l_fnbnam$r_fnb_bits0 Rnam$r_fnb_bits1 Rnam$r_fnb_bits2 RRSTS  " nam$v_exp_ver" !"nam$v_exp_type" !"nam$v_exp_name" !"nam$v_wild_ver" ""nam$v_wild_type" ""nam$v_wild_name"  " nam$v_exp_dir"  " nam$v_exp_dev" !"nam$v_wildcard" ""namdef$$_fill_3" $"nam$v_search_list" !"nam$v_cncl_dev" !"nam$v_root_dir" " nam$v_lowver"  " nam$v_highver" " nam$v_ppf" " nam$v_node" " nam$v_quoted"  " nam$v_grp_mbr" !"nam$v_wild_dir" !"nam$v_dir_lvls" RSTS  ""namdef$$_fill_4" !"nam$v_wild_ufd" ""nam$v_wild_sfd1" ""nam$v_wild_sfd2" ""nam$v_wild_sfd3" ""nam$v_wild_sfd4" ""nam$v_wild_sfd5" ""nam$v_wild_sfd6" ""nam$v_wild_sfd7" RSTS  ""namdef$$_fill_5" !"nam$v_wild_grp" !"nam$v_wild_mbr" " nam$v_fill_6" RSTSFAB fab$b_bid fab$b_blnfab$r_ifi_overlay R fab$r_fop_overlay R@ fab$l_sts` fab$l_stv fab$l_alq fab$w_deqfab$r_fac_overlay Rfab$r_shr_overlay R fab$l_ctx fab$b_rtvfab$r_org_overlay Rfab$r_rat_overlay R fab$b_rfmfab$r_jnl_overlay R  fab$l_xab@ fab$l_nam T` fab$l_fna  fab$l_dna  fab$b_fns fab$b_dns fab$w_mrs fab$l_mrn fab$w_bls fab$b_bks fab$b_fsz fab$l_dev  fab$l_sdc@ fab$w_gbcPfab$r_acmodes_overlay RXfab$r_rcf_overlay R`fabdef$$_fill_9RSTS  fab$w_ififab$r_ifi_bits RRSTS ""fabdef$$_fill_1" " fab$v_ppf_rat"  " fab$v_ppf_ind" " fab$v_ppifi" RSTS   fab$l_fopfab$r_fop_bits RRSTS  " fab$v_asy" " fab$v_mxv" " fab$v_sup" " fab$v_tmp" " fab$v_tmd" " fab$v_dfw" " fab$v_sqo" " fab$v_rwo" " fab$v_pos" " fab$v_wck" " fab$v_nef" " fab$v_rwc" " fab$v_dmo" " fab$v_spl" " fab$v_scf" " fab$v_dlt" " fab$v_nfs" " fab$v_ufo" " fab$v_ppf" " fab$v_inp" " fab$v_ctg" " fab$v_cbt"  " fab$v_syncsts" " fab$v_rck" " fab$v_nam" " fab$v_cif" ""fabdef$$_fill_3" " fab$v_esc" " fab$v_tef" " fab$v_ofp" " fab$v_kfo" ""fabdef$$_fill_4" RSTS  fab$b_facfab$r_fac_bits RRSTS " fab$v_put" " fab$v_get" " fab$v_del" " fab$v_upd" " fab$v_trn" " fab$v_bio" " fab$v_bro" " fab$v_exe" RSTS  fab$b_shrfab$r_shr_bits RRSTS " fab$v_shrput" " fab$v_shrget" " fab$v_shrdel" " fab$v_shrupd" " fab$v_mse" " fab$v_nil" " fab$v_upi" " fab$v_fill_0" RSTS  fab$b_orgfab$r_org_bits RRSTS ""fabdef$$_fill_5" " fab$v_org" RSTS  fab$b_ratfab$r_rat_bits RRSTS " fab$v_ftn" " fab$v_cr" " fab$v_prn" " fab$v_blk" " fab$v_msb" " fab$v_fill_1" RSTS   fab$l_jnlfab$r_jnl_real_stuff RRSTS  fab$r_journal_overlay Rfab$b_ru_facilityfabdef$$_fill_7RSTS  fab$b_journalfab$r_journal_bits RRSTS  " fab$v_only_ru" " fab$v_ru" " fab$v_bi" " fab$v_ai" " fab$v_at" !"fab$v_never_ru" %"fab$v_journal_file" " fab$v_fill_3" RSTS  fab$b_acmodesfab$r_acmodes_bits RRSTS !"fab$v_lnm_mode" ""fab$v_chan_mode" ""fab$v_file_mode" %"fab$v_callers_mode" RSTS  fab$b_rcffab$r_rcf_bits RRSTS " fab$v_rcf_ru" " fab$v_rcf_ai" " fab$v_rcf_bi" " fab$v_fill_2" RRAB  rab$b_bid rab$b_blnrab$r_isi_overlay R rab$r_rop_overlay R@ rab$l_sts`rab$r_stv_overlay Rrab$r_rfa_overlay Rrabdef$$_fill_4 rab$l_ctxrabdef$$_fill_5 rab$b_rac rab$b_tmo rab$w_usz rab$w_rsz  rab$l_ubf @ rab$l_rbf ` rab$l_rhb rab$r_kbf_overlay Rrab$r_ksz_overlay R rab$b_krf rab$b_mbf rab$b_mbcrab$r_bkt_overlay R rab$l_fab T rab$l_xabRSTS  rab$w_isirab$r_isi_bits RRSTS ""rabdef$$_fill_1" " rab$v_ppf_rat"  " rab$v_ppf_ind" " rab$v_ppisi" RSTS   rab$l_roprab$r_rop_bits0 Rrab$r_rop_bits1 Rrab$r_rop_fields RRSTS  " rab$v_asy" " rab$v_tpt" " rab$v_rea" " rab$v_rrl" " rab$v_uif" " rab$v_mas" " rab$v_fdl" " rab$v_hsh" " rab$v_eof" " rab$v_rah" " rab$v_wbh" " rab$v_bio" " rab$v_cdk" " rab$v_loa" " rab$v_lim"  " rab$v_syncsts" " rab$v_loc" " rab$v_wat" " rab$v_ulk" " rab$v_rlk" " rab$v_nlk" " rab$v_kge" " rab$v_kgt" " rab$v_nxr" " rab$v_rne" " rab$v_tmo" " rab$v_cvt" " rab$v_rnf" " rab$v_eto" " rab$v_pta" " rab$v_pmt" " rab$v_cco" RSTS  ""rabdef$$_fill_6" " rab$v_eqnxt" " rab$v_nxt" " rab$v_fill_4 " RSTS  rabdef$$_fill_3 rab$b_rop1 rab$b_rop2 rab$b_rop3RSTS   rab$l_stvrab$r_stv_fields RRSTS   rab$w_stv0 rab$w_stv2RSTS 0 rab$w_rfa*&rab$r_rfa_fields RRSTS 0 rab$l_rfa0 rab$w_rfa4RSTS   rab$l_kbf  rab$l_pbf RSTS  rab$b_ksz rab$b_pszRSTS   rab$l_bkt rab$l_dctRXABALL xab$b_cod xab$b_bln xab$l_nxt@xab$r_aop_overlay RH xab$b_alnP xab$w_vol` xab$l_loc xab$l_alq xab$w_deqxaballdef$$_fill_7 xab$b_aidxab$r_rfi_overlay Rxaballdef$$_fill_8RSTS  xab$b_aopxab$r_aop_bits RRSTS " xab$v_hrd" " xab$v_onc" %"xaballdef$$_fill_5" " xab$v_cbt" %"xaballdef$$_fill_6" " xab$v_ctg" RSTS 0 xab$w_rfi*&xab$r_rfi_fields RRSTS 0 xab$w_rfi0 xab$w_rfi2 xab$w_rfi4RXABCXF xab$b_cod xab$b_bln xab$l_nxt@ xab$l_cxfsts` xab$l_cxfstvxab$r_cxfcop_overlay R xab$l_cxfbkp xab$w_cxfifi xab$b_cxfverxabcxfdef$$_fill_5xabcxfdef$$_fill_6 xab$w_cxfdeq xab$b_cxffac xab$b_cxfshr  xab$w_cxfrte0xabcxfdef$$_fill_78 xab$b_cxforg@ xab$w_cxfgbcP xab$b_cxfrtvXxabcxfdef$$_fill_8`xabcxfdef$$_fill_9*&RSTS   xab$l_cxfcopxab$r_cxfcop_bits RRSTS " xab$v_cxfrst" " xab$v_fill_13" RXABCXR xab$b_cod xab$b_bln xab$l_nxt@ xab$l_cxrsts` xab$l_cxrstvxab$r_cxrcop_overlay R xab$l_cxrbkp xab$w_cxrisi xab$b_cxrverxabcxrdef$$_fill_6xabcxrdef$$_fill_7 xab$b_cxrmbf xab$b_cxrmbc xab$w_cxrbfz  xab$l_cxrvbn@ xab$w_cxroffP xab$w_fill_8` xab$l_cxrpos0 xab$w_cxrpos4xabcxrdef$$_fill_9 xab$l_cxrcur0 xab$w_cxrcur4xabcxrdef$$_fill_10 xab$l_cxrsid0 xab$w_cxrsid4xabcxrdef$$_fill_11  xab$w_cxrcnt0 xab$b_cxrkref8 xab$b_cxrklen@ xab$l_cxrbuf`xabcxrdef$$_fill_12*&RSTS   xab$l_cxrcopxab$r_cxrcop_bits RRSTS  " xab$v_cxrrst" %"xabcxrdef$$_fill_5"  " xab$v_cxrbver" RXABDAT xab$b_cod xab$b_bln xab$l_nxt@ xab$w_rvn` xab$q_rdt R xab$q_cdt R xab$q_edt R  xab$q_bdt R` xab$q_rcd R xab$q_eff  R RS T S @ RS T S @ RS T S @ RS T S @RSTS @R STS @RXAB xab$b_cod xab$b_blnxabdef$$_fill_1 xab$l_nxt@ xab$w_rvnPxabdef$$_fill_2`xab$r_rdt_overlay RRSTS @ xab$q_rdt*&xab$r_rdt_fields RRSTS @ xab$l_rdt0 xab$l_rdt4RXABDEF1xabdef$$_fill_3*&@xabdef$$_fill_4Hxabdef$$_fill_5Pxabdef$$_fill_6`xabdef$$_fill_7xabdef$$_fill_8xabdef$$_fill_9 xab$b_bkzRXABFHC` xab$b_cod xab$b_bln xab$l_nxt@ xab$b_rfoH xab$r_fill_7 RP xab$w_lrl`xab$r_hbk_overlay Rxab$r_ebk_overlay R xab$w_ffbxabfhcdef$$_fill_5 xab$b_hsz xab$w_mrz xab$w_dxq xab$w_gbcxabfhcdef$$_fill_6*&0xab$w_verlimit@ xab$l_sbnRSTS  xab$b_atr xab$r_fill_8 RRSTS " xab$v_ftn" " xab$v_cr" " xab$v_prn" " xab$v_blk" " xab$v_fill_9" RSTS   xab$l_hbkxab$r_hbk_fields RRSTS   xab$w_hbk0 xab$w_hbk2 RS T S   xab$l_ebkxab$r_ebk_fields !R"R!S"T"S   xab$w_ebk0 xab$w_ebk2#R UCHAR_FLAGS""xab$v_wascontig" !"xab$v_nobackup" ""xab$v_writeback" ""xab$v_readcheck" ""xab$v_writcheck"  " xab$v_contigb" " xab$v_locked" " xab$v_contig" ""xab$v_reserved1" ""xab$v_reserved2" ""xab$v_reserved3" " xab$v_badacl" " xab$v_spool" ""xab$v_directory" !"xab$v_badblock"  " xab$v_markdel" !"xab$v_nocharge" " xab$v_erase"  " xab$v_fill_15" $RXABITM xab$b_cod xab$b_bln xab$l_nxt@xab$l_itemlist` xab$b_modehxab$b_itm_fill1*&xab$l_itm_fill2*&%R xab_rcf_flags" xab$v_rcf_ru" " xab$v_rcf_ai" " xab$v_rcf_bi" ""xab$v_rcf_nopad"  " xab$v_fill_16" &R xabnetextprot@ xab$r_fill_17 'Rxab$w_owner_acc xab$w_group_acc0xab$w_world_acc(R'S(T(S xab$w_system_acc xab$r_fill_18 )R*R)S*T*S #"xab$v_net_noread" $"xab$v_net_nowrite" &"xab$v_net_noexecute" %"xab$v_net_nodelete" %"xab$v_net_noappend" ("xab$v_net_nodirectory" %"xab$v_net_noupdate" %"xab$v_net_nochange" %"xab$v_net_noextend"  " xab$v_fill_19" +R XABNETDAPVER( xab$b_ver_dap xab$b_ver_eco xab$b_ver_cus xab$b_ver_dsv xab$b_ver_csv,R XABNETCAPDEF8#"xab$v_cap_filall" #"xab$v_cap_seqorg" #"xab$v_cap_relorg" $"xab$v_cap_fill_21" #"xab$v_cap_extend" #"xab$v_cap_seqfil" #"xab$v_cap_ranrrn" #"xab$v_cap_ranvbn" #"xab$v_cap_rankey" $"xab$v_cap_fill_22" #"xab$v_cap_ranrfa" #"xab$v_cap_idxorg" #"xab$v_cap_swmode" #"xab$v_cap_append" #"xab$v_cap_submit" $"xab$v_cap_fill_23"  " xab$v_cap_mds" $"xab$v_cap_display" #"xab$v_cap_msgblk" #"xab$v_cap_unrblk" #"xab$v_cap_bigblk" #"xab$v_cap_dapcrc" #"xab$v_cap_keyxab" #"xab$v_cap_allxab" #"xab$v_cap_sumxab" &"xab$v_cap_directory" #"xab$v_cap_timxab" #"xab$v_cap_proxab" $"xab$v_cap_fill_24" #"xab$v_cap_fopspl" #"xab$v_cap_fopscf" #"xab$v_cap_fopdlt" $"xab$v_cap_fill_26" #"xab$v_cap_seqrac" !$"xab$v_cap_fill_27" "#"xab$v_cap_bitopt" #$"xab$v_cap_warning" $#"xab$v_cap_rename" %%"xab$v_cap_wildcard" &#"xab$v_cap_gngopt" '#"xab$v_cap_nammsg" (#"xab$v_cap_segmsg" )&"xab$v_cap_chgattcls" *&"xab$v_cap_chgtimcls" +&"xab$v_cap_chgprocls" ,&"xab$v_cap_chgnamcls" -&"xab$v_cap_modattcre" .%"xab$v_cap_nam3part" /&"xab$v_cap_chgattren" 0&"xab$v_cap_chgtimren" 1&"xab$v_cap_chgproren" 2&"xab$v_cap_ctlblkcnt" 3%"xab$v_cap_octalver" 4 " xab$v_fill_20" 5-RXABJNL xab$b_cod xab$b_bln xab$l_nxt@xab$b_xabjnl_typeHxabjnldef$$_fill_5Pxab$r_jnl_flags_overlay .R` xab$l_jnl_fabxab$l_volnam_bufxab$w_volnam_sizxab$w_volnam_lenxab$q_jnl_verify_cdate*& xab$l_jnlidx xab$l_backup_seqno@xab$q_jnl_mod_time*&xabjnldef$$_fill_7xabjnldef$$_fill_8xabjnldef$$_fill_9xabjnldef$$_fill_10xabjnldef$$_fill_11 xabjnldef$$_fill_12@xabjnldef$$_fill_13`xabjnldef$$_fill_14/R.S/T/S xab$w_jnl_flagsxab$r_jnl_flags_bits 0R1R0S1T1S )"xab$v_journal_disabled" $"xab$v_backup_done"  " xab$v_fill_14" 2RXABKEY  xab$b_cod xab$b_bln xab$l_nxt@ xab$b_ianH xab$b_lanP xab$b_danX xab$b_lvl` xab$b_ibsh xab$b_dbsp xab$l_rvbxab$r_flg_overlay 3R xab$b_dtp xab$b_nsg xab$b_nul xab$b_tks xab$b_ref xab$w_mrl xab$w_ifl xab$w_dflxab$r_pos_overlay 4Rpxab$r_siz_overlay 5Rxabkeydef$$_fill_11 xab$l_knm xab$l_dvbxab$r_typ_overlay 6R@ xab$b_prologHxabkeydef$$_fill_12Pxabkeydef$$_fill_13` xab$l_coltbl xab$l_colsiz xab$l_colnamxabkeydef$$_fill_14xabkeydef$$_fill_15xabkeydef$$_fill_167R3S7T7S  xab$b_flgxab$r_flg_bits0 8Rxab$r_flg_bits1 9R:R8S:T:S " xab$v_dup" " xab$v_chg" " xab$v_nul" ""xab$v_idx_ncmpr" %"xabkeydef$$_fill_5" ""xab$v_key_ncmpr"  " xab$v_fill_12" ;R9S;T;S %"xabkeydef$$_fill_6" %"xabkeydef$$_fill_7" %"xabkeydef$$_fill_8" %"xabkeydef$$_fill_9" &"xabkeydef$$_fill_10" ""xab$v_dat_ncmpr" <R4S<T<S  xab$w_pos*&xab$r_pos_fields =R>R=S>T>S  xab$w_pos0 xab$w_pos1 xab$w_pos20 xab$w_pos3@ xab$w_pos4P xab$w_pos5` xab$w_pos6p xab$w_pos7?R5S?T?S @ xab$b_siz*&xab$r_siz_fields @RAR@SATAS @ xab$b_siz0 xab$b_siz1 xab$b_siz2 xab$b_siz3 xab$b_siz4( xab$b_siz50 xab$b_siz68 xab$b_siz7BR6SBTBS @ xab$b_typ*&xab$r_typ_fields CRDRCSDTDS @ xab$b_typ0 xab$b_typ1 xab$b_typ2 xab$b_typ3 xab$b_typ4( xab$b_typ50 xab$b_typ68 xab$b_typ7ER xabprodefxab$r_xabprodef_bits FRGRFSGTGS " xab$v_noread" " xab$v_nowrite" " xab$v_noexe" " xab$v_nodel"  " xab$v_fill_10" HRXABPRO xab$b_cod xab$b_bln xab$l_nxt@xab$r_pro_overlay IRP xab$b_mtaccXxab$r_prot_opt_overlay JR`xab$r_uic_overlay KRxab$r_prot_mode_overlay LR xab$l_aclbuf xab$w_aclsiz xab$w_acllen xab$l_aclctx  xab$l_aclsts@xabprodef$$_fill_10`xabprodef$$_fill_11xabprodef$$_fill_12xabprodef$$_fill_13xabprodef$$_fill_14xabprodef$$_fill_15xabprodef$$_fill_16 xabprodef$$_fill_17@xabprodef$$_fill_18`xabprodef$$_fill_19xabprodef$$_fill_20xabprodef$$_fill_21MRISMTMS  xab$w_proxab$r_pro_bits NRORNSOTOS " xab$v_sys" " xab$v_own" " xab$v_grp" " xab$v_wld" PRJSPTPS xab$b_prot_optxab$r_prot_opt_fields QRRRQSRTRS ""xab$v_propagate" " xab$v_fill_11" SRKSSTSS   xab$l_uicxab$r_uic_fields TRURTSUTUS   xab$w_mbm xab$w_grpVRLSVTVS @xab$q_prot_mode*&xab$r_prot_mode_fields WRXRWSXTXS xab$b_prot_modeYR SYTYSXABRDT xab$b_cod xab$b_bln xab$l_nxt@ xab$w_rvnPxabrdtdef$$_fill_6` xab$q_rdt ZR[RZS[T[S @\RXABRU xab$b_cod xab$b_bln xab$l_nxt@xab$r_ru_flags_overlay ]RPxabrudef$$_fill_5`xab$l_ru_handlexab$l_ru_handle_joinedxabrudef$$_fill_7xabrudef$$_fill_8xabrudef$$_fill_9xabrudef$$_fill_10 xabrudef$$_fill_11@xabrudef$$_fill_12`xabrudef$$_fill_13^R]S^T^S xab$w_ru_flagsxab$r_ru_flags_bits _R`R_S`T`S " xab$v_nojoin" " xab$v_fill_21" aRXABSUM` xab$b_cod xab$b_bln xab$l_nxt@ xab$b_noaH xab$b_nokP xab$w_pvnbRXABTRM  xab$b_cod xab$b_bln xab$l_nxt@ xab$l_itmlst`xab$w_itmlst_lenpxabtrmdef$$_fill_5xabtrmdef$$_fill_6xabtrmdef$$_fill_7xabtrmdef$$_fill_8xabtrmdef$$_fill_9xabtrmdef$$_fill_10cRScTcS tm  tm_sec  tm_min@tm_hour`tm_mday tm_montm_yeartm_wdaytm_ydaytm_isdstdRtbufferproc_user_time proc_system_time@child_user_time`child_system_timeeRtimebP time millitm0timezone@dstflagDECC$GA___CTYPEdecc$ga___ctype-)& rcsid*&::9< tt_channel @sys_in T Hbuffer*& Hstrdes T Pmonths3/0 ɛ?,܆⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STARLETD+t⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1 LIB$ROUTINES>* 6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1UNIXIO<)a6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1TIME>()G6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STRING<'6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STAT=&b⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1SSDEFǛ>%⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1RMSDEFA$@[⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1 XABTRMDEFA#H⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1 XABSUMDEFɛ@"@t6⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1XABRUDEFA! "⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1 XABRDTDEFA ` ⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1 XABPRODEFʛAю⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1 XABKEYDEFA ⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1 XABJNLDEFAt⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1 XABITMDEFǛAL⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1 XABFHCDEF>*⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1XABDEFA@G⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1 XABDATDEFʛAc⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1 XABCXRDEFAfэ⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1 XABCXFDEFA` ⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1 XABALLDEF;⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1XAB;]_⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1RAB; y⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1NAM;:p⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1FAB; y⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1NAM;⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1RMS=r⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1IODEF=J6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1ERRNO?%C6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1DESCRIP= )j56ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1CTYPE> )G6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STRING> 96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB= ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO; 'PUBLIC$DISK:[NBEEBE.BIBCLEAN]CUSTOM.H;1<6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STAT=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO> 6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1UNIXIO>96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB> j6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1LIMITS=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO<C N(PUBLIC$DISK:[NBEEBE.BIBCLEAN]CONFIG.H;12;@w5 'PUBLIC$DISK:[NBEEBE.BIBCLEAN]VAXVMS.C;8  b |c &      |  d 7 0  u    |      }            p  # p$   c     m  {  h  j    N  s      ! Z " c # \ $ b  %   & v ' d ( } )  * N +  , ;  8VMS_READ  VMS_UNGETC ` VMS_GETENV dGETJPI 8GETLOGIN X DECC$SYSTEM TELL UNLINK <UTIME$CODE$DATAЬݬ DECC$STRLENPԞ|PPĐ}|SYS$OPENPѭCMA$TIS_ERRNO_GET_ADDR`Џ1ݭ DECC$STRLENPЭ SYS$BINTIMPѭ# SYS$CLOSEPCMA$TIS_ERRNO_GET_ADDR`Џ8 SYS$CLOSEPѭCMA$TIS_ERRNO_GET_ADDR `Џ PPЭPP$,$P$pbibclean-3.07/vms/vax/strist.obj0000644000156700015670000000501706142246431015540 0ustar beebebeebeSTRISTV1.0 2-MAY-1996 17:07DEC C V4.0-000R STRISTstristr noname.20noname.48noname.5Dnoname.7Dstristr1dnoname.8)mnoname.9xnoname.6noname.3 lengths  sub    &mR_iobuf _cnt _ptr  @_base  `_flag h_file p_pad1 x_pad2R @R @ quot  remR @ quot  remRstat st_dev  st_ino*&Pst_mode`st_nlink st_uid st_gidst_rdev st_sizest_atimest_mtime0st_ctimeP st_fab_rfmX st_fab_rat` st_fab_fszh st_fab_mrs rcsid*&::9> )G6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STRING< iF(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XSTRING.H;1= )j56ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1CTYPE; B'PUBLIC$DISK:[NBEEBE.BIBCLEAN]XCTYPE.H;1; 'PUBLIC$DISK:[NBEEBE.BIBCLEAN]CUSTOM.H;1<6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STAT=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO> 6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1UNIXIO>96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB> j6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1LIMITS=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO< (PUBLIC$DISK:[NBEEBE.BIBCLEAN]CONFIG.H;11;p'PUBLIC$DISK:[NBEEBE.BIBCLEAN]STRIST.C;1  \ |] &      |  d 7 0  u d            }   $STRNICMP DECC$STRLEN STRISTR$CODE:$DATAP$Id: strist.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $P ^ݬ DECC$STRLENPլaլ ޼P`PPЬI޼P`PP5ݭݬݬSTRNICMPP ЬPPP޼P`PPPЭPbibclean-3.07/vms/vax/README0000644000156700015670000000345506142252056014400 0ustar beebebeebe%% /u/sy/beebe/tex/bibclean/2-11/vms/vax/README, Thu May 2 18:22:53 1996 %% Edit by Nelson H. F. Beebe ================================ bibclean for DEC VAX VMS systems ================================ %% Author: %% Nelson H. F. Beebe %% Center for Scientific Computing %% Department of Mathematics %% University of Utah %% Salt Lake City, UT 84112 %% USA %% Email: beebe@math.utah.edu (Internet) %% WWW URL: http://www.math.utah.edu/~beebe bibclean has been successfully built and tested on DEC VAX VMS 6.1 with the DEC C V4.0-000 compiler. The associated files are provided in the vms/vax subdirectory. To install it on your system, copy the bibclean.exe and top-level bibclean.ini files to a suitable location, create a foreign command symbol to point to it, and then use it as documented in the UNIX manual pages. UNIX/DOS style command-line redirection of standard input and standard output, and command-line file wild-carding, are supported. The executable program has been linked with static libraries, so that it should be usable on other versions of VMS as well as 6.1. In the event that it is not, you can rebuild it from the *.obj files included in the distribution, even if you don't have a license for the C compiler, just by executing the LINK command at the end of the vmsbuild.com file. To recompile and link bibclean on your VAX VMS system: $ @vmsmake To run the validation suite, edit the vmstest.com file to change the foreign command symbol definition near the beginning from $ bibclean :== $public$disk:[nbeebe.bibclean]bibclean.exe to something appropriate for your system, then execute the file: $ @vmstest You will need all of the test*.* files, and the bibclean.ini file, from the top level directory in the bibclean distribution to do this. bibclean-3.07/vms/vax/vmsmake.com0000644000156700015670000000553606142240553015664 0ustar beebebeebe$ !===================================================================== $ ! Command file to build bibclean on VAX VMS (6.1) $ ! [02-May-1996] $ !===================================================================== $ ! This should be set system-wide, but is not on some systems; $ ! without it, the compiler cannot find header files. $ define /log DECC$LIBRARY_INCLUDE SYS$LIBRARY $ ! $ CFLAGS :== "/DEBUG=ALL /INCLUDE_DIRECTORY=([],sys$library:) /NOOPTIMIZE /WARNING /STANDARD=PORTABLE" $ ! We use /noshareable so the .exe file is independent of VMS release $ ! numbers $ LFLAGS := "/debug /noshareable" $ LFLAGS := "/noshareable" $ write sys$error "============================================================" $ write sys$error "Compiling bibclean.c" $ cc 'CFLAGS' bibclean.c $ write sys$error "============================================================" $ write sys$error "Compiling chek.c" $ cc 'CFLAGS' chek.c $ write sys$error "============================================================" $ write sys$error "Compiling do.c" $ cc 'CFLAGS' do.c $ write sys$error "============================================================" $ write sys$error "Compiling fix.c" $ cc 'CFLAGS' fix.c $ write sys$error "============================================================" $ write sys$error "Compiling fndfil.c" $ cc 'CFLAGS' fndfil.c $ write sys$error "============================================================" $ write sys$error "Compiling isbn.c" $ cc 'CFLAGS' isbn.c $ write sys$error "============================================================" $ write sys$error "Compiling keybrd.c" $ cc 'CFLAGS' keybrd.c $ write sys$error "============================================================" $ write sys$error "Compiling match.c" $ cc 'CFLAGS' match.c $ write sys$error "============================================================" $ write sys$error "Compiling option.c" $ cc 'CFLAGS' option.c $ write sys$error "============================================================" $ write sys$error "Compiling romtol.c" $ cc 'CFLAGS' romtol.c $ write sys$error "============================================================" $ write sys$error "Compiling strist.c" $ cc 'CFLAGS' strist.c $ write sys$error "============================================================" $ write sys$error "Compiling vaxvms.c" $ cc 'CFLAGS' vaxvms.c $ write sys$error "============================================================" $ write sys$error "Compiling vmswild.c: Expect 16 warnings and 4 informational messages" $ cc 'CFLAGS' vmswild.c $ write sys$error "============================================================" $ write sys$error "Linking bibclean: Expect 1 %W message about system()--ignore it" $ link /exe=bibclean.exe 'LFLAGS' - bibclean.obj, chek.obj, do.obj, fix.obj, fndfil.obj, - isbn.obj, keybrd.obj, match.obj, option.obj, romtol.obj, - strist.obj, vaxvms.obj, vmswild.obj, - sys$library:vaxcrtl.olb/lib bibclean-3.07/vms/vax/chek.obj0000644000156700015670000005204006142246424015122 0ustar beebebeebeCHEKV1.0 2-MAY-1996 17:03DEC C V4.0-000PP????????EP??????????"P9ABCDEFGHIJKLMNOPQRSTUVWXYZ2345678P9ABCDEFGHIJKLMNOPQRSTUVWXYZ2345678TP P??????PUnexpected value in ``%f = %v''PNon-zero parenthesis level in ``%f = %v''PIncomplete CODEN %c%c%c%c%c should be %c%c%c%c%c%c in ``%%f = %%v''PSuspicious year in ``%f = %v''OPString length exceeds standard BibTeX limit for ``%f'' entry0PUnexpected citation key ``%k'',PIVXP $$PS. J.R CHEK` bad_CODENPS.J.PSJPSr.PSrPJr. PJrPInvalid checksum for ISSN %c%c%c%c-%c%c%c%c in ``%%f = %%v''P??????????rPInvalid checksum for ISBN %s in ``%%f = %%v''8PInvalid checksum for CODEN %c%c%c%c%c%c in ``%%f = %%v''P$Id: chek.c,v 1.2 1996/04/26 01:17:05 beebe Exp beebe $`P^RЬPPP? ЬPPPЬPPP?PЬPPPЬPPP?PЬPPPЬPPP?PЬPPPЬPPP?PЬPPPЬPPP?PЬnoname.3noname.4noname.6noname.7noname.9 noname.10 noname.12 noname.13 noname.15  noname.16  noname.18, noname.19^ noname.20 ٫msg*&998 CODEN `bad_ISBN noname.23 noname.24 noname.25ns*& t*& ٟmsg*&998 ISBN bad_ISSNPPPݭݭݭݭݭݭ8 DECC$DSPRINTFWARNING^Rώ DECC$STRCPYЬP DECC$STRLENPѭЭݭЬP DECC$MEMCPYISBN_HYPHENATEr DECC$DSPRINTFWARNINGP^RЬPPP? ЬPPPЬPPP?PЬPPPЬPPP?PЬPPPЬPPP?PЬPPPЬPPP?PЬPPPЬPPP?PЬPPPЬPPP?P noname.28 noname.290 noname.31< noname.32P noname.34\ noname.35p noname.37| noname.38 noname.40 noname.41 noname.43 noname.44 noname.46 noname.47 noname.49 noname.507 noname.51 ٟmsg*&==< ISSN H8 check_chapter\ noname.53a noname.54*d check_CODEN noname.56" check_inodes noname.58 noname.59 noname.60 buflog R ٚbufout RPPPЬPPP?PЬPPPݭݭݭݭݭݭݭݭ  DECC$DSPRINTFWARNING^ CURRENT_VALUE PATTERN_NAMES3CHECK_PATTERNSPP P^' \\ϟ\\ CURRENT_VALUE P^STDLOG_ON_STDOUTSTDLOG\l\ \\ DECC$FSTATDECC$GA_STDOUT\м\ \\ DECC$FSTATѭ˭C>\\\\\\` check_ISSN noname.64" check_junior noname.67 check_junior1 check_junior2 noname.71 noname.72 noname.70 noname.75 noname.68 noname.69  check_junior3 noname.79 check_junior4X noname.80<X noname.81l noname.78 noname.82 noname.77 noname.73 noname.74 noname.83 noname.66 noname.76b_levelkn last_name  CURRENT_VALUEISBN_HYPHENATEc \\w\\ CURRENT_VALUE/ P^o\\7 \\ CURRENT_VALUE P^RЭP޼Q@aPP1 ЭP޼Q@aPP GP BP,-P{ P}1PP1PP1խ11խ1ЭP@QЭP@ DECC$STRLENPЭP@ЭQЬPASTRNICMPPdPPЭP@ϻЭQЬPA DECC$STRCSPNP-PPPPЭP޼Q@aPP1PP^Э\~L? check_key noname.86 check_key5 check_key6. noname.88/0 noname.87P0 noname.90I noname.85I noname.89kL check_lengthp noname.92p noname.93n%t check_month check_month7 noname.97 check_month8 noname.98$ noname.100 noname.96T PATTERN_NAMES\llP CURRENT_KEYЭ\~L PATTERN_NAMES\lSTRICMPP/ CURRENT_KEYЭ\~L PATTERN_NAMES3\lCHECK_PATTERNSP  WARNING\\Э\~L PATTERN_NAMES\lP^ CHECK_VALUESѬ WARNINGP ^ CURRENT_VALUE DECC$STRLENPѭTЭ\~L MONTH_PAIR\l@P CURRENT_VALUEЭ\~L MONTH_PAIR3\lSTRICMPP>\\Э\~L MONTH_PAIR\l CURRENT_VALUE PATTERN_NAMES 3 noname.95 noname.101  noname.99mn  check_number0 noname.1035 noname.104*8 check_otherT noname.107T check_other9u check_other10 noname.109( noname.108L noname.111 noname.106 noname.110k check_pages noname.113 noname.114*check_patterns  noname.117CHECK_PATTERNSPPw P^ CURRENT_VALUE PATTERN_NAMES3CHECK_PATTERNSPPK P^Э\~L PATTERN_NAMES\lhP CURRENT_FIELDЭ\~L PATTERN_NAMES\lSTRICMPP+ CURRENT_VALUEЭ\~L PATTERN_NAMES3\lCHECK_PATTERNSPP\\Э\~L PATTERN_NAMES\lP^ CURRENT_VALUE PATTERN_NAMES3CHECK_PATTERNSPPϛP ^ЬPѭ1޼PЭQްP~A`P`ݬ check_patterns11# check_patterns127 check_patterns13t  noname.120  noname.121W  noname.119q  noname.118  noname.123  noname.116  noname.124  noname.125  noname.122k pt R value   check_volume  noname.127  noname.128*  check_year  noname.1304  noname.1334  check_year14U  check_year15 MATCH_PATTERNPq޼PЭQ`P~AP`W޼PЭQ`P~APްP`PP?!޼PЭQ`P~AP`PPERROR޼PЭQ`P~AP`WARNING0PPЬPѭ1UЬPՠPPP^ CURRENT_VALUE PATTERN_NAMES$3CHECK_PATTERNSPPϋP^ CURRENT_VALUE PATTERN_NAMES,3CHECK_PATTERNSP1P_ CURRENT_VALUE\\\\qDECC$GA___CTYPEP\ʏ\L`\ʏ\\? ߭ݭ DECC$STRTOLPѭ ѭ3   noname.135  noname.136;  noname.134  noname.137i  noname.138  noname.132  noname.131p q  year CODEN_character_value  noname.140  noname.143  noname.145,  noname.1478  noname.1488  noname.1468  noname.1448  noname.1428  noname.141c@  copy_element`  noname.151` copy_element16  noname.152W  noname.153  noname.154  noname.150  noname.155  noname.157  noname.158[  noname.156h  noname.159 ks kt target  nt source  nsWARNINGЭ P\\\\P^яa!ѬzÏaPPPecPяAѬZÏAPPP:81Ѭ91PPPѬ0 $PЏPP ^ѭ~PѭPsЭP޼ Q@aPP-FDECC$GA___CTYPERЭP޼ Q@aPʏP@bRʏRRЭQQRR޼SЭR޼ PB`AcRRѭ RѭRЭR޼SBcЭR޼ SBcRR-)DECC$GA___CTYPEPЭR޼ SBcRʏRB`RʏRRCRRЭR޼ SBcRR-DECC$GA___CTYPEPЭR޼ SBcRʏRB`Rʏ/p incomplete_CODEN  noname.161 ٸmsg*&DDC CODEN   is_CODEN_char*  noname.163@  noname.164f is_CODEN_char17|  noname.167 is_CODEN_char18  noname.169  noname.168  noname.166  noname.165cn  is_ISBN_charRRíRRP^RЬPPPЬPPPЬPPPЬPPPЬPPPЬPPPЬPPPЬPPPЬPPPЬPPPЬPPP DECC$DSPRINTFWARNINGP^QլDDѬ- 1uD5DECC$GA___CTYPERˏP@bPʏPPDPPDE;PD1DECC$GA___CTYPERˏP@bPʏPPDPPD PP^QլHH0Ѭ-DECC$GA___CTYPERˏP@bPʏPP 11H   noname.171 noname.173 noname.1726is_ISBN_char19L noname.176 noname.179is_ISBN_char20 noname.178 noname.177 noname.175 noname.174cn is_ISSN_char noname.181 noname.183 noname.182is_ISSN_char210 noname.186j noname.189jis_ISSN_char22| noname.188| noname.187| noname.185 noname.184cn parse_list noname.191 parse_list23 noname.192' noname.194 noname.195 noname.193 pd Rs  is_name_char  validate = parse_element noname.198 noname.199Z noname.200Z noname.197p noname.201n pd Rtparse_separator noname.204 noname.205parse_separator24 noname.206parse_separator25 noname.209 noname.208 noname.207>5DECC$GA___CTYPERˏP@bPʏPPHPPHYOPH EDECC$GA___CTYPERˏP@bPʏPPѬX ѬxHPPH PP^QլLL0Ѭ-DECC$GA___CTYPERˏP@bPʏPP 11L5DECC$GA___CTYPERˏP@bPʏPPLPPLYOPLEDECC$GA___CTYPERˏP@bPʏPPѬX ѬxLPPL PP^ЬЬխݭݭ P`PP noname.210V noname.211V noname.203} noname.212} noname.213n paren_level pd R  unexpected noname.215^ЬQЬPРЬPްP`PPiݭЬPްP`PP޼P`P`PHPPPЬQPPЬPްP`PP!ݭЬPްP`PPހP`P`PЬRЬQЬPàPP P ^ЬQЬPРЬPްP`PP1ݭЬPްP`PP޼P`P`Pխ1ЬPްP`PP( PP#ЬPްP`PP)PPխPPЬQPPЬPްP`PP+ݭЬPްP`PP޼P`P`P1zխ1rЬRЬQЬPàPP խ 6WARNINGP^NWARNINGP ^SSvalidate_CODEN noname.218validate_CODEN26validate_CODEN27& noname.219validate_CODEN28A noname.222+A noname.221A noname.220aA noname.223W noname.217gvalidate_CODEN29 noname.224 noname.226 noname.227 noname.225 noname.228 CODEN*&checksumk nleft the_CODEN n validate_ISBN noname.231validate_ISBN30 noname.234  noname.2350 noname.236@ noname.232Fvalidate_ISBN31j noname.240p noname.241 noname.242 noname.243W noname.238 noname.237 DECC$STRCPYݬݬ|PЭRBRRzPѭ*ЭP@PPϱPRЭP@PRRR3Pѭ+zP{"PQPPRBRЭP@ӭPRP PPЭP@PP DECC$STRLENP!zP{"PQPPRBϨ DECC$STRLENPխ Ϻ$^ϓ DECC$STRCPYݬݬ oPЭP@PP1Pѭ JЭP@PPXЭP@PPx ЭP@P0PPŭPPP]ѭ WЭP@PPXЭP@PPx ЭP@P0PP noname.244 noname.230 noname.245 noname.246 noname.247checksum ISBN*& k nleftthe_ISBN n- validate_ISSN  noname.250 validate_ISSN32J noname.253P noname.254` noname.255t noname.251zvalidate_ISSN33 noname.259 noname.260 noname.261 noname.262W noname.257 noname.256 noname.263 noname.249 noname.264 noname.265 noname.266checksumk nleft ISSN*& the_ISSN n1 `/  X # 0&  1  J 3:  6   -  1   8   *  & + 3 + w A+ %    R_iobuf _cnt _ptr  @_base  `_flag h_file p_pad1 x_pad2R @ R @ quot  rem R @ quot  rem RS TS T Sstat st_dev  st_ino*&Pst_mode`st_nlink st_uid st_gidst_rdev st_sizest_atimest_mtime0st_ctimeP st_fab_rfmX st_fab_rat` st_fab_fszh st_fab_mrs R  NO YES R s_pattern@pattern  message RSTSTSTS s_parse_data is_name_char  s  @token ` token_lengthRSTSs_pattern_table`patterns  T current_size@ maximum_sizeRs_pattern_names@ name  table TR s_name_pair@old_name  new_name DECC$GA_STDOUTdecc$ga_stdout TDECC$GA___CTYPEdecc$ga___ctype-)& CHECK_VALUES check_values  T CURRENT_FIELD current_field*& CURRENT_KEY current_key*& CURRENT_VALUE current_value*& MONTH_PAIR month_pair3/T PATTERN_NAMES pattern_names3/T STDLOGstdlog TSTDLOG_ON_STDOUTstdlog_on_stdout  T rcsid*&887 8fmt*&998 rfmt*&..- fmt*&==<juniors3/  fmt*&DDCD n_significantH n_significantL n_significantP multiplier*&: &PUBLIC$DISK:[NBEEBE.BIBCLEAN]TOKEN.H;1:`0.&PUBLIC$DISK:[NBEEBE.BIBCLEAN]MATCH.H;1<e(PUBLIC$DISK:[NBEEBE.BIBCLEAN]YESORNO.H;1>)G6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STRING<iɀF(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XSTRING.H;1< 6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STAT: WO0&PUBLIC$DISK:[NBEEBE.BIBCLEAN]XSTAT.H;1= )j56ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1CTYPE; B'PUBLIC$DISK:[NBEEBE.BIBCLEAN]XCTYPE.H;1; 'PUBLIC$DISK:[NBEEBE.BIBCLEAN]CUSTOM.H;1<6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STAT=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO> 6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1UNIXIO>96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB> j6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1LIMITS=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO< (PUBLIC$DISK:[NBEEBE.BIBCLEAN]CONFIG.H;119)j=h%PUBLIC$DISK:[NBEEBE.BIBCLEAN]CHEK.C;1  \ |] &      |  d 7 0  u             d     }Y        E ` CHECK_ISSN  CHECK_JUNIOR  CHECK_KEY L CHECK_LENGTH t CHECK_MONTH  CHECK_NUMBER 8 CHECK_OTHER  CHECK_PAGES CHECK_PATTERNS CHECK_VOLUME CHECK_YEAR $CODEh$DATAzP{ PQPPRR RRЭRBRR1: DECC$STRLENP խ όP$^n DECC$STRCPYݬݬ ?PЭP@PP1PѭNЭP@PPXЭP@PPx ЭP@P0PPPĭPPP^ѭWЭP@PPXЭP@PPx ЭP@P0PPzP{ PQPPRR RRЭRBRR16 DECC$STRLENPխ `bibclean-3.07/vms/vax/fix.obj0000644000156700015670000004027406142246426015006 0ustar beebebeebeFIXV1.0 2-MAY-1996 17:04DEC C V4.0-000R FIXPbrace_font_changesnoname.3brace_font_changes1brace_font_changes2noname.4brace_font_changes3LP"FP and @P and :P and 8P"2P"" # ,P # ""'P # ""P" #  P}P{P P\ttP\slP\sf P\rmP\itP\emP\bfP$Id: fix.c,v 1.4 1996/04/26 01:36:27 beebe Exp beebe $PP^ SHARED_STRING\\Э\L CURRENT_VALUE\\1Э\L CURRENT_VALUE\\{\}1?1l\\ѭ1(\L CURRENT_VALUE\\DECC$GA___CTYPEP\ʏ\L`\ʏ\\*\\DECC$GA___CTYPEP\ʏ\L`\ʏ\\noname.9 noname.10noname.8( noname.11 noname.13brace_font_changes4 noname.14(noname.7noname.5brace_font_changes5 noname.15noname.6n noname.12* noname.16Ononame.2j noname.17b_levelkmneed_close_brace Rp s l fix_author֘\\{1Pݭ DECC$STRNCMPP1Ϻݭ DECC$STRNCMPPsϧݭ DECC$STRNCMPP\ϔݭ DECC$STRNCMPPEρݭ DECC$STRNCMPP.nݭ DECC$STRNCMPP[ݭ DECC$STRNCMPPЭPP\\{@4ѭѭЭPP\\}@\\PPЭPЭ\L CURRENT_VALUE@\\\\Э\L CURRENT_VALUE\\15Э\Lݭ CURRENT_VALUE DECC$STRCPY^R FIX_NAMESЬ1(ݬ noname.19 noname.21 noname.23 fix_author6 fix_author7 noname.25 noname.26 noname.24 noname.29 noname.272 noname.28\ noname.305 noname.22D noname.31t noname.33} noname.34 noname.32 fix_author8/ DECC$STRCHRP Ь1PЭP޼Q@aPPuЭP޼Q@aPP,/P{P}3PPP)PPխЭP޼Q@aPPPPPЭP޼Q@aPPխ Ь1PPPDECC$GA___CTYPEQPʏP@aPʏPP,PPPDECC$GA___CTYPEQPʏP@aPʏPPݭ8 DECC$STRCPYj8 DECC$STRCATݬ CHECK_JUNIORP3L8 DECC$STRCATݬ8 DECC$STRCAT/8 DECC$STRCATPݬ8 DECC$STRCAT8ݬ noname.35 noname.36$ noname.20ab_levelp  pcomma  author , fix_month` noname.39` fix_month9| noname.40| fix_month10 noname.43 fix_month11 fix_month12R$ noname.44$ noname.45@ noname.42] noname.41 DECC$STRCPYPP^ SHARED_STRING\\ CURRENT_VALUE\\߭ݭt Pխ1ѭЭPP\\쐽`1PЭ\~L MONTH_PAIR\l1Э\~L MONTH_PAIR\l DECC$STRLENPtݭݭЭ\~L MONTH_PAIR\lSTRNICMPPRKݭ DECC$STRCPYЭ\~L MONTH_PAIR3\lݭ DECC$STRCAT&ݭ DECC$STRCATݭ DECC$STRCHRP\\Э\~L MONTH_PAIR\l1Tݭݭݭ DECC$STRNCPY\\߭ݭZ Pխ1] noname.46z noname.38 noname.47 noname.48 noname.49 noname.50k token_lengthp s  token  fix_namelist; noname.52@ noname.53t noname.56 SHARED_STRING\\\\ SHARED_STRING\\ώ\L DECC$STRCMPP \Lmݭ DECC$STRNCMPPЭ\ CURRENT_VALUE DECC$STRCPYݭ CURRENT_VALUE DECC$STRCPY^ CURRENT_VALUE DECC$STRLENPP CURRENT_VALUE\\"\L CURRENT_VALUE\\"1P DECC$STRCPY\L CURRENT_VALUE1%\L CURRENT_VALUEϱ DECC$STRNCMPPp\L CURRENT_VALUE\Ltfix_namelist13fix_namelist14n noname.57fix_namelist15c noname.59 noname.58 CURRENT_VALUE FIX_AUTHORP FIX_PERIODSP DECC$STRCATm DECC$STRCAT\ L CURRENT_VALUE\\\\~SCRIBEu\L CURRENT_VALUE\\;c\L CURRENT_VALUE\L CURRENT_VALUE FIX_AUTHORP FIX_PERIODSP DECC$STRCAT DECC$STRCAT\ L CURRENT_VALUE\\\\1\L CURRENT_VALUE FIX_AUTHORP FIX_PERIODSP DECC$STRCATρ noname.60 noname.55 noname.54namelist*&mnv fix_pages noname.63 fix_pages16- fix_pages17 DECC$STRCAT CURRENT_VALUE DECC$STRCPY^ \L CURRENT_VALUE\\1P\L CURRENT_VALUE\\-1+cDECC$GA___CTYPEP\L\ʏ\L`\ʏ\\:\\)DECC$GA___CTYPEP\L\ʏ\L`\ʏ\\\L CURRENT_VALUE\\-!P\\\L CURRENT_VALUE\\-DECC$GA___CTYPEP\L CURRENT_VALUE\ʏ\L`\ʏ\\9P\\DECC$GA___CTYPEP\L CURRENT_VALUE\ʏ\L`\ʏ\\\ noname.66g noname.67 noname.68 noname.65 noname.70 noname.71 noname.69 noname.73  noname.74.  noname.72  noname.75  noname.77,  noname.78?  noname.76S  noname.79&X  noname.64PP\\-@DECC$GA___CTYPEP\ʏ\L`\ʏ\\.DECC$GA___CTYPEP\L CURRENT_VALUE\ʏ\L`\ʏ\\1DECC$GA___CTYPEP\ʏ\L`\ʏ\\+DECC$GA___CTYPEP\L CURRENT_VALUE\ʏ\L`\ʏ\\`DECC$GA___CTYPEP\ʏ\L`\ʏ\\+DECC$GA___CTYPEP\L CURRENT_VALUE\ʏ\L`\ʏ\\\L CURRENT_VALUE\\?PP\\-@ZPPP\\\L CURRENT_VALUE@DECC$GA___CTYPEP\LX  fix_pages18  noname.81W  noname.80  noname.82  noname.62  noname.83 new_value*&km last_char  fix_periods  noname.85  noname.87  fix_periods19D  noname.88l  fix_periods20l  noname.91x  noname.92  noname.90  fix_periods21  noname.96k  noname.95  noname.93  noname.94  noname.97  noname.89  noname.86b_levelan name  author  CURRENT_VALUE\ʏ\L`\ʏ\\\L CURRENT_VALUE\\\L CURRENT_VALUE\\1J\L CURRENT_VALUE DECC$STRCPYP^ SHARED_STRINGPP FIX_INITIALSЬ1ЭRЭP޼Q@aBЭR޼PB`RR1PЭR޼PB`RR./R{R}1PRR1RRuխkխfDECC$GA___CTYPEQR޼PB`RʏRBaRʏRR<DECC$GA___CTYPEQR޼PB`RʏRBaRʏRRRRЭR BPRRRR1PЭ/  fix_title@  noname.99`  noname.102`  fix_title22  fix_title23  noname.103  noname.104  noname.105  noname.107  fix_title24P ^ SHARED_STRING\\ CURRENT_VALUE\\"1Э\L CURRENT_VALUE\\14Э\L CURRENT_VALUE\\{ \}2`\\ЭQQ\\ЭPP\\@ CURRENT_VALUEA1P\\ЭQQ\\ЭPP\\@ CURRENT_VALUEA1Pխ1|DECC$GA___CTYPEPЭ\L CURRENT_VALUE\ʏ\L`\ʏ\\1DECC$GA___CTYPEP\L CURRENT_VALUE\ʏ\L`\ʏ\\*DECC$GA___CTYPEP\L CURRENT_VALUE\ʏ\L`\ʏ\\ZPl  noname.110t  noname.111  fix_title25  noname.114  noname.115&  noname.113  noname.116  noname.112  noname.109  fix_title26  noname.120  fix_title27R noname.1212R noname.122 noname.119 fix_title28 fix_title29DECC$GA___CTYPEP\L CURRENT_VALUE\ʏ\L`\ʏ\\*ѭЭ\L CURRENT_VALUE\\AP1Э\L CURRENT_VALUE\\\1|\\DECC$GA___CTYPEPЭ\L CURRENT_VALUE\ʏ\L`\ʏ\\fPDECC$GA___CTYPEPЭ\L CURRENT_VALUE\ʏ\L`\ʏ\\ \\\\DECC$GA___CTYPEPЭ\L CURRENT_VALUE\ʏ\L`\ʏ\\\ѭ\1խ1ЭPP\\{@ѭ*ЭQQ\\ЭPP\\@ CURRENT_VALUEAѭЭPP\\ noname.126 noname.127 noname.125( noname.128X noname.130X noname.129\ noname.124\ noname.123n nupperxd noname.118h noname.131h noname.117h noname.108p fix_title30 noname.133 noname.135 noname.136H noname.134}@Э\L CURRENT_VALUE\\{$\L CURRENT_VALUE\\}\\3PЭ\L CURRENT_VALUE\\\\L CURRENT_VALUE\\  \\1%Pխ1ЭPP\\{@DECC$GA___CTYPEPЭ\L CURRENT_VALUE\ʏ\L`\ʏ\\)DECC$GA___CTYPEPЭ\L CURRENT_VALUE\ʏ\L`\ʏ\\tЭQQ\\ЭPP\\@ CURRENT_VALUEADECC$GA___CTYPEPЭ\L CURRENT_VALUE\ʏ\L`\ʏ\\DECC$GA___CTYPEPЭ\L CURRENT_VALUE\ʏ\L`\ʏ\ noname.132~ noname.137 noname.106  noname.138 noname.101 noname.139 noname.100 brace_letter Rb_levelks t month_token month_token31 noname.141  noname.143  month_token32, month_token33, noname.144@ noname.149E noname.150E noname.148H noname.145X noname.146h noname.147>l noname.151 month_token34 noname.152 month_token35 noname.154 month_token36 noname.156 noname.157 noname.155 noname.153 noname.158 noname.159 noname.142 noname.160! noname.161$ noname.162 token s  p_len \\ЭPP\\}@"ЭQQ\\ЭPP\\@ CURRENT_VALUEAЭ\L CURRENT_VALUE\\1Э\Lݭ CHECK_LENGTHݭ CURRENT_VALUE DECC$STRCPYFIX_FONT_CHANGESω^QլЬ@8<޼Rb@@1@RR1@PP"P{)P}0>P8<<<%8PP8P8PP8PP<=DECC$GA___CTYPER@PʏP@bPʏPPЬRbPPb@PP@OP@PP.ЬRbPPb@PP@<(޼P`ЬRbPPbb =P; ]*5) 2 D  $  ]?  G % p g r  t   k  5  F R" #"  NI  6 (R_iobuf _cnt _ptr  @_base  `_flag h_file p_pad1 x_pad2R @R @ quot  remR @ quot  remRstat st_dev  st_ino*&Pst_mode`st_nlink st_uid st_gidst_rdev st_sizest_atimest_mtime0st_ctimeP st_fab_rfmX st_fab_rat` st_fab_fszh st_fab_mrsRSTSTS  NO YES R s_name_pair@old_name  new_name DECC$GA___CTYPEdecc$ga___ctype-)& CURRENT_VALUE current_value*&FIX_FONT_CHANGESfix_font_changes T FIX_INITIALS fix_initials T FIX_NAMES fix_names T MONTH_PAIR month_pair3/ T SCRIBEScribe T SHARED_STRING shared_string*& rcsid*&7768s*&8b_level<in_quoted_string T @last : &PUBLIC$DISK:[NBEEBE.BIBCLEAN]TOKEN.H;1<e(PUBLIC$DISK:[NBEEBE.BIBCLEAN]YESORNO.H;1> )G6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STRING< iF(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XSTRING.H;1= )j56ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1CTYPE; B'PUBLIC$DISK:[NBEEBE.BIBCLEAN]XCTYPE.H;1; 'PUBLIC$DISK:[NBEEBE.BIBCLEAN]CUSTOM.H;1<6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STAT=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO> 6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1UNIXIO>96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB> j6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1LIMITS=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO< (PUBLIC$DISK:[NBEEBE.BIBCLEAN]CONFIG.H;118m$$PUBLIC$DISK:[NBEEBE.BIBCLEAN]FIX.C;1  \ |] &      |  d 7 0  u           N  }       B SHARED_STRINGSCRIBE MONTH_PAIR FIX_NAMES FIX_INITIALSFIX_FONT_CHANGES CURRENT_VALUEDECC$GA___CTYPE FIX_PERIODS FIX_AUTHOR CHECK_LENGTH CHECK_JUNIORSTRNICMP DECC$STRLEN DECC$STRCHR DECC$STRNCMP DECC$STRCMP DECC$STRCAT DECC$STRNCPY DECC$STRCPY l FIX_AUTHOR , FIX_MONTH  FIX_NAMELIST  FIX_PAGES  FIX_PERIODS FIX_TITLE*$CODED$DATA@PP@PP@ @PP1޼RbЭЭPPbibclean-3.07/vms/vax/romtol.obj0000644000156700015670000000746706142246431015537 0ustar beebebeebeROMTOLV1.0 2-MAY-1996 17:07DEC C V4.0-000R ROMTOL romtolromtol1noname.3(noname.2Pnoname.6Pnoname.7znoname.5noname.9romtol2 noname.10 noname.11 noname.12; noname.13noname.8 noname.14noname.4 last_value numberp  value nptr  endptr isroman noname.16 noname.17  noname.18c@P 2d@R @ quot  remR @ quot  remRstat st_dev  st_ino*&Pst_mode`st_nlink st_uid st_gidst_rdev st_sizest_atimest_mtime0st_ctimeP st_fab_rfmX st_fab_rat` st_fab_fszh st_fab_mrsDECC$GA___CTYPEdecc$ga___ctype-)& rcsid*&::9< roman_digits @ roman_values*&>96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB<{(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XSTDLIB.H;1> )G6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STRING< iF(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XSTRING.H;1= )j56ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1CTYPE; B'PUBLIC$DISK:[NBEEBE.BIBCLEAN]XCTYPE.H;1; 'PUBLIC$DISK:[NBEEBE.BIBCLEAN]CUSTOM.H;1<6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STAT=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO> 6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1UNIXIO>96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB> j6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1LIMITS=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO< (PUBLIC$DISK:[NBEEBE.BIBCLEAN]CONFIG.H;11;p 'PUBLIC$DISK:[NBEEBE.BIBCLEAN]ROMTOL.C;1  \ |] &      |  d 7 0  u           N  }       DECC$GA___CTYPE DECC$STRCHR DECC$TOLOWER ROMTOL ISROMAN$CODE\$DATA DECC$TOLOWERPЬݭݢ< DECC$STRCHRPխ Pâ@R @ quot  rem R @ quot  rem Rstat st_dev  st_ino*&Pst_mode`st_nlink st_uid st_gidst_rdev st_sizest_atimest_mtime0st_ctimeP st_fab_rfmX st_fab_rat` st_fab_fszh st_fab_mrs R keyboard_code KEYBOARD_EOFKEYBOARD_UNKNOWNKEYBOARD_AGAIN KEYBOARD_DOWN KEYBOARD_END KEYBOARD_HELP KEYBOARD_HOME KEYBOARD_PGDN KEYBOARD_PGUP KEYBOARD_QUIT KEYBOARD_SEARCH_BACKWARD KEYBOARD_SEARCH_FORWARD KEYBOARD_UP KEYBOARD_DOWN_PARAGRAPH KEYBOARD_UP_PARAGRAPH RS T S  NO YES Rdsc$descriptor@ dsc$w_length dsc$b_dtype dsc$b_class dsc$a_pointer Rdsc$descriptor_s@ dsc$w_length dsc$b_dtype dsc$b_class dsc$a_pointer Rdsc$descriptor_d@ dsc$w_length dsc$b_dtype dsc$b_class dsc$a_pointer Rdsc$descriptor_a dsc$w_length dsc$b_dtype dsc$b_class dsc$a_pointer @ dsc$b_scaleH dsc$b_digitsP dsc$b_aflags RX dsc$b_dimct` dsc$l_arsizeRSTS $"dsc$v_fl_binscale" !"dsc$v_fl_redim" ""dsc$v_fl_column" !"dsc$v_fl_coeff" ""dsc$v_fl_bounds" Rdsc$descriptor_p@ dsc$w_length dsc$b_dtype dsc$b_class dsc$a_pointer Rdsc$descriptor_sd` dsc$w_length dsc$b_dtype dsc$b_class dsc$a_pointer @ dsc$b_scaleH dsc$b_digitsP dsc$b_sflags RRSTS $"dsc$v_fl_binscale" Rdsc$descriptor_nca dsc$w_length dsc$b_dtype dsc$b_class dsc$a_pointer @ dsc$b_scaleH dsc$b_digitsP dsc$b_aflags RX dsc$b_dimct` dsc$l_arsizeRSTS $"dsc$v_fl_binscale" !"dsc$v_fl_redim" Rdsc$descriptor_vs@dsc$w_maxstrlen dsc$b_dtype dsc$b_class dsc$a_pointer Rdsc$descriptor_vsadsc$w_maxstrlen dsc$b_dtype dsc$b_class dsc$a_pointer @ dsc$b_scaleH dsc$b_digitsP dsc$b_aflags RX dsc$b_dimct` dsc$l_arsizeRSTS $"dsc$v_fl_binscale" !"dsc$v_fl_redim" Rdsc$descriptor_ubs` dsc$w_length dsc$b_dtype dsc$b_class dsc$a_base @ dsc$l_posRdsc$descriptor_uba dsc$w_length dsc$b_dtype dsc$b_class dsc$a_base @ dsc$b_scaleH dsc$b_digitsP dsc$b_aflags  RX dsc$b_dimct` dsc$l_arsize!R S!T!S $"dsc$v_fl_binscale" !"dsc$v_fl_redim" "Rdsc$descriptor_sb dsc$w_length dsc$b_dtype dsc$b_class dsc$a_pointer @ dsc$l_sb_l1` dsc$l_sb_u1#Rdsc$descriptor_ubsb dsc$w_length dsc$b_dtype dsc$b_class dsc$a_base @ dsc$l_pos` dsc$l_ubsb_l1 dsc$l_ubsb_u1$Riodefio$r_fcode_structure %Rio$r_errlog_modifiers &Rio$r_disk_tape_modifiers 'Rio$r_disk_modifiers (Rio$r_tape_modifiers )Rio$r_dutu_xfer_modifiers *Rio$r_du_sense_modifiers +R io$r_du_packack_modifiers ,Rio$r_du_avail_modifiers -R io$r_du_remshad_modifiers .R io$r_du_prfpath_modifiers /Rio$r_du_dcd_modifiers 0Rio$r_du_whm_modifiers 1R"io$r_hbs_copyshad_modifiers 2R!io$r_hbs_creshad_modifiers 3Rio$r_hbs_xfer_modifiers 4Rio$r_dr_modifiers 5Rio$r_dy_modifiers 6Rio$r_dd_modifiers 7Rio$r_ts11_modifiers 8Rio$r_tu_modifiers 9R$io$r_tu_lg_transfer_modifiers :R io$r_tu_setmode_modifiers ;Rio$r_acp_modifiers <Rio$r_cr_modifiers =Rio$r_mb_modifiers >R io$r_mb_setmode_modifiers ?Rio$r_tt_read_modifiers @Rio$r_tt_write_modifiers AR"io$r_tt_sensemode_modifiers BR io$r_tt_setmode_modifiers CRio$r_tt_maint_modifiers DR"io$r_tt_outofband_modifiers ER#io$r_tt_psxsetmode_modifiers FR"io$r_tt_posixinit_modifiers GR"io$r_tt_posixflow_modifiers HR io$r_tt_psxread_modifiers IR$io$r_net_write_read_modifiers JR io$r_net_accdea_modifiers KR!io$r_dlink_write_modifiers LR#io$r_dlink_setmode_modifiers MR%io$r_dlink_sensemode_modifiers NRio$r_x25_write_modifiers OR io$r_x25_access_modifiers PRio$r_lpa_start_modifiers QRio$r_xa_modifiers RRio$r_ibm3271_modifiers SRio$r_xw_modifiers TRio$r_lt_modifiers URio$r_lt_mapitem VRWR%SWTWS " io$v_fcode" ""io$v_fmodifiers " XR&SXTXS $"io$v_fcode_fill_1" " io$v_filler_1"  " io$v_inherlog" " io$v_fill_6" YR'SYTYS $"io$v_fcode_fill_2" ,"io$v_rsvd_for_devdepend_1" " io$v_erase" " io$v_filler_2" +"io$v_rsvd_for_devdepend2" " io$v_exfunc" !"io$v_datacheck"  " io$v_inhretry" " io$v_syncsts"  " io$v_novcache" " io$v_fill_7" ZR(SZTZS $"io$v_fcode_fill_3" ,"io$v_rsvd_for_devdepend_2" " io$v_inhseek" " io$v_fill_8" [R)S[T[S $"io$v_fcode_fill_4" " io$v_reverse" " io$v_nowait" ,"io$v_rsvd_for_devdepend_3" !"io$v_inhextgap" !"io$v_retension" " io$v_fill_9" \R*S\T\S $"io$v_fcode_fill_5" &"io$v_dutux_reserved" ""io$v_mscpmodifs" " io$v_fill_10" ]R+S]T]S $"io$v_fcode_fill_6" " io$v_shadow" " io$v_locate" ^R,S^T^S $"io$v_fcode_fill_7" #"io$v_mscp_format" " io$v_fill_11" _R-S_T_S $"io$v_fcode_fill_8" " io$v_allhosts"  " io$v_dissolve" !"io$v_nocleanup" " io$v_fill_12" `R.S`T`S $"io$v_fcode_fill_9" " io$v_spindown" " io$v_fill_13" aR/SaTaS %"io$v_fcode_fill_10" !"io$v_forcepath" " io$v_fill_14" bR0SbTbS %"io$v_fcode_fill_11" $"io$v_est_com_path" $"io$v_lcl_src_unit" $"io$v_rtn_com_path" " io$v_fill_15" cR1ScTcS %"io$v_fcode_fill_12" !"io$v_dealc_all" !"io$v_dealc_hrn" $"io$v_dealc_entloc"  " io$v_decr_afc" " io$v_read_all" " io$v_read_hrn" ""io$v_break_conn" " io$v_fill_16" dR2SdTdS %"io$v_fcode_fill_13" " io$v_stepover" " io$v_cs_fill" " io$v_copyop" " io$v_fill_17" eR3SeTeS %"io$v_fcode_fill_14" " io$v_exists" " io$v_cbs" " io$v_booting" " io$v_fill_18" fR4SfTfS %"io$v_fcode_fill_15 " " io$v_vuex_fc" " io$v_fill_19" gR5SgTgS %"io$v_fcode_fill_16" " io$v_commod" ""io$v_movetrackd" ""io$v_diagnostic" !"io$v_skpsecinh" " io$v_fill_20" hR6ShThS %"io$v_fcode_fill_17" " io$v_deldata" " io$v_fill_21" iR7SiTiS %"io$v_fcode_fill_18" " io$v_nomrsp" " io$v_fill_22" jR8SjTjS %"io$v_fcode_fill_19" ,"io$v_rsvd_for_devdepend_4" " io$v_swap"  " io$v_opposite" " io$v_fill_23" kR9SkTkS %"io$v_fcode_fill_20" ,"io$v_rsvd_for_devdepend_5" !"io$v_clserexcp" " io$v_fill_24" lR:SlTlS %"io$v_fcode_fill_21" !"io$v_chunkdiag" ,"io$v_rsvd_for_devdepend_6" " io$v_tbc" " io$v_fill_25" mR;SmTmS %"io$v_fcode_fill_22" " io$v_enarep" " io$v_fill_26" nR<SnTnS %"io$v_fcode_fill_23" " io$v_access" " io$v_create" " io$v_delete" " io$v_mount" " io$v_dmount" " io$v_remount" " io$v_movefile" " io$v_filler_8" !"io$v_rwshelved" " io$v_fill_27" oR=SoToS %"io$v_fcode_fill_24" " io$v_binary" " io$v_packed" pR>SpTpS %"io$v_fcode_fill_25" " io$v_now" " io$v_stream" #"io$v_readercheck" #"io$v_writercheck" " io$v_norswait" " io$v_fill_28" qR?SqTqS %"io$v_fcode_fill_26" &"io$v_mb_room_notify"  " io$v_readattn" " io$v_wrtattn" " io$v_setprot" ""io$v_readerwait" ""io$v_writerwait" " io$v_fill_29" rR@SrTrS %"io$v_fcode_fill_27" " io$v_noecho" " io$v_timed" " io$v_cvtlow" " io$v_nofiltr" " io$v_dsablmbx" " io$v_purge" !"io$v_trmnoecho" " io$v_refresh" " io$v_escape" " io$v_extend" sRASsTsS %"io$v_fcode_fill_28"  " io$v_canctrlo"  " io$v_enablmbx"  " io$v_noformat" !"io$v_breakthru" " io$v_newline" " io$v_fill_30" tRBStTtS %"io$v_fcode_fill_29" ""io$v_typeahdcnt" ("io$v_reserve_rd_modem" uRCSuTuS %"io$v_fcode_fill_30" " io$v_maint"  " io$v_ctrlyast"  " io$v_ctrlcast" " io$v_hangup" " io$v_outband" ""io$v_tt_connect" !"io$v_tt_discon" ""io$v_tt_process" " io$v_brdcst" " io$v_fill_31" vRDSvTvS %"io$v_fcode_fill_31" ."io$v_reserve_maint_escape_1" " io$v_loop" " io$v_unloop"  " io$v_line_off" !"io$v_set_modem" " io$v_line_on" " io$v_loop_ext" ""io$v_autxof_ena" ""io$v_autxof_dis" +"io$v_reserve_int_disable" wRESwTwS %"io$v_fcode_fill_32" ."io$v_reserve_maint_escape_2" " io$v_include" " io$v_tt_abort" " io$v_fill_32" xRFSxTxS %"io$v_fcode_fill_33" !"io$v_posixinit" !"io$v_posixflow" yRGSyTyS %"io$v_fcode_fill_34" +"io$v_reserve_init_escape" !"io$v_set_posix" #"io$v_clear_posix" #"io$v_set_termios" " io$v_set_ptc" !"io$v_clear_ptc" !"io$v_flush_tab" $"io$v_flush_output" ""io$v_update_ptc" " io$v_fill_33" zRHSzTzS %"io$v_fcode_fill_35" +"io$v_reserve_flow_escape"  " io$v_out_xoff" " io$v_out_xon" " io$v_in_xoff" " io$v_in_xon" " io$v_fill_34" {RIS{T{S %"io$v_fcode_fill_36" ""io$v_o_nonblock" " io$v_fill_35" |RJS|T|S %"io$v_fcode_fill_37" !"io$v_interrupt"  " io$v_multiple" " io$v_lockbuf" " io$v_noblock" " io$v_fill_36" }RKS}T}S %"io$v_fcode_fill_38" " io$v_reserved" " io$v_abort" " io$v_synch" " io$v_fill_37" ~RLS~T~S %"io$v_fcode_fill_39" " io$v_response" " io$v_fill_38" RMSTS %"io$v_fcode_fill_40" " io$v_startup"  " io$v_shutdown" " io$v_attnast" " io$v_ctrl" )"io$v_reserve_set_modem" " io$v_set_mac" " io$v_fill_39" RNSTS %"io$v_fcode_fill_41" " io$v_rd_mem"  " io$v_rd_modem"  " io$v_rd_count" $"io$v_reserve_ctrl" !"io$v_clr_count" !"io$v_sense_mac" " io$v_fill_40" ROSTS %"io$v_fcode_fill_42" " io$v_more" !"io$v_qualified" RPSTS %"io$v_fcode_fill_43" " io$v_redirect" " io$v_accept" RQSTS %"io$v_fcode_fill_44" " io$v_setevf" " io$v_fill_41" RRSTS %"io$v_fcode_fill_45" " io$v_word"  " io$v_filler_3"  " io$v_filler_4" " io$v_setfnct" " io$v_datapath" " io$v_filler_5" " io$v_cycle" " io$v_reset" " io$v_fill_42" RSSTS %"io$v_fcode_fill_46" " io$v_filler_6"  " io$v_setcuadr"  " io$v_setbsize" !"io$v_setpoolsz" !"io$v_setenqcnt" " io$v_clear" " io$v_lpbext" " io$v_lpbint" " io$v_readcsr" RTSTS %"io$v_fcode_fill_47" !"io$v_noctswait"  " io$v_slavloop" !"io$v_nodsrwait" !"io$v_maintloop" !"io$v_lastblock" " io$v_filler_7" " io$v_intclock" " io$v_fill_43" RUSTS %"io$v_fcode_fill_48" ""io$v_lt_connect" !"io$v_lt_discon" #"io$v_lt_readport" #"io$v_lt_map_port" !"io$v_lt_rating" #"io$v_lt_sol_info" #"io$v_lt_rcv_info" ""io$v_lt_setmode" $"io$v_lt_sensemode" " io$v_fill_44" RVSTS %"io$v_lt_map_filler" %"io$v_lt_map_nodnam" %"io$v_lt_map_pornam" %"io$v_lt_map_srvnam" %"io$v_lt_map_lnknam" %"io$v_lt_map_netadr" " io$v_fill_45" Rttdef tt$r_ttdef_bits0 Rtt$r_ttdef_bits1 Rtt$r_ttdef_bits2 Rtt$r_ttdef_bits3 RRSTS  " tt$v_passall" " tt$v_noecho" !"tt$v_notypeahd" " tt$v_escape"  " tt$v_hostsync" " tt$v_ttsync" " tt$v_script" " tt$v_lower" " tt$v_mechtab" " tt$v_wrap" " tt$v_crfill" " tt$v_lffill" " tt$v_scope" " tt$v_remote"  " tt$v_reserved"  " tt$v_eightbit"  " tt$v_mbxdsabl"  " tt$v_nobrdcst"  " tt$v_readsync"  " tt$v_mechform" " tt$v_halfdup" " tt$v_modem" " tt$v_oper" !"ttdef$$_fill_1" " tt$v_page" RSTS !"ttdef$$_fill_2" " tt$v_altframe" " tt$v_altrpar" " tt$v_parity" " tt$v_odd" " tt$v_twostop" !"tt$v_disparerr" !"tt$v_altdispar" " tt$v_break" " tt$v_fill_12" RSTS !"ttdef$$_fill_3" " tt$v_ds_dtr" !"ttdef$$_fill_4"  " tt$v_ds_sectx" " tt$v_ds_rts" " tt$v_fill_13" RSTS !"ttdef$$_fill_5" !"tt$v_ds_secrec" " tt$v_ds_cts" ""tt$v_ds_carrier" " tt$v_ds_ring" " tt$v_ds_dsr" R ` class type buffer_size  tt @tt2DECC$GA___CTYPEdecc$ga___ctype-)& keymap3/ T SCREEN_LINES screen_lines rcsid*&::9@ search_string*&PPO status tt_channel iomask sys_in Tmode_buf T mode_save T?܆⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STARLET= ^⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1TTDEF=r⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1IODEF?%C6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1DESCRIP=b⯘$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1SSDEF<e(PUBLIC$DISK:[NBEEBE.BIBCLEAN]YESORNO.H;1; V'PUBLIC$DISK:[NBEEBE.BIBCLEAN]KEYBRD.H;17D(#PUBLIC$DISK:[NBEEBE.BIBCLEAN]CH.H;1>i6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1UNISTD<c(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XUNISTD.H;1> )G6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STRING< iF(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XSTRING.H;1= )j56ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1CTYPE; B'PUBLIC$DISK:[NBEEBE.BIBCLEAN]XCTYPE.H;1; 'PUBLIC$DISK:[NBEEBE.BIBCLEAN]CUSTOM.H;1<6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STAT=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO> 6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1UNIXIO>96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB> j6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1LIMITS=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO< (PUBLIC$DISK:[NBEEBE.BIBCLEAN]CONFIG.H;11;PO&p'PUBLIC$DISK:[NBEEBE.BIBCLEAN]KEYBRD.C;4  \ |] &      |  d 7 0  u             }     A   +  3   @ vR  V  Z  ^  ; l KEYMAP SCREEN_LINESDECC$GA___CTYPESYS$QIOW SYS$ASSIGNKBGETKBCODESTRISTR DECC$MEMSET DECC$STRLEN DECC$FPUTS DECC$FPUTC DECC$FFLUSH DO_MORE dGET_SCREEN_LINES KBCLOSE KBCODE KBGET <KBOPEN- $CODE$DATA KEYMAP T @ l t  'P%Yiu-ybibclean-3.07/vms/vax/vmswild.obj0000644000156700015670000004046506142246433015705 0ustar beebebeebeVMSWILDV1.0 2-MAY-1996 17:35DEC C V4.0-000JPSYS$ERROR<PLNM$FILE_DEV9P..P (`>', `>>', `>&', or `>>&')PoutPwdPSYS$OUTPUT:PrP, `<' PinXPSYS$INPUT:PCan't open "%s" as `std%s'. PLNM$FILE_DEVPto Un*x-style file namePWarning: Can't reassignP%s %s %s (%s). P..hPWildcards (%s) illegal in redirection%s. dP...>PInvalid null %sput redirection%s. Pݬ ݬO P 1@PP1޼ P`8cmd_lin64l noname.21vp noname.16 noname.22 noname.15 noname.13 noname.11K noname.23noname.8 noname.24 noname.25 endc endv  xtra  cp  opt0  ainpc  inpv gadd_argadd_arg7v " noname.27< noname.29l noname.28 arg  acnt  ptrs PPPz޼ P`nPխ-ݭ߭ݭϳP޼ P`CPխ4޼ P`DECC$GA_STDERRP` DECC$DFPRINTFݭ߭޼ P`hPPݭ߭޼ P`MPЬQaPPa PP ޼P`1խ ݭ DECC$FREE޼PЭ`ЭPP ^լ "ݏ6P޼P`Эp޼P`RzRP{@PQPPRR"޼RbR@RRRݬ ϷP ޼RbR޼ PЬB`ЬP`RR``R޼ PB`Ь PP0^ݬ DECC$STRLEN}P DSC$K_DTYPE_T DSC$K_CLASS_SЬݬ tcrelnm noname.31Ritemstr buflen type addr  @retlen  `end tdsc R ndsc Ritemrec T mode table  name  value emallocC noname.33L noname.34p siz7Terealloc noname.36 noname.37p ptr siz;expand_logical noname.39 noname.40 noname.41 noname.42 noname.43p  colon logname  DECC$STRLEN}ϦP DSC$K_DTYPE_T DSC$K_CLASS_SЬӰݬ  DECC$STRLENPЬ  SYS$CRELNMPPP ^ݬ DECC$MALLOCPխݏ SS$_INSFMEMSYS$EXITЭPP ^ݬݬ DECC$REALLOCPխݏ SS$_INSFMEMSYS$EXITЭPP^:ݬ DECC$STRCHRPխݬ DECC$GETENVPխ:խЬ ݭPPP ^*ݬ DECC$STRCHRP(%ݬ[ iswild/ noname.468 noname.47 name S@nameonlyp noname.49u noname.50 noname.51 noname.52 noname.53 noname.54 noname.55 noname.56 noname.57 cp  tp  file normalize_filename,normalize_filename8^ DECC$STRCHRPݬ! PPP^Ьݏ]ݭ DECC$STRRCHRPխ PPЭ>ݭ DECC$STRRCHRPխ PPЭ:ݭ DECC$STRRCHRPխ PPЭЭ;ݭ DECC$STRCHRPխ.ݭ DECC$STRCHRPխЭP^:ݬ DECC$STRCHRPխ`ݬ[PPP DECC$STRLENPRݭ DECC$STRLENPRRRϸPݭݭ DECC$STRCPYRRݭ DECC$STRCAT%ݬ noname.59 noname.60 noname.62 noname.64 noname.65 noname.66 noname.610 noname.68G noname.69^ noname.67h noname.70logname p q filename _pnxt_wldnxt_wld9 DECC$STRLENP}ݬP DECC$STRCPYPЭRRXPDECC$GA___CTYPEPRʏRB`RʏRRRR DECC$TOLOWERP PRRRRRRݭ$ Pխ1PRRRR DECC$STRCPYݭPխЭPP^Rݬ DECC$STRLEN}P DSC$K_DTYPE_T DSC$K_CLASS_SЬ}ϯ DSC$K_DTYPE_T DSC$K_CLASS_SPPբPeݏ DECC$GETCWDPPբP TPݢP noname.73  noname.74  nxt_wld10.:  noname.75e:  noname.72l  nxt_wld11  noname.76  nxt_wld12   noname.78  noname.77  nxt_wld13  noname.79  noname.82  noname.83  noname.81J  nxt_wld14 DECC$STRLENPTբT.ݢPPݢP DECC$FREEPݢP DECC$STRLENPTߢL LIB$FIND_FILEPяRMS$_SYNݬϫDECC$GA_STDERRP` DECC$DFPRINTF яRMS$_FNFяRMS$_NMF |ˏPPߢLLIB$FIND_FILE_ENDP[1?PPЬQaPPaa޼PްP`P&PЬQaPPaݭd] noname.131| noname.132 redirout23 redirout24 noname.135 stat* noname.134d noname.133 noname.136 acc  err ainpc  inpv  $sigvms< noname.138G noname.139 stat$ Hstrsubt noname.142tstrsub25 noname.144 noname.145 noname.146 noname.143 noname.147t noname.149 noname.141 noname.148 fp  sp  cp  str  sub  d h;        E  G9  B  #             RS T S_iobuf _cnt _ptr  @_base  `_flag h_file p_pad1 x_pad2 R @ R @ quot  rem R @ quot  rem Rstat st_dev  st_ino*&Pst_mode`st_nlink st_uid st_gidst_rdev st_sizest_atimest_mtime0st_ctimeP st_fab_rfmX st_fab_rat` st_fab_fszh st_fab_mrsRSTSTSTSTSTSTSdescr@ leng type class addr R  never diff alwaysDECC$GA_STDERRdecc$ga_stderr  T DECC$GA_STDIN decc$ga_stdin  TDECC$GA_STDOUTdecc$ga_stdout  TDECC$GA___CTYPEdecc$ga___ctype-)& DSC$K_DTYPE_T dsc$k_dtype_t DSC$K_CLASS_S dsc$k_class_sOPprompt  SS$_INSFMEM ss$_insfmemRMS$_FNFrms$_fnfRMS$_NMFrms$_nmfRMS$_SYNrms$_syn rcsid*&;;:<OPoption @OPexpandAOPappendBOPdebugCOPredirDOPunixyEOPlowerFOPdeviceGOPdirectH OPversion Lcntxt Pcwd  TlencwdXsysinput*& d sysoutput*& >)G6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STRING> 96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB= J6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1ERRNO= )j56ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1CTYPE= ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO; 'PUBLIC$DISK:[NBEEBE.BIBCLEAN]CUSTOM.H;1<6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STAT=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO> 6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1UNIXIO>96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB> j6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1LIMITS=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO<C N(PUBLIC$DISK:[NBEEBE.BIBCLEAN]CONFIG.H;12<@LrC(PUBLIC$DISK:[NBEEBE.BIBCLEAN]VMSWILD.C;1  b |c &      |  d 7 0  u    |      8     } % DECC$TOLOWER DECC$GETENV DECC$EXIT DECC$REALLOC DECC$MALLOC DECC$FREE DECC$DFPRINTF DECC$FREOPEN hCMD_LIN$CODEp$DATAOPPROMPTϓϊDECC$GA_STDOUTP`ݬݬPPPd/޼P` DECC$STRCHRP>n޼P`rP*޼P`dQτPBPPݭ DECC$GA_STDERRQDECC$GA_STDOUTP`aЬP^ˏPPPݬ LIB$SIGNAL^ЬPPݬ DECC$STRCHRPЭխ{PPP7QPQP*PPPPP옽PP QPQP٘PP Э2PЬPPPP DECC$STRCHRPЭխЭPhbibclean-3.07/vms/config.h0000644000156700015670000001064706036324771014347 0ustar beebebeebe/* config.h. Generated by hand for IBM PC Turbo C 2.0. */ #define OS_VAXVMS 1 #define STDC_HEADERS 1 /* #undef _POSIX_SOURCE */ #define HAVE_STDC 1 /* Define if you want old pattern-less string matching in .ini files */ /* #undef HAVE_OLDCODE */ /* Define if you want standard bibclean-specific pattern in .ini files */ #define HAVE_PATTERNS 1 /* Define if you want regular-expression patterns in .ini files using re_comp() */ /* #undef HAVE_RECOMP */ /* #undef HAVE_REGEXP */ /* Define to empty if the keyword does not work. */ /* #undef const */ /* Define if your free() requires (char*) cast instead of (void*) */ /* #undef FREE_CAST_IS_CHAR_STAR */ /* Define if your compiler recognizes \a as an alert (ASCII BEL) character */ #define HAVE_ALERT_CHAR 1 /* Library functions that we need */ #define HAVE_GETCWD 1 /* #undef HAVE_GETWD */ #define HAVE_STRCSPN 1 #define HAVE_STRDUP 1 #define HAVE_STRSPN 1 #define HAVE_STRSTR 1 #define HAVE_STRTOD 1 #define HAVE_STRTOL 1 /* Header files that we might need */ #define HAVE_CONIO_H 1 #define HAVE_CTYPE_H 1 #define HAVE_DESCRIP_H 1 #define HAVE_ERRNO_H 1 #define HAVE_FCNTL_H 1 #define HAVE_IODEF_H 1 #define HAVE_IO_H 1 #define HAVE_JPIDEF_H 1 /* #undef HAVE_LIMITS_H */ /* #undef HAVE_OSFCN_H */ /* #undef HAVE_PWD_H */ /* #undef HAVE_REGEXP_H */ /* #undef HAVE_REGEX_H */ /* #undef HAVE_RMS_H */ /* #undef HAVE_SGTTY_H */ #define HAVE_SSDEF_H 1 /* #undef HAVE_STAT_H */ #define HAVE_STDIO_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 /* #undef HAVE_SYS_IOCTL_H */ /* #undef HAVE_SYS_PARAM_H */ #define HAVE_SYS_STAT_H 1 #define HAVE_SYS_TYPES_H 1 /* #undef HAVE_TERMIOS_H */ /* #undef HAVE_TERMIO_H */ #define HAVE_TIME_H 1 #define HAVE_TT2DEF_H 1 #define HAVE_TTDEF_H 1 #define HAVE_TYPES_H 1 /* #undef HAVE_UNISTD_H */ /* #undef HAVE_UNIXIO_H */ /* #undef HAVE_UNIXLIB_H */ #define RCSID(s) static char rcsid[] = s; /* #undef OS_UNIX */ /* NB: some systems have Standard C header files, but compilers that do not accept function prototypes (e.g. HP HP-UX 9.0.3 /bin/cc) */ #if defined(STDC_HEADERS) && (defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)) #define ARGS(plist) plist #define VOID void #else #define ARGS(plist) () #define VOID #endif #define SCREEN_LINES 24 /*********************************************************************** The limit on file name lengths is non-standard: -------- ------------- ------------------------------------------ Name Definition System -------- ------------- ------------------------------------------ FNMAX PCC-20 MAXPATH Turbo C 2.0, C and C++ 3.0, and TopSpeed C _MAX_PATH Microsoft C 5.0, 6.0, 7.0 and TopSpeed C MAXPATHLEN Sun OS (4.2BSD), 4.3BSD, Gould UTX/32, HPUX, KCC-20, AIX (RT, RS, PS/2, 370), HP/Apollo DomainOS, DEC Alpha (OSF/1) PATH_MAX SYS V (Silicon Graphics) PATH_MAX POSIX, DEC Alpha (OSF/1) FILENAME_MAX Intel RMX, NeXT Mach, Turbo C/C++ 3.0 -------- ------------- ------------------------------------------ ***********************************************************************/ #if defined(HAVE_SYS_PARAM_H) #include #endif #if defined(HAVE_LIMITS_H) #include #endif #if defined(HAVE_STDLIB_H) #include #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN FNMAX #endif #if !defined(MAXPATHLEN) && defined(MAXPATH) #define MAXPATHLEN MAXPATH #endif #if !defined(MAXPATHLEN) && defined(_MAX_PATH) #define MAXPATHLEN _MAX_PATH #endif #if !defined(MAXPATHLEN) && defined(PATH_MAX) #define MAXPATHLEN PATH_MAX #endif #if !defined(MAXPATHLEN) && defined(FILENAME_MAX) #define MAXPATHLEN FILENAME_MAX #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN 1024 #endif #if defined(OS_PCDOS) #define SEP_COMP " ;,|" /* separators between filename components */ #define SEP_PATH "\\" /* separators between directory path and filename */ #endif #if defined(OS_UNIX) #define SEP_COMP " ;:,|" /* separators between filename components */ #define SEP_PATH "/" /* separators between directory path and filename */ #endif #include #include #if !defined(HAVE_IOCTL_PROTOTYPE) #if defined(__cplusplus) || defined(c_plusplus) /* system files should have: extern "C" {int ioctl ARGS((int, int, ...));} */ #else int ioctl ARGS((int, int, ...)); #endif #endif #if defined(FREE_CAST_IS_CHAR_STAR) #define FREE(p) free((char*)(p)) #else #define FREE(p) free((void*)(p)) #endif bibclean-3.07/chek.c0000644000156700015670000011024514022512672013166 0ustar beebebeebe#include #include "xctype.h" #include "xstat.h" #include "xstring.h" #include "xstdlib.h" RCSID("$Id: chek.c,v 1.10 2017/06/09 14:47:20 beebe Exp beebe $") #include "yesorno.h" #include "match.h" /* must come AFTER yesorno.h */ #include "token.h" #include "typedefs.h" /* must come AFTER match.h */ #if defined(HAVE_PATTERNS) #define PATTERN_MATCHES(string,pattern) (match_pattern(string,pattern) == YES) #else /* NOT defined(HAVE_PATTERNS) */ #define PATTERN_MATCHES(string,pattern) match_regexp(string,pattern) #endif /* defined(HAVE_PATTERNS) */ #define PT_CHAPTER 0 /* index in pattern_names[] */ #define PT_MONTH 1 /* index in pattern_names[] */ #define PT_NUMBER 2 /* index in pattern_names[] */ #define PT_PAGES 3 /* index in pattern_names[] */ #define PT_VOLUME 4 /* index in pattern_names[] */ #define PT_YEAR 5 /* index in pattern_names[] */ #if !defined(STD_MAX_TOKEN) /* This was 1000 in original BibTeX, then changed to 5000 for TeX Live */ /* builds up to 2011, and changed again for 2012--2019 releases to 20000 */ /* See glob_str_size in : $prefix/texlive/YYYY/texmf-dist/web2c/texmf.cnf */ /* #define STD_MAX_TOKEN ((size_t)1000) */ /* Standard BibTeX limit */ /* #define STD_MAX_TOKEN ((size_t)20000) */ /* TeX Live 2012--2018 limit */ #define STD_MAX_TOKEN ((size_t)200000) /* TeX Live 2019--2021 limit */ #endif /* !defined(STD_MAX_TOKEN) */ #define UNKNOWN_CODEN "??????" #define MAX_CODEN (sizeof(UNKNOWN_CODEN)-1) #define UNKNOWN_ISBN "??????????" #define MAX_ISBN (sizeof(UNKNOWN_ISBN)-1) #define UNKNOWN_ISBN_13 "?????????????" #define MAX_ISBN_13 (sizeof(UNKNOWN_ISBN_13)-1) #define UNKNOWN_ISSN "????????" #define MAX_ISSN (sizeof(UNKNOWN_ISSN)-1) extern YESorNO check_values; /* NO: suppress value checks */ extern char current_field[]; /* field name */ extern char current_key[]; /* string value */ extern char current_value[]; /* string value */ extern NAME_PAIR month_pair[]; extern PATTERN_NAMES pattern_names[]; extern char shared_string[]; extern FILE *stdlog; /* usually stderr */ extern YESorNO stdlog_on_stdout; /* NO for separate files */ extern void error ARGS((const char *msg_)); extern void ISBN_hyphenate ARGS((/*@out@*/ char *s_, /*@out@*/ char *t_, size_t maxs_)); extern void ISBN_13_hyphenate ARGS((/*@out@*/ char *s_, /*@out@*/ char *t_, size_t maxs_)); extern void warning ARGS((const char *msg_)); void check_chapter ARGS((void)); void check_DOI ARGS((void)); void check_CODEN ARGS((void)); void check_ISBN ARGS((void)); void check_ISSN ARGS((void)); YESorNO check_junior ARGS((const char *last_name_)); void check_key ARGS((void)); void check_length ARGS((size_t n_)); void check_month ARGS((void)); void check_number ARGS((void)); void check_other ARGS((void)); void check_pages ARGS((void)); void check_URL ARGS((void)); void check_volume ARGS((void)); void check_year ARGS((void)); static void bad_CODEN ARGS((char CODEN_[6])); static void bad_ISBN ARGS((char ISBN_[11])); static void bad_ISBN_13 ARGS((char ISBN_13_[14])); static void bad_ISSN ARGS((char ISSN_[9])); static YESorNO check_patterns ARGS((PATTERN_TABLE *pt_,const char *value_)); static int CODEN_character_value ARGS((int c_)); static size_t copy_element ARGS((char *target_, size_t nt_, const char *source_, size_t ns_)); static void incomplete_CODEN ARGS((char CODEN_[6])); static YESorNO is_CODEN_char ARGS((int c_, size_t n_)); static YESorNO is_DOI_char ARGS((int c_, size_t n_)); static YESorNO is_ISBN_char ARGS((int c_, size_t n_)); static YESorNO is_ISBN_13_char ARGS((int c_, size_t n_)); static YESorNO is_ISSN_char ARGS((int c_, size_t n_)); static YESorNO is_URL_char ARGS((int c_, size_t n_)); static void parse_list ARGS((const char *s, YESorNO (*is_name_char_) ARGS((int c_, size_t n_)), void (*validate_) ARGS((const char *CODEN_, size_t n_)))); static void parse_element ARGS((/*@out@*/ parse_data *pd_)); static void parse_separator ARGS((/*@out@*/ parse_data *pd_)); static void validate_CODEN ARGS((const char *CODEN_, size_t n_)); static void validate_DOI ARGS((const char *CODEN_, size_t n_)); static void validate_ISBN ARGS((const char *ISBN_, size_t n_)); static void validate_ISBN_13 ARGS((const char *ISBN_, size_t n_)); static void validate_ISSN ARGS((const char *ISSN_, size_t n_)); static void validate_URL ARGS((const char *CODEN_, size_t n_)); static void unexpected ARGS((void)); #define elementsof(v) (sizeof(v) / sizeof(v[0])) #define ISBN_DIGIT_VALUE(c) ((((int)(c) == (int)'X') || ((int)(c) == (int)'x')) ? 10 : \ ((int)(c) - (int)'0')) /* correct only if digits are valid; */ /* the code below ensures that */ #define ISSN_DIGIT_VALUE(c) ISBN_DIGIT_VALUE(c) /* ISSN digits are just like ISBN digits */ #if defined(HAVE_STDC) static void bad_CODEN(char CODEN[7]) #else /* K&R style */ static void bad_CODEN(CODEN) char CODEN[7]; #endif { static const char fmt[] = "Invalid checksum for CODEN %c%c%c%c%c%c in ``%%f = %%v''"; char msg[sizeof(fmt)]; #define XCODEN(n) (int)((CODEN[n] == '\0') ? '?' : CODEN[n]) (void)sprintf(msg, fmt, XCODEN(1), XCODEN(2), XCODEN(3), XCODEN(4), XCODEN(5), XCODEN(6)); warning(msg); /* should be error(), but some journals might have */ /* invalid CODENs (some books have invalid ISBNs) */ } #if defined(HAVE_STDC) static void bad_ISBN(char ISBN[11]) #else /* K&R style */ static void bad_ISBN(ISBN) char ISBN[11]; #endif { #define MAXISBN (13+1) /* space for correctly hyphenated ISBN, plus NUL */ static const char fmt[] = "Invalid checksum for ISBN %s in ``%%f = %%v''"; char msg[sizeof(fmt)+MAXISBN-1-2]; char s[MAXISBN]; char t[MAXISBN]; size_t n; (void)strcpy(s,UNKNOWN_ISBN); n = strlen(&ISBN[1]); (void)memcpy(s,&ISBN[1],(n > sizeof(s)) ? sizeof(s) : n); s[10] = '\0'; ISBN_hyphenate(s,t,sizeof(s)); (void)sprintf(msg, fmt, s); warning(msg); /* used to be error(), but some books actually have */ /* invalid ISBNs */ } #if defined(HAVE_STDC) static void bad_ISBN_13(char ISBN_13[13 + 1]) #else /* K&R style */ static void bad_ISBN_13(ISBN_13) char ISBN_13[13 + 1]; #endif { #define MAXISBN_13 (13 + 3 + 1) /* space for correctly hyphenated ISBN_13, plus NUL */ static const char fmt[] = "Invalid checksum for ISBN_13 %s in ``%%f = %%v''"; char msg[sizeof(fmt) + MAXISBN_13 - 1 - 2]; char s[MAXISBN_13]; char t[MAXISBN_13]; size_t n; (void)strcpy(s,UNKNOWN_ISBN_13); n = strlen(&ISBN_13[1]); (void)memcpy(s,&ISBN_13[1],(n > sizeof(s)) ? sizeof(s) : n); s[13] = '\0'; ISBN_13_hyphenate(s,t,sizeof(s)); (void)sprintf(msg, fmt, s); warning(msg); /* used to be error(), but some books actually have */ /* invalid ISBN_13s */ } #if defined(HAVE_STDC) static void bad_ISSN(char ISSN[9]) #else /* K&R style */ static void bad_ISSN(ISSN) char ISSN[9]; #endif { static const char fmt[] = "Invalid checksum for ISSN %c%c%c%c-%c%c%c%c in ``%%f = %%v''"; char msg[sizeof(fmt)]; #define XISSN(n) (int)((ISSN[n] == '\0') ? '?' : ISSN[n]) (void)sprintf(msg, fmt, XISSN(1), XISSN(2), XISSN(3), XISSN(4), XISSN(5), XISSN(6), XISSN(7), XISSN(8)); warning(msg); /* used to be error(), but some journals might have */ /* invalid ISSNs (some books have invalid ISBNs) */ } void check_chapter(VOID) { #if defined(HAVE_OLDCODE) size_t k; size_t n = strlen(current_value) - 1; /* match patterns like "23" and "23-1" */ for (k = 1; k < n; ++k) { /* omit first and last characters -- they are quotation marks */ if (!(Isdigit(current_value[k]) || (current_value[k] == '-'))) break; } if (k == n) return; #else /* NOT defined(HAVE_OLDCODE) */ if (check_patterns(pattern_names[PT_CHAPTER].table,current_value) == YES) return; #endif /* defined(HAVE_OLDCODE) */ unexpected(); } void check_CODEN(VOID) { parse_list(current_value, is_CODEN_char, validate_CODEN); } void check_DOI(VOID) { parse_list(current_value, is_DOI_char, validate_DOI); if ( IN_SET(current_value, ' ') || IN_SET(current_value, ',') || IN_SET(current_value, ';') ) warning("Unexpected space or list separator in DOI value ``%v''"); } void check_inodes(VOID) { struct stat buflog; struct stat bufout; stdlog_on_stdout = YES; /* assume the worst initially */ (void)fstat(fileno(stdlog),&buflog); (void)fstat(fileno(stdout),&bufout); #if OS_UNIX stdlog_on_stdout = ((buflog.st_dev == bufout.st_dev) && (buflog.st_ino == bufout.st_ino)) ? YES : NO; #endif /* OS_UNIX */ #if OS_PCDOS /* No inodes, so use other fields instead */ stdlog_on_stdout = ((buflog.st_dev == bufout.st_dev) && (buflog.st_mode == bufout.st_mode) && (buflog.st_size == bufout.st_size) && (buflog.st_ctime == bufout.st_ctime)) ? YES : NO; #endif /* OS_PCDOS */ #if OS_VAXVMS /* Inode field is 3 separate values */ stdlog_on_stdout = ((buflog.st_dev == bufout.st_dev) && (buflog.st_ino[0] == bufout.st_ino[0]) && (buflog.st_ino[1] == bufout.st_ino[1]) && (buflog.st_ino[2] == bufout.st_ino[2])) ? YES : NO; #endif /* OS_VAXVMS */ } void check_ISBN(VOID) { char t[MAX_TOKEN_SIZE]; /* Supply correct hyphenation for all ISBNs */ ISBN_hyphenate(current_value,t,sizeof(t)/sizeof(t[0])); parse_list(current_value, is_ISBN_char, validate_ISBN); } void check_ISBN_13(VOID) { char t[MAX_TOKEN_SIZE]; /* Supply correct hyphenation for all ISBN-13s */ ISBN_13_hyphenate(current_value, t, sizeof(t) / sizeof(t[0])); parse_list(current_value, is_ISBN_13_char, validate_ISBN_13); } void check_ISSN(VOID) { parse_list(current_value, is_ISSN_char, validate_ISSN); } void check_ISSN_L(VOID) { parse_list(current_value, is_ISSN_char, validate_ISSN); if (strlen(current_value) != 11) /* "1234-5689" */ warning("Unexpected ISSN-L field length in ``%v''"); } #if defined(HAVE_STDC) YESorNO check_junior(const char *last_name) #else /* K&R style */ YESorNO check_junior(last_name) const char *last_name; #endif { /* return YES: name is Jr.-like, else: NO */ int b_level; /* brace level */ static const char *juniors[] = { /* name parts that parse like "Jr." */ "Jr", "Jr.", "Sr", "Sr.", "SJ", "S.J.", "S. J.", (const char*)NULL, /* list terminator */ }; int k; /* index into juniors[] */ int n; /* index into last_name[] */ for (n = 0, b_level = 0; last_name[n] != '\0'; ++n) { /* check for "Smith, Jr" and "Smith Jr" and */ switch (last_name[n]) /* convert to "{Smith, Jr}" and "{Smith Jr}" */ { case '{': b_level++; break; case '}': b_level--; break; case ',': if (b_level == 0) return (YES); break; case '\t': case ' ': /* test for Jr.-like name */ if (b_level == 0) { for (k = 0; juniors[k] != (const char*)NULL; ++k) { if (strnicmp(&last_name[n+1],juniors[k],strlen(juniors[k])) == 0) return (YES); } /* end for (k...) */ if (strcspn(&last_name[n+1],"IVX") == 0) return (YES); /* probably small upper-case Roman number */ } break; default: break; } /* end switch (last_name[n]) */ } /* end for (n = 0,...) */ return (NO); } void check_key(VOID) { int k; /* index into pattern_names[] */ for (k = 0; pattern_names[k].name != (const char*)NULL; ++k) { if (stricmp(pattern_names[k].name,current_key) == 0) { /* then found the required table */ if (check_patterns(pattern_names[k].table,current_key) == NO) warning("Unexpected citation key ``%k''"); return; } } } #if defined(HAVE_STDC) void check_length(size_t n) #else /* K&R style */ void check_length(n) size_t n; #endif { if ((check_values == YES) && (n >= STD_MAX_TOKEN)) warning("String length exceeds standard BibTeX limit for ``%f'' entry"); } void check_month(VOID) { size_t n; n = strlen(current_value); if (n == 3) /* check for match against standard abbrevs */ { int m; /* month index */ for (m = 0; month_pair[m].old_name != (const char*)NULL; ++m) { if (stricmp(month_pair[m].new_name,current_value) == 0) return; } } /* Hand coding for the remaining patterns is too ugly to contemplate, so we only provide the checking when real pattern matching is available. */ #if !defined(HAVE_OLDCODE) if (check_patterns(pattern_names[PT_MONTH].table,current_value) == YES) return; #endif /* !defined(HAVE_OLDCODE) */ unexpected(); } void check_number(VOID) { #if defined(HAVE_OLDCODE) size_t k; size_t n = strlen(current_value) - 1; /* We expect the value string to match the regexp "[0-9a-zA-Z---,/ ()]+ to handle values like "UMIACS-TR-89-11, CS-TR-2189, SRC-TR-89-13", "RJ 3847 (43914)", "{STAN-CS-89-1256}", "UMIACS-TR-89-3.1, CS-TR-2177.1", "TR\#89-24", "23", "23-27", and "3+4". */ for (k = 1; k < n; ++k) { /* omit first and last characters -- they are quotation marks */ if (!( Isalnum(current_value[k]) || Isspace(current_value[k]) || (current_value[k] == '-') || (current_value[k] == '+') || (current_value[k] == ',') || (current_value[k] == '.') || (current_value[k] == '/') || (current_value[k] == '#') || (current_value[k] == '\\') || (current_value[k] == '(') || (current_value[k] == ')') || (current_value[k] == '{') || (current_value[k] == '}') )) break; } if (k == n) return; #else /* NOT defined(HAVE_OLDCODE) */ if (check_patterns(pattern_names[PT_NUMBER].table,current_value) == YES) return; #endif /* defined(HAVE_OLDCODE) */ unexpected(); } void check_other(VOID) { int k; /* index into pattern_names[] */ for (k = 0; pattern_names[k].name != (const char*)NULL; ++k) { if (stricmp(pattern_names[k].name,current_field) == 0) { /* then found the required table */ if (check_patterns(pattern_names[k].table,current_value) == NO) unexpected(); return; } } } void check_pages(VOID) { /* Need to handle "B721--B729" as well as "721--729"; some physics journals use an initial letter in page number. */ #if defined(HAVE_OLDCODE) int number = 1; size_t k; size_t n = strlen(current_value) - 1; /* We expect the value string to match the regexps [0-9]+ or [0-9]+--[0-9]+ */ for (k = 1; k < n; ++k) { /* omit first and last characters -- they are quotation marks */ switch (current_value[k]) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (number > 2) { warning("More than 2 page numbers in ``%f = %v''"); return; } break; case '-': number++; if (current_value[k+1] != '-') /* expect -- */ { warning( "Use en-dash, --, to separate page numbers in ``%f = %v''"); return; } ++k; if (current_value[k+1] == '-') /* should not have --- */ { warning( "Use en-dash, --, to separate page numbers in ``%f = %v''"); return; } break; case ',': number++; break; default: unexpected(); return; } } #else /* NOT defined(HAVE_OLDCODE) */ if (check_patterns(pattern_names[PT_PAGES].table,current_value) == YES) return; #endif /* defined(HAVE_OLDCODE) */ unexpected(); } #if (defined(HAVE_PATTERNS) || defined(HAVE_REGEXP) || defined(HAVE_RECOMP)) #if defined(HAVE_STDC) static YESorNO check_patterns(PATTERN_TABLE* pt,const char *value) #else /* K&R style */ static YESorNO check_patterns(pt,value) PATTERN_TABLE* pt; const char *value; #endif { /* Return YES if current_value[] matches a pattern, or there are no patterns, and NO if there is a match failure. Any message associated with a successfully-matched pattern is printed before returning. */ int k; for (k = 0; k < pt->current_size; ++k) { if (PATTERN_MATCHES(value,pt->patterns[k].pattern)) { if (pt->patterns[k].message != (const char*)NULL) { if (pt->patterns[k].message[0] == '?') /* special error flag */ error(pt->patterns[k].message + 1); else /* just normal warning */ warning(pt->patterns[k].message); } return (YES); } } return ((pt->current_size == 0) ? YES : NO); } #endif /* (defined(HAVE_PATTERNS) || defined(HAVE_REGEXP) || defined(HAVE_RECOMP)) */ void check_URL(VOID) { parse_list(current_value, is_URL_char, validate_URL); } void check_volume(VOID) { #if defined(HAVE_OLDCODE) size_t k; size_t n = strlen(current_value) - 1; /* Match patterns like "27", "27A", "27/3", "27A 3", "SMC-13", "VIII", "B", "{IX}", "1.2", "Special issue A", and "11 and 12". However, NEVER match pattern like "11(5)", since that is probably an erroneous incorporation of issue number into the volume value. */ for (k = 1; k < n; ++k) { /* omit first and last characters -- they are quotation marks */ if (!( Isalnum(current_value[k]) || (current_value[k] == '-') || (current_value[k] == '/') || (current_value[k] == '.') || Isspace(current_value[k]) || (current_value[k] == '{') || (current_value[k] == '}') )) { unexpected(); return; } } #else /* NOT defined(HAVE_OLDCODE) */ if (check_patterns(pattern_names[PT_VOLUME].table,current_value) == YES) return; #endif /* defined(HAVE_OLDCODE) */ unexpected(); } void check_year(VOID) { char *p; char *q; long year; #if defined(HAVE_OLDCODE) size_t k; size_t n; /* We expect the value string to match the regexp [0-9]+ */ for (k = 1, n = strlen(current_value) - 1; k < n; ++k) { /* omit first and last characters -- they are quotation marks */ if (!Isdigit(current_value[k])) { warning("Non-digit found in field value of ``%f = %v''"); return; } } #else /* NOT defined(HAVE_PATTERNS) */ if (check_patterns(pattern_names[PT_YEAR].table,current_value) == YES) return; unexpected(); #endif /* defined(HAVE_PATTERNS) */ for (p = current_value; (*p != '\0') ; ) /* now validate all digit strings */ { if (Isdigit(*p)) /* then have digit string */ { /* now make sure year is `reasonable' */ year = strtol(p,&q,10); if ((year < 1800L) || (year > 2099L)) warning("Suspicious year in ``%f = %v''"); p = q; } else /* ignore other characters */ p++; } } #if defined(HAVE_STDC) static int CODEN_character_value(int c) #else /* K&R style */ static int CODEN_character_value(c) int c; #endif { if (((int)'a' <= c) && (c <= (int)'z')) return ((c - (int)'a' + 1)); else if (((int)'A' <= c) && (c <= (int)'Z')) return ((c - (int)'A' + 1)); else if (((int)'1' <= c) && (c <= (int)'9')) return ((c - (int)'1' + 27)); else if (c == (int)'0') return (36); else return (-1); } #if defined(HAVE_STDC) static size_t copy_element(char *target, size_t nt, const char *source, size_t ns) #else /* K&R style */ static size_t copy_element(target, nt, source, ns) char *target; size_t nt; const char *source; size_t ns; #endif { /* Copy source[] into target[], excluding spaces and hyphens, and add a */ /* trailing NUL. Return the number of characters left in source[], */ /* after ignoring trailing spaces and hyphens. */ size_t ks; size_t kt; for (ks = 0, kt = 0; (ks < ns) && (kt < (nt - 1)); ++ks) { if (!((source[ks] == '-') || Isspace(source[ks]))) target[kt++] = source[ks]; } target[kt] = '\0'; for ( ; (source[ks] == '-') || Isspace(source[ks]); ++ks) continue; /* skip trailing space and hyphens */ return (size_t)(ns - ks); } #if defined(HAVE_STDC) static void incomplete_CODEN(char CODEN[7]) #else /* K&R style */ static void incomplete_CODEN(CODEN) char CODEN[7]; #endif { static const char fmt[] = "Incomplete CODEN %c%c%c%c%c should be %c%c%c%c%c%c in ``%%f = %%v''"; char msg[sizeof(fmt)]; (void)sprintf(msg, fmt, CODEN[1], CODEN[2], CODEN[3], CODEN[4], CODEN[5], CODEN[1], CODEN[2], CODEN[3], CODEN[4], CODEN[5], CODEN[6]); warning(msg); /* should be error(), but some journals might have */ /* invalid CODENs (some books have invalid ISBNs) */ } #if defined(HAVE_STDC) static YESorNO is_CODEN_char(int c, size_t n) #else /* K&R style */ static YESorNO is_CODEN_char(c,n) int c; size_t n; #endif { static size_t n_significant = 0; /* number of significant chars already seen in current CODEN */ /* CODENs match [A-Z]-*[A-Z]-*[A-Z]-*[A-Z]-*[A-Z]-*[A-Z0-9], but we also allow lower-case letters. */ if (n == 0) /* start new CODEN */ n_significant = 0; /* embedded hyphens are accepted, but are not significant */ if ((n_significant > 0) && (c == (int)'-')) return (YES); else if ((n_significant < 5) && Isalpha(c)) { n_significant++; return (YES); } else if ((n_significant >= 5) && Isalnum(c)) /* sixth char can be a digit */ { n_significant++; return (YES); } return (NO); } #if defined(HAVE_STDC) static YESorNO is_DOI_char(int c, size_t n) #else /* K&R style */ static YESorNO is_DOI_char(c,n) int c; size_t n; #endif { return (Isprint(c) ? YES : NO); /* DOIs match any printable string */ } #if defined(HAVE_STDC) static YESorNO is_ISBN_char(int c, size_t n) #else /* K&R style */ static YESorNO is_ISBN_char(c,n) int c; size_t n; #endif { static size_t n_significant = 0; /* number of significant chars already seen in current CODEN */ /* ISBNs match [0-9][- ]*[0-9][- ]*[0-9][- ]*[0-9][- ]*[0-9][- ]* [0-9][- ]*[0-9][- ]*[0-9][- ]*[0-9][- ]*[0-9xX] */ if (n == 0) /* start new ISBN */ n_significant = 0; /* embedded hyphens and space are accepted, but are not significant */ if ((n_significant > 0) && ((c == (int)'-') || Isspace(c))) return (YES); else if ((n_significant < 9) && Isdigit(c)) { n_significant++; return (YES); } else if ((n_significant >= 9) && (Isdigit(c) || (c == (int)'X') || (c == (int)'x'))) { /* tenth character may be [0-9xX] */ n_significant++; return (YES); } return (NO); } #if defined(HAVE_STDC) static YESorNO is_ISBN_13_char(int c, size_t n) #else /* K&R style */ static YESorNO is_ISBN_13_char(c,n) int c; size_t n; #endif { return (is_ISBN_char(c, n)); } #if defined(HAVE_STDC) static YESorNO is_ISSN_char(int c, size_t n) #else /* K&R style */ static YESorNO is_ISSN_char(c,n) int c; size_t n; #endif { static size_t n_significant = 0; /* number of significant chars already seen in current CODEN */ /* ISSNs match [0-9][- ]*[0-9][- ]*[0-9][- ]*[0-9][- ]* [0-9][- ]*[0-9][- ]*[0-9][- ]*[0-9xX] */ if (n == 0) /* start new ISSN */ n_significant = 0; /* embedded hyphens and space are accepted, but are not significant */ if ((n_significant > 0) && ((c == (int)'-') || Isspace(c))) return (YES); else if ((n_significant < 7) && Isdigit(c)) { n_significant++; return (YES); } else if ((n_significant >= 7) && (Isdigit(c) || (c == (int)'X') || (c == (int)'x'))) { /* eighth character may be [0-9xX] */ n_significant++; return (YES); } return (NO); } #if defined(HAVE_STDC) static YESorNO is_URL_char(int c, size_t n) #else /* K&R style */ static YESorNO is_URL_char(c,n) int c; size_t n; #endif { return (Isprint(c) ? YES : NO); /* URLs match any printable string */ } #if defined(HAVE_STDC) static void parse_list(const char *s, YESorNO (*is_name_char) ARGS((int c, size_t n)), void (*validate) ARGS((const char *s, size_t n))) #else /* K&R style */ static void parse_list(s, is_name_char, validate) const char *s; YESorNO (*is_name_char) ARGS((int c, size_t n)); void (*validate) ARGS((const char *s, size_t n)); #endif { parse_data pd; /******************************************************************* Parse a list of CODEN, ISBN, or ISSN elements, according to the grammar: LIST : NAME | NAME SEPARATOR LIST SEPARATOR : [not-a-token-char]+ | (nested balanced parentheses) NAME : SEPARATOR* NAME' NAME' : [token-char]+ This simple, and permissive, grammar accepts any strings that contain sequences of zero or more CODEN, ISBN, or ISSN elements, separated by one or more of characters which are not themselves legal element characters. The first element in the list may be preceded by any number of non-element characters. Comments are supported as arbitrary strings inside balanced parentheses, allowing lists like "0-387-97621-4 (invalid ISBN checksum), 3-540-97621-3" "0020-0190 (1982--1990), 0733-8716 (1991--)" "0-8493-0190-4 (set), 0-8493-0191-2 (v. 1), 0-8493-0192-0 (v. 2), 0-8493-0193-9 (v. 3)" The distinction between NAME' and SEPARATOR characters is made by the argument function, (*is_name_char)(), and the validation of the elements is done by the argument function (*validate)(). This generality makes it possible for the same code to be reused for at least CODEN, ISBN, and ISSN values, and possibly others in future versions of this program. Tokens are not copied from the list, so no additional dynamic string storage is required. *******************************************************************/ pd.s = s; pd.is_name_char = is_name_char; for (;;) { parse_separator(&pd); /* may produce a zero-length token */ parse_element(&pd); if (pd.token_length == 0) /* no more tokens in list */ return; (*validate)(pd.token, pd.token_length); } } #if defined(HAVE_STDC) static void parse_element(/*@out@*/ parse_data *pd) #else /* K&R style */ static void parse_element(pd) /*@out@*/ parse_data *pd; #endif { size_t n; for (n = 0, pd->token = pd->s; (*pd->s != '\0') && ((*pd->is_name_char)((int)*pd->s,n) == YES); n++, pd->s++) continue; pd->token_length = (size_t)(pd->s - pd->token); } #if defined(HAVE_STDC) static void parse_separator(/*@out@*/ parse_data *pd) #else /* K&R style */ static void parse_separator(pd) /*@out@*/ parse_data *pd; #endif { size_t n; int paren_level; /* parenthesis level */ pd->token = pd->s; for (n = 0, paren_level = 0; ((*pd->s != '\0') && (((*pd->is_name_char)((int)*pd->s,n) == NO) || (paren_level > 0))); n++, pd->s++) { if (*pd->s == '(') paren_level++; else if (*pd->s == ')') { paren_level--; if (paren_level == 0) n = 0; } } pd->token_length = (size_t)(pd->s - pd->token); if (paren_level != 0) warning("Non-zero parenthesis level in ``%f = %v''"); } static void unexpected(VOID) { warning("Unexpected value in ``%f = %v''"); } #if defined(HAVE_STDC) static void validate_CODEN(const char *the_CODEN, size_t n) #else static void validate_CODEN(the_CODEN, n) const char *the_CODEN; size_t n; #endif { int checksum; char CODEN[1 + MAX_CODEN + 1]; /* saved CODEN for error messages */ /* (use slots 1..6 instead of 0..5) */ size_t k; /* index into CODEN[] */ size_t nleft; #define CODEN_CHECK_CHARACTER(n) "9ABCDEFGHIJKLMNOPQRSTUVWXYZ2345678"[n] /******************************************************************* CODEN values are 6-character strings from the set [A-Z0-9], with a check digit stored in the 6th position given by (11*N1 + 7*N2 + 5*N3 + 3*N4 + 1*N5) mod 34 == X where the Nk are 1..26 for A..Z, and 27..36 for 1..9..0. However, the checksum X (in 0..33) is represented by the corresponding character in the different 34-character range [9A-Z2-8], which excludes digits 0 and 1 to avoid confusion with letters O and I. In library catalogs, the 6th CODEN digit is often omitted, so when we find it missing in a CODEN value string, we print a warning to tell the user what it should be. However, we intentionally do NOT insert it into the bibclean output, because the value string may be corrupted, instead of just truncated. The largest possible sum above is 11*36 + 7*36 + 5*36 + 3*36 + 1*36 = 36*(11 + 7 + 5 + 3 + 1) = 36*27 = 972, corresponding to the CODEN value 00000T, since 972 mod 34 = 20, which maps to the letter T. In reality, the limit is lower than this, because the initial CODEN character is always alphabetic; the largest usable CODEN would then be Z0000, which has a checksum of 11*26 + 7*36 + 5*36 + 3*36 + 1*36 = 36*(11 + 7 + 5 + 3 + 1) - 10*11 = 862. Even 16-bit (short) integers are adequate for this computation. Old CODEN values may be stored with a hyphen between the 4th and 5th characters, e.g. "JACS-A" and "JACS-AT", as well as just "JACSA" and "JACSAT". Unlike ISBN and ISSN values, spaces are NOT used inside CODEN values. *******************************************************************/ (void)strcpy(&CODEN[1], UNKNOWN_CODEN); nleft = copy_element(&CODEN[1], sizeof(CODEN)-1, the_CODEN, n); for (checksum = 0, k = 1; CODEN[k] != '\0'; ++k) { if (k < MAX_CODEN) { static int multiplier[] = { 0, 11, 7, 5, 3, 1 }; checksum += CODEN_character_value((int)CODEN[k]) * multiplier[k]; } else if (k == MAX_CODEN) { if (CODEN_CHECK_CHARACTER(checksum % 34) != CODEN[k]) bad_CODEN(CODEN); } } /* end for (loop over CODEN[]) */ if (strlen(&CODEN[1]) == (MAX_CODEN - 1)) { /* check digit omitted, so tell the user what it should be */ CODEN[MAX_CODEN] = CODEN_CHECK_CHARACTER(checksum % 34); incomplete_CODEN(CODEN); } else if ((strlen(&CODEN[1]) != MAX_CODEN) || (nleft > 0)) bad_CODEN(CODEN); } #if defined(HAVE_STDC) static void validate_DOI(const char *the_DOI, size_t n) #else static void validate_DOI(the_DOI, n) const char *the_DOI; size_t n; #endif { /* ** Typical input: ** ** the_DOI = "\"http://dx.doi.org/10.1000/a.b.c\"" ** ** Notice that the delimiting quotation marks are part of the ** string value, so we must skip the first character in matching ** against members of the list of valid prefixes. */ int k, match_count; static const char *doi_prefix_list[] = { /* the DOI organization introduced new prefixes in 2016 */ "http://doi.org/", "http://dx.doi.org/", /* original single-prefix style (2000--2016) */ "https://doi.org/", "https://dx.doi.org/", #if defined(DOI_RAW_VALID) "10." #endif }; for (k = 0, match_count = 0; k < elementsof(doi_prefix_list); ++k) { if (strncmp(&the_DOI[1], doi_prefix_list[k], strlen(doi_prefix_list[k])) == 0) match_count++; } if (match_count == 0) warning("Unexpected prefix in DOI value ``%v''"); } #if defined(HAVE_STDC) static void validate_ISBN(const char *the_ISBN, size_t n) #else static void validate_ISBN(the_ISBN, n) const char *the_ISBN; size_t n; #endif { int checksum; char ISBN[1 + MAX_ISBN + 1]; /* saved ISBN for error messages */ /* (use slots 1..10 instead of 0..9) */ size_t k; /* index into ISBN[] */ size_t nleft; /******************************************************************* ISBN numbers are 10-character values from the set [0-9Xx], with a checksum given by (sum(k=1:9) digit(k) * k) mod 11 == digit(10) where digits have their normal value, X (or x) as a digit has value 10, and spaces and hyphens are ignored. The sum is bounded from above by 10*(1 + 2 + ... + 9) = 450, so even short (16-bit) integers are sufficient for the accumulation. ISBN digits are grouped into four parts separated by space or hyphen: countrygroupnumber-publishernumber-booknumber-checkdigit. *******************************************************************/ (void)strcpy(&ISBN[1],UNKNOWN_ISBN); nleft = copy_element(&ISBN[1], sizeof(ISBN)-1, the_ISBN, n); for (checksum = 0, k = 1; ISBN[k] != '\0'; ++k) { if (k < MAX_ISBN) checksum += ISBN_DIGIT_VALUE(ISBN[k]) * k; else if (k == MAX_ISBN) { if ((checksum % 11) != ISBN_DIGIT_VALUE(ISBN[k])) bad_ISBN(ISBN); } } /* end for (loop over ISBN[]) */ if ((strlen(&ISBN[1]) != MAX_ISBN) || (nleft > 0)) bad_ISBN(ISBN); } #if defined(HAVE_STDC) static void validate_ISBN_13(const char *the_ISBN_13, size_t n) #else static void validate_ISBN_13(the_ISBN_13, n) const char *the_ISBN_13; size_t n; #endif { int checksum; char ISBN_13[1 + MAX_ISBN_13 + 1]; /* saved ISBN_13 for error messages */ /* (use slots 1..13 instead of 0..12) */ size_t k; /* index into ISBN_13[] */ size_t nleft; /******************************************************************* ISBN_13 numbers are 13-character values from the set [0-9Xx], with a final checksum digit given by rem = (sum(k=1:12) digit(k) * weight(k)) mod 10 weight(k) = if (k odd) then 1 else 3 digit(13) = if (rem == 0) then 0 else (10 - rem) where digits have their normal value, X (or x) as a digit has value 10, and spaces and hyphens are ignored. The sum is bounded from above by 3*(9 + 9 + ... + 9) = 324, so even short (16-bit) integers are sufficient for the accumulation. ISBN_13 digits are grouped into five parts separated by space or hyphen: 978-countrygroupnumber-publishernumber-booknumber-checkdigit. The initial prefix changes to 979 when the 978 group is exhausted. *******************************************************************/ (void)strcpy(&ISBN_13[1],UNKNOWN_ISBN_13); nleft = copy_element(&ISBN_13[1], sizeof(ISBN_13)-1, the_ISBN_13, n); for (checksum = 0, k = 1; ISBN_13[k] != '\0'; ++k) { size_t weight; weight = (k & 1) ? 1 : 3; if (k < MAX_ISBN_13) checksum += ISBN_DIGIT_VALUE(ISBN_13[k]) * weight ; else if (k == MAX_ISBN_13) { size_t digit_13, rem; rem = checksum % 10; digit_13 = (rem == 0) ? 0 : (10 - rem); if (digit_13 != ISBN_DIGIT_VALUE(ISBN_13[k])) bad_ISBN_13(ISBN_13); } } /* end for (loop over ISBN_13[]) */ if ((strlen(&ISBN_13[1]) != MAX_ISBN_13) || (nleft > 0)) bad_ISBN_13(ISBN_13); } #if defined(HAVE_STDC) static void validate_ISSN(const char *the_ISSN, size_t n) #else static void validate_ISSN(the_ISSN, n) const char *the_ISSN; size_t n; #endif { long checksum; char ISSN[1 + MAX_ISSN + 1]; /* saved ISSN for error messages */ /* (use slots 1..8 instead of 0..7) */ size_t k; /* index into ISSN[] */ size_t nleft; /******************************************************************* ISSN numbers are 8-character values from the set [0-9Xx], with a checksum given by (sum(k=1:7) digit(k) * (k+2)) mod 11 == digit(8) where digits have their normal value, X (or x) as a digit has value 10, and spaces and hyphens are ignored. The sum is bounded from above by 10*(3 + 4 + ... + 9) = 420, so even short (16-bit) integers are sufficient for the accumulation. ISSN digits are grouped into two 4-digit parts separated by space or hyphen. *******************************************************************/ (void)strcpy(&ISSN[1],UNKNOWN_ISSN); nleft = copy_element(&ISSN[1], sizeof(ISSN)-1, the_ISSN, n); for (checksum = 0L, k = 1; (ISSN[k] != '\0'); ++k) { if (k < MAX_ISSN) checksum += (long)(ISSN_DIGIT_VALUE(ISSN[k]) * (k + 2)); else if (k == MAX_ISSN) { if ((checksum % 11L) != ISSN_DIGIT_VALUE(ISSN[k])) bad_ISSN(ISSN); } } /* end for (loop over ISSN[]) */ if ((strlen(&ISSN[1]) != MAX_ISSN) || (nleft > 0)) bad_ISSN(ISSN); } #if defined(HAVE_STDC) static void validate_URL(const char *the_URL, size_t n) #else static void validate_URL(the_URL, n) const char *the_URL; size_t n; #endif { char *p; p = stristr(the_URL, "://"); if (p == (char *)NULL) warning("Expected protocol://... in URL value ``%v%''"); else { if ( ((p - the_URL) >= 3) && (strncmp(&p[-3], "ftp", 3) == 0) ) /* NO-OP */ ; else if ( ((p - the_URL) >= 4) && (strncmp(&p[-4], "http", 4) == 0) ) /* NO-OP */ ; else if ( ((p - the_URL) >= 5) && (strncmp(&p[-5], "https", 5) == 0) ) /* NO-OP */ ; else warning("Unexpected protocol://... in URL value ``%v'': normally ftp://... or http://... or https://..."); if (stristr(the_URL, "doi.org/") != (char *)NULL) warning("Unexpected DOI in URL value ``%v'': move to separate DOI = \"...\" key/value in this entry"); else if ( (stristr(the_URL, ".com/10.") != (char *)NULL) || (stristr(the_URL, ".edu/10.") != (char *)NULL) || (stristr(the_URL, ".gov/10.") != (char *)NULL) || (stristr(the_URL, ".mil/10.") != (char *)NULL) || (stristr(the_URL, ".net/10.") != (char *)NULL) || (stristr(the_URL, ".org/10.") != (char *)NULL) ) warning("Possible DOI in URL value ``%v'': if so, move to separate DOI = \"...\" key/value in this entry"); } } bibclean-3.07/xctype.h0000644000156700015670000000205107721440002013563 0ustar beebebeebe#ifndef XCTYPE_H_DEFINED_ #define XCTYPE_H_DEFINED_ #ifdef HAVE_CTYPE_H #include #else #endif /* We need the isxxx() functions/macros from to work correctly for 8-bit characters, but regrettably, those in many C implementations fail to do so if char is a signed data type, and the character is out of the range 0..127. If your compiler lacks an unsigned char data type, then you will have to change (unsigned char)(c) to (int)(0xff & (unsigned int)(c)). With this change, it is important that none of these be invoked with c == EOF. */ #define Isalnum(c) (isalnum((int)(unsigned char)(c)) != 0) #define Isalpha(c) (isalpha((int)(unsigned char)(c)) != 0) #define Isdigit(c) (isdigit((int)(unsigned char)(c)) != 0) #define Isgraph(c) (isgraph((int)(unsigned char)(c)) != 0) #define Islower(c) (islower((int)(unsigned char)(c)) != 0) #define Isprint(c) (isprint((int)(unsigned char)(c)) != 0) #define Isspace(c) (isspace((int)(unsigned char)(c)) != 0) #define Isupper(c) (isupper((int)(unsigned char)(c)) != 0) #endif /* XCTYPE_H_DEFINED_ */ bibclean-3.07/dbx-test.run0000644000156700015670000002356013251470313014371 0ustar beebebeebecheck -all suppress rui run -no-check-values test/testbib2.bib >/dev/null run -fix-font-change test/testbib3.bib >/dev/null run -fix-font-change test/testbib4.bib >/dev/null run -German-style test/testbib5.bib >/dev/null run -fix-accents -fix-braces -fix-math test/testbib7.bib >/dev/null run --fix-degrees test/testbib8.bib >/dev/null run -no-check-values test/testltx1.bib >/dev/null run -German-style -align-equals -check-values -delete-empty-values -file-position -fix-font-changes -fix-initials -fix-names -keep-linebreaks -keep-parbreaks -keep-preamble-spaces -keep-spaces -keep-string-spaces -parbreaks -prettyprint -read-init-files -remove-OPT-prefixes -scribe -warnings test/testopt1.bib >/dev/null run -G -al -c -d -fil -fix-f -fix-i -fix-n -keep-l -keep-pa -keep-pr -keep-sp -keep-st -pa -pre -rea -rem -s -w test/testopt2.bib >/dev/null run -no-German-style -no-align-equals -no-check-values -no-debug-match-failures -no-delete-empty-values -no-file-position -no-fix-font-changes -no-fix-initials -no-fix-names -no-keep-linebreaks -no-keep-parbreaks -no-keep-preamble-spaces -no-keep-spaces -no-keep-string-spaces -no-parbreaks -no-prettyprint -no-print-ISBN-table -no-print-keyword-table -no-print-patterns -no-read-init-files -no-remove-OPT-prefixes -no-scribe -no-warnings test/testopt3.bib >/dev/null run -no-G -no-a -no-c -no-deb -no-del -no-fil -no-fix-f -no-fix-i -no-fix-n -no-keep-l -no-keep-pa -no-keep-pr -no-keep-sp -no-keep-st -no-pa -no-pre -no-print-I -no-print-k -no-print-p -no-rea -no-rem -no-s -no-w test/testopt4.bib >/dev/null run -bogus-option test/testopt5.bib >/dev/null run --no-read-init-files -print-ISBN-table test/testopt6.bib >/dev/null run -no-print-ISBN-table test/testopt7.bib >/dev/null run -no-read-init-files -print-keyword-table test/testopt8.bib >/dev/null run -no-print-keyword-table test/testopt9.bib >/dev/null run -no-read-init-files -print-patterns test/testopta.bib >/dev/null run -no-print-patterns test/testoptb.bib >/dev/null run -no-read-init-files -print-I test/testoptc.bib >/dev/null run -no-print-I test/testoptd.bib >/dev/null run -no-read-init-files -print-k test/testopte.bib >/dev/null run -no-print-k test/testoptf.bib >/dev/null run -no-read-init-files -print-p test/testoptg.bib >/dev/null run -no-print-p test/testopth.bib >/dev/null run --author test/testopti.bib >/dev/null run --help test/testoptj.bib >/dev/null run --version test/testoptk.bib >/dev/null run -fix-math test/testopto.bib >/dev/null run -fix-accents test/testoptq.bib >/dev/null run -fix-braces test/testoptr.bib >/dev/null run -fix-accents -fix-braces -max-width 60 test/testopts.bib >/dev/null run -fix-braces test/testoptt.bib >/dev/null run -fix-math -max-width 0 test/testoptu.bib >/dev/null run -fix-braces test/testoptv.bib >/dev/null run -fix-math test/testoptw.bib >/dev/null run -scribe -no-check test/testscr1.bib >/dev/null run -scribe -file -no-check test/testscr2.bib >/dev/null run -scribe -no-check test/testscr3.bib >/dev/null run -scribe -file -no-check -no-par test/testscr4.bib >/dev/null run -? test/topt101.bib >/dev/null run -German-style test/topt102.bib >/dev/null run -ISBN-file /dev/null test/topt103.bib >/dev/null run -align-equals test/topt104.bib >/dev/null run -author test/topt105.bib >/dev/null run -brace-protect test/topt106.bib >/dev/null run -check-values test/topt107.bib >/dev/null run -copyleft test/topt108.bib >/dev/null run -copyright test/topt109.bib >/dev/null run -debug-match-failures test/topt110.bib >/dev/null run -delete-empty-values test/topt111.bib >/dev/null run -error-log /dev/null test/topt112.bib >/dev/null run -file-position test/topt113.bib >/dev/null run -fix-accents test/topt114.bib >/dev/null run -fix-braces test/topt115.bib >/dev/null run -fix-font-changes test/topt116.bib >/dev/null run -fix-initials test/topt117.bib >/dev/null run -fix-math test/topt118.bib >/dev/null run -fix-names test/topt119.bib >/dev/null run -help test/topt120.bib >/dev/null run -init-file /dev/null test/topt121.bib >/dev/null run -keep-linebreaks test/topt122.bib >/dev/null run -keep-parbreaks test/topt123.bib >/dev/null run -keep-preamble-spaces test/topt124.bib >/dev/null run -keep-spaces test/topt125.bib >/dev/null run -keep-string-spaces test/topt126.bib >/dev/null run -keyword-file /dev/null test/topt127.bib >/dev/null run -max-width nnn test/topt128.bib >/dev/null run -no-German-style test/topt129.bib >/dev/null run -no-align-equals test/topt130.bib >/dev/null run -no-brace-protect test/topt131.bib >/dev/null run -no-check-values test/topt132.bib >/dev/null run -no-debug-match-failures test/topt133.bib >/dev/null run -no-delete-empty-values test/topt134.bib >/dev/null run -no-file-position test/topt135.bib >/dev/null run -no-fix-accents test/topt136.bib >/dev/null run -no-fix-braces test/topt137.bib >/dev/null run -no-fix-font-changes test/topt138.bib >/dev/null run -no-fix-initials test/topt139.bib >/dev/null run -no-fix-math test/topt140.bib >/dev/null run -no-fix-names test/topt141.bib >/dev/null run -no-keep-linebreaks test/topt142.bib >/dev/null run -no-keep-parbreaks test/topt143.bib >/dev/null run -no-keep-preamble-spaces test/topt144.bib >/dev/null run -no-keep-spaces test/topt145.bib >/dev/null run -no-keep-string-spaces test/topt146.bib >/dev/null run -no-parbreaks test/topt147.bib >/dev/null run -no-prettyprint test/topt148.bib >/dev/null run -no-print-ISBN-table test/topt149.bib >/dev/null run -no-print-keyword-table test/topt150.bib >/dev/null run -no-print-patterns test/topt151.bib >/dev/null run -no-quiet test/topt152.bib >/dev/null run -no-read-init-files test/topt153.bib >/dev/null run -no-remove-OPT-prefixes test/topt154.bib >/dev/null run -no-scribe test/topt155.bib >/dev/null run -no-trace-file-opening test/topt156.bib >/dev/null run -no-warnings test/topt157.bib >/dev/null run -output-file /dev/null test/topt158.bib >/dev/null run -parbreaks test/topt159.bib >/dev/null run -prettyprint test/topt160.bib >/dev/null run -no-read-init-files -print-ISBN-table test/topt161.bib >/dev/null run -no-read-init-files -print-keyword-table test/topt162.bib >/dev/null run -no-read-init-files -print-patterns test/topt163.bib >/dev/null run -quiet test/topt164.bib >/dev/null run -read-init-files test/topt165.bib >/dev/null run -remove-OPT-prefixes test/topt166.bib >/dev/null run -scribe test/topt167.bib >/dev/null run -version test/topt168.bib >/dev/null run -warnings test/topt169.bib >/dev/null run -fix-degrees test/topt170.bib >/dev/null run -no-fix-degrees test/topt171.bib >/dev/null run --? test/topt301.bib >/dev/null run --German-style test/topt302.bib >/dev/null run --ISBN-file /dev/null test/topt303.bib >/dev/null run --align-equals test/topt304.bib >/dev/null run --author test/topt305.bib >/dev/null run --brace-protect test/topt306.bib >/dev/null run --check-values test/topt307.bib >/dev/null run --copyleft test/topt308.bib >/dev/null run --copyright test/topt309.bib >/dev/null run --debug-match-failures test/topt310.bib >/dev/null run --delete-empty-values test/topt311.bib >/dev/null run --error-log /dev/null test/topt312.bib >/dev/null run --file-position test/topt313.bib >/dev/null run --fix-accents test/topt314.bib >/dev/null run --fix-braces test/topt315.bib >/dev/null run --fix-font-changes test/topt316.bib >/dev/null run --fix-initials test/topt317.bib >/dev/null run --fix-math test/topt318.bib >/dev/null run --fix-names test/topt319.bib >/dev/null run --help test/topt320.bib >/dev/null run --init-file /dev/null test/topt321.bib >/dev/null run --keep-linebreaks test/topt322.bib >/dev/null run --keep-parbreaks test/topt323.bib >/dev/null run --keep-preamble-spaces test/topt324.bib >/dev/null run --keep-spaces test/topt325.bib >/dev/null run --keep-string-spaces test/topt326.bib >/dev/null run --keyword-file /dev/null test/topt327.bib >/dev/null run --max-width nnn test/topt328.bib >/dev/null run --no-German-style test/topt329.bib >/dev/null run --no-align-equals test/topt330.bib >/dev/null run --no-brace-protect test/topt331.bib >/dev/null run --no-check-values test/topt332.bib >/dev/null run --no-debug-match-failures test/topt333.bib >/dev/null run --no-delete-empty-values test/topt334.bib >/dev/null run --no-file-position test/topt335.bib >/dev/null run --no-fix-accents test/topt336.bib >/dev/null run --no-fix-braces test/topt337.bib >/dev/null run --no-fix-font-changes test/topt338.bib >/dev/null run --no-fix-initials test/topt339.bib >/dev/null run --no-fix-math test/topt340.bib >/dev/null run --no-fix-names test/topt341.bib >/dev/null run --no-keep-linebreaks test/topt342.bib >/dev/null run --no-keep-parbreaks test/topt343.bib >/dev/null run --no-keep-preamble-spaces test/topt344.bib >/dev/null run --no-keep-spaces test/topt345.bib >/dev/null run --no-keep-string-spaces test/topt346.bib >/dev/null run --no-parbreaks test/topt347.bib >/dev/null run --no-prettyprint test/topt348.bib >/dev/null run --no-print-ISBN-table test/topt349.bib >/dev/null run --no-print-keyword-table test/topt350.bib >/dev/null run --no-print-patterns test/topt351.bib >/dev/null run --no-quiet test/topt352.bib >/dev/null run --no-read-init-files test/topt353.bib >/dev/null run --no-remove-OPT-prefixes test/topt354.bib >/dev/null run --no-scribe test/topt355.bib >/dev/null run --no-trace-file-opening test/topt356.bib >/dev/null run --no-warnings test/topt357.bib >/dev/null run --output-file /dev/null test/topt358.bib >/dev/null run --parbreaks test/topt359.bib >/dev/null run --prettyprint test/topt360.bib >/dev/null run --no-read-init-files --print-ISBN-table test/topt361.bib >/dev/null run --no-read-init-files --print-keyword-table test/topt362.bib >/dev/null run --no-read-init-files --print-patterns test/topt363.bib >/dev/null run --quiet test/topt364.bib >/dev/null run --read-init-files test/topt365.bib >/dev/null run --remove-OPT-prefixes test/topt366.bib >/dev/null run --scribe test/topt367.bib >/dev/null run --version test/topt368.bib >/dev/null run --warnings test/topt369.bib >/dev/null run --fix-degrees test/topt370.bib >/dev/null run --no-fix-degrees test/topt371.bib >/dev/null bibclean-3.07/strist.c0000644000156700015670000000222107721522765013612 0ustar beebebeebe/* -*-C-*- strist.c */ /*-->strist*/ /**********************************************************************/ /****************************** strist ********************************/ /**********************************************************************/ #include #include "xctype.h" #include "xstring.h" RCSID("$Id: strist.c,v 1.2 2003/08/22 23:23:07 beebe Exp beebe $") /* Return pointer to location of sub[] in s[], ignoring letter case, else (char*)NULL. This is a simple implementation; a library version should use a more sophisticated version (e.g. Boyer-Moore, Knuth-Morris-Pratt, hardware search). */ char* #if defined(HAVE_STDC) stristr( const char *s, const char *sub ) #else /* NOT defined(HAVE_STDC) */ stristr(s,sub) const char *s; const char *sub; #endif /* defined(HAVE_STDC) */ { size_t length; length = (size_t)strlen(sub); if (s == (const char*)NULL) return ((char*)NULL); if ((sub == (char*)NULL) || (*sub == '\0')) return ((char*)s); /* NULL substring always found at start */ for (; (*s != '\0');) { if (strnicmp(s,sub,length) == 0) return ((char*)s); ++s; } return ((char*)NULL); } bibclean-3.07/xstring.h0000644000156700015670000000113107005420527013750 0ustar beebebeebe#ifndef XSTRING_H_DEFINED_ #define XSTRING_H_DEFINED_ #ifdef HAVE_STRING_H #include #else #endif extern void Memmove ARGS((void *target_, const void *source_, size_t n_)); extern void *Memset ARGS((void *target_, int value_, size_t n_)); extern char *Strdup ARGS((const char *)); extern int stricmp ARGS((const char *, const char *)); extern char *stristr ARGS((const char *s_, const char *sub_)); extern int strnicmp ARGS((const char *s1_, const char *s2_, size_t n_)); #define STREQUAL(a,b) (strcmp(a,b) == 0) #define STRGREATER(a,b) (strcmp(a,b) > 0) #endif /* XSTRING_H_DEFINED_ */ bibclean-3.07/typedefs.h0000644000156700015670000000230707721506764014120 0ustar beebebeebe#ifndef TYPEDEFS_H_DEFINED_ #define TYPEDEFS_H_DEFINED_ typedef struct s_name_pair { /*@null@*/ const char *old_name; /*@null@*/ const char *new_name; } NAME_PAIR; typedef struct s_option_function_entry { /*@null@*/ const char *name; /* option name */ size_t min_match; /* minimum length string match */ /*@null@*/ void (*function)(VOID); /* function to call when option matched */ } OPTION_FUNCTION_ENTRY; typedef struct s_parse_data { YESorNO (*is_name_char) ARGS((int c_, size_t n_)); const char *s; /* pointer to next char in list */ const char *token; /* pointer to token in list */ size_t token_length; /* number of token characters (== (s - token)) */ } parse_data; typedef struct s_pattern_table { MATCH_PATTERN *patterns; int current_size; int maximum_size; } PATTERN_TABLE; typedef struct s_pattern_names { const char *name; PATTERN_TABLE *table; } PATTERN_NAMES; typedef struct s_position { const char *filename; long byte_position; long last_column_position; long column_position; long line_number; } POSITION; typedef struct s_io_pair { POSITION input; POSITION output; } IO_PAIR; #endif /* TYPEDEFS_H_DEFINED_ */ bibclean-3.07/match.c0000644000156700015670000004006513251073016013347 0ustar beebebeebe/*********************************************************************** ========== BACKGROUND ========== This file contains an implementation of limited regular-expression pattern matching code. The pattern syntax is simpler, more limited, and different from normal regular-expression pattern matching syntax. It is described in more detail below. The motivation for this new code is that I found considerable inconsistency in the matching behavior between versions of either re_comp()/re_exec() or compile()/step() on these systems DECstation 3100 IBM 3090 IBM PS/2 IBM RS/6000 AIX 3.2 NeXT Mach 3.0 Silicon Graphics IRIX 4.0 Stardent OS 2.2 Sun SPARC That makes use of those regular-expression pattern matching unreliable across systems. One possible solution would be to use the GNU re_comp() and re_exec() from the regexp distribution on prep.ai.mit.edu (as of writing, pub/gnu/regex-0.11.*). However, that code is large (5000+ lines), and its installation uses configuration facilities that only work under some variants of UNIX, and are completely useless on other operating systems. By contrast, the pattern matching code here is quite adequate for bibclean's needs, and can be expressed in fewer than 140 lines. In addition, it provides special handling of TeX control sequences and braces that would be rather awkward to express in conventional regular-expression syntax. If the symbol TEST is defined at compile time, a main program will be included that can be used for testing patterns supplied from stdin. ============== PATTERN SYNTAX ============== The string values to be pattern-matched are tab-free single-line values delimited by quotation marks. The patterns are represented by the following special markers: a exactly one letter A one or more letters d exactly one digit D one or more digits r exactly one roman numeral R one or more roman numerals (i.e. a roman number) w exactly one word (one or more letters and digits) W one or more space-separated words, beginning and ending with a word X one or more special-separated words, beginning and ending with a word . one special character (see SPECIAL_CHARS defined below) : one or more special characters one or more spaces \x exactly one x (x is an character) x exactly the character x (x is anything but aAdDrRwW.:\) Special characters are a subset of punctuation characters that are typically used in values. Note the \ represents a single literal space, \\ a single literal backslash, \a the letter a, \A the letter A, \d the letter d, \D the letter D, and so on. Remember to double all backslashes in C strings: \a must be entered as \\a, and "and" as "\\an\\d". Each pattern is matched against the entire string and must match successfully for a YES return from match_pattern(). Consequently, there is no need for an analogue of ^ and $ in full regular expressions. Neither is there provision for matching on arbitrary sets of characters. Instead, fixed sets of characters are provided (conventional regular-expression equivalents are shown in parentheses): digits ([0-9]), alphanumerics ([A-Za-z0-9]), space ([ \t\f\r\n\v]), and special ([][" !#()*+,-./:;?~]) In addition, TeX control sequences of the form \ or \ in the string are ignored in the match, together with any following whitespace. Braces are also ignored, but not whitespace following them. Thus "{TR\slash A87}" matches the patterns "AD" and "W", and "{TR A\slash 87}" matches the patterns "A AD" and "A W". [29-Jan-1993] ***********************************************************************/ #include #include "xstdbool.h" #include "xstdlib.h" #include "xstring.h" #include "xctype.h" #include "yesorno.h" #include "match.h" /* must come AFTER yesorno.h */ RCSID("$Id: match.c,v 1.10 2017/06/09 14:46:20 beebe Exp beebe $") #ifndef EXIT_SUCCESS #define EXIT_SUCCESS 0 #endif #define RETURN_MATCH_FAILURE(expect) return (match_failure(expect,org_s,s,org_pattern,pattern)) #ifdef MIN #undef MIN #endif /* MIN */ #define MIN(a,b) ((a) < (b) ? (a) : (b)) #define SPECIAL_CHARS " !#()*+,-./:;?[]~" #define is_special(c) IN_SET(SPECIAL_CHARS,(c)) YESorNO debug_match_failures = NO; /* YES: debug value pattern match failures */ static const char *next_s ARGS((const char *s_)); bool is_roman ARGS((int c_)); static YESorNO match_failure ARGS((const char *expect, const char *org_s, const char *s, const char *org_pattern, const char *pattern)); static void match_warning ARGS((const char *name, const char *org_s, const char *s)); extern void warning ARGS((const char *msg_)); #if defined(HAVE_STDC) YESorNO match_pattern(const char *s, const char *pattern) #else /* K&R style */ YESorNO match_pattern(s,pattern) const char *s; const char *pattern; #endif { const char *org_s; const char *org_pattern; org_s = s; org_pattern = pattern; s = next_s(s-1); for ( ; (*pattern != '\0'); ++pattern) { switch(*pattern) { case 'a': /* single letter */ if (!Isalpha((int)*s)) RETURN_MATCH_FAILURE("single letter"); s = next_s(s); break; case 'A': /* one or more letters */ if (!Isalpha((int)*s)) RETURN_MATCH_FAILURE("one or more letters"); while (Isalpha((int)*s)) s = next_s(s); break; case 'd': if (!Isdigit((int)*s)) /* single digit */ RETURN_MATCH_FAILURE("single digit"); s = next_s(s); break; case 'D': /* one or more digits */ if (!Isdigit((int)*s)) RETURN_MATCH_FAILURE("one or more digits"); while (Isdigit((int)*s)) s = next_s(s); break; case 'r': /* single roman numeral */ if (!is_roman((int)*s)) RETURN_MATCH_FAILURE("single roman numeral"); s = next_s(s); break; case 'R': /* one or more roman numerals */ if (!is_roman((int)*s)) RETURN_MATCH_FAILURE("one or more roman numerals"); while (is_roman((int)*s)) s = next_s(s); break; case 'w': /* one word (letters and digits) */ if (!Isalnum((int)*s)) RETURN_MATCH_FAILURE("one word (letters and digits)"); while (Isalnum((int)*s)) s = next_s(s); break; case 'W': /* one or more space-separated words */ if (!Isalnum((int)*s)) RETURN_MATCH_FAILURE("one or more space-separated words"); while (Isalnum((int)*s)) /* parse first word */ s = next_s(s); for (;;) { if (!Isspace((int)*s)) break; while (Isspace((int)*s)) /* parse separators */ s = next_s(s); while (Isalnum((int)*s)) /* parse another word */ s = next_s(s); } break; case 'X': /* one or more special-separated words */ if (!Isalnum((int)*s)) RETURN_MATCH_FAILURE("one or more special-separated words"); while (Isalnum((int)*s)) /* parse first word */ s = next_s(s); for (;;) { if (!is_special(*s)) break; while (is_special(*s)) /* parse separators */ s = next_s(s); while (Isalnum((int)*s)) /* parse another word */ s = next_s(s); } break; case ' ': /* one or more whitespace characters */ if (!Isspace((int)*s)) RETURN_MATCH_FAILURE("one or more whitespace characters"); while (Isspace((int)*s)) s = next_s(s); break; case '.': /* exactly one special character */ if (!is_special(*s)) RETURN_MATCH_FAILURE("exactly one special character"); s = next_s(s); /* [07-Mar-1999] bug fix: missing before bibclean 2.12 */ break; case ':': /* one or more special characters */ if (!is_special(*s)) RETURN_MATCH_FAILURE("one or more special characters"); while (is_special(*s)) s = next_s(s); break; case '\\': /* literal next character */ pattern++; /* fall through to exact match test */ /*@fallthrough@*/ /*FALLTHROUGH*/ default: /* anything else: exact match */ if (*pattern != *s) RETURN_MATCH_FAILURE("anything else: exact match"); s = next_s(s); } /* end switch */ } /* end for (; ;) */ if (*s == '\0') return (YES); else RETURN_MATCH_FAILURE("end of string"); } #if defined(HAVE_STDC) static YESorNO match_failure(const char *expect, const char *org_s, const char *s, const char *org_pattern, const char *pattern) #else /* K&R style */ static YESorNO match_failure(expect,org_s,s,org_pattern,pattern) const char *expect; const char *org_s; const char *s; const char *org_pattern; const char *pattern; #endif { /* maybe print a warning if -debug-match-failures was specified; always return NO */ if (debug_match_failures == YES) { #define FORMAT "Pattern does not match %.50s" char msg[sizeof(FORMAT) + 50 + 1]; (void)sprintf(msg,FORMAT,expect); #undef FORMAT #ifndef TEST warning(msg); #endif match_warning("String ", org_s, s); match_warning("Pattern", org_pattern, pattern); } return (NO); } #if defined(HAVE_STDC) static void match_warning(const char *name, const char *org_s, const char *s) #else /* K&R style */ static void match_warning(name,org_s,s) const char *name; const char *org_s; const char *s; #endif { char *msg; #define DOTS "..." #define FORMAT "%s so far: [%s%.*s], remaining: [%.*s%s]" #define MAX_FRAG ((size_t)25) /* longest string fragment allowed */ msg = (char*)malloc(strlen(FORMAT) + strlen(name) + MIN((size_t)(s - org_s),MAX_FRAG) + strlen(DOTS) + MIN(strlen(s),MAX_FRAG) + strlen(DOTS) + 1); if (msg != (char*)NULL) { const char *dots1; const char *dots2; if ((size_t)(s - org_s) > MAX_FRAG) { org_s = s - MAX_FRAG; dots1 = DOTS; } else { dots1 = ""; } if (strlen(s) > MAX_FRAG) dots2 = DOTS; else dots2 = ""; (void)sprintf(msg,FORMAT, name, dots1, (int)(s - org_s), org_s, (int)MIN(strlen(s),MAX_FRAG), s, dots2); #ifdef TEST (void)fprintf(stderr,"%s\n", msg); #else warning(msg); #endif FREE(msg); } #undef FORMAT } #if defined(HAVE_STDC) static const char * next_s(const char *s) #else /* K&R style */ static const char * next_s(s) const char *s; #endif { /* find next position in s, ignoring braces and ignoring TeX control sequences and any space that follows them */ for (++s; (*s != '\0'); ) { switch (*s) { case '\\': /* TeX control sequence */ ++s; /* look at next character */ if (Isalpha((int)*s)) /* \ */ { while (Isalpha((int)*s)) ++s; } else /* \ */ ++s; while (Isspace((int)*s)) /* advance over trailing whitespace */ ++s; /* since TeX does too */ break; case '{': case '}': ++s; break; case BIBTEX_HIDDEN_DELIMITER: /* ignore delimited inline comment */ for (++s; (*s != '\0'); ++s) { if (*s == BIBTEX_HIDDEN_DELIMITER) { ++s; break; } } break; default: return (s); } /* end switch */ } /* end for */ return (s); } #ifdef TEST #define MAXLINE 256 #define NO_WARNING (const char *)NULL MATCH_PATTERN month_patterns[] = { {"aaa", "oct"}, {"aaa # \" D\"", "oct # \" 10\""}, {"aaa # \" D--D\"", "oct # \" 20--24\""}, {"\"D \" # aaa", "\"10 \" # oct"}, {"\"D--D \" # aaa", "\"10--24 \" # oct"}, {"aaa # \"\" # aaa", "jul # \"\\emdash \" # aug"}, {"aaa # \"--\" # aaa", "jul # \"--\" # aug"}, {"aaa # \" -- \" # aaa", "jul # \" -- \" # aug"}, {"aaa # \"/\" # aaa", "jul # \"/\" # aug"}, {"aaa # \" A \" # aaa", "jul # \" and \" # aug"}, {(const char*)NULL, NO_WARNING}, }; MATCH_PATTERN number_patterns[] = { {"\"A AD\"", "PN LPS5001"}, {"\"A D(D)\"", "RJ 34(49)"}, {"\"A D\"", "XNSS 288811"}, {"\"A D\\.D\"", "Version 3.20"}, {"\"A-A-D-D\"", "UMIAC-TR-89-11"}, {"\"A-A-D\"", "CS-TR-2189"}, {"\"A-A-D\\.D\"", "CS-TR-21.7"}, {"\"A-AD-D\"", "TN-K\\slash 27-70"}, {"\"A-D D\"", "PB-251 845"}, {"\"A-D-D\"", "ANL-30-74"}, {"\"A-D\"", "TR-2189"}, {"\"AD-D-D\"", "GG24-3611-00"}, {"\"AD-D\"", "SP43-29"}, {"\"AD\"", "LPS0064"}, {"\"A\\#D-D\"", "TR\\#89-24 ????"}, {"\"D D\"", "23 \\& 24"}, {"\"D \\an\\d D\"", "11 and 12"}, {"\"D+D\"", "3+4"}, {"\"D-D\"", "23-27"}, {"\"D/D\"", "23/27"}, {"\"DA\"", "23A"}, {"\"D\"", "23"}, {"\"D\\.D\"", "3.4"}, {"\"W-W W\"", "AERE-R 12329"}, {"\"W-W-WW-W\"", "OSU-CISRC-4\\slash 87-TR9"}, {"\"W\"", "Computer Science Report 100"}, {"\"X\"", "TR/AB/3-43.7-3/AB"}, {(const char*)NULL, NO_WARNING}, }; MATCH_PATTERN pages_patterns[] = { {"\"D\"", "23"}, {"\"aD\"", "L23"}, {"\"D--D\"", "23--27"}, {"\"aD--aD\"", "L23--L27"}, {"\"D, D\"", "23, 27"}, {"\"aD, aD\"", "L23, L27"}, {"\"D, D, D\"", "23, 27, 45"}, {"\"aD, aD, aD\"", "L23, L27, L45"}, {"\"D, D, D, D\"", "23, 27, 45, 98"}, {"\"aD, aD, aD, aD\"", "L23, L27, L45, L98"}, {"\"R + D\"", "viii + 445"}, {"\"R + D, w D w\"", "viii + 445, with 30 illustrations"}, {"\"D, w D w\"", "239, with 27 illustrations"}, {"\"D--D, D--D\"", "23--27, 29--32"}, {"\"D--D, D--D, D--D\"", "23--27, 29--32, 35--37"}, {"\"aD--aD, aD--aD\"", "L23--L27, L29--L32"}, {"\"aD--aD, aD--aD, aD--aD\"", "L23--L27, L29--L32, L35--L37"}, {(const char*)NULL, NO_WARNING}, }; MATCH_PATTERN volume_patterns[] = { {"\"D\"", "27"}, {"\"DA\"", "27A"}, {"\"D/D\"", "27/3"}, {"\"DA D\"", "27A 3"}, {"\"w-D\"", "SMC-13"}, {"\"A\"", "VIII"}, {"\"D\\.D\"", "1.2"}, {"\"D \\an\\d D\"", "11 and 12"}, {"\"W\"", "Special issue A"}, {(const char*)NULL, NO_WARNING}, }; MATCH_PATTERN year_patterns[] = { {"\"DDDD\"", NO_WARNING}, {"\"DDDD,WDDDD\"", NO_WARNING}, {"\"DDDD, DDDD, DDDD\"", NO_WARNING}, {"\"18dd, 18dd, 18dd\"", "1889, 1890, 1891"}, {"\"18dd, 18dd\"", "1889, 1890"}, {"\"18dd--d\"", "1891--2"}, {"\"18dd\"", "1892"}, {"\"18dda18dd\"", "{\\noopsort{1885a}}1885"}, {"\"19dd (19dd)\"", "1989 (1990)" }, {"\"19dd, 19dd, 19dd\"", "1989, 1990, 1991"}, {"\"19dd, 19dd\"", "1989, 1990"}, {"\"19dd--d\"", "1991--2"}, {"\"19dd\" # \"--\"", "\"1989\" # \"\\unskip--\""}, {"\"19dd\"", "1992"}, {"\"19dda19dd\"", "{\\noopsort{1985a}}1985"}, {"\"200d--d\"", "2001--2"}, {"\"200d\"", "2009"}, {(const char*)NULL, NO_WARNING}, }; static long line_number; int main ARGS((int argc,char* argv[])); static void process ARGS((const char *line_, MATCH_PATTERN patterns_[])); #if defined(HAVE_STDC) int main(int argc, char* argv[]) #else /* K&R style */ int main(argc,argv) int argc; char* argv[]; #endif { char line[MAXLINE]; /* Input lines should look like key = "value", where key is one of: month, number, pages, volume, or year. Lines with any other key values are ignored. */ line_number = 0L; while (fgets(line,MAXLINE,stdin) != (char*)NULL) { char *p; line_number++; p = strchr(line,'\0'); if (p != (char *)NULL) { for (--p; (p >= &line[0]) && (Isspace((int)*p) || (*p == ',')); --p) *p = '\0'; /* remove trailing whitespace and commas */ for (p = line; Isspace((int)*p); ++p) continue; if (strncmp(p,"month",4) == 0) process(line,month_patterns); else if (strncmp(p,"number",6) == 0) process(line,number_patterns); else if (strncmp(p,"pages",4) == 0) process(line,pages_patterns); else if (strncmp(p,"volume",6) == 0) process(line,volume_patterns); else if (strncmp(p,"year",4) == 0) process(line,year_patterns); else printf("%%%% %ld [%-24s]: %s\n", line_number, line, "ignored"); } } exit (EXIT_SUCCESS); return (EXIT_SUCCESS); } #if defined(HAVE_STDC) static void process(const char *line, MATCH_PATTERN patterns[]) #else /* K&R style */ static void process(line,patterns) const char *line; MATCH_PATTERN patterns[]; #endif { int k; const char *p; p = strchr(line,'\"'); if (p != (char *)NULL) line = p; for (k = 0; patterns[k].pattern != (const char*)NULL; ++k) { if (match_pattern(line,patterns[k].pattern) == YES) { if (patterns[k].message != NO_WARNING) printf("%%%% %ld [%-24s]: matches %s\n", line_number, line, patterns[k].message); return; } } printf("?? %ld [%-24s]: illegal value\n", line_number, line); } #endif /* TEST */ bibclean-3.07/option.c0000644000156700015670000004467214162101235013570 0ustar beebebeebe#include #include "xlimits.h" #include "xstdbool.h" #include "xstdlib.h" #include "xstring.h" RCSID("$Id: option.c,v 1.14 2014/04/03 18:07:03 beebe Exp beebe $") #include "ch.h" #include "isbn.h" #include "yesorno.h" #include "match.h" #include "typedefs.h" /* must come AFTER match.h */ extern YESorNO align_equals; /* NO: left-adjust equals */ extern YESorNO brace_protect; /* YES: brace-protect title words */ extern YESorNO check_values; /* NO: suppress value checks */ extern YESorNO debug_match_failures; /* YES: debug value pattern match failures */ extern YESorNO delete_empty_values; /* YES: delete empty values */ extern YESorNO fix_accents; /* repair accent bracing? */ extern YESorNO fix_braces; /* normalize bracing? */ extern YESorNO fix_degrees; /* normalize author academic degrees? */ extern YESorNO fix_font_changes; /* brace {\em E. Coli}? */ extern YESorNO fix_initials; /* reformat A.U. Thor? */ extern YESorNO fix_math; /* reformat math mode? */ extern YESorNO fix_names; /* reformat Bach, P.D.Q? */ extern YESorNO German_style; /* YES: " inside braced string value obeys german.sty style */ extern YESorNO keep_linebreaks; /* YES: keep linebreaks in values */ extern YESorNO keep_parbreaks; /* YES: keep parbreaks in values */ extern YESorNO keep_preamble_spaces; /* YES: keep spaces in @Preamble{} */ extern YESorNO keep_spaces; /* YES: keep spaces in values */ extern YESorNO keep_string_spaces; /* YES: keep spaces in @String{} */ extern long max_width; extern YESorNO parbreaks; /* NO: parbreaks forbidden */ /* in strings and entries */ extern YESorNO prettyprint; /* NO: do lexical analysis */ extern YESorNO print_ISBN_table; /* YES: print ISBN table */ extern YESorNO print_keyword_table; /* YES: print keyword table */ extern YESorNO print_patterns; /* YES: print value patterns */ extern char *program_name; /* set to argv[0] */ extern YESorNO read_initialization_files; /* -[no-]read-init-files sets */ extern YESorNO remove_OPT_prefixes; /* YES: remove OPT prefix */ extern int screen_lines; /* kbopen() and out_lines() reset */ extern YESorNO Scribe; /* Scribe format input */ extern YESorNO show_file_position; /* messages usually brief */ extern FILE *stdlog; /* usually stderr */ extern YESorNO trace_file_opening; /* -[no-]trace-file-opening sets */ extern YESorNO warnings; /* NO: suppress warnings */ static int current_index; /* argv[] index in do_args() */ static char *current_option; /* set by do_args() */ static char *next_option; /* set in do_args() */ void do_args ARGS((int argc_, char *argv_[])); void do_preargs ARGS((int argc_, char *argv_[])); bool is_optionprefix ARGS((int c)); extern YESorNO apply_function ARGS((const char *option_, OPTION_FUNCTION_ENTRY table_[])); extern void check_inodes ARGS((void)); extern void do_initfile ARGS((const char *pathlist_,const char *name_)); extern void do_keyword_file ARGS((const char *pathlist_,const char *name_)); extern void finish ARGS((int status)); extern void free_keyword_table ARGS((void)); extern void out_lines ARGS((FILE *fpout_,const char *lines_[], YESorNO pausing_)); extern FILE *tfopen ARGS((const char *filename_, const char *mode_)); extern void warning ARGS((const char *msg_)); static void opt_align_equals ARGS((void)); static void opt_author ARGS((void)); static void opt_brace_protect ARGS((void)); static void opt_check_values ARGS((void)); static void opt_copyleft ARGS((void)); static void opt_debug_match_failures ARGS((void)); static void opt_delete_empty_values ARGS((void)); static void opt_error_log ARGS((void)); static void opt_file_position ARGS((void)); static void opt_fix_accents ARGS((void)); static void opt_fix_braces ARGS((void)); static void opt_fix_degrees ARGS((void)); static void opt_fix_font_changes ARGS((void)); static void opt_fix_initials ARGS((void)); static void opt_fix_math ARGS((void)); static void opt_fix_names ARGS((void)); static void opt_help ARGS((void)); static void opt_init_file ARGS((void)); static void opt_ISBN_file ARGS((void)); static void opt_German_style ARGS((void)); static void opt_keep_linebreaks ARGS((void)); static void opt_keep_parbreaks ARGS((void)); static void opt_keep_preamble_spaces ARGS((void)); static void opt_keep_spaces ARGS((void)); static void opt_keep_string_spaces ARGS((void)); static void opt_keyword_file ARGS((void)); static void opt_max_width ARGS((void)); static void opt_output_file ARGS((void)); static void opt_parbreaks ARGS((void)); static void opt_prettyprint ARGS((void)); static void opt_print_ISBN_table ARGS((void)); static void opt_print_keyword_table ARGS((void)); static void opt_print_patterns ARGS((void)); static void opt_quiet ARGS((void)); static void opt_read_init_files ARGS((void)); static void opt_remove_OPT_prefixes ARGS((void)); static void opt_scribe ARGS((void)); static void opt_trace_file_opening ARGS((void)); static void opt_version ARGS((void)); static void opt_warnings ARGS((void)); static void usage ARGS((void)); static void version ARGS((void)); static YESorNO YESorNOarg ARGS((void)); static CONST char *help_lines[] = { "\nUsage: ", (const char*)NULL, " [ -author ] [ -copyleft ] [ -copyright ]\n", "\t[ -error-log filename ] [ -help ] [ '-?' ]\n", "\t[ -init-file filename ] [ -ISBN-file filename ]\n", "\t[ -keyword-file filename ] [ -max-width nnn ]\n", "\t[ -[no-]align-equals ] [ -[no-]brace-protect ]\n", "\t[ -[no-]check-values ] [ -[no-]debug-match-failures ]\n", "\t[ -[no-]delete-empty-values ] [ -[no-]file-position ]\n", "\t[ -[no-]fix-accents ] [ -[no-]fix-braces ] [ -[no-]fix-degrees ]\n", "\t[ -[no-]fix-font-changes ] [ -[no-]fix-initials ]\n", "\t[ -[no-]fix-math ] [ -[no-]fix-names ] [ -[no-]German-style ]\n", "\t[ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ]\n", "\t[ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ]\n", "\t[ -[no-]keep-string-spaces ] [ -[no-]parbreaks ]\n", "\t[ -[no-]prettyprint ] [ -[no-]print-ISBN-table ]\n", "\t[ -[no-]print-keyword-table ] [ -[no-]print-patterns ]\n", "\t[ -[no-]quiet ] [ -[no-]read-init-files ]\n", "\t[ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ]\n", "\t[ -[no-]trace-file-opening ] [ -[no-]warnings ]\n", "\t[ -output-file filename ] [ -version ]\n", "\t[ outfile\n", "\n", #include "bibclean.h" }; #if defined(HAVE_STDC) void do_args(int argc, char *argv[]) #else /* K&R style */ void do_args(argc,argv) int argc; char *argv[]; #endif { int k; /* index into argv[] */ #define MSG_PREFIX "Unrecognized option switch: " #define MAX_OPTION_LENGTH 100 char msg[sizeof(MSG_PREFIX) + MAX_OPTION_LENGTH + 1]; /* for error messages */ int nfiles; /* number of files found in argv[] */ static OPTION_FUNCTION_ENTRY options[] = { {"?", 1, opt_help}, {"align-equals", 2, opt_align_equals}, {"author", 2, opt_author}, {"brace-protect", 1, opt_brace_protect }, {"check-values", 1, opt_check_values}, {"copyleft", 2, opt_copyleft }, {"copyright", 2, opt_copyleft }, {"debug-match-failures", 3, opt_debug_match_failures}, {"delete-empty-values", 1, opt_delete_empty_values}, {"error-log", 1, opt_error_log}, {"file-position", 3, opt_file_position}, {"fix-accents", 5, opt_fix_accents}, {"fix-braces", 5, opt_fix_braces}, {"fix-degrees", 5, opt_fix_degrees}, {"fix-font-changes", 5, opt_fix_font_changes}, {"fix-initials", 5, opt_fix_initials}, {"fix-math", 5, opt_fix_math}, {"fix-names", 5, opt_fix_names}, {"German-style", 1, opt_German_style}, {"help", 1, opt_help}, {"init-file", 2, opt_init_file}, {"ISBN-file", 2, opt_ISBN_file}, {"keep-linebreaks", 6, opt_keep_linebreaks}, {"keep-parbreaks", 7, opt_keep_parbreaks}, {"keep-preamble-spaces", 7, opt_keep_preamble_spaces}, {"keep-spaces", 7, opt_keep_spaces}, {"keep-string-spaces", 7, opt_keep_string_spaces}, {"keyword-file", 3, opt_keyword_file}, {"max-width", 1, opt_max_width}, {"no-align-equals", 4, opt_align_equals}, {"no-brace-protect", 4, opt_brace_protect }, {"no-check-values", 4, opt_check_values}, {"no-debug-match-failures", 6, opt_debug_match_failures}, {"no-delete-empty-values", 6, opt_delete_empty_values}, {"no-file-position", 6, opt_file_position}, {"no-fix-accents", 8, opt_fix_accents}, {"no-fix-braces", 8, opt_fix_braces}, {"no-fix-degrees", 8, opt_fix_degrees}, {"no-fix-font-changes", 8, opt_fix_font_changes}, {"no-fix-initials", 8, opt_fix_initials}, {"no-fix-math", 8, opt_fix_math}, {"no-fix-names", 8, opt_fix_names}, {"no-German-style", 4, opt_German_style}, {"no-keep-linebreaks", 9, opt_keep_linebreaks}, {"no-keep-parbreaks", 10, opt_keep_parbreaks}, {"no-keep-preamble-spaces", 10, opt_keep_preamble_spaces}, {"no-keep-spaces", 10, opt_keep_spaces}, {"no-keep-string-spaces", 10, opt_keep_string_spaces}, {"no-parbreaks", 5, opt_parbreaks}, {"no-prettyprint", 6, opt_prettyprint}, {"no-print-ISBN-table", 10, opt_print_ISBN_table}, {"no-print-keyword-table", 10, opt_print_keyword_table}, {"no-print-patterns", 10, opt_print_patterns}, {"no-quiet", 4, opt_quiet}, {"no-read-init-files", 6, opt_read_init_files}, {"no-remove-OPT-prefixes", 6, opt_remove_OPT_prefixes}, {"no-scribe", 4, opt_scribe}, {"no-trace-file-opening", 4, opt_trace_file_opening}, {"no-warnings", 4, opt_warnings}, {"output-file", 1, opt_output_file}, {"parbreaks", 2, opt_parbreaks}, {"prettyprint", 3, opt_prettyprint}, {"print-ISBN-table", 7, opt_print_ISBN_table}, {"print-keyword-table", 7, opt_print_keyword_table}, {"print-patterns", 7, opt_print_patterns}, {"quiet", 1, opt_quiet}, {"read-init-files", 3, opt_read_init_files}, {"remove-OPT-prefixes", 3, opt_remove_OPT_prefixes}, {"scribe", 1, opt_scribe}, {"trace-file-opening", 1, opt_trace_file_opening}, {"version", 1, opt_version}, {"warnings", 1, opt_warnings}, {(const char*)NULL, 0, (void (*)(VOID))NULL}, }; for (nfiles = 1, k = 1; k < argc; ++k) { if ( (argv[k][1] != '\0') && is_optionprefix((int)argv[k][0]) ) { /* then process command-line switch */ current_index = k; /* needed by opt_init_file() and */ next_option = argv[k+1]; /* opt_error_log() */ current_option = argv[k]; /* needed by YESorNOarg() */ if (is_optionprefix((int)current_option[1])) current_option++; /* allow GNU/POSIX --option */ if (apply_function(current_option+1,options) == NO) { (void)sprintf(msg, "%s%.*s", MSG_PREFIX, MAX_OPTION_LENGTH, current_option); warning(msg); usage(); finish(EXIT_FAILURE); } k = current_index; /* some opt_xxx() functions update it */ } else /* save file names */ argv[nfiles++] = argv[k]; /* shuffle file names down */ } argv[nfiles] = (char*)NULL; /* terminate new argument list */ } #if defined(HAVE_STDC) void do_preargs(int argc, char *argv[]) #else /* K&R style */ void do_preargs(argc,argv) int argc; char *argv[]; #endif { int k; static OPTION_FUNCTION_ENTRY options[] = { {"no-print-ISBN-table", 10, opt_print_ISBN_table}, {"no-print-patterns", 10, opt_print_patterns}, {"no-read-init-files", 6, opt_read_init_files}, {"no-trace-file-opening", 4, opt_trace_file_opening}, {"print-ISBN-table", 7, opt_print_ISBN_table}, {"print-patterns", 7, opt_print_patterns}, {"read-init-files", 3, opt_read_init_files}, {"trace-file-opening", 1, opt_trace_file_opening}, {(const char*)NULL, 0, (void (*)(VOID))NULL}, }; for (k = 1; k < argc; ++k) { /* Do argument scan for options that must be known BEFORE initializations are attempted. */ if ( (argv[k][1] != '\0') && is_optionprefix((int)argv[k][0]) ) { /* then process command-line switch */ current_index = k; current_option = argv[k]; if (is_optionprefix((int)current_option[1])) current_option++; /* allow GNU/POSIX --option */ next_option = argv[k+1]; (void)apply_function(current_option+1,options); } } } #if defined(HAVE_STDC) bool is_optionprefix(int c) #else /* K&R style */ bool is_optionprefix(c) int c; #endif { bool result; result = false; #if OS_PCDOS result = (((c) == (int)'-') || ((c) == (int)'/')) ? true : false; #endif /* OS_PCDOS */ #if OS_UNIX result = ((c) == (int)'-') ? true : false; #endif /* OS_UNIX */ #if OS_VAXVMS result = (((c) == (int)'-') || ((c) == (int)'/')) ? true : false; #endif /* OS_VAXVMS */ return (result); } static void opt_align_equals(VOID) { align_equals = YESorNOarg(); } static void opt_author(VOID) { static CONST char *author[] = { "Author:\n", "\tNelson H. F. Beebe\n", "\tUniversity of Utah\n", "\tDepartment of Mathematics, 110 LCB\n", "\t155 S 1400 E RM 233\n", "\tSalt Lake City, UT 84112-0090\n", "\tUSA\n", "\tTel: +1 801 581 5254\n", "\tFAX: +1 801 581 4148\n", "\tEmail: beebe@math.utah.edu, beebe@acm.org, beebe@computer.org (Internet)\n", (const char*)NULL, }; out_lines(stdlog, author, NO); finish(EXIT_SUCCESS); } static void opt_brace_protect(VOID) { brace_protect = YESorNOarg(); } static void opt_check_values(VOID) { check_values = YESorNOarg(); } static void opt_copyleft(VOID) { static CONST char *copyleft[] = { "Copyright (C) 1990--2021 by Nelson H. F. Beebe and the Free Software Foundation, Inc.\n", "This is free software; see the source for copying conditions. There is NO\n", "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", (const char*)NULL, }; out_lines(stdlog, copyleft, NO); finish(EXIT_SUCCESS); } static void opt_debug_match_failures(VOID) { debug_match_failures = YESorNOarg(); } static void opt_delete_empty_values(VOID) { delete_empty_values = YESorNOarg(); } static void opt_error_log(VOID) { current_index++; if ((stdlog = tfopen(next_option,"w"), stdlog) == (FILE*)NULL) { (void)fprintf(stderr, "%s cannot open error log file [%s]", WARNING_PREFIX, next_option); (void)fprintf(stderr, " -- using stderr instead\n"); perror("perror() says"); stdlog = stderr; } else check_inodes(); /* stdlog changed */ } static void opt_file_position(VOID) { show_file_position = YESorNOarg(); } static void opt_fix_accents(VOID) { fix_accents = YESorNOarg(); } static void opt_fix_braces(VOID) { fix_braces = YESorNOarg(); } static void opt_fix_degrees(VOID) { fix_degrees = YESorNOarg(); } static void opt_fix_font_changes(VOID) { fix_font_changes = YESorNOarg(); } static void opt_fix_initials(VOID) { fix_initials = YESorNOarg(); } static void opt_fix_math(VOID) { fix_math = YESorNOarg(); } static void opt_fix_names(VOID) { fix_names = YESorNOarg(); } static void opt_German_style(VOID) { German_style = YESorNOarg(); } static void opt_help(VOID) { help_lines[1] = program_name; /* cannot have this in initializer */ out_lines(stdlog, help_lines, (screen_lines > 0) ? YES : NO); finish(EXIT_SUCCESS); } static void opt_init_file(VOID) { current_index++; do_initfile((const char*)NULL,next_option); } static void opt_ISBN_file(VOID) { current_index++; do_ISBN_file((const char*)NULL,next_option); } static void opt_keep_linebreaks(VOID) { keep_linebreaks = YESorNOarg(); } static void opt_keep_parbreaks(VOID) { keep_parbreaks = YESorNOarg(); } static void opt_keep_preamble_spaces(VOID) { keep_preamble_spaces = YESorNOarg(); } static void opt_keep_spaces(VOID) { keep_spaces = YESorNOarg(); } static void opt_keep_string_spaces(VOID) { keep_string_spaces = YESorNOarg(); } static void opt_keyword_file(VOID) { current_index++; do_keyword_file((const char*)NULL,next_option); } static void opt_max_width(VOID) { current_index++; max_width = strtol(next_option,(char**)NULL,0); if (max_width <= 0L) /* width <= 0 means unlimited width */ max_width = LONG_MAX; } static void opt_output_file(VOID) { current_index++; if (freopen(next_option, "w", stdout) != stdout) { (void)fprintf(stderr, "Cannot open file [%s] for output: job terminated!\n", next_option); finish(EXIT_FAILURE); } } static void opt_parbreaks(VOID) { parbreaks = YESorNOarg(); } static void opt_prettyprint(VOID) { prettyprint = YESorNOarg(); } static void opt_print_ISBN_table(VOID) { print_ISBN_table = YESorNOarg(); } static void opt_print_keyword_table(VOID) { print_keyword_table = YESorNOarg(); } static void opt_print_patterns(VOID) { print_patterns = YESorNOarg(); } static void opt_quiet(VOID) { warnings = (YESorNOarg() == YES) ? NO : YES; } static void opt_read_init_files(VOID) { read_initialization_files = YESorNOarg(); } static void opt_remove_OPT_prefixes(VOID) { remove_OPT_prefixes = YESorNOarg(); } static void opt_scribe(VOID) { Scribe = YESorNOarg(); } static void opt_trace_file_opening(VOID) { trace_file_opening = YESorNOarg(); } static void opt_version(VOID) { version(); finish(EXIT_SUCCESS); } static void opt_warnings(VOID) { warnings = YESorNOarg(); } static void usage(VOID) { version(); help_lines[1] = program_name; /* cannot have this in initializer */ out_lines(stdlog, help_lines, NO); } static void version(VOID) { static CONST char *version_string[] = { PACKAGE_NAME, " Version ", PACKAGE_VERSION, " [", PACKAGE_DATE, "]", "\n", "\n", #if defined(HOST) || defined(USER) || defined(__DATE__) || defined(__TIME__) "Compiled", #if defined(USER) && defined(HOST) /* suppressable for privacy reasons */ " by <", USER, "@", HOST, ">", #endif /* defined(USER) && defined(HOST) */ #if defined(__DATE__) " on ", __DATE__, #endif /* defined(__DATE__) */ #if defined(__TIME__) " ", __TIME__, #endif /* defined(__TIME__) */ #if defined(HAVE_PATTERNS) "\nwith native pattern matching", #endif /* defined(HAVE_PATTERNS) */ #if defined(HAVE_RECOMP) || defined(HAVE_REGEXP) "\nwith regular-expression pattern matching", #endif /* defined(HAVE_RECOMP) || defined(HAVE_REGEXP) */ #if defined(HAVE_OLDCODE) "\nwith old matching code", #endif /* defined(HAVE_OLDCODE) */ "\n", #endif /* defined(HOST)||defined(USER)||defined(__DATE__)||defined(__TIME__) */ "E-mail bug reports to ", PACKAGE_BUGREPORT, "\n", "\n", "Copyright (C) 1990--2021 by Nelson H. F. Beebe and the Free Software Foundation, Inc.\n", "This is free software; see the source for copying conditions. There is NO\n", "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", (const char*)NULL, }; out_lines(stdlog, version_string, NO); } static YESorNO YESorNOarg(VOID) { return ((strnicmp(current_option+1,"no-",3) == 0) ? NO : YES); } bibclean-3.07/bibclean.reg0000644000156700015670000001057205332536017014353 0ustar beebebeebe%% -*-text-*- %% /u/sy/beebe/tex/bibclean/bibclean.reg, Sun Nov 15 14:58:54 1992 %% Edit by Nelson H. F. Beebe %% This file contains bibclean value regular-expression pattern matching %% specifications and default options to be read during initialization. %% bibclean must be compiled with either HAVE_REGEXP or HAVE_RECOMP to %% use these patterns correctly. %% %% For either of these options, the string values are NOT filtered to %% remove braces and TeX control sequences, so if these are expected, %% regular expressions must be provided to match them. chapter = "^\"[0-9]+\"$" %% 23 chapter = "^\"[0-9]+-[0-9]+\"$" %% 11-2 month = "^[adfjmnosADFJMNOS][acepouACEPOU][bcglnprtvyBCGLNPRTVY] *#\ *\" +[0-9]+\"$" %% oct # " 10" month = "^[adfjmnosADFJMNOS][acepouACEPOU][bcglnprtvyBCGLNPRTVY] *#\ *\" +[0-9][0-9]?--[0-9][0-9]?\"$" %% oct # " 8--10" month = "^\"[0-9]+ *\" *#\ *[adfjmnosADFJMNOS][acepouACEPOU][bcglnprtvyBCGLNPRTVY]$" %% "10 " # oct month = "^\"[0-9][0-9]?--[0-9][0-9]? *\" *#\ *[adfjmnosADFJMNOS][acepouACEPOU][bcglnprtvyBCGLNPRTVY]$" %% "8--10 " # oct month = "^[adfjmnosADFJMNOS][acepouACEPOU][bcglnprtvyBCGLNPRTVY] *#\ *\"\\\\[a-zA-Z]+ *\" *#\ *[adfjmnosADFJMNOS][acepouACEPOU][bcglnprtvyBCGLNPRTVY]$" %% jul # "\emdash " # aug month = "^[adfjmnosADFJMNOS][acepouACEPOU][bcglnprtvyBCGLNPRTVY] *#\ *\" *-- *\" *#\ *[adfjmnosADFJMNOS][acepouACEPOU][bcglnprtvyBCGLNPRTVY]$" %% jul # "--" # aug number = "^\"[0-9]+\"$" %% "23" number = "^\"[a-zA-Z]+ +[a-zA-Z]+[0-9]+\"$" %% "PN LPS5001" number = "^\"[a-zA-Z]+ +[0-9]+([0-9]+)\"$" %% "RJ 34(49)" number = "^\"[a-zA-Z]+ +[0-9]+\"$" %% "XNSS 288811" number = "^\"[a-zA-Z]+ +[0-9]+[.][0-9]+\"$" %% "Version 3.20" number = "^\"[a-zA-Z]+-[a-zA-Z]+-[0-9]+-[0-9]+\"$" %% "UMIAC-TR-89-11" number = "^\"[a-zA-Z]+-[a-zA-Z]+-[0-9]+\"$" %% "CS-TR-2189" number = "^\"[a-zA-Z]+-[a-zA-Z]+-[0-9]+[.][0-9]+\"$" %% "CS-TR-21.7" number = "^\"[a-zA-Z]+-[a-zA-Z]+\\\\[a-zA-Z]+ +[0-9]+-[0-9]+\"$" %% "TN-K\slash 27-70" number = "^\"[a-zA-Z]+-[0-9]+ +[0-9]+\"$" %% "PB-251 845" number = "^\"[a-zA-Z]+-[0-9]+-[0-9]+\"$" %% "ANL-30-74" number = "^\"[a-zA-Z]+-[0-9]+\"$" %% "TR-2189" number = "^\"[a-zA-Z]+[0-9]+-[0-9]+-[0-9]+\"$" %% "GG24-3611-00" number = "^\"[a-zA-Z]+[0-9]+-[0-9]+\"$" %% "SP43-29" number = "^\"[a-zA-Z]+[0-9]+\"$" %% "LPS0064" number = "^\"[a-zA-Z]+\\\\#[0-9]+-[0-9]+\"$" %% "TR\#89-24" number = "^\"[0-9]+ and +[0-9]+\"$" %% "11 and 12" number = "^\"[0-9]+[-+/.][0-9]+\"$" %% "3+4, 23-27, 23/27, 23.27" number = "^\"[0-9]+[a-zA-Z]+\"$" %% "23A" number = "^\"[a-zA-Z]+-[a-zA-Z]+ +[a-zA-Z]+\"$" %% "AERE-R 12329" number =\ "^\"[a-zA-Z]+-[a-zA-Z]+-[0-9]+\\\\[a-zA-Z]+ *[0-9]+-[a-zA-Z]+[0-9]+\"$" %% "OSU-CISRC-4\slash 87-TR9" number = "^\"[a-zA-Z0-9]+\\( *[a-zA-Z0-9]+\\)\"$" %% "Computer Science Report 100" number = "^\"[a-zA-Z0-9]+\\([-/.][a-zA-Z0-9]+\\)\"$" %% "TR/AB/3-43.7-3/AB" pages = "^\"[a-zA-Z]?[0-9]+\"$" %% "23" and "A23" pages = "^\"[A-Za-z]?[0-9]+--[A-Za-z]?[0-9]+\"$" %% "23--29" and "A23--A29" pages = "^\"[A-Za-z]?[0-9]+-[A-Za-z]?[0-9]+\"$" \ "Use en-dash, --, to separate page numbers" %% "23-29" and "A23-A29" pages = "^\"[A-Za-z]?[0-9]+---[A-Za-z]?[0-9]+\"$" \ "Use en-dash, --, to separate page numbers" %% "23---29" and "A23---A29" pages = "^\"[A-Za-z]?[0-9---]+\\(, *[A-Za-z]?[0-9---]+\\)*\"$" %% "23, 27, 29" and "A23, A27, A29" pages = "^\"[ivxlcdmIVXLCDM]+\"$" %% "xxxiv" pages = "^\"[ivxlcdmIVXLCDM]+ *[+] *[0-9]+" %% "xiii + 457 with 230 illustrations" volume = "^\"[0-9]+a?\"$" %% "27" and "27A" volume = "^\"[0-9]+/?[0-9]+\"$" %% "27/3" volume = "^\"[0-9]+[a-zA-Z] [0-9]+\"$" %% "27A 3" volume = "^\"[0-9a-zA-Z]+-[0-9]+\"$" %% "SMC-13" volume = "^\"[ivxlcdmIVXLCDM]+\"$" %% "VIII" volume = "^\"[0-9]+[.][0-9]+\"$" %% "27.3" volume = "^\"[0-9]+[a-zA-Z] [0-9]+\"$" %% "27A 3" volume = "^\"[A-Za-z0-9]+\\( *[A-Za-z0-9]+\\)*\"$" %% "Special issue A" volume = "^\"[0-9]+ and [0-9]+\"" %% "11 and 12" year = "^\"[12][0-9][0-9][0-9]\"$" %% "1992" year = "^\"[12][0-9][0-9][0-9]\\(, [12][0-9][0-9][0-9]\\)*\"$" %% "1989, 1990, ..." year = "^\"{\\[a-zA-Z]+{[12][0-9][0-9][0-9][a-zA-Z]}}\ [12][0-9][0-9][0-9]\"$" %% "{\noopsort{1985a}}1985" %% This is for GNU Emacs file-specific customization: %% Local Variables: %% eval: (auto-fill-mode -1) %% comment-start: "%% " %% comment-start-skip: "%+ *" %% comment-end: "" %% comment-column: 48 %% End: bibclean-3.07/match.dat0000444000156700015670000044031607343451014013701 0ustar beebebeebe%% /u/sy/beebe/tex/bibclean/2-11/match.dat, Fri May 3 07:05:42 1996 %% Edit by Nelson H. F. Beebe %% This is a test file for match month = "", month = "02 " # apr, month = "03 " # apr, month = "03 " # jul, month = "05 " # apr, month = "05 " # dec, month = "05 " # feb, month = "05 " # jan, month = "05 " # jul, month = "05 " # jun, month = "05 " # mar, month = "05 " # may, month = "05 " # nov, month = "05 " # oct, month = "05 " # sep, month = "07 " # nov, month = "08 " # apr, month = "08 " # mar, month = "08 " # nov, month = "09 " # dec, month = "09 " # jul, month = "09 " # jun, month = "09 " # may, month = "09 " # nov, month = "1-3,", month = "10 " # aug, month = "10 " # dec, month = "10 " # feb, month = "10 " # jun, month = "10 " # mar, month = "10 " # nov, month = "10--11 " # mar, month = "11 " # feb, month = "11 " # jun, month = "11 " # mar, month = "11 " # may, month = "11 " # nov, month = "11--12~" # sep, month = "11-12 " # jan, month = "12 " # dec, month = "12 " # jul, month = "12 " # may, month = "12 " # sep, month = "12--13~" # nov, month = "13 " # dec, month = "13 " # oct, month = "14 " # apr, month = "14 " # feb, month = "14 " # jan, month = "14 " # sep, month = "15 " # apr, month = "15 " # feb, month = "15 " # jan, month = "15 " # jul, month = "15 " # jun, month = "15 " # may, month = "15 " # oct, month = "15~" # sep, month = "16 " # apr, month = "16~" # nov, month = "17 " # apr, month = "17 " # dec, month = "17 " # may, month = "17--21" # jun, month = "18 " # mar, month = "18 " # oct, month = "19 " # jun, month = "19 " # nov, month = "19 " # oct, month = "1988 3 vol. xxxix+", month = "1988", month = "1990-", month = "1991 2 vol. xxi+", month = "1992 2 vol. xlix+", month = "1992 3 vol. lvii+", month = "1992 3 vol. xlviii+", month = "1993 2 vol. xxxv+", month = "1993 2 vol.", month = "1~" # jul, month = "20 " # aug, month = "20 " # dec, month = "20 " # jan, month = "20--24~" # mar, month = "21 " # dec, month = "21 " # jan, month = "21--25 " # jun, month = "21--25 " # oct, month = "22 " # mar, month = "23 " # dec, month = "23 " # feb, month = "23--24~" # nov, month = "24 " # aug, month = "24 " # feb, month = "24 " # jul, month = "24 " # mar, month = "24--28~" # jul, month = "24--29 " # jul, month = "24~" # aug, month = "25 " # feb, month = "25 " # jan, month = "25 " # jun, month = "25 " # may, month = "26 " # feb, month = "26 " # jul, month = "26 " # may, month = "26 " # sep, month = "26~" # jun # "--" # "2~" # jul, month = "27 " # apr, month = "27 " # jan, month = "27 " # jun, month = "27 " # sep, month = "27--29 " # jul, month = "27~" # nov # "--" # "1~" # dec, month = "28 " # dec, month = "28 " # feb, month = "28 " # jan, month = "28 " # may, month = "28 " # oct, month = "28 " # sep, month = "29 " # apr, month = "29 " # may, month = "29 " # nov, month = "2~" # dec, month = "30 " # apr, month = "30 " # aug, month = "30 " # dec, month = "30 " # nov, month = "30 " # sep, month = "31 " # aug, month = "31~" # aug # "--" # "2~" # sep, month = "4--6~" # mar, month = "5--8 " # apr, month = "6 " # nov, month = "7--10~" # sep, month = "9 " # may, month = "??", month = "????", month = "August and November", month = "Autumn", month = "December 1,", month = "December 3,", month = "December 6,", month = "Fall", month = "February and May", month = "January", month = "January/February", month = "June and July", month = "March 27,", month = "March~5,", month = "May \& July", month = "May/June", month = "November 19, ", month = "November and February", month = "Spring", month = "Summer", month = "Winter 1992-", month = "Winter", month = "avril", month = "decembre", month = "d{\'{e}}cembre", month = "juillet", month = "lipiec", month = "mai", month = "mars", month = "may", month = "novembre", month = "octobre", month = "septembre", month = Aug, month = Mar, month = Oct, month = apr # " 1", month = apr # " 11-14", month = apr # " 15", month = apr # " 16", month = apr # " 19-22", month = apr # " 19-23", month = apr # " 23", month = apr # "-" # may, month = apr # "--" # jun, month = apr # "/" # jul, month = apr # "/" # may, month = apr # "\slash " # jun, month = apr, month = aug # " 12", month = aug # " 15", month = aug # " 20", month = aug # " 22", month = aug # " 23", month = aug # " 25", month = aug # " 27-" # sep # " 2", month = aug # " 28-31, 1989", month = aug # " 3", month = aug # " 31", month = aug # " 5", month = aug # " 8", month = aug # " 9--11", month = aug # "-" # sep, month = aug # "--" # sep, month = aug # "/" # nov, month = aug # "\slash " # nov, month = aug # "\slash " # sep, month = aug, month = dec # " 10", month = dec # " 14", month = dec # " 15", month = dec # " 23", month = dec # " 3", month = dec # " 5", month = dec # "13-18", month = dec # "\slash " # jan, month = dec, month = feb # " 04", month = feb # " 07", month = feb # " 11", month = feb # " 12", month = feb # " 14", month = feb # " 15", month = feb # " 16", month = feb # " 17", month = feb # " 2-6", month = feb # " 27", month = feb # " 5", month = feb # " 8", month = feb # "/" # mar, month = feb # "/" # may, month = feb # "\slash " # mar, month = feb # "\slash " # may, month = feb # "~14", month = feb # "~6", month = feb, month = jan # " -- " # mar, month = jan # " 11", month = jan # " 13", month = jan # " 16", month = jan # " 17", month = jan # " 22", month = jan # " 23 -- " # feb # " 2", month = jan # " 25", month = jan # "-" # feb, month = jan # "--" # feb, month = jan # "/" # feb , month = jan # "/" # feb, month = jan # "\slash " # feb # ",", month = jan # "\slash " # feb, month = jan # "\slash " # mar, month = jan, month = jul # " (?? or " # sep # ")", month = jul # " 1", month = jul # " 13", month = jul # " 1969 to " # dec # " 1970", month = jul # " 20", month = jul # " 25", month = jul # " 25--27", month = jul # " 26", month = jul # " 28-29", month = jul # " 3", month = jul # " 4-6", month = jul # " 4-8", month = jul # " 9", month = jul # "-" # aug, month = jul # "-" # oct, month = jul # "--" # aug, month = jul # "--" # sep, month = jul # "/" # aug, month = jul # "\emdash " # aug, month = jul # "\slash " # aug, month = jul # "\slash " # sep, month = jul # "\slash{}" # aug, month = jul, month = jun # " 04", month = jun # " 10", month = jun # " 12", month = jun # " 12--15", month = jun # " 14", month = jun # " 2-6", month = jun # " 20--24", month = jun # " 21-23", month = jun # " 26-29", month = jun # " 28", month = jun # " 30", month = jun # " 4", month = jun # " 5", month = jun # "\slash " # jul, month = jun # "~5", month = jun, month = mar # " 13", month = mar # " 15", month = mar # " 18", month = mar # " 21", month = mar # " 23", month = mar # " 25--28", month = mar # " 27", month = mar # " 29", month = mar # " 3", month = mar # " 4", month = mar # " 7--10", month = mar # " 9", month = mar # "-" # apr, month = mar # "-" # dec, month = mar # "--" # apr, month = mar # "--" # dec, month = mar # "/" # apr, month = mar # "\slash " # apr, month = mar # "\slash " # may, month = mar, month = may # " -- " # jun, month = may # " 10-12", month = may # " 11", month = may # " 13", month = may # " 14", month = may # " 15", month = may # " 17", month = may # " 18", month = may # " 22", month = may # " 23", month = may # " 28", month = may # " 3", month = may # " 4-8", month = may # " 5", month = may # " 7", month = may # " 8-12", month = may # " 9", month = may # "-" # jun # " (or March??)", month = may # "-" # jun, month = may # "--" # june, month = may # "/" # jul, month = may # "/" # jun, month = may # "\slash " # jun # ",", month = may # "\slash " # jun, month = may, month = nov # " 15", month = nov # " 24", month = nov # " 3", month = nov # " 30", month = nov # " 4", month = nov # " 8", month = nov # " 9-11", month = nov # " and " # feb, month = nov # "-" # dec, month = nov # "/" # dec, month = nov # "\slash " # dec, month = nov # "\slash " # feb, month = nov, month = oct # " 07", month = oct # " 1", month = oct # " 10", month = oct # " 15", month = oct # " 16", month = oct # " 2", month = oct # " 28", month = oct # " 31", month = oct # "-" # dec, month = oct # "-" # nov, month = oct # "--" # dec, month = oct # "/" # nov, month = oct # "\slash " # dec, month = oct # "\slash " # nov, month = oct # "~28", month = oct, month = sep # " 1", month = sep # " 18", month = sep # " 21", month = sep # " 23", month = sep # " 24", month = sep # " 25-" # oct # " 1", month = sep # " 27", month = sep # " 28", month = sep # " 28-29", month = sep # " 4", month = sep # " 6", month = sep # " or " # jun # "??", month = sep # "-" # dec, month = sep # "-" # nov, month = sep # "-" # oct, month = sep # "--" # oct, month = sep # "/" # oct, month = sep # "\slash " # oct, month = sep, number = "", number = "(1-2)", number = "(89/7)", number = "(XIII) 6", number = "(in preparation)", number = "(to appear)", number = "0", number = "001", number = "0236", number = "027.07.1988", number = "07-11-81", number = "07-27-76", number = "07-28-76", number = "07-30-79", number = "07.95", number = "1 \& 2", number = "1 and 2", number = "1", number = "1(1)", number = "1+8", number = "1, (part 2)", number = "1, 3", number = "1,2", number = "1,2,3", number = "1--2", number = "1--3", number = "1--4", number = "1--5", number = "1--ABR/86", number = "1-2", number = "1-23-84", number = "1-3", number = "1-4", number = "1-5", number = "1-6", number = "1.0", number = "1.3", number = "1/2", number = "1/89", number = "10", number = "10--11", number = "10-11", number = "10-12", number = "100", number = "1000", number = "1004", number = "1005", number = "101", number = "1012", number = "10159", number = "101614", number = "102", number = "1020", number = "1025", number = "1029", number = "103", number = "1033", number = "104", number = "104237", number = "104612", number = "1048", number = "105", number = "1054", number = "1055", number = "106", number = "1065", number = "107", number = "108", number = "1084", number = "1088", number = "109", number = "1097", number = "10A", number = "11 and 12", number = "11", number = "11-12", number = "11/12", number = "11/145", number = "110", number = "1100", number = "1103", number = "1105", number = "111", number = "112", number = "1123", number = "113", number = "1136", number = "114", number = "1140", number = "1141", number = "11483", number = "115", number = "116", number = "116, SSA 11-11500", number = "1168", number = "117", number = "118", number = "118-87", number = "119", number = "12 (9119)", number = "12", number = "12-83", number = "12-93", number = "12.2.6", number = "120", number = "1200", number = "121-5", number = "121-6", number = "1210", number = "1212", number = "1213", number = "1215", number = "122", number = "1225/1225a", number = "123", number = "124", number = "1242", number = "125", number = "1259", number = "126", number = "1268", number = "127", number = "1274", number = "1278", number = "128", number = "129", number = "12A", number = "12B", number = "13", number = "13, section B", number = "130", number = "1302", number = "1307", number = "131", number = "131M", number = "132", number = "1328", number = "133", number = "1332", number = "1333", number = "1334", number = "1343", number = "1344", number = "1346", number = "135", number = "1356", number = "136", number = "1366", number = "137", number = "138", number = "14", number = "14.2.2", number = "14/92", number = "141", number = "142", number = "1420", number = "1428", number = "143", number = "144", number = "145", number = "1454", number = "1458", number = "1460", number = "1469", number = "147", number = "1470", number = "1471", number = "1474", number = "148", number = "149", number = "14A", number = "14B", number = "15", number = "150", number = "1505", number = "1506", number = "151", number = "1518", number = "152", number = "1532", number = "1545", number = "1548", number = "155", number = "1555", number = "1556", number = "156", number = "1563", number = "157", number = "158", number = "1585", number = "1586", number = "159", number = "16", number = "16-92", number = "16/92", number = "160", number = "161", number = "161/84", number = "162", number = "163", number = "165", number = "166", number = "167", number = "168", number = "1680", number = "1686", number = "169", number = "1690", number = "1697", number = "17", number = "17-92", number = "170", number = "1704", number = "1705", number = "171", number = "171.2R", number = "172", number = "172205", number = "1729", number = "173", number = "1731", number = "1732", number = "174", number = "17414 JSC", number = "17477", number = "175", number = "1755", number = "1758/92", number = "176", number = "1769", number = "178", number = "1782", number = "179", number = "1796", number = "18", number = "18-26", number = "18-94", number = "180", number = "1807", number = "181", number = "182", number = "1825", number = "1838", number = "1846-79", number = "1846-98", number = "1846-99", number = "1848-1854", number = "185", number = "186", number = "1860", number = "1868", number = "187", number = "187590 4004291034", number = "188", number = "189", number = "1892", number = "19", number = "19-94", number = "190", number = "1901", number = "1907", number = "1908", number = "191", number = "1923", number = "193", number = "194", number = "194-82 GJBX", number = "1944", number = "195", number = "1958", number = "196", number = "1967-2", number = "1969-42", number = "197", number = "1972-43", number = "1973/2", number = "1976", number = "1977-1", number = "1979-18", number = "1979-3", number = "1979-4", number = "1979-5", number = "1980-02-20", number = "1982/IE/1", number = "1985/OR/2", number = "1985/OR/5", number = "1986/11-524", number = "199", number = "1991-01", number = "1992/35", number = "1993-08", number = "1993-09", number = "1994-02", number = "1A", number = "2 ", number = "2 (or 3??)", number = "2 107-", number = "2 123-", number = "2 199-", number = "2 and 3", number = "2", number = "2,", number = "2--3", number = "2-3", number = "2-4", number = "2-94", number = "2-94*", number = "2.2", number = "2.3.1", number = "2/3", number = "2/RT/81", number = "20", number = "20/93", number = "200", number = "2009", number = "201", number = "202", number = "2022", number = "203", number = "2030", number = "204", number = "2049--88", number = "205", number = "2050--88", number = "2057", number = "206", number = "207", number = "208", number = "2083", number = "209", number = "2095", number = "21", number = "21/93", number = "210", number = "2100--89", number = "212", number = "213", number = "2136", number = "215-227", number = "216", number = "217", number = "218", number = "2181", number = "2184", number = "2190", number = "22 0714-1181", number = "22", number = "22/81", number = "220", number = "222", number = "2240207", number = "225", number = "226", number = "2268", number = "2271", number = "228", number = "2286", number = "2287", number = "229", number = "23", number = "23-92", number = "230", number = "233", number = "235", number = "236", number = "2367", number = "237", number = "2374", number = "238", number = "239", number = "23905", number = "24 ", number = "24", number = "24-81", number = "24-92", number = "2400", number = "241", number = "24155", number = "242", number = "243", number = "244", number = "244-260", number = "2445", number = "245", number = "2452", number = "246", number = "247", number = "248", number = "2481", number = "249", number = "2497", number = "25", number = "25-81", number = "25-92", number = "251", number = "25134", number = "252", number = "254", number = "255", number = "257", number = "258", number = "2583", number = "2590", number = "26", number = "26/94", number = "260", number = "264", number = "2644", number = "265", number = "266", number = "267", number = "2688", number = "27", number = "27-94", number = "27/28", number = "272", number = "273", number = "275", number = "276", number = "2768", number = "28", number = "28-94", number = "28/94", number = "2815", number = "2835", number = "285", number = "289", number = "29", number = "29-94", number = "2908", number = "2913", number = "294 (AD 207929)", number = "294", number = "2957", number = "296", number = "298", number = "29e ann{\'e}e", number = "2??", number = "3 (or 11??)", number = "3 (or 2??)", number = "3 (or 4??)", number = "3 0723-2187", number = "3 Pt 2", number = "3 \& 4", number = "3 and 4", number = "3 or 5??", number = "3", number = "3+4", number = "3, 4", number = "3--4", number = "3-30", number = "3-31-84", number = "3-4", number = "3/4", number = "3/6", number = "3/79", number = "30", number = "30(2)", number = "3048", number = "3071", number = "3079--89--MS", number = "30G-0009", number = "31", number = "31-89", number = "3106", number = "314", number = "315", number = "32", number = "320 -- 2956", number = "3229-3234", number = "323", number = "3237", number = "33", number = "33-78-2", number = "330", number = "331", number = "332", number = "337", number = "339, also Ultracomputer Note 131", number = "34", number = "342/10/92 A", number = "342/10/93 A/ I-9319", number = "342/11/92 A", number = "342/13/93 A", number = "342/17/90", number = "342/26/92 A", number = "3430", number = "3459", number = "346", number = "3462", number = "3467", number = "349", number = "35", number = "3507", number = "3509", number = "353", number = "355", number = "3560", number = "358-364", number = "359", number = "36", number = "361", number = "3619", number = "367", number = "368", number = "369", number = "37", number = "37--82", number = "370", number = "373", number = "377", number = "3776", number = "38", number = "3833", number = "3885", number = "389", number = "39 (or 4??)", number = "39", number = "390", number = "391", number = "398", number = "399", number = "3B", number = "3\&4", number = "4 (or 5??)", number = "4 Pt 1", number = "4 and 1", number = "4 or 5?", number = "4", number = "4, 5", number = "4, Part II", number = "4--5", number = "4-10", number = "4-22-66-1", number = "4-5", number = "4-6", number = "4-94", number = "4/1", number = "40", number = "400-63", number = "400-75 SeF", number = "400-75", number = "400-85", number = "401", number = "405", number = "406 0723-0508", number = "408", number = "409", number = "41", number = "412", number = "418", number = "42", number = "421", number = "424", number = "428", number = "4287:TR:81", number = "43", number = "430", number = "431-014", number = "434", number = "4356", number = "439", number = "44", number = "443", number = "449", number = "45", number = "4543", number = "456", number = "458", number = "46", number = "466", number = "468", number = "47", number = "473-499", number = "476-029-4 (re-released as Rice COMP TR84-9)", number = "4776", number = "478", number = "48", number = "4805", number = "4816", number = "486", number = "4872", number = "49", number = "4911", number = "4922", number = "4930", number = "495", number = "5 (or 15??)", number = "5", number = "5-6", number = "5-93", number = "5/6", number = "5/92", number = "50", number = "500-32", number = "5054", number = "507", number = "51", number = "51--52", number = "511", number = "5118", number = "5121", number = "5123", number = "522", number = "523-538", number = "527", number = "53", number = "530", number = "539", number = "54", number = "541", number = "5419", number = "543", number = "5470", number = "55", number = "5504", number = "555", number = "5573", number = "56", number = "560", number = "56038", number = "562", number = "562M2-169. UCS II.", number = "564", number = "5656", number = "567", number = "568", number = "57", number = "570", number = "572", number = "574", number = "577", number = "579", number = "58", number = "580", number = "581", number = "582", number = "583T", number = "584", number = "589", number = "59", number = "590", number = "591", number = "595", number = "596", number = "5B", number = "5a", number = "6 Pt 1", number = "6 Pt 2", number = "6", number = "6--7", number = "6-7", number = "6-93", number = "6/7", number = "6/80", number = "60", number = "6003", number = "60174900A", number = "602", number = "60457040", number = "606", number = "6062", number = "607", number = "6086", number = "609", number = "61", number = "611", number = "612", number = "6133", number = "6158.", number = "616", number = "62", number = "623", number = "6240", number = "625", number = "626", number = "629", number = "6292", number = "63", number = "634", number = "6368", number = "6370", number = "640-M", number = "645", number = "65", number = "652", number = "657", number = "659", number = "66", number = "66-10", number = "661", number = "663", number = "664", number = "665", number = "666", number = "668", number = "67", number = "671", number = "676", number = "679", number = "68", number = "68-1", number = "68/5", number = "68/6", number = "68/8", number = "6824", number = "684", number = "685", number = "689", number = "69", number = "69-05", number = "69-1", number = "69-18", number = "69-19", number = "69-3", number = "69-5", number = "69/1", number = "69/11", number = "69/2", number = "69/3", number = "69/4", number = "69/5", number = "69/6", number = "69/7", number = "69/9", number = "690", number = "6905", number = "6A", number = "6B", number = "7", number = "7-14", number = "7-8", number = "7-93", number = "7/8", number = "70", number = "70/10", number = "70/15", number = "70/17", number = "70/18", number = "70/2", number = "70/3", number = "70/5", number = "70/7", number = "70/8", number = "700", number = "7002", number = "7041", number = "705", number = "707", number = "71", number = "71-20", number = "71-51", number = "71/6", number = "71/7", number = "72", number = "72-08", number = "72/2", number = "722", number = "726", number = "73/2", number = "73/3", number = "73/4", number = "73/6", number = "7304", number = "731", number = "734", number = "74", number = "74-1 NML/GSO", number = "74-1", number = "74-5", number = "74/1", number = "74/2", number = "74/3", number = "74/4", number = "741", number = "75", number = "75-01", number = "75-1", number = "75-159", number = "75-2", number = "75-47", number = "75-Aut-J", number = "75/1", number = "75/3", number = "75/5", number = "75/7", number = "751", number = "757", number = "76", number = "76-05", number = "76-1", number = "76-13", number = "76-22", number = "76-3", number = "76-67", number = "76/4", number = "76/86", number = "7640", number = "768", number = "77", number = "77-14", number = "77-17", number = "77-459", number = "77-671", number = "77-671.", number = "776", number = "777", number = "78 0458-2128", number = "78", number = "78- 1069", number = "78-1", number = "78-12", number = "78-160", number = "78-287", number = "78-3", number = "78-669", number = "78/1", number = "78/10", number = "78/2", number = "78/3", number = "78/5", number = "78/6", number = "78/7", number = "78/8", number = "78/P.1019", number = "781", number = "786", number = "79", number = "79-0276", number = "79-07", number = "79-1", number = "79-282", number = "79-3", number = "79-9", number = "79/1", number = "79/10", number = "79/2", number = "79/3", number = "79/5", number = "79/6", number = "79/7", number = "79/8", number = "790", number = "794", number = "797", number = "7994", number = "7997", number = "8 (??)", number = "8", number = "8, Part 2", number = "8--9", number = "8-9", number = "80", number = "80- 004", number = "80-03", number = "80-1274", number = "80-2", number = "80-3", number = "80-34", number = "80-411", number = "80-844", number = "80/1", number = "80/10", number = "80/2", number = "80/3", number = "80/4", number = "80/5", number = "80/6", number = "80/7", number = "80/9", number = "80192", number = "80205", number = "807", number = "809", number = "81", number = "81-02", number = "81-1020", number = "81-1091", number = "81-158", number = "81-19", number = "81-29", number = "81-574", number = "81/1", number = "81/10", number = "81/2", number = "81/3", number = "81/4", number = "81/5", number = "81/6", number = "81/7", number = "81/8", number = "81/9", number = "816", number = "818", number = "819", number = "82", number = "82-11-03", number = "82-308", number = "82-831", number = "82/1", number = "82/10", number = "82/2", number = "82/3", number = "82/4", number = "82/5", number = "82/6", number = "82/7", number = "82/9", number = "82448-9", number = "83-01-01", number = "83-0223", number = "83-0372", number = "83-0421", number = "83-0500", number = "83-155", number = "83-1893", number = "83-3", number = "83-4", number = "83-4051", number = "83-47", number = "83-5", number = "83-713", number = "83-883", number = "83-97", number = "83/09", number = "83/1", number = "83/10", number = "83/2", number = "83/4", number = "83/5", number = "83/7", number = "83/9", number = "830", number = "832", number = "83304", number = "836", number = "83CRD054 (Technical information series)", number = "84", number = "84-0162", number = "84-21", number = "84-2156", number = "84-501", number = "84-637", number = "84-651", number = "84-690", number = "84-777", number = "84-777.", number = "84-827", number = "84.2", number = "84/10", number = "84/154/12", number = "84/162/20", number = "84/2", number = "84/3", number = "84/4", number = "84/5", number = "84/6", number = "84/7", number = "84/8", number = "84/9", number = "84/R", number = "8428", number = "843", number = "849", number = "85", number = "85--01", number = "85--105", number = "85--12", number = "85--14", number = "85--18", number = "85--23", number = "85--B--1", number = "85--OR--3", number = "85-0366", number = "85-1", number = "85-122", number = "85-257", number = "85-279", number = "85-29", number = "85-45", number = "85-48", number = "85-5", number = "85-739", number = "85/10", number = "85/2", number = "85/212", number = "85/3", number = "85/4", number = "85/8", number = "85/9", number = "851", number = "852", number = "854", number = "856", number = "86", number = "86--10", number = "86--128", number = "86-06", number = "86-1-5", number = "86-123", number = "86-17", number = "86-21", number = "86-268", number = "86-3055", number = "86-32", number = "86-3473", number = "86-4", number = "86-437", number = "86-451", number = "86-46", number = "86-475", number = "86-54", number = "86-55", number = "86-85", number = "86.7", number = "86/10", number = "86/1292", number = "86/2", number = "86/230/4", number = "86/235/9", number = "86/5", number = "86/6", number = "86/7", number = "86/8", number = "860", number = "861", number = "8610", number = "862", number = "86392", number = "86407", number = "866", number = "86750", number = "869", number = "8696", number = "87 869", number = "87", number = "87--2", number = "87--41", number = "87--53", number = "87--87", number = "87-0004-A-B", number = "87-002", number = "87-02, I1-I50", number = "87-04", number = "87-1-1", number = "87-10", number = "87-11", number = "87-118", number = "87-14", number = "87-16", number = "87-20", number = "87-21", number = "87-22", number = "87-25", number = "87-34", number = "87-37", number = "87-39", number = "87-4", number = "87-41", number = "87-49", number = "87-5", number = "87-50", number = "87-51", number = "87-52", number = "87-58", number = "87-641", number = "87-65", number = "87-75", number = "87-82", number = "87/347", number = "87/7", number = "87/88-5-2", number = "87001", number = "87002", number = "87003", number = "871", number = "873", number = "8744", number = "877", number = "878", number = "879", number = "88--101", number = "88--13", number = "88--17", number = "88--44", number = "88--68", number = "88--74", number = "88-10", number = "88-11", number = "88-115", number = "88-12", number = "88-136", number = "88-14", number = "88-140", number = "88-15", number = "88-16", number = "88-19", number = "88-2", number = "88-20", number = "88-234", number = "88-258-A", number = "88-29/50", number = "88-3", number = "88-49/70", number = "88-5", number = "88-6", number = "88-60-20", number = "88-942", number = "88-95", number = "88/304", number = "88/322/34", number = "882", number = "88288", number = "88293", number = "88363", number = "888", number = "89", number = "89--04", number = "89--13", number = "89--15", number = "89--2", number = "89--29", number = "89--3", number = "89--65", number = "89--7", number = "89--85", number = "89--92", number = "89--B--5", number = "89-09", number = "89-1", number = "89-11", number = "89-12", number = "89-2", number = "89-260", number = "89-3", number = "89-313", number = "89-57", number = "89-984", number = "89/20", number = "89/204", number = "89/26", number = "89/3", number = "890", number = "8917/A", number = "893", number = "8939", number = "8971", number = "9", number = "9--12", number = "9-10", number = "9/10", number = "90", number = "90--01", number = "90--03", number = "90--07", number = "90--12", number = "90--14", number = "90--22", number = "90--28", number = "90--53", number = "90--83", number = "90-09", number = "90-1", number = "90-10", number = "90-2", number = "90-20", number = "90-4", number = "90-6", number = "90-83", number = "90/302", number = "901", number = "903", number = "9030", number = "9035", number = "907", number = "91", number = "91--04", number = "91--05", number = "91--06", number = "91--10", number = "91--13", number = "91--27", number = "91--47", number = "91--7", number = "91-03", number = "91-04", number = "91-044", number = "91-14", number = "91-2", number = "91-279", number = "91-294", number = "91-311", number = "91-328", number = "91-72", number = "91-80", number = "91-CSE-6", number = "91/10", number = "91/447/31", number = "91/8", number = "9140", number = "917", number = "919", number = "92", number = "92-067", number = "92-068", number = "92-069", number = "92-075", number = "92-084", number = "92-09", number = "92-1", number = "92-126", number = "92-16", number = "92-161", number = "92-24", number = "92-241", number = "92-28", number = "92-28d", number = "92-31", number = "92-35", number = "92-36", number = "92-38", number = "92-421", number = "92-5-A", number = "92/15", number = "92/302", number = "92/4", number = "921", number = "922", number = "9236", number = "93", number = "93--96", number = "93-021", number = "93-027", number = "93-093", number = "93-102", number = "93-107", number = "93-13", number = "93-17", number = "93-21b", number = "93-31", number = "93-42", number = "93-8", number = "93-9", number = "934", number = "936", number = "937", number = "93NO00009", number = "94", number = "94---", number = "94-008", number = "94-03a", number = "94-069", number = "94-16", number = "94-18a", number = "94-21", number = "94-3", number = "94-4168", number = "94-501", number = "94-8", number = "94/5", number = "9406", number = "944", number = "949", number = "95", number = "95-08", number = "95-19", number = "95-20", number = "95-29", number = "950", number = "951", number = "952", number = "952144", number = "956", number = "96", number = "963", number = "964", number = "9649", number = "966", number = "967", number = "97", number = "97--100", number = "970", number = "971", number = "974", number = "978", number = "98", number = "987", number = "99 00 04", number = "99 90 12", number = "99 90 62", number = "99", number = "?", number = "??", number = "??-??", number = "????", number = "A-18", number = "A-48", number = "A. I. MEMO 421", number = "A. I. MEMO 70 and MAC-M-165", number = "A.E.R.E. 8781", number = "A68 8", number = "AA61641-00A", number = "AAEC/E190", number = "AAEC/E488", number = "AAEC/TM 366", number = "AAEC/TM 370", number = "AAEC/TM 544", number = "AAEC/TM455", number = "AAEC/TM470", number = "ACM--91--3", number = "ACPC/TR 92-3", number = "ACPC/TR 92-4", number = "AD 702 910", number = "AD 769-124", number = "AD 779 841", number = "AD-A050135", number = "AD/A-039 741", number = "AECL-7614", number = "AECL-7794", number = "AERE -- R 9444", number = "AERE M3057", number = "AERE R10533", number = "AERE R10555", number = "AERE R11009", number = "AERE R11432", number = "AERE R11948", number = "AERE R8730", number = "AERE-R 12329", number = "AERE-R 12393", number = "AERE-R. 4599 (pt. 1)", number = "AFFDL-TR-66-207", number = "AGESS810528", number = "AIM-106", number = "AM--87--11", number = "AM--88--08", number = "ANL AMD 328", number = "ANL AMD 71", number = "ANL--80--68", number = "ANL--80--74", number = "ANL--82--48", number = "ANL-7231", number = "ANL-80-68", number = "ANL-80-74", number = "ANL-81-43", number = "ANL-83-97", number = "ANL-84-83", number = "ANL-85-70", number = "ANL-8579", number = "ANL-86-10", number = "ANL-87-23", number = "ANL-87-40", number = "ANL-88-38", number = "ANL-89/2 Rev. 1", number = "ANL-91/1", number = "ANL-91/14", number = "ANL-MCS-TM 99", number = "ANL-MCS-TM-119", number = "ANL-MCS-TM-57 (Revision 1)", number = "ANL-MCS-TM-86", number = "ANL-MCS-TM-88", number = "ANL/MCS--TM--148", number = "ANL/MCS--TM--158", number = "ANL/MCS--TM--159", number = "ANL/MCS--TM--16", number = "ANL/MCS-TM-15", number = "ANL/MCS-TM-150", number = "ANL/MCS-TM-157", number = "ANL/MCS-TM-27", number = "ANL/MCS-TM-84", number = "ANL/MCS-TM-97", number = "ANL/MCS/TM-33", number = "ANL/MLS-TM-63", number = "ANL84-51, Rev.1", number = "ANS-12", number = "ANS-13", number = "ANS-16", number = "ANS-20", number = "ANS-22", number = "ANS-23", number = "ANS-24", number = "ANS-7", number = "ANS/MCS-TM-37", number = "APL-UW TM-4-83", number = "AR-92-2", number = "ARE TM (N1) 86501", number = "ARE-TM (N1) 86501", number = "ARL 69-0005", number = "ARL 69-0017", number = "ARL 69-0054", number = "ARL 70-0066", number = "ARRL TR 1018", number = "ASRL TR 1020", number = "ASRL TR 1021", number = "Arbeitspapiere der GMD, Nr. 588 0723-0508", number = "B--180", number = "B--239", number = "B--243", number = "B12", number = "B57-01a", number = "B9", number = "BESSY TB Nr. 158", number = "BNL 25680.", number = "BSC 88/15", number = "BU-660-M", number = "BU-784-M", number = "BUCSTR 79-01", number = "B\#84", number = "British Library R and D report 6155", number = "C 2504-E5. N74-13290", number = "C.S.S. 52", number = "C2", number = "CAM 14", number = "CAM 7", number = "CAM 88-16", number = "CAM 88-21", number = "CAM 89-28", number = "CAM 92-07", number = "CAP-3 837", number = "CBPF-NT-001/88", number = "CC-147", number = "CC-151", number = "CC-152", number = "CC-153", number = "CC-154", number = "CC-156", number = "CC-158", number = "CC-161", number = "CC-163", number = "CC-164-4", number = "CC-200-2", number = "CC-60", number = "CC-71", number = "CC-93", number = "CCRL-3", number = "CCRL-8", number = "CCS 206", number = "CCS 86/10", number = "CCS~501", number = "CCUM 7", number = "CDC 14.2.6", number = "CES-88-24", number = "CES-94-??", number = "CFDL-TR-87-11", number = "CICS--P--169", number = "CIS-83-34", number = "CIS-TR-88-16", number = "CLNS-197", number = "CLNS-209", number = "CM--286", number = "CMI 88/45052-1", number = "CMPT TR 81-6", number = "CMPT TR 83-4", number = "CMU-CS-78-125", number = "CMU-CS-78-141", number = "CMU-CS-80-125", number = "CMU-CS-80-131", number = "CMU-CS-84-141", number = "CMU-CS-85-187", number = "CMU-CS-86-168", number = "CMU-CS-87-109", number = "CMU-CS-88-135", number = "CMU-CS-89-111", number = "CMU-CS-89-129", number = "CMU-CS-89-207", number = "CMU-CS-89-209", number = "CMU-CS-90-102", number = "CMU-CS-90-137", number = "CMU-CS-90-139", number = "CMU-CS-90-184", number = "CMU-CS-91-106", number = "CMU-CS-91-111", number = "CMU-CS-91-161", number = "CMU-CS-91-205", number = "CMU-CS-92-163", number = "CMU-CS-93-124", number = "CMU-CS-93-151", number = "CMU-CS-93-164", number = "CMU-CS-94-125", number = "CMU-CS-94-200", number = "CMU-SEI-92-34", number = "CN -28/F-14", number = "CN-22", number = "CN-22.2", number = "CNA--126", number = "CNA--139", number = "CNA--150", number = "CNA--164", number = "CNA--173", number = "CNA--18", number = "CNA--189", number = "CNA--191", number = "CNA--200", number = "CNA--216", number = "CNA--220", number = "CNA--222", number = "CNA--228", number = "CNA--23", number = "CNA--232", number = "CNA--24", number = "CNA--240", number = "CNA--244", number = "CNA--249", number = "CNA--250", number = "CNA--255", number = "CNA--26", number = "CNA--33", number = "CNA--52", number = "CNA--90", number = "CNA-139", number = "CNA-150", number = "CNA-164", number = "CNA-173", number = "CNA-189", number = "CNA-191", number = "CNA-198", number = "CNA-199", number = "CNA-202", number = "CNA-208", number = "CNA-222", number = "CNA-232", number = "CNA-244", number = "CNA-250", number = "CNA-26", number = "CNA-33", number = "CNA-52", number = "CNC/1993/028", number = "COINS 87-134", number = "COINS TR 91-13", number = "COMP TR85-16", number = "COMP TR86-38", number = "COMP TR90-14", number = "COMP TR91-149", number = "COMP TR91-15", number = "COMP TR91-154", number = "COMP TR91-160", number = "COMP TR91-169", number = "COMP TR91-170", number = "COMP TR92-178", number = "COMP TR92-198", number = "COMP TR93-203", number = "COMP TR93-213", number = "COMP TR93-918", number = "CORR 83-11", number = "CORR 83-2", number = "CORR 84-1", number = "CORR 86-23", number = "CORR 86-29", number = "CORR 93-18", number = "CORR Report 94-32", number = "CP 74028", number = "CP 78", number = "CP-2012", number = "CP-390", number = "CP-391", number = "CP-700011", number = "CP-72009", number = "CP-72017", number = "CP-72022", number = "CPT-88", number = "CR-2032", number = "CR-R; 84009", number = "CRHC-91-21", number = "CRL 91/1 (Revised)", number = "CRPC-TR90079", number = "CRSC-TR94-10", number = "CRSC-TR95-12", number = "CRT-750", number = "CRT-794", number = "CRT-807", number = "CRT-866", number = "CRT-867", number = "CRT-920", number = "CS 142", number = "CS 150", number = "CS 157", number = "CS 252", number = "CS 367A", number = "CS 59", number = "CS 60", number = "CS 7708", number = "CS 7714", number = "CS 7808", number = "CS TR 1144", number = "CS TR 708", number = "CS--90--32", number = "CS--91--02", number = "CS--91--04", number = "CS--TR--303--91", number = "CS-142", number = "CS-186", number = "CS-1984-13", number = "CS-72-270", number = "CS-78-19", number = "CS-80-13", number = "CS-81-25", number = "CS-82-40", number = "CS-83-06", number = "CS-83-10", number = "CS-83-16", number = "CS-83-41", number = "CS-84-04", number = "CS-84-13", number = "CS-84-2", number = "CS-84-22", number = "CS-85-01", number = "CS-85-56", number = "CS-86-11", number = "CS-86-14", number = "CS-87-01", number = "CS-87-02", number = "CS-87-08", number = "CS-87-17", number = "CS-87-24", number = "CS-87-27", number = "CS-88-10", number = "CS-88-13", number = "CS-88-19", number = "CS-88-33", number = "CS-88-35", number = "CS-89-61", number = "CS-89-85", number = "CS-89-87", number = "CS-89-89", number = "CS-89-90", number = "CS-89-92", number = "CS-90-103", number = "CS-90-105", number = "CS-90-115", number = "CS-90-116", number = "CS-90-117", number = "CS-90-118", number = "CS-90-23", number = "CS-9003-09", number = "CS-91-130 and ORNL/TM-12006", number = "CS-91-134", number = "CS-91-137", number = "CS-91-138", number = "CS-91-139", number = "CS-91-142", number = "CS-91-146", number = "CS-92-01, revised", number = "CS-92-167", number = "CS-92-168", number = "CS-92-181", number = "CS-92-21", number = "CS-92-33", number = "CS-92-55", number = "CS-93-01", number = "CS-93-02", number = "CS-93-2", number = "CS-93-214", number = "CS-93-27", number = "CS-94-228", number = "CS-94-233", number = "CS-94-236", number = "CS-94-239", number = "CS-94-244", number = "CS-94-250", number = "CS-94-257", number = "CS-95-290", number = "CS-95-291", number = "CS-95-301", number = "CS-TR 2539", number = "CS-TR 2626", number = "CS-TR 3045", number = "CS-TR-1705", number = "CS-TR-2030", number = "CS-TR-2305", number = "CS-TR-2403, UMIACS-TR-90-16", number = "CS-TR-2908", number = "CS-TR-310-91", number = "CS-TR-3268", number = "CS-TR-3268.1", number = "CS-TR-351-91", number = "CS-TR-412-93", number = "CS-TR-750", number = "CS-TR2907 (UMIACS-TR-92-60)", number = "CS-xx-yyy", number = "CS/82/5", number = "CS81-1 (Revised)", number = "CS81-1", number = "CSD 92/693", number = "CSD-890044", number = "CSD-TR 516", number = "CSD-TR-408", number = "CSD-TR-433", number = "CSD-TR-576", number = "CSD-TR-612", number = "CSD-TR-661", number = "CSD-TR-688", number = "CSD-TR-735", number = "CSD-TR-745", number = "CSD-TR-93-059", number = "CSDG 78-2", number = "CSDG 81-1", number = "CSDG", number = "CSDG-80-1", number = "CSDG-83-3", number = "CSE 7910", number = "CSE-93-19", number = "CSE89-91", number = "CSL-79-3", number = "CSL-81-12", number = "CSL-89-9", number = "CSL-93-3", number = "CSL-TR-93-554", number = "CSR-94-81", number = "CSRC 966", number = "CSRD 1041", number = "CSRD 601", number = "CSRD 624", number = "CSRD 665", number = "CSRD 731", number = "CSRD 785", number = "CSRD 983", number = "CSRD No. 860, UILU-ENG-89-8003", number = "CSS 155, 1984", number = "CSS 171", number = "CSS 214", number = "CSS-210", number = "CSS-211", number = "CSS-229", number = "CSS213", number = "CSTR 89-7", number = "CTC 90 TR26", number = "CTC 91 TR85", number = "CTC 92 TR115", number = "CTC 93 TR126", number = "CTC 94 TR172", number = "CTC92TR100", number = "CTS WN 26", number = "CU-CS-420-89", number = "CU-CS-534-91", number = "CU-CS-579-92", number = "CU-CS-623-92", number = "CU-CS-682-93", number = "CUED/F-CAMS/TR.241", number = "CUED/F-CAMS/TR.242", number = "CUED/F-CAMS/TR.248", number = "Computer Science Report 100", number = "Computer Science Report 91", number = "Computer Science Technical Report 89", number = "Contract no. AD/A-056 839CU-CS-129-78", number = "D 889778", number = "D--134, Rev. B", number = "D-6545", number = "D-6734", number = "D-6959", number = "D-7329", number = "D-8020", number = "D-91-13", number = "D-92-08", number = "D-93-05", number = "DAIMI FN-19", number = "DAIMI PB - 345", number = "DAIMI PB - 355", number = "DAIMI PB - 357", number = "DAIMI-PB - 318", number = "DCS/RR-783", number = "DCS/RR-826", number = "DD 84-14", number = "DD/85/18", number = "DEC-TR-566", number = "DEC-TR-593", number = "DECUS No. 10-21", number = "DITC 12/82", number = "DITC 192/91", number = "DITC 200/92", number = "DITC 203/92", number = "DITC 214/93", number = "DITC 23/83", number = "DITC 8/82", number = "DKBS-TR-94-5", number = "DMS-618-IR", number = "DMS-646-IR", number = "DNACS 10/78", number = "DNACS 13/79", number = "DNACS 30/80", number = "DNACS 34/80", number = "DPh-T/78-75", number = "Dep. Report STA", number = "DpH-T 43/78", number = "E-2637", number = "E-2700", number = "E-2779", number = "E11-87-10", number = "E11-89-755", number = "E2-89-286", number = "E251", number = "E253", number = "E4-85-262", number = "E4-85-263", number = "E4-85-264", number = "E5-85-39", number = "E5-89-141", number = "E5-91-401", number = "ECS-LFCS-86-14", number = "ECS-LFCS-86-2", number = "ECS-LFCS-89-73 (also CSR-290-89)", number = "ECS-LFCS-92-226", number = "ECS-LFCS-93-275", number = "ECS-LFCS-94-280", number = "ECS-LFCS-94-303", number = "EDFB-IBP 74-6", number = "EE-CEG-85-2", number = "EE-CEG-85-7", number = "EE-CEG-86-1", number = "EE-CEG-86-2", number = "EE-CEG-86-5", number = "EE-CEG-86-7", number = "EP-78-E-23", number = "EPA-600/4-78-001", number = "EPM/RT-84-6", number = "ER/25026--30", number = "ERL 269-APCL 28", number = "ERL SEL-32", number = "ERL-0545-RR", number = "ERL-M467", number = "ERL-M481", number = "ERLTM-SDL 14", number = "ES--227/90", number = "ES--230/90", number = "ES--238/90", number = "ES--246/91", number = "ESAT-KUL-88/3", number = "ETA-TR-43", number = "ETA-TR-49", number = "ETA-TR-51", number = "ETA-TR-52", number = "ETA-TR-53", number = "ETA-TR-57", number = "ETA-TR-60", number = "ETA-TR-61", number = "ETA-TR-85", number = "ETA-TR-90", number = "ETR 7/91", number = "F4 Bound", number = "FA-STS-991324", number = "FAO-2", number = "FAO-70-L", number = "FCVS66-VSR205. ADA040385", number = "FCVS66-VSR210. ADA040392", number = "FCVS78-VSR806", number = "FF-X-6", number = "FHWA-IP-79-5", number = "FHWA-TS-79-222", number = "FMR-X-23", number = "FMR-X-42", number = "FMR-X-7", number = "FMR-X-78", number = "FN--535", number = "FR/PA/93/19", number = "FRA-ORD and D-74-6", number = "FS-81-2", number = "FS81-2", number = "FSU-SCRI-87-30", number = "FSU-SCRI-87-43", number = "FSU-SCRI-90-91", number = "FSU-SCRI-94-06", number = "FTD-HC-23-897-74", number = "G--89--25", number = "G1/1", number = "G2/1", number = "G320-3490", number = "G4550-CM-39", number = "GAO/IMTEC-92-26", number = "GAS/OP/MCL; TM-248", number = "GER-16109", number = "GG24-3611-00", number = "GIT-ICS; 82/10", number = "GIT-SERC-86/02, GIT-ICS-85/06", number = "GJBX 10(81)", number = "GJBX 11(81)", number = "GJBX 192-82", number = "GJBX 193-82", number = "GJBX 246(80)", number = "GJBX 247(80)", number = "GJBX 248(80)", number = "GMR-5174", number = "GMR-5299", number = "GN33-9342", number = "GS1976/236", number = "GU TPA 88/12-1", number = "GUTPA 88/04-01", number = "GWU-IIST-82-20", number = "HDL-TR-1942", number = "HPL-90-22", number = "HPL-91-50", number = "HPL-93-42", number = "HPL-94-??", number = "HTKK-TKO-B59", number = "Habilitationsschrift", number = "Heft 17", number = "Hm-97", number = "I-140", number = "I-3", number = "I-8525", number = "I-8607", number = "I-8701", number = "I-8712", number = "I-8801", number = "I-8810", number = "I-8814", number = "I-9135", number = "I-9136", number = "I-9215", number = "I-9217", number = "I-9220", number = "I-9304", number = "IB 262-82 RO1", number = "IBM-E-148/8, NSF-E-872", number = "IBM-Form GC33-6163, GN33-9342", number = "IBM-Form Gc33-6163", number = "IBM-Form SA22-7093", number = "IBM-Form Sc33-6164", number = "IC/85/205", number = "ICMA-83-66", number = "ICMA-87-105", number = "IFI-B-66/80", number = "II/13", number = "IMMR82/067", number = "INF-85-11", number = "INF-85-12", number = "INF-87-4", number = "INF-88-36", number = "INFN/TC-92/05", number = "INP 90-42", number = "INP 90-62", number = "INP 90-71", number = "INP 91-46", number = "INP 91-56", number = "INS-REP.-487", number = "INT 273", number = "INTT-12", number = "INTT-17", number = "INTT-19", number = "INTT-20", number = "INTT-21", number = "INTT-28", number = "IPP 6/143", number = "IRCS 92 - 24", number = "ISA-S61.1", number = "ISI/RS-86-169", number = "ISIS-RR-93-17E", number = "ISL-85-8", number = "ISO 1539 (norme NF Z 65-110)", number = "ISO/IEC TR 9573", number = "ISO/IEC TR 9573-13", number = "IX", number = "IfI-HH-B-71/80", number = "IfI-HH-M34/76", number = "IfI-HH-M36/76", number = "IfI-HH-M65/79", number = "Informatica 89-40", number = "J--91--07", number = "J530-82-020", number = "JHU-EE 84/14", number = "JPL Section 366 Internal Computing Memorandum 437", number = "J~88--4", number = "K-39/67", number = "K-73-1", number = "K/CSD/INF-81/25", number = "K/CSD/TM-20", number = "K/CSD/TM-27", number = "K34", number = "KFA-ZAM-IB-9322", number = "KFA-ZAM-IB-9401", number = "KFA-ZAM-IB-9404", number = "KFA-ZAM-IB-9410", number = "KFA-ZAM-IB-9414", number = "KFA-ZAM-IB-9415", number = "KFA-ZAM-IB-9417", number = "KFKI-1982-19", number = "KFKI-1984-115", number = "KFKI-1986-33/B", number = "KGN-137", number = "KGN-184", number = "KGN-190", number = "KGN-209", number = "KGN-216", number = "KGN-217", number = "KGN-219", number = "KUL-TF-79/032", number = "LA 7196-MS", number = "LA 7467-MS", number = "LA-10005", number = "LA-10284-MS, US-32", number = "LA-4531", number = "LA-6774", number = "LA-7524-MS", number = "LA-8609-MS", number = "LA-8849-MS", number = "LA-UR-83-1392", number = "LA-UR-83-1676", number = "LA-UR-84-2004", number = "LA-UR-85-2393", number = "LA-UR-85-3597", number = "LA-UR-85-3967", number = "LA-UR-86-2080", number = "LA-UR-86-2890", number = "LA-UR-86-3773", number = "LA-UR-86-4218", number = "LA-UR-86-4219", number = "LA-UR-87-1522", number = "LA-UR-87-2163", number = "LA-UR-87-2164", number = "LA-UR-87-2879", number = "LA-UR-87-3136", number = "LA-UR-87-3635", number = "LA-UR-87-659", number = "LA-UR-88-901", number = "LBL 5283", number = "LBL-22584", number = "LCSR--TR--121", number = "LCSR--TR--130", number = "LCSR--TR--91", number = "LMSC 4-22-66-3", number = "LMSD-285875", number = "LMSD-703073", number = "LPS4004", number = "LPS5004", number = "LPS5006", number = "LPS5047", number = "LPS5086", number = "LUFTD2\slash (TFRT-7333)\slash 1040\slash (1986)", number = "Lawrence Livermore UCRL-87522", number = "LiTH--MAT--R--1985--10", number = "LiTH--MAT--R--1990--02", number = "LiTH-IDA-R-93-34", number = "LiTH-MAT-R-1990-11", number = "LiTH-MAT-R-1992-05", number = "LiTH-MAT-R-1992-49", number = "LiTH-MAT-R-1993-39", number = "LiTH-MAT-R-1994-19", number = "LiTh Mat R 1988-02", number = "M33", number = "M78/40", number = "MA/17/1024", number = "MAS2-CT920022", number = "MASC-TR82-6", number = "MCA-TM-23", number = "MCS--P162--0790", number = "MCS--P180--1190", number = "MCS--P204--0191", number = "MCS--P228--0491", number = "MCS--P246-0691", number = "MCS--P263--0991", number = "MCS--TM--140", number = "MCS-P153-0692", number = "MCS-P179-0990", number = "MCS-P189-1090", number = "MCS-P218-0391", number = "MCS-P250-0791", number = "MCS-P268-1091", number = "MCS-P273-1191", number = "MCS-P286-0192", number = "MCS-P308-0592", number = "MCS-P330-1092", number = "MCS-P356-0393", number = "MCS-P379-0893", number = "MCS-P61-0289", number = "MCS-P69-0389", number = "MCS-P90-0789", number = "MCS-TM-129", number = "MCS-TM-138", number = "MCS-TM-68", number = "MCS-TM-78", number = "MCS-TM-80", number = "MIT/LCS/TM-73", number = "MLM-3635", number = "MM 69-1374-26", number = "MM 69-1374-29", number = "MPI H-1985-V21", number = "MR 128", number = "MR 134", number = "MSSU-EIRS-ERC 94-2", number = "MSUCL -- 751", number = "MSUCL -- 755", number = "MSUCL -- 771", number = "MTP 288", number = "M\&A-5", number = "Math./91/1", number = "Math./91/2", number = "Math: 062090-051", number = "Memorandum INF-85-12", number = "N/89/16", number = "N75-12657", number = "N78-32751 NASA TM-7877", number = "NA 87-07", number = "NA-91-05", number = "NA/131", number = "NA/154", number = "NAC 55", number = "NAC 69", number = "NAC 73", number = "NAC 82", number = "NAM 03", number = "NAS2-9896", number = "NAS2-9897", number = "NASA CR 189664; ICASE report 92-22", number = "NASA CR-1478", number = "NASA CR-177410", number = "NASA CR-177462", number = "NASA CR-177985", number = "NASA CR-178364, ICASE interim report 178364", number = "NASA CR-182806", number = "NASA CR-187590", number = "NASA CR-189623. ICASE report 92-9", number = "NASA CR-189629", number = "NASA CR-191425", number = "NASA CR-191451; ICASE report 93-17", number = "NASA CR-191575; ICASE report 93-92", number = "NASA CR-194913; ICASE report no. 94-34", number = "NASA CR-194943; ICASE report no. 94-54", number = "NASA CR-2821", number = "NASA CR-2901", number = "NASA CR-3980", number = "NASA CR-3980.", number = "NASA CR-426", number = "NASA CR-4265", number = "NASA SP-347", number = "NASA TM X-2967", number = "NASA TM100217", number = "NASA TN D-2579", number = "NASA TN D-6020", number = "NASA TN D-7056", number = "NASA TN D-734", number = "NASA TN D-7385", number = "NASA TN D-739", number = "NASA TN D-7391", number = "NASA TN D-7487", number = "NASA TN D-7545", number = "NASA TN D-7831", number = "NASA TN D-8063", number = "NASA TN D-8132", number = "NASA TN D-843", number = "NASA TN D-8430, D-8431", number = "NASA TN D-8509 NASA", number = "NASA TT-20317", number = "NASA Technical Paper 1200", number = "NASA technical memorandum NASA-TM-108019 4004232378", number = "NASA-CR 172518", number = "NASA-CR 180299", number = "NASA-TM-89082", number = "NASA-TM-89119", number = "NI-80-07", number = "NISTIR 5287", number = "NISTIR 5381", number = "NISTIR~89--4225", number = "NM-8518", number = "NM-9017", number = "NM-9018", number = "NM-N8801", number = "NM-R8501", number = "NM-R8702", number = "NM-R8719", number = "NM-R8903", number = "NM-R8915", number = "NM-R9004", number = "NM-R9014", number = "NM-R9015", number = "NM-R9107", number = "NM-R9301", number = "NM-R9414", number = "NM-R9421", number = "NN 24", number = "NOC TR170", number = "NOC TR176", number = "NOC TR177", number = "NOC TR205", number = "NOC TR209", number = "NOC TR210", number = "NOC TR224", number = "NOC TR228", number = "NP 1201", number = "NP1168", number = "NPS-53-86-012", number = "NPS-MA-88-009", number = "NPS-MA-89-001", number = "NPS-MA-89-014", number = "NPS-MA-90-004", number = "NPS-MA-91-009", number = "NPS-MA-92-004", number = "NPS-MA-92-010", number = "NPS-MA-93-014", number = "NPS-MA-94-001", number = "NPS-MA-94-003", number = "NPS012-81-005", number = "NR 15", number = "NSWC TR 85-54", number = "NUREG/CR-3624, SAND83-2365", number = "NUREG/CR-4478, ORNL/TDMC-4, NRC FIN A9100", number = "NW 11", number = "NW 18", number = "NW 24", number = "NW 3", number = "NW 6", number = "NW 66", number = "NW 7", number = "NW 8", number = "NW 9", number = "NW 93", number = "NW 98", number = "NYO-9083", number = "NYU Report No. DOE/ER/03077-277", number = "Ni-80-03", number = "No. 1008", number = "No. 103B", number = "No. 105", number = "No. 108", number = "No. 1168", number = "No. 139", number = "No. 1428", number = "No. 1469", number = "No. 1470", number = "No. 149", number = "No. 17", number = "No. 171", number = "No. 172", number = "No. 175", number = "No. 176", number = "No. 180", number = "No. 182", number = "No. 210", number = "No. 22", number = "No. 223", number = "No. 237", number = "No. 239", number = "No. 241", number = "No. 242", number = "No. 254", number = "No. 26", number = "No. 265", number = "No. 276", number = "No. 277", number = "No. 279", number = "No. 28", number = "No. 2832", number = "No. 289", number = "No. 2xx", number = "No. 32", number = "No. 45", number = "No. 49", number = "No. 619", number = "No. 67", number = "No. 791", number = "No. 8201", number = "No. 830", number = "No. 86", number = "No. 880", number = "No. 881", number = "No. 89", number = "No. 90-32", number = "No. 91", number = "No. 97", number = "No. CS41", number = "No. G320-3558x", number = "No. UCB/ERL M77/21", number = "No. UCB/ERL M77/23", number = "Nr. 70/17", number = "Nr. 70/8", number = "Number SR-2081, Version 5.0", number = "Numerical Analysis Manuscript 90-10", number = "O-79-1", number = "ORC~87--4", number = "ORNL 6190", number = "ORNL-1574", number = "ORNL-5532", number = "ORNL-5970", number = "ORNL-6150", number = "ORNL-6190", number = "ORNL-6211", number = "ORNL-6335", number = "ORNL-NSF-EATC-7", number = "ORNL/CSD-48", number = "ORNL/CSD-59", number = "ORNL/CSD/TM-265", number = "ORNL/TM 10835", number = "ORNL/TM 11261", number = "ORNL/TM 11373", number = "ORNL/TM 11407", number = "ORNL/TM 12050", number = "ORNL/TM 7051", number = "ORNL/TM-10367", number = "ORNL/TM-10400", number = "ORNL/TM-10581", number = "ORNL/TM-10691", number = "ORNL/TM-10865", number = "ORNL/TM-10866", number = "ORNL/TM-10881", number = "ORNL/TM-10937", number = "ORNL/TM-10938", number = "ORNL/TM-10945", number = "ORNL/TM-11375", number = "ORNL/TM-11655", number = "ORNL/TM-11669", number = "ORNL/TM-11760", number = "ORNL/TM-11826", number = "ORNL/TM-11847", number = "ORNL/TM-12003", number = "ORNL/TM-12006", number = "ORNL/TM-12126", number = "ORNL/TM-12231", number = "ORNL/TM-12318", number = "ORNL/TM-12404", number = "ORNL/TM-12470", number = "ORNL/TM-12680", number = "ORNL/TM-12999", number = "ORNL/TM-8776", number = "OR~3186--90--MS", number = "OSD/FCTC-82/017", number = "OSD/FSTC-82/021 (FCVS 78)", number = "OSU-CISRC-4\slash 87-TR9", number = "OSU-CISRC-7/88-TR22", number = "OSU-CISRC-7/90-TR18", number = "OU-PPI, TR-85-02", number = "OU-PPI-TR-85-05", number = "P-4428", number = "P-72", number = "P-7578", number = "P10-11944", number = "P11-87-19", number = "P11-87-302", number = "P11-87-303", number = "P11-87-452", number = "P11-88-402", number = "P2 - 11589", number = "P2-80-436", number = "P2-86-825", number = "P2-86-848", number = "P2-88-769", number = "P3", number = "PAM-212", number = "PAM-343", number = "PAM-352", number = "PAM-579", number = "PB-251 845", number = "PB-291 725 CER76-77TJ-HJM48", number = "PB-291 762 CER75-76TJ-HJM36", number = "PCS-TR86-134", number = "PDR 3171", number = "PEL 126", number = "PFC/RR-82-4", number = "PN LPS5001", number = "PN LPS5002", number = "PNW GTR-211", number = "PP 93/061", number = "PPR-4-83", number = "PR/PA/92/10", number = "PRG 58", number = "PRG-63", number = "PRG-74", number = "PRG-TR-9-91", number = "PRR 76/17", number = "PRR 77/9", number = "PS-16", number = "PUB-1255", number = "PURE, no. 44", number = "Preprint 690", number = "Preprint MCS-P144-0390", number = "Preprint SC 88-2", number = "Pt 1", number = "Pt 10", number = "Pt 11", number = "Pt 12", number = "Pt 2", number = "Pt 3", number = "Pt 4", number = "Pt 5", number = "Pt 7", number = "Pt 8", number = "Pt 9", number = "QTP-TF-234", number = "QTP.770921.01", number = "QTP.770927.02", number = "QTP.771205.03", number = "QTP.780503.04", number = "QTP.780614.05", number = "QTP.780703.06", number = "QTP.780725.07", number = "QTP.780822.08", number = "QTP.780825.09", number = "R-2572-1-AF", number = "R-73", number = "R-82-139", number = "R-86-1246", number = "R-87-1373", number = "R-Math-01/90 0233-2876", number = "R.10533", number = "R12.1281", number = "R7470", number = "R8730", number = "RADC-TR-82-78", number = "RAL 92-086", number = "RAL 92-087", number = "RAL 93-036", number = "RAL 93-055", number = "RAL 93-064", number = "RAL 93-066", number = "RAL 93-072", number = "RAL 94-019", number = "RAL-92-075", number = "RAL-92-086", number = "RAL-93-064", number = "RAL-93-072", number = "RAL-95-001", number = "RC 10260", number = "RC 10580", number = "RC 11094 (\#49829)", number = "RC 11407", number = "RC 11408 (\#51330)", number = "RC 11506", number = "RC 11676", number = "RC 12150", number = "RC 12327 (\#55257)", number = "RC 12515", number = "RC 12595 (\#56575)", number = "RC 12849", number = "RC 13245 (\#59268)", number = "RC 13844", number = "RC 14160", number = "RC 14211 (\#63576)", number = "RC 15101 (\#67356)", number = "RC 15202(\#67767)", number = "RC 19991 (88480)", number = "RC 20085 (88832)", number = "RC 3259", number = "RC 4608", number = "RC 4962", number = "RC 6203", number = "RC 7681", number = "RC 8348", number = "RC 8425 (\#36568)", number = "RC 8743", number = "RC 9009", number = "RC 9203 (#39787)", number = "RC 9577", number = "RC 9582 (42314)", number = "RC 9789", number = "RC-12686", number = "RC-55", number = "RC-6026", number = "RC-6903", number = "RC-8644", number = "RC11719(52739)", number = "RC12878", number = "RC13429", number = "RC7776", number = "RC~15030~(67093)", number = "RC~15886", number = "RFP-624", number = "RIFIS-TR-CS-105", number = "RIFIS-TR-CS-110", number = "RIFIS-TR-CS-111", number = "RIFIS-TR-CS-117", number = "RIFIS-TR-CS-122", number = "RJ 9925 (87305)", number = "RJ-1218", number = "RJ3441 (40927)", number = "RJ3455 (41061)", number = "RJ3503", number = "RJ~5923", number = "RJ~6327", number = "RJ~6486", number = "RJ~6638~(63949)", number = "RJ~7720~(71585)", number = "RJ~7872~(72532)", number = "RM-4867-PR", number = "RM-5618", number = "RM-5618-PR", number = "RM-6248-PR", number = "RM-86-13", number = "RM-88-17", number = "RMI 87 -- 02", number = "RMI 90--01", number = "RNR-90-022", number = "RNR-91-025", number = "RNR-93-004", number = "RNR-93-008", number = "RNR-94-013", number = "RR 2475", number = "RR No 1200", number = "RR YALEU/DCS/R-766", number = "RR YALEU/DCS/RR-831", number = "RR-520", number = "RR-616", number = "RR-629", number = "RR-91-01", number = "RR-91-11", number = "RR-91-15", number = "RR-92-16", number = "RR-92-48", number = "RR-93-03", number = "RR-93-11", number = "RR-93-33", number = "RR1698", number = "RRR~25--90", number = "RRR~46--89", number = "RRR~67--90", number = "RR~457", number = "RT-BIO (68) 1", number = "RT/APO/94/2", number = "RT/APO/94/4", number = "RZ-166", number = "Rand Publication CP84 (4/83)", number = "Rap. 04.93", number = "Report 91-09", number = "Report A1.1, Alvey Project SE/065", number = "Report A1.2, Alvey Project SE/065", number = "Report ANL-90/3", number = "Res.R. No.R", number = "Research Report RJ 5440.", number = "Research Report YALEU/ DCS/ RR-461", number = "Rice COMP TR476-029-4", number = "Ris{\o}-M-564", number = "Ris{\o}-M-957", number = "S-22", number = "S-22(H)", number = "S1", number = "S2", number = "S544-3421", number = "S701", number = "SAE\slash SP-95\slash 1080", number = "SAND-77-0898", number = "SAND-85-2727", number = "SAND85-2752", number = "SAND89-8691", number = "SAND90-8723", number = "SAND91-8240", number = "SAND92-8548", number = "SARL-2", number = "SC 88-1", number = "SC 88-2", number = "SC 89-4", number = "SC 89-6", number = "SC 90-1", number = "SC 91--3", number = "SDS 90 00 03 C", number = "SEI-93-TR-4", number = "SERC-TR-0-P", number = "SERC-TR-4-P", number = "SERC-TR-41-P", number = "SERC-TR-49-F", number = "SERC-TR-55-P", number = "SERC-TR-9-P", number = "SERC-TR-92-P", number = "SETL Newsletter \#102", number = "SLAC-PUB-1118", number = "SLAC-PUB-1183", number = "SLAC-PUB-1188", number = "SLAC-PUB-2725", number = "SLAC-PUB-795", number = "SLL-73-0225", number = "SM-0017", number = "SOL 77-7 (NTIS AD/A-044 905)", number = "SOL 78-19", number = "SOL 82-10", number = "SOL 82-9", number = "SOL 83-20R", number = "SOL 86-2", number = "SOL 94-4", number = "SOL~85--5", number = "SOL~86--7", number = "SOL~88--10", number = "SOL~88--14", number = "SOL~88--9", number = "SOL~89--6", number = "SOL~90--16", number = "SOL~90--4", number = "SOL~90--6", number = "SOL~90-8", number = "SOL~91--10", number = "SOL~91--2", number = "SOL~91-3", number = "SOL~91-7", number = "SOR~88--3", number = "SOR~88--5", number = "SOR~89--21", number = "SOR~90--03", number = "SOR~90--08", number = "SOR~90--14", number = "SOR~91--18", number = "SOR~91--7", number = "SP43-29", number = "SP85-1/5.1E", number = "SP85-1/5E", number = "SPI//1", number = "SPI//2", number = "SR-0009", number = "SR-2079 5.0", number = "SR-2079 6.0", number = "SR-2079", number = "SR-3071, SR-3072, SR-3073, SR-3074", number = "SR-3071, SR-3072, SR-3074", number = "SR-3772", number = "SRC TR 89-61r1", number = "SRC-TR-94-130", number = "SRI-CSL-90-16", number = "SSL91-16/P91-00143", number = "ST4", number = "STAN CS-TR-2238, UMIACS-TR-89-45", number = "STAN-CS-70-163", number = "STAN-CS-72-270", number = "STAN-CS-73-374", number = "STAN-CS-75-478", number = "STAN-CS-75-496", number = "STAN-CS-75-511", number = "STAN-CS-76-535", number = "STAN-CS-76-548", number = "STAN-CS-76-585", number = "STAN-CS-77-595", number = "STAN-CS-77-602", number = "STAN-CS-77-622", number = "STAN-CS-77-623", number = "STAN-CS-78-648", number = "STAN-CS-78-656", number = "STAN-CS-78-675", number = "STAN-CS-78-684", number = "STAN-CS-78-685", number = "STAN-CS-78-698", number = "STAN-CS-79-713", number = "STAN-CS-79-762", number = "STAN-CS-80-780", number = "STAN-CS-80-787", number = "STAN-CS-80-795", number = "STAN-CS-80-803", number = "STAN-CS-80-817", number = "STAN-CS-80-824", number = "STAN-CS-81-848", number = "STAN-CS-81-886", number = "STAN-CS-82-901", number = "STAN-CS-82-914", number = "STAN-CS-83-965", number = "STAN-CS-83-966", number = "STAN-CS-83-971", number = "STAN-CS-83-974", number = "STAN-CS-83-977", number = "STAN-CS-83-978", number = "STAN-CS-83-980", number = "STAN-CS-83-981", number = "STAN-CS-83-985", number = "STAN-CS-83-987", number = "STAN-CS-84-1013", number = "STAN-CS-84-1027", number = "STAN-CS-85-1074", number = "STAN-CS-86-1095", number = "STAN-CS-86-1097", number = "STAN-CS-88-1223", number = "STAN-CS-89-04, NA-89-04", number = "STAN-CS-89-08, NA-89-08", number = "STAN-CS-89-1251", number = "STAN-CS-TR-2001", number = "STAN-CS-TR-2002", number = "STL-86-13", number = "STL-88-21", number = "STL-89-25", number = "STL-89-26", number = "STP-172-86", number = "Section 914, Internal Computing Memorandum 337", number = "Special Publication 424", number = "Standard 8613", number = "Suppl 1", number = "Supplement", number = "T", number = "T-11", number = "T.P. 322", number = "T62-3", number = "T62-4", number = "TAU 86-04", number = "TBD", number = "TC-NA-94-1", number = "TC-NA-94-2", number = "TC-NA-94-3", number = "TC-NA-94-4", number = "TC-NA-94-5", number = "TC-PC-95-1", number = "TEC 715", number = "TEC 816 Canada", number = "TH.2548-CERN", number = "TIM005", number = "TIM007.A", number = "TIM009.A", number = "TIM010.A", number = "TIM011", number = "TIM012", number = "TIM013", number = "TIM015.A", number = "TIM016.A", number = "TIM017.A", number = "TIM018.A", number = "TIM020", number = "TIM021", number = "TIM022.A", number = "TIM023", number = "TIM024", number = "TIM026", number = "TIM027", number = "TM X-73904", number = "TM-12231", number = "TM-385", number = "TM-73203", number = "TM-78665", number = "TM-78733", number = "TM-78816", number = "TM-81-11271-9", number = "TM-85710", number = "TM-85945", number = "TM-85965", number = "TM-90-04", number = "TM/OA/79-13", number = "TMC-148, PL87-7", number = "TMC-184", number = "TN D-7653", number = "TN D-8372", number = "TN D-8430, D-8431", number = "TN--87--32", number = "TN-109", number = "TN-K/27-70", number = "TN-K\slash 27-70", number = "TN309", number = "TNN--94", number = "TNN-1", number = "TNN-105", number = "TNN-12", number = "TNN-14", number = "TNN-2", number = "TNN-20", number = "TNN-21", number = "TNN-3", number = "TNN-30", number = "TNN-39", number = "TNN-4", number = "TNN-46", number = "TNN-5", number = "TNN-9", number = "TNN-94", number = "TNN-96", number = "TR 1026", number = "TR 1086", number = "TR 1098", number = "TR 1099", number = "TR 1137", number = "TR 394", number = "TR 479", number = "TR 69-31", number = "TR 7", number = "TR 75.91.20", number = "TR 78-352", number = "TR 78-354", number = "TR 79-4", number = "TR 80-423", number = "TR 80-430", number = "TR 80-431", number = "TR 81-454", number = "TR 82-521", number = "TR 83-554", number = "TR 83-565", number = "TR 836", number = "TR 84-603", number = "TR 85-664", number = "TR 85-675", number = "TR 86-789", number = "TR 86.3", number = "TR 869", number = "TR 87-803", number = "TR 87-812", number = "TR 88-30", number = "TR 89-10", number = "TR 89-21", number = "TR 89-9", number = "TR 90-1", number = "TR 90-29", number = "TR 90-34", number = "TR 90-43", number = "TR 90-60r1", number = "TR 90.40", number = "TR 916", number = "TR 92-1280", number = "TR 92-1291", number = "TR 92-23", number = "TR 92-47", number = "TR 92.12", number = "TR 92.13", number = "TR 921", number = "TR 93-1371", number = "TR 93-2", number = "TR 930", number = "TR 96-740", number = "TR 965", number = "TR 996", number = "TR 997", number = "TR AM-87-11", number = "TR CSc-84-15", number = "TR STAN-CS-76-556", number = "TR--87--13", number = "TR--89--01", number = "TR--91--15", number = "TR--91--22", number = "TR--91--26", number = "TR-1648", number = "TR-1859, UMIACS-TR-87-20", number = "TR-2101", number = "TR-219", number = "TR-22-78", number = "TR-2339", number = "TR-24 (Revised \# TR-24R)", number = "TR-2714", number = "TR-3", number = "TR-3064", number = "TR-31", number = "TR-31-81", number = "TR-3133", number = "TR-3145", number = "TR-3238", number = "TR-3263", number = "TR-328", number = "TR-3306", number = "TR-3307", number = "TR-3345", number = "TR-408", number = "TR-456", number = "TR-458", number = "TR-571", number = "TR-683", number = "TR-696", number = "TR-7", number = "TR-708", number = "TR-77-2", number = "TR-82-522", number = "TR-85.2", number = "TR-85.3", number = "TR-87.2", number = "TR-88", number = "TR-88-53", number = "TR-89-9", number = "TR-9", number = "TR-91-023", number = "TR-91-042", number = "TR-91-35", number = "TR-93-040", number = "TR-94-017", number = "TR-CS-82-10", number = "TR-CS-82-11", number = "TR-CS-92-17", number = "TR. UTUDCDS-??", number = "TR.CSG 8", number = "TR/PA/91/63", number = "TR/PA/92/70", number = "TR/PA/92/85", number = "TR/PA/93/05", number = "TR/PA/93/10", number = "TR/PA/93/26", number = "TR/PA/93/27", number = "TR/PA/94/09", number = "TR/PA/95/02", number = "TR/PA/95/05", number = "TR04/92", number = "TR04/93", number = "TR1/92", number = "TR1/94 ATR/7 (NP2680)", number = "TR11/88", number = "TR1143", number = "TR19/93", number = "TR2/92", number = "TR2/93 (ATR/6) (NP2556)", number = "TR26-92", number = "TR3/92 (ATR/1) (NP2490)", number = "TR32/89", number = "TR4/92 (ATR/2) (NP2491)", number = "TR5/92 (ATR/3) (NP2492)", number = "TR6/90", number = "TR6/92 (ATR/4) (NP2493)", number = "TR7/92 (ATR/5) (NP2522)", number = "TR77-5", number = "TR8/90", number = "TR839", number = "TR84-1", number = "TR86-38", number = "TR86-7", number = "TR89/10", number = "TR90-54", number = "TR91/7", number = "TR91121", number = "TR92-17", number = "TR92-9", number = "TR93-01", number = "TR93-08", number = "TR93-09", number = "TR93-10", number = "TR93-45", number = "TR94--34", number = "TR94-13", number = "TRCS 91-15", number = "TRCS85-09", number = "TRCS88-27", number = "TRI-PP-83-95", number = "TRITA-MEK-76-02", number = "TRITA-MEK-76-03", number = "TRITA-NA-8311", number = "TRR-514", number = "TR~87--7", number = "TR~90--06", number = "TR~90--16R1", number = "TR~90--40", number = "TR~90--6", number = "TR~90--9", number = "TR~91--10", number = "TUM-I9120", number = "TUM-ISU-7830", number = "Technical report ITPR-95022", number = "Technion-PH-76-25", number = "Technion-PH-77-36", number = "UBLCS", number = "UBLCS-6", number = "UBLCS-7", number = "UBLCS-94-14", number = "UBLCS-94-5", number = "UCB/CSD 88/469", number = "UCB/CSD 94/802 4004667978", number = "UCB/CSD 94/805", number = "UCB/CSD 95-870", number = "UCB/CSD-92-703", number = "UCB/CSD-94-793", number = "UCB/CSD-94-???", number = "UCB/ERL 84/5", number = "UCB/ERL M77/21", number = "UCB/ERL~M85/61", number = "UCID-17515", number = "UCID-18549", number = "UCID-18619", number = "UCID-20167", number = "UCID-21482", number = "UCID-30175", number = "UCLA/84/TEP/19", number = "UCP-19", number = "UCP-32", number = "UCP-33", number = "UCRL 85752", number = "UCRL 89913. CONF-831247--1", number = "UCRL-500021-81", number = "UCRL-51186, Rev. 1", number = "UCRL-53401", number = "UCRL-76993, Rev. 1", number = "UCRL-78652", number = "UCRL-88710", number = "UCRL-91734", number = "UCRL-92077-II", number = "UCRL-93792", number = "UCRL-94464", number = "UCRL-95055", number = "UCRL-95278", number = "UCRL-95669", number = "UCRL-96034", number = "UCRL-97580", number = "UCRL-98508", number = "UIB-11", number = "UILU-ENG-85-1727", number = "UIUCDCS-R-71-488", number = "UIUCDCS-R-72-493", number = "UIUCDCS-R-76-787", number = "UIUCDCS-R-77, 883", number = "UIUCDCS-R-85-1129", number = "UIUCDCS-R-85-1201", number = "UIUCDCS-R-85-1203", number = "UIUCDCS-R-86-1229", number = "UMCS-90-9-1", number = "UMCS-93-7-1", number = "UMIACS-TR-89-11, CS-TR-2189, SRC-TR-89-13", number = "UMINF 125.85", number = "UMINF 92.11", number = "UMINF 93.23", number = "UMINF 94.03", number = "UMINF 94.04", number = "UMINF-132.86", number = "UMINF-136.87", number = "UMINF-154.88", number = "UMINF-155.88", number = "UMINF-58.77", number = "UMINF-91.29", number = "UMSI 86145", number = "UMSI 93-234", number = "UMSI 94-101", number = "UMSI 94-29", number = "UMSI 94-90", number = "UMSI-93/131", number = "UNIC-92-03", number = "UNIC-93-09", number = "UNIGRAZ-UTP 08/79", number = "URI-037", number = "URI-044", number = "USAS X3.9-1966", number = "USCG Op. Note No. 40", number = "USERDA/EY-76-S-02-2895*000/Tr/76/6", number = "USGS-GD-73-030", number = "USI-28", number = "USI-31", number = "USI-44", number = "USI-7", number = "USNRDL-TR-67-7, AD649288", number = "UUCS-79-108", number = "UUCS-91-017", number = "UUICDCS-R-89-1539 and UILU-ENG-89-1758", number = "UWE and CE-92-02", number = "UWFDM-658", number = "V", number = "VLSI-82-22", number = "Version 1.1", number = "Version 3.20", number = "WCAP-8261 Revision 1", number = "WSDG-AD-00002", number = "WSU-CS-77-02", number = "WSU-CS-90-01", number = "WSU-CS-90-08", number = "WSU-CS-90-10", number = "WSU-CS-91-02", number = "WUCS91-08", number = "Working Paper 851", number = "X-1707", number = "X-3286", number = "X-62282", number = "X-70477", number = "XNSS 288811", number = "YALEU DCS RR-339", number = "YALEU DCS RR-389", number = "YALEU DCS RR-428", number = "YALEU DCS RR-532", number = "YALEU DCS RR-569", number = "YALEU/ DCS/ RR- Draft", number = "YALEU/ DCS/ RR-463", number = "YALEU/DCS/RR-276", number = "YALEU/DCS/RR-292", number = "YALEU/DCS/RR-299", number = "YALEU/DCS/RR-339", number = "YALEU/DCS/RR-347", number = "YALEU/DCS/RR-363", number = "YALEU/DCS/RR-367", number = "YALEU/DCS/RR-368", number = "YALEU/DCS/RR-373", number = "YALEU/DCS/RR-381", number = "YALEU/DCS/RR-389", number = "YALEU/DCS/RR-397", number = "YALEU/DCS/RR-428", number = "YALEU/DCS/RR-443", number = "YALEU/DCS/RR-444", number = "YALEU/DCS/RR-458", number = "YALEU/DCS/RR-461", number = "YALEU/DCS/RR-462", number = "YALEU/DCS/RR-537", number = "YALEU/DCS/RR-539", number = "YALEU/DCS/RR-540", number = "YALEU/DCS/RR-542", number = "YALEU/DCS/RR-543", number = "YALEU/DCS/RR-544", number = "YALEU/DCS/RR-548", number = "YALEU/DCS/RR-552", number = "YALEU/DCS/RR-553", number = "YALEU/DCS/RR-554", number = "YALEU/DCS/RR-570", number = "YALEU/DCS/RR-594", number = "YALEU/DCS/RR-726", number = "YALEU/DCS/RR-880", number = "YALEU/DCS/RR-934", number = "YALEU/DCS/RR-942", number = "YALEU/DCS/TR-532", number = "\# 1030", number = "\# 947", number = "\# 963", number = "\#167-O-310789", number = "\#180-O-170591", number = "\#191-O-191291", number = "\#20", number = "\#26", number = "\#59", number = "\#961", number = "\#985", number = "liens-94-18", number = "pt.1", number = "pt.A", number = "special issue", number = "suppl. 2", number = "suppl. issue", number = "vol 12 pp 7.1-7.19", number = "vol. 7", number = "vyp. 90", number = "{/DCS/RR-409}", number = "{/DCS/RR-414}", number = "{/DCS/RR-534}", number = "{AM}--87--13", number = "{AM}--88--09", number = "{CS}980", number = "{ICE-VS}06", number = "{NRL} Report 8179", number = "{SACLANTCEN} {CP}-19", number = "{SACLANTCEN} {SM}-72", number = "{STAN-CS-79-714}", number = "{STAN-CS-88-1223}", number = "{STAN-CS-89-1256}", number = "{TR SRI-CSL-91-05}", number = "{TR90-141}", pages = "1--26", pages = "1--27 (or 3--28??)", pages = "1--28 (or 1--18??)", pages = "1--??", pages = "1-70", pages = "1.0--3.0", pages = "1.1--1.27", pages = "1.2/1--8", pages = "1.3/1--6", pages = "1.4/1--7", pages = "1.42--1.54", pages = "1.5/1--3", pages = "1/1--1/5", pages = "10 + 622", pages = "10 + [16]", pages = "10 + [2]", pages = "10 + [9]", pages = "10 -- 11", pages = "10 -- 15", pages = "10 computer disks guide + 2 templates.", pages = "10 videocassettes (ca. 253 min.), guide (vii + 104)", pages = "10, 11, 19", pages = "10, 12", pages = "10,560--10,574", pages = "10--??", pages = "10.1--10.29", pages = "10/1--2", pages = "10/1--25", pages = "100 -- 104", pages = "100--122 (of vi + 335)", pages = "100--??", pages = "1001--??", pages = "1003--??", pages = "101 + [43]", pages = "101 -- 110", pages = "101--113 (or 51--60??)", pages = "103 -- 123", pages = "103, 117", pages = "104 -- 126", pages = "104 -- 133", pages = "104--116 (of xii + 199)", pages = "105--127 (of x + 552)", pages = "1059 -- 1072", pages = "106--108", pages = "1065--1067 (vol. 2)", pages = "107.", pages = "1075--1095 vol.2", pages = "108 -- 111", pages = "108 -- 128", pages = "108--110, 112--115", pages = "1091 -- 1103", pages = "1099 -- 1114", pages = "11 + 13", pages = "11 + [12]", pages = "11 + [3]", pages = "11 + [5]", pages = "11 + [6]", pages = "11 -- 59", pages = "11--14, 109--112", pages = "11.1--11.27", pages = "11/1--11/4", pages = "11/1--3", pages = "11/1--8", pages = "110 + [4]", pages = "111 -- 113, 106", pages = "111--123, 131", pages = "1112 -- 1120", pages = "112 + I20", pages = "112--1--112--15", pages = "114 -- 144", pages = "1144 -- 1156", pages = "115 + 5 + 3", pages = "115 -- 133", pages = "115 -- 137", pages = "115--120, 122", pages = "1152 columns", pages = "118--120, 136", pages = "119--129, 132", pages = "119.", pages = "1193--1198 (vol. 2)", pages = "11P", pages = "12 + [14]", pages = "12 + [6] + A--18", pages = "12 computer disks", pages = "12 program files + 1 text file (MS--DOS + IBM--PC)", pages = "12+", pages = "12--18, 81", pages = "12.1--12.15", pages = "120 -- 131", pages = "121 -- 139", pages = "121--122, 124, 126--127, 130, 132", pages = "122, 101", pages = "122, 98", pages = "122--123, 106", pages = "1227 -- 1240", pages = "123--124, 126, 128", pages = "123--131 (or 122--129??)", pages = "1233--1236 (vol. 3)", pages = "1233--1236 vol.3", pages = "1247-", pages = "126 + [4]", pages = "127 -- 148", pages = "127--134 (of xiv + 517)", pages = "127-130", pages = "1279 -- 1292", pages = "129--130, 132--134, 136", pages = "129--135 (or 129--136??)", pages = "129--138 (vol. 1)", pages = "13 + 36 + [2]", pages = "13 + A1--11 + B1--6 + C1--10 + D1--8 + E1--5", pages = "13 + A13", pages = "13 computer disks guide + codeview and utilities", pages = "13 computer disks guide.", pages = "13--14, 16", pages = "13.", pages = "13.1--13.16", pages = "1306 -- 1309", pages = "131 + [1]", pages = "131--142 (of ix + 394)", pages = "1311 -- 1328", pages = "1329 -- 1347", pages = "1332-1350", pages = "134 pp", pages = "1347 -- 1362", pages = "135 -- 148", pages = "136 + 5", pages = "136 -- 140", pages = "137 + [1]", pages = "137 +", pages = "138, 119", pages = "138, 121", pages = "138.", pages = "139--148 (or 139--147??)", pages = "139--161 (or 138--151??)", pages = "14 + 12", pages = "14 + 2.5", pages = "14 + 573", pages = "14 + [13]", pages = "14 + [24]", pages = "14 + [3] (env. 918 p.)", pages = "14 -- 17", pages = "14 program files (IBM PC) on 2 computer disks", pages = "14, 82--85", pages = "14.1--14.15", pages = "14.1.1--14.1.4", pages = "14/1/1--6", pages = "14/3/1--8", pages = "14/4/1--6", pages = "14/5/1--8", pages = "140--152 (or 148--160??)", pages = "141 -- 156", pages = "141--148 (of xix + 453)", pages = "142 -- 169", pages = "143--154 (of ix + 394)", pages = "144--148, 150, 152, 154, 156, 158, 160--161", pages = "146 -- 160", pages = "147---156", pages = "147--156, 157--168", pages = "148--154, 156, 158, 160, 162, 164", pages = "149 -- 158", pages = "15 + 8", pages = "15 + [1]", pages = "15--18, 22--23", pages = "15--21, 110", pages = "15.1--15.24", pages = "15.1/1--4", pages = "15.2/1--4", pages = "15/1/1--4", pages = "150 -- 165", pages = "150 l.", pages = "1509--1514 vol.2", pages = "152 -- 179", pages = "152--160, 300--301", pages = "152--164, 166", pages = "155 -- 189", pages = "155--156, 158", pages = "1550 -- 1560", pages = "1587, with 31 illustrations", pages = "159 ff.", pages = "16 + 10", pages = "16 + [8]", pages = "16--17, 44", pages = "16--18, 20, 22", pages = "16.1--16.22", pages = "16/1/1--3", pages = "16/2/1--7", pages = "16/3/1--3", pages = "16/5/1--10", pages = "160F--??", pages = "161 -- 184", pages = "162--172, 174", pages = "163 -- 170", pages = "1647-1652", pages = "165 -- 170", pages = "165--170, 499--511", pages = "166 + 61", pages = "166 columns.", pages = "166--1f", pages = "168--173, 175--176, 178--181", pages = "169 -- 176", pages = "169-", pages = "17 -- 24", pages = "17 -- 41", pages = "17 v. in 1", pages = "17--25 (discussion 27--28)", pages = "17.", pages = "170--181 (of xi + 528)", pages = "171 -- 179", pages = "171 -- 187", pages = "172 pages.", pages = "172--173, 175", pages = "172--176, 178, 180--182, 184, 186--187, 192--197, pages = "173 + 11 + 3", pages = "173 -- 177", pages = "173--174, 191--192", pages = "173--176 (vol. 1)", pages = "174, 176", pages = "175--178 (Vol. 1)", pages = "175--208 (or 175--207??)", pages = "176, 196--206", pages = "177 -- 184", pages = "177 -- 197", pages = "177 -- 209", pages = "177--184 (or 171--176??)", pages = "1784--1791 vol.4", pages = "179 -- 200", pages = "179--194 and 315--326", pages = "1792--1795 vol.4", pages = "1796--1799 vol.4", pages = "18 + [18]", pages = "18 + [21]", pages = "18 + [33]", pages = "18 + [58]", pages = "18 -- 24", pages = "18--20, 22, 24, 26, 91", pages = "18.", pages = "18/0/1--5", pages = "18/1/1--12", pages = "18/2/1--5", pages = "18/3/1--6", pages = "18/4/1--8", pages = "180.", pages = "1800--1803 vol.4", pages = "181 -- 191", pages = "181 -- 198", pages = "181--182, 184", pages = "181-197", pages = "184 (Macintosh), 192 (Windows)", pages = "187 -- 196", pages = "187 -- 209", pages = "187 -- 217", pages = "1876--1881 (vol. 3)", pages = "188--200 (or 201??)", pages = "19 + 4 + 1", pages = "19 -- 46", pages = "19 program files on 2 computer disks 1 user's guide", pages = "19+117", pages = "19--27 (of xviii + 1621)", pages = "190, 192", pages = "191--197 vol.1", pages = "193--194, 196", pages = "193--206 (of ix + 453)", pages = "193--6, 198", pages = "194, 196", pages = "194--196, 198, 200, 202--203, 205--206, 208, 210", pages = "195 -- 204", pages = "197 + [1]", pages = "2 + 2 + 335", pages = "2 + 2 + 354", pages = "2 + 216", pages = "2 + 4 (C source code)", pages = "2 + 475", pages = "2 + 7 + 227", pages = "2 + [6].", pages = "2 + xi + 237", pages = "2 -- 9", pages = "2 computer disks", pages = "2 microfiches (125 fr.)", pages = "2 microfiches (134 fr.)", pages = "2 microfiches (138 fr.)", pages = "2 microfiches", pages = "2 program files (FORTRAN + IBM PC) on 1 computer disk", pages = "2 pts. in 1", pages = "2 v", pages = "2 v.", pages = "2--18--2--15", pages = "2.1--2.13", pages = "2/1--3", pages = "20 -- 21 \& 8 ff.", pages = "20 transparencies. color. 10 x 12 in.", pages = "20 transparencies. color. 10x12 in.", pages = "20 videocassettes (VHS) (30 min. ea.) + book.", pages = "20, 22, 24--25", pages = "20--22 (or 20--23??)", pages = "20.21--20.25", pages = "2002 +", pages = "201--202, 204--208", pages = "201--206 (or 201--207??)", pages = "203 -- 229", pages = "2038 -- 2050", pages = "204 -- 217", pages = "204--206, 209--210, 212, 215--216, 218--221", pages = "205 + [3] ", pages = "205 -- 215", pages = "205 -- 240", pages = "2063 -- 2068", pages = "207--220, 71--78", pages = "208.", pages = "209--221 (or 209--222??)", pages = "21 + 133 + 87", pages = "21--2--21--13", pages = "211 -- 213", pages = "211 -- 227", pages = "213 +", pages = "213 -- 216", pages = "213--216??", pages = "213--243, esp.~219--224", pages = "215 -- 224", pages = "216--220, 222, 224--226, 228, 230, 232--234", pages = "217--250, 276--300, 372--389", pages = "218 -- 240", pages = "219--239 (of xii + 394)", pages = "22 + 3", pages = "22 + 331 (Chapter 1), 8 + 373 (Chapter 2)", pages = "22 cassettes. 2--track. mono.", pages = "221--222, 224, 226", pages = "221--224 (vol. 1)", pages = "221--231 (or 221--232??)", pages = "222--225, 227--235", pages = "223 + [8]", pages = "223 -- 227", pages = "223 -- 252", pages = "224 + [1]", pages = "224A--??", pages = "227 -- 234", pages = "228 -- 236", pages = "228ff", pages = "22:00--35:28", pages = "23 + iii", pages = "23 -- 27", pages = "231 -- 232", pages = "231 -- 240", pages = "231 -- 264", pages = "232-236", pages = "233--242 (of xix + 453)", pages = "235--255 (of ix + 403)", pages = "236--238, 240", pages = "237 + 15 + 18.", pages = "237--253 (of xvii + 529)", pages = "237-256", pages = "238 -- 251", pages = "239 + [2]", pages = "239 -- 259", pages = "239, 240", pages = "239--242, 144", pages = "24 + 27", pages = "24 + [12]", pages = "24 -- 30", pages = "24--85 (or 42??)", pages = "24-30", pages = "240 -- 250", pages = "240, 303", pages = "241--242 (?? check ??) or 696--698", pages = "241--244, 246--247", pages = "241-246", pages = "241-250", pages = "241-264", pages = "243 + 12 + 10 + 6", pages = "243 -- 248", pages = "243 -- 268", pages = "244-244", pages = "245 -- 255", pages = "246--260 (or 246--259??)", pages = "246-250", pages = "247--250 vol.1", pages = "247-254", pages = "249 -- 259", pages = "249--252, 254, 256", pages = "25--28, 30--32, 34, 36, 38--39", pages = "250 +", pages = "250--255 (of xii + 423)", pages = "254 + [2]", pages = "255 -- 286", pages = "257--258, 260", pages = "257--258, 260, 262", pages = "257--284 (of x + 338)", pages = "258--287 (of viii + 655)", pages = "259 -- 271", pages = "26 + 19", pages = "26 + 324 + 8", pages = "26 -- 43", pages = "260--274 (or 260--273??)", pages = "261 +", pages = "263, 267", pages = "265--266, 268", pages = "265--271, 332--345", pages = "265--272, 332--345", pages = "265--273, 341", pages = "267--283 (or 268--283??)", pages = "268 + 106", pages = "268--270 (or 268--274??)", pages = "268--274 (or 268--270??)", pages = "269--288 (of ix + 453)", pages = "27--30, 32, 34, 36", pages = "273--314 (of ix + 388)", pages = "274 pp", pages = "275 +", pages = "275 -- 282", pages = "275 -- 297", pages = "276--280, 282, 284--285, 289--291, 293, 295, 299, pages = "277 +", pages = "279--289 (vol. 2)", pages = "279--290 (or 279--298??)", pages = "2794 -- 2802", pages = "27:1--27:10", pages = "27P-28P", pages = "28 -- 41", pages = "28, 29, 285", pages = "28, 30, 32, 34, 36, 38, 91--92", pages = "28, 30, 32, 34, 84, 86--87", pages = "28, 30--31", pages = "28--35 (or 28--34??)", pages = "280 -- 294", pages = "2803 -- 2812", pages = "281 -- 294", pages = "282 -- 292", pages = "283 +", pages = "286 -- 300", pages = "286--2xx", pages = "287 -- 295", pages = "287 -- 301", pages = "287--290??", pages = "29 + 5 + 7 + 9 + 6", pages = "29 -- 42", pages = "29, 32--38", pages = "29--37 (of xix + 685)", pages = "29--49 (of xi + 425)", pages = "29--82 (of x + 415)", pages = "29.", pages = "291 -- 309", pages = "292--296 (of xi + 437)", pages = "293--312 (or 293--311??)", pages = "295--296, 298", pages = "297-", pages = "2P-3P", pages = "2c6.1--??", pages = "2c6.9--??", pages = "3 + 6", pages = "3 + 810 + 15", pages = "3 + [11]", pages = "3 + [16] + [1]", pages = "3 books + 4 diskettes + 1 booklet.", pages = "3 computer disks", pages = "3 microfiches (221 im.)", pages = "3 microfiches.", pages = "3 pts.", pages = "3 v. in 1", pages = "3 v.", pages = "3+", pages = "3, 18", pages = "3, 20", pages = "3--", pages = "3--27 (or 3--28??)", pages = "3.1--3.10", pages = "3.1--3.13", pages = "3.4.1--3.4.4", pages = "3/206", pages = "3/308", pages = "30, 32--33", pages = "30.3/1--4", pages = "300 -- 308", pages = "301 -- 320", pages = "301 -- 331", pages = "301--321 (or 301--324??)", pages = "301.", pages = "303--304??", pages = "303--?", pages = "305 -- 316", pages = "307, 307", pages = "309 -- 318", pages = "309 -- 322", pages = "309--323 (of viii + 426)", pages = "309--328 (or 300--328??)", pages = "309--376 (of xv + 608)", pages = "31--45 (of 255)", pages = "310--", pages = "313.", pages = "315 -- 327", pages = "315 -- 333", pages = "315--340 (or 315--339 ?? or 315--349 ??)", pages = "317 -- 318, 503", pages = "317 -- 330", pages = "317--318, 503", pages = "317--365, 1870", pages = "319--326 (or 318--326??)", pages = "32 + 36", pages = "32 + A1--A4", pages = "32 -- 45", pages = "32, 34, 38--39, 101", pages = "32--48, 96--100", pages = "32.", pages = "325--330 (of xiii + 426)", pages = "327 (without CD--ROM), 388 (with CD--ROM)", pages = "327 -- 329", pages = "327 -- 340", pages = "328-335", pages = "329 -- 345", pages = "33 + 26", pages = "33 + [9]", pages = "33 -- 41", pages = "33 slides (in carousel slide tray) col. 2 x 2 in.", pages = "33--43, 45", pages = "330 -- 340", pages = "330 -- 345", pages = "333 -- 365", pages = "337 -- 338", pages = "337 -- 340", pages = "337--357, 458--474", pages = "338 -- 346, 250 -- 252, 97", pages = "339--352 (of xvii + 559)", pages = "34 + 16 + 15", pages = "34 + 25", pages = "34 slides (in carousel slide tray) col. 2 x 2 in.", pages = "341 -- 348", pages = "343--348 (or 343--347??)", pages = "347--363 (or 347--364??)", pages = "349--385 and 435--471", pages = "35 + 14", pages = "35 + [80]", pages = "35--62 (of xiv + 644)", pages = "35/1/1--13", pages = "35/2/1--6", pages = "35/4/1--5", pages = "350-353", pages = "354-", pages = "355 -- 358", pages = "357--428 (of ix + 523)", pages = "359, with 9 illustrations", pages = "36 + [4]", pages = "36 microfiche.", pages = "36 slides (in carousel slide tray) col. 2 x 2 in.", pages = "36, 38, 40, 42, 86, 88--89", pages = "36--38, 40, 42--44, 46--47, 50--51", pages = "361, 365", pages = "361--364, 366, 368", pages = "363--366 (of xviii + 654)", pages = "363--394 (??)", pages = "363--8, 370, 372, 374, 376", pages = "364 +", pages = "365 -- 392", pages = "365--375 (or 365--381??)", pages = "369 -- 383", pages = "369--374 (??)", pages = "37 + [31]", pages = "373--377, 385", pages = "375 -- 412", pages = "375--378 (vol. 1)", pages = "375--386, discussion 386--388", pages = "38--42, 44--46, 48--51", pages = "38--45, 77", pages = "381--385, 387", pages = "382 -- 384", pages = "385,386,388,390,392,395", pages = "38a + 1559", pages = "39 + [14]", pages = "39--45, 48--52", pages = "39--84 (of xiii + 444)", pages = "391-", pages = "391--394 (plus microfiche listing)", pages = "395 -- 412", pages = "4 + 2 + 8", pages = "4 + 366", pages = "4 + 5", pages = "4 + [13]", pages = "4 + [2] + 8", pages = "4 + [3]", pages = "4 + [5]", pages = "4 + iv + 216", pages = "4 cassettes + 240 min.", pages = "4 computer disks", pages = "4 program files (IBM--PC) on 3 computer disks", pages = "4 v. in 1", pages = "4 v.", pages = "4.1--4.12", pages = "4.1--4.21", pages = "4/1--6", pages = "4/1--8", pages = "40 +", pages = "40--42, 44--49", pages = "404-408", pages = "4053 -- 4062", pages = "407--422 (of x + 668)", pages = "408 -- 414", pages = "41 + x", pages = "41 -- 72", pages = "41--54 (or 41--47??)", pages = "413--440 (or 413--439??)", pages = "415--440, 517--523", pages = "417--429 (vol. 1)", pages = "418 -- 450", pages = "419-429", pages = "41P", pages = "42 + 8.", pages = "42--46, 54, 57--79", pages = "421--430 (or 421--431??)", pages = "424--436 (or 424--431??)", pages = "425--?", pages = "425ff", pages = "426 +", pages = "428--434 (of xix + 453)", pages = "43, 126", pages = "431 +", pages = "433ff", pages = "434--443 vol.2", pages = "44 + [1]", pages = "44--45, 285", pages = "441 ff.", pages = "445-507", pages = "449--461 vol.2", pages = "45, 116", pages = "450 vol.1", pages = "450--453 (plus microfiche supplement)", pages = "46, 79, 82", pages = "46--47, 286", pages = "463 -- 464", pages = "465 -- 471", pages = "466 + [14]", pages = "467--474 (vol. 1)", pages = "47 -- 66", pages = "473 +", pages = "476 + 88", pages = "479--514 (of 514)", pages = "48 + [2]", pages = "48--49, 287", pages = "48/1/1--8", pages = "48/5/1--7", pages = "481 +", pages = "484--488 vol.1", pages = "486 -- 487", pages = "49 -- 67", pages = "493--1099 + xviii + xvi + xviii", pages = "494, with subject index, author index, and glossary", pages = "5 + 86 [i.e. 89] + 5", pages = "5 + [3]", pages = "5 + [4] + 24", pages = "5 + [4]", pages = "5 + [6] + [1] + [4] + [1]", pages = "5 cubic ft. + 10 panels + and 1 videotape.", pages = "5 v. in 1", pages = "5 v.", pages = "5--9, 36", pages = "5.1--5.29", pages = "5/1--3", pages = "5/1--5/4", pages = "50 + [28]", pages = "50--51, 288", pages = "50--56, 58", pages = "50.", pages = "501--504 vol.2", pages = "503 -- 524", pages = "509--519 (or 509--520??)", pages = "51 + 38", pages = "51 + A--2 + 12", pages = "51 + [78]", pages = "51 -- 89", pages = "51--52, 54, 55", pages = "512 -- 521", pages = "515 +", pages = "519 -- 554", pages = "52, 54--56", pages = "52, 55--56, 58, 90", pages = "52--53, 289", pages = "52--53, 56--58", pages = "53 + [1]", pages = "53 -- 65", pages = "53--142 (of xi + 499)", pages = "53--147 (of ix + 332)", pages = "531 -- 549", pages = "534 -- 544", pages = "535 + 16", pages = "536 -- 539", pages = "54 -- 99", pages = "54--55, 290", pages = "541--555 (of xiv + 644)", pages = "544, with 22 illustrations", pages = "55 + [28]", pages = "55 -- 73", pages = "55, 57, 59", pages = "55, 57--63", pages = "55--62, 64--70", pages = "551 -- 560", pages = "552 -- 563", pages = "556 (v. 1), 1056 (v. 2)", pages = "557--558, 578", pages = "557--558, 594", pages = "56 + 39", pages = "56, 58, 60--61, 101--102", pages = "560 -- 566", pages = "566 o.", pages = "57--58, 61--68, 70--71", pages = "57-63", pages = "570--598 vol.1", pages = "572--578, 585", pages = "576--580 and 583", pages = "58 + [35]", pages = "58, 60, 62, 96, 98, 99", pages = "58--78 (of 196)", pages = "581 -- 595", pages = "59 + 15", pages = "59, 61", pages = "59, 62--64", pages = "59--60, 63--64", pages = "593 -- 608", pages = "598--603, 643", pages = "6 + 379", pages = "6 + A2", pages = "6 + [2]", pages = "6 + [3]", pages = "6 + [6]", pages = "6 cartridges", pages = "6 computer disks guide.", pages = "6 motion pictures. sd. color. super 8 mm.", pages = "6 sound cassettes kit + program coding forms.", pages = "6 v. in 1", pages = "6, 22", pages = "6.", pages = "6.1--6.23", pages = "6/1--6/3", pages = "6/2/1--7", pages = "60--1--??", pages = "60.", pages = "604 -- 621", pages = "604--609 (vol. 2)", pages = "61 -- 94", pages = "619--621 vol.2", pages = "62 + 70", pages = "628-666", pages = "63 + 45", pages = "63 + [51]", pages = "63 -- 94", pages = "63--66, 69--72, 77--78, 80", pages = "64, 69--70", pages = "64--1--??", pages = "641--650 vol.1", pages = "644-653", pages = "645 -- 677", pages = "646--649 (vol. 2)", pages = "649 \& 703", pages = "649, 703", pages = "64NA4--??", pages = "65 -- 88", pages = "65--66, 68--69", pages = "65--68 (or 65--67??)", pages = "653 -- 660", pages = "654--662 (or 654--660??)", pages = "657--658 (vol. 1)", pages = "65H--??", pages = "66 + 12", pages = "66--76, 130--139, 187--196, 246--261", pages = "66--99 (of vi + 335)", pages = "668 -- 675", pages = "67--68, 70", pages = "67--68, 70, 72, 74--77, 79", pages = "67--70, 72, 74, 77--78, 80--81", pages = "67--71, 115--116", pages = "68--80, 98--102", pages = "69 -- 100", pages = "69 -- 88", pages = "691 -- 699", pages = "694 -- 695", pages = "7 + 4 + 12 + 25 + [5]", pages = "7 + 573", pages = "7 + 9 (C source code)", pages = "7 + [24]", pages = "7 + [2]", pages = "7 + [7]", pages = "7 -- 9", pages = "7 computer disks", pages = "7 fasc.", pages = "7 v. in 1", pages = "7 v.in 1", pages = "7, 8, 10, 12, 13, 16", pages = "7.", pages = "7.1--7.18", pages = "7/2/1--5", pages = "7/3/1--9", pages = "7/4/1--3", pages = "70 microfiches", pages = "701 -- 721", pages = "71 -- 95", pages = "71.", pages = "714-736", pages = "718 + 95 + 16", pages = "72 + [6]", pages = "72, 74, 76, 78", pages = "72, 74--75, 86--87", pages = "723--762 (of xix + 762)", pages = "727--?? (or 158--??)", pages = "72IS/11--12", pages = "73 -- 78", pages = "73 -- 90", pages = "73, 210", pages = "73--75, 78, 80--85 and 1", pages = "730--734 vol.2", pages = "731--740, 798", pages = "738 -- 741", pages = "74 -- 86", pages = "742--749, 774", pages = "745 -- 755", pages = "74S--74S", pages = "75--78, 80--82, 84", pages = "75-89", pages = "754--760 (vol. 1)", pages = "76 + 6 + 3", pages = "76--78, 180--188", pages = "762 -- 777", pages = "77 -- 84", pages = "77--78, 80", pages = "773 -- 782", pages = "78 + A34", pages = "78 + [26]", pages = "78 + [2]", pages = "79 + [76]", pages = "793--799, 803", pages = "797 -- 806", pages = "799 -- 806", pages = "8 + 1", pages = "8 + 196", pages = "8 + 223", pages = "8 + 24 + 20", pages = "8 + 4", pages = "8 + A--33", pages = "8 + [10]", pages = "8 + [15]", pages = "8 computer disks", pages = "8 microfiche.", pages = "8 sound cassettes", pages = "8 sound tape reels (354 min.)", pages = "8 videocassettes (ca. 45 min. ea.)", pages = "8, 10--13", pages = "8--9, 11", pages = "8.1--8.24", pages = "80--83, 362", pages = "807 -- 815", pages = "81 -- 95", pages = "81.", pages = "820--835 (or 820--834??)", pages = "820--835 (or 836--855??)", pages = "821 -- 833", pages = "83 -- 108", pages = "831 -- 847", pages = "84 -- 117", pages = "84, 86--89, 96--97", pages = "85 (or 86??)", pages = "85 -- 94", pages = "85--98 (or 85--97??)", pages = "852--873 (or 852--872??)", pages = "86--100 (or 99??)", pages = "86--88, 90, 92, 94, 97", pages = "87 -- 96", pages = "87--98 (or 87--97??)", pages = "88 -- 95", pages = "88--111 (of xii + 404)", pages = "880--884 vol.2", pages = "885--888 (or 887?)", pages = "89--113 (or 89--114??)", pages = "890--897 vol.2", pages = "891--905 (or 903??)", pages = "896--910 (or 896--911??)", pages = "898--902 (vol. 2)", pages = "898--902 vol.2", pages = "8f--??", pages = "9 + 10 + 37", pages = "9 + [15]", pages = "9 + [16]", pages = "9 + [20] + [1]", pages = "9.", pages = "9.1--9.25", pages = "9/1--7", pages = "90 + [1]", pages = "90--99 (or 90--98??)", pages = "91 + 5", pages = "91 +", pages = "91--103 (of ix + 394)", pages = "91--128 (of viii + 248)", pages = "91--98 (of xiii + 623)", pages = "92--105 (or 92--104??)", pages = "93 +", pages = "93--103, 108--110", pages = "94 -- 99", pages = "94--104, 74--93", pages = "95 + 16", pages = "951--963 (vol. 2)", pages = "961 +", pages = "96A--??", pages = "96D--??", pages = "96NA1--??", pages = "97 -- 110", pages = "97--108 (or 97--107??)", pages = "97--123.", pages = "97--99 (or 87--99??)", pages = "98-101", pages = "984--1004, esp.\ 1001--1002", pages = "99 + 8", pages = "99 -- 115", pages = "99--102, 117", pages = "996--1003 (vol. 2)", pages = "?", pages = "??", pages = "??--?? (of 178)", pages = "??--?? (of 514)", pages = "??--?? (of vi + 335)", pages = "??--?? (of xi + 468)", pages = "??--?? (of xiv + 644)", pages = "??--?? (of xv + 1243)", pages = "??--?? (of xvi + 694)", pages = "??--?? (of xviii + 654)", pages = "??--?? (of xxii + 484)", pages = "??--??", pages = "???", pages = "???--122", pages = "????", pages = "????--????", pages = "A--i--A--x, A--1--A--71", pages = "A-1--A-66", pages = "A14", pages = "A14--1--A14--51 + A15--1--A15--6", pages = "A25", pages = "ALL", pages = "AP-14", pages = "AP-15--AP-16", pages = "Appendix A", pages = "Approx 670", pages = "B 6 + II--4", pages = "B--i--B--iii, B--1--B--15", pages = "B121", pages = "B149", pages = "B721-B729", pages = "B97", pages = "C--i--C--iii, C--1--C--28", pages = "C-01--C-??", pages = "C-107--C-??", pages = "C-127--C-??", pages = "C-13--C-??", pages = "C-143--C-??", pages = "C-155--C-??", pages = "C-167--C-??", pages = "C-179--C-??", pages = "C-185--C-??", pages = "C-195--C-??", pages = "C-205--C-??", pages = "C-221--C-??", pages = "C-23--C-??", pages = "C-233--C-??", pages = "C-247--C-??", pages = "C-259--C-??", pages = "C-271--C-??", pages = "C-281--C-??", pages = "C-293--C-??", pages = "C-305--C-??", pages = "C-317--C-??", pages = "C-329--C-??", pages = "C-33--C-??", pages = "C-339--C-??", pages = "C-349--C-??", pages = "C-361--C-??", pages = "C-371--C-??", pages = "C-381--C-??", pages = "C-393--C-??", pages = "C-407--C-??", pages = "C-421--C-??", pages = "C-433--C-??", pages = "C-443--C-??", pages = "C-45--C-??", pages = "C-455--C-??", pages = "C-467--C-??", pages = "C-477--C-??", pages = "C-489--C-??", pages = "C-503--C-??", pages = "C-513--C-??", pages = "C-514--C-??", pages = "C-515--C-??", pages = "C-55--C-??", pages = "C-65--C-??", pages = "C-75--C-??", pages = "C-85--C-??", pages = "C-97--C-??", pages = "C/33--44", pages = "C3", pages = "C3--??", pages = "D--i--D--iii, D--1--D--16", pages = "E--i--E--iv, E--1--E--27", pages = "EL-1--EL-6", pages = "F--i--F--viii, F--1--F--61", pages = "F53 + 1229 + B29", pages = "G--i--G--v, G--1--G--28", pages = "H--i--H--iv, H--1--H--37", pages = "H439--H448", pages = "I", pages = "I--257, I--260", pages = "I--340", pages = "I--57--I--66", pages = "I-30 - I-44", pages = "I-45 - I-57", pages = "I181--5 (vol. 1)", pages = "II--103--II--106", pages = "II--297--II--300", pages = "II--305--II--308", pages = "II--337--II--340", pages = "II-282--II-283", pages = "II-653--II-658", pages = "II:351--II:358", pages = "III--125--III--133", pages = "III--2023", pages = "III--??", pages = "III-197--III-201", pages = "III.29--III.36", pages = "IV--??", pages = "IV-1 to IV-27", pages = "IX + 215", pages = "L115", pages = "L1331--L1337", pages = "L169--L179", pages = "L227-L230", pages = "L383-L388", pages = "L547--L551", pages = "L569-L573", pages = "L819-L823", pages = "LO-93--LO-97", pages = "PM01", pages = "R114--R121", pages = "R2183--R2186", pages = "Ri--Rx, R1--R163", pages = "S-10--S-??", pages = "S-11--S-??", pages = "S-12--S-??", pages = "S-13--S-??", pages = "S-14--S-??", pages = "S-16--S-??", pages = "S-18--S-??", pages = "S-2--S-??", pages = "S-20--S-??", pages = "S-21--S-??", pages = "S-22--S-??", pages = "S-23--S-??", pages = "S-24--S-??", pages = "S-25--S-??", pages = "S-26--S-??", pages = "S-27--S-??", pages = "S-28--S-??", pages = "S-3--S-??", pages = "S-30--S-??", pages = "S-33--S-??", pages = "S-34--S-??", pages = "S-35--S-??", pages = "S-36--S-??", pages = "S-37--S-??", pages = "S-38--S-??", pages = "S-4--S-??", pages = "S-40--S-??", pages = "S-42--S-??", pages = "S-44--S-??", pages = "S-45--S-??", pages = "S-46--S-??", pages = "S-48--S-??", pages = "S-5--S-??", pages = "S-6--S-??", pages = "S-8--S-??", pages = "S1--??", pages = "S1/19--??", pages = "S1/3--S1/17", pages = "S1/35--??", pages = "S1/47--??", pages = "S1/47--S1/61", pages = "S1/63--??", pages = "S1/89--??", pages = "S148--S149", pages = "S2/109--??", pages = "S2/119--??", pages = "S2/137--??", pages = "S2/35--??", pages = "S2/5--??", pages = "S2/69--??", pages = "S2/83--??", pages = "S201--S209", pages = "S435--438", pages = "S539", pages = "S565--569", pages = "ST-134--ST-143", pages = "ST-144", pages = "Sec. 33--4", pages = "Sound cassettes.", pages = "T 532--534", pages = "T11, 1--8", pages = "T141--T143", pages = "T176--T177", pages = "T181--T182", pages = "T182--T184", pages = "T188--T189", pages = "T188--T190", pages = "T190--T191", pages = "T191--T193", pages = "T197--T198", pages = "T202--T204", pages = "T207--T208", pages = "T208--T209", pages = "T217--T218", pages = "T219--T220", pages = "T220--T221", pages = "T221--T223", pages = "T222", pages = "T225--T226", pages = "T229--T230", pages = "T237--T238", pages = "T240--T242", pages = "T262--T263", pages = "T263--T270", pages = "T265--T266", pages = "T270--T272", pages = "T273--T274", pages = "T274--T275", pages = "T275--T277", pages = "T282--T283", pages = "T282--T284", pages = "T284--T286", pages = "T286--T287", pages = "T288--T289", pages = "T290--T292", pages = "T291--T292", pages = "T293--T295", pages = "T294--T295", pages = "T294--T296", pages = "T296--T297", pages = "T301--T304", pages = "T308--T309", pages = "T309-T312", pages = "T311--T313", pages = "T313--T315", pages = "T315--T317", pages = "T319--T320", pages = "T32--T33", pages = "T33", pages = "T33--T35", pages = "T331--T332", pages = "T355--T357", pages = "T379--T381", pages = "T380-T382", pages = "T403--T404", pages = "T404--T405", pages = "T405--T407", pages = "T407--T408", pages = "T408--T410", pages = "T416--T418", pages = "T426--T427", pages = "T428--T429", pages = "T434--T436", pages = "T493--T503", pages = "T494--T495", pages = "T50--T51", pages = "T56", pages = "T59--T60", pages = "T68--T69", pages = "T69", pages = "T69--T71", pages = "T69--T72", pages = "T70--T71", pages = "T71--T73", pages = "T72--T73", pages = "T72--T85", pages = "T76--T79", pages = "T79--T80", pages = "TBD", pages = "VI--73--VI--76", pages = "XIV--113", pages = "[10] + 138", pages = "[11] + 138", pages = "[11].", pages = "[18]", pages = "[1] + 24", pages = "[1] + iii + 61", pages = "[1] + vii + [46]", pages = "[256]", pages = "[2] + 12", pages = "[2] + 16", pages = "[2] + 3 + 248", pages = "[2] + 51 + [1]", pages = "[2]", pages = "[384]", pages = "[3] + 105", pages = "[3] + 152", pages = "[3] + 38", pages = "[3] + 39", pages = "[3] + 63", pages = "[4] + 16 [19]", pages = "[4] + 61", pages = "[5] + 14", pages = "[5] + 152 + 3--44", pages = "[5] + 20", pages = "[5] + 354", pages = "[5] 42 [4]", pages = "[6] + 22 + [2]", pages = "[6] + 25 + [1]", pages = "[6] + 41", pages = "[6] + 59", pages = "[6] + 77", pages = "[6] 182", pages = "[72] + 19 + 12", pages = "[7] + 52", pages = "[7] + 82 + [82]", pages = "[ca. 200]", pages = "[i] + 11", pages = "[ii] + 20", pages = "[iii] + 40", pages = "[v] + 164", pages = "[vi] + 246", pages = "[xiii] + 923", pages = "[xiv] + 144", pages = "b + [4]", pages = "ca. 1 program file (IBM PC) on 1 computer disk", pages = "ca. 160", pages = "ca. 175", pages = "ca. 200", pages = "ca. 250", pages = "ca. 350", pages = "ca. 400", pages = "ca. 89", pages = "d42--??", pages = "i + 109", pages = "i + 12 + [11]", pages = "i + 12", pages = "i + 13", pages = "i + 135", pages = "i + 15", pages = "i + 23", pages = "i + 27", pages = "i + 28", pages = "i + 30", pages = "i + 31", pages = "i + 311", pages = "i + 33", pages = "i + 39", pages = "i + 45", pages = "i + 47 + 67", pages = "i + 48", pages = "i + 58", pages = "i + 60", pages = "i + 61", pages = "i + 82", pages = "i + 92", pages = "i, 1--10", pages = "i, 1--14", pages = "i--ii, 1--315", pages = "ii + 104", pages = "ii + 105", pages = "ii + 115", pages = "ii + 133", pages = "ii + 136", pages = "ii + 139", pages = "ii + 14", pages = "ii + 142", pages = "ii + 15", pages = "ii + 153", pages = "ii + 16 + [3]", pages = "ii + 16", pages = "ii + 17", pages = "ii + 18 + [26]", pages = "ii + 18", pages = "ii + 19", pages = "ii + 20", pages = "ii + 223", pages = "ii + 24", pages = "ii + 25", pages = "ii + 259", pages = "ii + 27", pages = "ii + 28", pages = "ii + 29", pages = "ii + 293", pages = "ii + 31", pages = "ii + 33 + [69]", pages = "ii + 34", pages = "ii + 35", pages = "ii + 36", pages = "ii + 37 + 38", pages = "ii + 37", pages = "ii + 38", pages = "ii + 41", pages = "ii + 42", pages = "ii + 43", pages = "ii + 44", pages = "ii + 45 + [6]", pages = "ii + 46", pages = "ii + 5", pages = "ii + 50", pages = "ii + 52", pages = "ii + 53", pages = "ii + 57", pages = "ii + 61 + [3]", pages = "ii + 61", pages = "ii + 62", pages = "ii + 64", pages = "ii + 65", pages = "ii + 66 + [11]", pages = "ii + 66", pages = "ii + 744", pages = "ii + 91 + [2]", pages = "ii + A--H + 101", pages = "ii + [15]", pages = "ii, 1--9", pages = "ii--??", pages = "iii + 101", pages = "iii + 102", pages = "iii + 103", pages = "iii + 104", pages = "iii + 105", pages = "iii + 106", pages = "iii + 107", pages = "iii + 108", pages = "iii + 112", pages = "iii + 115", pages = "iii + 116", pages = "iii + 12", pages = "iii + 125", pages = "iii + 13", pages = "iii + 130", pages = "iii + 132", pages = "iii + 134", pages = "iii + 14", pages = "iii + 15 + [17]", pages = "iii + 150 + [6]", pages = "iii + 16", pages = "iii + 160", pages = "iii + 171", pages = "iii + 177", pages = "iii + 18", pages = "iii + 180", pages = "iii + 181", pages = "iii + 183", pages = "iii + 19", pages = "iii + 199 + ix", pages = "iii + 20", pages = "iii + 21", pages = "iii + 23", pages = "iii + 24", pages = "iii + 25", pages = "iii + 257", pages = "iii + 26", pages = "iii + 268", pages = "iii + 29", pages = "iii + 30", pages = "iii + 305", pages = "iii + 31", pages = "iii + 314", pages = "iii + 32", pages = "iii + 33", pages = "iii + 34", pages = "iii + 343 + 25", pages = "iii + 343", pages = "iii + 35", pages = "iii + 36", pages = "iii + 39", pages = "iii + 41", pages = "iii + 42", pages = "iii + 425", pages = "iii + 43", pages = "iii + 443", pages = "iii + 45", pages = "iii + 46", pages = "iii + 47", pages = "iii + 49", pages = "iii + 5", pages = "iii + 50", pages = "iii + 51", pages = "iii + 52", pages = "iii + 55", pages = "iii + 57", pages = "iii + 58", pages = "iii + 59", pages = "iii + 6", pages = "iii + 60", pages = "iii + 61", pages = "iii + 62", pages = "iii + 63", pages = "iii + 64", pages = "iii + 65", pages = "iii + 70", pages = "iii + 72", pages = "iii + 75", pages = "iii + 77", pages = "iii + 81", pages = "iii + 82", pages = "iii + 83", pages = "iii + 84", pages = "iii + 89", pages = "iii + 9, A-85", pages = "iii + 90", pages = "iii + 93.", pages = "iii + 94", pages = "iii + 99", pages = "iii + [152]", pages = "iii + [93]", pages = "iii", pages = "iii, 1--56", pages = "iii, 212", pages = "iii--iii", pages = "iii--v", pages = "iii--x + 263", pages = "iv + 100", pages = "iv + 101", pages = "iv + 102", pages = "iv + 103", pages = "iv + 105", pages = "iv + 106", pages = "iv + 107", pages = "iv + 108", pages = "iv + 109", pages = "iv + 110", pages = "iv + 116", pages = "iv + 117", pages = "iv + 120", pages = "iv + 124", pages = "iv + 125", pages = "iv + 127", pages = "iv + 128", pages = "iv + 129", pages = "iv + 130", pages = "iv + 131", pages = "iv + 132", pages = "iv + 136", pages = "iv + 139", pages = "iv + 15", pages = "iv + 150", pages = "iv + 153", pages = "iv + 156", pages = "iv + 158", pages = "iv + 165", pages = "iv + 167", pages = "iv + 168", pages = "iv + 17 + [1]", pages = "iv + 17", pages = "iv + 171", pages = "iv + 173", pages = "iv + 174", pages = "iv + 178", pages = "iv + 188", pages = "iv + 19 + 11 + [66]", pages = "iv + 19", pages = "iv + 192", pages = "iv + 197", pages = "iv + 198", pages = "iv + 20 + 22 + 25", pages = "iv + 20", pages = "iv + 200", pages = "iv + 201", pages = "iv + 203", pages = "iv + 207", pages = "iv + 208", pages = "iv + 215", pages = "iv + 218", pages = "iv + 22", pages = "iv + 227", pages = "iv + 23 + [18]", pages = "iv + 230", pages = "iv + 24", pages = "iv + 246", pages = "iv + 25", pages = "iv + 252", pages = "iv + 255", pages = "iv + 269", pages = "iv + 270", pages = "iv + 28 + [1]", pages = "iv + 28", pages = "iv + 286", pages = "iv + 29", pages = "iv + 30", pages = "iv + 300", pages = "iv + 31", pages = "iv + 33", pages = "iv + 34", pages = "iv + 353", pages = "iv + 359", pages = "iv + 36", pages = "iv + 38", pages = "iv + 383", pages = "iv + 397", pages = "iv + 4 + 184", pages = "iv + 40", pages = "iv + 403", pages = "iv + 426", pages = "iv + 45", pages = "iv + 456", pages = "iv + 48", pages = "iv + 489", pages = "iv + 49", pages = "iv + 492", pages = "iv + 50", pages = "iv + 509", pages = "iv + 51", pages = "iv + 52", pages = "iv + 53", pages = "iv + 54", pages = "iv + 548", pages = "iv + 55", pages = "iv + 56", pages = "iv + 59", pages = "iv + 6 + 22 + 30", pages = "iv + 61", pages = "iv + 63", pages = "iv + 64", pages = "iv + 64.", pages = "iv + 65", pages = "iv + 67", pages = "iv + 68", pages = "iv + 7", pages = "iv + 70", pages = "iv + 73 [i.e. 165]", pages = "iv + 73", pages = "iv + 74", pages = "iv + 76", pages = "iv + 77 + [1]", pages = "iv + 77", pages = "iv + 79", pages = "iv + 79.", pages = "iv + 82", pages = "iv + 83", pages = "iv + 84", pages = "iv + 85", pages = "iv + 86", pages = "iv + 90", pages = "iv + 91", pages = "iv + 93", pages = "iv + 95", pages = "iv + 96", pages = "iv + 99", pages = "iv+86", pages = "iv, 1--88", pages = "iv, 101--126, 201--239, 301--380, 401--441", pages = "ix + 101", pages = "ix + 160 + [7] + [64]", pages = "ix + 168 l", pages = "ix + 171", pages = "ix + 187 + 3 appendices", pages = "ix + 194 + 68", pages = "ix + 663", pages = "ix + 664 + [53]", pages = "ix + 67", pages = "ix + 99", pages = "ix + [171]", pages = "ix + [234]", pages = "ix + iv + 429", pages = "ix", pages = "ix--xxi", pages = "l + 273", pages = "l v.", pages = "lvi + 1405", pages = "lviii + 1387", pages = "lviii + 1540", pages = "lviii + 2034", pages = "lxv + 644", pages = "lxxi + 719", pages = "lxxiv + 790", pages = "program files (IBM PC) on 1 computer disk manual.", pages = "s118-s138", pages = "s139--s154", pages = "s139-s154", pages = "s14-s26", pages = "s155--s165", pages = "s155-s165", pages = "s166--s202", pages = "s166-s202", pages = "s2--s13", pages = "s2-s13", pages = "s203-s219", pages = "s220--s226", pages = "s220-s226", pages = "s227--s287", pages = "s227-s287", pages = "s27-s42", pages = "s43-s58", pages = "s59-s72", pages = "s73-s95", pages = "s96-s117", pages = "to appear", pages = "to be published", pages = "v + 104", pages = "v + 105", pages = "v + 112", pages = "v + 1152 + [80] (doubled--up)", pages = "v + 117", pages = "v + 29", pages = "v + 308 + x", pages = "v + 491 + ii + 97 + ii + 107 + 12", pages = "v + 60 + 3", pages = "v + 60 + [19]", pages = "v + 60 + [23]", pages = "v + 60 + [24]", pages = "v + 60", pages = "v + 61 + 7", pages = "v + 81 + [34]", pages = "v + [285]", pages = "v + [338]", pages = "v", pages = "v, 1--51", pages = "v, 1--85", pages = "v--vi", pages = "v. <1--2 >", pages = "v.", pages = "various (??)", pages = "various", pages = "vi + 100", pages = "vi + 1152 + [79]", pages = "vi + 1152 columns", pages = "vi + 1232 + [75] (doubled--up)", pages = "vi + 1232 + [75]", pages = "vi + 136", pages = "vi + 136--341", pages = "vi + 228 + 1", pages = "vi + 448", pages = "vi + 45 + 1", pages = "vi + 50 + 10", pages = "vi + 53[1]", pages = "vi + 64.", pages = "vi + 65 + [2]", pages = "vi + 65", pages = "vi + 658", pages = "vi + 66 + [45] + [1]", pages = "vi + [124]", pages = "vi + [25]", pages = "vii + 1232 columns", pages = "vii + 2--154", pages = "vii + 217 + 16 [i.e. 17]", pages = "vii + 282 + [113]", pages = "vii + 357 + xvi", pages = "vii + 9 + [3] + 1", pages = "vii + 96", pages = "vii + 97 l", pages = "vii + I--59", pages = "vii + [100]", pages = "vii + [111]", pages = "vii + [192]", pages = "vii + [200]", pages = "vii + [various]", pages = "vii", pages = "vii--??", pages = "viii + 100", pages = "viii + 12 + 794 + [173]", pages = "viii + 191 + [52]", pages = "viii + 216 + 43", pages = "viii + 216 + iii + 43", pages = "viii + 216", pages = "viii + 36 + 9", pages = "viii + 36", pages = "viii + 98", pages = "viii + [125]", pages = "viii + [181]", pages = "x + 100", pages = "x + 125.", pages = "x + 198 + 48 + 6", pages = "x + 48 + [25]", pages = "x + 492 (A1--A18 and B1--B14 and I1--I19)", pages = "x + 492 + A22 + B16 + I18", pages = "x + 492 + appendices", pages = "x + 92 + [1]", pages = "x + [241]", pages = "x+235", pages = "x+578", pages = "xi + 108", pages = "xi + 201 + 105", pages = "xi + 45 + 201 + 105", pages = "xi + 450", pages = "xi + 669", pages = "xi + 679 + 36 + 7", pages = "xi", pages = "xi--xii", pages = "xi--xvi", pages = "xii + 100", pages = "xii + 1084 + 12", pages = "xii + 152 + [91]", pages = "xii + 157 + [2]", pages = "xii + 162 + 97", pages = "xii + 377 + 23", pages = "xii + 384 + [55]", pages = "xii + 385", pages = "xii + 387", pages = "xii + 389 + 76 + 16", pages = "xii + 408 + [5]", pages = "xii + 460 + [6]", pages = "xii + 522 (or xii + 514??)", pages = "xii + 538 + 57", pages = "xii + 607 + A18 + B16 + I18", pages = "xii+241", pages = "xiii + 423 + 33 + 3", pages = "xiii + 457, with 230 illustrations", pages = "xiii + 464 + 10", pages = "xiii", pages = "xiii, 320", pages = "xiii, 555", pages = "xiv + 383 + 4", pages = "xiv + 432 + 8", pages = "xiv + 518 + 9", pages = "xix + 1041 + iv", pages = "xix + 310 (or xv + 377)", pages = "xix + 525 + 52 pages back matter", pages = "xv + 118 + listings", pages = "xv + 199 + 8", pages = "xv + 527 + 4", pages = "xv + 534 + 117 + [41]", pages = "xvi + 102 + 6", pages = "xvi + 404 + [68]", pages = "xvi + 570 + Appendix + Index", pages = "xvi + 595 (or xix + 861??)", pages = "xvi + 637 + 67 + 7", pages = "xvi + 984, with 686 illustrations, 40 in color", pages = "xvi + x + 390", pages = "xvii + 254 + 12", pages = "xviii + 568 + 92", pages = "xviii + [265]", pages = "xx + 1241 + 1", pages = "xx + 1269 + 5", pages = "xx + 525 [63]", pages = "xx + 793 ", pages = "xxi + 567 + [4]", pages = "xxi + 640 + [30]", pages = "xxi + 666 + 119", pages = "xxii + 416 + 6", pages = "xxiii + 491 + 509 + 502", pages = "xxiv + 648 + appendices", pages = "xxvi + 438 + A182 + B62 + C6 + D4 + E4", pages = "xxvi + 779 + Appendix + Index", pages = "xxvii + 797 + vii", pages = "xxvii", pages = "xxviii + 594 + appendices", pages = "xxviii + 638 + [169]", pages = "xxxvii + 23 + 2154", pages = {154--165}, pages = {1973--1986}, pages = {3--29}, pages = {360--361}, pages = {491-496}, pages = {937--940}, pages = " 24 -- 85", pages = " 356-372", pages = "", pages = "(1--29)-(1--58)", pages = "(1--59)-(1--113)", pages = "(to appear)", pages = "(various)", pages = "0-12-696201-4", pages = "1 + 22", pages = "1 -- 10", pages = "1 -- 11", pages = "1 -- 17", pages = "1 -- 22", pages = "1 -- 40", pages = "1 -- 6", pages = "1 -- 62", pages = "1 -- 7", pages = "1 -- 74, ", pages = "1 -- 8", pages = "1 card", pages = "1 cassette.", pages = "1 computer disk", pages = "1 microfiche", pages = "1 program file (IBM PC) on 2 computer disks manuals.", pages = "1 program file (IBM--PC) on 1 computer disk manual.", pages = "1 program file on 6 computer disks", pages = "1 reel + 5 min.", pages = "1 reel + 6 min.", pages = "1 reel + 7 min.", pages = "1 reel + 8 min.", pages = "1 reel + ca. 20 min.", pages = "1 roll. guide.", pages = "1 v", pages = "1 v. (various paging) 29 cm.", pages = "1 v. (various pagings)", pages = "1 v. disks (5 1/4 in.)", pages = "1 video cassette + 25 min. b and w.", pages = "1 videocassette (13 min.)", pages = "1 videocassette (32 min.)", pages = "1, 113", pages = "1, 141", pages = "1, 16", pages = "1, 17", pages = "1, 3--13, 16--19", pages = "1, 3--4, 6", pages = "1, 4, 13", pages = "1--10 (of xii + 323)", pages = "1--13 (of x + 787)", volume = "", volume = "(Fourth Series) 1", volume = "(to appear)", volume = "0", volume = "01", volume = "02", volume = "07", volume = "09", volume = "1 (1837--1853)", volume = "1", volume = "1(4)", volume = "1.2", volume = "1/1977", volume = "1/2", volume = "10", volume = "10, 11", volume = "10-11", volume = "100", volume = "109A", volume = "11 and 12", volume = "11, 4", volume = "11, 9", volume = "113-C", volume = "114/115", volume = "116A", volume = "11D", volume = "12 and 13", volume = "12, 1", volume = "12/13", volume = "122/3/4", volume = "1259-V", volume = "127A", volume = "12A", volume = "13, 14", volume = "13, 2", volume = "13, 4", volume = "134, No. 2", volume = "135B", volume = "14 (or 9?)", volume = "14--15", volume = "140B", volume = "148B", volume = "15 (1-2)", volume = "15, 2", volume = "15.1", volume = "15.3", volume = "152/153", volume = "154-156", volume = "161B", volume = "162--164", volume = "162-164", volume = "167B", volume = "16S", volume = "17, no. 3", volume = "18 Supl", volume = "18, 4", volume = "18/19", volume = "183, 292", volume = "185, 186", volume = "18\slash 19", volume = "19, 1", volume = "19, 3", volume = "19, No. 3", volume = "19. Jahrg.", volume = "19/20", volume = "197/198", volume = "1984/24", volume = "1S", volume = "2(4)", volume = "2. Anwendungen", volume = "2/85", volume = "20 (or 19??)", volume = "20 B", volume = "20, 23, 25", volume = "20/21", volume = "203, 204", volume = "208/209", volume = "21, 2", volume = "21, Supplement 6", volume = "212/213", volume = "217A", volume = "22 B", volume = "221 (or 213??)", volume = "23(9)", volume = "2304-16", volume = "239/240", volume = "24, 3", volume = "24, no. 9", volume = "249, 250", volume = "25 (or 26??)", volume = "254, 255", volume = "258, 259", volume = "26 (or 25??)", volume = "26, 2", volume = "26.4", volume = "26A", volume = "26B", volume = "27, no. 12", volume = "27S", volume = "298, Series III", volume = "299/300", volume = "2S", volume = "3, 2", volume = "3, 4", volume = "3--4", volume = "3. Algorithms and applications", volume = "3/1975", volume = "3/1979", volume = "3/4", volume = "30--31", volume = "307/308", volume = "32, no. 2", volume = "32-1", volume = "32-2", volume = "33,34", volume = "35-37", volume = "351, 352", volume = "36 (or 38??)", volume = "36, no. 12", volume = "365, 366", volume = "37??", volume = "37A", volume = "38A", volume = "39B", volume = "3M", volume = "3S", volume = "4 (No. 1)", volume = "4 (or 11??)", volume = "40, 41", volume = "40--41", volume = "40A", volume = "41, 4", volume = "41, pt. 1", volume = "41B", volume = "42A", volume = "44A", volume = "46--47", volume = "47.1 - 47.7", volume = "475A", volume = "47A", volume = "4M", volume = "5 (1976)", volume = "5 (??)", volume = "5, 1", volume = "5, Numerical Methods in Thermal Problems", volume = "50, Pt. 4", volume = "505, 506", volume = "52/53", volume = "54/55", volume = "551, 552", volume = "55B", volume = "56A", volume = "5S", volume = "6 (No. 3)", volume = "62--63", volume = "62A", volume = "63(4)", volume = "634-677", volume = "63:207", volume = "63A", volume = "6A", volume = "6B", volume = "6S", volume = "70, no. 6", volume = "71B", volume = "728-P", volume = "74b", volume = "76-3", volume = "78--257", volume = "78/9", volume = "79-1458", volume = "7A", volume = "7B", volume = "800, 801", volume = "81--1025", volume = "81--1027", volume = "81--1245", volume = "81-1028", volume = "81-1259", volume = "81/6", volume = "81A", volume = "82--0931", volume = "82--0976", volume = "82/1", volume = "83--0034", volume = "83--0124", volume = "83--1885", volume = "83--1896", volume = "83--1945", volume = "83-1893", volume = "83A", volume = "84-0093", volume = "85--0017", volume = "85--0295", volume = "85--1493--CP", volume = "85--1500", volume = "85--1523CP", volume = "85-0293", volume = "85-1508-CP", volume = "85A", volume = "86--1063", volume = "86--1081", volume = "86/87", volume = "87--0275", volume = "87--0353", volume = "87--0560", volume = "87--0602", volume = "87--1152 CP", volume = "87--2627--CP", volume = "88--0224", volume = "88--0715", volume = "88-1997 CP", volume = "88/89", volume = "89--0121", volume = "89--0274", volume = "89--0338", volume = "89--0548", volume = "89-1791", volume = "89-1949", volume = "89-1953", volume = "89/2", volume = "91--1572", volume = "91--1596", volume = "91-101", volume = "92--0449", volume = "93--0677", volume = "93-0236", volume = "93B", volume = "95/2", volume = "96A", volume = "99B", volume = "??", volume = "????", volume = "A 248", volume = "A 323", volume = "A", volume = "A(2)", volume = "A-12", volume = "A-2", volume = "A-48", volume = "A-52", volume = "A12", volume = "A128", volume = "A14", volume = "A15", volume = "A16", volume = "A20", volume = "A258", volume = "A298", volume = "A39", volume = "A405", volume = "A: Tutorials", volume = "AC-16", volume = "AC-22", volume = "AC-23", volume = "AC-24", volume = "AC-25", volume = "AC-26", volume = "AC-27", volume = "AC-28", volume = "AC-29", volume = "AC-30", volume = "AC-32", volume = "AC-33", volume = "AC-34", volume = "AC-35", volume = "AC-36", volume = "AC-37", volume = "AC-39", volume = "AC-??", volume = "AES 24", volume = "AES-11", volume = "AES-12", volume = "AES-22", volume = "AES-23", volume = "AES-5", volume = "AMD vo. 86", volume = "AP-24", volume = "AP-33", volume = "AP-34", volume = "ASSP-24", volume = "ASSP-27", volume = "ASSP-28", volume = "ASSP-29", volume = "ASSP-31", volume = "ASSP-32", volume = "ASSP-34", volume = "ASSP-35", volume = "ASSP-36", volume = "ASSP-37", volume = "Annual Conference Series, 1995", volume = "B", volume = "B-10", volume = "B1", volume = "B177", volume = "B207", volume = "B28", volume = "B288", volume = "B329", volume = "B354", volume = "B368", volume = "B374", volume = "B376", volume = "B380", volume = "B401", volume = "B7", volume = "B84", volume = "B: Formal Models and Semantics", volume = "C", volume = "C--22", volume = "C--35", volume = "C--36", volume = "C-17", volume = "C-18", volume = "C-19", volume = "C-20", volume = "C-22", volume = "C-23", volume = "C-24", volume = "C-25", volume = "C-26", volume = "C-27", volume = "C-28", volume = "C-29", volume = "C-30", volume = "C-31", volume = "C-32", volume = "C-33", volume = "C-34", volume = "C-35", volume = "C-36", volume = "C-37", volume = "C-39", volume = "C-40", volume = "C25", volume = "C26", volume = "CAD-1", volume = "CAD-4", volume = "CAS--28", volume = "CAS-26", volume = "CAS-34", volume = "CE-29", volume = "COM-30", volume = "COM-31", volume = "CP 3224", volume = "CXXIV", volume = "D", volume = "D40", volume = "E", volume = "E74", volume = "E75-A", volume = "E76--D", volume = "E77-A", volume = "EC-11", volume = "EC-13", volume = "EC-14", volume = "EC-8", volume = "ED--30, 9", volume = "ED-30", volume = "EWS-10", volume = "F51", volume = "F55", volume = "F70", volume = "FIPS 152", volume = "GE-22", volume = "H6", volume = "I 301", volume = "I", volume = "I, Architecture", volume = "I, Univariate Series", volume = "I: Finite Difference Methods---Solution of Equations", volume = "IEEE Computer Society Order Number 655", volume = "II --- Software", volume = "II", volume = "II, Multivariate Series, Prediction and Control", volume = "II, Software", volume = "II: Matrix Theory and Analysis", volume = "III", volume = "III, Algorithms \& Applications", volume = "III: Hearing Disorders", volume = "IT-17", volume = "IT-18", volume = "IT-31", volume = "IT-32", volume = "IV (XIII)", volume = "IV", volume = "IX", volume = "In press.", volume = "J67D", volume = "J68D", volume = "J76D-II", volume = "J77-A", volume = "LVI", volume = "LXVIII", volume = "LXX", volume = "Libraries", volume = "NS-30", volume = "New Series Number 53", volume = "PAMI--10(4)", volume = "PAMI-6", volume = "PAMI-9", volume = "PC-15", volume = "PC-16", volume = "PC-18", volume = "PC-20", volume = "PC-23", volume = "PC-24", volume = "PC-27", volume = "PC-29", volume = "PC-30", volume = "PC-32", volume = "Pt. E", volume = "R-29", volume = "R-32", volume = "R-34", volume = "RC 12794 (\#57573)", volume = "S-2", volume = "S10", volume = "S13", volume = "S7", volume = "S8", volume = "S9", volume = "SC-17", volume = "SC-19", volume = "SCD User document version 1.2", volume = "SE-10", volume = "SE-11", volume = "SE-12", volume = "SE-13", volume = "SE-16", volume = "SE-2", volume = "SE-3", volume = "SE-5", volume = "SE-7", volume = "SE-8", volume = "SE-9", volume = "SMC-14", volume = "SP-1128", volume = "SPE 7687", volume = "SPIE Vol. 1360", volume = "SPIE Vol. 2186", volume = "Ser. I, 295", volume = "Ser. I, 296", volume = "Ser. I, 298", volume = "Special issue A", volume = "Special issue B", volume = "Special issue D", volume = "Special issue E", volume = "Special issue", volume = "Suppl. 2", volume = "Suppl. XIII", volume = "Suppl.", volume = "TBD", volume = "To appear", volume = "UCP-19", volume = "UMINF", volume = "V", volume = "V, {Design of Computers, Theory of Automata}", volume = "VI", volume = "VII", volume = "VIII", volume = "Vol.2", volume = "Vol.81", volume = "Volume 91, Issue 16", volume = "X", volume = "XIV", volume = "XLI", volume = "XLVIII", volume = "XXI", volume = "XXIII", volume = "XXV", volume = "XXVIII", volume = "XXXV", volume = "c-21", volume = "n. 15", volume = "one", volume = "t. 306, S{\/e}rie I", volume = "t. 309, S{\/e}rie I", volume = "t. 315, Serie I", volume = "two", volume = "{19-20}", volume = "{ASSP-35}", volume = "{ASSP-37}", volume = "{Heft 2}", volume = "{II}/13", volume = "{I}", volume = "{Reihe VI, Band 30}", volume = "{\em 16}", volume = "{\noopsort{1986a}}A", year = " 1988", year = "", year = "(submitted)", year = "1190", year = "1785", year = "1837", year = "1840", year = "1841", year = "1846", year = "1850", year = "1851", year = "1854", year = "1859", year = "1869", year = "1870", year = "1873", year = "1874", year = "1881", year = "1884", year = "1890", year = "1894", year = "1896", year = "1897", year = "19", year = "19..(?)", year = "1901", year = "1902", year = "1904", year = "1908", year = "1909", year = "1911", year = "1914", year = "1916", year = "1917", year = "1918", year = "1922", year = "1923", year = "1924", year = "1925", year = "1927", year = "1929", year = "1930", year = "1931", year = "1932", year = "1933", year = "1934", year = "1935", year = "1936", year = "1937", year = "1938", year = "1939", year = "1940", year = "1941", year = "1942", year = "1943", year = "1944", year = "1945", year = "1946", year = "1947", year = "1948", year = "1949", year = "1949, 1951, 1969", year = "1949, 1951, 1970", year = "1950", year = "1951", year = "1952", year = "1953", year = "1954", year = "1955", year = "1956", year = "1957", year = "1958", year = "1959", year = "1960 (or 1969??)", year = "1960", year = "1961", year = "1961, 1962", year = "1962", year = "1963", year = "1964 (or 1967??)", year = "1964", year = "1965", year = "1966 (or 1960??)", year = "1966", year = "1967", year = "1967/1968", year = "1968 (??)", year = "1968", year = "1969 (??)", year = "1969 (vol. 2)", year = "1969", year = "1969, 1979", year = "1970 (??)", year = "1970 (or 1975??)", year = "1970 (or 1978??)", year = "1970 (or 1979??)", year = "1970", year = "1970--1971", year = "1970/71", year = "1971", year = "1971--1972", year = "1972", year = "1972--1973", year = "1972{\noopsort{a}}", year = "1972{\noopsort{b}}", year = "1973", year = "1973--1981", year = "1973\noopsort{a}", year = "1974", year = "1975 (??)", year = "1975", year = "1976", year = "1976, 1982, 1983", year = "1976/1977", year = "1977 and 1978", year = "1977", year = "1978", year = "1979", year = "1979, 1980", year = "1979/1980", year = "197x", year = "1980 (or 1984??)", year = "1980 (or 1987??)", year = "1980 (or 1988??)", year = "1980", year = "1981 (??)", year = "1981", year = "1981, 1983", year = "1981, 1984, 1989", year = "1982 (??)", year = "1982", year = "1983 (??)", year = "1983", year = "1984", year = "1984--1993", year = "1984-1993", year = "1984/85", year = "1985", year = "1985/86", year = "1985?", year = "1986 (??)", year = "1986 (summer)", year = "1986", year = "1986/87", year = "1987 (??)", year = "1987" # "\unskip--", year = "1987", year = "1987--date{}", year = "1987-88", year = "1987/88", year = "1988 (??)", year = "1988 (summer)", year = "1988" # "\unskip--", year = "1988", year = "1988--1989", year = "1988-89", year = "1988/1990", year = "1989" # "\unskip--", year = "1989", year = "1989--date{}", year = "1989--present", year = "198?", year = "198x", year = "1990", year = "1990, 12 Juni", year = "1990--1991", year = "1990/91", year = "1990?", year = "1991 (to appear)", year = "1991", year = "1991--2", year = "1991-2", year = "1991/1992", year = "1991/92", year = "1992 (??)", year = "1992", year = "1992-93", year = "1993", year = "1993?", year = "1994 (invited)", year = "1994", year = "1994--", year = "1994--1995", year = "1995 (??)", year = "1995 (in press)", year = "1995 (invited)", year = "1995 (to appear)", year = "1995", year = "1996", year = "1997", year = "1998", year = "199x", year = "19xx", year = "83", year = "??", year = "????", year = "In progress.", year = "March 20 -- 23, 1989", year = "Spring 1985", year = "TBD", year = "To appear", year = "To appear", year = "\noopsort{1996}", year = "in preparation", year = "in print", year = "in progress", year = "submitted", year = "{\noopsort{1968a}}1968", year = "{\noopsort{1968b}}1973", year = "{\noopsort{1968c}}1969", year = "{\noopsort{1972a}}1972", year = "{\noopsort{1972b}}1973", year = "{\noopsort{1985a}}1985", year = "{\noopsort{1985b}}1985", year = "{\noopsort{1986a}}1986", year = "{\noopsort{1986b}}1986", year = "{\noopsort{1986c}}1986", year = "{\noopsort{1986d}}1986", year = "{\noopsort{1986e}}1986", year = "{\noopsort{1992a}}1992", year = "{\noopsort{1992b}}1992", year = "{\noopsort{1992c}}1992", year = "{\noopsort{1992d}}1992", year = "{\noopsort{a}}1978", year = "{\noopsort{a}}1987", year = "{\noopsort{a}}1988", year = "{\noopsort{a}}1990", year = "{\noopsort{a}}1991", year = "{\noopsort{b}}1978", year = "{\noopsort{b}}1987", year = "{\noopsort{b}}1988", year = "{\noopsort{b}}1990", year = "{\noopsort{b}}1991", bibclean-3.07/yesorno.h0000644000156700015670000000044607721506230013761 0ustar beebebeebe#ifndef YESORNO_H_DEFINED_ #define YESORNO_H_DEFINED_ #if defined(HAVE_STDC) typedef enum { NO = 0, YES = 1 } YESorNO; #else /* K&R style */ #define NO 0 /* must be FALSE (zero) */ #define YES 1 /* must be TRUE (non-zero) */ typedef int YESorNO; #endif #endif /* YESORNO_H_DEFINED_ */ bibclean-3.07/xpwd.h0000644000156700015670000000017706027724000013241 0ustar beebebeebe#ifndef XPWD_H_DEFINED_ #define XPWD_H_DEFINED_ #ifdef HAVE_PWD_H #include #else #endif #endif /* XPWD_H_DEFINED_ */ bibclean-3.07/strtol.c0000644000156700015670000001136607721523113013607 0ustar beebebeebe/* -*-C-*- strtol.c */ /*-->strtol*/ /**********************************************************************/ /****************************** strtol ********************************/ /**********************************************************************/ #include #include "xctype.h" #include "xstdbool.h" #include "xstring.h" #include "xstdlib.h" RCSID("$Id: strtol.c,v 1.3 2003/08/22 23:24:55 beebe Exp beebe $") #define IN(l,a,r) (((l) <= (a)) && ((a) <= (r))) /* This is a simple implementation of Standard C strtol(). A library version should be programmed with more care. */ long #if defined(HAVE_STDC) strtol( const char *nptr, /*@null@*/ char** endptr, int base ) #else /* NOT defined(HAVE_STDC) */ strtol(nptr,endptr,base) const char *nptr; /*@null@*/ char** endptr; int base; #endif /* defined(HAVE_STDC) */ { int c; /* current character value */ int digit; /* digit value */ /*@observer@*/ static const char *digits = "0123456789abcdefghijklmnopqrstuvxwyz"; bool is_negative; /* false for positive, true for negative */ long number; /* the accumulating number */ const char *pos; /* pointer into digit list */ const char *q; /* pointer past end of digits */ if (!(IN(2,base,36) || (base == 0) || (nptr != (const char*)NULL))) { if (endptr != (char**)NULL) *endptr = (char*)nptr; return (0L); } while (Isspace((int)*nptr)) nptr++; /* ignore leading whitespace */ switch (*nptr) /* set number sign */ { case '-': is_negative = true; nptr++; break; case '+': is_negative = false; nptr++; break; default: is_negative = false; break; } q = nptr; if (base == 0) /* variable base; set by lookahead */ { if (*q == '0') base = ((*(q+1) == 'x') || (*(q+1) == 'X')) ? 16 : 8; else base = 10; } /* eliminate optional "0x" or "0X" prefix */ if ( (base == 16) && (*q == '0') && ((*(q+1) == 'x') || (*(q+1) == 'X')) ) q += 2; number = 0L; /* Number conversion is done by shifting rather than multiplication when the base is a power of 2, in order that the results not be impacted by integer overflow. */ switch (base) { case 2: while (IN('0',*q,'1')) { number <<= 1; number |= *q - '0'; q++; } break; case 4: while (IN('0',*q,'3')) { number <<= 2; number |= *q - '0'; q++; } break; case 8: while (IN('0',*q,'7')) { number <<= 3; number |= *q - '0'; q++; } break; case 16: for (;;) { if (*q == '\0') break; c = (int)(unsigned)*q; if (Isupper(c)) c = tolower(c); pos = strchr(digits,c); if (pos == (char*)NULL) break; digit = (int)(pos - digits); if (!IN(0,digit,15)) break; number <<= 4; number |= digit; q++; } break; case 32: for (;;) { if (*q == '\0') break; c = (int)(unsigned)*q; if (Isupper(c)) c = tolower(c); pos = strchr(digits,c); if (pos == (char*)NULL) break; digit = (int)(pos - digits); if (!IN(0,digit,31)) break; number <<= 5; number |= digit; q++; } break; default: /* all other bases done by multiplication */ for (;;) /* accumulate negative so most negative */ { /* number on two's-complement is handled */ if (*q == '\0') break; c = (int)(unsigned)*q; if (Isupper(c)) c = tolower(c); pos = strchr(digits,c); if (pos == (char*)NULL) break; digit = (int)(pos - digits); if (!IN(0,digit,base-1)) break; number *= base; number -= digit; q++; } if (endptr != (char**)NULL) *endptr = (char*)q; if (is_negative) return(number); number = -number; break; } if (is_negative) number = -number; if (endptr != (char**)NULL) *endptr = (char*)q; return (number); } #ifdef TEST /*********************************************************************** Simple test program for strtol(). Values are read from stdin, and the results in different bases are echoed to stdout. ***********************************************************************/ #ifndef EXIT_SUCCESS #define EXIT_SUCCESS 0 #endif /* EXIT_SUCCESS */ int #if defined(HAVE_STDC) main( int argc, char *argv[] ) #else /* NOT defined(HAVE_STDC) */ main(argc,argv) int argc; char *argv[]; #endif /* defined(HAVE_STDC) */ { char s[25]; char *endptr; long n; int k; static int base[] = { 0, 2, 4, 8, 10, 16, 32, 36, 5, }; while (gets(s) != (char*)NULL) { for (k = 0; k < sizeof(base)/sizeof(base[0]); ++k) { n = strtol(s,&endptr,base[k]); (void)printf( "strtol(,,%d): %s -> 16#%lx 8#%lo 10#%ld Rem = [%s]\n", base[k],s,n,n,n,endptr); } } exit (EXIT_SUCCESS); return (0); } #endif /* TEST */ bibclean-3.07/bibclean.txt0000664000156700015670000021574614167071264014435 0ustar beebebeebeBIBCLEAN(1) General Commands Manual BIBCLEAN(1) 1mNAME0m bibclean - prettyprint and syntax check BibTeX and Scribe bibliography data base files 1mSYNOPSIS0m 1mbibclean 22m[ 1m-author 22m] [ 1m-copyleft 22m] [ 1m-copyright 22m] [ 1m-error-log 4m22mfilename24m ] [ 1m-help 22m] [ 1m'-?' 22m] [ 1m-init-file 4m22mfilename24m ] [ 1m-ISBN-file 4m22mfilename24m ] [ 1m-keyword-file 4m22mfilename24m ] [ 1m-max-width 4m22mnnn24m ] [ 1m-[no-]align-equals 22m] [ 1m-[no-]brace-protect 22m] [ 1m-[no-]check-values 22m] [ 1m-[no-]debug-match-failures 22m] [ 1m-[no-]delete-empty-values 22m] [ 1m-[no-]file-position 22m] [ 1m-[no-]fix-accents 22m] [ 1m-[no-]fix-braces 22m] [ 1m-[no-]fix-degrees 22m] [ 1m-[no-]fix-font-changes 22m] [ 1m-[no-]fix-initials 22m] [ 1m-[no-]fix-math 22m] [ 1m-[no-]fix-names 22m] [ 1m-[no-]German-style 22m] [ 1m-[no-]keep-linebreaks 22m] [ 1m-[no-]keep-parbreaks 22m] [ 1m-[no-]keep-preamble-spaces 22m] [ 1m-[no-]keep-spaces 22m] [ 1m-[no-]keep-string-spaces 22m] [ 1m-[no-]parbreaks 22m] [ 1m-[no-]prettyprint 22m] [ 1m-[no-]print-ISBN-table 22m] [ 1m-[no-]print-keyword-table 22m] [ 1m-[no-]print-patterns 22m] [ 1m-[no-]quiet 22m] [ 1m-[no-]read-init-files 22m] [ 1m-[no-]remove-OPT-prefixes 22m] [ 1m-[no-]scribe 22m] [ 1m-[no-]trace-file-opening 22m] [ 1m-[no-]warnings 22m] [ 1m-output-file 4m22mfilename24m ] [ 1m-version 22m] 4moutfile0m All options can be abbreviated to a unique leading prefix. An explicit file name of ``-'' represents standard input; it is assumed if no input files are specified. On VAX VMS and IBM PC DOS, the leading ``-'' on option names may be re- placed by a slash, ``/''; however, the ``-'' option prefix is always recognized. 1mDESCRIPTION0m 1mbibclean 22mprettyprints input BibTeX files to 4mstdout24m, or to a user-speci- fied file, and checks the brace balance and bibliography entry syntax as well. It can be used to detect problems in BibTeX files that some- times confuse even BibTeX itself, and importantly, can be used to nor- malize the appearance of collections of BibTeX files. Here is a summary of the formatting actions: o BibTeX items are formatted into a consistent structure with one 4mfield24m 4m=24m 4m"value"24m pair per line, and the initial @ and trailing right brace in column 1. o Tabs are expanded into blank strings; their use is discouraged be- cause they inhibit portability, and can suffer corruption in elec- tronic mail. o Long string values are split at a blank and continued onto the next line with leading indentation. o A single blank line separates adjacent bibliography entries. o Text outside BibTeX entries is passed through verbatim. o Outer parentheses around entries are converted to braces. o Personal names in 4mauthor24m and 4meditor24m field values are normalized to the form ``P. D. Q. Bach'', from ``P.D.Q. Bach'' and ``Bach, P.D.Q.''. o Hyphen sequences in page numbers are converted to en-dashes. o Month values are converted to standard BibTeX string abbreviations. o In titles, sequences of upper-case characters at brace level zero are braced to protect them from being converted to lower-case let- ters by some bibliography styles. o CODEN, ISBN (International Standard Book Number) and ISSN (Interna- tional Standard Serial Number) entry values are examined to verify the checksums of each listed number, and correct ISBN hyphenation is automatically supplied. The standardized format of the output of 1mbibclean 22mfacilitates the later application of simple filters, such as 1mbibcheck22m(1), 1mbibdup22m(1), 1mbibex-0m 1mtract22m(1), 1mbibindex22m(1), 1mbibjoin22m(1), 1mbiblabel22m(1), 1mbiblook22m(1), 1mbibor-0m 1mder22m(1), 1mbibsort22m(1), 1mcitefind22m(1), and 1mcitetags22m(1), to process the text, and also is the one expected by the GNU Emacs BibTeX support functions. 1mOPTIONS0m Command-line switches may be abbreviated to a unique leading prefix, and letter case is 4mnot24m significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag to 4mno24m. For such op- tions, the last setting determines the flag value used. That is sig- nificant when options are also specified in initialization files (see the 1mINITIALIZATION FILES 22mmanual section). The leading hyphen that distinguishes an option from a filename may be doubled, for compatibility with GNU and POSIX conventions. Thus, 1m-au-0m 1mthor 22mand 1m--author 22mare equivalent. To avoid confusion with options, if a filename begins with a hyphen, it must be disguised by a leading absolute or relative directory path, e.g., 4m/tmp/-foo.bib24m or 4m./-foo.bib24m. 1m-author 22mDisplay an author credit on the standard error unit, 4mstderr24m, and then terminate with a success return code. Sometimes an exe- cutable program is separated from its docu- mentation and source code; this option pro- vides a way to recover from that. 1m-copyleft 22mDisplay copyright information on the stan- dard error unit, 4mstderr24m, and then terminate with a success return code. 1m-copyright 22mDisplay copyright information on the stan- dard error unit, 4mstderr24m, and then terminate with a success return code. 1m-error-log 4m22mfilename24m Redirect 4mstderr24m to the indicated file, which then contains all of the error and warning messages. This option is provided for those systems that have difficulty redirecting 4mstderr24m. 1m-help 22mor 1m-? 22mDisplay a help message on 4mstderr24m, giving a usage description, similar to this section of the manual pages, and then terminate with a success return code. 1m-ISBN-file 4m22mfilename24m Provide an explicit ISBN-range initializa- tion file. It is processed 4mafter24m any sys- tem-wide and job-wide ISBN initialization files found on the 1mPATH 22m(for VAX VMS, 1mSYS$SYSTEM22m) and 1mBIBINPUTS 22msearch paths, re- spectively, and may override them. The ISBN initialization file name can be changed at compile time, or at run time through a setting of the environment vari- able 1mBIBCLEANISBN22m, but defaults to 4m.bib-0m 4mclean.isbn24m on UNIX, and 4mbibclean.isb24m else- where. For further details, see the 1mISBN0m 1mINITIALIZATION FILES 22mmanual section. 1m-init-file 4m22mfilename24m Provide an explicit value pattern initial- ization file. It is processed 4mafter24m any system-wide and job-wide initialization files found on the 1mPATH 22m(for VAX VMS, 1mSYS$SYSTEM22m) and 1mBIBINPUTS 22msearch paths, re- spectively, and may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a set- ting of the environment variable 1mBIB-0m 1mCLEANINI22m, but defaults to 4m.bibcleanrc24m on UNIX, and to 4mbibclean.ini24m elsewhere. For further details, see the 1mINITIALIZATION0m 1mFILES 22mmanual section. 1m-keyword-file 4m22mfilename24m Provide an explicit keyword initialization file. It is processed 4mafter24m any system- wide and job-wide keyword initialization files found on the 1mPATH 22m(for VAX VMS, 1mSYS$SYSTEM22m) and 1mBIBINPUTS 22msearch paths, re- spectively, and may override them. The keyword initialization file name can be changed at compile time, or at run time through a setting of the environment vari- able 1mBIBCLEANKEY22m, but defaults to 4m.bib-0m 4mclean.key24m on UNIX, and 4mbibclean.key24m else- where. For further details, see the 1mKEY-0m 1mWORD INITIALIZATION FILES 22mmanual section. 1m-max-width 4m22mnnn24m 1mbibclean 22mnormally limits output line widths to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special-purpose ap- plications may require different maximum line widths, so this option provides that capability. The number following the op- tion name can be specified in decimal, oc- tal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is interpreted to mean unlimited, so 1m-max-width 4m22m024m can be used to ensure that each field/value pair appears on a single line. When 1m-no-prettyprint 22mrequests 1mbibclean 22mto act as a lexical analyzer, the default line width is unlimited, unless overridden by this option. When 1mbibclean 22mis prettyprinting, line wrap- ping is done only at a space. Consequently, a long non-blank character sequence may re- sult in the output exceeding the requested line width. When 1mbibclean 22mis lexing, line wrapping is done by inserting a backslash-newline pair when the specified maximum is reached, so no line length ever exceeds the maximum. 1m-[no-]align-equals 22mWith the positive form, align the equals sign in key/value assignments at the same column, separated by a single space from the value string. Otherwise, the equals sign follows the key, separated by a single space. Default: 4mno24m. 1m-[no-]brace-protect 22mProtect uppercase and mixedcase words at brace-level zero with braces to prevent downcasing by some BibTeX styles. Default: 4myes24m. 1m-[no-]check-values 22mWith the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g., ``4myear24m 4m=0m 4m"192"24m'' instead of ``4myear24m 4m=24m 4m"1992"24m''), and issue warnings when unexpected patterns are found. That checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can dis- able it with the negative form of this op- tion. Default: 4myes24m. 1m-[no-]debug-match-failures 22mWith the positive form, print out a warning when a value pattern fails to match a value string. That is helpful in debugging new patterns, but because the output can be voluminous, you should use this option only with small test files, and initialization files that eliminate all patterns apart from the ones that you are testing. Default: 4mno24m. 1m-[no-]delete-empty-values 22mWith the positive form, remove all field/value pairs for which the value is an empty string. That is helpful in cleaning up bibliographies generated from text edi- tor templates. Compare this option with 1m-[no-]remove-OPT-prefixes 22mdescribed below. Default: 4mno24m. 1m-[no-]file-position 22mWith the positive form, give detailed file position information in warning and error messages. Default: 4mno24m. 1m-[no-]fix-accents 22mWith the positive form, normalize TeX ac- cents in annotes, authors, booktitles, edi- tors, notes, remarks, and titles. Default: 4mno24m. 1m-[no-]fix-braces 22mWith the positive form, normalize bracing in annotes, authors, booktitles, editors, notes, remarks, and titles, by removing un- necessary levels of braces. Default: 4mno24m. 1m-[no-]fix-degrees 22mWith the positive form, remove spaces in author/editor fields inside braces after letter-ending periods. That makes reduc- tions from 4mJ.24m 4mJ.24m 4m{Thomson,24m 4mM.24m 4mA.,24m 4mF.24m 4mR.0m 4mS.}24m, 4mFrederick24m 4m{Soddy,24m 4mB.24m 4mA.24m 4m(Oxon.)}24m, and 4mJohn24m 4mA.24m 4m{Cable,24m 4mM.24m 4mA.,24m 4mM.24m 4mEd.,24m 4mDipl.0m 4mDeutsch24m 4m(Marburg),24m 4mA.24m 4mL.24m 4mC.24m 4mM.}24m to 1mJ. J.0m 1m{Thomson, M.A., F.R.S.}22m, 1mFrederick {Soddy,0m 1mB.A. (Oxon.)}22m, and 1mJohn A. {Cable, M.A.,0m 1mM.Ed., Dipl.Deutsch (Marburg), A.L.C.M.}22m, respectively. In journals in the humanities and history of science, as well as in some scientific journals until well into the 20th Century, academic, honorary, and professional titles and degrees are commonly attached to per- sonal names. Even though modern publishing practice avoids such decorations, for accu- racy, bibliography entries should prefer- ably retain them. Journal typographical practice generally follows the reductions described here. 1m-[no-]fix-font-changes 22mWith the positive form, supply an addi- tional brace level around font changes in titles to protect against downcasing by some BibTeX styles. Font changes that al- ready have more than one level of braces are not modified. For example, if a title contains the Latin phrase 4m{\em24m 4mDictyostelium24m 4mdiscoideum}24m or 4m{\em24m 4m{D}ictyostelium24m 4mdiscoideum}24m, then downcasing incorrectly converts the phrase to lower-case letters. Most BibTeX users are surprised that bracing the initial let- ters does not prevent the downcase action. The correct coding is 4m{{\em24m 4mDictyostelium0m 4mdiscoideum}}24m. However, there are also le- gitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, 1mbibclean 22mnormally does 4mnot0m supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this op- tion to supply them. If you think that you need this option, it is 4mstrongly24m recommended that you apply 1mbib-0m 1mclean 22mto your bibliography file with and without 1m-fix-font-changes22m, then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You must decide which of the two output files is the better choice, then repair the incorrect title bracing by hand. Because font changes in titles are uncom- mon, except for cases of the type that this option is designed to correct, it should do more good than harm. Default: 4mno24m. 1m-[no-]fix-initials 22mWith the positive form, insert a space af- ter a period following author initials. Default: 4myes24m. 1m-[no-]fix-math 22mWith the positive form, improve readability of math mode in titles by inserting spaces around operators, deleting other unneces- sary space, and removing braces around sin- gle-character subscripts and superscripts. Default: 4mno24m. 1m-[no-]fix-names 22mWith the positive form, reorder 4mauthor24m and 4meditor24m name lists to remove commas at brace level zero, placing first names or initials before last names. Default: 4myes24m. 1m-[no-]German-style 22mWith the positive form, interpret quote characters ["] inside 4mbraced24m value strings at brace level 1 according to the conven- tions of the TeX style file 4mgerman.sty24m, which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, in- visible hyphens, raised/lowered quotes, French guillemets, and discretionary hy- phens. Recognized character combinations are braced to prevent BibTeX from inter- preting the quote as a string delimiter. Quoted strings receive no special handling from this option, and because German nouns in titles must anyway be protected from the downcasing operation of most BibTeX bibli- ography styles, German value strings that use the overloaded quote character can al- ways be entered in the form "{...}", with- out the need to specify this option at all. Default: 4mno24m. 1m-[no-]keep-linebreaks 22mNormally, line breaks inside value strings are collapsed into a single space, so that long value strings can later be broken to provide lines of reasonable length. With the positive form, linebreaks are pre- served in value strings. If 1m-max-width 22mis set to zero, this preserves the original line breaks. Spacing 4moutside24m value strings remains under 1mbibclean22m's control, and is not affected by this option. Default: 4mno24m. 1m-[no-]keep-parbreaks 22mWith the positive form, preserve paragraph breaks (either formfeeds, or lines contain- ing only spaces) in value strings. Nor- mally, paragraph breaks are collapsed into a single space. Spacing 4moutside24m value strings remains under 1mbibclean22m's control, and is not affected by this option. De- fault: 4mno24m. 1m-[no-]keep-preamble-spaces 22mWith the positive form, preserve all white- space in @Preamble{...} entries. Default: 4mno24m. 1m-[no-]keep-spaces 22mWith the positive form, preserve all spaces in value strings. Normally, multiple spa- ces are collapsed into a single space. This option can be used together with 1m-keep-linebreaks22m, 1m-keep-parbreaks22m, and 1m-max-width 4m22m024m to preserve the form of value strings while still providing syntax and value checking. Spacing 4moutside24m value strings remains under 1mbibclean22m's control, and is not affected by this option. De- fault: 4mno24m. 1m-[no-]keep-string-spaces 22mWith the positive form, preserve all white- space in @String{...} entries. Default: 4mno24m. 1m-[no-]parbreaks 22mWith the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field/value pairs. That may be useful to quickly trap runaway strings arising from mismatched delimiters. Default: 4myes24m. 1m-[no-]prettyprint 22mNormally, 1mbibclean 22mfunctions as a pretty- printer. However, with the negative form of this option, it acts as a lexical ana- lyzer instead, producing a stream of lexi- cal tokens. See the 1mLEXICAL ANALYSIS 22mman- ual section for further details. Default: 4myes24m. 1m-[no-]print-ISBN-table 22mWith the positive form, print the ISBN- range table on 4mstderr24m, then terminate with a success return code. That action is taken after all command-line options are processed, and before any input files are read (other than those that are values of command-line options). The format of the output ISBN-range table is acceptable for input as an ISBN initial- ization file (see the 1mISBN INITIALIZATION0m 1mFILES 22mmanual section). Default: 4mno24m. 1m-[no-]print-keyword-table 22mWith the positive form, print the keyword initialization table on 4mstderr24m, then termi- nate with a success return code. That action is taken after all command-line options are processed, and before any input files are read (other than those that are values of command-line options). The format of the output table is accept- able for input as a keyword initialization file (see the 1mKEYWORD INITIALIZATION FILES0m manual section). Default: 4mno24m. 1m-[no-]print-patterns 22mWith the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used. When 1mbibclean 22mis compiled with native pat- tern-matching code (the default), those patterns are the ones that are used in checking value strings for valid syntax, and all of them are specified in initial- ization files, rather than hard-coded into the program. For further details, see the 1mINITIALIZATION FILES 22mmanual section. De- fault: 4mno24m. 1m-[no-]quiet 22mThis option is the opposite of 1m-[no-]warn-0m 1ming22m; it exists for user convenience, and for compatibility with other programs that use 1m-q 22mfor quiet operation, without warn- ing messages. 1m-[no-]read-init-files 22mWith the negative form, suppress loading of system-, user-, and file-specific initial- ization files. Initializations then come 4monly24m from those files explicitly given by 1m-init-file 4m22mfilename24m options. Default: 4myes24m. 1m-[no-]remove-OPT-prefixes 22mWith the positive form, remove the ``OPT'' prefix from each field name where the cor- responding value is 4mnot24m an empty string. The prefix ``OPT'' must be entirely in up- per-case to be recognized. This option is for bibliographies generated with the help of the GNU Emacs BibTeX edit- ing support, which generates templates with optional fields identified by the ``OPT'' prefix. Although the function 4mM-x24m 4mbibtex-0m 4mremove-OPT24m normally bound to the keystrokes 4mC-c24m 4mC-o24m does the job, users often forget, with the result that BibTeX does not recog- nize the field name, and ignores the value string. Compare this option with 1m-[no-]delete-empty-values 22mdescribed above. Default: 4mno24m. 1m-[no-]scribe 22mWith the positive form, accept input syntax conforming to the Scribe document system. The output is converted to conform to Bib- TeX syntax. See the 1mSCRIBE BIBLIOGRAPHY0m 1mFORMAT 22mmanual section for further details. Default: 4mno24m. 1m-[no-]trace-file-opening 22mWith the positive form, record in the error log file the names of all files that 1mbib-0m 1mclean 22mattempts to open. Use this option to identify where initialization files are lo- cated. Default: 4mno24m. 1m-[no-]warnings 22mWith the positive form, allow all warning messages. The negative form is 4mnot24m recom- mended because it may mask problems that should be repaired. Default: 4myes24m. 1m-output-file 4m22mfilename24m Supply an alternate output file to replace 4mstdout24m. If the filename cannot be opened for output, execution terminates immedi- ately with a nonzero exit code. 1m-version 22mDisplay the program version number on 4mstderr24m, and then terminate with a success return code. That includes an indication of who compiled the program, the host name on which it was compiled, the time of com- pilation, and the type of string-value matching code selected, when that informa- tion is available to the compiler. 1mERROR RECOVERY AND WARNINGS0m When 1mbibclean 22mdetects an error, it issues an error message to both 4mstderr24m and 4mstdout24m. That way, the user is clearly notified, and the output bibliography also contains the message at the point of error. Error messages begin with a distinctive pair of queries, ??, beginning in column 1, followed by the input file name and line number. If the 1m-file-position 22moption was specified, they also contain the input and output positions of the current file, entry, and value. Each position includes the file byte number, the line number, and the column number. In the event of a runaway string argument, the entry and value posi- tions should precisely pinpoint the erroneous bibliography entry, and the file positions indicate where it was detected, which may be rather later in the files. Warning messages identify possible problems, and are therefore sent only to 4mstderr24m, and not to 4mstdout24m, so they never appear in the output file. They are identified by a distinctive pair of percents, %%, be- ginning in column 1, and as with error messages, may be followed by file position messages if the 1m-file-position 22moption was specified. For convenience, the first line of each error and warning message sent to 4mstderr24m is formatted according to the expectations of the GNU Emacs 4mnext-error24m command. You can invoke 1mbibclean 22mwith the Emacs 4mM-x24m 4mcom-0m 4mpilebibclean24m 4mfilename.bib24m 4m>filename.new24m command, then use the 4mnext-error24m command, normally bound to 4mC-x24m 4m`24m (that's a grave, or back, accent), to move to the location of the error in the input file. If error messages are ignored, and left in the output bibliography file, they precipitates an error when the bibliography is next pro- cessed with BibTeX. After issuing an error message, 1mbibclean 22mthen resynchronizes its input by copying it verbatim to 4mstdout24m until a new bibliography entry is rec- ognized on a line in which the first non-blank character is an at-sign (@). That ensures that nothing is lost from the input file(s), allow- ing corrections to be made in either the input or the output files. However, if 1mbibclean 22mdetects an internal error in its data structures, it terminates abruptly without further input or output processing; that kind of error should never happen, and if it does, it should be re- ported immediately to the author of the program. Errors in initializa- tion files, and running out of dynamic memory, also immediately termi- nate 1mbibclean22m. 1mSEARCH PATHS0m Versions of 1mbibclean 22mbefore 3.00 found some of their initialization files in the same directory as the executable program. That design choice means that those files can be copied anywhere in the file sys- tem, and still be found at run time. Some software distributions, how- ever, prefer to follow the model where initialization and other related files are instead stored in a directory whose name is related to that of the executable by a conventional difference in filepath. For exam- ple, a program might be installed in 4m/opt/bin24m and its associated files in 4m/opt/share/lib/PROGRAMNAME/24m or 4m/opt/share/lib/PROGRAMNAME/PRO-0m 4mGRAMVERSION/24m. The second form is preferable, because it permits multi- ple versions of the same program to be installed, as long as the exe- cutable program names carry a version suffix. Thus, a site might have installed programs named 4mbibclean-1.0024m, 4mbibclean-2.0024m, 4mbibclean-2.1524m, and 4mbibclean-3.0024m, with the versionless name 4mbibclean24m being a symbolic link to whichever version is the desired local default. With most software packages, the absolute path to the directory con- taining associated files is compiled into the program, making it impos- sible to change the installation locations after the program has been built from source code. Some packages, however, instead use the location of the executable pro- gram to find files by relative path at runtime. In the above example, the program would determine its filesystem location at runtime, say 4m/opt/bin24m, then find its associated files relative to that location in 4m../share/lib/PROGRAMNAME/PROGRAMVERSION/24m. From version 3.00, 4mbibclean24m uses that second approach, with an associ- ated directory like 4m../share/lib/bibclean/3.0024m. That allows an instal- lation directory tree to be distributed to other systems and unbundled 4manywhere24m in the file system, as long as the relative paths are not changed. 4mbibclean24m tests whether its compiled-in library path is a di- rectory on the local system, and if so, uses it. Otherwise, it re- places that path by a reconstructed one based on the location of the executable program. If the reconstructed path for the library direc- tory does not exist, it uses a warning. In either case, it continues normally. With the old approach, initialization files on Unix systems were named with a leading period, making them `hidden' files for the 4mls24m command. With the new practice, initialization files are no longer named as hid- den files. 1mINITIALIZATION FILES0m 1mbibclean 22mcan be compiled with one of three different types of pattern matching; the choice is made by the installer at compile time: o The original version uses explicit hand-coded tests of value- string syntax. o The second version uses regular-expression pattern-matching host library routines together with regular-expression pat- terns that come entirely from initialization files. o The third version uses special patterns that come entirely from initialization files. The second and third versions are the ones of most interest here, be- cause they allow the user to control what values are considered accept- able. However, command-line options can also be specified in initial- ization files, no matter which pattern matching choice was selected. When 1mbibclean 22mstarts, it searches for initialization files, finding the first one in the system executable program search path (on UNIX and IBM PC DOS, 1mPATH22m) and the first one in the 1mBIBINPUTS 22msearch path, and pro- cesses them in turn. Then, when command-line arguments are processed, any additional files specified by 1m-init-file 4m22mfilename24m options are also processed. Finally, immediately before each 4mnamed24m bibliography file is processed, an attempt is made to process an initialization file with the same name, but with the extension changed to 4m.ini24m. The default ex- tension can be changed by a setting of the environment variable 1mBIB-0m 1mCLEANEXT22m. That scheme permits system-wide, user-wide, session-wide, and file-specific initialization files to be supported. When input is taken from 4mstdin24m, there is no file-specific initializa- tion. For precise control, the 1m-no-read-init-files 22moption suppresses all ini- tialization files except those explicitly named by 1m-init-file 4m22mfilename0m options, either on the command line, or in requested initialization files. Recursive execution of initialization files with nested 1m-init-file 22mop- tions is permitted; if the recursion is circular, 1mbibclean 22mfinally gets a non-fatal initialization file open failure after opening too many files. That terminates further initialization file processing. As the recursion unwinds, the files are all closed, then execution proceeds normally. An initialization file may contain empty lines, comments from percent to end of line (just like TeX), option switches, and field/pattern or field/pattern/message assignments. Leading and trailing spaces are ig- nored. That is best illustrated by a short example: % This is a small bibclean initialization file -init-file /u/math/bib/.bibcleanrc %% departmental patterns chapter = "\"D\"" %% 23 pages = "\"D--D\"" %% 23--27 volume = "\"D \\an\\d D\"" %% 11 and 12 year = \ "\"dddd, dddd, dddd\"" \ "Multiple years specified." %% 1989, 1990, 1991 -no-fix-names %% do not modify author/editor lists Long logical lines can be split into multiple physical lines by break- ing at a backslash-newline pair; the backslash-newline pair is dis- carded. That processing happens while characters are being read, be- fore any further interpretation of the input stream. Each logical line must contain a complete option (and its value, if any), or a complete field/pattern pair, or a field/pattern/message triple. Comments are stripped during the parsing of the field, pattern, and message values. The comment start symbol is not recognized inside quoted strings, so it can be freely used in such strings. Comments on logical lines that were input as multiple physical lines via the backslash-newline convention must appear on the 4mlast24m physical line; otherwise, the remaining physical lines become part of the com- ment. Pattern strings must be enclosed in quotation marks; within such strings, a backslash starts an escape mechanism that is commonly used in UNIX software. The recognized escape sequences are: 1m\a 22malarm bell (octal 007) 1m\b 22mbackspace (octal 010) 1m\f 22mformfeed (octal 014) 1m\n 22mnewline (octal 012) 1m\r 22mcarriage return (octal 015) 1m\t 22mhorizontal tab (octal 011) 1m\v 22mvertical tab (octal 013) 1m\ooo 22mcharacter number octal 4mooo24m (e.g 1m\012 22mis linefeed). Up to 3 octal digits may be used. 1m\0xhh 22mcharacter number hexadecimal 4mhh24m (e.g., 1m\0x0a 22mis line- feed). 4mxhh24m may be in either letter case. Any number of hexadecimal digits may be used. Backslash followed by any other character produces just that character. Thus, \% gets a literal percent into a string (preventing its interpre- tation as a comment), \" produces a quotation mark, and \\ produces a single backslash. An ASCII NUL 4m(\0)24m in a string terminates it; that is a feature of the C programming language in which 1mbibclean 22mis implemented. Field/pattern pairs can be separated by arbitrary space, and option- ally, either an equals sign or colon functioning as an assignment oper- ator. Thus, the following are equivalent: pages="\"D--D\"" pages:"\"D--D\"" pages "\"D--D\"" pages = "\"D--D\"" pages : "\"D--D\"" pages "\"D--D\"" Each field name can have an arbitrary number of patterns associated with it; however, they must be specified in separate field/pattern as- signments. An empty pattern string causes previously-loaded patterns for that field name to be forgotten. That feature permits an initialization file to completely discard patterns from earlier initialization files. Patterns for value strings are represented in a tiny special-purpose language that is both convenient and suitable for bibliography value- string syntax checking. While not as powerful as the language of regu- lar-expression patterns, its parsing can be portably implemented in less than 3% of the code in a widely-used regular-expression parser (the GNU 1mregexp 22mpackage). The patterns are represented by the following special characters: 1m 22mone or more spaces 1ma 22mexactly one letter 1mA 22mone or more letters 1md 22mexactly one digit 1mD 22mone or more digits 1mr 22mexactly one Roman numeral 1mR 22mone or more Roman numerals (i.e. a Roman number) 1mw 22mexactly one word (one or more letters and digits) 1mW 22mone or more space-separated words, beginning and ending with a word 1m. 22mone `special' character, one of the characters !#()*+,-./:;?[]~, a subset of punctuation char- acters that are typically used in string values 1m: 22mone or more `special' characters 1mX 22mone or more `special'-separated words, beginning and ending with a word 1m\x 22mexactly one x (x is any character), possibly with an escape sequence interpretation given earlier 1mx 22mexactly the character x (x is anything but one of these pattern characters: aAdDrRwW.:\) The 1mX 22mpattern character is very powerful, but generally inadvisable, because it matches almost anything likely to be found in a BibTeX value string. The reason for providing pattern matching on the value strings is to uncover possible errors, not mask them. There is no provision for specifying ranges or repetitions of charac- ters, but that can usually be done with separate patterns. It is a good idea to accompany the pattern with a comment showing the kind of thing it is expected to match. Here is a portion of an initialization file giving a few of the patterns used to match 4mnumber24m value strings: number = "\"D\"" %% 23 number = "\"A AD\"" %% PN LPS5001 number = "\"A D(D)\"" %% RJ 34(49) number = "\"A D\"" %% XNSS 288811 number = "\"A D\\.D\"" %% Version 3.20 number = "\"A-A-D-D\"" %% UMIAC-TR-89-11 number = "\"A-A-D\"" %% CS-TR-2189 number = "\"A-A-D\\.D\"" %% CS-TR-21.7 For a bibliography that contains only 4marticle24m entries, that list should probably be reduced to just the first pattern, so that anything other than a digit string fails the pattern-match test. That is easily done by keeping bibliography-specific patterns in a corresponding file with extension 4m.ini24m, because that file is read automatically. You should be sure to use empty pattern strings in the pattern file to discard patterns from earlier initialization files. The value strings passed to the pattern matcher contain surrounding quotes, so the patterns should also. However, you could use a pattern specification like "\"D" to match an initial digit string followed by anything else; the omission of the final quotation mark \" in the pat- tern allows the match to succeed without checking that the next charac- ter in the value string is a quotation mark. Because the value strings are intended to be processed by TeX, the pat- tern matching ignores braces, and TeX control sequences, together with any space following those control sequences. Spaces around braces are preserved. That convention allows the pattern fragment 4mA-AD-D24m to match the value string 4mTN-K\slash24m 4m27-7024m, because the value is implicitly col- lapsed to 4mTN-K27-7024m during the matching operation. 1mbibclean22m's normal action when a string value fails to match any of the corresponding patterns is to issue a 4mwarning24m message something like this: 4m"Unexpected24m 4mvalue24m 4min24m 4m``year24m 4m=24m 4m"192"''24m. In most cases, that is sufficient to alert the user to a problem. In some cases, however, it may be desirable to associate a different message with a particular pattern. That can be done by supplying a message string following the pattern string. Format items 4m%%24m (single percent), 4m%e24m (entry name), 4m%f0m (field name), 4m%k24m (citation key), and 4m%v24m (string value) are available to get current values expanded in the messages. Here is an example: chapter = "\"D:D\"" "Colon found in ``%f = %v''" %% 23:2 To be consistent with other messages output by 1mbibclean22m, the message string should 4mnot24m end with punctuation. If you wish to make the message an error, rather than just a warning, begin it with a query (?), like this: chapter = "\"D:D\"" "?Colon found in ``%f = %v''" %% 23:2 The query is be included in the output message. Escape sequences are supported in message strings, just as they are in pattern strings. You can use that to advantage for fancy things, such as terminal display mode control. If you rewrite the previous example as chapter = "\"D:D\"" \ "?\033[7mColon found in ``%f = %v''\033[0m" %% 23:2 the error message appears in inverse video on display screens that sup- port ANSI terminal control sequences. Such practice is not normally recommended, because it may have undesirable effects on some output de- vices. Nevertheless, you may find it useful for restricted applica- tions. For some types of bibliography fields, 1mbibclean 22mcontains special-pur- pose code to supplement or replace the pattern matching: o 4mCODEN24m, 4mISBN24m and 4mISSN24m field values are handled that way be- cause their validation requires evaluation of checksums that cannot be expressed by simple patterns; no patterns are even used in these three cases. o When 1mbibclean 22mis compiled with pattern-matching code support, 4mchapter24m, 4mnumber24m, 4mpages24m, and 4mvolume24m values are checked only by pattern matching. o 4mmonth24m values are first checked against the standard BibTeX month abbreviations, and only if no match is found are pat- terns then used. o 4myear24m values are first checked against patterns, then if no match is found, the year numbers are found and converted to integer values for testing against reasonable bounds. Values for other fields are checked only against patterns. You can provide patterns for 4many24m field you like, even ones 1mbibclean 22mdoes not already know about. New ones are simply added to an internal table that is searched for each string to be validated. The special field, 4mkey24m, represents the bibliographic citation key. It can be given patterns, like any other field. Here is an initialization file pattern assignment that matches an author name, a colon, a four- digit year, a colon, and an alphabetic string, in the BibNet Project style: key = "A:dddd:A" %% Knuth:1986:TB Notice that no quotation marks are included in the pattern, because the citation keys are not quoted. You can use such patterns to help en- force uniform naming conventions for citation keys, which is increas- ingly important as your bibliography data base grows. 1mISBN INITIALIZATION FILES0m 1mbibclean 22mcontains a compiled-in table of ISBN ranges and country/lan- guage settings that is suitable for most applications. However, ISBN data change yearly, as new countries adopt ISBNs, and as publishers are granted new, or additional, ISBN prefixes. Thus, from version 2.12, 1mbibclean 22msupports reading of run-time ISBN initialization files found on the 1mPATH 22m(for VAX VMS, 1mSYS$SYSTEM22m) and 1mBIBINPUTS 22msearch paths, and then any specified by 1m-ISBN-file 4m22mfilename0m options. That feature makes it possible to incorporate new ISBN data without having to produce a new 1mbibclean 22mrelease and reinstall the software at end-user sites. The format of an ISBN initialization file is similar to that of the 1mbibclean 22minitialization files described in the preceding section: com- ments begin with percent and continue to end of line, blank and empty lines are ignored, backslash-newline joins adjacent lines, and other- wise, lines are expected to contain a required pair of ISBN coun- try/language-publisher prefixes forming a non-decreasing range, option- ally followed by one or more words of text that are treated as the country/language group value. The latter value plays no part in ISBN validation, but its presence is strongly recommended, in order to make the ISBN table more understandable for humans. Here is a short example: %% The Faeroes got ISBN assignments between 1993 and 1998 99918-0 99918-3 Faeroes 99918-40 99918-61 99918-900 99918-938 It is not necessary to repeat the country names on succeeding entries with the same initial number (99918 in that example); that is handled internally. Data from ISBN files normally augment the compiled-in data. However, if the first prefix begins with a hyphen, then 1mbibclean 22mdeletes the first entry in the table matching that first prefix (ignoring the lead- ing hyphen): %% Latvia got ISBN ranges between 1993 and 1998 %% so we remove the old placeholder, then add the %% new ranges. -9984-0 9984-9 This one is no longer valid 9984-00 9984-20 Latvia 9984-500 9984-770 9984-9000 9984-9984 1mKEYWORD INITIALIZATION FILES0m 1mbibclean 22mcontains a compiled-in table of keyword mappings that is suit- able for most applications. The default settings merely adjust letter- case in certain keyword names, so that, for example, 4misbn24m is output as 4mISBN24m. From version 2.12, 1mbibclean 22msupports reading of run-time keyword ini- tialization files found on the 1mPATH 22m(for VAX VMS, 1mSYS$SYSTEM22m) and 1mBIB-0m 1mINPUTS 22msearch paths, and then any specified by 1m-keyword-file 4m22mfilename0m options. That feature makes it possible to incorporate special spellings of new keywords without having to produce a new 1mbibclean 22mrelease and reinstall the software at end-user sites. The format of a keyword initialization file is similar to that of the other 1mbibclean 22minitialization files described in the preceding sec- tions: comments begin with percent and continue to end of line, blank and empty lines are ignored, backslash-newline joins adjacent lines, and otherwise, lines are expected to contain a required pair of old and new keyword names. Here is a short example: %% We want special handling of MathReviews keywords mrclass MRclass mrnumber MRnumber mrreviewer MRreviewer Data from keywords files normally augment the compiled-in data. How- ever, if the first keyword begins with a hyphen, then 1mbibclean 22mdeletes the first entry in the table matching that keyword (ignoring the lead- ing hyphen): %% Remove special handling of ISBN, ISSN, and LCCN values. -issn ISSN -isbn ISBN -lccn LCCN Even though the second keyword in each deletion pair is not used, it still must be specified. Notice that this feature can be used to regularize keyword names, but use it with care, in order to avoid producing duplicate key names in output BibTeX entries: %% Map variations of keywords into a common name: keys keywords keywds keywords keyword keywords keywrd keywords keywrds keywords searchkey keywords 1mLEXICAL ANALYSIS0m When 1m-no-prettyprint 22mis specified, 1mbibclean 22macts as a lexical analyzer instead of a prettyprinter, producing output in lines of the form "" Each output line contains a single complete token, identified by a small integer number for use by a computer program, a token type name for human readers, and a string value in quotes. Special characters in the token value string are represented with ANSI/ISO Standard C escape sequences, so all characters other than NUL are representable, and multi-line values can be represented in a single line. Here are the token numbers and token type names that can appear in the output when 1m-prettyprint 22mis specified: 0 UNKNOWN 1 ABBREV 2 AT 3 COMMA 4 COMMENT 5 ENTRY 6 EQUALS 7 FIELD 8 INCLUDE 9 INLINE 10 KEY 11 LBRACE 12 LITERAL 13 NEWLINE 14 PREAMBLE 15 RBRACE 16 SHARP 17 SPACE 18 STRING 19 VALUE Programs that parse such output should also be prepared for lines be- ginning with the warning prefix, %%, or the error prefix, ??, and for ANSI/ISO Standard C line-number directives of the form # line 273 "texbook1.bib" that record the line number and file name of the current input file. If a 1m-max-width 4m22mnnn24m command-line option was specified, long output lines are wrapped at a backslash-newline pair, and consequently, soft- ware that processes the lexical token stream should be prepared to col- lapse such wrapped lines back into single lines. As an example of the use of 1m-no-prettyprint22m, the UNIX command pipeline 1mbibclean -no-prettyprint 4m22mmylib.bib24m | \ 1mawk 22m'$2 == "KEY" {print $3}' | \ 1msed 22m-e 's/"//g' | \ 1msort0m extracts a sorted list of all citation keys in the file 4mmylib.bib24m. A certain amount of processing has been done on the tokens. In partic- ular, delimiters equivalent to braces have been replaced by braces, and braced strings have become quoted strings. The LITERAL token type is used for arbitrary text that 1mbibclean 22mdoes not examine further, such as the contents of a @Preamble{...} or a @Comment{...}. The UNKNOWN token type should never appear in the output stream. It is used internally to initialize token type variables. 1mSCRIBE BIBLIOGRAPHY FORMAT0m 1mbibclean22m's support for the Scribe bibliography format is based on the syntax description in the Scribe Introductory User's Manual, 3rd Edi- tion, May 1980. Scribe was originally developed by Brian Reid at Carnegie-Mellon University, and was marketed by Unilogic, Ltd., later renamed to Scribe Systems, and apparently now long defunct. The BibTeX bibliography format was strongly influenced by Scribe, and indeed, with care, it is possible to share bibliography files between the two systems. Nevertheless, there are some differences, so here is a summary of features of the Scribe bibliography file format: (1) Letter case is not significant in field names and entry names, but case is preserved in value strings. (2) In field/value pairs, the field and value may be separated by one of three characters: =, /, or space. Space may optionally sur- round these separators. (3) Value delimiters are any of these seven pairs: { } [ ] ( ) < > ' ' " " ` ` (4) Value delimiters may not be nested, even though with the first four delimiter pairs, nested balanced delimiters would be unam- biguous. (5) Delimiters can be omitted around values that contain only let- ters, digits, sharp (#), ampersand (&), period (.), and percent (%). (6) Outside of delimited values, a literal at-sign (@) is represented by doubled at-signs (@@). (7) Bibliography entries begin with @name, as for BibTeX, but any of the seven Scribe value delimiter pairs may be used to surround the values in field/value pairs. As in (4), nested delimiters are forbidden. (8) Arbitrary space may separate entry names from the following de- limiters. (9) @Comment is a special command whose delimited value is discarded. As in (4), nested delimiters are forbidden. (10) The special form @Begin{comment} ... @End{comment} permits encapsulating arbitrary text containing any characters or delimiters, other than ``@End{comment}''. Any of the seven de- limiter pairs may be used around the word ``comment'' following the ``@Begin'' or ``@End''; the delimiters in the two cases need not be the same, and consequently, ``@Begin{com- ment}''/``@End{comment}'' pairs may 4mnot24m be nested. (11) The 4mkey24m field is required in each bibliography entry. (12) A backslashed quote in a string is assumed to be a TeX accent, and braced appropriately. While such accents do not conform to Scribe syntax, Scribe-format bibliographies have been found that appear to be intended for TeX processing. Because of that loose syntax, 1mbibclean22m's normal error detection heuris- tics are less effective, and consequently, Scribe mode input is not the default; it must be explicitly requested. 1mENVIRONMENT VARIABLES0m 1mBIBCLEANEXT 22mFile extension of bibliography-specific initialization files. Default: 4m.ini24m. 1mBIBCLEANINI 22mName of 1mbibclean 22minitialization files. Default: 4m.bib-0m 4mcleanrc24m (UNIX), 4mbibclean.ini24m (non-UNIX). 1mBIBCLEANISBN 22mName of 1mbibclean 22mISBN initialization files. Default: 4m.bibclean.isbn24m (UNIX), 4mbibclean.isb24m (non-UNIX). 1mBIBCLEANKEY 22mName of 1mbibclean 22mkeyword initialization files. Default: 4m.bibclean.key24m (UNIX), 4mbibclean.key24m (non-UNIX). 1mBIBINPUTS 22mSearch path for 1mbibclean 22mand BibTeX input files. On UNIX, it is a colon-separated list of directories that are searched in order from first to last. It is not an error for a specified directory to not exist. On other operating systems, the directory names should be separated by whatever character is used in system search path specifications, such as a semicolon on IBM PC DOS. 1mPATH 22mOn Atari TOS, IBM PC DOS, IBM PC OS/2, Microsoft NT, and UNIX, search path for system executable files. The sys- tem-wide 1mbibclean 22minitialization file is searched for in that path. 1mSYS$SYSTEM 22mOn VAX VMS, search path for system executable files and the system-wide 1mbibclean 22minitialization file. 1mFILES0m 4m*.bib24m BibTeX and Scribe bibliography data base files. 4m*.ini24m File-specific initialization files. 4m.bibclean.isbn24m UNIX system-wide and user-specific ISBN initialization files. 4m.bibclean.key24m UNIX system-wide and user-specific keyword initializa- tion files. 4m.bibcleanrc24m UNIX system-wide and user-specific initialization files. 4mbibclean.ini24m Non-UNIX system-wide and user-specific initialization files. 4mbibclean.isb24m Non-UNIX system-wide and user-specific ISBN initializa- tion files. 4mbibclean.key24m Non-UNIX system-wide and user-specific keyword initial- ization files. 1mSEE ALSO0m 1mbibcheck22m(1), 1mbibdup22m(1), 1mbibextract22m(1), 1mbibindex22m(1), 1mbibjoin22m(1), 1mbibla-0m 1mbel22m(1), 1mbiblex22m(1), 1mbiblook22m(1), 1mbiborder22m(1), 1mbibparse22m(1), 1mbibsearch22m(1), 1mbibsort22m(1), 1mbibtex22m(1), 1mbibunlex22m(1), 1mcitefind22m(1), 1mcitesub22m(1), 1mcite-0m 1mtags22m(1), 1mlatex22m(1), 1mscribe22m(1), 1mtex22m(1). 1mAUTHOR0m Nelson H. F. Beebe University of Utah Department of Mathematics, 110 LCB 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA Tel: +1 801 581 5254 FAX: +1 801 581 4148 Email: beebe@math.utah.edu, beebe@acm.org, beebe@computer.org (Internet) URL: http://www.math.utah.edu/~beebe 1mCOPYRIGHT0m ######################################################################## ######################################################################## ######################################################################## ### ### ### bibclean: prettyprint and syntax check BibTeX and Scribe ### ### bibliography data base files ### ### ### ### Copyright (C) 1990--2016 Nelson H. F. Beebe ### ### ### ### This program is covered by the GNU General Public License (GPL), ### ### version 2 or later, available as the file COPYING in the program ### ### source distribution, and on the Internet at ### ### ### ### ftp://ftp.gnu.org/gnu/GPL ### ### ### ### http://www.gnu.org/copyleft/gpl.html ### ### ### ### 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; either version 2 of ### ### the License, or (at your option) any later version. ### ### ### ### 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. ### ### ### ### You should have received a copy of the GNU General Public ### ### License along with this program; if not, write to the Free ### ### Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, ### ### MA 02111-1307 USA ### ######################################################################## ######################################################################## ######################################################################## Version 3.05 18 May 2020 BIBCLEAN(1) bibclean-3.07/win32/0000775000156700015670000000000014431412256013052 5ustar beebebeebebibclean-3.07/win32/bibclean.exe0000755000156700015670000135770712320030547015333 0ustar beebebeebeMZ@ !L!This program cannot be run in DOS mode. $PELg1@S( @   .text$`P`.data @`.rdatap68@`@.bss`.idata  @0.CRT4@0.tls @0/4@@B/19/0@B/31%@& @B/45:p<2@B/57&(n@0B/70B@B/81~@B/92 @BÍ&'1f=@MZADADADADthBADtJ$$2ADFFdFV=Atm1Í&$df<@@PE@uQf t?f j]1Kv$P@41Ãyt,1f,ADD$BD$BD$BBAD$BD$ B,Í'U1WVUS׃|0)čD$@@@ @@@@̃ADd5 FX= F9$׃D$\$$Fփ uСF1ۃFOBFBtD$D$$Ѓ $@FAD$@?nTFED@tB1t&t0t! ~˃"Dt  ~ED=ADtUԸ EE£ABEƍE$=BE_1ۉ&$x<$M |$$L$;]uɋEu5BDFBBD$BD$B$5B BBu X Be[^_]ÍvF$1FD$F$FFD$$FF$FMFD$F$ F1$ft&' AD AD fAtCU$AFtD$A$F…t $AfU]ÐW1VS1ۀ%$n2$\&$nu$"$ <[^_]$\$t뼍$\$b뜍$\$zt&$\$rxYv$\d$fX9v$\D$v8v,$ׅt,$&l$D$gA4$T4$$UADD$]A4$D$"4$$aAD$$dADB&'=dBT$D$t=`Bt&=`At/D$T$`=LBuf=DBt=`AuщD$H&D$ıA$Ðt&D$ƱA$ iÐt&UWVS5F\$0t#<< tP<t$Cu݃[^_]$ =HBu׃=`AuC< t= A{uGEDD$ C1&D+t|$օtD$ D;FFwt$ C6f$ $ -HB*=`AD$ UD;FFvD$ƱA$ =`AtCں/& lF 9tD$$tÉ$HÍt&WVS˃`C t$%4$D$ȱAD$CD$ CD$@C 4$D$AD$C$D$ CD$a`[^_Ív'VSÃBغA6pC)غ2ApCغ>A@DغAAFFغKA[pC^UAS($\$0qC$EDBpCEDpCEDpCEDpCEDpCEDpCEDpCEDpCEDqCEDqCtD$@AD$_AD$áFFD$EDD$ |E$O|E=$B$elFƱA lF@A lFwA lFڃ lFyA nlF=$Bt $D$0([v @Aѐ@A|EOD$ $qD$$$E,BFJBÐ&D$ D$|A$Ðt&VS\$ $p4$tt$\$$[^$A&'UWVS,8F\$@|$D-FD$ބ҉uNf$8FD$ É$ՉÅt$D$L$ЋL$9D$ u,Gt^É$ՉD$ÉD$uD$ 멉ߋt$\$tL$ $8FL$ Ét $8F,)É[^_]$Ɖ1$Չ$?&'UWVSL$8D$0|$4ۈ\$XȉD$4FՉD$ Rt&t$4$Fut$D$ 4$9|wE;\$tJ+tQD$t%4$Fu,$4F됃[^_]Ð1[^_]Í1?[^_]Ã[^_]ÐUWVS|$0l$4<$qƋEt@] ݃ Ct/UD$<$9C։T$uU[^_]Ív1[^_]ÍVS$\$0D$4$D$= Bu4DA AE‰D$|E\$ D$MAD$PA$$[^S(=$A\$0t([$$EDpCEDpCEDpCEDpCEDpCEDpCEDpCEDpCEDqCEDqCG AƱA=,AD$ MAD$gAEщT$D$FFD$EDD$|E$ |E=$B D$0([MA#|E⍶SpC\$ PpCÃ-EDpC$Ft't. t_ tp-ED{u,-B[Ã-@BuxB[Ðt&}uB[D$ xA[>ED-EDED[áEDED[É'W1VS5Fmt7$օt+ t fu[^_fɃ[^_É$Ѓ ҐUW1VS1ۃ-FD$ D$0tGT$u<;|$s0-t‰T$$ՋT$u D$ 8;\$0uʋD$ 8<-t$ՅuD$0)[^_]Ívٍt&'WVST$$\$ u DC10 v<1[^_Ë5DCtc-tW<$F¸uӃvă0 w5DC[^_Í߃Xu5DC۸z'Kt&'WVSL$$\$ u @C10 v<1[^_Ë5@Ctc-tW<$F¸uӃvă0 w5@C[^_Í߃Xu5@C۸z'U?WVS|HHDلHDHDHDx@\$\$7DʉL$,EыL$,t$|$l$L$ T$$D$A1$|[^_]É'UWV??S$|$E$D$E????ft$I$D$KL$EɉD$<1yxxx%AAdAƃLDtAvփu)‰P):AtȃD$DLDu<$tlt7D$D~Ĝ[^_]ÍvAwApAσwA`\$f9L$u|$L9|$(uڋD$X9D$4ʍvT$ 11qT$8 11똍&F)čD$D$D$$D6@/@f)čD$D$D$$D8@P0@f`4@`0@`4@`0@~$DJ t $0AÍ'U1WVS1ۃD$0D$ u.<{<})D$ D$0<,t`< t< u݋t$ uՋD$0YA1l<AtJ<$D$|$,$uփ[^_]Ð|$ {fD$ mD$\A,$O븍1[^_]ÍS1ۃ@Au:@At,D$E$auދDAEPit[$`A[ =tAD$tÐ=vD$AS$Dxt+LADPt $ضA[ÍvAt1vAtAD$D${u׃[fTADP{t $ضA*ÍS1ۃ@Au:@At,D$FD$uދDADPt[$ضA[ \ADPt $ضAÍ9@06@QdADPt $ضAJÍSD(lAPjt.$ضA\$Dt0 vu([fD$ \$$,-=+wT$$A쐐UWVS to~B%uE$%FFǡ(Bu%t`<$FF[^_]ÍPv#$kFFFF[^_]Í&FFFFFF[^_]Í&ED1FF%DEDDEDDED DEDDEDDEDDEDDED DED$D u `t_ tCFFt>uÉ$Fuɉߍ&ƅFFt&u ᐿى$fF 6čt&UWVS=FIJw~ux9t_$C+ Bt=dB}=`Bu=DBuTJvt&[^_]É$CyEDDEDDEDDED DEDDEDDEDDEDDED DED$D`FF1FF:É$ׅ tzvȋ `AƆFF=HBt)=dB=`BFFu=DBu$FF:FFtvFF`A=HB=dB=`B$ t&D$FF$FF=LB9P$v AD$$  A Ar=DBq$FFG`fD$FF$E&=LB$v뻃=LBvFFEDDEDDEDDED DEDDEDDEDDEDDED DED$DED=@B@DEDDDEDHDEDLDEDPDEDTDEDXDED\DED`DEDdDt%t$D$ĹA$AbÃ@uփBBt$ABʍSEDFFEDFFEDFFEDFFEDFFEDFFEDFFEDFFEDFFEDFFt),tQ;pAt1$D$@A$A|B[Í)t[=Burf$|Buʋ AD$A$ A  A|B[Ð BQ҉Bu B두$HD$A$AJ U1WVSED5FDEDDEDDED DEDDEDDEDDEDDED DED$DS<$Ft|<$Ft $8FádAu =XBUjFEt>$tÉ$օt$4F$hAsƅFE1 vt:A$FED$iu݋A$FED$Suƃ=`AFEAtrA ƿAD$FE8t0$l,$[^_]É$ƅFE1$<ΉD$$*$FEFEƅFE[^_]D$A$FExEyEv[^_]D$FE$Y$FEHt&WVSD$w$轻X9w$9u[^_Ðt&St9D$$Axt,-AAD$ A$ pA[f$D$ĺA$AfWV1SEDDEDDEDDED DEDDEDDEDDEDDED DED$D,txts=F"tE,tNtIÉ$ׅtƆE$~=tAt:D$E$ 4$9[^_fƆEu=tAuD$ A$ExFFyFFc[^_ÍUWVS1 $4FxiFF|$ D$"AD$(AD$|E$T$8&WV1Sփt<$A1t4$A[^_Ív=4BtÍ,t9:t4tTD$ FFL$T$D$ԼAD$|E$趶,fD$ FFD$tAD$|E$莶։D$ FFT$D$AD$|E$f뮍t&t&{tN(t $!D$A$AD$ A$ pA)BdD$ A$ pA}B볃Xt$;pAt $D$A$A/Ã)t6D$FA$BtD$HA$AÐ-B&VSÃ$D$ 0v8$D,\$$D茵D$ȽA$A[^fƀD\$4$D$跴[^ÐVS6< tM~o<%ur$t&胴\$ƉD$C$D3D32< ut&=dBt(=`Bu=DBu끃 <vՃ[^Ã=LBuߍt&S\Bt#=dBt8=`BtF tU[Ã=TBt=dBuύ&=LBt̓=`Bu=DBt u=PBu$ &$=XBt =TB EÉh'UWVS,dÉ$$$AD$F-AAljD$FF"9FD$.t&[wÃ9\$8dAu =XB$" &  FӉ$T$L$ыL$T$ƆFF ݉$хhwÃhƆFF"ƇFF*4$#,FF[^_]Í^FF\0~" FƆFF{"ƆFF"ƇFF}nv\7FFS=TB FFt=PB E L$$ FFF&FF"VFFƉ4$u։4$)ƃFF"CƃFF)$,FF[^_]Í&;ƃFF{ƆFF\{t]~Ћ FƆFF"FFƇFF},L$ƆFF\L$\t6$L$L$~{ FƇFF"~ƇFF\ 1ҋL$~ЈFFƆFF"ƇFFD$LA$FF]FFFF,[^_]É4$F"FD$A$FFFFFF,[^_]Ã\H$ƆFF$FF"FFD$A$FFFFFFFFUFF"FFUWVS")\BqFF11=F݉Jà dAu =XB # É$F{ }\Zt ۉ$ׅo蹾Ão؉FF FF111@}"u xLFF{u͸ FFTTB u݃=PB Eº E뽐+ t&{뢍}뒍GGD$"D"D<<$.D$D$$FF\Bg[^_]Ã=`CFF\D{xD"D}FFf؉D$tA$FFFFƃFF FF\BFF[^_]ƅFF\]ۼ\t"$1z$ѾAƃFF\%$F$FFFF\BFF[^_]ÍrFFFFL$ D{OހZD"wC$AFF{tVD{D\D"LxD}FFD}x$A|D$ 1 FFt{t}tFF}uD{xD\D"D{LD}D}FF!FF=UWVS,FF]dAu =XB$ED{DEDDEDDED DEDDEDDEDDEDDED DED$DoÍPЃ "$FubD$\A$AFF,FF[^_]ÈFD$tA$FFFYFF,FF[^_]Ðt&;;1tFFt $u׍FF$4$z,FF[^_]FF"ѹл0 v.Ѓ0 wFF苹u֍s$+4$ƃFF"ƆFF,FF[^_]Ã,[^_]$$FFxFF\BFFIF0D$D$ǃd-dAu =XB  t-F4$ՅuK{}\.-F1ɉ $ՅoZjv CFFˍ&=TBu&=PBtI -FFى낺 -F먃D${fl$}뎺-FyFAD$tA$FFFFƃFF\BFFFF$$A\BL$ƃFF\=L$\tK$L$L$<$$FFK\BFFnFF1ƁFF\ZىS?FF1@YFFFF"t$uNFF\qL$u\vtBL$ƆFF{E\-FƃFF"FFYƁFF}"l$-F$ƃFF؋-F'VSEDFFEDFFEDFFEDFFEDFFEDFFEDFFEDFFEDFFEDFF$DD$X=D"D$DE‰$$wD$A$ D$A$D$A$|$DD$פ؀=D"D$DEƉ$諿F#{$`[^Ív'S藵É$=t[ڿv'=`At(=`BD$FDE‰$谼á`Bt$FD觿ÍvA$c$FD臿ސt&=`AtD$A$PÃ=dBtC=`Bu =DBt:$ =Bt3$=$ Ã=LBu$=۷뙡A+ED$賻뵐UWVS$D蕢=D"ƉtD"sdBu `B-DDu9\$$ Ž$^"$bnD$$Lt^;"\$Dlj$t$^ѡ$D$$ oD$$X"E‰$\$$r$[^_]Ãv*=F~D$ׅu"؀\ƀD"ƃDD=F$ׅrv9tD$ׅu)ށÀD\$t$$D޳$D誠|AD$ A$FD|A=tA|A=0Bt_=BDA$K|B}D\FDAu$FDy$DПd$Ӵ$FD诟D$FD$FDD$輲BA+ED$DAD$ A$FDbf1t&EDDFFEDFFEDFFEDFFEDFFEDFFEDFFEDFFEDFFEDFFv3=`Bu =DBt=AbSv&#u!=dBu=LBuA%v$=xBUWVS,ED ED5EDEDFFED FFED D ED-EDFFED=ED D ED5FFFFEDFFFF5DFF D1ۉ-FF=FF-D=D D ED D$D D؋-F=F9`BuÉ$ׅt $4FÈFD˭$踯t*uÉ$Յu$A둉މ4$,5`BƃFDuP1*&D$$FD8t AuҾAFD$=,Bt=xBt =FDu 1,[^_]Í1ÉZCA=(B EDED-ED=ED FF5EDFFED D EDEDEDFFED D ED-FF=FFFFED D ED5FFFFFFFF-D=D5D D D D$Dt%=$$覡Ax{uԃpA}!S D$/D$0D$ AD$2D$1D$/$茭D$A$mnD$/eRt&=@p$AD$ҪD$`SD$/f$蔠 L&D$FA$u'fD$FF$ FFFFP$A4$#$ ?fD$ A$ |I$$ڟ/$A迩D$FF$ F责D$ A$ D$D$$rT$b4$F?t$D$ApAEӉT$D$ЍD$/T$ ${D$/D$$A诪D$/D$/$D$0ժS|ED$pA$At41ۋAD$|ED$AT$ $ʼnAu΃[Ðt&VCSC\$ CCC6CD$ $草dCt0=Cv&x\u C)‰\$T$$u=CCu$讉E[^Ít&UWVS\D$tD$D$p$IFFD$A$般D$ -FD$ $uÉ$Յu$st\EDT$D$?|$>D$FL$D$ЍFFL$8L$FFʉ|$ t&|$D$D\$ T$4$ЋT$u΋D$9D$$sD+D$$L$D$D$8D$D$4$|D$ }D$4$ЋL$l&ߍ_FF}tD$D$A$AVzD$,|$>|$?vjT$,<}wFFFF<{u܃9u߀FF\FFL$ttFF$FD|$$D$(D$0ft&D|$$Q}D< L$$D$,<\qƁFF{D\L$$1҉ÃFF}<\ T$(D$0D$šFt$݉D$vFFÉ$D$Ѕu .uۉt$U)鍅FFFF,$L$D$T$zT$t$$D$(ƂFF{?}D$$DƀFF\pÉ$FFFD4$Fu݉4$Ft#FFD4$Fu݉|$$D$(D$$FFDD$$D$$DD$(ƀFF D$$bl$(t&1<\Yt$$D$(6FFDD$$|$$HD$(t$$D|$$D$(t$9l$Kt$$D$(D}L$$D$,qƁFF{wDƁFF$D$$ƁFF$l$0ƁFFβb=FF{D$D$A$AlvL$$D$$DƁFF{ƁFF ƁFF}FFFF1fGD$t$$A臙*)؉D$D$4$D$wGDD$$ƇFFD$(D$0n'U1W1VS\t<{uȃFut$,\$$UD"DՅ|$$ L$$D$X9rxF݉t$,D$ D$(t 9r6DD$($Ѕu܉$1FDD$ 9D$ sʃ|$ t$,i1D$ v9|$(\$$t$,<$É$Fl$D$ƀFF\@D$D$$$AT$$`oT$$D$$9T$w%D$D9ֈFFvt$D$|$$t |$ D$9|$D$,D~qD$D$$\\$\$FF$AÉD$JFƆFF}D$FFD$1D$,DD$$v1foD$0|$0\$ oDD$4$ЅuD$(|$|$04$ЅyD$8D$ƀFF{D$FFHƀFF}D$L$8DD$ƀFF{D$9L$FFȋ|$(D$DFFD$0|$$mD$,+D$\$0T$ЉD$,<$DKT$(1ɃET$L$ T$H=xAwl$ |$L$$l$<+t$$AITFFÉ$Յtɋl$ _L$$WFFFF)l$D$$L$ PIt$L$ ƃFF{D$ɍXD\$|$6t&"EL$FFYL$É$Fv$ut&t }\ E$AlD$L$D$D$ƁFF\ƁFF$DA|$ {D$0{D$D$(ЅD$0D}|$4dD$8D$&D$1ƀFF{D$D$ƀFF}D$&T$уƂFF{}D.1҉D$D$Hf}u&t$t|$uƅFF}D$l$FFD{uD$|$uԍDމljT$ É$Fu؉T$ <{|$tοHAtpt$LAt^t$PAtLt$TAt:t$XAt(t$\Att$`AƅFF{D$FFD$FF$D FD$\$ D$0_xut&\v?L$ƆFF"FFFF8l$T$(DL$ D$$֋L$ T$( D$0 D$L$(T$ $FT$ L$(u'D$$AL$DL$T$ ADD$$l$D$$M1fGFF}/FF{FF"FF$ى D{$D$(ЅTD}GD$8L$DƀFF{FFAD$8ED$ƁFF}l$D$$t$%DD$r|$ىD$hD{Љ< v 'FF$tJtFÉ$Fu6ÉD$$A^Cu\t6DFFÃ$u|$FFD$ƆFF}qWD<$VDƆFF\FFaFF"l$ L$$tot\t$$AL$ BL$ uOt$ƅFF{FFL$$l$ É$D$t$$:D=GʼnÉD$z>:D$AD${>)؉D$:D|$$4>;Duhހ>t%4$D$A>ƀ>W&1[^_]ÍD$|$$:D=;D1tƃ:D[^_]Í&1ҸRt&S)ƃ:D\;0 w[VS1 s0 v1-t[^J0 wL0 v1u1 1Ðt&VSp ufXtxt tYЀ w:t 9u[^UWVSL\$؍t$2$k<\$4$D$S=x_|$$r!ځ t€DЍAD҃)L$t$<$<L[^_]Ív'VSt3 t,8u(<-t)1ɍt& t8u-tu1[^ø[^Ðt&UWVSÃ,t$@t 6&t&ېt.|$$;i$T$M\T$&1 vA1t<$!\vAAt,$\vA,[^_]Ít&H=D|$ \$D$AD$|E$:,[^_]fH=D\$D$AD$ |E$:,[^_]ÍH=D|$D$AD$ |E$:,[^_]Í1҅$T$J[T$UWVS=DD$$S3$2=DE39T$t$D$D$2=D$ 3Ƃ2=D-]xt&2=DJGuƁ2=D-.ʉ%< E(l$t$D$<$2D$\$Hl$DD$@,[^_]2&UWVSDAD=D=DP?D>D=DT?D>D@D>DX?D>D@>D>D`?D>D>D=D,>D?D?Dx>D?D?D=D?D?D@D>D>D 0?D  >D |>D ?D ?D >D ,?D 4?D ?D ?D ÐUWVSp=FXt4<\tP6<u(CS<u <tu[^_]É<{t<}us멐t&C$Fu/s 3,$ׅuk&3,$FuΉӐy뉍&UWVSL)$T$0D$<$Fˉ4$L$4D$8$L$4T$8BD/ʼn,$$tq܇BvFD$0؇Bw`܇BEljD$D$0L$ T$ t$D$D$<\$D$B,$D$$,$wH,$g$L[^_]Í&؇B롍t&WVS`\$$D$D$ BV$$&H&BL$t.BT$p`[^_ UWVSD$0NjD$4L$4L$ 1b&=ADLD$ T$0D$D$4$xB1(=ADD$ T$0D$D$4$$B1=ADD$ T$0D$D$4$B1&T$4|ED$D$A$4$t&|ED$D$A$4$Tt&|ED$D$`A$4$$t&ED0AD$AA1D$|E$M4$lFD$ BAD D$AD$lFJ 9uáAD@D$B$D$$|ADD$D$CB$>Ð $A B (B h0B H4A ($A Í 4B 8B -u3-ADuTADD$A$AD89u[^_ÐD$-ÐSÃ$Ft $4FÉ\$$BGt-BB[Ã1[ÍvUWVSt$0|$4tqF‰T$ $ӋT$ uDtd11)9Ot+Quݍ+t7[^_]Ã렍&t1[^_]11̃ D$ ÐWVSt$$\$ 4$t;t.>ljt';u 'f;t|$t$$H6u؃[^_Ã1[^_ÐD$$tt t&T$(D$D$ T$$  'S=AD$$t Att;[ 0F0FtftЃ0Fu[ D$(D$D$D$ $d f1ÐHFD$Ít&'D$ÐS(F$D$$F$D$F$D$D$D$D$D$D$0$xËD$$zFD$$i$FP([ÐD$0$tF([Í&'D$ $1ÐUVS]=wB==D$$ t $ U=t"=th=tSADt<]e[^]1D$$yt$иe[^]t&=uD$$.t)t$D$$ 롍t&D$$D$$kYa1Ðt<@@@TIt1B' tt(9r1[^É։[^Ðt&f=@MZt1f@t@Í1f=@MZtf@t%D$ $@-@D$t@$Í1W1VSf=@MZ\$t [^_ø@6t<@@tډt$$@StƁ@u 뺍vJuB tz [^@_Í1[^_ÐQP=L$ r -=w) XYÐffUWVS<] $@uRۉf;(BD؅f>@A>@A>@A>@A B@A@@APA@AA@A B@A0B@A`B@Ap@Ap@iAp@A P@Ap@A@Ap@A@Ap@ AP@{[(<'"`AA*ApA3AyAAABAAFAAJAANAARAAVAA[AA_AAcAAaAhAoAvAzA~AAAAAAAAAAAAAAAAAAAAAAAAAAA-A2A8AAAAAAAAA!A+A5A:A@AAAAAAAA A)A3A=ABAHAAAA"A*A0A6A=ADALATA]AfApAzAAAAAAAAAAAAAAAAAAAAA$A,A4A>AHAPAXA`AhAmAtAAA"A)A0A8A@AIARA\AfAnAxAA AAAA A&A-A4A4A:AAAHAHANAUA\AbAhAoAvA~AAAAAAAAAAAAAAAAA AAA!A(AAAAAAAAAAzAAAAAAAAAAAAAAAAAAAAAAAAAA#A-A4AADALAAAAAAAAAA A(AAAA AAA"A+A4A>AHAQAZAaAhAqAzAAAAA5ABGBQB\BBBB BBB'B1B;BCBKBQBXBBBBB BBB'B1B8B@BBBBBBBBBB!B(B0B8BBBBBBBB BBB$BBBBBB BBB"B*B2B;BDBNBXB_BhBBBBBBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBBBBBBBBBBBB B*B4B;BDBBBBBBBB B B B B B B B B B B BY!Ba!Bi!Br!B{!B!B!B!B!BI"BR"B["Be"Bo"Bv"B}"B"B"B"B"B"B"B"B"B|#B#B#B#B#B#B#B#B#B#B#B#B#B#B#B$B$B$B$B$B$B$B$B$B$B$BN%BW%B`%Bj%Bt%B|%B%B%B&B &B&B&B%&B,&B&B&B&B&B&B&B&B&B&Bg'Bp'By'B'B'B'B'B(B(B&(B0(B:(BB(BL(B(B(B(B(B(B(B)B)B)B)B)B)B)B)B)B)B:*BB*BJ*BS*B\*Bf*Bp*Bp*Bx*B*B*B+B +B+B+B)+B0+B8+B+B+B+B+B+B+B+B+B+Bu,B},B,B,B,B,B,B,B,B0-B9-BB-BL-BV-B]-Bd-B-B-B-B-B.B .B.B.B$.B.B.B.B.B.B.B.B.B.B[/Bc/Bk/Bt/B}/B/B/B/B/B0B!0B*0B40B>0BF0BP0B0B0B0B0B0B0B1B1B1B1B1B1B1B1B1B1B1B1B2B 2B 2B2B2B2B2B2B2B2B2B2B2B3B 3B3B!3B(3B03B3B3B3B3B3B3B3B3B3Bf4Bn4Bv4B4B4B4B4B5B"5B+5B55B?5B?5BH5B5B5B5B5B5B5B5B6B 6B6B6B6B6B6B6B6B+7B47B=7BG7BQ7BX7B`7B7B7B7B7B8B 8B8B8B8B8B8B8B8B8B8B8B8B8B8B8Bo9Bw9B9B9B9B9B9B9B9B.:B7:B@:BJ:BT:BT:B\:B:B:B:B:B:B;B;B;B ;B;B;B;B;B;B;B;B;B;B;B;BB>B>B!>B)>B1>B<>B>B>B>B>B>B>B>Bg?Bo?Bw?B?B?B?B?B?B?B9@BC@BM@BU@B]@Bf@Bo@By@B@B@B@BSBGSBPSBZSBdSBmSBvSB~SBSBSBSB TBTBTB)TB3TB:TBDTBTBTBTBTBTBTBTBTBTBUBUBUBUBUBUBUBUBUBUBUBUBVBqVB{VBVBVBVBVBVBWB"WB+WB5WB?WBGWBPWBWBWBWBWBWBXB XB{XBXBXBXBXBXBXB?YBHYBQYB[YBeYBnYBwYBYBYBYBYBYBYBZBZB(ZB2ZB{BG{BQ{B[{Bc{Bl{B{B{B{B{B|B |B|B|B|B|B|B|B|B|B"}B+}B4}B>}BH}BP}BX}B}B}B}B}B}B}B~Bt~B}~B~B~B~B~B~BBB)B1B<BBBBBBBBQBZBcBmBwBBBBBBBB$B,BBBBBBʁBԁBOBYBcBlBuBBBBBBBB$B.B6B@BBBBɃBӃBۃBBSB\BeBoByBBBB BBB'B-B4BŅB̅BӅBۅBBBBB BBBBBBȆBІBنBBBB @@ϋB @B@B`@ B@@B@*B@:B`@MBVBkBBBB܌BBBB\BBBMBVB`BeBhBtBvBvBxBBBBBBBBBBŽBvBBBvBvB\BBB!B`@#B@0B0@7B@EB@RB@[B@eB`@zB@@B@B @B@B@B@ΏB@ۏB@B`@B@@B`@B@ BP@B @$B@3B@HB@TB@gB @tB@~B@B@B`@B@@͐B @ސB@B@B@B@B@+B`@8B@@HB @[B @mB @B @B @B@B`@B @@ƑB @ϋB @ݑB@B@B@B@B`@B@@B@B@)B`@ B@@5B @B@IB@*B@OB@cB@:B`@jB@rB@@{BBBBBDBxBBBBLBBĔBB0BdBB̕BB4B`BvBBؖB BdBBB,BtBvBBBDBvBpBBBvB$BdBBB4BvBXBdBvBBBdBvBBBLBBԜBvBBB"@ #@#@"@>"@@#@&"@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@"@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@@#@"@@ input byte=%ld line=%ld column=%2ld output byte=%ld line=%ld column=%2ld File positions: input [] output [] Entry Value Current%s "%s", line %ld: %s. . Unexpected paragraph break for field ``%f''Out of string memorybibclean.inibibclean.isbbibclean.keyBIBCLEANINIBIBCLEANISBNBIBCLEANKEYstdoutOut of memory for pattern tablesPATHBIBINPUTS: FAILED%%%s open file [%s]%s %s%s %s:%ld:%s. Pushback buffer overflow: characters lostchaptermonthnumberpagesvolumeyearUNKNOWNABBREVATCOMMACOMMENTENTRYEQUALSFIELDINCLUDEINLINEKEYLBRACELITERALNEWLINEPREAMBLERBRACESHARPSPACESTRINGVALUEɳAѳAسA۳AAAAAAA AAAA&A/A6AAKAYAgAuAAAAA}])>'"`ansi-standard-numberANSI-standard-numberbook-doibook-urlcodendoiieee-standard-numberIEEE-standard-numberisbnjournal-urlisbn-13iso-standard-numberISO-standard-numberissnissn-llccnLCCNmrclassMRclassmrnumberMRnumbermrreviewerMRrevieweruriURIurlurnURNxxansi-standard-numberxxANSI-standard-numberxxcodenxxCODENxxdoixxDOIxxieee-standard-numberxxIEEE-standard-numberxxisbnxxISBNxxiso-standard-numberxxISO-standard-numberxxissnxxISSNxxmrclassxxMRclassxxmrnumberxxMRnumberxxmrreviewerxxMRreviewerxxurixxURIxxurlxxURLxxurnxxURNzmclassZMclasszmnumberZMnumberzmreviewerZMreviewerJanuaryjanFebruaryfebMarchmarAprilaprMaymayJunejunJulyjulAugustaugSeptembersepOctoberoctNovembernovDecemberdecJan.Feb.Mar.Apr.Jun.Jul.Aug.Sep.Sept.Oct.Nov.Dec.JanFebMarAprJunJulAugSepSeptOctNovDecfix.cs[k - 1] == '}'s[m] == '{'{ }Unbalanced brace(s) in value ``%v''`@@@@@`@@@@@@@`@@@@@@@@@@@@@@@`@@@@Е@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`@@`@@@@@@@@@@@@@@@P@@@@@@@@@@@@@@@`@^_([{`',.:;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-)]^_{}`)]}',.:;-ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\^_\+-/*:<>+-/*:<>Unusual compound assignment or equality-test operator in math mode value ``%v'' (e.g., perhaps replace <= by \leq)=<>+-*<>Subscript operator outside math mode in value ``%v''Superscript operator outside math mode in value ``%v''Unbackslashed math word in math mode in value ``%v''Unbalanced math-mode dollar(s) in value ``%v''Unexpected TeX tie[s] (tilde[s]) in math mode ``%v''arccosarcsinarctanargcoscoshcotcothcscdegdetdimexpgcdhominfkerlglimliminflimsuplnlogmaxminPrsecsinsinhsuptantanh@B@B@B@c@B@@B@Ǧ@V@B@`@@`@B@`@B@B@B@B@B@B@B@B@B@B@@@ԥ@Ф@ԥ@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@Ǧ@Ѡ@V@@@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@@B@0@@"" # # "" and Hbcdrtuv`'^"~=}"${})>]",;.,:;."Final period/dot/fullstop is unexpected, and often wrong, in BibTeX title ``%v''...Literal ellipsis ... should probably be \ldots{} in BibTeX title ``%v''\bf\em\it\rm\sf\sl\ttUnclosed math mode in value ``%v'': FAILED%%%s lookup file [%s]%s ;,|\Invalid country/language-publisher ISBN prefix [%s] in ISBN file [%s] Non-increasing country/language-publisher ISBN range [%s .. %s] in ISBN file [%s] r Expected end-prefix after begin-prefix [%s] in ISBN file [%s] More than %lu ISBN ranges fills internal table %%%%%% ISBN ranges and country/language groups %s%-11s %-11s%s%s 978979ISBN-13 must begin with either 978 or 979: ``%v''Illegal ISBN range end [%s .. NULL] Invalid country/language-publisher ISBN prefix [%s] Non-increasing country/language-publisher ISBN range [%s .. %s] deleted Missing country names for ISBN range [%s .. %s] 0-000-19Region name: English language Country code(s): ?? Language group: 0 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 949999; 9500000 - 99999990-2000-6990-70000-84990-850000-899990-9000000-9499990-95000000-99999991-001-09Region name: English language Country code(s): ?? Language group: 1 Publisher(s): 00 - 09; 100 - 399; 4000 - 5499; 55000 - 86979; 869800 - 998999; 9990000 - 99999991-1001-3991-40001-54991-550001-869791-8698001-9989991-99900001-99999992-002-19Region name: French language Country code(s): ?? Language group: 2 Publisher(s): 00 - 19; 200 - 349; 35000 - 39999; 400 - 699; 7000 - 8399; 84000 - 89999; 900000 - 949999; 9500000 - 99999992-2002-3492-350002-399992-4002-6992-70002-83992-840002-899992-9000002-9499992-95000002-99999993-003-02Region name: German language Country code(s): ?? Language group: 3 Publisher(s): 00 - 02; 030 - 033; 0340 - 0369; 03700 - 03999; 04 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 949999; 9500000 - 9539999; 95400 - 96999; 9700000 - 9899999; 99000 - 99499; 99500 - 999993-0303-0333-03403-03693-037003-039993-043-193-2003-6993-70003-84993-850003-899993-9000003-9499993-95000003-95399993-954003-969993-97000003-98999993-990003-994993-995003-999994-004-19Region name: Japan Country code(s): JP Language group: 4 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 949999; 9500000 - 99999994-2004-6994-70004-84994-850004-899994-9000004-9499994-95000004-99999995-000005-00499Region name: Russian Federation and former USSR Country code(s): RU Language group: 5 Publisher(s): 00000 - 00499; 0050 - 0099; 01 - 19; 200 - 420; 4210 - 4299; 430 - 430; 4310 - 4399; 440 - 440; 4410 - 4499; 450 - 699; 7000 - 8499; 85000 - 89999; 900000 - 909999; 91000 - 91999; 9200 - 9299; 93000 - 94999; 9500000 - 9500999; 9501 - 9799; 98000 - 98999; 9900000 - 9909999; 9910 - 99995-00505-00995-015-195-2005-4205-42105-42995-4305-43105-43995-4405-44105-44995-4505-6995-70005-84995-850005-899995-9000005-9099995-910005-919995-92005-92995-930005-949995-95000005-95009995-95015-97995-980005-989995-99000005-99099995-99105-9999600-00600-09Region name: Iran Country code(s): IR Language group: 600 Publisher(s): 00 - 09; 100 - 499; 5000 - 8999; 90000 - 99999600-100600-499600-5000600-8999600-90000600-99999601-00601-19Region name: Kazakhstan Country code(s): KZ Language group: 601 Publisher(s): 00 - 19; 200 - 699; 7000 - 7999; 80000 - 84999; 85 - 99601-200601-699601-7000601-7999601-80000601-84999601-85601-99602-00602-14Region name: Indonesia Country code(s): ID Language group: 602 Publisher(s): 00 - 14; 1500 - 1699; 17000 - 17999; 18000 - 18999; 19000 - 19999; 200 - 749; 7500 - 7999; 8000 - 9499; 95000 - 99999602-1500602-1699602-17000602-17999602-18000602-18999602-19000602-19999602-200602-749602-7500602-7999602-8000602-9499602-95000602-99999603-00603-04Region name: Saudi Arabia Country code(s): SA Language group: 603 Publisher(s): 00 - 04; 05 - 49; 500 - 799; 8000 - 8999; 90000 - 99999603-05603-49603-500603-799603-8000603-8999603-90000603-99999604-0604-4Region name: Vietnam Country code(s): VN Language group: 604 Publisher(s): 0 - 4; 50 - 89; 900 - 979; 9800 - 9999604-50604-89604-900604-979604-9800604-9999605-01605-09Region name: Turkey Country code(s): TR Language group: 605 Publisher(s): 01 - 09; 100 - 399; 4000 - 5999; 60000 - 89999; 90 - 99605-100605-399605-4000605-5999605-60000605-89999605-90605-99606-0Region name: Romania Country code(s): RO Language group: 606 Publisher(s): 0 - 0; 10 - 49; 500 - 799; 8000 - 9199; 92000 - 99999606-10606-49606-500606-799606-8000606-9199606-92000606-99999607-00607-39Region name: Mexico Country code(s): MX Language group: 607 Publisher(s): 00 - 39; 400 - 749; 7500 - 9499; 95000 - 99999607-400607-749607-7500607-9499607-95000607-99999608-0Region name: Macedonia Country code(s): MK Language group: 608 Publisher(s): 0 - 0; 10 - 19; 200 - 449; 4500 - 6499; 65000 - 69999; 7 - 9608-10608-19608-200608-449608-4500608-6499608-65000608-69999608-7608-9609-00609-39Region name: Lithuania Country code(s): LT Language group: 609 Publisher(s): 00 - 39; 400 - 799; 8000 - 9499; 95000 - 99999609-400609-799609-8000609-9499609-95000609-99999612-00612-29Region name: Peru Country code(s): PE Language group: 612 Publisher(s): 00 - 29; 300 - 399; 4000 - 4499; 45000 - 49999; 50 - 99612-300612-399612-4000612-4499612-45000612-49999612-50612-99613-0613-9Region name: Mauritius Country code(s): MU Language group: 613 Publisher(s): 0 - 9614-00614-39Region name: Lebanon Country code(s): LB Language group: 614 Publisher(s): 00 - 39; 400 - 799; 8000 - 9499; 95000 - 99999614-400614-799614-8000614-9499614-95000614-99999615-00615-09Region name: Hungary Country code(s): HU Language group: 615 Publisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 89999615-100615-499615-5000615-7999615-80000615-89999616-00616-19Region name: Thailand Country code(s): TH Language group: 616 Publisher(s): 00 - 19; 200 - 699; 7000 - 8999; 90000 - 99999616-200616-699616-7000616-8999616-90000616-99999617-00617-49Region name: Ukraine Country code(s): UA Language group: 617 Publisher(s): 00 - 49; 500 - 699; 7000 - 8999; 90000 - 99999617-500617-699617-7000617-8999617-90000617-99999618-00618-19Region name: Greece Country code(s): GR Language group: 618 Publisher(s): 00 - 19; 200 - 499; 5000 - 7999; 80000 - 99999618-200618-499618-5000618-7999618-80000618-99999619-00619-14Region name: Bulgaria Country code(s): BG Language group: 619 Publisher(s): 00 - 14; 150 - 699; 7000 - 8999; 90000 - 99999619-150619-699619-7000619-8999619-90000619-99999620-0620-9Region name: Mauritius Country code(s): MU Language group: 620 Publisher(s): 0 - 9621-00621-29Region name: Philippines Country code(s): PH Language group: 621 Publisher(s): 00 - 29; 400 - 599; 8000 - 8999; 95000 - 99999621-400621-599621-8000621-8999621-95000621-999997-007-09Region name: China, People's Republic Country code(s): CN Language group: 7 Publisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 89999; 900000 - 9999997-1007-4997-50007-79997-800007-899997-9000007-99999980-0080-19Region name: Czech Republic and Slovakia Country code(s): CZ Language group: 80 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 99999980-20080-69980-700080-849980-8500080-8999980-90000080-99999981-0081-19Region name: India Country code(s): IN Language group: 81 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 99999981-20081-69981-700081-849981-8500081-8999981-90000081-99999982-0082-19Region name: Norway Country code(s): NO Language group: 82 Publisher(s): 00 - 19; 200 - 699; 7000 - 8999; 90000 - 98999; 990000 - 99999982-20082-69982-700082-899982-9000082-9899982-99000082-99999983-0083-19Region name: Poland Country code(s): PL Language group: 83 Publisher(s): 00 - 19; 200 - 599; 60000 - 69999; 7000 - 8499; 85000 - 89999; 900000 - 99999983-20083-59983-6000083-6999983-700083-849983-8500083-8999983-90000083-99999984-0084-13Region name: Spain Country code(s): ES Language group: 84 Publisher(s): 00 - 13; 140 - 149; 15000 - 19999; 200 - 699; 7000 - 8499; 85000 - 89999; 9000 - 9199; 920000 - 923999; 92400 - 92999; 930000 - 949999; 95000 - 96999; 9700 - 999984-14084-14984-1500084-1999984-20084-69984-700084-849984-8500084-8999984-900084-919984-92000084-92399984-9240084-9299984-93000084-94999984-9500084-9699984-970084-999985-0085-19Region name: Brazil Country code(s): BR Language group: 85 Publisher(s): 00 - 19; 200 - 599; 60000 - 69999; 7000 - 8499; 85000 - 89999; 900000 - 979999; 98000 - 9999985-20085-59985-6000085-6999985-700085-849985-8500085-8999985-90000085-97999985-9800085-9999986-0086-29Region name: Serbia (shared) Country code(s): RS Language group: 86 Publisher(s): 00 - 29; 300 - 599; 6000 - 7999; 80000 - 89999; 900000 - 99999986-30086-59986-600086-799986-8000086-8999986-90000086-99999987-0087-29Region name: Denmark Country code(s): DK Language group: 87 Publisher(s): 00 - 29; 400 - 649; 7000 - 7999; 85000 - 94999; 970000 - 99999987-40087-64987-700087-799987-8500087-9499987-97000087-99999988-0088-19Region name: Italy Country code(s): IT Language group: 88 Publisher(s): 00 - 19; 200 - 599; 6000 - 8499; 85000 - 89999; 900000 - 909999; 910 - 929; 95000 - 9999988-20088-59988-600088-849988-8500088-8999988-90000088-90999988-91088-92988-9500088-9999989-0089-24Region name: Korea, Republic Country code(s): KR Language group: 89 Publisher(s): 00 - 24; 250 - 549; 5500 - 8499; 85000 - 94999; 950000 - 969999; 97000 - 98999; 990 - 99989-25089-54989-550089-849989-8500089-9499989-95000089-96999989-9700089-9899989-99089-99990-0090-19Region name: Netherlands Country code(s): NL Language group: 90 Publisher(s): 00 - 19; 200 - 499; 5000 - 6999; 70000 - 79999; 800000 - 849999; 8500 - 8999; 90 - 90; 94 - 9490-20090-49990-500090-699990-7000090-7999990-80000090-84999990-850090-899990-9090-9491-091-1Region name: Sweden Country code(s): SE Language group: 91 Publisher(s): 0 - 1; 20 - 49; 500 - 649; 7000 - 7999; 85000 - 94999; 970000 - 99999991-2091-4991-50091-64991-700091-799991-8500091-9499991-97000091-99999992-092-5Region name: International NGO Publishers and EC Organizations Country code(s): ?? Language group: 92 Publisher(s): 0 - 5; 60 - 79; 800 - 899; 9000 - 9499; 95000 - 98999; 990000 - 99999992-6092-7992-80092-89992-900092-949992-9500092-9899992-99000092-99999993-0093-09Region name: India Country code(s): IN Language group: 93 Publisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 94999; 950000 - 99999993-10093-49993-500093-799993-8000093-9499993-95000093-99999994-00094-599Region name: Netherlands Country code(s): NL Language group: 94 Publisher(s): 000 - 599; 6000 - 8999; 90000 - 9999994-600094-899994-9000094-99999950-00950-49Region name: Argentina Country code(s): AR Language group: 950 Publisher(s): 00 - 49; 500 - 899; 9000 - 9899; 99000 - 99999950-500950-899950-9000950-9899950-99000950-99999951-0951-1Region name: Finland Country code(s): FI Language group: 951 Publisher(s): 0 - 1; 20 - 54; 550 - 889; 8900 - 9499; 95000 - 99999951-20951-54951-550951-889951-8900951-9499951-95000951-99999952-00952-19Region name: Finland Country code(s): FI Language group: 952 Publisher(s): 00 - 19; 200 - 499; 5000 - 5999; 60 - 65; 6600 - 6699; 67000 - 69999; 7000 - 7999; 80 - 94; 9500 - 9899; 99000 - 99999952-200952-499952-5000952-5999952-60952-65952-6600952-6699952-67000952-69999952-7000952-7999952-80952-94952-9500952-9899952-99000952-99999953-0Region name: Croatia Country code(s): HR Language group: 953 Publisher(s): 0 - 0; 10 - 14; 150 - 509; 51 - 54; 55000 - 59999; 6000 - 9499; 95000 - 99999953-10953-14953-150953-509953-51953-54953-55000953-59999953-6000953-9499953-95000953-99999954-00954-28Region name: Bulgaria Country code(s): BG Language group: 954 Publisher(s): 00 - 28; 2900 - 2999; 300 - 799; 8000 - 8999; 90000 - 92999; 9300 - 9999954-2900954-2999954-300954-799954-8000954-8999954-90000954-92999954-9300954-9999955-0000955-1999Region name: Sri Lanka Country code(s): LK Language group: 955 Publisher(s): 0000 - 1999; 20 - 43; 44000 - 44999; 4500 - 4999; 50000 - 54999; 550 - 799; 8000 - 9499; 95000 - 99999955-20955-43955-44000955-44999955-4500955-4999955-50000955-54999955-550955-799955-8000955-9499955-95000955-99999956-00956-19Region name: Chile Country code(s): CL Language group: 956 Publisher(s): 00 - 19; 200 - 699; 7000 - 9999956-200956-699956-7000956-9999957-00957-02Region name: Taiwan Country code(s): TW Language group: 957 Publisher(s): 00 - 02; 0300 - 0499; 05 - 19; 2000 - 2099; 21 - 27; 28000 - 30999; 31 - 43; 440 - 819; 8200 - 9699; 97000 - 99999957-0300957-0499957-05957-19957-2000957-2099957-21957-27957-28000957-30999957-31957-43957-440957-819957-8200957-9699957-97000957-99999958-00958-56Region name: Colombia Country code(s): CO Language group: 958 Publisher(s): 00 - 56; 57000 - 59999; 600 - 799; 8000 - 9499; 95000 - 99999958-57000958-59999958-600958-799958-8000958-9499958-95000958-99999959-00959-19Region name: Cuba Country code(s): CU Language group: 959 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 99999959-200959-699959-7000959-8499959-85000959-99999960-00960-19Region name: Greece Country code(s): GR Language group: 960 Publisher(s): 00 - 19; 200 - 659; 6600 - 6899; 690 - 699; 7000 - 8499; 85000 - 92999; 93 - 93; 9400 - 9799; 98000 - 99999960-200960-659960-6600960-6899960-690960-699960-7000960-8499960-85000960-92999960-93960-9400960-9799960-98000960-99999961-00961-19Region name: Slovenia Country code(s): SI Language group: 961 Publisher(s): 00 - 19; 200 - 599; 6000 - 8999; 90000 - 94999961-200961-599961-6000961-8999961-90000961-94999962-00962-19Region name: Hong Kong, China Country code(s): HK Language group: 962 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 86999; 8700 - 8999; 900 - 999962-200962-699962-7000962-8499962-85000962-86999962-8700962-8999962-900962-999963-00963-19Region name: Hungary Country code(s): HU Language group: 963 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 9000 - 9999963-200963-699963-7000963-8499963-85000963-89999963-9000963-9999964-00964-14Region name: Iran Country code(s): IR Language group: 964 Publisher(s): 00 - 14; 150 - 249; 2500 - 2999; 300 - 549; 5500 - 8999; 90000 - 96999; 970 - 989; 9900 - 9999964-150964-249964-2500964-2999964-300964-549964-5500964-8999964-90000964-96999964-970964-989964-9900964-9999965-00965-19Region name: Israel Country code(s): IL Language group: 965 Publisher(s): 00 - 19; 200 - 599; 7000 - 7999; 90000 - 99999965-200965-599965-7000965-7999965-90000965-99999966-00966-12Region name: Ukraine Country code(s): UA Language group: 966 Publisher(s): 00 - 12; 130 - 139; 14 - 14; 1500 - 1699; 170 - 199; 2000 - 2789; 279 - 289; 2900 - 2999; 300 - 699; 7000 - 8999; 90000 - 90999; 910 - 949; 95000 - 97999; 980 - 999966-130966-139966-14966-1500966-1699966-170966-199966-2000966-2789966-279966-289966-2900966-2999966-300966-699966-7000966-8999966-90000966-90999966-910966-949966-95000966-97999966-980966-999967-00Region name: Malaysia Country code(s): MY Language group: 967 Publisher(s): 00 - 00; 0100 - 0999; 10000 - 19999; 300 - 499; 5000 - 5999; 60 - 89; 900 - 989; 9900 - 9989; 99900 - 99999967-0100967-0999967-10000967-19999967-300967-499967-5000967-5999967-60967-89967-900967-989967-9900967-9989967-99900967-99999968-01968-39Region name: Mexico Country code(s): MX Language group: 968 Publisher(s): 01 - 39; 400 - 499; 5000 - 7999; 800 - 899; 9000 - 9999968-400968-499968-5000968-7999968-800968-899968-9000968-9999969-0969-1Region name: Pakistan Country code(s): PK Language group: 969 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999969-20969-39969-400969-799969-8000969-9999970-01970-59Region name: Mexico Country code(s): MX Language group: 970 Publisher(s): 01 - 59; 600 - 899; 9000 - 9099; 91000 - 96999; 9700 - 9999970-600970-899970-9000970-9099970-91000970-96999970-9700970-9999971-000971-015Region name: Philippines Country code(s): PH Language group: 971 Publisher(s): 000 - 015; 0160 - 0199; 02 - 02; 0300 - 0599; 06 - 09; 10 - 49; 500 - 849; 8500 - 9099; 91000 - 95999; 9600 - 9699; 97 - 98; 9900 - 9999971-0160971-0199971-02971-0300971-0599971-06971-09971-10971-49971-500971-849971-8500971-9099971-91000971-95999971-9600971-9699971-97971-98971-9900971-9999972-0972-1Region name: Portugal Country code(s): PT Language group: 972 Publisher(s): 0 - 1; 20 - 54; 550 - 799; 8000 - 9499; 95000 - 99999972-20972-54972-550972-799972-8000972-9499972-95000972-99999973-0Region name: Romania Country code(s): RO Language group: 973 Publisher(s): 0 - 0; 100 - 169; 1700 - 1999; 20 - 54; 550 - 759; 7600 - 8499; 85000 - 88999; 8900 - 9499; 95000 - 99999973-100973-169973-1700973-1999973-20973-54973-550973-759973-7600973-8499973-85000973-88999973-8900973-9499973-95000973-99999974-00974-19Region name: Thailand Country code(s): TH Language group: 974 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 90000 - 94999; 9500 - 9999974-200974-699974-7000974-8499974-85000974-89999974-90000974-94999974-9500974-9999975-00000975-01999Region name: Turkey Country code(s): TR Language group: 975 Publisher(s): 00000 - 01999; 02 - 24; 250 - 599; 6000 - 9199; 92000 - 98999; 990 - 999975-02975-24975-250975-599975-6000975-9199975-92000975-98999975-990975-999976-0976-3Region name: Caribbean Community Country code(s): ?? Language group: 976 Publisher(s): 0 - 3; 40 - 59; 600 - 799; 8000 - 9499; 95000 - 99999976-40976-59976-600976-799976-8000976-9499976-95000976-99999977-00977-19Region name: Egypt Country code(s): EG Language group: 977 Publisher(s): 00 - 19; 200 - 499; 5000 - 6999; 700 - 849; 85000 - 89999; 90 - 99977-200977-499977-5000977-6999977-700977-849977-85000977-89999977-90977-99978-000978-199Region name: Nigeria Country code(s): NG Language group: 978 Publisher(s): 000 - 199; 2000 - 2999; 30000 - 79999; 8000 - 8999; 900 - 999978-2000978-2999978-30000978-79999978-8000978-8999978-900978-999979-000979-099Region name: Indonesia Country code(s): ID Language group: 979 Publisher(s): 000 - 099; 1000 - 1499; 15000 - 19999; 20 - 29; 3000 - 3999; 400 - 799; 8000 - 9499; 95000 - 99999979-1000979-1499979-15000979-19999979-20979-29979-3000979-3999979-400979-799979-8000979-9499979-95000979-99999980-00980-19Region name: Venezuela Country code(s): VE Language group: 980 Publisher(s): 00 - 19; 200 - 599; 6000 - 9999980-200980-599980-6000980-9999981-00981-11Region name: Singapore Country code(s): SG Language group: 981 Publisher(s): 00 - 11; 200 - 289; 290 - 299; 3000 - 3099; 310 - 399; 4000 - 9999981-200981-289981-290981-299981-3000981-3099981-310981-399981-4000981-9999982-00982-09Region name: South Pacific Country code(s): ?? Language group: 982 Publisher(s): 00 - 09; 100 - 699; 70 - 89; 9000 - 9799; 98000 - 99999982-100982-699982-70982-89982-9000982-9799982-98000982-99999983-00983-01Region name: Malaysia Country code(s): MY Language group: 983 Publisher(s): 00 - 01; 020 - 199; 2000 - 3999; 40000 - 44999; 45 - 49; 50 - 79; 800 - 899; 9000 - 9899; 99000 - 99999983-020983-199983-2000983-3999983-40000983-44999983-45983-49983-50983-79983-800983-899983-9000983-9899983-99000983-99999984-00984-39Region name: Bangladesh Country code(s): BD Language group: 984 Publisher(s): 00 - 39; 400 - 799; 8000 - 8999; 90000 - 99999984-400984-799984-8000984-8999984-90000984-99999985-00985-39Region name: Belarus Country code(s): BY Language group: 985 Publisher(s): 00 - 39; 400 - 599; 6000 - 8999; 90000 - 99999985-400985-599985-6000985-8999985-90000985-99999986-00986-11Region name: Taiwan Country code(s): TW Language group: 986 Publisher(s): 00 - 11; 120 - 559; 5600 - 7999; 80000 - 99999986-120986-559986-5600986-7999986-80000986-99999987-00987-09Region name: Argentina Country code(s): AR Language group: 987 Publisher(s): 00 - 09; 1000 - 1999; 20000 - 29999; 30 - 49; 500 - 899; 9000 - 9499; 95000 - 99999987-1000987-1999987-20000987-29999987-30987-49987-500987-899987-9000987-9499987-95000987-99999988-00988-11Region name: Hong Kong, China Country code(s): HK Language group: 988 Publisher(s): 00 - 11; 12000 - 14999; 15000 - 16999; 17000 - 19999; 200 - 799; 8000 - 9699; 97000 - 99999988-12000988-14999988-15000988-16999988-17000988-19999988-200988-799988-8000988-9699988-97000988-99999989-0989-1Region name: Portugal Country code(s): PT Language group: 989 Publisher(s): 0 - 1; 20 - 54; 550 - 799; 8000 - 9499; 95000 - 99999989-20989-54989-550989-799989-8000989-9499989-95000989-999999927-009927-09Region name: Qatar Country code(s): QA Language group: 9927 Publisher(s): 00 - 09; 100 - 399; 4000 - 49999927-1009927-3999927-40009927-49999928-009928-09Region name: Albania Country code(s): AL Language group: 9928 Publisher(s): 00 - 09; 100 - 399; 4000 - 49999928-1009928-3999928-40009928-49999929-09929-3Region name: Guatemala Country code(s): GT Language group: 9929 Publisher(s): 0 - 3; 40 - 54; 550 - 799; 8000 - 99999929-409929-549929-5509929-7999929-80009929-99999930-009930-49Region name: Costa Rica Country code(s): CR Language group: 9930 Publisher(s): 00 - 49; 500 - 939; 9400 - 99999930-5009930-9399930-94009930-99999931-009931-29Region name: Algeria Country code(s): DZ Language group: 9931 Publisher(s): 00 - 29; 300 - 899; 9000 - 99999931-3009931-8999931-90009931-99999932-009932-39Region name: Lao People's Democratic Republic Country code(s): LA Language group: 9932 Publisher(s): 00 - 39; 400 - 849; 8500 - 99999932-4009932-8499932-85009932-99999933-0Region name: Syria Country code(s): SY Language group: 9933 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 99999933-109933-399933-4009933-8999933-90009933-99999934-0Region name: Latvia Country code(s): LV Language group: 9934 Publisher(s): 0 - 0; 10 - 49; 500 - 799; 8000 - 99999934-109934-499934-5009934-7999934-80009934-99999935-0Region name: Iceland Country code(s): IS Language group: 9935 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 99999935-109935-399935-4009935-8999935-90009935-99999936-09936-1Region name: Afghanistan Country code(s): AF Language group: 9936 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 99999936-209936-399936-4009936-7999936-80009936-99999937-09937-2Region name: Nepal Country code(s): NP Language group: 9937 Publisher(s): 0 - 2; 30 - 49; 500 - 799; 8000 - 99999937-309937-499937-5009937-7999937-80009937-99999938-009938-79Region name: Tunisia Country code(s): TN Language group: 9938 Publisher(s): 00 - 79; 800 - 949; 9500 - 99999938-8009938-9499938-95009938-99999939-09939-4Region name: Armenia Country code(s): AM Language group: 9939 Publisher(s): 0 - 4; 50 - 79; 800 - 899; 9000 - 99999939-509939-799939-8009939-8999939-90009939-99999940-09940-1Region name: Montenegro Country code(s): ME Language group: 9940 Publisher(s): 0 - 1; 20 - 49; 500 - 899; 9000 - 99999940-209940-499940-5009940-8999940-90009940-99999941-0Region name: Georgia Country code(s): GE Language group: 9941 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 99999941-109941-399941-4009941-8999941-90009941-99999942-009942-89Region name: Ecuador Country code(s): EC Language group: 9942 Publisher(s): 00 - 89; 900 - 984; 9850 - 99999942-9009942-9849942-98509942-99999943-009943-29Region name: Uzbekistan Country code(s): UZ Language group: 9943 Publisher(s): 00 - 29; 300 - 399; 4000 - 99999943-3009943-3999943-40009943-99999944-00009944-0999Region name: Turkey Country code(s): TR Language group: 9944 Publisher(s): 0000 - 0999; 100 - 499; 5000 - 5999; 60 - 69; 700 - 799; 80 - 89; 900 - 9999944-1009944-4999944-50009944-59999944-609944-699944-7009944-7999944-809944-899944-9009944-9999945-00Region name: Dominican Republic Country code(s): DO Language group: 9945 Publisher(s): 00 - 00; 010 - 079; 08 - 39; 400 - 569; 57 - 57; 580 - 849; 8500 - 99999945-0109945-0799945-089945-399945-4009945-5699945-579945-5809945-8499945-85009945-99999946-09946-1Region name: Korea, P.D.R. Country code(s): KP Language group: 9946 Publisher(s): 0 - 1; 20 - 39; 400 - 899; 9000 - 99999946-209946-399946-4009946-8999946-90009946-99999947-09947-1Region name: Algeria Country code(s): DZ Language group: 9947 Publisher(s): 0 - 1; 20 - 79; 800 - 9999947-209947-799947-8009947-9999948-009948-39Region name: United Arab Emirates Country code(s): AE Language group: 9948 Publisher(s): 00 - 39; 400 - 849; 8500 - 99999948-4009948-8499948-85009948-99999949-0Region name: Estonia Country code(s): EE Language group: 9949 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 99999949-109949-399949-4009949-8999949-90009949-99999950-009950-29Region name: Palestine Country code(s): PS Language group: 9950 Publisher(s): 00 - 29; 300 - 849; 8500 - 99999950-3009950-8499950-85009950-99999951-009951-39Region name: Kosova Country code(s): ?? Language group: 9951 Publisher(s): 00 - 39; 400 - 849; 8500 - 99999951-4009951-8499951-85009951-99999952-09952-1Region name: Azerbaijan Country code(s): AZ Language group: 9952 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 99999952-209952-399952-4009952-7999952-80009952-99999953-0Region name: Lebanon Country code(s): LB Language group: 9953 Publisher(s): 0 - 0; 10 - 39; 400 - 599; 60 - 89; 9000 - 99999953-109953-399953-4009953-5999953-609953-899953-90009953-99999954-09954-1Region name: Morocco Country code(s): MA Language group: 9954 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 99999954-209954-399954-4009954-7999954-80009954-99999955-009955-39Region name: Lithuania Country code(s): LT Language group: 9955 Publisher(s): 00 - 39; 400 - 929; 9300 - 99999955-4009955-9299955-93009955-99999956-0Region name: Cameroon Country code(s): CM Language group: 9956 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 99999956-109956-399956-4009956-8999956-90009956-99999957-009957-39Region name: Jordan Country code(s): JO Language group: 9957 Publisher(s): 00 - 39; 400 - 699; 70 - 84; 8500 - 8799; 88 - 999957-4009957-6999957-709957-849957-85009957-87999957-889957-999958-009958-03Region name: Bosnia and Herzegovina Country code(s): BA Language group: 9958 Publisher(s): 00 - 03; 040 - 089; 0900 - 0999; 10 - 18; 1900 - 1999; 20 - 49; 500 - 899; 9000 - 99999958-0409958-0899958-09009958-09999958-109958-189958-19009958-19999958-209958-499958-5009958-8999958-90009958-99999959-09959-1Region name: Libya Country code(s): LY Language group: 9959 Publisher(s): 0 - 1; 20 - 79; 800 - 949; 9500 - 9699; 970 - 979; 98 - 999959-209959-799959-8009959-9499959-95009959-96999959-9709959-9799959-989959-999960-009960-59Region name: Saudi Arabia Country code(s): SA Language group: 9960 Publisher(s): 00 - 59; 600 - 899; 9000 - 99999960-6009960-8999960-90009960-99999961-09961-2Region name: Algeria Country code(s): DZ Language group: 9961 Publisher(s): 0 - 2; 30 - 69; 700 - 949; 9500 - 99999961-309961-699961-7009961-9499961-95009961-99999962-009962-54Region name: Panama Country code(s): PA Language group: 9962 Publisher(s): 00 - 54; 5500 - 5599; 56 - 59; 600 - 849; 8500 - 99999962-55009962-55999962-569962-599962-6009962-8499962-85009962-99999963-09963-1Region name: Cyprus Country code(s): CY Language group: 9963 Publisher(s): 0 - 1; 20 - 24; 250 - 279; 2800 - 2999; 30 - 54; 550 - 734; 7350 - 7499; 7500 - 99999963-209963-249963-2509963-2799963-28009963-29999963-309963-549963-5509963-7349963-73509963-74999963-75009963-99999964-09964-6Region name: Ghana Country code(s): GH Language group: 9964 Publisher(s): 0 - 6; 70 - 94; 950 - 9999964-709964-949964-9509964-9999965-009965-39Region name: Kazakhstan Country code(s): KZ Language group: 9965 Publisher(s): 00 - 39; 400 - 899; 9000 - 99999965-4009965-8999965-90009965-99999966-0009966-149Region name: Kenya Country code(s): KE Language group: 9966 Publisher(s): 000 - 149; 1500 - 1999; 20 - 69; 7000 - 7499; 750 - 959; 9600 - 99999966-15009966-19999966-209966-699966-70009966-74999966-7509966-9599966-96009966-99999967-009967-39Region name: Kyrgyz Republic Country code(s): KG Language group: 9967 Publisher(s): 00 - 39; 400 - 899; 9000 - 99999967-4009967-8999967-90009967-99999968-009968-49Region name: Costa Rica Country code(s): CR Language group: 9968 Publisher(s): 00 - 49; 500 - 939; 9400 - 99999968-5009968-9399968-94009968-99999970-009970-39Region name: Uganda Country code(s): UG Language group: 9970 Publisher(s): 00 - 39; 400 - 899; 9000 - 99999970-4009970-8999970-90009970-99999971-09971-5Region name: Singapore Country code(s): SG Language group: 9971 Publisher(s): 0 - 5; 60 - 89; 900 - 989; 9900 - 99999971-609971-899971-9009971-9899971-99009971-99999972-009972-09Region name: Peru Country code(s): PE Language group: 9972 Publisher(s): 00 - 09; 1 - 1; 200 - 249; 2500 - 2999; 30 - 59; 600 - 899; 9000 - 99999972-19972-2009972-2499972-25009972-29999972-309972-599972-6009972-8999972-90009972-99999973-009973-05Region name: Tunisia Country code(s): TN Language group: 9973 Publisher(s): 00 - 05; 060 - 089; 0900 - 0999; 10 - 69; 700 - 969; 9700 - 99999973-0609973-0899973-09009973-09999973-109973-699973-7009973-9699973-97009973-99999974-09974-2Region name: Uruguay Country code(s): UY Language group: 9974 Publisher(s): 0 - 2; 30 - 54; 550 - 749; 7500 - 9499; 95 - 999974-309974-549974-5509974-7499974-75009974-94999974-959974-999975-0Region name: Moldova Country code(s): MD Language group: 9975 Publisher(s): 0 - 0; 100 - 399; 4000 - 4499; 45 - 89; 900 - 949; 9500 - 99999975-1009975-3999975-40009975-44999975-459975-899975-9009975-9499975-95009975-99999976-09976-5Region name: Tanzania Country code(s): TZ Language group: 9976 Publisher(s): 0 - 5; 60 - 89; 900 - 989; 9900 - 99999976-609976-899976-9009976-9899976-99009976-99999977-009977-89Region name: Costa Rica Country code(s): CR Language group: 9977 Publisher(s): 00 - 89; 900 - 989; 9900 - 99999977-9009977-9899977-99009977-99999978-009978-29Region name: Ecuador Country code(s): EC Language group: 9978 Publisher(s): 00 - 29; 300 - 399; 40 - 94; 950 - 989; 9900 - 99999978-3009978-3999978-409978-949978-9509978-9899978-99009978-99999979-09979-4Region name: Iceland Country code(s): IS Language group: 9979 Publisher(s): 0 - 4; 50 - 64; 650 - 659; 66 - 75; 760 - 899; 9000 - 99999979-509979-649979-6509979-6599979-669979-759979-7609979-8999979-90009979-99999980-09980-3Region name: Papua New Guinea Country code(s): PG Language group: 9980 Publisher(s): 0 - 3; 40 - 89; 900 - 989; 9900 - 99999980-409980-899980-9009980-9899980-99009980-99999981-009981-09Region name: Morocco Country code(s): MA Language group: 9981 Publisher(s): 00 - 09; 100 - 159; 1600 - 1999; 20 - 79; 800 - 949; 9500 - 99999981-1009981-1599981-16009981-19999981-209981-799981-8009981-9499981-95009981-99999982-009982-79Region name: Zambia Country code(s): ZM Language group: 9982 Publisher(s): 00 - 79; 800 - 989; 9900 - 99999982-8009982-9899982-99009982-99999983-809983-94Region name: Gambia Country code(s): GM Language group: 9983 Publisher(s): 80 - 94; 950 - 989; 9900 - 99999983-9509983-9899983-99009983-99999984-009984-49Region name: Latvia Country code(s): LV Language group: 9984 Publisher(s): 00 - 49; 500 - 899; 9000 - 99999984-5009984-8999984-90009984-99999985-09985-4Region name: Estonia Country code(s): EE Language group: 9985 Publisher(s): 0 - 4; 50 - 79; 800 - 899; 9000 - 99999985-509985-799985-8009985-8999985-90009985-99999986-009986-39Region name: Lithuania Country code(s): LT Language group: 9986 Publisher(s): 00 - 39; 400 - 899; 9000 - 9399; 940 - 969; 97 - 999986-4009986-8999986-90009986-93999986-9409986-9699986-979986-999987-009987-39Region name: Tanzania Country code(s): TZ Language group: 9987 Publisher(s): 00 - 39; 400 - 879; 8800 - 99999987-4009987-8799987-88009987-99999988-09988-2Region name: Ghana Country code(s): GH Language group: 9988 Publisher(s): 0 - 2; 30 - 54; 550 - 749; 7500 - 99999988-309988-549988-5509988-7499988-75009988-99999989-0Region name: Macedonia Country code(s): MK Language group: 9989 Publisher(s): 0 - 0; 100 - 199; 2000 - 2999; 30 - 59; 600 - 949; 9500 - 99999989-1009989-1999989-20009989-29999989-309989-599989-6009989-9499989-95009989-999999901-0099901-49Region name: Bahrain Country code(s): BH Language group: 99901 Publisher(s): 00 - 49; 500 - 799; 80 - 9999901-50099901-79999901-8099901-9999903-099903-1Region name: Mauritius Country code(s): MU Language group: 99903 Publisher(s): 0 - 1; 20 - 89; 900 - 99999903-2099903-8999903-90099903-99999904-099904-5Region name: Netherlands Antilles and Aruba Country code(s): AN Language group: 99904 Publisher(s): 0 - 5; 60 - 89; 900 - 99999904-6099904-8999904-90099904-99999905-099905-3Region name: Bolivia Country code(s): BO Language group: 99905 Publisher(s): 0 - 3; 40 - 79; 800 - 99999905-4099905-7999905-80099905-99999906-099906-2Region name: Kuwait Country code(s): KW Language group: 99906 Publisher(s): 0 - 2; 30 - 59; 600 - 699; 70 - 89; 90 - 94; 950 - 99999906-3099906-5999906-60099906-69999906-7099906-8999906-9099906-9499906-95099906-99999908-0Region name: Malawi Country code(s): MW Language group: 99908 Publisher(s): 0 - 0; 10 - 89; 900 - 99999908-1099908-8999908-90099908-99999909-099909-3Region name: Malta Country code(s): MT Language group: 99909 Publisher(s): 0 - 3; 40 - 94; 950 - 99999909-4099909-9499909-95099909-99999910-099910-2Region name: Sierra Leone Country code(s): SL Language group: 99910 Publisher(s): 0 - 2; 30 - 89; 900 - 99999910-3099910-8999910-90099910-99999911-0099911-59Region name: Lesotho Country code(s): LS Language group: 99911 Publisher(s): 00 - 59; 600 - 99999911-60099911-99999912-099912-3Region name: Botswana Country code(s): BW Language group: 99912 Publisher(s): 0 - 3; 400 - 599; 60 - 89; 900 - 99999912-40099912-59999912-6099912-8999912-90099912-99999913-099913-2Region name: Andorra Country code(s): AD Language group: 99913 Publisher(s): 0 - 2; 30 - 35; 600 - 60499913-3099913-3599913-60099913-60499914-099914-4Region name: Suriname Country code(s): SR Language group: 99914 Publisher(s): 0 - 4; 50 - 89; 900 - 99999914-5099914-8999914-90099914-99999915-099915-4Region name: Maldives Country code(s): MV Language group: 99915 Publisher(s): 0 - 4; 50 - 79; 800 - 99999915-5099915-7999915-80099915-99999916-099916-2Region name: Namibia Country code(s): NA Language group: 99916 Publisher(s): 0 - 2; 30 - 69; 700 - 99999916-3099916-6999916-70099916-99999917-099917-2Region name: Brunei Darussalam Country code(s): BN Language group: 99917 Publisher(s): 0 - 2; 30 - 89; 900 - 99999917-3099917-8999917-90099917-99999918-099918-3Region name: Faroe Islands Country code(s): FO Language group: 99918 Publisher(s): 0 - 3; 40 - 79; 800 - 99999918-4099918-7999918-80099918-99999919-099919-2Region name: Benin Country code(s): BJ Language group: 99919 Publisher(s): 0 - 2; 300 - 399; 40 - 69; 70 - 79; 800 - 849; 850 - 899; 900 - 99999919-30099919-39999919-4099919-6999919-7099919-7999919-80099919-84999919-85099919-89999919-90099919-99999920-099920-4Region name: Andorra Country code(s): AD Language group: 99920 Publisher(s): 0 - 4; 50 - 89; 900 - 99999920-5099920-8999920-90099920-99999921-099921-1Region name: Qatar Country code(s): QA Language group: 99921 Publisher(s): 0 - 1; 20 - 69; 700 - 799; 8 - 8; 90 - 9999921-2099921-6999921-70099921-79999921-899921-9099921-9999922-099922-3Region name: Guatemala Country code(s): GT Language group: 99922 Publisher(s): 0 - 3; 40 - 69; 700 - 99999922-4099922-6999922-70099922-99999923-099923-1Region name: El Salvador Country code(s): SV Language group: 99923 Publisher(s): 0 - 1; 20 - 79; 800 - 99999923-2099923-7999923-80099923-99999924-099924-1Region name: Nicaragua Country code(s): NI Language group: 99924 Publisher(s): 0 - 1; 20 - 79; 800 - 99999924-2099924-7999924-80099924-99999925-099925-3Region name: Paraguay Country code(s): PY Language group: 99925 Publisher(s): 0 - 3; 40 - 79; 800 - 99999925-4099925-7999925-80099925-99999926-0Region name: Honduras Country code(s): HN Language group: 99926 Publisher(s): 0 - 0; 10 - 59; 600 - 899; 90 - 9999926-1099926-5999926-60099926-89999926-9099926-9999927-099927-2Region name: Albania Country code(s): AL Language group: 99927 Publisher(s): 0 - 2; 30 - 59; 600 - 99999927-3099927-5999927-60099927-99999928-0Region name: Georgia Country code(s): GE Language group: 99928 Publisher(s): 0 - 0; 10 - 79; 800 - 99999928-1099928-7999928-80099928-99999929-099929-4Region name: Mongolia Country code(s): MN Language group: 99929 Publisher(s): 0 - 4; 50 - 79; 800 - 99999929-5099929-7999929-80099929-99999930-099930-4Region name: Armenia Country code(s): AM Language group: 99930 Publisher(s): 0 - 4; 50 - 79; 800 - 99999930-5099930-7999930-80099930-99999931-099931-4Region name: Seychelles Country code(s): SC Language group: 99931 Publisher(s): 0 - 4; 50 - 79; 800 - 99999931-5099931-7999931-80099931-99999932-0Region name: Malta Country code(s): MT Language group: 99932 Publisher(s): 0 - 0; 10 - 59; 600 - 699; 7 - 7; 80 - 9999932-1099932-5999932-60099932-69999932-799932-8099932-9999933-099933-2Region name: Nepal Country code(s): NP Language group: 99933 Publisher(s): 0 - 2; 30 - 59; 600 - 99999933-3099933-5999933-60099933-99999934-099934-1Region name: Dominican Republic Country code(s): DO Language group: 99934 Publisher(s): 0 - 1; 20 - 79; 800 - 99999934-2099934-7999934-80099934-99999935-099935-2Region name: Haiti Country code(s): HT Language group: 99935 Publisher(s): 0 - 2; 30 - 59; 600 - 699; 7 - 8; 90 - 9999935-3099935-5999935-60099935-69999935-799935-899935-9099935-9999936-0Region name: Bhutan Country code(s): BT Language group: 99936 Publisher(s): 0 - 0; 10 - 59; 600 - 99999936-1099936-5999936-60099936-99999937-099937-1Region name: Macau Country code(s): MO Language group: 99937 Publisher(s): 0 - 1; 20 - 59; 600 - 99999937-2099937-5999937-60099937-99999938-099938-1Region name: Srpska, Republic of Country code(s): ?? Language group: 99938 Publisher(s): 0 - 1; 20 - 59; 600 - 899; 90 - 9999938-2099938-5999938-60099938-89999938-9099938-9999939-099939-5Region name: Guatemala Country code(s): GT Language group: 99939 Publisher(s): 0 - 5; 60 - 89; 900 - 99999939-6099939-8999939-90099939-99999940-0Region name: Georgia Country code(s): GE Language group: 99940 Publisher(s): 0 - 0; 10 - 69; 700 - 99999940-1099940-6999940-70099940-99999941-099941-2Region name: Armenia Country code(s): AM Language group: 99941 Publisher(s): 0 - 2; 30 - 79; 800 - 99999941-3099941-7999941-80099941-99999942-099942-4Region name: Sudan Country code(s): SD Language group: 99942 Publisher(s): 0 - 4; 50 - 79; 800 - 99999942-5099942-7999942-80099942-99999943-099943-2Region name: Albania Country code(s): AL Language group: 99943 Publisher(s): 0 - 2; 30 - 59; 600 - 99999943-3099943-5999943-60099943-99999944-099944-4Region name: Ethiopia Country code(s): ET Language group: 99944 Publisher(s): 0 - 4; 50 - 79; 800 - 99999944-5099944-7999944-80099944-99999945-099945-5Region name: Namibia Country code(s): NA Language group: 99945 Publisher(s): 0 - 5; 60 - 89; 900 - 99999945-6099945-8999945-90099945-99999946-099946-2Region name: Nepal Country code(s): NP Language group: 99946 Publisher(s): 0 - 2; 30 - 59; 600 - 99999946-3099946-5999946-60099946-99999947-099947-2Region name: Tajikistan Country code(s): TJ Language group: 99947 Publisher(s): 0 - 2; 30 - 69; 700 - 959; 96 - 9999947-3099947-6999947-70099947-95999947-9699947-9999948-099948-4Region name: Eritrea Country code(s): ER Language group: 99948 Publisher(s): 0 - 4; 50 - 79; 800 - 99999948-5099948-7999948-80099948-99999949-099949-1Region name: Mauritius Country code(s): MU Language group: 99949 Publisher(s): 0 - 1; 20 - 89; 900 - 99999949-2099949-8999949-90099949-99999950-099950-4Region name: Cambodia Country code(s): KH Language group: 99950 Publisher(s): 0 - 4; 50 - 79; 800 - 99999950-5099950-7999950-80099950-99999952-099952-4Region name: Mali Country code(s): ML Language group: 99952 Publisher(s): 0 - 4; 50 - 79; 800 - 99999952-5099952-7999952-80099952-99999953-099953-2Region name: Paraguay Country code(s): PY Language group: 99953 Publisher(s): 0 - 2; 30 - 79; 800 - 939; 94 - 9999953-3099953-7999953-80099953-93999953-9499953-9999954-099954-2Region name: Bolivia Country code(s): BO Language group: 99954 Publisher(s): 0 - 2; 30 - 69; 700 - 879; 88 - 9999954-3099954-6999954-70099954-87999954-8899954-9999955-099955-1Region name: Srpska, Republic of Country code(s): ?? Language group: 99955 Publisher(s): 0 - 1; 20 - 59; 600 - 799; 80 - 89; 90 - 9999955-2099955-5999955-60099955-79999955-8099955-8999955-9099955-9999956-0099956-59Region name: Albania Country code(s): AL Language group: 99956 Publisher(s): 00 - 59; 600 - 859; 86 - 9999956-60099956-85999956-8699956-9999957-099957-1Region name: Malta Country code(s): MT Language group: 99957 Publisher(s): 0 - 1; 20 - 79; 800 - 99999957-2099957-7999957-80099957-99999958-099958-4Region name: Bahrain Country code(s): BH Language group: 99958 Publisher(s): 0 - 4; 50 - 94; 950 - 99999958-5099958-9499958-95099958-99999959-099959-2Region name: Luxembourg Country code(s): LU Language group: 99959 Publisher(s): 0 - 2; 30 - 59; 600 - 99999959-3099959-5999959-60099959-99999960-0Region name: Malawi Country code(s): MW Language group: 99960 Publisher(s): 0 - 0; 10 - 94; 950 - 99999960-1099960-9499960-95099960-99999961-099961-3Region name: El Salvador Country code(s): SV Language group: 99961 Publisher(s): 0 - 3; 40 - 89; 900 - 99999961-4099961-8999961-90099961-99999962-099962-4Region name: Mongolia Country code(s): MN Language group: 99962 Publisher(s): 0 - 4; 50 - 79; 800 - 99999962-5099962-7999962-80099962-99999963-0099963-49Region name: Cambodia Country code(s): KH Language group: 99963 Publisher(s): 00 - 49; 500 - 99999963-50099963-99999964-099964-1Region name: Nicaragua Country code(s): NI Language group: 99964 Publisher(s): 0 - 1; 20 - 79; 800 - 99999964-2099964-7999964-80099964-99999965-099965-3Region name: Macau Country code(s): MO Language group: 99965 Publisher(s): 0 - 3; 40 - 79; 800 - 99999965-4099965-7999965-80099965-99999966-099966-2Region name: Kuwait Country code(s): KW Language group: 99966 Publisher(s): 0 - 2; 30 - 69; 700 - 79999966-3099966-6999966-70099966-79999967-099967-1Region name: Paraguay Country code(s): PY Language group: 99967 Publisher(s): 0 - 1; 20 - 59; 600 - 89999967-2099967-5999967-60099967-89999968-099968-3Region name: Botswana Country code(s): BW Language group: 99968 Publisher(s): 0 - 3; 400 - 599; 60 - 89; 900 - 99999968-40099968-59999968-6099968-8999968-90099968-99999969-099969-4Region name: Oman Country code(s): OM Language group: 99969 Publisher(s): 0 - 4; 50 - 79; 800 - 99999969-5099969-7999969-80099969-99999970-099970-4Region name: Haiti Country code(s): HT Language group: 99970 Publisher(s): 0 - 4; 50 - 89; 900 - 99999970-5099970-8999970-90099970-99999971-099971-5Region name: Myanmar Country code(s): MM Language group: 99971 Publisher(s): 0 - 5; 60 - 84; 850 - 99999971-6099971-8499971-85099971-99999972-099972-4Region name: Faroe Islands Country code(s): FO Language group: 99972 Publisher(s): 0 - 4; 50 - 89; 900 - 99999972-5099972-8999972-90099972-99910-0010-19Region name: France Country code(s): FR Language group: 10 Publisher(s): 00 - 19; 200 - 699; 7000 - 8999; 90000 - 97599; 976000 - 99999910-20010-69910-700010-899910-9000010-9759910-97600010-99999911-0011-24Region name: Korea, Republic Country code(s): KR Language group: 11 Publisher(s): 00 - 24; 250 - 549; 5500 - 8499; 85000 - 94999; 950000 - 99999911-25011-54911-550011-849911-8500011-9499911-95000011-999999Search backward: Search forward: More? f)orwd b)ackwd e)nd q)uit r)efresh t)op \/)search   PgUp PgDn Home End @@p@@@@@@@@@@@@@(@@@@@@@@@@@@...%s so far: [%s%.*s], remaining: [%.*s%s]Pattern does not match %.50sString Patternsingle letterone or more letterssingle digitone or more digitssingle roman numeralone or more roman numeralsone word (letters and digits)one or more space-separated wordsone or more special-separated words !#()*+,-./:;?[]~one or more whitespace charactersexactly one special characterone or more special charactersanything else: exact matchend of string@@@@@@@@@@@@@@@r@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@j@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@5@@@@@@wCannot open file [%s] for output: job terminated! no-%%%s cannot open error log file [%s] -- using stderr instead perror() saysUnrecognized option switch: %s%.*sno-print-ISBN-tableno-print-patternsno-read-init-filesno-trace-file-openingprint-ISBN-tableprint-patternsread-init-filestrace-file-openingAuthor: Nelson H. F. Beebe University of Utah Department of Mathematics, 110 LCB 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA Tel: +1 801 581 5254 FAX: +1 801 581 4148 Email: beebe@math.utah.edu, beebe@acm.org, beebe@computer.org (Internet) Copyright (C) 1990--2014 by Nelson H. F. Beebe and the Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. bibclean Version 2.16 [03-Apr-2014] Compiled by <beebe@vladim.math.utah.edu> on Apr 5 2014 10:37:59 with native pattern matchingE-mail bug reports to Nelson H. F. Beebe ?align-equalsauthorbrace-protectcheck-valuescopyleftcopyrightdebug-match-failuresdelete-empty-valueserror-logfile-positionfix-accentsfix-bracesfix-font-changesfix-initialsfix-mathfix-namesGerman-stylehelpinit-fileISBN-filekeep-linebreakskeep-parbreakskeep-preamble-spaceskeep-spaceskeep-string-spaceskeyword-filemax-widthno-align-equalsno-check-valuesno-debug-match-failuresno-delete-empty-valuesno-file-positionno-fix-accentsno-fix-bracesno-fix-font-changesno-fix-initialsno-fix-mathno-fix-namesno-German-styleno-keep-linebreaksno-keep-parbreaksno-keep-preamble-spacesno-keep-spacesno-keep-string-spacesno-parbreaksno-prettyprintno-print-keyword-tableno-quietno-remove-OPT-prefixesno-scribeno-warningsoutput-fileparbreaksprettyprintprint-keyword-tablequietremove-OPT-prefixesscribeversionwarnings Usage: [ -author ] [ -copyleft ] [ -copyright ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -ISBN-file filename ] [ -keyword-file filename ] [ -max-width nnn ] [ -[no-]align-equals ] [ -[no-]brace-protect ] [ -[no-]check-values ] [ -[no-]debug-match-failures ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-accents ] [ -[no-]fix-braces ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-math ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-ISBN-table ] [ -[no-]print-keyword-table ] [ -[no-]print-patterns ] [ -[no-]quiet ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -output-file filename ] [ -version ] [ outfile Command-line switches may be abbreviated to a unique leading prefix, and letter case is not significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag to no. For such options, the last setting determines the flag value used. That is significant when options are also specified in initialization files (see the INITIALIZATION FILES manual section). The leading hyphen that distinguishes an option from a filename may be doubled, for compatibility with GNU and POSIX conventions. Thus, -author and --author are equivalent. To avoid confusion with options, if a filename begins with a hyphen, it must be disguised by a leading absolute or relative directory path, e.g., /tmp/-foo.bib or ./-foo.bib. -author Display an author credit on the standard error unit, stderr, and then terminate with a success return code. Sometimes an executable program is separated from its documentation and source code; this option provides a way to recover from that. -copyleft Display copyright information on the standard error unit, -copyright Display copyright information on the standard error unit, -error-log filename Redirect stderr to the indicated file, which will then contain all of the error and warning messages. This option is provided for those systems that have difficulty redirecting stderr. -help or -? Display a help message on stderr, giving a usage description, similar to this section of the manual pages, and then terminate with a success return code. -ISBN-file filename Provide an explicit ISBN-range initialization file. It will be processed after any system-wide and job-wide ISBN initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. The ISBN initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANISBN, but defaults to .bibclean.isbn on UNIX, and bibclean.isb elsewhere. For further details, see the ISBN INITIALIZATION FILES manual section. -init-file filename Provide an explicit value pattern initialization file. It will be processed after any system-wide and job-wide may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANINI, but defaults to .bibcleanrc on UNIX, and to bibclean.ini elsewhere. For further details, see the INITIALIZATION FILES manual section. -keyword-file filename Provide an explicit keyword initialization file. It will be processed after any system-wide and job-wide keyword may override them. The keyword initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANKEY, but defaults to .bibclean.key on UNIX, and bibclean.key elsewhere. For further details, see the KEYWORD -max-width nnn bibclean normally limits output line widths to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special- purpose applications may require different maximum line widths, so this option provides that capability. The number following the option name can be specified in decimal, octal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is interpreted to mean unlimited, so -max-width 0 can be used to ensure that each field/value pair appears on a single line. When -no-prettyprint requests bibclean to act as a lexical analyzer, the default line width is unlimited, unless overridden by this option. When bibclean is prettyprinting, line wrapping will be done only at a space. Consequently, a long non-blank character sequence may result in the output exceeding the requested line width. When bibclean is lexing, line wrapping is done by inserting a backslash-newline pair when the specified maximum is reached, so no line length will ever exceed the maximum. -[no-]align-equals With the positive form, align the equals sign in key/value assignments at the same column, separated by a single space from the value string. Otherwise, the equals sign follows the key, separated by a single space. Default: no. -[no-]brace-protect Protect uppercase and mixedcase words at brace-level zero with braces to prevent downcasing by some BibTeX styles. Default: yes. -[no-]check-values With the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g., ``year = "192"'' instead of ``year = "1992"''), and issue warnings when unexpected patterns are found. That checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can disable it with the negative form of this option. Default: yes. -[no-]debug-match-failures With the positive form, print out a warning when a value pattern fails to match a value string. That is helpful in debugging new patterns, but because the output can be voluminous, you should use this option only with small test files, and initialization files that eliminate all patterns apart from the ones that you are testing. Default: no. -[no-]delete-empty-values With the positive form, remove all field/value pairs for which the value is an empty string. That is helpful in cleaning up bibliographies generated from text editor templates. Compare this option with -[no-]remove-OPT- prefixes described below. Default: no. -[no-]file-position With the positive form, give detailed file position information in warning and error messages. Default: no. -[no-]fix-accents With the positive form, normalize TeX accents in annotes, authors, booktitles, editors, notes, remarks, and titles. -[no-]fix-braces With the positive form, normalize bracing in annotes, authors, booktitles, editors, notes, remarks, and titles, by removing unnecessary levels of braces. Default: no. -[no-]fix-font-changes With the positive form, supply an additional brace level around font changes in titles to protect against downcasing by some BibTeX styles. Font changes that already have more than one level of braces are not modified. For example, if a title contains the Latin phrase {\em Dictyostelium Discoideum} or {\em {D}ictyostelium {D}iscoideum}, then downcasing will incorrectly convert the phrase to lower-case letters. Most BibTeX users are surprised that bracing the initial letters does not prevent the downcase action. The correct coding is {{\em Dictyostelium Discoideum}}. However, there are also legitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, bibclean will normally not supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this option to supply them. If you think that you need this option, it is strongly recommended that you apply bibclean to your bibliography file with and without -fix-font-changes, then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You will have to decide which of the two output files is the better choice, then repair the incorrect title bracing by hand. Because font changes in titles are uncommon, except for cases of the type which this option is designed to correct, it should do more good than harm. Default: no. -[no-]fix-initials With the positive form, insert a space after a period following author initials. Default: yes. -[no-]fix-math With the positive form, improve readability of math mode in titles by inserting spaces around operators, deleting other unnecessary space, and removing braces around single-character subscripts and superscripts. Default: no. -[no-]fix-names With the positive form, reorder author and editor name lists to remove commas at brace level zero, placing first names or initials before last names. Default: yes. -[no-]German-style With the positive form, interpret quote characters ["] inside braced value strings at brace level 1 according to the conventions of the TeX style file german.sty, which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, invisible hyphens, raised/lowered quotes, French guillemets, and discretionary hyphens. Recognized character combinations will be braced to prevent BibTeX from interpreting the quote as a string delimiter. Quoted strings receive no special handling from this option, and because German nouns in titles must anyway be protected from the downcasing operation of most BibTeX bibliography styles, German value strings that use the overloaded quote character can always be entered in the form "{...}", without the need to specify this option at all. -[no-]keep-linebreaks Normally, line breaks inside value strings are collapsed into a single space, so that long value strings can later be broken to provide lines of reasonable length. With the positive form, linebreaks are preserved in value strings. If -max-width is set to zero, this preserves the original line breaks. Spacing outside value strings remains under bibclean's control, and is not affected by this option. -[no-]keep-parbreaks With the positive form, preserve paragraph breaks (either formfeeds, or lines containing only spaces) in value strings. Normally, paragraph breaks are collapsed into a single space. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-preamble-spaces With the positive form, preserve all whitespace in @Preamble{...} entries. Default: no. -[no-]keep-spaces With the positive form, preserve all spaces in value strings. Normally, multiple spaces are collapsed into a single space. This option can be used together with -keep-linebreaks, -keep-parbreaks, and -max-width 0 to preserve the form of value strings while still providing syntax and value checking. Spacing outside value strings this option. Default: no. -[no-]keep-string-spaces @String{...} entries. Default: no. -[no-]parbreaks With the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field/value pairs. That may be useful to quickly trap runaway strings arising from mismatched delimiters. Default: yes. -[no-]prettyprint Normally, bibclean functions as a prettyprinter. However, with the negative form of this option, it acts as a lexical analyzer instead, producing a stream of lexical tokens. See the LEXICAL ANALYSIS manual section for further details. Default: yes. -[no-]print-ISBN-table With the positive form, print the ISBN-range table on stderr, then terminate with a success return code. That action is taken after all command-line options are processed, and before any input files are read (other than those which are values of command-line options). The format of the output ISBN-range table is acceptable for input as an ISBN initialization file (see the ISBN INITIALIZATION FILES manual section). Default: no. -[no-]print-keyword-table With the positive form, print the keyword initialization table on stderr, then terminate with a success return code. The format of the output table is acceptable for input as a keyword initialization file (see the KEYWORD -[no-]print-patterns With the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used. When bibclean is compiled with native pattern-matching code (the default), these patterns are the ones that will be used in checking value strings for valid syntax, and all of them are specified in initialization files, rather than hard-coded into the program. For further details, see the INITIALIZATION FILES manual section. Default: -[no-]quiet This option is the opposite of -[no-]warning; it exists for user convenience, and for compatibility with other programs that use -q for quiet operation, without warning messages. -[no-]read-init-files With the negative form, suppress loading of system-, user-, and file-specific initialization files. Initializations will come only from those files explicitly given by -init-file filename options. -[no-]remove-OPT-prefixes With the positive form, remove the ``OPT'' prefix from each field name where the corresponding value is not an empty string. The prefix ``OPT'' must be entirely in upper-case to be recognized. This option is for bibliographies generated with the help of the GNU Emacs BibTeX editing support, which generates templates with optional fields identified by the ``OPT'' prefix. Although the function M-x bibtex-remove-OPT normally bound to the keystrokes C-c C-o does the job, users often forget, with the result that BibTeX does not recognize the field name, and ignores the value string. Compare this option with -[no-]delete-empty-values described above. Default: no. -[no-]scribe With the positive form, accept input syntax conforming to the Scribe document system. The output will be converted to conform to BibTeX syntax. See the SCRIBE BIBLIOGRAPHY FORMAT manual section for further details. Default: no. -[no-]trace-file-opening With the positive form, record in the error log file the names of all files which bibclean attempts to open. Use this option to identify where initialization files are located. Default: no. -[no-]warnings With the positive form, allow all warning messages. The negative form is not recommended because it may mask problems that should be repaired. Default: yes. -output-file filename Supply an alternate output file to replace stdout. If the filename cannot be opened for output, execution terminates immediately with a nonzero exit code. -version Display the program version number on stderr, and then terminate with a success return code. That will also include an indication of who compiled the program, the host name on which it was compiled, the time of compilation, and the type of string-value matching code selected, when that information is available to the compiler. ivxlcdm 2d@Unknown error_matherr(): %s in %s(%g, %g) (retval=%g) Argument domain error (DOMAIN)Argument singularity (SIGN)Overflow range error (OVERFLOW)The result is too small to be represented (UNDERFLOW)Total loss of significance (TLOSS)Partial loss of significance (PLOSS)0BOBlBBBBMingw-w64 runtime failure: Address %p has no image-section VirtualQuery failed for %d bytes at address %p VirtualProtect failed with code 0x%x Unknown pseudo relocation protocol version %d. Unknown pseudo relocation bit size %d. ED BD<unknown>?Assertion failed! Program: %ws File: %ws, Line %u Expression: %ws%ws MinGW Runtime AssertionoHGCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19)GCC: (GNU) 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19)GCC: (GNU) 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19)GCC: (GNU) 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19)GCC: (GNU) 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19)GCC: (GNU) 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19)GCC: (GNU) 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19)GCC: (GNU) 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19)GCC: (GNU) 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19)GCC: (GNU) 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19)GCC: (GNU) 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19)GCC: (GNU) 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19)GCC: (GNU) 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19) P<X`x .HXt">P`n~(2<DNV`hpz (2:DNXblv  *4`x .HXt">P`n~(2<DNV`hpz (2:DNXblv  *4DeleteCriticalSectionEnterCriticalSectionGetCurrentProcessGetCurrentProcessIdGetCurrentThreadIdGetLastErrorGetModuleFileNameWGetModuleHandleAEGetProcAddressdGetStartupInfoA{GetSystemTimeAsFileTimeGetTickCountInitializeCriticalSectionInterlockedCompareExchangeInterlockedExchange&LeaveCriticalSectionQueryPerformanceCountergSetUnhandledExceptionFiltertSleepTerminateProcessTlsGetValueUnhandledExceptionFilterVirtualProtectVirtualQuery8__dllonexit;__getmainargs<__initenvE__lconv_initi__set_app_typel__setusermatherrz_acmdln_amsg_exit_cexit_exit_fmode0_initterm4_iob_lock2_onexitv_snwprintf_unlockKcallocUexitXfcloseYfeof[fflush^fgetscfopenefprintfgfputchfputslfreemfreopenufwprintfwfwritezgetc|getenvisalnumisalphaisgraphislowerisprintisspaceisuppermallocmemcpymemmoveperrorraisereallocsignalsprintfstrcatstrchrstrcmpstrcpystrcspnstrlenstrncatstrncmpstrncpystrrchrstrspnstrtokstrtol=abortUtolowerVtoupper[vfprintfmwcscpy_fstat_getch_fileno_accessMessageBoxWKERNEL32.dllmsvcrt.dll(USER32.dll0@@@@@FFAD F@$!@u AP/@qB@CTІ@@U@3@0d@@7@L @^(0@U"@@^l$A*%!GNU C 4.8.1 20130531 (Fedora MinGW 4.8.1-1.fc19) -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 -fexceptions --param ssp-buffer-size=4../crt/crtexe.c/builddir/build/BUILD/mingw-w64-v2.0.999/mingw-w64-code-5969-trunk/mingw-w64-crt/build_win32@charsize_t{-unsigned intintuintptr_t-wchar_tfshort unsigned intlong intlong long int=sizetypelong unsigned intunsigned char_EXCEPTION_RECORDP.ExceptionCode/5ExceptionFlags051ExceptionAddress2 NumberParameters35ExceptionInformation4d _CONTEXTContextFlags5Dr05Dr15Dr25 Dr35Dr65Dr75FloatSaveSegGs5SegFs5SegEs5SegDs5Edi5Esi5Ebx5Edx5Ecx5Eax5Ebp5Eip5SegCs5EFlags5Esp5SegSs5ExtendedRegisters, WINBOOLg= BYTEs WORDtf DWORDufloat LPBYTEyKe signed charshort intlong long unsigned int LONG_PTR7| ULONG_PTR8 PVOID CHAR LONG| LPSTR PLONG HANDLEULONGLONG:_FLOATING_SAVE_AREApControlWord5StatusWord5TagWord5ErrorOffset5 ErrorSelector5DataOffset5DataSelector5RegisterAreaCr0NpxState5l  OFLOATING_SAVE_AREA( =CONTEXTPCONTEXT^= t EXCEPTION_RECORD5PEXCEPTION_RECORD7t_EXCEPTION_POINTERSLMContextRecordNM7 !FiberData8 Version9 5_NT_TIB2 ExceptionList3 StackBase4 StackLimit5 SubSystemTib6  ArbitraryUserPointer; Self< _EXCEPTION_REGISTRATION_RECORD!NT_TIB= !PNT_TIB> _IMAGE_DOS_HEADER@_ e_magic)e_cblp)e_cp)e_crlc)e_cparhdr)e_minalloc) e_maxalloc) e_ss)e_sp)e_csum)e_ip)e_cs)e_lfarlc)e_ovno)e_res_ e_oemid)$e_oeminfo)&e_res2o (e_lfanew< )o  )  IMAGE_DOS_HEADER PIMAGE_DOS_HEADER  _IMAGE_FILE_HEADER Machine)NumberOfSections)TimeDateStamp5PointerToSymbolTable5NumberOfSymbols5 SizeOfOptionalHeader)Characteristics)IMAGE_FILE_HEADER _IMAGE_DATA_DIRECTORY1 VirtualAddress25Size35IMAGE_DATA_DIRECTORY4 _IMAGE_OPTIONAL_HEADER8 Magic:);<{=5>5?5 (@5A5BaseOfDataB5qC5*D5 |E5$`F)(G)* H),I).<J)0;K)2L54M58RN5< O5@P)DQ)FR5H_S5LT5PU5TV5XW5\QX ` IMAGE_OPTIONAL_HEADER32Y PIMAGE_OPTIONAL_HEADER32Y  _IMAGE_OPTIONAL_HEADER64kMagicl)mn{o5p5q5 (r5s5qt*u5 |v5$`w)(x)* y),z).<{)0;|)2}54~58R5< 5@)D)FH_PX`5h5lQ pPIMAGE_OPTIONAL_HEADER64 _IMAGE_NT_HEADERSCSignature5FileHeader OptionalHeader PIMAGE_NT_HEADERS32_PIMAGE_NT_HEADERSCPIMAGE_TLS_CALLBACK5HINSTANCE__unused= HINSTANCEPTOP_LEVEL_EXCEPTION_FILTER'LPTOP_LEVEL_EXCEPTION_FILTER(_STARTUPINFOADcb5lpReservedlpDesktoplpTitle dwX5dwY5dwXSize5dwYSize5dwXCountChars5 dwYCountChars5$dwFillAttribute5(dwFlags5,wShowWindow)0cbReserved2)2lpReserved2Q4hStdInput8hStdOutput<hStdError@STARTUPINFOAOSTARTUPINFO=double long double _invalid_parameter_handler4:YYYY-D_VVARENUMVT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMALVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTRVT_RECORD$VT_INT_PTR%VT_UINT_PTR&VT_FILETIMEVT_BLOBVT_STREAMVT_STORAGEVT_STREAMED_OBJECTVT_STORED_OBJECTVT_BLOB_OBJECTVT_CFVT_CLSIDVT_VERSIONED_STREAMVT_BSTR_BLOBVT_VECTOR VT_ARRAYVT_BYREFVT_RESERVEDVT_ILLEGALVT_ILLEGALMASKEDVT_TYPEMASK _PVFV   _PIFV  +newmode = _startupinfo  __uninitialized__initializing__initialized ?_exception {type |=name }arg1 ~arg2 retval _TCHAR  __readfsdwordY2!OffsetY"retY_TEB#NtCurrentTebhN2$duplicate_ppstrings!ac=!av"avl"i="n%"l&__mingw_invalidParameterHandlerq@F'expressionqY'functionrY'filesY'linet- 'pReserveduD(check_managed_app]="pDOSHeader_ "pPEHeader`e"pNTHeader32a "pNTHeader64b)pre_c_init~=@b*F@ +,e-x--@.b@!/t2.n@6/t 0@.@S/t11 @2t&pre_cpp_init0@C1j@, /tB/tB/tB/tB)__tmainCRTStartup=@UQ3lpszCommandLineQU4StartupInfo3inDoubleQuote5 B3lock_free3fiberid3nested=68@ 7@ j8X9@ -%x:TB@@CH8|8q+@---H5X1-s0{@e .@} /tw1@ /tw1T@} /tv2$#;@Z/t ;.@u2t/ts/t0;@/t0/t2/t00@ ;@2t.@ /t@0@!0@!0@!0@9!.?@C!/tO.a@[!2t2t;@"2t/t0.@[!82t2t0@w!<@/tu=WinMainCRTStartup=@>ret=0@!?@=mainCRTStartup=@>ret=0@!?@4argcK=B4argvQB4envpRB4argretU=B4mainretV= B4managedappW=B4has_cctorX=B4startinfoY+B@__globallocalestatus L=@_imp___fmode-@_dowildcard4=@_newmode n=@_imp____initenv v@_imp___acmdln {@__native_startup_state "A@__native_startup_lock DJB@_image_base__' @_imp___commode2@_fmode1= C@__xi_a:@__xi_z; C@__xc_a<@__xc_z=@__dyn_tls_init_callback@@__onexitbeginB @__onexitendC @mingw_app_typeE=D__mingw_winmain_hInstanceGEDD__mingw_winmain_lpCmdLineHQEDD__mingw_winmain_nShowCmdI5A@__mingw_oldexcpt_handlerZ*Dmingw_pcinitfFDmingw_pcppinitgF@_MINGW_INSTALL_DEBUG_MATHERRi=Emingw_initltsdrot_forceW=Emingw_initltsdyn_forceX=Emingw_initltssuo_forceY=Emingw_initcharmaxZ=F__set_app_type =G_encode_pointer H_setargv =F__mingw_setusermatherr    =& & G__getmainargs =_ =_ +Gstrlen 6} Imalloc Jmemcpy _K_pei386_runtime_relocator\G_set_invalid_parameter_handler!K_fpreset)K__mainLGmain =9!=K_cexit7F_amsg_exit [!=F_initterm6w!  Lexit2!=K__security_init_cookieit.GNU C 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19) -mtune=generic -march=pentiumpro -g -O2bibclean.c/local/build/mingw32/bibclean-2.16acharsize_t{unsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char_iobuf _ptr_cnt_base_flag _file_charbuf _bufsiz!_tmpfname"FILE$9doublefloat long double NO YESYESorNOs_patternDpatternDmessageDJ MATCH_PATTERNs_option_function_entry  name Dmin_match function OPTION_FUNCTION_ENTRYds_pattern_table -patterns-current_sizemaximum_sizeOPATTERN_TABLEs_pattern_names |name"Dtable#|3PATTERN_NAMES$Hs_position& (Dbyte_position)last_column_position*column_position+ line_number,POSITION-s_io_pair(/Vinput1output2IO_PAIR3& token_list  TOKEN_UNKNOWN TOKEN_ABBREV TOKEN_AT TOKEN_COMMA TOKEN_COMMENT TOKEN_ENTRY TOKEN_EQUALS TOKEN_FIELD TOKEN_INCLUDE TOKEN_INLINE TOKEN_KEY TOKEN_LBRACE TOKEN_LITERAL TOKEN_NEWLINE TOKEN_PREAMBLE TOKEN_RBRACE TOKEN_SHARP TOKEN_SPACE TOKEN_STRING TOKEN_VALUEtoken_tebdelcblastcbpeekcoffsetkbcolumnout_spacesO'nOout_newlineout_statusdh(dhprefixdDout_flush~out_input_positionpairVresyncJformat;@msg;DkBlenC#nDnewmsgEB.@v+?tFE@v+WtD @+~tBtvt @v+tFD@v+tE @;!fatal-P@4-"msg-Dx@+tCAt@At @+t1free_match_patternUmp-!free_pattern_table_entries@w"pt|#@bks$-@*%I&@+&@+&@+'get_char@- c(M@# ts&@+)get_next_non_blank-@ c/*p ff9Onl:y&W@&@+@)is_idcharr @o "cr(-@ tsC@,tJAts_Bool!Memmove@[y targety source{ nt<sD, -.bflush@+ kI@3, t qCa@P, t:i@m, ts@ t qCts@3,! t qC&@,.bputc@b[ c&,@ 'Memsety @@% targety L"valuenkt (bdelline/out_c#p@ c#offset*Y$ @7$ &@0@V02@;0a@;1@@ %Y234@+ P&@&a@4@+ P:+@+ @ @+ P\(@+ P:.out_verbatim0@ST tokenDL@ 6 t:[@ J t:&w@ 5@& %5 @ t 5n@ @ t @ t !out_lines@q6(h"lines"pausingkk *lines_on_screen nlines &/ @,w @3,ots @,t:& @, @,tstvt w+,!@, @3,tsD5`!@7+u!@T out_number$nnumber$48!out_token!@b "typetokenD" octal Jlast_line_numberB$!@ % X #!@9J!@,tvt]Atw!@tv$}#@R7D7D$#@!%  ##@!9J#@,tvt]A#@tv#@tUA#@taA&#@#@tdA!@ t9!@t w2$`A"!@ )t9!@ >t"2"@ St\>"@ htnJ"@ }t\V"@ tnl"@ t"x"@ t:"@ t\"@ tt"@ t\"@ tb"@ $t\&"@ "@ Bt\"@ Wtr #@ lt\#@ tf,#@ t\8#@ tv(H#@tuT#@ tut#@,tvtgAtu|#@tv8!out_string#@X~type tokenD + $@4+.$@ :H$@!out_atP$@g$@t2tıA5'p$@$@t=tƱAword_lengthsDnwrap_line/out_s$@sD( 1$@@p% %@T PA1%@+% 23 $%@"9% %@T PA1%@-7$'%@ %@t=tƱA;%@%  &@T PA&$@ $@ Tt:c%@ it |%@ }t:%@ t:.out_errorn &@,<(nh> snDx <&@3,tRtPH&@tR.out_positionP&@v<(h msgD the_location s_&@zPwRR&@,tvtȱA&@PwRv&@,tvtA&@PwRv8:58&@u%L+ %Xb &@8PsRv&@UPsRA&@iPs'@PsR2A'@Ps'@PsR>A%'@PsRv6'@PsRAAQ@D?'@PsRvP'@7PsRKAQFFY'@QPsRv:o'@PPRUAQpC!errorp'@B"msgDp 1nt'@ '@ t '@ t 18F(@8"7X@A%L (@R@A18(@P%\%X %L (@R@A1n(@h&(@ t +(@  (@PsA(@+t_At@Ats&[(@,m(@RƱA(@R@A(@RwA(@.Rs(@RyA!out_with_error)@8"sD"msgD$+)@&:)@-)@t+)@ut!out_with_parbreak_errorP)@"sg)@Btt|A'StrdupTp)@B"sTDp[)@m,gts)@ -|tv)@v+tstv)@tAinit_tables]k_free_tableskfree_pattern_tablept|)main A"argc"argvinitfileD-ISBN_fileDokeyword_fileD1 A23& A A -t< AtA$ A]^# A]3($ AS% G AUAtv A+tv& A+ A9-vtA+ A9-tA; A9-tAS A9-tAc A9-tA{ A9-tA& AR- Ac-tvts&/ A-H A-8tvts A-Ttvts A9-lt5A A-tw8 A9-t:AD A-twU A9-t5Ae A-twq A9-t:A} A-tw A9- t5A A .5tw A9-Mt:A A .btw& A,. A+t0& AC. A+t0=stricmp`)@ s1eDZs2eD()@tT(*@ ts>*@\ tsH$H&(?*@- ts(o*@> ts(*@S twH$H&(*@c t0(*@w tw?*@t0=strnicmpb*@1!s1~D s2~D]n~c1c2(0+@ tv>D+@\!tv({+@#!tv?+@tu)apply_functiono+@j!"optionoD"tableo!kwnx$+@m,!tw,@ tw'tfopenh@,@`h"6D"modeDfphMY,@^.*"tst,@+tPAtMAt st ADAv0.(!warning,@I#"msgD$n,@",@ "t ,@ t 18-@ #7XMA%Lv-@RMA9-@#Ps-@+?#tgAt MA+-@,!put_back"-@#c"(-@#ts+b.@h")get_linebreak.@e#cns&.@.@I#ts#8<@rcsid#D$8type_name1$`A $buf_length$C`$ bufO$ qCerror_count qCoriginal_file*VpCn_pushbackGpC$8 pushback_bufferH$pC$AB_imp___iob[ %$Cfield_indentation*ACvalue_indentationXACalign_equalsBCat_levelBCbrace_levelBCbrace_math|ACbrace_protectxACcheck_valuestACclose_charpACcurrent_entry_nameFECcurrent_fieldFDCcurrent_keyECcurrent_value DCdelete_empty_values BCdiscard_next_comma |BCeofile xBCfix_accentstBCfix_bracespBCfix_font_changeslBCfix_initialslACfix_mathhBCfix_nameshACfpinh|FFCinitialization_file_nameFFCin_preambledBCin_string`BCin_value\BCis_parbreak XBCkeep_linebreaks!TBCkeep_parbreaks"PBCkeep_preamble_spaces#LBCkeep_spaces$HBCkeep_string_spaces%DBCmax_width'FFCnon_white_chars)@BCparbreaks+dACprettyprint-`ACprint_ISBN_table.+CODEN'8 k)*@*,V +multiplierXX dA-2@Z./2@f 0 12t 2$  A$s3@' tst Atvt,vt0w%{3@Gts$1@ PwR7Qt$n2@L P$2@\& tw%2@LP&H '%&X '% H !bad_ISSN3@ "ISSN9#fmt%  A#msg $?4@' tst Atu?uH$0.(twtvttt %G4@Gts&% '%<  )validate_ISSN`4@ the_ISSNn*OZ+ISSN Vky*@$4@ PwR9Qt$$5@] PV$85@\ tw%F5@] PV& '% is_CODEN_char`5@wl cnX HC)validate_DOIo5@/ the_DOIonodoi_prefixw 6@GA is_DOI_char&6@(c&n&!6@tis_URL_char06@wcnA6@t!bad_ISBNP6@u"ISBN#fmtA#msg#s#t3n$6@\tv$6@ttstv$6@<tstt>$6@'ctstAt%6@Gts&'%- u&'% )validate_ISBN6@{the_ISBNn*O/+ISBN{TkN*@$=7@APwR;Qt$7@wUPT$7@\jtw%7@wPT&'% !bad_ISBN_138@"ISBN_13#fmt`A#msg#s#t3n$98@\tv$T8@t3tstv$q8@VtsttA$8@'}tst`At%8@Gts&'%0 &'%>&'%)validate_ISBN_138@#the_ISBN_13n*O+ISBN_13Qk*@;,HweightZ1hdigit_13rem%9@PQ$8@PvR>Qt$9@\tv%9@PQ&'%)validate_URL%9@ ?the_URL%n%p-"$9@ntst/A$=:@GtlA$M:@tstA$]:@Gt̵A$m:@tst%A4:@G$:@tstA$:@#tstA%:@tstA5:@.@006$;@ tw7<;@G7k;@. parse_separatorpdnparen_levelparse_elementpdn5U;@.s.68i/;@0\e1669;@tu%<@GtA/<@.F16n<@tu:.<@\ts;check_chapterp<@*L<<@ >%<@GtضA%<@?=Q;check_CODEN<@ <@P`5@R1@;check_DOI<@r!$<@P6@R5@$<@A =tt $<@GtA$=@A =tt,%=@A =tt;;check_inodes0=@)#buflog~#bufout/ I=@.,.1296C:d=@stv/ =@.,.\1296Co=@tv7U=@^ 7=@^ >check_ISBN`>@>}+t }}$>@`=tt}t %>@P/@R6@&?%>check_ISBN_13*>@>+t,}}$>@=tt}t %>@PP0@R8@>check_ISSN6>@7 >@P`0@R`4@>check_ISSN_L=>@3$?@vP`0@R`4@$?@\=t%?@Gt0A@check_juniorH0?@hlast_nameHb_levelO+juniorsPxAk[n\$?@\0tw$?@w Ltutw%@@ tut\A&x'% h>check_key0@@ak$_@@ =t$w@@?=Q%@@Gt`A>check_length@@$!n @@GA>check_month@@~n>A@@ v%A@GtضABA@9m\%EA@ =t$@@\=t%@@?=Q>check_numberPA@*AjA@ %vA@GtضA%eA@?=Q>check_otherA@ak{AA@ k%A@GtضA$A@ }=t%A@?=Q>check_pagesA@*A B@ 8%B@GtضA%B@?=Q>check_URLd B@ /B@P06@R9@>check_volumek0B@*oAJB@ a%VB@GtضA%EB@?=Q>check_year`B@"p+qlyear/{B@%B@GtضA$vB@?=Q$B@ tst:%B@GtA&2'%7rcsid"&JCD_imp___iob[\?Dcheck_values)&CDcurrent_field*vDcurrent_key+vDcurrent_value,v&ECDmonth_pair-&zCDpattern_names.Dstdlog0 Dstdlog_on_stdout1Esprintf{G  FGwarning6\ Hstrlen 6t Imemcpy   %JKGISBN_hyphenate4   GISBN_13_hyphenate5   Hstristr   Hmatch_pattern .  Gerror3A Hstrchr :^  Efilenow Hstrnicmp b   Hstrcspn F  Hstricmp `  Estrtol   2I} GNU C 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19) -mtune=generic -march=pentiumpro -g -O2do.c/local/build/mingw32/bibclean-2.16B@Ccharsize_t{unsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char_iobuf _ptr_cnt_base_flag _file_charbuf _bufsiz!_tmpfname"FILE$3doublefloat long doubletoken_list " TOKEN_UNKNOWN TOKEN_ABBREV TOKEN_AT TOKEN_COMMA TOKEN_COMMENT TOKEN_ENTRY TOKEN_EQUALS TOKEN_FIELD TOKEN_INCLUDE TOKEN_INLINE TOKEN_KEY TOKEN_LBRACE TOKEN_LITERAL TOKEN_NEWLINE TOKEN_PREAMBLE TOKEN_RBRACE TOKEN_SHARP TOKEN_SPACE TOKEN_STRING TOKEN_VALUEtoken_t E NO YESYESorNO1s_pattern  | MATCH_PATTERNTs_name_pairold_namenew_nameNAME_PAIRs_option_function_entry  8name min_match function9 8OPTION_FUNCTION_ENTRYs_pattern_table patternscurrent_sizemaximum_sizePATTERN_TABLE\s_pattern_names name"table#PATTERN_NAMES$s_position&filename(byte_position)last_column_position*column_position+ line_number,POSITION-s_io_pair(/input1output2IO_PAIR3new_positionx positionx prt_pattern^ U^ ^ |^ out_open_brace do_open_bracecout_close_brace do_close_bracecout_comma  Eappend_value,s,n_cv3n_s4get_parbreak flush_inter_entry_spacel_cnout_field out_equals do_field_value_pair5Enew_entryZ do_preambledo_string3enlarge_tableWtableWnew_io_pairj pairj get_line _fp _line ep more v'out_other s get_inline_comment\ c^ s_ kf newlinesg get_optional_space B@ c s C@ & C@ !D@/D!+D@/D"CD@ #ts$D@?D#ts! C@/D$8C@?D#tw!B@/D%C@?D #t%!UC@?Ddo_newline cdo_space9 csk &do_optional_space0D@ '2E,s3? D@(= ( h!D@/D!E@VD!F@?D GE@HG H $ . !E@/D!E@/D"E@ #ts%VF@fD" (t!bF@/D%F@?D@ #ts%F@zDX #tA(t%IG@fDj (t$dG@zD#tA(t!D@!D@?D!!E@!GE@?D$%G@D#t9&do_atBG@D- cD=! H@/D!H@D%H@D #tA#tĹA!H@D$H@D#tA&do_commaH@Q c[)I@*7 *I@*$I@D#t3#tA!]I@/D!wI@D%I@D #tA#t@A!I@?D!I@VD!(J@D$(t$L@fD(t, &put_back_string{ L@;v-s{ p %L@El#tw#t0!M@?D&do_Scribe_open_delimiterM@nHcp U@M@h$YM@D#t;#t A!M@/D%0M@E#tA#ts%hM@D)#ts$|M@D#tA#tĺA&do_key_name M@4 c K k !M@/D!N@/D"/N@#ts%BN@?D#ts%_N@D#t:(t%gN@eE#tv!N@E$N@D(t#t Ado_escapesQsbaseendptrpget_token N@-s -nextp @!-terminators _!t !token " O@? C. "*K#/7\F#% P@E!#tw#t\"WP@3#tH0P@#tH"N@W#tu%O@Ew#tw#tuH$H&%f@eE%\f@Ef##ts#t1%|f@D{##ts!f@=F!f@eE%f@E##ts#t1%f@E##ts#t0%f@D##t1wu".(#ts%f@=F$#ts!f@eEsave_brace_math- E5%g@FJ$(t#t A%%h@Db$#t %sh@=Ft$(t%h@=F$(t%h@D$#t %h@=F$(t%h@~F$(t(t!h@_!h@n!h@F%i@F$(t#t A!i@&G?%,?(%, &do_BibTeX_value_10i@%c6!i@!i@!i@@%i@%#PA!i@@!i@!i@!i@@!i@/D% j@%#PA!j@?D7 j@!"do_field&ckndo_Scribe_separatorX&cEmsgX&h&,do_equals&cdo_Scribe_valuedo_BibTeX_value:~ j@u'%4j@9&/%V/%S/ &Vh&\l@C'/{&P;&m@(K&,n@@Ad'@/3&P=&*o@/J&^<&n@I&do_string_2<o@U'!o@9 !o@i!p@9 ! p@~!p@9 7#p@$3p@D#t &add_one_pattern@p@M)-pt761616=|>X)m7Hq@p(.7.7%Xq@5G(#t!q@NG$q@mG#t`A%p@+E(#ts%p@+E(#tP%p@%F(#tP%p@%F)#ts$q@%F#tP?.q@:)#PX#RQ#QP$8q@G#tT&add_patternq@$g*171Z81|8kB9% r@G)#ts%!r@')#Rs#Qv#tw%Dr@%F)#ts%Wr@5G*#t<%r@')*#Rs#Qv#tw%r@ER*#tA#tA#t s$r@mG#tA2vs@r*@" s@*#ts%=s@zD*#t<(t%Ns@zD*#tA%_s@zD*#t9$ps@fD(tAdo_otherYs@+c[9k\9']Et:s^!s@/D"s@P+#ts!s@/D!t@g*!5t@g*!Nt@g*!St@VD!it@g*$t@?D#t@do_Scribe_entryJ+save_close_charndo_Scribe_comment&+c()do_Scribe_block_commentV,pcksV,f,,do_Scribe_close_delimiter,cfmt,msg ,,,`do_BibTeX_entry^do_group-cskdo_preamble_2&do_one_filet@ >5-fp_:)t@P-@)t@(q w-@Bt@(r @<t@N+Wu@1<Wu@NY>;/+:f,y@.,:/,/,A)5z@9.$Iz@D#t?#tFA!y@/D%~@DW.#ts"~@h.#tv%M~@G.#t#tA#tv%a~@D.#tA#t${~@E#t!Jy@9 !\y@v!~y@9 !y@H!y@9 !y@- !y@9 !y@- !y@9 !y@~!y@9 $}@D#t +az@g/+;+Q;)|@C/$}@D#t?#tFA)U}@!</$}@D#t;#t A!fz@9 !kz@v!}z@/D!z@D!z@/D+r{@0i10,;>X]1*, <4,v</>,H,<)U`}@q0$t}@D#t;#t A%{@D0#t %{@fD0#tA%{@D0#ts!{@/D!|@/D!|@/D!|@/D%4|@G0#t#t A!A|@%S|@G"1#tv#tA%b|@61#Pv%k|@K1#P$|@#P!w{@%{@G1#ts#tA${@#Ps!v@ !v@9 !v@ $|@D#t ,u@4)9w@y1!Hw@u')3Rw@&2*Rw@T!dw@ ,vw@u3,<,>2,M=!w@/D!%x@/D!;x@/D%x@zD2#t<(t%0}@zD2#t<(t%<}@D2#tA%}@D2#tA$}@zD#t<(t)\{@3$p{@D#t?#tFA!{w@9 %z@D?3#t !z@i%z@D`3#t !{@D!"{@/D%\{@D3#t $|@D#tAx@0w.44-x@H&x@`3!x@!}@(%!x@9 !x@i!x@9 !x@9 !x@$}@D#t !u@ !u@9 !u@ !4v@9 !Fv@i!Tv@9 !Yv@H!gv@9 !lv@- !x@9 !y@- !y@9 !$y@~!;y@9 !@y@%\z@D4#t $}@D#t !Ku@9 !Pu@*!v@G%v@D5#tLA%M}@D-5#t $Y}@D#t:Cdo_print_keyword_table~@[5kw=%~@E5#tpA$~@E#tA2~@W6D//:C/GdC/QC b@16./=*b@/:C/GdC/QC$j@G#ts%@EE6#t:$P@ H#tsdo_single_arg6stemp_argv6temp_argc6,do_new_patternj7sjfieldqprvaluesECdo_initfile@:=Enamefp_=p=)W6@\7.n6_>*@\/x6P6r>%"@Q7#Pw#RL#QA%8@Q7#RL#QA$\@,H#tP6a@x:9.6>x6>/6P6?>861?'EA'F8AcommentGzAg<@a>.<A.|<A<A/<C/<C%@+E=#tw#tv%/@+E=#tw#tL%;@%F >#tv%@+E)>#tu#tv%@+EF>#tu#tL%@%F[>#tv%߅@|>#Pv#RT#Qs%W@E>#t#ts#t%%}@I>#ts#tA%@I ?#t0#tA$@E#tA#tv#t \%@FHO?#t#t%/@eHo?#t\#tA%L@?#tP7t@H?,6Frcsid ??,Gfield_pairv?A+space_countC?,+Scribe_close_delims @A ?+Scribe_open_delims?AQ@HI_imp___iob[c@F@y@,$Jmonth_pairFi@AIalign_equalsEIat_levelIbrace_levelIbrace_mathEIcheck_valuesEIclose_char AHIcurrent_entry_nameAIcurrent_fieldAIcurrent_keyAIcurrent_valueAIdelete_empty_valuesEIdiscard_next_commaEIeofileEIfield_indentationIfpin_Iin_preambleEIin_stringEIin_valueEIis_parbreakEIkeep_linebreaksEIkeep_parbreaksEIkeep_preamble_spacesEIkeep_spacesEIkeep_string_spacesEInon_white_charsIparbreaksEBHIpattern_namesïBIprettyprintEIprogram_nameIprint_patternsEIread_initialization_filesEIremove_OPT_prefixesEIrflagEIScribeEIshared_stringAIstdlog_Itoken_startIthe_entryIthe_fileIthe_valueIvalue_indentationIwrappingEIinitialization_file_nameKGerman_style E`CLget_charMput_backVDNOout_newlineMout_szDNMout_tokenDN"NMout_stringDN"NPout_cDNMout_with_errorDNNQout_atPerrorENRis_idchar"E"EN_BoolRstrcmp5HENNRstrcpy3eENNPcheck_lengthENMout_with_parbreak_errorENRstrchr:ENNQcheck_keySstrtol ENNNSfprintfyFN_NTMexit 2%FNRStrdup =FNRstrlen6UFNUmemcpyuFuFNuFNwFNV}FWPMemmove FNuFNwFNLget_next_non_blankLget_linebreakMwarning FNMout_spacesFNRapply_functionE GNN G?Qcheck_otherSmalloc uFNGNSrealloc uFmGNuFNPfatalGNPfree_pattern_table_entriesGNRstricmp`GNNSsprintf{GNNTQout_flushSfeof HN_Sfgets,HNNN_Pdo_argsFHNNRfindfileeHNNStfopen_HNNRis_optionprefix"EHNSfcloseHN_Sgetenv gHNRstrrchrSHNNMfree INuFMperrorINXstrtokWNNIGNU C 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19) -mtune=generic -march=pentiumpro -g -O2fix.c/local/build/mingw32/bibclean-2.16І@@charsize_t{unsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charHNOYESYESorNO4] s_name_pair old_nameW new_nameWNAME_PAIRb fix_periods author anname fix_authora authora ppcommasar squeeze_space  s m k store_space.  s. pk. І@qBBBB@7C'1=GVC'C1 D=6DGTDVCV@tCtv@9ts@WtCts@ tstC)@tts@tst(p@_YDrЉ@DEN@tufix_bracing_@As 3E!f_level_E!m_levelsE!kE!mlG!taH!discarded_close_open_pairHI!in_TeX_macroHI(!last_level5JԐ@tAtAt I@tAtvt3i@tvttws"f@Y"n@.@#t#t@H7tA$@%j@Wtv@tTtXtwD%@tv@tAtAt %c@ts@#t#tt v#&@ts&@"tv&@3tvA@tv'fix_accent_bracing@  s!kSJ!tPHb (H)`@1!brace_leveldT$n@@&@ts&r@ts&@ts&@#ts&@7ts%#@LMtP&R@ats&@uts&R@ts%@Ltv%—@Ltv&ߗ@ts&R@ts&٘@ts&@ ts%9@L ts%@L3 ts% @LH tv$@L9@ts"@Y"@.@#t#t*check_math_words +sW,math_words ,k,nW - .fix_math_spacingp@l*s T!b_level_math6U!m_levelU/k~!math_startV!t W!is_unary_operator HY!just_left_math HY!math_ties HZ!suppress_math_space H[!ucmathH[`!need_space"H\0 @  \ ~ ] ]7@]o tvc@u twtvtsw@HtA&@ ts&@ ts@ tKAtsH$H&#@ t@A%@v" ts&ԡ@6 ts1@7K P~@l tAt~'@ tAt~@ #t#tt~wR@7 P~@ tAtvH$H&@7 P~@ tA @H, tA&Z@= tv&s@N tv@7c P~9@ tGAtsH$H&J@7 P~&@ ts@ tAtwݧ@7 P~&Ũ@ tsܨ@7 P~@7!P~@76P~U@HNtA@otAt~ɪ@7P~@7P~@7P~@tHA&Q@tst@7P~@7P~@*tAt ~H$H&c@7?P~@HWtTA7@otA@7P~$9@v"@Y"@.@#t#t@HtAʞ@Ht,A%Y@vt}&@t}&>@t}"@"@A month_tokenW sW p_len in_quoted_stringHnextWtokenW1fix_month@8!kO]!token_lengthn]!pW^!s^tokenW0*@s2MC^f^[9Dg9D9Dί@tw@#t#t&@tsB@]twV@twtutv@Wt\@t\ذ@%t\tutvV@#t#t1fix_namelistp@Q!m^!n^/namelista}!v{_03@7_"5@0@@ `"@0@FZ*`"E@@]l#t"3@M@WtuU@tu"@@Wtu@tu"@@Wtu@tu)@#ttu"L@X@]9#t"i@Au@]#t.fix_pagesN@!kPH`!mQ`/new_valueRa}!last_charS3a&o@tw&@t}#0&@tv&@tv@#tt}*brace_font_changes[{3r,ks,mt,need_close_braceuH,pv,sw.fix_titleP@brace_tokenH ignore_levelknc Hfont_likeH/in_macro_macroHWstuaccent_chars istart_level` k_start /v0S)@c m>4@  3>GPhqW-7,rcsid5brace_mathH5brace_protectHU65current_valueJ5fix_accentsH5fix_bracesH5fix_font_changesH5fix_initialsH5fix_mathH5fix_namesH65month_pair5ScribeH5shared_stringa7strcpy3988W7check_juniorHW8W7strcat4t88W9__builtin_strcpystrcpy88W7strchr:8W8:_assert08W8W87strnicmpb8W8W87memmove8%%8%8'8;-<:check_lengthH8:warning-]8W7strlen6u8W7strncmpL8W8W89__builtin_strlenstrlen8W7strncpyO88W8=memcpy%8%8'87gGNU C 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19) -mtune=generic -march=pentiumpro -g -O2fndfil.c/local/build/mingw32/bibclean-2.16@3+charsize_t{unsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char_iobuf _ptr_cnt_base_flag _file_charbuf _bufsiz!_tmpfname"FILE$7doublefloat long double NO YESYESorNO is_file3JJ 4 exists;J p<_Bool copynameʺ@ktargetasource̺a@ts%@tsenvsub@@# baltname9Dp,brbsbtmpfname}_@2]twtP@SwPsRu@Ots*@SPsRw:@Otsis_file_readableYJp@asZ8cis_readablebJdc@h3tvt4@tAtAt vtAAsH$0)(@V0c?c $:D@P:D @P:D@Pv-@2t:Dtv!findfiley@@"pathlistz"name{#fullname:D#fullpathwarningy8Bv "GNU C 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19) -mtune=generic -march=pentiumpro -g -O2keybrd.c/local/build/mingw32/bibclean-2.16@@71charsize_t{unsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char_iobuf _ptr_cnt_base_flag _file_charbuf _bufsiz!_tmpfname"FILE$7doublefloat long doublekeyboard_code KEYBOARD_EOF KEYBOARD_UNKNOWN KEYBOARD_AGAIN KEYBOARD_DOWN KEYBOARD_END KEYBOARD_HELP KEYBOARD_HOME KEYBOARD_PGDN KEYBOARD_PGUP KEYBOARD_QUIT KEYBOARD_SEARCH_BACKWARD KEYBOARD_SEARCH_FORWARD KEYBOARD_UP KEYBOARD_DOWN_PARAGRAPH KEYBOARD_UP_PARAGRAPH keyboard_code_t E NO YESYESorNO1 kbgetw beepA| 0A|erase_characters*@@S.0*|phow_many*q`@ t8tsp@ t ts@ t8ts@ tskbcodeOMcQdo_search 0|code $ linescklast_line_numbersearch_stringmsaw_wordE Odo_moreN@ 0N| $N>qN!linesN codeX".@8 g#8 $B%T@S&@ 'T@V&@ "M@P (q(r(z>r(nr(cr#P $)s)s*`=D"T@x g&@ &#@ +c @ !(ps@ t7ts'@ ts,cB@(psR@ t7tsZ@ ts- 7)s@%PsR1@ ts.@,y)#t@gPsRv@ ts@ t BBu9.(ts@ ts@ ts@ tsF@ t=ts@ t ts@ 7t=ts@ Lts@ dt`=D0@}PsR1@PsRv`@ t`=Dtsp@ t=ts@ t:ts@ ts,c@H (pZt@ 6 t7ts@ ts@ t tBt1tPt s@ ts@ tBt1tPt s/get_screen_linesB@0kbcloseI@1kbinitmap2kbopen~@G ' @@[ t=Dt0t W :rcsidG t 3keymap(d =D4screen_lines*5fputc 66|5fflush 6|7getchQ5fputs 66|8stristr  669__builtin_fwritefwriteR 6R 666Y X :;vjvZ@@r@=tst BtPz@]ts@M+P&BRvQw@MP.BRQmatch_patternl@ s{v pattern{w!org_s{"6{#l@ 9xcxxxx@|PBRQwt$@(xxy$y8y@|PXBRQwtt\$@(Pydyxyyy@|P6BRQwtt\%@( myyyyz9@|PBRQwtt\$@,z2zFzYzmz@|PFBRQwtt\$@,Ozzzzz@|PȈBRQwtt\$@,z{{'{;{A@|PBRQwtt\$H@,1S{g{{{{{t@|PeBRQwtt\$@,{{{{ |@|PDBRQwtt\%@, !|5|I|\|p|@|PdBRQwtt\$@,̅ |||||@|PBRQwtt\$ @, |}}*}>}L@|PxBRQwtt\$S@,g V}j}~}}}@|P$BRQwtt\$@, }}}} ~@|PBRQwtt\@ P1&@v ts@ Pw@+ ts@@@ tsO@T Pw@e tsI@v tsX@ Pwi@ ts@ tBtsH$H&@ Pw@ tBtsH$H&@ ts@ Pw@4 ts&@vH ts@\ Pw@m tu@~ tu(@ Pw9@ tsE@ tuW@ Pwd@ tuu@ ts@ Pw'@'@&@v+ ts@? Pw@S ts@r tBts@ Pw7@ tBtsH$H&I@ tsX@ Pwi@ ts@tBts8(rcsidp )debug_match_failureslAD*sprintf{]++{,-warningr+{.free+/0strlen6+{*malloc+0is_roman+_Bool1strchr:+{+Q GNU C 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19) -mtune=generic -march=pentiumpro -g -O2option.c/local/build/mingw32/bibclean-2.16@^5charsize_t{unsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char_iobuf _ptr_cnt_base_flag _file_charbuf _bufsiz!_tmpfname"FILE$7doublefloat long double NO YESYESorNO s_option_function_entry  kname min_match functionl kOPTION_FUNCTION_ENTRY version version_stringopt_error_logis_optionprefix/c/ result6_Boolopt_version~@,@}@A@QtAt0@xt0opt_copyleftu@,copyleftwA @QtAt0,@xt0opt_authorR0@,dauthorTd`AP@QSt`At0\@xt0t opt_help`@?@QtA@xt0opt_output_file+@d@t B@ tB@xt1YESorNOarg@/W3@tCBt3opt_warnings@@H@opt_trace_file_openingw`@h@opt_scribep@@opt_remove_OPT_prefixesi@@opt_read_init_filesb@>@opt_quiet[@d@opt_print_patternsT@@opt_print_keyword_tableM @(@opt_print_ISBN_tableF@@H@opt_prettyprint?`@$h@opt_parbreaks8@N@opt_keep_string_spaces@@opt_keep_spaces @@opt_keep_preamble_spaces@@opt_keep_parbreaks@@opt_keep_linebreaks @A(@opt_German_style@@nH@opt_fix_names`@h@opt_fix_math@@opt_fix_initials@@opt_fix_font_changes@ @opt_fix_braces@J @opt_fix_accents@v @opt_file_position @ (@opt_delete_empty_values@@ H@opt_debug_match_failures`@ h@opt_check_valuesn@: @opt_brace_protecth@h @opt_align_equalsK@ @opt_max_width!@; @t0t0opt_keyword_file @# ?@t0opt_ISBN_fileP@#1 o@8t0opt_init_file@#b @Wt0@ @u t B@ @ tLBtGB1@ toBt1tI=@tBusagedo_argsP@U argc argv !k$~"msg ~!nfiles~"options  A#@ $~@%#@ &@'# U@D@ U@% U@Ar@QtAt0@QtAt0@X t AM@# tstBtBt dU@C ts@xt1 r E(do_preargs@o)argc)argv *k ^optionsA@ f$}@%@$&@'@tAr @+  -):,rcsid"current_index2AD"current_option3AD"next_option4AD^-"help_linespMA./_imp___iob[v/align_equals/brace_protect/check_values/debug_match_failures/delete_empty_values/fix_accents/fix_braces/fix_font_changes/fix_initials/fix_math/fix_names/German_style/keep_linebreaks/keep_parbreaks/keep_preamble_spaces/keep_spaces/keep_string_spaces /max_width!/parbreaks"/prettyprint$/print_ISBN_table%/print_keyword_table&/print_patterns'/program_name(/read_initialization_files)/remove_OPT_prefixes*/screen_lines+/Scribe,/show_file_position-/stdlog.!/trace_file_opening//warnings00out_lines@r1!1r12exit213freopen!111!3fprintfy1!145strnicmpb1113strtol11 10do_keyword_file?8110do_ISBN_fileW110do_initfile>u115tfopenB!116check_inodes=7__builtin_fwrite fwrite1111892perror15apply_function;11r3sprintf{C114:warningC1)9#GNU C 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19) -mtune=generic -march=pentiumpro -g -O2romtol.c/local/build/mingw32/bibclean-2.160@z8charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned chardoublefloat long doubleroman_digit_value0@Mcroman_digitsroman_valuesBp B@ ts O@ ts a@ tB ts   romtolV@nptrWendptrXlast_valuecLnumberdpevaluef@Jis_roman @c ,@J P_Bool 9rcsid strchr:\$GNU C 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19) -mtune=generic -march=pentiumpro -g -O2strist.c/local/build/mingw32/bibclean-2.16@@^99charsize_t{unsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charstristr@@^sAsublengthk V@ tv @ ts tv tw 9rcsid strlen6strnicmpbS%9AA../../../libgcc/config/i386/cygwin.S/builddir/build/BUILD/gcc-4.8.2/build_win32/i686-w64-mingw32/libgccGNU AS 2.23.52.0.1 g%GNU C 4.8.2 20131016 (Fedora MinGW 4.8.2-1.fc19) -mtune=generic -march=pentiumpro -g -g -g -O2 -O2 -O2 -fbuilding-libgcc -fno-stack-protector../../../libgcc/libgcc2.c/builddir/build/BUILD/gcc-4.8.2/build_win32/i686-w64-mingw32/libgcc4:charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned chardoublefloat long doubleshort intix86_tune_indices X86_TUNE_USE_LEAVEX86_TUNE_PUSH_MEMORYX86_TUNE_ZERO_EXTEND_WITH_ANDX86_TUNE_UNROLL_STRLENX86_TUNE_BRANCH_PREDICTION_HINTSX86_TUNE_DOUBLE_WITH_ADDX86_TUNE_USE_SAHFX86_TUNE_MOVXX86_TUNE_PARTIAL_REG_STALLX86_TUNE_PARTIAL_FLAG_REG_STALL X86_TUNE_LCP_STALL X86_TUNE_USE_HIMODE_FIOP X86_TUNE_USE_SIMODE_FIOP X86_TUNE_USE_MOV0 X86_TUNE_USE_CLTDX86_TUNE_USE_XCHGBX86_TUNE_SPLIT_LONG_MOVESX86_TUNE_READ_MODIFY_WRITEX86_TUNE_READ_MODIFYX86_TUNE_PROMOTE_QIMODEX86_TUNE_FAST_PREFIXX86_TUNE_SINGLE_STRINGOPX86_TUNE_QIMODE_MATHX86_TUNE_HIMODE_MATHX86_TUNE_PROMOTE_QI_REGSX86_TUNE_PROMOTE_HI_REGSX86_TUNE_SINGLE_POPX86_TUNE_DOUBLE_POPX86_TUNE_SINGLE_PUSHX86_TUNE_DOUBLE_PUSHX86_TUNE_INTEGER_DFMODE_MOVESX86_TUNE_PARTIAL_REG_DEPENDENCYX86_TUNE_SSE_PARTIAL_REG_DEPENDENCY X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL!X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL"X86_TUNE_SSE_PACKED_SINGLE_INSN_OPTIMAL#X86_TUNE_SSE_SPLIT_REGS$X86_TUNE_SSE_TYPELESS_STORES%X86_TUNE_SSE_LOAD0_BY_PXOR&X86_TUNE_MEMORY_MISMATCH_STALL'X86_TUNE_PROLOGUE_USING_MOVE(X86_TUNE_EPILOGUE_USING_MOVE)X86_TUNE_SHIFT1*X86_TUNE_USE_FFREEP+X86_TUNE_INTER_UNIT_MOVES,X86_TUNE_INTER_UNIT_CONVERSIONS-X86_TUNE_FOUR_JUMP_LIMIT.X86_TUNE_SCHEDULE/X86_TUNE_USE_BT0X86_TUNE_USE_INCDEC1X86_TUNE_PAD_RETURNS2X86_TUNE_PAD_SHORT_FUNCTION3X86_TUNE_EXT_80387_CONSTANTS4X86_TUNE_AVOID_VECTOR_DECODE5X86_TUNE_PROMOTE_HIMODE_IMUL6X86_TUNE_SLOW_IMUL_IMM32_MEM7X86_TUNE_SLOW_IMUL_IMM88X86_TUNE_MOVE_M1_VIA_OR9X86_TUNE_NOT_UNPAIRABLE:X86_TUNE_NOT_VECTORMODE;X86_TUNE_USE_VECTOR_FP_CONVERTS<X86_TUNE_USE_VECTOR_CONVERTS=X86_TUNE_FUSE_CMP_AND_BRANCH>X86_TUNE_OPT_AGU?X86_TUNE_VECTORIZE_DOUBLEX86_TUNE_SOFTWARE_PREFETCHING_BENEFICIALX86_TUNE_AVX128_OPTIMALX86_TUNE_REASSOC_INT_TO_PARALLELX86_TUNE_REASSOC_FP_TO_PARALLELX86_TUNE_GENERAL_REGS_SSE_SPILLX86_TUNE_AVOID_MEM_OPND_FOR_CMOVEX86_TUNE_LASTix86_arch_indices X86_ARCH_CMOVX86_ARCH_CMPXCHGX86_ARCH_CMPXCHG8BX86_ARCH_XADDX86_ARCH_BSWAPX86_ARCH_LASTsigned charlong long unsigned intcomplex floatcomplex doublecomplex long double__float128 __unknown__func_ptr*   O __CTOR_LIST__  A __DTOR_LIST__  A% $ > : ;I I : ; : ;I8  : ;I8   : ; : ; I & I !I/ !I/ : ; : ;I I8 <'I'I : ;  : ; I8 'I'&I : ;(  : ;  : ; : ; I .?: ;'I !: ;I"4: ;I#.?: ;'I $.: ;' % &.: ; '@B': ; I(.: ;'I ).: ; 'I@B*1RUX Y + U,41-41.1/B0111234: ; I44: ; I5 U61X Y 71X Y819 :1RUX Y;<=.?: ; 'I@B>4: ; I ?B1@4: ; I?<A5IB5C!D4: ; I?E4: ;I?<F.?: ; '<G.?: ; 'I<H.?: ; 'I<I.?: ;'I<J.?'I4<K.?: ; '<L.?: ;'<% U$ > : ;I I : ;  : ; I8 : ; I : ;  ( &I ' : ; I8  : ; .: ;' .: ;'I .: ;'I : ;I4: ;I.?: ;' .?: ;' .: ;' : ;I.: ;'I@B: ;I4: ;I4: ;I1B1I!I/ .1@B!.?: ;'@B": ;I# $1X Y%1&1'.?: ;'I@B().?: ;'I@B* U+B1, -&..: ;'@B/.?: ;'@B01X Y11RUX Y2 U3414B15.1@B6: ;I718!I/ 941:B1;1RUX Y<: ;I=.?: ; 'I@B>B?@4: ; IA!B4: ; I?<C4: ;I?D.?'I4<EIF.?: ; 'I<G.?: ;'I<HI.?: ;'<J.?: ; '<K.?: ; 'I<L.?: ;'<M.?: ; '<N.?: ;'I<% $ > : ;I I : ;  : ; I8 : ; I : ; I8  : ;  ( &I 'I I.: ;'I : ;I4: ;I.: ;' .?: ; 'I : ; I4: ; I.: ;' : ;I'.: ;'I@B: ;I: ;I4: ;I.: ;'I@B4: ;IB B1!.: ; '@B": ; I#4: ; I$1%1&I'!I/ (4: ;I).: ;'@B*4: ;I+4: ;I, U-1RUX Y.1/1RUX Y011 U24134: ; I4B15.1@B64171819:B;.?: ; '@B<1X Y =>.?: ;'@B?!I/@.?: ;'I@BA1X YB C!D4: ; I?<E.?: ;'I<FG.?: ; '<H.?: ; 'I<I.?'I4<J K&% $ > : ;I I : ;  : ; I8 : ; I : ;  (  : ;  : ; I8 &I '.: ;' : ;I: ;I.: ;' 4: ;I4: ;I.: ;'I .?: ;'I I!I/.: ;'I  .: ;'I@B4: ;I1RUX Y U4141 !1"#B$1%1&.: ;'@B'4: ;I()1X Y* +4: ;I,!I/ -: ;I.1/4101: ;I2.1@B31 41RUX Y5.: ;'I@B6B7B18.: ;'@B9B:.1@B;1RUX Y<1X Y=: ;I> U?B1@1A.?: ;'@BB1X YC.?: ;'@BD1E: ;IF4: ; IG4: ; IH!I4: ; I?<J4: ; I?K4: ;I?L.?: ; 'I<M.?: ;'<NIO.?: ;'<P.?: ; '<Q.?: ; '<R.?: ; 'I<S.?: ;'I<TU.?'I4<V W&X.?: ; 'I<% $ > : ;I I : ; ( : ; I&I  : ;  : ; I8 .: ;'I  : ;I 4: ;I4: ;II!I/ .: ;' .1@B1414141 U1 U1B1.: ;'@B 4: ;I!4: ;I"1#$B%B&'.: ; '@B(4: ;I) *.: ; ' +: ; I,4: ; I-!I/ ..?: ;'@B/4: ;I01RUX Y1.?: ;'@B2134: ; I41RUX Y54: ; I?<6!7.?: ; 'I<8I9.?: ; n'I<:.?: ; '<; <&=.?'I4<% $ > : ;I I : ;  : ; I8 : ; I : ;  ( .: ;'I  : ;I 4: ;I .: ; 'I@B: ; IB&I.: ; 'I@B: ; I4: ; I4: ; I11I!I/.: ;'I@B: ;I4: ;I.1@B41 1!.?: ;'I@B": ;I#4: ;I$1%!I/ &4: ; I'4: ; I?<(.?: ; 'I<)I*.?: ;'I<+,.?: ; 'I<% $ > : ;I I : ;  : ; I8 : ; I : ;  (  : ;  &I .: ;'I  : ;I4: ;I.: ;' : ;I.: ;'I@B: ;I4: ;I.: ;'@B: ;I4: ;I1B1I!I/ .1@B1141 U!.: ; ' ": ; I#4: ; I$4: ; I%.?: ;'@B&: ;I'4: ;I(1RUX Y) U*41+,B1-1X Y. /4104: ;I112.?: ;'@B31RUX Y44: ; I5!I/64: ; I?<7.?: ; 'I<8I9.?: ;'I<:;.?'I4<< =&>.?: ; '<% $ > : ;I I : ;  : ; I8 : ; I : ;  (  : ;  .: ;'I .: ; '  : ; I.: ;'@B: ;I: ;I1B1.: ;'I 4: ;I.: ; 'I : ; I4: ; I  &II!I/ .?: ; 'I@B: ; I : ; I!: ; I"1RUX Y # U$41%1X Y&1'1X Y(1)41*41+1RUX Y,1X Y - U. /.?: ;'I@B0.?: ;'@B1.: ;' 2.?: ;'@B34: ; I44: ; I?<5.?: ;'I<6I7.?: ; 'I<8.?: ; 'I<9.?: ; n'I<:&; <.?: ; 'I<% $ > : ;I I : ; ( : ; I&I .: ;'I  : ;I : ;I  4: ;II!I/ .: ;'I@B: ;IB.: ;'@B4: ;I U11.1@B11 41.?: ; 'I@B : ; I!4: ; I"4: ; I#1RUX Y$1X Y %1X Y&B'1(4: ; I)4: ; I?*.?: ;'I<+I,-.?: ; '<..?: ;'</ 0.?: ; 'I<1.?: ; 'I<% $ > : ;I I : ;  : ; I8 : ; I : ;  ( &I ' .: ;'  4: ;II!I/ .: ;' .?: ;'I : ;I.: ;'@B1X Y 411B4: ;I1.: ;'I@B1.1@BB1.?: ; '@B : ; I!4: ; I"4: ; I#1X Y $1%41&1'41(.?: ;'@B): ;I*4: ;I+1,4: ; I-!I/.!/4: ; I?<0.?: ; '<1I2.?: ;'<3.?: ;'I<45.?: ; 'I<6.?: ; '<7.?: ; n'I<8&9 :.?: ; '<% $ >  I.: ; 'I@B: ; I4: ; I4: ; I4: ; I  B 1 &I I!I/ .?: ; 'I@B: ; I1.?: ; 'I@B.?: ; 'I<I% $ > : ;I I.?: ; 'I@B: ; I: ; I4: ; I 1 B 1 &I I!I/ 4: ; I.?: ; 'I<I.?: ; 'I<%% $ >  : ;( : ; I I'I !I/ 4: ;I?]A ../crt/usr/i686-w64-mingw32/sys-root/mingw/include/psdk_inc/usr/i686-w64-mingw32/sys-root/mingw/include../includecrtexe.cintrin-impl.h_mingw.hwinnt.hwindef.hbasetsd.hwinbase.hstdlib.hinternal.hmath.htchar.hctype.hstring.hprocess.hwtypes.h@ <-z~.YdzZ lgg2`~Jf~<=]o];$*2T28$*@47@} <xf1x uX .Π܅YN_S1J u< JK;[M#-d?8@f_؀ZiS] @+g^t~J <_z< <_z< /usr/i686-w64-mingw32/sys-root/mingw/includebibclean.cstdio.h_mingw.hyesorno.hmatch.htypedefs.htoklst.hstring.hstdlib.hkeybrd.hisbn.h@ v. tʓ&9u <u Js.7vxȼM7N9{ tsX tW9toX9~<u'Ҡf=%tfKNTXhhv#thiuvNxZ_؜1=tq<X0Y tet X?9[/tWt)[tWv%X].#ifgw b-1 tXq<jj=Myot&YtJJpj/JK91y<GgeL=i91<.Jvhr XGu/;1{Qg-uXhwduY{uoX3J=`xeuvuzf.V0/;/;2XM0'Z <91+zfWC* {Xt{t{Xt{t#{t{X\$X\.$XJX6fFX1X gx <wv t< <tXt~  f_~=XxT2.|FY#b/t_YB ===XL/LdxTX<h:?9M+'8NwX,t +/<Lz.  .;Y3G1vt XuftvA8\/ XMs//4 KsK.{XdR}XLH~"KWK]8rlZ][uYwoXvYYueXeJXYs XyXy",\f Xz=3t< XH  A  tttX.v^ suY-ub;Cguwt/sJZ ȼΟ}UtL)孧VvYY  /usr/i686-w64-mingw32/sys-root/mingw/include/sys/usr/i686-w64-mingw32/sys-root/mingw/includechek.cstat.h_mingw.hstdio.h_mingw_off_t.htypes.h_mingw_stat64.hyesorno.hmatch.htypedefs.hstring.hxstring.hstdlib.h/@4z.Pz.Ph=K;/~ fwJ JKZ /rt/WL]=WkyȄ=Wxt  fwJ JKZ /rt/WL]=WkyȄ=Wxyt'yXnIYIII/I?- SX,.TX-tsKsWYZrL |t<z^Zv" <uY|փ|J}tX}JX}<}X}}f-{'yXIYIII iX aX g. gXyT <sKXuMXf{oLy<f{#+?>yX{A;<f|,<f| mX< }tJ}XXvv< txt=e  /usr/i686-w64-mingw32/sys-root/mingw/includedo.cstdio.h_mingw.htoklst.hyesorno.hmatch.htypedefs.hstring.hstdlib.hxstring.hB@ tY uv"iTxqXrXt[sr_܊^kX<k.1Jw>o t;y&Y*;u~XYXYq;uXdYu:0g #{ hYgX,{ .t?dYgsr .Z>pJZuYtRdYZ`>fZhYofXgf-g1 ȃ( o.f`xf_0ɯkf<Nittr>\L>ׁn:vh s XfXz~J;=LvNZ:02QwXwXxt>zJ4z.Ndxf=-t v=z;u0wt X .j.<OHh0Z-%.h_I=Kkp.pf1J\tMX"etqJJ0pt. 䫫;p<qtt*l<,0.Jvpt?J\O*tf$r,?ZZ]`? Jt ttX Jt nt?YZ ?sJXn< <tX~u;/Z>yt^u˻I/+=YYwXultvfRDxX .qtuW0sY0q[0DxX<׽dsel<[uq;/ .uguYs/6[Y/g /<RX.tf<kXt;uYkY{x:.Nt >LNt5J@jX0Y^Xg<  YY-Z;YXZWtY_w< .-^Wt!<_X"f^X,stYYYb.P7sX^7YYYKY xuZ:0hτZ:_=v|guYt| >uX <u.<=|uY‘uX:uuXt<vX~z<tm ]> JTgX&y~J/Y: =UYZJ~W/~tW0;hY^Guugr ;ufq lX lX?dK$Z0==>ZKtXփ QYZI=$yJztc.==pJpJݭ;:trLn ~ vX==;n-/4=g=;-/gvf,0uxv.h[rhkㅻXYLYYpthl .Z|Xbșyg} Zd_YmYwdK#gpKsY<=ZYZ]9[oJs;Il#]0O !@s\t% K^r .s".kƒsuY-u0jGuvm_$Q/L[zXTvXt <t. Jfflo]_ _#uYg\-w,Y wVZg~ Xt uuuttYY tuuuttyfYZY>@ZYZYZY YY"ZY>hw>u ZYxXXYlXwYYzZZ ZYhZYZY܃YzZZ~fY/꒼Ytm ZYv f sYzXZ ̖l  vXZ0 ֹ[o3x*TX{XUȑ[WM>Z0u օ{ȑ=Xaw<{YuY .mxuw;6oKsYMKp@ wXQu0K-Y1W=.hxtvy(h<YKuK:LY{s JZ,Li/,LLvj2$u'h%X[ttw_K>-/0Z=-Kxf#xXZBe6xtezo.KZ94Y&rxXtpxXeg J /usr/i686-w64-mingw32/sys-root/mingw/includefix.c_mingw.hyesorno.htypedefs.hstring.hassert.hІ@ .k. k.Jyhh[0y vt tT sXV7JMY;]t @! G-Yt YRt@;z <@qr ~X ~XX>"MI[JJY>~ uW vJ J AysKWus?"l.f^ v> J.KgD'I]*Qk..  %[X%.wqw fWp~Xׁ=X0i..pff H]y.IYN9"s0t(X+svz) d. d.X~LX~.JuY=~1..wX"&tcX&J6mX&Z&&X.B>.oX&R.X3fK;u=;w&d&Xhrf1<~r>)eKe&f&X&\&$;gw6<t.x'x''eyvh:h/X'>r:vk$eKe=.<J0.v5d1..T.v._./Wu.h. <O$h.f/IwuY;KY>u!u0/Ic.ZʀL ;4t/I./;1 }1H,L)Jz' hr>dLrL,1ּʑLr:~.[ tk$HhI!*Hv"KIJ.h~f $K;~ .v .Kirv~: ּrh~ʑvZ=J./I/mX0Hv;J$h:. fv.u vf( .Ng}XN+}j:1h,N"HZe r>rnsu}w`J"su>Uu~Mq:hhF2~XwyP9Ȕ< y(=I fWun #Wuj (su\~e#t}Js g#( zXj*yKO# XzfM?=j .MyZMLV/NIKMgK,O z? +Urv2I:v Xu?WuXֻsvWuXKWso!b5YytY)' rZ[ dvb.[K-J  y_fKurt.fX%IYrwX Jhrt.lXzJ|ttB@$'KZ+/zZf}zʀ=t"Mbs'KdYe i>:v.;ueZ:RxfK;>rkCּK?bxUY>u~>.IKڄ/0 .Uft="fv(t^f"rXrN8?ʆO}E?a]E .vf>H0i<Z/etN/J";u1|fKWutRxfMv~#J- ."u| "=Is >X?}q,ǃi[<fJqsoJo.X柅^TfDž[ZiʢLLLLLLՅJ= +|t.2e}wcht<D5.L-Mwp.o"L;v.*V~Ks- /usr/i686-w64-mingw32/sys-root/mingw/includefndfil.cstdio.h_mingw.hyesorno.hstring.hstdlib.hio.h@._Z?'JYX$fnfvXa;tgt<FH> X h<.xf:0!;=;o֠;=; rey .Lr/@/[;z< J}< tw. JgIYDCyJLLT/8\{*N.3Y w t,vr&g"l"o .t `K>-/0Z=-Kl=-/M;N~t= ^n<:Z.Z>e"~.h8PyYk(YzKl  k < kjQY<|mttw.f,L~##1L u=~XJ:~J>}<0Z*t/;~j.v0:0 I#jwsrX'X~.~u;H==/:0/~u;!st  <k.,L~##1L u=Z~tJ~J>}<~0h*t/;~&\>LZ=UYKs_y0:0)H==d/Pq-u;n'#wsrX'}|:0u;!s& w w.0^ "+wWtb.<aRYSf-<S<2uZ(  /usr/i686-w64-mingw32/sys-root/mingw/includekeybrd.cstdio.h_mingw.hkeybrd.hyesorno.hxstring.hconio.h@@v^~.t J[X[}t(.X^X~.Ke=J:h<<Wf?J*~X' I=;Y~X7J|=[u-//ny<;MvYz<~J~.~jKe=:jJ\ iwFtȼg~;/wt <wXZB/u`ȑ/us=f 9XtmJ5<|. /usr/i686-w64-mingw32/sys-root/mingw/includematch.c_mingw.hyesorno.hstdlib.hstdio.hstring.h@<h,0\=jtPxJ@;f.(xX|x.D-y@<} <S<=YYu?vGt=%;=.=o.=w.=w.=w.=w.=/w=w.=w.=w.=w.=X.=w.=w.=w.=w.=^.=w.=w.=w.=w.=w.=w.=w.=e.=w.=g.=x.=a.=.>Iuws>uR>uu>u?v ;yX)(}ftffvYJ<:Z/noX lJlui t-EYY|f<pX<]efXi<:h/=IZgtXt P X /usr/i686-w64-mingw32/sys-root/mingw/includeromtol.cstring.h0@iM1@XtiJz tK0nKfk<.qXzJ J=d /usr/i686-w64-mingw32/sys-root/mingw/includestrist.c_mingw.hstring.h@@fLJ8Z]v ._; ../../../libgcc/config/i386cygwin.SA""YK0g=YY0/>""rl ../../../libgcc/../gcc/config/i386../../../libgcci386.hlibgcc2.cgbl-ctors.h|  @ @C  H q A 0@CC0,@UAD K AAA D @CR@CR| D@AC CC  F AAB  A AAB @;P@4C 0@wAA AC mA AA@@AC j CA \ CA M CA j AB T@AA AAC0 AA AAB C AA AAI (@oAC w CB kC,@[AA { AB YA @AC  AA @bC w F @@%AA aApp@AA C Q  CAF Z  AAD   AAA C  FAE C  AAF C  AAE 0@SAE KA@&AE ^A@C [T@qAA AAC@r AA AAC  AA AAE `!@<!@bAA AACP AA AAA #@XP$@C Wp$@C W<$@AA AAC0w AA AAA  &@,C \ A K0P&@vAC AEphA AA(&@AC E CF p'@AC0c AH )@8C tP)@C W(p)@BAA C n  AAA , AAB I AAA A <)@AA AAC@ EA AAA |*@AA AAC0 FA AAB C CA AAG K AC AAA CFA AAP+@jAA AAC0L FA AAD CCA AA(@,@`AA C0V CA,,@AC0P AA  AE P-@AC Z AA Y AF O AA K AE T AA MAD.@eAC AC r A AAC H F AAA | </@AA CCE0y CA AAD D/@AA AC h A AAA D A AAG P0@D`0@AA AC h A AAA D A AAG 81@AF AACAA AAT1@AF AFF AA AAD n AA AAA 83@AF AAFAA AAP`4@AF FCH@ AA AAC KAA AA(`5@wAC k CA u AG ,5@/AF Q AG IA6@C V06@C V(P6@AF C AAP6@AF FFH@ AA AAA KAA AA(8@AF F AAP8@#AF CAH@ AA AAA KAA AAP9@ AA AAC0 AA AAE  AA AAH h:@AA ACE0T FA AAH K AA AAA N FA AAA <;@AA CFC0 AA AAA p<@*C f <@<@rC v G <0=@)AA AAF AA AAA `>@>Lq>@>Lq >@>@3C oP0?@AC AAE0 FA AAB CCA AA(0@@aAE H AA OA @@$(@@~AC w AD |APA@*C f(A@aAE H AA OAA@*C f  B@0B@*C f `B@AH0C AC | hB@AA AAC0D FA AAA _ AA AAH T AA AAH <D@AF AAC0 AA AAA G@DC  A ,H@QAC  AG ] AB hPJ@|AC AAC0 AA AAA P AA AAA d AA AAA 0L@;AC AC oA AA M@nAC H AC DM@4AA CC  A AAC @A AAhN@AA CACPq CA AAA M CA AAA  CA AAA 0PQ@=AC CE mA AAQ@S0z C 0R@C s A h A R@yC q A y B 40S@AA E T  AAC \ AA(S@AA C   AAA PT@AC j CA  U@_AA AAC@Y FA AAG / FA AAH  AA AAA y AA AAA lY@AF AAG AA AAA } AA AAA | AA AAA ]@wAA AAC@ FA AAA k FA AAF Y FA AAA { FA AAA C AA AAE ( c@FAF H 4 AApd@&AC \Ad@kC p A X D e@C ` A K A <e@|AA AAC0: AA AAA 0i@C D j@NA AAC@AA AAJ@o@UC { E C A P@p@AA AAE@ AA AAG S AA AAA hq@$AA CCE@G AA AAH o AA AAA d AA AAA 4s@rAC | AA O AA O AA <s@AA ACC0 AA AAB 4t@ AA AF$ A AAA ~@[AC UA(~@AF H  CA<@AA AACp AA AAA P@AA AAC@ AA AAC  AA AAT@AA AACPt AA AAE T AA AAD | 8І@AA CCC0FA AAX@AA AE m A AAH C C AAH  A AAA Lp@_AA CAC0z AA AAA RAA AA<Љ@AA AAC0 AA AAA <@AF FAC` AA AAC <@ AC CACPh AA AAA <p@lAA AAF\ AA AAF T@AF AAC0 AA AAA  AA AAA <p@AF AAG[ AA AAA @@AF AAG_ AA AAA <P@QA AAC`' AA AAA | L@kAC ACC0[ CA AAD tCA AA<@@#AA AAKW AA AAF (p@aAC C0U CA@@VAF AC N C AAB pC AAT@@AA AAC0N AA AAG o FA AAH | (@kNA b AA u @@AA |A<@AC CCC` AA AAD ,p@KAC } AA FA|@oAC CAE@ AA AAE i AA AAC e AA AAG e AA AAG T0@AA AACP AA AAI Z AA AAB 8@AA AAC@AA AAP@9AA AAC@o AA AAF AA AAP@AA AACPo AA AAF *AA AAD@NC AAH0!AA AAB0| (X@@SAC E G AATX@AA AAC0c AA AAB W DA AAB X@ X@X@C | <( @AA AAC0J CA AAA <( `@AF CCE` AA AAH 0( P@QAC CCpCA AA<( @AA AAC0 AA AAA | 0!@,C 0!@,C 0!0@,C 0!`@?C 0!@dC x A 0!@/C h0!@@CM0!`@CM0!@CM0!@CM0!@CM0!@CV0!@CM0! @CM0!@@CM0!`@CM0!@CM0!@CM0!@CM0!@CM0!@CM0! @CM0!@@CM0!`@CM0!@CM0!@CM0!@CM0!@CM0!@CM0! @CM0!@@CM0!`@CM0!@CM0!@CM0!@CM0!@;C w0! @#C _0!P@#C _0!@#C _0!@C h E m<0!P@UAA AAF AA AAA 00!@oAA AH `A AA 0! @| (%0@MAE ~ AA CCP%@AA AAC0h AA AAA ] CA AAA % @CQ| @0&@@^AA AC K A AAA CC AA|  &A*AA fASubsystemCheckSumSizeOfImageBaseOfCodeSectionAlignmentMinorSubsystemVersionDataDirectorySizeOfStackCommitImageBaseSizeOfCodeMajorLinkerVersionSizeOfHeapReserveSizeOfInitializedDataSizeOfStackReserveSizeOfHeapCommitMinorLinkerVersion__enative_startup_stateSizeOfUninitializedDataAddressOfEntryPointMajorSubsystemVersionSizeOfHeadersMajorOperatingSystemVersionFileAlignmentNumberOfRvaAndSizesExceptionRecordDllCharacteristicsMinorImageVersionMinorOperatingSystemVersionLoaderFlagsWin32VersionValueMajorImageVersionfilenamefpoutst_ctimest_mtimenleftst_nlinkchecksumn_significantst_atimeis_name_charmessagepatternsave_wrappingb_levelthe_oldpathlistthe_newsaw_spacefieldnameneed_braceb_levelfilenamestartthe_beginprefixthe_endthe_countriespause_afterline_numberfpoutorg_patternQ"Qq"qq0P,P0Qs1'Q00P1:P%P<S*S<0<S*0*SSHHP@BB@IPIiVV_iWiVW_i0iSsS0_iPPu~W@@P@M@VM@O@PO@@V@@P@@V@@0@@S@4@s4@<@SO@@S@@S@@R@-@r@@R@@rY@m@Rm@@r@@R@@r@@0@@Q@-@ qB.@<@WO@\@Q\@e@qe@@Q@@ qB@@W@ @Q@j@Qj@@ qB@@W@@q@@Q@@ qB@@W@@0@@V@@S0@@S@@P@@S@@P@@S@@P@@S@@P@@S\@a@Pa@@S@@P@@S@@S>@R@0R@@U@@U>@R@0R@@W@@W@@@@P@@@@@@R@@@@@@q@@Q@@Q@@@@@@V@@  v"q"@@ vq"@@P@@@@R@@r@@R@@S@@$C@@S@@P@=@S@@S@@P@#@P#@+@P+@2@l@@X@X@e@P@@X@X@[@ pr"[@`@ pr"#`@b@ pr"J@X@X@e@Rp@@@@@@P+@2@P2@N@N@S@Pw@z@Pz@~@sqC"H$H&@-@@@0@@ p$C#@@ p$C#@@ p$C#@@s@@P@@p@@P0@?@P?@O@SO@[@s[@r@Sr@w@sw@@S@@P@@S@@s@@S@@0] @ @V @!@P!@!@V!@%!@V,!@;!@P;!@?!@V] @v @Qv @ @T @ @Q @D!@0/ @; @0; @N @PD!@Q!@0!@!@!@x"@S"@#@S#@#@!@"@W"@x"@"@#@#@#@D#@$@$@$@R $@-$@R-$@.$@.$@G$@R#@$@$@$@P $@-$@P-$@.$@.$@G$@PG$@H$@$@$@$@$@S$@$@S$@)%@Sn%@%@S%@%@s%@&@S&@&@S$@%@A%@&@A%@W%@W%@%@W&@&@W%@)%@0)%@G%@U%@%@U&@&@0%@%@A%@%@A&@&@A &@;&@P;&@@&@P@&@G&@PG&@L&@P &@;&@R;&@@&@R@&@G&@RG&@L&@RP&@^&@P^&@&@W&@&@PP&@^&@R^&@&@RP&@^&@Q^&@&@S&@&@Q&@&@P&@_'@S_'@n'@Pn'@o'@P&@&@R&@e'@Ve'@o'@R"(@'(@P'(@(@S(@)@SF(@S(@P(@(@P(@(@@A(@(@p (@(@p )@)@P)@)@P/ A At A Aut 4 A Atp 4 A AtW A At A Aut 8 A Atp 8 A At A At A Aut < A Atp < A At A A0 A* AW A AW A AW A A0 A AS A AV)@)@)@)@S)@Z*@V*@*@V*@*@V*@*@)@)@)@1*@W1*@7*@P7*@V*@W*@*@P*@*@w*@*@W*@*@*@*@*@ +@P +@M+@M+@m+@#m+@+@+@+@*@*@*@+@W+@+@W+@+@W+@+@W*@*@*@+@Q+@+@+@+@"+@Y+@U+@+@UG+@m+@R+@+@R+@+@0+@+@P+@*,@V-,@7,@Vb,@i,@Pi,@,@V,@,@P-@-@P-@-@P-@Y.@b.@.@.@.@P.@.@S.@.@S.@.@S.@.@0.@.@W.@.@W.@.@WP\"R"*r*fX#fR*Q*VQV*0*fSnSS*0*SWS]w]fWXPXP0wVVV01eSensnwSSS1PP*QQQPRP0-V1S$s$-SP`LPPPvPPHL0LVHL1LSsSHLPLL 8 P8 v P9 S P 0 W 1 S s S P L  R $  0s10)(2#$ -  0s10)(2#= P RP  0s10)(2#  0s10)(2#i Pa c wrc U < P P Q G WG ` Q` v Wv x Qx  W 0 H U` w Ux  U P ? W? A PA d W R d \ V S Q S Q S 9 VA T ST W VW d V 0 U. 9 0A O U 0 V. 9 0A D vD T V 9 \eT d \e 0 vs  UT W vs#W d vsU4~4FRFY~UcPduP-;P-FJJWRWYPPFSP0S0S\VV0S0SSS0A0A{SSPP P 0MS0SSRRRPpp #PUdPyP27P7SWW P @S@JPJYSYlWlSPS% 1 (U0lU  0 (V-YVsVV@SP1VP4P+P PPPSPwSw}P}S@SP0JVfVVV0PPmPP7PS(S2;P;_S_aParSryPy{S4 H Sh S S03 U4 U U Uy}0}Ss0 SH h S S P  W  P  S  s  S. ? P? m Sn S@ I PI P pA"n w P  P 0 S0 : P: { S~ P S  0 & V& 0 v0 J V V P  W Q PQ S WS e Pe W PXW R XD Q H Q HQXH P  S B VB Q RU e Re S Q P Q R ; U; O RO U VUS"R"KQE M SM Q PU a Sa e Pl K SK O PO SXS S Q W Q 1 W1 ; QO WW"S  8 P  O 88 S v R  v * HO v R v R v R v R v R v R v R v Rv"S`fPfWP`yRyVR`yQySQP\PP\PP9\9<PRRRR9R9<RQQQQ9Q9<Q9R9<RP9\9<PH^PwPPP P/9P@RPRSPSPX\P\VV]sPPphSPPVPSPOSQ\SCJPJmSYjSmqPqSPSUPKSKbUbPSSYSP9S9HPHWUWPUPS#P#wSwPPWYPPJPwW1WKVKbWbVVWYVV v WZVZqWqtVtWVJVw1[ UK KUY "W Wq"q U#U# rP pA"JjPsuPuVPVVsu1uSsSPsS0~V0SZVZkSS3V6[VlV?S?K0KS0VPPNSirP~US P "S/4P47S7<P<ZSZUUPSP6@SEUPV[0[lUlzP}PSUPS0~U0RrRUuZUZkRRr5U6@U@QSQVUlvSvUR 3R3?v?K0KkRknrnsr{{r}r~r0U0PWPZhPhkWPppWPpPppp W (p(?W?K0KsPs{p{pppWPSSC`SSSOYS^eSSPSP?S+7PV0#V+70OPPakPO^PCo1oSVakSO^1*0*aTkT+T7OT^j0jTV' TP*W7@P@WW W W P2LWQa@kWP WP0+W7EPJOP^cPcWPW P  " ' W*0*@SQSPSQXsX7AXAOS^j0jmQmSXSX#X#' S P_!o!P!!P!!S$M$SM$S$VS$V$sV$X$Vr$|$1|$$SD%\%P\%d%V5&<&S""P""S$$SX$_$P_$z$Sz$$V$$v$$P(#A#SA#E#tN##S##t##S(#:#P:#\#Vp#z#Pz##V##P##V##P##V$D%Sd%5&S&&P&'P'''PP-a-Pa->.T>.G.PG.X.TX.g.Pg..T..P..TP--R->.X>.G.RG.X.XX.g.Rg..X..R..XP--Q-6.S6.=.R=.>.Q>.G.QG.T.ST.X.QX.g.Qg..S..Q..S--0--WJ.V.W..WX.g.Pg..T..P..T..P.5/S5/9/P9//S//P//S//P/0S..R.6/V6/9/R9//V//R//V//R//R/0V..Q.7/W7/9/Q9//W//Q//W//Q//Q/0W..0.8/U9/L/U//U//000P01S11P11S1D1PD1J1SJ1]1P]11S11P11S00V00v01V1@1VE1J10J1Y1Vc1h10h1t1Vy11111V01U11U1V2PV2;P67S7E7P;;P;v;Sv;~;P~;;S77P77P99P99P::P:;~q77077S99S99R9:S::s::S::R::s:;S88P88S99S^9b9Pb99V88P88S88P99P99S99P99Sn::P::S88S88s88S88W99W99Wn::W545P55F5PK55P88P28^8P89P99P99~:?:P::P+5751755S::S;;0;;S;;s;;Sr<<S<<P<>>?<<P<;>W;>>>>W>>P>>W>>>>W??'=q=Wd=k=Pq=;>W;>>>>W>>>>W??==P=>>?+>=>P=>>>>??==p0.=9> 0.>> 0.>> 0.??P??V?@V@@P@@V'?6?6?G?1G??S?@S@@?@W8@B@PB@X@RX@@\?@XEAKAPKACPCCP`AuAPuAASlCtCPtC|CSCCSCCS)A>AP>AC\CC\AAPAlCVCCVCCVAAPAlCTCCTCCPCCTvAAPAAPAlCTCCTCCTAlCVCCVCCVAAWAASAdBUdBB0BBSBBUBBSBC0 CfCQCC0CCQP'p 'u P'0'W'0'0'VvVPSPS P SPSPS 0 3s q"38qs8@ps@Js q"JQs p"s q" 0 bWWeVV 0 eVegvVPWPWP/0/\\0/0/S01016 La L101016 Pa P101mDmrqr}P}DPDUSUWSWDwVw D "V"WD#PD#P V D 8 V8 P WP b u D V q D V Q W  D# # q# 6 Da W PPADA[S[^s^SD[`v~`qPqyUyVvVUr18 C DP X VX b U Sa S1015UmrPrUwUw~u~UW "W"UUU W U 8 W8 P UP u W W P U W U # W# 6 Ua U=IRR 11015HHH 10H- 1- 8 HP p H HAQPQQ 0  W  w $ W$ + PH W w W  w  P t Wt ~ P~ W w P | W| P W P nWnwPPwPWwHWHKwK\P\WwVWwPNWNXPXWVwRPIWILwL]P]WwWwPWFVFTWT[V[eweuWuxwxPWRWww}PWww}PW"w")w})7P7CWCMwMRWRPWww}PWPP1T1{W{RWTWww|PWwww}P(W(5w58w8?w}?MPMYWY_w_fw|m{P{Www|PWww|PWww|PWGTGrWrwPW 0 G UH U V U u}  V  u C UC t u~t ~ V~ U u} V u | U| V Q U u~ V 3U3nu~nwVwuUQUHu}HKVK\u\UVuUVQNUNXVXiQiUuSUIu}ILVL]u]Uu}VuU>u>FRFIrITUTVuV[r[uUuxVxQUSUQu~U)u~)CUCRu~RhQhUQ{U{SUqUu}VUq~q.U.5q~5?V?YUYfu}fmVmUu}VUu}VUu}VGUGWRWrUryuyu~uUP0~ "~" (~0~ !~!!"~"e"~e""~"%~%l%~l%&~&&~&'~' (~0~ "~"e"1e""~"#~##R#%~%l%1l%&~&&1&'~' (10~ ~,0,="~="@"P@"e"Qe""~";%~C%&~&'~0U dUd~UR~UR&U&9V9Uu9U9VU~I!UI!!~!!U!"W"D"UD"O"VO"U"PU"w"Uw""R""~""U""~""~#9#U9#I#u~I#[#V[#b#Ub#r#ur#$U$'$W'$D$UD$N$uN$W$u~W$$U$$~$$U$$V$%R%Y&UY&^&V^&&U&&V&'U''V''U''V''U''V' (U$$0&'1''00 0.1.,~,"0"#0#6#16#[#~[##0#$~$$1$l%0l%%~%%0%&1&C'0C't'~t''0''1''0''~' (00~ "~" (~0~ ~."~"$~$%~^&&~&'~' (~0~ 6~6?P?~,0,~P'"~="e"0e""~"u$~u$$1$%~%l%0l%&~&&0&'~' (0_0'~""~##0%%0%%17!Q!PQ!!W$$W7!Q!0Q!_!Si!m!Pm!!S$$SF)X)0X))SB(D(0D(\(1()0) )ru# )#)vu'))V)*V*a*0a*r*Vr**0**V((0M(X(\#X(\(P\(}(\((\))P)*\D(G(UG(M(u((U(*U*r*U**U+(+1(+W+P++P+,P, ,1**p**p*,},,P,,},,P,,p,,},,P,,}+(+1(++S++s++p++S+,p, ,1^,j,S,,Sc+q+P^,d,P++P,,P,$,Pj,t,P,,0--U--V- .U4.S.Us..0,,0,-V-&-S&-@-V@-J-WJ-j-V--}- .V4.J.}J.S.VS.b.Wb.s.Vs..0,, ,-}--Q- .}4.s.}s.. P,U,-P-3U3iWR*V*-P-hVhkPpPPWWU"P"JWJZUZ`P`W9DSsSS s S#3P36p69PjuPuxpx{PPVPSP$&P&,S,5P5ISI\P\cScfP>DPDdV:v;v:v>nSnR %S%3R 3P5=P=S 3SPPSMPMUUV[؇B[RR`m܇BP!PRV!RQ W !Q0EEIPIWPWWPW&P&OWORPRWPWPWP.W.4P5JPJlWloPoWPWPLW0__\R\PR@\b9\9LR@NRNZT@bW@bW@bB@bB:\::W::XBQ\QQWQQ6B\WB @\ @ @W @ @FBb\bbWbbȈB\WB\WeB3\33W33DB3f\3f3fW3f3fdBf\ffWffB\WxB\W$B9\99W99B1PADP.p.7PIP11~'~#'0W07~IP1P~ rH$H&AD2$v"H$H&r -)AD2$v" -)1HS pH$H&3s2$v"H$H&p -)3s2$v" -) P !S!MP1:P:A pB"FKP0SPSP00URUPU0iVVVPPP''.P.LS#WH. Bp>@@@@@@@@@@* @ !@'!@Q!@$@$@%@&@%@G%@&@&@%@%@&@&@%@%@&@&@t'@{'@'@'@F(@S(@(@)@(@(@(@(@(@(@(@(@ A A A A A A-@-@-@-@@.@ A A* !&/@F ! - G  . 9 A T   T d IMU0FFY{$H,W@P _ d i ; ? C O "w[`` 6+7CakO^ak+7O^' ""$$D%d%5&<&$D%d%5&D')*2+()* +l)k*+,**2+<+<++,,v-(.X..X....g223I4U6`7q7788999 :p:::;U6`7;;7`7;;q77999 ::;889999p::889999p::23I4y44U6`7q7788999 :Q:::45788999 :Q:::4589 :Q:::56::55::55::q=>>?=>>>??fApCCCCCApCCCCCA a H $@"" (!!1!7!!(($(M((((<)*r*c+q+`,p,++,,,$,p,w,H/K22P7l799:*<<<e<<<@=Q=>>@H128E8I8O8T8m8::Q===>t55568>999>?:*<>>dp$$:@CGN& ( v 5 P ! 0 !KEMpu @@[.file-gcrtexe.cj  0 _envp_argv_argc_argret _mainret   .text[.data.bss  ! +6 EpS a_ j.6u  .file>gcygming-crtbegin.c  p .text U.data.bss .rdata"j@.6.jcr.filegbibclean.c_format _bdelc $_buf _fatalP    Ȁ   .  _Memmove  _bflush  _bputc  _Memset@  _out_cp  90 G Z e p` | ` _out_atP p _out_s   P  _errorp   P _Strdupp _main _stricmp 3 = _tfopen@ _warning M W .textu>.data h.bss .rdata@pifL! x. s+?6 (Ep`<Sa _ jx.6u <J.filegchek.ct  DP  `  @! ! d   # ! +`$ :`% IH]% k& x0& P& & ( `( ) * + p, , *, 50- C`. O. ^. j. x0/ 00 0 0 P1 1 1  2 02 `2 .text.data.bss@ .rdataP !(c + 6H E@S _. Nj.6u J.file&gdo.c2 4 ._do_at7 ;8 EP: Te< v= = > PA A 0B  B 0C (C DPD R E eI xM  S pT T U U   0Y   Z !_ .@` ?a Lc dc nd {n n _p.5844do r s .text2CJ.data .bss`0(.rdata q 6Id} +t&6h ES  _| Sj.6u  J.fileRgfix.c v  w _s.3739# py < y W z d  x p    I I I p    P .textv@.data@  .bss.rdataT I +qB6 ES N_ j /6u .fileugfndfil.c ж _envsub@  I p   ( J7 @ A L.textж31.data .bssIE.rdata+U ;Eg u+a[6 S+ _  jX/6u l .filegisbn.cP  f  t   p     HM 0  DM @M    # 2M2  E MW  .text0.data x.bss M,.rdataB  F+d 6 E HS- _ -j/6u .filegkeybrd.ch @ _do_more _keymapMz `M  _kbclose _kbopen .text@7a.data.bss`M`.rdatad z ^" Y+p6 E8 S1 #_ j/6uX  .filegmatch.c_next_s  `  P   .textLI.data.bssQ.rdata4X { +mt 6 E 0S3 2_6  j06u( .file4goption.c       0  `, ` 6 B  S Qb Qo  { Q @  `             # @ 9 ` J  Y  q         @  `       , =  P@ i`       P   _do_argsP   "0  .text^u.data T.bssQ .rdata O  U +$~6( S5 j806u0! TV.fileQgromtol.cA0 T*_romtol g  .text0.data.bssQ.rdata*$( -9# #+R6H Sz8 jp06u% .filergstrist.c_stristr@ .text@^.data.bssQU" \$ +A=6h S99 j06u0& Xq  ___xd_a,___xd_z0p .text.data.bssQ.CRT$XLD$.CRT$XLC .rdata*.CRT$XDZ0.CRT$XDA,.tls.CRT$XLZ(.CRT$XLA.tls$ZZZ.tls$AAAj06 .text.data.bssQ.CRT$XICj16  .text.data.bssQjP16.text.data.bssQj16 _atexitp .text.data.bssQj16.text.data.bssQj16.text.data.bssQj026.text.data.bssQjh26 .textL.data.bssQj26.text.data.bssQ.CRT$XCZ.CRT$XCA.CRT$XIZ.CRT$XIA j26 .text.data.bssQj36 Q-@ EP O,.text.data.bssQ.rdata*4jH36Y i RRP Q.texts?.data.bssQ .rdata(,j360 _fpreset0 .text0.data.bssRj36@ _p.57353p ___main R.text@ .data.bssRj36 /R f RxU -.text7.data.bss R0.rdata -j(46.text .data.bss`Uj`46  hU`U dU0 4 .text G#.data.bss`U j46.textp.data.bssUj46Ip d x        .textp;".data.bssUj56.filegfakel$ S% S9 c.text*.data.bssU6 u& 8.fileglibgcc2.c.text.data.bssU%  g% s6S4: vj@56.text.data.bssUjx56; __assert@ .text*.data.bssU.rdata(-j56.text.data.bssU.idata$7.idata$5d.idata$4.idata$6.text.data.bssU.idata$7.idata$5T.idata$4.idata$6.text.data.bssU.idata$7.idata$5D.idata$4.idata$6~.text.data.bssU.idata$7.idata$5L.idata$4.idata$6.text.data.bssU.idata$7.idata$5@.idata$4.idata$6nE  _handlerUj0 .text /.data.bssUj56.textP.data.bssU.idata$7T .idata$5.idata$4T.idata$6 .textX.data.bssU.idata$7 .idata$5.idata$4.idata$6.text`.data.bssU.idata$7X .idata$5.idata$4X.idata$6.texth.data.bssU.idata$7.idata$5\.idata$4.idata$6.textp.data.bssU.idata$7.idata$5X.idata$4.idata$6.textx.data.bssU.idata$7.idata$5h.idata$4.idata$6.text.data.bssU.idata$7.idata$5.idata$4.idata$6<.text.data.bssU.idata$7.idata$5l.idata$4.idata$6.text.data.bssU.idata$7 .idata$5.idata$4.idata$6.text.data.bssU.idata$7 .idata$5.idata$4.idata$6p.text.data.bssU.idata$7 .idata$5.idata$4 .idata$6.text.data.bssU.idata$70 .idata$5.idata$40.idata$6.text.data.bssU.idata$7x .idata$5.idata$4x.idata$6b.text.data.bssU.idata$7 .idata$5.idata$4.idata$6.text.data.bssU.idata$7 .idata$5.idata$4.idata$6z.text.data.bssU.idata$7 .idata$5.idata$4.idata$6V.text.data.bssU.idata$7p .idata$5.idata$4p.idata$6N.text.data.bssU.idata$74 .idata$5.idata$44.idata$6.text.data.bssU.idata$7 .idata$5.idata$4.idata$6h.text.data.bssU.idata$7 .idata$5L.idata$4.idata$6 .text.data.bssU.idata$7 .idata$5 .idata$4.idata$6.text.data.bssU.idata$7 .idata$5,.idata$4.idata$6.text.data.bssU.idata$7| .idata$5.idata$4|.idata$6l.text.data.bssU.idata$7 .idata$5.idata$4.idata$6v.text.data.bssU.idata$7h .idata$5.idata$4h.idata$6:.text.data.bssU.idata$7 .idata$5.idata$4 .idata$6`.text.data.bssU.idata$7 .idata$5.idata$4.idata$6N.text .data.bssU.idata$7 .idata$5.idata$4.idata$6D.text(.data.bssU.idata$7 .idata$5 .idata$4.idata$6.text0.data.bssU.idata$7` .idata$5.idata$4`.idata$6(.text8.data.bssU.idata$7 .idata$5(.idata$4.idata$6.text@.data.bssU.idata$7t .idata$5.idata$4t.idata$6X.textH.data.bssU.idata$7\ .idata$5.idata$4\.idata$6.textP.data.bssU.idata$7 .idata$5.idata$4.idata$6.textX.data.bssU.idata$7 .idata$5P.idata$4.idata$6*.text`.data.bssU.idata$7 .idata$5$.idata$4.idata$6.texth.data.bssU.idata$7 .idata$5.idata$4.idata$6.textp.data.bssU.idata$7, .idata$5.idata$4,.idata$6.textx.data.bssU.idata$7 .idata$5H.idata$4.idata$6.text.data.bssU.idata$7$ .idata$5.idata$4$.idata$6.text.data.bssU.idata$7.idata$5t.idata$4.idata$6.text.data.bssU.idata$7.idata$5p.idata$4.idata$6.text.data.bssU.idata$7.idata$5<.idata$4.idata$6`.text.data.bssU.idata$7.idata$5|.idata$4.idata$6(.text.data.bssU.idata$7l .idata$5.idata$4l.idata$6D.text.data.bssU.idata$7.idata$5P.idata$4.idata$6.text.data.bssU.idata$7 .idata$5<.idata$4.idata$6.text.data.bssU.idata$7 .idata$50.idata$4.idata$6.text.data.bssU.idata$7.idata$5.idata$4.idata$62.text.data.bssU.idata$7.idata$5x.idata$4.idata$6.text.data.bssU.idata$7 .idata$5@.idata$4.idata$6.text.data.bssU.idata$7d .idata$5.idata$4d.idata$62.text.data.bssU.idata$7.idata$5`.idata$4.idata$6.text.data.bssU.idata$7( .idata$5.idata$4(.idata$6hnamefthunk<.text.data.bssU.idata$2.idata$4.idata$5<.text.data.bssU.idata$4.idata$5T.idata$7  hnamefthunkX.text.data.bssU.idata$2(.idata$4.idata$5X.text.data.bssU.idata$4.idata$5\.idata$7  .text.data.bssU.idata$7x.idata$5 .idata$4.idata$6t.text.data.bssU.idata$7|.idata$5.idata$4.idata$6hnamePfthunk.text.data.bssU.idata$2.idata$4P.idata$5.text.data.bssU.idata$4.idata$58.idata$7 .filegcygming-crtend.c .text.data.bssU.jcrfj 66.text.data.bssU.idata$7L .idata$5.idata$4L.idata$6.text.data.bssU.idata$7@ .idata$5.idata$4@.idata$6.text.data.bssU.idata$78 .idata$5.idata$48.idata$6.text.data.bssU.idata$7H .idata$5.idata$4H.idata$6.text.data.bssU.idata$7 .idata$58.idata$4.idata$6.text.data.bssU.idata$7D .idata$5.idata$4D.idata$6.text.data.bssU.idata$7 .idata$54.idata$4.idata$6.text.data.bssU.idata$7< .idata$5.idata$4<.idata$6.text.data.bssU.idata$7 .idata$5D.idata$4.idata$6 .text.data.bssU.idata$7P .idata$5.idata$4P.idata$6.text.data.bssU.idata$7.idata$5H.idata$4.idata$6.text.data.bssU.idata$7 .idata$5X.idata$4.idata$64.text.data.bssU.idata$7.idata$5 .idata$4.idata$6.text.data.bssU.idata$7.idata$5.idata$4.idata$6.text.data.bssU.idata$7h.idata$5.idata$4t.idata$6.text.data.bssU.idata$7`.idata$5.idata$4l.idata$6.text.data.bssU.idata$7d.idata$5.idata$4p.idata$6 .text.data.bssU.idata$7.idata$54.idata$4.idata$6P.text.data.bssU.idata$7.idata$50.idata$4.idata$6>.text.data.bssU.idata$7X.idata$5.idata$4d.idata$6.text.data.bssU.idata$7l.idata$5.idata$4x.idata$6..text.data.bssU.idata$7P.idata$5.idata$4\.idata$6.text.data.bssU.idata$7T.idata$5.idata$4`.idata$6.text.data.bssU.idata$7p.idata$5.idata$4|.idata$6H.text.data.bssU.idata$7.idata$5.idata$4.idata$6.text.data.bssU.idata$7.idata$5,.idata$4.idata$6".text.data.bssU.idata$7L.idata$5.idata$4X.idata$6.text.data.bssU.idata$7.idata$5$.idata$4.idata$6.text.data.bssU.idata$7H.idata$5.idata$4T.idata$6x.text.data.bssU.idata$7.idata$5(.idata$4.idata$6.text.data.bssU.idata$7.idata$5.idata$4.idata$6.text.data.bssU.idata$7D.idata$5.idata$4P.idata$6`.text.data.bssU.idata$7t.idata$5.idata$4.idata$6X.text.data.bssU.idata$7\.idata$5.idata$4h.idata$6.rdata.X6(__cexith  XB)X?$SUa(z_isspace_strcspn _sprintf _feof __exit  ___xi_a _free 0_strcat@ @T _strcmp &5U?[ht48 d (7N4i(~VX60___xl_c  8Qd_n _getc TlQ_eofilex X___xl_z($d1|E@P`pt__unlock },Q|lQ_strncath "_fputc 1?_toupperL$Zp6}pP_fputs 6H[,m|H,V__dll___raise  `_fwritep _strncpy  &Q<L@[Xht_isupper___xc_a__stklen(8_memcpy` `_Scribe(HXB_stdlog|_fileno @)A$_wcscpy K X g`_tolower___xl_a___xl_d$r __CRT_MT_fflush U  _fprintf (Q4DH_strtol ^ 0Q_fopen *x _calloc 5$__fmodeQObuP<`x_fpin|V |4lBtPn _isalpha_realloc }_getchx 0\ __lock V_getenv   4_accessX ___xc_z( __end__2 D_strchr C i _islower  _signal  p_mallocP  _fclose    _strcpy     !@!h)!?!X!,j!@_strspn` w!_perror0 !!_strtok8 !!,!!!Q_isalnum!_abort "" ."_isprintO" ["i"p u"V""@""" " #___xi_z#1#QI#_strncmpP o#_rflag,#x#####p^$$-$,O$4^$_isgraph_strrchr( y$$p6$\_fgets $$$ $<_strlenX $L%U*%V_memmoveH __fstat5% Z%Lh%<z%Q%h%_exit %%%%& _freopen &h&& 5&p6W&`d&*_Sleep@4}&L&Q&P&H&&D&,& & ''4'VC'M'['.debug_aranges.debug_info.debug_abbrev.debug_line.debug_frame.debug_str.debug_loc.debug_ranges___mingw_invalidParameterHandler_pre_c_init_managedapp_pre_cpp_init_startinfo___tmainCRTStartup_has_cctor_WinMainCRTStartup_mainCRTStartup.CRT$XCAA.CRT$XIAA.debug_info.debug_abbrev.debug_loc.debug_aranges.debug_ranges.debug_line.debug_str.rdata$zzz.debug_frame___JCR_LIST_____gcc_register_frame___gcc_deregister_frame_newmsg.5352_buf_length_free_pattern_table_entries_get_char_n_pushback_pushback_buffer_get_next_non_blank_is_idchar_out_verbatim_out_spaces.part.1_out_flush_out_lines_out_spaces_out_token_last_line_number.5552_type_name_out_string_out_newline_out_error_out_position_out_status.part.2_original_file_error_count_out_with_error_out_with_parbreak_error_strnicmp_apply_function_put_back_get_linebreak.text.startup_copy_element_is_ISBN_char_n_significant.5199_is_ISBN_13_char_is_ISSN_char_n_significant.5208_bad_CODEN_fmt.5038_validate_CODEN_multiplier.5251_fmt.5184_bad_ISSN_fmt.5059_validate_ISSN_is_CODEN_char_n_significant.5190_validate_DOI_is_DOI_char_is_URL_char_bad_ISBN_fmt.5043_validate_ISBN_bad_ISBN_13_fmt.5051_validate_ISBN_13_validate_URL_check_patterns.isra.0_parse_list.constprop.1_check_chapter_check_CODEN_check_DOI_check_inodes_check_ISBN_check_ISBN_13_check_ISSN_check_ISSN_L_check_junior_juniors.5093_check_key_check_length_check_month_check_number_check_other_check_pages_check_URL_check_volume_check_year_get_optional_space_do_optional_space_space_count_do_comma_do_entry_name_entry_pair.5492_put_back_string_do_Scribe_open_delimiter_Scribe_open_delims_Scribe_close_delims_do_key_name_get_token_add_one_keyword_field_pair_prt_pattern_do_open_brace_do_close_brace_append_value_do_optional_inline_comment_get_parbreak_get_Scribe_string_get_braced_string_get_simple_string_do_BibTeX_value_2_flush_inter_entry_space.part.5_out_field_out_equals_out_value_fixes.5964_checks.5962_do_BibTeX_value_1_do_field_value_pair_do_string_2_add_one_pattern_add_pattern_out_other.constprop.11_do_other_do_one_file_fmt.5708_do_print_keyword_table_get_line_line.5843_more.5845_do_initfile_do_files_do_keyword_file_start.5411_error_count.5409_fix_periods.part.0_fix_author_store_space.constprop.2_squeeze_space.constprop.3_fix_bracing_fix_accent_bracing_fix_math_spacing_fix_month_next.3998_b_level.3996_in_quoted_string.3997_fix_namelist_fix_pages_fix_title_copyname_altname.5032_is_file_readable_is_file.constprop.0_fullname.5054_findfile_fullpath.5055_is_valid_ISBN_prefix_squeeze_ISBN_in_ISBN_range_ISBN_match_country_language.part.0_add_one_ISBN_range_ISBN_range_ISBN_file_do_ISBN_file_start.4475_error_count.4473_do_print_ISBN_table_ISBN_hyphenate_new_ISBN.4538_ISBN_13_hyphenate_new_ISBN_13.4556_ISBN_initialize_erase_characters_search_string.5102_get_screen_lines_match_warning_match_failure.part.0_match_pattern_opt_version_version_string.4556_opt_copyleft_copyleft.4447_opt_author_author.4437_opt_help_help_lines_opt_output_file_current_index_next_option_YESorNOarg_current_option_opt_warnings_opt_trace_file_opening_opt_scribe_opt_remove_OPT_prefixes_opt_read_init_files_opt_quiet_opt_print_patterns_opt_print_keyword_table_opt_print_ISBN_table_opt_prettyprint_opt_parbreaks_opt_keep_string_spaces_opt_keep_spaces_opt_keep_preamble_spaces_opt_keep_parbreaks_opt_keep_linebreaks_opt_German_style_opt_fix_names_opt_fix_math_opt_fix_initials_opt_fix_font_changes_opt_fix_braces_opt_fix_accents_opt_file_position_opt_delete_empty_values_opt_debug_match_failures_opt_check_values_opt_brace_protect_opt_align_equals_opt_max_width_opt_keyword_file_opt_ISBN_file_opt_init_file_opt_error_log_options.4412_do_preargs_options.4422_is_optionprefix_roman_digit_value_roman_values.4425_is_roman___dyn_tls_dtor@12___dyn_tls_init@12___tlregdtor_my_lconv_init__decode_pointer__encode_pointer_mingw_onexit__gnu_exception_handler@4__setargv___mingw_raise_matherr_stUserMathErr___mingw_setusermatherr__matherr_CSWTCH.5___report_error___write_memory.part.0_maxSections_the_secs__pei386_runtime_relocator_was_init.58814__fpreset___do_global_dtors___do_global_ctors_initialized___security_init_cookie.data$__security_cookie.data$__security_cookie_complement___report_gsfailure_GS_ContextRecord_GS_ExceptionRecord_GS_ExceptionPointers___mingwthr_run_key_dtors.part.0___mingwthr_cs_key_dtor_list____w64_mingwthr_add_key_dtor___mingwthr_cs_init____w64_mingwthr_remove_key_dtor___mingw_TLScallback__ValidateImageBase.part.0__ValidateImageBase__FindPESection__FindPESectionByName___mingw_GetSectionForAddress___mingw_GetSectionCount__FindPESectionExec__GetPEImageBase__IsNonwritableInCurrentImage___mingw_enum_import_library_names__wassert_mingw_get_invalid_parameter_handler_mingw_set_invalid_parameter_handler___JCR_END___register_frame_ctor.ctors.65535.rdata_runtime_pseudo_reloc__imp__strncat__imp__strtok_VirtualProtect@16___RUNTIME_PSEUDO_RELOC_LIST____imp__MessageBoxW@16_show_file_position_program_name__head_lib32_libuser32_a__imp__getenv_QueryPerformanceCounter@4__data_start_____DTOR_LIST____lib32_libuser32_a_iname__imp__VirtualProtect@16_non_white_chars__imp___acmdln___setusermatherr__imp__islower_the_file_UnhandledExceptionFilter@4__imp__raise.weak.__Jv_RegisterClasses.___gcc_register_frame__imp___onexit__imp__GetLastError@0_SetUnhandledExceptionFilter@4__imp__VirtualQuery@12_print_keyword_table_parbreaks_trace_file_opening___tls_start_____native_startup_lock_read_initialization_files__imp__TlsGetValue@4_current_field__imp__InterlockedExchange@8__imp__InitializeCriticalSection@4_token_start_DeleteCriticalSection@4__rt_psrelocs_start__imp__getc__imp__abort__dll_characteristics____size_of_stack_commit____imp___fmode__imp__isupper__size_of_stack_reserve____major_subsystem_version_____crt_xl_start___keep_linebreaks_fix_font_changes__newmode_brace_level___crt_xi_start____imp___amsg_exit___crt_xi_end___in_preamble_discard_next_comma_the_entry_MessageBoxW@16_GetLastError@0_fix_accents__imp__QueryPerformanceCounter@4_stdlog_on_stdout_VirtualQuery@12_mingw_initltsdrot_force_brace_math__imp___iob__dowildcard_GetModuleHandleA@4__imp__strncmp__imp__isgraph__bss_start____imp__fputc__imp__strspn___RUNTIME_PSEUDO_RELOC_LIST_END____size_of_heap_commit___fix_braces_value_indentation___onexitend__imp__GetCurrentProcess@0__imp__access__imp__isspace_mingw_pcinit_GetModuleFileNameW@12__imp__GetProcAddress@8_GetProcAddress@8_field_indentation___crt_xp_start___current_value__imp__getch__MINGW_INSTALL_DEBUG_MATHERR__imp__isalnum__imp__isprint___crt_xp_end____imp__signal_current_entry_name__minor_os_version___German_style_month_pair_debug_match_failures_GetTickCount@0__image_base___is_parbreak__imp__exit__imp__fwprintf__section_alignment____imp__memmove__imp__toupper__imp__GetStartupInfoA@4__IAT_end____imp____lconv_init__RUNTIME_PSEUDO_RELOC_LIST____tls_start__imp__wcscpy___native_startup_state_warnings__data_end_____getmainargs_in_string__CTOR_LIST_____onexitbegin___set_app_type__imp__sprintf__charmax__imp__perror___mingw_winmain_lpCmdLine__bss_end_____security_cookie_complement___crt_xc_end___current_key__tls_index_keep_string_spaces__imp__GetTickCount@0__imp___set_invalid_parameter_handler___crt_xc_start___remove_OPT_prefixes__imp__fgets__imp__strchr__lib32_libkernel32_a_iname___CTOR_LIST____imp__GetCurrentProcessId@0__imp__feof_mingw_app_type__initterm__imp__TerminateProcess@8__rt_psrelocs_size_GetStartupInfoA@4__imp__freopen_keep_parbreaks_GetCurrentProcessId@0__imp____dllonexit__imp__memcpy_prettyprint__imp___snwprintf__imp__strcmp__file_alignment____imp___unlock__head_lib32_libmsvcrt_a_fix_initials_check_values__imp__LeaveCriticalSection@4__imp__strrchr__imp__malloc__imp__strncpy_screen_lines___mingw_pinit_in_value__major_os_version____lib32_libmsvcrt_a_iname__imp__realloc_the_value__IAT_start___print_patterns__tls_end__imp____initenv__imp___get_invalid_parameter_handler__imp__GetModuleHandleA@4___dllonexit__imp___lock__DTOR_LIST____imp__fprintf_TerminateProcess@8_EnterCriticalSection@4__imp__fclose_delete_empty_values_pattern_names__imp___initterm_GetCurrentThreadId@0__size_of_heap_reserve_____crt_xt_start_____ImageBase__subsystem____imp__strlen__imp__fputs__imp__fflush__imp__strtol__imp__strcpy_align_equals___mingw_oldexcpt_handler__imp__calloc___native_vcclrit_reason__Jv_RegisterClasses__imp__GetSystemTimeAsFileTime@4__snwprintf___lconv_init__amsg_exit_initialization_file_name__imp__fopen__imp____getmainargs___mingw_winmain_nShowCmd___native_dllmain_reason___tls_end___GetSystemTimeAsFileTime@4_mingw_pcppinit_GetCurrentProcess@0_mingw_initltssuo_force__fu0___set_invalid_parameter_handler_InitializeCriticalSection@4_brace_protect__imp__isalpha__imp__free__imp__GetModuleFileNameW@12__imp__SetUnhandledExceptionFilter@4_close_char__major_image_version____loader_flags____imp__UnhandledExceptionFilter@4__imp__tolower__head_lib32_libkernel32_a___chkstk_ms__rt_psrelocs_end__imp___cexit__minor_subsystem_version____minor_image_version____imp__Sleep@4__imp__vfprintf__imp____set_app_type___mingw_winmain_hInstance_max_width__imp__InterlockedCompareExchange@12__imp__fileno_print_ISBN_table_mingw_initltsdyn_force_fix_math__imp__GetCurrentThreadId@0_TlsGetValue@4__imp__DeleteCriticalSection@4___security_cookie_LeaveCriticalSection@4_fwprintf_fix_names__imp__strcspn__RUNTIME_PSEUDO_RELOC_LIST_END____imp___exit___dyn_tls_init_callback_keep_preamble_spaces_mingw_initcharmax__imp____setusermatherr_keep_spaces__tls_used__imp___fstat___crt_xt_end___wrapping_vfprintf__imp__strcat__imp__EnterCriticalSection@4_shared_string_at_level__imp__fwritebibclean-3.07/ch.h0000644000156700015670000000204607721417747012671 0ustar beebebeebe#ifndef CH_H_DEFINED_ #define CH_H_DEFINED_ #define BIBTEX_COMMENT_PREFIX ((int)'%') /* comment character in BibTeX files */ /* (I hope this will be standard in BibTeX 1.0) */ #define BYTE_VAL(c) ((unsigned int)((c) & 0xff)) #define CTL(x) ((int)(x) & 037) /* make ASCII control character */ #define CH_BACKSPACE CTL('H') #if defined(HAVE_ALERT_CHAR) #define CH_BELL ((int)'\a') #else #define CH_BELL ((int)'\007') #endif #define CH_DELETE ((int)'\177') #define CH_ESCAPE ((int)'\033') #define CH_LINE_KILL CTL('U') #define CH_NUL ((int)'\000') #define CH_REPRINT CTL('R') #define CH_WORD_ERASE CTL('W') #define COMMENT_PREFIX ((int)'%') /* comment character in initialization files */ #define ERROR_PREFIX "??" /* this prefixes all error messages */ #define LINEBREAK ((int)CTL('n')) /* line break character */ #define META(x) ((int)(x) | 0200) /* make GNU Emacs meta character */ #define PARBREAK CTL('p') /* paragraph break character */ #define WARNING_PREFIX "%%" /* this prefixes all warning messages */ #endif /* CH_H_DEFINED_ */ bibclean-3.07/COPYING0000644000156700015670000004313310236475637013160 0ustar beebebeebe GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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; either version 2 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. bibclean-3.07/ibmpc/0000775000156700015670000000000014431412252013176 5ustar beebebeebebibclean-3.07/ibmpc/linux/0000775000156700015670000000000014431412252014335 5ustar beebebeebebibclean-3.07/ibmpc/linux/bibclean0000755000156700015670000064046506532625314016047 0ustar beebebeebeELF4d 4 (444ԀԀnnnH|L||/lib/ld-linux.so.1CH@A)CD:/51< F4-;&8 7 0%+BE>!=* "#(296$', . ?3G|$ T0x<7xTC"J"Qn [aTl("tX"{x83 &"4K" 00 " 0C" p0" 0" #0 -1Z AH("N8"VHg]t3dXlvh"|"V ȌF، n ",&84H"3 "h&",5ȍ=؍e"C"JQRVW^c(>n8tH{Xgh"03  xf4libstdc++.so.27_DYNAMIC__ctype_b_IO_stdout_memcpy_IO_stderr_mallocfflush__environ_init_IO_stdin_reallocfclose__uflowstrcmp_finisprintfatexit_GLOBAL_OFFSET_TABLE_filenofreelibm.so.5errno___brk_addr__builtin_delete__builtin_new__builtin_vec_delete__builtin_vec_new__udivdi3__umoddi3libc.so.5strcpyioctl__writegetenv_etext__strtol_internalfgetsperrorfeofsys_nerr__ctype_toupper__libc_initstrrchr__new_handlerenvironfprintfstrcat__fpu_controlstrncmpstrncpystrncatfopen__bss_startset_new_handlertcgetattrgetpwnamstrcspnfputcaccess_edata_end_fxstatexit__setfpucw_exitstrspnstrchrfputs__default_new_handlertcsetattr__ctype_tolower_sys_nerr_errno x0'F ,.G4E "#$%( ),-/0  $1(2, 054 8<6@DH7L8P9T<X=\`>d?h@lApBtDxK5%%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0% h` %hh%hp%hx%h% h%$h%(h%,h%0h%4h%8hp%<h`%@hP%Dh@%Hh0%Lh %Ph%Th%Xh%\h%`h%dh%hh%lh %ph(%th0%xh8pYЃ1UUUPSQ̀D$n,PIh3 P[t&&̀&S=t Ѓ;u[Í6ÐUWVS0}ЍxM 9tI] 1M T19sPPMQ uM D1иt& ;u1e[^_]Í6&UWVSu8o=ƀ88o~67 tK|b8 uYƃ8h h8;h j 90H8oPRh8 /v&=8o~h h88oh  uhlv&h`8o88oe[^_]Í&UWVS]Po 0o<H SSPHPh54h84Ph54P$PPhP4h  h54h  hR4h  Sh  $hT4h  h54h  e[^_]UEPh54hW4Pj&UWVSu1Ҁ>v %C f%et-&kvi6&r0щM| v hVh8x7t&hr0щM| v hVh8(7<t&h0щM| v hVh87t&hN6&0щM| v hVh87t&h8Pgo&Ƃ8%]&hVh887O&v(hVh87' 8BC;Ƃ88e[^_]Í6&UWVS}td11U9z~8tPCtPCG6UtPUBBe[^_]ÍUSr~#Hrrd5 A9AwQd&ALuLo u+XTPToet&ӡDP u!TP@To96& uTP$v&TP@T{u 4ov}u 4o؋]]ÍUS1ۍ6tLѡDP t= t t!:6&*6&C뵍&Q1~ ]]Ð&UVS11ۃ=|ot$=`ou =xot=dou#=ou&&lo6thѡDP tY t t/ٍ&=hou =potNC뷍t&&=hou =pot>F뗍t&&~7lo5t&&%6& 6&loȍe[^]Ít&&UWVS1o1ېc{otqP{oj Du#h^4h54hW4Pj6D@D@F뎍&&e[^_]ÍUSM=ru01ѡPu@.t;#t6Aۃw3,1ѡftCtSSP =Po%e[^_]Í&US]MU 9w&9sL PtJIKu BAKu]]Í&&US]U؅t M @Ju؋]]Í&Uh4j ]Í&UWS]t5 W&43v8oƀ88o~67 tK|f8 u]ƃ8h h8h j s90H8oPRh83&&=8o~h h88oh 8o `H8o8o8 udhiv& hTt&d68o:7 - `H8o8o8 uhč h밐&8o~7&&ËvDB tf8o~M `H8o8o8 udh & h8o~7 &뗍&1ҋ 8oD|9} 8và %JÍt&&8o~7&&Ëdv t uf8o~M `H8o8o8 uht&& h8o~7 &뗍&j Vj F=ou0 t+o9h~TPj\aj ZSQe[_]Ð&UEU = uR]ÍPR]Ðt&Ujj]Ít&&UWVS}ۀ1U :t FU <u116U t URPDj U P&tGr9t U <uQ1jrU RPSUR#zÃt9u F+r}1끐9x^pCjv&~,6&U :t] URP;ue[^_]ÍvUhP4j Q]Í&USEPh4]SS]]Ív&UVSu>v<tV<|&< =rhCFPÃ9o}n)s&j j =|ouRj_F&j =|ou)j6~ uF~ tvPF>.e[^]ÐUS]=ou~j uK]]ÍU 9r}Ah4QPh4<P1h4'rWh4]SsSj {nPj gj"`>iT$&@ P0 pj\P\vj\jbNt&j\jf>t&j\jn.t&j\jrt&j\yjtt&j\ijvbh&j\IjnBj\;jn4:6ѡDP@tRt&Pha5]SSxF>j"j e[^_]ÍvUS];tV<t<t8&j 0j j &PwC;u]]Í&UWVSE] PPo@0o<H S^SPHPh54h84P"h54P$PhP4h h54h hR4h Sh t$hT4h bh54h #~e[^_]ÍUWVEPPoD0o<H hg5^VPHPh54h84P"h54P$PhP4h h54h hR4h Vh t$hT4h bh54h #~e^_]Í&UMr ~h5v]Í6 dr LѡDP u ouLoM& uPT X/6& uPT T{u 4o]Ít&&}u4o]ÐUr04o]UWS]0P:u+h5h54hW4PYjrv&SPqe[_]UWVS]u ;to=}=}6 }DGt}&&ъ}DGt}99tCF;u ѡDPtѡ يѡDPtѡ+ )É؍e[^_] U WVS]} u; M 4Mv?tn‹MDAtU6&‹ME‹MDAt ‹M9E|-?CGNt ;uu12&;u1?t&e[^_]ÐUVSuE PVÃ=ru%4u5PVh5h5P؍e[^]UWVS]=ru}jj<H SPPHPh54=ruP4Ph5P h5PP9e[^_]Í&UVSu1ɀ>tDC uBA:uȀ<0u@e[^]Ðt&UShP4j p=ouvj K]]ÐU@SMQ?tPQ?tPQ?tPQ?tPQ?tPQ?tPQ?tPQ?tPh7]S(S?]]Ð&UhoPt]ÍUhhhy]Ðt&UrPEPRj h EPRjfE1f9Eu E9EuBr]Ít&UhPhdhh`h]Í6&Uh@hh]Ðt&UWVS1E8EEvE,tB tK tF{t }tFv&N}v&uo|t&u_=tt>EEEt0щHPREPƒ t;uh46EEP tEEE8/1e[^_] UWVS=ot\oo1hPu0hD7Pu%h86&&;ue[^_]Ít&&U=FC9] wыd}; vCE-tҡDP u} )߉pDžtv\. wgӉэBw  4t&Bw"vBσwv0u$tt"87tzM?tRM?tRM?tRM?tRM?tRM?tRh]S+ SjF]0҉߈ujt"7lUlPuV]SMQUR}WVSQRWhxS4&&߈u ptzM?tRM?tRM?tRM?tRM?tRM?tRhxS SLX[^_] UWVS 6E6Uf56fu6EUU119] v, s'u 3-tѡDP uE GC9] wԋUu 3 t&CE -tѡDP uU )ډUEEuuE 6E\( w,XtxtÃEEUUt&} E рXtxtÃ96  6E6Ef6fE6E0}ЍHwˍESPUR) EjuVEPWURh ]S1SsE Et&uu0ۋ}u}tw 6U56uf6fE6U}Iwύ]WURSy EjuVS.WSh ]SSt[^_]ÍUWVS'7E+7E/7E}}119] v/vs'} ;-tѡDP u} >FC9] wԋ}>&C};<-tСDP u} )߉}1|+w7SD+}tuV Dj6D^Cu9^u VuV Ѓ~F}t uVD&&DuVu VuVw>uǀoǀoe[^_] UWVf8H H =ou4@u/0oT=4ot8h84o6tPEh8h$8 =r>=Lo14=ou h=rr9ur9 u Ur(9u #=ou hh=rtor=rt\_=rtIL u"==rt'=LotӍt&=rt]X$e^_] UWVSpH 93‰ֿ0щKщMD =wRP,t&hVhh8h8?ƒ#=`ouk=xoub0щJ/9щMD =wh/9&hFh/9=doug=ou^0щJ/9щMD =w h/9\hh/9n 0щJ8щMD =wh8PV46&hfh8h/h8h8hK1‰ֿ0щKщMD = R7e[^_]Ít&&UWVpH 0Phh="uP6v#ufh19jh/9j~h19jrh0Ph% h="uP<뒍6P:e^_]ÐUtX9@ou;)u 4o3=4ot7h39h$8] P:hw9h$8]Í&UWVpH tt,t49@ouR)u 4o=4ou.)u 4oPi=Hou283&Ph9vPh9h$8+Hoe^_]Ð&UWVSH E6ESÃtStE}}u;Dpu h:2Dpt* ӡDPt4=ou =lo}&UrBUHt&UƂrt S1t1ۍvtPhr#uDPhrF~̓=ou hr&&r9uhrj&&r9 u hrjxr(9uZhrjXUrƂrhr&Lt&UrƂrh:hr' hrjDURe[^_]Í&&UVSM0ˍv<\AF$6& 0@P`pt&&& & & t&& ot&& _t&&QDPt4G^t SƇ=douq11ۋPhu Phv&F~jhh_=込 ujhc=h趼 t.We[^_]Í6UWV=LoY=r=Lo=` =ru ovpH H t*=u H-Ph;h$8+ n+hP=rtR=LotI} =ru?"&=oub=rt =Lou 1 t&e^_]Í6U WVSU zuHg=ht&U UvUwƿm=u$Hg=h@3&ho=PUEu;UPhq=ht=Pxh=&&E 9E~PUH=rEh%;脹th%;s t&1;j.URt_0}҉ЍDP船ƃt-URVSj.V蜹PӸVjV5URUREe[^_]ÍUWVSB=oh V=rhm=4ou=@o)u)u4o}=ou@uh8EɼE=4ou}uh{( t&Pj=4ort&H I{u@o}X&(t;hj h=(vh=dt&@o)4o{t8vǿwC9@ou )u 4o=4otuƃ}ƃhj me[^_]ÍvUVSUE PR^=txho=Pƃtd6VÃtMDB t CDB uP(TtS;뺍S멐t&Vbe[^]ÐUWVSH 1豾tn,tiѡDP uZv( Ɔh>hg&& YCFt,tѡDP tƆt Q=EPVR$ǃ UMfCf ƃu t6ȍquA@DC u}tE<=t<:E<=t<:uEU DA t6ЍruB@DA uU:"h5>EPR#à tpU DA tЍruB@DA uU<"uh5>EPRP#P&t<%ujSW=&PuVhq=h:>P虴j貵v&e[^_]ÍUEhHK$Lo#=Lou0;=ru Xݍ;Ѝ6&=ouhj =4ot hh>]Í&U踻tX{u@o}/&]Ít&&(u@o)4o&]Í6PZh=h$8]Í&UWVSv/Ɗ  ' |%0KSVFP;DD 0щJщMD =vg{t&&=`ou =xot=do==o00щJщMD =wVP聱hVhch8h8t&e[^_]ÍUSŠU$&&PPPPPPPPPPPPPPPPPPPPPP `P) uD=4ot,=`ou =xot=do=o t&Pj6`PQ\ t&rrRj rv&]]Í6&UWVS rMr16?Ã@u=ouj@&v>D7W"& u>W"1두t&DB t0DB u&>W\"Y&>FC&>W&"M re[^_]ÍvU`o`o]UH=ou htP{u@o}!:6(u@o)4ov!t&Pʼh=h$8[ =r=ou +=rtg舶tX9@ou;)u 4o=4ot7h39h$8] P*hw9h$8]Í&UWVS1h>S(vhֻKh>DMMvõƃ{ @tv}6苵E胵E{%U ‰Uh>MQ<uEh>S#u kt&S#MQ#=MQ"#6G& wt&OVɺ S"e[^_]UlWVSRH 蛴 H =ou@@u;0o@=4otDh8}4o+&&tP%h8h$8 =r=Lo=ou hi=rhr>1V=r04&9@ot>{uC}uKy ECEPfnu &Kr>u r(9u:ƃh>ht=ou h訸P=r/@oU4oH 1r(&&TICt,tѡDP tƃt Q=U@o Ã=ou%=lou]EEP~&tr9@ou#) 4oy S誵Pӡ?DP@tQ@oRPhl]S_Sh$8 $e[^_]Ív&USWÃtFShlͨuS(h>h$8&-ld@o]]ÍvUWVpH =`Ԯ=ou+=lou"EffUEP>utS=t/uBv&uEEPt&PJh?h$8 n+hP藺e^_]Í&&UWVpH PhA=rt =LouhJ &e^_]Í6UEh5>MQEP Eh5>MQEP EEuEPRA]Í6UWVSH C1v vkƃ=ouhjH&&=|ot$=`ou =xot=dou=ou h)1ۉC覬ƃtСDP \ƃ=ouhj`Et&&=|ot$=`ou =xot=dou=ou h虷Ve[^_]ÍUdodo]U=ou hűͫtP{u@o}D:6(u@o)4o&t&Pzh=h$8 =rttztf=rt]cNtN9@ou1)u 4o=4ot-h39h$8詿]Ðt&Phw9h$8苿]Í&US]Cuh谢PP;u h>?謧C]]ÐUS=|ot>St虵蔵]]Í&UWVSDžho;16=ou7=lou.Qh莿ho!vv8 Ƈhd?hPhot& u u+=po =to6ѡDP t iv&{u Nv}u >v\u6\CG\u\CG Qj1Ƀt CGt4ѡDP t`&&蛨pƇDž11ۀ=SA<{u&&<}u>"=\Z$&PPPPPPPPPPPPPPPPPPPPPPPPPt&Ƅ+{CƄ+"CFG+CƄ+}.t&Ƅ+{CƄ+"CƄ+}Ch?E&\{ujt`<{t\<}tX}uOKNƄ+{C+FC+FC+FC+FC+CƄ+}j\u7KƄ+{CƄ+\CƄ+"CFG+CƄ+}.t&Ƅ+{CƄ+"CƄ+} t&+CFG>ƅ"Ƅ+"Ƅ+Su h?hoPh [^_]Ðt&US]6S66)PR tD7hd?W%ho v =hou =pot$=`ou =xot=dou=ou&&=ho=toj 蟷躢P蔷=lot( =po  u+=po =to6ӡDP t iv&{u EQ}u MA\u6>\FAÃ\u>\F`S誶1ۃt>F"u9v4}u.|7\uVÃt>{F>\F>"F>F>}FӡDP tk6&諟t&>V6u h?褛hoe[^_]Í&&UWVSEKWhlƘu7 h?h詳&-ldE蜠"}\t 9}=ou =lo"ui\u@苞ǃ{uƆ{\CF"Ɔ{\C"C C}u{C"C}a& =hou =pot$=`ou =xot=dou=ou&=houW=touNj WrPL=lot =po t& 6& u+=pot =tou]Yv RѡDP t Nv&\u;\ǃ\uCF\2Džt CFWz t& }UDP t t6軜CF6Ɔ"Ɔv:h)@h(6ƆWhVe[^_]Ít&&UWVSE0S踲S蟟 "Vvtw;Cܛܐ&VZ;"DvhQ@W;t&CS9 t&+e[^_]ÐUWVSÃu=ou7=lou.Sȱh辰&S蚱H {u0Q 3Dhd?V].vӡfPto"'ѡDPtw 3CpuQ3"C3S&"u+>D7hd?W譮~vt[1t%Srtw>FڙÃuS]>Vc* h@h$81e[^_]Ít&&UWVS}]t)DB t CDB ut t<%u11&&<"uls>t6<"t<\uCC;u;"uCVt&&PMQhq=h:>Pjv& PW.u Ct<%ut<%u 1 CM e[^_]Ít&&U0o4oloorr]Ít&&US]SS ]]ÍvUE@@@ @]Ív&Uh@j!]Í&USrrh@jr]]ÍvUWS=6jWĐÃu3W?"uR蝧0щHP訵vW?"uRg0щHPr{jWOÃu jW>ÃWj &0щHP1{ {=e[_]Ð&U=out=`ou=xouj=;]Í&=dou =otj =,oun+hPgj=j ]Í6h@jԦ]U=ou4=dounP h#] h=douPr]Í&&Uh@j ]Í&US]=ouS誠@& ѡDP tSjv&%u Sj Sj ]]ÐUWVS=`o5=do(hTh9=tS<{t <,t8<<}t0v&A#&I&uB:uu6&SC DA t BDA uRh6څhAh6諆V荫u5hAh6莆Vh6胆hAh6t&Vh6]h6Voe[^]Í&&UWVSEPRE$}uCt&=44EvE׊EI9MuQEPRnƒ uE}tkAACrjhA{W苅 uE8PS_hASTjS謆EE>LEPEPS:] rjhA{W u1t&jhAh uh&&hhɃe[^_]Í&UWVS0Ѓ="8"+fAfƂ9jShA uLP}PWPRhARу R&&=ruA;;u<P#PPR舃hARw wCG9HPPPSAhAS6ShK[^_]ÍUWVSƅ 11=3v<-t$5+DF tKu &AG9-t5DF t AGDF uƄ+-Cf4BfftDBu7tDBuftDBu9?uMƄ+-CBv&+CDP u AGƄ+PhȀ[^_]ÍvUWVS=TouE111ɋU:]v<{t<.t4l6<}tdv&GW&OG&u6t2UD2UDBtUD2UDBtAƁ CFA;re[^_]ÍvUWVS="1E1ɍv<{t <}t$t&EƆ{}MƆ}m}V‹=DGt@fG #=Av\EYt&&DGtECDGuA9}Ɔ{t&AF9rƆ}F{u}u\ A1t:Ɔ{AFӡDP uƆ}FjAFQ&ƆVChh} =\oue[^_]Í6&UWVSE] t5<{tE<"tS&<}t<@v&=u-=ǃ=& =uADPt-x=HѡDPuހ.u v8t1;te[^_]ÐUWVSUƅj~R~ƃ)SRWY}Ƅ+jW~FѡfPf%fu _fu_uQ~CNv&GCѡPuހ_tW,}@PW{ t&hAWg|VPW|*&16&RPK{DžFF<$F{^NѡDPu_uP^GN6&CG ѡPuހ_tًފF<}3Wz@Gu6&ѡfPf%u _fu_uI^GN6CG ѡPuހ_tًދW ztvt@Gu拽x$t&FGSt&&1=FtF[^_]Ív&UWVS} gM 9[]tdhShNzR1 hNVÃt&hNSZztShNxG ~ǻNt;uIhM QhJyN hJ1҅tJJhASzƃVShJKyJPhAwzu ƆJ/~)PM QJPyNhJEj;tChASzÃ;Y1e[^_]Í&UWVS}jWwy؅u-WƃtjVQy؅tVWkw؍e[^_]ÐUWVS}U t)v:xtB tDCuXu1ۀ: <-u ƃR-CG݄tl 5&:xtB DFuXut{RBCG?u ƃR-W tJ5 :xtB t$DFuXutRBC6 uK ѡDPu:Xt5xt0RRR-RR 1e[^_]Ít&UWVSE EEEM9tu56t&9xtAtDFuXu1ۉπ9tADFu XtxuC uAM}*& t-uA9uĀ9uEE}3} 0щMU+UD EE9EKREPE Pv =Tt3T1vXPEPPƒ tfs?u1ۅtu} 0҉щMT UE9SE PQuEE\&&EPTuVÃ덍} 0щME9sjjEPE P0uE EE?&0} ҋ}ЍD9EvEPE PtE PEPse[^_]ÍvU8WVS] EPuVSEЉEP0щHPVEPVtƒ}S&&EP]SC0щHPEPSt…|1&e[^_]ÐUWVS]M {9sGt1‹5t&&9xtAtDFuXu9tAC9re[^_]ÐUWVS}] uWhTtWs P{$t&p@0@P p00t&D6)É؅01)6&F)Ét&WhT tQ&F돍t&&)&CrB9|C)ӋM<tv8 t C:uM<tnCi6&KrB9|C)Ӆ|ًM<tЍv8 tÃKx:u붍t&MQVSPW#Wjr]ve[^_]ÍUWVSMM}W]T} uKTPrMQ&q1 kb Y Ptu&j}W{~NƆ벍v&uVMQQ1닍vu;V}W11ۃ9}{MQPqC9|`&uk1Nx@6DP tuF6&jMQNyƅ}1Ɔ}W pN+FMQPq}WoMQjp}Wo&~ Ɔ-vMQh:q}Wj pWj pWqoMQj p0Ѝp~MQj YpN}Wj FpW o } uE+Ey1EE}|RvM}t0hPu} uM v&E}}Ã}| M}<u)MQjo}WnEHM)MyEEe[^_] UVSu] ~!VjpoVj hoVj`oKV2ne[^]ÐUx@tPn]Ðt&USÃuÃ[ÃAu Bu {t&Cu kt&Du [t&5uV~uAv&6u6~u!v&1H]]Í6U@t#B9Bw Rm]ÐB]Í]Í&U8hnThpT蹎@tHr]Ív&U=DuhRj@PmPAn]Ðt&U$WVS]S@PmPmtCR DeܝeEESj@PumPme[^_]Ív&U@t0EPhTR9mP@kfEft%]Í]Í&UhjhHLyPX\@@`|phDh x88         4 < ]ÐUVSu EHPÃ>W$#6&''''''''''''''0''''''''''''P'''''''$''$'''''''''''''P%''''%`&''''''''p$''$'''''''''''''0%''''%DP&DPSÃDPu&DPb&DPBSÃDPu&P N&P P *SBÃߍt&&P6SÃPu&&Pc6SÃfPu SÃfP utSÃPuDP uMt&&P6SFÃPuvPhyTgvPhyTgtSÃލ6Pt6SÃPu땐t&DP t6SÃDP uvt&PhyTgu]1n&PhyTftvPhyTft%S=ÃލF8uS#ÃF>D;%e[^]USUB:<\t"<t\&<{tl<}thpBDCtvBDAuvBDA t4vBDA u$vB:t$6:tB:u t&&B:nЋ]]ÐUWVS} 9u6xP6RDRR@P tRhR@PLfu5RPjdh0WhMW|SdSjdt&R&FC9]Cp[^_]Ít&&UWVS} 9]~Lw6xt6PGt&RRDRhBR}eC9]e[^_]Í&U}-%]Í&U8,o] UjhTPtjct&UuWVS} tC;u1e[^_]ÐUEtPx^]ÐUVS]5u03u&&SP\te[^]ÐUEP]UEP]UWVS]u UMUω]uM9vEuv&}u1uE1uӉƋEuv9v 1t&׀Uu9wU9UrۿZ +uME NjMe؉EME ËMe؋UӉNjEU9wu9usO1}uEUe[^_]ÐU$WVS}EE܋uU UuA9v &&u 1NjE1U։uEM9MvuMEEEEU܀Uu"U9Uw9r M)M܉MuE +MMMe܉M E܋M]MMeM EMEu܉UUËM9wu9v E)E܉EU)UUMMu UEEUUUUEUe[^_]ÐUUu03]Í6Uj"hh^jXjZ&S=t Ѓ;u[Í6Ð[UNKNOWNABBREVATCOMMACOMMENTENTRYEQUALSFIELDINCLUDEINLINEKEYLBRACELITERALNEWLINEPREAMBLERBRACESHARPSPACESTRINGVALUEchaptermonthnumberpagesvolumeyear??%s "%s", line %ld: %s. . %s %s Out of memory for pattern tables"#%'(),={}BIBCLEANINI.bibcleanrcstdoutPATHBIBINPUTS@# line "" %ld input byte=%ld line=%ld column=%2ld output byte=%ld line=%ld column=%2ld File positions: input [] output [] Entry Value Current\%03oUnexpected paragraph break for field ``%f''Pushback buffer overflow: characters lostOut of string memory: FAILED%%%s open file [%s]%s %s%s "%s", line %ld: %s. ??????????JrJr.SrSr.SJS.J.S. J.IVXUnexpected citation key ``%k''String length exceeds standard BibTeX limit for ``%f'' entrySuspicious year in ``%f = %v''Non-zero parenthesis level in ``%f = %v''Unexpected value in ``%f = %v''??????9ABCDEFGHIJKLMNOPQRSTUVWXYZ2345678????????JanuaryjanFebruaryfebMarchmarAprilaprMaymayJunejunJulyjulAugustaugSeptembersepOctoberoctNovembernovDecemberdecJan.Feb.Mar.Apr.Jun.Jul.Aug.Sep.Sept.Oct.Nov.Dec.JanFebMarAprJunJulAugSepSeptOctNovDec%%%s Out of memory for pattern name [%s] -- pattern ignored Out of memory for pattern tablesValue too long for field ``%f'' # @ begins line, but brace level is not zero after entry ``@%e{%k,''Expected @name{...} after entry ``@%e{%k,''IncludePreambleString# Non-zero brace level after @name{...} processed. Last key = ``%k''Expected closing brace or parenthesis in entry ``@%e{%k,''Non-zero brace level after @name{...} processed. Last entry = ``@%e{%k,''Expected comma after last field ``%f''DeathesisDEAthesisInbookInBookIncollectionInCollectionInproceedingsInProceedingsMastersthesisMastersThesisPhdthesisPhdThesisTechreportTechReportNon-alphabetic character begins an entry name@entry_name too longExpected "=" after field ``%f''BIBCLEANEXT.iniansi-standard-numberANSI-standard-numbercodenCODENieee-standard-numberIEEE-standard-numberisbnISBNiso-standard-numberISO-standard-numberissnISSNlccnLCCNmrclassMRclassmrnumberMRnumberuriURIurlURLurnURNxxansi-standard-numberxxANSI-standard-numberxxcodenxxCODENxxieee-standard-numberxxIEEE-standard-numberxxisbnxxISBNxxiso-standard-numberxxISO-standard-numberxxissnxxISSNxxmrclassxxMRclassxxmrnumberxxMRnumberxxurixxURIxxurlxxURLxxurnxxURNEntry field name too longNon-alphabetic character begins a field nameoptOPTstdin-r?? %s Ignoring open failure on file [%s] perror() saysExpected open brace or parenthesis. Last entry = ``@%e{%k,''Braced literal string too long for entry ``%e''Citation key too long=: %s Bad line [%s] in initialization file [%s] Non-zero brace level at end-of-file"comment"@Comment{end"Comment"CommentBeginExpected Scribe open delimiter, one of { [ ( < ' " ` for field ``%f''Expected Scribe separator "=", "/", or " " for field ``%f''Out of memory for pattern table spaceBibTeX string too long for field ``%f''Unexpected quote usage in German-style braced stringEnd-of-file in braced stringEnd-of-file in quoted stringExpected Scribe value string for field ``%f''Scribe string too long for field ``%f''Scribe number string too long for field ``%f''Expected BibTeX value string for field ``%f''},={authorchaptermonthnumberpagesvolumeyeareditortitle"" file=[%s] field=[%-12s] existing patterns discarded file=[%s] field=[%-12s] pattern=[%s] file=[%s] field=[%-12s] pattern=[%s] message[%s] \bf\em\it\rm\sf\sl\tt {}" # "" # # " # """ and ${HOME} ;:,|/0-000-190-2000-6980-70000-84990-850000-899970-9000000-9499990-95000000-98012231-550001-869571-8698001-8956822-012-192-2002-6072-70002-83172-840012-894362-9000002-9400282-95000002-99000033-013-193-2013-6333-70013-82523-850013-895243-9000013-9290313-95000003-98029644-004-194-2504-6574-75004-84704-870004-898294-9000004-9499995-015-125-2005-6905-70005-83965-850015-899965-9001655-9008507-007-047-1007-3147-50007-56397-800007-810357-90000080-0080-0980-20080-23680-700080-715180-8500080-8552980-90007580-90108181-20081-64881-700081-726681-8500081-8569081-90000081-90021182-40082-59982-700082-766182-9000082-9176982-99000082-99251783-0083-1183-20083-23383-700083-708083-8500083-8554183-90000083-90048284-0084-0784-20084-69984-700084-842084-8500084-8960085-0085-1785-20085-34185-700085-726185-8500085-8545785-90000085-90005186-0386-2786-30186-45586-700186-786186-8000186-8204586-90094186-90128987-0087-2087-41187-61187-700087-779987-8500187-8979687-98000087-99720288-0088-1988-20088-46188-700088-840288-8178588-8606589-090-0090-1890-20090-44990-500090-699990-7000090-7431990-80000090-80086891-091-191-2091-4891-50091-63291-700091-799891-8500291-8835691-97000091-99208392-092-592-6192-7792-80092-89192-900192-911793-0950-00950-47950-500950-795950-9000950-9899950-99000950-99949951-0951-1951-20951-54951-550951-889951-8900951-9498951-95000951-96448952-90952-6666952-9500952-9714953-00953-99954-0955-20955-28955-550955-616955-9000955-9151955-95000955-95444956-10956-19956-200956-266956-7000956-7205957-05957-43957-500957-685957-8500957-9699958-02958-32958-600958-656958-9000958-9285958-95001958-95343959-00959-13959-200959-216959-7000959-7033960-00960-12960-200960-433960-7000960-8499960-85000960-85203961-00961-99962-00962-19962-201962-474962-7001962-7646963-00963-18963-200963-892963-700963-8481963-85000963-85084964-00964-99965-01965-19965-207965-442966-00966-99967-60967-89967-900967-989967-9900967-9989967-99901967-99999968-10968-39968-400968-899968-6000968-7275969-0969-1969-26969-39969-400969-473969-8000969-8159970-05970-10970-604970-619970-91000970-91074971-06971-36971-500971-631971-8500971-8819971-91000971-91273972-0972-1972-20972-50972-550972-722972-8004972-9499972-95000972-97520973-21973-49973-550973-682973-9000973-9134973-95000973-95521974-00974-10974-200974-685974-7000974-8499974-85000974-88000975-09975-19975-345975-554975-7402975-7797975-95384975-96606976-40976-42976-600976-636976-8000976-8105977-01977-17977-200977-457977-5000977-5235978-000978-199978-2000978-2887978-30000978-31118979-400979-557979-8000979-8322980-00980-07980-200980-316980-6001980-6303981-00981-03981-200981-215981-3000981-3099982-01982-03982-100982-500983-60983-73983-800983-899983-9000983-9750983-99382983-99747984-01984-30984-400984-556984-8005984-8085985-00985-99987-09959-09959-99961-09961-99962-09962-99963-09963-19963-309963-449963-5509963-5999963-75009963-78469964-09964-69964-709964-949964-9509964-9909965-09965-99966-209966-499966-8309966-8829966-98409966-98749967-09967-99968-97029968-97039970-09970-99971-09971-49971-609971-899971-9009971-9899971-99009971-99249972-09972-99973-109973-189973-7009973-9259973-97009973-99189974-09974-309974-369974-5509974-5809974-75009974-75059975-09975-99976-19976-59976-609976-849976-9009976-9889976-99909976-99929977-009977-899977-9009977-9899977-99009977-99999978-579978-999978-9519978-9719978-99049978-99109979-19979-49979-509979-579979-8009979-8279979-90009979-90679980-09980-19980-549980-849980-9009980-9159981-09982-009982-309982-8009982-8159982-99009983-859983-879983-99009983-99019984-09984-99985-09985-99986-09986-99987-309987-5509987-5839987-88009987-88239988-09989-09989-999903-099904-099904-499904-6099904-6599904-90099904-91799908-1199908-2999908-90099909-099909-999911-0099911-3299911-60099911-86099912-099912-599912-6099912-7999912-90099913-099914-099914-499914-5099914-5899914-90099914-92799915-099915-399915-5099915-7899915-80099915-83099916-199916-3099916-3599916-70099916-70499919-099919-999920-099920-299920-5099920-5599920-90099920-90499921-099921-999922-099922-999924-099924-90-6990-899990-99999991-869791-9989991-99900001-9999999More? f)orward b)ackward d)own e)nd q)uit r)efresh t)op u)p \/)search Search backward: Search forward: r/dev/tty !#()*+,-./:;?[]~?align-equalsauthorcheck-valuesdelete-empty-valueserror-logfile-positionfix-font-changesfix-initialsfix-namesGerman-stylehelpinit-filekeep-linebreakskeep-parbreakskeep-preamble-spaceskeep-spaceskeep-string-spacesmax-widthno-align-equalsno-check-valuesno-delete-empty-valuesno-file-positionno-fix-font-changesno-fix-initialsno-fix-namesno-German-styleno-keep-linebreaksno-keep-parbreaksno-keep-spacesno-parbreaksno-prettyprintno-print-patternsno-read-init-filesno-remove-OPT-prefixesno-scribeno-trace-file-openingno-warningsparbreaksprettyprintprint-patternsread-init-filesremove-OPT-prefixesscribetrace-file-openingversionwarningsUnrecognized option switch: %s%.*sAuthor: Nelson H. F. Beebe Center for Scientific Computing University of Utah Department of Mathematics, 322 INSCC 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA Tel: +1 801 581 5254 FAX: +1 801 585 1640, +1 801 581 4148 Email: beebe@math.utah.edu, beebe@acm.org, beebe@ieee.org (Internet) w%%%s cannot open error log file [%s] -- using stderr instead perror() says Usage: [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]align-equals ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile bibclean Version 2.11.4 [09-May-1998]Compiled by <beebe@bsi.math.utah.edu> on May 26 1998 14:49:14 with native pattern matchingno-ivxlcdm 2dVirtual memory exceeded in `new' $Id: bibclean.c,v 1.11 1996/05/03 20:09:49 beebe Exp beebe $33333333333333333344H444#4)404$Id: chek.c,v 1.3 1996/05/03 20:11:39 beebe Exp beebe $Invalid checksum for CODEN %c%c%c%c%c%c in ``%%f = %%v''Invalid checksum for ISBN %s in ``%%f = %%v''Invalid checksum for ISSN %c%c%c%c-%c%c%c%c in ``%%f = %%v''666"6&6)6.6Incomplete CODEN %c%c%c%c%c should be %c%c%c%c%c%c in ``%%f = %%v'' $Id: do.c,v 1.6 1996/05/03 20:13:38 beebe Exp beebe $0787<7E7I7O7S7Y7]7a7e7j7n7s7w7~7777777777877E77O77Y77j77s77~777777777777877E77O77Y78j78s7 8~787878787 87}])>'"`{[(<'"`$:.:8:?:F:S:`:n:|::::::6;K;`;f;l;;;;;;;;;;;;;;;<< <<<<-<D<L<T<k<<<<<<<<<<<<<<<== ==Expected Scribe close delimiter `%c' [8#%03o], but found `%c' [8#%03o] instead for field ``%%f''@P@f;;;@@ @@`@@`@`@@ @@ $Id: fix.c,v 1.5 1996/05/03 20:14:42 beebe Exp beebe $$Id: fndfil.c,v 1.2 1996/05/03 20:15:28 beebe Exp beebe $$Id: isbn.c,v 1.3 1996/05/03 20:16:23 beebe Exp beebe $AAAAAAAABBB#B-B5B=BFBOBTBYB_BeBlBsB{BBBBBBBBBBBBBBBBBCC CCC C'C/C7C@CICNCSCYC_CfCmCuC}CCCCCCCCCCCCCCCCCCCCDDD#D*D2D:DCDLDVD`DgDnDvD~DDDDDDDDDDDDDDDDEEEEE'E0E6EHHHRHYH`HhHpHyHHHHHHHHHHHHHHHHHI III&I-I4IOEOMOUO^OgOqO{OOOOOOOOOOOOOOOOOP PPP P(P1P:PDPNPVP^PgPpPzPPPPPPPPPPPPPPPPQ QQQ%Q.Q.Q5Q=QEQNQWQWQaQiQqQ{QQQQQQQQQQQQQQQQQQQQR RRR&R0R9RBRBRLRTR\ReRnRxRRRRRRRRRRRRRRRRRRSSS"S"S*S3SN^n~Όތ.>N^n~΍ލ.>N^n~7  3  @hPdPdP(<7Yk Qo&Ov .:F"V#e'r()*+,-23456 78(97GALVM`.~    $8Nau$>I R [dmv   & 0 ;DMV_jt#(-27;<=>ABCDPQRS+T6UCXNY[f3 :g  #      D $ ' ( ) * + , . 0! 1. 2: ?E @R A_ Dm Ez V * Y R &n  N   'F{  :+ j@Bm    &8o   ( ? J& PoY j x &WQ]. > L Y i }     " $%Nx & ( )Y '[ -&@r B C D& E6 FA RX Tm _ ` a)$oPoo DoDqDsDu(DwKDxTDz`D{kD|mm$ЏDD DDDD D5D:DGDND]DiDDDDDDDDDDDDDDD@  @$DD DD D D 0D8DZDjDxDDDDDDD  $(Б(D(D)D*D+00$66D6D@ DBDE'DHpDIDJDKDMDPDQDRDSDUDXDY$DZ0D[PD]UD``DatDbDcDdDeDhDiDlDqDrDs Dv'Dw1Dx8Dy=+@63@98(:8 =Q$PDDD D DDDD"D(D1D8D>DHDHDPDYD_DiDp  HHHPppp$ДDDDVD\DaDpDuD{DDDDDDDDDDDDDDDDD@$DDDD #D0D@DPDQD`D fD!qq$&D&D(D)D+ D-D/$D06D3PD4ZD6wD9D;D<D>D@DCDFD:D?DHDI@'@(@)$NDNDRDSDUDV+DW6DX=D(=D)=D*WD+`DX`DY`DZfD[qD\|D]@O6===````|$hPhDhDuDvgg$  DD D5D?DIDPDUD_DiDnDuDDDDDDDDDDDDDDD DDDD D&D@D@DO@"@,@ 9@&@@@OA$ Wb rDDD D DDD$D+D0D;;w$pW rDD D DDD $DDD$DDDPDPDPDPD\DqDvDDDDDDDDDDDD D D D-D3DGDQD`DfDfDfDpDpDpDDDDDDDDDDDD DDDD D  D D DDD-D7D@DFDFD FDFDFDeD eDpDxDxD|DDDDD%DDDD%D&DDDD DD#D0D6D6D&6D6D6DUD&UD'`D(bDpDrD+D,D-DDDD-D0D1D2D5D6D8@@PP@P  ffppx  FFFFFeeppx@x@x66666UU`$DDD DDDE DFDH DI' '$NDNDODP DR$pp!p 0pDpDwDyDzD{ D}*D0D:DDDYDZDoDqD{DDDDDDDDDDDDD<$DDDP$cDD DDh ~$@DDDD8DbDpDwD~DDDDDDDD D!D#D$@$/0/D/D0D2D3D9##$E`EE DEDFDGDHDDDEDF$DH0DI:DI:DD:DE:DFBDH`DInDJnDDnDEsDF{DHDIDKDDDEDFDHDIDLDDDEDFDHDIDMDDDEDFDH DI.DO.DD.DE.DF6DHPDIZDPZDZDZDDZDEZDFbDHDIDDDDDEDFDHDIDDDDDEDFDHDIDDDRDDDEDF"DH0DI:DS:D:D:DD:DE:DFBDH`DInDnDDDDEDFDHDIDDDDDEDFDHDIDDDUDDDEDFDHDIDVDDDDDEDF"DH@DINDNDnDDnDEqDFyDHDIDDDDDEDFDHDIDDDVDX@E@E@H@H::@I::nn@J@Jns@K@L@L@M..@O@O..ZZ@PZZ@ZZ@@@R@R::@S::@::nn@@@U@U@V@NN@nq@$dP#d,d DdDe DfDg0DiBDjKDl`Dmg g6$y#y,y DyD}DD%D%D]%D^%D_/D`:DaDDbODc\D\DfDfDfDuD~D~DDDDDD0D7D;D@DGDIDPDWDYD`DgDiDpDwDyDDDDDDDDDDDDDDDD DDD#V@y_@yiz}&{r%%%Y\ff@ff{~#$,DDD D D"D0D7D>DPDYD\Dbb$` DD DDDDD  D *D <DDDfDvDDDDDDDDDD $`DDDDDDDDD D &D 8DDDfDvDDDDDDDDDDDD$`DDDDD D -D3DBDHDMD`DeDoDDDDDDDD  $%0D%D&D' D(D) $4P4D4D6D7D8%D(%D)%D*?D+PD8PD9PD:W%%%PPPPW+ $F> FE F DFDJDL|DM}DODSL @FS @FZ $`> `E ` r`D`DiDk=DlmDmDoDqDrDsDtDuDnDpDwDxp $   DD DD DEDG G $DD DDDNDODPDR#D#D5DqDD   # $DDDD"D)D22 $ЯDDDDDDD/D0D3$D93D3D3333 (8 ! ! $! 7! @! ]!(%<o! *!(Ad! P! S! Z! [! \! ]d d!d(<7Yk Qo&Ov .:F"V#e'r()*+,-23456 78(97GALVM`.~    $8Nau$>I R [dmv   & 0 ;DMV_jt#(-27;<=>ABCDPQRS+T6UCXNY[f3 :g  #!)"[""""7#r#E#&## $,$Q$v$%$$$DD DD$@$&7$ $$DDDD  $$DDD%$DD D%0D D&D2!BD2%ND>DDDM!]DMDh3%=% &222DMMhG%$DD D D 3Z% 3l%$DDD%$%DD, D.$D1PD2QD5`D6aD9pD:tD?DADDDFDGDODPDQ%@%&t %$VDVDYD[D]0D^FD_PDa`Dbkk%$mprmDmDnDoDp%$uDuDwDyD{D},DBDNDfDkk&$ DDDD  &$PDDDD0DFDKDPD[[.&$DDDD  B&&& 'A''$'' DD DD(D 2D!7D#@D%FD'PD(VD)b b'$0`D0DIDD DD0D :D!?D#PD%YD'`D(fD)pDIpDJuDMuDNz ppuz'$SDSDf D DDD4D >D!CD#PD%YD'`D(fD)pDfpDguDhuDkzDmDnDo'D!DpDqDrDuDvDw(@T(U  (@f @ppuz%(@o0($r DDD DD$D0DGDND`DkDmH(&mY($`r DDD DD0DGDND`DvD|DDH(&p($r DDD D!D#0D%GD&ND(`D*vD+|D.D/H(&(( )S)$=)=)= )=D=DhDiDkDmDn"Do(Dq2Dr9Ds@)>@)$~и)~D~DD)D<DEE)$ )DD DDD0D9D@DDDEDGDIDSD\DeDiDs s*$DDD  *$0*r DD D(D(D1DAD[DeDkDuDDDDDDDDDDDDDDDDDD DDDD0D9D9DODODODDDDDDDDDDD:D=D=DPDjDjDjDDDD>*tI*\*@a*p i*s* (x*@~*@1*&@0099OO**&O*x*&===PPjj*x*&j*$+r DD D1D1D7DED_DfDlDsDDDDDDDD D D>D>D>DaDuDDDDDDD D"D#DDDD%DBDFDRDaDgD#gD$g>*+0+a* i*s* 1x*@~*@7  >>3@4+D+T+f+& >3@y+~+++& ggggg+$)@+)r) D)D? D@"D"D(D9DSDZD`DgDpDDDBDDDEDFDHDIDK&DM2DNMDOS+@*++\*@-a*. i*@s*@ "x*@~*@(Sdd+d(<7Yk Qo&Ov .:F"V#e'r()*+,-23456 78(97GALVM`.~    $8Nau$>I R [dmv   & 0 ;DMV_jt#(-27;<=>ABCDPQRS+T6UCXNY[f3 :g  #      D $ ' ( ) * + , . 0! 1. 2: ?E @R A_ Dm Ez V * Y R+&  N  +Bm1,=,W,{Gv,N,W^d,j,-G~- l- -&`-&d-&l-@..^..Z/$s// /DD D&D;D;DQ;DT?DUSDXpDYxDZD_DcDgDjDlDnDp DrHDsYDYD`DpDvDDDDDDDDDDQDTDUDX0DY;DZDD_PDciDgDjDlDnDpDrDs)D)D=DG/  &;/@// /;/@R?YY```pp/// //@R))GGG/$DDD D D DD!D3DADGDLDUD_DpDuD{DDDDDDDDDDDD D6D@DEDND[D`DiDnDsD|DD D D DDDDDDDDD @ /$9D9DB DCDD"D)D+D?DNDYDpDzDDDFDHDJDKDDDDDDD DDDKDL DM2D2D2DFDXDcDpDzDDDMDODDDDDDDDD DO DP DQDDD-D<DKDKDRKDTPDUVDV[@@ 0@D" 0@+ 0@  22 0@2 0@      0@Q 0@KKK[0$[`D[D^D`Db'DdEDfJDhZDifDjrDl~DnDpDrDtDu,0$z0DzD}D~D DDD D%D.DPDVDeeC0$DDDDD!D&D.D3D9DBDGDQDWDcDhDpDvDDDDT0$PDD DDODdDqD}DDDDDDDDDDDDD.D@D`DvDDDDDDDDDDD D/D8@0+j0@o0&t 80$))D)D. D1D3"D4*D5*D6/D7pD8pD9D:D;D<D=D>DADBDK 'D +DKDLDM!DP0DQ2DU2DV5DW@DXC0@)0@*0+(@, "*/p0@K0@K  22255@C0$yDyDDD*DUD]DjDyDDDDDDDDDDD D1D@DIDaDuDyD~D@z\*@{j0@|0&}0$DDDDD>DHDMDVD`D `D`DrDDDDDDDDDDDDDDD/D0D1 D3D4DDD0D5M``@ `5&W1T111,2a2223S3~3$3 DD DDD0D0DID \D fD DDDDDDDDDcDgDi%Dl7DniDosDpDqDtDDDDD3  00<I33@e(@d3$$D$D) D+D-D/%D0*D2:D4DD6VD8mD9wD;|D<D>D@DADDDEDFDKDLDMDNDODVDWDX"DZ.D[8Dc@DfJDQPDRZD]`D^gD`tDayDhDiDjDkDmDnDoDpDr@%\*@' 3$~`3~3~ D~D DD2DCD_DoDDD 3$DDDD@DHDQD`DpDrDDDDDDDD4$DD DD D+D6DQDlDDDDDDDDDD!D0D8DADPDoD)4@3484E4@ O4$pl4DDD DDD$D0D5D:DCDPD `D"iD#sD%}D&D'D(t4$-D-D0D2D4 D6D7D90D;5D<?D=EDAPDCVDEee4$JDJDN DP DQDRIDTIDUZDVeDWhDXmDYrDrDuDDDDDZDbDcDDDDcDdDeDDDDD D D*D5DGDeGDiGDkGDlP3@K0@L   I0@Yr 0@u0@c 0@0@e 0@GGGGGGGGGPP4$qDqDuDwDx DyD{D|D}DDDDDDDDDD~D D&D/D4D@DFDPDXD^DaDaDp4@r0@s @aaapp4$`DD DDD!D<DJDQD`DhDpDvDDDDDDDDDDDDDDDD@\*@40@ 4$pDDD DD5$DDDDDD-D0D2#D4(D6-D77D9@D;ED<OD=UDA`DCfDExDxDDD/D0D1D3D4DDDDzD}D~DDDDDDDDDDD@.xx@{%5$DD D DD(D0DBDLDhDDDDDDD D D DDDDD D!D0D4D@D"AD&PD'V%@@@(@E5 VU5$qDqD DDDD D%D7DEDKDPDYDcDDDDDDDDDDDDDMDODTDVDW DYD[(D\-D]0D`5Db8Dc@DfDDgJDhWDi`DkjDloDoDDDDDDDDDDDD DDD&D0D5D5D5DGD`DlDrDDDDDDDDDDDDDDDDDDD DDDD)D/D;D@DPDVD`DfDxDDDDDDDDDDDDDDDDDDDD DD D&D0D6DHDRDRDlDDDDD,D2D3D5D6D7D9D;D=D>D?DCDEDF9DHGDGDGDLm5 @%@O@Nooo5\*@@5@@RRl505&.l@-GGGGGGGGL5$pDDD DDD"D(D7D@DQDVV5$DDDD'D,D>D>DIDRD`DeDoDDDDDDD,5>``5$ D D D D'D<DPDUU 6$DD!D"D##D$8D%?D&PD'Z$6Z=6$,pD,D1D3D4D5&D79D9AD:HD;QD<pD>yD@DADCDEDFDGDHDJDKDLDN DPDQ-DT:DU@@-\*@/@N6$ZDZD[D\ D]D^`6$cDcDdDfDgDiDjD-D0D2#D4(D6-D77D9@D;ED<OD=UDA`DCfDExDkxDmDoDqDsDuDzD}D~DDDDDDDDDDvDwDx@.xx@{t6$6DDDD D5D:DDDHH6$0DDD DD"D'D,,6$pDD DD D@DRDXDbDlDDDDDDDDDDDDD0D5D@DEDPDUDZDaDfDkDDDDDDDDDDD D D$D*D@DMD D D D D DDD"D+D;DPDDD D!D"D#D$D%D&D(D*D+D,D-D.D/D3D4D5"D:0D;:D<ED=LD>\D?hD@vDADBDC6@\*@3@6 6$ l4DDDDD4DFDMDPDbDhDpD7(.7(647(6=7$DDD DDBDBDDDHDPDXD^DcDpDwDwDzDDDDDDDDDDDDDDD DDDD D&D)D)D+@0@BwX7@\*@@z))+d7$DDDD D 2D DD VD ]D hD D x7$ D D D D D D 9D KD QD WD aD pD" xD# D$ D% D( D) D* DDDD D D D D D D `D `D* `D+ `D- eD. rD0 D1 D2 D3 D4 D5 D6 D8 D9 D: D< D= DA DB DE DF DG DI #DM *DN 1DP 6DQ 9DR >DS CDT HDU LD\ QD^ wD_ D` Da Db Dc Dd De 6 @ \*@ 0@  09pp``` wwwww7$j pDj Dn Dr Ds Du "Dw )Dx 8Dy GD~ `D oD vD D D D D D D D D D D D D D D D D D 0D 9D9D9DKD ]D oD D D D D D D D D D D 1D @D ED HD OD TD YD `D dD pD D D D D D D D D D D D D D D @k 7l \*@m 7n (@o  v00999 7$ D D D D D D ,D ,D 1D 8D YD ^D pD vD D D D D D D D D ,,7$ PD D D D D D 0D BD HD RD pD vD D DSDTDUD D DHDKDNDODQDYDZ D\D]D^D_"D`&Da,Db.D .D @D EDpPDqXDrcD pD uDguDjuDlzDnDvDwDyDzD{D|D}D~D D D D @ 0@K\*@J@I..@@@ppuu0@j\*@i@hu8$+ P+ 8+ %8+ D+ D, D? D@ DB +DD 9DE ;DG PDI TDJ YDN fDO jDP kDQ qDS vDT zDZ D[ D` Da Db Da Dd De Dg Di Dj Dk 58@+ E8@, K8@-   U8$p pDp Dq Dr Ds Dt !Du +Dv 5Dw <Dx CDy JDz QQg88j8:99W9$ 9 D D D D 9$ : D D D D D D "":$ D D D ':$ @D D D D D D &&9:$ pD D D D &D -D CD XD `D cD yD D D D D D D D D D 0@ (@ S:$ `D D D D D 0D BD ID UD lD sD D f:$ D D D D D #D @D ^^x:$ `D D D :$ : D D D D D 1D @D ED PD XX::4;N;$ D D1 D3 D4 (D5 (D7 7D9 YD: oD< tD? tD@ DA DC DE D D D D D &D @D aDF aD aD aD jD |D D D D D D D D DH DK DM /DN 9DO CDS PDT U;& ;&' T (taaaaPPPU;$a @s/a /a /a Da Db Dd Dg Dh @Dk DDo `Dq y y;$| :| D| D D D -- <$ D D D D 7D ND SD lD D D D D D D D D \*@ 3@ dd<d(<7Yk Qo&Ov .:F"V#e'r()*+,-23456 78(97GALVM`.~    $8Nau$>I R [dmv   & 0 ;DMV_jt#(-27;<=>ABCDPQRS+T6UCXNY[f3 :g  #"<&7<Q<n<$)D)DG DHDJ0DMPDNQDPZDQcDRD[D]*D^2Da9Dd@DfKDgSDiZDo[DpfDHnDqwDr~Ds%@*0++<@,<-(@. <$~<~D~DDD D,DPDQD`DaDpDtDvD|DDDDDDDDDDDDD)<@~%@(@<@<(6)<$DD DDD,D2D@D\DDDD D D D DDDDDD$DCDEDPDSDkDD< =@0@= =$$`D$D/ D2(D5BD6OD7\D9D;D<D=D>D?D@DBDDDEDFDG!DH$DJ*DK8DMWDNbDOm<@%2=&6='B=@( mG=$T DTDZ D[D^,D`:DaSDbVDc`DdgDexDfDnDoDsDtDu<DwHDxWDy_Dzp\*@U<@VY=Wf=X pr=$` <DD DD D&D1D:D@D`DaDpDqDDDDDDDDD =$@ DD DD2D@D@DCDJDPDSDZD`DjDDDDDDDDDDDDDD DDD D2D:DLD`DzD{DDDDDDDDDDDDDDDD =@6\*@=@ $2@`jj3@= =$`== DD5 D7D8D9D<)D=/D?5DB`DCiDD~DGDHDKDTDWDXDYD[D\D`Da=@=@=&0=&1>&2>@3 dedp'>dp(<7Yk Qo&Ov .:F"V#e'r()*+,-23456 78(97GALVM`.~    $8Nau$>I R [dmv   & 0 ;DMV_jt#(-27;<=>ABCDPQRS+T6UCXNY[f3 :g  #    0>q> >>$ ' ( ) * + , . 0! 1. 2: ?E @R A_ Dm Ez V * Y R0?&E?y???/$@$p5@DDDD&D7D7DODWDeDfDDDDDDDDDDDDD$D@DPD `D D D DDDDDDDDDDDD D.DBDPDkDkDkDmDwDDDDDDDDD"D# D$0D89D=IE@@R@(Fk@@q@v@@|@@@&7f@@@$1``x@@@BPPk@@@km      0I@$R@R@R DRDDDD#D3D:D@DLDeDsDyD~DDDDDDDDDDD"D:DADVDXD]D^DwDy@(TJ A(UN@V%A@Wk@@Xy,A$`;ADD DD  D (D /D BDFDMDO OddHAd(<7Yk Qo&Ov .:F"V#e'r()*+,-23456 78(97GALVM`.~    $8Nau$>I R [dmv   & 0 ;DMV_jt#(-27;<=>ABCDPQRS+T6UCXNY[f3 :g  #OA&:dA$AA DD D;DOD UD ]D `DdDDDDDDD DDD D @D"LD#SD$ZD'pD(rA@A@A(R@ rA$4@4A4 A4D4D@ DIDtDxDz(D{5D}KDTDjDkDpDtDDDDDDIDMDODPDDDDD%D'DQ'DS+DU]DVgDDZD\D]D_D`Db DcDd#A5A@6A7B8  B@IB@v3@uBP$B&TQB&TB&T''##C$pp=CpAp GCpDpDy DzD|&D}KD`DmDDDOCujCvCw C$ CC DD DDDKDODTDUDVDZ ZddCd(<7Yk Qo&Ov .:F"V#e'r()*+,-23456 78(97GALVM`.~    $8Nau$>I R [dmv   & 0 ;DMV_jt#(-27;<=>ABCDPQRS+T6UCXNY[f3 :g  #CCC      D $ ' ( ) * + , . 0! 1. 2: ?E @R A_ Dm Ez V * Y R0?&   N   &WC6DpDDE7E{EEEFDF$ObFOlFO {FOFODOD[D\D] D_$D`DbDeDhDnDoDsDvD|DDDD%D;DDD`DaDnDuDDDDD>D?D@DADDDF@OF@OF@OF@P $$F@F$`bFF lF{FFDD DD)D2D8D=D=D`DjDuD|D}DDDDDDDDDDDDDDDDDD D%D0D6D:D<DCD`DeDlDvDD>D?D@DADDDDDDDDDDDDD#D'D2D8DAD PD SDiD{DDDDDD>D?D@DADDD@@FG& 28=``/@/G@L``I R [dmv   & 0 ;DMV_jt#(-27;<=>ABCDPQRS+T6UCXNY[f3 :g  #IJ0J&oHEJ$"_JhJ DDDD DDDDDDDD D4DND`DtDDDDDDDDD/D8DTDXDqDDDDDDDDDD)D0D@DZD`DuDDDDDDDDDtJ@zJ@J$'JDDDD @D ADPD`DaDpD{DDD#D$D D!D)D*D+tJ@ds(d(Jd((<7Yk Qo&Ov .:F"V#e'r()*+,-23456 78(97GALVM`.~    $8Nau$>I R [dmv   & 0 ;DMV_jt#(-27;<=>ABCDPQRS+T6UCXNY[f3 :g  #J&7<JJ4KzKK$m(mKm DmDD$DEDKDTD\DmDsDDDDDDDDDKq| L&u#L$)9L DD DD0D6D>DGDVD_BL& _YL$)DDDDoL$ *D D D   L$0*DD!D"D# L&T L$(P*D(D)D*  L$/p*D/D0D1  L$6*D6D7D8 D;%D<?D=ND>XDApDBuuM$G+DGDHDI  M$N0+DNDODP  8M$UP+DUDVDW  QM$\p+D\D]D^  gM$c+DcDzD{ D|-D}@xM&d@M$+DDD DM$+DDD  M$,DDD  M$0,DDD  M$P,DDD  N$p,DDD  2N$,DDD  QN$,DDD ',D J,DDD#D- -gN$,DDD  }N$-DDD  N$0-DDD  N$P-DDD  N$p-DDD  N$-DDD  N$-DDD  O$-DDDD2O$-DDD  GO$.DDDDD$UO&$qO$0.DDIDJO& O$OP.DODPDQ  O(/RO(0RO(1Rdt.d.Od.(<7Yk Qo&Ov .:F"V#e'r()*+,-23456 78(97GALVM`.~    $8Nau$>I R [dmv   & 0 ;DMV_jt#(-27;<=>ABCDPQRS+T6UCXNY[f3 :g  #O& HP$N.PN$PN DNDTDVDWDXD[0D\DD^OD`XDadDcnDdrDfDgDhDiDjDkDlDm3P$x /xDxDyDzBP$@/DDD.D2DPDR[P&|lP&L\Rd/d/Pd/(<7Yk Qo&Ov .:F"V#e'r()*+,-23456 78(97GALVM`.~    $8Nau$>I R [dmv   & 0 ;DMV_jt#(-27;<=>ABCDPQRS+T6UCXNY[f3 :g  #J& P$/PP DD! D"D$#D%,D),D(0D*?D+@D,ED-G Gd/Pd0Pd0(<7Yk QoPQ0QLQnQzQQQQ$RERsRR6RRRSBSlSSSSS/TaTt7TTBTCTDTETFTHTITLTRT!UuEU$0[UgU@d0Pd 0Pd 0(<7Yk QoPQ0QLQnQzQQQQ$RERsRR6RRRSBSlSSSSS/TaTt7TTBTCTDTETFTHTITLTRT!UuoUsU$ 0U{U@{dh0Pdp0Pdp0(<7Yk QoPQ0QLQnQzQQQQ$RERsRR6RRRSBSlSSSSS/TaTt7TTBTCTDTETFTHTITLTRT!UuU$p0[UgU@d0Pd0Pd0(<7Yk QoPQ0QLQnQzQQQQ$RERsRR6RRRSBSlSSSSS/TaTt7TTBTCTDTETFTHTITLTRT!UuU$0UU@d0Pd0Pd0(<7Yk QoPQ0QLQnQzQQQQ$RERsRR6RRRSBSlSSSSS/TaTt7TTBTCTDTETFTHTITLTRT!UuU&h\U$0UVV@ V@d1Pd1Pd1(<7Yk QoPQ0QLQnQzQQQQ$RERsRR6RRRSBSlSSSSS/TaTt7TTBTCTDTETFTHTITLTRT!UuU&h]V$1V$Vd 3Pd3Pd3(<7Yk QoPQ0QLQnQzQQQQ$RERsRR6RRRSBSlSSSSS/TaTt7TTBTCTDTETFTHTITLTRT!Uuv .:F"V#e'r()*+,)V-23456 78(9p3 I Wdk   p  @ In  n= 8o Po r Џ 8 <(G ` $+ >8Hd(X h& w; Я: r 0  8 9  . 7=    q I Ct Y` l@]  t  D     } иN  -6 2` >d Rl eQ zO @}  pU w PB  p    'i 9 I V> n0i 03 e P Z _ `   @- .t8 <L L Z gb u ` ^ p   ^  P  5V I` \5 spJ _  `  6 la p]  p 4 E(N6T6] sp & p  TH  7  6 ` ! , @ H: QF\pV iJuN`Y 8 T`  R| p  d : `  P - P? L @ R D [  + n ! | @ v R$ H9 ' : @ +@ * 0*  P*  p* ! *y 3 + I 0+ b P+ w p+ + + , 0, P, p,  , + ,1 = , O - c 0- z P- p- - - - - R R R" .( , T 7 P.$ F T0 P D ^ 0. j D y < H4 @/V | L\ :      h\  h]  /Q  Pn P`  ("   B  N  ^  l |u 7 8"  Hg t3 r Xl ) T 2 h"  o x<xT'". <ho Er R I gPz V"` $ " ` nP  }   !0-o <"CS1Z ]n g6 rr 0 Pe 0 0* ` Do i  do Ho &l 7H( @ȌFL Y$ is،{9 Xo )i  p0 n lo "T r o $n 6 E,Sp# bo l zx `  r ,o   r \ &8 0C" H0 )H 04( ; ( E( Qr eXgl |h"- Pw r 03  xf4xo r " 0`o <`  I@ U"Z fo crtstuff.cgcc2_compiled.__do_global_ctors_aux__CTOR_END__init_dummyforce_to_data__DTOR_END__crt0.Sdone__do_global_dtors_aux__DTOR_LIST__fini_dummy__CTOR_LIST__bibclean.crcsidbuf_lengtherror_countn_pushbackbputc__Fibuforiginal_fileformat__FPCcout_status__FP8_IO_FILEPCcout_error__FP8_IO_FILEPCcnewmsg.56pushback_bufferinit_tables__Fvout_number__Flword_length__FPCcwrap_line__Fvlast_line_number.109resync__Fvchek.cfmt.50fmt.53fmt.56bad_ISSN__FPcunexpected__Fvvalidate_CODEN__FPCcUiis_CODEN_char__FiUiparse_list__FPCcPFiUi_7YESorNOPFPCcUi_vvalidate_ISBN__FPCcUiis_ISBN_char__FiUivalidate_ISSN__FPCcUiis_ISSN_char__FiUijuniors.69fmt.94n_significant.97n_significant.100n_significant.103parse_separator__FP12s_parse_dataparse_element__FP12s_parse_datamultiplier.114do.cspace_countScribe_close_delimsScribe_open_delimsadd_pattern__FPCcN20enlarge_table__FP15s_pattern_tableprt_pattern__FPCcN20do_BibTeX_entry__Fvnew_entry__Fvdo_optional_space__Fvdo_entry_name__Fvdo_group__Fvdo_preamble__Fvdo_string__Fvdo_open_brace__Fvdo_key_name__Fvdo_comma__Fvdo_field_value_pair__Fvdo_close_brace__Fvflush_inter_entry_space__Fvdo_BibTeX_value_1__Fvget_simple_string__Fvdo_optional_inline_comment__Fvout_value__Fvdo_BibTeX_value_2__Fvout_close_brace__Fvout_comma__Fventry_pair.56do_escapes__FPcfield_pair.65do_field__Fvout_field__Fvdo_Scribe_separator__Fvout_equals__Fvdo_Scribe_value__Fvdo_one_file__FP8_IO_FILEget_line__FP8_IO_FILEdo_single_arg__FPcdo_new_pattern__FPcget_token__FPcPPcPCcnew_io_pair__FP9s_io_pairdo_Scribe_entry__Fvout_open_brace__Fvget_optional_space__Fvdo_space__Fvout_other__FPCcdo_preamble_2__Fvdo_Scribe_block_comment__Fvget_Scribe_string__Fvput_back_string__FPCcfmt.98do_Scribe_open_delimiter__Fvdo_string_2__Fvget_braced_string__Fvget_parbreak__Fvline.131p.132more.133get_quoted_string__Fvget_Scribe_delimited_string__Fvnew_position__FP10s_positionout_complex_value__Fvchecks.172fixes.173trim_value__Fvfix.cbrace_font_changes__Fvs.36month_token__FPCcPUib_level.49in_quoted_string.50next.51fndfil.caltname.38envsub__FPCcfullname.41fullpath.42isfile__FPcisbn.cISBN_range.37new_ISBN.40hyphenate_one_ISBN__FPCcT0in_ISBN_range__FPCcN20squeeze_ISBN__FPcPCckeybrd.cdo_search__FP8_IO_FILEiiiPPCcsearch_string.40erase_characters__FP8_IO_FILEifpttytty_initreset_terminal__Fvkbinitmap__Fvset_terminal__Fvtty_savematch.cnext_s__FPCcoption.coptions.34opt_help__Fvopt_align_equals__Fvopt_author__Fvopt_check_values__Fvopt_delete_empty_values__Fvopt_error_log__Fvopt_file_position__Fvopt_fix_font_changes__Fvopt_fix_initials__Fvopt_fix_names__Fvopt_German_style__Fvopt_init_file__Fvopt_keep_linebreaks__Fvopt_keep_parbreaks__Fvopt_keep_preamble_spaces__Fvopt_keep_spaces__Fvopt_keep_string_spaces__Fvopt_max_width__Fvopt_parbreaks__Fvopt_prettyprint__Fvopt_print_patterns__Fvopt_read_init_files__Fvopt_remove_OPT_prefixes__Fvopt_scribe__Fvopt_trace_file_opening__Fvopt_warnings__Fvopt_version__Fvcurrent_indexnext_optioncurrent_optionusage__Fvoptions.37YESorNOarg__Fvauthor.44help_lines.61version__Fvusage_lines.98version_string.101romtol.croman_digit_value__Firoman_digits.38roman_values.39strist.clibgcc2.c__clz_tabstristr__FPCcT0strcpyisidchar__FiStrdup__FPCcioctlout_lines__FP8_IO_FILEPPCc7YESorNOkbclose__Fvout_newline__Fvcurrent_value_DYNAMICcheck_ISBN__Fv__write__ctype_bgetenv_etextstdlog_on_stdout__strtol_internalisoptionprefix__Fi_IO_stdout_fix_author__FPcfgetsfix_month__Fvmax_widthmemcpy_IO_stderr_perrorwarning__FPCcin_valuescreen_linesget_screen_lines__Fvfree_pattern_table_entries__FP15s_pattern_tablefeofmallocdo_initfile__FPCcT0check_chapter__Fvmatch_pattern__FPCcT0put_back__Fitype_namefix_pages__Fvcurrent_keyfindfile__FPCcT0___brk_addrprint_patternsfflush__ctype_toupper__umoddi3__environkbopen__Fvcurrent_entry_name___builtin_deletecheck_other__Fv__udivdi3out_spaces__Ficheck_volume__Fvdelete_empty_valuesout_verbatim__FPCckbcode__Fvin_stringdiscard_next_comma_initcheck_inodes__Fvthe_file__libc_initprogram_namecheck_pages__Fv_sys_nerrstrrchrkbget__Fvfix_namesdo_preargs__FiPPc__new_handler___builtin_vec_deleteenvironis_parbreakfprintf_IO_stdin_strcatshared_stringtrace_file_openingnon_white_charsfield_indentationcheck_ISSN__Fv__fpu_controlMemset__FPviUiparbreaksout_flush__Fvget_linebreak__Fvout_with_parbreak_error__FPccheck_junior__FPCcread_initialization_filesalign_equals_startstdlogshow_file_positionGerman_stylestrncmpcheck_valuesstrncpyinitialization_file_name___crt_dummy__reallocclose_charcheck_length__FUiout_at__Fvcheck_patterns__FP15s_pattern_tablePCcfix_periods__FPcvalue_indentationthe_valuecheck_year__Fvstrncatget_next_non_blank__Fvwarningstfopen__FPCcT0out_with_error__FPCcT0check_number__Fvcheck_CODEN__Fvfopen__bss_startkeep_spacesset_new_handlermainfix_font_changes___builtin_newpattern_namesfix_initialskeep_linebreaksfclosetcgetattr__uflowcheck_month__Fvdo_args__FiPPcout_string__F10token_listPCcstrcmpat_levelfix_namelist__Fv__builtin_vec_newgetpwnam_finieofilesprintfatexitstrcspnrflagdo_more__FP8_IO_FILEiiPPCcfpincheck_key__Fvget_char__Fvbrace_levelisroman__Fifputcout_c__FiISBN_hyphenate__FPcT0Uiromtol__FPCcPPc__builtin_vec_deletekeep_parbreaksaccess_edataMemmove__FPvPCvUi_GLOBAL_OFFSET_TABLE__endfix_title__Fv_fxstatstricmp__FPCcT0fatal__FPCcexitstrnicmp__FPCcT0Uiprettyprint_errno__builtin_deletefileno__setfpucw_exit__builtin_newstrspn___builtin_vec_newkeymapmonth_pairthe_entrytoken_startremove_OPT_prefixesstrchrdo_files__FiPPcfputsout_token__F10token_listPCcapply_function__FPCcP23s_option_function_entryScribe__default_new_handlertcsetattr__ctype_tolowerkeep_preamble_spaceswrappingcurrent_fieldin_preambledo_other__Fvout_s__FPCcfreeerror__FPCckeep_string_spacesbibclean-3.07/ibmpc/dos/0000775000156700015670000000000014431412252013763 5ustar beebebeebebibclean-3.07/ibmpc/dos/msc6p0/0000775000156700015670000000000014431412252015073 5ustar beebebeebebibclean-3.07/ibmpc/dos/msc6p0/bibclean.exe0000755000156700015670000040467306142137027017360 0ustar beebebeebeMZ]`Y  ~s[8j@<840,($  + I # I  I  I I  I "[pR )))w)*(&$"*)0.,)+ +*<:8642- -,,,+>@-FDB00o0]0K090'00//.JH0L4444h3NP76RVTQ:9XM<Z\EDDDBBB^`Efdb3HTN~MhPOORTYVjl>[.[pn\\\\x\f\9\"\\r^~^%^|xtplhd`\XTPLHD@<840,($  B > : 6 2 . * & "      ~zvrnjfb^ZVRNJFB>:62.*&" d\TLD4,$ t`2_ _vaaaaqa^axc8c*cbazof'eddzdc|f~iidgRNJFB>:62.*&" ~zvrnjfb^ZVRNJFB>:62.*&" ~zvrnjfb^ZVRNJFB>:62.*&" ~zvrnjfb^ZVRNJFB>:62.*&" ~zvrnjfb^ZVRNJFB>:62.*&" ~zvrnjfb^ZV~zvrnjfb^ZVRNJFB>:62.*&" ~zvrnjfb^ZVRNJFB>:62.*&" vrnjfb^ZVRNJFB>:62.*&" ~zvrnjfb^ZVRNJFB>:62.*&" x ......~.v.n.f.^.V.N.F.>.6...&.....----------------~-v-n-f-^-V-N-F->-T/L/D/:62.*&" ~zvrnjfb^ZVRNJFB>:62.*&" ~zvrnjfb^ZVRNJFB>:62.*&" zvrnjfb^ZVRNJFB>:62.*&" ~zvrnjfb^ZVRNJFB>:62.*&" ~zvrnjfb^Ziiiiiiiiiiiiii~ijjj|jxjtjpjljhjdj`j\jXjTjjk* H k6l0lnrqnqjqfqbq^qZqVqRqNqJqFqBq>q:q6q2q.q*q&q"qqqqqq qqqpppppppppqqU苊WVvv FFF^v&@& t>&G+F#FP&w&7vv u&T^_]Ð+^_]3r&x"&z"Ð3>~Nr&.p"&r"r&- ur&t"&v"&x"&z"Îr&.x"&z"Ð3衉r& t >ÐUyWVr&Ƈ^N~~ ^& u~|`^& uU&ƇzlPPNzlP P㍃FI QPFN袎PvvWV !>~zlPI QPzlP贌^_]Ð3賈>~r&ÐU菈FHx;}؎r&]Ð]ÐU3^> |F- ur+&z"&x"&|"&~"r&x"&z"&p"&r"Fr&]UWV `tX"عvvFVRPr&6:&68r&6Z"&6X"PPr&6"&6"蛊Pr&6"&6" r&6"&6"HPzlP PzlP PzlP vvzlP PzlP PzlP-  ^_]ÐU3vvPPr&6"&6"׉P克]U詆V+FF0Fv&=vuw1,%u,@t tq,uPQPFF=r-Pvv!#I QP6 r& 3!#I ^]øPQPF!#I QPTFF2QP蝋FF=s2ÐPQP{FF=rsP랸BQPWFF=rOByr^&Ƈ!#%~r+&r^&!#FF^v&8t&-%uǐr^&Ƈ!#!#^]ÐU32^&G& t&w&7^+&G&^&G& Gt&w&w^+&G&G]ÐU3܄F Ftvvvv趉]U賄F FtKF&&WRQXF^F&9G&G& t &w&7c+^&G&G]USVFFr^& &  tB& & =r& & r+& & & & ^]ÐU߃V>~㋇Lt?r&P"&Or&P"&|&7&&G&*r&6R"SᆃFr&\"&^"=u = u-&h"&j"&d"&f"&`"&b"+&f"&d"x^*Snu$&d"&f"&d"&f"&`"&b"H= u%&d"&f"&`"&b"$&d"&f"&d"&f"&d"&f"&`"&b"~{u ~}uF^]U蕂F^*SntF- t&HHt*FF@uv ~~ ]ø]Ð]Ð+]U5+FF>t>u>t>u>uFPF@tR^*SntFF- tHHt݃>u>u]ÐF>u>uF]ÐF릐~~~UVFr^& &  u& & r& & P*r& & &  u P.r^&ķ +&D&r&ķ &Dr&ğ &GF~d}[^]ÐU3ƀ>u+^*Snu~.t~#t ~&t~%u$]Ê^*Sntv(Pm t+]ÐUg3P蹆 t?P誆KډFV+r&"l&"^&&Wr&B&Br&X"X&Z"&l"Y&n"fvvv:t>uvv`P$RP.>uvvePRP-vvvr u>uHvvva*>@]ÐUEFV FVNVNV;w@F ;v9F HFFVF HFN ~ t3^N&^N&N ~ t^F&^F&㐋]U~FVFVF^F&N ~ uFV]Ð3~oPPÐUs~F= u~@t- ti]ÐK]Ð]Ð;F^*SnuFNvF@u~ u~%uܸ P]7F= t= u-tHtHt>uK~ tE;|0;v*r&d"&f"&`"&b"\P& Pv}]U3l}zl;Fu;Nuv v]vvv ve]Ð35}PPU3}qPT^&w&wyP:^&w&7+|P!]ÐU|WV~ tjFF^v&@& u+FF^v&@& t0vv&p&0蝄 P^&q&1S tF+F=t^v&@& uiFiv vHHPvvvd F@u i^_]Ð~u F+@@F~}FLF9F~AFHF7F0FF^v&@& tvv&p&0ăՐ^_]3{P PÐUs{vvPFP䃃 FP]ÐU<G{v vvv^ &w&w &w&w&w&wPFP葃FPvv^ &w"&w &w&&w$&w&wPFPUFPvvL]U3z<>uUÌ@RPq噎r&x"&z";|.;v&F^&?ty&= tw,t:,t^&*P͸ P P>uP6ڸ P>uPGF^& t|]U3y>u P[N~]U3y>tv vvv3Pvv#6bt6`tvvPvv6vt6ttvvPvvv vvv帄BQPPvvv vvv(QPPvvv vvvz`tPPvv]ÐU3x>u>uvv]Ð>u>t>u vvvvv]Uux^&?u "r&9|(&9vP&r&& "FRP P^42K P"Pw\Pk^&P]F^&?u&=\tv< t)~,tt |PPE]ÐF㉇Ltr&.\"&^"*Snu~uL~ u &`"&b"&d"&f"&.h"&j"&~ u&`"&b"&d"&f" &.d"&f"~{u]Ã~}u]3{uT)ÐUauvvz@PBzFV u zPSvvvviz]ÐUui&&*FSntFSntG^&F^&&*FSntFSntG^&;FuFF^&?u^&&*FSntFSntG^&F^&&*FSntFSntG^&ȋF+]U 3tV^&SntG ^&*F^&&*FSntF^&SntG ^&*F;F~ ^]ÐF9F}^]FFN ~ t1^&?t(v&<t&&*FSnuJF`~ u+^]Ð^&?u^&?^]UCsv vvv2vFV>u2 FuPvvPPr&6"&6" vFV]U3rWV>t`tX"عvvRPr&6:&68r&6Z"&6X"P>uPPr&6"&6"uPr&6"&6"r&6"&6",v^_]ÐU'rVFF^v&8t &*Snt^&8uD^]Ë^]Ð3qPPÐUFq^&u?&GF&u?&GF&u?&GF&u?&GF&u?&GFvvvvP&u?&GP PFPyFPF]UX!qEPFPTvFV@RPvF-#PFV@RPFPz FPFPFP'W FPPPFP:y FP]ÐUNp^&u?&GF&u?&GF&u?&GF&u?&GF&u?&GF&u?&GF&u?&GFvvvvvvP&u?&GP~PFP_xFP]3oBQPr&6 &6 Ht3o#PX!PBQPpU<or&FPr&"&O *QyFPl*QyF9Fu7F9Fu/FҋV9Fu$9VuFދV9Fu9Vur&]Îr&]ÐUnPPBQP6U $P!PBQP]3n%P"PBQPUnV+FFFF^v&8u&=}tw, t",t, t ,OtN̐~uŸ^]Ã~uFF^㋇ t2sPFVF@RP u륐PFVF@RP.w tK+^]ÐUmVFFr^& &  tIPQP& & i uȸPQPr& &  u Pv^]U3Nmr&>u~rPK]ÐU%mBQPr=uBFFr^&& t BQP& &  uʋ]øBQPr&6 &6 Ht]3lBQPr&6 &6 HtUylVFFr^& &  tA2QP& &  uȸBQPr& & 7 uW^]3 lBQPr&6 &6 Ht+UkVF(^v&4&p&p^]ÐF^F&9G~C&&p&0v vZHu^&&@& @t&X&??uGPh&^]3MkBQPr&6' &6% LHtmU !kBQPr&6/ &6- HtpAFBFX&*SntH PFPvd FV |=r |=3v XPFVFVF^&?u]U3j~a|~z F-`]Ã~A|~Z F-@]Ã~1|~9 F-]Ã~0u$]Ð]ÐU%jV+FF3FH;Fv2^ v&8-t&ȘSnu ^v&FFF9Fr^v&F^ v&8-t&SnuF+^]UDiWV^&GP&GP&GP&GP&GP&GPQRVWPxPFPqFPm^_]U3Di~u>t ~-u]Ã>s^Snt␃>r ^Snu+]ÐU3h~u>t~-t ^Snt]Ã> s^Snt␃> r^SnuXtxt+]ÐU3h~u>t~-t ^Snt]Ã>s^Snt␃>r^SnuXtxt+]ÐU hFVFVFFvvvV FP}FP~uՋ]ÐUgVF^&G&W&G&W F^&G^&w&<tv&PF&Ht^&G&+G&G ^]ÐUagV^&G&W&G&WFF"^&_&?)u NuFF^&G^&w&<t.v&PF& t~~^&_&?(uF뼐^&G&+G&G ~t P^]Ð3fPÐUfV PFPkvvvPFPO FFF(uF"ڊB8t FPsFvzt sˊBP拄ZFՐFPk=uF"ڊ6FFPDFPk=u~t FP^]UeVfPFPjvvv PFPk FFFUB-0FFnF< u6zXtzxuF B-0FF ;Vt FPFvzt szXtzxuF 땐FPj= u~t FP^]UdVqPFPjvvv PFP FFFWB-0FF@@nF<u6zXtzxuF B-0FF ;Vt FPFvztszXtzxuF 듐FPi=u~t FPl^]UdWVPvv gi uvv%߃^&G&9GuS F'vvK^v&4&@&PF^F&9G~g&&p&0vv h u^&&@& @t#F Ft&p&pvvh uF FtoFVrvv ^&7ǎF&_Ύ&&PF FuFV vvw^&w&&@&P^&Gvvvv v v.5 ^_]ÐUbVFFr^& &  tHvv& & = uvv v vvvr& & -^]Ð~c|$vvD PG Pr&6"&6"eΐvvr^& & Pfr& & &  u Pڃr^&ķ +&D&r&ķ &Dr&ķ &Dvv v vvvr& & Sr+& & & & ^]ÐU1aBQPfFvvfF=svvFBQP8f]øBQP-vvBQPf P PA]ÐU`WVrX"ع܉FrBX"عr&>u;~@u5r&r&>t< PW؃r&^_]Ð~tv P6 P^_]ÐU3`-Hr&>ur&>u 'r&>u PXr&>u7 PPQP%e u ? PPQPe uH PPQPd ur&>u Plr&>t`{(r&>tNi6r&>W$r&>t*r&>t9H Htَr&>t $&]3^r&>uÐU^WVr(X"عr&BKr&>ur&>uO "r&>ur&>uQ S P)RPO=#tPX/^_]U^WVr(X"عl)RPBQP1cBQPr&>B"u][W PPY PP[ PP)RPBQPbBQPr&>B"tP=#tP ^_]ÐUQ]fىF@tTrF&9u2=)u r&{+r&>t)] P P]ÐPރ P Pp]U\WVr(X"ع؉F@u~,ur&>un+frF&9u@=)u r&r&>u=)u&P.밐P݃ P) P݃* PQ Pr&^_]U)\WVrX"عF~t^*Snt^SntF r&>u2r&>u&Fr^&P&ƇQPPU^_]Á~r+Fr^&P&ƇQ PPP^_]ÊFr^&PF{׉F@tWvڃ tJ~u^*Snu P<Ӄ~t"^*Snu^Snu&n r^&ƇP~t vF^N L PQP?` uR P PQP_F~|r&>uPQP߃3 PPQP_ u PQPS; PPQP_ u PQP/D PPQP_ u PQP PQPPv^_]ÐUYWVr(X"عrX"عՉF@t$~=un)v.ۃ P Pr&0r&+x"P߃^_]ÐUoYF FuQFVFV^F&^F&^F& ^F& ^F& ^F& ^F& &_*Sn$F^ t 8~t ^&G*=xuFvFPvR ^F&FVHFV),fuS,uZ,ua,uh&^F&F^&?tD&?\uFF^&=vuAwu^*Snt^Snt Fr^&2҉FF=t=PՃ t2~rFr^&2&Ƈ2P2P߃^_]Ã~t vr^&Ƈ2r&>u|FF~}9^2QP[ u2QP;[P2RQQ\ uPP2QP[ ~t&va^_]3Ur&>u+Kr&>tr&>tr&>2t+2 0 r&>u[r&>tr&>txr&>uWIr&>uwr&>uhÐUTWVFF^&G& Gu"r&X"&Z"nlPT^_]ÐFP^v&p&0QFV u2^&q&1PPr&6"&6"WPB[T~~؋^v&&Pr&X"&Z"r&>u rRPvvvvVF^v&@& t3P&p&0XY t r&X"&Z"nlPJ^_]USWVF"Fr&>tPՃr&>uPԃωF@ur&>u%r&>)u&9Fur&F}r&>u~@u P˃r&>u~}uP|ԃD! vnԃr&>tm^_]ÎrX"عΉF={u r&}=(uQr&)r&^&{F~uΉF~rGPgʃ^v&S}F^&&GS PكMP2ʃ^_]ÐF^v&FrF&9u=)u r&r&>ti^^&G}&vv PNك^_]ÐUQv vvv\3r&T"&V"& T"t|PR&6T"7ރFV tavvFV tBF^&*Snu^&PF tvv vvvv)S]ÐUQWVrX"عF̉FFr^&P̉FF=tC=,t>^*Snu2~rˊÎr^&P&ƇQPPPڃ^_]Ðr^&ƇP~t v%ڃr&>uPQP Pt׃v^_]U-PPFPNVNVRQd FV u)F Fu^&*Sn$<@FF^&*Snu~t^&?=t &?:t^&?=t&?:uF^&*Snu^&?"uxPFPS FV t\F^&*Snu^&?"u+PFPS RPvvvv ]Ð&?t&?%u+Pאr&6V"&6T"vvPPr&6"&6"QPN]ÐUN= uEr&>tr&>ur&>u Ӌ]Îr&>ur&>uP6؋]U3nNFVr&P"&R"X"QPHr&{r&>u r&>tَr&>uPϋ PϋЎr&>tPŋ]UMɉF@tJ~{ur&}t]Ã~(ur&)r&vσ9PwP֋]UuMt‹؉^F&=%tv, },~M,tI]ÐSRFPvvNVARQ̓ ^&^&G&Gvv뎐r&>ur&>uvSَr&>t`r&>tQڋ]UL‹؉^F&=%tEw}< tk, q0 2 &P>փÃ0 2 ^&P!փg릐r&F&vS PkӃFr&w, |,~,t]U LVr&F&F"r^F&~@ur&>u vՃ~r'F^v&&GvvyFj~ u^v&SYې^&*Snt-^Snu#^v&S(F^&FF^v&FHljF@t?^v&SFr&^]Ð3Jr& r&Ð3Jr&>u PM̃r&>tr&>tEUJFxPFVRPYՃ tFP˃N~PσeƉF@uF=}uwn,@t,;tsdAƈF;ƈF5ƈFFPFPԃ u.P2FVRPԃ u7]Ðvv FPvG˃mF~iNܐvv]ÐUfIʼnFr&>u%r&>uFFFFP҃]=tsr&9u=)u r&]ÐPʃ^*SnWtF?FF*Pvr&*PQPFPrQFPPZҋ]UHF r&>tQ=}uNy gF@Fv"ʃĉF=tr&9t={uFאN~~]ÐU[Hr&>uAr&>u2tr&>u PɃr&>uPPQPrM uPPQPTM u6 PPQP6M u2r&>u P Ƀr&>ur&Fr&[r&>tZir&>Vr&>t5r&>t)kzHtَr&>tVFr&rM]ÐUF ÉF@tFv< PO uvZȃPXPBЃ]Ð؁< 4 r&d]UFWVr(X"ع>2 |>0 t+F~‰Fr&>u'r&>uFFFFPσ^_]=t:==t=/u+~uvσPǃYPPpσr&0r&+x"P˃^_]Ð3EWVr(X"عRPBQPJr&>t r&>uBQPʃ^_Ð^_UiEr&B&BFVPFPvv FV+FFPFPvvq FV uFNQPG8]ÐUDWVrX"عF"r^F&F^*Snu~ u~rv^v&r&>uvvP˃Ir&>t0r&>u r&>tr&>ur&>u vvoɃFF^v&F)F~tM^v&r&>uvvPd˃Ir&>t0r&>u r&>tr&>ur&>u vvȃvJ̓^_]Ð3Cr& r&Ð3_Cr&>u Păer&>t t tr&>t ^rU3C^&u PG&GP&w&7K^&&W^&G& uPܻ^&G]UBr&>tbFPŨ~tƋ]U }BWVdž"FNr&oFdž&~uAr&>u=r&>u1v˃vv˃r&^&Ì^_]Ár(F^&&GPvvH˃뵐~ u %F~ u&r&>tr&>uӸ ΐ^*SntF [~{uN~}uB~\u. t&GJƂ{Ƃ{Ƃ"FƂ}DPi̓-"=Zw.jJJ$J$J$J$JJ$J$J$J$J$JJ$J$J$J$J$J$J$J$J$J$J$J$J$J$JJ$JJ$J$JJ$J$J$JJ$J$J$JJ$J$J$J$J$JJ$J$J$J$J$JJ$J$J$J$J$J$J$J$J$J$JJJ$JJ$JJJ$J$JJ$J$JJJJJJ$J$JJJJ$J$J$J$J$J$JJK&8\tv&|{t&|u&|{u&|}u&|}tƂ{^&F]~&FC&FC&FC&FFƂ}Dd^K&8\u.Ƃ{FƂ\FƂ"^뤋Ƃ{Ƃ"&^&8ts&8{t{~"ƂVЃ~u #Pr&Pvv3C^_]U=V"r^F&"FU^*SntT~r3^v&&G@Pvvǃ^&Ì^]ÊF^v&F船F=uvǃ^v&"Fv&VσFV^]ÐU/=VF"F9FF^vB tU~r4F^v&&GhPvv]ƃ^&Ì^]ÊF^v&FԸF=uvjƃ^v&VGσFV^]ÐU t=%trX"ع^&%MFFFZ~u ^*SntM~r^v& FvŃF%)~ uF~F^v&F緉F=u^v&vsŃFV^_]U3;rtt&vv(+tP6t6t"C tH P6t6tOD壈tt tt(t&>tvt&\u Gtt뚐r&>u^&G t+]Ð|]U:F"FF=%tw., |*,~,u"F^&&GPză*FV vf^&FV]Ð3:r&>ur&>uÐr&>u r&>tr&>u r&>tˎr&>u@r&>u4 PÃPÃr&>uÎr&>u ø U 9WVF"FNr&൉FF&r&>u>r&>u2vTÃvv.Ãr&^&Ì^_]Ð~r'F^v&&GPvvƒ붐~ u F~ u&r&>tr&>uӸ ΐ^*SntF W~{uFK~}uN?~\u8F^v&FִF=\u^v&F oP\ƒF~tF^v&F~"uM~vG~uA^KKv&8\uTxF@t*n^v&{C&\C&"FC&C&}GF^*Snt3F~tY^v&Vʃ~u Pr&FV^_]U7VF"FNгFP< Q@ u5F^&r&"Pvv^&Ì^]Ð؁< 4 F!F^&"FN~"t^Kv&8\u^FFEF={uvF&D{&\F^v&"^^&G{&\F^v&"FC&C^&}^&{F^v&"߃~ u!~ u&r&>u {r&>ui e^*Snt ^v& V~\uDF^v&uF=\u#F^v&訳F t#^C^vP꿃 F^v&^^*Snt̳FF~tU~\tF9FtG~s@r&>tr&>tz^v&vrvvL#^v&"&Grv*ȃFV^]Ui5V}F"r^F&"F~s"F^v&FIFvZ uv׾^v&"&Gr!+Pvvo^&Ì^]FvǃFV^]ÐU4ѰFPnv۳ t-]Ð]ÐU4WV"r^F&5F@u^&Ì^_]Îr&>u$r&>uvvvԽv⽃rX"ع~{u ~^_]Ê^*Snt ^_]Ð~"u ^_]Ð^*Snt ^_]ÐZPP1BU3FVFV tF^&*SnuF Ft^&?t&?%u+FFFF&?"tFF‰FV&?"t&?\uFF^&?u&?"u&Fvvكr&6V"&6T"vvPPr&6"&6"5P1S̉FVF^&?t&?%t&Pvv ; t^&?t&?%u +FFF&FV^&&WFV]Ð3U2+r&r&r&r&r&*r&Pr&2r&Pr&BU32vvFVRP]ÐU31^+&G&G&G &G&G&G &G&G]Ð31PPɸÐU1r&F&PP蝸Fr&]UY1VFBFPS1:FV u6vv^&?"uPEvv6PÃ^]^&vvv&<"uPvvo6PrÃPNVANVRQ9FV u+Pvv9FV^&vv P襷vv 6PÃFV@FV^&?t^]Ð3?0r&>u}r&>ur&>u =P蘱Ðr&>u r&>t۸ Psr&>ur&0r&+x"HHPٵ=PC 럐PP,3/r&>u+r&>ur&6.荵2QP賴Ð2QPr&>uP˶Ð3?/P P_ÐU3&/r&>uvvU]Ð^&*Snt vPr݋^&?%uS S PW]Ð3.<r&>t7r&>t(P2QPr&>u1 PBQP3 t*P2QPУ ur&>tP#Q2RQU4 ut2QP3=vaBQP3=vNP臯2QP3HHP2QP2QP葮 3r&0r&+x"Pѳ:r&>u.'PBQP3 uPr&ÐU3v-r&>tF Ft ^&?u0vvr&6V"&6T"Pr&6"&6"D0]ËF F uSvvr&6V"&6T"Đvv Svvr&6V"&6T"Pr&6"&6"/]U,+Pvv5HFV^&P[NF9Fs]ÐU,BQP2Fr&>B"u`&B*SntRFFF9Fv&B*SnuF+F@PFBQPBQP̬ BQP1Fr&B"uJ^N~v^&B*Snu^&B\uv &B\tN^&ƇB"&ƇB]U+VF"F+FFFFNF~u*BFFF^&*Snu^&?{uAr^&B^v&FFr^&Bu&B-{tHHu뿸PBQS"1 uPFQvv1 uPJQvv0 tgPNQvv0 tNPRQvv0 t5PVQvv0 tPZPvv0 t ^v&{FF~u~u^v&}FFN^v&SBQPM/^]ÐU )Vr&>u FV^]Ð(Pvv2 uFF+FFFF^v&8t0&=}t w,,t ,OtܐN֐~uϋÌƉFVF Ft^&GFF^&*SnuvQP.PQP&.vv|Hu.PQP.vvQP-PvvQP-QPvv.^]ÐU(VF"FFBFFFr^&& u&&.;FuPvvr&& uPvvs-r& & vv-Pvv-+Pvv0FVFvvvvv- FF+FFFPvvFV t~t^&^&FÐ^&F-"FF"FPF"QP, u ^v&@PPvv_- uFVRPvvBQP[,^]ÐU 'WVBQP,Hr&>B"tr&B"tePP ,r&ƇBFor&>u_r^&B;uP&ƇBBP{RPQRPPc+PPR+r^&ƇB GF9FsuPFBQPR8, td&BQPRPRPP*PP*& FF@{BQPRPRPP*PP*PBQP*^_]ÐUc%VF +*Sntur&B-t&B*SnuꋶƂ-^Snt&B*SnuH^*Snt&B*Snu*^*Snt&B*Snu &B?u.Ƃ-&B*SnuFr&Bt &B-u ƂPBQPn)^]U $WVF"Fr&>u FV^_]ÐF+FF FFF^v&ˌ^~&‹&8ta^v&=}t w,.t ,MtN뺐~u~t^Kv&*Snt^&X*Snt^Fv& zFV^_]UI#VF"Fr&>B"t F+FFr^&Bu&B-{t[HHtq~~qF~u^v&{Fr^&B*Snu SnuS^&B^v&FȐF&B^v&FFnN&B*SntH^&B*SnuSntFf^&B*SntM~uދ^&BAu9^&B\t+FGFSntFF^&B*SnuF@;Fr~^v&{؎r&B^v&FFF9Fw^v&}Fr^&B{u&B}uFi&B\t]&B tRFL^v&}r^^v&VvvBQPt&r&>ux^]ÐU!F FtFV+^&FV t|&?tr&=}tOw#,"t,Yt?>u>u+>u)&*Snt^&뜐&?.u^&^&?u+]^&?uސFV]U3. ^&ȘSnu_u0^F&^F&^&ȘSnu܀_t^&FV ]ÐUvvP%t(&?$t &?{tGPD@Ğ&?}t% tĞ&?t&Ğ&ؐĞ&&ȘSnu_uZ*% tĞ&?t&Ğ&ؐĞ&$&Ğ&Ğ&?tĞ&>tt tڋ]Ð+]ÐUEF Ft ^&?u+]ÐFVFV tnPvvuP# vFvvuP,#F~ }*uPFV tuPvv3# uFu^F Ft ^&?u5Pv vvP# wvP u=vڋ]^&?u( PS&F=~FPvvvQ&# FF؊vPP & u^vGF+FPv vFvP" wvP6 t_FF^&?uVPGFPV&F=UPvv&=؉F uCvvFV t-Pvv&=؉F tvvvvz!F]ÐU)F^&?t&ȘSnu XtxuFF‰FV^&? t&?-uIF^&?t=&ȘSnu XtxuF~ uҋF@^&&WFV]Ð^&?tg^+&G&]ÐUoVFFs^&& tF&&vv&& uvvs&&^]Ð+^]U&ȘSnuXtxt F^&?uF^&?tY~ }S^&?-u^Ƈw-FF&?u&ȘSnuXtxt F^&?uۋ^&?uD~ t&ȘSntXuxuwww-wwڋ]F&^wFF^&?t;~|2^Ƈw-F$&ȘSnuXtxt F^&?uۋ^&?uUF&^w+]ÐUV^&FVFVFV;v v@;F rPvvv v FFVFVFPvvFVFV uv vN+N;N rF+FPvvv v vvjFV uTvPkv v];v sfvvv vFVFVBvv)v v;v s$vvv v\v vvv^]U*?vvFPyv vFPhFPPFPFP" }]vv FP0FP}PFPFP }]+]UVFVF@&ȘSnuXtxt F^&?uۋ^&v&^&?tFFF9Fw^]ÐU3JvvPvv$]U%Vvv(P<vvF2FN +@xN+IF+F @@=F@^]Ðvv )P븐^]ËF+F 뺋F+F ^]Ðs&HHFV;+BBV^v &@& t&&? tFߋ^F&@& tr^]Îs&HHNV;+BBV~}D^v &@& u.&&? u"NАvv v vvvvF^]vv}@=w.tstssVtsssssttst^t^]ÐUVF Fvv~ u^)p)PvvVFmF t=t = t= u~:^Ƈ)l=t=u$PvvE~~N^Ƈ)륐=uvvvF)=u9vvvFvv^)P|FF9F|b=umF%^)*SnuFPvvNx^)*Sntƃ~uF~}F^Ƈ)vv)~O}F^)Fvvvvvʐvv)Pvv Pvv Pvvvv P)PK)Q>vvv PQN~vv P8vvT~ uCF +F y+F 7^ v&@& t*)P&p&0  u~ uN F ~ }Ã~ |^ v&@& uvvF+F @y+F F ^]U30vvPvv PvvvPgN~vv{]Ð3Ð3uUk| t=u]p2]Ð ]Ð]Ð]Ð]Ð=+8-G= w.xJxRxZxxxxxxxxxxxbxjxrx=t s&(]3jÐ3Ð3P+P(QPs&&&&&&D&&&&&&&h&B&<&T&&&&8&^& &&& &&@&&&& &L& &N& &&&H && &&"U3VFVHRPFV+^&Snu+^]ÐvkFVF^&?uC&=wuv~+PQPs&6"&6"讌 +PÐ3s w6w6w+PP螷3W s&. Ð3E s&Ð33 x s&Ð3! f"s&Ð3 T$s&Ð3B&s&Ð3w+PPP6w6w (s&& | u&&3*s&Ð3,s&Ð3.s&Ð3s0s&Ð3a2s&Ð3O4s&Ð3=6s&Ð3+NÐ3!f8s&Ð32s&B&Bii+PiPs&6"&6" Ð3+PjPs&6"&6"䊃 3PjPww@RPa =@ÐUF FuF Ft ^+&G&+]ËFVFVF^&Snu+FFFFFVFVFVF^&?t0&PnFV tFV9V|9Fv)FV븋FVFVF FtFV^&&WFV]U3v =@]U^Sn$F t ~t P6k6k\ u+]Ð+k㋇k]cUAv v FF Fu+]ÐF Ft ^&?u FV]Ð^&?tvv vS賑 tFݐU~ |~ $~(~ t"F FtFV^&&W+]F^&Snu^&-+tEHHtFFFFVFV~ u5‹&?0u&&xt&XuF FĐF F ~ u^&?0u&xt&XuF+FFF = uw,tC,tm,u,u1^&?tF FtFV^&&W~u!^&?0}&?1~fV&-0 F VF^&?0}&?3~PFPY^&-0 F VFː^&?0}&?7~PFP#^&-0 F VFː&؉^Sn$t tG Fv6k6k FV u%+kF }=~PFPF F VF^&?u&؉^Sn$t tG Fv6k6km FV u+kF }=~PFPAF F VF^&?u{&؉^Sn$t tG Fv6k6k FV u$+kF }N I;~ F RPFPF)FVF^V^~t ^V^F FtFV^&&WFV]ô0!<s3P˿6+rׁysj3PwL!ƱH6kk66gP6g P6g6g6&k6+۴J!6lLty+3frF3P6)l6'l6%l6#l6!l]P. ظ6kӉP 6>hruXP6lrPk5!kk%܈!zr.l&6,|r36xrs 6rڻ6xrl&,>3&=t4 kt 3u! l,Ar ,Ar ª lD!r €t l@Ky羄rrrrU3UUVWUVWQ uwwrrv>hrunrrrarrg tX Pu ~uFX uFL!_^]Ëzrxrk%!>2lt 3l4l%!;s OO ;s EtY+r ;:lrQ31+lыѿl< t< t< to tkGN< t< t< t\ tX<"t$<\tB3A<\t<"tӋѨuN< t+ t'<"t<\tB3A<\t<"tۋѨu>!lGB+ģ#l%l6?6W6+lN u6l3< t< t< u u6?6WתN< t< t< tk tg<"t&<\t3A<\t<"t\Ѱ\s"Fװ"ON< t. t*<"t<\t3A<\t<"t\Ѱ\s"3G tn&lu >l?l!OVN!]ls3]UWVvD @tD uVށnlbmFV6D *P |\~tYjlPFPFFV~\tllPFPeN PvvvFP tD ^_]UV u+vPv v vvv ]U+Pv vvv]ÐUWVvVF Pv vV FVW2F^_]ÐUVWvD t^@uZuG D nl^m u uV2DutP3ۊ\ S t=uL L L D% l炀u | ǂu HD3&C_^]UWV+F Fu+Pn]vD $<u=u ށnl^mt++DF ~PttL *QX9FtL DTTD^_]ÐPUWVnl+~F 96NnrD tVO@tG~uF^_]UzlU^OxF&G2 Sv]U׋~3u~+؎FFtI]U׋v؎3~ǨtI]U׋v~3+t]U~3I]UWV~3O~ߋN uA+N ً󤪋Œ^_]UWV~vߋN t2Ì^_]UWVN '~3ˋvD3&:EwtIIы^_]UV'l)lFV thF Ft`vv^&G& tF&w&7;~/^&&8=u#VvvSa u^&&W@ F+^]UVF Ft2^&?t)SPvvPPToPP}>k| k9qqkF^㋇qqFVRPDPvvV6PWoPV&^]öZo uZo>hru Sjr[!UVWV ~UJ^ ~ tTO;v7 Q:X7t2)G+SRSeZ[=t< tJ;~tG t 3+)G3FV_^]UWVvviv v v vWPvv Fv vV 9~u+^_]ÐUWVwBFVwwwTwF Pv vP wxww& V+P ^_]ÐUW~3AيFO&8t3Njnj_]UW~3AOFG&8t3nj_]U VWvЎ3~ tȰCvC%tȰ"Ct_^]U VWvЎ3~ tȰCvC%tȰ"Cu_^]UN WVHv~H+#‹+#@+ u unj뾋FV^_]UVC!rFt t U"VvFDvFPFP~tF%FފF%?^&&G &G+&G &G&w&G l$<%$&GFWFPFPF%PF%PF*PF%PF%PF*P1 ^&G&W&G&W&G&W~t+&G&G&7&w &O HP+PPVFVP+PPV^&G&W+PvvVf^&O+^]US^vvw7W[]US^WNW[]UP >\ot\oP]øV3B22Ut P^Ul&,ÌF333 t&>tFu@$F &RP'l)lVϋ3_I36;kuQVWk_^Yt ^?G^ u͎^O]UVWVFs;t@t 3_^]UWv t 3I>hrujr@!_]r3]sPX2]s]2â l u">lr <"s < r<v^oטkÊUV+wwww:s&#l&%lFVHroPFR&7aV tvP^&w&7DK^&w&7 u:F^&G& t0&&WFV&v&<"uFR&7 tƸFwwFV^&G&WFVFF FuF@PZFV tV:s&#l&%lF!rƇ l0U^; lr *FtH~ t3ɋѸB!rKF uFVy(6VFѸB!FVy NVB!؋VNF B!r lU^; lr s3N l lue>hrujrN V?!s G lt@ lVW^' < u& l:t<u& lG+_^@t< t l@tD! u V?!rΰ 0FV?!r t~ tѸB!~ t VV눀~ uU^; lr >hrujr l t B3ɋ!r ltz^FV3FFWVfN = uO^=vJܺ=(s+ԋN < t ;t%x ;u F^_^lPSQ+Q^@!YrF;wY[Xß~u%s $^ l@t^^?u F+Ff^_^N uV@!s u l@t &?uUVv&L^]UVWNwiq tHf6qqVW_^s+_ ;uX6q&tq;ut^ft qrIqq3_^]UVWN F3҃ u~ UVWVFN tQV߻qQYrWtQYr ƌڀdYESQ'Y[YW Xt(WVXZQYPV`3_^]UVW~]MUu} !W~]MUuE r3 ~u _^]UWVvQRPD3+¹3+™RPFV^㋿qƹ u~~GFljF<RPRPRPmFǙDRPȋF ڙRPzȋF ڙRPiȋFڙrrFVDPFFHFF F>rtFP t n^FV^_]ÐUVA!UFN ȋNu F]S؋Ff ؋F[]2SQqQP#[qY t[ËeU2>lr~ F F U2~FFu@ueruFV$ Ǵ=!s=u t%듋%=u >!FD!€tN@F@tFtt 3ɴ@!>!VC!iFuuѸB!V?! t~uًѸB!3ɴ@!3ɋѸB!mFN N FuFuV!F$ FV=!rؓFuF tVC!rF@u?VC!2%tFt ; lr >! N lË]2ܡl#3ɨuY:l;s+3ASw_ 3#[uBSw_;t6K3 T;sr#tH;s#rЭtD[GG[Lt +H+ƌQWGtft+IAAw tOs 33B&q= t;ru"rHs3#R.Zs t+WGw JBw _YËGtJwN;r9Ws6BSQގƱuGt Ƌl+ÎËشJ!Y[rGtJWWw;w uw=t$OO_Ëу'H!r&;kv;kvk3&E GUVWFAtINNP$;shrZtBH=uAGt;EsF+;sRV\^ZsFr u른NN#Z9FFFt u FFr+JJY%% W;s;v_^];Gu_S[_ ;u>wuwÐUVrP߃FV u^&?uPS6"r6 r8߃ RPFvvRPrr+F^&8t&ȘSnu-uF|݋^&8tPS6&r6$rރ $r&$r&?@r^]ÐUWV^&}& ~&~ & }&w l~&u&_㋇q &_㋇qFuF^&w FƹmȍD3+¹3+F+V&u&;W| u &|^&9G|u&|+^_]UW~Wt@P[ uRP܃_]U VWvЎ3~ tȰCv3Ҭ%tȰ"CtD_^]ËN FV~W t u y -ۃڋ3 t0<9v' uODD;rX_^]WOO-w HƌڎGG3_&E u &]&&u&\&\ Gw&] &]&]&]UWVv33۬< t< tP<-t<+u<9w,0rҋˋ؃X<-u؃^_]JOTZ`gnv~  %*06=DLT]fpz #*2:CLRX_fnv$*07>FNW`jtz "*3<FPV\cjrz",6;@FLSZbjs|%,4<ENXbipy "*2;DKRZbkt~ #,3:BJR[eov}     # + 4 = D K S [ e o v }                ! !!!!!*!3!=!G!N!U!]!e!n!w!!!!!!!!!!!!!!!!!" """&"/"7"?"H"Q"["e"m"u"~"""""""""""""""""# #####,#5#?#I#P#W#_#g#p#y#################$ $$$%$/$9$C$J$Q$Y$a$j$s$}$$$$$$$$$$$$$$$%%%%%(%1%;%E%M%U%^%g%q%{%%%%%%%%%%%%%%%%& &&&%&,&3&;&C&L&U&_&i&q&y&&&&&&&&&&&&&&&&' '' ')'3'='F'O'Y'c'k's'|'''''''''''''''( (((%(.(7(A(K(S([(d(m(w(01@1o111 282m2223B3r3333 4Q4445Y5555&6g66666/7o777778c8e8z888?999:G:::;D;F;V;;;<W<<<=P=====+>m>>>>?c????@F@^@`@t@@@3AxAAAAA.BsBBBB1CtCCCCC:D{DDDDEEEEEEE#FcFFFFF7GzGGGBHHHILIIIIJTJJJK[KKKKL?LLLLLMM"MdMMMMM@NNN OHOOOPOPQPPPQXQQQQQ R R"RfRRRR.SpSSSTT*T,TBTTT ULUUUUU V;V=VPVVVWWWWW$XJXLXfXXXXX%YcYYY$Z&Z9ZuZZZ<[k[m[[[\J\}\\\]I]]]^"^$^;^{^^^,_E_G_b___(`P`R```a_aaa(bfbbbbb*coccccdWdddddeOeeeefTffffMS Run-Time Library - Copyright (c) 1990, Microsoft CorpUNKNOWNABBREVATCOMMACOMMENTENTRYEQUALSFIELDINCLUDEINLINEKEYLBRACELITERALNEWLINEPREAMBLERBRACESHARPSPACESTRINGVALUEchaptermonthnumberpagesvolumeyear$Id: bibclean.c,v 1.10 1996/04/26 01:15:13 beebe Exp beebe $BJQTZbhou}H??%s "%s", line %ld: %s. ?? ?? . ????%s %s Out of memory for pattern tables"#%'(),={}BIBCLEANINIBIBCLEANINIbibclean.inistdoutPATHBIBINPUTS@# line "" %ld input byte=%ld line=%ld column=%2ld output byte=%ld line=%ld column=%2ld File positions: input [] output [] Entry Value Current\%03oUnexpected paragraph break for field ``%f''Pushback buffer overflow: characters lostOut of string memory: FAILED%%%s open file [%s]%s %% %s%s "%s", line %ld: %s. %%$Id: chek.c,v 1.2 1996/04/26 01:17:05 beebe Exp beebe $Invalid checksum for CODEN %c%c%c%c%c%c in ``%%f = %%v''??????????Invalid checksum for ISBN %s in ``%%f = %%v''Invalid checksum for ISSN %c%c%c%c-%c%c%c%c in ``%%f = %%v''JrJr.SrSr.SJS.J.S. J.IVXUnexpected citation key ``%k''String length exceeds standard BibTeX limit for ``%f'' entrySuspicious year in ``%f = %v''Incomplete CODEN %c%c%c%c%c should be %c%c%c%c%c%c in ``%%f = %%v''Non-zero parenthesis level in ``%f = %v''Unexpected value in ``%f = %v''??????9ABCDEFGHIJKLMNOPQRSTUVWXYZ23456789ABCDEFGHIJKLMNOPQRSTUVWXYZ2345678 ??????????????????JanuaryjanFebruaryfebMarchmarAprilaprMaymayJunejunJulyjulAugustaugSeptembersepOctoberoctNovembernovDecemberdecJan.janFeb.febMar.marApr.aprJun.junJul.julAug.augSep.sepSept.sepOct.octNov.novDec.decJanjanFebfebMarmarApraprJunjunJuljulAugaugSepsepSeptsepOctoctNovnovDecdec$Id: do.c,v 1.5 1996/04/26 01:35:56 beebe Exp beebe $z  $)-26;?DHNRW[`dimquy}}])>'"`{[(<'"`%%%s Out of memory for pattern name [%s] -- pattern ignored Out of memory for pattern tablesValue too long for field ``%f'' # @ begins line, but brace level is not zero after entry ``@%e{%k,''Expected @name{...} after entry ``@%e{%k,''IncludePreambleString## # # Non-zero brace level after @name{...} processed. Last key = ``%k''Expected closing brace or parenthesis in entry ``@%e{%k,''Non-zero brace level after @name{...} processed. Last entry = ``@%e{%k,''Expected comma after last field ``%f''DeathesisDEAthesisInbookInBookIncollectionInCollectionInproceedingsInProceedingsMastersthesisMastersThesisPhdthesisPhdThesisTechreportTechReportNon-alphabetic character begins an entry name@entry_name too longIncludePreambleStringR \ f m t          Expected "=" after field ``%f''BIBCLEANEXTBIBCLEANEXT.iniansi-standard-numberANSI-standard-numbercodenCODENieee-standard-numberIEEE-standard-numberisbnISBNiso-standard-numberISO-standard-numberissnISSNlccnLCCNmrclassMRclassmrnumberMRnumberuriURIurlURLurnURNxxansi-standard-numberxxANSI-standard-numberxxcodenxxCODENxxieee-standard-numberxxIEEE-standard-numberxxisbnxxISBNxxiso-standard-numberxxISO-standard-numberxxissnxxISSNxxmrclassxxMRclassxxmrnumberxxMRnumberxxurixxURIxxurixxURIxxurlxxURLxxurnxxURNEntry field name too longNon-alphabetic character begins a field nameoptOPT      " ' , @ T Y ^ c h p x              2HOV`justdin-stdinrb?? %s Ignoring open failure on file [%s] perror() says@ begins line, but brace level is not zero after entry ``@%e{%k,''Expected open brace or parenthesis. Last entry = ``@%e{%k,''Braced literal string too long for entry ``%e''rCitation key too long=: ??%s Bad line [%s] in initialization file [%s] Non-zero brace level at end-of-fileExpected open brace or parenthesis. Last entry = ``@%e{%k,''"comment"@Comment{end"Comment"Expected Scribe close delimiter `%c' [8#%03o], but found `%c' [8#%03o] instead for field ``%%f''CommentBeginStringExpected Scribe open delimiter, one of { [ ( < ' " ` for field ``%f''Expected Scribe separator "=", "/", or " " for field ``%f'' Out of memory for pattern table spaceBibTeX string too long for field ``%f''Unexpected quote usage in German-style braced stringEnd-of-file in braced stringBibTeX string too long for field ``%f''BibTeX string too long for field ``%f''BibTeX string too long for field ``%f''End-of-file in quoted stringExpected Scribe value string for field ``%f''Scribe string too long for field ``%f''Scribe number string too long for field ``%f''Expected BibTeX value string for field ``%f''??%s Bad line [%s] in initialization file [%s] },={authorchapterCODENISBNISSNmonthnumberpagesvolumeyearauthoreditormonthpagestitle""OPT"""vRzcca8eRg file=[%s] field=[%-12s] existing patterns discarded file=[%s] field=[%-12s] pattern=[%s] file=[%s] field=[%-12s] pattern=[%s] message[%s] \bf\em\it\rm\sf\sl\tt$Id: fix.c,v 1.4 1996/04/26 01:36:27 beebe Exp beebe $ {}" # # " # """" # " and and and "$Id: fndfil.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $ ;,|\\ ;,|$Id: isbn.c,v 1.2 1995/10/07 15:50:07 beebe Exp $0-000-190-2000-6980-70000-84990-850000-899970-9000000-9499990-95000000-98012231-550001-869571-8698001-8956822-012-192-2002-6072-70002-83172-840012-894362-9000002-9400282-95000002-99000033-013-193-2013-6333-70013-82523-850013-895243-9000013-9290313-95000003-98029644-004-194-2504-6574-75004-84704-870004-898294-9000004-9499995-015-125-2005-6905-70005-83965-850015-899965-9001655-9008507-007-047-1007-3147-50007-56397-800007-810357-9000007-90000080-0080-0980-20080-23680-700080-715180-8500080-8552980-90007580-90108181-20081-64881-700081-726681-8500081-8569081-90000081-90021182-40082-59982-700082-766182-9000082-9176982-99000082-99251783-0083-1183-20083-23383-700083-708083-8500083-8554183-90000083-90048284-0084-0784-20084-69984-700084-842084-8500084-8960085-0085-1785-20085-34185-700085-726185-8500085-8545785-90000085-90005186-0386-2786-30186-45586-700186-786186-8000186-8204586-90094186-90128987-0087-2087-41187-61187-700087-779987-8500187-8979687-98000087-99720288-0088-1988-20088-46188-700088-840288-8178588-8606589-089-090-0090-1890-20090-44990-500090-699990-7000090-7431990-80000090-80086891-091-191-2091-4891-50091-63291-700091-799891-8500291-8835691-97000091-99208392-092-592-6192-7792-80092-89192-900192-911793-093-0950-00950-47950-500950-795950-9000950-9899950-99000950-99949951-0951-1951-20951-54951-550951-889951-8900951-9498951-95000951-96448952-90952-90952-6666952-6666952-9500952-9714954-0954-0955-20955-28955-550955-616955-9000955-9151955-95000955-95444956-10956-19956-200956-266956-7000956-7205957-05957-43957-500957-685957-8500957-9699958-02958-32958-600958-656958-9000958-9285958-95001958-95343959-00959-13959-200959-216959-7000959-7033960-00960-12960-200960-433960-7000960-8499960-85000960-85203962-00962-19962-201962-474962-7001962-7646963-00963-18963-200963-892963-700963-8481963-85000963-85084965-01965-19965-207965-442967-60967-89967-900967-989967-9900967-9989967-99901967-99999968-10968-39968-400968-899968-6000968-7275969-0969-1969-26969-39969-400969-473969-8000969-8159970-05970-10970-604970-619970-91000970-91074971-06971-36971-500971-631971-8500971-8819971-91000971-91273972-0972-1972-20972-50972-550972-722972-8004972-9499972-95000972-97520973-21973-49973-550973-682973-9000973-9134973-95000973-95521974-00974-10974-200974-685974-7000974-8499974-85000974-88000975-09975-19975-345975-554975-7402975-7797975-95384975-96606976-40976-42976-600976-636976-8000976-8105977-01977-17977-200977-457977-5000977-5235978-000978-199978-2000978-2887978-30000978-31118979-400979-557979-8000979-8322980-00980-07980-200980-316980-6001980-6303981-00981-03981-200981-215981-3000981-3099982-01982-03982-100982-500983-60983-73983-800983-899983-9000983-9750983-99382983-99747984-01984-30984-400984-556984-8005984-8085987-0987-09963-09963-19963-309963-449963-5509963-5999963-75009963-78469964-09964-69964-709964-949964-9509964-9909966-209966-499966-8309966-8829966-98409966-98749968-97029968-97039971-09971-49971-609971-899971-9009971-9899971-99009971-99249973-109973-189973-7009973-9259973-97009973-99189974-09974-09974-309974-369974-5509974-5809974-75009974-75059976-19976-59976-609976-849976-9009976-9889976-99909976-99929977-009977-899977-9009977-9899977-99009977-99999978-579978-999978-9519978-9719978-99049978-99109979-19979-49979-509979-579979-8009979-8279979-90009979-90679980-09980-19980-549980-849980-9009980-9159981-09981-09982-009982-309982-8009982-8159982-99009982-99009983-859983-879983-99009983-99019987-309987-309987-5509987-5839987-88009987-88239988-09988-099903-099903-099904-099904-499904-6099904-6599904-90099904-91799908-1199908-2999908-90099908-90099911-0099911-3299911-60099911-86099912-099912-599912-6099912-7999912-90099912-90099913-099913-099914-099914-499914-5099914-5899914-90099914-92799915-099915-399915-5099915-7899915-80099915-83099916-199916-199916-3099916-3599916-70099916-70499920-099920-299920-5099920-5599920-90099920-904$Id: keybrd.c,v 1.3 1996/03/04 18:56:21 beebe Exp beebe $More? f)orwd b)ackwd e)nd q)uit r)efresh t)op \/)search   PgUp PgDn Home End More? f)orwd b)ackwd e)nd q)uit r)efresh t)op \/)search   PgUp PgDn Home End Search backward: Search forward: Search backward: !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~$Id: match.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $?align-equalsauthorcheck-valuesdelete-empty-valueserror-logfile-positionfix-font-changesfix-initialsfix-namesGerman-stylehelpinit-filekeep-linebreakskeep-parbreakskeep-preamble-spaceskeep-spaceskeep-string-spacesmax-widthno-align-equalsno-check-valuesno-delete-empty-valuesno-file-positionno-fix-font-changesno-fix-initialsno-fix-namesno-German-styleno-keep-linebreaksno-keep-parbreaksno-keep-spacesno-parbreaksno-prettyprintno-print-patternsno-read-init-filesno-remove-OPT-prefixesno-scribeno-trace-file-openingno-warningsparbreaksprettyprintprint-patternsread-init-filesremove-OPT-prefixesscribetrace-file-openingversionwarningsUnrecognized option switch: %s%.*s$Id: option.c,v 1.5 1996/04/26 01:16:37 beebe Exp beebe $x*Ҁz***** *****H*Ҁ+, +Z+l*+~?+K+^+h+x+++++++H+ Z, l, %,2,A,S,,f,>},P,b,~,,,,,,>,P,b -t-~no-print-patternsno-read-init-filesno-trace-file-openingprint-patternsread-init-filestrace-file-opening./,!/b7/F/,V/bAuthor: Nelson H. F. Beebe Center for Scientific Computing Department of Mathematics University of Utah Salt Lake City, UT 84112 USA Tel: +1 801 581 5254 FAX: +1 801 581 4801 Email: /////0.040K0b0w%%%s cannot open error log file [%s] -- using stderr instead perror() says Usage: [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]align-equals ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile Command-line switches may be abbreviated to a unique leading prefix, and letter case is not significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag to no. For such options, the last setting determines the flag value used. This is significant when options are also specified in initialization files (see the INITIALIZATION FILES manual section). -author Display an author credit on the standard error unit, stderr. Sometimes an executable program is separated from its documentation and source code; this option provides a way to recover from that. -error-log filename Redirect stderr to the indicated file, which will then contain all of the error and warning messages. This option is provided for those systems that have difficulty redirecting stderr. -help or -? Display a help message on stderr, giving a usage description, similar to this section of the manual pages. -init-file filename Provide an explicit value pattern initialization file. It will be processed after any system-wide and job-wide initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANINI, but defaults to .bibcleanrc on UNIX, and to bibclean.ini elsewhere. For further details, see the INITIALIZATION FILES manual section. -max-width nnn bibclean normally limits output line widths to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special- purpose applications may require different maximum line widths, so this option provides that capability. The number following the option name can be specified in decimal, octal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is interpreted to mean unlimited, so -max-width 0 can be used to ensure that each field/value pair appears on a single line. When -no-prettyprint requests bibclean to act as a lexical analyzer, the default line width is unlimited, unless overridden by this option. When bibclean is prettyprinting, line wrapping will be done only at a space. Consequently, a long non-blank character sequence may result in the output exceeding the requested line width. When bibclean is lexing, line wrapping is done by inserting a backslash-newline pair when the specified maximum is reached, so no line length will ever exceed the maximum. -[no-]align-equals With the positive form, align the equals sign in key/value assignments at the same column, separated by a single space from the value string. Otherwise, the equals sign follows the key, separated by a single space. Default: no. -[no-]check-values With the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g. ``year = "192"'' instead of ``year = "1992"''), and issue warnings when unexpected patterns are found. This checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can disable it with the negative form of this option. Default: yes. -[no-]delete-empty-values With the positive form, remove all field/value pairs for which the value is an empty string. This is helpful in cleaning up bibliographies generated from text editor templates. Compare this option with -[no-]remove-OPT- prefixes described below. Default: no. -[no-]file-position With the positive form, give detailed file position information in warning and error messages. Default: no. -[no-]fix-font-changes With the positive form, supply an additional brace level around font changes in titles to protect against downcasing by some BibTeX styles. Font changes that already have more than one level of braces are not modified. For example, if a title contains the Latin phrase {\em Dictyostelium Discoideum} or {\em {D}ictyostelium {D}iscoideum}, then downcasing will incorrectly convert the phrase to lower-case letters. Most BibTeX users are surprised that bracing the initial letters does not prevent the downcase action. The correct coding is {{\em Dictyostelium Discoideum}}. However, there are also legitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, bibclean will normally not supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this option to supply them. If you think that you need this option, it is strongly recommended that you apply bibclean to your bibliography file with and without -fix-font-changes, then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You will have to decide which of the two output files is the better choice, then repair the incorrect title bracing by hand. Since font changes in titles are uncommon, except for cases of the type which this option is designed to correct, it should do more good than harm. Default: no. -[no-]fix-initials With the positive form, insert a space after a period following author initials. Default: yes. -[no-]fix-names With the positive form, reorder author and editor name lists to remove commas at brace level zero, placing first names or initials before last names. Default: yes. -[no-]German-style With the positive form, interpret quote characters ["] inside braced value strings at brace level 1 according to the conventions of the TeX style file german.sty, which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, invisible hyphens, raised/lowered quotes, French guillemets, and discretionary hyphens. Recognized character combinations will be braced to prevent BibTeX from interpreting the quote as a string delimiter. Quoted strings receive no special handling from this option, and since German nouns in titles must anyway be protected from the downcasing operation of most BibTeX bibliography styles, German value strings that use the overloaded quote character can always be entered in the form "{...}", without the need to specify this option at all. Default: no. -[no-]keep-linebreaks Normally, line breaks inside value strings are collapsed into a single space, so that long value strings can later be broken to provide lines of reasonable length. With the positive form, linebreaks are preserved in value strings. If -max-width is set to zero, this preserves the original line breaks. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-parbreaks With the positive form, preserve paragraph breaks (either formfeeds, or lines containing only spaces) in value strings. Normally, paragraph breaks are collapsed into a single space. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-preamble-spaces With the positive form, preserve all whitespace in @Preamble{...} entries. Default: no. -[no-]keep-spaces With the positive form, preserve all spaces in value strings. Normally, multiple spaces are collapsed into a single space. This option can be used together with - keep-linebreaks, -keep-parbreaks, and -max-width 0 to preserve the form of value strings while still providing syntax and value checking. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-string-spaces With the positive form, preserve all whitespace in @String{...} entries. Default: no. -[no-]parbreaks With the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field/value pairs. This may be useful to quickly trap runaway strings arising from mismatched delimiters. Default: yes. -[no-]prettyprint Normally, bibclean functions as a prettyprinter. However, with the negative form of this option, it acts as a lexical analyzer instead, producing a stream of lexical tokens. See the LEXICAL ANALYSIS manual section for further details. Default: yes. -[no-]print-patterns With the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used. When bibclean is compiled with native pattern-matching code (the default), these patterns are the ones that will be used in checking value strings for valid syntax, and all of them are specified in initialization files, rather than hard-coded into the program. For further details, see the INITIALIZATION FILES manual section. Default: no. -[no-]read-init-files With the negative form, suppress loading of system-, user-, and file-specific initialization files. Initializations will come only from those files explicitly given by -init-file filename options. Default: yes. -[no-]remove-OPT-prefixes With the positive form, remove the ``OPT'' prefix from each field name where the corresponding value is not an empty string. The prefix ``OPT'' must be entirely in upper-case to be recognized. This option is for bibliographies generated with the help of the GNU Emacs BibTeX editing support, which generates templates with optional fields identified by the ``OPT'' prefix. Although the function M-x bibtex-remove-OPT normally bound to the keystrokes C-c C-o does the job, users often forget, with the result that BibTeX does not recognize the field name, and ignores the value string. Compare this option with -[no-]delete-empty-values described above. Default: no. -[no-]scribe With the positive form, accept input syntax conforming to the Scribe document system. The output will be converted to conform to BibTeX syntax. See the SCRIBE BIBLIOGRAPHY FORMAT manual section for further details. Default: no. -[no-]trace-file-opening With the positive form, record in the error log file the names of all files which bibclean attempts to open. Use this option to identify where initialization files are located. Default: no. -[no-]warnings With the positive form, allow all warning messages. The negative form is not recommended since it may mask problems that should be repaired. Default: yes. -version Display the program version number on stderr. This will also include an indication of who compiled the program, the host name on which it was compiled, the time of compilation, and the type of string-value matching code selected, when that information is available to the compiler. Usage: [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]align-equals ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile ff/g^gggg'h\hhhh1iaiibibclean Version 2.11.3 [01-May-1996] Compiled by <beebe@plot79.math.utah.edu> on May 02 1996 07:51:22 with native pattern matching j&j(j1j7j=j?jTjVj[jgjijrjjno-$Id: romtol.c,v 1.1 1995/10/07 15:51:44 beebe Exp beebe $ivxlcdm k 2d$Id: strist.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $0123456789abcdefghijklmnopqrstuvxwyz$Id: strtol.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $`kډ_C_FILE_INFO=/lz\\wwRm ((((( H :   *?...EEE50P 0PX000WP ``````ppxxxx(null)Error 0No such file or directoryArg list too longExec format errorBad file numberNot enough corePermission deniedFile existsCross-device linkInvalid argumentToo many open filesNo space left on deviceMath argumentResult too largeResource deadlock would occurUnknown errorooo p p ppp!p3pCpDpEpUpgphpipjpvpppppppppppppppppppq% ԖԖԖԖԖԖ;Zx0Nm:Yw/MlTZPSTPDTprrSunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecۈۈۈH I I I |<>R6008 - not enough space for arguments R6000 - stack overflow R6003 - integer divide by 0 R6009 - not enough space for environment run-time error R6002 - floating-point support not loaded R6001 - null pointer assignment bibclean-3.07/ibmpc/dos/msc6p0/ibmtest.bat0000644000156700015670000001342206141407200017226 0ustar beebebeebeecho off break on REM ===================================================================== REM Test bibclean on IBM PC DOS. REM The funny backspace in echo commands is just to get a blank REM line, rather than the current echo status. REM [29-Apr-1996] REM ===================================================================== echo ================== begin BibTeX test 1 =================== echo bibclean -init bibclean.ini -err testbib1.err testbib1.org bibclean -init bibclean.ini -err testbib1.err testbib1.org >testbib1.bib echo  echo There should be no differences found: echo diff testbib1.bok testbib1.bib diff testbib1.bok testbib1.bib echo  echo There should be no differences found: echo diff testbib1.eok testbib1.err diff testbib1.eok testbib1.err echo =================== end BibTeX test 1 ==================== echo ================== begin BibTeX test 2 =================== echo bibclean -init bibclean.ini -no-check-values -err testbib2.err testbib2.org bibclean -init bibclean.ini -no-check-values -err testbib2.err testbib2.org >testbib2.bib echo  echo There should be no differences found: echo diff testbib2.bok testbib2.bib diff testbib2.bok testbib2.bib echo  echo There should be no differences found: echo diff testbib2.eok testbib2.err diff testbib2.eok testbib2.err echo =================== end BibTeX test 2 ==================== echo ================== begin BibTeX test 3 =================== echo bibclean -init bibclean.ini -fix-font-change -err testbib3.err testbib3.org bibclean -init bibclean.ini -fix-font-change -err testbib3.err testbib3.org >testbib3.bib echo  echo There should be no differences found: echo diff testbib3.bok testbib3.bib diff testbib3.bok testbib3.bib echo  echo There should be no differences found: echo diff testbib3.eok testbib3.err diff testbib3.eok testbib3.err echo =================== end BibTeX test 3 ==================== echo ================== begin BibTeX test 4 =================== echo bibclean -init bibclean.ini -fix-font-change -err testbib4.err testbib4.org bibclean -init bibclean.ini -fix-font-change -err testbib4.err testbib4.org >testbib4.bib echo  echo There should be no differences found: echo diff testbib4.bok testbib4.bib diff testbib4.bok testbib4.bib echo  echo There should be no differences found: echo diff testbib4.eok testbib4.err diff testbib4.eok testbib4.err echo =================== end BibTeX test 4 ==================== echo ================== begin BibTeX test 5 =================== echo bibclean -init bibclean.ini -German-style -err testbib5.err testbib5.org bibclean -init bibclean.ini -German-style -err testbib5.err testbib5.org >testbib5.bib echo  echo There should be no differences found: echo diff testbib5.bok testbib5.bib diff testbib5.bok testbib5.bib echo  echo There should be no differences found: echo diff testbib5.eok testbib5.err diff testbib5.eok testbib5.err echo =================== end BibTeX test 5 ==================== echo ================== begin BibTeX test 6 =================== echo bibclean -init bibclean.ini -err testisxn.err testisxn.org bibclean -init bibclean.ini -err testisxn.err testisxn.org >testisxn.bib echo  echo There should be no differences found: echo diff testisxn.bok testisxn.bib diff testisxn.bok testisxn.bib echo  echo There should be no differences found: echo diff testisxn.eok testisxn.err diff testisxn.eok testisxn.err echo =================== end BibTeX test 6 =================== echo ================== begin BibTeX test 7 =================== echo bibclean -init bibclean.ini -err testcodn.err testcodn.org bibclean -init bibclean.ini -err testcodn.err testcodn.org >testcodn.bib echo  echo There should be no differences found: echo diff testcodn.bok testcodn.bib diff testcodn.bok testcodn.bib echo  echo There should be no differences found: echo diff testcodn.eok testcodn.err diff testcodn.eok testcodn.err echo =================== end BibTeX test 7 =================== echo ================== begin Scribe test 1 =================== echo bibclean -init bibclean.ini -err testscr1.err -scribe -no-check testscr1.org bibclean -init bibclean.ini -err testscr1.err -scribe -no-check testscr1.org >testscr1.bib echo  echo There should be no differences found: echo diff testscr1.bok testscr1.bib diff testscr1.bok testscr1.bib echo  echo There should be no differences found: echo diff testscr1.eok testscr1.err diff testscr1.eok testscr1.err echo =================== end Scribe test 1 ==================== echo ==================== begin Scribe test 2 ===================== echo  bibclean -err testscr2.err -init-file bibclean.ini -scribe -file -no-check testscr2.org >testscr2.bib echo  echo There should be no differences found: echo diff testscr2.bok testscr2.bib echo  echo There should be no differences found: echo diff testscr2.eok testscr2.err echo  echo  bibclean -err testscr2.er2 -init-file bibclean.ini -scribe -file -no-check -no-par testscr2.org >testscr2.bi2 echo  echo There should be no differences found: echo diff testscr2.bo2 testscr2.bi2 echo  echo There should be no differences found: echo diff testscr2.eo2 testscr2.er2 echo  echo ===================== end Scribe test 2 ====================== echo ================== begin Scribe test 3 =================== echo bibclean -init bibclean.ini -err testscr3.err -scribe -no-check testscr3.org bibclean -init bibclean.ini -err testscr3.err -scribe -no-check testscr3.org >testscr3.bib echo  echo There should be no differences found: echo diff testscr3.bok testscr3.bib diff testscr3.bok testscr3.bib echo  echo There should be no differences found: echo diff testscr3.eok testscr3.err diff testscr3.eok testscr3.err echo =================== end Scribe test 3 ==================== bibclean-3.07/ibmpc/dos/msc6p0/ibmclean.bat0000644000156700015670000000007406141407714017342 0ustar beebebeebedel test*.bi2 del test*.bib del test*.er2 del test*.err bibclean-3.07/ibmpc/dos/msc6p0/msc60pth.bat0000644000156700015670000000044205307653502017234 0ustar beebebeebe:# Set environment variables for compiling with Microsoft C 6.0 :# [24-Nov-1992] PATH=s:\sys\msc6p0\bin;s:\sys\msc6p0\binb;h:\pc;c:\dos;c:\;c:\sunpc;f:\msdos;f:\unix;s:\usr\bin;s:\sys\bin;s:\sys\norton set LIB=s:\sys\msc6p0\lib set INCLUDE=s:\sys\msc6p0\include set TMP=h:\pc\tmp bibclean-3.07/ibmpc/dos/msc6p0/msc60bld.bat0000644000156700015670000000167306142134466017212 0ustar beebebeebe:# Compile bibclean with the Microsoft C 6.0 compiler :# [02-May-1996] cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 bibclean.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 fndfil.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 romtol.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 match.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 chek.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 do.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 fix.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 fndfil.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 isbn.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 keybrd.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 match.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 -DHOST=\"plot79.math.utah.edu\" -DUSER=\"beebe\" option.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 romtol.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 strist.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 strtol.c copy s:\sys\msc6p0\lib\setargv.obj setargv.obj cl -AC -Gt512 -W4 -Febibclean.exe -Fmbibclean.map -F 8000 *.obj -link /noe bibclean-3.07/ibmpc/dos/msc6p0/config.h0000644000156700015670000001173306141727656016534 0ustar beebebeebe/* config.h. Generated automatically by configure. */ /* WARNING: Do NOT edit the config.h file; instead, put any needed changes in custom.h, so that they can override assumptions made in the automatically-generated config.h file */ #define STDC_HEADERS 1 /* #undef _ALL_SOURCE */ /* #undef _POSIX_SOURCE */ #define HAVE_STDC 1 /* Define if you want old pattern-less string matching in .ini files */ /* #undef HAVE_OLDCODE */ /* Define if you want standard bibclean-specific pattern in .ini files */ #define HAVE_PATTERNS 1 /* Define if you want regular-expression patterns in .ini files using re_comp() */ /* #undef HAVE_RECOMP */ /* #undef HAVE_REGEXP */ #if !(defined(__cplusplus) || defined(c_plusplus)) /* Define to empty if the keyword does not work, but do nothing in */ /* C++ environment, because autoconf 2.4 gets the wrong answer from */ /* the AC_C_CONST test program under C++ compilation. */ #define const #endif /* Define if your free() requires (char*) cast instead of (void*) */ /* #undef FREE_CAST_IS_CHAR_STAR */ /* Define if your compiler recognizes \a as an alert (ASCII BEL) character */ #define HAVE_ALERT_CHAR 1 /* Library functions that we need */ #define HAVE_GETCWD 1 #define HAVE_GETWD 1 #define HAVE_STRCSPN 1 /* #undef HAVE_STRDUP */ #define HAVE_STRSPN 1 #define HAVE_STRSTR 1 #define HAVE_STRTOD 1 #define HAVE_STRTOL 1 /* Header files that we might need */ #define HAVE_CONIO_H 1 #define HAVE_CTYPE_H 1 /* #undef HAVE_DESCRIP_H */ #define HAVE_ERRNO_H 1 #define HAVE_FCNTL_H 1 /* #undef HAVE_IODEF_H */ #define HAVE_IO_H 1 /* #undef HAVE_JPIDEF_H */ #define HAVE_LIMITS_H 1 /* #undef HAVE_OSFCN_H */ /* #undef HAVE_PWD_H */ #define HAVE_REGEXP_H 1 /* #undef HAVE_REGEX_H */ /* #undef HAVE_RMS_H */ #define HAVE_SGTTY_H 1 /* #undef HAVE_SSDEF_H */ /* #undef HAVE_STAT_H */ /* #undef HAVE_STDDEF_H */ #define HAVE_STDIO_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 /* #undef HAVE_SYS_IOCTL_H */ /* #undef HAVE_SYS_PARAM_H */ #define HAVE_SYS_STAT_H 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_TERMIOS_H 1 #define HAVE_TERMIO_H 1 #define HAVE_TIME_H 1 /* #undef HAVE_TT2DEF_H */ /* #undef HAVE_TTDEF_H */ /* #undef HAVE_TYPES_H */ /* #undef HAVE_UNISTD_H */ /* #undef HAVE_UNIXIO_H */ #define RCSID(s) static char rcsid[] = s; #define OS_PCDOS 1 /* NB: some systems have Standard C header files, but compilers that do not accept function prototypes (e.g. HP HP-UX 9.0.3 /bin/cc) */ #if defined(STDC_HEADERS) && (defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)) #define ARGS(plist) plist #define VOID void #else #define ARGS(plist) () #define VOID #endif #define SCREEN_LINES 24 /*********************************************************************** The limit on file name lengths is non-standard: -------- ------------- ------------------------------------------ Name Definition System -------- ------------- ------------------------------------------ FNMAX PCC-20 MAXPATH Turbo C 2.0, C and C++ 3.0, and TopSpeed C _MAX_PATH Microsoft C 5.0, 6.0, 7.0 and TopSpeed C MAXPATHLEN Sun OS (4.2BSD), 4.3BSD, Gould UTX/32, HPUX, KCC-20, AIX (RT, RS, PS/2, 370), HP/Apollo DomainOS, DEC Alpha (OSF/1) PATH_MAX SYS V (Silicon Graphics) PATH_MAX POSIX, DEC Alpha (OSF/1) FILENAME_MAX Intel RMX, NeXT Mach, Turbo C/C++ 3.0 -------- ------------- ------------------------------------------ ***********************************************************************/ #if defined(HAVE_SYS_PARAM_H) #include #endif #if defined(HAVE_LIMITS_H) #include #endif #if defined(HAVE_STDLIB_H) #include #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN FNMAX #endif #if !defined(MAXPATHLEN) && defined(MAXPATH) #define MAXPATHLEN MAXPATH #endif #if !defined(MAXPATHLEN) && defined(_MAX_PATH) #define MAXPATHLEN _MAX_PATH #endif #if !defined(MAXPATHLEN) && defined(PATH_MAX) #define MAXPATHLEN PATH_MAX #endif #if !defined(MAXPATHLEN) && defined(FILENAME_MAX) #define MAXPATHLEN FILENAME_MAX #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN 1024 #endif #if defined(OS_PCDOS) #define SEP_COMP " ;,|" /* separators between filename components */ #define SEP_PATH "\\" /* separators between directory path and filename */ #endif #if defined(OS_UNIX) #define SEP_COMP " ;:,|" /* separators between filename components */ #define SEP_PATH "/" /* separators between directory path and filename */ #endif #include #include #if !defined(HAVE_IOCTL_PROTOTYPE) #if defined(__cplusplus) || defined(c_plusplus) /* system files should have: extern "C" {int ioctl ARGS((int, int, ...));} */ #else extern int ioctl ARGS((int, int, ...)); #endif #endif #if defined(FREE_CAST_IS_CHAR_STAR) #define FREE(p) free((char*)(p)) #else #define FREE(p) free((void*)(p)) #endif bibclean-3.07/ibmpc/dos/msc6p0/bibclean.map0000644000156700015670000004751306142137027017345 0ustar beebebeebeStack Allocation = 32768 bytes Start Stop Length Name Class 00000H 0B471H 0B472H _TEXT CODE 0B480H 0B481H 00002H EMULATOR_TEXT CODE 0B482H 0B482H 00000H C_ETEXT ENDCODE 0B490H 0E7B0H 03321H BIBCLEAN5_DATA FAR_DATA 0E7C0H 10FBFH 02800H DO5_DATA FAR_DATA 10FC0H 11FBFH 01000H FIX5_DATA FAR_DATA 11FC0H 1283FH 00880H ISBN5_DATA FAR_DATA 12840H 12CBFH 00480H OPTION5_DATA FAR_DATA 12CC0H 12CC0H 00000H EMULATOR_DATA FAR_DATA 12CC0H 17F6FH 052B0H FAR_BSS FAR_BSS 17F70H 17FB1H 00042H NULL BEGDATA 17FB2H 1F1D5H 07224H _DATA DATA 1F1D6H 1F1D7H 00002H XIQC DATA 1F1D8H 1F1E5H 0000EH DBDATA DATA 1F1E6H 1F1F3H 0000EH CDATA DATA 1F1F4H 1F1F4H 00000H XIFB DATA 1F1F4H 1F1F4H 00000H XIF DATA 1F1F4H 1F1F4H 00000H XIFE DATA 1F1F4H 1F1F4H 00000H XIB DATA 1F1F4H 1F1F4H 00000H XI DATA 1F1F4H 1F1F4H 00000H XIE DATA 1F1F4H 1F1F4H 00000H XPB DATA 1F1F4H 1F1F5H 00002H XP DATA 1F1F6H 1F1F6H 00000H XPE DATA 1F1F6H 1F1F6H 00000H XCB DATA 1F1F6H 1F1F6H 00000H XC DATA 1F1F6H 1F1F6H 00000H XCE DATA 1F1F6H 1F1F6H 00000H XCFB DATA 1F1F6H 1F1F6H 00000H XCF DATA 1F1F6H 1F1F6H 00000H XCFE DATA 1F1F6H 1F2ADH 000B8H CONST CONST 1F2AEH 1F2B5H 00008H HDR MSG 1F2B6H 1F3B7H 00102H MSG MSG 1F3B8H 1F3B9H 00002H PAD MSG 1F3BAH 1F3BAH 00001H EPAD MSG 1F3BCH 1F73FH 00384H _BSS BSS 1F740H 1F740H 00000H XOB BSS 1F740H 1F740H 00000H XO BSS 1F740H 1F740H 00000H XOE BSS 1F740H 1F93FH 00200H c_common BSS 1F940H 2793FH 08000H STACK STACK Origin Group 17F7:0 DGROUP Address Publics by Name 17F7:6C3A STKHQQ 0000:9506 _access 17F7:0182 _align_equals 0000:0010 _apply_function 0000:B418 _atol 17F7:0184 _at_level 17F7:0186 _brace_level 0000:1AD8 _check_chapter 0000:1B00 _check_CODEN 0000:1B1C _check_inodes 0000:1BAC _check_ISBN 0000:1BE4 _check_ISSN 0000:1C00 _check_junior 0000:1CD4 _check_key 0000:1D4E _check_length 0000:1D76 _check_month 0000:1DFA _check_number 0000:1E22 _check_other 0000:1E94 _check_pages 0000:1EBC _check_patterns 17F7:018A _check_values 0000:1F52 _check_volume 0000:1F7A _check_year 0000:A6AC _close 17F7:018C _close_char 12CC:0250 _current_entry_name 12CC:3284 _current_field 12CC:1250 _current_key 12CC:42B0 _current_value 17F7:721E _daylight 17F7:018E _delete_empty_values 17F7:0190 _discard_next_comma 0000:7DEE _do_args 0000:35A4 _do_files 0000:38E2 _do_initfile 0000:7376 _do_more 0000:3E86 _do_other 0000:7EFC _do_preargs 17F7:744C _edata 17F7:79D0 _end 17F7:6C27 _environ 17F7:0192 _eofile 17F7:6BFE _errno 0000:02AA _error 0000:89D3 _exit 0000:03BC _fatal 0000:8CB8 _fclose 0000:8E96 _fflush 0000:9252 _fgets 17F7:012E _field_indentation 0000:6C56 _findfile 0000:60A0 _fix_author 17F7:019A _fix_font_changes 17F7:0196 _fix_initials 0000:61E6 _fix_month 0000:6392 _fix_namelist 17F7:0198 _fix_names 0000:6538 _fix_pages 0000:667E _fix_periods 0000:6752 _fix_title 0000:8F14 _flushall 0000:8DA2 _fopen 12CC:2250 _fpin 0000:8DBC _fprintf 0000:8F6E _fputc 0000:8F66 _fputchar 0000:92CA _fputs 0000:8F9A _free 0000:05E8 _free_pattern_table_entries 0000:9528 _fstat 0000:9CAE _fwrite 17F7:092E _German_style 0000:922A _getch 0000:9226 _getche 0000:90FE _getenv 0000:06BC _get_char 0000:0806 _get_linebreak 0000:0866 _get_next_non_blank 0000:7820 _get_screen_lines 12CC:2254 _initialization_file_name 0000:AACE _intdos 17F7:019C _in_preamble 17F7:019E _in_string 17F7:01A0 _in_value 0000:7100 _ISBN_hyphenate 0000:09D6 _isidchar 0000:7F84 _isoptionprefix 0000:83EC _isroman 17F7:01A2 _is_parbreak 0000:AA30 _itoa 0000:782A _kbclose 0000:7830 _kbcode 0000:78B8 _kbget 0000:78C2 _kbopen 17F7:01A4 _keep_linebreaks 17F7:01A6 _keep_parbreaks 17F7:01A8 _keep_preamble_spaces 17F7:01AA _keep_spaces 17F7:01AC _keep_string_spaces 12CC:0028 _keymap 0000:A6CC _lseek 0000:0A34 _main 0000:8F96 _malloc 0000:79BA _match_pattern 17F7:01AE _max_width 0000:94A8 _memcpy 0000:0B56 _Memmove 0000:0BDA _Memset 17F7:0806 _month_pair 17F7:01B2 _non_white_chars 0000:ACA2 _open 0000:0C12 _out_at 0000:0C28 _out_c 0000:0D6A _out_flush 0000:0DCC _out_lines 0000:0F12 _out_newline 0000:0FE8 _out_s 0000:10B4 _out_spaces 0000:11D0 _out_string 0000:1226 _out_token 0000:13E0 _out_verbatim 0000:1420 _out_with_error 0000:1446 _out_with_parbreak_error 17F7:01B4 _parbreaks 0B49:2001 _pattern_names 0000:9186 _perror 17F7:01B6 _prettyprint 17F7:01B8 _print_patterns 12CC:42AC _program_name 0000:8F6E _putc 0000:8F66 _putchar 0000:1460 _put_back 0000:A746 _read 17F7:01BC _read_initialization_files 0000:9390 _realloc 0000:AC16 _remove 17F7:01BE _remove_OPT_prefixes 17F7:01C0 _rflag 0000:8312 _romtol 17F7:01C2 _screen_lines 17F7:01C4 _Scribe 12CC:2284 _shared_string 17F7:01C6 _show_file_position 0000:AC88 _sopen 0000:9328 _sprintf 0000:AE54 _stackavail 12CC:2280 _stdlog 17F7:01C8 _stdlog_on_stdout 0000:8F9E _strcat 0000:9394 _strchr 0000:901A _strcmp 0000:8FE4 _strcpy 0000:93F0 _strcspn 0000:B2C4 _strdup 0000:153A _Strdup 0000:1580 _stricmp 0000:845A _stristr 0000:9044 _strlen 0000:905C _strncat 0000:90C2 _strncmp 0000:9098 _strncpy 0000:1668 _strnicmp 0000:B2EC _strpbrk 0000:93C2 _strrchr 0000:944C _strspn 0000:84C2 _strtol 17F7:711C _sys_errlist 17F7:71B4 _sys_nerr 0000:1758 _tfopen 12CC:4284 _the_entry 12CC:2258 _the_file 12CC:0228 _the_value 17F7:721A _timezone 12CC:0000 _token_start 17F7:01CC _trace_file_opening 17F7:0132 _type_name 17F7:7220 _tzname 0000:B124 _tzset 0000:AC16 _unlink 17F7:0130 _value_indentation 0000:17BC _warning 17F7:01CE _warnings 17F7:01D0 _wrapping 0000:A844 _write 17F7:6C38 __aaltstkovr 17F7:6BE2 __acfinfo 0000:9876 Abs __acrtmsg 0000:9876 Abs __acrtused 0000:D6D6 Abs __aDBdoswp 17F7:6F5C __adbgmsg 17F7:6BC6 __aexit_rtn 0000:1000 Abs __AHINCR 0000:000C Abs __AHSHIFT 17F7:6BF0 __aintdiv 17F7:71C6 __amblksiz 0000:88EC __amsg_exit 0000:8AA4 __aNchkstk 0000:AC26 __aNlmul 0000:AC58 __aNlshl 0000:9678 __aNNalmul 0000:9698 __aNNalshl 0000:9678 __aNNaulmul 17F7:0042 __anullsize 0000:AC26 __aNulmul 17F7:6BDE __aseghi 17F7:6BE0 __aseglo 17F7:6BC8 __asizds 17F7:71D8 __asizeC 17F7:71D9 __asizeD 0000:881C __astart 17F7:6BC4 __atopsp 17F7:77D0 __bufin 0000:B41C __catox 0000:89E2 __cexit 17F7:71C8 __cfltcvt_tab 17F7:71B6 __cflush 17F7:6F5A __chbuf 17F7:6C30 __child 0000:8AA4 __chkstk 0000:890E __cinit 0000:88DC __cintDIV 0000:B34A __cltoasub 0000:8A54 __ctermsub 17F7:6E52 __ctype 17F7:6E52 __ctype_ 0000:9852 __cwild 0000:AE43 __cXENIXtoDOSmode 0000:B357 __cxtoa 0000:89EC __c_exit 0000:890B __dataseg 17F7:71F4 __days 17F7:6C09 __doserrno 0000:97FC __dosret0 0000:9811 __dosretax 0000:9804 __dosreturn 17F7:6C06 __dosvermajor 17F7:6C07 __dosverminor 0000:AB1E __dtoxtime 0B48:0000 __EmDataSeg 0000:89DA __exit 17F7:6BF4 __fac 0000:A9A0 __ffree 0000:96B4 __FF_MSGBANNER 17F7:71B8 __fheap 0000:8DFA __filbuf 0000:8C82 __find 0000:AFC2 __findlast 0000:B0EE __findseg 0000:9E42 __flsbuf 0000:A9B3 __fmalloc 17F7:7264 __fmode 17F7:7278 __fpinit 0000:96D4 __fptrap 0000:AA4C __frealloc 0000:9F2A __freebuf 0000:8D72 __fsopen 0000:A11F __ftbuf 0000:9F60 __getbuf 0000:A65E __getstream 0000:AEE2 __growseg 0000:AF71 __incseg 0000:B3AE __initseg 17F7:6C33 __intno 17F7:6C6E __iob 17F7:6D5E __iob2 17F7:7264 __iomode 0000:B1EA __isindst 17F7:6E4E __lastiob 0000:B3E2 __linkseg 17F7:71DA __lpdays 0000:981E __maperror 0000:AC64 __myalloc 0000:AFE2 __newseg 17F7:6C0B __nfile 17F7:6BCA __nheap_desc 0000:979C __NMSG_TEXT 0000:97C7 __NMSG_WRITE 0000:96DA __nullcheck 0000:9FAA __openfile 17F7:6C09 __oserr 17F7:6C0D __osfile 17F7:6C06 __osmajor 17F7:6C07 __osminor 17F7:6C08 __osmode 17F7:6C06 __osversion 0000:A176 __output 17F7:6C32 __ovlflag 17F7:6C34 __ovlvec 17F7:6C2B __pgmptr 17F7:6C04 __psp 17F7:6C02 __pspadr 0000:B026 __resize 0000:AE66 __searchseg 0000:8456 __setargv 0000:96FC __setenvp 17F7:71D6 __sigintoff 17F7:71D4 __sigintseg 0000:A0A0 __stbuf 17F7:01CA __stklen 17F7:6C00 __umaskval 17F7:726E ___aDBexit 17F7:7274 ___aDBptrchk 17F7:726C ___aDBrterr 17F7:726A ___aDBswpchk 17F7:7268 ___aDBswpflg 17F7:6C21 ___argc 17F7:6C23 ___argv 17F7:7228 ___dnames 17F7:723E ___mnames 17F7:7266 ___qczrinit 0000:8ABC ___setargv 0000:B114 ___tzset Address Publics by Value 0000:000C Abs __AHSHIFT 0000:0010 _apply_function 0000:02AA _error 0000:03BC _fatal 0000:05E8 _free_pattern_table_entries 0000:06BC _get_char 0000:0806 _get_linebreak 0000:0866 _get_next_non_blank 0000:09D6 _isidchar 0000:0A34 _main 0000:0B56 _Memmove 0000:0BDA _Memset 0000:0C12 _out_at 0000:0C28 _out_c 0000:0D6A _out_flush 0000:0DCC _out_lines 0000:0F12 _out_newline 0000:0FE8 _out_s 0000:1000 Abs __AHINCR 0000:10B4 _out_spaces 0000:11D0 _out_string 0000:1226 _out_token 0000:13E0 _out_verbatim 0000:1420 _out_with_error 0000:1446 _out_with_parbreak_error 0000:1460 _put_back 0000:153A _Strdup 0000:1580 _stricmp 0000:1668 _strnicmp 0000:1758 _tfopen 0000:17BC _warning 0000:1AD8 _check_chapter 0000:1B00 _check_CODEN 0000:1B1C _check_inodes 0000:1BAC _check_ISBN 0000:1BE4 _check_ISSN 0000:1C00 _check_junior 0000:1CD4 _check_key 0000:1D4E _check_length 0000:1D76 _check_month 0000:1DFA _check_number 0000:1E22 _check_other 0000:1E94 _check_pages 0000:1EBC _check_patterns 0000:1F52 _check_volume 0000:1F7A _check_year 0000:35A4 _do_files 0000:38E2 _do_initfile 0000:3E86 _do_other 0000:60A0 _fix_author 0000:61E6 _fix_month 0000:6392 _fix_namelist 0000:6538 _fix_pages 0000:667E _fix_periods 0000:6752 _fix_title 0000:6C56 _findfile 0000:7100 _ISBN_hyphenate 0000:7376 _do_more 0000:7820 _get_screen_lines 0000:782A _kbclose 0000:7830 _kbcode 0000:78B8 _kbget 0000:78C2 _kbopen 0000:79BA _match_pattern 0000:7DEE _do_args 0000:7EFC _do_preargs 0000:7F84 _isoptionprefix 0000:8312 _romtol 0000:83EC _isroman 0000:8456 __setargv 0000:845A _stristr 0000:84C2 _strtol 0000:881C __astart 0000:88DC __cintDIV 0000:88EC __amsg_exit 0000:890B __dataseg 0000:890E __cinit 0000:89D3 _exit 0000:89DA __exit 0000:89E2 __cexit 0000:89EC __c_exit 0000:8A54 __ctermsub 0000:8AA4 __chkstk 0000:8AA4 __aNchkstk 0000:8ABC ___setargv 0000:8C82 __find 0000:8CB8 _fclose 0000:8D72 __fsopen 0000:8DA2 _fopen 0000:8DBC _fprintf 0000:8DFA __filbuf 0000:8E96 _fflush 0000:8F14 _flushall 0000:8F66 _fputchar 0000:8F66 _putchar 0000:8F6E _putc 0000:8F6E _fputc 0000:8F96 _malloc 0000:8F9A _free 0000:8F9E _strcat 0000:8FE4 _strcpy 0000:901A _strcmp 0000:9044 _strlen 0000:905C _strncat 0000:9098 _strncpy 0000:90C2 _strncmp 0000:90FE _getenv 0000:9186 _perror 0000:9226 _getche 0000:922A _getch 0000:9252 _fgets 0000:92CA _fputs 0000:9328 _sprintf 0000:9390 _realloc 0000:9394 _strchr 0000:93C2 _strrchr 0000:93F0 _strcspn 0000:944C _strspn 0000:94A8 _memcpy 0000:9506 _access 0000:9528 _fstat 0000:9678 __aNNaulmul 0000:9678 __aNNalmul 0000:9698 __aNNalshl 0000:96B4 __FF_MSGBANNER 0000:96D4 __fptrap 0000:96DA __nullcheck 0000:96FC __setenvp 0000:979C __NMSG_TEXT 0000:97C7 __NMSG_WRITE 0000:97FC __dosret0 0000:9804 __dosreturn 0000:9811 __dosretax 0000:981E __maperror 0000:9852 __cwild 0000:9876 Abs __acrtused 0000:9876 Abs __acrtmsg 0000:9CAE _fwrite 0000:9E42 __flsbuf 0000:9F2A __freebuf 0000:9F60 __getbuf 0000:9FAA __openfile 0000:A0A0 __stbuf 0000:A11F __ftbuf 0000:A176 __output 0000:A65E __getstream 0000:A6AC _close 0000:A6CC _lseek 0000:A746 _read 0000:A844 _write 0000:A9A0 __ffree 0000:A9B3 __fmalloc 0000:AA30 _itoa 0000:AA4C __frealloc 0000:AACE _intdos 0000:AB1E __dtoxtime 0000:AC16 _unlink 0000:AC16 _remove 0000:AC26 __aNlmul 0000:AC26 __aNulmul 0000:AC58 __aNlshl 0000:AC64 __myalloc 0000:AC88 _sopen 0000:ACA2 _open 0000:AE43 __cXENIXtoDOSmode 0000:AE54 _stackavail 0000:AE66 __searchseg 0000:AEE2 __growseg 0000:AF71 __incseg 0000:AFC2 __findlast 0000:AFE2 __newseg 0000:B026 __resize 0000:B0EE __findseg 0000:B114 ___tzset 0000:B124 _tzset 0000:B1EA __isindst 0000:B2C4 _strdup 0000:B2EC _strpbrk 0000:B34A __cltoasub 0000:B357 __cxtoa 0000:B3AE __initseg 0000:B3E2 __linkseg 0000:B418 _atol 0000:B41C __catox 0B48:0000 __EmDataSeg 0B49:2001 _pattern_names 0000:D6D6 Abs __aDBdoswp 12CC:0000 _token_start 12CC:0028 _keymap 12CC:0228 _the_value 12CC:0250 _current_entry_name 12CC:1250 _current_key 12CC:2250 _fpin 12CC:2254 _initialization_file_name 12CC:2258 _the_file 12CC:2280 _stdlog 12CC:2284 _shared_string 12CC:3284 _current_field 12CC:4284 _the_entry 12CC:42AC _program_name 12CC:42B0 _current_value 17F7:0042 __anullsize 17F7:012E _field_indentation 17F7:0130 _value_indentation 17F7:0132 _type_name 17F7:0182 _align_equals 17F7:0184 _at_level 17F7:0186 _brace_level 17F7:018A _check_values 17F7:018C _close_char 17F7:018E _delete_empty_values 17F7:0190 _discard_next_comma 17F7:0192 _eofile 17F7:0196 _fix_initials 17F7:0198 _fix_names 17F7:019A _fix_font_changes 17F7:019C _in_preamble 17F7:019E _in_string 17F7:01A0 _in_value 17F7:01A2 _is_parbreak 17F7:01A4 _keep_linebreaks 17F7:01A6 _keep_parbreaks 17F7:01A8 _keep_preamble_spaces 17F7:01AA _keep_spaces 17F7:01AC _keep_string_spaces 17F7:01AE _max_width 17F7:01B2 _non_white_chars 17F7:01B4 _parbreaks 17F7:01B6 _prettyprint 17F7:01B8 _print_patterns 17F7:01BC _read_initialization_files 17F7:01BE _remove_OPT_prefixes 17F7:01C0 _rflag 17F7:01C2 _screen_lines 17F7:01C4 _Scribe 17F7:01C6 _show_file_position 17F7:01C8 _stdlog_on_stdout 17F7:01CA __stklen 17F7:01CC _trace_file_opening 17F7:01CE _warnings 17F7:01D0 _wrapping 17F7:0806 _month_pair 17F7:092E _German_style 17F7:6BC4 __atopsp 17F7:6BC6 __aexit_rtn 17F7:6BC8 __asizds 17F7:6BCA __nheap_desc 17F7:6BDE __aseghi 17F7:6BE0 __aseglo 17F7:6BE2 __acfinfo 17F7:6BF0 __aintdiv 17F7:6BF4 __fac 17F7:6BFE _errno 17F7:6C00 __umaskval 17F7:6C02 __pspadr 17F7:6C04 __psp 17F7:6C06 __osversion 17F7:6C06 __osmajor 17F7:6C06 __dosvermajor 17F7:6C07 __osminor 17F7:6C07 __dosverminor 17F7:6C08 __osmode 17F7:6C09 __oserr 17F7:6C09 __doserrno 17F7:6C0B __nfile 17F7:6C0D __osfile 17F7:6C21 ___argc 17F7:6C23 ___argv 17F7:6C27 _environ 17F7:6C2B __pgmptr 17F7:6C30 __child 17F7:6C32 __ovlflag 17F7:6C33 __intno 17F7:6C34 __ovlvec 17F7:6C38 __aaltstkovr 17F7:6C3A STKHQQ 17F7:6C6E __iob 17F7:6D5E __iob2 17F7:6E4E __lastiob 17F7:6E52 __ctype_ 17F7:6E52 __ctype 17F7:6F5A __chbuf 17F7:6F5C __adbgmsg 17F7:711C _sys_errlist 17F7:71B4 _sys_nerr 17F7:71B6 __cflush 17F7:71B8 __fheap 17F7:71C6 __amblksiz 17F7:71C8 __cfltcvt_tab 17F7:71D4 __sigintseg 17F7:71D6 __sigintoff 17F7:71D8 __asizeC 17F7:71D9 __asizeD 17F7:71DA __lpdays 17F7:71F4 __days 17F7:721A _timezone 17F7:721E _daylight 17F7:7220 _tzname 17F7:7228 ___dnames 17F7:723E ___mnames 17F7:7264 __iomode 17F7:7264 __fmode 17F7:7266 ___qczrinit 17F7:7268 ___aDBswpflg 17F7:726A ___aDBswpchk 17F7:726C ___aDBrterr 17F7:726E ___aDBexit 17F7:7274 ___aDBptrchk 17F7:7278 __fpinit 17F7:744C _edata 17F7:77D0 __bufin 17F7:79D0 _end Program entry point at 0000:881C bibclean-3.07/ibmpc/dos/wat10/0000775000156700015670000000000014431412252014717 5ustar beebebeebebibclean-3.07/ibmpc/dos/wat10/wpp386/0000775000156700015670000000000014431412252015766 5ustar beebebeebebibclean-3.07/ibmpc/dos/wat10/wpp386/bibclean.exe0000755000156700015670000033555206142141212020241 0ustar beebebeebeMZ@)Y5rSRV11>t+|1<e>uۃ|1^Z[SUFxFzFVxF|FxF~)F-Fx'BËCTQVWUPƉ׉^!Ë1uE^<\t3<.t.u=+;r u&&+شJ!ߎǿM uV&>&>&tA*O0!&&&<r/,+3 =nou D=87uE<u<uFF<u&6&&ܺVڎ‰.>0+ϰ>u  3PV>¹Xt0ظʼSPRں=!Z<u+I@!XPXL!PVXSQӉ¸C!rt t9Y[SQVUÉэs0ҴG!҅} 1E!ApƆq:pƆr\1Bu_Åu ĉэp؉]^Y[QWnj؎1I_YVWljWtG<t&ttDtutX_^SQRVWUP6t2t.!Vȉ8u?=uE  u1]_^ZY[QVWljW؎1Ott tu쨪__^YQVWUƉVxlj=u+Ã?u!<\t<t|:t>Åu@Fz+FzF~?tغ;j Džu lj)؉F|;F~vKF NFڋ^|[ ^^|\t\C؉^zA FVx=uÃ?u =;u]uЍ]_^YSQVWƉӃu 1Gt gO1Ɋ0Ft %=utgOu9 _^Y[SQVWGutO gu u-G@u$O? GG;G ut'O? GwuG;G u u؈0_^Y[R*,n fSV;s<t wފD^;t G?u Gt_ tW[8DWVRQ=YZ^_:DWVRQXYZ^_USQRV^1oF^+Ct9؋J^ȃ,66,*f^ZY[]QVWUƉ^F< t< uF<t;<"u;Fv<"t.<t)<\u |"t|\uFDt ƈCԉt4v<t*< t%< t <\u|"uFDt ƈCՉэDFF@t"~׋N F<uvJF<tv<^F7]_^YÅu1ÅuSø [SQRV0‰Ɖ s2>rPu"r rv0@0É7^ZY[SQRUt;FXډÅu ~u u tF.؉]ZY[QVWօtnjډَW1X_^YVWljօu1:$u-,1&1҉F1&?tw&?tBr)uÉƅt^tI11ҎF&?t>׉5&CFuA1ң Vl]_^ZY[PrXQVWUPRSF VKF \~.uF u4F 1PPF Pz=u6F .C1PPF POƒdt'VZ =u A< ~ZMZt~ZZMu1~~tV^~\ ~d+~b 11ɺ 1 ljn F ^PFvPF|P؋V^zNx =t[FƒtǍF V^1 V|tvnvpvjvhv~FPF PFz]_^Yø"SQRUFR!V^N^KK1ҋFЎ&@]ZY[PXSRŽ1KJ!´J!Z[P`XSQRôH!ۉ…}1P:XSQI1ێ&OC9s1)ىˎJ!ۉY[øPXQVWUPPRS111 1ێ&ou>utOȺ~DžtANFVjƅu1ێF&F~ut&G&?Mt );Fr@9sJ1ێ&W;tԎ1&w,FPF1҉13sJ1ێ&W;u9t9uOJ1ێ&?Mt;H&G&GH&G;Fs >L!@&G@똎I!닅tǴI!҅tƴI!1ێ&I!҉مu1| Vƭ8t t8tt8tt8tu1NN^QVWlj։W؎__^YS  uGtG GtG G G GugG OGG OGG[SQRVW1Dt:dDt.|t(\TD\ =uO;DtN <>|t8dD u.D tÉѺًDu =uL DD_^ZY[VWQ tCr>$+#;G w+w;ww+;v+#Wt;u +K+ЉG Lr\]MىOƋt|uw Y_^VWQ tt$u;uwS]}][O|;s;uwn;rg};r^;wwV+ҋG OAI;s%W +;w+<t.tHu;s;r};r };r}U ׋;u ;wuGT|uuO ;ws;OvO;O vO Y_^SVWƋV1 9r ߋ_u|\t u=DE6T6Vtw<<;6^w ;>`v>`]_^[S>Ttj;u1[SQRVWƒ>~u1>tBt)‰9rމ;nsn;s =t=w9v)‰у9wȃ>Tt+>T׍W9u6TD= sdƉË bGd)_^ZY[1QWىLjW__YSRXl.Z[Ìp;s+;w;ptZStack Overflow! QWnj؎0OuA_YSU^ GP1Pvv][SQRVWUv< uFF$0FF F=!҉ÉuFtVtQ uHFt>!ƸF@t%V1ɴ@!҉É}>!҉u_F tu^ˋGu31ɨu0!҉lj|F F=!҉É|lj $<‰t f~u~u~uFtʀ @FtFt >;u‰ ]_^ZY[SQRVU @É t1D!ɉЉV}V 0D!ɉЉV|1]QVWU PRC‰Fu&øuø@t^V?!҉ÉFDž}Z}^1^VN?!҉ÉFF|څtWv1҉1NN-?uF1ɺ+^Ƀ^%? tG@ FCB;^rΉv)FF u~u]_^YSQRô>!҅u 11 AøZY[VWUމljЉ~B!66Uʉ} 1FV]_^ x xBۃ7؃؃ yۃۃۃ؃ uKtCt0;w ȋ+ڋ+;ru;w +Ë++Ҹ++ۓUVW+rE;rw;vMx"+rMx sы؋ʋƋ_^]SVÉ֊tFC^[VWUƉ^NuFt (@FCC?uF~ t F>nnFF/u(F%Åu>nÉ>n~ر~ ~t *CGG=uC~ tG1҃<t tBfFFu~v ^_k^ F]_^VWUP։^uC<t!FF<tljFF<t ]t *Vʋ^]_^!sw<u2< u2< uGa !L!Bad format on exec $Bad environment on exec $Not enough memory on exec $ЭҋPP!sw<u2< u2< uGa !L!Bad format on exec $Bad environment on exec $Not enough memory on exec $ˌ+؁vKK&ЋPˋЎء2\$v AAvغ!\)!u +áJ!u¡ZY[SQRøD!€t1ZY[SRV;r19=*Ë6D@u6ހL@t ÀO Ӌ^Z[SÀ@[SQVWьډÉ_^Y[SÌȉG؉GЉG[SRV6&t&\W@9"Guƅt8:r@ÉƅtW\(6( 1É^Z[SVWǾ(t;tM?<6&7&_^[S>&t&&&SR(u;GtZ[S‰[0=9~'SQVWUƉVW‰t$0K9uF$0D_DF$0DD.D tD mD pD ]_^Y[SQVWUƉV|u1DttljÃu=t ыD1x~tD> Dt DDDtFT 0F{URP2ف!Ɏ,SU^GOWw  GGGG]SڋwOWw  oG_̐  !"#$'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~͇͈͉͍͎̀́͂̓̈́͆͊͋͌ͅ͏͓͔͕͖͙͚͐͑͒͗͛ͣͤͥͦͧͨͩͪͫͬͭͮͯ͘͜͟͢͝͞͠͡ͰͱͲͳʹ͵Ͷͷ͸͹ͺͻͼͽ;Ϳ%sÝ&sÝáSQVËG>փu =u"tGt G G)։ȉ^Y[SQ11jY[SR´A!҉Å}1Z[DOS4GPATHPATHdos4gw.exedos4g.exeStub exec failed:Error 0No such file or directoryArgument list too bigExec format errorBad file numberNot enough memoryPermission deniedFile existsCross-device linkInvalid argumentFile table overflowToo many open filesNo space left on deviceArgument too largeResult too largeResource deadlock would occurunknown errorPATH.com.exeNot enough memory on exec ",X`z-EXi a(  hhh} ) ` \  LEz@j}KLHHTULLx^E  @C  BIBCLEAN wP4#l%k&H')D*D*D*D*D*D*D*w4IJ$Kg qY e5 Z& bb9d d d d  g  g  t  `     du } + c ~ b  h l d d g= , x [  g gg  \.dvAq\7WB-=8(*ldklklklltjk]lA:0klll dddddllhlblplhlpedR@@bxxlhllh bddd}dpdQ*|x||l|^K~A<~7, ||||||~|~~|q  ``|toT|NxHB|=5/V P2K/)~$,~) ~~'~$~" #lV h7^!}x n   d  d/  h^ Y d8 3 d#  k k   d  d  d  d b   d_ Z dg b 7&   h b  b   { bi ^ P b; ugbOI+b  bbb39d/B=1dxxd|w _ZbX`S3dM>/ `     d by   d z T I A 7 / pj-   + d,b+bxdqdZW }S >I ? UxFd!dda ,jddzb  j   b u ] dK > c Z Q 0   x d  d  p  d , `  d l l   w  lq d   `  y 8do  j   h `c Y         d xd b ixcxTdAR pk f^Mb,`bb d    bc SbdmbU`P6+#x>  xdd xgg,zocXtjg^gY3,gL3gbbbx8d     `    d  ~ n b6  1   bV P J D < x6 t        g ! g g h b \  c Z d; #  8d p     d b d %  u k 4dojj\WOdD?k3&q keO0HS  bob K b`,,,,p,j,e]Y,zo^S.%dbqb F ^bll:  lbh i[d,b p= p= > p= > > > > > >  p= > p=x p=r d _ o=P p= bd bnb8b@m Dm @m8>2>->b>b>>>F>A>bbbbbbbbd~jbG@7bmdD>b8bbbuhWN <w <q <e <] <U <+ b  b  < < < b < < < < < < b < <m bK bT <L <0 bre[TIb;&bmX|Cx*tb ,,bCdzkm[kCk.),,,,zk`QCN@ ?y d dH PyA  / pt |yo  c g] yX F d1 d     8?2?      , ? ?gdkdPdFdn`c?M}F A~<%g @~ b?>>?>>?>>d?>{?s>n>i?d>}bKb.bbb/bbbbb""bbbbbLb ,#k #P #5 b b b by bf b[ &V %N ?? v9 ?2 ?* ? x ? ? ? ? ? '  }'  Z' W' ?   U' ?bn "PbLaHaD]>W?Q>I>C>=>7?/>)>#>>>? >f?> ?>> ?~?> ?>%?#?? l ?   Ё فc,b bH~A~.~??HR@P3P||x?xpY@|bRLB:?tPx6 m m ? ? ?V ?L  ?  ف Ձ| P{r Ӂl ҁF +      ܁~ ہn d ^  P{r R{X R H ?" ҁa?cҁc&ā ā;aa ݁ ? C ā āv      {U?m?c?ԁҁҁҁӁҁI ԁҁ!ҁӁҁ^ m&??ld???~?q?l?H? c6 c/   cccc؂cccc؂؂D???4-lfgfaNDہTTTTkc??\Kb.??:iҁ`ӁWҁI?7?.?\bd~?sd:4sҁ[ҁRӁIҁ Ӂ ҁ ҁ   b H 2  Ձ ف v  ! b 1  cc?&c cb=/'''M؂|xqj`VMD<4-&|xvpkf]TLD=60*| xt plhd`\XTPLHD@<840,(v$m d\TM P| Gx >t 6p .l $h d ` \ X T P L H D @ t plhd`\XTPLHD@<840,(~$v ng`ZT OJA8 0 ( !       F @:1(                  ~ z p l e a \ X S O K n j f b ^ Z V Q M I E A =| 9x 5t 1p -l )h %d !` \ X T P                  | t m f ` Z U$ ,  &                       h ` X A s ` N Y  S M L  F  A T <  6  . r ' G A = 7 3 * & L *WD @ bU8 y4 S, s( ,T l ,T eL H D @ < 8 4 0 , ( $   zt|nxgt^pVlNhGdC`<\4X.T'P!LHD@ < * & "                  | x zt tp _l Jh d ` \ X yT kP ]L OH BD 5@ .< '8 4 ( 2 p Vl Vh Vd V` KV\  VX UT UP UL UH \UD "U@ T< T8 T4 T0 xT, 5T( S$ S hS &S\`X`T`P`L`H`D`@b`8*`4`0_,_(m_$:_ _^^m^5^ ^]] ] ] }] >] \ \ y\ 4\ 2\ [ [ t[ d[ b[ @[ Z Zt`p`l`h`d````$ H H BH G G {G 8G F F F uF 0F E E oE ,E D $S R R kR *R R R Q Q _Q Q P P P P OP  P O O |O zO KO  O N N N N BN M M {M 7M L L L L sL WL UL vZ \Z ZZ Z Y Y GY 9Y 7Y  Y X X HX X| Wx Wt >W 78 8 7 7 W7 7 7 7 6 6 j6 -6 D D D PD  D C C C C @C ,C *C B B gB eB CB B A A @A @ @ u@ s@| 7@x ?t ?p m?l )?h >d >` e>\ !>X =T =P _=L ]=H H=| 4Lx Kt Kp nKl .Kh Jd J` J\ JX JT JP [JL JH ID I@ I< RI8  I4 H0 H, H( H ( ' '| 't 6'p 'l ' +6  6 5 5 C5 A5 5 4 4 4 z4| 84x 3t 3p 3l ?3h 2d 2` {2\ :2X 1T 1P 1L 1H m1D -1@ 0< 08 l04 +00 /, /( c/$ !/  /  / . . |.D  =@ << <8 J<4 2<0 0<, ;( ;$ ; ; c; "; : : Z: ?: =: : 9 9 T9 R9 9 8 8 M8 98`E%\nT.%PnH%Dn< %8pn0$,[n$$ m$mh 'd &` &\ &X &T &P v&@ n8 c&4 n, S&( n D& n .& n & n &o%n%n%n% z. [. . - - - }- M- - , , , E, , + }+ <+ * * u* s* ;* * ) ) ~) K) ) ( ( ~( F(, d#`mX#TmL#HKm@#<m4#06m(#$!m# m# l#~lw#ilc#TlV#4lO#lB#Km@# $m$m$6m$!m$ mx$lg$ilP$Tl@$l0$%n&$n$m|$xmp#lmn%n%n%pn{%[nq%oxe%tnlO%hn( $         { s k c [ T M C 9 0 '     "!!!!!!!!!!!!!|!xy!tq!pi!l_!hU!dL!`C!\;!X3!T+!P#!L!H!D!@ < 8 4 0 zqiaZSI?6-|%xtpl hd`\XukbY|QxItBp;l1h'd`\ XTPLHD@<840,($ wne ]UNG=3*E<3+#|xt plhd`\XTPLHD@<840y,p(g$_ WTPLHD@<840,($x qh_WO HA8/'!D@<84|0r,i(`$X PIB90 ( PIC= 3) yqib[QG>5-%wog`YOHD@<8v4n0f,_(X$S NF>70 *$|undZQH@81*$ |xtplhd`\XTPL|xtplhd`\XTPLHPsq?t|txtVrz\٦hQbT-bb baaaa|axatapvalfahTad>a`$a\aJ'FhrSQVWUlj+s$1A)8t-$X9vӉ)4(DuV0]_^Y[hrh rQR|ZYá|ZY xJ |< t ZYh8rR|~ tZhrSQR|0䈣K~  u|R uI0Ɉ~%r~ rS€qã| =|~~q1ۉ|~rZY[hbqR|~ %ZøZh9qR|JЅ|;|} %ZøZh qRV=| | u15|x@|^Zh4pSQRVWU 1ɉ t `P5V=`Whh- Uq  q"~h$~Y'~Jڸ~>)~/,~ B]_^ZY[hoRPh/h2 RDqYqZhoSQRVW11So<rlEq0%k;Qq o<rlq0k뻸Fo<rlp0-k끸 o<rlp0Ɉ kDA1l%u Z[d}ƒ t tۃ v xZ[hgSÉЁ~u[Ég[hgh zgSR=r-==du5 t0d9~lh\ hgR¸B>ZhfQVWUljՀ8Y1PT$D$Lu1 $ tȉf 3kt$g;$t |uY1ɉ $BXgXqTƃt;u5gD$)ƅ}1|D$9pphFbW1 ؉6fFu]_^YheR Mh(ePhD$Pj rhdxeQVWU(t)0҈  Mrd)xE{t?r R )C)=d9u )u x=xuD+}+ Z]_^ZY[hBS*tX ÅtH…t4%btB1";t ȉ뿉P[h BSQRVW `1CtA,t<%bu*rΈ0툫 S0t=du Uh0XASQRVW$ rƅ$%b‹$%bt$t$=t :$=t:u$$%bu$8"u\ DžtJ$%bt$$0"u ÉM8t%u1RQh h  SAAh@R u8=xu;ZÊ%u:%t5u:5uZh?`0%=u!G=uPր=du =xt hB?RtA{ud}ZÃ(ud)x > Zh>SQRVU?ƍAD1D1,%u :%u=u:=udR1 rv r v%t^ZY[à v^ZY[à s^ZY[h L>SR4,1=gg0%g g‰Ê< rv< r v<%tZ[< vZ[< v,1h=SQRVgD$0%g10Ɉ r8$@'1S${@u̓=u_f<$ u} sbt $bt ؉ $ $tD$g^ZY[h<R 0҈Zh<Q=du C=t+=thd<R7d9)u x=xbh<SQRV1&ú?  ZKI ƃu$D$}D$0d$S su&úW ^u (A%I{r v}t @yX|h;SQRUdŠ%du=uEeE|sd9u)u xSW+%P%bu?Rd%P dQh,jEP?Ua ]ZY[h N:SR1=tEÃt';dt{uB݃}uJ}JZ[h9R=6=)e=du $=b !Gu &j Gu Fp Fu =du =~dx=t[T=tH$<uv3=t'=Ԁ=tQdZh 8SR]ÃtC¸l7=uw Z[-ll%dZ[h-8SQRVW `=,Š%du=u$d$t:=t/uk)u_) T8d+\h7QRVW ` ¸\9=t =u)_^ZY0_^ZYh $7SRPD$ $9D$ $&D$ 1҉T$%T$.Z[h6SQRVW `|0%1҃%bt krQ=duڸ4=t$u:t<u:u1҉B m=duڸ4=t$<u:tu:uh5R 0҈Zh~5#=du =tt=th 25SRËPu 9 E;u  %CZ[h4R=tKtZh4SQRVWU1u10҈5du&=uqS57r D+ 0҃ u Tv u$=d=uT M%bu{uE3}uM+\u&C \u C 1ɅtC t%%btV111A8}uM4>"~u=,t={B"BCB}BC8NB8{uE륊F<'r :<-<"듀~\kf{ucFt\8tX<}tTf}uL){)7777$|\uJ{B\{B""$\0nu 0%3‰Ёh1SQR"AÃt;%b t)rD !B빉#B"ZY[h0SQR1ۃt;t0rD v!CNZY[h0SQRVWU0%K€=%} `%»1ɃtNu%bt7rC( % uAC(+>h/SQRV,0%,,)ډ؉G@t;, J4,t#5,v~\u F,뫀=u A t1^ZY[ø^ZY[h ./SRà rBv r4v%t BZ[b‰Z[ÉZ[à v rh.SQR%u:%u ZY[Ê5u:5t=u:=tъ-uG:-u? j`:-u ZY[:-u ZY[ø ZY[ø ZY[h.SQRV110U=du%=u0Ir#D _0=9 u v u$=d=uT M%bu{uF3}uN+\u&BÃ\u B1ۅtB"uAvt t @C<%bu_u E‰tЊ(tʈ+@C$ t9{B$u%0{uP0P}q 뿈 =<t<1Ĕ_^ZY[hSQVWUׅP1ҊDtR¸>P0%>1 ʸ>]C }>t>$uй>t1u5p=0҈>p=p=9"=~ʸp=1Ҋo=oup=^)ؾp=މÉ\0ۈ>p=/j9iA'U1]_^Y[h3SQRVú'%u.zƅt!'%t ^ZY[hSQVր8uk@0t!b u1ҊXtxu1ۉ@tb u1ҊXtxu C u@ tʃ-t1ɉ^Y[hBSQRVW1F@mt"DmЉ#u݋@m 1_^ZY[h SQÊ"t#%b u1XtxtB1\r*t$b u1Ɋ XtxtB1Ɋ u>B@C1Ɋ u }ƀ>-@:tR }M1Ɋ -uƀ>-@C t"b u1Ɋ XtxtB1Ɋ t >B먃 uA%b u/1Xt&xt!>>>-0%>>Y[1Y[hQVWUPщǍT$ƅp)9A%%…t#É9sXa$D$띉@9s?$F{_‰V9s$ʋ$]_^Yh<QV0щމ‰`ʍD$ UÉD$ !}0D$+D$ÍT$ D$ }10^Yh oSQÍH9"t#%b u1XtxtB׊1`BCh SRɸZ[aObaaaaaaaahx yhi h_ SQR1Ҹ>軤% ?%>%~? ?>>- ?->-f?->5?5>5>5>5>5>%?%>%>%>=>=?=>>?>>?>d?> >? >> ?>> -? ?-#?%?ZY[h , SQÉHLb%buF0Y[Ê%bt%bt&%b tA!G1Y[Ê%b t%b tʼn1D17M1&to%b%bX8ߊ%b%bt %b%bt %bt%be%bt 1Ҋ" 1Ҋ"t O%bt2%b%b1Ҋ#1Ҋ#h1Ҋ,#RA:dWrBTar'5rrwÀd\븀X\t먀:r*eDrfR뇀Ay p.\h SR@u[Z[É؊btbt@Cbt@؊8t1҈@u럍X\rv{rv}tZ[ÀtZ[h8SQVWljѾ ЉFB9ˋxt݊%t͉?C??@vȔu6?Rjdh%h&D$P ?D ?sĄ_^Y[hmSQVֻC9}߉xt%+t܉??B??@xh -t/u1h(ph SR 1ۺPyZ[hdhhSR??U'ǧ uG?ShW'hZ'hh}'h' Z[Z[hPh;h&dhdh SRy=gء |y˞1BZ[hR??1Zhe,hPh;vh&ahLh7h SR??11d dZ[hdhdhhrgh]hHh3nhh SR 1ۺ@~7h2gh SR~ 1ۺ}h SR?@`3Z[hSQVWׅu t1_^Y[ÉB%bu11ˉB:t17ƅt9~)˅t_^Y[h %h SRb@tu~‰t +~~Z[hSQVW։Džt*t1u_^Y[À9ttA1_^Y[hlRI…u~ZhXMSQVWU<Ɖ׽^& u0ɀ"u4މ$,<"YQ<\u v"t8uFFCՉ$,.t) t$\u ~"uF6?t*uFCщu$($($,$8EF$0$ PM$$$8$0 $0w@u捔$ R$11$ P$$$8D$`u@*ÉEh$0$87<]_^Y[hXR??ZfPÇD$ D$9s );vff;PtøR*QW؎)I1I_YSQVWUӃzuc 1tֈS s 11tA8uƅtC $ĈC c u 7ƅu)]_^Y[SQVWUB uJ yzu| u3B @u'J  2Fz2Gjz9u uJ @rFz ru;ru u1]_^Y[Åyn1SR\$D$T$$Z[Rx|ZR|yQV t BK@utK@^YQP tJHuXYSQRUË 9w9r IQuځ؉; t-Q9v0%?]ZY[SQRV@ u-Z Z ZKZ} Q C%B @u8 u rNr} & C%uJ J ^ZY[SQR%u ZY[ËZ KAZ A%ZY[SQRVxu?a tt Q Y A$Y $u!YuYt*AA tYAAquI A A A A^ZY[SQRVWUƅtv1~01ۈ$$f s ;v uF 81ډ eÅuHQ9vIuȀ<$u ut0Ɉ $r$i0؈-?]_^ZY[SQ1Ҋ9t Š @u1Y[SQRVWUŋ5t?t;؎)I1Iȉ}u <9=uG u1]_^ZY[SQӋJ@Y[SQRD$T$Px$D$T$ZY[Ãa|z ÃA|Z SQR11$0شPf&\ f؎J!Xff,8f=CBu4֋V)ӴJ!ffF)fp,fٰ Yfxf!<t4fftfff1f tff& ,ff$f,fҁ%Ӂf&P{5Ձf فVf>?)&O wffڎێtA(^OWR&fف) =no87u~=uE>u>uFF>u^f-Ё=>?>l)=ҁu v)р>?$𣨁5#)##RPR{f=!fZ<u)I@!XP$XL!f.P{QVWlj։؎WȀ__^YSQVWlj։ðD!ʉ$}1f$#$$0fF %fFFfFfFF ~*$tfN$tN$t"FFF^ F" F^ GW!fffʉ$bD$$/$FF"F$v F΀v 1_^Y[SQ É$1"c%u AC1u։ȃ Y[VWUʼn׉މL$t%btBD$ <+t<-uBu(:0uB<$u$\^t/1y4$8t:6uފt1ЉAZF$:uޅt7t.t.F?tG>_^SQÉь&u ؉Y[QR0zu&b t Bt BBBBu BJ BB͈J j J BBZYSQRV` 1t]y A y y~YQAcu Q ƈQ ^;AtY ga a ?yt9Q q Q u(At»ڋAWu Y ƈY AA^ZY[ø RZø RZ݁øSQR?1BH t C@ tuZY[SÉЋC[QVWUƋh ` Nσ0f u'N 1t̀n F C…tf f ^ VF t~ Љ~ ]_^YVWQ tEr@$ )!;Cw+s {9ws()9v)!׍S v9u{)K)‰{CN rlj{ ^_O{ˉ{Kϋv~ws ƃY_^VWQ tƃt$u;{ us S_{_[K|{ 9s;wwn{(9rg9r^{ ;s$wV)ҋCKAI9s%S)9w)>t.tHu{ 9s{(9r9r 9rW9u;s u{ CV~w׉wK;s s;KvK;KvKY_^R1ҡāāu !%ZQىô?!ȉ…} %7YSR9u R9u SP@tBtPZ[SQRVWB$,9u8ZЋJʋKuf;ƴ1‰I!벋RSQVWUÉ9B,90Bx3 )ځ0҉Ӊf8fp1@tfff8fpt_X @؉OC)ƃ r$(${CG{ R71]_^Y[SR¡1 9r Ë@uZBtStPZ ,BBBBZZ,ZZ[SRt=R$ӊ%ҁrw=ԁu 1@;uZ[1Z[SQRVWP$ $ô1@tfff8fpt$P@|f?t ?<$w\?H!ȉ…|B$H!ȉƉÉI!|1fЃ$p1_^ZY[SQRVWP=u1=ttЀ=ҁu$Ʌt"$$H!!؋ $‰ $t$4$9w$8rË$ zBGCzHSQRVUP=ҁu =Ӂt =ҁ u $( =u1=tҁrw=ԁu 1@$ 9stÃw9v)B$9w$jt9w9rRut&K9u4$4$2,$ (<$8/$؉Ë$$ BCBn]^ZY[SRVËu1^Z[À=ҁu =Ӂt =ҁ u)‰<;rʋ59s;r0҉%^Z[1VWULމL$D0ۉD$(\$H\$<1ۉ׉\$8Y\$(LNJGD$=/ uD$,HD$,|1ҍD$(T$>T$DL$?t1҈D$(AT$DD$4HL$4tD$(0T$DD$<u$|$> tD$,HD$,|1ҍD$(T$>T$Dt$=stSuGD$< t!D$0HL$0tP1ҍD$(&T$DߋD$0PT$0t/1ҍD$(&T$DCD$0HL$0t1ҍD$(&T$DCD$<;|$,0D$,PT$,D$( T$DދD$8L]_^QVWCC C€0r$9wkK 1Ҋ0@K0r.9v'8*u"RS}׊s߀{s@C8.uG@C8*uRS}C@0r9wkK 1Ҋ0@KPNrvVlr v"wt_^YÀht"_^YÀFrCv0Lt!_^YÊS @S_^YÊKЈK_^YÀK@_^YÀKk@Јk_^YSQB-uJB#uJ7+ujjZ uzuJ0uZ@Y[QVW։߉1Ɖ& Bt9t@_^YQVWщމ1f&;ft9t@QVWUՉ$D؎)I1I$ΉH)(JN H K9u(|H0J,$E]_^YQVWމ$} ڍH-$~uF 1fD$ˊ!Qt~t,.11fT$<$k $T$0@A;F|D$tP9u2K1A0u.u0H90uA0AI9.uI<9tĈ!0밃_^YVWUljމ $؉\$FF f t kt h **mf~tF F uFD$(%$T$,$Љ=!ȉD$|1f|$t$(mthu]D$)t>!ȸ3@t3T$1ɴ@!ȉD$}>!1fD$D$( tf|$u׍D$0@u31ɨu!ȉD$|$l$,=!ȉD$h1f|$$<‰ t $$<$u<$u<$uD$(tʀЊ\$) @tt =mu‰ _^ZY[SQRV! @Éi t;D!ʉ$} 1f$$ D!ʉ$|1^ZY[SQRVW5?tNy @?fId A u ƅtQ%lrظ"@ƅt(H1 y ?N5? 1_^ZY[SQRú?t%H9tI K ??ZY[R?tЋ?ZSQVWb ;BZ )9|z4)lj21z_^Y[ËBB_^Y[QVW@ t[A t& t/u} _^YÃu+qAAa A_^YÃr v t^밅t'몉Љʋy6tjA)uY_^YËAt Q))ljʉt7Adu(_^YËAQ AQ A<t1_^YSQR@ u"B tZ Z uـJ ZY[RU 9s)ĉ1У ??gt]ZVWSR>N>f9s>t 8FwF9tC tRZZ[_^VWSֈ>f>l9s>t :FwF9t8w C tRZ[_^Åu1ÅuSRˆ1s8=ہrPu"r rv1҈ڋ %}Z[SQR;r1ZY[Ã1áT؊H@ù@h t TL TZY[S@Ӊ¡T[S$Á P\$ÃD$ Ё% KD$Љ\$%҉D$$T$ $[SQRVW1ƃt1lj1ۉ_^ZY[SQVƉѻ 1\1c4A4u^Y[ø?ø?Å|~KbË\áSQR‹@ÃtJtB tZY[É)ZY[QW؉˴B!f6f6Wȅ}%$_YSR‰ô>!ȅ|1U1Z[øfZ[@$SQVWƉ׀d$ډ1fЉ…VWU P׍C$9s s WT$9\$)Ӊ+u 6CD$CډD$ f;$u5 9w9r vVuV 9uBF ;)r )Ѓ s4D$ T$PЋT$ PD$(FH0҉F?9r@ӉD$ CD$CD$ XD$XT$:10:%?j)X)ƒ rOËL$\$ڋ$f9u5 9w9r vNuFD$1]_^ÃtT=ҁu =Ӂt =ҁ u1t,|$u$tL$1_^Y[À=tRPWVIDEO1SQR%%dCÅuÅu\bT?K?Q u?ZY[1 SQRV)оd1ơ?%@@ @u 9r=s1gCȅu׉^ZY[QVWUƉ$t-1ҴB!fff‰ׅ} 1f0$@!ȉƉlj…}1f9t Ѓ]_^YR¡ZSQRVW=ҁu =Ӂt5ҁ n~Xҁf<u$ô1@tfff8fp˸H!!؅uB #rw 1@_^ZY[SQRVWUP;rW=ҁu`,$u1یfô! Dž}ljJ!ȅ|؎J!ȅ}CD?$ uҁu :Ӂu؎뱋$]8SQRVW=%ف10Ҍ=Ձ&:t&0X8tA)u‰ÅntT11Ɏ&8t&@CuFʉ1]_^ZY[0123456789abcdefghijklmnopqrstuvwxyzQVWU(Չ߉0ҍL$$\$$|$$13.D$$AuIFu(]_^YQу u }-BYRbQZ0123456789abcdefghijklmnopqrstuvwxyzQVU(R݉0ҍL$T$\$(l$(13T$(.1AuIFu$,]^YQу u }-BYSQRðD!€%ZY[PQYXSR1Z[É+SQRVWUž U@cuׁ~} E¹ ƅ}N |׍ltcNЍ{} OtOU)U‰)Ћuƅ} OƀQ1c] օ}t} ~+5} OƀQcuQ}#!))]_^ZY[R´A!ȅ} %tZ1Z t,8t @IuQYtIt pItPÐ tgt@IuQt:It)PIPP t8P PPIPP@ uݍ@@PPP @Yt@It @It@SQRu+¹dt ZY[ùډt1ZY[SQVWU$ËH ltC4EcEcC4EcEc)1<$|$|$L$ CD$T$|$ 3l$S)C uHB)9~C H\$Ӊ)u@)@$]_^Y[QVW։ljډ19~_^YSQRVWU؂X1D$ t ؂ ؂AlikD-tcc cc)‰T$1ҋC T$C9~ QC)D$|$A )ЋQD$+SD$|$A H)ЋS $u%D$T$9r$9b\BD$T$)ЋT$@9G$9~;5SuAlbt c9~BJA9 u|$|$tȉut$ 1ۋF \$^9~1Q^)ڻi )ՋQF)‰A H1)Ћ^ ƒuD$9U9QGK)@9|9}>4^uAljt c9~CKi919uD$|$t ȉNj\$ t)ljy ]_^ZY[SQVUHr19|uHj9|u ;}]^Y[VWUlj։؁s~Q)1һQOQ)1҉ǻQ1Ӿ11҉AӾ<11҉An1Љ؉)ÅvB)Íl6m9rB)cYlQtc1‹V9r@AF)1CGY ȉQ]_^SQB 1ۋcY[R?Zøb^/SQ1Ҋ0r9wk 1ۊ@0Y[QVWUʼnT$8:uEUt,t-t+t 0r9vE݉)D$ ~D$ |$L$ ؎WȀ_L$ 1E-u+uŊE<0t<9wpT$1<$|$|$&Šŀ:uT$@Š(8u @ŋT$)ЋT$‰)Ћ$‰tى ]_^YSQVÉъ Ju;MuC1T$ ؉q ‰Åt D$ AED$ HA:.u1BT$ g‰ËD$ A :.uBT$ KËD$ AA1T$4$t$;/u6T$C‰À8:u!BT$‰À8:u BË$D$AD$A؃^Y[SQR1һŠ u%'[-$к' $)ˉ€,u @8,u ؂@ZY[??%s "%s", line %ld: %s. ?? ?? . ????%s %s Out of memory for pattern tables"#%'(),={}BIBCLEANINIBIBCLEANINIbibclean.inistdoutPATHBIBINPUTS@# line "" %ld input byte=%ld line=%ld column=%2ld output byte=%ld line=%ld column=%2ld File positions: input [] output [] Entry Value Current\%03oUnexpected paragraph break for field ``%f''Pushback buffer overflow: characters lostOut of string memory: FAILED%%%s open file [%s]%s %% %s%s "%s", line %ld: %s. %%UNKNOWNABBREVATCOMMACOMMENTENTRYEQUALSFIELDINCLUDEINLINEKEYLBRACELITERALNEWLINEPREAMBLERBRACESHARPSPACESTRINGVALUEchaptermonthnumberpagesvolumeyear??????????JrJr.SrSr.SJS.J.S. J.IVXUnexpected citation key ``%k''String length exceeds standard BibTeX limit for ``%f'' entrySuspicious year in ``%f = %v''Non-zero parenthesis level in ``%f = %v''Unexpected value in ``%f = %v''??????9ABCDEFGHIJKLMNOPQRSTUVWXYZ23456789ABCDEFGHIJKLMNOPQRSTUVWXYZ2345678??????????????????%%%s Out of memory for pattern name [%s] -- pattern ignored Out of memory for pattern tablesValue too long for field ``%f'' # @ begins line, but brace level is not zero after entry ``@%e{%k,''Expected @name{...} after entry ``@%e{%k,''IncludePreambleString## # # Non-zero brace level after @name{...} processed. Last key = ``%k''Expected closing brace or parenthesis in entry ``@%e{%k,''Non-zero brace level after @name{...} processed. Last entry = ``@%e{%k,''Expected comma after last field ``%f''DeathesisDEAthesisInbookInBookIncollectionInCollectionInproceedingsInProceedingsMastersthesisMastersThesisPhdthesisPhdThesisTechreportTechReportNon-alphabetic character begins an entry name@entry_name too longIncludePreambleStringExpected "=" after field ``%f''BIBCLEANEXTBIBCLEANEXT.iniansi-standard-numberANSI-standard-numbercodenCODENieee-standard-numberIEEE-standard-numberisbnISBNiso-standard-numberISO-standard-numberissnISSNlccnLCCNmrclassMRclassmrnumberMRnumberuriURIurlURLurnURNxxansi-standard-numberxxANSI-standard-numberxxcodenxxCODENxxieee-standard-numberxxIEEE-standard-numberxxisbnxxISBNxxiso-standard-numberxxISO-standard-numberxxissnxxISSNxxmrclassxxMRclassxxmrnumberxxMRnumberxxurixxURIxxurixxURIxxurlxxURLxxurnxxURNEntry field name too longNon-alphabetic character begins a field nameoptOPTstdin-stdinrb?? %s Ignoring open failure on file [%s] perror() says@ begins line, but brace level is not zero after entry ``@%e{%k,''Expected open brace or parenthesis. Last entry = ``@%e{%k,''Braced literal string too long for entry ``%e''rCitation key too long=: ??%s Bad line [%s] in initialization file [%s] Non-zero brace level at end-of-fileExpected open brace or parenthesis. Last entry = ``@%e{%k,''"comment"@Comment{end"Comment"CommentBeginStringExpected Scribe open delimiter, one of { [ ( < ' " ` for field ``%f''Expected Scribe separator "=", "/", or " " for field ``%f'' Out of memory for pattern table spaceBibTeX string too long for field ``%f''Unexpected quote usage in German-style braced stringEnd-of-file in braced stringBibTeX string too long for field ``%f''BibTeX string too long for field ``%f''BibTeX string too long for field ``%f''End-of-file in quoted stringExpected Scribe value string for field ``%f''Scribe string too long for field ``%f''Scribe number string too long for field ``%f''Expected BibTeX value string for field ``%f''??%s Bad line [%s] in initialization file [%s] },={authorchapterCODENISBNISSNmonthnumberpagesvolumeyearauthoreditormonthpagestitle""OPT"" file=[%s] field=[%-12s] existing patterns discarded file=[%s] field=[%-12s] pattern=[%s] file=[%s] field=[%-12s] pattern=[%s] message[%s] JanuaryjanFebruaryfebMarchmarAprilaprMaymayJunejunJulyjulAugustaugSeptembersepOctoberoctNovembernovDecemberdecJan.janFeb.febMar.marApr.aprJun.junJul.julAug.augSep.sepSept.sepOct.octNov.novDec.decJanjanFebfebMarmarApraprJunjunJuljulAugaugSepsepSeptsepOctoctNovnovDecdec\bf\em\it\rm\sf\sl\tt {}" # # " # """" # " and and and " ;,|\\ ;,|0-000-190-2000-6980-70000-84990-850000-899970-9000000-9499990-95000000-98012231-550001-869571-8698001-8956822-012-192-2002-6072-70002-83172-840012-894362-9000002-9400282-95000002-99000033-013-193-2013-6333-70013-82523-850013-895243-9000013-9290313-95000003-98029644-004-194-2504-6574-75004-84704-870004-898294-9000004-9499995-015-125-2005-6905-70005-83965-850015-899965-9001655-9008507-007-047-1007-3147-50007-56397-800007-810357-9000007-90000080-0080-0980-20080-23680-700080-715180-8500080-8552980-90007580-90108181-20081-64881-700081-726681-8500081-8569081-90000081-90021182-40082-59982-700082-766182-9000082-9176982-99000082-99251783-0083-1183-20083-23383-700083-708083-8500083-8554183-90000083-90048284-0084-0784-20084-69984-700084-842084-8500084-8960085-0085-1785-20085-34185-700085-726185-8500085-8545785-90000085-90005186-0386-2786-30186-45586-700186-786186-8000186-8204586-90094186-90128987-0087-2087-41187-61187-700087-779987-8500187-8979687-98000087-99720288-0088-1988-20088-46188-700088-840288-8178588-8606589-089-090-0090-1890-20090-44990-500090-699990-7000090-7431990-80000090-80086891-091-191-2091-4891-50091-63291-700091-799891-8500291-8835691-97000091-99208392-092-592-6192-7792-80092-89192-900192-911793-093-0950-00950-47950-500950-795950-9000950-9899950-99000950-99949951-0951-1951-20951-54951-550951-889951-8900951-9498951-95000951-96448952-90952-90952-6666952-6666952-9500952-9714954-0954-0955-20955-28955-550955-616955-9000955-9151955-95000955-95444956-10956-19956-200956-266956-7000956-7205957-05957-43957-500957-685957-8500957-9699958-02958-32958-600958-656958-9000958-9285958-95001958-95343959-00959-13959-200959-216959-7000959-7033960-00960-12960-200960-433960-7000960-8499960-85000960-85203962-00962-19962-201962-474962-7001962-7646963-00963-18963-200963-892963-700963-8481963-85000963-85084965-01965-19965-207965-442967-60967-89967-900967-989967-9900967-9989967-99901967-99999968-10968-39968-400968-899968-6000968-7275969-0969-1969-26969-39969-400969-473969-8000969-8159970-05970-10970-604970-619970-91000970-91074971-06971-36971-500971-631971-8500971-8819971-91000971-91273972-0972-1972-20972-50972-550972-722972-8004972-9499972-95000972-97520973-21973-49973-550973-682973-9000973-9134973-95000973-95521974-00974-10974-200974-685974-7000974-8499974-85000974-88000975-09975-19975-345975-554975-7402975-7797975-95384975-96606976-40976-42976-600976-636976-8000976-8105977-01977-17977-200977-457977-5000977-5235978-000978-199978-2000978-2887978-30000978-31118979-400979-557979-8000979-8322980-00980-07980-200980-316980-6001980-6303981-00981-03981-200981-215981-3000981-3099982-01982-03982-100982-500983-60983-73983-800983-899983-9000983-9750983-99382983-99747984-01984-30984-400984-556984-8005984-8085987-0987-09963-09963-19963-309963-449963-5509963-5999963-75009963-78469964-09964-69964-709964-949964-9509964-9909966-209966-499966-8309966-8829966-98409966-98749968-97029968-97039971-09971-49971-609971-899971-9009971-9899971-99009971-99249973-109973-189973-7009973-9259973-97009973-99189974-09974-09974-309974-369974-5509974-5809974-75009974-75059976-19976-59976-609976-849976-9009976-9889976-99909976-99929977-009977-899977-9009977-9899977-99009977-99999978-579978-999978-9519978-9719978-99049978-99109979-19979-49979-509979-579979-8009979-8279979-90009979-90679980-09980-19980-549980-849980-9009980-9159981-09981-09982-009982-309982-8009982-8159982-99009982-99009983-859983-879983-99009983-99019987-309987-309987-5509987-5839987-88009987-88239988-09988-099903-099903-099904-099904-499904-6099904-6599904-90099904-91799908-1199908-2999908-90099908-90099911-0099911-3299911-60099911-86099912-099912-599912-6099912-7999912-90099912-90099913-099913-099914-099914-499914-5099914-5899914-90099914-92799915-099915-399915-5099915-7899915-80099915-83099916-199916-199916-3099916-3599916-70099916-70499920-099920-299920-5099920-5599920-90099920-904More? f)orwd b)ackwd e)nd q)uit r)efresh t)op \/)search   PgUp PgDn Home End More? f)orwd b)ackwd e)nd q)uit r)efresh t)op \/)search   PgUp PgDn Home End Search backward: Search forward: Search backward: !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~?align-equalsauthorcheck-valuesdelete-empty-valueserror-logfile-positionfix-font-changesfix-initialsfix-namesGerman-stylehelpinit-filekeep-linebreakskeep-parbreakskeep-preamble-spaceskeep-spaceskeep-string-spacesmax-widthno-align-equalsno-check-valuesno-delete-empty-valuesno-file-positionno-fix-font-changesno-fix-initialsno-fix-namesno-German-styleno-keep-linebreaksno-keep-parbreaksno-keep-spacesno-parbreaksno-prettyprintno-print-patternsno-read-init-filesno-remove-OPT-prefixesno-scribeno-trace-file-openingno-warningsparbreaksprettyprintprint-patternsread-init-filesremove-OPT-prefixesscribetrace-file-openingversionwarningsUnrecognized option switch: %s%.*sno-print-patternsno-read-init-filesno-trace-file-openingprint-patternsread-init-filestrace-file-openingAuthor: Nelson H. F. Beebe Center for Scientific Computing Department of Mathematics University of Utah Salt Lake City, UT 84112 USA Tel: +1 801 581 5254 FAX: +1 801 581 4801 Email: w%%%s cannot open error log file [%s] -- using stderr instead perror() says Usage: [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]align-equals ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile Command-line switches may be abbreviated to a unique leading prefix, and letter case is not significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag to no. For such options, the last setting determines the flag value used. This is significant when options are also specified in initialization files (see the INITIALIZATION FILES manual section). -author Display an author credit on the standard error unit, stderr. Sometimes an executable program is separated from its documentation and source code; this option provides a way to recover from that. -error-log filename Redirect stderr to the indicated file, which will then contain all of the error and warning messages. This option is provided for those systems that have difficulty redirecting stderr. -help or -? Display a help message on stderr, giving a usage description, similar to this section of the manual pages. -init-file filename Provide an explicit value pattern initialization file. It will be processed after any system-wide and job-wide initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANINI, but defaults to .bibcleanrc on UNIX, and to bibclean.ini elsewhere. For further details, see the INITIALIZATION FILES manual section. -max-width nnn bibclean normally limits output line widths to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special- purpose applications may require different maximum line widths, so this option provides that capability. The number following the option name can be specified in decimal, octal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is interpreted to mean unlimited, so -max-width 0 can be used to ensure that each field/value pair appears on a single line. When -no-prettyprint requests bibclean to act as a lexical analyzer, the default line width is unlimited, unless overridden by this option. When bibclean is prettyprinting, line wrapping will be done only at a space. Consequently, a long non-blank character sequence may result in the output exceeding the requested line width. When bibclean is lexing, line wrapping is done by inserting a backslash-newline pair when the specified maximum is reached, so no line length will ever exceed the maximum. -[no-]align-equals With the positive form, align the equals sign in key/value assignments at the same column, separated by a single space from the value string. Otherwise, the equals sign follows the key, separated by a single space. Default: no. -[no-]check-values With the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g. ``year = "192"'' instead of ``year = "1992"''), and issue warnings when unexpected patterns are found. This checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can disable it with the negative form of this option. Default: yes. -[no-]delete-empty-values With the positive form, remove all field/value pairs for which the value is an empty string. This is helpful in cleaning up bibliographies generated from text editor templates. Compare this option with -[no-]remove-OPT- prefixes described below. Default: no. -[no-]file-position With the positive form, give detailed file position information in warning and error messages. Default: no. -[no-]fix-font-changes With the positive form, supply an additional brace level around font changes in titles to protect against downcasing by some BibTeX styles. Font changes that already have more than one level of braces are not modified. For example, if a title contains the Latin phrase {\em Dictyostelium Discoideum} or {\em {D}ictyostelium {D}iscoideum}, then downcasing will incorrectly convert the phrase to lower-case letters. Most BibTeX users are surprised that bracing the initial letters does not prevent the downcase action. The correct coding is {{\em Dictyostelium Discoideum}}. However, there are also legitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, bibclean will normally not supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this option to supply them. If you think that you need this option, it is strongly recommended that you apply bibclean to your bibliography file with and without -fix-font-changes, then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You will have to decide which of the two output files is the better choice, then repair the incorrect title bracing by hand. Since font changes in titles are uncommon, except for cases of the type which this option is designed to correct, it should do more good than harm. Default: no. -[no-]fix-initials With the positive form, insert a space after a period following author initials. Default: yes. -[no-]fix-names With the positive form, reorder author and editor name lists to remove commas at brace level zero, placing first names or initials before last names. Default: yes. -[no-]German-style With the positive form, interpret quote characters ["] inside braced value strings at brace level 1 according to the conventions of the TeX style file german.sty, which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, invisible hyphens, raised/lowered quotes, French guillemets, and discretionary hyphens. Recognized character combinations will be braced to prevent BibTeX from interpreting the quote as a string delimiter. Quoted strings receive no special handling from this option, and since German nouns in titles must anyway be protected from the downcasing operation of most BibTeX bibliography styles, German value strings that use the overloaded quote character can always be entered in the form "{...}", without the need to specify this option at all. Default: no. -[no-]keep-linebreaks Normally, line breaks inside value strings are collapsed into a single space, so that long value strings can later be broken to provide lines of reasonable length. With the positive form, linebreaks are preserved in value strings. If -max-width is set to zero, this preserves the original line breaks. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-parbreaks With the positive form, preserve paragraph breaks (either formfeeds, or lines containing only spaces) in value strings. Normally, paragraph breaks are collapsed into a single space. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-preamble-spaces With the positive form, preserve all whitespace in @Preamble{...} entries. Default: no. -[no-]keep-spaces With the positive form, preserve all spaces in value strings. Normally, multiple spaces are collapsed into a single space. This option can be used together with - keep-linebreaks, -keep-parbreaks, and -max-width 0 to preserve the form of value strings while still providing syntax and value checking. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-string-spaces With the positive form, preserve all whitespace in @String{...} entries. Default: no. -[no-]parbreaks With the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field/value pairs. This may be useful to quickly trap runaway strings arising from mismatched delimiters. Default: yes. -[no-]prettyprint Normally, bibclean functions as a prettyprinter. However, with the negative form of this option, it acts as a lexical analyzer instead, producing a stream of lexical tokens. See the LEXICAL ANALYSIS manual section for further details. Default: yes. -[no-]print-patterns With the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used. When bibclean is compiled with native pattern-matching code (the default), these patterns are the ones that will be used in checking value strings for valid syntax, and all of them are specified in initialization files, rather than hard-coded into the program. For further details, see the INITIALIZATION FILES manual section. Default: no. -[no-]read-init-files With the negative form, suppress loading of system-, user-, and file-specific initialization files. Initializations will come only from those files explicitly given by -init-file filename options. Default: yes. -[no-]remove-OPT-prefixes With the positive form, remove the ``OPT'' prefix from each field name where the corresponding value is not an empty string. The prefix ``OPT'' must be entirely in upper-case to be recognized. This option is for bibliographies generated with the help of the GNU Emacs BibTeX editing support, which generates templates with optional fields identified by the ``OPT'' prefix. Although the function M-x bibtex-remove-OPT normally bound to the keystrokes C-c C-o does the job, users often forget, with the result that BibTeX does not recognize the field name, and ignores the value string. Compare this option with -[no-]delete-empty-values described above. Default: no. -[no-]scribe With the positive form, accept input syntax conforming to the Scribe document system. The output will be converted to conform to BibTeX syntax. See the SCRIBE BIBLIOGRAPHY FORMAT manual section for further details. Default: no. -[no-]trace-file-opening With the positive form, record in the error log file the names of all files which bibclean attempts to open. Use this option to identify where initialization files are located. Default: no. -[no-]warnings With the positive form, allow all warning messages. The negative form is not recommended since it may mask problems that should be repaired. Default: yes. -version Display the program version number on stderr. This will also include an indication of who compiled the program, the host name on which it was compiled, the time of compilation, and the type of string-value matching code selected, when that information is available to the compiler. Usage: [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]align-equals ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile bibclean Version 2.11.3 [01-May-1996] Compiled by <beebe@plot79.math.utah.edu> on May 02 1996 08:10:44 with native pattern matching no-ivxlcdm: Not enough memory *.*Error 0No such file or directoryArgument list too bigExec format errorBad file numberNot enough memoryPermission deniedFile existsCross-device linkInvalid argumentFile table overflowToo many open filesNo space left on deviceArgument too largeResult too largeResource deadlock would occurunknown errorNot enough memory to allocate file structures Floating-point support not loaded TZ 8888888888 XXXXXXHHHHHHHHHHHHHHHHHHHH  @;Zx0Nm<[y1On$Id: bibclean.c,v 1.10 1996/04/26 01:15:13 beebe Exp beebe $ !'.4<CGNV^gntzHInvalid checksum for CODEN %c%c%c%c%c%c in ``%%f = %%v''Invalid checksum for ISBN %s in ``%%f = %%v''Invalid checksum for ISSN %c%c%c%c-%c%c%c%c in ``%%f = %%v''Incomplete CODEN %c%c%c%c%c should be %c%c%c%c%c%c in ``%%f = %%v'' $Id: chek.c,v 1.2 1996/04/26 01:17:05 beebe Exp beebe $'.5BO]kyJ_tz "&*AX`h    & , 2 Expected Scribe close delimiter `%c' [8#%03o], but found `%c' [8#%03o] instead for field ``%%f'''r.6<TAFLMSYN`se,Tl,TsSybU*W$Id: do.c,v 1.5 1996/04/26 01:35:56 beebe Exp beebe $&*37=AGKOSX\aelpz~ !%)-159=AEIMQVZ^bfjn}])>'"`{[(<'"`$Id: fix.c,v 1.4 1996/04/26 01:36:27 beebe Exp beebe $$Id: fndfil.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $$.6>GPUZ`fmt| !(08AJOTZ`gnv~ &-4<DMV`jqx  (1:@FMT\dmv  *06=DLT]fkpv|$*07>FNSX_fnv $*18@HQZdnu| (09BIPX`ir|%-5>GQ[biqy )3=CIPW_gpy #+3<EOY`gow'/8AHOW_hqx %-6?ISZaiqz!*3=GNU]enw '1;BIQYbku   ' 0 9 C M T [ c k s { !!!#!+!3!;!C!L!U!_!i!q!y!!!!!!!!!!!!!!!"$Id: isbn.c,v 1.2 1995/10/07 15:50:07 beebe Exp $$Id: keybrd.c,v 1.3 1996/03/04 18:56:21 beebe Exp beebe $$Id: match.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $@#KmB#lO#4lV#Tlc#ilw#~l#l# m#!m#6m#m#Km#m#m#m#m$m$n&$%n0$l@$TlP$ilg$lx$ m$!m$6m$m$ m$ m$ m$[n$pn %n%n.%nE%nO%ne%oq%[n{%pn%n%n%n%n%n%n%o &n&n.&nD&nS&nc&nv&&&&&&'''6''''(F(~((()K)~)))*;*s*u***<+}++,E,,,,-M-}----.[.z.|... / /!/c///+0l000-1m11111:2{222?333384z44445A5C555 6+6-6j666777W77787898M8889R9T999:=:?:Z:::";c;;;;;0<2<J<<< =H=]=_===!>e>>>)?m???7@s@u@@@@AAABCBeBgBBB*C,C@CCCCC DPDDDDD,EoEEE0FuFFFF8G{GGGBHHHHHHH IRIIIIJ[JJJJJJJ.KnKKK4LULWLsLLLLL7M{MMMBNNNNN OKOzO|OOO POPPPPPQ_QQQRR*RkRRR$S&ShSSS5TxTTTTT"U\UUUUU VKVVVVV>WWWXHXXX Y7Y9YGYYYZZZ\ZvZZZ@[b[d[t[[[2\4\y\\\>]}]]]]]^5^m^^^_:_m___`*`b``````````````$Id: option.c,v 1.5 1996/04/26 01:16:37 beebe Exp beebe $` 2d$Id: romtol.c,v 1.1 1995/10/07 15:51:44 beebe Exp beebe $$Id: strist.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $Stack Overflow! a?ttt z  a$a>aTafavaaaaaaaa bb-b PFESTEDT' s r ٦ Qbibclean-3.07/ibmpc/dos/wat10/wpp386/dos4gw.exe0000755000156700015670000076113405572657400017731 0ustar beebebeebeMZzN !@r# ( HeLjr; M    : a     o   <{ $ SX K E 8 aeY s#|###(,,:L89.D)K>]W_NH @&     d|   p@DOS/4G Copyright (C) Rational Systems, Inc. 1987 - 1993g8/ &( " >pp PDOS16M.386P ; ; 0123456789ABCDEF$ error: ''= 4.43^>p U ju?^ + +w1Ћ A+ F+J !s]ˉZ QY FŽVWNNVF&( > u+  &9 u& 3ێÿ('9u9u&9W"u&G"4.v2&9Wu&GP&_^Px (08@HP`pxError [35]: General Protection FaultInvalid OpcodePage FaultUnexpected Interrupt in at : mapcodessdsesaxbxcxdxspbpsidi   8 N T hX* h  hhpages allocpages freeDOS/16MDOS/16M Protected Mode Run-Time Version RUN.COMLOADER3.EXE.EXPC\VM.EXP\VMD.EXPDOS16M=SWMODE=INBOARDFASTVCPIDPMIPS2PS/2NOVMA20TSTKDOS16M=<@0X\VM.\VMD.QEXTXXX0VDISKMICROSOFT EMM CTRLZCOMPAQERR16M=.ETXRMSGESSAGEONTINUENDMSG### WICBoPWX_involuntary switch to real modenot enough extended memorynot a DOS/16M executableno DOS memory for transparent segmentcannot make transparent segmenttoo many transparent segmentsnot enough memory to load programno relocation segmentcannot open file cannot allocate tstack cannot allocate memory for GDT no passup stack selectors -- GDT too small no control program selectors -- GDT too small cannot allocate transfer bufferpremature EOFprotected mode available only with 386 or 486cannot run under OS/2system software does not follow VCPI or DPMI specificationsyou must specify an extended memory range (SET DOS16M= )computer must be AT- or PS/2- compatibleunsupported DOS16M switchmode choicerequires DOS 3.0 or latercannot free memoryno memory for VCPI page tableVCPI page table address incorrectcannot initialize VCPI8042 timeoutextended memory is configured but it cannot be allocatedmemory error, avail loopmemory error, out of rangeprogram must be built -AUTO for DPMIprotected mode already in use in this DPMI virtual machine DPMI host error (possibly insufficient memory)!DPMI host error (need 64K XMS)"DPMI host error (cannot lock stack)$The DOS16M.386 virtual device driver was never loaded%Unable to reserve selectors for DOS16M.386 Windows driver&Cannot use extended memory: HIMEM.SYS not version 2'An obsolete version of DOS16M.386 was loaded(not enough available extended memory (XMIN)Ffы.6&PQRDYRPY>.t$)>t3*7>.t r #]  uah!Y3ȋVX$u u&}t&}t&]&U> u > t0>. u+4Gt޿  | >.~Gt p2q &,6 Y3ێGt ޿&> u&9 u& & >/rf3ۺ3LJLJpA3ۉ(  HD>. u o,Gt(p| Q t2LJV>>t( t7., .1 . t< t z & ~.> F.$v.> fff DDa..& fϺ ` Һ ڎ¸h @& a` ؎ @6R86TR؉|T2tָhaÐ.XP54  >t 41&.&WVg3ێۻåDL_3ێû۾Vg8 = 73&& 7 3& & t' @ 3&` &b @$>/rR@ZPS>/r$`|&z8&`C &b  ێ|&za[XÑ3& & @R$ ZPS>/r#`|&z8& &%$ ێ|&za[XïR3ɺhj$hj$hŲj$hŲj$hj$hj$hŲj$hj$hj @ZÔ PS`R|&z PeP˺hj$hj$hŲj$hŲj$̲hj$hj$hŲj$hj$hj_栻ێZa[X×R}Z3&g &i& PS`|&z8 &i&g& 83.ێ|&z3&i i a[Xú$? ಇIJ^ c R ?Z3& &"#"#otE$?3&g &iPSf`u f|&zj8&g &iDDE ؎|&zaufE_$?>5u @X[XPS!`3C 3ɰ j8@*@ t 6"6 !C" R@i&gj 4C3@)  @3؏ " <t$ t39 }5uV[X >5u - rpqÛ >/rf d ` b $ >5u  p qj & PS& PS>/r7PP`6 h{ 78؉&x .n7R>5ta[XPS`|&z8 &i&gn  t dePS>/sS t7[`PP8&5 &1`$`|&z ێ|&za`21a[XPS`8& &|&z?؎|&z ?a[XPS!`6 h? +& !8&i&&g>udPS!`|&z8 &i&g >uȰd؎|&z< pa!>5t[Xa!>5u >?t[XQ~Y؎|&z paq>5u$$[Xø؎Ћ& *3& F&Pj䒀$ TdM`Fðd?ttôtu3V IW0_^Q3duYtja\XTPLHD@@8 8 4 0 , (  X` 6 FQjjP ،|&z9|tώЋ& `6|6 6zF~fvfff ؉. &P53^ u^.FEh&Yh&dYhuYUVWv ƌڌ;u"++~+~)vÎӋ_^]33wW_ tUٸ؋^uSu Fj ]3UV3uFF^ F ]ːX[SPUVWv  F Pj  H..  WNO$PFVAFF.r. vka.6 .6 .6 . .& . .& . . . . `. .r윃"vvj j6 6F PvvTX~ _^]. ÐO슇3ɍWw tj&O &NFaRfSUڋ. HZ|p URVvW&> &U.&UQYf ~.=W.>ҁu;HZ$t(#t&_^ZŎ] !jppph%[V7.6w.<$w vFu>t6F vFN^P.XG_[].6dgF&G Ѝg !G.dG.!.&wOWo w G_[!.f..&d`..f pffjh p![!YY-PY pOK G C ? ; 73/+'#  !"#$%&'()*+,-.à . t> uR -Z<t'. u> uپ[S; u<tSP; t&PPRZXZ<t2R!&wހ>ZtC9tIC!۸[uu3ێÊ4&;Wu%>4.t6&&_Ñ;Gu;;_u6G;t_.G.G u t -@9t6 Kۣá ËrK=rC:3ˀu03Ȁu#&PЋ&j 6 &j j &PË܋GPPoXZ@!Ë6  6w Y D16/=t=t=t.."uP.XPRVW.<tW<t&> t  _^ZXu>TV t &EP&E PX^ZXuDžuÉ*    > u!%&  &PP& * *, C!rt t$ƌ ,   * S x&>>t`b&dfh&j = I  `.r/5!../%!a`.. t6j&+ru &&t \3..at  \u0$> u &PPL!'u& >mr[8.8,-\ f&|u& u & PSQ & f&| fr& Y[XË f&|frЋeЃhЏ  f 3p?k ..`+ P[U+Pv[[]UP[ P[v[~t P}[vv[ Pn[>u6 []UV~tv=[ P5[L^ ^+ވNyFFP[~t P[^]UvP* [[]U츐PL [;uv[]UF-a=wF- ]ËF]U P[^F^F u^]UvP[[P [F^\t.uNy]U^F^F8t+ ^?u]j j j jV +ұ ڣЋVvv 6x VvF` -+F֋ȋڣ Ћ + ` -+ЃvF +ұm ڣ  t +FVȋڣ    ; V2 F4 p >/|^~uËFFFFIFPFPPe F%^&GtB&G*F&Gu t.&7[jP^&G&W$*n*+ѱ RPeWV+` b  u 8 V^>u4jP[V~^P> u Vv^xFFP8 $Fv j[^~&t vv[[n~sFPvv[[Fvv[[Fp> uGu vv[[K>u-  t$> }   Pb[ ujz[~ | ^_U| 9Fv*+jhF$+  RPU| 9Fv+jhF$+  RPF FF FFFFV FF*FjFPF+  RP4UhvjvvVV~u+^j0jFPE FFV+ұ^ FFVډF^FFFLjFFFF‰FFFVFЉFFFPNQQjFV‹؋N&)O&wv&)OFFFFPFPPj\F^&+GF)  ^KKx tS   [LJ 3p"$! n?/?y9[. CC hJ>. WV6> u\s葃 ++ 3؎SPY̋ +؉ZJ!^_X\]Ë I&A++뾸 - hHP0   RP2 4 jS }yuqmiea ] Y U Q MI.NXfa.h6& f`F8..]Lp...&h6& f`.6.S&.7uNp.>.6DDfa..&˜.h6& `9a؎ҋ.6VW+Tp X[YPjQS6: hTWV  u !u GP[ }L P[  uY u r P&u62 PJ[[60 +w P6[[ P}[6Ɛ <:t <\tNsDPZ[ PR[ w"+P[[ P;[ w+P[[ w"[ t W P[[N w P[[ w P[[ w P[[ w P[[  w Pl[[ w P\[[ w PL[[ w P<[[ w P,[[ w P[[ w P [[ w P[[t#P[^_UWV>t'&wN|F&9uƱ&+^_]UWVF~}F^Ffh>!tRƆh[iF ff uFfڊ Off uFD]FD FD 9>"v!;Fu WV[[G}uGGf }ك~tPhPl[[+PhPl[[^_]ÿׁ+ƱH6 6& F6+۴J!6 +30! D!r €t @Kyw36 6 6 UFLFFFPP[[]Uv[]Uv[]UviA[F@tF+]+Ï 0! <t) &, 33uGG> ыѿ < t< t< to tkGN< t< t< t\ tX<"t$<\tB3A<\t<"tӋѨuN< t+ t'<"t<\tB3A<\t<"tۋѨu> GB+ģ 6?CC6 u6 3< t< t< t| tx6?CCN< t< t< tb t^<"t'<\t3A<\t<"t\Ѱ\s"N< t. t*<"t<\t3A<\t<"t\ٰ\s"3& U׋ދv؎3ы~ǨtI]U׌؎~3I]UVW F͋FF<%t <&tF FFDFDVFF~]MUuu ~ ]_U^]W~ E~]MUuE r3 u _^]UVW~]MUu} !W~]MUuE r3u _^]UVW~]MUuu ~]_!W׎ߋ~E~]MUuE r3wu _^]U׌؎~ߋNFtI]22r3]sPX2]s]2â u"> r <"s < r<v ט ÊT(<(.f &d &` .b 385u>u SӀj&&[PS >u p2q؎.b &` fPQ  f   @#Y"(..f &d  fX>5u%>u(3V&gX&iÀ>.t [X2>.t>.t>.t->.t3[XÎð ϰR@ZQYR$Z맰fP "fX[XÎ&` .b Mـ> 4fP f " S Gû [fXF*L*X.f &d fl f6h ffN R V X  &x & f64 p ^ 3 g G ufl f6h &` .b f6 8f> fgfdgfdfPS fPfRfQfV@#p ^ f fԌ.b &` f3PPfQfQPSfRfPP6 Ph* 8ظ ff&Z &.f &&d f^fYfZfX[X.* tEg]j8f6f> tf?3ɎQ Iu%fZ F&g! f. fIyYøUf`6 uGtf ff>ffVf;wfff#ff#N ffffN ff;s&gfu# ; uEGt[ +ÉFt "fa]f`3ɆIGt&fGf޿ }(hf6fffPe fa33u+>. u$fZ fif+ff ffPffjh~,Wp`F,@<w y3j u'ы܁. & QSx? [aDDffP j f0 fX3߿.>hf`.u!> sŎ3gfa+Pa[øP8[>&t P@[ P8[u60-[j 7P8[ø+U 08/P P,P6 9^7k[NPPr3[[ uVPPa3[[ u~^w3[bP[ FV‹&*N@FVNxF^&*PB[ uNxF^&*P'[ tF^&^F&F^&Ny% +gP^71[[ u*>/}P[%>/|P^7a;[[3]UFF FFPFPP2>juT> t > t)F,->. t GuF)tF_b>nt F9nvFnPvb[[]Uz ~ ' PP[]U~ t~ t ~ t~ u]+]U| 9FsvjjvFPV@thV[[ t %=$PV[[^^G+ұ FVF^t?MuFG+FFVFVF66a/[[vvn/[[;FuM^?MuFuGW)?Mu ZuSi[?Bu Wuô !N~}~tj[+ȼrr t>p}h.[>p}h+FFHJhPNP0 uNBuOWtz~ J9XvXJH9ZvZHF9vvvFF9tvtFl jt"lj(.[[hNP3.[[=uvJt J9vFL t F9s>.uHLF9sLtLtu L t%>.tuu +>@w>@v @@RPB-[[j@FPO-[[hsFP.[[ uh{FP.[[ t+JWVFFjjFPnjh,[[066,[[jFP,[[>tR u~t > uFFF;| v| | 9Fv| F=s~uFܣ| F #~} F&Ft F~tA؉FFt$F@fP[^G u8FFFFڋF RP+[[F-P6jhFFFFPF.^&tFFF$FVVWڥ_^6*F uF+ tVQ[ t+9~v~+ uuF9Ft F$<uF FN`܋FljF=sFvL[F uj[FN#+N;| rjo[vvZ*[[d;j*[=^^F&t^ă~t'F9FuFFҋF9FuFFvv[[FWK[ u j[  tH^^F&@t^^F&F$FVVW¥_^ ttFVjv/~t~+t jWVvF^^F&GF9Ft$FVVW¥_^F9Fw~ ^&GF- $^GF҉GFډG"F؉GG F-Gvv[[~| (+n~tQljC[~t%vvFFv)vv[[J(Nyv![F-^GWE~t vv[[~~.v[$<tj[>t v['Ny~|Ft ~uv~[(^GGG&~ ~ ,ЉNV&0^_Ã>p}h'[>p}j[6 j[[ *F>Nu!P [v[N uj ;[vj6NFNL-* ؋LG > uv[FV tFVÀ> }jv[[FV؋F Fuv^[> t#> }jv][[FV tFVv$[FVcF Fujv&[[FVFHFFFPPi[[Ft+ËF+WV+9 uz69t6 us H+ێ&?Mu &9Gu& ;vvV [ uj [VM[$ t$^_jb[FBpF+FFFPP[[&%N+FF? FFPPw[[FtFF'j[FWVF%F>+>ul>+>u"~tjvvvSj[v;w uVvv6j & v6)vu tF+F ^_WV{ދF+ҋȋډVF-VFN^Ë&7Fk^F&?rX~^&?+҉NNV‹&ON&G^FF&&?rV&F^&GNy^_WVFFF~~T&7NNFF 9v|N^F&u~OOyvjN^F&t^&GFHHF8^&u!~N^F&uO F9v~tFՋF^_WV܋F+ҋȋډVF-VFË&7Fs^F&?r`9~u F^&F^F&ώ^F&9u/$ع&GF&GFˌ^&F‹&GNyF$ع&GF&G~^_ FF tR *FFPQ[[ uPP[[ uW[PWy[[~PW[[ t FPW[[ tFPW[[ t FPW[[ t01P603![[FP4[F ^^GNy^ PW][[ uPWO[[ tF/WF [FV t F~| tV-8FV,P~W [[ tEP[F | @@Pv [[ t;W[F t-PW` [[ tW[F t F:Pv7 [[ tW[F^Pv [[ tW[Pv% [[ tPv [[ t6+Pv[[ tGVPv[[ t}CtWN[F t4Pv[[ tEP*[F t V[ t!G' }F؋ t4$ tuz$>/|i ])$/+F tƢF u 4 ~++4F ~ ƢF  }Pt[V?[ u $ tpV,[ u $ t[~uU#&RP%[[ u"(&RP%[[ u dždž ut @ t Gt&HuHuHuHutHu(Hu[HueHuyHuYHuHuHuHuHuHuHu-uHuP- u-du-u- t|F~u ( uw FF@&t>s~u( uP[F;}-1Fw" ~t F( %F>/|6s>>ui^P [^P[QF F>t>/u1" t FI~ F mF)lFyeF =FFb>/}OF7~tPP[[PvPGP[>uƢƢ.v[>FuFB D &GFP&[ uGƢ. u6~u]^_]U~t~t ~t~u]+]U~0| ~9]+]UWVv+PDPj[V[[ uV[P[ t'FFFP P[[ t- F<uV[؀?Mut ^_]UVv < t< uF<u^]U V> u+b FF^&?tv^&8t^F&?tFF<uFvN~~^F&FD uF^]~t~uF>uQ>ZrF~|>~(r8~بu,62 )[6J )[6: )[Y  |*U츀F!sj"[WV+FF| hj8PTVhFP[[[ uhFPK[[ t뱁66[[pF~ut ~} F&lt FlujI[h rF uFlDBHFF-FP[F uj [jvjvՃv+vVF$FVRP;vj[n^^F&tFFFVVW~ڥ_^vF*F uF6+ tV[F t+96v6 FF9Nu u lu W[F uj$[F F9Fuv[F^&G  &F@t& t5tFDPN+QR24jD 24RP6t6+t jWVvbԃF9FuF> v'[FF9FwFF^F&G^&GP.[H- $^&GN^F&G^&G"L&G> &G F&GSv~| 8+( ^&G&G&G&JtJFvPvvvvvvvvvvhvc[^_FGF^>p}hc[>p}jU[$ Fvj^FB DUH^!#Vn6$ ![Fv (^F&G$<u&GFFPj ![[F9vw^WVFFn ^^F&GFF^F&^^F&w^F&?F^F&ΎƉ^F&F=r؀^F&G^^ ^&OyFtFFug^^F&w[^_ WVn^^F&GFF&GFF&7Ft^F&?ra߀^F&^F&?^F&׉FVNj&?r߀^F&G ߀ ^&NyvA[v:[>.t>tFP[ tm+ɉNF㋇ ^F&N F -^&+FH&G^F&G^F&N}^_ jFPj vhFP`[[ t6>@s@6>j0FPvvF> }+hFP[[ tFV$*D٣j FPhvJ~.u~$uv[+ jFPjjBÃhFP[[ tPjFPjj"ÃvX[FV9Vr'w9Fv 9Vwr9Fs FVjFPjjƒhFP/[[ t1jFPjj2ƒF+F+ұ;أ+V"> u> u > u(FRFPNQQl׃FƉFFF(Nt vRV[[ u^&&WFV@u^yhM[jFP|9jhvvƒjFPvv 9Fu 9Vu++>. u56[F;sFv[GuD6[6}[ uPa[FFPPjFm uƁ>r6[FV~tX  FV u,F5FPNQQՃjv[[ uhN[>u +á/;v6[6w[FV;sA6O[6@[FV9Vw?r9Fs8FV9Vw#r9Fs6[+ډGtxFF~Q|~sIvvo[[ t:FVRPX[[ t#h@jFVRP|FV멋F`^ tÀ&G+ WVFFFV } FF ^&9G u0&9W u*&9Gu!>>rFV+;r+z^&F&?t&G&9Gr&;Gs׉F^=rʋ^&Gȋ-RPM[[ t+vWV<[[ tvS[ t^&G^_(WV9sw9v>. uuFVRP[[ tWFVFV;w'r;sRP[[ t,FVFV-RP[[ u FV+FFFF>.uFPQ[FV uFP[FV t79w*r9w"FV裘F+FF桘9s w 9wFVFV >. u:RP@%[[ uj{[ t"-RP%[[jFP6RP迼+FVFVFVFVjNQFVRP耼F FtG+FFF+҉FVjFPFVRPDFVFVGtM F޿FF> u>. uFFPPj> FދVܣ¹ >. t9ѣ  ^_Z WV6[&O &w; |;sj([ʪ6| 4[FP*[FFFP> tA98[У    uj [ fFH F+ұ  ڣ  ŠĘ* | 8 (  : *  < , *> .  = 6| jjxw@Ph6 6 袺h6 jaŃh6 jRŃjh8  RPj8   v x | t vjjP׸FP[T uj [T  jhFTPăNy&T>/|1FPj[ tjhЋF PăNy& Gt9u 9u8>. u3j[F uj [jh@ Fp +  RP]^_> |+FFGt' F޿F+FFFPPj_ËF FuFʼnFiFjP0[[FV t"hjvPj`*Ń vjj`jjp cF FtFV  U p>!> }!2ӣp }PQ[[ t P[>p}dp džP[PP[[P[RP[[ƆPP[[MuFt pp>p},PQ[[PZ[PL[PP[[>p|?+PPC[[Mu''[ t!| ,p]V69DwPDP[[D ^@^U^G+ұ ̉FVF^t?MuFG+FFVFV]UVFv u:*u0@u&D= wո n-0F=D= vF^]U^F^Ȋ;t+ ^?u߸]UBWV@tA-<u- t- t =R$P[ t=;vtu`u+W;t?u2~G< GFP[[>p|{uqa ud }^_]UVF:F@tv-#u-t|-u-t,HHtL-uԸ)P[ tȀ~tFsFFF뱸0P[ t~uN F *FF28P[ tFF6"$ I~uNF;FuFW* -F;sP [ uFqF= u) }^]UFFFHFPPI[[~uF~uF9Fs+]UFIFFFPFPPTɋ]U&WV6MPDP[[ |VDFPP|[[F tBfF-FPN+QR;| DFt D P:[[F uZf|t D-FF)FF+ɉNFvPQ;F}F&FFNQQB[[FH&N+ۉ^ډN܀&FڋV  VŽ۹ ^D-NFNDFF^&O&^Ȏ&FNyFDhF ^F?u^^ރFF?uލFPLhQVv FVvU[vN[~t:v [ t&vP6 vvv F"@$ v[^_]YQQYXX܋W=! ãpË܋WOpB! Ë܋WOp?! ûp>!ËpOW_?! X[&PSPU׋ތ؎v~3+t]UWV~vߋN t2^_]okUVW F͋FF<%t <&tF FFDFDVFF~]MUu} U^]W~]MUuE r3ƾu _^]UVW^vF~ N _^]UW~3AيFO8t3_]UVW~3I:IN~3I+Vv%vuыߋNuGF3_^]US^WNʼnW[]US^WNʼnW[]2UWVv33۬< t< tP<-t<+u<9w,0rҋˋ؃X<-u؃^_]܋_ >/r.f>.u(.G .G Ë& &蟩57̀>.t#>. u >. ufҞ 2hׯY &&G&P>.t &&O|`ؾޭЭsCC9CCu9uVXaURWVXߋ~9Uu9u_Z@H@ p@q!c.=t.95uVJ.^>4u4Ê4&?66>+E+} t & &_4...33۱܊ tU36666&zPi&gped q66 Ud ؎аd襧6z+j? >5tU]UM!!P3ذpigd q6&z66 dd؎Ћ&zЊ!X桊Ȋ!;t.  hX>5uզ]Gt ô54!..>u533Ҹ.R t" ڹ TX u%4!á @$܋Or ; w øÜ3PXt$T[;uP[#t f 3fffZffffRfffZf3fs@t f%fø3!ʋ܊W@!ð2À>4u%r&Or~ u |&G&uqE蒠u ـ@2t3ÜXPX%0ËVWP6O66w6__^UWN<裛j^&G&b&G&d&G&gj`~3Nts_]ù[XP3q N?  Fsa}0 ƟUda y? `? K"ae7 z 猭 B J RUWgjp`b\g r <_ B cU O J l l@ ǖ \w / 4D>T /OS$ r ~~ Ն t 11  @ >@Vw%@܋W_VW,Ag;¬u;t332Ь_^V3@3h3ۭح^V U3ju~8Nu~F%?=?uAɑø> v"Ը8!"UVWVڃ3&6&6ê6iȫFЫ .&h^G‹OWҋgPQXXXZY..&h3ێۏn^  PP!X_^]Gu޿3u uG û ޿_ $c䒋؃3 VW3u@R4PY[:u+43t#ui ?_^U5vt, v, ߬t <\u| u]Ì p/-&ff fffËv^"]^fVUv^<t<t]^ P`j\. x%DD4DD8D %DD 3.> ffff t#D8D4L,D(1k+D6D*af~ ts..fRf.Fm.Jm!1fZ.~  t& ;t&Pev^"=^u%F ^\1r.~ & \@1s~..F"+Fv~u-vNَv^"~ ;v&V=t"+=)tAӊ=t = tA=uN^ 1r؋~ &1F~OOv&Ћafj&]Y3KC/ =&  Y[SRSI CLIENT 0.9hd`\X T P L H D@<VW/ u.6Dm.>fn.hn6B _^UfVfWfRf3f3f3ҋFnNVv~ ^1F^NVv~ fZf_f^]j 詴.f6mf3.f>mf3.fmf3ҿ 3. @H!r2 3H.Dm!sP*mr6 q60 ~ 6( 6 &,6* 6Ӌø 1&e 1ۋø 1&e 1m 11.m0mf>4m68m2m1sD:m>m6Bm!1fFmJm6@ $  & ,"Ds$ < DɺLm1ˀs j1qɳ1 s1q1`u#1.>+mu/1F 3AsD 31sv, 1rF 6 31rF < 1rӃF :    1H ᫒ 1یTȣc>T꾠\\<u S1ٻ1sÀtt#t$t/tt.v˺ !1rϺb1Vu12 ᫒[F 2  1F  3ɺ1@1 @H!/J  3P.f6m.f>m.fm }U TUj ]܋G2 & <sP öS![X ;: u 1" 1Ë  +فÎ ZJ`QQPPj!Ë6_1VW3ًʸ1_^~.~ ؎Ћ&PW.o.q1fRf3ҾL1Ã.v1; u VX1uJ 3UfZXL!=t=ܿt...j-T&P辺h o蝱$H >B u33J u54!Sr%! s/UH蟺F~FF"F&^Ѝe.Pێj 蛯訠YXL!UVfWf3.~ &>H &.H 2W3vV^3.~ F, -=&w؀tjڎڥX23۸1r#.~ 6H ~ D$D"D FFH Yf_^]fVfWf3f3s0 *t1r nꪒf_f^fgf&gV؎f2g..~ 0 tfWf^jUf_fgffF*F.fFf^fNfVfvf~fUfnfUfnfFfFf^fNfVfvf~Xf %A F fXЎ؋.~ &0 sf3sgfe2fϸ/tS<uO sJC/. ut,}.G+.Wèt,.G+.WjVWVu6;Xu+wLgD_^VWg5!;Xti&> MMu`&>XXuW&> EuO&> XuG&>0u?Gu3u,g t#Cg u.*P襳3YH_^tO u g u׈PQ. p> r   G$  & .v33ҸtZ tWڿf<6 v6u6> u1 ffff+;uGuO Ӄr .v u09rv0/s> t  6R ؀PP 4Y=uj#Y j 3Y3> t uػ4 6 < > @ B t   Ď3@ g tʱj蛩fZ s> > t@@㣬> u=@r@Gt蘕#2IIƎށf3f8 f  < #=_^ffffŎ&f޿ t!6&fE.fyf޿ .yfɌffffffQfWnj8f_f[Up tf;rt f&gPX .ytUWV1.fyyf6j8fff.fygf "gffgfgf0gfgfV "f@Igf +f3gf f?fvf6VpP6X@^_.y]33ҴBz  nfR66YZ tBRQYX;u7;u3>  00$+É RmZf f f tf.f{> uVWŎf3_^.f{f>f fffH%  ;s&gf>fff>.y&fE.fy>tg S ffÀ>t_.> t AGtp σ> tVWff fff+fڀfP fPjR6 Sjjjf  t=f?f| хj8f_f  &gf;uffE_^< 33     } y!u"q#m$i%e&a'](Y)U*Q+M,I-E.A/=0915213-4)5%6!789:; < =>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_}`yaubqcmdieefag]hYiUjQkMlImEnAo=p9q5r1s-t)u%v!wxyz{ | }~}yuqmiea]YUQMIEA=951-)%!  }yuqmiea]YUQMIEA=951-)%! S ہ.  ԉw։WމOGYXOOЉG܌GGҌWo^fg*fGfG"fG&O&2 O.O_κ ҋG4, ^fPfSf^ffsf^*gfCfFgfF"gCF(gC fX;Vu;Z;Vu/gSgCgfCgCZgS6 VfgcZ]f[f33tKtFtu-Pj8lj u :uXfXffjhAt j P XfϜj UՃ t.RS GtNS_ > t U"EM&Ë> UE-J3_^Z] `֋ҋVW#j ;tY;uXa̸L!`F@PRP t6L6t- tN2v4FF6WN8a_^Z] $`FPv*v(a.T&&Դ?W xWWN  gg  8 1 g b    &d? @W  2f{ Y  DOS16PKGint21_call_16int21_creg_16int31_call_16int31_creg_16cp_entrybdos_4B_flgmakexecableGppUpFpcpPpqppppp pZ U`^&&O&W&w& &_S^&_&[ffjPS^ &&O&W&w& & &G X&G^&&Xa]ffjO.T>.u1U`^&&O&W&w& &_S^&_&[ffj;v.T>.u1ffj;ˀN&3>8~w.0 f&F;<v Vâܹ2UYY4v,Y tv,FP,;vuF+vuىvvvv -YYċ^ t G"F_&^v3FPvh-F tf&Yv3FPv-YYy<wá%t؋F |Apg& &P>.t5*g jw QS WgFw tYRwwQh 6$ hGˋ WgF~&}tÌ^FFFF  FAU-YY^Nv"~FV SQuIƴI( ؎ËFv N~0 >~N6v FË^tq2 Ҙ&Nt\"" &>.t .|D.Gt>P$3**2y,Q^Xr#rً3r!krXX2 ^&U0PfWf3}:r XP P6;Ef_X]sjvv/VÌNNN F  F á@ FaÀ&G߿ FFFF G 3P@[ۋpDGtNVOWVNOtøe'"$.T& 6w 6w6w6wЃː    : J a - N X  x UFF]À vu*ǀ3 `ӎ.T& &> uWQ&6R ډ  W"o&Āhw2ģ~ .jtЎ~wG&F&F&tfR  DDafC L!`GPPj!"  N& G&a>C uÀ>.t`h G&W"g0 &d؎aËF&G&*n!saF~6  J"rv> ^ zGFsiGjV~ GF;vOFGQ:GG&u66 W_stQYY+t;tF+‰FvsGhVv> ;vOFGQ^V^stQكYGYG&u +t;tF+‰FrI> v^<$Ws> ^v 2AAQVW.^_Y~ tu, &l*À~uuO&@G&@utG tFcS߸[>.t&E&M&msu  á Ë~GË~GS2^VG=s*t$6 ujl, &&w[ËNfRfPfV;$ t5;: t/ffr$" ǎDW誸U+ǫꪋ«ZfXfZ>B wms BAr[SVN2^ t>.tf=v$j&GtptjD@u&GG=sQtKQ u, &&OY6 pt;@ u ƅjl, &&w[N:r%8wrJ*r*Ȁs F@m;@ tpu3>u06 jH`bS^28>.t tfRZRfZNV[j&O&S* 1r ;s؎( &,[À>.tA  tjRP-RP1XZ nfaFPP6$ hqS #;$ u`uufY T Z[GG1r G rG&t%F~ 6 @ F F rGE F F >t6 ++>t > >t>,tٱ%uRr> v^ Gr~6 FGFá GG> ^v & v ^F+@t;wVF~6  +w )v u9>4u2>t.Oj@&l2ĨuFFFGGGluր>4uj@&n&l &l+ T ^vͬ VGFN&jUYYYUn GH*3ҋGFGFG&t3]ÀN&U$Un GIG&%]ÀN&UUn W__s̀~t FN&Z> W3_ǀv^& &ŷA&ŷAW&ŷ+;r_ǀ3&=0v,3&0;r& & «««>.uYP H!s i 3h6$ hlu˿h6$ hu0 fFmJm!1X G!6PĴ5nX&56>.u'Sh(6$ hv3h66$ hu˴I![ ( * &,( F>< :ᒑ߸øDȇDÃ~tG> W^v GF^~GFAF< tM< tI,<r rN;w&> v^aNF~6 FN&F u5v> ^ GGFF~6 <u>  v ^N<uh6 w GON~FlN snt=/y3 G GON~F6 v< &D%6 w GhOr u~F tu/Nv>  G^&N6 ~FuIF,<wu3QjjCjC>  ^v YQ&^vZYQR GG6 F~ YQF~ZYGFGF@`.T6, &P&PUUj " &&aP;vX> `a`;vȋ6 a` PPPPj"aÀtt/tJ<s`.T<rFaf<t`.Tjaf<t`3RR.T2F<t$vv4FN UFafQN =YPvvXÀ>4u ;t À>4u3ãVW`j3&G&G&Gù&_u;|+|_^Ëܸ&6+G6W}qeYMA5)ui]QE9-! Uvn f` ًЎd]2.<u%dfU4f&|frhӌӋf&  J:r:v:r^:wXL#Ȱ r*.fGdfE(dE,dM.dEBdE0fa˃f;Luufaufό; u f& ;& s Ћ& f6 6 6 & .2dfU4f& faf`>/r0O3!&fff ‹ØffaÊko{ ,"C""!!*!2!@!M!S!^!^!{!QQQa$`&9uaj&> j.aUj > jvt|^&&&&]ˬFP<3j >tCj>btCC.j ~r 83F%uF$_v^<t<t=^u}` ؋>Puu J u~rF+FvB~u-v7PeF똋D!eF>ejFƿ!t!F FEF]>!jvDU졘9Vrw9Fr9Vw r9Fw+ V+FF++FV;wkr;scF Ft[jvvFVFV;rw;vNt vvV uj![jvvFVFV^>t,FF`hjj6j`FV^&G &W+FFV;wr;s~ |~u+jvv FVF FuhjvvFV;V};Fs>. u33 u,FVFVRPvv2F ~N }FV9Fu9Vt4+FVRPjFVFVRPjvvy FVRPk jvvGRPjvvM FV tvP uj[FV؃RP{[[FVá9Vrw9Fv FVjFVFVRPFV uFV9Vrw9Frvv> tj[>uiFF t\С ڙ ӉFVvv[[;V| ;FvFVj  FVRPM tUF WVFV9vsr9w FV ;v\r;wF FuIGthjFVRPFVFV9Vwr9FsF FtFVFVjȋFV9Fu9VuF FtFV FV;Vr v;Fvjvv;FV;Vr w;Fvvvjvv( vvjvv FV FVjvvFV;FuQ;VuLjvvFVFVRPjvv vvjvv FVFVv vjvv jvvfFV;FuY;VuTjRPLjvv:v~WVjvv6 jvvRPjvv v vj[[>. uT&%@=@GကA3t6> PFVFV-RPFVRP/ Gthl^_FV FVFVFV )F VFVjRPPFV uFV9Ft9VtjvvFV;Vw r;F s>. u)FVF VRPvv.F |w ~rjvvRPjvv FV؃RP[[FV9F u9Vt+F VRPF VFVRPiËFV +FVvv[[FV u+ËV*FV+FVRPvvFF*jPFV*N^RPFVjj[[FV u+dv vjvv vvj vv hhjvv 6 6 jvv FV   +FF9F|[9FtTFVRP[[*FVRP[[FV t(vPvv, uvvvv+FFFV j6 o[[ FV%Fvv6[[FVvvvFVRPI tjvv=u;t+cFV9Fu9VtFVFVFhкhкjRPo jvvKRPvvvP jjvvvv u+jvvFVj vvFVvv tvvvv WVvvU t%jvv=u;u~ |~u+cj vv{FVjvvgFVFVN^ SQ[[FV ;Fu;Vu FV9V|89Fv1N^+SQFVRPv vj vv RPvvvvR tv vj vv v vP[[FV uhjvv6  hjvvj` VWj` N33_^vvjvvh v vj vvT vvvvFV^_U>.tF9| v$ع&t+ËFWV8^&G&O&& uG Ft@FF HtNHt]Ht9HuHtZjWJ[[FV tF Ft^&G&Gv[FVS[FV FujW[܃~u6E^&G Gvx[D$+҉FVVP [[낃~tCs&G Gv=[FVN`Rv uP> |vve[ u4FtVWvvF Gv[^&Gv^&w&g&r+NvFFFFFFFN FFPv[[ uh[%`F t% =PDPjvFV^  &FV[+t]^  &g^_WV8F^&G&w% t!&GF;| sNQP[[ tFuv[vv[[FVFV t^  &u^&G&GF Fu> | ~s;u> |vQ[FV Fuy;s+++RPNjFVRP;wjWjVvv8 tjW\[[FV u%> t v[FV Fu  thj[Fvvv ~rjVvv=9 GIFGv[!v[FV Fu > |]HFFVFVFFFN FFPv[[^  &vvHPvvvN ;v*%`F t% =P+Pvv ^&g&&~tj[^_VF^&G&G8FFPvp[[FtF^&9Gt6 &u~wrav [jPvv][[RP^6 &Fv[Ftuvvvv|FtUFgvv[[ GF 9Gtv[ t G^&G^v [ GFn^&g&&G&G&G8&9Gu&Gj[^WVF^&FP&wI[[F*F  &Fu $ ^&9G"uF%=t&=u> |~t^&G&O&^&g&~r$ FU=wP.e34S34333 F1u+vv [[;uY=w.3w34343|3v [^&G GH^&G Gjvv^&G&t7&wFtvVg[[ u^&wS[[jn[FPV [[> uN`W`[^&GF  &Wvv [[RP > |F$  &W [V [FFFPW' [[ uh [^&_  &vv[[vvvvvWC j[^&^_ V^&wV[ t>^&GHFF FFFFFPV [[^&g&&w^ WV+FPv [[ t0Ft*j [ tFFFPVD [[^> & ^_Uhv[[Uhv[[WV~rFPv] [[ tFuF8> &t^>.tWFVFVFF| F.F^F&9Gu&G*;Fu&8gt &F9vwvH [j/[+^_ FPv [[F$<uF9Frhv[[F u+ÍFPv [[NFN)N9FvF+FVFPv [[F Vj [ t*FHFFVFVFFFFPV [[^4V~t$FPvvvZ FҋFHPQ[FFFҋFFF~tFҀ> }~tv [F u+^FFFFF+F=u~t FHP[FF GFFPFP/Ft8FFԉF܃~t FP[[F9FsFΉFFFP FF9FuF^Ëv΋^  Gˋ& &@I"WVFF&FމF v&$utvF&D&T*RP[[FVt&4[jPvv'FIFFPPj!" ^^F&G*&G&GNރ~|p^&G*F&w&w&w&w&w  ^&GFFA v&$u1vF&D&DF&DVvqF&DNރ~}^_WVFN;FuFP6 NQ[[F NNFFPv [[F+ێ^F&?Mt&?ZuGF+FHFF‹NQڹYË&M~O&|&D‹F&)D^_ WV^> &tz6| 2F%3FIFPV[[ t;Ft5FV+FVN +;w r;wF VFVFPV6[[Fs~u^> &!^_ Vv36| 36| 4FPVX[[ t&Ft FV+FVN +;w r;wV[s^+>.t;> u4FV>. u  ËFV+RP#[[FFV+  %FVF FV;V|;Fs ~uFV~|~tvv [[FV u~tNye~^vPz[[FVFV9wr9w uLFVFVvvjRP jjjvv FVn^vv[[FVFV9wr9svv[[RPvvH>.u66vvS>. tFV  N~fV t+^Ã> tV tV^66n[[؋ы +^FVGu@t+Ã> t$vv[[V tvvvPvËFV?RP[[FV%-RPvvr9Vwr9Fsvv[[ËFVbV3uO>. u 3ҋČӁ. j & SPRV 3FF s9uUVF]^XZ [^Ë KK . "UVW33%Ss;^uNV_^]Ujv v vVK!j sôM!2U^7H!rGGOGjP&^GOS3ҋ^AtyQ?!rY퀴?!j røL!Uj^F F GFVGWwZ]Xюj RUWF~NF A_]Ë6GرfSf^fVffv, &g3&gT3f^f[]fWf~fVff~ , gf6f^f_]U>/s#W]U>/s F V WVNы6 ujWOoۋ^øD6G6WË6G6WUFVv^ 6]FFFfF $f ĊfËUfW6o6_>.tjf_]Xf3W_Ft&efZ]Y f^3ËV6w;6| sU6o>.t(jFFFf$F fF@]^fWf36_ f_s336O#Ë6_ff_f6 6 f& r  . f& pApQYfppBpQdYfpp1BpQHYfppMBpQ,Yf ppiBpQYfppP Q oYfppBpQ@YfppBpQYfpp\ QYf pp` Q Yf$ppd Q hYf(pph Q LYf,ppl Q 0Yf0pppQ Yf4pp,Q@Yf8ppCpQYf<ppCpQYf@p! 12 ! 2pS!! 1 AEEIFFFFFFFCGlGGG+IrIIDpGGG"HbHHDpKLLMPN^OODpODpIwJJJDpDDDDDpDpOQxQQQDpDpCCDD*D2D@DNDTDZDfDpDpDlDnDf`fffrfg](qr ffSjgf#ugf#}s*ge,3ۊ.pD2.Dx :s . .lgM,ffafgf];st3ɊOtjPV&^$& Gu2GGJtg] ÉG;tB3&tx& =rm>vZ rr3GjP3ٌ333P3jgE⓰uN9\u8Tugu RSGZWugE ag]jPQg]jP'AG}GgEGggE(.rdbgEGgEGg GEj &>/r1fPgEfgEWptf ʀf ˆGgEu%%/=uQYrG% GϾS^tzfgfgfcirffgFugFtLuMj  H( r3&> >Lj&&M@+&&LjP&EL MsugfEfgEGgfEgf#EfGgEG L PgEj  gEj ; uP=sGLJL4[2k fĿL]EE&go.X&gG0&gG &gG$&gG"ffgf6gfjDTtj  .Lf& fffjhNf.L 6& 6. gfwgfwgfwgfwfgfwgfwgf7gw"gw$gw gw,gw*u.}0 fgE j  gEgE< gMgfE\O{j  gEgE= gMgfEO[jHj 6& `h j gE Z.< tgMgePgEj >. uf3gEgUCgEj8 f>ff3+π+gfgfu+fWgM3۸1VWfXf_f&gfGfWffWgEfgEgMgfgfـ3gff?f^f f>w ffff_ʁ gf&gEgej >. uggfE=r_?u[gEuTf>fgf|8j8&gfu5&gfxޭu)&gfH ffPf3gf_^1gE-ge-$gE ogE-gE-a.>Lt̓ÃyffSffsf6gf[ gtf[tfSffsf6gf[g;bf[tdËL)ZXÐtSPR$:t ؄xՋJuа ZXtÁ. gE$.D fat tfPf`fffrfgU&f tgfE$gfE(gfE$gU&gU.Lgu$㝎j  f> @w.D&E*&E(fgEFgu$.-Sffgfu(gf6gffЫfa.Lf_ffff`f~4fffFgfgFtt$tzyfCfCfCfCgf] f]f[Xff]f[Xm VW1@`1PۓCA3ɬ QuQEM@*<r*u шUrt RuxR+-Ek < ʉEEUAyGtCQpC bu P}CGGp_^y  (Y6$ Q`jjUU^.2P.T"F aDDfϜUSP^FFF NFRU.TGF GFX[]fU^N]fVfW1>6f_f^rӑ3fWf3016M66U0f_rىQ IuCfZ u1f;s,&gGtfff gfgf f IyY˸ {X@PcXPUf`j*f~fffN ffff ff# fff;s/##&g# ; uff;vFfa]Xjf+ffffgf\&gf3ff;wff;wf&gffXP3+$f`j8fff?> u fff>fGffN&f fF"ffH%  ;sEff &gu&gf> t&gf&gf>f fff>f~f~fa3Ɋ.8 tfPff+fXÇۇۇۇۇ=gBW.0-?dP]0EXPLOAD.EXPO ]?Uv v ^&w ^&GUv v ^&w%^&GU~tvvh* }ːF*jv v PR5+ːv v vvKFːl؋F Ft ^+&G&v v vvbF thIFV t#h vP1HFV t ^FVF V  vvFPj FPvv+ːh+hgHjIːUjF+ FRP`FːUF+PQEFː +FFjvv6*3hh >=tN> Mu> Fu  FV빐> Mu> Zuh n FV뗐> Bu> Wt+" u+ːF^ ^^&? uF̉FVj\RPy9FV tV@FFVېhvv{9 tnhvve9 tXhvvO9 tBhvv99 t,hvv#9 thvv 9 u+˸ːU6*vvv ːU6*vvːFF~}^ u +ːːFF+ɉNNNQPFPb?FFFVFVVFF+FFFFPvFP?ː*WV+FF&j6 6 6*u1hh =tS> Mu> Fu    뵐> Mu> Zuh "   두> Bu> Wth0h    hOh 44 uhTh "4 t   0j  6 6 6*0 F܃~u ,~}F, && tF, & uhZh[  , &  F uFހ6 6 FF-Fu.h 4@  ‹Gjh j6 w G FP&F uhh jvjv4 v+vVF$FVRP ;vhh| n^^F&tFމFFVVW~ڥ_^vF*F uFF+ t VF t+9~v~ڠ,F 9Nu u,W<F uhh F, 9Fu vF^&G  &F@t  & t3tFDPN+QRV։NjD F֋VRP~t~+tjWVvF9Fu FG v2 FF9FwF ^F&G^&GP -$^&G ^F&G^&G &GG O &F^&GSv~|6*L-+    G ^&G&G&G FV t ^+&G&> t FvvvPvv vvvvvv F F tFV^ &&Wvvvvvb P<^_.WVF+҉FމV u FFFމF+FFFPNNQNQ9FNNFn^FNQP+FFFP9FF }+^_ːFFNNVV+ۉ^^^SPvVL9FFNNVމV+ۉ^^^SPFPNԉVҐ9FFF+ɉNNNQP NQ8v~FԉFF҉F+FFFPVFP8FFF+FFv^&FVFދV9Vw r9FwِF^_^_ːUVn wd v F9v v,^F&G$<u&Gb h` j ϐ^ːWVF P+ɉNF u V^_˾N ~^&F -^&+F H&GN| ^F&G^F&ڋFV^_^_WVF Fn ^^F&GFF^F&^^F&w^F&?OxL^F&Ύ^F&F=r؀^F&G^&؀^&FtFFuc^ ^F&wF Ft,F PF Pvvx^&&W^_ WVn ^ ^F&GFF&GFF&7FNy^F&?s吋߀^F&^F&?^F&NFNj&?r߀^F&G^&߀^&wF Ft$v v vv^&&W^_VF FuF|^&&WFV uFa~w+^ː~s^v&^ː^&;Fv+^ːF&+F&;Gv+^ːv&^ː^ːWVF FuF^_ː^&&WFV uF^_ːF^&9wr,ދF~&9u}^_ˋ&^_ː+^_^_^G+ҊԊ*҉FVFt?MuFG+FFVFV ^F ^&G &G &G j  @RP6*u&j@h 6*&Uv v FVRPT~uˋFFFFPhI+3F^XFرVW^OWw _F1S^GOWw _^˸ 12F 12W~Pt@&E&E &E&E&]&M&U&u &m &]&U&e&M&E~ &E&]&M&U&u &m &]&U&eP&u X%uX&u &u&u&u&}˸  WS~^1r3[_VW^13ًʸ1_^hh^ hhB ho9[[FV thvP7 u h{ [hvv7FVoUit+vvvvv v vvF FVFPv vvj66F+FFv[F FVFPv vvj66iF+FFFF FVFPv vvj660F+FFFF FVFPvvjj66F+FFFhu+ˍF FVFPvvjj66F+FFFUvvWQ~N F F +HY_WQ~N F F +HY_WVQ~v NY^_VWQv ~NjN1;F u;v;sNOǨtIY_^WQ~F N Y_VWQS^~~ v NK[Y_^UV^ &v&F &GF&DF &GF&DF &GF&DF &GF&D &DF &G F&D&DF &G F&D&DF &GF&D&DF &GF&D&DF &GF&D &D"F &GF&D$&D&F &GF&D(&D*F &GF&D,F &GF&D.&T0F &GF&D2&D4F &GF&D6F &G ^&G:&G<^UV^ &v&F &GF&DF &GF&DF &GF&DF &G F&DF &GF&D F &GF&D F &GF&DF &GF&DF &G F&DF &G$F&DF &G(F&DF &G,F&DF &G.F&DF &G2F&DF &G6F&DF &G:^&G ^FF FFFF=FNQPU, tFF+FFFFFPh>+ tF+FFF FFFF FFPFBP+ tFVFF FFFFFF FFPh?;+ tFFF FFFFFF FFPh@* tF^F&^ F & uFVUjjvvjjv6!FV؋F Ft^&?t&^F&^F&:FVFV t9^&?t0F&^F&^&?u&/t&\t ^F&\F V FV t&^&FF^&?uFVFV t1^&?t&?.t ^F&.^F&^F& t ^&Uvvv v #v v #[[ء +ێ&GG%؃>u&h1[[ u  , tWV؋FF u> tFعP&@WV^31ًʸ1^_ЉFF^_UvvUWV+jv+[vv,[[ tWY+[^_Uvv t vv'WVFvv,[[FVvv*[[@FFVW^Nv~1_^^_WVF t~vN^ 1ЉFF^_ v vo,[[FVRPvvZ,[[+FVRPUv v vvh>/[[FV tbhRvPx-hkvv_- hvvF-"$hvv--h.[[FV tIhvP-hvv,  hvv,h<.[[FV t0hvP,hvv, F~tGF VFVF~?}&^| FF^&?u^Ƈ| h| h,F F |>v vP;Fu+F~t v}vv vjF $V؋FVFV^ ^F&?t&:u&‹&FV@@F!FFA^&&؉^ tF, ^&,@FF^&:GF^&?\u^F&\F؋vGV!vv[ tkF^&\GFFVFVF܉VF^&?.u>^&?\uFN-&?.u'F^&?\un ;^w+"N^&?\u^&vF& u^vv FVFVN^& FV@-:t-"tF9FwًVjvvRPv v  j.v v  tj.v v ‹&#FVN '؃j^F&F N u &ء uhhz FPvv  t FP[[ FP["F FtVj vvFP FP[[v vFP tNFP[[v vFP uj vv FPz FP[[FPvv v v v v FVRPhA uv v vvh* t^&v v vvh t^&v v vvh t^& v v vvh t^&v v vvh t^&OF FtFV+FF tFPvvv v  FV +ێ^F&GGu^&.&G+޿ VNF Ftshvv&FV tXvvvP vv\"[[vvn FVFV^&?\t&?/t&?:t&FVN9Fr V t1FPv v vv tF Ft vv uv v FV^&.&GF Ft2Svv vv ^&x\uNS ^&@^hhFV tvvvP vvvvvv ^hh&hhhh&hhh&h[ hFV t h&vP> hFV tCh&vP! h& FV t&Fe^ ^&&GNF9Fs^&ء FF<h%Pvvh1 uvvvv vvZ@F^&?uFVC!rNF%=ȦV&? t&?udžZ\< t tZF^&Z\<;uۃZtZ[:t[\t Ƃ\\ZZƂ\\Pvv\Pv v \P3 tvv\Pvv[[^&?;t&? uF^&?;t1^&*^V^&FFF F tM^ヿtAvvvv hL%vv vvv v t~tSFF^ヿt=vvh&hah&vvv vR tyFF^ヿt=vvh&hwh&vvv v t&FF^ヿt h&vvv v tFF^ヿt hvvv v tFF^ヿt h&vvv v] t>&t\FF^ヿtFvvh&h{h&vvv v tv vhv vvv6v vh1^h&vvh&‹&h& t"؀%\uƇ%%:u h&hȂV؍FP~ tPFPv vrFPO~B jvjjF~BPt~B;F~B F~BgF~BoD~BD~h u FP[[^FbFpF jvjjFP~F:jvjjFPhFPhFP6[[^&&WFV uvv![[FV^&&WF Ft*F Ft'vv vv^&&W u++FFFFv vvvFPFPVFVȲdžNvv vjTvPPhe=ubPMuQFuRTFV PMuQZu PP3[ހPBtQWuFtdžNFV ^ &&WN^^G+ұ FVF^t?MuFG+FFVFVPvv v+FPzFV |vFPj@=@t~MZuLFVFVFPh[FVvFV FVRPj$FV |]vFPj@-=@uL~LEuF~LXuF ~NEuF~uF FtFVFV+FFvvvjFV^ &&WFvv v vv uvv v vvFPv vvUvvv[UvvvUvUv vvvUv vvvUv vvv(Uvv[[Uvvv vUvvv vUvvv vVUvvvv v }  Uvvv vUv vvvrequires DOS/16M $0!<s3P˿66 8 66gP6g P6g6g6&2 6  0+3 ѐ3H6 6 6 uP.].ظ64 2P6> uXP6 P4 !&|.&`.UjVWUӎۋ^7wwWw ^ 3tFO.`..3tY[X]Sӎۋ^ FX%G OWw G^ YOXYtP _^X]UPv vv>]Uv vvj!']UFV^ +F Ӌ]UVT R Ȏغ/$%!3]UWVRQSP.].ۉ&V X UVWP !X_^]Z \ ώҋUVWPR X &V [YZ^_]UFU3f NX &V 68r f б2㋗^ s[YZ^_]\ &Z SPܡf 6 GXZ 6G6_[U~t~t  VW^ 3!h F j l 6j Fv )!) !U> }!.l0.&j0.5.6n0u.6p0.r0h ~t32P !X VK!PP0!<X[}!.l0.&j0..r0.6p0u.6n05 ]_^rM!25!  %+.!" . &6,$ 36 s 6( ڻ6  &,>3&=t4 t 3u! ,Ar ,Ar ª D!r €t @Ky, , , , U3UUVWUVWQ u , , x> u , , c, , Z tX Pu ~uFX uFL!_^]ˋ"   %!> t   %!;s EtUPR> t P?]ˏ  0! <t) &, 33uGG> ыѿ < t< t< to tkGN< t< t< t\ tX<"t$<\tB3A<\t<"tӋѨuN< t+ t'<"t<\tB3A<\t<"tۋѨu> GB+ģ 6?CC6 u6 3< t< t< t| tx6?CCN< t< t< tb t^<"t'<\t3A<\t<"t\Ѱ\s"N< t. t*<"t<\t3A<\t<"t\ٰ\s"3. U &,333 t&>tFu@$F P ϋ3_I&6; uQVW _^Yt&?CC u&]UVWV: ;t@t 3_^]UWv t 3I> u @!_]r3]sPX2]s]2ˢ u"> r <"s < r<v ט ÊU^; r >!rƇ U^; r *F tH~ t3ɋѸB!rKF uFV y(6VFѸB!FV y NVB!؋VN F B!r %U^; r h3N a uZ> u N V?!s > t7 VW% < u :t<u G+_^t< t @tD! u V?!r԰ ,FV?!r t~ tѸB!~ t V떋V딀~ uU^; r %> u t B3ɋ!r tpV3FFWVfN : uL=vFܺ=(s+ԋN < t ;t#k ;u F ^__hPSQ+Q^@!Yr F;wY[Xß~us  @t ^?u F+Ff^_/N u#V@!s u @t ڀ?uUWV6 tJ~tDv04;~ 9=uWvS u@ FF<u+^_]ː ?UVW~]MUu} !W~]MUuE r3 hu _^]UVW~3I:IN~3I+Vv%vuыߋNuGF3_^]UVW UVW2҈Vv< t< w< r<+t<-uNN t$v <0u u uŒ,A<ۀ AAۀ A:t^_]UW~3AيF O&8t3Njnj_]Uv ^ t-&'C:t,A<ɀ A,A<ɀ A:t]UWVN'~3ˋv D3&:EwtIIы^_]UWV~v ߋN t2Ì^_]U^ ,A<saC uڎ]U^ ,a<sAC uڎ]U~3I]U׋v ؎3~ǨtI]U׋~3u~ +؎FFtI]UVW~ 3I ː؋FFjjFPj2 f*؋FH@F+FFPPFPhH tFFFVvvF |Fu+vjFPhI FvjFPj t FF +FFFVːFFFFF+FFPPFPj- tFFFVːFFFFFF F+FFvPFPj tFFFVː؋F H@FvjFPhJ F t-F t'FPvF HFFPv?F FFFPv tF*ЋN^* FFVFV"+FF u5FFFFF FF jjFPv FF[_F tOFPv FFFFF HFދF* FFPvR tFvpFVv F+ұuFRP$UVv &<t&&8uFF ^&?u؎F&^ &8u^+^ːF^&G &WFVFFF^&9G ~)^&w&7v v o t^&G&WF&G&WFVFFF^&9G~^&w&7v v  t+U؎. & +ێ&GB&WD^&&W. & +ێFV&GB&WDV؎. & +ێ&GB&WDFV;Fu/;Vu*v& &T&OB&WD+^ː&&WFV Ft*FV^&9u&9Wu&7&&TF&&W뻸^ː؎. & +ێ&GB&WDFV Ft1^&w&wvv t FV^&&W+JF FFFVFjFPh u~tF<. &, F0 &FFP+ɉNNNQFPFF. & +ێ&GGt F܉FF F؉FF։FFFFȉFSSFPv9 ː؍FPv} uˊF* ؍FPvQ uˊF*FF FFPv t؋FWVvvr%=t ^_ː~ tWvvn%ȃ^_؃> u)FjjFPjj u+ˋFFFF jjFPh Fː؃> u!FjjFPvjF +ːFFFjjFPh +؃> ujjFPjj FFFː@DOS/16M- (08p@P2NȎش !L!.EXE has not been processed by MAKEPM $ W+FFvvPv T%FV u=v+_ˋ Ft u~ v F HF t4 u~v'jv jj.FVFVFHFFFPP[[~uFFFFVFVFV~u~vFF +N ~+ۋNع^F +)FVF FuFV_FIFFFFPFPPD32_KERNELDOS4G_GET_APPPATHEXPLOADINITLOADERUNLOADFREEMAPRELUNRELCANLOADEXP_LOADER%*1X8@D0JR^fVMM.EXP4GWPRO.EXPLINEXE.EXPSEGEXE.EXPDOS4G.EXPUSERERR.EXPinvalid EXP executable format \VM.\VMD.program must be built -AUTO for DPMI can't allocate memory for GDT premature EOF not enough memory to load program  ERROUTERRPRINTERRDIVERTVMM4GLocking %lX - %lX Bytes - retcode %d DVX_Process_ManagerDVX_Global_Seg_AssociateDVX_Global_Seg_AllocDVX_Global_Seg_BroadcastDVX_Dos4gx_Get_OptionVMM4GVMALOCINSTVSUPERRESIZEVSUPERFREED32_KERNELDOS4G_GETENVDOS4G_GET_APPPATH0123456789ABCDEFDOS4G_GETENVD32_KERNELverboseverbskipinitskipsymnoclosenoignoreDVX_HOME_DIRDVX_Process_Managerdll\msclibpathsegexedll\os2_20libpath32linexe.PATHCOMSPECDOS4GLOADERDOS4GLOADER.dll.exe.comChecking for %s%s%s Searching LIBPATH32=%s for %s%s Searching LIBPATH=%s for %s%s .Searching COMSPEC=%s for %s%s Found '%s' NOT Found :: %s =BG.sym merges ; comp ms; go (08@Pp&2Tv _C_FILE_INFO=    ((((( H 0 *.*.*. <>R6000 - stack overflow R6003 - integer divide by 0 R6009 - not enough space for environment run-time error R6002 - floating-point support not loaded t 5Z@Ed4<wr9@ayZs.hv !J#$f$$%'$((,))+,7,M,l,,,,, -+-P-r--].8?zBZDDD$EEEEE*FlFFF8GGGTuXP6XPR!&&UjVWU^7wwWw ^3tFO.O3tY[X]S^ FX%G OWw G^YOXYtn_^X]UPvv v vv?]Uvvv v vvj!]̸5!%!f.&6,h36ds6lڻ6d&,>3&=t4 t 3u! ,Ar ,Ar ª D!r €t @KyppppU3UUVWUVWQ uppx>TuZppcppZ tX Pu ~uFX uFL!_^]ˋfd%!>2t 34%!;s EtUPB>:t8P/]UVWV;t@t 3_^]UWv t 3I>TuV@!_]U^; r >!rƇ UV')FV tnF Ftfvv^&G& tJ&w&7;~1^&&8=u%VvvS u^&&W@ F+^]UVW^vF ~ N_^]Uv ^ t-&'C:t,A<ɀ A,A<ɀ A:t]UWVv~ N>AZ $& t tFG:r:w:r:w:u3:t rIIы^_]UVW UVW2҈Vv&< t< w< r<+t<-uN&N t$v <0u& u uŒ,A<ۀ AAۀ A:t^_]UW~3AيF O&8t3Njnj_]Uv ^ t-&'C:t,A<ɀ A,A<ɀ A:t]UWVN'~3ˋv D3&:EwtIIы^_]UWV~v ߋN t2Ì^_]U^ ,A<saC uڎ]U^ ,a<sAC uڎ]U~3I]U׋v ؎3~ǨtI]U׋~3u~ +؎FFtI]UVW~ 3Ir <"s < r<v>טÊU~3I]UWVN'~3ˋv D3&:EwtIIы^_]@DOS/16M (08p@P Ȏش !L!.EXE has not been processed by MAKEPM $WVFjj+Vv vVj IFV"~t%&G&*~&8tFFF^&8uvvJF^_Uvvh+UvvhtUvv u vv t+hf[[jThf[[hf[[jTh}f[[U^&G6&G&G^&w&7VV^&&W@RPhVFV t^&GShB^&&WV؎p&+ێJL&GGu+>u$hhQ t hhQ u"x^&G6~tvv?R - LFR t FVFG^vvFP0FP^&=uPR6 t^&7NPMPN{(h4PNpPd Ğ&G D|z~jj>FP%dp&FFFڋFĞ&G&WF։V&G$&W&$FVFp&FFFDt3kD-RP(&G&WFV&G&W ^&&G0&G2+PQcs[[`bF֋V`bRP tNFuhVhOZ uh]c[[FF&DFFwvvNP5^&=uRĞN&~ u~ u Pjjj$SF V ĞN&&ĞN&G\>uĞN&&^&7jX t"~tRRĞN&LJ|Xh4PNpPa lnĞ&O D&OIVk‹&@ tzk&@Dt/kD&`% f t|~kD&@+f^džTTTĞ&9WFs^w &9GDwSkĞl&@ ukl&Gt&G&GkTln&Gt&G&Gha[[Ft &FF+PQq[[`bDujjjn ^FV`bRPjj C‹؉^F+&G&v&^&G&G+&G &G6&D8&T:^&G &W6&D4&T6^&G&WSDF FtrFPvvm[[+F@F t=vFvvvDRP_ &G4&+G8؁H^FvvvS_ >t~t R.Pdž$hjF҉Vh4pPPNi_ j>FPvvT_ vv+^WV uhhV u+jnm[Fjm[ uFF+NF>tFv&@&@F&@F*&@&&@F~ rFF$FV‹&g&O^$،v|hإh JhP_[[ hh *_vl[ ^_Ujjjvvvvv v vvV^+&G&v &vC FV t.^&G<&W>v&&TF&w&DD^ &FV+^Uv  V+FFFFPNQv W FVF Ft~u+e^&GF=r -xF=r9Frk^&@tz|^&G^&G<&W>kN-RP""^&&W+^V؍FPNQv  FV t,F Ft$~tFFFVF+;Vsvw;Frovvvv<Nk^&@&PFV^&&W^&9Pwr&9@w;Vwr;Fs^&O^&@&P^&)&W++^vvv v jN uvvv v jN tFFF*؎p&FF؀>t++h b`M uahh/RThro[[FV u^&GGth&hR/Fh2h-IFV th=^RPZ uF~uhEvvm uhNvvjm tvhTvvIm tUjjjkjjjjjjhhVRPh]>[h-[[[hhH u uyhhQ t&hZ[[ t*/W،Ўp&r.tvЋ&x.x>p׋&r.t_UW،Ўp&r.tvЋ&x.x >p׋&r.t_UW،Ўp&r.tvЋ&x.xj&u&u&u&u&u&u&u&u&u &u >p׋&r.t_؋FV-F^SF?FQFlF{F u-= w.v v vvI+Uvv&+Uiv1Q^ &G+&G&~t(vv vFP# FV^ &&WF&GUvv=^ &Ujj>vvW^&G2&G4z&G6~&G&G&G&G &Ghj[[h e[FVRPyCFvxUhz t=h|~ t.Pvvv v hB76zvvv v h,7|+2+FFr&FFFjjjj u+b t >uF~u[vvv4FV Ft9Rvf[[RPjvC tgjjvvVFVvvFPj F }hF6~~BjjFPj |FPFPj  FFFFPhjvt&FVjjFPj F Ft5>t.FFFvvFPj FPFPj jjFPj hhdV.0 .u+.&?u$jhdSRUhj606.=U.&GȢ t>t^&LJ*+0vvjFP@0FPFV*RPj ="F t^&*|FP*PjVr&+ێ&w2&w6&w4}eFV t^v&S`[[^Vdž~ u{vZz| tH>uAĞz&\t hT[[+RSjFPF/FPz|*RPj ~~~ujjz|*RPj ~.Rv&.&R|z t=jjz|*RPj .Rv&ȋ.&RB+FĞz&_8&G&&W=u;t8Ğz&G8&W:RP:vi|zg u|z tb^LJ8 v[|z$^WV^+&G&.&brFF.Rv&8tri4.‹،~&&U.~&ƁRv vVP~ t2v v6.0ƄQVE6.0ƄQV[[^&w&7LJ8.&b^_U~r+iF4.0VFF~s6.Rv&8ti4.RPvv uŋ^UvvhR塔 tvv[[ vvh0.VvJFԉV uf t^&*tFFFԋVRPvhQ ^&G:& G8t>&w8&|tCFP8^&G8&W:RP8^&_8&w@FP8&t&@.Rv&ȋ.&R^&lun~t &G:& G8t!&w:&w8C`[[RP &wZ&wX4^&u&wN&wL^&wF&wD^&&~t^&wV&wT=4^&w&w/4^&w"&w !4^&w&&w$4^&w6&w44^&w*&w(3^&w.&w,3^&w>&w<3^&wB&w@3}FF؋F+^&w&9TFs:w &9DDw/kv&t<&p&pjjFԋV*RPj F.Rv&*+F=t hO[[.Rv&8u%jh4i4.RPN.&b^LJ8^LWVF>}t<}>thHh@E toj>j>j>hOjn>hSje>hWj\>C^ヿ8t70 .t..Rv&8ti4.RPh[NVFN u0 .t,.&Ou+0. tjjh6j hvhpE t3FFhŽڥm&'&h8 t66f][[RP+~+^_VFF1^ヿ8t%.Rv&8tƙ^XZFFN u^&X&_F^UV؃~|WU|~sM^ヿ8t?.R&8t/N N t vi4.RPv v  ++^v‹؉^F&Gl&LJ2SjF t^&LtF&&wp&wn6P\[[RPjhp&=u twvv6P, F u vv F u vvPF u(Fu">u vv vv#[[Fvv &NuF~u>u ^&^&GlFV^&G&WFV&G<&W>FV+ɉNNN Ntk^‹&@&P%^&GtlFVFV^&9WFr4w&9GDv,k^F&G&W&&W;Vrw;FvFV뵋FV%FV=FVFV^&9WFr&w&9GDvkv&&P%FVËFV^*WV^&G<&W>FV&_^F&G(&W*FVFF.vv^&vvRP)FVFVFVFF+k^^F&9Wsw&9Gv}vvvPFPNQNQ*F֎&&T+FV;Vr w;FvVދF܉F܉Vރ~tx>tU^&_8&w&7RPvv NFF+^&9WFrFw&9GDv>+ɉNNvvPjvvRPFVRP'F؉V t+^_FWV^&G<&W>FV&G&WF܉Vގ‹&O(NF+ɉNĉN‰NNNNNԉN&Gt>tF^&G\N9Nt3SQQFV^&Gt=^&G&WFV-vvF@jPFV uv>t>t FVvv~$Pjvv&F‰V u9^&GtVFVĀ>tY&Gu>uF‹Vģ !>u6|669VwEr9Fs>h~vvF‰Vġ9Vwr9Fshh G$m>tvF‹VFV;rVw;vP6|66F‹V+FV66h&6z6666h&/vvjvvvvz)^&GX&WZF‹V&GL&WNF&FV&&>t>t FVF FuKvvvjvvF+RPFVRP$F‰V uFV^&&k^^F&G tz+&G&GPPPvv&w&7(F։V؋ FuRv֐U[[FVFk^^F&G&G&Gt9Pv֐O[[ Pvv֐OF‹Vkv^&@&PFVFvv^&vvvv$F+;Vrrw;Fvk>udRRRvvRP'F։VjFN+PF+=u9>u2jjjvvjv'F։VjvRPDvv(F+FVFVFVFVFʋF+kv^&9Pr[w&9@vSvvvPFPNQNQf%F t`>t^&&vvvv FVk^v&9Psw&9vyjjjvv&&x+F+;r w;vȉNRQ&F։V؀>ujvRPCvv'F+FVFVFVFVj~u+FĉFFЋF+^&9WFrMw&9GDvE+FFk^v&@& t^&Gukv^&@&PF‰V(&G& Gt&kGFV-RP^&G&W^&G"& G t&kG FV-RP^&G$&W&+^_vvjj^&w`&w^N!V u.vvjjjj(1!V tvPjj(/ u"+WV+FF9FtVvvj^ &w&7F+RP%FV t,^&&Gn&WpFVRPvvV^ &7&FV^_WVFV8ڹbNċ^Ɖ(*v~+v~ "FV+FV46^&&&+On&Gp+NFNF$&v~^&&jj~|9։02N^+N^ "46v~+v~(*$&FV^&G^&W`SjjRP} u^&&vv- u"v vjRPP#^&G&WhvvR&w? v vPvv^&G &W"SPvv(^&G$&W&SPvv ^&G4&W6SPvv4e^&G(&W*SPvv$E^&G,&W.SPzx0#^&G<&W>SPvv^&G@&WB>tSjj(RP ugR', u|v vj!^&G8&W:&&&w8&&TDPl&^&&_8&G+^_"^Sjj&wd&wbJV ujjjvPjhb!‹S"+WV^&wvF&Dl&Tnȋ&+Dh&TjFVFV&Dp&Tr+ӉFVN^ӉFV^&Gb&WdSjjRPFV uvPvv* u"FV^&GD&WFFV^&GP&WRSjvvFVRPw ^>&WV&&Gn&Wp^FV&Gh&WjRPvvvvv~FV^&GH&WJ&Nv~&Ml&unVQRPvv\vvy[[+^_L^+&Gp&Gn*&&&F&&NVPRQj-FVvFPj@-=@ut~MZu3vFVFVRPj,FVvFPj@,=@t=~NEt~LEt~LXu%FV^&Gn&WpF&F&+UV+ &@^&F^&;^&Ì^ȐV^&w&DtrF&G(&W*tv trr uS~PFVRP~PhH< ~P x=u~Pjjjjj uTvv~PLxi鉆z| tĞz&2t ^&2Ğt&*@tĞt&?tK+^U^&G t &G&W&G&W+Uvvv vvv h%hA Uvvv vvv hQhA V^ &G(&W*FV^&F Ft]n^ F Ft^&?t &*@F^&*F t^v&@^&FN u^&*v&8^ Vv ‹&G4&W6FV&G<&W>FV^+&G&G&-&*F&GFGFF&G%tHthHtlHtiHtmFF9Fs~ukNNVRQlFVFHfF^&G%Ht*HHtRh|h @$FFF^&G+FV~t@k^^F&Gt&G#^&G&Wkv^&@tz|^&FV^&G&W0F)F~uFFfFVFV^&?t^UV^&+&G&GF FtaV&PGPvv ̓ u-vv )^&;uv&pvv ^&F^&?u+^v v vv ‹؉^F&w"&w vvL uv v v^&w&&w$vv+ V^&G<&W>FVN N u~t7k^ ؎&Gt&G^&FVhh >F V &_&9WFrtw&9GDrlk^&@tz|^&k^ ^F&GtF&WRPs'^&G<&W>kN -RPFVFV^&G&W+^ +FFh>[[hh$FV tFPvv^~uxF F umh0h$FV tFPv v jv^ F Ft8F^&~tF&G&GvvF[[^&G&W+Uh>vvˋ u ^&2V^&w,v &*PDPPd5 Ğ&*vvvvFPPFPhGL= vvPFPvv tFP㉆=u FPjvvFPttPvv^&G& GuFPPSFP^&G& GuFPPFVRP^&w&wh]x<^B^&+&G&GvvvvFPFPF=u FPFvvFPE~tvv vv*^&G& GuFPv v SFPL^&G& GuFPv v FVRP^&7&w&wv FPhb;U^&+&G&GU~ t;vvv vU(RP$j.vvaɋFV Ft^& vvhZ$U^&_&g% t u jv v vvFP+ˋFVFVF FFF FFP[[9Vwr9FsF V ‹&G뮋FVJV^&w&D&TFV u64 62 jh >FVFVjjjRPjhfFV&D^&&LJFVFV)FVSzFVv&d&f~&hvv6zFVRPh 96zvvvvc^Z+FFFFFh; h6 FV t)jhF ^RPă uhN h8hi vvtă uhr vvXă th{ vvBă uVFPvv"vvjjFPjr,+FFFPvvh 8 ~uFFFP F vvމF=t"PvS uvމFVRP>ueFPFP݉F=tPF^&FV^&&>u^&&$vjF$ t/~tvd FF Ft ^&LJ~t2v*Fvv t~t vv!~uFVF+FFF}FFFFFVFVFVFV~uF\FVFVFFFF>FNNFF+FF=w.B BuBA]BuBB?B BpBFV  FV  ^v&FF~t!N^+ڋF++N ^   v F^Pvvv FFFF;F~~}~|^&^v&ыFN tl^8VFFF F uF+FډF؋FF^&%Fр AN̉N&OكNFV^=u*FF*F%t6-r-wHubh h f.F+FډF؉FFF@u~t]^&GFF&G*HF̀~t+FFGFF-Ft&G&WFVG &GFFG͋^&GFFGFF~t +FFFFVFu&&wNvF~tY^&G*FF&GHF̀~t+FFGBFt&G&WFVG(&GFFG^&G*FFGFF~tDFFVFtO^F&FFFPFPvvvvvvaF FtTF@u ~u^&GFF&G*HFFt:&G&WFΉVЍG FFN Nu&&WN҉VF&GFFGFFN Nu&NF@@ɋ^&GFFGFFGFFFt&&WNΉVF^F&FFF FtF u*^F&&WF҉V-~u^&G*FF&GHFFʀt&G*FFG(Ft&G&WFΉVЍG&GFFGFFF FtF t ^FoF Fu^F^&G*FFGFFGFFFʀt&*NF@F.Ft^F&&WFΉV^F&FFF Ft F tF Ft^F&FFFʀt F*FFF$<u!vvvvvv΍FPFPtvvvvvv΍FPFPSh h *F+FډF6F Fu ~u!FҋVFVvvF̋FPvvvvvvv v;F+FFރ~t N ~tF%@=@@@@F F+FFދFF+)F Vd+^DV^&G<&W>FV&G@&WBFV+FF&G&WFV‹&G(&W*FVF^>&WVFV&GH&WJFV&\t&GL&WNFV+F܉FfkFFRPF։VvvvvҐFVkv^&@ tjjjvvjjjF֋VRPvv FVvvjjj^v&&PFVRPvv{ FΉVRPvvvvvvFvv vv FVFҋVԋNk^&9Prvw&9@vn~uhvvQPFPFPFP6F u^^F&G&W&+&WFVk^^F&G u&G+PQ6[[FVFڋV^&9WFrw&9GDv~u +FԉFEF^WV^&wF>&WVF&OP&wR‰^&A&Q~&A&QNvn^~u~t,^v&&P&M&U&&U+^_FFFFFFPh=. tF FV~ u~t8vvv j;F u;Vt +vv )FVFV FV | =v+Ҹ tCvjjjv vRPFVRP9tvvV +FVvv v vv4[[RPF+RP U~|xj{F V rRPFVRP ^&$^ ^&G~ ^&G^^&G^^&G(jF V rRPFV@RP誺A*F^&S[[ 6^&&GFV $FV ~t  uFFVЉF҉FЋF FFFFFFԃ~uK tAP[[FPvvvvvv h'$FV^&&WFVFPjh , tvvvvvv hQ#볃~u+^F F܋NN+ɉN҉NЍNQPFPr, tv vFV܉FVRPh}# F֋N^&&GZ.WV+FFx&FFjvvF+RPNQuFډV t(jjjvPWV`FV Ft v&FV^_ȶVdžNFV dfvvv FPW~ udžNF~ |s hh!+8vv v vvk  PFVFV  FV^ WVFFFVk^ 9 u 9 uFFF9Frك~t>k^ 5kF  ٍ FF;rܸ+^_+FFF Ftv v vvvvvyFVFV9Fu 9Vu+~wr~w FVFPv,F$`F FFF FF FF *Fj FP葴ډF2^0^NFPv,v- tEы^1v[FV衴2F%3ȊF* Ȁ@N ^N1F Vx&FF~t=FPv+FPv&,^v&^&^1F^$WV^&wvF&|&& t/F&*hjj|&F؉Vڋ‰FFP+ 33A1F~tFPv)F$`F^N V1@NV1@ N1~tp tgF Ft_^&*|T~ tNF+PQ*Pj F^v&P^v&p&p&p&0v~& V+^ Vz&FF&FFFF FtXvv([[~sD~&& t5^v&P^v&p&p&p&0v~& ^NWV؋FV FFVFP~tF@uRFPNFi4.^F&G<&W>FVFkv^&@&PFVFV9Vvr9Fwk^v&&xN~;s_w;wVvvv+FV 茯FPNQVR^S^vvvvʋFVRPvvh^&G8&W:RP jvv^&w8&tvv ^>&WVFVv&D&T&+&TFVF&GH&WJFV6vvh~u#~sjN+PPQ]6^v&&PFVRPvvv66vv66FV+RPFmFʋF+^&_&9WFr-w&9GDv%k^F&G u,&G+PQ([[)F̃~w"^ヿ8t.Rv&8tՍFP+^_؋F^ &GF&GF *&GF&&G&G؋FVFVj PRjz&6 +FFFQFPFPP F^&G FP^^F&G F+FFFPFPP j jz&6vv航 Uvvz'[[++FFhv v g th vvN u 66thvv. u (RPh$vv  uhh3h,vv uj h4vvө u j(P(FVFV^&G&W t+ WV&FF>t 6F^&?u@@FFLhH+RPFV u6vPWVh$vvWVE&D+&G&&G&G&G &GGP]&G &W+&G&G&G &G&G&W&G&W&G &W"+&G$&G&FVHFV+&G8&W:F$+FVFV+&G4&W6vvvHP +^_UVWhЎb&`f>d&gf&gff&dfff ghgFgFgFhgF\gFgF fVf3f3f3f3f3f3fenh&`_^]Uhjl thh'[[v&xjj([؎&+ێ&GG%؃>xu&hr([[ u " txxxWV؋FF u> tFعP&@WV^31ًʸ1^_ЉFF^_UvvUWV+j![vv'"[[ tWf![^_Uvv t vv'WVFvv#[[FVvv [[@FFVW^Nv~1_^^_WVF t~vN^ 1ЉFF^_ v v|"[[FVRPvvg"[[+FVRPUv v vv^&&WFV uvv%[[FV^&&WF Ft*F Ft'vv vvH$^&&W u++FFFFv vvvFPFPVFV̎&+Ƀ>u&GG$<أU u `޿NaU u `޿Na t+`޿NFaFR u `޿NF^aF9Fu+ t+FF~}v tF@ t+j t+jB t++FF0vG t"vhh4EjvFF~|ʋF+UvvvUvvvUvUv vvv9Uv vvvgUv vvvUvv-[[Uvvv vZUvvv vUvvv vԤUvvvv v   Uvvv vUv vvvUh!"[[FV tbhvP hvv} hvvd hvvK h3![[FV tIh9vP hDvv hQvvh\L![[FV t0hgvPhtvv F~tHF VFVF~?}&^jFF^&?u^ƇjhjhF F |>v vP;Fu+F~t vvv vj@F $V؋FVFV^ ^F&?t&:u&‹&FV@@F!FFA^&&؉^=tF, ^&,@FF^&:GF^&?\u^F&\F؋vGV!vv tkF^&\GFFVFVF܉VF^&?.u>^&?\uFN-&?.u'F^&?\un ;^w+"N^&?\u^&vF& u^vvFVFVN^& FV@-:t-"tF9FwًVjvvRPv v a j.v v 衠 tj.v v 荠‹&#FVN ԟ؃^F&F N u &ء uh hFPvv t FP[[ FPz"F FtVj vvFP} FP辠[[v vFP7 tNFPw[[v vFP uj vv FP' FPD[[FPvv v v v v FVRPhA uv v vvh* t^&v v vvh# t^&v v vvh, t^& v v vvh4 t^&v v vvh< t^&OF FtFVE+FF tFPvvv v  FV&+ێ^F&GGu^&.&G+޿ VNF Ftshvv FV tXvvvPvv[[vvFVFV^&?\t&?/t&?:t&FVN9Fr V t1FPv v vv tF Ft vv$ uv v FV^&.&GF Ft2Svv.vv^&x\uNS^&@^hShF=FV tvvvP vvvvvv^hghhohwh~hhhhhhFV t hvPhhFV tChvPKhFV t&F^ ^&&GNF9Fs^&؎&FF<hPvvh3 uvvvv0vv@F^&?uFVC!rNF%=ȦV&? t&?udžZ\< t tZF^&Z\<;uۃZtZ[:t[\t Ƃ\\ZZƂ\\Pvv\Pv v \P3 tvv\Pvvx[[^&?;t&? uF^&?;t1^&*^V^&FFF F tW^f dtGfdvvvv h vv vvfdv v t~t]FF^f dtCfdvvhh hvvfdv v> tFF^f dtCfdvvhhQ hvvfdv v tEFF^f dt#hvvfdv v tFF^f dt#h%vvfdv vg tFF^f dt#hvvfdv v* t>tfFF^f dtLfdvvhh'6 hvvfdv v tv vhFv vvvv vhR ^hvvh‹&h t"؀\uƇ:u hhtȂV؍FP~ tv{PFPv vZFP7~B jvjjF~BPt~B;F~B F~BgF~BoD~BD~ u FPv [[^FbFpF jvjjFP7F:jvjjFP!FPhFP [[WQ~N F F +HY_WQ~N F F +HY_WVQ~v NY^_VWQv ~NjN1;F u;v;sNOǨtIY_^WQ~F N Y_VWQS^~~ v NK[Y_^fffffffF tffffF tfffXPxXPxXP yXPDyXP|yȲdžNvv vjvPPh=udPMuQFuRTFV PMuQZuPP4[[܀PBtQWuFtdžNFV ^ &&WN ^^F&G+ұ ΓFVF^&t&?MuF&G+FFVFVPvv v+FPFV |vFPj@=@t~MZuOFVFVFP_[[FVvFV FVRPjKFV |^vFPj@S=@uL~LEuF~LXuF ~NEuF~uF FtFVFV+FFvvvjFV^ &&WFvv v vv uvv v vvFPv vvFF FFFF=FNQP tFF+FFFFFPh>h tF+FFF FFFF FFPFBP tFVFF FFFFFF FFPh? tFFF FFFFFF FFPh@ tF^F&^ F & uFVUjjvvjjvƎFV؋F Ft^&?t&^F&^F&:FVFV t9^&?t0F&^F&^&?u&/t&\t ^F&\F V FV t&^&FF^&?uFVFV t1^&?t&?.t ^F&.^F&^F& t ^&Uvvv v v v 辐[[hhw'hhhah [[FV thvP  u hq[hvv FVmUt+vvvvv v vvF FVFPv vvj66F+FFv։[F FVFPv vvj66iF+FFFF FVFPv vvj660F+FFFF FVFPvvjj66F+FFFu+ˍF FVFPvvjj66F+FFFUvv3T[;u%t[S[0t/5UX $~]tUFN]FN_^][[ZPh&6&/,X3u3UFN]FN_^][[ZUPFFFFF FF FFF FF FX]UVWF^OWwOxQFO_ !S^GwWOG G_^]US^F FGSv[]UVWF^ wWwOYF^tfffff1S^ iUS^ FFGSvv[]VWQv ~NjN9;F ;;NOǨIY_^WQ~F N Y_؍FPv; uˊF* ؍FPv uˊF*FF FFPvY t؋FWVvvr%=t ^_ː~ tWvvn%ȃ^_ؐ t!jjFPvj o u*+ːFFFjjFPh t֋FF tFFFV"+FFF. u*FFFjjFPjw t^FFVFPv t F$<t+ː F t&FFPv uvHȐFF tFFFVːFFFFvvFPh ːvȃːWVؐ) tFFv jFPvj  6FFF$FVFV^ڥ^&@F^_WVؐ t#FFv jFPvj v F2FFF$FVFV^FV ڥF^_ː؍FPv u+ˋFFxjjFPhv ~@ː؃>ː؋FFjjFPj6 f*؋FH@F+FFPPFPhH tFFFVvvF |Fu+vjFPhI FvjFPj t FF +FFFVːFFFFF+FFPPFPj1 tFFFVːFFFFFF F+FFvPFPj tFFFVː؋F H@FvjFPhJ F t-F t'FPvF HFFPv?F FFFPv tF*ЋN^* FFVFV"+FF u5FFFFF FF jjFPv FF[F tOFPv FFFFF HFދF* FFPvR tFvFVv F+ұuFRP$؃>u)FjjFPjj u+ˋFFFF jjFPh Fː؃>u!FjjFPvj +ːFFFjjFPh +؃>ujjFPjj FFFːUVv &<t&&8uFF ^&?u؎F&^ &8u^+^ːF^&G &WFVFFF^&9G ~)^&w&7v v o t^&G&WF&G&WFVFFF^&9G~^&w&7v v  t+UVء+ێ&GB&WD^&&W+FV&DB&TD^Vء+ێ&GB&WDFV;Fu.;Vu)v& &T&OB&WD+^&&WFV Ft*FV^&9u&9Wu&7&&TF&&W뼸^ːء+ێ&GB&WDFV Ft2^&w&wvv  t FVː^&&W+JF FFFVFjFPh t[~tFFF+ێ&GGt F܉FF F؉FF։FFFFȉFSSFPv ː̈̀MS Run-Time Library - Copyright (c) 1990, Microsoft Corp%D $ hd 5 [Enter loader...In loader] Leave loader...Exit loader DOS4GX_SPAWN_CMDLINEUsing SPAWN command line %s %s UNKNOWNos2envlinexeLINEXE: Using OS/2 2.0 Startup Conditions... LINEXE: Using DOS:Extended Startup Conditions... tiledlinexeLINEXE: Built Tiled LDT... can't allocate memory for LDT. LINEXELINEXEVMM4GdemandloadlinexeNameD32_KERNELDOS/4GWVMFABINDVMFMAVMFILEIOLINEXE : Demand Loading Enabled...FMA handle %lX LINEXE : NOT Demand Loading...single process only int21_call_16DOS16PKGflatnzlinexeFlat Model, Non-zero Base Linear Address in effect... invalid linear executable formatnot enough memorynot enough lockable memoryfile I/O errorcan't resolve external referencescan't load requested programINITDEINITLOADERUNLOADFREEMAPRELUNRELCANLOADGETLOADTABLEGETLOADNAMEGETERRSTRLINEXE_LOADMODULELINEXE_GETPROCADDRLINEXE_GETFLATREGSLINEXE_FREEMODULELINEXE_GETMODHANDLEXXXGET_OBJECT_MAPLINEXE_LOADER&hU$$#F6I/[obLINEXE_MOD_INFO_SEGIgnoring FLATNZ module... LINEXE DEALLOCATION: LA %lX FREE MODULE %d %s LINEXE misinformation : PROCMAN disagrees with mod_ref_count... verboselinexeCONCONCONDEINIT : Freeing %s tiledlinexeLEL_RETRYlinear allocation too low PRELOADING module %s for %s unable to find %s.%ld - referenced from %s unable to find %s.%s - referenced from %s unhandled EMPTYFWD, GATE16, or unknown relocation unhandled ALIAS16 reference to unaliased object Trying SEGEXE loader... SEGEXE_LOADMODULESEGEXE_LOADERSEGEXE_GETPROCADDRSEGEXE_LOADERDOSCALLSImporting %s.%s : LA %lX Importing %s.%d : LA %lX - SEG = %X UNKNOWNCHEWaaaaFLATNZ_ALLOC: Allocated %s: LA %lX - %lX Bytes LINEXE: chewing too-low memory %lX bytes... DLL STACK Calling DLL initializer for %s @ %X:%lX NameD32_KERNELDOS/4GWDLL modules not supported DOS4GOLXKBDCALLSVIOCALLS Skipping KBD/VIO... Attempting load of %s from %s unhandled NRRENT relocation unhandled or unknown relocation 0123456789ABCDEFINSTANCED ALLOCATION: %s - LA %lX - %lX Bytes - retcode %X SHARED ALLOCATION: %s - LA %lX - %lX Bytes PRIVATE ALLOCATION: LA %lX - %lX Bytes internal LINEXE object limit reached DEMAND LOAD: %lX => %s Obj %d Page %d LFA %lX DOS4GOLXInfoBlockTIBInfoBlockPIBD16SelsD16InfoD16Psp%s.%s = %lX LINEXE_PIBLINEXEVMM4GLocking %lX - %lX Bytes - retcode %d exiting in locked region [%d] DVX_Process_ManagerDVX_Global_Seg_AssociateDVX_Global_Seg_AllocDVX_Global_Seg_BroadcastDVX_Dos4gx_Get_OptionVMM4GVMALOCINSTVSUPERRESIZEVSUPERFREED32_KERNELDOS4G_GETENVDOS4G_GET_APPPATH0123456789ABCDEFDOS4G_GETENVD32_KERNELverboseverbskipinitskipsymnoclosenoignoreDVX_HOME_DIRDVX_Process_Managerdll\msclibpathsegexedll\os2_20libpath32linexe.PATHCOMSPECDOS4GLOADERDOS4GLOADER.dll.exe.comChecking for %s%s%s Searching LIBPATH32=%s for %s%s Searching LIBPATH=%s for %s%s .Searching COMSPEC=%s for %s%s Found '%s' NOT Found :: %s .sym merges ; comp ms; goERROUTERRPRINTERRDIVERT (08@Pp_C_FILE_INFO=/ ((((( H   <>R6000 - stack overflow R6003 - integer divide by 0 R6009 - not enough space for environment run-time error R6002 - floating-point support not loaded R6001 - null pointer assignment ! R } 6in,4L"\$$9AI1KV,YjYYZ\\\+]P]k]] ^"^[^^^_R_p__M`l`w````Yaaaaa b,bKbjbbbbbc2cRc|d*elfgEg5hijkl2lmoopFrNrVr^rfrtt#uauuu>vhvvvwwwwwy:z|F|||^}~J~n~~Px(jDڂ>䅀C &,4 fjn-`prtvxz|~BW":EINT31W.EXP7 ?requires DOS/16M $0!<s3P˿6TV66gP6g P6g6g6&P6t  +3 3hjjjjjP.ظ6RP 6> uXP6 PR!&&UjVWU^7wwWw ^3tFO.O3tY[X]S^ FX%G OWw G^YOXYtn_^X]UPvv v vv?]Uvvv v vvj!]̸5!` b %! .t &6, 36 sX6 ڻ6 t &,>3&=t4 R t 3u!} ,Ar ,Ar ª} D!r €t} @Ky U3UUVWUVWQ u x> u c Zz tX Pu ~uFX uFL!_^]ˋ  ` %!> t   %!;s EtUPB> t P/]UVWV ;t@t 3_^]UWv t 3I> u @!_]UV  FV tnF Ftfvv^&G& tJ&w&7j;~1^&&8=u%VvvSa u^&&W@ F+^]UVW UVW2҈Vv&< t< w< r<+t<-uN&N t$v <0u& u uŒ,A<ۀ AAۀ A:t^_]UW~3AيF O&8t3Njnj_]Uv ^ t-&'C:t,A<ɀ A,A<ɀ A:t]UWVN'~3ˋv D3&:EwtIIы^_]UWV~v ߋN t2Ì^_]U^ ,A<saC uڎ]U^ ,a<sAC uڎ]U~3I]U׋v ؎3~ǨtI]U׋~3u~ +؎FFtI]UVW~ 3It++hh'[[FV uhvPH&hvv/&hvv& t t uohU'[[FV uThvP%FV t ^ t-h#vv% ujjjN$ &&& u ff1 t +FV tCFFFFFh9vv %FV tcFPj1^ tOHhhh j uFhh j  u">%؃~u;>t4hG%[[V t"hRvPV$FV t6^[ t66j6 t66j US^&(  f`ffSFfaF[]fRATIONAL DOS/4Gg} gM,D..d gfugugM,f>S fgfP gfEgEge,ffaf.. &gfs&gsf>S g^fP &fG &G&gfs:&gC:hh.hhh&h 5$[[FV thvP" u h1[hvv"FVmUt+vvvvv v vvF FVFPv vvj66F+FFv[F FVFPv vvj66iF+FFFF FVFPv vvj660F+FFFF FVFPvvjj66F+FFFu+ˍF FVFPvvjj66F+FFFUvv؎ &8 +ێ&GG%؃>.u&h(-"[[ u  t...WV؋FF u> tFعP&@WV^31ًʸ1^_ЉFF^_UvvUWV+j]v[[ tW@[^_Uvv t vv'WVFvv%[[FVvvv[[@FFVW^Nv~1_^^_WVF t~vN^ 1ЉFF^_ v v[[FVRPvv[[+FVRPUv v vvhV/ [[FV tbhjvPhvv68hvvr:<hvvY24h[[FV tIhvP- hvv"$hvv&(hZ[[FV t0hvP*,hvv.0 F~tHF VFVF~?}&^􈇶 FF^&?u^Ƈ h hF F |>v vP;Fu+F~t vvv vjF $V؋FVFV^ ^F&?t&:u&‹&FV@@F!FFA^&&؉^ tF, ^&,@FF^&:GF^&?\u^F&\F؋vGV!vv tkF^&\GFFVFVF܉VF^&?.u>^&?\uFN-&?.u'F^&?\un ;^w+"N^&?\u^&vF& u^vvFVFVN^& FV@-:t-"tF9FwًVjvvRPv v K j.v v  tj.v v w‹&#FVN ؃^F&F N u &ء, *uhh *,FPvv , *t FP*[[ FPr"F FtVj vvFPg FP[[v vFP] tNFPa[[v vFP: uj vv FP FP.[[FPvv v v v v FVRPhA uv v vvh* t^&v v vvh t^&v v vvh t^& v v vvh t^&v v vvh t^&OF FtFV+FF4 2tFPvvv v 2 FV &8 +ێ^F&GGu^&.&G+޿ VNF Ftshvv FV tXvvvP vv>[[vv FVFV^&?\t&?/t&?:t&FVN9Fr V4 2t1FPv v vv2 tF Ft vvJ uv v FV^&.&GF Ft2SvvT vv ^&x\uNS ^&@^hhFV tvvvP vvvvvv ^hh>hh hh>hh'h>h. h0FV t h>vP h5FV tCh>vPq h>FV t&F}^ ^&&GNF9Fs^&؎ &< FF<h=PvvhI uvvvvV vv@F^&?uFVC!rNF%=ȦV&? t&?udžZ\< t tZF^&Z\<;uۃZtZ[:t[\t Ƃ\\ZZƂ\\Pvv\Pv v \P3 tvv\Pvvb[[^&?;t&? uF^&?;t1^&*^V^&FFF F tW^ tGvvvv hdkvv vvv v t~t]FF^ tCvvh>hyh>vvv v> tFF^ tCvvh>hh>vvv v tEFF^ t#h>vvv v tFF^ t#hvvv vg tFF^ t#h>vvv v* t>>tfFF^ tLvvh>hh>vvv v tv vhv vvvDv vhA^h>vvh>‹&h> t"؀=\uƇ==:u h>h ȂV؍FP~ t  PFPv vFP]~B jvjjF~BPt~B;F~B F~BgF~BoD~BD~ u FP2 [[^FbFpF jvjjFP7F:jvjjFP!FPh FP [[^&&WFV uvvg[[FV^&&WF Ft*F Ft'vv vv^&&W u++FFFFv vvvFPFPVFVȲdžNvv vjbvPPhr=udPMuQFuRTFV PMuQZuPP4[[܀PBtQWuFtdžNFV ^ &&WN ^^F&G+ұ lFVF^&t&?MuF&G+FFVFVPvv v+FP~FV |vFPj@=@t~MZuOFVFVFP_[[FVvFV FVRPj%FV |^vFPj@-=@uL~LEuF~LXuF ~NEuF~uF FtFVFV+FFvvvjFV^ &&WFvv v vv uvv v vvFPv vvUvvv{UvvvUvUv vvvUv vvvUv vvvHUvv[[Uvvv vUvvv vUvvv vUvvvv v   Uvvv vUv vvv FF FFFF=FNQP tFF+FFFFFPh>B tF+FFF FFFF FFPFBP tFVFF FFFFFF FFPh? tFFF FFFFFF FFPh@e tF^F&^ F & uFVUjjvvojjv$ރFV؋F Ft^&?t&^F&^F&:FVFV t9^&?t0F&^F&^&?u&/t&\t ^F&\F V FV t&^&FF^&?uFVFV t1^&?t&?.t ^F&.^F&^F& t ^&Uvvv v v v [[WQ~N F F +HY_WQ~N F F +HY_WVQ~v NY^_VWQv ~NjN1;F u;v;sNOǨtIY_^WQ~F N Y_VWQS^~~ v NK[Y_^3T[;u%t[S[0t/5UX $~]tUFN]FN_^][[ZPh&68 &/,X3u3UFN]FN_^][[ZUPFFFFF FF FFF FF FX]UVWF^OWwOxQFO_ !S^GwWOG G_^]US^F FGSv[]UVWF^ wWwOYF^tfffff1S^ iUS^ FFGSvv[]VWQv ~NjN9;F ;;NOǨIY_^WQ~F N Y_FFFFvvFPh ːv ȃːWVؐ) tFFv jFPvj  62 FFF$FVFV^ڥ^&@F^_WVؐ t#FFv jFPvj r F22 FFF$FVFV^FV ڥF^_ː؍FPv u+ˋFFxjjFPhr ~@ː؃>2 ː؋FFjjFPj2 f*؋FH@F+FFPPFPhH tFFFVvvF |Fu+vjFPhI FvjFPj t FF +FFFVːFFFFF+FFPPFPj- tFFFVːFFFFFF F+FFvPFPj tFFFVː؋F H@FvjFPhJ F t-F t'FPvF HFFPv?F؋FFjjFPjB f*V؃>2 u2FjjFPj jjvvv" ^ː8 FF^&G&+G+ҹFjj&GP&?r}6 L PVء8 FF+^&_&@F t8Ft } ^&?}+^ː^&_F&@jj^&GP&w v t^^&_&@ FFFPv_ tF*ЋN^* FFVFV"+FFS u5FFFFF FF jjFPv FF[F tOFPvFFFFF HFދF* FFPv tFv FVv F+ұuFRP$UVv &<t&&8uFF ^&?u؎F&^ &8u^+^ːF^&G &WFVFFF^&9G ~)^&w&7v v o t^&G&WF&G&WFVFFF^&9G~^&w&7v v  t+UVء8 +ێ&GB&WD^&&W8 +FV&DB&TD^Vء8 +ێ&GB&WDFV;Fu.;Vu)v& &T&OB&WD+^&&WFV Ft*FV^&9u&9Wu&7&&TF&&W뼸^ːء8 +ێ&GB&WDFV Ft2^&w&wvv  t FVː^&&W+JF FFFVFjFPh t[~tFFF8 +ێ&GGt F܉FF F؉FF։FFFFȉFSSFPvE ː؍FPv uˊF* ؍FPv] uˊF*FF FFPv t؋FWVvvr%=t ^_ː~ tWvvn%ȃ^_؃>2 u)FjjFPjj u+ˋFFFF jjFPh Fː؃>2 u!FjjFPvjR +ːFFFjjFPh +؃>2 ujjFPjj FFFːV؁~sF Ftvv v~ u+^ː>2 u'FFF FjjFPvh ^ˡ> FFFj^F &^F&GV^V؁~sF Ftvv vR u+^ːFvjFPh@ >2 u'FFF FjjFPvh ^jP4 FFF^F &^F&GV#^vv vv v' ːvv vv va ː؁~r+˃>2 u)jjFPvh ^F&^F&> FFF^&^&^&G^&Gː؁~r+˃>2 u)jjFPvh ^F&^F&4 FFF^&^&^&G^&Gː̈̀MS Run-Time Library - Copyright (c) 1990, Microsoft CorpINITDEINITINT31D32_INT31pt ux | INT31DOS16PKGint31_call_16int31_creg_16int21_call_16D32_KERNELINITD32Int21HandlerDirectD32SetIntProcD32_KERNELD32CancelIntProcERROUTERRPRINTERRDIVERT$VMM4GLocking %lX - %lX Bytes - retcode %d DVX_Process_ManagerDVX_Global_Seg_AssociateDVX_Global_Seg_AllocDVX_Global_Seg_BroadcastDVX_Dos4gx_Get_OptionVMM4GVMALOCINSTVSUPERRESIZEVSUPERFREED32_KERNELDOS4G_GETENVDOS4G_GET_APPPATH0123456789ABCDEFDOS4G_GETENVD32_KERNELverboseverbskipinitskipsymnoclosenoignoreDVX_HOME_DIRDVX_Process_Managerdll\msclibpathsegexedll\os2_20libpath32linexe.PATHCOMSPECDOS4GLOADERDOS4GLOADER.dll.exe.comChecking for %s%s%s Searching LIBPATH32=%s for %s%s Searching LIBPATH=%s for %s%s .Searching COMSPEC=%s for %s%s Found '%s' NOT Found :: %s UZ_.sym merges ; comp ms; go (08@Pp_C_FILE_INFO= ((((( H <>R6000 - stack overflow R6003 - integer divide by 0 R6009 - not enough space for environment run-time error R6002 - floating-point support not loaded R6001 - null pointer assignment |!     " $ & * , . 0 2 4 8 z  B ~ & "45s%Q:dT-e ""##:#Y#x#####$@$`$$$'%t%%&.&O&w&g'(**+++,F,\,,,-P---L.{.///0 111|22p333D444755666R777 2 4 6 8 : < > @ D L P BWcwhLWVMM.EXPOu v!"WVFFpFp~ڥ¥&њd?^ &w"&w &wLvvhb>Lt^N& PN&GFVN&G&W^ &G &W"6N&D&T^ &GLN&G 6UP6N6Nj FVĊ*؉FV4F=u0vvh1&vЎ~򥥥F^_PvvFV-RP6zN6xN@FVRPvvvF t0vvh0&vЎ~򥥥F^_^ &GPFV‹&O&G&W**ЋFV&G@t^ &G8&W:-FV^ &G8+-FVj FPRsrw-RP6zN6xN@FVFމVFuUF=uvvh/vvvsvvvv\ tvvhs/fh&<vЎ~򥥥+^_^_ː WVFFFF+;Nw.r;Ns&N&$6Nfvvv^6N+&@&F^_^_ːZF=u0FPFF t .F WVF~u_P6N&&PFVN6P&рကt>N&A& tuv tP 8HP뜐F+^_^_ː VFF+;:vr ;8r6N&&PFVȋ uNv& tlPQ6zN6xN<FVF t.fRvFV-RP6zN6xN< N&Nv&t&2Ȁ&0F@^ WV؋^6N&&PFV6N&&PFV>LtPN&!PN&GFVԊ*N&G&W6UP6N6NjgFV-RP66:FWV6zN6xN;RPj^vvjvv t6PWV66^; 댐vv^_؃>LtPN&"PN&GFVԊ*N&G&W6UP6N6NjFV-RP669Fv v jvvjvv+Vء8HFN~|)^6N&@& t6N&@& uF^θ^^ːWV؋FVԊ*҉FVFV-FVRP6zN6xN:FV^ 6NF~&&PԊ*ҋȋ3F+33NvNNVvWv6zN6xN9 6FV*N&&Pv N&^_UVNv&t&2Ȁ&0^&N& ^VNv&t#&$F2$&0~uN& ^ːVFFF+;Nw6r;Ns.FV^6N&9u&9Pu6N+&@&^^WV؋FV-RP6zN6xNz8FVfFVԊ*҉FVvvWV6zN6xNc8 >t fF8^_ːl5^_hrhzj{Fhh t &>.uF~t=th6zFv[{ː0FF؀FhhhFPh uhvڐh t2hh袛&>.u+%ɏ>t6 t> tY>t5hh Lgh 5h ihh fhh gh h f>Pu tvv֐+v tː >LtI>>tr tːSJSP3-P/PX tːhk+ːhhdJyqFVFhJF‰FFlJFFF`JFFPvhhKj uKvvhhUKj u2vvhhKj uvvhhKj tFFFjj.6bJ.6`Jj jj.6fJ.6dJj{ jj.6jJ.6hJjd jj.6nJ.6lJjM FF1DFHJ thJ$ː+FV^ N!sFN^F F tFV^ &&WFF&>/|&PF<"<|&J*ȊFː&QF<!<|&L*ȊF WVظpFVFV»r&p&P!PڥjhpFV Fuh@ė^_ː£OjhPv0>Pu)6K0&G&W6U.0^&G&Wvvv-F^&G&G$ &G&g&O+^_^_jho uhgjhR6//&G&W6641+ːhmha2tPHh<>LtP"h>tP66h蕃66hԕ66h4P Nt(6P6NhK裕6T6Rha菕>t hw|jhԊ*RPHdRPhCԊ*RPhh hːhtFV uhvPur tchvvTr tBh vv3r t!hvvrNN Nuhh gsFV uh+vPq t tːh0vvqNN Nuːh@vvoqNN NuːhNvvGq@B @uːR+FFFFFPjo^N &G&Wң+ːːVhkFV FuhV4^FFDF‰F%.FFF+ɉN^&&O&G&ON&O&G &G &G&O&G&G&G&O&GV&W &G"&G$&G&+&W*&W(&W.&W,&W2&W0&W6&W4+&W8&w:&W<&w>+&WB&W@&WF&WD&GH&WJV&WL&OP>&w`&wd&wf+^^ː،;Ft3FFF^&G$ &GFFF^&G$ &Gːؐ}*>Pu66,+V؃>Puhjb&&WĊ*Pjk‹؉^FFVĊ*؋&&P%FVR& u&sw &?u~@wbr^j&G+RP4k‹؉^FFVĊ*؋&&P%FVIjj@jj‹vFFV-@Ċ*؋؀&&P%FVwĊ*P&G+RPpj‹؉^FFVĊ*؋&&P%FVvvhFV^^V2t<  >Jt>t h ]>PuF^ t& $"FFF=rd btR>6b&&PА'P*F u@FP6N6Ng(FFF9NvD6N&&PԊ*҉FVȋ t jSQ 뱐d btcFF~sR^6b&t?j&PĊ*؊Ԋ*RP6rN6pNf6N6Nf66f>Lt 6UPӂ u3 t66' tj66 2t>  ^2WVjeFhepNrN pNuhhVve>LtjeNN NuLvJe NNP*F u@F PtFvNN Nuhh^_˃>Pu bdNNNNrh &G+RPfbd6N6NvNNFF~s^6b&&PP>R>ېNNĊ*؉FVFFFFFVFVF9FsYFVԊ*ҋȋ^6b&3+33&&x6b&6b&6b&댐#f*P6N6N{eNNVRP#PFFF9|9vjhԊ*RPoYRP t^_FFF9FwoeFV uhh^_ː^6N&3F+3F3V&&P6N&6N&6N&"FVjhjtdFVNNhhF+RPhRvƋ׊Ԋ*RPWhv% WhԊ*҉FVRPHXO"NP# ׊Ԋ*RP t ^_ːWhht6hCP ף Ԋ*NN+FFFVFV9rbw9 vZjRP66 $ jvv6N6N# jjvv6zN6xN-$ jjvv6N6N$ 늡 Ċ*؉F t@FF@xNzNFVF@ FށFVF9FvZvvXԊ*ҋ^6b&+ &&P6b&6b&6b&뒐 Ԋ*ң$?أ- hj@ja+^_^_ːVؐF=u+^ːP^6N&&P6N&&P6N&&PԊ*^^UV؋FVĊ*؋؀6N&&PĊ*^^ ؋F^^F&GF &GF *&GF &F&GF&G.VFFVԊ*҉FVFP~^NN Nuhh^ːFVRP6N6NyFP*^NN Nu몋FVRP6N6N9v]NN NumvvR6N+PN&&W҉FVȋڊĊ*؉F҉VjSQ3_FVF~u ~u*~|!FVFVvvFV ujjFPRًV^"$N N쉏&RPvvh@ F FցFVF֙;V~|;Fr t.vvhĊ*؉F҉V%FVĊ*؉F҉Vԋ^6N&&PFN_FV)FVF^+$"N8+^^V؀>u^&jj66QFFh#N~}^ F u&NȉNFFINNF9FwE9Fv>N&$u^ː&hFFN9Fs^6N&@& uޡN+FF^ tF~u~rFFv FV un~sFڋV^"$F F&8F FFVF9Fw t/vvĊ*؉FV&FVĊ*؉FV^6N&&PF8iF)FF^+$"h&^ː6VFFĊ*؉FVĊ*؉FN t@FFPv FΉVRPsYFVFVRPvvjF΋VЉF։Vh66 YFʉV̉FVhRPFVĊ*؉Ft@F+FԉF FVF+;Vr7w;Fr0^&3Fր3F3V&&W&&'FFV+F؉F։FԉFFVĊ*;Vrdw;Fv]F֋V؊Ԋ*ҋȋڋvvFvF&3+33& &\^&FFVpFʋV^^hhqUP }h j.rUP } hːȀVFh VIF^F^FPvvF t6FFvBtF됀z@uBPh@aqF뱃~h h@JqF~vjPFP uFPrB~!uЍFFVF^&?t&t吋F‰FVF^&?t(&Șu=t#tt&/ F^&?t&Șu =t#uِFV9Fu 9Vu)F ^ rFPvv 8o t Nyɋ^ ^㋇ F^^&?t0&u#^FtF, F^F&^&Qvvq^㋟ W5^㋟ &^㋟  tHtHtHtHua;vDFPvvF u+FFFVF^&?t&t吋F‰FVF^&?t&Șu#tF^&?t&Șu#uދFV9Fu 9VuRF ^ wpFPvv m t Nyˋ^ 7^㋇ F^FPvvFFF~})FPp tFPvvFϐFFV^&?t0&u#^FtF, F^F&^&FPvvAFFF~})FPno tFPvv FϐFFVP_o^㋟ W6^㋟ (^㋟  tHtHugHtHu>t2 t!QĘ;|;v^ˡ9|9vĊ*؉FV |=s FF9V|9Fs Pjj66F ңNN ӣNN ӣxNzNt%xNzN xNzN|N~NĊ*أP|Nt@PjhԊ*RPEP+^^ːF^&F<,t. t*< t&<#t"t, F^ F &FF&?,t &? t&?#u ^ &F^ F &Fː+FFFFPh1R uˋFFFFː؎&>. uː+ WV؋F@Ԋ*-FVRPFV u+^_ˋVFV*F+RPvvF*WPFV*RPv~FV^_^_ːU؋F Ԋ*RPFVRPː+FFFV~wrːhMːU؋F+PQMː؍FFVFP^7wjh xs+FFFv vvjjHu ^&? t&?tF F9FFΐ^&FUش4!K, . j 6. 6, )O, . DFF, &9GtːPK, &GF=u0 v-ːU؀>0 t , &GːQ!ːU؀>0 tF, &G˴P^! V؋FVFVh: >shj@jMNNhj@jM6 8  e P NtNPԊ*҉FVh hqgJ }h jgJ }h h^jjjP<FV;V| ;Fv6Jh<h @닋FV9Vs|9Fslj-RP6JS< |jj6J<=}-6J<JvvhO^6J;* jJLN Lu)6J;Jh h^ː6 6J&L&GL+&G&6 6J&FFF9* vXh heJjjjPW;6 6J&vL&@L+&@&6 6J&jhvv?NNjhvv?<>hE p+^^Vء4 2 u^ 6 &GFFFF9* v"L&@6 &GjeӐF6 &G^ː8WVFFVԊ*RP~tvv3 FFV΀RP F=uUFjP6N6Na F҉Vԃ~uvvvhX o >pN6NffFV-RP6zN6xN FΉVF@uFҋV*;Fu;Vu &F+ҊԊ*RPF6L&9u&9xtWPv> tjjh=hj n6rN6pNvm=u tjjhF+ҊԊ*ҋ^6L&&P&FVNՀ3F3V*1F1Vhr `nNՀhz Mnvvjv6N6N vh %nvvvh  n FҋV*;Fu;Vt>N3fh m&/F+ҊԊ*RPtF6L&9u&9xtWPv tjjh6rN6pNvY=u tjjhF+ҊԊ*ҋ^6L&&P&>N6pNffvvjv6N6N vh lFV-RP6zN6xN-FΉVЀfοRvWV6zN6xN< >Lt1N&1PN&GFN&G6UP6N6NjIbvh El+^_^_ WVFFFFF9* vT؋6LNV&+&PNV uF*~u tV9Vrw9Fv NNFV롐~uP~uJFFFF9* v2^6L&&P؋&9P| &9vF‹FV^6L&&PF^_^_ː؋FN^F&GF^&GF &G؋F^^F&GF &GF &GV6 &GFvÌL&P&Wv vjYFF6 &GF^^ːV6 &GFvÌL&P&Whv vj8FVF6 &GFV^^ːV6 &GFvÌL&P&Whv vjFVF6 &GFV^^ːFfjjF=tːFFF+;>w.r;<s&RP6N6NFVFuFːġP Nt  t뉐ːVءRT<>FV;Nrw;Nv+^,6 &GF6L&L&OjFVԊ*-RPj2 |jjj2=}F6 &G+^L+&G&PPPjM2FV<>F6 &G^^ː$F&vv~tCvv v h6rN6pNv h6rN6pN6N6Ne[ &h+PQB2 4 2 &G6+&G4RP68 Y64 62 ?SfR ڋ%ffZ[fP "fXf!UWQN F~2Y_] ffff%XXUfWfQfPf<f>NfFgf f<f+fHfXfYf_]UWQF N IF~Y_]SfRfPNf&fXffZ[˜SfRfPNf&  fXfZ3[fXffZ[ffҝUSfRfVfNf&fZ[] ffff%ffff%ffP f "fXfP f%"fXUfPfF"fX]Un]^UfWfS.f~f^eg_f[f_]PX @PXUQRZVZY]3USQR^VN B3ZY[]˴?U^VN & ]˴@XUfWfS.f~f^egf[f_]UfWfS.f~f^F egf[f_]UfWfS.f~f^F eg_f[f_]UfWfS.f~f^egffЋf[f_]UfWfS.f~f^fF egff[f_]UfWfQfN Ff~gfgfYf_]UfWfSF f~f^ ~ &gf~ &gf&gff[f_]UfWfSQF f~f^ N~ &gffC~ &gffCYf[f_]UfWfSfQF f~fN ff3fgf!fF ff+fHf&gf_fffffYf[f_]UfWfSfQF f~fV f^fN&gf fCf;vf&gfrfCf;fffYf[f_]`UhO&Eqظ&G3&O&]s&GO&]s3fO&]s&Eq33fd$ f\4fD8&ETDT&EPDPLLfD CEhO&fEh&EP;B$>@&fO&fEh&fE8f->@&O&EZ2ɀ> "&EZ&]sG&]qGX @P]XXaWOWfSfӎ.3& EZf f f;NfSfXff f>egegtؐJ yO&fEhf >@&fO2f&fE(&f]4&fM,&fU0&fu@&fm<&]T&m\&eX&UP&fe8&fu$&uL&uL&fu &uH&f}DfO&fEhf >@&fO2f&fE(&f]4&fM,&fU0&fu@&fm<&]T&m\&eX&UP&fe8&fu$&uL&uL&fu &}Zjj&uo&um&uH&f}DShPf&ffӎPf&[V^&G+&W$NFًʋË֊Ċ*؉Ft@FFPv=@F t2^&G(&G*FF+&G&GF&G$&G&^ˋF^&G&GF&G$&G&F&G&GF&G &G^ː ^&G&O NF&G$Ȋ*Ft@FFPvvv F t^&G(&G*ːF^&G&GF&G$&G&WV++FFFF6NNNNN&?u%G~u~uvF9~u +^_ FF+뺸^_^_ vsFV=u;uԊ*^&&WFV^&G&W&GFV=u;tLt%N&PN&GFVN&G&WFVĊ*؉FVFt FVrw^&G &G"&O,^ˍFPFFP=@F t6^&G &G"FF+&G&GF&G&G&O,=F^&G&GF&G&GF&G&G F&G&G&g,vvvh&V >LtKFVN&G&W^&G$&W&6N&D &T ^&G(N&G6UP6N6NjwL^ː^&W&ONVRQIF t^&G &G"&O,v^&g,ː ^&G&ONF&W+&OĊ*؉Ft@FFPvvvQ F t^&G &G"&O,ˋF^&G&GF&G&G&g,ːF^&G&WȋڊĊ*؉FVFt@F^&G& GuB&G*FFFFF;Fr"jv6N6N| t Fːː"WV^&G+&ONF&W&_^v=rw;Nr w;Nv^_vvËĊ*؉FVRPh/YT ~rw^&G %&G"&O,^_ːFV-Ċ*؉F+FF FVFF+;Vsw;FwFȋƒFVSQ6N6NA uoWV6zN6xN)FVFtvvFN&t&聯F=u#hGbS^&G &"&O,^_Wv6zN6xNFVFu(vvv8vvvv vv*FPNNĊ*RP糃vvvֳNN%RPtFVԊ*RP6|>6Nf^6N+&@&vV^&g,^_ː1^&g,^_ːV^&G+&ONF&W+&wvV=rw;Nr!w;Nv^&G %&G"&O,^ːFVV-Ċ*FVvvȋڋFV-Ċ*FV+ڃSQhU8Q FVFV9Vr#w9FrRPD F=t PG^&g,^+FFFFFFFFFFFVNN9Vwzr9Fssvv6N6N uFVF Fu FVFV9FV9Vrw9FvFVFVFVFV+FFFFsFV9Vrw9Fv FVFVԊ*WV+FFFFFFFFF+;Nw\r;NsTRP6N6N- u*F~u ~uv~F9Fu FV^_FFF뗐^_^_؋F+;|;vːP NtCF+++;>|;<r uːvFV=u;uԊ*^&&WFV^&G&G&GF=t_jv&w&7P*QP F+))9}+F)9}++ːFvvFF=tmFFjP6N6NY+;Fu ;VuFؐvvF+jvPhoM +˸#ːWV+FFvv>FF=uMԊ*^ &&WFF +;Nrw;Nv^_ˋFFRP6N6Nq+;Fu ;VuFِF 9Fv*+FPNN Q+6+^_FFFFjP6N6N uF F9Fu֋F 9Ftj+FPȋF+ҊԊ*^ &&WRPP*Pv +)6)69}+F +F+)9}++^_ː+F+;|;v ^_ːP NtGF +F+++;>|;<rv u^_v uF=ucԊ*҉FV^ &&WFFF9FrFF+RP6N6NPF+RP6N6NFVI WV66_Pvv66$ WV6zN6xN9FVRPvv6zN6xNJ WWV6N6N WWV66 Fte~FF+;NwPr;NsHFVĊ*؋^6N&9u&9PuF6N&&@QFFWPF=t;+RP6N6NfFV3F*1F1VvvWV6N6Nl fFFFfvvFFjP6zN6xN9 UjF +FPȋF+ҊԊ*FVRPP*Pv +)6)69}+F +F+)9}++ #^_ːFF~s^ uF޸ːWV؋F V Ċ*؉FFFFF9FsjvF+RP6N6N vWV66 fF+҉FVn2%1F1VvvWV6zN6xN 뉐^_ːWVFFFF9Fwjv6zN6xNHFVFt"Ċ*RPfFFFfjF+RP6N6N WWV66 WVfF=uWVRF=t!FFvvjP6N6N ^_ːFF~ds^* uFːܰ +FFF~sR^㋇ F=t?FF~s/NFu!F^ FFFː뤸ː؊F%FȸЉF^^! ː+FFNN9Vw0r9Fs)vv6N6Nd;FuF˃FVĸːF*@t!FVF V F ؋F V Ċ*؉FF t@FFVĊ*؉FjP6N6N߃FFFFFF9F~F*Pjv66> אFVVFFF+;Nw,r;Ns$FV^6N&9u &9PuF^+^^(WV+FډFF^&G&Oы؉V^ӊĊ*؉Ft@F^&G&ONމF6b&t'^F=u+^&G&W&G&W&O,N&6N&&@6N&&PԊ*ҋȋ6b&3+33&&b&b&b&b&6N&3&3&3N&&WN&N&N&hhhjhFVRPۃvv8J&6N&3+Ҏ&3&3N&&WN&N&N&fhhjFV~t^v&t3FډFF=r#+^&G&W&G&W&O,^_ːFFF9FsCFF=r"+^&G&W&G&W&O,^_ˋ^^v&t벋FF tFO~u"+^&G&W&G&W&O,^_ˋF++ƒԊ*҉FVĊ*؀FFދVĊ*؉FVFF܃~s^u~u"+^&G&W&G&W&O,^_ˋF^F≇FFFFVF9Fr~s^v&$<u"+^&G&W&G&W&O,^_ˋFVԊ*ҋȋ^&&3+33&&x&fvvF^&G&GF&G&G&g,^_ːWV^&G&ONF6b&uF&G %&G"&O,^_=r w=r w tF&G %&G"&O,^_ːVĊ*؀FFF~rF^9tu6b&>N&3+Ҏ&3&36N&&T6N& 6N& 6N& hhjRFVFNF~t"^v& &&&@& vv^LJ~u^&G %&G"&O,^_ː^&g,^_ːrequires DOS/16M $0!<s3P˿666gP6g P6g6g6&6NP+3ѐ3H6o6m6kWP.Miظ6mP6>uXP6P!&li&PiUjVWUӎۋ^7wwWw ^ 3tFO.Pii3tY[X]Sӎۋ^ FX%G OWw G^ YOXYt_^X]UPv vv>]Uv vvj!']UFV^ +F Ӌ]UVȎغj$%!3]UWVRQSP.Miۉ&UVWP !X_^]ώҋUVWP&[YZ^_]UFU3N&68r б2㋗s[YZ^_]&SPܡ6 GX6G6_[U~t~t HVW^ 3!F 6F)!)!U>P}!.\k.&Zk.5.6^ku.6`k.bk~t32P !XvVK!PP0!<X[}!.\k.&Zk..bk.6`ku.6^k5v]_^rM!25!:<%i!.N&6,36sB 6ڻ6N&,>3&=t4 ,t 3u!W,Ar ,Ar ªWD!r €tW@KyU3UUVWUVWQ ux>ucZ[ tX Pu ~uFX uFL!_^]ˋ:%!>xt yz%!;s EtUPR>t~P?]ˏ0!P<t)N&,s33uGG>qыѿN< t< t< to tkGN< t< t< t\ tX<"t$<\tB3A<\t<"tӋѨuN< t+ t'<"t<\tB3A<\t<"tۋѨu>kGB+ģm6?CC6q u6N3< t< t< t| tx6?CCN< t< t< tb t^<"t'<\t3A<\t<"t\Ѱ\s"N< t. t*<"t<\t3A<\t<"t\ٰ\s"3.UN&,333 t&>tFu@$F 2 P, oϋ3_I&6;,uQVW,_^Yt&?CC u&]UVWV;t@t 3_^]UWv t 3I>u@!_]r3]sPX2]s]2ˢS u">Pr <"s < r<vטHÊU^;Ur >!rƇWU^;Ur *F tH~ t3ɋѸB!rKF uFV y(6VFѸB!FV y NVB!؋VN F B!rW%U^;Ur >uW t B3ɋ!rWtpV3FFWVfN : uL`=vFܺ=(s+ԋN < t ;t#k ;u F ^__PSQ+Q^@!Yr F;wY[Xß~us W@t ^?u F+Ff^_N u V@!s uW@t ڀ?uU׋ތ؎~3u~+FtI]U׋ދv؎3ы~ǨtI]UWV6o tJ~tDv 04;~ 9=uWvS u@ FF<u+^_]ːzUVW~]MUu} !W~]MUuE r3 u _^]UVW~3I:IN~3I+Vv%vuыߋNuGF3_^]UVW UVW2҈Vv< t< w< r<+t<-uNN t$v <0u u uŒ,A<ۀ AAۀ A:t^_]UW~3AيF O&8t3Njnj_]Uv ^ t-&'C:t,A<ɀ A,A<ɀ A:t]UWVN'~3ˋv D3&:EwtIIы^_]UWV~v ߋN t2Ì^_]U^ ,A<saC uڎ]U^ ,a<sAC uڎ]U~3I]U׋v ؎3~ǨtI]U׋~3u~ +؎FFtI]UVW~ 3Iː؃>u)FjjFPjj* u+ˋFFFF jjFPh Fː؃>u!FjjFPvj +ːFFFjjFPhH +؃>ujjFPjju FFFːFFFFvvFPh ːFvjFPj t FF +FFFVːFFFFF+FFPPFPja tFFFVːFFFFFF F+FFvPFPj tFFFVː؋F H@FvjFPhJ F t-F t'FPvpF HFFPvF W+FFvvPv gFV u=v+_ˋ Ft u~ v F HF t4 u~v'jv jjpFV FVFHFFFPPS[[~uFFFFVFVFV~u~vFF +N ~+ۋNع^F +)FVF FuFV_FIFFFFPFPPuh[[FV tbhvPTh5vv;hJvv"hcvv hyv[[FV tIhvPhvvhvvh[[FV t0hvPhvvf F~tGF VFVF~?}&^􈇐FF^&?u^Ƈhh( F F |>v vP;Fu+F~t vy vv vj F $V؋FVFV^ ^F&?t&:u&‹&FV@@F!FFA^&&؉^tF, ^&,@FF^&:GF^&?\u^F&\F؋vGV!vv tkF^&\GFFVFVF܉VF^&?.u>^&?\uFN-&?.u'F^&?\un ;^w+"N^&?\u^&vF& u^vvOFVFVN^& FV@-:t-"tF9FwًVjvvRPv v  j.v v R tj.v v >‹&#FVN ؃4^F&F N u &ء uhQhDeFPvv t FP[[ FP["F FtVj vvFP. FPo[[v vFP tNFP([[v vFPw uj vv FP FP[[FPvv v v v v FVRPh\A uv v vvhd* t^&v v vvhi t^&v v vvhr t^& v v vvhz t^&v v vvh t^&OF FtFV+FF tFPvvv v  FV+ێ^F&GGu^&.&G+޿ VNF FtshvvFV tXvvvPSvv[[vvFVFV^&?\t&?/t&?:t&FVN9Fr V t1FPv v vv tF Ft vv uv v FV^&.&GF Ft2SvvvvP^&x\uNS?^&@^hh! FV tvvvPM vvvvvv^hhhhhhhhhhhFV t hvPhFV tChvPh FV t&F/^ ^&&GNF9Fs^&ءFF<hPvvh uvvvvvv@F^&?uFVC!rNF%=ȦV&? t&?udžZ\< t tZF^&Z\<;uۃZtZ[:t[\t Ƃ\\ZZƂ\\Pvv>\Pv v /\P3 tvv\P4vv3[[^&?;t&? uF^&?;t1^&*^V^&FFF F tM^ヿtAvvvv hvv vvv v t~tSFF^ヿt=vvhh+hvvv vR tyFF^ヿt=vvhhLWhvvv v t&FF^ヿt hvvv v tFF^ヿt hkvvv v tFF^ヿt hvvv v] t>t\FF^ヿtFvvhhm[hvvv v tv vhv vvv v vh^hvv h‹&hE t"؀\uƇ:u hh: ȂV؍FP~ tP4 FPv v FP ~B jvjjF~BPt~B;F~B F~BgF~BoD~BD~2 u FPB[[^FbFpF jvjjFP~F:jvjjFPhFPh` FP[[WQ~N F F +HY_WQ~N F F +HY_WVQ~v NY^_VWQv ~NjN1;F u;v;sNOǨtIY_^WQ~F N Y_VWQS^~~ v NK[Y_^fffffffF tffffF tfffFF FFFF=FNQP# tFF+FFFFFPh> tF+FFF FFFF FFPFBPU tFVFF FFFFFF FFPh?  tFFF FFFFFF FFPh@ tF^F&^ F & uFVUjjvvjjvփFV؋F Ft^&?t&^F&^F&:FVFV t9^&?t0F&^F&^&?u&/t&\t ^F&\F V FV t&^&FF^&?uFVFV t1^&?t&?.t ^F&.^F&^F& t ^&Uvvv v Tڃv v  [[ء+ێ&GG%؃>u&h[[ u ) tWV؋FF u> tFعP&@WV^31ًʸ1^_ЉFF^_UvvUWV+j[vv[[ tW[^_Uvv t vv'WVFvv[[FVvv[[@FFVW^Nv~1_^^_WVF t~vN^ 1ЉFF^_ v vs[[FVRPvv^[[+FVRPUv v vv^&&WFV uvv[[FV^&&WF Ft*F Ft'vv vv(^&&W u++FFFFv vvvFPFPVFVȲdžNvv vjTvPPhe=ubPMuQFuRTFV PMuQZu PP3[ހPBtQWuFtdžNFV ^ &&WN^^G+ұ ԉFVF^t?MuFG+FFVFVPvv v+FPzFV |vFPj@=@t~MZuLFVFVFPh[FVvFV FVRPj$FV |]vFPj@-=@uL~LEuF~LXuF ~NEuF~uF FtFVFV+FFvvvjFV^ &&WFvv v vv uvv v vvFPv vvUvvvUvvvUvUv vvv;Uv vvviUv vvvUvv{[[Uvvv vԃUvvv vPԃUvvv v"ӃUvvvv v I҃  Uvvv vcԃUv vvvWhhB"hh^hk[[FV thvPރ u h[hvvރFVoU3t+vvvvv v vvF FVFPv vvj66F+FFv[F FVFPv vvj66iF+FFFF FVFPv vvj660F+FFFF FVFPvvjj66F+FFF2u+ˍF FVFPvvjj66F+FFFUvvcan't connect to extender kernel option "%s" unrecognized not enough DOS memory not enough disk space for swapping - %ld bytes required can't create swap file "%s" not enough memory for %s can't create process can't get instance memory can't get global memory can't instance swap file swap out error [%lx] swap in error [%lx] fault on invalid page [%lx] can't open trace file recursive page fault [%lx] page table corrupt critical section fault can't free page [%lx] can't connect to process manager can't hook int 31h can't join family can't manifest shared segments page fault on not-present mapped page page fault on uncommitted page missing page at swap-out missing scratch page at swap-out swap I/O error [%s: inst %d code %x fat_indx %lx page %lx] bad swap-in index [page %lx index %lx EOF %lx general protection fault recursive internal fault multiple internal faults page fault during a hardware interrupt [pf:%lx at %x:%x ] " < S  ' = R o        . N u     < V p  @INITVMM4GDOS4G VMM secondary initialization starting gFlDOS4GVMDOS4GVERBverbVMMDOS4G VMM initialization starting \.swp\DOS4GVM.SWPDOS4G VMM initialization complete mVMM@ @unable to allocate TSS for fault task unable to allocate TSS for base task VMM Configuration Parameters VERBOSE = on off TRACE = on off DELETESWAP = on off VIRTUALSIZE = %ld MAXMEM = %d MINMEM = %d SWAPMIN = %d SWAPINC = %d 80486 detected Actual Values Actual Physical = %ld Swap Size = %ld Swap file name = %s DOS16PKGint21_call_16int21_creg_16bdos_4B_flgcp_entryD32_KERNELINITD32SetFaultProcD32SetIntProccurtaskunable to allocate stack for fault task page bufferwork areawork tablesphysical memory table Allocated %ld pages @%lx {Spawn release .. } {Recover mem .. } ./vmm.trc./vmm.trcMINMEMMAXMEMPHYSMEMVIRTUALSIZERESERVEMEMSWAPNAMESWAPINCSWAPMINDELETESWAPVERBOSEFREE_EXTENDEDTRACEINFODOS4GVMvm.vmc   & 2 = F N V a i w }  RNL>VMMswap_init Swap file created {swo#%lx findx:%x write write not dirty %x{swi#%lx findx:%x zero fill read %x handle:%x}-pmapping] -unmapp] %x @%lx Lock: %lu pages @%lx no lock_pages Unlock: %lu pages @%lx %x @%lx m (08@PpTDVX_Process_ManagerDVX_Global_Seg_AssociateDVX_Global_Seg_AllocDVX_Global_Seg_BroadcastDVX_Dos4gx_Get_OptionVMM4GVMALOCINSTVSUPERRESIZEVSUPERFREED32_KERNELDOS4G_GETENVDOS4G_GET_APPPATH0123456789ABCDEFDOS4G_GETENVD32_KERNELverboseverbskipinitskipsymnoclosenoignoreDVX_HOME_DIRDVX_Process_Managerdll\msclibpathsegexedll\os2_20libpath32linexe.PATHCOMSPECDOS4GLOADERDOS4GLOADER.dll.exe.comChecking for %s%s%s Searching LIBPATH32=%s for %s%s Searching LIBPATH=%s for %s%s .Searching COMSPEC=%s for %s%s Found '%s' NOT Found :: %s  .sym merges ; comp ms; goERROUTERRPRINTERRDIVERTVMM4GLocking %lX - %lX Bytes - retcode %d _C_FILE_INFO=u   ((((( H Q iii <>R6000 - stack overflow R6003 - integer divide by 0 R6009 - not enough space for environment run-time error R6002 - floating-point support not loaded 8  ] @ r x } 2 .w=%* z u#%Q'^))/n00011112T222)3O3y3 6|6:;; 0?DDFGGGlHHIdKKKK8LLM~MNN\PPXQQTUV~WXfY],^^_```aZa b`bfhMiksz}}}}}}}}}}}}}}}}~v~.P~=@"F5ƅ((v҇D܈։B̊ƌߏzNjΘ(ԙr9Μ@ayZs؟.h ;ͣ!@[}$)H0@<sBWoX㍀DMDOS4GW.EXPoG _(!MIEA=951-) % !      !"#$%&'()*+,-./0123}4y5u6q7m8i9e:a;]Q?M@IAEBAC=D9E5F1G-H)I%J!KLMNO P QRSTUVWXYZ[\]^_`abcdefghijklmnopqrs}tyuuvqwmxiyeza{]|Y}U~QMIEA=951-)%!  }yuqmiea]YUQMIEA=951-)%!  }yuqmiea]YUQ     ysmga[UOIC=71+%jIjBfvfB N f&J ގf&F f6J gfvgfvgfv gfvPf`gfg^gvЎ6B f.*gE,gfugfUf.B U:듇fUfUffPffrfgEgEgfEfXf]fVP;f6B t;u ;r fLXp1v6B f6B fDDfD(f\fL$fT f| flDdl T[fD.fD2fD6fD:fČffrfېfD.*D,ǀ fJ fDN Dې؎f>p "p &p P D6R fD2fT fVPfDf|f:fffgfggffB gE7tfaffϐf`Ў؎fffrfgffffff츐gf}>gEBg]$.  &N &f>J &8f$frfۀ  ff;g]BۣN f>J f>F f>B fgfE.gfgfE2gfGgE6gGgfE:gfG fg]$ggM6f+gfE2ge;gf}>faf*B &fGgfE &fgfMf_f^f]fZf[fېf`fffrfg]Bgf}>f gfE2gfgE6gGgfE:gfGg]$1gM6gfU2gE;fgfgOgM6gE2gE4gf}>ge;faffˇېfv|,Bf\:f+Ɍf+Һ EtfSfQfRSQRfSf]f fSfQtttt fD(f\fL$fT flf| ftfχېfVfUffgfmfvDdl f\fL$fT f| fD( &|,1fjjhq  f/f[ fSf[D;$ f\:DfDfDf3]f- %fB fF Ɏَ!3vVY ^XF rf+Һ 1+]fUffPffrfg;EfXf]ge f]fW^ P1sBMfE~ù (G?7 1u>%u% fX@1+PX_]ff^fVN 1ff^f+Һ 1fVfWfSf^fvNUfVfWfSf^f s9v&t&f4S[r &fE&E&Eff3f[f_f^]fVfWfSf^fwۃ~tf sϷv jv 뗇VWf~fvې؎$&$&]\8<Wt,'[D8[&fU&fEffrVSf: QیfQfVfSfQf@ fQffRfPfffftfh_^]>"&?&=&Ã& " S([ & W*_fVfWfSۋF?<6$&T &U>"&&8E&U& f[f_f^fR3fRfVf6B fDDfD fD(f\fL$f| flDdl fff;t;tff-ݎfRfVD8P*f6B Ztft t:ttt fD(f\fL$flf| ftft 6gBfZf6gB fZfvUD:P"S$^P&w&wtttt fD(f\fL$fT flf| ftϜfVf6B fDDfD(f\fL$fT f| flDdl X\: D:f3]fvfUfL:fQffPffP$^fQj&w&fwtttt fD(f\fL$fT flf| ftffffVގf6B fDDfD(f\fL$fT f| flDdl fX\: fD:f3f]fFff%fxV4fgE#fxV4fgEfPfF fB fXWVj>vvh$ {i h$ >^_WVh^(vvZh^(ɇF=u F ^_WVظd ^_WVFFFFF 9F|5vv^v0`Z^v0ZFF^&F ^F&^&^_WV^_ȢWVƆ^FP6(ZRP`PvYRP苃FP`P@Z u  ^_WV蠕=u %FFhvvh(g ^_WVf=u %FFhh(vvg ^_WVFFFh wh p'&G$FhhIU=uFPU=t h h>hhυ(>(t( ##h!=u !p h)V h/wW h6nY h?e[ hB\=ta%+ێ&GG@tPjjqh h hHg !uh hWgh h]gjqhb=u jjq^71~|"^7/=u hihg=uh$g\ FPvv/FVbh@ 蓜 =t hhf6\ a=t hhf)".sH~u@=uh}fGj4=uhTf4jjh&R+FFvvh/fF~|vvh8he hd vvVFPvvvv 3 =uRPvvhTheFP^&w&wSghFPS=tRFhd  hd hgV t1hd hUV thd hCV t >[ tfFPh0e^ʉ=uRPFPhhdvvPPNQhz vvvv^΃=u@PNQEUF FuPRP^Phld FƣFV  ~ujvv6 a~t/6 6 6 =tvvhhc 6 6 Ib!uDvvhchz Oh6 h6~ h"6 h%6| |>>h(=uZj%+PQ;>j%RP(>j%RP>j %RP>j?.hz  ^_WVFPv~FfNNFvbFVvbFVFVĊPh@vvhGvvFuOTPF@uYcPvvhmb$~4t h~b^_WVFFFFFFFFFPv犃^_WVFFFFFPv躊^_WV>[ ugjFPvNV RQBg FFFFF9Fr&^?WtvhR u ^_WVjv\^_WVظ ^_WVظ ^_WVظ ^_WVظ ^_WVؐw^_ WV؃>uh#h`h9`ju<FF^ uE^hQOFV u ^hXd`j^hoO`R^_WV^_WV+FF%FF^&GH0FF~|^㉇ 0F0J0 FF"FFPj!hhOhhFPhNhhFPh nNhhFPh` ZN^_WVً=u~u~ u ~t0FFFFFFFFFPFPP ^_WV~ u~} ~/ /F5FFFFFPNQQ FV^_WV>Y t8v Y Pv vvh$z^F+PQK~ u F +PQ|K^_WVFF~|^j*;Ft ^_ȤWV^&G(&W*Ċ**F^*F^&w6=u FVF Fu FV>\u\FL^&G(L&G*FV ~ڹ^*XFPv~t~xtFF4Gff_>^ u~t~t,FĢff F V΃ffqFthFĢFFĈFFFFFPFPP ffF+ F V΀>uff F V FuFċV#F#V uoFFFċVƉFVvvvFFF+FƉFčFPvF9FtFFFęFVFĉVrFċV#F#V usFD0FċVƣ@0B0J06F0vvvF0F+FƉFčFPv F09FtD0FFę@0B0FĉVF09FuJ0F*FFFFċVƉFVv+=t!F9t+;Ft;VtFF~t FFF~u ~tvvvvMv\~tFPvX!=uv =us>%u\vhkAZvvvvvvvvFع&jv5 vhYFF9t+;Ft;Vu!F9tg+;FtZ;VtRjv'vrPvV~ rFPNPFP.FqvvvvF=uvvF~ r8vvvFPtF=uvFPF~uvPvFFFVFVFPvFF^6"&~ rCFPUPFP5FPv[FF^6"&~t~wvvvvgvFV u jv' >J0u9D0FFV#F#V‹N^#@0#B0 ӉFVF GFV#F#V tFV#F#V uFFFFFVFVFVFVvvv Fvvv FFFFF+FF+FFFPv.F9FtFFFVFVF9FtFFFVFV aFLFLFF*FvڐF^*"&A*u>"&*+F=tt+F~uFF FF'"&AF"&A&QFV~uFFVFV&FV#F#V‹N^#N#^ ӉFV ~t~t F9t^F+RP z=tNNFFffzFF   tFعP&tF+PQ؃RP zzz|NNF F*ffFzzعP&z1FعP&zFعP&FztAF%FFFFFF~w ^v&u6>u,FHNٹ&F%ع&gp_Fdž~F~=t%v~襂vs=rv~}@FF9FtH^!|s|FFNNn^v&uWV|31ًʸ1^_džzĞ~&Ğz&F9FrFFF-P~VRPz|RPP |FFNŽۥFI!^&Gn^v&^v& ffjj,2FċV#F#V tFV#F#V uFFFFFċVƉhjFV‰FVvvvzvvv~F~FFldf^&Olul^&w&7^&wllFF^v&8uF\Pl zF\\Pl`z^&w&w^&w HdžnpdžrtdžvxzF+FƉFċfFdFFFPv^&%)z9FtFFhjFVƋF9ftFFFVFV0j* FPvWFFHFċV#F#V tFV#F#V uFhFlFċVƉz|FV~Vvvv \vvvd\FdF+FƉF+FFFPv߃.\9FthFz|FVƋd9FtlF~VFVRFV#F#V uxF\FVdfvvv;hhF+FFFPvރh9Ft\FFdfFVd~tF@~ tUF*DFU }HHuHulF*䉆\\t\tF\u \tFV#F#V tFV#F#V uFlFzFV~VFVFVvvvdvvvhdFhF+FF+FFFPv݃.d9FtlF~VFVh9FtzFFVFVDF@9FV#F#V uxFdFVhjvvv"\\F+FFFPv܃\9FtdFFhjFVKB=v:./=""h"N#`#\$|$%>&&~'N)V+g+],, -C-k.v.F FuFuF̉FFGF Fu<F̉\^~u(FuĞ\&Ğ\&&G\nvЎ~^_WV 0v vv^_WV^_WVFPvAtF*N*NNVNVFFFFF*FF%NNFFuCfj FPkjNNFV)FV~v ~w FF FV)FVFFFFPv sF ^_WV2{FF^_4WV+F҉FF%FFFF@F3N1rFԃ~t)1F΃~v~r FF>t&NWV^N31^_r^҉NC>t9F+FF+FFFVF։Vظ W~1_FVFЉVҋF Ft ^1FFN~tfFԉFFFFN=uC^NҋV13ɋVJ1FVn^~$ F^v&F^_WVhhpP^_WV^*uP"$FVF^&9Gt F V ^&9Gt&9Wt^&G*^_WV^*>"&9u"&A*^_WV%FFhus"$$ "t6$6"k4=tjh6$6"EF|WFV"&A>"&F"&A&AF"&AFFVjvvtFVF FtQFFP6p=t,N@FP6dp=t &^_WVFJFFFFFFPFPP f~tF+PQ3=tFF^_WVF~tjF*P^*F^^&G*F9vu!"$FVvQ׃F^_WV^_WV^_WV^_ WVF>FFFFFFF~tFPVSՃF|FP*PՃhh6hh?2^_WVFjhL0^&w6^&G2&W4RP0I jhL0^&w^&w&wBI ^&G2&W4jhL0^&w^&w&wH ^&G()L0jhL0^&w^&w&wH ^&G2&W4FjhO0^&w6^&G2&W4RP}H jhO0^&w^&w&wH ^&G2&W4jhN0^&w^&w&w-H jhO0^&w6^&G2&W4RPH O0N0jhN0^&w^&w&wH ^&G2&W4o^&G(L0jhL0^&w^&w&wG ^&G2&W455,)-)u-`u-=uHu-u^_WVjhP0^&w6^&w4&w2/G P0R0>R0t/^&Gjh^&w^&w&w(G >R0t ^&G>P0t ^&G>P0t ^&G vv6P09=uo>V u_F^&4t ^&G8F^&4t ^&G8F^& 4t ^&G 8F~u^_WV>t.hh/ t h}@ u^_WV=t^&,t vv^_WVh^&w6h^&wh^&wh!^&wh$^&wh'^&w ^_WVv?F Fu*.P?^_WVk=u h2n?FFVhDV?F%PjhJF%jPhMzF%jPhPhF%jPhSVF%jPhVDF%jPhY22FRP FRPh\> ^_WVjhT0^&w6^&w4&w2D hq>FF~|^T0*Phv>hi>^_WVhU>FF~|iv vvh.> jFPvv v|C FV FF~ |vrh=h=^_WVh=6p vR tV T u)V T R P hp= %9vthU=^_ WVvv(vv u^&G& GuM^&G6F^&G2&W4FV66FP&_ tvvvh< !uFVFV^&?u[^&F^&6t^&G4& G2thk<vv(~ uvv6vvj~ u^&w&w^&w9>W u^_WV؃p >)tD^&, t7)v vF)~u!u&p >)t7)v v,F)~u!u&p >)u)^&,F^&_,㋇F^&w4&w2^&w6v^&w,hh:^&, tN ^&GJ L ^&G&Wjv vv)hS^_WV؃p ^&w4&w2^&w6^&w,h*hh:jvvhR^_WV^_WV^&o&_^&G^&ONF^&G2^F&^&G6^F&^&G:^&^&_,l0n0FVF^&G6F^&G2^_WVF*F b>Fl3Fr(g-4}-HuHu^&G6+^& O2 +NANFFƉF9vw^F&8u^_WVv vvN=tgF?FFFFFFFPvɃ=t.^&G^&O NFFV^l0n0^_WVh}hxhFPb'=u4^ thhhh:'=uhhA^_WV^&u&u~ ^N^&u&t~ ^NF^_WVFF~ |phd0^((FV uOd0;Ft;Nt=N^& *-/u- u-"u^_WV%^7H=u^whd06^ +GFV^F&FvFPFF&F@PvvRP5 #FFPh_FN^ Gh>|d0^_WVhd0vZ'hd0&FF0N~}#^d0\u^d0.tF0^_WV0d0Pvw&^_WVhd0)&;0t v^_|WV>*&rvvV(%+PQEf؉FjFH+RP`fFV^&GFvvv_~%FF^&?uFOVb%+ȉN|jaFFH+FFFFF+FFFPPj!f t.FFvF+RPeFVvaF FtFPjvj6%R FPv^vvr^FP6%^=uFFFFIFPPj!e F9Ft8NF^F&^F&<u Ow^&^_WVFF~ |S^vv{hFVF Ft~|F@0FVv^ &@&PFV^ &&W^_WVvviFV t+v v vvAF=uF^_WVء%FFhh"FV up^F=ub^hFV u?vvvv=t#v v vv^&_ ut^&GB&WDFVF FuRvvvvW=t#v v vv^&_ u^&&WFV^_WVb ` u:h u;` FV uvvhhc: ^ ^_WVh1j3\>1t">1tjjjjj3d ~u33F~t300F~@|F@F jw]Fv]00vW]0 0t}6060Waأ00000 00B=u0FKFFFFFFFPj38^_WVF`FFPvw[~t ~t~}00FVFF~|W^F&U^F&^F&F^F&^F&͊F^F&^F&]^F&v_=t1FJFFFFFFFPv)^_WV^&G(F^&GF^&G$F^&G F^&G F^&GF^&GF^6u<fvvvvvv^"1 1^11v6(vvvvvv^1 16^_.WV^&G(F^&GF^&G$F^&G F^&GFFv7ÃF=u^&w"&w vFFF+PQY+F@F҃~u ~@wF@vҋF֋VRP60606W ~uF FډFF؉FF 0FFPPj3M_ 7vzƒ=u&^&G &W"11F 1"16FN։ 116Fأ1F F؉FF0FFPPj3^ ~ tF^&G$&G&F^&GF^&G &G"1F 1F1F4FF 0FFPPj3Z^ vF=u^&w"&w vFF606060F֋VRPU ~u v)F=u^&w"&w vFF60F֋VRP6060TU ~uFF 0FFPPj3w] a^&G(&G*LC- =v8.NKNNLNNNNNNNYMNnMMxNxNNNNNNxNxNF^_*WVF^&G(&W*Ċ**F^&G(*F^&GFF*FڋFFF"HHu-u- u-u F FF2=uv u- s-w-u~5t(FF u-s -wF~tFwFF#-s-w-s -wC@==uv-uHuHuX-uHu-Cu~tF}^&G(F^&GF^&G$F^&G F^&GF^&G F^&GF^&GF^&GFF~u^&w>Fހ~u8F^&G &W"FV^&w"&w ^&wރFF؋F։FFF؉F^&G &WFV^&w&w ^&wfރFF؋F։FFF؉F^&G&WFV^&w&w^&w!ރFF؋F։FFF؉Fc^&G&WFV^&w&w^&w݃FF؋F։FFF؉FHuHuHuHu[FP ~u^+&G*&G(F+^& G(& W*^+&G*&G(F+^& G(& W*^+&G&GF+^& G& W^+&G&&G$F+^& G$& W&^+&G"&G F+^& G & W"^+&G&GF+^& G& W^+&G&G F+^& G & W^+&G&GF+^& G& W~t F^&GF^&G~uFsF+F+FV^&G &W"rF+F+FV^&G &WVF+F+FV^&G&W:F+F+FV^&G&WHuHuHuHu^_ WV F~t0FNFFFFFFFPjĶ^_WVjlvvh:$ ^_WVjlh:vvx$ ^_WVjljh:C^_WVF|ikQtYk:FF ^GF^GF^GG^G^G^G^G W^GW  ^_WVFPvO=tfFfNNFF%NNFF Ft#F Ft~t~tFVFV^ W^_"WVء%FF^&/|~u(+FFN}k:^uFP^ww^w=uvvV,+ F^GF~u~u~u ~tFF F^GH F^+G^GPv^w^ww( >tNvvjv*jjjh*>t+FFFF*FVvvj!*jjj*F|k:FF$^G<u+FF^GPFP^w^ww' ^G^W1F1VF Ft ^GFF^W3F3V u\FF^*GPFPA^GW#F#VN^#N#^;t ;tF ^GF ^GF^W3F3V uFFF^*GPFP+A^GW #F#VN^#N#^;vBs;v6^G W#F#VN^#N#^;sv;sFF~t ^u~u^tF ^GF ^GF&F HHuYHHu~H}Hn^~u~t^_WV!*^_` fUf~s ^*㋇FFuFFFFu Fd1FFAd1e1DLFF~thd1vvvh'~t h9hA~*F=tvhV\^u&un ~FtF6~ItF&~RtF~At ~tFAhYFfFf]afϋa WVFYFFFFFFFPj$諯F^6"&jj$.^_`fUf\f]afϋa WVFv[FFFFFFFPv/F^6"&jv豾F^_WV%FFj#0^&GGu ju0\^_WV%FFjj#I60A^&GGujj$60\^_WV>huh&F^~t Fhh^_WVFPvwG=t F*N*NNF~sv ~s OFV؉FFu$F%FFF9FwFnFFFV^_WVFjHF6bIdff dt)6f6d000 0tFvHF^_ WVFjHF~t8v v JFVF FuFV 9Ft9Vuv vrFV uF~tF 9bsdfFV4F b6f6dSHv HFVFVdfF Ft7~tv v vvvD vvFVFvuG~u FV ^_WVFF~| F^9t ^㋇jLjF+PQ.LFVFF^㉇F^㉇j^_LWVFFFFʌVjvvvvʐC FV~ʹ ^&GF^&GF^&G FFFFFFFF*F*YFFFkFFF[FF^&GF@FF^&GF%"HHu-u- u-u~uE^&G^&ON‰FFvvvvFƉVȋF^&GF^&GF*HFF^&G *^&gFJFFF:FF^&g*F# u-u-uHu~uHF^&G^&ON‰Fvvvv<FƉVȋF^&GF^&GGD~5tBF*#FFF*FFF uHHuHu~uEF^&G^&ON‰FvvvvFƉVȋF^&GF^&GFF^&GF~sfF^&G^&ON‰Fvvvj8FƉVȋF^&GF^&GC^& tQFFF@F^&G^&ON‰FvvvjFƉVȋF^&GF^&GF*)FF8F3FF%F HuHu-uHu~uE^&G^&O N‰FFvvvv8FƉVȋF^&GF^&G C@==u~-uLHuHu-uHu)-Cu!FPPjG ~t<~0t3^&w^&ONFF^&GF^&G!~u^&G^&G~u^&G ^&G ~u^&G^&G~u^&G^&G~u^&G^&G~uvȐ@NƉNЉFҊF*^jvvЍFPl> vNNFjFPvvАC> vvvvv,> .+(-uHHu- uHu-CuFʋV~ ^_U^&7h^&w &w&w&w&wh^&w"&w &w&&w$&w&w&w*&w(h^&w&w&w&w&w&w &w&whX^&w<&w:&w0&w.&w,&w4&w2&w6h)*%+ێ&GB&WDFV^F Ft<vvvQHFV tv v^[[F^&&WFV뼋Fء%+ێ&GG%؃>Xu&hRrI[[ u o? tXXXWV؋FF u> tFعP&@WV^31ًʸ1^_ЉFF^_UvvUWV+j>[vvn@[[ tW>[^_Uvv t vv'WVFvvB[[FVvv =[[@FFVW^Nv~1_^^_WVF t~vN^ 1ЉFF^_ v vB[[FVRPvvA[[+FVRPUv v vv^&&WFV uvv]G[[FV^&&WF Ft*F Ft'vv vvE^&&W u++FFFFv vvvFPFPVFVUvvvOUvvvuUvUv vvvUv vvvUv vvvUvvM2[[Uvvv vz2Uvvv v"2Uvvv v0Uvvvv v 0  Uvvv v52Uv vvvh+E[[FV tbhvPCDFhvvyC`bhvv`CdfhvvGC\^hD[[FV tIhvPCHJhvvCLNhvvBPRhVD[[FV t0h%vPBTVh2vvBXZ F~tGF VFVF~?}&^0FF^&?u^Ƈ0h0hP F F |>v vPu;Fu+F~t v vv vj F $V؋FVFV^ ^F&?t&:u&‹&FV@@F!FFA^&&؉^u&tF, ^&,@FF^&:GF^&?\u^F&\F؋vGV!vv tkF^&\GFFVFVF܉VF^&?.u>^&?\uFN-&?.u'F^&?\un ;^w+"N^&?\u^&vF& u^vvFVFVN^& FV@-:t-"tF9FwًVjvvRPv v - j.v v , tj.v v ,‹&#FVN +؃!^F&F N u &ءV Tuh!h!!TVFPvvV Tt FPT[[ FP(["F FtVj vvFP, FP,[[v vFP8 tNFP,[[v vFP uj vv FPH, FPe,[[FPvv v v v v FVRPh!A uv v vvh!* t^&v v vvh! t^&v v vvh! t^& v v vvh! t^&v v vvh! t^&OF FtFV"+FF^ \tFPvvv v \ FV%+ێ^F&GGu^&.&G+޿ VNF Ftshvv3:FV tXvvvPvv2[[vvFVFV^&?\t&?/t&?:t&FVN9Fr V^ \t1FPv v vv\ tF Ft vv* uv v FV^&.&GF Ft2Svv4vv^&x\uNS^&@^h"h"FV tvvvP vvvvvv^h%"hhh-"h5"h<"hhhG"hQ"hhhX"hZ"FV t hh vPnh_"FV tChh!vPQhh! FV t&F!^ ^&&GNF9Fs^&ء%FF<hg"Pvvhs"^( uvvvv;vv@F^&?uFVC!rNF%=ȦV&? t&?udžZ\< t tZF^&Z\<;uۃZtZ[:t[\t Ƃ\\ZZƂ\\Pvv\Pv v \P3 tvv\Pvv'[[^&?;t&? uF^&?;t1^&*^V^&FFF F tM^ヿ"#tA"#vvvv h"vv vv"#v v t~tSFF^ヿ"#t="#vvhhh"4hhvv"#v vR tyFF^ヿ"#t="#vvhhh" hhvv"#v v t&FF^ヿ"#t hhvv"#v v tFF^ヿ"#t h"vv"#v v tFF^ヿ"#t hh vv"#v v] t>h!t\FF^ヿ"#tF"#vvhh!h" hh!vv"#v v tv vh#v vvvfv vh# ^hhvv7hh‹&hh t"؀g\uƇgg:u hhh*#ȂV؍FP~ t,#1#PFPv vFP~B jvjjF~BPt~B;F~B F~BgF~BoD~BD~! u FP+[[^FbFpF jvjjFP~F:jvjjFPhFPh9#FPh+[[WQ~N F F +HY_WQ~N F F +HY_WVQ~v NY^_VWQv ~NjN1;F u;v;sNOǨtIY_^WQ~F N Y_VWQS^~~ v NK[Y_^fffffffF tffffF tfffXP肀XP*XPcXP꜃XPԃFF FFFF=FNQPc( tFF+FFFFFPh>' tF+FFF FFFF FFPFBP' tFVFF FFFFFF FFPh?I' tFFF FFFFFF FFPh@' tF^F&^ F & uFVUjjvvjjvFV؋F Ft^&?t&^F&^F&:FVFV t9^&?t0F&^F&^&?u&/t&\t ^F&\F V FV t&^&FF^&?uFVFV t1^&?t&?.t ^F&.^F&^F& t ^&Uvvv v v v R[[ȲdžNvv vjvPPh=ubPMuQFuRTFV PMuQZu PP3[ހPBtQWuFtdžNFV ^ &&WN^^G+ұ FVF^t?MuFG+FFVFVPvv v+FPFV |vFPj@=@t~MZuLFVFVFPh[FVvFV FVRPjhFV |]vFPj@q=@uL~LEuF~LXuF ~NEuF~uF FtFVFV+FFvvvjFV^ &&WFvv v vv uvv v vvFPv vvfVfWfQfv^ ~ fN fggfYf_f^SfVfWfQ^ 3 1.؎f~v fN fgg  313fYf_f^[fWf~fPtV&fE(&fE:&fE &E&f]&fM$&fU &fu&fm&]&e&m &Uf &fef &M6&fE2̀~ &fE(&f]&fM$&fU &fu&fm&]&e&m &U&fefP&fu:fXf%fX&fu:j&u6&fu2&u&f} ffW ^f~1rHfFfFfFFfFfff+^fvf^f0 ^ 13f_ ff ff fffS!ff[ːfPfF^.i#### ##fXSQRVWF FF ^ NV~v^_^ZY[SQRVWF F 'F^NV~vf&^ff^f&^_^ZY[hhFThJ#ht#hX#.[[FV th_#vP,L#N# L#u h[hh#vv\,P#R#FVT#V#oU!t+vvvvv v vvL#F FVFPv vvj6V#6T#F+FFv8[F FVFPv vvj6V#6T#iF+FFFF FVFPv vvj6V#6T#0F+FFFF FVFPvvjj6V#6T#F+FFF!u+ˍF FVFPvvjj6V#6T#F+FFFUvvP#U~ uj [V!U~ uj [F$@$!U>$u^Kj@&$U~ uj $u tFUjFPUjFPF$9Fu$&u|%+ێ^F&GGt^޿+ tPN$$v6$6$&$$ $u+$&F&t@F=|F$&G^1rɣ$$$&GF& uPh6$6$H$F$=u$VF- uHt-t$&G$&&?|$$FV^&&F$;Fw$$FV^& F^&GF$;Fw$&~$&G+&O?$&P|j b%u~tFH%H%&FL%~ tvhL%vv vhL%vv 'uXP6'P%!&&UjVWUӎۋ^7wwWw ^ 3tFO.#3tY[X]Sӎۋ^ FX%G OWw G^ YOXYt%_^X]UPv vv>]Uv vvj!']UFV^ +F Ӌ]UV%%Ȏغۏ$%!3]UWVRQSP.ۉ&%%UVWP !X_^]%%ώҋUVWP%%&%[YZ^_]UFU3%N%&%68r %б2㋗%s[YZ^_]%&%SPܡ%6 GX%6G6_[U~t~t "&VW^ 3!%F %%6%F%)!)%!U>*&}!..&.5.6u.6.%~t32P !XP&VK!PP0!<X[}!..&...6u.65P&]_^rM!25!&&%k!'.(&&6,'36's 6'ڻ6'(&&,>3&=t4 &t 3u!1&,Ar ,Ar ª1&D!r €t1&@Ky羜''''U3UUVWUVWQ u11''x>'u'''c''Z tX Pu ~uFX uFL!_^]ˋ''&%!>R&t S&T&%!;s EtUPR>Z&tX&P?]ˏ\&^&0!*&<t)(&&,M&33uGG>K&ыѿ(&< t< t< to tkGN< t< t< t\ tX<"t$<\tB3A<\t<"tӋѨuN< t+ t'<"t<\tB3A<\t<"tۋѨu>E&GB+ģG&6?CC6K& u6(&3< t< t< t| tx6?CCN< t< t< tb t^<"t'<\t3A<\t<"t\Ѱ\s"N< t. t*<"t<\t3A<\t<"t\ٰ\s"3.\&U(&&,333 t&>tFu@$F PI&ϋ3_I&6;&uQVW&_^Yt&?CC u&]UVWV';t@t 3_^]UWv t 3I>'u'@!_]r3]sPX2]s]2ˢ-& u">*&r <"s < r<v`&ט"&ÊU^;/&r >'u'1& t B3ɋ!r1&tpV3FFWVfN : uL=vFܺ=(s+ԋN < t ;t#k ;u F ^__PSQ+Q^@!Yr F;wY[Xß~us 1&@t ^?u F+Ff^_N uV@!s u1&@t ڀ?uUVW~UVWtUF- ]ːU^u&tG]UWV6I& tJ~tDvy04k;~ 9=uWvSo u@ FF<u+^_]ːlUVW~]MUu} !W~]MUuE r3 u _^]UVW^vF ~ N_^]UVF]U׌؎~ߋN FtI]UVW UVW2҈Vv< t< w< r<+t<-uNN t$v <0u u uŒ,A<ۀ AAۀ A:t^_]UW~3AيF O&8t3Njnj_]Uv ^ t-&'C:t,A<ɀ A,A<ɀ A:t]UWVN'~3ˋv D3&:EwtIIы^_]UWV~v ߋN t2Ì^_]U^ ,A<saC uڎ]U^ ,a<sAC uڎ]U~3I]U׋v ؎3~ǨtI]U׋~3u~ +؎FFtI]UVW~ 3I%u)jjFPvh ^F&^F&%FFF^&^&^&G^&Gː؁~r+˃>%u)jjFPvh` ^F&^F&%FFF^&^&^&G^&GːFxjjFPh ~@ː؃>%ː؋FFjjFPjF f*؋FH@F+FFPPFPhH tFFFVvv F |Fu+vjFPhI FjjFPj V+Fu Vء%FFFHF^&G"&W$FVFPFPj!^ FHFPFPj!^ ~v~u+^ːN+ۋuډv^FFFIFPFPj!^ FV^FvjFPj t FF +FFFVːFFFFF+FFPPFPjS tFFFVːFFFFFF F+FFvPFPj tFFFVː؋F H@FvjFPhJ F t-F t'FPv F HFFPveF؋FFjjFPjh f*V؃>%u2FjjFPj3 jjvvv ^ː%FF^&G&+G+ҹFjj&GP&?r}%%PVء%FF+^&_&@F t8Ft } ^&?}+^ː^&_F&@jj^&GP&w vr t^^&_&@ FFFPv tF*ЋN^* FFVFV"+FFe u5FFFFF FF jjFPv FF[F tOFPvFFFFF HFދF* FFPv4 tFvFVv F+ұuFRP$ء%FFvv v vv^&_" ː؃>%u)FjjFPjj- u+ˋFFFF jjFPh Fː؃>%u!FjjFPvj +ːFFFjjFPh. +؃>%ujjFPjjx FFFːV؁~sF Ftvv v4 u+^ː>%u'FFF FjjFPvh ^ˡ%FFFjs^F &^F&GVU^V؁~sF Ftvv v u+^ːFvjFPh@ >%u'FFF FjjFPvhJ ^j%FFF^F &^F&GV^vv vv v' ːvv vv va ːUVv &<t&&8uFF ^&?u؎F&^ &8u^+^ːF^&G &WFVFFF^&9G ~)^&w&7v v o t^&G&WF&G&WFVFFF^&9G~^&w&7v v  t+U؎'&%+ێ&GB&WD^&&W'&%+ێFV&GB&WDV؎'&%+ێ&GB&WDFV;Fu/;Vu*v& &T&OB&WD+^ː&&WFV Ft*FV^&9u&9Wu&7&&TF&&W뻸^ː؎'&%+ێ&GB&WDFV Ft1^&w&wvv t FV^&&W+JF FFFVFjFPh u~tF<'&%F'&FFP+ɉNNNQFPFF'&%+ێ&GGt F܉FF F؉FF։FFFFȉFSSFPvQ ː؍FPv uˊF* ؍FPvi uˊF*FF FFPv t؋FWVvvr%=t ^_ː~ tWvvn%ȃ^_@DOS/16M㍀ (08p@PⲌȎش !L!.EXE has not been processed by MAKEPM $ W+FFvvPv FV u=v+_ˋ Ft u~ v F HF t4 u~v'jv jjFVEFVFHFFFPP=[[~uFFFFVFVFV~u~vFF +N ~+ۋNع^F +)FVF FuFV_FIFFFFPFPP5 p at DOS/4GW Protected Mode Run-timeCopyright (c) Rational Systems, Inc. 1990-1993Nov 23 1993 20:35:181.95D32DebugHookD32ChainInterruptD32SetFaultProcD32SetIntProcD32CancelFaultProcD32CancelIntProcD32StepdowncurtaskD32ResetTSPD32Int21HandlerDirectD32_ANY_LOADName(C)DateVersionDOS4G_GETENVDOS4G_GET_APPPATHD32LowAvailDOS4G_DISPATCHDEINITDOS4GMAINLOADERVECTDOS4GMAINMODULEHANDD32_KERNELb q o  p B S  +G     ) ; G hV ] q   DOS/4GWDOS4GWcan't lock extender kernel in memory DOS4Gverbosefix34crashpautolockqaquiet%s Version %s (%s) %s monoutsyntax is DOS4GW Debugging with 16 bit debugger not enough memory for dispatcher data can't hook interrupts Error initializing video: %d Error initializing mouse: %d RECEIVE_BROADCASTcan't find file %s to load can't load executable format for file %s [%ld] EXP_LOADERRSIHELPWSAMPRSID32Loading with %s can't initialize loader %s [%ld] %s %s is not a WATCOM program Executing %s with initial registers:CSDSESSSnullpnull pointer used, acc , base pagebyte, USE32, , USE16, %s=%5X%s%s granular, limit %8lX%s%8lX%s%2X Note: this program may have been built for the Phar Lap extender. WATCOMDVX_Process_ManagerSEGEXE_LOADERLINEXE_LOADERVMM4GD32_INT31deinitializing twice DOS/4GW deinitializing DEINIT... deinitializing %s ... deinitializing int31 package int21_call_16DOS16PKGVSUPERRESIZEVMM4GVSUPERFREEVMM4GINITVMM4G v[dummy fcbInstalling 16-bit handler for %X %X:%X autolock code %X and stack %X $Forcing 16-bit gate for int %02X Can't force gate type for int %02X!       error in interrupt chain f2 jdivide by zerodebug exceptionNMIbreakpointoverflowboundsinvalid opcodedevice not availabledouble faultoverruninvalid TSSsegment not presentstack faultgeneral protection faultpage fault *3:I^ksDBGAGENTDBGAGENTCan't find debug agent CSSSDSESFSGS:1 :0 CR0: unavailable CR0: PGETTSEMMPPE CR2: %lX CR3: %lX Opcode stream: %02X Stack: %04X:%08lX %04X Last 4 ints: %X @ %X:%lX/ Crash address (unrelocated) = %X:%08lX Previous TSF:unknownexception %02Xh (%s) at %X:%08lXtransfer stack overflow on interrupt %02Xh at %X:%08lX4%!@!@!INITD32_INT31INT31D32_INT31int 31h initialization error DOS4GW.EXE4GWPRO.EXEDOS4G.EXEDOS4GS.EXEDOS16X.EXPLOADER3LOADER4RUN.COMPROCMANPROCM16PX.EXE .EXEINITLOADERRELUNRELUNLOADFREEMAPCANLOADGETLOADTABLEGETLOADNAMEGETERRSTRDIPTZaiq~UNKNOWNEXP_LOADERSEGEXE_LOADERLINEXE_LOADERDVX_Which_LoaderDVX_Process_ManagerVM found VMM initialization error [%ld] Write-protectUnknown unitDrive not readyUnknown commandData error (bad CRC)Bad request structure lengthSeekUnknown media typeSector not foundPrinter out of paperWrite faultRead faultGeneral failureSharing violationLock violationInvalid disk changeFCB unavailableSharing buffer overflow->S_jzUnexpectedwritingreading device drive %s error %s%s%s Abort, Retry, Ignore, Fail?%c  TSF32: prev_tsf32%5X SS %9X DS %9X ES %9X FS %9X GS %9X EAX%9lX EBX%9lX ECX%9lX EDX%9lX ESI%9lX EDI%9lX EBP%9lX ESP%9lX CS:IP%5X:%08lX ID %02X COD%9lX FLG%9lX VMM4GLocking %lX - %lX Bytes - retcode %d DVX_Process_ManagerDVX_Global_Seg_AssociateDVX_Global_Seg_AllocDVX_Global_Seg_BroadcastDVX_Dos4gx_Get_OptionVMM4GVMALOCINSTVSUPERRESIZEVSUPERFREED32_KERNELDOS4G_GETENVDOS4G_GET_APPPATH0123456789ABCDEFDOS4G_GETENVD32_KERNELverboseverbskipinitskipsymnoclosenoignoreDVX_HOME_DIRDVX_Process_Managerdll\msclibpathsegexedll\os2_20libpath32linexe.PATHCOMSPECDOS4GLOADERDOS4GLOADER.dll.exe.comChecking for %s%s%s Searching LIBPATH32=%s for %s%s Searching LIBPATH=%s for %s%s .Searching COMSPEC=%s for %s%s Found '%s' NOT Found :: %s """.sym merges ; comp ms; goH#ERROUTERRPRINTERRDIVERTr#ERRPRINTERRDIVERTVSPRINTFERROUTv#0HƄvw###Պ#$$%s warning (%d): %s error (%d): %s fatal error (%d): USERERRERRXLAT%04X:%04Xn% (08@PpfT%%_C_FILE_INFO=O&   ((((( H p2 jjj <>R6000 - stack overflow R6003 - integer divide by 0 R6009 - not enough space for environment run-time error R6002 - floating-point support not loaded  h :  'Wp~x555 >Z??A3GIJTNTsTUY2[[[ff0gggghdhhhhqiiiiij9jXjsjjjjj k@kjlmYnn2o"pqrsstuHwwNxyyyz zzVzzz({p{{{|+|}(-LÇۊ񍝎7* >bԤDlXƦJ8z¨v- جn~ఴ.²IJȲP`Z        " & * . 2 6 : > F T " $$$$$$$$$%%%%%%%%%%%%%M&''''WATCOM patch level .bxbibclean-3.07/ibmpc/dos/wat10/wpp386/w386cpp.bat0000644000156700015670000000100206142135402017656 0ustar beebebeebe:# Compile bibclean with the Watcom C/C++ 10.0 compiler :# [02-May-1996] wpp386 -I. -zq bibclean.c wpp386 -I. -zq chek.c wpp386 -I. -zq do.c wpp386 -I. -zq fix.c wpp386 -I. -zq fndfil.c wpp386 -I. -zq isbn.c wpp386 -I. -zq keybrd.c wpp386 -I. -zq match.c wpp386 -I. -zq -DHOST="plot79.math.utah.edu" -DUSER="beebe" option.c wpp386 -I. -zq romtol.c wpp386 -I. -zq strist.c wpp386 -I. -zq wildargv.c wcl386 -k131072 bibclean.obj c*.obj d*.obj f*.obj i*.obj k*.obj m*.obj o*.obj r*.obj s*.obj w*.obj bibclean-3.07/ibmpc/dos/wat10/wpp386/ibmclean.bat0000644000156700015670000000007406141407714020235 0ustar beebebeebedel test*.bi2 del test*.bib del test*.er2 del test*.err bibclean-3.07/ibmpc/dos/wat10/wpp386/dos4gw.doc0000755000156700015670000005227605572657400017715 0ustar beebebeebe DOS/4GW Configuration Guide WATCOM International Corporation Waterloo, Ontario, Canada 1 Configuring DOS/4GW This chapter explains how to use the DOS4G environment variable to suppress the banner that is displayed by DOS/4GW at startup. It also explains how to use the DOS16M environment variable to select the switch mode setting, if necessary, and to specify the range of extended memory in which DOS/4GW will operate. DOS/4GW is based on Rational Systems' DOS/16M 16-bit Protected-Mode support; hence the DOS16M environment variable name remains unchanged. 1.1 Suppressing the DOS/4GW Banner The banner that is displayed by DOS/4GW at startup can be suppressed by issuing the following command: set DOS4G=quiet Do not insert a space between DOS4G and the equal sign. A space to the right of the equal sign is optional. 1.2 Changing the Switch Mode Setting In almost all cases, DOS/4GW programs can detect the type of machine that is running and automatically choose an appropriate real- to protected-mode switch technique. For the few cases in which this default setting does not work we provide the DOS16M DOS environment variable, which overrides the default setting. Change the switch mode settings by issuing the following command: set DOS16M=value Do not insert a space between DOS16M and the equal sign. A space to the right of the equal sign is optional. The table below lists the machines and the settings you would use with them. Many settings have mnemonics, listed in the column "Alternate Name", that you can use instead of the number. Settings that you must set with the DOS16M variable have the notation req'd in the first column. Settings you may use are marked option, and settings that will automatically be set are marked auto. Changing the Switch Mode Setting 1 Chapter 1 ------------------------------------------------------------------------------- +-------+---------------+-------+----------+-----------------------------------+ | | | |Alternate | | |Status |Machine |Setting|Name |Comment | +-------+---------------+-------+----------+-----------------------------------+ |auto |386/486 w/ DPMI|0 |None |Set automatically if DPMI is active| |req'd |NEC 98-series |1 |9801 |Must be set for NEC 98-series | |auto |PS/2 |2 |None |Set automatically for PS/2 | |auto |386/486 |3 |386, 80386|Set automatically for 386 or 486 | |auto |386 |INBOARD|None |386 with Intel Inboard | |req'd |Fujitsu FMR-70 |5 |None |Must be set for Fujitsu FMR-70 | |auto |386/486 w/ VCPI|11 |None |Set automatically if VCPI detected | |req'd |Hitachi B32 |14 |None |Must be set for Hitachi B32 | |req'd |OKI if800 |15 |None |Must be set for OKI if800 | |option |IBM PS/55 |16 |None |May be needed for some PS/55s | +-------+---------------+-------+----------+-----------------------------------+ The following procedure shows you how to test the switch mode setting. 1. If you have one of the machines listed below, set the DOS16M environment variable to the value shown for that machine and specify a range of extended memory. For example, if your machine is an NEC 98-series, set DOS16M=1 @2M-4M. See the section, "Fine Control of Memory Usage" later in this chapter for more information about setting the memory range. +--------------------+---------+ | Machine | Setting | +--------------------+---------+ | NEC 98-series | 1 | | Fujitsu FMR-60,-70 | 5 | | Hitachi B32 | 14 | | OKI if800 | 15 | +--------------------+---------+ Before running DOS/4GW applications, check the switch mode setting by following this procedure: 2. Run PMINFO and note the switch setting reported on the last line of the display. (PMINFO, which reports on the protected-mode resources available to your programs, is described in more detail in the chapter, "Utilities".) If PMINFO runs, the setting is usable on your machine. 3. If you changed the switch setting, add the new setting to your AUTOEXEC.BAT file. Note: PMINFO will run successfully on 286 machines. If your DOS/4GW application does not run, and PMINFO does, check the CPU type reported on the first line of the display. 2 Changing the Switch Mode Setting Configuring DOS/4GW ------------------------------------------------------------------------------- You are authorized (and encouraged) to distribute PMINFO to your customers. You may also include a copy of this section in your documentation. 1.3 Fine Control of Memory Usage In addition to setting the switch mode as described above, the DOS16M environment variable enables you to specify which portion of extended memory DOS/4GW will use. The variable also allows you to instruct DOS/4GW to search for extra memory and use it if it is present. 1.3.1 Specifying a Range of Extended Memory Normally, you don't need to specify a range of memory with the DOS16M variable. You must use the variable, however, in the following cases: * You are running on a Fujitsu FMR-series, NEC 98-series, OKI if800-series or Hitachi B-series machine. * You have older programs that use extended memory but don't follow one of the standard disciplines. * You want to shell out of DOS/4GW to use another program that requires extended memory. If none of these conditions applies to you, you can skip this section. The general syntax is: set DOS16M= [switch_mode] [@start_address [- end_address]] [:size] In the syntax shown above, start_address, end_address and size represent numbers, expressed in decimal or in hexadecimal (hex requires a 0x prefix). The number may end with a K to indicate an address or size in kilobytes, or an M to indicate megabytes. If no suffix is given, the address or size is assumed to be in kilobytes. If both a size and a range are specified, the more restrictive interpretation is used. The most flexible strategy is to specify only a size. However, if you are running with other software that does not follow a convention for indicating its use of extended memory, and these other programs start before DOS/4GW, you will need to calculate the range of memory used by the other programs and specify a range for DOS/4GW programs to use. DOS/4GW ignores specifications (or parts of specifications) that conflict with other information about extended memory use. Below are some examples of memory usage control: Fine Control of Memory Usage 3 Chapter 1 ------------------------------------------------------------------------------- set DOS16M= 1 @2m-4m Mode 1, for NEC 98-series machines, and use extended memory between 2.0 and 4.0MB. set DOS16M= :1M Use the last full megabyte of extended memory, or as much as available limited to 1MB. set DOS16M= @2m Use any extended memory available above 2MB. set DOS16M= @ 0 - 5m Use any available extended memory from 0.0 (really 1.0) to 5.0MB. set DOS16M= :0 Use no extended memory. As a default condition DOS/4GW applications take all extended memory that is not otherwise in use. Multiple DOS/4GW programs that execute simultaneously will share the reserved range of extended memory. Any non-DOS/4GW programs started while DOS/4GW programs are executing will find that extended memory above the start of the DOS/4GW range is unavailable, so they may not be able to run. This is very safe. There will be a conflict only if the other program does not check the BIOS configuration call (Interrupt 15H function 88H, get extended memory size). To create a private pool of extended memory for your DOS/4GW application, use the PRIVATXM program, described in the chapter, "Utilities". The default memory allocation strategy is to use extended memory if available, and overflow into DOS (low) memory. In a VCPI or DPMI environment, the start_address and end_address arguments are not meaningful. DOS/4GW memory under these protocols is not allocated according to specific addresses because VCPI and DPMI automatically prevent address conflicts between extended memory programs. You can specify a size for memory managed by VCPI or DPMI, but DOS/4GW will not necessarily allocate this memory from the highest available extended memory address, as it does for memory managed under other protocols. 1.3.2 Using Extra Memory Some machines contain extra non-extended, non-conventional memory just below 16MB. When DOS/4GW runs on a Compaq 386, it automatically uses this memory because the memory is allocated according to a certain protocol, which DOS/4GW follows. Other machines have no protocol for allocating this memory. To use the extra memory that may exist on these machines, set DOS16M with the + option. set DOS16M=+ Setting the + option causes DOS/4GW to search for memory in the range from FA0000 to FFFFFF and determine whether the memory is usable. DOS/4GW does this by writing into the extra memory and reading what it has written. In 4 Fine Control of Memory Usage Configuring DOS/4GW ------------------------------------------------------------------------------- some cases, this memory is mapped for DOS or BIOS usage, or for other system uses. If DOS/4GW finds extra memory that is mapped this way, and is not marked read-only, it will write into that memory. This will cause a crash, but won't have any other effect on your system. 1.4 Setting Runtime Options The DOS16M environment variable sets certain runtime options for all DOS/4GW programs running on the same system. To set the environment variable, the syntax is: set DOS16M=[switch_mode_setting]^options. Note: Some command line editing TSRs, such as CED, use the caret (^) as a delimiter. If you want to set DOS16M using the syntax above while one of these TSRs is resident, modify the TSR to use a different delimiter. These are the options: 0x01 check A20 line -- This option forces DOS/4GW to wait until the A20 line is enabled before switching to protected mode. When DOS/4GW switches to real mode, this option suspends your program's execution until the A20 line is disabled, unless an XMS manager (such as HIMEM.SYS) is active. If an XMS manager is running, your program's execution is suspended until the A20 line is restored to the state it had when the CPU was last in real mode. Specify this option if you have a machine that runs DOS/4GW but is not truly AT-compatible. For more information on the A20 line, see the section, "Controlling Address Line A20" in this chapter. 0x02 prevent initialization of VCPI -- By default, DOS/4GW searches for a VCPI server and, if one is present, forces it on. This option is useful if your application does not use EMS explicitly, is not a resident program, and may be used with 386-based EMS simulator software. 0x04 directly pass down keyboard status calls -- When this option is set, status requests are passed down immediately and unconditionally. When disabled, pass-downs are limited so the 8042 auxiliary processor does not become overloaded by keyboard polling loops. 0x10 restore only changed interrupts -- Normally, when a DOS/4GW program terminates, all interrupts are restored to the values they had at the time of program startup. When you use this option, only the interrupts changed by the DOS/4GW program are restored. Setting Runtime Options 5 Chapter 1 ------------------------------------------------------------------------------- 0x20 set new memory to 00 -- When DOS/4GW allocates a new segment or increases the size of a segment, the memory is zeroed. This can help you find bugs having to do with uninitialized memory. You can also use it to provide a consistent working environment regardless of what programs were run earlier. This option only affects segment allocations or expansions that are made through the DOS/4GW kernel (with DOS function 48H or 4AH). This option does not affect memory allocated with a compiler's malloc function. 0x40 set new memory to FF -- When DOS/4GW allocates a new segment or increases the size of a segment, the memory is set to 0xFF bytes. This is helpful in making reproducible cases of bugs caused by using uninitialized memory. This option only affects segment allocations or expansions that are made through the DOS/4GW kernel (with DOS function 48H or 4AH). This option does not affect memory allocated with a compiler's malloc function. 0x80 new selector rotation -- When DOS/4GW allocates a new selector, it usually looks for the first available (unused) selector in numerical order starting with the highest selector used when the program was loaded. When this option is set, the new selector search begins after the last selector that was allocated. This causes new selectors to rotate through the range. Use this option to find references to stale selectors, i.e., segments that have been cancelled or freed. 1.5 Controlling Address Line 20 This section explains how DOS/4GW uses address line 20 (A20) and describes the related DOS16M environment variable settings. It is unlikely that you will need to use these settings. Because the 8086 and 8088 chips have a 20-bit address spaces, their highest addressable memory location is one byte below 1MB. If you specify an address at 1MB or over, which would require a twenty-first bit to set, the address wraps back to zero. Some parts of DOS depend on this wrap, so on the 286 and 386, the twenty-first address bit is disabled. To address extended memory, DOS/4GW enables the twenty-first address bit (the A20 line). The A20 line must be enabled for the CPU to run in protected mode, but it may be either enabled or disabled in real mode. By default, when DOS/4GW returns to real mode, it disables the A20 line. Some software depends on the line being enabled. DOS/4GW recognizes the most common software in this class, the XMS managers (such as HIMEM.SYS), and enables the A20 line when it returns to real mode if an XMS manager is present. For other software that requires the A20 line to be enabled, use the A20 option. The A20 option makes DOS/4GW restore the A20 line to the 6 Controlling Address Line 20 Configuring DOS/4GW ------------------------------------------------------------------------------- setting it had when DOS/4GW switched to protected mode. Set the environment variable as follows: set DOS16M= A20 To specify more than one option on the command line, separate the options with spaces. The DOS16M variable also lets you to specify the length of the delay between a DOS/4GW instruction to change the status of the A20 line and the next DOS/4GW operation. By default, this delay is 1 loop instruction when DOS/4GW is running on a 386 machine. In some cases, you may need to specify a longer delay for a machine that will run DOS/4GW but is not truly AT-compatible. To change the delay, set DOS16M to the desired number of loop instructions, preceded by a comma: set DOS16M=,loops Controlling Address Line 20 7 Chapter 1 ------------------------------------------------------------------------------- 8 Controlling Address Line 20 2 VMM The Virtual Memory Manager (VMM) uses a swap file on disk to augment RAM. With VMM you can use more memory than your machine actually has. When RAM is not sufficient, part of your program is swapped out to the disk file until it is needed again. The combination of the swap file and available RAM is the virtual memory. Your program can use VMM if you set the DOS environment variable, DOS4GVM, as follows. To set the DOS4GVM environment variable, use the format shown below. set DOS4GVM= [option[#value]] [option[#value]] A "#" is used with options that take values since the DOS command shell will not accept "=". If you set DOS4GVM equal to 1, the default parameters are used for all options. Example: C>set DOS4GVM=1 2.1 VMM Default Parameters VMM parameters control the options listed below. MINMEM The minimum amount of RAM managed by VMM. The default is 512KB. MAXMEM The maximum amount of RAM managed by VMM. The default is 4MB. SWAPMIN The minimum or initial size of the swap file. If this option is not used, the size of the swap file is based on VIRTUALSIZE (see below). SWAPINC The size by which the swap file grows. SWAPNAME The swap file name. The default name is "DOS4GVM.SWP". By default the file is in the root directory of the current drive. Specify the complete path name if you want to keep the swap file somewhere else. DELETESWAP Whether the swap file is deleted when your program exits. By default the file is not deleted. Program startup is quicker if the file is not deleted. VIRTUALSIZE The size of the virtual memory space. The default is 16MB. VMM Default Parameters 9 Chapter 2 ------------------------------------------------------------------------------- 2.2 Changing the Defaults You can change the defaults in two ways. 1. Specify different parameter values as arguments to the DOS4GVM environment variable, as shown in the example below. set DOS4GVM=deleteswap maxmem#8192 2. Create a configuration file with the filetype extension ".VMC", and call that as an argument to the DOS4GVM environment variable, as shown below. set DOS4GVM=@NEW4G.VMC 2.2.1 The .VMC File A ".VMC" file contains VMM parameters and settings as shown in the example below. Comments are permitted. Comments on lines by themselves are preceded by an exclamation point (!). Comments that follow option settings are preceded by white space. Do not insert blank lines: processing stops at the first blank line. !Sample .VMC file !This file shows the default parameter values. minmem = 512 At least 512K bytes of RAM is required. maxmem = 4096 Uses no more than 4MB of RAM virtualsize = 16384 Swap file plus allocated memory is 16MB !To delete the swap file automatically when the program exits, add !deleteswap !To store the swap file in a directory called SWAPFILE, add !swapname = c:\swapfile\dos4gvm.swp 10 Changing the Defaults bibclean-3.07/ibmpc/dos/wat10/wpp386/watpath.bat0000644000156700015670000000047606142125534020137 0ustar beebebeebe:# Set paths for WATCOM 10.0 compiler SET EDPATH=s:\sys\watcom\EDDAT REM PATH s:\sys\watcom\BIN;s:\sys\watcom\BINB;%path% PATH s:\sys\watcom\BIN;s:\sys\watcom\BINW;s:\sys\watcom\BINB;%path% REM SET INCLUDE=s:\sys\watcom\H SET INCLUDE=s:\sys\watcom\H;s:\sys\watcom\H\win SET WATCOM=s:\sys\watcom SET DOS4G=quiet bibclean-3.07/ibmpc/dos/wat10/wpp386/ibmtest.bat0000644000156700015670000001342206142015343020125 0ustar beebebeebeecho off break on REM ===================================================================== REM Test bibclean on IBM PC DOS. REM The funny backspace in echo commands is just to get a blank REM line, rather than the current echo status. REM [01-May-1996] REM ===================================================================== echo ================== begin BibTeX test 1 =================== echo bibclean -init bibclean.ini -err testbib1.err testbib1.org bibclean -init bibclean.ini -err testbib1.err testbib1.org >testbib1.bib echo  echo There should be no differences found: echo diff testbib1.bok testbib1.bib diff testbib1.bok testbib1.bib echo  echo There should be no differences found: echo diff testbib1.eok testbib1.err diff testbib1.eok testbib1.err echo =================== end BibTeX test 1 ==================== echo ================== begin BibTeX test 2 =================== echo bibclean -init bibclean.ini -no-check-values -err testbib2.err testbib2.org bibclean -init bibclean.ini -no-check-values -err testbib2.err testbib2.org >testbib2.bib echo  echo There should be no differences found: echo diff testbib2.bok testbib2.bib diff testbib2.bok testbib2.bib echo  echo There should be no differences found: echo diff testbib2.eok testbib2.err diff testbib2.eok testbib2.err echo =================== end BibTeX test 2 ==================== echo ================== begin BibTeX test 3 =================== echo bibclean -init bibclean.ini -fix-font-change -err testbib3.err testbib3.org bibclean -init bibclean.ini -fix-font-change -err testbib3.err testbib3.org >testbib3.bib echo  echo There should be no differences found: echo diff testbib3.bok testbib3.bib diff testbib3.bok testbib3.bib echo  echo There should be no differences found: echo diff testbib3.eok testbib3.err diff testbib3.eok testbib3.err echo =================== end BibTeX test 3 ==================== echo ================== begin BibTeX test 4 =================== echo bibclean -init bibclean.ini -fix-font-change -err testbib4.err testbib4.org bibclean -init bibclean.ini -fix-font-change -err testbib4.err testbib4.org >testbib4.bib echo  echo There should be no differences found: echo diff testbib4.bok testbib4.bib diff testbib4.bok testbib4.bib echo  echo There should be no differences found: echo diff testbib4.eok testbib4.err diff testbib4.eok testbib4.err echo =================== end BibTeX test 4 ==================== echo ================== begin BibTeX test 5 =================== echo bibclean -init bibclean.ini -German-style -err testbib5.err testbib5.org bibclean -init bibclean.ini -German-style -err testbib5.err testbib5.org >testbib5.bib echo  echo There should be no differences found: echo diff testbib5.bok testbib5.bib diff testbib5.bok testbib5.bib echo  echo There should be no differences found: echo diff testbib5.eok testbib5.err diff testbib5.eok testbib5.err echo =================== end BibTeX test 5 ==================== echo ================== begin BibTeX test 6 =================== echo bibclean -init bibclean.ini -err testisxn.err testisxn.org bibclean -init bibclean.ini -err testisxn.err testisxn.org >testisxn.bib echo  echo There should be no differences found: echo diff testisxn.bok testisxn.bib diff testisxn.bok testisxn.bib echo  echo There should be no differences found: echo diff testisxn.eok testisxn.err diff testisxn.eok testisxn.err echo =================== end BibTeX test 6 =================== echo ================== begin BibTeX test 7 =================== echo bibclean -init bibclean.ini -err testcodn.err testcodn.org bibclean -init bibclean.ini -err testcodn.err testcodn.org >testcodn.bib echo  echo There should be no differences found: echo diff testcodn.bok testcodn.bib diff testcodn.bok testcodn.bib echo  echo There should be no differences found: echo diff testcodn.eok testcodn.err diff testcodn.eok testcodn.err echo =================== end BibTeX test 7 =================== echo ================== begin Scribe test 1 =================== echo bibclean -init bibclean.ini -err testscr1.err -scribe -no-check testscr1.org bibclean -init bibclean.ini -err testscr1.err -scribe -no-check testscr1.org >testscr1.bib echo  echo There should be no differences found: echo diff testscr1.bok testscr1.bib diff testscr1.bok testscr1.bib echo  echo There should be no differences found: echo diff testscr1.eok testscr1.err diff testscr1.eok testscr1.err echo =================== end Scribe test 1 ==================== echo ==================== begin Scribe test 2 ===================== echo  bibclean -err testscr2.err -init-file bibclean.ini -scribe -file -no-check testscr2.org >testscr2.bib echo  echo There should be no differences found: echo diff testscr2.bok testscr2.bib echo  echo There should be no differences found: echo diff testscr2.eok testscr2.err echo  echo  bibclean -err testscr2.er2 -init-file bibclean.ini -scribe -file -no-check -no-par testscr2.org >testscr2.bi2 echo  echo There should be no differences found: echo diff testscr2.bo2 testscr2.bi2 echo  echo There should be no differences found: echo diff testscr2.eo2 testscr2.er2 echo  echo ===================== end Scribe test 2 ====================== echo ================== begin Scribe test 3 =================== echo bibclean -init bibclean.ini -err testscr3.err -scribe -no-check testscr3.org bibclean -init bibclean.ini -err testscr3.err -scribe -no-check testscr3.org >testscr3.bib echo  echo There should be no differences found: echo diff testscr3.bok testscr3.bib diff testscr3.bok testscr3.bib echo  echo There should be no differences found: echo diff testscr3.eok testscr3.err diff testscr3.eok testscr3.err echo =================== end Scribe test 3 ==================== bibclean-3.07/ibmpc/dos/wat10/wpp386/config.h0000644000156700015670000001173506141132037017410 0ustar beebebeebe/* config.h. Generated automatically by configure. */ /* WARNING: Do NOT edit the config.h file; instead, put any needed changes in custom.h, so that they can override assumptions made in the automatically-generated config.h file */ #define STDC_HEADERS 1 /* #undef _ALL_SOURCE */ /* #undef _POSIX_SOURCE */ #define HAVE_STDC 1 /* Define if you want old pattern-less string matching in .ini files */ /* #undef HAVE_OLDCODE */ /* Define if you want standard bibclean-specific pattern in .ini files */ #define HAVE_PATTERNS 1 /* Define if you want regular-expression patterns in .ini files using re_comp() */ /* #undef HAVE_RECOMP */ /* #undef HAVE_REGEXP */ #if !(defined(__cplusplus) || defined(c_plusplus)) /* Define to empty if the keyword does not work, but do nothing in */ /* C++ environment, because autoconf 2.4 gets the wrong answer from */ /* the AC_C_CONST test program under C++ compilation. */ /* #undef const */ #endif /* Define if your free() requires (char*) cast instead of (void*) */ /* #undef FREE_CAST_IS_CHAR_STAR */ /* Define if your compiler recognizes \a as an alert (ASCII BEL) character */ #define HAVE_ALERT_CHAR 1 /* Library functions that we need */ #define HAVE_GETCWD 1 #define HAVE_GETWD 1 #define HAVE_STRCSPN 1 /* #undef HAVE_STRDUP */ #define HAVE_STRSPN 1 #define HAVE_STRSTR 1 #define HAVE_STRTOD 1 #define HAVE_STRTOL 1 /* Header files that we might need */ #define HAVE_CONIO_H 1 #define HAVE_CTYPE_H 1 /* #undef HAVE_DESCRIP_H */ #define HAVE_ERRNO_H 1 #define HAVE_FCNTL_H 1 /* #undef HAVE_IODEF_H */ #define HAVE_IO_H 1 /* #undef HAVE_JPIDEF_H */ #define HAVE_LIMITS_H 1 /* #undef HAVE_OSFCN_H */ /* #undef HAVE_PWD_H */ #define HAVE_REGEXP_H 1 /* #undef HAVE_REGEX_H */ /* #undef HAVE_RMS_H */ #define HAVE_SGTTY_H 1 /* #undef HAVE_SSDEF_H */ /* #undef HAVE_STAT_H */ /* #undef HAVE_STDDEF_H */ #define HAVE_STDIO_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 /* #undef HAVE_SYS_IOCTL_H */ /* #undef HAVE_SYS_PARAM_H */ #define HAVE_SYS_STAT_H 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_TERMIOS_H 1 #define HAVE_TERMIO_H 1 #define HAVE_TIME_H 1 /* #undef HAVE_TT2DEF_H */ /* #undef HAVE_TTDEF_H */ /* #undef HAVE_TYPES_H */ #define HAVE_UNISTD_H 1 /* #undef HAVE_UNIXIO_H */ #define RCSID(s) static char rcsid[] = s; #define OS_PCDOS 1 /* NB: some systems have Standard C header files, but compilers that do not accept function prototypes (e.g. HP HP-UX 9.0.3 /bin/cc) */ #if defined(STDC_HEADERS) && (defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)) #define ARGS(plist) plist #define VOID void #else #define ARGS(plist) () #define VOID #endif #define SCREEN_LINES 24 /*********************************************************************** The limit on file name lengths is non-standard: -------- ------------- ------------------------------------------ Name Definition System -------- ------------- ------------------------------------------ FNMAX PCC-20 MAXPATH Turbo C 2.0, C and C++ 3.0, and TopSpeed C _MAX_PATH Microsoft C 5.0, 6.0, 7.0 and TopSpeed C MAXPATHLEN Sun OS (4.2BSD), 4.3BSD, Gould UTX/32, HPUX, KCC-20, AIX (RT, RS, PS/2, 370), HP/Apollo DomainOS, DEC Alpha (OSF/1) PATH_MAX SYS V (Silicon Graphics) PATH_MAX POSIX, DEC Alpha (OSF/1) FILENAME_MAX Intel RMX, NeXT Mach, Turbo C/C++ 3.0 -------- ------------- ------------------------------------------ ***********************************************************************/ #if defined(HAVE_SYS_PARAM_H) #include #endif #if defined(HAVE_LIMITS_H) #include #endif #if defined(HAVE_STDLIB_H) #include #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN FNMAX #endif #if !defined(MAXPATHLEN) && defined(MAXPATH) #define MAXPATHLEN MAXPATH #endif #if !defined(MAXPATHLEN) && defined(_MAX_PATH) #define MAXPATHLEN _MAX_PATH #endif #if !defined(MAXPATHLEN) && defined(PATH_MAX) #define MAXPATHLEN PATH_MAX #endif #if !defined(MAXPATHLEN) && defined(FILENAME_MAX) #define MAXPATHLEN FILENAME_MAX #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN 1024 #endif #if defined(OS_PCDOS) #define SEP_COMP " ;,|" /* separators between filename components */ #define SEP_PATH "\\" /* separators between directory path and filename */ #endif #if defined(OS_UNIX) #define SEP_COMP " ;:,|" /* separators between filename components */ #define SEP_PATH "/" /* separators between directory path and filename */ #endif #include #include #if !defined(HAVE_IOCTL_PROTOTYPE) #if defined(__cplusplus) || defined(c_plusplus) /* system files should have: extern "C" {int ioctl ARGS((int, int, ...));} */ #else extern int ioctl ARGS((int, int, ...)); #endif #endif #if defined(FREE_CAST_IS_CHAR_STAR) #define FREE(p) free((char*)(p)) #else #define FREE(p) free((void*)(p)) #endif bibclean-3.07/ibmpc/dos/wat10/wcc386/0000775000156700015670000000000014431412252015734 5ustar beebebeebebibclean-3.07/ibmpc/dos/wat10/wcc386/ibmclean.bat0000644000156700015670000000007406141407714020203 0ustar beebebeebedel test*.bi2 del test*.bib del test*.er2 del test*.err bibclean-3.07/ibmpc/dos/wat10/wcc386/dos4gw.doc0000755000156700015670000005227605572657400017663 0ustar beebebeebe DOS/4GW Configuration Guide WATCOM International Corporation Waterloo, Ontario, Canada 1 Configuring DOS/4GW This chapter explains how to use the DOS4G environment variable to suppress the banner that is displayed by DOS/4GW at startup. It also explains how to use the DOS16M environment variable to select the switch mode setting, if necessary, and to specify the range of extended memory in which DOS/4GW will operate. DOS/4GW is based on Rational Systems' DOS/16M 16-bit Protected-Mode support; hence the DOS16M environment variable name remains unchanged. 1.1 Suppressing the DOS/4GW Banner The banner that is displayed by DOS/4GW at startup can be suppressed by issuing the following command: set DOS4G=quiet Do not insert a space between DOS4G and the equal sign. A space to the right of the equal sign is optional. 1.2 Changing the Switch Mode Setting In almost all cases, DOS/4GW programs can detect the type of machine that is running and automatically choose an appropriate real- to protected-mode switch technique. For the few cases in which this default setting does not work we provide the DOS16M DOS environment variable, which overrides the default setting. Change the switch mode settings by issuing the following command: set DOS16M=value Do not insert a space between DOS16M and the equal sign. A space to the right of the equal sign is optional. The table below lists the machines and the settings you would use with them. Many settings have mnemonics, listed in the column "Alternate Name", that you can use instead of the number. Settings that you must set with the DOS16M variable have the notation req'd in the first column. Settings you may use are marked option, and settings that will automatically be set are marked auto. Changing the Switch Mode Setting 1 Chapter 1 ------------------------------------------------------------------------------- +-------+---------------+-------+----------+-----------------------------------+ | | | |Alternate | | |Status |Machine |Setting|Name |Comment | +-------+---------------+-------+----------+-----------------------------------+ |auto |386/486 w/ DPMI|0 |None |Set automatically if DPMI is active| |req'd |NEC 98-series |1 |9801 |Must be set for NEC 98-series | |auto |PS/2 |2 |None |Set automatically for PS/2 | |auto |386/486 |3 |386, 80386|Set automatically for 386 or 486 | |auto |386 |INBOARD|None |386 with Intel Inboard | |req'd |Fujitsu FMR-70 |5 |None |Must be set for Fujitsu FMR-70 | |auto |386/486 w/ VCPI|11 |None |Set automatically if VCPI detected | |req'd |Hitachi B32 |14 |None |Must be set for Hitachi B32 | |req'd |OKI if800 |15 |None |Must be set for OKI if800 | |option |IBM PS/55 |16 |None |May be needed for some PS/55s | +-------+---------------+-------+----------+-----------------------------------+ The following procedure shows you how to test the switch mode setting. 1. If you have one of the machines listed below, set the DOS16M environment variable to the value shown for that machine and specify a range of extended memory. For example, if your machine is an NEC 98-series, set DOS16M=1 @2M-4M. See the section, "Fine Control of Memory Usage" later in this chapter for more information about setting the memory range. +--------------------+---------+ | Machine | Setting | +--------------------+---------+ | NEC 98-series | 1 | | Fujitsu FMR-60,-70 | 5 | | Hitachi B32 | 14 | | OKI if800 | 15 | +--------------------+---------+ Before running DOS/4GW applications, check the switch mode setting by following this procedure: 2. Run PMINFO and note the switch setting reported on the last line of the display. (PMINFO, which reports on the protected-mode resources available to your programs, is described in more detail in the chapter, "Utilities".) If PMINFO runs, the setting is usable on your machine. 3. If you changed the switch setting, add the new setting to your AUTOEXEC.BAT file. Note: PMINFO will run successfully on 286 machines. If your DOS/4GW application does not run, and PMINFO does, check the CPU type reported on the first line of the display. 2 Changing the Switch Mode Setting Configuring DOS/4GW ------------------------------------------------------------------------------- You are authorized (and encouraged) to distribute PMINFO to your customers. You may also include a copy of this section in your documentation. 1.3 Fine Control of Memory Usage In addition to setting the switch mode as described above, the DOS16M environment variable enables you to specify which portion of extended memory DOS/4GW will use. The variable also allows you to instruct DOS/4GW to search for extra memory and use it if it is present. 1.3.1 Specifying a Range of Extended Memory Normally, you don't need to specify a range of memory with the DOS16M variable. You must use the variable, however, in the following cases: * You are running on a Fujitsu FMR-series, NEC 98-series, OKI if800-series or Hitachi B-series machine. * You have older programs that use extended memory but don't follow one of the standard disciplines. * You want to shell out of DOS/4GW to use another program that requires extended memory. If none of these conditions applies to you, you can skip this section. The general syntax is: set DOS16M= [switch_mode] [@start_address [- end_address]] [:size] In the syntax shown above, start_address, end_address and size represent numbers, expressed in decimal or in hexadecimal (hex requires a 0x prefix). The number may end with a K to indicate an address or size in kilobytes, or an M to indicate megabytes. If no suffix is given, the address or size is assumed to be in kilobytes. If both a size and a range are specified, the more restrictive interpretation is used. The most flexible strategy is to specify only a size. However, if you are running with other software that does not follow a convention for indicating its use of extended memory, and these other programs start before DOS/4GW, you will need to calculate the range of memory used by the other programs and specify a range for DOS/4GW programs to use. DOS/4GW ignores specifications (or parts of specifications) that conflict with other information about extended memory use. Below are some examples of memory usage control: Fine Control of Memory Usage 3 Chapter 1 ------------------------------------------------------------------------------- set DOS16M= 1 @2m-4m Mode 1, for NEC 98-series machines, and use extended memory between 2.0 and 4.0MB. set DOS16M= :1M Use the last full megabyte of extended memory, or as much as available limited to 1MB. set DOS16M= @2m Use any extended memory available above 2MB. set DOS16M= @ 0 - 5m Use any available extended memory from 0.0 (really 1.0) to 5.0MB. set DOS16M= :0 Use no extended memory. As a default condition DOS/4GW applications take all extended memory that is not otherwise in use. Multiple DOS/4GW programs that execute simultaneously will share the reserved range of extended memory. Any non-DOS/4GW programs started while DOS/4GW programs are executing will find that extended memory above the start of the DOS/4GW range is unavailable, so they may not be able to run. This is very safe. There will be a conflict only if the other program does not check the BIOS configuration call (Interrupt 15H function 88H, get extended memory size). To create a private pool of extended memory for your DOS/4GW application, use the PRIVATXM program, described in the chapter, "Utilities". The default memory allocation strategy is to use extended memory if available, and overflow into DOS (low) memory. In a VCPI or DPMI environment, the start_address and end_address arguments are not meaningful. DOS/4GW memory under these protocols is not allocated according to specific addresses because VCPI and DPMI automatically prevent address conflicts between extended memory programs. You can specify a size for memory managed by VCPI or DPMI, but DOS/4GW will not necessarily allocate this memory from the highest available extended memory address, as it does for memory managed under other protocols. 1.3.2 Using Extra Memory Some machines contain extra non-extended, non-conventional memory just below 16MB. When DOS/4GW runs on a Compaq 386, it automatically uses this memory because the memory is allocated according to a certain protocol, which DOS/4GW follows. Other machines have no protocol for allocating this memory. To use the extra memory that may exist on these machines, set DOS16M with the + option. set DOS16M=+ Setting the + option causes DOS/4GW to search for memory in the range from FA0000 to FFFFFF and determine whether the memory is usable. DOS/4GW does this by writing into the extra memory and reading what it has written. In 4 Fine Control of Memory Usage Configuring DOS/4GW ------------------------------------------------------------------------------- some cases, this memory is mapped for DOS or BIOS usage, or for other system uses. If DOS/4GW finds extra memory that is mapped this way, and is not marked read-only, it will write into that memory. This will cause a crash, but won't have any other effect on your system. 1.4 Setting Runtime Options The DOS16M environment variable sets certain runtime options for all DOS/4GW programs running on the same system. To set the environment variable, the syntax is: set DOS16M=[switch_mode_setting]^options. Note: Some command line editing TSRs, such as CED, use the caret (^) as a delimiter. If you want to set DOS16M using the syntax above while one of these TSRs is resident, modify the TSR to use a different delimiter. These are the options: 0x01 check A20 line -- This option forces DOS/4GW to wait until the A20 line is enabled before switching to protected mode. When DOS/4GW switches to real mode, this option suspends your program's execution until the A20 line is disabled, unless an XMS manager (such as HIMEM.SYS) is active. If an XMS manager is running, your program's execution is suspended until the A20 line is restored to the state it had when the CPU was last in real mode. Specify this option if you have a machine that runs DOS/4GW but is not truly AT-compatible. For more information on the A20 line, see the section, "Controlling Address Line A20" in this chapter. 0x02 prevent initialization of VCPI -- By default, DOS/4GW searches for a VCPI server and, if one is present, forces it on. This option is useful if your application does not use EMS explicitly, is not a resident program, and may be used with 386-based EMS simulator software. 0x04 directly pass down keyboard status calls -- When this option is set, status requests are passed down immediately and unconditionally. When disabled, pass-downs are limited so the 8042 auxiliary processor does not become overloaded by keyboard polling loops. 0x10 restore only changed interrupts -- Normally, when a DOS/4GW program terminates, all interrupts are restored to the values they had at the time of program startup. When you use this option, only the interrupts changed by the DOS/4GW program are restored. Setting Runtime Options 5 Chapter 1 ------------------------------------------------------------------------------- 0x20 set new memory to 00 -- When DOS/4GW allocates a new segment or increases the size of a segment, the memory is zeroed. This can help you find bugs having to do with uninitialized memory. You can also use it to provide a consistent working environment regardless of what programs were run earlier. This option only affects segment allocations or expansions that are made through the DOS/4GW kernel (with DOS function 48H or 4AH). This option does not affect memory allocated with a compiler's malloc function. 0x40 set new memory to FF -- When DOS/4GW allocates a new segment or increases the size of a segment, the memory is set to 0xFF bytes. This is helpful in making reproducible cases of bugs caused by using uninitialized memory. This option only affects segment allocations or expansions that are made through the DOS/4GW kernel (with DOS function 48H or 4AH). This option does not affect memory allocated with a compiler's malloc function. 0x80 new selector rotation -- When DOS/4GW allocates a new selector, it usually looks for the first available (unused) selector in numerical order starting with the highest selector used when the program was loaded. When this option is set, the new selector search begins after the last selector that was allocated. This causes new selectors to rotate through the range. Use this option to find references to stale selectors, i.e., segments that have been cancelled or freed. 1.5 Controlling Address Line 20 This section explains how DOS/4GW uses address line 20 (A20) and describes the related DOS16M environment variable settings. It is unlikely that you will need to use these settings. Because the 8086 and 8088 chips have a 20-bit address spaces, their highest addressable memory location is one byte below 1MB. If you specify an address at 1MB or over, which would require a twenty-first bit to set, the address wraps back to zero. Some parts of DOS depend on this wrap, so on the 286 and 386, the twenty-first address bit is disabled. To address extended memory, DOS/4GW enables the twenty-first address bit (the A20 line). The A20 line must be enabled for the CPU to run in protected mode, but it may be either enabled or disabled in real mode. By default, when DOS/4GW returns to real mode, it disables the A20 line. Some software depends on the line being enabled. DOS/4GW recognizes the most common software in this class, the XMS managers (such as HIMEM.SYS), and enables the A20 line when it returns to real mode if an XMS manager is present. For other software that requires the A20 line to be enabled, use the A20 option. The A20 option makes DOS/4GW restore the A20 line to the 6 Controlling Address Line 20 Configuring DOS/4GW ------------------------------------------------------------------------------- setting it had when DOS/4GW switched to protected mode. Set the environment variable as follows: set DOS16M= A20 To specify more than one option on the command line, separate the options with spaces. The DOS16M variable also lets you to specify the length of the delay between a DOS/4GW instruction to change the status of the A20 line and the next DOS/4GW operation. By default, this delay is 1 loop instruction when DOS/4GW is running on a 386 machine. In some cases, you may need to specify a longer delay for a machine that will run DOS/4GW but is not truly AT-compatible. To change the delay, set DOS16M to the desired number of loop instructions, preceded by a comma: set DOS16M=,loops Controlling Address Line 20 7 Chapter 1 ------------------------------------------------------------------------------- 8 Controlling Address Line 20 2 VMM The Virtual Memory Manager (VMM) uses a swap file on disk to augment RAM. With VMM you can use more memory than your machine actually has. When RAM is not sufficient, part of your program is swapped out to the disk file until it is needed again. The combination of the swap file and available RAM is the virtual memory. Your program can use VMM if you set the DOS environment variable, DOS4GVM, as follows. To set the DOS4GVM environment variable, use the format shown below. set DOS4GVM= [option[#value]] [option[#value]] A "#" is used with options that take values since the DOS command shell will not accept "=". If you set DOS4GVM equal to 1, the default parameters are used for all options. Example: C>set DOS4GVM=1 2.1 VMM Default Parameters VMM parameters control the options listed below. MINMEM The minimum amount of RAM managed by VMM. The default is 512KB. MAXMEM The maximum amount of RAM managed by VMM. The default is 4MB. SWAPMIN The minimum or initial size of the swap file. If this option is not used, the size of the swap file is based on VIRTUALSIZE (see below). SWAPINC The size by which the swap file grows. SWAPNAME The swap file name. The default name is "DOS4GVM.SWP". By default the file is in the root directory of the current drive. Specify the complete path name if you want to keep the swap file somewhere else. DELETESWAP Whether the swap file is deleted when your program exits. By default the file is not deleted. Program startup is quicker if the file is not deleted. VIRTUALSIZE The size of the virtual memory space. The default is 16MB. VMM Default Parameters 9 Chapter 2 ------------------------------------------------------------------------------- 2.2 Changing the Defaults You can change the defaults in two ways. 1. Specify different parameter values as arguments to the DOS4GVM environment variable, as shown in the example below. set DOS4GVM=deleteswap maxmem#8192 2. Create a configuration file with the filetype extension ".VMC", and call that as an argument to the DOS4GVM environment variable, as shown below. set DOS4GVM=@NEW4G.VMC 2.2.1 The .VMC File A ".VMC" file contains VMM parameters and settings as shown in the example below. Comments are permitted. Comments on lines by themselves are preceded by an exclamation point (!). Comments that follow option settings are preceded by white space. Do not insert blank lines: processing stops at the first blank line. !Sample .VMC file !This file shows the default parameter values. minmem = 512 At least 512K bytes of RAM is required. maxmem = 4096 Uses no more than 4MB of RAM virtualsize = 16384 Swap file plus allocated memory is 16MB !To delete the swap file automatically when the program exits, add !deleteswap !To store the swap file in a directory called SWAPFILE, add !swapname = c:\swapfile\dos4gvm.swp 10 Changing the Defaults bibclean-3.07/ibmpc/dos/wat10/wcc386/watpath.bat0000644000156700015670000000047606142125534020105 0ustar beebebeebe:# Set paths for WATCOM 10.0 compiler SET EDPATH=s:\sys\watcom\EDDAT REM PATH s:\sys\watcom\BIN;s:\sys\watcom\BINB;%path% PATH s:\sys\watcom\BIN;s:\sys\watcom\BINW;s:\sys\watcom\BINB;%path% REM SET INCLUDE=s:\sys\watcom\H SET INCLUDE=s:\sys\watcom\H;s:\sys\watcom\H\win SET WATCOM=s:\sys\watcom SET DOS4G=quiet bibclean-3.07/ibmpc/dos/wat10/wcc386/bibclean.exe0000755000156700015670000033315606142140617020215 0ustar beebebeebeMZ@)Y5rSRV11>t+|1<e>uۃ|1^Z[SUFxFzFVxF|FxF~)F-Fx'BËCTQVWUPƉ׉^!Ë1uE^<\t3<.t.u=+;r u&&+شJ!ߎǿM uV&>&>&tA*O0!&&&<r/,+3 =nou D=87uE<u<uFF<u&6&&ܺVڎ‰.>0+ϰ>u  3PV>¹Xt0ظʼSPRں=!Z<u+I@!XPXL!PVXSQӉ¸C!rt t9Y[SQVUÉэs0ҴG!҅} 1E!ApƆq:pƆr\1Bu_Åu ĉэp؉]^Y[QWnj؎1I_YVWljWtG<t&ttDtutX_^SQRVWUP6t2t.!Vȉ8u?=uE  u1]_^ZY[QVWljW؎1Ott tu쨪__^YQVWUƉVxlj=u+Ã?u!<\t<t|:t>Åu@Fz+FzF~?tغ;j Džu lj)؉F|;F~vKF NFڋ^|[ ^^|\t\C؉^zA FVx=uÃ?u =;u]uЍ]_^YSQVWƉӃu 1Gt gO1Ɋ0Ft %=utgOu9 _^Y[SQVWGutO gu u-G@u$O? GG;G ut'O? GwuG;G u u؈0_^Y[R*,n fSV;s<t wފD^;t G?u Gt_ tW[8DWVRQ=YZ^_:DWVRQXYZ^_USQRV^1oF^+Ct9؋J^ȃ,66,*f^ZY[]QVWUƉ^F< t< uF<t;<"u;Fv<"t.<t)<\u |"t|\uFDt ƈCԉt4v<t*< t%< t <\u|"uFDt ƈCՉэDFF@t"~׋N F<uvJF<tv<^F7]_^YÅu1ÅuSø [SQRV0‰Ɖ s2>rPu"r rv0@0É7^ZY[SQRUt;FXډÅu ~u u tF.؉]ZY[QVWօtnjډَW1X_^YVWljօu1:$u-,1&1҉F1&?tw&?tBr)uÉƅt^tI11ҎF&?t>׉5&CFuA1ң Vl]_^ZY[PrXQVWUPRSF VKF \~.uF u4F 1PPF Pz=u6F .C1PPF POƒdt'VZ =u A< ~ZMZt~ZZMu1~~tV^~\ ~d+~b 11ɺ 1 ljn F ^PFvPF|P؋V^zNx =t[FƒtǍF V^1 V|tvnvpvjvhv~FPF PFz]_^Yø"SQRUFR!V^N^KK1ҋFЎ&@]ZY[PXSRŽ1KJ!´J!Z[P`XSQRôH!ۉ…}1P:XSQI1ێ&OC9s1)ىˎJ!ۉY[øPXQVWUPPRS111 1ێ&ou>utOȺ~DžtANFVjƅu1ێF&F~ut&G&?Mt );Fr@9sJ1ێ&W;tԎ1&w,FPF1҉13sJ1ێ&W;u9t9uOJ1ێ&?Mt;H&G&GH&G;Fs >L!@&G@똎I!닅tǴI!҅tƴI!1ێ&I!҉مu1| Vƭ8t t8tt8tt8tu1NN^QVWlj։W؎__^YS  uGtG GtG G G GugG OGG OGG[SQRVW1Dt:dDt.|t(\TD\ =uO;DtN <>|t8dD u.D tÉѺًDu =uL DD_^ZY[VWQ tCr>$+#;G w+w;ww+;v+#Wt;u +K+ЉG Lr\]MىOƋt|uw Y_^VWQ tt$u;uwS]}][O|;s;uwn;rg};r^;wwV+ҋG OAI;s%W +;w+<t.tHu;s;r};r };r}U ׋;u ;wuGT|uuO ;ws;OvO;O vO Y_^SVWƋV1 9r ߋ_u|\t u=DE6T6Vtw<<;6^w ;>`v>`]_^[S>Ttj;u1[SQRVWƒ>~u1>tBt)‰9rމ;nsn;s =t=w9v)‰у9wȃ>Tt+>T׍W9u6TD= sdƉË bGd)_^ZY[1QWىLjW__YSRXl.Z[Ìp;s+;w;ptZStack Overflow! QWnj؎0OuA_YSU^ GP1Pvv][SQRVWUv< uFF$0FF F=!҉ÉuFtVtQ uHFt>!ƸF@t%V1ɴ@!҉É}>!҉u_F tu^ˋGu31ɨu0!҉lj|F F=!҉É|lj $<‰t f~u~u~uFtʀ @FtFt >;u‰ ]_^ZY[SQRVU @É t1D!ɉЉV}V 0D!ɉЉV|1]QVWU PRC‰Fu&øuø@t^V?!҉ÉFDž}Z}^1^VN?!҉ÉFF|څtWv1҉1NN-?uF1ɺ+^Ƀ^%? tG@ FCB;^rΉv)FF u~u]_^YSQRô>!҅u 11 AøZY[VWUމljЉ~B!66Uʉ} 1FV]_^ x xBۃ7؃؃ yۃۃۃ؃ uKtCt0;w ȋ+ڋ+;ru;w +Ë++Ҹ++ۓUVW+rE;rw;vMx"+rMx sы؋ʋƋ_^]SVÉ֊tFC^[VWUƉ^NuFt (@FCC?uF~ t F>nnFF/u(F%Åu>nÉ>n~ر~ ~t *CGG=uC~ tG1҃<t tBfFFu~v ^_k^ F]_^VWUP։^uC<t!FF<tljFF<t ]t *Vʋ^]_^!sw<u2< u2< uGa !L!Bad format on exec $Bad environment on exec $Not enough memory on exec $ЭҋPP!sw<u2< u2< uGa !L!Bad format on exec $Bad environment on exec $Not enough memory on exec $ˌ+؁vKK&ЋPˋЎء2\$v AAvغ!\)!u +áJ!u¡ZY[SQRøD!€t1ZY[SRV;r19=*Ë6D@u6ހL@t ÀO Ӌ^Z[SÀ@[SQVWьډÉ_^Y[SÌȉG؉GЉG[SRV6&t&\W@9"Guƅt8:r@ÉƅtW\(6( 1É^Z[SVWǾ(t;tM?<6&7&_^[S>&t&&&SR(u;GtZ[S‰[0=9~'SQVWUƉVW‰t$0K9uF$0D_DF$0DD.D tD mD pD ]_^Y[SQVWUƉV|u1DttljÃu=t ыD1x~tD> Dt DDDtFT 0F{URP2ف!Ɏ,SU^GOWw  GGGG]SڋwOWw  oG_̐  !"#$'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~͇͈͉͍͎̀́͂̓̈́͆͊͋͌ͅ͏͓͔͕͖͙͚͐͑͒͗͛ͣͤͥͦͧͨͩͪͫͬͭͮͯ͘͜͟͢͝͞͠͡ͰͱͲͳʹ͵Ͷͷ͸͹ͺͻͼͽ;Ϳ%sÝ&sÝáSQVËG>փu =u"tGt G G)։ȉ^Y[SQ11jY[SR´A!҉Å}1Z[DOS4GPATHPATHdos4gw.exedos4g.exeStub exec failed:Error 0No such file or directoryArgument list too bigExec format errorBad file numberNot enough memoryPermission deniedFile existsCross-device linkInvalid argumentFile table overflowToo many open filesNo space left on deviceArgument too largeResult too largeResource deadlock would occurunknown errorPATH.com.exeNot enough memory on exec ",X`z-EXi a(  hhh} ) ` \  LE{<nHJJHHTUKKv[E  <C  BIBCLEANH Q!0$%%()))))))7II6 _ _d' a a a , d ' d     p d | ` a a 6; aX _ x | a: @( 8 | d dK C Fi  dBd o Jdaa`aO8pkVQ<0L#8 aaaaa`pq``}ppqT`M`Cp7qq qqpq*#ddaaaaaa|x|_|a|x|}art_hPh1hM_aa|x||x|#aa_aaaaaaaaaaaa_aCa8a w i E paaia[pH|>p9|4p)popaoaapaaoa|ap|{anp``pЀp8y~alaQaKEp?a:2,S`MH&|!|||||`` `pq`qq `  ` a `~ u eW e ` ai `d a\ fG `B f. `  a a ` a a ` a ` _ ` ` a ` a _ # e _ ,f ,f (f _ (f (f _r (f] (fW (f_0f0fb,fM_:,f1,f#_,f_0f_0f0f_0f2J-a,d'd~j_ZdA/a!daa||x|xaa_tzdsd_o_L_: ___Ѐp8d`[XOd__`UXP`B`<p6/'d!Xpab eYe`aezd=|,`&d`C n!` ` a d a ` B r > m `V `Q gB `= g- aL eh|`F \p4a+dda d d gpdp| `T Q N h|F pa aaaaadEa:8a`p UaHC\ 7 "aa aaap `a`aa__ _xps ` v ` a ` g} `x g_ `= `- `(  # a `Z pU I pD  ` ` `  ` ` ~ `  )a |    b _o pj ^ pY     ' ` ` _ a   _ `   a `l`4f(| \fa`paSaQ`B`&` aaaaaaaJaa~aappje[```~n`iv]dEa3a&d;d2a)ddddaaaaa`p_azk\/`)`D _ a a a a a ad d a a a a a ay aa8a8oaR i_Ia<aa aa__5)aa adda   Y aafa\aP a dhaa_ `  `   `   d a a d a d a ds d` dL aF a9 d! a_ aG g? p:  a g g    g a d ` p   )a  e i a 8 p  8_ Z L Z C d `q aZ a| ]aSaC 29*8ap _; laaa`a`_``= {as`XpSS_6_ S `_  Q lZ _Z _adaaph{apaha]aMa\W KaAa+a a:gaaaaa8dd8dqdidSgaa{d3_Q`Lc?`&`l`l_b ,$ 8 8F _& p!  8 a a 8 8 8 l _} x [ ` ` ` ` d a a a{ ~a `  Q W `= d- ( d d    )ax }af a[ aF a> a/ aO_5a a ` ` %a a a` `B d`i`a`iaaaa`xake)ag ,_A 88a$ 88i `87_8 pd.8||t|xxtt|)||taaaaaaaa zabaYaN8=a78aa_aaa8a _kaaaV8;g5g+8 98gB_ aa :r :m .;` :K  :;  :+  :  : :  :&  : .; : :   : : _ _0;_yjdjQj0;^_@0;-0;_0;=;;;<;;;_sdd`Wa_~_u_`_RaFa:_Ea?8```_a_a__`8___`y`T_Fa=_/`E `( a ` a ``_`  j j j  j a ` ` `i `S _  j  ji  j\  jT _E  j= j7 j/ j' j j j |9 |9 _ _ |9 |9u _ q`'`!l`"_] ^_^_`a`_`_a~`+`\XT_`H8|`q`1lhd`7|)2p(|)_a`f`8z|)p|)gt]|)Q|)Lrv8q86f {fv=`, `````````|`0 @< a a v ` }av`dv d a a a d | `aaaawabgEH<?@<djdUd@a+aaaaH<@<V{`Z{dd{`dM;F;>P;8;2;*o;$S;;R;|; ;;;L;;;__w_V_D_)_e _H _2 _ __ _ ! ! _ _ _{ _ !| !e !N _8 _H _/ _ _ H< ] t] D< t D< @< H< Vv D< @< D<{ H<~ ]q |l ]_ |Z ]U ]O @<E `; ]6 H<X_/a$dT bbbbbnb3b\bb`bUbMbubbnbc kNsKNs#! +Ns_Ns_NsNsNs iNs`Ns;NsNs@;n;;;[;H;;;;V;J;M;`;;;~;;;z;rN;l;f;^<X;R;E@;X;S;~ < ~ p < ~ ~ ~ ~`_]D<_|_/p ||T<~P<~~~~~~~ V|T|~T|~~~|~Q]<I~<~4~~~M~@~&~~~~~~]<~8 y q~ q~` X<[ X<F L< X< [ <U ~M ~F ~@ |6 ~0 ~ ~ ~ ~ ~ ~i ~H ~B ~2 ~( ~" ~p|6|~||n|i]_|X<#~E`~~] ^ ~ X<V W ~Q ~6~ ~ ~ ~ ~ ~~;~~~~~~@h<-h<#j<~~~n~e~\~ ~~~~~~~~q~X<X<p~h|xL<aL< ~6 ~ U _@  ~  ` `   ````````QL<>L<1L<,L<X<P<T<~~~spmj'j!R~~XnXdX?X+X`v`<pd<`?_~~Z~\<S\<~)~ ~~~~u L<X<X<P_|h|||Y|>X<3h| ~3 ~ ~ ~ ~Z ~O ~ ~ ~ ~s ~m ~" ~ ~ ~ ~ ~``l<#` `_:,$++ J~wpf\SJB:3,"~zvrnjfb^ZVRvrnjfb^ZVRNJFB>:{6t2m.d*[&S"KD=NJFB>:6|2t.m*f&]"TLD=60 *!{* & " z p f ] T L D = 6 0 * % %     4+#                      { s k d ] W Q G = 4 + # ~ skc\ULC;3,%~z                               | s k c \ U O I~ ?z 5v ,r #n j f  b ^ Z V R N J F z  v r n j f b ^ Z V R N J F B > : 6 2 .              | u n h b ] X~ Oz Fv >r 6n /j (f "b ^ Z V  R N J F B > : 6 2 . * & "      B > : 6 2 . * & "   y s m c Y P G ? 7 0 )     {wsokgc|_t[]WFSBO>K:G6C2 T H  q x jt l dh ~` ]\ !T WP H D < 8 0 , $ O  H W } U d S W T v | w r h ^ U L D < 5 . ( "         jfb^ZVRNJFB>V:6I2.<*&0"0}"x sni?.;%73/ +'# {f[PF<. VIB<60*$*$yu}qwmqijeaaY]QYJUFQ?M7I1E*A$=951 -d_ZVMI@<40&" <0~0zv"rn> KY: Y6 X2 '. X* IX& X" W ' W W MW  W V ' V fV !V U U ' U fU #U ' V] M] K] ?] :] 8] #] !] ] ]  ] ' \ \ \ \\ "\ ]uX<uu|u:X!__^^^^^^|^x|^tj^pZ^lH^h2^d^`^߫߫ I I ' ZI I I ' H H ^H H G G ~G ' 5 ' fG "G T T ]T T S S ' hS 'S R R R ' nR 2R Q Q }Q fQ ' WQ Q P P~ JPz Pv Or 'n Oj MOf  Ob N^ NZ 'V NR @NN NJ MF M [~ [z [v R[r %[n Zj Zf Zb ZZ^ !ZV $N 'J  ZF YB Y';:999=9%9'88~8z'vZ8r8 F F WF ' F E E {E ' 5~ 'z kEv 'Er Dn Dj `Df Db C^ 'Z CV \CR CN BJ BF VBB B> A: A6 xA2 '. 9A* @& @" @ ' l@ +@ @ 'B nM> ': 0M6 L2 L. oL* 0L& L" ' K K K ' rK .K J J dJ "J IZ*V*R*N'JZ*F*B)>):'n7j7fQ7b67^'Z7V6R6NM6J'F6B5>5:H56452'.5*4&4"T444'33 i3,3' 322D2'211'1=1 ? ? T?'2?>>o>/>==d='(=<<^<<;;V;;::P:#0ow#ok#o6T)2).(*(&K("('''J'(' &&&Z&#&%%%U%%%$$$$~$g$a$F$1$$###o#Eo000D00//?//.'.t.4.--s-2-,,j,~(,z,v'r+n+j+f'bf+^!+@"l0"l "n"n"n!n!|n!gn!2n!m!Rn!ma#oU#o?#oo5#Zo#Eo #0o"o"o~"znr"n|nf"bgnZ"VRnN"JmB">m6|"#0ozw#von?#jEob #^0oV"Fo>#:o2#.o&#"oo#Zo# Eo#    yyoof]UMC9~0z'vrnj fb^G = 4 + !~mv!rmj!fm^q!Z#mRg!NmFS!Bl:F!6l.?!*l"2!m0!2m*h"&mW"m<zqiaWMD;~3z+v$rnj fb^ZVRNJFB>:62.*&|ZVRNJFB>:62.*&"|tjja XPHAA8/'5.~&zvrnjfb^ZVRNJFB>:62.*z&q"h`XOF> 6/("tmf\RH >5,$ yrh^ULDTsZys`lfN+J hsSQVWUljs$1.$X9vӉ)4(uVA)8u0]_^Y[hTsh DsQRa~, J ap< u ZY ZYhrRa~o tZhrSQRa0䈣pK~ o u|Rp uI0Ɉp|pr| ^sSprãap =a~|pr1ۉa|sZY[h)rRa~ o%ZøZhrRaJЅ|;a} p%ZøZh qRV=a | u15ap@a^Zh4xqSQRVWUaN 1ɉ ~a 8pP5ЀV=pWhh-`Ur` `r|||ڸ|||| ]_^ZY[hpRPhh`R r rZhdpSQRVW11uz%VA1qhx~@ u tu hpHhZ1tu a u|x1|a]Á |A_u|x |a+ u|x$||x |{ua }u a^ZY[hlSQR1t6_t# rv t ZY[øZY[C뾉 ~ ZY[1ZY[h?lSQRV11=au Uau:atau:at0aÃW_tD rv t"ϊau:au ^ZY[F믊au:atA뙃~1a^ZY[hfkSQR1Ux a +oau ݱaݱa@ݱa@Cd}auZY[hjR€=du._u.t#t &t%uZ1ZÁ_ u¸Rot1ZhzjSQVWӸHot:o1҉a`|djp ډwb=du'n&=du,n&ډoa=au=auHaډ$=at _^Y[1_^Y[h }iQV9w$49sHV JHKw^YÊ B@Kw^Yh>iQ@KwYh#iR6Zà  E=au5 t0a9~|x\ Z[Z[VZ[Z[F\ˆ%_u1 %u JYt uZ[ƒ t th4hSÉЁ|uX[Érh[h hh gSR=K=3%hgR¸8B>@CZhzgQVWUljՀY1PT$D$Lu1 $ tȉg kt$d;$t |uY1ɉ $XdXTƃt;u5dD$)ƅ}1|D$9pphFblX1 ؉fFu]_^YhsfR Kh(YfPhFD$Pk rhd.fQVWUX e [=au;)/ <=au z u B1B"SZ[ø JZhdSQVր=d8znLaULA2'8 ^Y[h7dSÉЊau:au[Ê=au:=at=au-[Á‰[hcSÀ:d;}d: -a "u+؀ r9{r"v<\t7 tt^ rp vIwt\1\b\fԸ\nø\r벸\t롸\v됸\n릊%_`%PhD$Pg zB"1 '[hbR-rvt   1B"uZhaDhaRda#1҉aZhaRZh aSRd | iZ[ÉBd t_u au 0=a2 ux|  ux| |{u aZ[Ã}uaZ[h `SR a@dÅu :bZ[h `SQÊ#tL%_t 1e1Ɋ %_t 1e19uCB뮊%_t 1e%_t 1e1)ÉY[h _QVb%_t1 1XeƁ%_t1 1/e%9} ^Y5ABKv !t:uu1^YÀ9u:%p^Yþ^YhF_Snf€=du+uOPShXh[`S`[h4^SQRVW€=dA 8p[PЀRpShX=duPhp `Q``X`_hc^SQR1%_u Bu<uBZY[h'^h^R€=aZhp]SQRUL<u(pt>?u Fp_^Y[AS9|%_^Y[hLXRa`|<tWZh'XSRa`S<tM.`;_ t) e=|=3~ $@uZ[hWa| z`ÃA| Z@Ã1| 9Ã0u$øhmWVWUʼn$߉L$11! -t_uC.@;D$s$J9r+@-t_uT$)‰Ѓ]_^hVSQRVD1ҊPR1ҊPR1ۊXS1ɊHQpV@%PRSQVPheD$0P[4D^ZY[hVQVWUu(f=(fv -u]_^YË (fs#_ti-(f]_^YË5(fr %_t~=(f]_^Y0]_^Yh VQUu,f=,fv-t_t]YË ,f s!_ ti-,f]YÃ=,f r(_ u Xtxu ,f]Y0]Yh bUQUu0f=0fv-t_t]YË 0fs!_ ti-0f]YÃ=0fr(_ u Xtxu 0f]Y0]YhTSD$T$D$bD$T$t D$ $݃hTSQR1ɋ@CACCt%<tCK)ȉC ZY[hCTSQRVË@C11C0(uA )uIu1FCCt%tͅɋCS)ЉC t 2^ZY[hS\hSSQVW|$|fщúD$!1ɻ-s14fu:t`C"ȉ$uD$SuD$8D$aSuv_^Y[h$RSQVWU |$fщú D$`1ɻ S s Xtxu 10-u+Xtxu 0ȉ9tC$uD$R uv ]_^Y[h$ARSQVWU |$щú D$1ɻ Ts!Xtxu 0C-u+Xtxu 0ȉ9tC$uD$QuF:hQVWUƉ$߉ͺ^u F;Fu1M^u7Att ‰^t\u &‰؋T5C;^| VӅu ‹F@FT$,]_^h(PQVWUƉՉ$1%Љua $Aaũc|Vhh`RQvZa Tau waa@a@a $K1퉯aa]_^Yh OSR¸`OÉO=s`QZ[ø``yQZ[hZOSQRVW pk¹ pau4@u/~a=aZx1=aC:J!hNRM&R=d =a=au =dv`[u ~`[u `[u 7=au 3=dh K =dtU=dtB<u=dt!=aԀ=dtZh}M=ahfMSQRVW p0%`#{ `#u>au:auau:at5 ^'8 hLQRVW p"¸`N`=`"u%M #u4/ n _^ZY>QZh!LSQRVW p2ƒr,u=aud $fXa9u:)u a5au)u ~=a뵉 \ 05a hrKSQRVW p1u%_u u%_t Pv%_@t PŠ-au$=au`a`) r"`0䈣a ` `Cƒt *0䈣`t1g`Wug`CLF|р=au`]lv`Wu `H~`Wu `)`kWu ` ` hIQRVW p pt =u"a t)a+#_^ZYh1ISQRVƅQ\F TuB `%Hv h-FR=au0Z=dt=at=`t1҉g=du, 3=dt=at=du *=dt=axZh(ESQVWUփzupF h|L RupF h|nN …u'+UhQ hT `PF| zS5~wȋp=du pSA;Z]_^Y[hDSQRVWU8=a=dYfƒ?=au=a)u9u 1a}=au@u =au}u=a| pƒ{u a}>(t)80҈9 ta)aE{?r .C)=a9u )u a=atuD+}+ 1]ehCS*ltX; ÅtH…t4%_tB1;t  ȉ뿉bQ[hBSQRVW p18r"`0䈣a= `p`hCt,t%_t0툫`t{=au` 1h0ASQRVW$S zDž $%_%‹$%_t$t$=t :$=t:u$$%_u$8"u\Z ƅtJ$%_t$$0"uZ É58t%u1lRQhQ h_ `SHB]B_^ZY[h@R u8=auZÊ%au:%at5au:5auZhF@hp0%a=au!==du7ր=au =at Ih?RtA{ua}ZÃ(ua)a Zhi?SQRVQ  v)^ZY[É?ƍAD1D1%au-:%au%OT1 rv҃%t^ZY[Ê=au:=auh >SRÊ r v7 Pv,%t=Z[À =vg%g1.렊d0҈d¸ d{hD>SQRV8dD$0%d10Ɉ 8@u=au wr$@31a<$ uO s_t* $_u$ ؉ $ $WD$d^ZY[hI=Ra 0҈aZh(=D=au @=dtq=dt h<Ra9)u a=ayeh<SQRV1*ú cK yƃ{rv}pw@nG$?D$6D$0d$ Gu&ú 2u )"A ITnh;SQRUdŠ%au=auEeE|sa9u)u aSW0%P%_u?Ra%P aQhhEP;@U]ZY[h :SR1=dtC{t}u J}BÃt;auJZ[hf:R=d6=a)]=au +=d `Gu ( `Gu F`dGu =au =d~aa=dt[>=dtH|<un=dt'=aԀ=dtIaZh 9SR1ÃtC¸g=u Z[-gg%aZ[h8SQRVW p=g%Š%au=au$d$t:=t/u)u~)e <)a+Vh7QRVW p ¸`9=dt =au`_^ZYN_^ZYh 7SRPdD$Z $6D$Z $#D$ 1҉T$%T$.Z[h=7SQRVW8 pI0%81frQ=auڸ4=at$au:ata<u:au1҉B t%_t z=auڸ4=at$a<u:atau:aumh!6Ra 0҈aZh6=au =dtt=dth 5SRËPu 9 E;u CZ[hn5R=attZh=5SQRVWU18aJ10҈8 5au&=aueG5a7r D 0a҃ u Nv u$=ad=auT M%_u{uE3}uM+\u&C v\u C 1ɅtC t)%_t/1118{uE8}uM4>"cZ=gF<'rv<-<"u{B"BCB}{B"B}B ~\hf{u`FtY8tU<}tQf}uI){)7777$+|\uJ{B\C{B"BBC8t g"$\0^u $ 0%a4‰Ёh2SQR88"'rDA =BÃt%_ uB"ZY[h~1SQR81.rDi s/Ckƒt ?u‰>ZY[h 1SQRVWU80%8€=d%} p8%»1Lu%_t:rC( % uAC(ƒu+;hF0SQRVt|0%||)t)ډ؉@t;t 4xt#5x|v~\u Ft뫀=|u A t1^ZY[ø|^ZY[h /SR8à r v%t& r! wBZ[_‰Z[ÉZ[hT/SQR%au:%au ZY[Ê5au:5at=au:=atъ-auG:-au? dZ:-au ZY[:-au ZY[ø ZY[ø ZY[h.SQRV18a108P=au%=au0aMr#D ]0=a9" u v u$=ad=auT M%_u{uF3}uN+\u&BÃ\u B1ۅtB"uAv=aZ[Z[h,!$QVWU=aunt:u!P=lWh-`U%]_^YÅu"RP lQh5`VZ%]_^YSRPlRh`S7%]_^Yh #SR1R(P 1J9sZ[h l#SR`#À=`"uXa%_tC@9s`_uC)ú`¸a肹`?#À_"uIHv^_u㊸^\uv :]tHƀ_"0҈`Z[h$"SQRVWU$81110d$Ѐ{v}E /`%_tA9{Tq0~XX0ti\C0tT`.0t?d0t*h0tl/u,F${D$u|$u$0ۈ\$M$` GF`<$`B#]_^ZY[h+!SQRVWƀ=auܺ(%u111"{r v}t ,t B JuAuՅtG_t@¸|)"p|)1<u"r|)1|)1t|)p1|)X"h$F SQRVWUD$8` $uT$4 t$1`D $9uQfӉu>|$vfD$0{D$01ҋD$}$D$1ۉ$Ffu$D$l!$D$1jŅID$Ɓ88\$Fغ,uFD$-u T$T$h SQRVWU`7h%`":`ff$0``ʻ,u80҈`]‰//Ɓ` yE=du<`;u30`‰I/=/Ɓ` yA`9Y[‰//`hSQRV 11-tJv\Á_u@a-t@aÁ_u-B_ t _ u]Á_taÁ_u3Á_ taÁ_u a?u"-BBÁ_u`@` `^ZY[h SQRVWUP8=au$j111ҋ$ *P{r v}t >.t7C4K1u-v)H_@t@%_@tB* FB랉h$ SQRVWU8=`"111{r*JL$hv}tÉGT$dÉO`Á_@tBaÁ_@u tu뀸`A܀`\1X _@tEC`_uލH9k~gB1{J9sʼn$@ʋ $ $`,$MۉӉ}`{ua}ur`\ea u\@Y0ۍjt@Ӊ{`Á_@u tÉ@B`.щB}É@ꊛ`1`]2Z`.=aqh SQt j1ۉj0%j j<{rv)<}t-1<"u-=ju$=j%jj j=ju j%_u! j8.u  j*u$H  j jt Ȁ9ctY[h,SÉЊ_u8_u!@C_u8_t[hSQRV‰|90%|9sB$zŠ({u2PcP8}}f+@Ct(uE_u8_u"‰) @CtɊu$ ‰ g =|9t|91Ĕ^ZY[hSQVWUׅH:?tP¸ :05:1۸ :t :<%tʸ :C |й :t9u5:O0=.;::9"=~ʸ:1Ҋ:u:^)ؾ:މÉ0%.;:/j9iA'U1]_^Y[hSQRVú (%u.ƅt!'%t G^ZY[h3SQVր8uv@0t,_ u8Xt xt1҅u1҉5Á_ u 8Xtxu B u@ t-u@u1҉^Y[hSQRVW1#jЉSujFju1_^ZY[h GSQÊ"t.%_ u*Xt xt1tB1+-u 0;@C` t-_ u*Xt xt1ɅtB͊*i0;B@C;uM}Hƀ0;->1Ʌt+B t$_ u*Xtۀxtֹъ*t0;B@:t > uK%_ u:Xt xt1t ;;<;;;-0=;0;Y[1Y[hQVWUPщk) 9}%…t#É9sd$D$@9sK3%FǍT$#ƅu‰9sJ$ʋ$4]_^Yh<QV0щމD$ ^ʉUD$ 9ÍT$ =!}.D$)D$ ÉD$!}10^Yh SQÍH:1t*B"t#%_ uA9|  tu~K0҈Ns뱃u^0BNs%_tuC)Ns%_u3K}}10NsGO}NsCm/.*~ 0Ns+Ns 6 *  søNsg K } u +|$}1G\$|(؋tȺNs u uOGԅ|D$8uK<$G+|$}1]_^h SQÉ%ڸGڸ ;ڸ/I׉Y[h<h,h!Yt=u?IIrv$Pr v#Qt!0ÃOt0ÃGrwð ðððð0ÃuÊ@;h h h SQR1Ҹ@;D%;%;%<;;N;-;-;-;-~;5;5;5`;5M;5J;5V;%;%;%;%H;=[;=;=;n;;;L;;;;|; R;; S;o; ;;P; -; ;-;;ZY[h p SQÉHaBWrOar-rrwGdX\:r)DrRAt= .G%_0Y[Ê%_t%_]oߊ%_ t2%_ t%_ %11`1%_.%_ߊ%_%_t %_N%_t N%_t1%_t%_t 1Ҋ!1Ҋ!t %_t%_%_ti{1Ҋ!2uL1Ҋ!1Ҋ!t1A:A!;%Y[h SR@X\rv{xv}tZ[ÀtGZ[É؊_t_t@C_t@PuЊ8uuZ[hYSQVWljѾˋxtr%tbH<C@<D<@t6u6D<Rjdht]h]D$P, Ѩv H< ЉFB9kĄ_^Y[hSQVֻExt5%2t%H<D<B@<D<@VvrC9|^Y[h)-t/u1h .}ah SR`1ۺv`Z[hahahSR@<H<]F`uG@<Sh]h]h|h]h|]`|Z[zZ[h4VdhAah ,ahah SRdv=d%1ۈá`v.1[Z[hR@<H<1{Zh~ghiahTvah?aah*Lah7ah SR@<H<11 a aZ[hahahahdhvdhadhLndh7h -SR`1ۺ{1h2dh SRdZ{`1ۺV{h SRD<@]躣%Z[ 2dhSQVWׅu t1_^Y[ÉB%_u111Aƅt9~)ˉB:u˅t_^Y[h %h SR_@tn|‰t +|/pZ[hSQVW։Džt%t:u_^Y[É舢tA9u1_^Y[hkRH…uyZhXLSQVWU<Ɖ׽^& u0ɀ"u4މ$,<"YQ<\u v"t8uFFCՉ$,.t) t$\u ~"uF6?t*uFCщu$($($,$8EF$0$ PM$$$8$0$0r@u捔$ R$11$ P$$$8D$[u@*ÉEh$0$87<]_^Y[hWR~~~~~~~P<~T<ZfT|ÇD$ D$9s );~vff;T|tøV|&QW؎)I1I_YSQVWUӃzuc 1tֈS s 11tA8uƅtC $ĈC c u 3ƅu)]_^Y[SQVWUB uJ yzux u3B @u'J  2Fz2Gjz9u uJ @rFz ru;ru u1]_^Y[Åuj1SR\$D$T$$Z[R|~~ZR~~yQV t BK@utK@^YQP tJHuXYSQRUË ~ 9w9r IQu~ځ؉; ~t-~Q9v~0%]<]ZY[SQRV@ u)Z Z ZKZ} Q C%B @u8 u rNr} & C%uJ J ^ZY[SQR%u ZY[ËZ KAZ A%ZY[SQRVxu;a tt Q Y A$Y $u!YuYt*AA tYAAquI A A A A^ZY[SQRVWUƅtv1~~01ۈ$$f s ;~v ~uF ~ ~81ډ ~aÅuH~Q9v~IuȀ<$u ut0Ɉ $r$i0؈-]<]_^ZY[SQ1Ҋ9t Š @u1Y[SQRVWUŋ5~t?t;؎)I1Iȉu <9=uG u1]_^ZY[SQӋJ@Y[SQRD$T$y$D$T$ZY[Ãa|z ÃA|Z SQR11$0شPf~&\~ f؎J!Xff,8f=CBu4~֋V)ӴJ!ff~F)fp,fٰ Yfxf!<t4fftf~ff1f tf~f& ,ff$f,f~%~f&|5~f ~Vf~><)&O wffڎێtA(^OWR&f~) =no87u~=uE>u>uFF>u^f-~=~~><>p)=~u v)р><$~5~#)##RP|f=!fZ<u)I@!XP#XL!f.|QVWlj։؎WȀ__^YSQVWlj։ðD!ʉ$}1f$#$$0fF %fFFfFfFF ~&$tfN$tN$t"FFF^ F" F^ GW!fffʉ$bD$$+$FF"F$v F΀v 1_^Y[SQ É$1"`%u AC1u։ȃ Y[VWUʼn׉މL$t%_tBD$ <+t<-uBu(:0uB<$u$\^t/1y4$8t:6uފt1ЉAZF$:uޅt7t.t.F?tG>_^SQÉь&u ؉Y[QR0zu&b t Bt BBB"Bu BJ BB͈J j J BBZYSQRV` 1t]y A y y~YQAcu Q ƈQ ^;AtY ga a ?yt9Q q Q u(At»ڋAWu Y ƈY AA^ZY[ø RZø RZ~øSQRX<1BH t C@ tuZY[SÉЋC[QVWUƋh ` Nσ0f u'N 1t̀n F …tf f ^ VF t~ Љ~ ]_^YVWQ tEr@$ )!;Cw+s {9ws()9v)!׍S v9u{)K)‰{CN rlj{ ^_O{ˉ{Kϋv~ws ƃY_^VWQ tƃt$u;{ us S_{_[K|{ 9s;wwn{(9rg9r^{ ;s$wV)ҋCKAI9s%S)9w)>t.tHu{ 9s{(9r9r 9rW9u;s u{ CV~w׉wK;s s;KvK;KvKY_^R1ҡ~~u !%ZQىô?!ȉ…} %7YSR~9u R~~9u S~P@tBtPZ[SQRVW~B$,9u8ZЋJʋKuf;ƴ1‰I!벋RSQVWUÉ~9B,90Bx3 )ځ0҉Ӊf8fp1@tfff8fpt_X @؉OC)ƃ r$(${CG{ R71]_^Y[SR¡~1 9r Ë@uZBtS~tPZ ,BBBBZZ,ZZ[SR~t=R$ӊ%~rw=~u 1@~;~uZ[1Z[SQRVWP$ $ô1@tfff8fpt$P@|fj<t h<<$w\h<H!ȉ…|B$H!ȉƉÉI!|1fЃ$p1_^ZY[SQRVWP=u1=~ttЀ=~u$Ʌt"$$H!!؋ $‰ $t$4$9w$8rË$ zBGCzHSQRVUP=~u =~t =~ u $( =u1=~t~rw=~u 1@~$ ~9stÃw9v)B$9w~$jt9w9rRut&K9u4$4$2,$ (<$8/$؉Ë$$ BCBr]^ZY[SRVËu1^Z[À=~u =~t =~ u)‰<;rʋ59s;r0҉%^Z[1VWULމL$D0ۉD$(\$H\$<1ۉ׉\$8Y\$(LNJGD$=/ uD$,HD$,|1ҍD$(T$>T$DL$?t1҈D$(AT$DD$4HL$4tD$(0T$DD$<u$|$> tD$,HD$,|1ҍD$(T$>T$Dt$=stSuGD$< t!D$0HL$0tP1ҍD$(&T$DߋD$0PT$0t/1ҍD$(&T$DCD$0HL$0t1ҍD$(&T$DCD$<;|$,0D$,PT$,D$( T$DދD$8L]_^QVWCC C€0r$9wkK 1Ҋ0@K0r.9v'8*u"RS}׊s߀{s@C8.uG@C8*uRS}C@0r9wkK 1Ҋ0@KPNrvVlr v"wt_^YÀht"_^YÀFrCv0Lt!_^YÊS @S_^YÊKЈK_^YÀK@_^YÀKk@Јk_^YSQB-uJB#uJ7+ujjZ uzuJ0uZ@Y[QVW։߉1Ɖ& Bt9t@_^YQVWщމ1f&;ft9t@QVWUՉ$D؎)I1I$ΉH)(JN H K9u(|H0J,$E]_^YQVWމ$} ڍH-$~uF 1fD$ˊ!Qt~t,.11fT$<$k $T$0@A;F|D$tP9u2K1A0u.u0H90uA0AI9.uI<9tĈ!0밃_^YVWUljމ $؉\$FF f t kt h **mf~tF F uFD$(%$T$,$Љ=!ȉD$|1f|$t$(mthu]D$)t>!ȸ3@t3T$1ɴ@!ȉD$}>!1fD$D$( tf|$u׍D$0@u31ɨu!ȉD$|$l$,=!ȉD$h1f|$$<‰ t $$<$u<$u<$uD$(tʀЊ\$) @tt =q~u‰ _^ZY[SQRV! @Éi t;D!ʉ$} 1f$$ D!ʉ$|1^ZY[SQRVW5L<tNy @L<fIh| A u$ƅtQ%p~rظ"@ƅt(H1jy X<N5X< 1_^ZY[SQRúX<t%H9tI K L<L<ZY[RL<tЋL<ZSQVWb ;BZ )9|z4)lj21z_^Y[ËBB_^Y[QVW@ t[A t& t/u} _^YÃu+qAAa A_^YÃr v t^밅t'몉Љʋy6tjA)uY_^YËAT Q))ljʉt7Adu(_^YËAQ AQ A<t1_^YSQR@ u"B tZ Z uـJ ZY[RU~ 9s)ĉ1~У~ T<P<Igx]ZVWSR>R>j9s>t 8FwF9tC tRZZ[_^VWSֈ>j>p9s>t :FwF9t8w C tRZ[_^Åu1ÅuSRˆ1s8=~rPu"r rv1҈ڋ~ %}Z[SQR;r1ZY[Ã1áX؊H@ù@h t XL XZY[S@Ӊ¡X[S$Á P\$ÃD$ Ё% KD$Љ\$%҉D$$T$ $[SQRVW1ƃt1lj1ۉ_^ZY[SQVƉѻ 1Nf1`4A4u^Y[ød<ø`<Å|~?_Ë`á~SQR‹@ÃtJtB tZY[É)ZY[QW؉˴B!f6f6Wȅ}%$_YSR‰ô>!ȅ|1U1Z[øfZ[@$SQVWƉ׀d$~ډ1fЉ…VWU P׍C$9s s WT$9\$)Ӊ+u 6CD$CډD$ ~f;$u5~ 9w9r vVuV 9uBF ;)r )Ѓ s4D$ T$PЋT$ PD$(FH0҉F\<9r@ӉD$ CD$CD$ XD$XT$:10:%\<j)X)ƒ rOËL$~\$ڋ$f9u5~ 9w9r vNuFD$1]_^ÃtT=~u =~t =~ u1t,|$u$tL$1_^Y[À=tRPWVIDEO1SQR%|%|h||CÅuÅuP_TX<KX<Q uL<ZY[1 SQRV)оh|1ơX<%@@ @u 9r=|s1gCȅu׉^ZY[QVWUƉ$t-1ҴB!fff‰ׅ} 1f0$@!ȉƉlj…}1f9t Ѓ]_^YR¡ZSQRVW=~u =~t5~ n~X~f<u$ô1@tfff8fp˸H!!؅uB #rw 1@~~_^ZY[SQRVWUP;~rW=~u`,$u1یfô! Dž}ljJ!ȅ|؎J!ȅ}CD?$ u~u :~u؎뱋$~~]8SQRVW=~%~10Ҍ=~&:t&0X8tA)u‰ÅntT~11Ɏ&8t~&@CuF~ʉ~1O__^ZY[0123456789abcdefghijklmnopqrstuvwxyzQVWU(Չ߉0ҍL$$\$$|$$13.UD$$AuIFu(]_^YQу u }-BYR_QZ0123456789abcdefghijklmnopqrstuvwxyzQVU(R݉0ҍL$T$\$(l$(13T$(.AuIFu$,]^YQу u }-BYSQRðD!€%ZY[SR1"Z[É+~SQRVWUž U@`uׁ~} E¹ ƅ}N |׍lt`NЍ{} OtOU)U‰)Ћuƅ} OƀQ1] օ}} ~+5} OƀQcuQ}#!))]_^ZY[R´A!ȅ} %Z1ZSQRu+¹dt ZY[ùډt1ZY[SQVWU$ËH ltC4E`E`C4E`E`)1<$|$|$L$ CD$T$|$ l$S)C uHB)9~C H\$Ӊ)u@)@$]_^Y[QVW։ljډ19~_^YSQRVWUX1D$ t  AlikD-t`` ``)‰T$1ҋC T$C9~ QC)D$|$A )ЋQD$+SD$|$A H)ЋS $u%D$T$9r$9b\BD$T$)ЋT$@9G$9~;5SuAlbt `9~BJA9 u|$|$tȉut$ 1ۋF \$^9~1Q^)ڻi )ՋQF)‰A H1)Ћ^ ƒuD$9U9QGK)@9|9}>4^uAljt `9~CKi919uD$|$t ȉNj\$ t)ljy ]_^ZY[SQVUHr19|uHj9|u ;}]^Y[VWUlj։؁s~Q)1һQOQ)1҉ǻQ1Ӿ11҉AӾ<11҉An1Љ؉)ÅvB)Íl6m9rB)`YlQt`1‹V9r@AF)1CGY ȉQ]_^SQB 1ۋcY[Rl<Zø_%/SQ1Ҋ0r9wk 1ۊ@0Y[QVWUʼnT$8:uEUt,t-t+t 0r9vE݉)D$ ~D$ |$L$ ؎WȀ_L$ 1E-u+uŊE<0t<9wpT$1<$|$|$&Šŀ:uT$@Š(8u @ŋT$)ЋT$‰)Ћ$‰tى ]_^YSQVÉъ Ju;MuC1T$ ؉q ‰Åt D$ AED$ HA:.u1BT$ g‰ËD$ A :.uBT$ KËD$ AA1T$4$t$;/u6T$C‰À8:u!BT$‰À8:u BË$D$AD$A؃^Y[SQR1һ Š u%+[-$к+ $)ˉ€,u @8,u @ZY[UNKNOWNABBREVATCOMMACOMMENTENTRYEQUALSFIELDINCLUDEINLINEKEYLBRACELITERALNEWLINEPREAMBLERBRACESHARPSPACESTRINGVALUEchaptermonthnumberpagesvolumeyear??%s "%s", line %ld: %s. . %s %s Out of memory for pattern tables"#%'(),={}BIBCLEANINIbibclean.inistdoutPATHBIBINPUTS@# line "" %ld input byte=%ld line=%ld column=%2ld output byte=%ld line=%ld column=%2ld File positions: input [] output [] Entry Value Current\%03oUnexpected paragraph break for field ``%f''Pushback buffer overflow: characters lostOut of string memory: FAILED%%%s open file [%s]%s %s%s "%s", line %ld: %s. JrJr.SrSr.SJS.J.S. J.??????????IVXUnexpected citation key ``%k''String length exceeds standard BibTeX limit for ``%f'' entrySuspicious year in ``%f = %v''Non-zero parenthesis level in ``%f = %v''Unexpected value in ``%f = %v''??????9ABCDEFGHIJKLMNOPQRSTUVWXYZ23456789ABCDEFGHIJKLMNOPQRSTUVWXYZ2345678????????JanuaryjanFebruaryfebMarchmarAprilaprMaymayJunejunJulyjulAugustaugSeptembersepOctoberoctNovembernovDecemberdecJan.Feb.Mar.Apr.Jun.Jul.Aug.Sep.Sept.Oct.Nov.Dec.JanFebMarAprJunJulAugSepSeptOctNovDecDeathesisDEAthesisInbookInBookIncollectionInCollectionInproceedingsInProceedingsMastersthesisMastersThesisPhdthesisPhdThesisTechreportTechReportansi-standard-numberANSI-standard-numbercodenCODENieee-standard-numberIEEE-standard-numberisbnISBNiso-standard-numberISO-standard-numberissnISSNlccnLCCNmrclassMRclassmrnumberMRnumberuriURIurlURLurnURNxxansi-standard-numberxxANSI-standard-numberxxcodenxxCODENxxieee-standard-numberxxIEEE-standard-numberxxisbnxxISBNxxiso-standard-numberxxISO-standard-numberxxissnxxISSNxxmrclassxxMRclassxxmrnumberxxMRnumberxxurixxURIxxurlxxURLxxurnxxURNauthorchaptermonthnumberpagesvolumeyeareditortitle%%%s Out of memory for pattern name [%s] -- pattern ignored Out of memory for pattern tablesValue too long for field ``%f'' # @ begins line, but brace level is not zero after entry ``@%e{%k,''Expected @name{...} after entry ``@%e{%k,''IncludePreambleString# Non-zero brace level after @name{...} processed. Last key = ``%k''Expected closing brace or parenthesis in entry ``@%e{%k,''Non-zero brace level after @name{...} processed. Last entry = ``@%e{%k,''Expected comma after last field ``%f''Non-alphabetic character begins an entry name@entry_name too longExpected "=" after field ``%f''BIBCLEANEXT.iniEntry field name too longNon-alphabetic character begins a field nameoptOPTstdin-rb?? %s Ignoring open failure on file [%s] perror() says@ begins line, but brace level is not zero after entry ``@%e{%k,''Expected open brace or parenthesis. Last entry = ``@%e{%k,''Braced literal string too long for entry ``%e''rCitation key too long=: %s Bad line [%s] in initialization file [%s] Non-zero brace level at end-of-fileExpected open brace or parenthesis. Last entry = ``@%e{%k,''"comment"@Comment{end"Comment"CommentBeginExpected Scribe open delimiter, one of { [ ( < ' " ` for field ``%f''Expected Scribe separator "=", "/", or " " for field ``%f''Out of memory for pattern table spaceBibTeX string too long for field ``%f''Unexpected quote usage in German-style braced stringEnd-of-file in braced stringBibTeX string too long for field ``%f''BibTeX string too long for field ``%f''BibTeX string too long for field ``%f''End-of-file in quoted stringExpected Scribe value string for field ``%f''Scribe string too long for field ``%f''Scribe number string too long for field ``%f''Expected BibTeX value string for field ``%f''%s Bad line [%s] in initialization file [%s] },={"" file=[%s] field=[%-12s] existing patterns discarded file=[%s] field=[%-12s] pattern=[%s] file=[%s] field=[%-12s] pattern=[%s] message[%s] \bf\em\it\rm\sf\sl\tt {}" # # " # """" # " and ;,|\0-000-190-2000-6980-70000-84990-850000-899970-9000000-9499990-95000000-98012231-550001-869571-8698001-8956822-012-192-2002-6072-70002-83172-840012-894362-9000002-9400282-95000002-99000033-013-193-2013-6333-70013-82523-850013-895243-9000013-9290313-95000003-98029644-004-194-2504-6574-75004-84704-870004-898294-9000004-9499995-015-125-2005-6905-70005-83965-850015-899965-9001655-9008507-007-047-1007-3147-50007-56397-800007-810357-90000080-0080-0980-20080-23680-700080-715180-8500080-8552980-90007580-90108181-20081-64881-700081-726681-8500081-8569081-90000081-90021182-40082-59982-700082-766182-9000082-9176982-99000082-99251783-0083-1183-20083-23383-700083-708083-8500083-8554183-90000083-90048284-0084-0784-20084-69984-700084-842084-8500084-8960085-0085-1785-20085-34185-700085-726185-8500085-8545785-90000085-90005186-0386-2786-30186-45586-700186-786186-8000186-8204586-90094186-90128987-0087-2087-41187-61187-700087-779987-8500187-8979687-98000087-99720288-0088-1988-20088-46188-700088-840288-8178588-8606589-090-0090-1890-20090-44990-500090-699990-7000090-7431990-80000090-80086891-091-191-2091-4891-50091-63291-700091-799891-8500291-8835691-97000091-99208392-092-592-6192-7792-80092-89192-900192-911793-0950-00950-47950-500950-795950-9000950-9899950-99000950-99949951-0951-1951-20951-54951-550951-889951-8900951-9498951-95000951-96448952-90952-6666952-9500952-9714954-0955-20955-28955-550955-616955-9000955-9151955-95000955-95444956-10956-19956-200956-266956-7000956-7205957-05957-43957-500957-685957-8500957-9699958-02958-32958-600958-656958-9000958-9285958-95001958-95343959-00959-13959-200959-216959-7000959-7033960-00960-12960-200960-433960-7000960-8499960-85000960-85203962-00962-19962-201962-474962-7001962-7646963-00963-18963-200963-892963-700963-8481963-85000963-85084965-01965-19965-207965-442967-60967-89967-900967-989967-9900967-9989967-99901967-99999968-10968-39968-400968-899968-6000968-7275969-0969-1969-26969-39969-400969-473969-8000969-8159970-05970-10970-604970-619970-91000970-91074971-06971-36971-500971-631971-8500971-8819971-91000971-91273972-0972-1972-20972-50972-550972-722972-8004972-9499972-95000972-97520973-21973-49973-550973-682973-9000973-9134973-95000973-95521974-00974-10974-200974-685974-7000974-8499974-85000974-88000975-09975-19975-345975-554975-7402975-7797975-95384975-96606976-40976-42976-600976-636976-8000976-8105977-01977-17977-200977-457977-5000977-5235978-000978-199978-2000978-2887978-30000978-31118979-400979-557979-8000979-8322980-00980-07980-200980-316980-6001980-6303981-00981-03981-200981-215981-3000981-3099982-01982-03982-100982-500983-60983-73983-800983-899983-9000983-9750983-99382983-99747984-01984-30984-400984-556984-8005984-8085987-09963-09963-19963-309963-449963-5509963-5999963-75009963-78469964-09964-69964-709964-949964-9509964-9909966-209966-499966-8309966-8829966-98409966-98749968-97029968-97039971-09971-49971-609971-899971-9009971-9899971-99009971-99249973-109973-189973-7009973-9259973-97009973-99189974-09974-309974-369974-5509974-5809974-75009974-75059976-19976-59976-609976-849976-9009976-9889976-99909976-99929977-009977-899977-9009977-9899977-99009977-99999978-579978-999978-9519978-9719978-99049978-99109979-19979-49979-509979-579979-8009979-8279979-90009979-90679980-09980-19980-549980-849980-9009980-9159981-09982-009982-309982-8009982-8159982-99009983-859983-879983-99009983-99019987-309987-5509987-5839987-88009987-88239988-099903-099904-099904-499904-6099904-6599904-90099904-91799908-1199908-2999908-90099911-0099911-3299911-60099911-86099912-099912-599912-6099912-7999912-90099913-099914-099914-499914-5099914-5899914-90099914-92799915-099915-399915-5099915-7899915-80099915-83099916-199916-3099916-3599916-70099916-70499920-099920-299920-5099920-5599920-90099920-904More? f)orwd b)ackwd e)nd q)uit r)efresh t)op \/)search   PgUp PgDn Home End More? f)orwd b)ackwd e)nd q)uit r)efresh t)op \/)search   PgUp PgDn Home End Search backward: Search forward: !#()*+,-./:;?[]~?align-equalsauthorcheck-valuesdelete-empty-valueserror-logfile-positionfix-font-changesfix-initialsfix-namesGerman-stylehelpinit-filekeep-linebreakskeep-parbreakskeep-preamble-spaceskeep-spaceskeep-string-spacesmax-widthno-align-equalsno-check-valuesno-delete-empty-valuesno-file-positionno-fix-font-changesno-fix-initialsno-fix-namesno-German-styleno-keep-linebreaksno-keep-parbreaksno-keep-spacesno-parbreaksno-prettyprintno-print-patternsno-read-init-filesno-remove-OPT-prefixesno-scribeno-trace-file-openingno-warningsparbreaksprettyprintprint-patternsread-init-filesremove-OPT-prefixesscribetrace-file-openingversionwarningsAuthor: Nelson H. F. Beebe Center for Scientific Computing Department of Mathematics University of Utah Salt Lake City, UT 84112 USA Tel: +1 801 581 5254 FAX: +1 801 581 4801 Email: Usage: [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]align-equals ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile Command-line switches may be abbreviated to a unique leading prefix, and letter case is not significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag to no. For such options, the last setting determines the flag value used. This is significant when options are also specified in initialization files (see the INITIALIZATION FILES manual section). -author Display an author credit on the standard error unit, stderr. Sometimes an executable program is separated from its documentation and source code; this option provides a way to recover from that. -error-log filename Redirect stderr to the indicated file, which will then contain all of the error and warning messages. This option is provided for those systems that have difficulty redirecting stderr. -help or -? Display a help message on stderr, giving a usage description, similar to this section of the manual pages. -init-file filename Provide an explicit value pattern initialization file. It will be processed after any system-wide and job-wide initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANINI, but defaults to .bibcleanrc on UNIX, and to bibclean.ini elsewhere. For further details, see the INITIALIZATION FILES manual section. -max-width nnn bibclean normally limits output line widths to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special- purpose applications may require different maximum line widths, so this option provides that capability. The number following the option name can be specified in decimal, octal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is interpreted to mean unlimited, so -max-width 0 can be used to ensure that each field/value pair appears on a single line. When -no-prettyprint requests bibclean to act as a lexical analyzer, the default line width is unlimited, unless overridden by this option. When bibclean is prettyprinting, line wrapping will be done only at a space. Consequently, a long non-blank character sequence may result in the output exceeding the requested line width. When bibclean is lexing, line wrapping is done by inserting a backslash-newline pair when the specified maximum is reached, so no line length will ever exceed the maximum. -[no-]align-equals With the positive form, align the equals sign in key/value assignments at the same column, separated by a single space from the value string. Otherwise, the equals sign follows the key, separated by a single space. Default: no. -[no-]check-values With the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g. ``year = "192"'' instead of ``year = "1992"''), and issue warnings when unexpected patterns are found. This checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can disable it with the negative form of this option. Default: yes. -[no-]delete-empty-values With the positive form, remove all field/value pairs for which the value is an empty string. This is helpful in cleaning up bibliographies generated from text editor templates. Compare this option with -[no-]remove-OPT- prefixes described below. Default: no. -[no-]file-position With the positive form, give detailed file position information in warning and error messages. Default: no. -[no-]fix-font-changes With the positive form, supply an additional brace level around font changes in titles to protect against downcasing by some BibTeX styles. Font changes that already have more than one level of braces are not modified. For example, if a title contains the Latin phrase {\em Dictyostelium Discoideum} or {\em {D}ictyostelium {D}iscoideum}, then downcasing will incorrectly convert the phrase to lower-case letters. Most BibTeX users are surprised that bracing the initial letters does not prevent the downcase action. The correct coding is {{\em Dictyostelium Discoideum}}. However, there are also legitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, bibclean will normally not supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this option to supply them. If you think that you need this option, it is strongly recommended that you apply bibclean to your bibliography file with and without -fix-font-changes, then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You will have to decide which of the two output files is the better choice, then repair the incorrect title bracing by hand. Since font changes in titles are uncommon, except for cases of the type which this option is designed to correct, it should do more good than harm. Default: no. -[no-]fix-initials With the positive form, insert a space after a period following author initials. Default: yes. -[no-]fix-names With the positive form, reorder author and editor name lists to remove commas at brace level zero, placing first names or initials before last names. Default: yes. -[no-]German-style With the positive form, interpret quote characters ["] inside braced value strings at brace level 1 according to the conventions of the TeX style file german.sty, which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, invisible hyphens, raised/lowered quotes, French guillemets, and discretionary hyphens. Recognized character combinations will be braced to prevent BibTeX from interpreting the quote as a string delimiter. Quoted strings receive no special handling from this option, and since German nouns in titles must anyway be protected from the downcasing operation of most BibTeX bibliography styles, German value strings that use the overloaded quote character can always be entered in the form "{...}", without the need to specify this option at all. -[no-]keep-linebreaks Normally, line breaks inside value strings are collapsed into a single space, so that long value strings can later be broken to provide lines of reasonable length. With the positive form, linebreaks are preserved in value strings. If -max-width is set to zero, this preserves the original line breaks. Spacing outside value strings remains under bibclean's control, and is not affected by this option. -[no-]keep-parbreaks With the positive form, preserve paragraph breaks (either formfeeds, or lines containing only spaces) in value strings. Normally, paragraph breaks are collapsed into a single space. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-preamble-spaces With the positive form, preserve all whitespace in @Preamble{...} entries. Default: no. -[no-]keep-spaces With the positive form, preserve all spaces in value strings. Normally, multiple spaces are collapsed into a single space. This option can be used together with - keep-linebreaks, -keep-parbreaks, and -max-width 0 to preserve the form of value strings while still providing syntax and value checking. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-string-spaces With the positive form, preserve all whitespace in @String{...} entries. Default: no. -[no-]parbreaks With the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field/value pairs. This may be useful to quickly trap runaway strings arising from mismatched delimiters. Default: yes. -[no-]prettyprint Normally, bibclean functions as a prettyprinter. However, with the negative form of this option, it acts as a lexical analyzer instead, producing a stream of lexical tokens. See the LEXICAL ANALYSIS manual section for further details. Default: yes. -[no-]print-patterns With the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used. When bibclean is compiled with native pattern-matching code (the default), these patterns are the ones that will be used in checking value strings for valid syntax, and all of them are specified in initialization files, rather than hard-coded into the program. For further details, see the INITIALIZATION FILES manual section. Default: no. -[no-]read-init-files With the negative form, suppress loading of system-, user-, and file-specific initialization files. Initializations will come only from those files explicitly given by -init-file filename options. Default: yes. -[no-]remove-OPT-prefixes With the positive form, remove the ``OPT'' prefix from each field name where the corresponding value is not an empty string. The prefix ``OPT'' must be entirely in upper-case to be recognized. This option is for bibliographies generated with the help of the GNU Emacs BibTeX editing support, which generates templates with optional fields identified by the ``OPT'' prefix. Although the function M-x bibtex-remove-OPT normally bound to the keystrokes C-c C-o does the job, users often forget, with the result that BibTeX does not recognize the field name, and ignores the value string. Compare this option with -[no-]delete-empty-values described above. Default: no. -[no-]scribe With the positive form, accept input syntax conforming to the Scribe document system. The output will be converted to conform to BibTeX syntax. See the SCRIBE BIBLIOGRAPHY FORMAT manual section for further details. Default: no. -[no-]trace-file-opening With the positive form, record in the error log file the names of all files which bibclean attempts to open. Use this option to identify where initialization files are located. Default: no. -[no-]warnings With the positive form, allow all warning messages. The negative form is not recommended since it may mask problems that should be repaired. Default: yes. -version Display the program version number on stderr. This will also include an indication of who compiled the program, the host name on which it was compiled, the time of compilation, and the type of string-value matching code selected, when that information is available to the compiler. [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]align-equals ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile bibclean Version 2.11.3 [01-May-1996]Compiled by <beebe@plot79.math.utah.edu> on May 02 1996 08:06:36 with native pattern matchingUnrecognized option switch: %s%.*sw%%%s cannot open error log file [%s] -- using stderr instead perror() saysno-ivxlcdm: Not enough memory *.*Error 0No such file or directoryArgument list too bigExec format errorBad file numberNot enough memoryPermission deniedFile existsCross-device linkInvalid argumentFile table overflowToo many open filesNo space left on deviceArgument too largeResult too largeResource deadlock would occurunknown errorNot enough memory to allocate file structures Floating-point support not loaded TZ 8888888888 XXXXXXHHHHHHHHHHHHHHHHHHHH  @;Zx0Nm<[y1On$Id: bibclean.c,v 1.10 1996/04/26 01:15:13 beebe Exp beebe $ $*17?FJQYajqw}H$Id: chek.c,v 1.2 1996/04/26 01:17:05 beebe Exp beebe $Invalid checksum for CODEN %c%c%c%c%c%c in ``%%f = %%v''Invalid checksum for ISBN %s in ``%%f = %%v''Invalid checksum for ISSN %c%c%c%c-%c%c%c%c in ``%%f = %%v''Incomplete CODEN %c%c%c%c%c should be %c%c%c%c%c%c in ``%%f = %%v'' $Id: do.c,v 1.5 1996/04/26 01:35:56 beebe Exp beebe $ "&04<@IMVZ_dinsx"}00<IV"00<IV}])>'"`{[(<'"` .<FP[f{ %.26:>BF]t|$*$*06<BExpected Scribe close delimiter `%c' [8#%03o], but found `%c' [8#%03o] instead for field ``%%f''HOW!]~djqHTvTWSdU}W$Id: fix.c,v 1.4 1996/04/26 01:36:27 beebe Exp beebe $$Id: fndfil.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $$Id: isbn.c,v 1.2 1995/10/07 15:50:07 beebe Exp $"(.5<DLU^hrw| "(/6>FOX]bhnu| )07?GPYcmsy #,5?IOU\cks| %%*06=DLT]fpz #+4=GQW]dks{ #+4=DKS[dmt{%,3;CLU\cks{!*06=DLT]fmt|",3:BJS\fpw~(/6>FOX`hqz&.5<DLU^hry $,5>HR\fmt| $+3;DMWaiqz'/8AAHPXajjt| '09CMU]fooyy   # + 4 = G $Id: keybrd.c,v 1.3 1996/03/04 18:56:21 beebe Exp beebe $$Id: match.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $$Id: option.c,v 1.5 1996/04/26 01:16:37 beebe Exp beebe $0!m2!l?!lF!lS!mg!#mq!m!m!m!m!Rn!m!2n!gn!|n!n!n"n"n "l0"l@"mW"mh"m|"m"m"Rn" gn" |n" n"o"o"0o #Eo#Zo5#oo?#oU#oa#ok#ow#0o#Eo#Zo#oo#o#o#o"0o #Eo?#ow#0o#Eo#o###$1$F$a$g$~$$$$$%%U%%%%#&Z&&&&('J''''(K((()T)'))*Z*'***!+f+'+++',(,j,,,2-s---4.t..'./?///0D0000=11'112'D222 3',3i333'44T4445'45H5556'M6667'67Q7778Z8'888'%9=9999;:'P:::;V;;;<^<<<(='d===/>o>>>2?'T???'@+@l@'@@@9A'xAAABVBBBC\CC'CD`DDD'EkE'5'{EEEF'WFFF"GfG'5'~GGGH^HHH'IIZI'III"JdJJJ.KrK'KKK'L0LoLLL0M'nMMMN@NN'NN OMOO'OPJPPPQWQ'fQ}QQQ2RnR'RRR'ShS'SST]TTT#UfUU'UU!VfVV'V WMWWW'WXIXX'XYKYYY Z'$!ZZZZZZ%[R[[[["\\\\\\' ]]]!]#]8]:]?]K]M]V]'$Id: romtol.c,v 1.1 1995/10/07 15:51:44 beebe Exp beebe $]$Id: strist.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $Stack Overflow! aX<uuu :  ^^2^H^Z^j^|^^^^^^^^_!_߫߫ PFESTEDT + s ys bibclean-3.07/ibmpc/dos/wat10/wcc386/ibmtest.bat0000644000156700015670000001342206141407200020067 0ustar beebebeebeecho off break on REM ===================================================================== REM Test bibclean on IBM PC DOS. REM The funny backspace in echo commands is just to get a blank REM line, rather than the current echo status. REM [29-Apr-1996] REM ===================================================================== echo ================== begin BibTeX test 1 =================== echo bibclean -init bibclean.ini -err testbib1.err testbib1.org bibclean -init bibclean.ini -err testbib1.err testbib1.org >testbib1.bib echo  echo There should be no differences found: echo diff testbib1.bok testbib1.bib diff testbib1.bok testbib1.bib echo  echo There should be no differences found: echo diff testbib1.eok testbib1.err diff testbib1.eok testbib1.err echo =================== end BibTeX test 1 ==================== echo ================== begin BibTeX test 2 =================== echo bibclean -init bibclean.ini -no-check-values -err testbib2.err testbib2.org bibclean -init bibclean.ini -no-check-values -err testbib2.err testbib2.org >testbib2.bib echo  echo There should be no differences found: echo diff testbib2.bok testbib2.bib diff testbib2.bok testbib2.bib echo  echo There should be no differences found: echo diff testbib2.eok testbib2.err diff testbib2.eok testbib2.err echo =================== end BibTeX test 2 ==================== echo ================== begin BibTeX test 3 =================== echo bibclean -init bibclean.ini -fix-font-change -err testbib3.err testbib3.org bibclean -init bibclean.ini -fix-font-change -err testbib3.err testbib3.org >testbib3.bib echo  echo There should be no differences found: echo diff testbib3.bok testbib3.bib diff testbib3.bok testbib3.bib echo  echo There should be no differences found: echo diff testbib3.eok testbib3.err diff testbib3.eok testbib3.err echo =================== end BibTeX test 3 ==================== echo ================== begin BibTeX test 4 =================== echo bibclean -init bibclean.ini -fix-font-change -err testbib4.err testbib4.org bibclean -init bibclean.ini -fix-font-change -err testbib4.err testbib4.org >testbib4.bib echo  echo There should be no differences found: echo diff testbib4.bok testbib4.bib diff testbib4.bok testbib4.bib echo  echo There should be no differences found: echo diff testbib4.eok testbib4.err diff testbib4.eok testbib4.err echo =================== end BibTeX test 4 ==================== echo ================== begin BibTeX test 5 =================== echo bibclean -init bibclean.ini -German-style -err testbib5.err testbib5.org bibclean -init bibclean.ini -German-style -err testbib5.err testbib5.org >testbib5.bib echo  echo There should be no differences found: echo diff testbib5.bok testbib5.bib diff testbib5.bok testbib5.bib echo  echo There should be no differences found: echo diff testbib5.eok testbib5.err diff testbib5.eok testbib5.err echo =================== end BibTeX test 5 ==================== echo ================== begin BibTeX test 6 =================== echo bibclean -init bibclean.ini -err testisxn.err testisxn.org bibclean -init bibclean.ini -err testisxn.err testisxn.org >testisxn.bib echo  echo There should be no differences found: echo diff testisxn.bok testisxn.bib diff testisxn.bok testisxn.bib echo  echo There should be no differences found: echo diff testisxn.eok testisxn.err diff testisxn.eok testisxn.err echo =================== end BibTeX test 6 =================== echo ================== begin BibTeX test 7 =================== echo bibclean -init bibclean.ini -err testcodn.err testcodn.org bibclean -init bibclean.ini -err testcodn.err testcodn.org >testcodn.bib echo  echo There should be no differences found: echo diff testcodn.bok testcodn.bib diff testcodn.bok testcodn.bib echo  echo There should be no differences found: echo diff testcodn.eok testcodn.err diff testcodn.eok testcodn.err echo =================== end BibTeX test 7 =================== echo ================== begin Scribe test 1 =================== echo bibclean -init bibclean.ini -err testscr1.err -scribe -no-check testscr1.org bibclean -init bibclean.ini -err testscr1.err -scribe -no-check testscr1.org >testscr1.bib echo  echo There should be no differences found: echo diff testscr1.bok testscr1.bib diff testscr1.bok testscr1.bib echo  echo There should be no differences found: echo diff testscr1.eok testscr1.err diff testscr1.eok testscr1.err echo =================== end Scribe test 1 ==================== echo ==================== begin Scribe test 2 ===================== echo  bibclean -err testscr2.err -init-file bibclean.ini -scribe -file -no-check testscr2.org >testscr2.bib echo  echo There should be no differences found: echo diff testscr2.bok testscr2.bib echo  echo There should be no differences found: echo diff testscr2.eok testscr2.err echo  echo  bibclean -err testscr2.er2 -init-file bibclean.ini -scribe -file -no-check -no-par testscr2.org >testscr2.bi2 echo  echo There should be no differences found: echo diff testscr2.bo2 testscr2.bi2 echo  echo There should be no differences found: echo diff testscr2.eo2 testscr2.er2 echo  echo ===================== end Scribe test 2 ====================== echo ================== begin Scribe test 3 =================== echo bibclean -init bibclean.ini -err testscr3.err -scribe -no-check testscr3.org bibclean -init bibclean.ini -err testscr3.err -scribe -no-check testscr3.org >testscr3.bib echo  echo There should be no differences found: echo diff testscr3.bok testscr3.bib diff testscr3.bok testscr3.bib echo  echo There should be no differences found: echo diff testscr3.eok testscr3.err diff testscr3.eok testscr3.err echo =================== end Scribe test 3 ==================== bibclean-3.07/ibmpc/dos/wat10/wcc386/wat10bld.bat0000644000156700015670000000100206142135427020037 0ustar beebebeebe:# Compile bibclean with the Watcom C/C++ 10.0 compiler :# [02-May-1996] wcc386 -I. -zq bibclean.c wcc386 -I. -zq chek.c wcc386 -I. -zq do.c wcc386 -I. -zq fix.c wcc386 -I. -zq fndfil.c wcc386 -I. -zq isbn.c wcc386 -I. -zq keybrd.c wcc386 -I. -zq match.c wcc386 -I. -zq -DHOST="plot79.math.utah.edu" -DUSER="beebe" option.c wcc386 -I. -zq romtol.c wcc386 -I. -zq strist.c wcc386 -I. -zq wildargv.c wcl386 -k131072 bibclean.obj c*.obj d*.obj f*.obj i*.obj k*.obj m*.obj o*.obj r*.obj s*.obj w*.obj bibclean-3.07/ibmpc/dos/wat10/wcc386/config.h0000644000156700015670000001173506141132037017356 0ustar beebebeebe/* config.h. Generated automatically by configure. */ /* WARNING: Do NOT edit the config.h file; instead, put any needed changes in custom.h, so that they can override assumptions made in the automatically-generated config.h file */ #define STDC_HEADERS 1 /* #undef _ALL_SOURCE */ /* #undef _POSIX_SOURCE */ #define HAVE_STDC 1 /* Define if you want old pattern-less string matching in .ini files */ /* #undef HAVE_OLDCODE */ /* Define if you want standard bibclean-specific pattern in .ini files */ #define HAVE_PATTERNS 1 /* Define if you want regular-expression patterns in .ini files using re_comp() */ /* #undef HAVE_RECOMP */ /* #undef HAVE_REGEXP */ #if !(defined(__cplusplus) || defined(c_plusplus)) /* Define to empty if the keyword does not work, but do nothing in */ /* C++ environment, because autoconf 2.4 gets the wrong answer from */ /* the AC_C_CONST test program under C++ compilation. */ /* #undef const */ #endif /* Define if your free() requires (char*) cast instead of (void*) */ /* #undef FREE_CAST_IS_CHAR_STAR */ /* Define if your compiler recognizes \a as an alert (ASCII BEL) character */ #define HAVE_ALERT_CHAR 1 /* Library functions that we need */ #define HAVE_GETCWD 1 #define HAVE_GETWD 1 #define HAVE_STRCSPN 1 /* #undef HAVE_STRDUP */ #define HAVE_STRSPN 1 #define HAVE_STRSTR 1 #define HAVE_STRTOD 1 #define HAVE_STRTOL 1 /* Header files that we might need */ #define HAVE_CONIO_H 1 #define HAVE_CTYPE_H 1 /* #undef HAVE_DESCRIP_H */ #define HAVE_ERRNO_H 1 #define HAVE_FCNTL_H 1 /* #undef HAVE_IODEF_H */ #define HAVE_IO_H 1 /* #undef HAVE_JPIDEF_H */ #define HAVE_LIMITS_H 1 /* #undef HAVE_OSFCN_H */ /* #undef HAVE_PWD_H */ #define HAVE_REGEXP_H 1 /* #undef HAVE_REGEX_H */ /* #undef HAVE_RMS_H */ #define HAVE_SGTTY_H 1 /* #undef HAVE_SSDEF_H */ /* #undef HAVE_STAT_H */ /* #undef HAVE_STDDEF_H */ #define HAVE_STDIO_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 /* #undef HAVE_SYS_IOCTL_H */ /* #undef HAVE_SYS_PARAM_H */ #define HAVE_SYS_STAT_H 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_TERMIOS_H 1 #define HAVE_TERMIO_H 1 #define HAVE_TIME_H 1 /* #undef HAVE_TT2DEF_H */ /* #undef HAVE_TTDEF_H */ /* #undef HAVE_TYPES_H */ #define HAVE_UNISTD_H 1 /* #undef HAVE_UNIXIO_H */ #define RCSID(s) static char rcsid[] = s; #define OS_PCDOS 1 /* NB: some systems have Standard C header files, but compilers that do not accept function prototypes (e.g. HP HP-UX 9.0.3 /bin/cc) */ #if defined(STDC_HEADERS) && (defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)) #define ARGS(plist) plist #define VOID void #else #define ARGS(plist) () #define VOID #endif #define SCREEN_LINES 24 /*********************************************************************** The limit on file name lengths is non-standard: -------- ------------- ------------------------------------------ Name Definition System -------- ------------- ------------------------------------------ FNMAX PCC-20 MAXPATH Turbo C 2.0, C and C++ 3.0, and TopSpeed C _MAX_PATH Microsoft C 5.0, 6.0, 7.0 and TopSpeed C MAXPATHLEN Sun OS (4.2BSD), 4.3BSD, Gould UTX/32, HPUX, KCC-20, AIX (RT, RS, PS/2, 370), HP/Apollo DomainOS, DEC Alpha (OSF/1) PATH_MAX SYS V (Silicon Graphics) PATH_MAX POSIX, DEC Alpha (OSF/1) FILENAME_MAX Intel RMX, NeXT Mach, Turbo C/C++ 3.0 -------- ------------- ------------------------------------------ ***********************************************************************/ #if defined(HAVE_SYS_PARAM_H) #include #endif #if defined(HAVE_LIMITS_H) #include #endif #if defined(HAVE_STDLIB_H) #include #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN FNMAX #endif #if !defined(MAXPATHLEN) && defined(MAXPATH) #define MAXPATHLEN MAXPATH #endif #if !defined(MAXPATHLEN) && defined(_MAX_PATH) #define MAXPATHLEN _MAX_PATH #endif #if !defined(MAXPATHLEN) && defined(PATH_MAX) #define MAXPATHLEN PATH_MAX #endif #if !defined(MAXPATHLEN) && defined(FILENAME_MAX) #define MAXPATHLEN FILENAME_MAX #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN 1024 #endif #if defined(OS_PCDOS) #define SEP_COMP " ;,|" /* separators between filename components */ #define SEP_PATH "\\" /* separators between directory path and filename */ #endif #if defined(OS_UNIX) #define SEP_COMP " ;:,|" /* separators between filename components */ #define SEP_PATH "/" /* separators between directory path and filename */ #endif #include #include #if !defined(HAVE_IOCTL_PROTOTYPE) #if defined(__cplusplus) || defined(c_plusplus) /* system files should have: extern "C" {int ioctl ARGS((int, int, ...));} */ #else extern int ioctl ARGS((int, int, ...)); #endif #endif #if defined(FREE_CAST_IS_CHAR_STAR) #define FREE(p) free((char*)(p)) #else #define FREE(p) free((void*)(p)) #endif bibclean-3.07/ibmpc/dos/wat10/wcc386/dos4gw.exe0000755000156700015670000076113405572657400017677 0ustar beebebeebeMZzN !@r# ( HeLjr; M    : a     o   <{ $ SX K E 8 aeY s#|###(,,:L89.D)K>]W_NH @&     d|   p@DOS/4G Copyright (C) Rational Systems, Inc. 1987 - 1993g8/ &( " >pp PDOS16M.386P ; ; 0123456789ABCDEF$ error: ''= 4.43^>p U ju?^ + +w1Ћ A+ F+J !s]ˉZ QY FŽVWNNVF&( > u+  &9 u& 3ێÿ('9u9u&9W"u&G"4.v2&9Wu&GP&_^Px (08@HP`pxError [35]: General Protection FaultInvalid OpcodePage FaultUnexpected Interrupt in at : mapcodessdsesaxbxcxdxspbpsidi   8 N T hX* h  hhpages allocpages freeDOS/16MDOS/16M Protected Mode Run-Time Version RUN.COMLOADER3.EXE.EXPC\VM.EXP\VMD.EXPDOS16M=SWMODE=INBOARDFASTVCPIDPMIPS2PS/2NOVMA20TSTKDOS16M=<@0X\VM.\VMD.QEXTXXX0VDISKMICROSOFT EMM CTRLZCOMPAQERR16M=.ETXRMSGESSAGEONTINUENDMSG### WICBoPWX_involuntary switch to real modenot enough extended memorynot a DOS/16M executableno DOS memory for transparent segmentcannot make transparent segmenttoo many transparent segmentsnot enough memory to load programno relocation segmentcannot open file cannot allocate tstack cannot allocate memory for GDT no passup stack selectors -- GDT too small no control program selectors -- GDT too small cannot allocate transfer bufferpremature EOFprotected mode available only with 386 or 486cannot run under OS/2system software does not follow VCPI or DPMI specificationsyou must specify an extended memory range (SET DOS16M= )computer must be AT- or PS/2- compatibleunsupported DOS16M switchmode choicerequires DOS 3.0 or latercannot free memoryno memory for VCPI page tableVCPI page table address incorrectcannot initialize VCPI8042 timeoutextended memory is configured but it cannot be allocatedmemory error, avail loopmemory error, out of rangeprogram must be built -AUTO for DPMIprotected mode already in use in this DPMI virtual machine DPMI host error (possibly insufficient memory)!DPMI host error (need 64K XMS)"DPMI host error (cannot lock stack)$The DOS16M.386 virtual device driver was never loaded%Unable to reserve selectors for DOS16M.386 Windows driver&Cannot use extended memory: HIMEM.SYS not version 2'An obsolete version of DOS16M.386 was loaded(not enough available extended memory (XMIN)Ffы.6&PQRDYRPY>.t$)>t3*7>.t r #]  uah!Y3ȋVX$u u&}t&}t&]&U> u > t0>. u+4Gt޿  | >.~Gt p2q &,6 Y3ێGt ޿&> u&9 u& & >/rf3ۺ3LJLJpA3ۉ(  HD>. u o,Gt(p| Q t2LJV>>t( t7., .1 . t< t z & ~.> F.$v.> fff DDa..& fϺ ` Һ ڎ¸h @& a` ؎ @6R86TR؉|T2tָhaÐ.XP54  >t 41&.&WVg3ێۻåDL_3ێû۾Vg8 = 73&& 7 3& & t' @ 3&` &b @$>/rR@ZPS>/r$`|&z8&`C &b  ێ|&za[XÑ3& & @R$ ZPS>/r#`|&z8& &%$ ێ|&za[XïR3ɺhj$hj$hŲj$hŲj$hj$hj$hŲj$hj$hj @ZÔ PS`R|&z PeP˺hj$hj$hŲj$hŲj$̲hj$hj$hŲj$hj$hj_栻ێZa[X×R}Z3&g &i& PS`|&z8 &i&g& 83.ێ|&z3&i i a[Xú$? ಇIJ^ c R ?Z3& &"#"#otE$?3&g &iPSf`u f|&zj8&g &iDDE ؎|&zaufE_$?>5u @X[XPS!`3C 3ɰ j8@*@ t 6"6 !C" R@i&gj 4C3@)  @3؏ " <t$ t39 }5uV[X >5u - rpqÛ >/rf d ` b $ >5u  p qj & PS& PS>/r7PP`6 h{ 78؉&x .n7R>5ta[XPS`|&z8 &i&gn  t dePS>/sS t7[`PP8&5 &1`$`|&z ێ|&za`21a[XPS`8& &|&z?؎|&z ?a[XPS!`6 h? +& !8&i&&g>udPS!`|&z8 &i&g >uȰd؎|&z< pa!>5t[Xa!>5u >?t[XQ~Y؎|&z paq>5u$$[Xø؎Ћ& *3& F&Pj䒀$ TdM`Fðd?ttôtu3V IW0_^Q3duYtja\XTPLHD@@8 8 4 0 , (  X` 6 FQjjP ،|&z9|tώЋ& `6|6 6zF~fvfff ؉. &P53^ u^.FEh&Yh&dYhuYUVWv ƌڌ;u"++~+~)vÎӋ_^]33wW_ tUٸ؋^uSu Fj ]3UV3uFF^ F ]ːX[SPUVWv  F Pj  H..  WNO$PFVAFF.r. vka.6 .6 .6 . .& . .& . . . . `. .r윃"vvj j6 6F PvvTX~ _^]. ÐO슇3ɍWw tj&O &NFaRfSUڋ. HZ|p URVvW&> &U.&UQYf ~.=W.>ҁu;HZ$t(#t&_^ZŎ] !jppph%[V7.6w.<$w vFu>t6F vFN^P.XG_[].6dgF&G Ѝg !G.dG.!.&wOWo w G_[!.f..&d`..f pffjh p![!YY-PY pOK G C ? ; 73/+'#  !"#$%&'()*+,-.à . t> uR -Z<t'. u> uپ[S; u<tSP; t&PPRZXZ<t2R!&wހ>ZtC9tIC!۸[uu3ێÊ4&;Wu%>4.t6&&_Ñ;Gu;;_u6G;t_.G.G u t -@9t6 Kۣá ËrK=rC:3ˀu03Ȁu#&PЋ&j 6 &j j &PË܋GPPoXZ@!Ë6  6w Y D16/=t=t=t.."uP.XPRVW.<tW<t&> t  _^ZXu>TV t &EP&E PX^ZXuDžuÉ*    > u!%&  &PP& * *, C!rt t$ƌ ,   * S x&>>t`b&dfh&j = I  `.r/5!../%!a`.. t6j&+ru &&t \3..at  \u0$> u &PPL!'u& >mr[8.8,-\ f&|u& u & PSQ & f&| fr& Y[XË f&|frЋeЃhЏ  f 3p?k ..`+ P[U+Pv[[]UP[ P[v[~t P}[vv[ Pn[>u6 []UV~tv=[ P5[L^ ^+ވNyFFP[~t P[^]UvP* [[]U츐PL [;uv[]UF-a=wF- ]ËF]U P[^F^F u^]UvP[[P [F^\t.uNy]U^F^F8t+ ^?u]j j j jV +ұ ڣЋVvv 6x VvF` -+F֋ȋڣ Ћ + ` -+ЃvF +ұm ڣ  t +FVȋڣ    ; V2 F4 p >/|^~uËFFFFIFPFPPe F%^&GtB&G*F&Gu t.&7[jP^&G&W$*n*+ѱ RPeWV+` b  u 8 V^>u4jP[V~^P> u Vv^xFFP8 $Fv j[^~&t vv[[n~sFPvv[[Fvv[[Fp> uGu vv[[K>u-  t$> }   Pb[ ujz[~ | ^_U| 9Fv*+jhF$+  RPU| 9Fv+jhF$+  RPF FF FFFFV FF*FjFPF+  RP4UhvjvvVV~u+^j0jFPE FFV+ұ^ FFVډF^FFFLjFFFF‰FFFVFЉFFFPNQQjFV‹؋N&)O&wv&)OFFFFPFPPj\F^&+GF)  ^KKx tS   [LJ 3p"$! n?/?y9[. CC hJ>. WV6> u\s葃 ++ 3؎SPY̋ +؉ZJ!^_X\]Ë I&A++뾸 - hHP0   RP2 4 jS }yuqmiea ] Y U Q MI.NXfa.h6& f`F8..]Lp...&h6& f`.6.S&.7uNp.>.6DDfa..&˜.h6& `9a؎ҋ.6VW+Tp X[YPjQS6: hTWV  u !u GP[ }L P[  uY u r P&u62 PJ[[60 +w P6[[ P}[6Ɛ <:t <\tNsDPZ[ PR[ w"+P[[ P;[ w+P[[ w"[ t W P[[N w P[[ w P[[ w P[[ w P[[  w Pl[[ w P\[[ w PL[[ w P<[[ w P,[[ w P[[ w P [[ w P[[t#P[^_UWV>t'&wN|F&9uƱ&+^_]UWVF~}F^Ffh>!tRƆh[iF ff uFfڊ Off uFD]FD FD 9>"v!;Fu WV[[G}uGGf }ك~tPhPl[[+PhPl[[^_]ÿׁ+ƱH6 6& F6+۴J!6 +30! D!r €t @Kyw36 6 6 UFLFFFPP[[]Uv[]Uv[]UviA[F@tF+]+Ï 0! <t) &, 33uGG> ыѿ < t< t< to tkGN< t< t< t\ tX<"t$<\tB3A<\t<"tӋѨuN< t+ t'<"t<\tB3A<\t<"tۋѨu> GB+ģ 6?CC6 u6 3< t< t< t| tx6?CCN< t< t< tb t^<"t'<\t3A<\t<"t\Ѱ\s"N< t. t*<"t<\t3A<\t<"t\ٰ\s"3& U׋ދv؎3ы~ǨtI]U׌؎~3I]UVW F͋FF<%t <&tF FFDFDVFF~]MUuu ~ ]_U^]W~ E~]MUuE r3 u _^]UVW~]MUu} !W~]MUuE r3u _^]UVW~]MUuu ~]_!W׎ߋ~E~]MUuE r3wu _^]U׌؎~ߋNFtI]22r3]sPX2]s]2â u"> r <"s < r<v ט ÊT(<(.f &d &` .b 385u>u SӀj&&[PS >u p2q؎.b &` fPQ  f   @#Y"(..f &d  fX>5u%>u(3V&gX&iÀ>.t [X2>.t>.t>.t->.t3[XÎð ϰR@ZQYR$Z맰fP "fX[XÎ&` .b Mـ> 4fP f " S Gû [fXF*L*X.f &d fl f6h ffN R V X  &x & f64 p ^ 3 g G ufl f6h &` .b f6 8f> fgfdgfdfPS fPfRfQfV@#p ^ f fԌ.b &` f3PPfQfQPSfRfPP6 Ph* 8ظ ff&Z &.f &&d f^fYfZfX[X.* tEg]j8f6f> tf?3ɎQ Iu%fZ F&g! f. fIyYøUf`6 uGtf ff>ffVf;wfff#ff#N ffffN ff;s&gfu# ; uEGt[ +ÉFt "fa]f`3ɆIGt&fGf޿ }(hf6fffPe fa33u+>. u$fZ fif+ff ffPffjh~,Wp`F,@<w y3j u'ы܁. & QSx? [aDDffP j f0 fX3߿.>hf`.u!> sŎ3gfa+Pa[øP8[>&t P@[ P8[u60-[j 7P8[ø+U 08/P P,P6 9^7k[NPPr3[[ uVPPa3[[ u~^w3[bP[ FV‹&*N@FVNxF^&*PB[ uNxF^&*P'[ tF^&^F&F^&Ny% +gP^71[[ u*>/}P[%>/|P^7a;[[3]UFF FFPFPP2>juT> t > t)F,->. t GuF)tF_b>nt F9nvFnPvb[[]Uz ~ ' PP[]U~ t~ t ~ t~ u]+]U| 9FsvjjvFPV@thV[[ t %=$PV[[^^G+ұ FVF^t?MuFG+FFVFVF66a/[[vvn/[[;FuM^?MuFuGW)?Mu ZuSi[?Bu Wuô !N~}~tj[+ȼrr t>p}h.[>p}h+FFHJhPNP0 uNBuOWtz~ J9XvXJH9ZvZHF9vvvFF9tvtFl jt"lj(.[[hNP3.[[=uvJt J9vFL t F9s>.uHLF9sLtLtu L t%>.tuu +>@w>@v @@RPB-[[j@FPO-[[hsFP.[[ uh{FP.[[ t+JWVFFjjFPnjh,[[066,[[jFP,[[>tR u~t > uFFF;| v| | 9Fv| F=s~uFܣ| F #~} F&Ft F~tA؉FFt$F@fP[^G u8FFFFڋF RP+[[F-P6jhFFFFPF.^&tFFF$FVVWڥ_^6*F uF+ tVQ[ t+9~v~+ uuF9Ft F$<uF FN`܋FljF=sFvL[F uj[FN#+N;| rjo[vvZ*[[d;j*[=^^F&t^ă~t'F9FuFFҋF9FuFFvv[[FWK[ u j[  tH^^F&@t^^F&F$FVVW¥_^ ttFVjv/~t~+t jWVvF^^F&GF9Ft$FVVW¥_^F9Fw~ ^&GF- $^GF҉GFډG"F؉GG F-Gvv[[~| (+n~tQljC[~t%vvFFv)vv[[J(Nyv![F-^GWE~t vv[[~~.v[$<tj[>t v['Ny~|Ft ~uv~[(^GGG&~ ~ ,ЉNV&0^_Ã>p}h'[>p}j[6 j[[ *F>Nu!P [v[N uj ;[vj6NFNL-* ؋LG > uv[FV tFVÀ> }jv[[FV؋F Fuv^[> t#> }jv][[FV tFVv$[FVcF Fujv&[[FVFHFFFPPi[[Ft+ËF+WV+9 uz69t6 us H+ێ&?Mu &9Gu& ;vvV [ uj [VM[$ t$^_jb[FBpF+FFFPP[[&%N+FF? FFPPw[[FtFF'j[FWVF%F>+>ul>+>u"~tjvvvSj[v;w uVvv6j & v6)vu tF+F ^_WV{ދF+ҋȋډVF-VFN^Ë&7Fk^F&?rX~^&?+҉NNV‹&ON&G^FF&&?rV&F^&GNy^_WVFFF~~T&7NNFF 9v|N^F&u~OOyvjN^F&t^&GFHHF8^&u!~N^F&uO F9v~tFՋF^_WV܋F+ҋȋډVF-VFË&7Fs^F&?r`9~u F^&F^F&ώ^F&9u/$ع&GF&GFˌ^&F‹&GNyF$ع&GF&G~^_ FF tR *FFPQ[[ uPP[[ uW[PWy[[~PW[[ t FPW[[ tFPW[[ t FPW[[ t01P603![[FP4[F ^^GNy^ PW][[ uPWO[[ tF/WF [FV t F~| tV-8FV,P~W [[ tEP[F | @@Pv [[ t;W[F t-PW` [[ tW[F t F:Pv7 [[ tW[F^Pv [[ tW[Pv% [[ tPv [[ t6+Pv[[ tGVPv[[ t}CtWN[F t4Pv[[ tEP*[F t V[ t!G' }F؋ t4$ tuz$>/|i ])$/+F tƢF u 4 ~++4F ~ ƢF  }Pt[V?[ u $ tpV,[ u $ t[~uU#&RP%[[ u"(&RP%[[ u dždž ut @ t Gt&HuHuHuHutHu(Hu[HueHuyHuYHuHuHuHuHuHuHu-uHuP- u-du-u- t|F~u ( uw FF@&t>s~u( uP[F;}-1Fw" ~t F( %F>/|6s>>ui^P [^P[QF F>t>/u1" t FI~ F mF)lFyeF =FFb>/}OF7~tPP[[PvPGP[>uƢƢ.v[>FuFB D &GFP&[ uGƢ. u6~u]^_]U~t~t ~t~u]+]U~0| ~9]+]UWVv+PDPj[V[[ uV[P[ t'FFFP P[[ t- F<uV[؀?Mut ^_]UVv < t< uF<u^]U V> u+b FF^&?tv^&8t^F&?tFF<uFvN~~^F&FD uF^]~t~uF>uQ>ZrF~|>~(r8~بu,62 )[6J )[6: )[Y  |*U츀F!sj"[WV+FF| hj8PTVhFP[[[ uhFPK[[ t뱁66[[pF~ut ~} F&lt FlujI[h rF uFlDBHFF-FP[F uj [jvjvՃv+vVF$FVRP;vj[n^^F&tFFFVVW~ڥ_^vF*F uF6+ tV[F t+96v6 FF9Nu u lu W[F uj$[F F9Fuv[F^&G  &F@t& t5tFDPN+QR24jD 24RP6t6+t jWVvbԃF9FuF> v'[FF9FwFF^F&G^&GP.[H- $^&GN^F&G^&G"L&G> &G F&GSv~| 8+( ^&G&G&G&JtJFvPvvvvvvvvvvhvc[^_FGF^>p}hc[>p}jU[$ Fvj^FB DUH^!#Vn6$ ![Fv (^F&G$<u&GFFPj ![[F9vw^WVFFn ^^F&GFF^F&^^F&w^F&?F^F&ΎƉ^F&F=r؀^F&G^^ ^&OyFtFFug^^F&w[^_ WVn^^F&GFF&GFF&7Ft^F&?ra߀^F&^F&?^F&׉FVNj&?r߀^F&G ߀ ^&NyvA[v:[>.t>tFP[ tm+ɉNF㋇ ^F&N F -^&+FH&G^F&G^F&N}^_ jFPj vhFP`[[ t6>@s@6>j0FPvvF> }+hFP[[ tFV$*D٣j FPhvJ~.u~$uv[+ jFPjjBÃhFP[[ tPjFPjj"ÃvX[FV9Vr'w9Fv 9Vwr9Fs FVjFPjjƒhFP/[[ t1jFPjj2ƒF+F+ұ;أ+V"> u> u > u(FRFPNQQl׃FƉFFF(Nt vRV[[ u^&&WFV@u^yhM[jFP|9jhvvƒjFPvv 9Fu 9Vu++>. u56[F;sFv[GuD6[6}[ uPa[FFPPjFm uƁ>r6[FV~tX  FV u,F5FPNQQՃjv[[ uhN[>u +á/;v6[6w[FV;sA6O[6@[FV9Vw?r9Fs8FV9Vw#r9Fs6[+ډGtxFF~Q|~sIvvo[[ t:FVRPX[[ t#h@jFVRP|FV멋F`^ tÀ&G+ WVFFFV } FF ^&9G u0&9W u*&9Gu!>>rFV+;r+z^&F&?t&G&9Gr&;Gs׉F^=rʋ^&Gȋ-RPM[[ t+vWV<[[ tvS[ t^&G^_(WV9sw9v>. uuFVRP[[ tWFVFV;w'r;sRP[[ t,FVFV-RP[[ u FV+FFFF>.uFPQ[FV uFP[FV t79w*r9w"FV裘F+FF桘9s w 9wFVFV >. u:RP@%[[ uj{[ t"-RP%[[jFP6RP迼+FVFVFVFVjNQFVRP耼F FtG+FFF+҉FVjFPFVRPDFVFVGtM F޿FF> u>. uFFPPj> FދVܣ¹ >. t9ѣ  ^_Z WV6[&O &w; |;sj([ʪ6| 4[FP*[FFFP> tA98[У    uj [ fFH F+ұ  ڣ  ŠĘ* | 8 (  : *  < , *> .  = 6| jjxw@Ph6 6 袺h6 jaŃh6 jRŃjh8  RPj8   v x | t vjjP׸FP[T uj [T  jhFTPăNy&T>/|1FPj[ tjhЋF PăNy& Gt9u 9u8>. u3j[F uj [jh@ Fp +  RP]^_> |+FFGt' F޿F+FFFPPj_ËF FuFʼnFiFjP0[[FV t"hjvPj`*Ń vjj`jjp cF FtFV  U p>!> }!2ӣp }PQ[[ t P[>p}dp džP[PP[[P[RP[[ƆPP[[MuFt pp>p},PQ[[PZ[PL[PP[[>p|?+PPC[[Mu''[ t!| ,p]V69DwPDP[[D ^@^U^G+ұ ̉FVF^t?MuFG+FFVFV]UVFv u:*u0@u&D= wո n-0F=D= vF^]U^F^Ȋ;t+ ^?u߸]UBWV@tA-<u- t- t =R$P[ t=;vtu`u+W;t?u2~G< GFP[[>p|{uqa ud }^_]UVF:F@tv-#u-t|-u-t,HHtL-uԸ)P[ tȀ~tFsFFF뱸0P[ t~uN F *FF28P[ tFF6"$ I~uNF;FuFW* -F;sP [ uFqF= u) }^]UFFFHFPPI[[~uF~uF9Fs+]UFIFFFPFPPTɋ]U&WV6MPDP[[ |VDFPP|[[F tBfF-FPN+QR;| DFt D P:[[F uZf|t D-FF)FF+ɉNFvPQ;F}F&FFNQQB[[FH&N+ۉ^ډN܀&FڋV  VŽ۹ ^D-NFNDFF^&O&^Ȏ&FNyFDhF ^F?u^^ރFF?uލFPLhQVv FVvU[vN[~t:v [ t&vP6 vvv F"@$ v[^_]YQQYXX܋W=! ãpË܋WOpB! Ë܋WOp?! ûp>!ËpOW_?! X[&PSPU׋ތ؎v~3+t]UWV~vߋN t2^_]okUVW F͋FF<%t <&tF FFDFDVFF~]MUu} U^]W~]MUuE r3ƾu _^]UVW^vF~ N _^]UW~3AيFO8t3_]UVW~3I:IN~3I+Vv%vuыߋNuGF3_^]US^WNʼnW[]US^WNʼnW[]2UWVv33۬< t< tP<-t<+u<9w,0rҋˋ؃X<-u؃^_]܋_ >/r.f>.u(.G .G Ë& &蟩57̀>.t#>. u >. ufҞ 2hׯY &&G&P>.t &&O|`ؾޭЭsCC9CCu9uVXaURWVXߋ~9Uu9u_Z@H@ p@q!c.=t.95uVJ.^>4u4Ê4&?66>+E+} t & &_4...33۱܊ tU36666&zPi&gped q66 Ud ؎аd襧6z+j? >5tU]UM!!P3ذpigd q6&z66 dd؎Ћ&zЊ!X桊Ȋ!;t.  hX>5uզ]Gt ô54!..>u533Ҹ.R t" ڹ TX u%4!á @$܋Or ; w øÜ3PXt$T[;uP[#t f 3fffZffffRfffZf3fs@t f%fø3!ʋ܊W@!ð2À>4u%r&Or~ u |&G&uqE蒠u ـ@2t3ÜXPX%0ËVWP6O66w6__^UWN<裛j^&G&b&G&d&G&gj`~3Nts_]ù[XP3q N?  Fsa}0 ƟUda y? `? K"ae7 z 猭 B J RUWgjp`b\g r <_ B cU O J l l@ ǖ \w / 4D>T /OS$ r ~~ Ն t 11  @ >@Vw%@܋W_VW,Ag;¬u;t332Ь_^V3@3h3ۭح^V U3ju~8Nu~F%?=?uAɑø> v"Ը8!"UVWVڃ3&6&6ê6iȫFЫ .&h^G‹OWҋgPQXXXZY..&h3ێۏn^  PP!X_^]Gu޿3u uG û ޿_ $c䒋؃3 VW3u@R4PY[:u+43t#ui ?_^U5vt, v, ߬t <\u| u]Ì p/-&ff fffËv^"]^fVUv^<t<t]^ P`j\. x%DD4DD8D %DD 3.> ffff t#D8D4L,D(1k+D6D*af~ ts..fRf.Fm.Jm!1fZ.~  t& ;t&Pev^"=^u%F ^\1r.~ & \@1s~..F"+Fv~u-vNَv^"~ ;v&V=t"+=)tAӊ=t = tA=uN^ 1r؋~ &1F~OOv&Ћafj&]Y3KC/ =&  Y[SRSI CLIENT 0.9hd`\X T P L H D@<VW/ u.6Dm.>fn.hn6B _^UfVfWfRf3f3f3ҋFnNVv~ ^1F^NVv~ fZf_f^]j 詴.f6mf3.f>mf3.fmf3ҿ 3. @H!r2 3H.Dm!sP*mr6 q60 ~ 6( 6 &,6* 6Ӌø 1&e 1ۋø 1&e 1m 11.m0mf>4m68m2m1sD:m>m6Bm!1fFmJm6@ $  & ,"Ds$ < DɺLm1ˀs j1qɳ1 s1q1`u#1.>+mu/1F 3AsD 31sv, 1rF 6 31rF < 1rӃF :    1H ᫒ 1یTȣc>T꾠\\<u S1ٻ1sÀtt#t$t/tt.v˺ !1rϺb1Vu12 ᫒[F 2  1F  3ɺ1@1 @H!/J  3P.f6m.f>m.fm }U TUj ]܋G2 & <sP öS![X ;: u 1" 1Ë  +فÎ ZJ`QQPPj!Ë6_1VW3ًʸ1_^~.~ ؎Ћ&PW.o.q1fRf3ҾL1Ã.v1; u VX1uJ 3UfZXL!=t=ܿt...j-T&P辺h o蝱$H >B u33J u54!Sr%! s/UH蟺F~FF"F&^Ѝe.Pێj 蛯訠YXL!UVfWf3.~ &>H &.H 2W3vV^3.~ F, -=&w؀tjڎڥX23۸1r#.~ 6H ~ D$D"D FFH Yf_^]fVfWf3f3s0 *t1r nꪒf_f^fgf&gV؎f2g..~ 0 tfWf^jUf_fgffF*F.fFf^fNfVfvf~fUfnfUfnfFfFf^fNfVfvf~Xf %A F fXЎ؋.~ &0 sf3sgfe2fϸ/tS<uO sJC/. ut,}.G+.Wèt,.G+.WjVWVu6;Xu+wLgD_^VWg5!;Xti&> MMu`&>XXuW&> EuO&> XuG&>0u?Gu3u,g t#Cg u.*P襳3YH_^tO u g u׈PQ. p> r   G$  & .v33ҸtZ tWڿf<6 v6u6> u1 ffff+;uGuO Ӄr .v u09rv0/s> t  6R ؀PP 4Y=uj#Y j 3Y3> t uػ4 6 < > @ B t   Ď3@ g tʱj蛩fZ s> > t@@㣬> u=@r@Gt蘕#2IIƎށf3f8 f  < #=_^ffffŎ&f޿ t!6&fE.fyf޿ .yfɌffffffQfWnj8f_f[Up tf;rt f&gPX .ytUWV1.fyyf6j8fff.fygf "gffgfgf0gfgfV "f@Igf +f3gf f?fvf6VpP6X@^_.y]33ҴBz  nfR66YZ tBRQYX;u7;u3>  00$+É RmZf f f tf.f{> uVWŎf3_^.f{f>f fffH%  ;s&gf>fff>.y&fE.fy>tg S ffÀ>t_.> t AGtp σ> tVWff fff+fڀfP fPjR6 Sjjjf  t=f?f| хj8f_f  &gf;uffE_^< 33     } y!u"q#m$i%e&a'](Y)U*Q+M,I-E.A/=0915213-4)5%6!789:; < =>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_}`yaubqcmdieefag]hYiUjQkMlImEnAo=p9q5r1s-t)u%v!wxyz{ | }~}yuqmiea]YUQMIEA=951-)%!  }yuqmiea]YUQMIEA=951-)%! S ہ.  ԉw։WމOGYXOOЉG܌GGҌWo^fg*fGfG"fG&O&2 O.O_κ ҋG4, ^fPfSf^ffsf^*gfCfFgfF"gCF(gC fX;Vu;Z;Vu/gSgCgfCgCZgS6 VfgcZ]f[f33tKtFtu-Pj8lj u :uXfXffjhAt j P XfϜj UՃ t.RS GtNS_ > t U"EM&Ë> UE-J3_^Z] `֋ҋVW#j ;tY;uXa̸L!`F@PRP t6L6t- tN2v4FF6WN8a_^Z] $`FPv*v(a.T&&Դ?W xWWN  gg  8 1 g b    &d? @W  2f{ Y  DOS16PKGint21_call_16int21_creg_16int31_call_16int31_creg_16cp_entrybdos_4B_flgmakexecableGppUpFpcpPpqppppp pZ U`^&&O&W&w& &_S^&_&[ffjPS^ &&O&W&w& & &G X&G^&&Xa]ffjO.T>.u1U`^&&O&W&w& &_S^&_&[ffj;v.T>.u1ffj;ˀN&3>8~w.0 f&F;<v Vâܹ2UYY4v,Y tv,FP,;vuF+vuىvvvv -YYċ^ t G"F_&^v3FPvh-F tf&Yv3FPv-YYy<wá%t؋F |Apg& &P>.t5*g jw QS WgFw tYRwwQh 6$ hGˋ WgF~&}tÌ^FFFF  FAU-YY^Nv"~FV SQuIƴI( ؎ËFv N~0 >~N6v FË^tq2 Ҙ&Nt\"" &>.t .|D.Gt>P$3**2y,Q^Xr#rً3r!krXX2 ^&U0PfWf3}:r XP P6;Ef_X]sjvv/VÌNNN F  F á@ FaÀ&G߿ FFFF G 3P@[ۋpDGtNVOWVNOtøe'"$.T& 6w 6w6w6wЃː    : J a - N X  x UFF]À vu*ǀ3 `ӎ.T& &> uWQ&6R ډ  W"o&Āhw2ģ~ .jtЎ~wG&F&F&tfR  DDafC L!`GPPj!"  N& G&a>C uÀ>.t`h G&W"g0 &d؎aËF&G&*n!saF~6  J"rv> ^ zGFsiGjV~ GF;vOFGQ:GG&u66 W_stQYY+t;tF+‰FvsGhVv> ;vOFGQ^V^stQكYGYG&u +t;tF+‰FrI> v^<$Ws> ^v 2AAQVW.^_Y~ tu, &l*À~uuO&@G&@utG tFcS߸[>.t&E&M&msu  á Ë~GË~GS2^VG=s*t$6 ujl, &&w[ËNfRfPfV;$ t5;: t/ffr$" ǎDW誸U+ǫꪋ«ZfXfZ>B wms BAr[SVN2^ t>.tf=v$j&GtptjD@u&GG=sQtKQ u, &&OY6 pt;@ u ƅjl, &&w[N:r%8wrJ*r*Ȁs F@m;@ tpu3>u06 jH`bS^28>.t tfRZRfZNV[j&O&S* 1r ;s؎( &,[À>.tA  tjRP-RP1XZ nfaFPP6$ hqS #;$ u`uufY T Z[GG1r G rG&t%F~ 6 @ F F rGE F F >t6 ++>t > >t>,tٱ%uRr> v^ Gr~6 FGFá GG> ^v & v ^F+@t;wVF~6  +w )v u9>4u2>t.Oj@&l2ĨuFFFGGGluր>4uj@&n&l &l+ T ^vͬ VGFN&jUYYYUn GH*3ҋGFGFG&t3]ÀN&U$Un GIG&%]ÀN&UUn W__s̀~t FN&Z> W3_ǀv^& &ŷA&ŷAW&ŷ+;r_ǀ3&=0v,3&0;r& & «««>.uYP H!s i 3h6$ hlu˿h6$ hu0 fFmJm!1X G!6PĴ5nX&56>.u'Sh(6$ hv3h66$ hu˴I![ ( * &,( F>< :ᒑ߸øDȇDÃ~tG> W^v GF^~GFAF< tM< tI,<r rN;w&> v^aNF~6 FN&F u5v> ^ GGFF~6 <u>  v ^N<uh6 w GON~FlN snt=/y3 G GON~F6 v< &D%6 w GhOr u~F tu/Nv>  G^&N6 ~FuIF,<wu3QjjCjC>  ^v YQ&^vZYQR GG6 F~ YQF~ZYGFGF@`.T6, &P&PUUj " &&aP;vX> `a`;vȋ6 a` PPPPj"aÀtt/tJ<s`.T<rFaf<t`.Tjaf<t`3RR.T2F<t$vv4FN UFafQN =YPvvXÀ>4u ;t À>4u3ãVW`j3&G&G&Gù&_u;|+|_^Ëܸ&6+G6W}qeYMA5)ui]QE9-! Uvn f` ًЎd]2.<u%dfU4f&|frhӌӋf&  J:r:v:r^:wXL#Ȱ r*.fGdfE(dE,dM.dEBdE0fa˃f;Luufaufό; u f& ;& s Ћ& f6 6 6 & .2dfU4f& faf`>/r0O3!&fff ‹ØffaÊko{ ,"C""!!*!2!@!M!S!^!^!{!QQQa$`&9uaj&> j.aUj > jvt|^&&&&]ˬFP<3j >tCj>btCC.j ~r 83F%uF$_v^<t<t=^u}` ؋>Puu J u~rF+FvB~u-v7PeF똋D!eF>ejFƿ!t!F FEF]>!jvDU졘9Vrw9Fr9Vw r9Fw+ V+FF++FV;wkr;scF Ft[jvvFVFV;rw;vNt vvV uj![jvvFVFV^>t,FF`hjj6j`FV^&G &W+FFV;wr;s~ |~u+jvv FVF FuhjvvFV;V};Fs>. u33 u,FVFVRPvv2F ~N }FV9Fu9Vt4+FVRPjFVFVRPjvvy FVRPk jvvGRPjvvM FV tvP uj[FV؃RP{[[FVá9Vrw9Fv FVjFVFVRPFV uFV9Vrw9Frvv> tj[>uiFF t\С ڙ ӉFVvv[[;V| ;FvFVj  FVRPM tUF WVFV9vsr9w FV ;v\r;wF FuIGthjFVRPFVFV9Vwr9FsF FtFVFVjȋFV9Fu9VuF FtFV FV;Vr v;Fvjvv;FV;Vr w;Fvvvjvv( vvjvv FV FVjvvFV;FuQ;VuLjvvFVFVRPjvv vvjvv FVFVv vjvv jvvfFV;FuY;VuTjRPLjvv:v~WVjvv6 jvvRPjvv v vj[[>. uT&%@=@GကA3t6> PFVFV-RPFVRP/ Gthl^_FV FVFVFV )F VFVjRPPFV uFV9Ft9VtjvvFV;Vw r;F s>. u)FVF VRPvv.F |w ~rjvvRPjvv FV؃RP[[FV9F u9Vt+F VRPF VFVRPiËFV +FVvv[[FV u+ËV*FV+FVRPvvFF*jPFV*N^RPFVjj[[FV u+dv vjvv vvj vv hhjvv 6 6 jvv FV   +FF9F|[9FtTFVRP[[*FVRP[[FV t(vPvv, uvvvv+FFFV j6 o[[ FV%Fvv6[[FVvvvFVRPI tjvv=u;t+cFV9Fu9VtFVFVFhкhкjRPo jvvKRPvvvP jjvvvv u+jvvFVj vvFVvv tvvvv WVvvU t%jvv=u;u~ |~u+cj vv{FVjvvgFVFVN^ SQ[[FV ;Fu;Vu FV9V|89Fv1N^+SQFVRPv vj vv RPvvvvR tv vj vv v vP[[FV uhjvv6  hjvvj` VWj` N33_^vvjvvh v vj vvT vvvvFV^_U>.tF9| v$ع&t+ËFWV8^&G&O&& uG Ft@FF HtNHt]Ht9HuHtZjWJ[[FV tF Ft^&G&Gv[FVS[FV FujW[܃~u6E^&G Gvx[D$+҉FVVP [[낃~tCs&G Gv=[FVN`Rv uP> |vve[ u4FtVWvvF Gv[^&Gv^&w&g&r+NvFFFFFFFN FFPv[[ uh[%`F t% =PDPjvFV^  &FV[+t]^  &g^_WV8F^&G&w% t!&GF;| sNQP[[ tFuv[vv[[FVFV t^  &u^&G&GF Fu> | ~s;u> |vQ[FV Fuy;s+++RPNjFVRP;wjWjVvv8 tjW\[[FV u%> t v[FV Fu  thj[Fvvv ~rjVvv=9 GIFGv[!v[FV Fu > |]HFFVFVFFFN FFPv[[^  &vvHPvvvN ;v*%`F t% =P+Pvv ^&g&&~tj[^_VF^&G&G8FFPvp[[FtF^&9Gt6 &u~wrav [jPvv][[RP^6 &Fv[Ftuvvvv|FtUFgvv[[ GF 9Gtv[ t G^&G^v [ GFn^&g&&G&G&G8&9Gu&Gj[^WVF^&FP&wI[[F*F  &Fu $ ^&9G"uF%=t&=u> |~t^&G&O&^&g&~r$ FU=wP.e34S34333 F1u+vv [[;uY=w.3w34343|3v [^&G GH^&G Gjvv^&G&t7&wFtvVg[[ u^&wS[[jn[FPV [[> uN`W`[^&GF  &Wvv [[RP > |F$  &W [V [FFFPW' [[ uh [^&_  &vv[[vvvvvWC j[^&^_ V^&wV[ t>^&GHFF FFFFFPV [[^&g&&w^ WV+FPv [[ t0Ft*j [ tFFFPVD [[^> & ^_Uhv[[Uhv[[WV~rFPv] [[ tFuF8> &t^>.tWFVFVFF| F.F^F&9Gu&G*;Fu&8gt &F9vwvH [j/[+^_ FPv [[F$<uF9Frhv[[F u+ÍFPv [[NFN)N9FvF+FVFPv [[F Vj [ t*FHFFVFVFFFFPV [[^4V~t$FPvvvZ FҋFHPQ[FFFҋFFF~tFҀ> }~tv [F u+^FFFFF+F=u~t FHP[FF GFFPFP/Ft8FFԉF܃~t FP[[F9FsFΉFFFP FF9FuF^Ëv΋^  Gˋ& &@I"WVFF&FމF v&$utvF&D&T*RP[[FVt&4[jPvv'FIFFPPj!" ^^F&G*&G&GNރ~|p^&G*F&w&w&w&w&w  ^&GFFA v&$u1vF&D&DF&DVvqF&DNރ~}^_WVFN;FuFP6 NQ[[F NNFFPv [[F+ێ^F&?Mt&?ZuGF+FHFF‹NQڹYË&M~O&|&D‹F&)D^_ WV^> &tz6| 2F%3FIFPV[[ t;Ft5FV+FVN +;w r;wF VFVFPV6[[Fs~u^> &!^_ Vv36| 36| 4FPVX[[ t&Ft FV+FVN +;w r;wV[s^+>.t;> u4FV>. u  ËFV+RP#[[FFV+  %FVF FV;V|;Fs ~uFV~|~tvv [[FV u~tNye~^vPz[[FVFV9wr9w uLFVFVvvjRP jjjvv FVn^vv[[FVFV9wr9svv[[RPvvH>.u66vvS>. tFV  N~fV t+^Ã> tV tV^66n[[؋ы +^FVGu@t+Ã> t$vv[[V tvvvPvËFV?RP[[FV%-RPvvr9Vwr9Fsvv[[ËFVbV3uO>. u 3ҋČӁ. j & SPRV 3FF s9uUVF]^XZ [^Ë KK . "UVW33%Ss;^uNV_^]Ujv v vVK!j sôM!2U^7H!rGGOGjP&^GOS3ҋ^AtyQ?!rY퀴?!j røL!Uj^F F GFVGWwZ]Xюj RUWF~NF A_]Ë6GرfSf^fVffv, &g3&gT3f^f[]fWf~fVff~ , gf6f^f_]U>/s#W]U>/s F V WVNы6 ujWOoۋ^øD6G6WË6G6WUFVv^ 6]FFFfF $f ĊfËUfW6o6_>.tjf_]Xf3W_Ft&efZ]Y f^3ËV6w;6| sU6o>.t(jFFFf$F fF@]^fWf36_ f_s336O#Ë6_ff_f6 6 f& r  . f& pApQYfppBpQdYfpp1BpQHYfppMBpQ,Yf ppiBpQYfppP Q oYfppBpQ@YfppBpQYfpp\ QYf pp` Q Yf$ppd Q hYf(pph Q LYf,ppl Q 0Yf0pppQ Yf4pp,Q@Yf8ppCpQYf<ppCpQYf@p! 12 ! 2pS!! 1 AEEIFFFFFFFCGlGGG+IrIIDpGGG"HbHHDpKLLMPN^OODpODpIwJJJDpDDDDDpDpOQxQQQDpDpCCDD*D2D@DNDTDZDfDpDpDlDnDf`fffrfg](qr ffSjgf#ugf#}s*ge,3ۊ.pD2.Dx :s . .lgM,ffafgf];st3ɊOtjPV&^$& Gu2GGJtg] ÉG;tB3&tx& =rm>vZ rr3GjP3ٌ333P3jgE⓰uN9\u8Tugu RSGZWugE ag]jPQg]jP'AG}GgEGggE(.rdbgEGgEGg GEj &>/r1fPgEfgEWptf ʀf ˆGgEu%%/=uQYrG% GϾS^tzfgfgfcirffgFugFtLuMj  H( r3&> >Lj&&M@+&&LjP&EL MsugfEfgEGgfEgf#EfGgEG L PgEj  gEj ; uP=sGLJL4[2k fĿL]EE&go.X&gG0&gG &gG$&gG"ffgf6gfjDTtj  .Lf& fffjhNf.L 6& 6. gfwgfwgfwgfwfgfwgfwgf7gw"gw$gw gw,gw*u.}0 fgE j  gEgE< gMgfE\O{j  gEgE= gMgfEO[jHj 6& `h j gE Z.< tgMgePgEj >. uf3gEgUCgEj8 f>ff3+π+gfgfu+fWgM3۸1VWfXf_f&gfGfWffWgEfgEgMgfgfـ3gff?f^f f>w ffff_ʁ gf&gEgej >. uggfE=r_?u[gEuTf>fgf|8j8&gfu5&gfxޭu)&gfH ffPf3gf_^1gE-ge-$gE ogE-gE-a.>Lt̓ÃyffSffsf6gf[ gtf[tfSffsf6gf[g;bf[tdËL)ZXÐtSPR$:t ؄xՋJuа ZXtÁ. gE$.D fat tfPf`fffrfgU&f tgfE$gfE(gfE$gU&gU.Lgu$㝎j  f> @w.D&E*&E(fgEFgu$.-Sffgfu(gf6gffЫfa.Lf_ffff`f~4fffFgfgFtt$tzyfCfCfCfCgf] f]f[Xff]f[Xm VW1@`1PۓCA3ɬ QuQEM@*<r*u шUrt RuxR+-Ek < ʉEEUAyGtCQpC bu P}CGGp_^y  (Y6$ Q`jjUU^.2P.T"F aDDfϜUSP^FFF NFRU.TGF GFX[]fU^N]fVfW1>6f_f^rӑ3fWf3016M66U0f_rىQ IuCfZ u1f;s,&gGtfff gfgf f IyY˸ {X@PcXPUf`j*f~fffN ffff ff# fff;s/##&g# ; uff;vFfa]Xjf+ffffgf\&gf3ff;wff;wf&gffXP3+$f`j8fff?> u fff>fGffN&f fF"ffH%  ;sEff &gu&gf> t&gf&gf>f fff>f~f~fa3Ɋ.8 tfPff+fXÇۇۇۇۇ=gBW.0-?dP]0EXPLOAD.EXPO ]?Uv v ^&w ^&GUv v ^&w%^&GU~tvvh* }ːF*jv v PR5+ːv v vvKFːl؋F Ft ^+&G&v v vvbF thIFV t#h vP1HFV t ^FVF V  vvFPj FPvv+ːh+hgHjIːUjF+ FRP`FːUF+PQEFː +FFjvv6*3hh >=tN> Mu> Fu  FV빐> Mu> Zuh n FV뗐> Bu> Wt+" u+ːF^ ^^&? uF̉FVj\RPy9FV tV@FFVېhvv{9 tnhvve9 tXhvvO9 tBhvv99 t,hvv#9 thvv 9 u+˸ːU6*vvv ːU6*vvːFF~}^ u +ːːFF+ɉNNNQPFPb?FFFVFVVFF+FFFFPvFP?ː*WV+FF&j6 6 6*u1hh =tS> Mu> Fu    뵐> Mu> Zuh "   두> Bu> Wth0h    hOh 44 uhTh "4 t   0j  6 6 6*0 F܃~u ,~}F, && tF, & uhZh[  , &  F uFހ6 6 FF-Fu.h 4@  ‹Gjh j6 w G FP&F uhh jvjv4 v+vVF$FVRP ;vhh| n^^F&tFމFFVVW~ڥ_^vF*F uFF+ t VF t+9~v~ڠ,F 9Nu u,W<F uhh F, 9Fu vF^&G  &F@t  & t3tFDPN+QRV։NjD F֋VRP~t~+tjWVvF9Fu FG v2 FF9FwF ^F&G^&GP -$^&G ^F&G^&G &GG O &F^&GSv~|6*L-+    G ^&G&G&G FV t ^+&G&> t FvvvPvv vvvvvv F F tFV^ &&Wvvvvvb P<^_.WVF+҉FމV u FFFމF+FFFPNNQNQ9FNNFn^FNQP+FFFP9FF }+^_ːFFNNVV+ۉ^^^SPvVL9FFNNVމV+ۉ^^^SPFPNԉVҐ9FFF+ɉNNNQP NQ8v~FԉFF҉F+FFFPVFP8FFF+FFv^&FVFދV9Vw r9FwِF^_^_ːUVn wd v F9v v,^F&G$<u&Gb h` j ϐ^ːWVF P+ɉNF u V^_˾N ~^&F -^&+F H&GN| ^F&G^F&ڋFV^_^_WVF Fn ^^F&GFF^F&^^F&w^F&?OxL^F&Ύ^F&F=r؀^F&G^&؀^&FtFFuc^ ^F&wF Ft,F PF Pvvx^&&W^_ WVn ^ ^F&GFF&GFF&7FNy^F&?s吋߀^F&^F&?^F&NFNj&?r߀^F&G^&߀^&wF Ft$v v vv^&&W^_VF FuF|^&&WFV uFa~w+^ː~s^v&^ː^&;Fv+^ːF&+F&;Gv+^ːv&^ː^ːWVF FuF^_ː^&&WFV uF^_ːF^&9wr,ދF~&9u}^_ˋ&^_ː+^_^_^G+ҊԊ*҉FVFt?MuFG+FFVFV ^F ^&G &G &G j  @RP6*u&j@h 6*&Uv v FVRPT~uˋFFFFPhI+3F^XFرVW^OWw _F1S^GOWw _^˸ 12F 12W~Pt@&E&E &E&E&]&M&U&u &m &]&U&e&M&E~ &E&]&M&U&u &m &]&U&eP&u X%uX&u &u&u&u&}˸  WS~^1r3[_VW^13ًʸ1_^hh^ hhB ho9[[FV thvP7 u h{ [hvv7FVoUit+vvvvv v vvF FVFPv vvj66F+FFv[F FVFPv vvj66iF+FFFF FVFPv vvj660F+FFFF FVFPvvjj66F+FFFhu+ˍF FVFPvvjj66F+FFFUvvWQ~N F F +HY_WQ~N F F +HY_WVQ~v NY^_VWQv ~NjN1;F u;v;sNOǨtIY_^WQ~F N Y_VWQS^~~ v NK[Y_^UV^ &v&F &GF&DF &GF&DF &GF&DF &GF&D &DF &G F&D&DF &G F&D&DF &GF&D&DF &GF&D&DF &GF&D &D"F &GF&D$&D&F &GF&D(&D*F &GF&D,F &GF&D.&T0F &GF&D2&D4F &GF&D6F &G ^&G:&G<^UV^ &v&F &GF&DF &GF&DF &GF&DF &G F&DF &GF&D F &GF&D F &GF&DF &GF&DF &G F&DF &G$F&DF &G(F&DF &G,F&DF &G.F&DF &G2F&DF &G6F&DF &G:^&G ^FF FFFF=FNQPU, tFF+FFFFFPh>+ tF+FFF FFFF FFPFBP+ tFVFF FFFFFF FFPh?;+ tFFF FFFFFF FFPh@* tF^F&^ F & uFVUjjvvjjv6!FV؋F Ft^&?t&^F&^F&:FVFV t9^&?t0F&^F&^&?u&/t&\t ^F&\F V FV t&^&FF^&?uFVFV t1^&?t&?.t ^F&.^F&^F& t ^&Uvvv v #v v #[[ء +ێ&GG%؃>u&h1[[ u  , tWV؋FF u> tFعP&@WV^31ًʸ1^_ЉFF^_UvvUWV+jv+[vv,[[ tWY+[^_Uvv t vv'WVFvv,[[FVvv*[[@FFVW^Nv~1_^^_WVF t~vN^ 1ЉFF^_ v vo,[[FVRPvvZ,[[+FVRPUv v vvh>/[[FV tbhRvPx-hkvv_- hvvF-"$hvv--h.[[FV tIhvP-hvv,  hvv,h<.[[FV t0hvP,hvv, F~tGF VFVF~?}&^| FF^&?u^Ƈ| h| h,F F |>v vP;Fu+F~t v}vv vjF $V؋FVFV^ ^F&?t&:u&‹&FV@@F!FFA^&&؉^ tF, ^&,@FF^&:GF^&?\u^F&\F؋vGV!vv[ tkF^&\GFFVFVF܉VF^&?.u>^&?\uFN-&?.u'F^&?\un ;^w+"N^&?\u^&vF& u^vv FVFVN^& FV@-:t-"tF9FwًVjvvRPv v  j.v v  tj.v v ‹&#FVN '؃j^F&F N u &ء uhhz FPvv  t FP[[ FP["F FtVj vvFP FP[[v vFP tNFP[[v vFP uj vv FPz FP[[FPvv v v v v FVRPhA uv v vvh* t^&v v vvh t^&v v vvh t^& v v vvh t^&v v vvh t^&OF FtFV+FF tFPvvv v  FV +ێ^F&GGu^&.&G+޿ VNF Ftshvv&FV tXvvvP vv\"[[vvn FVFV^&?\t&?/t&?:t&FVN9Fr V t1FPv v vv tF Ft vv uv v FV^&.&GF Ft2Svv vv ^&x\uNS ^&@^hhFV tvvvP vvvvvv ^hh&hhhh&hhh&h[ hFV t h&vP> hFV tCh&vP! h& FV t&Fe^ ^&&GNF9Fs^&ء FF<h%Pvvh1 uvvvv vvZ@F^&?uFVC!rNF%=ȦV&? t&?udžZ\< t tZF^&Z\<;uۃZtZ[:t[\t Ƃ\\ZZƂ\\Pvv\Pv v \P3 tvv\Pvv[[^&?;t&? uF^&?;t1^&*^V^&FFF F tM^ヿtAvvvv hL%vv vvv v t~tSFF^ヿt=vvh&hah&vvv vR tyFF^ヿt=vvh&hwh&vvv v t&FF^ヿt h&vvv v tFF^ヿt hvvv v tFF^ヿt h&vvv v] t>&t\FF^ヿtFvvh&h{h&vvv v tv vhv vvv6v vh1^h&vvh&‹&h& t"؀%\uƇ%%:u h&hȂV؍FP~ tPFPv vrFPO~B jvjjF~BPt~B;F~B F~BgF~BoD~BD~h u FP[[^FbFpF jvjjFP~F:jvjjFPhFPhFP6[[^&&WFV uvv![[FV^&&WF Ft*F Ft'vv vv^&&W u++FFFFv vvvFPFPVFVȲdžNvv vjTvPPhe=ubPMuQFuRTFV PMuQZu PP3[ހPBtQWuFtdžNFV ^ &&WN^^G+ұ FVF^t?MuFG+FFVFVPvv v+FPzFV |vFPj@=@t~MZuLFVFVFPh[FVvFV FVRPj$FV |]vFPj@-=@uL~LEuF~LXuF ~NEuF~uF FtFVFV+FFvvvjFV^ &&WFvv v vv uvv v vvFPv vvUvvv[UvvvUvUv vvvUv vvvUv vvv(Uvv[[Uvvv vUvvv vUvvv vVUvvvv v }  Uvvv vUv vvvrequires DOS/16M $0!<s3P˿66 8 66gP6g P6g6g6&2 6  0+3 ѐ3H6 6 6 uP.].ظ64 2P6> uXP6 P4 !&|.&`.UjVWUӎۋ^7wwWw ^ 3tFO.`..3tY[X]Sӎۋ^ FX%G OWw G^ YOXYtP _^X]UPv vv>]Uv vvj!']UFV^ +F Ӌ]UVT R Ȏغ/$%!3]UWVRQSP.].ۉ&V X UVWP !X_^]Z \ ώҋUVWPR X &V [YZ^_]UFU3f NX &V 68r f б2㋗^ s[YZ^_]\ &Z SPܡf 6 GXZ 6G6_[U~t~t  VW^ 3!h F j l 6j Fv )!) !U> }!.l0.&j0.5.6n0u.6p0.r0h ~t32P !X VK!PP0!<X[}!.l0.&j0..r0.6p0u.6n05 ]_^rM!25!  %+.!" . &6,$ 36 s 6( ڻ6  &,>3&=t4 t 3u! ,Ar ,Ar ª D!r €t @Ky, , , , U3UUVWUVWQ u , , x> u , , c, , Z tX Pu ~uFX uFL!_^]ˋ"   %!> t   %!;s EtUPR> t P?]ˏ  0! <t) &, 33uGG> ыѿ < t< t< to tkGN< t< t< t\ tX<"t$<\tB3A<\t<"tӋѨuN< t+ t'<"t<\tB3A<\t<"tۋѨu> GB+ģ 6?CC6 u6 3< t< t< t| tx6?CCN< t< t< tb t^<"t'<\t3A<\t<"t\Ѱ\s"N< t. t*<"t<\t3A<\t<"t\ٰ\s"3. U &,333 t&>tFu@$F P ϋ3_I&6; uQVW _^Yt&?CC u&]UVWV: ;t@t 3_^]UWv t 3I> u @!_]r3]sPX2]s]2ˢ u"> r <"s < r<v ט ÊU^; r >!rƇ U^; r *F tH~ t3ɋѸB!rKF uFV y(6VFѸB!FV y NVB!؋VN F B!r %U^; r h3N a uZ> u N V?!s > t7 VW% < u :t<u G+_^t< t @tD! u V?!r԰ ,FV?!r t~ tѸB!~ t V떋V딀~ uU^; r %> u t B3ɋ!r tpV3FFWVfN : uL=vFܺ=(s+ԋN < t ;t#k ;u F ^__hPSQ+Q^@!Yr F;wY[Xß~us  @t ^?u F+Ff^_/N u#V@!s u @t ڀ?uUWV6 tJ~tDv04;~ 9=uWvS u@ FF<u+^_]ː ?UVW~]MUu} !W~]MUuE r3 hu _^]UVW~3I:IN~3I+Vv%vuыߋNuGF3_^]UVW UVW2҈Vv< t< w< r<+t<-uNN t$v <0u u uŒ,A<ۀ AAۀ A:t^_]UW~3AيF O&8t3Njnj_]Uv ^ t-&'C:t,A<ɀ A,A<ɀ A:t]UWVN'~3ˋv D3&:EwtIIы^_]UWV~v ߋN t2Ì^_]U^ ,A<saC uڎ]U^ ,a<sAC uڎ]U~3I]U׋v ؎3~ǨtI]U׋~3u~ +؎FFtI]UVW~ 3I ː؋FFjjFPj2 f*؋FH@F+FFPPFPhH tFFFVvvF |Fu+vjFPhI FvjFPj t FF +FFFVːFFFFF+FFPPFPj- tFFFVːFFFFFF F+FFvPFPj tFFFVː؋F H@FvjFPhJ F t-F t'FPvF HFFPv?F FFFPv tF*ЋN^* FFVFV"+FF u5FFFFF FF jjFPv FF[_F tOFPv FFFFF HFދF* FFPvR tFvpFVv F+ұuFRP$UVv &<t&&8uFF ^&?u؎F&^ &8u^+^ːF^&G &WFVFFF^&9G ~)^&w&7v v o t^&G&WF&G&WFVFFF^&9G~^&w&7v v  t+U؎. & +ێ&GB&WD^&&W. & +ێFV&GB&WDV؎. & +ێ&GB&WDFV;Fu/;Vu*v& &T&OB&WD+^ː&&WFV Ft*FV^&9u&9Wu&7&&TF&&W뻸^ː؎. & +ێ&GB&WDFV Ft1^&w&wvv t FV^&&W+JF FFFVFjFPh u~tF<. &, F0 &FFP+ɉNNNQFPFF. & +ێ&GGt F܉FF F؉FF։FFFFȉFSSFPv9 ː؍FPv} uˊF* ؍FPvQ uˊF*FF FFPv t؋FWVvvr%=t ^_ː~ tWvvn%ȃ^_؃> u)FjjFPjj u+ˋFFFF jjFPh Fː؃> u!FjjFPvjF +ːFFFjjFPh +؃> ujjFPjj FFFː@DOS/16M- (08p@P2NȎش !L!.EXE has not been processed by MAKEPM $ W+FFvvPv T%FV u=v+_ˋ Ft u~ v F HF t4 u~v'jv jj.FVFVFHFFFPP[[~uFFFFVFVFV~u~vFF +N ~+ۋNع^F +)FVF FuFV_FIFFFFPFPPD32_KERNELDOS4G_GET_APPPATHEXPLOADINITLOADERUNLOADFREEMAPRELUNRELCANLOADEXP_LOADER%*1X8@D0JR^fVMM.EXP4GWPRO.EXPLINEXE.EXPSEGEXE.EXPDOS4G.EXPUSERERR.EXPinvalid EXP executable format \VM.\VMD.program must be built -AUTO for DPMI can't allocate memory for GDT premature EOF not enough memory to load program  ERROUTERRPRINTERRDIVERTVMM4GLocking %lX - %lX Bytes - retcode %d DVX_Process_ManagerDVX_Global_Seg_AssociateDVX_Global_Seg_AllocDVX_Global_Seg_BroadcastDVX_Dos4gx_Get_OptionVMM4GVMALOCINSTVSUPERRESIZEVSUPERFREED32_KERNELDOS4G_GETENVDOS4G_GET_APPPATH0123456789ABCDEFDOS4G_GETENVD32_KERNELverboseverbskipinitskipsymnoclosenoignoreDVX_HOME_DIRDVX_Process_Managerdll\msclibpathsegexedll\os2_20libpath32linexe.PATHCOMSPECDOS4GLOADERDOS4GLOADER.dll.exe.comChecking for %s%s%s Searching LIBPATH32=%s for %s%s Searching LIBPATH=%s for %s%s .Searching COMSPEC=%s for %s%s Found '%s' NOT Found :: %s =BG.sym merges ; comp ms; go (08@Pp&2Tv _C_FILE_INFO=    ((((( H 0 *.*.*. <>R6000 - stack overflow R6003 - integer divide by 0 R6009 - not enough space for environment run-time error R6002 - floating-point support not loaded t 5Z@Ed4<wr9@ayZs.hv !J#$f$$%'$((,))+,7,M,l,,,,, -+-P-r--].8?zBZDDD$EEEEE*FlFFF8GGGTuXP6XPR!&&UjVWU^7wwWw ^3tFO.O3tY[X]S^ FX%G OWw G^YOXYtn_^X]UPvv v vv?]Uvvv v vvj!]̸5!%!f.&6,h36ds6lڻ6d&,>3&=t4 t 3u! ,Ar ,Ar ª D!r €t @KyppppU3UUVWUVWQ uppx>TuZppcppZ tX Pu ~uFX uFL!_^]ˋfd%!>2t 34%!;s EtUPB>:t8P/]UVWV;t@t 3_^]UWv t 3I>TuV@!_]U^; r >!rƇ UV')FV tnF Ftfvv^&G& tJ&w&7;~1^&&8=u%VvvS u^&&W@ F+^]UVW^vF ~ N_^]Uv ^ t-&'C:t,A<ɀ A,A<ɀ A:t]UWVv~ N>AZ $& t tFG:r:w:r:w:u3:t rIIы^_]UVW UVW2҈Vv&< t< w< r<+t<-uN&N t$v <0u& u uŒ,A<ۀ AAۀ A:t^_]UW~3AيF O&8t3Njnj_]Uv ^ t-&'C:t,A<ɀ A,A<ɀ A:t]UWVN'~3ˋv D3&:EwtIIы^_]UWV~v ߋN t2Ì^_]U^ ,A<saC uڎ]U^ ,a<sAC uڎ]U~3I]U׋v ؎3~ǨtI]U׋~3u~ +؎FFtI]UVW~ 3Ir <"s < r<v>טÊU~3I]UWVN'~3ˋv D3&:EwtIIы^_]@DOS/16M (08p@P Ȏش !L!.EXE has not been processed by MAKEPM $WVFjj+Vv vVj IFV"~t%&G&*~&8tFFF^&8uvvJF^_Uvvh+UvvhtUvv u vv t+hf[[jThf[[hf[[jTh}f[[U^&G6&G&G^&w&7VV^&&W@RPhVFV t^&GShB^&&WV؎p&+ێJL&GGu+>u$hhQ t hhQ u"x^&G6~tvv?R - LFR t FVFG^vvFP0FP^&=uPR6 t^&7NPMPN{(h4PNpPd Ğ&G D|z~jj>FP%dp&FFFڋFĞ&G&WF։V&G$&W&$FVFp&FFFDt3kD-RP(&G&WFV&G&W ^&&G0&G2+PQcs[[`bF֋V`bRP tNFuhVhOZ uh]c[[FF&DFFwvvNP5^&=uRĞN&~ u~ u Pjjj$SF V ĞN&&ĞN&G\>uĞN&&^&7jX t"~tRRĞN&LJ|Xh4PNpPa lnĞ&O D&OIVk‹&@ tzk&@Dt/kD&`% f t|~kD&@+f^džTTTĞ&9WFs^w &9GDwSkĞl&@ ukl&Gt&G&GkTln&Gt&G&Gha[[Ft &FF+PQq[[`bDujjjn ^FV`bRPjj C‹؉^F+&G&v&^&G&G+&G &G6&D8&T:^&G &W6&D4&T6^&G&WSDF FtrFPvvm[[+F@F t=vFvvvDRP_ &G4&+G8؁H^FvvvS_ >t~t R.Pdž$hjF҉Vh4pPPNi_ j>FPvvT_ vv+^WV uhhV u+jnm[Fjm[ uFF+NF>tFv&@&@F&@F*&@&&@F~ rFF$FV‹&g&O^$،v|hإh JhP_[[ hh *_vl[ ^_Ujjjvvvvv v vvV^+&G&v &vC FV t.^&G<&W>v&&TF&w&DD^ &FV+^Uv  V+FFFFPNQv W FVF Ft~u+e^&GF=r -xF=r9Frk^&@tz|^&G^&G<&W>kN-RP""^&&W+^V؍FPNQv  FV t,F Ft$~tFFFVF+;Vsvw;Frovvvv<Nk^&@&PFV^&&W^&9Pwr&9@w;Vwr;Fs^&O^&@&P^&)&W++^vvv v jN uvvv v jN tFFF*؎p&FF؀>t++h b`M uahh/RThro[[FV u^&GGth&hR/Fh2h-IFV th=^RPZ uF~uhEvvm uhNvvjm tvhTvvIm tUjjjkjjjjjjhhVRPh]>[h-[[[hhH u uyhhQ t&hZ[[ t*/W،Ўp&r.tvЋ&x.x>p׋&r.t_UW،Ўp&r.tvЋ&x.x >p׋&r.t_UW،Ўp&r.tvЋ&x.xj&u&u&u&u&u&u&u&u&u &u >p׋&r.t_؋FV-F^SF?FQFlF{F u-= w.v v vvI+Uvv&+Uiv1Q^ &G+&G&~t(vv vFP# FV^ &&WF&GUvv=^ &Ujj>vvW^&G2&G4z&G6~&G&G&G&G &Ghj[[h e[FVRPyCFvxUhz t=h|~ t.Pvvv v hB76zvvv v h,7|+2+FFr&FFFjjjj u+b t >uF~u[vvv4FV Ft9Rvf[[RPjvC tgjjvvVFVvvFPj F }hF6~~BjjFPj |FPFPj  FFFFPhjvt&FVjjFPj F Ft5>t.FFFvvFPj FPFPj jjFPj hhdV.0 .u+.&?u$jhdSRUhj606.=U.&GȢ t>t^&LJ*+0vvjFP@0FPFV*RPj ="F t^&*|FP*PjVr&+ێ&w2&w6&w4}eFV t^v&S`[[^Vdž~ u{vZz| tH>uAĞz&\t hT[[+RSjFPF/FPz|*RPj ~~~ujjz|*RPj ~.Rv&.&R|z t=jjz|*RPj .Rv&ȋ.&RB+FĞz&_8&G&&W=u;t8Ğz&G8&W:RP:vi|zg u|z tb^LJ8 v[|z$^WV^+&G&.&brFF.Rv&8tri4.‹،~&&U.~&ƁRv vVP~ t2v v6.0ƄQVE6.0ƄQV[[^&w&7LJ8.&b^_U~r+iF4.0VFF~s6.Rv&8ti4.RPvv uŋ^UvvhR塔 tvv[[ vvh0.VvJFԉV uf t^&*tFFFԋVRPvhQ ^&G:& G8t>&w8&|tCFP8^&G8&W:RP8^&_8&w@FP8&t&@.Rv&ȋ.&R^&lun~t &G:& G8t!&w:&w8C`[[RP &wZ&wX4^&u&wN&wL^&wF&wD^&&~t^&wV&wT=4^&w&w/4^&w"&w !4^&w&&w$4^&w6&w44^&w*&w(3^&w.&w,3^&w>&w<3^&wB&w@3}FF؋F+^&w&9TFs:w &9DDw/kv&t<&p&pjjFԋV*RPj F.Rv&*+F=t hO[[.Rv&8u%jh4i4.RPN.&b^LJ8^LWVF>}t<}>thHh@E toj>j>j>hOjn>hSje>hWj\>C^ヿ8t70 .t..Rv&8ti4.RPh[NVFN u0 .t,.&Ou+0. tjjh6j hvhpE t3FFhŽڥm&'&h8 t66f][[RP+~+^_VFF1^ヿ8t%.Rv&8tƙ^XZFFN u^&X&_F^UV؃~|WU|~sM^ヿ8t?.R&8t/N N t vi4.RPv v  ++^v‹؉^F&Gl&LJ2SjF t^&LtF&&wp&wn6P\[[RPjhp&=u twvv6P, F u vv F u vvPF u(Fu">u vv vv#[[Fvv &NuF~u>u ^&^&GlFV^&G&WFV&G<&W>FV+ɉNNN Ntk^‹&@&P%^&GtlFVFV^&9WFr4w&9GDv,k^F&G&W&&W;Vrw;FvFV뵋FV%FV=FVFV^&9WFr&w&9GDvkv&&P%FVËFV^*WV^&G<&W>FV&_^F&G(&W*FVFF.vv^&vvRP)FVFVFVFF+k^^F&9Wsw&9Gv}vvvPFPNQNQ*F֎&&T+FV;Vr w;FvVދF܉F܉Vރ~tx>tU^&_8&w&7RPvv NFF+^&9WFrFw&9GDv>+ɉNNvvPjvvRPFVRP'F؉V t+^_FWV^&G<&W>FV&G&WF܉Vގ‹&O(NF+ɉNĉN‰NNNNNԉN&Gt>tF^&G\N9Nt3SQQFV^&Gt=^&G&WFV-vvF@jPFV uv>t>t FVvv~$Pjvv&F‰V u9^&GtVFVĀ>tY&Gu>uF‹Vģ !>u6|669VwEr9Fs>h~vvF‰Vġ9Vwr9Fshh G$m>tvF‹VFV;rVw;vP6|66F‹V+FV66h&6z6666h&/vvjvvvvz)^&GX&WZF‹V&GL&WNF&FV&&>t>t FVF FuKvvvjvvF+RPFVRP$F‰V uFV^&&k^^F&G tz+&G&GPPPvv&w&7(F։V؋ FuRv֐U[[FVFk^^F&G&G&Gt9Pv֐O[[ Pvv֐OF‹Vkv^&@&PFVFvv^&vvvv$F+;Vrrw;Fvk>udRRRvvRP'F։VjFN+PF+=u9>u2jjjvvjv'F։VjvRPDvv(F+FVFVFVFVFʋF+kv^&9Pr[w&9@vSvvvPFPNQNQf%F t`>t^&&vvvv FVk^v&9Psw&9vyjjjvv&&x+F+;r w;vȉNRQ&F։V؀>ujvRPCvv'F+FVFVFVFVj~u+FĉFFЋF+^&9WFrMw&9GDvE+FFk^v&@& t^&Gukv^&@&PF‰V(&G& Gt&kGFV-RP^&G&W^&G"& G t&kG FV-RP^&G$&W&+^_vvjj^&w`&w^N!V u.vvjjjj(1!V tvPjj(/ u"+WV+FF9FtVvvj^ &w&7F+RP%FV t,^&&Gn&WpFVRPvvV^ &7&FV^_WVFV8ڹbNċ^Ɖ(*v~+v~ "FV+FV46^&&&+On&Gp+NFNF$&v~^&&jj~|9։02N^+N^ "46v~+v~(*$&FV^&G^&W`SjjRP} u^&&vv- u"v vjRPP#^&G&WhvvR&w? v vPvv^&G &W"SPvv(^&G$&W&SPvv ^&G4&W6SPvv4e^&G(&W*SPvv$E^&G,&W.SPzx0#^&G<&W>SPvv^&G@&WB>tSjj(RP ugR', u|v vj!^&G8&W:&&&w8&&TDPl&^&&_8&G+^_"^Sjj&wd&wbJV ujjjvPjhb!‹S"+WV^&wvF&Dl&Tnȋ&+Dh&TjFVFV&Dp&Tr+ӉFVN^ӉFV^&Gb&WdSjjRPFV uvPvv* u"FV^&GD&WFFV^&GP&WRSjvvFVRPw ^>&WV&&Gn&Wp^FV&Gh&WjRPvvvvv~FV^&GH&WJ&Nv~&Ml&unVQRPvv\vvy[[+^_L^+&Gp&Gn*&&&F&&NVPRQj-FVvFPj@-=@ut~MZu3vFVFVRPj,FVvFPj@,=@t=~NEt~LEt~LXu%FV^&Gn&WpF&F&+UV+ &@^&F^&;^&Ì^ȐV^&w&DtrF&G(&W*tv trr uS~PFVRP~PhH< ~P x=u~Pjjjjj uTvv~PLxi鉆z| tĞz&2t ^&2Ğt&*@tĞt&?tK+^U^&G t &G&W&G&W+Uvvv vvv h%hA Uvvv vvv hQhA V^ &G(&W*FV^&F Ft]n^ F Ft^&?t &*@F^&*F t^v&@^&FN u^&*v&8^ Vv ‹&G4&W6FV&G<&W>FV^+&G&G&-&*F&GFGFF&G%tHthHtlHtiHtmFF9Fs~ukNNVRQlFVFHfF^&G%Ht*HHtRh|h @$FFF^&G+FV~t@k^^F&Gt&G#^&G&Wkv^&@tz|^&FV^&G&W0F)F~uFFfFVFV^&?t^UV^&+&G&GF FtaV&PGPvv ̓ u-vv )^&;uv&pvv ^&F^&?u+^v v vv ‹؉^F&w"&w vvL uv v v^&w&&w$vv+ V^&G<&W>FVN N u~t7k^ ؎&Gt&G^&FVhh >F V &_&9WFrtw&9GDrlk^&@tz|^&k^ ^F&GtF&WRPs'^&G<&W>kN -RPFVFV^&G&W+^ +FFh>[[hh$FV tFPvv^~uxF F umh0h$FV tFPv v jv^ F Ft8F^&~tF&G&GvvF[[^&G&W+Uh>vvˋ u ^&2V^&w,v &*PDPPd5 Ğ&*vvvvFPPFPhGL= vvPFPvv tFP㉆=u FPjvvFPttPvv^&G& GuFPPSFP^&G& GuFPPFVRP^&w&wh]x<^B^&+&G&GvvvvFPFPF=u FPFvvFPE~tvv vv*^&G& GuFPv v SFPL^&G& GuFPv v FVRP^&7&w&wv FPhb;U^&+&G&GU~ t;vvv vU(RP$j.vvaɋFV Ft^& vvhZ$U^&_&g% t u jv v vvFP+ˋFVFVF FFF FFP[[9Vwr9FsF V ‹&G뮋FVJV^&w&D&TFV u64 62 jh >FVFVjjjRPjhfFV&D^&&LJFVFV)FVSzFVv&d&f~&hvv6zFVRPh 96zvvvvc^Z+FFFFFh; h6 FV t)jhF ^RPă uhN h8hi vvtă uhr vvXă th{ vvBă uVFPvv"vvjjFPjr,+FFFPvvh 8 ~uFFFP F vvމF=t"PvS uvމFVRP>ueFPFP݉F=tPF^&FV^&&>u^&&$vjF$ t/~tvd FF Ft ^&LJ~t2v*Fvv t~t vv!~uFVF+FFF}FFFFFVFVFVFV~uF\FVFVFFFF>FNNFF+FF=w.B BuBA]BuBB?B BpBFV  FV  ^v&FF~t!N^+ڋF++N ^   v F^Pvvv FFFF;F~~}~|^&^v&ыFN tl^8VFFF F uF+FډF؋FF^&%Fр AN̉N&OكNFV^=u*FF*F%t6-r-wHubh h f.F+FډF؉FFF@u~t]^&GFF&G*HF̀~t+FFGFF-Ft&G&WFVG &GFFG͋^&GFFGFF~t +FFFFVFu&&wNvF~tY^&G*FF&GHF̀~t+FFGBFt&G&WFVG(&GFFG^&G*FFGFF~tDFFVFtO^F&FFFPFPvvvvvvaF FtTF@u ~u^&GFF&G*HFFt:&G&WFΉVЍG FFN Nu&&WN҉VF&GFFGFFN Nu&NF@@ɋ^&GFFGFFGFFFt&&WNΉVF^F&FFF FtF u*^F&&WF҉V-~u^&G*FF&GHFFʀt&G*FFG(Ft&G&WFΉVЍG&GFFGFFF FtF t ^FoF Fu^F^&G*FFGFFGFFFʀt&*NF@F.Ft^F&&WFΉV^F&FFF Ft F tF Ft^F&FFFʀt F*FFF$<u!vvvvvv΍FPFPtvvvvvv΍FPFPSh h *F+FډF6F Fu ~u!FҋVFVvvF̋FPvvvvvvv v;F+FFރ~t N ~tF%@=@@@@F F+FFދFF+)F Vd+^DV^&G<&W>FV&G@&WBFV+FF&G&WFV‹&G(&W*FVF^>&WVFV&GH&WJFV&\t&GL&WNFV+F܉FfkFFRPF։VvvvvҐFVkv^&@ tjjjvvjjjF֋VRPvv FVvvjjj^v&&PFVRPvv{ FΉVRPvvvvvvFvv vv FVFҋVԋNk^&9Prvw&9@vn~uhvvQPFPFPFP6F u^^F&G&W&+&WFVk^^F&G u&G+PQ6[[FVFڋV^&9WFrw&9GDv~u +FԉFEF^WV^&wF>&WVF&OP&wR‰^&A&Q~&A&QNvn^~u~t,^v&&P&M&U&&U+^_FFFFFFPh=. tF FV~ u~t8vvv j;F u;Vt +vv )FVFV FV | =v+Ҹ tCvjjjv vRPFVRP9tvvV +FVvv v vv4[[RPF+RP U~|xj{F V rRPFVRP ^&$^ ^&G~ ^&G^^&G^^&G(jF V rRPFV@RP誺A*F^&S[[ 6^&&GFV $FV ~t  uFFVЉF҉FЋF FFFFFFԃ~uK tAP[[FPvvvvvv h'$FV^&&WFVFPjh , tvvvvvv hQ#볃~u+^F F܋NN+ɉN҉NЍNQPFPr, tv vFV܉FVRPh}# F֋N^&&GZ.WV+FFx&FFjvvF+RPNQuFډV t(jjjvPWV`FV Ft v&FV^_ȶVdžNFV dfvvv FPW~ udžNF~ |s hh!+8vv v vvk  PFVFV  FV^ WVFFFVk^ 9 u 9 uFFF9Frك~t>k^ 5kF  ٍ FF;rܸ+^_+FFF Ftv v vvvvvyFVFV9Fu 9Vu+~wr~w FVFPv,F$`F FFF FF FF *Fj FP葴ډF2^0^NFPv,v- tEы^1v[FV衴2F%3ȊF* Ȁ@N ^N1F Vx&FF~t=FPv+FPv&,^v&^&^1F^$WV^&wvF&|&& t/F&*hjj|&F؉Vڋ‰FFP+ 33A1F~tFPv)F$`F^N V1@NV1@ N1~tp tgF Ft_^&*|T~ tNF+PQ*Pj F^v&P^v&p&p&p&0v~& V+^ Vz&FF&FFFF FtXvv([[~sD~&& t5^v&P^v&p&p&p&0v~& ^NWV؋FV FFVFP~tF@uRFPNFi4.^F&G<&W>FVFkv^&@&PFVFV9Vvr9Fwk^v&&xN~;s_w;wVvvv+FV 茯FPNQVR^S^vvvvʋFVRPvvh^&G8&W:RP jvv^&w8&tvv ^>&WVFVv&D&T&+&TFVF&GH&WJFV6vvh~u#~sjN+PPQ]6^v&&PFVRPvvv66vv66FV+RPFmFʋF+^&_&9WFr-w&9GDv%k^F&G u,&G+PQ([[)F̃~w"^ヿ8t.Rv&8tՍFP+^_؋F^ &GF&GF *&GF&&G&G؋FVFVj PRjz&6 +FFFQFPFPP F^&G FP^^F&G F+FFFPFPP j jz&6vv航 Uvvz'[[++FFhv v g th vvN u 66thvv. u (RPh$vv  uhh3h,vv uj h4vvө u j(P(FVFV^&G&W t+ WV&FF>t 6F^&?u@@FFLhH+RPFV u6vPWVh$vvWVE&D+&G&&G&G&G &GGP]&G &W+&G&G&G &G&G&W&G&W&G &W"+&G$&G&FVHFV+&G8&W:F$+FVFV+&G4&W6vvvHP +^_UVWhЎb&`f>d&gf&gff&dfff ghgFgFgFhgF\gFgF fVf3f3f3f3f3f3fenh&`_^]Uhjl thh'[[v&xjj([؎&+ێ&GG%؃>xu&hr([[ u " txxxWV؋FF u> tFعP&@WV^31ًʸ1^_ЉFF^_UvvUWV+j![vv'"[[ tWf![^_Uvv t vv'WVFvv#[[FVvv [[@FFVW^Nv~1_^^_WVF t~vN^ 1ЉFF^_ v v|"[[FVRPvvg"[[+FVRPUv v vv^&&WFV uvv%[[FV^&&WF Ft*F Ft'vv vvH$^&&W u++FFFFv vvvFPFPVFV̎&+Ƀ>u&GG$<أU u `޿NaU u `޿Na t+`޿NFaFR u `޿NF^aF9Fu+ t+FF~}v tF@ t+j t+jB t++FF0vG t"vhh4EjvFF~|ʋF+UvvvUvvvUvUv vvv9Uv vvvgUv vvvUvv-[[Uvvv vZUvvv vUvvv vԤUvvvv v   Uvvv vUv vvvUh!"[[FV tbhvP hvv} hvvd hvvK h3![[FV tIh9vP hDvv hQvvh\L![[FV t0hgvPhtvv F~tHF VFVF~?}&^jFF^&?u^ƇjhjhF F |>v vP;Fu+F~t vvv vj@F $V؋FVFV^ ^F&?t&:u&‹&FV@@F!FFA^&&؉^=tF, ^&,@FF^&:GF^&?\u^F&\F؋vGV!vv tkF^&\GFFVFVF܉VF^&?.u>^&?\uFN-&?.u'F^&?\un ;^w+"N^&?\u^&vF& u^vvFVFVN^& FV@-:t-"tF9FwًVjvvRPv v a j.v v 衠 tj.v v 荠‹&#FVN ԟ؃^F&F N u &ء uh hFPvv t FP[[ FPz"F FtVj vvFP} FP辠[[v vFP7 tNFPw[[v vFP uj vv FP' FPD[[FPvv v v v v FVRPhA uv v vvh* t^&v v vvh# t^&v v vvh, t^& v v vvh4 t^&v v vvh< t^&OF FtFVE+FF tFPvvv v  FV&+ێ^F&GGu^&.&G+޿ VNF Ftshvv FV tXvvvPvv[[vvFVFV^&?\t&?/t&?:t&FVN9Fr V t1FPv v vv tF Ft vv$ uv v FV^&.&GF Ft2Svv.vv^&x\uNS^&@^hShF=FV tvvvP vvvvvv^hghhohwh~hhhhhhFV t hvPhhFV tChvPKhFV t&F^ ^&&GNF9Fs^&؎&FF<hPvvh3 uvvvv0vv@F^&?uFVC!rNF%=ȦV&? t&?udžZ\< t tZF^&Z\<;uۃZtZ[:t[\t Ƃ\\ZZƂ\\Pvv\Pv v \P3 tvv\Pvvx[[^&?;t&? uF^&?;t1^&*^V^&FFF F tW^f dtGfdvvvv h vv vvfdv v t~t]FF^f dtCfdvvhh hvvfdv v> tFF^f dtCfdvvhhQ hvvfdv v tEFF^f dt#hvvfdv v tFF^f dt#h%vvfdv vg tFF^f dt#hvvfdv v* t>tfFF^f dtLfdvvhh'6 hvvfdv v tv vhFv vvvv vhR ^hvvh‹&h t"؀\uƇ:u hhtȂV؍FP~ tv{PFPv vZFP7~B jvjjF~BPt~B;F~B F~BgF~BoD~BD~ u FPv [[^FbFpF jvjjFP7F:jvjjFP!FPhFP [[WQ~N F F +HY_WQ~N F F +HY_WVQ~v NY^_VWQv ~NjN1;F u;v;sNOǨtIY_^WQ~F N Y_VWQS^~~ v NK[Y_^fffffffF tffffF tfffXPxXPxXP yXPDyXP|yȲdžNvv vjvPPh=udPMuQFuRTFV PMuQZuPP4[[܀PBtQWuFtdžNFV ^ &&WN ^^F&G+ұ ΓFVF^&t&?MuF&G+FFVFVPvv v+FPFV |vFPj@=@t~MZuOFVFVFP_[[FVvFV FVRPjKFV |^vFPj@S=@uL~LEuF~LXuF ~NEuF~uF FtFVFV+FFvvvjFV^ &&WFvv v vv uvv v vvFPv vvFF FFFF=FNQP tFF+FFFFFPh>h tF+FFF FFFF FFPFBP tFVFF FFFFFF FFPh? tFFF FFFFFF FFPh@ tF^F&^ F & uFVUjjvvjjvƎFV؋F Ft^&?t&^F&^F&:FVFV t9^&?t0F&^F&^&?u&/t&\t ^F&\F V FV t&^&FF^&?uFVFV t1^&?t&?.t ^F&.^F&^F& t ^&Uvvv v v v 辐[[hhw'hhhah [[FV thvP  u hq[hvv FVmUt+vvvvv v vvF FVFPv vvj66F+FFv։[F FVFPv vvj66iF+FFFF FVFPv vvj660F+FFFF FVFPvvjj66F+FFFu+ˍF FVFPvvjj66F+FFFUvv3T[;u%t[S[0t/5UX $~]tUFN]FN_^][[ZPh&6&/,X3u3UFN]FN_^][[ZUPFFFFF FF FFF FF FX]UVWF^OWwOxQFO_ !S^GwWOG G_^]US^F FGSv[]UVWF^ wWwOYF^tfffff1S^ iUS^ FFGSvv[]VWQv ~NjN9;F ;;NOǨIY_^WQ~F N Y_؍FPv; uˊF* ؍FPv uˊF*FF FFPvY t؋FWVvvr%=t ^_ː~ tWvvn%ȃ^_ؐ t!jjFPvj o u*+ːFFFjjFPh t֋FF tFFFV"+FFF. u*FFFjjFPjw t^FFVFPv t F$<t+ː F t&FFPv uvHȐFF tFFFVːFFFFvvFPh ːvȃːWVؐ) tFFv jFPvj  6FFF$FVFV^ڥ^&@F^_WVؐ t#FFv jFPvj v F2FFF$FVFV^FV ڥF^_ː؍FPv u+ˋFFxjjFPhv ~@ː؃>ː؋FFjjFPj6 f*؋FH@F+FFPPFPhH tFFFVvvF |Fu+vjFPhI FvjFPj t FF +FFFVːFFFFF+FFPPFPj1 tFFFVːFFFFFF F+FFvPFPj tFFFVː؋F H@FvjFPhJ F t-F t'FPvF HFFPv?F FFFPv tF*ЋN^* FFVFV"+FF u5FFFFF FF jjFPv FF[F tOFPv FFFFF HFދF* FFPvR tFvFVv F+ұuFRP$؃>u)FjjFPjj u+ˋFFFF jjFPh Fː؃>u!FjjFPvj +ːFFFjjFPh +؃>ujjFPjj FFFːUVv &<t&&8uFF ^&?u؎F&^ &8u^+^ːF^&G &WFVFFF^&9G ~)^&w&7v v o t^&G&WF&G&WFVFFF^&9G~^&w&7v v  t+UVء+ێ&GB&WD^&&W+FV&DB&TD^Vء+ێ&GB&WDFV;Fu.;Vu)v& &T&OB&WD+^&&WFV Ft*FV^&9u&9Wu&7&&TF&&W뼸^ːء+ێ&GB&WDFV Ft2^&w&wvv  t FVː^&&W+JF FFFVFjFPh t[~tFFF+ێ&GGt F܉FF F؉FF։FFFFȉFSSFPv ː̈̀MS Run-Time Library - Copyright (c) 1990, Microsoft Corp%D $ hd 5 [Enter loader...In loader] Leave loader...Exit loader DOS4GX_SPAWN_CMDLINEUsing SPAWN command line %s %s UNKNOWNos2envlinexeLINEXE: Using OS/2 2.0 Startup Conditions... LINEXE: Using DOS:Extended Startup Conditions... tiledlinexeLINEXE: Built Tiled LDT... can't allocate memory for LDT. LINEXELINEXEVMM4GdemandloadlinexeNameD32_KERNELDOS/4GWVMFABINDVMFMAVMFILEIOLINEXE : Demand Loading Enabled...FMA handle %lX LINEXE : NOT Demand Loading...single process only int21_call_16DOS16PKGflatnzlinexeFlat Model, Non-zero Base Linear Address in effect... invalid linear executable formatnot enough memorynot enough lockable memoryfile I/O errorcan't resolve external referencescan't load requested programINITDEINITLOADERUNLOADFREEMAPRELUNRELCANLOADGETLOADTABLEGETLOADNAMEGETERRSTRLINEXE_LOADMODULELINEXE_GETPROCADDRLINEXE_GETFLATREGSLINEXE_FREEMODULELINEXE_GETMODHANDLEXXXGET_OBJECT_MAPLINEXE_LOADER&hU$$#F6I/[obLINEXE_MOD_INFO_SEGIgnoring FLATNZ module... LINEXE DEALLOCATION: LA %lX FREE MODULE %d %s LINEXE misinformation : PROCMAN disagrees with mod_ref_count... verboselinexeCONCONCONDEINIT : Freeing %s tiledlinexeLEL_RETRYlinear allocation too low PRELOADING module %s for %s unable to find %s.%ld - referenced from %s unable to find %s.%s - referenced from %s unhandled EMPTYFWD, GATE16, or unknown relocation unhandled ALIAS16 reference to unaliased object Trying SEGEXE loader... SEGEXE_LOADMODULESEGEXE_LOADERSEGEXE_GETPROCADDRSEGEXE_LOADERDOSCALLSImporting %s.%s : LA %lX Importing %s.%d : LA %lX - SEG = %X UNKNOWNCHEWaaaaFLATNZ_ALLOC: Allocated %s: LA %lX - %lX Bytes LINEXE: chewing too-low memory %lX bytes... DLL STACK Calling DLL initializer for %s @ %X:%lX NameD32_KERNELDOS/4GWDLL modules not supported DOS4GOLXKBDCALLSVIOCALLS Skipping KBD/VIO... Attempting load of %s from %s unhandled NRRENT relocation unhandled or unknown relocation 0123456789ABCDEFINSTANCED ALLOCATION: %s - LA %lX - %lX Bytes - retcode %X SHARED ALLOCATION: %s - LA %lX - %lX Bytes PRIVATE ALLOCATION: LA %lX - %lX Bytes internal LINEXE object limit reached DEMAND LOAD: %lX => %s Obj %d Page %d LFA %lX DOS4GOLXInfoBlockTIBInfoBlockPIBD16SelsD16InfoD16Psp%s.%s = %lX LINEXE_PIBLINEXEVMM4GLocking %lX - %lX Bytes - retcode %d exiting in locked region [%d] DVX_Process_ManagerDVX_Global_Seg_AssociateDVX_Global_Seg_AllocDVX_Global_Seg_BroadcastDVX_Dos4gx_Get_OptionVMM4GVMALOCINSTVSUPERRESIZEVSUPERFREED32_KERNELDOS4G_GETENVDOS4G_GET_APPPATH0123456789ABCDEFDOS4G_GETENVD32_KERNELverboseverbskipinitskipsymnoclosenoignoreDVX_HOME_DIRDVX_Process_Managerdll\msclibpathsegexedll\os2_20libpath32linexe.PATHCOMSPECDOS4GLOADERDOS4GLOADER.dll.exe.comChecking for %s%s%s Searching LIBPATH32=%s for %s%s Searching LIBPATH=%s for %s%s .Searching COMSPEC=%s for %s%s Found '%s' NOT Found :: %s .sym merges ; comp ms; goERROUTERRPRINTERRDIVERT (08@Pp_C_FILE_INFO=/ ((((( H   <>R6000 - stack overflow R6003 - integer divide by 0 R6009 - not enough space for environment run-time error R6002 - floating-point support not loaded R6001 - null pointer assignment ! R } 6in,4L"\$$9AI1KV,YjYYZ\\\+]P]k]] ^"^[^^^_R_p__M`l`w````Yaaaaa b,bKbjbbbbbc2cRc|d*elfgEg5hijkl2lmoopFrNrVr^rfrtt#uauuu>vhvvvwwwwwy:z|F|||^}~J~n~~Px(jDڂ>䅀C &,4 fjn-`prtvxz|~BW":EINT31W.EXP7 ?requires DOS/16M $0!<s3P˿6TV66gP6g P6g6g6&P6t  +3 3hjjjjjP.ظ6RP 6> uXP6 PR!&&UjVWU^7wwWw ^3tFO.O3tY[X]S^ FX%G OWw G^YOXYtn_^X]UPvv v vv?]Uvvv v vvj!]̸5!` b %! .t &6, 36 sX6 ڻ6 t &,>3&=t4 R t 3u!} ,Ar ,Ar ª} D!r €t} @Ky U3UUVWUVWQ u x> u c Zz tX Pu ~uFX uFL!_^]ˋ  ` %!> t   %!;s EtUPB> t P/]UVWV ;t@t 3_^]UWv t 3I> u @!_]UV  FV tnF Ftfvv^&G& tJ&w&7j;~1^&&8=u%VvvSa u^&&W@ F+^]UVW UVW2҈Vv&< t< w< r<+t<-uN&N t$v <0u& u uŒ,A<ۀ AAۀ A:t^_]UW~3AيF O&8t3Njnj_]Uv ^ t-&'C:t,A<ɀ A,A<ɀ A:t]UWVN'~3ˋv D3&:EwtIIы^_]UWV~v ߋN t2Ì^_]U^ ,A<saC uڎ]U^ ,a<sAC uڎ]U~3I]U׋v ؎3~ǨtI]U׋~3u~ +؎FFtI]UVW~ 3It++hh'[[FV uhvPH&hvv/&hvv& t t uohU'[[FV uThvP%FV t ^ t-h#vv% ujjjN$ &&& u ff1 t +FV tCFFFFFh9vv %FV tcFPj1^ tOHhhh j uFhh j  u">%؃~u;>t4hG%[[V t"hRvPV$FV t6^[ t66j6 t66j US^&(  f`ffSFfaF[]fRATIONAL DOS/4Gg} gM,D..d gfugugM,f>S fgfP gfEgEge,ffaf.. &gfs&gsf>S g^fP &fG &G&gfs:&gC:hh.hhh&h 5$[[FV thvP" u h1[hvv"FVmUt+vvvvv v vvF FVFPv vvj66F+FFv[F FVFPv vvj66iF+FFFF FVFPv vvj660F+FFFF FVFPvvjj66F+FFFu+ˍF FVFPvvjj66F+FFFUvv؎ &8 +ێ&GG%؃>.u&h(-"[[ u  t...WV؋FF u> tFعP&@WV^31ًʸ1^_ЉFF^_UvvUWV+j]v[[ tW@[^_Uvv t vv'WVFvv%[[FVvvv[[@FFVW^Nv~1_^^_WVF t~vN^ 1ЉFF^_ v v[[FVRPvv[[+FVRPUv v vvhV/ [[FV tbhjvPhvv68hvvr:<hvvY24h[[FV tIhvP- hvv"$hvv&(hZ[[FV t0hvP*,hvv.0 F~tHF VFVF~?}&^􈇶 FF^&?u^Ƈ h hF F |>v vP;Fu+F~t vvv vjF $V؋FVFV^ ^F&?t&:u&‹&FV@@F!FFA^&&؉^ tF, ^&,@FF^&:GF^&?\u^F&\F؋vGV!vv tkF^&\GFFVFVF܉VF^&?.u>^&?\uFN-&?.u'F^&?\un ;^w+"N^&?\u^&vF& u^vvFVFVN^& FV@-:t-"tF9FwًVjvvRPv v K j.v v  tj.v v w‹&#FVN ؃^F&F N u &ء, *uhh *,FPvv , *t FP*[[ FPr"F FtVj vvFPg FP[[v vFP] tNFPa[[v vFP: uj vv FP FP.[[FPvv v v v v FVRPhA uv v vvh* t^&v v vvh t^&v v vvh t^& v v vvh t^&v v vvh t^&OF FtFV+FF4 2tFPvvv v 2 FV &8 +ێ^F&GGu^&.&G+޿ VNF Ftshvv FV tXvvvP vv>[[vv FVFV^&?\t&?/t&?:t&FVN9Fr V4 2t1FPv v vv2 tF Ft vvJ uv v FV^&.&GF Ft2SvvT vv ^&x\uNS ^&@^hhFV tvvvP vvvvvv ^hh>hh hh>hh'h>h. h0FV t h>vP h5FV tCh>vPq h>FV t&F}^ ^&&GNF9Fs^&؎ &< FF<h=PvvhI uvvvvV vv@F^&?uFVC!rNF%=ȦV&? t&?udžZ\< t tZF^&Z\<;uۃZtZ[:t[\t Ƃ\\ZZƂ\\Pvv\Pv v \P3 tvv\Pvvb[[^&?;t&? uF^&?;t1^&*^V^&FFF F tW^ tGvvvv hdkvv vvv v t~t]FF^ tCvvh>hyh>vvv v> tFF^ tCvvh>hh>vvv v tEFF^ t#h>vvv v tFF^ t#hvvv vg tFF^ t#h>vvv v* t>>tfFF^ tLvvh>hh>vvv v tv vhv vvvDv vhA^h>vvh>‹&h> t"؀=\uƇ==:u h>h ȂV؍FP~ t  PFPv vFP]~B jvjjF~BPt~B;F~B F~BgF~BoD~BD~ u FP2 [[^FbFpF jvjjFP7F:jvjjFP!FPh FP [[^&&WFV uvvg[[FV^&&WF Ft*F Ft'vv vv^&&W u++FFFFv vvvFPFPVFVȲdžNvv vjbvPPhr=udPMuQFuRTFV PMuQZuPP4[[܀PBtQWuFtdžNFV ^ &&WN ^^F&G+ұ lFVF^&t&?MuF&G+FFVFVPvv v+FP~FV |vFPj@=@t~MZuOFVFVFP_[[FVvFV FVRPj%FV |^vFPj@-=@uL~LEuF~LXuF ~NEuF~uF FtFVFV+FFvvvjFV^ &&WFvv v vv uvv v vvFPv vvUvvv{UvvvUvUv vvvUv vvvUv vvvHUvv[[Uvvv vUvvv vUvvv vUvvvv v   Uvvv vUv vvv FF FFFF=FNQP tFF+FFFFFPh>B tF+FFF FFFF FFPFBP tFVFF FFFFFF FFPh? tFFF FFFFFF FFPh@e tF^F&^ F & uFVUjjvvojjv$ރFV؋F Ft^&?t&^F&^F&:FVFV t9^&?t0F&^F&^&?u&/t&\t ^F&\F V FV t&^&FF^&?uFVFV t1^&?t&?.t ^F&.^F&^F& t ^&Uvvv v v v [[WQ~N F F +HY_WQ~N F F +HY_WVQ~v NY^_VWQv ~NjN1;F u;v;sNOǨtIY_^WQ~F N Y_VWQS^~~ v NK[Y_^3T[;u%t[S[0t/5UX $~]tUFN]FN_^][[ZPh&68 &/,X3u3UFN]FN_^][[ZUPFFFFF FF FFF FF FX]UVWF^OWwOxQFO_ !S^GwWOG G_^]US^F FGSv[]UVWF^ wWwOYF^tfffff1S^ iUS^ FFGSvv[]VWQv ~NjN9;F ;;NOǨIY_^WQ~F N Y_FFFFvvFPh ːv ȃːWVؐ) tFFv jFPvj  62 FFF$FVFV^ڥ^&@F^_WVؐ t#FFv jFPvj r F22 FFF$FVFV^FV ڥF^_ː؍FPv u+ˋFFxjjFPhr ~@ː؃>2 ː؋FFjjFPj2 f*؋FH@F+FFPPFPhH tFFFVvvF |Fu+vjFPhI FvjFPj t FF +FFFVːFFFFF+FFPPFPj- tFFFVːFFFFFF F+FFvPFPj tFFFVː؋F H@FvjFPhJ F t-F t'FPvF HFFPv?F؋FFjjFPjB f*V؃>2 u2FjjFPj jjvvv" ^ː8 FF^&G&+G+ҹFjj&GP&?r}6 L PVء8 FF+^&_&@F t8Ft } ^&?}+^ː^&_F&@jj^&GP&w v t^^&_&@ FFFPv_ tF*ЋN^* FFVFV"+FFS u5FFFFF FF jjFPv FF[F tOFPvFFFFF HFދF* FFPv tFv FVv F+ұuFRP$UVv &<t&&8uFF ^&?u؎F&^ &8u^+^ːF^&G &WFVFFF^&9G ~)^&w&7v v o t^&G&WF&G&WFVFFF^&9G~^&w&7v v  t+UVء8 +ێ&GB&WD^&&W8 +FV&DB&TD^Vء8 +ێ&GB&WDFV;Fu.;Vu)v& &T&OB&WD+^&&WFV Ft*FV^&9u&9Wu&7&&TF&&W뼸^ːء8 +ێ&GB&WDFV Ft2^&w&wvv  t FVː^&&W+JF FFFVFjFPh t[~tFFF8 +ێ&GGt F܉FF F؉FF։FFFFȉFSSFPvE ː؍FPv uˊF* ؍FPv] uˊF*FF FFPv t؋FWVvvr%=t ^_ː~ tWvvn%ȃ^_؃>2 u)FjjFPjj u+ˋFFFF jjFPh Fː؃>2 u!FjjFPvjR +ːFFFjjFPh +؃>2 ujjFPjj FFFːV؁~sF Ftvv v~ u+^ː>2 u'FFF FjjFPvh ^ˡ> FFFj^F &^F&GV^V؁~sF Ftvv vR u+^ːFvjFPh@ >2 u'FFF FjjFPvh ^jP4 FFF^F &^F&GV#^vv vv v' ːvv vv va ː؁~r+˃>2 u)jjFPvh ^F&^F&> FFF^&^&^&G^&Gː؁~r+˃>2 u)jjFPvh ^F&^F&4 FFF^&^&^&G^&Gː̈̀MS Run-Time Library - Copyright (c) 1990, Microsoft CorpINITDEINITINT31D32_INT31pt ux | INT31DOS16PKGint31_call_16int31_creg_16int21_call_16D32_KERNELINITD32Int21HandlerDirectD32SetIntProcD32_KERNELD32CancelIntProcERROUTERRPRINTERRDIVERT$VMM4GLocking %lX - %lX Bytes - retcode %d DVX_Process_ManagerDVX_Global_Seg_AssociateDVX_Global_Seg_AllocDVX_Global_Seg_BroadcastDVX_Dos4gx_Get_OptionVMM4GVMALOCINSTVSUPERRESIZEVSUPERFREED32_KERNELDOS4G_GETENVDOS4G_GET_APPPATH0123456789ABCDEFDOS4G_GETENVD32_KERNELverboseverbskipinitskipsymnoclosenoignoreDVX_HOME_DIRDVX_Process_Managerdll\msclibpathsegexedll\os2_20libpath32linexe.PATHCOMSPECDOS4GLOADERDOS4GLOADER.dll.exe.comChecking for %s%s%s Searching LIBPATH32=%s for %s%s Searching LIBPATH=%s for %s%s .Searching COMSPEC=%s for %s%s Found '%s' NOT Found :: %s UZ_.sym merges ; comp ms; go (08@Pp_C_FILE_INFO= ((((( H <>R6000 - stack overflow R6003 - integer divide by 0 R6009 - not enough space for environment run-time error R6002 - floating-point support not loaded R6001 - null pointer assignment |!     " $ & * , . 0 2 4 8 z  B ~ & "45s%Q:dT-e ""##:#Y#x#####$@$`$$$'%t%%&.&O&w&g'(**+++,F,\,,,-P---L.{.///0 111|22p333D444755666R777 2 4 6 8 : < > @ D L P BWcwhLWVMM.EXPOu v!"WVFFpFp~ڥ¥&њd?^ &w"&w &wLvvhb>Lt^N& PN&GFVN&G&W^ &G &W"6N&D&T^ &GLN&G 6UP6N6Nj FVĊ*؉FV4F=u0vvh1&vЎ~򥥥F^_PvvFV-RP6zN6xN@FVRPvvvF t0vvh0&vЎ~򥥥F^_^ &GPFV‹&O&G&W**ЋFV&G@t^ &G8&W:-FV^ &G8+-FVj FPRsrw-RP6zN6xN@FVFމVFuUF=uvvh/vvvsvvvv\ tvvhs/fh&<vЎ~򥥥+^_^_ː WVFFFF+;Nw.r;Ns&N&$6Nfvvv^6N+&@&F^_^_ːZF=u0FPFF t .F WVF~u_P6N&&PFVN6P&рကt>N&A& tuv tP 8HP뜐F+^_^_ː VFF+;:vr ;8r6N&&PFVȋ uNv& tlPQ6zN6xN<FVF t.fRvFV-RP6zN6xN< N&Nv&t&2Ȁ&0F@^ WV؋^6N&&PFV6N&&PFV>LtPN&!PN&GFVԊ*N&G&W6UP6N6NjgFV-RP66:FWV6zN6xN;RPj^vvjvv t6PWV66^; 댐vv^_؃>LtPN&"PN&GFVԊ*N&G&W6UP6N6NjFV-RP669Fv v jvvjvv+Vء8HFN~|)^6N&@& t6N&@& uF^θ^^ːWV؋FVԊ*҉FVFV-FVRP6zN6xN:FV^ 6NF~&&PԊ*ҋȋ3F+33NvNNVvWv6zN6xN9 6FV*N&&Pv N&^_UVNv&t&2Ȁ&0^&N& ^VNv&t#&$F2$&0~uN& ^ːVFFF+;Nw6r;Ns.FV^6N&9u&9Pu6N+&@&^^WV؋FV-RP6zN6xNz8FVfFVԊ*҉FVvvWV6zN6xNc8 >t fF8^_ːl5^_hrhzj{Fhh t &>.uF~t=th6zFv[{ː0FF؀FhhhFPh uhvڐh t2hh袛&>.u+%ɏ>t6 t> tY>t5hh Lgh 5h ihh fhh gh h f>Pu tvv֐+v tː >LtI>>tr tːSJSP3-P/PX tːhk+ːhhdJyqFVFhJF‰FFlJFFF`JFFPvhhKj uKvvhhUKj u2vvhhKj uvvhhKj tFFFjj.6bJ.6`Jj jj.6fJ.6dJj{ jj.6jJ.6hJjd jj.6nJ.6lJjM FF1DFHJ thJ$ː+FV^ N!sFN^F F tFV^ &&WFF&>/|&PF<"<|&J*ȊFː&QF<!<|&L*ȊF WVظpFVFV»r&p&P!PڥjhpFV Fuh@ė^_ː£OjhPv0>Pu)6K0&G&W6U.0^&G&Wvvv-F^&G&G$ &G&g&O+^_^_jho uhgjhR6//&G&W6641+ːhmha2tPHh<>LtP"h>tP66h蕃66hԕ66h4P Nt(6P6NhK裕6T6Rha菕>t hw|jhԊ*RPHdRPhCԊ*RPhh hːhtFV uhvPur tchvvTr tBh vv3r t!hvvrNN Nuhh gsFV uh+vPq t tːh0vvqNN Nuːh@vvoqNN NuːhNvvGq@B @uːR+FFFFFPjo^N &G&Wң+ːːVhkFV FuhV4^FFDF‰F%.FFF+ɉN^&&O&G&ON&O&G &G &G&O&G&G&G&O&GV&W &G"&G$&G&+&W*&W(&W.&W,&W2&W0&W6&W4+&W8&w:&W<&w>+&WB&W@&WF&WD&GH&WJV&WL&OP>&w`&wd&wf+^^ː،;Ft3FFF^&G$ &GFFF^&G$ &Gːؐ}*>Pu66,+V؃>Puhjb&&WĊ*Pjk‹؉^FFVĊ*؋&&P%FVR& u&sw &?u~@wbr^j&G+RP4k‹؉^FFVĊ*؋&&P%FVIjj@jj‹vFFV-@Ċ*؋؀&&P%FVwĊ*P&G+RPpj‹؉^FFVĊ*؋&&P%FVvvhFV^^V2t<  >Jt>t h ]>PuF^ t& $"FFF=rd btR>6b&&PА'P*F u@FP6N6Ng(FFF9NvD6N&&PԊ*҉FVȋ t jSQ 뱐d btcFF~sR^6b&t?j&PĊ*؊Ԋ*RP6rN6pNf6N6Nf66f>Lt 6UPӂ u3 t66' tj66 2t>  ^2WVjeFhepNrN pNuhhVve>LtjeNN NuLvJe NNP*F u@F PtFvNN Nuhh^_˃>Pu bdNNNNrh &G+RPfbd6N6NvNNFF~s^6b&&PP>R>ېNNĊ*؉FVFFFFFVFVF9FsYFVԊ*ҋȋ^6b&3+33&&x6b&6b&6b&댐#f*P6N6N{eNNVRP#PFFF9|9vjhԊ*RPoYRP t^_FFF9FwoeFV uhh^_ː^6N&3F+3F3V&&P6N&6N&6N&"FVjhjtdFVNNhhF+RPhRvƋ׊Ԋ*RPWhv% WhԊ*҉FVRPHXO"NP# ׊Ԋ*RP t ^_ːWhht6hCP ף Ԋ*NN+FFFVFV9rbw9 vZjRP66 $ jvv6N6N# jjvv6zN6xN-$ jjvv6N6N$ 늡 Ċ*؉F t@FF@xNzNFVF@ FށFVF9FvZvvXԊ*ҋ^6b&+ &&P6b&6b&6b&뒐 Ԋ*ң$?أ- hj@ja+^_^_ːVؐF=u+^ːP^6N&&P6N&&P6N&&PԊ*^^UV؋FVĊ*؋؀6N&&PĊ*^^ ؋F^^F&GF &GF *&GF &F&GF&G.VFFVԊ*҉FVFP~^NN Nuhh^ːFVRP6N6NyFP*^NN Nu몋FVRP6N6N9v]NN NumvvR6N+PN&&W҉FVȋڊĊ*؉F҉VjSQ3_FVF~u ~u*~|!FVFVvvFV ujjFPRًV^"$N N쉏&RPvvh@ F FցFVF֙;V~|;Fr t.vvhĊ*؉F҉V%FVĊ*؉F҉Vԋ^6N&&PFN_FV)FVF^+$"N8+^^V؀>u^&jj66QFFh#N~}^ F u&NȉNFFINNF9FwE9Fv>N&$u^ː&hFFN9Fs^6N&@& uޡN+FF^ tF~u~rFFv FV un~sFڋV^"$F F&8F FFVF9Fw t/vvĊ*؉FV&FVĊ*؉FV^6N&&PF8iF)FF^+$"h&^ː6VFFĊ*؉FVĊ*؉FN t@FFPv FΉVRPsYFVFVRPvvjF΋VЉF։Vh66 YFʉV̉FVhRPFVĊ*؉Ft@F+FԉF FVF+;Vr7w;Fr0^&3Fր3F3V&&W&&'FFV+F؉F։FԉFFVĊ*;Vrdw;Fv]F֋V؊Ԋ*ҋȋڋvvFvF&3+33& &\^&FFVpFʋV^^hhqUP }h j.rUP } hːȀVFh VIF^F^FPvvF t6FFvBtF됀z@uBPh@aqF뱃~h h@JqF~vjPFP uFPrB~!uЍFFVF^&?t&t吋F‰FVF^&?t(&Șu=t#tt&/ F^&?t&Șu =t#uِFV9Fu 9Vu)F ^ rFPvv 8o t Nyɋ^ ^㋇ F^^&?t0&u#^FtF, F^F&^&Qvvq^㋟ W5^㋟ &^㋟  tHtHtHtHua;vDFPvvF u+FFFVF^&?t&t吋F‰FVF^&?t&Șu#tF^&?t&Șu#uދFV9Fu 9VuRF ^ wpFPvv m t Nyˋ^ 7^㋇ F^FPvvFFF~})FPp tFPvvFϐFFV^&?t0&u#^FtF, F^F&^&FPvvAFFF~})FPno tFPvv FϐFFVP_o^㋟ W6^㋟ (^㋟  tHtHugHtHu>t2 t!QĘ;|;v^ˡ9|9vĊ*؉FV |=s FF9V|9Fs Pjj66F ңNN ӣNN ӣxNzNt%xNzN xNzN|N~NĊ*أP|Nt@PjhԊ*RPEP+^^ːF^&F<,t. t*< t&<#t"t, F^ F &FF&?,t &? t&?#u ^ &F^ F &Fː+FFFFPh1R uˋFFFFː؎&>. uː+ WV؋F@Ԋ*-FVRPFV u+^_ˋVFV*F+RPvvF*WPFV*RPv~FV^_^_ːU؋F Ԋ*RPFVRPː+FFFV~wrːhMːU؋F+PQMː؍FFVFP^7wjh xs+FFFv vvjjHu ^&? t&?tF F9FFΐ^&FUش4!K, . j 6. 6, )O, . DFF, &9GtːPK, &GF=u0 v-ːU؀>0 t , &GːQ!ːU؀>0 tF, &G˴P^! V؋FVFVh: >shj@jMNNhj@jM6 8  e P NtNPԊ*҉FVh hqgJ }h jgJ }h h^jjjP<FV;V| ;Fv6Jh<h @닋FV9Vs|9Fslj-RP6JS< |jj6J<=}-6J<JvvhO^6J;* jJLN Lu)6J;Jh h^ː6 6J&L&GL+&G&6 6J&FFF9* vXh heJjjjPW;6 6J&vL&@L+&@&6 6J&jhvv?NNjhvv?<>hE p+^^Vء4 2 u^ 6 &GFFFF9* v"L&@6 &GjeӐF6 &G^ː8WVFFVԊ*RP~tvv3 FFV΀RP F=uUFjP6N6Na F҉Vԃ~uvvvhX o >pN6NffFV-RP6zN6xN FΉVF@uFҋV*;Fu;Vu &F+ҊԊ*RPF6L&9u&9xtWPv> tjjh=hj n6rN6pNvm=u tjjhF+ҊԊ*ҋ^6L&&P&FVNՀ3F3V*1F1Vhr `nNՀhz Mnvvjv6N6N vh %nvvvh  n FҋV*;Fu;Vt>N3fh m&/F+ҊԊ*RPtF6L&9u&9xtWPv tjjh6rN6pNvY=u tjjhF+ҊԊ*ҋ^6L&&P&>N6pNffvvjv6N6N vh lFV-RP6zN6xN-FΉVЀfοRvWV6zN6xN< >Lt1N&1PN&GFN&G6UP6N6NjIbvh El+^_^_ WVFFFFF9* vT؋6LNV&+&PNV uF*~u tV9Vrw9Fv NNFV롐~uP~uJFFFF9* v2^6L&&P؋&9P| &9vF‹FV^6L&&PF^_^_ː؋FN^F&GF^&GF &G؋F^^F&GF &GF &GV6 &GFvÌL&P&Wv vjYFF6 &GF^^ːV6 &GFvÌL&P&Whv vj8FVF6 &GFV^^ːV6 &GFvÌL&P&Whv vjFVF6 &GFV^^ːFfjjF=tːFFF+;>w.r;<s&RP6N6NFVFuFːġP Nt  t뉐ːVءRT<>FV;Nrw;Nv+^,6 &GF6L&L&OjFVԊ*-RPj2 |jjj2=}F6 &G+^L+&G&PPPjM2FV<>F6 &G^^ː$F&vv~tCvv v h6rN6pNv h6rN6pN6N6Ne[ &h+PQB2 4 2 &G6+&G4RP68 Y64 62 ?SfR ڋ%ffZ[fP "fXf!UWQN F~2Y_] ffff%XXUfWfQfPf<f>NfFgf f<f+fHfXfYf_]UWQF N IF~Y_]SfRfPNf&fXffZ[˜SfRfPNf&  fXfZ3[fXffZ[ffҝUSfRfVfNf&fZ[] ffff%ffff%ffP f "fXfP f%"fXUfPfF"fX]Un]^UfWfS.f~f^eg_f[f_]PX @PXUQRZVZY]3USQR^VN B3ZY[]˴?U^VN & ]˴@XUfWfS.f~f^egf[f_]UfWfS.f~f^F egf[f_]UfWfS.f~f^F eg_f[f_]UfWfS.f~f^egffЋf[f_]UfWfS.f~f^fF egff[f_]UfWfQfN Ff~gfgfYf_]UfWfSF f~f^ ~ &gf~ &gf&gff[f_]UfWfSQF f~f^ N~ &gffC~ &gffCYf[f_]UfWfSfQF f~fN ff3fgf!fF ff+fHf&gf_fffffYf[f_]UfWfSfQF f~fV f^fN&gf fCf;vf&gfrfCf;fffYf[f_]`UhO&Eqظ&G3&O&]s&GO&]s3fO&]s&Eq33fd$ f\4fD8&ETDT&EPDPLLfD CEhO&fEh&EP;B$>@&fO&fEh&fE8f->@&O&EZ2ɀ> "&EZ&]sG&]qGX @P]XXaWOWfSfӎ.3& EZf f f;NfSfXff f>egegtؐJ yO&fEhf >@&fO2f&fE(&f]4&fM,&fU0&fu@&fm<&]T&m\&eX&UP&fe8&fu$&uL&uL&fu &uH&f}DfO&fEhf >@&fO2f&fE(&f]4&fM,&fU0&fu@&fm<&]T&m\&eX&UP&fe8&fu$&uL&uL&fu &}Zjj&uo&um&uH&f}DShPf&ffӎPf&[V^&G+&W$NFًʋË֊Ċ*؉Ft@FFPv=@F t2^&G(&G*FF+&G&GF&G$&G&^ˋF^&G&GF&G$&G&F&G&GF&G &G^ː ^&G&O NF&G$Ȋ*Ft@FFPvvv F t^&G(&G*ːF^&G&GF&G$&G&WV++FFFF6NNNNN&?u%G~u~uvF9~u +^_ FF+뺸^_^_ vsFV=u;uԊ*^&&WFV^&G&W&GFV=u;tLt%N&PN&GFVN&G&WFVĊ*؉FVFt FVrw^&G &G"&O,^ˍFPFFP=@F t6^&G &G"FF+&G&GF&G&G&O,=F^&G&GF&G&GF&G&G F&G&G&g,vvvh&V >LtKFVN&G&W^&G$&W&6N&D &T ^&G(N&G6UP6N6NjwL^ː^&W&ONVRQIF t^&G &G"&O,v^&g,ː ^&G&ONF&W+&OĊ*؉Ft@FFPvvvQ F t^&G &G"&O,ˋF^&G&GF&G&G&g,ːF^&G&WȋڊĊ*؉FVFt@F^&G& GuB&G*FFFFF;Fr"jv6N6N| t Fːː"WV^&G+&ONF&W&_^v=rw;Nr w;Nv^_vvËĊ*؉FVRPh/YT ~rw^&G %&G"&O,^_ːFV-Ċ*؉F+FF FVFF+;Vsw;FwFȋƒFVSQ6N6NA uoWV6zN6xN)FVFtvvFN&t&聯F=u#hGbS^&G &"&O,^_Wv6zN6xNFVFu(vvv8vvvv vv*FPNNĊ*RP糃vvvֳNN%RPtFVԊ*RP6|>6Nf^6N+&@&vV^&g,^_ː1^&g,^_ːV^&G+&ONF&W+&wvV=rw;Nr!w;Nv^&G %&G"&O,^ːFVV-Ċ*FVvvȋڋFV-Ċ*FV+ڃSQhU8Q FVFV9Vr#w9FrRPD F=t PG^&g,^+FFFFFFFFFFFVNN9Vwzr9Fssvv6N6N uFVF Fu FVFV9FV9Vrw9FvFVFVFVFV+FFFFsFV9Vrw9Fv FVFVԊ*WV+FFFFFFFFF+;Nw\r;NsTRP6N6N- u*F~u ~uv~F9Fu FV^_FFF뗐^_^_؋F+;|;vːP NtCF+++;>|;<r uːvFV=u;uԊ*^&&WFV^&G&G&GF=t_jv&w&7P*QP F+))9}+F)9}++ːFvvFF=tmFFjP6N6NY+;Fu ;VuFؐvvF+jvPhoM +˸#ːWV+FFvv>FF=uMԊ*^ &&WFF +;Nrw;Nv^_ˋFFRP6N6Nq+;Fu ;VuFِF 9Fv*+FPNN Q+6+^_FFFFjP6N6N uF F9Fu֋F 9Ftj+FPȋF+ҊԊ*^ &&WRPP*Pv +)6)69}+F +F+)9}++^_ː+F+;|;v ^_ːP NtGF +F+++;>|;<rv u^_v uF=ucԊ*҉FV^ &&WFFF9FrFF+RP6N6NPF+RP6N6NFVI WV66_Pvv66$ WV6zN6xN9FVRPvv6zN6xNJ WWV6N6N WWV66 Fte~FF+;NwPr;NsHFVĊ*؋^6N&9u&9PuF6N&&@QFFWPF=t;+RP6N6NfFV3F*1F1VvvWV6N6Nl fFFFfvvFFjP6zN6xN9 UjF +FPȋF+ҊԊ*FVRPP*Pv +)6)69}+F +F+)9}++ #^_ːFF~s^ uF޸ːWV؋F V Ċ*؉FFFFF9FsjvF+RP6N6N vWV66 fF+҉FVn2%1F1VvvWV6zN6xN 뉐^_ːWVFFFF9Fwjv6zN6xNHFVFt"Ċ*RPfFFFfjF+RP6N6N WWV66 WVfF=uWVRF=t!FFvvjP6N6N ^_ːFF~ds^* uFːܰ +FFF~sR^㋇ F=t?FF~s/NFu!F^ FFFː뤸ː؊F%FȸЉF^^! ː+FFNN9Vw0r9Fs)vv6N6Nd;FuF˃FVĸːF*@t!FVF V F ؋F V Ċ*؉FF t@FFVĊ*؉FjP6N6N߃FFFFFF9F~F*Pjv66> אFVVFFF+;Nw,r;Ns$FV^6N&9u &9PuF^+^^(WV+FډFF^&G&Oы؉V^ӊĊ*؉Ft@F^&G&ONމF6b&t'^F=u+^&G&W&G&W&O,N&6N&&@6N&&PԊ*ҋȋ6b&3+33&&b&b&b&b&6N&3&3&3N&&WN&N&N&hhhjhFVRPۃvv8J&6N&3+Ҏ&3&3N&&WN&N&N&fhhjFV~t^v&t3FډFF=r#+^&G&W&G&W&O,^_ːFFF9FsCFF=r"+^&G&W&G&W&O,^_ˋ^^v&t벋FF tFO~u"+^&G&W&G&W&O,^_ˋF++ƒԊ*҉FVĊ*؀FFދVĊ*؉FVFF܃~s^u~u"+^&G&W&G&W&O,^_ˋF^F≇FFFFVF9Fr~s^v&$<u"+^&G&W&G&W&O,^_ˋFVԊ*ҋȋ^&&3+33&&x&fvvF^&G&GF&G&G&g,^_ːWV^&G&ONF6b&uF&G %&G"&O,^_=r w=r w tF&G %&G"&O,^_ːVĊ*؀FFF~rF^9tu6b&>N&3+Ҏ&3&36N&&T6N& 6N& 6N& hhjRFVFNF~t"^v& &&&@& vv^LJ~u^&G %&G"&O,^_ː^&g,^_ːrequires DOS/16M $0!<s3P˿666gP6g P6g6g6&6NP+3ѐ3H6o6m6kWP.Miظ6mP6>uXP6P!&li&PiUjVWUӎۋ^7wwWw ^ 3tFO.Pii3tY[X]Sӎۋ^ FX%G OWw G^ YOXYt_^X]UPv vv>]Uv vvj!']UFV^ +F Ӌ]UVȎغj$%!3]UWVRQSP.Miۉ&UVWP !X_^]ώҋUVWP&[YZ^_]UFU3N&68r б2㋗s[YZ^_]&SPܡ6 GX6G6_[U~t~t HVW^ 3!F 6F)!)!U>P}!.\k.&Zk.5.6^ku.6`k.bk~t32P !XvVK!PP0!<X[}!.\k.&Zk..bk.6`ku.6^k5v]_^rM!25!:<%i!.N&6,36sB 6ڻ6N&,>3&=t4 ,t 3u!W,Ar ,Ar ªWD!r €tW@KyU3UUVWUVWQ ux>ucZ[ tX Pu ~uFX uFL!_^]ˋ:%!>xt yz%!;s EtUPR>t~P?]ˏ0!P<t)N&,s33uGG>qыѿN< t< t< to tkGN< t< t< t\ tX<"t$<\tB3A<\t<"tӋѨuN< t+ t'<"t<\tB3A<\t<"tۋѨu>kGB+ģm6?CC6q u6N3< t< t< t| tx6?CCN< t< t< tb t^<"t'<\t3A<\t<"t\Ѱ\s"N< t. t*<"t<\t3A<\t<"t\ٰ\s"3.UN&,333 t&>tFu@$F 2 P, oϋ3_I&6;,uQVW,_^Yt&?CC u&]UVWV;t@t 3_^]UWv t 3I>u@!_]r3]sPX2]s]2ˢS u">Pr <"s < r<vטHÊU^;Ur >!rƇWU^;Ur *F tH~ t3ɋѸB!rKF uFV y(6VFѸB!FV y NVB!؋VN F B!rW%U^;Ur >uW t B3ɋ!rWtpV3FFWVfN : uL`=vFܺ=(s+ԋN < t ;t#k ;u F ^__PSQ+Q^@!Yr F;wY[Xß~us W@t ^?u F+Ff^_N u V@!s uW@t ڀ?uU׋ތ؎~3u~+FtI]U׋ދv؎3ы~ǨtI]UWV6o tJ~tDv 04;~ 9=uWvS u@ FF<u+^_]ːzUVW~]MUu} !W~]MUuE r3 u _^]UVW~3I:IN~3I+Vv%vuыߋNuGF3_^]UVW UVW2҈Vv< t< w< r<+t<-uNN t$v <0u u uŒ,A<ۀ AAۀ A:t^_]UW~3AيF O&8t3Njnj_]Uv ^ t-&'C:t,A<ɀ A,A<ɀ A:t]UWVN'~3ˋv D3&:EwtIIы^_]UWV~v ߋN t2Ì^_]U^ ,A<saC uڎ]U^ ,a<sAC uڎ]U~3I]U׋v ؎3~ǨtI]U׋~3u~ +؎FFtI]UVW~ 3Iː؃>u)FjjFPjj* u+ˋFFFF jjFPh Fː؃>u!FjjFPvj +ːFFFjjFPhH +؃>ujjFPjju FFFːFFFFvvFPh ːFvjFPj t FF +FFFVːFFFFF+FFPPFPja tFFFVːFFFFFF F+FFvPFPj tFFFVː؋F H@FvjFPhJ F t-F t'FPvpF HFFPvF W+FFvvPv gFV u=v+_ˋ Ft u~ v F HF t4 u~v'jv jjpFV FVFHFFFPPS[[~uFFFFVFVFV~u~vFF +N ~+ۋNع^F +)FVF FuFV_FIFFFFPFPPuh[[FV tbhvPTh5vv;hJvv"hcvv hyv[[FV tIhvPhvvhvvh[[FV t0hvPhvvf F~tGF VFVF~?}&^􈇐FF^&?u^Ƈhh( F F |>v vP;Fu+F~t vy vv vj F $V؋FVFV^ ^F&?t&:u&‹&FV@@F!FFA^&&؉^tF, ^&,@FF^&:GF^&?\u^F&\F؋vGV!vv tkF^&\GFFVFVF܉VF^&?.u>^&?\uFN-&?.u'F^&?\un ;^w+"N^&?\u^&vF& u^vvOFVFVN^& FV@-:t-"tF9FwًVjvvRPv v  j.v v R tj.v v >‹&#FVN ؃4^F&F N u &ء uhQhDeFPvv t FP[[ FP["F FtVj vvFP. FPo[[v vFP tNFP([[v vFPw uj vv FP FP[[FPvv v v v v FVRPh\A uv v vvhd* t^&v v vvhi t^&v v vvhr t^& v v vvhz t^&v v vvh t^&OF FtFV+FF tFPvvv v  FV+ێ^F&GGu^&.&G+޿ VNF FtshvvFV tXvvvPSvv[[vvFVFV^&?\t&?/t&?:t&FVN9Fr V t1FPv v vv tF Ft vv uv v FV^&.&GF Ft2SvvvvP^&x\uNS?^&@^hh! FV tvvvPM vvvvvv^hhhhhhhhhhhFV t hvPhFV tChvPh FV t&F/^ ^&&GNF9Fs^&ءFF<hPvvh uvvvvvv@F^&?uFVC!rNF%=ȦV&? t&?udžZ\< t tZF^&Z\<;uۃZtZ[:t[\t Ƃ\\ZZƂ\\Pvv>\Pv v /\P3 tvv\P4vv3[[^&?;t&? uF^&?;t1^&*^V^&FFF F tM^ヿtAvvvv hvv vvv v t~tSFF^ヿt=vvhh+hvvv vR tyFF^ヿt=vvhhLWhvvv v t&FF^ヿt hvvv v tFF^ヿt hkvvv v tFF^ヿt hvvv v] t>t\FF^ヿtFvvhhm[hvvv v tv vhv vvv v vh^hvv h‹&hE t"؀\uƇ:u hh: ȂV؍FP~ tP4 FPv v FP ~B jvjjF~BPt~B;F~B F~BgF~BoD~BD~2 u FPB[[^FbFpF jvjjFP~F:jvjjFPhFPh` FP[[WQ~N F F +HY_WQ~N F F +HY_WVQ~v NY^_VWQv ~NjN1;F u;v;sNOǨtIY_^WQ~F N Y_VWQS^~~ v NK[Y_^fffffffF tffffF tfffFF FFFF=FNQP# tFF+FFFFFPh> tF+FFF FFFF FFPFBPU tFVFF FFFFFF FFPh?  tFFF FFFFFF FFPh@ tF^F&^ F & uFVUjjvvjjvփFV؋F Ft^&?t&^F&^F&:FVFV t9^&?t0F&^F&^&?u&/t&\t ^F&\F V FV t&^&FF^&?uFVFV t1^&?t&?.t ^F&.^F&^F& t ^&Uvvv v Tڃv v  [[ء+ێ&GG%؃>u&h[[ u ) tWV؋FF u> tFعP&@WV^31ًʸ1^_ЉFF^_UvvUWV+j[vv[[ tW[^_Uvv t vv'WVFvv[[FVvv[[@FFVW^Nv~1_^^_WVF t~vN^ 1ЉFF^_ v vs[[FVRPvv^[[+FVRPUv v vv^&&WFV uvv[[FV^&&WF Ft*F Ft'vv vv(^&&W u++FFFFv vvvFPFPVFVȲdžNvv vjTvPPhe=ubPMuQFuRTFV PMuQZu PP3[ހPBtQWuFtdžNFV ^ &&WN^^G+ұ ԉFVF^t?MuFG+FFVFVPvv v+FPzFV |vFPj@=@t~MZuLFVFVFPh[FVvFV FVRPj$FV |]vFPj@-=@uL~LEuF~LXuF ~NEuF~uF FtFVFV+FFvvvjFV^ &&WFvv v vv uvv v vvFPv vvUvvvUvvvUvUv vvv;Uv vvviUv vvvUvv{[[Uvvv vԃUvvv vPԃUvvv v"ӃUvvvv v I҃  Uvvv vcԃUv vvvWhhB"hh^hk[[FV thvPރ u h[hvvރFVoU3t+vvvvv v vvF FVFPv vvj66F+FFv[F FVFPv vvj66iF+FFFF FVFPv vvj660F+FFFF FVFPvvjj66F+FFF2u+ˍF FVFPvvjj66F+FFFUvvcan't connect to extender kernel option "%s" unrecognized not enough DOS memory not enough disk space for swapping - %ld bytes required can't create swap file "%s" not enough memory for %s can't create process can't get instance memory can't get global memory can't instance swap file swap out error [%lx] swap in error [%lx] fault on invalid page [%lx] can't open trace file recursive page fault [%lx] page table corrupt critical section fault can't free page [%lx] can't connect to process manager can't hook int 31h can't join family can't manifest shared segments page fault on not-present mapped page page fault on uncommitted page missing page at swap-out missing scratch page at swap-out swap I/O error [%s: inst %d code %x fat_indx %lx page %lx] bad swap-in index [page %lx index %lx EOF %lx general protection fault recursive internal fault multiple internal faults page fault during a hardware interrupt [pf:%lx at %x:%x ] " < S  ' = R o        . N u     < V p  @INITVMM4GDOS4G VMM secondary initialization starting gFlDOS4GVMDOS4GVERBverbVMMDOS4G VMM initialization starting \.swp\DOS4GVM.SWPDOS4G VMM initialization complete mVMM@ @unable to allocate TSS for fault task unable to allocate TSS for base task VMM Configuration Parameters VERBOSE = on off TRACE = on off DELETESWAP = on off VIRTUALSIZE = %ld MAXMEM = %d MINMEM = %d SWAPMIN = %d SWAPINC = %d 80486 detected Actual Values Actual Physical = %ld Swap Size = %ld Swap file name = %s DOS16PKGint21_call_16int21_creg_16bdos_4B_flgcp_entryD32_KERNELINITD32SetFaultProcD32SetIntProccurtaskunable to allocate stack for fault task page bufferwork areawork tablesphysical memory table Allocated %ld pages @%lx {Spawn release .. } {Recover mem .. } ./vmm.trc./vmm.trcMINMEMMAXMEMPHYSMEMVIRTUALSIZERESERVEMEMSWAPNAMESWAPINCSWAPMINDELETESWAPVERBOSEFREE_EXTENDEDTRACEINFODOS4GVMvm.vmc   & 2 = F N V a i w }  RNL>VMMswap_init Swap file created {swo#%lx findx:%x write write not dirty %x{swi#%lx findx:%x zero fill read %x handle:%x}-pmapping] -unmapp] %x @%lx Lock: %lu pages @%lx no lock_pages Unlock: %lu pages @%lx %x @%lx m (08@PpTDVX_Process_ManagerDVX_Global_Seg_AssociateDVX_Global_Seg_AllocDVX_Global_Seg_BroadcastDVX_Dos4gx_Get_OptionVMM4GVMALOCINSTVSUPERRESIZEVSUPERFREED32_KERNELDOS4G_GETENVDOS4G_GET_APPPATH0123456789ABCDEFDOS4G_GETENVD32_KERNELverboseverbskipinitskipsymnoclosenoignoreDVX_HOME_DIRDVX_Process_Managerdll\msclibpathsegexedll\os2_20libpath32linexe.PATHCOMSPECDOS4GLOADERDOS4GLOADER.dll.exe.comChecking for %s%s%s Searching LIBPATH32=%s for %s%s Searching LIBPATH=%s for %s%s .Searching COMSPEC=%s for %s%s Found '%s' NOT Found :: %s  .sym merges ; comp ms; goERROUTERRPRINTERRDIVERTVMM4GLocking %lX - %lX Bytes - retcode %d _C_FILE_INFO=u   ((((( H Q iii <>R6000 - stack overflow R6003 - integer divide by 0 R6009 - not enough space for environment run-time error R6002 - floating-point support not loaded 8  ] @ r x } 2 .w=%* z u#%Q'^))/n00011112T222)3O3y3 6|6:;; 0?DDFGGGlHHIdKKKK8LLM~MNN\PPXQQTUV~WXfY],^^_```aZa b`bfhMiksz}}}}}}}}}}}}}}}}~v~.P~=@"F5ƅ((v҇D܈։B̊ƌߏzNjΘ(ԙr9Μ@ayZs؟.h ;ͣ!@[}$)H0@<sBWoX㍀DMDOS4GW.EXPoG _(!MIEA=951-) % !      !"#$%&'()*+,-./0123}4y5u6q7m8i9e:a;]Q?M@IAEBAC=D9E5F1G-H)I%J!KLMNO P QRSTUVWXYZ[\]^_`abcdefghijklmnopqrs}tyuuvqwmxiyeza{]|Y}U~QMIEA=951-)%!  }yuqmiea]YUQMIEA=951-)%!  }yuqmiea]YUQ     ysmga[UOIC=71+%jIjBfvfB N f&J ގf&F f6J gfvgfvgfv gfvPf`gfg^gvЎ6B f.*gE,gfugfUf.B U:듇fUfUffPffrfgEgEgfEfXf]fVP;f6B t;u ;r fLXp1v6B f6B fDDfD(f\fL$fT f| flDdl T[fD.fD2fD6fD:fČffrfېfD.*D,ǀ fJ fDN Dې؎f>p "p &p P D6R fD2fT fVPfDf|f:fffgfggffB gE7tfaffϐf`Ў؎fffrfgffffff츐gf}>gEBg]$.  &N &f>J &8f$frfۀ  ff;g]BۣN f>J f>F f>B fgfE.gfgfE2gfGgE6gGgfE:gfG fg]$ggM6f+gfE2ge;gf}>faf*B &fGgfE &fgfMf_f^f]fZf[fېf`fffrfg]Bgf}>f gfE2gfgE6gGgfE:gfGg]$1gM6gfU2gE;fgfgOgM6gE2gE4gf}>ge;faffˇېfv|,Bf\:f+Ɍf+Һ EtfSfQfRSQRfSf]f fSfQtttt fD(f\fL$fT flf| ftfχېfVfUffgfmfvDdl f\fL$fT f| fD( &|,1fjjhq  f/f[ fSf[D;$ f\:DfDfDf3]f- %fB fF Ɏَ!3vVY ^XF rf+Һ 1+]fUffPffrfg;EfXf]ge f]fW^ P1sBMfE~ù (G?7 1u>%u% fX@1+PX_]ff^fVN 1ff^f+Һ 1fVfWfSf^fvNUfVfWfSf^f s9v&t&f4S[r &fE&E&Eff3f[f_f^]fVfWfSf^fwۃ~tf sϷv jv 뗇VWf~fvې؎$&$&]\8<Wt,'[D8[&fU&fEffrVSf: QیfQfVfSfQf@ fQffRfPfffftfh_^]>"&?&=&Ã& " S([ & W*_fVfWfSۋF?<6$&T &U>"&&8E&U& f[f_f^fR3fRfVf6B fDDfD fD(f\fL$f| flDdl fff;t;tff-ݎfRfVD8P*f6B Ztft t:ttt fD(f\fL$flf| ftft 6gBfZf6gB fZfvUD:P"S$^P&w&wtttt fD(f\fL$fT flf| ftϜfVf6B fDDfD(f\fL$fT f| flDdl X\: D:f3]fvfUfL:fQffPffP$^fQj&w&fwtttt fD(f\fL$fT flf| ftffffVގf6B fDDfD(f\fL$fT f| flDdl fX\: fD:f3f]fFff%fxV4fgE#fxV4fgEfPfF fB fXWVj>vvh$ {i h$ >^_WVh^(vvZh^(ɇF=u F ^_WVظd ^_WVFFFFF 9F|5vv^v0`Z^v0ZFF^&F ^F&^&^_WV^_ȢWVƆ^FP6(ZRP`PvYRP苃FP`P@Z u  ^_WV蠕=u %FFhvvh(g ^_WVf=u %FFhh(vvg ^_WVFFFh wh p'&G$FhhIU=uFPU=t h h>hhυ(>(t( ##h!=u !p h)V h/wW h6nY h?e[ hB\=ta%+ێ&GG@tPjjqh h hHg !uh hWgh h]gjqhb=u jjq^71~|"^7/=u hihg=uh$g\ FPvv/FVbh@ 蓜 =t hhf6\ a=t hhf)".sH~u@=uh}fGj4=uhTf4jjh&R+FFvvh/fF~|vvh8he hd vvVFPvvvv 3 =uRPvvhTheFP^&w&wSghFPS=tRFhd  hd hgV t1hd hUV thd hCV t >[ tfFPh0e^ʉ=uRPFPhhdvvPPNQhz vvvv^΃=u@PNQEUF FuPRP^Phld FƣFV  ~ujvv6 a~t/6 6 6 =tvvhhc 6 6 Ib!uDvvhchz Oh6 h6~ h"6 h%6| |>>h(=uZj%+PQ;>j%RP(>j%RP>j %RP>j?.hz  ^_WVFPv~FfNNFvbFVvbFVFVĊPh@vvhGvvFuOTPF@uYcPvvhmb$~4t h~b^_WVFFFFFFFFFPv犃^_WVFFFFFPv躊^_WV>[ ugjFPvNV RQBg FFFFF9Fr&^?WtvhR u ^_WVjv\^_WVظ ^_WVظ ^_WVظ ^_WVظ ^_WVؐw^_ WV؃>uh#h`h9`ju<FF^ uE^hQOFV u ^hXd`j^hoO`R^_WV^_WV+FF%FF^&GH0FF~|^㉇ 0F0J0 FF"FFPj!hhOhhFPhNhhFPh nNhhFPh` ZN^_WVً=u~u~ u ~t0FFFFFFFFFPFPP ^_WV~ u~} ~/ /F5FFFFFPNQQ FV^_WV>Y t8v Y Pv vvh$z^F+PQK~ u F +PQ|K^_WVFF~|^j*;Ft ^_ȤWV^&G(&W*Ċ**F^*F^&w6=u FVF Fu FV>\u\FL^&G(L&G*FV ~ڹ^*XFPv~t~xtFF4Gff_>^ u~t~t,FĢff F V΃ffqFthFĢFFĈFFFFFPFPP ffF+ F V΀>uff F V FuFċV#F#V uoFFFċVƉFVvvvFFF+FƉFčFPvF9FtFFFęFVFĉVrFċV#F#V usFD0FċVƣ@0B0J06F0vvvF0F+FƉFčFPv F09FtD0FFę@0B0FĉVF09FuJ0F*FFFFċVƉFVv+=t!F9t+;Ft;VtFF~t FFF~u ~tvvvvMv\~tFPvX!=uv =us>%u\vhkAZvvvvvvvvFع&jv5 vhYFF9t+;Ft;Vu!F9tg+;FtZ;VtRjv'vrPvV~ rFPNPFP.FqvvvvF=uvvF~ r8vvvFPtF=uvFPF~uvPvFFFVFVFPvFF^6"&~ rCFPUPFP5FPv[FF^6"&~t~wvvvvgvFV u jv' >J0u9D0FFV#F#V‹N^#@0#B0 ӉFVF GFV#F#V tFV#F#V uFFFFFVFVFVFVvvv Fvvv FFFFF+FF+FFFPv.F9FtFFFVFVF9FtFFFVFV aFLFLFF*FvڐF^*"&A*u>"&*+F=tt+F~uFF FF'"&AF"&A&QFV~uFFVFV&FV#F#V‹N^#N#^ ӉFV ~t~t F9t^F+RP z=tNNFFffzFF   tFعP&tF+PQ؃RP zzz|NNF F*ffFzzعP&z1FعP&zFعP&FztAF%FFFFFF~w ^v&u6>u,FHNٹ&F%ع&gp_Fdž~F~=t%v~襂vs=rv~}@FF9FtH^!|s|FFNNn^v&uWV|31ًʸ1^_džzĞ~&Ğz&F9FrFFF-P~VRPz|RPP |FFNŽۥFI!^&Gn^v&^v& ffjj,2FċV#F#V tFV#F#V uFFFFFċVƉhjFV‰FVvvvzvvv~F~FFldf^&Olul^&w&7^&wllFF^v&8uF\Pl zF\\Pl`z^&w&w^&w HdžnpdžrtdžvxzF+FƉFċfFdFFFPv^&%)z9FtFFhjFVƋF9ftFFFVFV0j* FPvWFFHFċV#F#V tFV#F#V uFhFlFċVƉz|FV~Vvvv \vvvd\FdF+FƉF+FFFPv߃.\9FthFz|FVƋd9FtlF~VFVRFV#F#V uxF\FVdfvvv;hhF+FFFPvރh9Ft\FFdfFVd~tF@~ tUF*DFU }HHuHulF*䉆\\t\tF\u \tFV#F#V tFV#F#V uFlFzFV~VFVFVvvvdvvvhdFhF+FF+FFFPv݃.d9FtlF~VFVh9FtzFFVFVDF@9FV#F#V uxFdFVhjvvv"\\F+FFFPv܃\9FtdFFhjFVKB=v:./=""h"N#`#\$|$%>&&~'N)V+g+],, -C-k.v.F FuFuF̉FFGF Fu<F̉\^~u(FuĞ\&Ğ\&&G\nvЎ~^_WV 0v vv^_WV^_WVFPvAtF*N*NNVNVFFFFF*FF%NNFFuCfj FPkjNNFV)FV~v ~w FF FV)FVFFFFPv sF ^_WV2{FF^_4WV+F҉FF%FFFF@F3N1rFԃ~t)1F΃~v~r FF>t&NWV^N31^_r^҉NC>t9F+FF+FFFVF։Vظ W~1_FVFЉVҋF Ft ^1FFN~tfFԉFFFFN=uC^NҋV13ɋVJ1FVn^~$ F^v&F^_WVhhpP^_WV^*uP"$FVF^&9Gt F V ^&9Gt&9Wt^&G*^_WV^*>"&9u"&A*^_WV%FFhus"$$ "t6$6"k4=tjh6$6"EF|WFV"&A>"&F"&A&AF"&AFFVjvvtFVF FtQFFP6p=t,N@FP6dp=t &^_WVFJFFFFFFPFPP f~tF+PQ3=tFF^_WVF~tjF*P^*F^^&G*F9vu!"$FVvQ׃F^_WV^_WV^_WV^_ WVF>FFFFFFF~tFPVSՃF|FP*PՃhh6hh?2^_WVFjhL0^&w6^&G2&W4RP0I jhL0^&w^&w&wBI ^&G2&W4jhL0^&w^&w&wH ^&G()L0jhL0^&w^&w&wH ^&G2&W4FjhO0^&w6^&G2&W4RP}H jhO0^&w^&w&wH ^&G2&W4jhN0^&w^&w&w-H jhO0^&w6^&G2&W4RPH O0N0jhN0^&w^&w&wH ^&G2&W4o^&G(L0jhL0^&w^&w&wG ^&G2&W455,)-)u-`u-=uHu-u^_WVjhP0^&w6^&w4&w2/G P0R0>R0t/^&Gjh^&w^&w&w(G >R0t ^&G>P0t ^&G>P0t ^&G vv6P09=uo>V u_F^&4t ^&G8F^&4t ^&G8F^& 4t ^&G 8F~u^_WV>t.hh/ t h}@ u^_WV=t^&,t vv^_WVh^&w6h^&wh^&wh!^&wh$^&wh'^&w ^_WVv?F Fu*.P?^_WVk=u h2n?FFVhDV?F%PjhJF%jPhMzF%jPhPhF%jPhSVF%jPhVDF%jPhY22FRP FRPh\> ^_WVjhT0^&w6^&w4&w2D hq>FF~|^T0*Phv>hi>^_WVhU>FF~|iv vvh.> jFPvv v|C FV FF~ |vrh=h=^_WVh=6p vR tV T u)V T R P hp= %9vthU=^_ WVvv(vv u^&G& GuM^&G6F^&G2&W4FV66FP&_ tvvvh< !uFVFV^&?u[^&F^&6t^&G4& G2thk<vv(~ uvv6vvj~ u^&w&w^&w9>W u^_WV؃p >)tD^&, t7)v vF)~u!u&p >)t7)v v,F)~u!u&p >)u)^&,F^&_,㋇F^&w4&w2^&w6v^&w,hh:^&, tN ^&GJ L ^&G&Wjv vv)hS^_WV؃p ^&w4&w2^&w6^&w,h*hh:jvvhR^_WV^_WV^&o&_^&G^&ONF^&G2^F&^&G6^F&^&G:^&^&_,l0n0FVF^&G6F^&G2^_WVF*F b>Fl3Fr(g-4}-HuHu^&G6+^& O2 +NANFFƉF9vw^F&8u^_WVv vvN=tgF?FFFFFFFPvɃ=t.^&G^&O NFFV^l0n0^_WVh}hxhFPb'=u4^ thhhh:'=uhhA^_WV^&u&u~ ^N^&u&t~ ^NF^_WVFF~ |phd0^((FV uOd0;Ft;Nt=N^& *-/u- u-"u^_WV%^7H=u^whd06^ +GFV^F&FvFPFF&F@PvvRP5 #FFPh_FN^ Gh>|d0^_WVhd0vZ'hd0&FF0N~}#^d0\u^d0.tF0^_WV0d0Pvw&^_WVhd0)&;0t v^_|WV>*&rvvV(%+PQEf؉FjFH+RP`fFV^&GFvvv_~%FF^&?uFOVb%+ȉN|jaFFH+FFFFF+FFFPPj!f t.FFvF+RPeFVvaF FtFPjvj6%R FPv^vvr^FP6%^=uFFFFIFPPj!e F9Ft8NF^F&^F&<u Ow^&^_WVFF~ |S^vv{hFVF Ft~|F@0FVv^ &@&PFV^ &&W^_WVvviFV t+v v vvAF=uF^_WVء%FFhh"FV up^F=ub^hFV u?vvvv=t#v v vv^&_ ut^&GB&WDFVF FuRvvvvW=t#v v vv^&_ u^&&WFV^_WVb ` u:h u;` FV uvvhhc: ^ ^_WVh1j3\>1t">1tjjjjj3d ~u33F~t300F~@|F@F jw]Fv]00vW]0 0t}6060Waأ00000 00B=u0FKFFFFFFFPj38^_WVF`FFPvw[~t ~t~}00FVFF~|W^F&U^F&^F&F^F&^F&͊F^F&^F&]^F&v_=t1FJFFFFFFFPv)^_WV^&G(F^&GF^&G$F^&G F^&G F^&GF^&GF^6u<fvvvvvv^"1 1^11v6(vvvvvv^1 16^_.WV^&G(F^&GF^&G$F^&G F^&GFFv7ÃF=u^&w"&w vFFF+PQY+F@F҃~u ~@wF@vҋF֋VRP60606W ~uF FډFF؉FF 0FFPPj3M_ 7vzƒ=u&^&G &W"11F 1"16FN։ 116Fأ1F F؉FF0FFPPj3^ ~ tF^&G$&G&F^&GF^&G &G"1F 1F1F4FF 0FFPPj3Z^ vF=u^&w"&w vFF606060F֋VRPU ~u v)F=u^&w"&w vFF60F֋VRP6060TU ~uFF 0FFPPj3w] a^&G(&G*LC- =v8.NKNNLNNNNNNNYMNnMMxNxNNNNNNxNxNF^_*WVF^&G(&W*Ċ**F^&G(*F^&GFF*FڋFFF"HHu-u- u-u F FF2=uv u- s-w-u~5t(FF u-s -wF~tFwFF#-s-w-s -wC@==uv-uHuHuX-uHu-Cu~tF}^&G(F^&GF^&G$F^&G F^&GF^&G F^&GF^&GF^&GFF~u^&w>Fހ~u8F^&G &W"FV^&w"&w ^&wރFF؋F։FFF؉F^&G &WFV^&w&w ^&wfރFF؋F։FFF؉F^&G&WFV^&w&w^&w!ރFF؋F։FFF؉Fc^&G&WFV^&w&w^&w݃FF؋F։FFF؉FHuHuHuHu[FP ~u^+&G*&G(F+^& G(& W*^+&G*&G(F+^& G(& W*^+&G&GF+^& G& W^+&G&&G$F+^& G$& W&^+&G"&G F+^& G & W"^+&G&GF+^& G& W^+&G&G F+^& G & W^+&G&GF+^& G& W~t F^&GF^&G~uFsF+F+FV^&G &W"rF+F+FV^&G &WVF+F+FV^&G&W:F+F+FV^&G&WHuHuHuHu^_ WV F~t0FNFFFFFFFPjĶ^_WVjlvvh:$ ^_WVjlh:vvx$ ^_WVjljh:C^_WVF|ikQtYk:FF ^GF^GF^GG^G^G^G^G W^GW  ^_WVFPvO=tfFfNNFF%NNFF Ft#F Ft~t~tFVFV^ W^_"WVء%FF^&/|~u(+FFN}k:^uFP^ww^w=uvvV,+ F^GF~u~u~u ~tFF F^GH F^+G^GPv^w^ww( >tNvvjv*jjjh*>t+FFFF*FVvvj!*jjj*F|k:FF$^G<u+FF^GPFP^w^ww' ^G^W1F1VF Ft ^GFF^W3F3V u\FF^*GPFPA^GW#F#VN^#N#^;t ;tF ^GF ^GF^W3F3V uFFF^*GPFP+A^GW #F#VN^#N#^;vBs;v6^G W#F#VN^#N#^;sv;sFF~t ^u~u^tF ^GF ^GF&F HHuYHHu~H}Hn^~u~t^_WV!*^_` fUf~s ^*㋇FFuFFFFu Fd1FFAd1e1DLFF~thd1vvvh'~t h9hA~*F=tvhV\^u&un ~FtF6~ItF&~RtF~At ~tFAhYFfFf]afϋa WVFYFFFFFFFPj$諯F^6"&jj$.^_`fUf\f]afϋa WVFv[FFFFFFFPv/F^6"&jv豾F^_WV%FFj#0^&GGu ju0\^_WV%FFjj#I60A^&GGujj$60\^_WV>huh&F^~t Fhh^_WVFPvwG=t F*N*NNF~sv ~s OFV؉FFu$F%FFF9FwFnFFFV^_WVFjHF6bIdff dt)6f6d000 0tFvHF^_ WVFjHF~t8v v JFVF FuFV 9Ft9Vuv vrFV uF~tF 9bsdfFV4F b6f6dSHv HFVFVdfF Ft7~tv v vvvD vvFVFvuG~u FV ^_WVFF~| F^9t ^㋇jLjF+PQ.LFVFF^㉇F^㉇j^_LWVFFFFʌVjvvvvʐC FV~ʹ ^&GF^&GF^&G FFFFFFFF*F*YFFFkFFF[FF^&GF@FF^&GF%"HHu-u- u-u~uE^&G^&ON‰FFvvvvFƉVȋF^&GF^&GF*HFF^&G *^&gFJFFF:FF^&g*F# u-u-uHu~uHF^&G^&ON‰Fvvvv<FƉVȋF^&GF^&GGD~5tBF*#FFF*FFF uHHuHu~uEF^&G^&ON‰FvvvvFƉVȋF^&GF^&GFF^&GF~sfF^&G^&ON‰Fvvvj8FƉVȋF^&GF^&GC^& tQFFF@F^&G^&ON‰FvvvjFƉVȋF^&GF^&GF*)FF8F3FF%F HuHu-uHu~uE^&G^&O N‰FFvvvv8FƉVȋF^&GF^&G C@==u~-uLHuHu-uHu)-Cu!FPPjG ~t<~0t3^&w^&ONFF^&GF^&G!~u^&G^&G~u^&G ^&G ~u^&G^&G~u^&G^&G~u^&G^&G~uvȐ@NƉNЉFҊF*^jvvЍFPl> vNNFjFPvvАC> vvvvv,> .+(-uHHu- uHu-CuFʋV~ ^_U^&7h^&w &w&w&w&wh^&w"&w &w&&w$&w&w&w*&w(h^&w&w&w&w&w&w &w&whX^&w<&w:&w0&w.&w,&w4&w2&w6h)*%+ێ&GB&WDFV^F Ft<vvvQHFV tv v^[[F^&&WFV뼋Fء%+ێ&GG%؃>Xu&hRrI[[ u o? tXXXWV؋FF u> tFعP&@WV^31ًʸ1^_ЉFF^_UvvUWV+j>[vvn@[[ tW>[^_Uvv t vv'WVFvvB[[FVvv =[[@FFVW^Nv~1_^^_WVF t~vN^ 1ЉFF^_ v vB[[FVRPvvA[[+FVRPUv v vv^&&WFV uvv]G[[FV^&&WF Ft*F Ft'vv vvE^&&W u++FFFFv vvvFPFPVFVUvvvOUvvvuUvUv vvvUv vvvUv vvvUvvM2[[Uvvv vz2Uvvv v"2Uvvv v0Uvvvv v 0  Uvvv v52Uv vvvh+E[[FV tbhvPCDFhvvyC`bhvv`CdfhvvGC\^hD[[FV tIhvPCHJhvvCLNhvvBPRhVD[[FV t0h%vPBTVh2vvBXZ F~tGF VFVF~?}&^0FF^&?u^Ƈ0h0hP F F |>v vPu;Fu+F~t v vv vj F $V؋FVFV^ ^F&?t&:u&‹&FV@@F!FFA^&&؉^u&tF, ^&,@FF^&:GF^&?\u^F&\F؋vGV!vv tkF^&\GFFVFVF܉VF^&?.u>^&?\uFN-&?.u'F^&?\un ;^w+"N^&?\u^&vF& u^vvFVFVN^& FV@-:t-"tF9FwًVjvvRPv v - j.v v , tj.v v ,‹&#FVN +؃!^F&F N u &ءV Tuh!h!!TVFPvvV Tt FPT[[ FP(["F FtVj vvFP, FP,[[v vFP8 tNFP,[[v vFP uj vv FPH, FPe,[[FPvv v v v v FVRPh!A uv v vvh!* t^&v v vvh! t^&v v vvh! t^& v v vvh! t^&v v vvh! t^&OF FtFV"+FF^ \tFPvvv v \ FV%+ێ^F&GGu^&.&G+޿ VNF Ftshvv3:FV tXvvvPvv2[[vvFVFV^&?\t&?/t&?:t&FVN9Fr V^ \t1FPv v vv\ tF Ft vv* uv v FV^&.&GF Ft2Svv4vv^&x\uNS^&@^h"h"FV tvvvP vvvvvv^h%"hhh-"h5"h<"hhhG"hQ"hhhX"hZ"FV t hh vPnh_"FV tChh!vPQhh! FV t&F!^ ^&&GNF9Fs^&ء%FF<hg"Pvvhs"^( uvvvv;vv@F^&?uFVC!rNF%=ȦV&? t&?udžZ\< t tZF^&Z\<;uۃZtZ[:t[\t Ƃ\\ZZƂ\\Pvv\Pv v \P3 tvv\Pvv'[[^&?;t&? uF^&?;t1^&*^V^&FFF F tM^ヿ"#tA"#vvvv h"vv vv"#v v t~tSFF^ヿ"#t="#vvhhh"4hhvv"#v vR tyFF^ヿ"#t="#vvhhh" hhvv"#v v t&FF^ヿ"#t hhvv"#v v tFF^ヿ"#t h"vv"#v v tFF^ヿ"#t hh vv"#v v] t>h!t\FF^ヿ"#tF"#vvhh!h" hh!vv"#v v tv vh#v vvvfv vh# ^hhvv7hh‹&hh t"؀g\uƇgg:u hhh*#ȂV؍FP~ t,#1#PFPv vFP~B jvjjF~BPt~B;F~B F~BgF~BoD~BD~! u FP+[[^FbFpF jvjjFP~F:jvjjFPhFPh9#FPh+[[WQ~N F F +HY_WQ~N F F +HY_WVQ~v NY^_VWQv ~NjN1;F u;v;sNOǨtIY_^WQ~F N Y_VWQS^~~ v NK[Y_^fffffffF tffffF tfffXP肀XP*XPcXP꜃XPԃFF FFFF=FNQPc( tFF+FFFFFPh>' tF+FFF FFFF FFPFBP' tFVFF FFFFFF FFPh?I' tFFF FFFFFF FFPh@' tF^F&^ F & uFVUjjvvjjvFV؋F Ft^&?t&^F&^F&:FVFV t9^&?t0F&^F&^&?u&/t&\t ^F&\F V FV t&^&FF^&?uFVFV t1^&?t&?.t ^F&.^F&^F& t ^&Uvvv v v v R[[ȲdžNvv vjvPPh=ubPMuQFuRTFV PMuQZu PP3[ހPBtQWuFtdžNFV ^ &&WN^^G+ұ FVF^t?MuFG+FFVFVPvv v+FPFV |vFPj@=@t~MZuLFVFVFPh[FVvFV FVRPjhFV |]vFPj@q=@uL~LEuF~LXuF ~NEuF~uF FtFVFV+FFvvvjFV^ &&WFvv v vv uvv v vvFPv vvfVfWfQfv^ ~ fN fggfYf_f^SfVfWfQ^ 3 1.؎f~v fN fgg  313fYf_f^[fWf~fPtV&fE(&fE:&fE &E&f]&fM$&fU &fu&fm&]&e&m &Uf &fef &M6&fE2̀~ &fE(&f]&fM$&fU &fu&fm&]&e&m &U&fefP&fu:fXf%fX&fu:j&u6&fu2&u&f} ffW ^f~1rHfFfFfFFfFfff+^fvf^f0 ^ 13f_ ff ff fffS!ff[ːfPfF^.i#### ##fXSQRVWF FF ^ NV~v^_^ZY[SQRVWF F 'F^NV~vf&^ff^f&^_^ZY[hhFThJ#ht#hX#.[[FV th_#vP,L#N# L#u h[hh#vv\,P#R#FVT#V#oU!t+vvvvv v vvL#F FVFPv vvj6V#6T#F+FFv8[F FVFPv vvj6V#6T#iF+FFFF FVFPv vvj6V#6T#0F+FFFF FVFPvvjj6V#6T#F+FFF!u+ˍF FVFPvvjj6V#6T#F+FFFUvvP#U~ uj [V!U~ uj [F$@$!U>$u^Kj@&$U~ uj $u tFUjFPUjFPF$9Fu$&u|%+ێ^F&GGt^޿+ tPN$$v6$6$&$$ $u+$&F&t@F=|F$&G^1rɣ$$$&GF& uPh6$6$H$F$=u$VF- uHt-t$&G$&&?|$$FV^&&F$;Fw$$FV^& F^&GF$;Fw$&~$&G+&O?$&P|j b%u~tFH%H%&FL%~ tvhL%vv vhL%vv 'uXP6'P%!&&UjVWUӎۋ^7wwWw ^ 3tFO.#3tY[X]Sӎۋ^ FX%G OWw G^ YOXYt%_^X]UPv vv>]Uv vvj!']UFV^ +F Ӌ]UV%%Ȏغۏ$%!3]UWVRQSP.ۉ&%%UVWP !X_^]%%ώҋUVWP%%&%[YZ^_]UFU3%N%&%68r %б2㋗%s[YZ^_]%&%SPܡ%6 GX%6G6_[U~t~t "&VW^ 3!%F %%6%F%)!)%!U>*&}!..&.5.6u.6.%~t32P !XP&VK!PP0!<X[}!..&...6u.65P&]_^rM!25!&&%k!'.(&&6,'36's 6'ڻ6'(&&,>3&=t4 &t 3u!1&,Ar ,Ar ª1&D!r €t1&@Ky羜''''U3UUVWUVWQ u11''x>'u'''c''Z tX Pu ~uFX uFL!_^]ˋ''&%!>R&t S&T&%!;s EtUPR>Z&tX&P?]ˏ\&^&0!*&<t)(&&,M&33uGG>K&ыѿ(&< t< t< to tkGN< t< t< t\ tX<"t$<\tB3A<\t<"tӋѨuN< t+ t'<"t<\tB3A<\t<"tۋѨu>E&GB+ģG&6?CC6K& u6(&3< t< t< t| tx6?CCN< t< t< tb t^<"t'<\t3A<\t<"t\Ѱ\s"N< t. t*<"t<\t3A<\t<"t\ٰ\s"3.\&U(&&,333 t&>tFu@$F PI&ϋ3_I&6;&uQVW&_^Yt&?CC u&]UVWV';t@t 3_^]UWv t 3I>'u'@!_]r3]sPX2]s]2ˢ-& u">*&r <"s < r<v`&ט"&ÊU^;/&r >'u'1& t B3ɋ!r1&tpV3FFWVfN : uL=vFܺ=(s+ԋN < t ;t#k ;u F ^__PSQ+Q^@!Yr F;wY[Xß~us 1&@t ^?u F+Ff^_N uV@!s u1&@t ڀ?uUVW~UVWtUF- ]ːU^u&tG]UWV6I& tJ~tDvy04k;~ 9=uWvSo u@ FF<u+^_]ːlUVW~]MUu} !W~]MUuE r3 u _^]UVW^vF ~ N_^]UVF]U׌؎~ߋN FtI]UVW UVW2҈Vv< t< w< r<+t<-uNN t$v <0u u uŒ,A<ۀ AAۀ A:t^_]UW~3AيF O&8t3Njnj_]Uv ^ t-&'C:t,A<ɀ A,A<ɀ A:t]UWVN'~3ˋv D3&:EwtIIы^_]UWV~v ߋN t2Ì^_]U^ ,A<saC uڎ]U^ ,a<sAC uڎ]U~3I]U׋v ؎3~ǨtI]U׋~3u~ +؎FFtI]UVW~ 3I%u)jjFPvh ^F&^F&%FFF^&^&^&G^&Gː؁~r+˃>%u)jjFPvh` ^F&^F&%FFF^&^&^&G^&GːFxjjFPh ~@ː؃>%ː؋FFjjFPjF f*؋FH@F+FFPPFPhH tFFFVvv F |Fu+vjFPhI FjjFPj V+Fu Vء%FFFHF^&G"&W$FVFPFPj!^ FHFPFPj!^ ~v~u+^ːN+ۋuډv^FFFIFPFPj!^ FV^FvjFPj t FF +FFFVːFFFFF+FFPPFPjS tFFFVːFFFFFF F+FFvPFPj tFFFVː؋F H@FvjFPhJ F t-F t'FPv F HFFPveF؋FFjjFPjh f*V؃>%u2FjjFPj3 jjvvv ^ː%FF^&G&+G+ҹFjj&GP&?r}%%PVء%FF+^&_&@F t8Ft } ^&?}+^ː^&_F&@jj^&GP&w vr t^^&_&@ FFFPv tF*ЋN^* FFVFV"+FFe u5FFFFF FF jjFPv FF[F tOFPvFFFFF HFދF* FFPv4 tFvFVv F+ұuFRP$ء%FFvv v vv^&_" ː؃>%u)FjjFPjj- u+ˋFFFF jjFPh Fː؃>%u!FjjFPvj +ːFFFjjFPh. +؃>%ujjFPjjx FFFːV؁~sF Ftvv v4 u+^ː>%u'FFF FjjFPvh ^ˡ%FFFjs^F &^F&GVU^V؁~sF Ftvv v u+^ːFvjFPh@ >%u'FFF FjjFPvhJ ^j%FFF^F &^F&GV^vv vv v' ːvv vv va ːUVv &<t&&8uFF ^&?u؎F&^ &8u^+^ːF^&G &WFVFFF^&9G ~)^&w&7v v o t^&G&WF&G&WFVFFF^&9G~^&w&7v v  t+U؎'&%+ێ&GB&WD^&&W'&%+ێFV&GB&WDV؎'&%+ێ&GB&WDFV;Fu/;Vu*v& &T&OB&WD+^ː&&WFV Ft*FV^&9u&9Wu&7&&TF&&W뻸^ː؎'&%+ێ&GB&WDFV Ft1^&w&wvv t FV^&&W+JF FFFVFjFPh u~tF<'&%F'&FFP+ɉNNNQFPFF'&%+ێ&GGt F܉FF F؉FF։FFFFȉFSSFPvQ ː؍FPv uˊF* ؍FPvi uˊF*FF FFPv t؋FWVvvr%=t ^_ː~ tWvvn%ȃ^_@DOS/16M㍀ (08p@PⲌȎش !L!.EXE has not been processed by MAKEPM $ W+FFvvPv FV u=v+_ˋ Ft u~ v F HF t4 u~v'jv jjFVEFVFHFFFPP=[[~uFFFFVFVFV~u~vFF +N ~+ۋNع^F +)FVF FuFV_FIFFFFPFPP5 p at DOS/4GW Protected Mode Run-timeCopyright (c) Rational Systems, Inc. 1990-1993Nov 23 1993 20:35:181.95D32DebugHookD32ChainInterruptD32SetFaultProcD32SetIntProcD32CancelFaultProcD32CancelIntProcD32StepdowncurtaskD32ResetTSPD32Int21HandlerDirectD32_ANY_LOADName(C)DateVersionDOS4G_GETENVDOS4G_GET_APPPATHD32LowAvailDOS4G_DISPATCHDEINITDOS4GMAINLOADERVECTDOS4GMAINMODULEHANDD32_KERNELb q o  p B S  +G     ) ; G hV ] q   DOS/4GWDOS4GWcan't lock extender kernel in memory DOS4Gverbosefix34crashpautolockqaquiet%s Version %s (%s) %s monoutsyntax is DOS4GW Debugging with 16 bit debugger not enough memory for dispatcher data can't hook interrupts Error initializing video: %d Error initializing mouse: %d RECEIVE_BROADCASTcan't find file %s to load can't load executable format for file %s [%ld] EXP_LOADERRSIHELPWSAMPRSID32Loading with %s can't initialize loader %s [%ld] %s %s is not a WATCOM program Executing %s with initial registers:CSDSESSSnullpnull pointer used, acc , base pagebyte, USE32, , USE16, %s=%5X%s%s granular, limit %8lX%s%8lX%s%2X Note: this program may have been built for the Phar Lap extender. WATCOMDVX_Process_ManagerSEGEXE_LOADERLINEXE_LOADERVMM4GD32_INT31deinitializing twice DOS/4GW deinitializing DEINIT... deinitializing %s ... deinitializing int31 package int21_call_16DOS16PKGVSUPERRESIZEVMM4GVSUPERFREEVMM4GINITVMM4G v[dummy fcbInstalling 16-bit handler for %X %X:%X autolock code %X and stack %X $Forcing 16-bit gate for int %02X Can't force gate type for int %02X!       error in interrupt chain f2 jdivide by zerodebug exceptionNMIbreakpointoverflowboundsinvalid opcodedevice not availabledouble faultoverruninvalid TSSsegment not presentstack faultgeneral protection faultpage fault *3:I^ksDBGAGENTDBGAGENTCan't find debug agent CSSSDSESFSGS:1 :0 CR0: unavailable CR0: PGETTSEMMPPE CR2: %lX CR3: %lX Opcode stream: %02X Stack: %04X:%08lX %04X Last 4 ints: %X @ %X:%lX/ Crash address (unrelocated) = %X:%08lX Previous TSF:unknownexception %02Xh (%s) at %X:%08lXtransfer stack overflow on interrupt %02Xh at %X:%08lX4%!@!@!INITD32_INT31INT31D32_INT31int 31h initialization error DOS4GW.EXE4GWPRO.EXEDOS4G.EXEDOS4GS.EXEDOS16X.EXPLOADER3LOADER4RUN.COMPROCMANPROCM16PX.EXE .EXEINITLOADERRELUNRELUNLOADFREEMAPCANLOADGETLOADTABLEGETLOADNAMEGETERRSTRDIPTZaiq~UNKNOWNEXP_LOADERSEGEXE_LOADERLINEXE_LOADERDVX_Which_LoaderDVX_Process_ManagerVM found VMM initialization error [%ld] Write-protectUnknown unitDrive not readyUnknown commandData error (bad CRC)Bad request structure lengthSeekUnknown media typeSector not foundPrinter out of paperWrite faultRead faultGeneral failureSharing violationLock violationInvalid disk changeFCB unavailableSharing buffer overflow->S_jzUnexpectedwritingreading device drive %s error %s%s%s Abort, Retry, Ignore, Fail?%c  TSF32: prev_tsf32%5X SS %9X DS %9X ES %9X FS %9X GS %9X EAX%9lX EBX%9lX ECX%9lX EDX%9lX ESI%9lX EDI%9lX EBP%9lX ESP%9lX CS:IP%5X:%08lX ID %02X COD%9lX FLG%9lX VMM4GLocking %lX - %lX Bytes - retcode %d DVX_Process_ManagerDVX_Global_Seg_AssociateDVX_Global_Seg_AllocDVX_Global_Seg_BroadcastDVX_Dos4gx_Get_OptionVMM4GVMALOCINSTVSUPERRESIZEVSUPERFREED32_KERNELDOS4G_GETENVDOS4G_GET_APPPATH0123456789ABCDEFDOS4G_GETENVD32_KERNELverboseverbskipinitskipsymnoclosenoignoreDVX_HOME_DIRDVX_Process_Managerdll\msclibpathsegexedll\os2_20libpath32linexe.PATHCOMSPECDOS4GLOADERDOS4GLOADER.dll.exe.comChecking for %s%s%s Searching LIBPATH32=%s for %s%s Searching LIBPATH=%s for %s%s .Searching COMSPEC=%s for %s%s Found '%s' NOT Found :: %s """.sym merges ; comp ms; goH#ERROUTERRPRINTERRDIVERTr#ERRPRINTERRDIVERTVSPRINTFERROUTv#0HƄvw###Պ#$$%s warning (%d): %s error (%d): %s fatal error (%d): USERERRERRXLAT%04X:%04Xn% (08@PpfT%%_C_FILE_INFO=O&   ((((( H p2 jjj <>R6000 - stack overflow R6003 - integer divide by 0 R6009 - not enough space for environment run-time error R6002 - floating-point support not loaded  h :  'Wp~x555 >Z??A3GIJTNTsTUY2[[[ff0gggghdhhhhqiiiiij9jXjsjjjjj k@kjlmYnn2o"pqrsstuHwwNxyyyz zzVzzz({p{{{|+|}(-LÇۊ񍝎7* >bԤDlXƦJ8z¨v- جn~ఴ.²IJȲP`Z        " & * . 2 6 : > F T " $$$$$$$$$%%%%%%%%%%%%%M&''''WATCOM patch level .bxbibclean-3.07/ibmpc/dos/wat10/wcc/0000775000156700015670000000000014431412252015473 5ustar beebebeebebibclean-3.07/ibmpc/dos/wat10/wcc/bibclean.map0000644000156700015670000004501506142140273017735 0ustar beebebeebeWATCOM Linker Version 10.0 Copyright by WATCOM International Corp. 1985, 1994. All rights reserved. Created on: 96/05/02 08:03:22 Executable Image: BIBCLEAN.exe creating a DOS executable +------------+ | Groups | +------------+ Group Address Size ===== ======= ==== DGROUP 186c:0000 0000efd0 +--------------+ | Segments | +--------------+ Segment Class Group Address Size ======= ===== ===== ======= ==== BEGTEXT CODE 0000:0000 00000007 _TEXT CODE 0000:0008 0000be85 bibclean11_DATA FAR_DATA 0be9:0000 00008321 chek11_DATA FAR_DATA 0be9:8330 00000000 do11_DATA FAR_DATA 0be9:8330 00002800 fix11_DATA FAR_DATA 0be9:ab30 00001000 isbn11_DATA FAR_DATA 0be9:bb30 00000880 option11_DATA FAR_DATA 0be9:c3b0 00000480 FAR_DATA FAR_DATA 0be9:c830 00000000 _NULL BEGDATA DGROUP 186c:0000 00000020 _AFTERNULL BEGDATA DGROUP 186e:0000 00000002 CONST DATA DGROUP 186e:0002 00005de4 CONST2 DATA DGROUP 1e4c:0006 00000118 _DATA DATA DGROUP 1e5d:000e 00000cae STRINGS DATA DGROUP 1f28:000c 00000000 XIB DATA DGROUP 1f28:000c 00000000 XI DATA DGROUP 1f28:000c 00000012 XIE DATA DGROUP 1f29:000e 00000000 YIB DATA DGROUP 1f29:000e 00000000 YI DATA DGROUP 1f29:000e 00000006 YIE DATA DGROUP 1f2a:0004 00000000 DATA DATA DGROUP 1f2a:0004 00000000 BCSD DATA DGROUP 1f2a:0004 00000000 _BSS BSS DGROUP 1f2a:0004 000003e6 STACK STACK DGROUP 1f69:0000 00008000 +----------------+ | Memory Map | +----------------+ * = unreferenced symbol + = symbol only referenced locally Address Symbol ======= ====== Module: BIBCLEAN.OBJ(H:\PC\TEX\BIBCLEAN\bibclean.c) 186c:6be4 _the_file 186c:6c0c _the_entry 186c:6c34 _the_value 186c:6c5c _token_start 0be9:0000 _shared_string 0be9:1000 _current_key 0be9:2000 _current_entry_name 0be9:3000 _current_value 0be9:4000 _current_field 186c:5f5b _field_indentation 186c:5f5d _value_indentation 186c:5f5f+ _type_name 186c:5faf _align_equals 186c:5fb0 _at_level 186c:5fb2 _brace_level 186c:5fb6 _check_values 186c:5fb7 _close_char 186c:5fb9 _delete_empty_values 186c:5fba _discard_next_comma 186c:5fbb _eofile 186c:5fbe _fix_initials 186c:5fbf _fix_names 186c:5fc0 _fix_font_changes 186c:5fc1 _in_preamble 186c:5fc2 _in_string 186c:5fc3 _in_value 186c:5fc4 _is_parbreak 186c:5fc5 _keep_linebreaks 186c:5fc6 _keep_parbreaks 186c:5fc7 _keep_preamble_spaces 186c:5fc8 _keep_spaces 186c:5fc9 _keep_string_spaces 186c:5fca _max_width 186c:5fce _non_white_chars 186c:5fd0 _parbreaks 186c:5fd1 _prettyprint 186c:5fd2 _print_patterns 0000:0008 apply_function_ 0000:0236 error_ 0000:0307 fatal_ 0000:0511 free_pattern_table_entries_ 0000:05bc get_char_ 0000:071b get_linebreak_ 0000:0771 get_next_non_blank_ 0000:089f isidchar_ 0000:0909 main_ 0000:0a26 Memmove_ 0000:0a7b Memset_ 0000:0a92 out_at_ 0000:0b86 out_flush_ 0000:0b8f out_c_ 0000:0bf0 out_lines_ 0000:0d2a out_newline_ 0000:0dd8 out_s_ 0000:0f59 out_string_ 0000:0fb2 out_token_ 0000:111a+ out_verbatim_ 0000:114d out_with_error_ 0000:1168 out_with_parbreak_error_ 0000:1175 put_back_ 0000:1236 Strdup_ 0000:128d stricmp_ 0000:1324 strnicmp_ 0000:13b7 tfopen_ 0000:1403 warning_ 0000:14d0 out_spaces_ 186c:5fd5 _read_initialization_files 186c:5fd6 _remove_OPT_prefixes 186c:5fd7 _rflag 186c:5fd8 _screen_lines 186c:5fda _Scribe 186c:5fdb _show_file_position 186c:5fdc _stdlog_on_stdout 186c:5fdd* __stklen 186c:5fdf _trace_file_opening 186c:5fe0 _warnings 186c:5fe1 _wrapping 186c:6cc0 _stdlog 186c:6cc4 _fpin 186c:6cc8 _initialization_file_name 186c:6ccc _program_name 0be9:7001 _pattern_names Module: CHEK.OBJ(H:\PC\TEX\BIBCLEAN\chek.c) 0000:16a3 check_chapter_ 0000:16c5 check_CODEN_ 0000:16da check_inodes_ 0000:174c check_ISBN_ 0000:177e check_ISSN_ 0000:178a check_junior_ 0000:185a check_key_ 0000:18b6 check_length_ 0000:18ce check_month_ 0000:193b check_number_ 0000:1953 check_other_ 0000:19ac check_pages_ 0000:19c4+ check_patterns_ 0000:1a4a check_volume_ 0000:1a62 check_year_ Module: DO.OBJ(H:\PC\TEX\BIBCLEAN\do.c) 186c:616e _month_pair 186c:6296 _German_style 0000:2e06 do_files_ 0000:3092 do_initfile_ 0000:3501 do_other_ Module: FIX.OBJ(H:\PC\TEX\BIBCLEAN\fix.c) 0000:516a+ fix_author_ 0000:5308 fix_month_ 0000:54ff fix_namelist_ 0000:56d1 fix_pages_ 0000:57f0+ fix_periods_ 0000:5887 fix_title_ Module: FNDFIL.OBJ(H:\PC\TEX\BIBCLEAN\fndfil.c) 0000:5d5f findfile_ Module: ISBN.OBJ(H:\PC\TEX\BIBCLEAN\isbn.c) 0000:61c4 ISBN_hyphenate_ Module: KEYBRD.OBJ(H:\PC\TEX\BIBCLEAN\keybrd.c) 0000:6452 do_more_ 0000:6839 get_screen_lines_ 0000:683c kbclose_ 0000:6854+ kbcode_ 0000:68a3* kbget_ 0000:68a6 kbopen_ 186c:6e9a+ _keymap Module: MATCH.OBJ(H:\PC\TEX\BIBCLEAN\match.c) 0000:69b6 match_pattern_ Module: OPTION.OBJ(H:\PC\TEX\BIBCLEAN\option.c) 0000:6e0f do_args_ 0000:6f09 do_preargs_ 0000:6f70 isoptionprefix_ Module: ROMTOL.OBJ(H:\PC\TEX\BIBCLEAN\romtol.c) 0000:71b2* romtol_ 0000:726b isroman_ Module: STRIST.OBJ(H:\PC\TEX\BIBCLEAN\strist.c) 0000:72c3 stristr_ Module: WILDARGV.OBJ(H:\PC\TEX\BIBCLEAN\wildargv.c) 0000:7602 __Init_Argv_ Module: s:\sys\watcom\lib286\dos\clibc.lib(iob) 186c:6910 ___iob 186c:6a78* ___tmpfnext 186c:6a79 __fmode 186c:6fa4 ___ClosedStreams Module: s:\sys\watcom\lib286\dos\clibc.lib(fputs) 0000:7672 fputs_ Module: s:\sys\watcom\lib286\dos\clibc.lib(fputc) 0000:76fc fputc_ Module: s:\sys\watcom\lib286\dos\clibc.lib(fflush) 0000:77a0 fflush_ Module: s:\sys\watcom\lib286\dos\clibc.lib(fprintf) 0000:77b1 fprintf_ Module: s:\sys\watcom\lib286\dos\clibc.lib(exit) 0000:77de+ __null_int23_exit_ 0000:77df exit_ 0000:77f8+ _exit_ 186c:6a80+ ___atexit 186c:6a82+ ___int23_exit 186c:6a84+ ___FPE_handler_exit Module: s:\sys\watcom\lib286\dos\clibc.lib(strncpy) 0000:780e strncpy_ Module: s:\sys\watcom\lib286\dos\clibc.lib(ffree) 0000:7844 _ffree_ 0000:7844 free_ Module: s:\sys\watcom\lib286\dos\clibc.lib(fgetc) 0000:7890 fgetc_ 0000:78fd+ __filbuf_ 0000:791e+ __fill_buffer_ Module: s:\sys\watcom\lib286\dos\clibc.lib(istable) 186c:5e14 __IsTable Module: s:\sys\watcom\lib286\dos\clibc.lib(fmalloc) 0000:79c6 _fmalloc_ 0000:79c6 malloc_ 186c:6a86+ ___fheap 186c:6a88 ___fheapRover 186c:6a8a ___LargestSizeB4Rover Module: s:\sys\watcom\lib286\dos\clibc.lib(getenv) 0000:7ac7 getenv_ Module: s:\sys\watcom\lib286\dos\clibc.lib(sprintf) 0000:7b7c sprintf_ Module: s:\sys\watcom\lib286\dos\clibc.lib(toupper) 0000:7bb9 toupper_ 0000:7bb9* _toupper_ Module: s:\sys\watcom\lib286\dos\clibc.lib(tolower) 0000:7bc7 tolower_ 0000:7bc7* _tolower_ Module: s:\sys\watcom\lib286\dos\clibc.lib(fopen) 0000:7bd5+ __open_flags_ 0000:7d5f+ _fsopen_ 0000:7d94 fopen_ 0000:7e6d* freopen_ Module: s:\sys\watcom\lib286\dos\clibc.lib(cstrt086) 0000:0003* ___begtext 186c:0000* __nullarea 0000:7eae _cstart_ 0000:7fa0 _Not_Enough_Memory_ 0000:80ac __exit_ 0000:80cb __do_exit_with_msg__ 0000:8104 __GETDS Module: s:\sys\watcom\lib286\dos\clibc.lib(cmodel) 0000:810e _small_code_ 0000:810e* CodeModelMismatch Module: s:\sys\watcom\lib286\dos\clibc.lib(argcv086) 186c:6a8c __argc 186c:6a8e __argv Module: s:\sys\watcom\lib286\dos\clibc.lib(fstat) 0000:810e fstat_ 0000:810e* _fstat_ Module: s:\sys\watcom\lib286\dos\clibc.lib(strcspn) 0000:81f8 strcspn_ Module: s:\sys\watcom\lib286\dos\clibc.lib(strtol) 0000:83f7* strtoul_ 0000:8409 strtol_ Module: s:\sys\watcom\lib286\dos\clibc.lib(strrchr) 0000:844d strrchr_ Module: s:\sys\watcom\lib286\dos\clibc.lib(strncmp) 0000:8474 strncmp_ Module: s:\sys\watcom\lib286\dos\clibc.lib(perror) 0000:84b2 perror_ Module: s:\sys\watcom\lib286\dos\clibc.lib(fclose) 0000:8502 fclose_ 0000:854e __shutdown_stream_ 0000:8571+ __MkTmpFile_ 0000:85e8 __doclose_ Module: s:\sys\watcom\lib286\dos\clibc.lib(frealloc) 0000:8679* _frealloc_ 0000:8679 realloc_ Module: s:\sys\watcom\lib286\dos\clibc.lib(fgets) 0000:8749 fgets_ Module: s:\sys\watcom\lib286\dos\clibc.lib(strspn) 0000:87d1 strspn_ Module: s:\sys\watcom\lib286\dos\clibc.lib(accss) 0000:881f access_ 0000:881f* _access_ Module: s:\sys\watcom\lib286\dos\clibc.lib(strncat) 0000:8844 strncat_ Module: s:\sys\watcom\lib286\dos\clibc.lib(getch) 0000:887d getch_ Module: s:\sys\watcom\lib286\dos\clibc.lib(nmalloc) 0000:8898 _nmalloc_ 186c:6a92 ___nheapbeg 186c:6a94 ___MiniHeapRover 186c:6a96 ___LargestSizeB4MiniHeapRover Module: s:\sys\watcom\lib286\dos\clibc.lib(dir) 0000:8996+ _opendir_ 0000:8a80 opendir_ 0000:8a89 readdir_ 0000:8acb closedir_ Module: s:\sys\watcom\lib286\dos\clibc.lib(splitpat) 0000:8b35 _splitpath_ Module: s:\sys\watcom\lib286\dos\clibc.lib(makepath) 0000:8c20 _makepath_ Module: s:\sys\watcom\lib286\dos\clibc.lib(crwd086) 186c:6a98 __curbrk 186c:6aa0 __STACKLOW 186c:6aa2 __STACKTOP 186c:6aa4 __cbyte 186c:6aa6 __child 186c:6aa8 __no87 186c:6ab6 __FPE_handler 186c:6ab6 ___FPE_handler 186c:6a9a __psp 186c:6aaa __get_ovl_stack 186c:6aae __restore_ovl_stack 186c:6ab2 __close_ovl_file 186c:6aba __LpCmdLine 186c:6abe __LpPgmName 186c:6a9c __osmajor 186c:6a9d __osminor 186c:6a9e __osmode 186c:6a9f __HShift Module: s:\sys\watcom\lib286\dos\clibc.lib(___argc) 186c:6fa8 ____Argv 186c:6fac ____Argc Module: s:\sys\watcom\lib286\dos\clibc.lib(stinit) 186c:6fae ___OpenStreams Module: s:\sys\watcom\lib286\dos\clibc.lib(ioalloc) 0000:8d40 __ioalloc_ Module: s:\sys\watcom\lib286\dos\clibc.lib(flush) 0000:8db4 __flush_ Module: s:\sys\watcom\lib286\dos\clibc.lib(seterrno) 0000:8e64* __set_EDOM_ 0000:8e67 __set_errno_ 0000:8e7b* __set_ERANGE_ 0000:8e80* __set_EINVAL_ 0000:8e8a __set_doserrno_ 0000:8e95* __FPE_exception_ Module: s:\sys\watcom\lib286\dos\clibc.lib(flushall) 0000:8ea3 flushall_ 0000:8ea6 __flushall_ Module: s:\sys\watcom\lib286\dos\clibc.lib(fprtf) 0000:8f19 __fprtf_ Module: s:\sys\watcom\lib286\dos\clibc.lib(nfree) 0000:8f9a _nfree_ Module: s:\sys\watcom\lib286\dos\clibc.lib(memalloc) 0000:8ff4 __MemAllocator 0000:9098 __MemFree Module: s:\sys\watcom\lib286\dos\clibc.lib(heapmod) 186c:6fb2 ___fheap_clean 186c:6fb3 ___nheap_clean Module: s:\sys\watcom\lib286\dos\clibc.lib(gtche) 0000:91a1 getche_ Module: s:\sys\watcom\lib286\dos\clibc.lib(qread) 0000:91bc __qread_ Module: s:\sys\watcom\lib286\dos\clibc.lib(allocseg) 0000:91e0 __AllocSeg_ Module: s:\sys\watcom\lib286\dos\clibc.lib(growseg) 0000:9279 __GrowSeg_ Module: s:\sys\watcom\lib286\dos\clibc.lib(fmemneed) 0000:936f __fmemneed_ Module: s:\sys\watcom\lib286\dos\clibc.lib(environ) 186c:6ac2 _environ 186c:6ac6 ___env_mask Module: s:\sys\watcom\lib286\dos\clibc.lib(prtf) 0000:9372 __prtf_ Module: s:\sys\watcom\lib286\dos\clibc.lib(open) 0000:9df6* open_ 0000:9e2e sopen_ 0000:9fca* __set_binary_ Module: s:\sys\watcom\lib286\dos\clibc.lib(allocfp) 0000:a021 __allocfp_ 0000:a12d __freefp_ 0000:a1a5 __purgefp_ Module: s:\sys\watcom\lib286\dos\clibc.lib(fseek) 0000:a231 fseek_ Module: s:\sys\watcom\lib286\dos\clibc.lib(chktty) 0000:a350 __chktty_ Module: s:\sys\watcom\lib286\dos\clibc.lib(cmain086) 0000:a377 __CMain Module: s:\sys\watcom\lib286\dos\clibc.lib(inirt086) 0000:a3f4 __InitRtns 0000:a412 __FiniRtns 0000:a42b* __FInitRtns 0000:a42f* __FFiniRtns Module: s:\sys\watcom\lib286\dos\clibc.lib(xmsg) 0000:a433* __exit_with_msg_ 0000:a436 __fatal_runtime_error_ Module: s:\sys\watcom\lib286\dos\clibc.lib(seg086) 0000:a44e __DOSseg__ Module: s:\sys\watcom\lib286\dos\clibc.lib(dosret) 0000:a44f _dosret0_ 0000:a456* _dosretax_ 0000:a45b __set_errno_dos_ Module: s:\sys\watcom\lib286\dos\clibc.lib(iomode) 0000:a4b7 __IOMode_ 0000:a515 __SetIOMode_ 186c:6ade+ ___NFiles 186c:6ae0+ ___init_mode 186c:6b08+ __iomode Module: s:\sys\watcom\lib286\dos\clibc.lib(d2ttime) 0000:a530 _d2ttime_ Module: s:\sys\watcom\lib286\dos\clibc.lib(filelen) 0000:a595 filelength_ Module: s:\sys\watcom\lib286\dos\clibc.lib(bits) 0000:a5ed __setbits_ 186c:5f16 __Bits Module: s:\sys\watcom\lib286\dos\clibc.lib(i4m) 0000:a648 __I4M 0000:a648 __U4M Module: s:\sys\watcom\lib286\dos\clibc.lib(errno) 0000:a660 __get_errno_ptr_ 0000:a667 __get_doserrno_ptr_ 186c:6fb4+ __doserrno 186c:6fb6+ _errno Module: s:\sys\watcom\lib286\dos\clibc.lib(strerror) 0000:a7ab strerror_ 186c:6b0c* _sys_nerr 186c:6b0e+ _sys_errlist Module: s:\sys\watcom\lib286\dos\clibc.lib(gtpid) 0000:a7d4 getpid_ Module: s:\sys\watcom\lib286\dos\clibc.lib(ftell) 0000:a7df ftell_ Module: s:\sys\watcom\lib286\dos\clibc.lib(lseek) 0000:a833 lseek_ 0000:a833* _lseek_ Module: s:\sys\watcom\lib286\dos\clibc.lib(_clse) 0000:a873 __close_ Module: s:\sys\watcom\lib286\dos\clibc.lib(remove) 0000:a89e remove_ Module: s:\sys\watcom\lib286\dos\clibc.lib(fmsize) 0000:a8a1 _fmsize_ 0000:a8a1* _msize_ Module: s:\sys\watcom\lib286\dos\clibc.lib(nexpand) 0000:a8b2 __HeapManager_expand_ 0000:aa3e _nexpand_ Module: s:\sys\watcom\lib286\dos\clibc.lib(fexpand) 0000:aa8e _fexpand_ 0000:aa8e* _expand_ Module: s:\sys\watcom\lib286\dos\clibc.lib(grownear) 0000:ab44 __LastFree_ 0000:ab70 __ExpandDGROUP_ Module: s:\sys\watcom\lib286\dos\clibc.lib(nmemneed) 0000:acb6 __nmemneed_ Module: s:\sys\watcom\lib286\dos\clibc.lib(initfile) 0000:ace9 __InitFiles_ Module: s:\sys\watcom\lib286\dos\clibc.lib(ioexit) 0000:ad8c __full_io_exit_ 0000:ad94* fcloseall_ Module: s:\sys\watcom\lib286\dos\clibc.lib(qwrit) 0000:ae18 __qwrite_ Module: s:\sys\watcom\lib286\dos\clibc.lib(heapen) 0000:ae75* _heapenable_ 186c:6b4e ___heap_enabled Module: s:\sys\watcom\lib286\dos\clibc.lib(amblksiz) 186c:6b50 __amblksiz Module: s:\sys\watcom\lib286\dos\clibc.lib(setenvp) 0000:ae88 __setenvp_ Module: s:\sys\watcom\lib286\dos\clibc.lib(itoa) 0000:afad+ utoa_ 0000:b006 itoa_ 0000:b006* _itoa_ Module: s:\sys\watcom\lib286\dos\clibc.lib(noefgfmt) 186c:6b52 ___EFG_printf 186c:6b54* ___EFG_scanf Module: s:\sys\watcom\lib286\dos\clibc.lib(ltoa) 0000:b07e ultoa_ 0000:b0e9 ltoa_ 0000:b115* _ltoa_ Module: s:\sys\watcom\lib286\dos\clibc.lib(isatt) 0000:b122 isatty_ Module: s:\sys\watcom\lib286\dos\clibc.lib(umaskval) 186c:6b56 ___umaskval Module: s:\sys\watcom\lib286\dos\clibc.lib(tell) 0000:b13e tell_ Module: s:\sys\watcom\lib286\dos\clibc.lib(heapgrow) 0000:b14d* _heapgrow_ 0000:b14d* _fheapgrow_ 0000:b14e _nheapgrow_ Module: s:\sys\watcom\lib286\dos\clibc.lib(enterdb) 0000:b1c2 __EnterWVIDEO_ 186c:6b58+ ___WD_Present Module: s:\sys\watcom\lib286\dos\clibc.lib(mktime) 0000:b1e9 mktime_ Module: s:\sys\watcom\lib286\dos\clibc.lib(unlnk) 0000:b3b3 unlink_ Module: s:\sys\watcom\lib286\dos\clibc.lib(bfree) 0000:b3d2 _bfree_ Module: s:\sys\watcom\lib286\dos\clibc.lib(bexpand) 0000:b3f0 _bexpand_ Module: s:\sys\watcom\lib286\dos\clibc.lib(sbrk) 0000:b445* sbrk_ 0000:b456 __brk_ Module: s:\sys\watcom\lib286\dos\clibc.lib(timeutil) 0000:b4bd ___diyr 0000:b4d7 ___dilyr 0000:b4f1 __leapyear_ 0000:b61e __isindst_ Module: s:\sys\watcom\lib286\dos\clibc.lib(gmtime) 0000:b8ae __brktime_ 0000:ba33+ _gmtime_ 0000:ba5a* gmtime_ Module: s:\sys\watcom\lib286\dos\clibc.lib(tzset) 186c:6b5a ___start_dst 186c:6b6c ___end_dst 186c:6b7e _timezone 186c:6b82 ___dst_adjust 186c:6b84+ _daylight 0000:ba6b* tryOSTimeZone_ 0000:ba6c tzset_ 0000:bd02+ __parse_tz_ 186c:6bc4* _tzname Module: s:\sys\watcom\lib286\dos\clibc.lib(i4d) 0000:bdb2* __I4D 0000:bdff __U4D +--------------------+ | Libraries Used | +--------------------+ s:\sys\watcom\lib286\dos\clibc.lib +-----------------------+ | Linker Statistics | +-----------------------+ Stack size: 8000 (32768.) Memory size: 00027690 (161424.) Entry point address: 0000:7eae bibclean-3.07/ibmpc/dos/wat10/wcc/config.h0000644000156700015670000001173506141132037017115 0ustar beebebeebe/* config.h. Generated automatically by configure. */ /* WARNING: Do NOT edit the config.h file; instead, put any needed changes in custom.h, so that they can override assumptions made in the automatically-generated config.h file */ #define STDC_HEADERS 1 /* #undef _ALL_SOURCE */ /* #undef _POSIX_SOURCE */ #define HAVE_STDC 1 /* Define if you want old pattern-less string matching in .ini files */ /* #undef HAVE_OLDCODE */ /* Define if you want standard bibclean-specific pattern in .ini files */ #define HAVE_PATTERNS 1 /* Define if you want regular-expression patterns in .ini files using re_comp() */ /* #undef HAVE_RECOMP */ /* #undef HAVE_REGEXP */ #if !(defined(__cplusplus) || defined(c_plusplus)) /* Define to empty if the keyword does not work, but do nothing in */ /* C++ environment, because autoconf 2.4 gets the wrong answer from */ /* the AC_C_CONST test program under C++ compilation. */ /* #undef const */ #endif /* Define if your free() requires (char*) cast instead of (void*) */ /* #undef FREE_CAST_IS_CHAR_STAR */ /* Define if your compiler recognizes \a as an alert (ASCII BEL) character */ #define HAVE_ALERT_CHAR 1 /* Library functions that we need */ #define HAVE_GETCWD 1 #define HAVE_GETWD 1 #define HAVE_STRCSPN 1 /* #undef HAVE_STRDUP */ #define HAVE_STRSPN 1 #define HAVE_STRSTR 1 #define HAVE_STRTOD 1 #define HAVE_STRTOL 1 /* Header files that we might need */ #define HAVE_CONIO_H 1 #define HAVE_CTYPE_H 1 /* #undef HAVE_DESCRIP_H */ #define HAVE_ERRNO_H 1 #define HAVE_FCNTL_H 1 /* #undef HAVE_IODEF_H */ #define HAVE_IO_H 1 /* #undef HAVE_JPIDEF_H */ #define HAVE_LIMITS_H 1 /* #undef HAVE_OSFCN_H */ /* #undef HAVE_PWD_H */ #define HAVE_REGEXP_H 1 /* #undef HAVE_REGEX_H */ /* #undef HAVE_RMS_H */ #define HAVE_SGTTY_H 1 /* #undef HAVE_SSDEF_H */ /* #undef HAVE_STAT_H */ /* #undef HAVE_STDDEF_H */ #define HAVE_STDIO_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 /* #undef HAVE_SYS_IOCTL_H */ /* #undef HAVE_SYS_PARAM_H */ #define HAVE_SYS_STAT_H 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_TERMIOS_H 1 #define HAVE_TERMIO_H 1 #define HAVE_TIME_H 1 /* #undef HAVE_TT2DEF_H */ /* #undef HAVE_TTDEF_H */ /* #undef HAVE_TYPES_H */ #define HAVE_UNISTD_H 1 /* #undef HAVE_UNIXIO_H */ #define RCSID(s) static char rcsid[] = s; #define OS_PCDOS 1 /* NB: some systems have Standard C header files, but compilers that do not accept function prototypes (e.g. HP HP-UX 9.0.3 /bin/cc) */ #if defined(STDC_HEADERS) && (defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)) #define ARGS(plist) plist #define VOID void #else #define ARGS(plist) () #define VOID #endif #define SCREEN_LINES 24 /*********************************************************************** The limit on file name lengths is non-standard: -------- ------------- ------------------------------------------ Name Definition System -------- ------------- ------------------------------------------ FNMAX PCC-20 MAXPATH Turbo C 2.0, C and C++ 3.0, and TopSpeed C _MAX_PATH Microsoft C 5.0, 6.0, 7.0 and TopSpeed C MAXPATHLEN Sun OS (4.2BSD), 4.3BSD, Gould UTX/32, HPUX, KCC-20, AIX (RT, RS, PS/2, 370), HP/Apollo DomainOS, DEC Alpha (OSF/1) PATH_MAX SYS V (Silicon Graphics) PATH_MAX POSIX, DEC Alpha (OSF/1) FILENAME_MAX Intel RMX, NeXT Mach, Turbo C/C++ 3.0 -------- ------------- ------------------------------------------ ***********************************************************************/ #if defined(HAVE_SYS_PARAM_H) #include #endif #if defined(HAVE_LIMITS_H) #include #endif #if defined(HAVE_STDLIB_H) #include #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN FNMAX #endif #if !defined(MAXPATHLEN) && defined(MAXPATH) #define MAXPATHLEN MAXPATH #endif #if !defined(MAXPATHLEN) && defined(_MAX_PATH) #define MAXPATHLEN _MAX_PATH #endif #if !defined(MAXPATHLEN) && defined(PATH_MAX) #define MAXPATHLEN PATH_MAX #endif #if !defined(MAXPATHLEN) && defined(FILENAME_MAX) #define MAXPATHLEN FILENAME_MAX #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN 1024 #endif #if defined(OS_PCDOS) #define SEP_COMP " ;,|" /* separators between filename components */ #define SEP_PATH "\\" /* separators between directory path and filename */ #endif #if defined(OS_UNIX) #define SEP_COMP " ;:,|" /* separators between filename components */ #define SEP_PATH "/" /* separators between directory path and filename */ #endif #include #include #if !defined(HAVE_IOCTL_PROTOTYPE) #if defined(__cplusplus) || defined(c_plusplus) /* system files should have: extern "C" {int ioctl ARGS((int, int, ...));} */ #else extern int ioctl ARGS((int, int, ...)); #endif #endif #if defined(FREE_CAST_IS_CHAR_STAR) #define FREE(p) free((char*)(p)) #else #define FREE(p) free((void*)(p)) #endif bibclean-3.07/ibmpc/dos/wat10/wcc/ibmtest.bat0000644000156700015670000001342206142015343017632 0ustar beebebeebeecho off break on REM ===================================================================== REM Test bibclean on IBM PC DOS. REM The funny backspace in echo commands is just to get a blank REM line, rather than the current echo status. REM [01-May-1996] REM ===================================================================== echo ================== begin BibTeX test 1 =================== echo bibclean -init bibclean.ini -err testbib1.err testbib1.org bibclean -init bibclean.ini -err testbib1.err testbib1.org >testbib1.bib echo  echo There should be no differences found: echo diff testbib1.bok testbib1.bib diff testbib1.bok testbib1.bib echo  echo There should be no differences found: echo diff testbib1.eok testbib1.err diff testbib1.eok testbib1.err echo =================== end BibTeX test 1 ==================== echo ================== begin BibTeX test 2 =================== echo bibclean -init bibclean.ini -no-check-values -err testbib2.err testbib2.org bibclean -init bibclean.ini -no-check-values -err testbib2.err testbib2.org >testbib2.bib echo  echo There should be no differences found: echo diff testbib2.bok testbib2.bib diff testbib2.bok testbib2.bib echo  echo There should be no differences found: echo diff testbib2.eok testbib2.err diff testbib2.eok testbib2.err echo =================== end BibTeX test 2 ==================== echo ================== begin BibTeX test 3 =================== echo bibclean -init bibclean.ini -fix-font-change -err testbib3.err testbib3.org bibclean -init bibclean.ini -fix-font-change -err testbib3.err testbib3.org >testbib3.bib echo  echo There should be no differences found: echo diff testbib3.bok testbib3.bib diff testbib3.bok testbib3.bib echo  echo There should be no differences found: echo diff testbib3.eok testbib3.err diff testbib3.eok testbib3.err echo =================== end BibTeX test 3 ==================== echo ================== begin BibTeX test 4 =================== echo bibclean -init bibclean.ini -fix-font-change -err testbib4.err testbib4.org bibclean -init bibclean.ini -fix-font-change -err testbib4.err testbib4.org >testbib4.bib echo  echo There should be no differences found: echo diff testbib4.bok testbib4.bib diff testbib4.bok testbib4.bib echo  echo There should be no differences found: echo diff testbib4.eok testbib4.err diff testbib4.eok testbib4.err echo =================== end BibTeX test 4 ==================== echo ================== begin BibTeX test 5 =================== echo bibclean -init bibclean.ini -German-style -err testbib5.err testbib5.org bibclean -init bibclean.ini -German-style -err testbib5.err testbib5.org >testbib5.bib echo  echo There should be no differences found: echo diff testbib5.bok testbib5.bib diff testbib5.bok testbib5.bib echo  echo There should be no differences found: echo diff testbib5.eok testbib5.err diff testbib5.eok testbib5.err echo =================== end BibTeX test 5 ==================== echo ================== begin BibTeX test 6 =================== echo bibclean -init bibclean.ini -err testisxn.err testisxn.org bibclean -init bibclean.ini -err testisxn.err testisxn.org >testisxn.bib echo  echo There should be no differences found: echo diff testisxn.bok testisxn.bib diff testisxn.bok testisxn.bib echo  echo There should be no differences found: echo diff testisxn.eok testisxn.err diff testisxn.eok testisxn.err echo =================== end BibTeX test 6 =================== echo ================== begin BibTeX test 7 =================== echo bibclean -init bibclean.ini -err testcodn.err testcodn.org bibclean -init bibclean.ini -err testcodn.err testcodn.org >testcodn.bib echo  echo There should be no differences found: echo diff testcodn.bok testcodn.bib diff testcodn.bok testcodn.bib echo  echo There should be no differences found: echo diff testcodn.eok testcodn.err diff testcodn.eok testcodn.err echo =================== end BibTeX test 7 =================== echo ================== begin Scribe test 1 =================== echo bibclean -init bibclean.ini -err testscr1.err -scribe -no-check testscr1.org bibclean -init bibclean.ini -err testscr1.err -scribe -no-check testscr1.org >testscr1.bib echo  echo There should be no differences found: echo diff testscr1.bok testscr1.bib diff testscr1.bok testscr1.bib echo  echo There should be no differences found: echo diff testscr1.eok testscr1.err diff testscr1.eok testscr1.err echo =================== end Scribe test 1 ==================== echo ==================== begin Scribe test 2 ===================== echo  bibclean -err testscr2.err -init-file bibclean.ini -scribe -file -no-check testscr2.org >testscr2.bib echo  echo There should be no differences found: echo diff testscr2.bok testscr2.bib echo  echo There should be no differences found: echo diff testscr2.eok testscr2.err echo  echo  bibclean -err testscr2.er2 -init-file bibclean.ini -scribe -file -no-check -no-par testscr2.org >testscr2.bi2 echo  echo There should be no differences found: echo diff testscr2.bo2 testscr2.bi2 echo  echo There should be no differences found: echo diff testscr2.eo2 testscr2.er2 echo  echo ===================== end Scribe test 2 ====================== echo ================== begin Scribe test 3 =================== echo bibclean -init bibclean.ini -err testscr3.err -scribe -no-check testscr3.org bibclean -init bibclean.ini -err testscr3.err -scribe -no-check testscr3.org >testscr3.bib echo  echo There should be no differences found: echo diff testscr3.bok testscr3.bib diff testscr3.bok testscr3.bib echo  echo There should be no differences found: echo diff testscr3.eok testscr3.err diff testscr3.eok testscr3.err echo =================== end Scribe test 3 ==================== bibclean-3.07/ibmpc/dos/wat10/wcc/watpath.bat0000644000156700015670000000047606142125534017644 0ustar beebebeebe:# Set paths for WATCOM 10.0 compiler SET EDPATH=s:\sys\watcom\EDDAT REM PATH s:\sys\watcom\BIN;s:\sys\watcom\BINB;%path% PATH s:\sys\watcom\BIN;s:\sys\watcom\BINW;s:\sys\watcom\BINB;%path% REM SET INCLUDE=s:\sys\watcom\H SET INCLUDE=s:\sys\watcom\H;s:\sys\watcom\H\win SET WATCOM=s:\sys\watcom SET DOS4G=quiet bibclean-3.07/ibmpc/dos/wat10/wcc/watwcc.bat0000644000156700015670000000124706142135303017454 0ustar beebebeebe:# Compile bibclean with the Watcom C/C++ 10.0 compiler :# [02-May-1996] wcc -I. -mc -ox -zq -zt512 bibclean.c wcc -I. -mc -ox -zq -zt512 chek.c wcc -I. -mc -ox -zq -zt512 do.c wcc -I. -mc -ox -zq -zt512 fix.c wcc -I. -mc -ox -zq -zt512 fndfil.c wcc -I. -mc -ox -zq -zt512 isbn.c wcc -I. -mc -ox -zq -zt512 keybrd.c wcc -I. -mc -ox -zq -zt512 match.c wcc -I. -mc -ox -zq -zt512 -DHOST="plot79.math.utah.edu" -DUSER="beebe" option.c wcc -I. -mc -ox -zq -zt512 romtol.c wcc -I. -mc -ox -zq -zt512 strist.c wcc -I. -mc -ox -zq -zt512 wildargv.c wcl -k32768 -mc -ox -fm=bibclean.map bibclean.obj c*.obj d*.obj f*.obj i*.obj k*.obj m*.obj o*.obj r*.obj s*.obj w*.obj bibclean-3.07/ibmpc/dos/wat10/wcc/bibclean.exe0000755000156700015670000040474406142140273017754 0ustar beebebeebeMZt?i~ 4kl0kl,kl(kl$kl klklklklkl֧ǩSG ɪƪϫzM3qD9z6TTűR'j޳^H]N2ݹӹ`;/klklhlhlhlhl~hlzhlvhlrhlnhljhlfhlbhl^hlVhlRhlNhlJhlFhlBhl>hl:hl6hl2hl.hl*hl&hl"hlhl* & "        hl}jlwwxnx_xPxizFz$zyzzzU| |}@~+~}Ӏ\Ylքʄ "G̈ΏƏYKH.?ϡ~n kl#kdçLklHklDkl@kl : 6 2 . * & Z V R N J F B > : 6 2 . * & "        ~ z v r n j f b ^ upNphl ~ z v r n j f b ^ Z V R ~ z v r n j f b ^ Z V R N J F B > : 6 2 . * & "        "        k`Q` ~ z v r n j f b ^ Z V R N J F B > : 6 2 . * & "  flflflflflfl~flvflnflffl^flVflNflFfl>fl6flVglNglFgl>gl6gl.gl&glglglglglflflflflflflflflflflhlhl hlhlhlglglglglglglglglglglglglglglglgl~glvglnglfgl^glN J F B > : 6 2 . * & "        ~ z v r n j f b ^ Z V R N J ~ z v r n j f b ^ Z V R N J F B > : 6 2 . * & "              N J F B > : 6 2 . * & "        ޾ ھ    ޿ ڿ ֿ ҿ ο ʿ ƿ ¿ ~ z v ~ z v r n j f b ^ Z V R N J F B > : 6 2 . * & "     F B > : 6 2 . * & "        n j ~ z v r n j f b ^ Z V R N J F B > : 6 2 . * & "       : 6 2 . * & "        ޽ ڽ ֽ ҽ ν ʽ ƽ ½ ־ Ҿ ξ ʾ ƾ ¾ ~ z v r n j f b ^ Z V R N J F B > r n j f b ^ Z V R YYYZZZZkZbZEZ8ZZZʻ ƻ » ~ z v r n j f b ^ Z V R N J F B > : 6 2 f b ^ Z V R N J F B > : 6 2 . * & "        ޻ ڻ ֻ һ λ  ޼ ڼ ּ Ҽ μ ʼ Ƽ ¼ ~ z v r D5N8:d:G;+;< =>==@c@^@.A@AA|ApABBB;BBBCCDDDDoDoE0FEEEFoGgGsHgHKH0HHHHyJoJeJZJKLLfM-MMNMMMMOOwO`O'OOOO~dlvdlndlfdl^dlNdlFdl>dl6dl.dl&dldldldldl PJQ8Q-QQPRRR[RS!SSTTTTuTgUTU UqVQVUUWWWWW_WXXX YYXXXXYYY\blXblTblPblLblHblDbl@bl_~C6.k6k6_ 6_؊P< u6l6l6l6l[6.l6l[S6>_~ 6_؀O tSQRW 6>_ظ ƅPO~ ؀O u|S ؀P uG"iPьƅP@u"i u] P߹1I6_QP6>_~"iP t6_"iv_S6>_~ 6_؊O0[ø[S6_KÅ|6;_} ؊P0[ø[SR6>_ | u6l6l6l6 l 6l6l 6_6k6kCO6_Z[SQVWù6_? 6_lؾkRP66Fl66Dl66k66kPP66l66lu6l6l 6l6ltѸ"i"iь"iь"i{"iьn"iь _^Y[RPPP66l66lttSQVWUPRF1C<%uXFvv!s_~6_6_6lF6l~G u7&< t&<u6l6lrO6l7DG&0É6k6ku 6_ u86_6k6k6k6k6k6k6k6k066kσ6k6^u6k6k6_? u06k6k6k6k6k6k6k6k6k6k6k66k6k={u6_ =}u6__^ZY[SRU1F=t*^06^t= rv= t BˋF ~ 1]Z[SRVW116>_u86>_u6>_t6>_u6>_t6_ =tG06^t9= rv= t6>_u 6>_u,F6>_u6>_tG믃~16__^Z[SRV1_  މppqމpppu u ŷpDŷpDŷpD } ؋ppuuxSQRV6>_u)06^u=.t=#t =&t=%uC1>06^ uо،ڊ:t F<u++҅u΅RVWU ljމN$qut$qFVF0VF6_6_6l4iN6l^FFFD6l6lZ 6k=6k>6k6kie6>_uE^ҋNq&6>_uJ^ҋNp&N3d6_6 _u6>_uH6_6_N#S6>_t1]_^ZVWUljVFڎ^֎9w*9s$FىKHK&NvH&FCw]_^VƉ؉ICw^SQTY[= r vU= ue\4]W Q06^u0 =%u rK=t= uà t t6>_uA t_F)Dž}1I;~}A~;G7>[rމ^NЋTZiߋDuuISQ eURPdPVR2nF ]VWU>vljV^ tt tttthSNVQ^mщ^ t"t t&t$ttSNVQ^mщ]_^SQVWÉ<r vJ< t <t]y6>_uP6lG66lx6;_ uI6;_vBF T N6>_u2* 66>_ui߀ u Cߊ0C߀?t]y JZVWUlj։^N6>_tщ6l6lщ6l6lpщd^NW lщS?^N94lщS!^NlщSRUFʉ6>_u 6>_u16>_u6>_t6>_uA^Fш^ËF]ZRVUFـ?tj6_6_6;nl| u!6;lls\l6ll6nl6_6_F104 F06__6a_ j"d< r vI<rv\<"r$v$<\t < vM<t9u< rvK< v,P<tc\ ي0\b\f \nb!\r\t\vظ\nي06^t봊PPVRjF Cـ?t)" {]^ZS%<rv<t  Wڊ0LCڀ?u[؉6_#6_SQY[SRV6>_ | .{6_C6_6.k6k06l6^u6_=u6_N= u"66k6k6.k6k66k6k'= u6k66k6k66k 6.k6k={u6_=}t6_SQVWƉӉǎ¹1I@tgljхu uXێW&<tD&E<u_ʉuVWUƉV^<t@06^t i0ي06^th9uFC븎^06^t h0ي06^th)‰IVWUƉVNNE^06^trh0^Š6^tTh09|14FCIv^<t^?uu1^<u ^?tVWlji6>_u0u um=PRVWvPyP66l66lcȉ_^SQVW6>_toйlؾkRP66Fl66Dl66k66kvP6>_u=PRP66lv66l>c6l6l6l6lcqSQVW։ˎ106^uC@?uˎÀ?t<@8]R6>_uZSU:Îڀu?W0Ru?W0Ru?W0Ru?W0Ru?W0Ru?W0R`PFPfF][SQVWUVӌЍ~ؾF‰1Iȍ~)!ЉЎێ^W_FRьFKVRW`PVReF ]_^Y[SU>Îڀu?W0Ru?W0Ru?W0Ru?W0Ru?W0Ru?W0Ru?W0Ru?W0R`PFPdFSQR 0ع pp <t`SQR)0 RSQU6_6lыG ^`j^ 6.ijF`;F u-Fd;F$u%Fr;F2uFp;F0uF~;F>u F|;F_u =r7ZSQRVW 01Iu110 ratat4l؋panauׅuӸ 0ع pp<t_vSQR 0ع ppeSQRV19@ Ћp#u# 0ع pp@t&  ؋ppuuSQR 0ع ppVWUƉV^NF1OVOËFO<u1^NjE]ut؀??u G،FF;D||u1]_^SQR 0ع %p'pVSQRVU 0ع -p/pC<tT 0B06^ t3 ^ьPYi|u=r u =3v/5vF<u]=a| =z-`=A| =Z-@=1| =9-=0u$øQVWUljV^ FK11҉^^ !?-t06^u ֊B& C@;Fs;VrՎ^׋^ ÎF C@&?-t&06^uV)‰Љ]_^YSQUHÎڊGOWN00POGNPfRfv_v0SPRvvS`PVR_F KSu6&a6>&av =-u[6>&as06^t 6&a[6>&ar06^u0[Su6(a6>(av=-t06^t[6>(a s06^ t 6(a[6>(a r06^ u=Xt=xt0[Su6*a6>*av=-t06^t[6>*as06^ t 6*a[6>*ar06^ u=Xt=xt0[U FV^FgF~t ^FV݉]SQVWÉ׎ڋwGw1ɉGAGw<tʊ0<tߋOG)O LSQVWUÉVڋGOG1O1^=(uA =)uIu1^FG^=t^0tDžÎ^wG)Ɖw uNRxQVWU ~SRFQҥ1ɿF.sC0s6,au6:CtFWGȻ"Ӏ{uŒЍ~1Iu6҈FF ~1Iu~vF]_^YQVWU~S RFQҥ1ɿ FS s{Xt{xu C0-0.u,{Xt{xu C0ƃ0ș9tFG{uЍ~1I u ~wIF>QVWU~FS RFQҥ@1ɿ FWs {Xt{xu C0-0f.u,{Xt{xu C0ƃ0ș9tFFG{uЍ~1Iu ~wF{VWUPRSQvЎ^ uON1)tɃu Fkl^ڋG;GuF1~]Ӌv?^ uON1)tɃub^^~]ӋWGut0~u~ t$v ǎ¦uON1)tɃtP~u~ u F V =F V^^~ً^v]v GN W^FF^^F;G}FV ^_~ ˉW~u~ uV FF VNӉ‰؎^^_~C]]ˉWGv^N Fv V,]_^VWUljV^NF1_u'@u"6_B6>_t)!6_BtлdѸ(QVW%6>_tV6>_tN6>_u6>_t2п ئuON1)tɃu >  uON1)tɃu uON1)tɃufE6>_u?]6>_tM) 6>_t?6>_t1 <u6>_t6>_6>_t &_^Y6>_ubQRVWй4lؾk 0"=#u46>_u 6>_u6>_u6>_t` Z&_^ZYSQRVWй4lؾk "Ƹ 0ڌW&<tD&E<u_ى>0"u005=#ue軨軪 !Ƹ ڌW&<tD&E<u_ى>0"u0ьFSQRVWй4lؾkމ=t^=,u6>_uQ#I6;_u2=)u6_6>_u)u6_Ɖл+ Ѹ v ь6_SQRVWUй\lؾkF1;Nu06^u b;Nu06^tS;Ns06^@tS6:_u&6>_u vظ Ƈ 2p~r# vюظ Ƈ F vF G݉=t t1 vƄ t1۾ 6ĿbئuON1)tɃu) 6ŷbW&<tD&E<u_8u6>_u п ئuON1)tɃu \ uON1)tɃu 1 uON1)tɃu  F ]_^ZY[SQRVWй4lؾk\lk=t==u" ьX6]_6+lSQVWUljVutKƉVT=\uNG_u06^@t %Oڸ ^F@ىÃt ۅtpt ^Ƈ@6>_uW1۾@ 6ĿbئuON1)tɃu-@ 6ŷbW&<tD&E<u_ 1|@ PX Wu\ P@J~w$6>_u0{6>_t6>_t ؀>@t6b6b6>_u 6>_t6>_t6>_uX 6>_t6>_tRVWUًGWuu6k` i6kFN^f ތЋ4ڎuON1)tɃu6k` i6k}^ыWh Ӆu0u,^w7k Pn P66l66lH U5~~Qvt6k66k6>_u,ȉNȉUFF^Wt,u]_^ZSQRVWUSFF 6>_t@^6>_uL,V։=t6>_u6>_)u6;_u 6_}6>_u @u 6>_u}u 6>_uй\lؾkՉ={u 6_}5=(t$ Ҏ؉ ߸ !6_)6_v{DՉÁr% ҋ^ю^ 5Ύ^vA6;_u =)u6_6>_tu^˸ G}^#VWU,6l6lutbU ƉхutN[ÉVut3^06^tC>t V ËV빉S]_^SQRVWй\lؾkԉ13r юظڈW ƄS F؈VԉÃt,t06^t Ƅt6>_u ݉SQVWU Ɖ׍^Fm PV=FVut=~u~t4^06^t1^^06^t F) <t ^?=t?:u^?=t?:uF^^06^tF^?"ut ^ьPFFVut\^^06^tF^?"u&t ^ьPFW^NRVPFc} ?t?%u ^1NP66l66lWVk Py P66l66lDD9 = uh6>_t#6>_u6>_t6>_t6>_u6l6lk+6_6>_u6>_u6>_u ׸ 6>_t SQR=u={u 6_}=(u6_)6_׻ SQRVWUZ= s= v61IډύDQ֎^EE6>_u16>_u)ЉVNƎىŠ0= rv=%t46>_u6>_uSQRVTÎډƎŠ< r< v.< sv%<%t:< rv6b6b0J6b6b&03뤸 6_6__6_SQRVWUFF 6_6_1=@u6>_u5 ցrDڈW1^ uC~&06^t,6^t ցBڈ$v^ցBω=t`^Fӌ6_6_6_6>_u6>_tp6>_tbSQR=u{6;_t=)u6_6>_t޻SQRVWUoF ƌщ܅u2J Յ G(ωF=u ={r v`=}t`lr=@udϻ FΌь҈FΈFFFۅu ! ƌщۅuFF~NFpo}SQRUbΉ6>_u6>_uFҍFF`t[6;_u)u6_YEԈӉ00P6^u?6_R0P66_cPV^RCى]SR~16>_t8{t }u J}B͉Ãt 6;_uJZ[QVW*6>_u6>_tZ6>_uTS6>_tٌп+ ئuON1)tɃuL-3 uON1)tɃu uON1)tɃuu6>_ui6>_u6_6_6>_t6>_tsn<ui6>_t6>_6>_tK6_^SQRVn̉=uUоb،ڊ:t F<u++҅uuҌьһ9 b6b06_  SQRVWUй4lؾk6>b u 6>bv1ˉ6>_u6>_uFҍFFit0=t/u!u Rл bьѸ6]_6+lcQRVWй4lؾkw 0Ƹ ڎW&<tD&E<u_6>_t 6>_t0 6ySQUFV6l^F6lFt PFD^FVѸt VPF+FFFVu u^2]Y[SQRVWUFF й\lؾk1yʉF ؉frN6>_u :/6>_t 6>_u6>_t6>_u6>_u/1ҊFӎBʉF~t^06^t ~ t|^^6>_u ^86>_uF&6>_u6>_t6>_u6>_u FVыF_u2P6>_tt6>_tSQVWƉ׎ڃ|u3=\TI߉TߋDu u BƎ߃DR6>_tʉԃtC@ZSQVWUFF 6_ȉ 1116:_u16>_u)ȋV?ԋF^)6_^،]_^Y[Ár$^^FGڈ 6_^ă us u6:_u06>_uZ U06^u{uF=}uN5\u0 ߎ؁C lj=\u ߎ؁C !vӉхt ߎ؁C t"06^tGljt^F^11={uF=}uNF؎^ǀ="uJ~uD6>bu?E<'rv<-<"uF~Ƃ{FCƂ"߃^Ƃ{F Ƃ"FƂ}F}\tn}{uh}tb}{t\}}tV}}uPNKƂ{߃C~߈C~߈~C߈~C~FƂ}I~^߀}\uN~Ƃ{FCƂ\FƂ"ǃƂ{Ƃ"뿋~^FC~^߀=t sVƆ"Ƃ"Ƃ؃u> 6_~ЎFW&<tD&E<u_SQVWU F غ"9r%^֌шڈd[ Ў^ ֎؁BʼnÃt06^ uЉӎ^B"ӋV׉gSQVWUĿF 1=r$^G -Ў^" ގ؁C~ĉƒt UDžu"Љ^Vމ{SQVWU FF 6ĉ6>_uX=%uSл\lؾk 1%Lu06^tAr^މк%vC %, uA ގ؁CɃu^^ZϋFV+SQVWUljV6l0 6l ر 0v06l6lW6+lDutP66lڊ:t F<u++66l6lut(6>l0v66l|\u6l66l됸 ؀>0u^E t11v0 mSQ» = r v=%t = r= wGaNÉ SΎ؉Y[6>_u 6>_u6>_u6>_t6>_u6>_t6>_u06>_u( 6>_u6>_u ø ø SQVWUF 6_‰ø 1Ɏ1[6>_u(6>_u ؋V͉6_^Zr^щ֌ڈ D2̃ u t u6>_u06>_uZ U06^u{uA=}uI5\u0 ֎؁B==\u ֎؁B1ۅt ֎؁B"u\vWuS ր|\ua=t9 ֎؁B{ցB\ցB"ցBցB}06^tQÃt^։xӃu 6_Vb6b0F‰ø غ"6>_u.6>_u&^v֋VˋFˎ^^F F ѿAF ωȉ~@ljF~"un^|\uPʿ={u^D{\^v"^D{\^vV"^B }{^v"^ u ^ u&6>_u 6>_u Ј06^t^ <\u2^=\u^vʈSÅt^vV^^06^t|¾Bt~\t;^t1t s]^^"GrFь aЋ^hыVSQVWU[F ¸ ؉" C4F‰trɉ^"DrFщɎ^GV ὉɉthSQVWUýFFÈоbF ڊ:t F<u++҅t0u юظڈ ɸ ؉SQVWU FF =u ظ6>_u6>_uȸ ЉȌй\lؾk{uz06^ tjf"u[6^tMuь>^3VWU ~ V^NÉVut^06^tC~ut ^?t?%u1ۉ^^^?"udC^^^?\uCC?t?"u^?"uFV\}66l66lvPk PP66l66l-.N^^C^?t%?%t vߌڊ:t F<u++҅utҎ^?t?%u1ۉ^CvFVGF+6_6_6_6_ 6_ظ  ظ @ظ 0SQ ȉY[SÎGGGG G GGG[SQY[SQR6_6_c6_SQRVWU0F ڊ:t F<u++҉Ѕu/u+ـ="u0ĎF1IYIގڋNى="u0ÎF1I&͍|ډVڊ:t F<u++҅uu0Ɍڊ:t F<u++ҋN ډÎF1ỈV|^=tSQ6>_uQ6>_u6>_u =oY[6>_u6>_t V6>_u6]_6+l-ȸ=9 »LY[SQR6>_u6>_u6[_Mȸ@ Lݻ@ 6>_u0SQ SQVÎ6>_u06^t ?%u  \SQRVW"6>_uO6>_uG\d@ 6>_uOп 0ئuON1)tɃt1td@ 蛲u6>_t\ P@6uk @1IvT 01Iv=ƽ @1I@Q@:z6]_6+lC6>_u;п 0ئuON1)tɃuU6_icVWUƉϋN ЋV6>_tՅut߀?u$PV66l66lP66l66l)ԅu*u&WSPV66l66lP66l66l(QRWSPV66l66l9P66l66l(}SQVWljƎ0Ɍڊ:t F<u++ҍ\ ڊ0\K9s1SQRVW 01I؉π>0"uX006^tHC9s ؊006^u G0)߉W0蝺 01Iϸ ؀/"tډKv ؊/06^u ؀/\u v/\tK Ƈ/"Ƈ0SQRVWU FF FFF1)0<{rv<}t*F~u^w^006^tF<{tθlьP4u~pVP3titVP3tTxVP3t?|VP3t*VP3tVP3u7 F؁G{"~u~u F؁G}N v F0G& ^؀0t^~vkSQVWUPR6>_u~(Ǝڌڊ:t F<u++҅utFW^111&{r v}t ,t@ HuތC?uՅu u FvF06^u 0W&<tD&E<u_о؋VWO<t D<u_F8<uSЎظ WO<t D<u_v^WO<t D<u_о v ^WO<t D<u_0 ~FW&<tD&E<u_Ɖ]_^Y[SQRVWU FF 0 ~uڋ^^FFߋna1I;NtQnapa^N貿uFЋ~ؾ^lv؋~rataWO<t D<u_оWO<t D<u_^0Ɍڊ:t F<u++FvVFl^؋panat+uv^NFV#FF11^щljVЉ~tu^Fָ ؁F uON1)tɃu GVPF/uv0  v 0W&<tD&E<u_]_^ZY[SQRVWU 01II؉N>0"uʉˀ0"uF6Ƈ00 P^/uu ^؉Ƈ0oƌЎڎWO<t D<u_ЍWO<t D<u_ F؍}6>_uz ^؀0;ukƇ0hƌЎڎWO<t D<u_ЍWO<t D<u_ ؍Ƈ0 F0^;^s qƌЎڎWO<t D<u_ЍWO<t D<u_SQRVWU 110-tNv06^u ڀ0-uCC ڊ006^u0FƂ-6^ t 6^ uZ06^t ڊ006^u306^ t ڊ006^u ڀ0?u#FƂ-00F׈6^uC ڀ0t 0Ƃ؎SQVWUÎFF 6>_u111 NJ& tR{r v}t ?.t8B5J2u.v*O06^@tO6^@t @& CF@뛋FVySQRVWU FF >0"tK1110{rW|A{v}t&EFȹ ٹ ~&0BFȹ ٹ ~&0Jڅ~F  ۊ006^@t406^@u6^ tF6^u u쀼0Au0\uF| 6^@tFG ۊ006^uߍ\9wt~~ Îف@{A9s'Fȹ ٹNN &0^F҉Éȹ } ۀ0{u 0}u ۀ0\u0 ujF~C~t\ػ ۻ{ ۊ006^@u6^ t ǎ Fف0@&ƹ Îف@}ػ û˹ ي0F& ۀ0t^vÿ0꽸 ^W&<tD&E<u_6>_tVގut6d6d6d6d&6d6d{<{rv(<}t+.<"u*6>du"6>du16d 6d6d6>du6d06^u6d?.u &6d+&<u%&6d6d6dut ؀?tj&<u11^ÉЉ^VWƎŽي06^u?_uC&F06^u?_t&$،_^SQVWU~^ƎڌЌV~W&<tD&E<u_l6lD?$uT={uOV~]Vǎډэ]=}ufV~)Fz ^~FzFu~zt ~zڀ=u^~h[06^u߀=_ultl11ҍ]_^Y[VWUSQuuـ?tljVuuS҉øimFn6mimsÅutRimЉގڎuON1)tɃt*imFW&<tD&E<u_~ |imV~ut^=u1^NPmm6ntm1^=tщ#=~ FF^Nm҉^S~^6m،ڊ:t F<u++҅uu C66m)؋NPm؋^9m6n1t\^~=u[Gьډ(I11҉]_^SQVWUljѻ(u1ÅuLƉVut8(u1Åt!^W&<tD&E<u_؉VWUƎډ^ ߀<umF<t"06^u^NFR6&VÅutU~F1Iߎ‰ι1I;Ns~FގWO<t D<u_~V0~F1IA;NrNFR|%V~V^щƉVtu~F1I~Fʹ1I;VsOv^~FWO<t D<u_^F~W&<tD&E<u_]_^VWU*߉ΉÉэFtF։h~Ѝ^ҹ1IFQ }8^N Fҍ~/Ѝ^֎ҹ1IFQ }1]_^VWƎŽٍT15ȅt$C:t06^ u?Xt?xt۸؊&8tCF9r_^SQVƉÉѸp^Y[deddddddddeeddCeVWUƉ׉^NÉѸj )F@FCwd6_.4dFV)‰Ѕ}=1F+F{Fu 몸aF+F}W1RFF9)Љ^ ^7ut&< t@^ ^W7ut@]_^N;V)V^^ ^~|G7ut&< tN݋Fv Nvv 롉{VWUƉV^NNÉу~ u !!V1J=uV6pe=uV1XӋN6pe0B9|VyS"…tT=tO= tJ= tE=t=uV~O6ƅpe=uWO0:6pe06^t uG%]6pe06^uV`O}…}1V6ƅpegO}NV6pe*GLVh[ð [ð[ð[ð[ð[0[=u[6n[SQRn1š6n6n6po6n6n6n6n6n6Xo6n6o6n6n6n6n6n6o6n6n6n6n6 o6n6n6 o6n6n6o6n6Vo6n6n 6n 6n 6n 6o 6n 6n 6n 6n 6o 6o ZY[VWUljV^NHljV<:rvOo^T6o6o@L\6o6og襐G;~|=-t=/u16_SQRg6l1P6lPZY[6_6_SQR]6o6o6o6l6luJuF66o66o]P]P4iP]P4iP]6l4i6l|賦v_6_W6_O6_G6_SQR 6l6lۉã6>_~1ù 06lP6lj1TSQR6o6o116o6b6_6_6_6_6_SQR6o111P6o6o6_6_| tw6_6_m6_e6_]6_U6_M6_E6_=6_56_SQR!h6l6l6h6h16lSQR\hSQR]6oP6o@uVWUSQuuut G11VÎ^C06^uF11ƉN/0iut'9u ;Fv+vNvNFC^?uvN~u~t^~FGV]_^ uøSQRV06^@t; 66hڊ:t F<u++҅uu16+h6^^ZY[VWUƉV^Nߎ1Iυut4~ut^?uV^NWtF^<u11҉]_^SQe҉uuuS Y[VWU8PRSQFxDFFF? uF?tP0ɀ?"uLFvpljFvDF?"t`?t[?\u"t\uFDF^vFF^pljމFvDF?tB? t=?\u"uF*DF??t?*uDF^vFF뱋Fx@BVnWËFn$@BWGuu. Fx@B_ËFpFxDFF^vF~u;FpFrVtutVd^jRVZFpRVRNxMFxƒFzV|FrVtƉׅuuDuVd1RVZ1R1PPDVd^jRVZHRVR@BW^|@BWGuu ЍH1I@HΌЉߎ؃F|W&<tD&E<u_@BvzFxFzTFrVt~~tqFx]_^SQR!Î6j6j6j6jщWj6j6j6j6j6jG6j6j6o6j6o6oZY[VWUǎ‰ގًDTu u؉FD t d FL ~1&0tG5=uƒ~td L u …u+VЉ]_^RVUPG uUO |GOu u،~ u0G @u'O 7& GG;Gu،St.O 7F&GO uG;Gu ،%uҊF0]^ZÅu u1SQRUVF ^VVNRV VB]ZY[R¸ljjZR¸ljjVWU~ t#ǎ‰މʋN W1X]_^SQхt=luC21:l;jt1۹lG &;jv٣jloY[SVÎG uO O}D 7&F07G @u-= uO} ، 7&F07=uO ^[SVÎuO70DSQVƎڋTDu uD t D t XT \D$D0Ҁd $u| uD(=t(&DD tTLD D|uL  DL D^Y[SQVWUƅt=v11$F^sl;jvj jju/‰tnl؃>juj^W1ۋFGl1ێ؉jÅuRȉuݺlN1FE ‰N&;jvڣj~M끉tOu Åtll؉o؉]_^Y[SQVWUPRl؋jj^Fut`u~tV~¹1IN,v^Nu^?=uF@F^~v}4u…u11]_^Y[VƎڈ؋WD&D ^SQRVUv^_{Nډ^P^S^V]^ZY[=a|=z- =A|=Z SQUÎڊ01҈Fyju73р@bu ʀ+u tu+ָl؁>yjuʀ~wu~auʂЉ]Y[VWUvljVN ،€d . D &0ju=)9r =$u&j&j)ôJ!ߎǿM ul&>j&>j&jtA(O0!&j&&j<r/,)1 =nou D=87uE<u<uFF<u&6j&j&jlڎ‰.j>j>o>k)>ju jjjjjj1 jjK#"Pl>¹Xt1ø>JpSPRںQ=!Z<u)I@!XP#XL!PlXRVWUljގىøD!ɉЉV}(#DD $D0DD |DT W#tL$tLFt2DDDDL \D\DD\D\EW! ډȉÉщFЅ}hc#DTDTDT#DTL1]_^ZVWU ƎF#1SǸl0_0u CF&0u؉؉]_^VWUP‰^NutىWvlF^0Î^tF^F<+t<-uF~ u/^<0u|xt|XuF ^<0uF F ~ |~ $~ 11~ u^<0u|xt|XuFF^v11ۉF0;F };F N^FVȉڋ^N#ә;^ru ;NsFF뷌;Fu ;vuvF~u~t^~5FD~uwuu u~-tF~t' ~u#~-u ~-uكȉډ]_^VU1VvB]^VUR<0r <9w0-0Z0ou u#ߋGW9u9t ڻ_^Y[QVÉ^Y0=9~'QVWUǎډ^N"]t$0&NuF$0E_EF$0E.E tE mE pE E]_^YQVWUƎډ^| ul1D tlj!Ãu=t ыD 1"~tD 8" D tDTDDD tFҊ\0F-"]jQVWUPRޅu u2u 11!~lu FFFډFFy#uFFFV#FV~uU~uOljӉFVutv‹VF'~lu F# FVS#FV]_^YQVWUvF׉ىËT ~00d ώFVI~F=t V&C u~u;~u;^tD t F1F&VF T ]_^YVWU ƎF1SǸl0_0t FC&0u؉؉]_^QщŽٸC!rt tYVWU~ t&ǎ‰ދV W1OѬt&%X]_^lءjju!0SQRVWUt=v1FG1ۃsl;jv6ju?6j6j5jl؉Ȍډ6jÅu>T ;jvjl؋tuπ~u D"u#t FF{l؉oЉ]_^ZY[*.*SÎڀ?\ut?t:u\u u[1[QVWUƎˆ^~ЍVN؍~N!ŒV|uَشN!҉Å}{11Fc^|EtR1&Cu6t {\tGC\._.aSN~CЍVشN!҉Å}<*t $)!;G w+w9ww)9v)!׍Wt9u )K)‰G Lrlj\]MˉOϋt|uwƃ Y_^VWQ tƃt$u;uwS]}][O|9s;uwn9rg}9r^;wwV)ҋG OAI9s%W )9w)<t.tHu9s9r}9r }9r}U 9u ;wuGT|u׉uO ;ws;OvO;O vO Y_^lءjju!0VWƉ߉ȉщش?!҉}_^SQRlڃ>Nku1=w;PksPk±uӴH!ۉ|̎1GGGGGG____ _WW GZY[SQVWUǸl؃>Nku1ۋ1Ftsl&;Pks&PkuFvӎǴJ!ۅ|rTljӉ~&^уЉ^9t"&W&G^&GӋF&GDD)ȎF-&;D vD G1҉Љ]_^Y[1VWUDv FFFFV^N^ŒS ǎ‰V&GF~tG!ҸF@t)V1Ɏش@!҉É}>!҉tF tu^VV^Vʎ^ӋGVul3Vk1ɨu0ش!҉É|F F۴=!҉É}qljX$<‰t f~u~u~uFtʀ @FtFt lہ>yju‰X]_^ZY[SQRVU @É1 t1D!ɉЉV}]V 0D!ɉЉV|1]SQVWUlڋo6oVut)ڹl\ىoo^\W @VRi&G uGىƉVutF-xjrԸF@ىÉщƉVut\ڃߌ0‹VW_W F&\l&\&o&oF&l&L‹V&6o&o J11҉؉]_^Y[SQVWUljVlo؋LutЎ&W&G;Vu9tގڎF&M &G&DlءooىlW؉oo~SQRVlۋoout!ˎo،ڋ7Olp֎ۉ6oo^ZY[VWƉ׎ًGg 9|u9wG+9u 9r 71)wGWGG_^VWUƎډ^D tPD tbt2~ u } ~ u D)FDDTT^V D d F~ r v~ u~ tA뮋DFV؉ʉt^FV )F^ND QuB=u=:D GFӋDN)ӋF)ȉӌىډt ^V 1]_^DDTTV D d SÎG uG tO G uO [SQ l؋oooPk seFY[Sa݉V9s<t dw^9t(wGR?u Gt_ tWZ[8WVRQ>k>kYZ^_8WVQ>k>kֈwY^_QV uȉ^YÅu1ÅuSR0#sjrPu"r rvl0؊j0Z[SQR¸l;jr1D0ыk kG@uЀO@4 tlkˀO lkӋZY[SQølkˀ@Y[SQUñ 0P^$0Fб 0FKFб%0FVF҉^Z ]Y[SQVWUƺ11F׃u =u$11f^FV1TFV]_^Y[VWUPމN ǎ0W_#Î00l^&_F^uԉ]_^ÓP t tXøoløolResource deadlock would occurNo such file or directoryNo space left on deviceArgument list too bigToo many open filesFile table overflowArgument too largeCross-device linkPermission deniedNot enough memoryExec format errorResult too largeInvalid argumentBad file numberunknown errorFile existsError 0S|=~[Él؋kk[lءjSQVWÎڋG P lj։Ѓu u$tG t G G)Љ‰_^Y[VWUljމЉ~B!66Uʉ} FV]_^SQRô>!҅u 11 ZY[ SÎڋG$-[QVWUFك9ss֎؃ v9vQ~)&؋^u+Fu2\^\^=lu$j9w;Wr؋_؃u1ێ;wuLO~N&; r&+ s8~؋NMϋNM~N lo؋~O^&;r<&7؋^\^\^ w^w&^l1o]&)P)كrG~ހ5^=lu6j9w;Tr؋t؃|u1V؃D 1ۉ؉]_^YSQVWUƉ׀VlRTu =t=uuFt1]_^Y[QVցluu1^YÉЉA =u1ȉ^YSVWƻll1j 9r ؉ߋ_ul؉|\tu6jtl؉wl؍DDDDDDDD_^[Sl؃>jtj_;ju[1[SRVWUPl؃>Nku1>jtFt?^j;js=tΉ=w9v)ÍG^9wlډFjl؃t9w;wr l؋_ut&l؋T9uFƋF~#~sSl؋F|ljƋFl؋F G DG 4]_^Z[SÎڋBt-)‰;rl&;Pks&Pkt1[1Not enough memory to allocate file structures SQRVWUlۿi&?i^?iZۉƅủƎڅuulۋ^\l|&o&o \&6o&o^} uloo]_^ZY[1SQRVWU1li؉^6oo?ڋ|\F\G @t ،ډ;^rjis1،ډAO׋vuuȉ]_^ZY[VWUƉ^Nt11ɴB!ʉÅ}!V@!҉Éƅ|9t ߉]_^R¸lءNkNkZSQRVWlءjju-u),j1Ɏ1Ҍ10:t]:tB)uىÉDžtمt>lˎ1ɉjj1&?t(l6jΉj0W__^ZY[0123456789abcdefghijklmnopqrstuvwxyzVWU$SQю^FߌӍvݎÍ^N1676.&FFu&GuFڋV؉]_^Vގك u }C-^Floating-point support not loaded SR%Z[0123456789abcdefghijklmnopqrstuvwxyzVWU$SQFv݉ߌӎَË^ ^^16;r67676ʋ^.Y&Fuхu̓&GuFڋV؉]_^VUގك~ u} -؃Cvq]Uv]SQRøD!€t1ZY[SQ11Y[SQRlءj$tR>juj1KJ!+j)É؁v9v))кlj0)Љ-ZY[Slۀ>XktRPWVIDEO[1[SQVWUPډËG F~F} ց}^G Dž}O |܍lt F״FE؉F^&^GHFFt VF^1ɋG<~ƋEәڻ<1^Nj֙օtFVǀQV1vPPFnl^&>~k&6k}،^~ lءk)օtFVǀQ~}u~cr~u*~cu#l؁ǀ>k|u>~kv˅}FQ!V։]_^Y[SӉŽ۴A!҉Å}[1[SÉЃtlu[É1[QVWU։߀fVȉRu%=t=uFuVHޅtNȸ]_^YRljZSQR¸l;jsÎڸ?ӱul؀>ju +jájJ!ulءjjZY[;Zx0Nm<[y1OnSQRudtȻt1ZY[QVWUƎڃ|ult|.ٴ.+״|..+FFFFҋDFFF^`D +F|u!\K)A9~D-DHV)É|uDHD]_^YVWUމϋ^^F1;F}ȉ]_^SQVWUƎڸZkllkt 1FtFlklFZk FZklFlkFDFD l^vt.ٴ.+״V ..+F^F&ubF&;G~uSD &+G D)ЉFD ^&+G DH)Ћ^&uF-;F}Y9RM L&GHF+F@;F79}0+&W&uD lt.;~BJ;Tu~~t^ڌu1u ~t~^F&ueF&;G~1uMD &+G D)ЉFD ^&+G DH1)Ћ^&uF-;F|U9QJ&GHF+F@;F9}4-&W&uD lt.;~BJ;T 1;TuF~t^Nǃ~tF)lj|]_^Y[VƎڎT1&;W|uT&;W| u 4&;7}^VWU^FV߉΋V Fu8s2u,v(QǀQ)ƉFVn^Q)ƉFVQ߉Ή؉ʻ1^1ɉG߉Ή؉ʻ<1^1ɉG<vFV1ɉn}ÉˋN)ى‰˅vH)Él?m9rB)vЉ\lT t״1&;]r@~EƉ&+CF\V1ډ\ ]_^VƎŽٸcQGS11S&LS&X^SQolY[TZRhRutZVƎڎ1<0r<9w Š0F-0&^VWUPRQډƀ<:uFvN^~t<,t<-t<+t <0r<9vFދV)~FߎىW_ӎ^^1C<-u<+u^^^<0s<9wFF،ڌэ^FÎډFV?:u'^@ÎډFV?:u^@FVF+F<F1əËFљ^؋^ ȉGt __FV]_^VWU Ǝډ߉NFlFlMlTl\ldlmlvlllllllllllllllllll lll"l+l4l<lDlMlVl`ljltl~llllllllllllllllllll!l+l5l<lClKlSl\lelolylllllllllllllllll lll)l0l7l?lGlPlYlYl`lhlplylllllllllllllllllllllll#l,l5l5l?lHlQl[lelmlul~lllllllllllllllll l l l l l) l3 l; lC lL lU l_ l$l$l%l7%lg%l%l%l&l5&ll&l&l&l 'l:'l\'l'l'l'l(l](l(l(l!)lf)l'l)l)l-*ll*l'l*l*l*l3+lx+l'l+l+l+l'l%,l:,l|,l,l,lD-l-l-l.lF.l.l.l'l/l/lQ/l/l/l0lV0l0l0l1lO1l1l'l1l1l)2l'lV2l2l2l3l'l>3l{3l3l3l'l4l*4lf4l4l4l.5l'lF5lZ5l5l5l'6l'l_6l6l6l&7l'lH7lc7l7l7l+8ll8l'l8l8l8l'l79lO9l9l9l:lM:l'lb:l:l:l$;lh;l;l;l,l>l>l?lD?l'lf?l?l?l'l)@l=@l~@l'l@l@lAlKAl'lAlAlAl%BlhBlBlBl)ClnClCl'lCl/DlrDlDlDl9El}El'l.5l'lElElEl-Fl'liFlFlFl4GlxGl'l.5l'lGlGlGl+HlpHlHlHl'lIl.IllIl'lIlIlIl4JlvJlJlJl@KlKl'lKlKlLl'l1LlBLlLlLlMlBMl'lMlMlMlNlRNlNl'lNlNlOl_OlOl'lOlPl\PlPlPl'QliQl'lxQlQlQl RlDRlRl'lRlRlRl9SlzSl'lSlSl+TloTlTlTl5UlxUlUl'lUlUl3VlxVlVl'lWlWl_WlWlWl'lXlXl[XlXl'lXlYl]YlYlYlZl'lUNKNOWNABBREVATCOMMACOMMENTENTRYEQUALSFIELDINCLUDEINLINEKEYLBRACELITERALNEWLINEPREAMBLERBRACESHARPSPACESTRINGVALUEchaptermonthnumberpagesvolumeyear??%s "%s", line %ld: %s. . %s %s Out of memory for pattern tables"#%'(),={}BIBCLEANINIbibclean.inistdoutPATHBIBINPUTS@# line "" %ld input byte=%ld line=%ld column=%2ld output byte=%ld line=%ld column=%2ld File positions: input [] output [] Entry Value Current\%03oUnexpected paragraph break for field ``%f''Pushback buffer overflow: characters lostOut of string memory: FAILED%%%s open file [%s]%s %s%s "%s", line %ld: %s. JrJr.SrSr.SJS.J.S. J.??????????IVXUnexpected citation key ``%k''String length exceeds standard BibTeX limit for ``%f'' entrySuspicious year in ``%f = %v''Non-zero parenthesis level in ``%f = %v''Unexpected value in ``%f = %v''??????9ABCDEFGHIJKLMNOPQRSTUVWXYZ23456789ABCDEFGHIJKLMNOPQRSTUVWXYZ2345678????????JanuaryjanFebruaryfebMarchmarAprilaprMaymayJunejunJulyjulAugustaugSeptembersepOctoberoctNovembernovDecemberdecJan.Feb.Mar.Apr.Jun.Jul.Aug.Sep.Sept.Oct.Nov.Dec.JanFebMarAprJunJulAugSepSeptOctNovDecDeathesisDEAthesisInbookInBookIncollectionInCollectionInproceedingsInProceedingsMastersthesisMastersThesisPhdthesisPhdThesisTechreportTechReportansi-standard-numberANSI-standard-numbercodenCODENieee-standard-numberIEEE-standard-numberisbnISBNiso-standard-numberISO-standard-numberissnISSNlccnLCCNmrclassMRclassmrnumberMRnumberuriURIurlURLurnURNxxansi-standard-numberxxANSI-standard-numberxxcodenxxCODENxxieee-standard-numberxxIEEE-standard-numberxxisbnxxISBNxxiso-standard-numberxxISO-standard-numberxxissnxxISSNxxmrclassxxMRclassxxmrnumberxxMRnumberxxurixxURIxxurlxxURLxxurnxxURNauthorchaptermonthnumberpagesvolumeyeareditortitle%%%s Out of memory for pattern name [%s] -- pattern ignored Out of memory for pattern tablesValue too long for field ``%f'' # @ begins line, but brace level is not zero after entry ``@%e{%k,''Expected @name{...} after entry ``@%e{%k,''IncludePreambleString# Non-zero brace level after @name{...} processed. Last key = ``%k''Expected closing brace or parenthesis in entry ``@%e{%k,''Non-zero brace level after @name{...} processed. Last entry = ``@%e{%k,''Expected comma after last field ``%f''Non-alphabetic character begins an entry name@entry_name too longExpected "=" after field ``%f''BIBCLEANEXT.iniEntry field name too longNon-alphabetic character begins a field nameoptOPTstdin-rb?? %s Ignoring open failure on file [%s] perror() says@ begins line, but brace level is not zero after entry ``@%e{%k,''Expected open brace or parenthesis. Last entry = ``@%e{%k,''Braced literal string too long for entry ``%e''rCitation key too long=: %s Bad line [%s] in initialization file [%s] Non-zero brace level at end-of-fileExpected open brace or parenthesis. Last entry = ``@%e{%k,''"comment"@Comment{end"Comment"CommentBeginExpected Scribe open delimiter, one of { [ ( < ' " ` for field ``%f''Expected Scribe separator "=", "/", or " " for field ``%f''Out of memory for pattern table spaceBibTeX string too long for field ``%f''Unexpected quote usage in German-style braced stringEnd-of-file in braced stringBibTeX string too long for field ``%f''BibTeX string too long for field ``%f''BibTeX string too long for field ``%f''End-of-file in quoted stringExpected Scribe value string for field ``%f''Scribe string too long for field ``%f''Scribe number string too long for field ``%f''Expected BibTeX value string for field ``%f''%s Bad line [%s] in initialization file [%s] },={"" file=[%s] field=[%-12s] existing patterns discarded file=[%s] field=[%-12s] pattern=[%s] file=[%s] field=[%-12s] pattern=[%s] message[%s] \bf\em\it\rm\sf\sl\tt {}" # # " # """" # " and ;,|\0-000-190-2000-6980-70000-84990-850000-899970-9000000-9499990-95000000-98012231-550001-869571-8698001-8956822-012-192-2002-6072-70002-83172-840012-894362-9000002-9400282-95000002-99000033-013-193-2013-6333-70013-82523-850013-895243-9000013-9290313-95000003-98029644-004-194-2504-6574-75004-84704-870004-898294-9000004-9499995-015-125-2005-6905-70005-83965-850015-899965-9001655-9008507-007-047-1007-3147-50007-56397-800007-810357-90000080-0080-0980-20080-23680-700080-715180-8500080-8552980-90007580-90108181-20081-64881-700081-726681-8500081-8569081-90000081-90021182-40082-59982-700082-766182-9000082-9176982-99000082-99251783-0083-1183-20083-23383-700083-708083-8500083-8554183-90000083-90048284-0084-0784-20084-69984-700084-842084-8500084-8960085-0085-1785-20085-34185-700085-726185-8500085-8545785-90000085-90005186-0386-2786-30186-45586-700186-786186-8000186-8204586-90094186-90128987-0087-2087-41187-61187-700087-779987-8500187-8979687-98000087-99720288-0088-1988-20088-46188-700088-840288-8178588-8606589-090-0090-1890-20090-44990-500090-699990-7000090-7431990-80000090-80086891-091-191-2091-4891-50091-63291-700091-799891-8500291-8835691-97000091-99208392-092-592-6192-7792-80092-89192-900192-911793-0950-00950-47950-500950-795950-9000950-9899950-99000950-99949951-0951-1951-20951-54951-550951-889951-8900951-9498951-95000951-96448952-90952-6666952-9500952-9714954-0955-20955-28955-550955-616955-9000955-9151955-95000955-95444956-10956-19956-200956-266956-7000956-7205957-05957-43957-500957-685957-8500957-9699958-02958-32958-600958-656958-9000958-9285958-95001958-95343959-00959-13959-200959-216959-7000959-7033960-00960-12960-200960-433960-7000960-8499960-85000960-85203962-00962-19962-201962-474962-7001962-7646963-00963-18963-200963-892963-700963-8481963-85000963-85084965-01965-19965-207965-442967-60967-89967-900967-989967-9900967-9989967-99901967-99999968-10968-39968-400968-899968-6000968-7275969-0969-1969-26969-39969-400969-473969-8000969-8159970-05970-10970-604970-619970-91000970-91074971-06971-36971-500971-631971-8500971-8819971-91000971-91273972-0972-1972-20972-50972-550972-722972-8004972-9499972-95000972-97520973-21973-49973-550973-682973-9000973-9134973-95000973-95521974-00974-10974-200974-685974-7000974-8499974-85000974-88000975-09975-19975-345975-554975-7402975-7797975-95384975-96606976-40976-42976-600976-636976-8000976-8105977-01977-17977-200977-457977-5000977-5235978-000978-199978-2000978-2887978-30000978-31118979-400979-557979-8000979-8322980-00980-07980-200980-316980-6001980-6303981-00981-03981-200981-215981-3000981-3099982-01982-03982-100982-500983-60983-73983-800983-899983-9000983-9750983-99382983-99747984-01984-30984-400984-556984-8005984-8085987-09963-09963-19963-309963-449963-5509963-5999963-75009963-78469964-09964-69964-709964-949964-9509964-9909966-209966-499966-8309966-8829966-98409966-98749968-97029968-97039971-09971-49971-609971-899971-9009971-9899971-99009971-99249973-109973-189973-7009973-9259973-97009973-99189974-09974-309974-369974-5509974-5809974-75009974-75059976-19976-59976-609976-849976-9009976-9889976-99909976-99929977-009977-899977-9009977-9899977-99009977-99999978-579978-999978-9519978-9719978-99049978-99109979-19979-49979-509979-579979-8009979-8279979-90009979-90679980-09980-19980-549980-849980-9009980-9159981-09982-009982-309982-8009982-8159982-99009983-859983-879983-99009983-99019987-309987-5509987-5839987-88009987-88239988-099903-099904-099904-499904-6099904-6599904-90099904-91799908-1199908-2999908-90099911-0099911-3299911-60099911-86099912-099912-599912-6099912-7999912-90099913-099914-099914-499914-5099914-5899914-90099914-92799915-099915-399915-5099915-7899915-80099915-83099916-199916-3099916-3599916-70099916-70499920-099920-299920-5099920-5599920-90099920-904More? f)orwd b)ackwd e)nd q)uit r)efresh t)op \/)search   PgUp PgDn Home End More? f)orwd b)ackwd e)nd q)uit r)efresh t)op \/)search   PgUp PgDn Home End Search backward: Search forward: !#()*+,-./:;?[]~?align-equalsauthorcheck-valuesdelete-empty-valueserror-logfile-positionfix-font-changesfix-initialsfix-namesGerman-stylehelpinit-filekeep-linebreakskeep-parbreakskeep-preamble-spaceskeep-spaceskeep-string-spacesmax-widthno-align-equalsno-check-valuesno-delete-empty-valuesno-file-positionno-fix-font-changesno-fix-initialsno-fix-namesno-German-styleno-keep-linebreaksno-keep-parbreaksno-keep-spacesno-parbreaksno-prettyprintno-print-patternsno-read-init-filesno-remove-OPT-prefixesno-scribeno-trace-file-openingno-warningsparbreaksprettyprintprint-patternsread-init-filesremove-OPT-prefixesscribetrace-file-openingversionwarningsAuthor: Nelson H. F. Beebe Center for Scientific Computing Department of Mathematics University of Utah Salt Lake City, UT 84112 USA Tel: +1 801 581 5254 FAX: +1 801 581 4801 Email: Usage: [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]align-equals ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile Command-line switches may be abbreviated to a unique leading prefix, and letter case is not significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag to no. For such options, the last setting determines the flag value used. This is significant when options are also specified in initialization files (see the INITIALIZATION FILES manual section). -author Display an author credit on the standard error unit, stderr. Sometimes an executable program is separated from its documentation and source code; this option provides a way to recover from that. -error-log filename Redirect stderr to the indicated file, which will then contain all of the error and warning messages. This option is provided for those systems that have difficulty redirecting stderr. -help or -? Display a help message on stderr, giving a usage description, similar to this section of the manual pages. -init-file filename Provide an explicit value pattern initialization file. It will be processed after any system-wide and job-wide initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANINI, but defaults to .bibcleanrc on UNIX, and to bibclean.ini elsewhere. For further details, see the INITIALIZATION FILES manual section. -max-width nnn bibclean normally limits output line widths to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special- purpose applications may require different maximum line widths, so this option provides that capability. The number following the option name can be specified in decimal, octal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is interpreted to mean unlimited, so -max-width 0 can be used to ensure that each field/value pair appears on a single line. When -no-prettyprint requests bibclean to act as a lexical analyzer, the default line width is unlimited, unless overridden by this option. When bibclean is prettyprinting, line wrapping will be done only at a space. Consequently, a long non-blank character sequence may result in the output exceeding the requested line width. When bibclean is lexing, line wrapping is done by inserting a backslash-newline pair when the specified maximum is reached, so no line length will ever exceed the maximum. -[no-]align-equals With the positive form, align the equals sign in key/value assignments at the same column, separated by a single space from the value string. Otherwise, the equals sign follows the key, separated by a single space. Default: no. -[no-]check-values With the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g. ``year = "192"'' instead of ``year = "1992"''), and issue warnings when unexpected patterns are found. This checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can disable it with the negative form of this option. Default: yes. -[no-]delete-empty-values With the positive form, remove all field/value pairs for which the value is an empty string. This is helpful in cleaning up bibliographies generated from text editor templates. Compare this option with -[no-]remove-OPT- prefixes described below. Default: no. -[no-]file-position With the positive form, give detailed file position information in warning and error messages. Default: no. -[no-]fix-font-changes With the positive form, supply an additional brace level around font changes in titles to protect against downcasing by some BibTeX styles. Font changes that already have more than one level of braces are not modified. For example, if a title contains the Latin phrase {\em Dictyostelium Discoideum} or {\em {D}ictyostelium {D}iscoideum}, then downcasing will incorrectly convert the phrase to lower-case letters. Most BibTeX users are surprised that bracing the initial letters does not prevent the downcase action. The correct coding is {{\em Dictyostelium Discoideum}}. However, there are also legitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, bibclean will normally not supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this option to supply them. If you think that you need this option, it is strongly recommended that you apply bibclean to your bibliography file with and without -fix-font-changes, then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You will have to decide which of the two output files is the better choice, then repair the incorrect title bracing by hand. Since font changes in titles are uncommon, except for cases of the type which this option is designed to correct, it should do more good than harm. Default: no. -[no-]fix-initials With the positive form, insert a space after a period following author initials. Default: yes. -[no-]fix-names With the positive form, reorder author and editor name lists to remove commas at brace level zero, placing first names or initials before last names. Default: yes. -[no-]German-style With the positive form, interpret quote characters ["] inside braced value strings at brace level 1 according to the conventions of the TeX style file german.sty, which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, invisible hyphens, raised/lowered quotes, French guillemets, and discretionary hyphens. Recognized character combinations will be braced to prevent BibTeX from interpreting the quote as a string delimiter. Quoted strings receive no special handling from this option, and since German nouns in titles must anyway be protected from the downcasing operation of most BibTeX bibliography styles, German value strings that use the overloaded quote character can always be entered in the form "{...}", without the need to specify this option at all. -[no-]keep-linebreaks Normally, line breaks inside value strings are collapsed into a single space, so that long value strings can later be broken to provide lines of reasonable length. With the positive form, linebreaks are preserved in value strings. If -max-width is set to zero, this preserves the original line breaks. Spacing outside value strings remains under bibclean's control, and is not affected by this option. -[no-]keep-parbreaks With the positive form, preserve paragraph breaks (either formfeeds, or lines containing only spaces) in value strings. Normally, paragraph breaks are collapsed into a single space. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-preamble-spaces With the positive form, preserve all whitespace in @Preamble{...} entries. Default: no. -[no-]keep-spaces With the positive form, preserve all spaces in value strings. Normally, multiple spaces are collapsed into a single space. This option can be used together with - keep-linebreaks, -keep-parbreaks, and -max-width 0 to preserve the form of value strings while still providing syntax and value checking. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-string-spaces With the positive form, preserve all whitespace in @String{...} entries. Default: no. -[no-]parbreaks With the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field/value pairs. This may be useful to quickly trap runaway strings arising from mismatched delimiters. Default: yes. -[no-]prettyprint Normally, bibclean functions as a prettyprinter. However, with the negative form of this option, it acts as a lexical analyzer instead, producing a stream of lexical tokens. See the LEXICAL ANALYSIS manual section for further details. Default: yes. -[no-]print-patterns With the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used. When bibclean is compiled with native pattern-matching code (the default), these patterns are the ones that will be used in checking value strings for valid syntax, and all of them are specified in initialization files, rather than hard-coded into the program. For further details, see the INITIALIZATION FILES manual section. Default: no. -[no-]read-init-files With the negative form, suppress loading of system-, user-, and file-specific initialization files. Initializations will come only from those files explicitly given by -init-file filename options. Default: yes. -[no-]remove-OPT-prefixes With the positive form, remove the ``OPT'' prefix from each field name where the corresponding value is not an empty string. The prefix ``OPT'' must be entirely in upper-case to be recognized. This option is for bibliographies generated with the help of the GNU Emacs BibTeX editing support, which generates templates with optional fields identified by the ``OPT'' prefix. Although the function M-x bibtex-remove-OPT normally bound to the keystrokes C-c C-o does the job, users often forget, with the result that BibTeX does not recognize the field name, and ignores the value string. Compare this option with -[no-]delete-empty-values described above. Default: no. -[no-]scribe With the positive form, accept input syntax conforming to the Scribe document system. The output will be converted to conform to BibTeX syntax. See the SCRIBE BIBLIOGRAPHY FORMAT manual section for further details. Default: no. -[no-]trace-file-opening With the positive form, record in the error log file the names of all files which bibclean attempts to open. Use this option to identify where initialization files are located. Default: no. -[no-]warnings With the positive form, allow all warning messages. The negative form is not recommended since it may mask problems that should be repaired. Default: yes. -version Display the program version number on stderr. This will also include an indication of who compiled the program, the host name on which it was compiled, the time of compilation, and the type of string-value matching code selected, when that information is available to the compiler. [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]align-equals ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile bibclean Version 2.11.3 [01-May-1996]Compiled by <beebe@plot79.math.utah.edu> on May 02 1996 08:03:10 with native pattern matchingUnrecognized option switch: %s%.*sw%%%s cannot open error log file [%s] -- using stderr instead perror() saysno-ivxlcdm 2d 8888888888 XXXXXXHHHHHHHHHHHHHHHHHHHH  @$Id: bibclean.c,v 1.10 1996/04/26 01:15:13 beebe Exp beebe $"l*l1l4l:lBlHlOlUl]ldlhlolwlllllllH$Id: chek.c,v 1.2 1996/04/26 01:17:05 beebe Exp beebe $Invalid checksum for CODEN %c%c%c%c%c%c in ``%%f = %%v''Invalid checksum for ISBN %s in ``%%f = %%v''Invalid checksum for ISSN %c%c%c%c-%c%c%c%c in ``%%f = %%v''lllllllIncomplete CODEN %c%c%c%c%c should be %c%c%c%c%c%c in ``%%f = %%v'' $Id: do.c,v 1.5 1996/04/26 01:35:56 beebe Exp beebe $lllll lllll#l(l,l1l5l<l@lJlNlVlZlclglpltllyll~l llll(ll1ll<llJllJllVllcllpllllll llll(ll1ll<llJllJllVllcllpl}])>'"`{[(<'"`lllllll,l:lHlVl`ljlullllllllllllll!l&l.l6l?lHlLlPlTlXl\l`lwllllllllll lll(l3l>lDl>lDlJlPlVl\lExpected Scribe close delimiter `%c' [8#%03o], but found `%c' [8#%03o] instead for field ``%%f''blSilllLl~qlwl;~llJlbblTlTqlS~lVlX$Id: fix.c,v 1.4 1996/04/26 01:36:27 beebe Exp beebe $$Id: fndfil.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $$Id: isbn.c,v 1.2 1995/10/07 15:50:07 beebe Exp $$Id: keybrd.c,v 1.3 1996/03/04 18:56:21 beebe Exp beebe $$Id: match.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $$Id: option.c,v 1.5 1996/04/26 01:16:37 beebe Exp beebe $B!lJpD!loQ!loX!loe!loy!lo!l*p!l2p!l:p!lBp!lp!lJp!lp!lp!lp!lp "lp"lp("lp2"loB"loR"loi"l*pz"l2p"l:p"lBp"lp"l p"l p"l p"lq"l$q #l,q#l4q0#l PCC-20 MAXPATH Turbo C 2.0, C and C++ 3.0, and TopSpeed C _MAX_PATH Microsoft C 5.0, 6.0, 7.0 and TopSpeed C MAXPATHLEN Sun OS (4.2BSD), 4.3BSD, Gould UTX/32, HPUX, KCC-20, AIX (RT, RS, PS/2, 370), HP/Apollo DomainOS, DEC Alpha (OSF/1) PATH_MAX SYS V (Silicon Graphics) PATH_MAX POSIX, DEC Alpha (OSF/1) FILENAME_MAX Intel RMX, NeXT Mach, Turbo C/C++ 3.0 -------- ------------- ------------------------------------------ ***********************************************************************/ #if defined(HAVE_SYS_PARAM_H) #include #endif #if defined(HAVE_LIMITS_H) #include #endif #if defined(HAVE_STDLIB_H) #include #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN FNMAX #endif #if !defined(MAXPATHLEN) && defined(MAXPATH) #define MAXPATHLEN MAXPATH #endif #if !defined(MAXPATHLEN) && defined(_MAX_PATH) #define MAXPATHLEN _MAX_PATH #endif #if !defined(MAXPATHLEN) && defined(PATH_MAX) #define MAXPATHLEN PATH_MAX #endif #if !defined(MAXPATHLEN) && defined(FILENAME_MAX) #define MAXPATHLEN FILENAME_MAX #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN 1024 #endif #if defined(OS_PCDOS) #define SEP_COMP " ;,|" /* separators between filename components */ #define SEP_PATH "\\" /* separators between directory path and filename */ #endif #if defined(OS_UNIX) #define SEP_COMP " ;:,|" /* separators between filename components */ #define SEP_PATH "/" /* separators between directory path and filename */ #endif #include #include #if !defined(HAVE_IOCTL_PROTOTYPE) #if defined(__cplusplus) || defined(c_plusplus) /* system files should have: extern "C" {int ioctl ARGS((int, int, ...));} */ #else extern int ioctl ARGS((int, int, ...)); #endif #endif #if defined(FREE_CAST_IS_CHAR_STAR) #define FREE(p) free((char*)(p)) #else #define FREE(p) free((void*)(p)) #endif bibclean-3.07/ibmpc/dos/msc7p0/msc70pth.bat0000644000156700015670000000041705306527324017241 0ustar beebebeebe:# Set environment variables for compiling with Microsoft C 7.0 :# [20-Nov-1992] PATH=s:\sys\msc7p0\bin;h:\pc;c:\dos;c:\;c:\sunpc;f:\msdos;f:\unix;s:\usr\bin;s:\sys\bin;s:\sys\norton set LIB=s:\sys\msc7p0\lib set INCLUDE=s:\sys\msc7p0\include set TMP=h:\pc\tmp bibclean-3.07/ibmpc/dos/msc7p0/msc70bld.bat0000644000156700015670000000167306142134511017203 0ustar beebebeebe:# Compile bibclean with the Microsoft C 7.0 compiler :# [02-May-1996] cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 bibclean.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 fndfil.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 romtol.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 match.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 chek.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 do.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 fix.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 fndfil.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 isbn.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 keybrd.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 match.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 -DHOST=\"plot79.math.utah.edu\" -DUSER=\"beebe\" option.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 romtol.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 strist.c cl -c -I. -AC -W4 -D__STDC__=1 -Gt512 strtol.c copy s:\sys\msc7p0\lib\setargv.obj setargv.obj cl -AC -Gt512 -W4 -Febibclean.exe -Fmbibclean.map -F 8000 *.obj -link /noe bibclean-3.07/ibmpc/dos/msc7p0/ibmtest.bat0000644000156700015670000001342206141407200017227 0ustar beebebeebeecho off break on REM ===================================================================== REM Test bibclean on IBM PC DOS. REM The funny backspace in echo commands is just to get a blank REM line, rather than the current echo status. REM [29-Apr-1996] REM ===================================================================== echo ================== begin BibTeX test 1 =================== echo bibclean -init bibclean.ini -err testbib1.err testbib1.org bibclean -init bibclean.ini -err testbib1.err testbib1.org >testbib1.bib echo  echo There should be no differences found: echo diff testbib1.bok testbib1.bib diff testbib1.bok testbib1.bib echo  echo There should be no differences found: echo diff testbib1.eok testbib1.err diff testbib1.eok testbib1.err echo =================== end BibTeX test 1 ==================== echo ================== begin BibTeX test 2 =================== echo bibclean -init bibclean.ini -no-check-values -err testbib2.err testbib2.org bibclean -init bibclean.ini -no-check-values -err testbib2.err testbib2.org >testbib2.bib echo  echo There should be no differences found: echo diff testbib2.bok testbib2.bib diff testbib2.bok testbib2.bib echo  echo There should be no differences found: echo diff testbib2.eok testbib2.err diff testbib2.eok testbib2.err echo =================== end BibTeX test 2 ==================== echo ================== begin BibTeX test 3 =================== echo bibclean -init bibclean.ini -fix-font-change -err testbib3.err testbib3.org bibclean -init bibclean.ini -fix-font-change -err testbib3.err testbib3.org >testbib3.bib echo  echo There should be no differences found: echo diff testbib3.bok testbib3.bib diff testbib3.bok testbib3.bib echo  echo There should be no differences found: echo diff testbib3.eok testbib3.err diff testbib3.eok testbib3.err echo =================== end BibTeX test 3 ==================== echo ================== begin BibTeX test 4 =================== echo bibclean -init bibclean.ini -fix-font-change -err testbib4.err testbib4.org bibclean -init bibclean.ini -fix-font-change -err testbib4.err testbib4.org >testbib4.bib echo  echo There should be no differences found: echo diff testbib4.bok testbib4.bib diff testbib4.bok testbib4.bib echo  echo There should be no differences found: echo diff testbib4.eok testbib4.err diff testbib4.eok testbib4.err echo =================== end BibTeX test 4 ==================== echo ================== begin BibTeX test 5 =================== echo bibclean -init bibclean.ini -German-style -err testbib5.err testbib5.org bibclean -init bibclean.ini -German-style -err testbib5.err testbib5.org >testbib5.bib echo  echo There should be no differences found: echo diff testbib5.bok testbib5.bib diff testbib5.bok testbib5.bib echo  echo There should be no differences found: echo diff testbib5.eok testbib5.err diff testbib5.eok testbib5.err echo =================== end BibTeX test 5 ==================== echo ================== begin BibTeX test 6 =================== echo bibclean -init bibclean.ini -err testisxn.err testisxn.org bibclean -init bibclean.ini -err testisxn.err testisxn.org >testisxn.bib echo  echo There should be no differences found: echo diff testisxn.bok testisxn.bib diff testisxn.bok testisxn.bib echo  echo There should be no differences found: echo diff testisxn.eok testisxn.err diff testisxn.eok testisxn.err echo =================== end BibTeX test 6 =================== echo ================== begin BibTeX test 7 =================== echo bibclean -init bibclean.ini -err testcodn.err testcodn.org bibclean -init bibclean.ini -err testcodn.err testcodn.org >testcodn.bib echo  echo There should be no differences found: echo diff testcodn.bok testcodn.bib diff testcodn.bok testcodn.bib echo  echo There should be no differences found: echo diff testcodn.eok testcodn.err diff testcodn.eok testcodn.err echo =================== end BibTeX test 7 =================== echo ================== begin Scribe test 1 =================== echo bibclean -init bibclean.ini -err testscr1.err -scribe -no-check testscr1.org bibclean -init bibclean.ini -err testscr1.err -scribe -no-check testscr1.org >testscr1.bib echo  echo There should be no differences found: echo diff testscr1.bok testscr1.bib diff testscr1.bok testscr1.bib echo  echo There should be no differences found: echo diff testscr1.eok testscr1.err diff testscr1.eok testscr1.err echo =================== end Scribe test 1 ==================== echo ==================== begin Scribe test 2 ===================== echo  bibclean -err testscr2.err -init-file bibclean.ini -scribe -file -no-check testscr2.org >testscr2.bib echo  echo There should be no differences found: echo diff testscr2.bok testscr2.bib echo  echo There should be no differences found: echo diff testscr2.eok testscr2.err echo  echo  bibclean -err testscr2.er2 -init-file bibclean.ini -scribe -file -no-check -no-par testscr2.org >testscr2.bi2 echo  echo There should be no differences found: echo diff testscr2.bo2 testscr2.bi2 echo  echo There should be no differences found: echo diff testscr2.eo2 testscr2.er2 echo  echo ===================== end Scribe test 2 ====================== echo ================== begin Scribe test 3 =================== echo bibclean -init bibclean.ini -err testscr3.err -scribe -no-check testscr3.org bibclean -init bibclean.ini -err testscr3.err -scribe -no-check testscr3.org >testscr3.bib echo  echo There should be no differences found: echo diff testscr3.bok testscr3.bib diff testscr3.bok testscr3.bib echo  echo There should be no differences found: echo diff testscr3.eok testscr3.err diff testscr3.eok testscr3.err echo =================== end Scribe test 3 ==================== bibclean-3.07/ibmpc/dos/tcc2p0/0000775000156700015670000000000014431412252015056 5ustar beebebeebebibclean-3.07/ibmpc/dos/tcc2p0/config.h0000644000156700015670000001206306141423646016504 0ustar beebebeebe/* config.h. Generated automatically by configure. */ /* WARNING: Do NOT edit the config.h file; instead, put any needed changes in custom.h, so that they can override assumptions made in the automatically-generated config.h file */ #define STDC_HEADERS 1 /* #undef _ALL_SOURCE */ /* #undef _POSIX_SOURCE */ #define HAVE_STDC 1 /* Define if you want old pattern-less string matching in .ini files */ /* #undef HAVE_OLDCODE */ /* Define if you want standard bibclean-specific pattern in .ini files */ #define HAVE_PATTERNS 1 /* Define if you want regular-expression patterns in .ini files using re_comp() */ /* #undef HAVE_RECOMP */ /* #undef HAVE_REGEXP */ #if !(defined(__cplusplus) || defined(c_plusplus)) /* Define to empty if the keyword does not work, but do nothing in */ /* C++ environment, because autoconf 2.4 gets the wrong answer from */ /* the AC_C_CONST test program under C++ compilation. */ /* #undef const */ #endif /* Define if your free() requires (char*) cast instead of (void*) */ /* #undef FREE_CAST_IS_CHAR_STAR */ /* Define if your compiler recognizes \a as an alert (ASCII BEL) character */ #define HAVE_ALERT_CHAR 1 /* Library functions that we need */ #define HAVE_GETCWD 1 #define HAVE_GETWD 1 #define HAVE_STRCSPN 1 /* #undef HAVE_STRDUP */ #define HAVE_STRSPN 1 #define HAVE_STRSTR 1 #define HAVE_STRTOD 1 #define HAVE_STRTOL 1 /* Header files that we might need */ #define HAVE_CONIO_H 1 #define HAVE_CTYPE_H 1 /* #undef HAVE_DESCRIP_H */ #define HAVE_ERRNO_H 1 #define HAVE_FCNTL_H 1 /* #undef HAVE_IODEF_H */ #define HAVE_IO_H 1 /* #undef HAVE_JPIDEF_H */ #define HAVE_LIMITS_H 1 /* #undef HAVE_OSFCN_H */ /* #undef HAVE_PWD_H */ #define HAVE_REGEXP_H 1 /* #undef HAVE_REGEX_H */ /* #undef HAVE_RMS_H */ #define HAVE_SGTTY_H 1 /* #undef HAVE_SSDEF_H */ /* #undef HAVE_STAT_H */ /* #undef HAVE_STDDEF_H */ #define HAVE_STDIO_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 /* #undef HAVE_SYS_IOCTL_H */ /* #undef HAVE_SYS_PARAM_H */ #define HAVE_SYS_STAT_H 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_TERMIOS_H 1 #define HAVE_TERMIO_H 1 #define HAVE_TIME_H 1 /* #undef HAVE_TT2DEF_H */ /* #undef HAVE_TTDEF_H */ /* #undef HAVE_TYPES_H */ /* #undef HAVE_UNISTD_H */ /* #undef HAVE_UNIXIO_H */ #define RCSID(s) static char rcsid[] = s; #define OS_PCDOS 1 /* NB: some systems have Standard C header files, but compilers that do not accept function prototypes (e.g. HP HP-UX 9.0.3 /bin/cc) */ #if defined(STDC_HEADERS) && (defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)) #define ARGS(plist) plist #define VOID void #else #define ARGS(plist) () #define VOID #endif #define SCREEN_LINES 24 /*********************************************************************** The limit on file name lengths is non-standard: -------- ------------- ------------------------------------------ Name Definition System -------- ------------- ------------------------------------------ FNMAX PCC-20 MAXPATH Turbo C 2.0, C and C++ 3.0, and TopSpeed C _MAX_PATH Microsoft C 5.0, 6.0, 7.0 and TopSpeed C MAXPATHLEN Sun OS (4.2BSD), 4.3BSD, Gould UTX/32, HPUX, KCC-20, AIX (RT, RS, PS/2, 370), HP/Apollo DomainOS, DEC Alpha (OSF/1) PATH_MAX SYS V (Silicon Graphics) PATH_MAX POSIX, DEC Alpha (OSF/1) FILENAME_MAX Intel RMX, NeXT Mach, Turbo C/C++ 3.0 -------- ------------- ------------------------------------------ ***********************************************************************/ #if defined(HAVE_SYS_PARAM_H) #include #endif #if defined(HAVE_LIMITS_H) #include #endif #if defined(HAVE_STDLIB_H) #include #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN FNMAX #endif #if !defined(MAXPATHLEN) && defined(MAXPATH) #define MAXPATHLEN MAXPATH #endif #if !defined(MAXPATHLEN) && defined(_MAX_PATH) #define MAXPATHLEN _MAX_PATH #endif #if !defined(MAXPATHLEN) && defined(PATH_MAX) #define MAXPATHLEN PATH_MAX #endif #if !defined(MAXPATHLEN) && defined(FILENAME_MAX) #define MAXPATHLEN FILENAME_MAX #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN 1024 #endif #if defined(OS_PCDOS) #define SEP_COMP " ;,|" /* separators between filename components */ #define SEP_PATH "\\" /* separators between directory path and filename */ #endif #if defined(OS_UNIX) #define SEP_COMP " ;:,|" /* separators between filename components */ #define SEP_PATH "/" /* separators between directory path and filename */ #endif #include #if defined(__TURBOC__) #undef fileno #define fileno(f) ((f)->fd) #endif #include #if !defined(HAVE_IOCTL_PROTOTYPE) #if defined(__cplusplus) || defined(c_plusplus) /* system files should have: extern "C" {int ioctl ARGS((int, int, ...));} */ #else extern int ioctl ARGS((int, int, ...)); #endif #endif #if defined(FREE_CAST_IS_CHAR_STAR) #define FREE(p) free((char*)(p)) #else #define FREE(p) free((void*)(p)) #endif bibclean-3.07/ibmpc/dos/tcc2p0/bibclean.exe0000755000156700015670000046413106142137401017332 0ustar beebebeebeMZY5 #" rj {wsokgc_[WSO pppppppNp6p-pppppnpMp;p2p(pp ppppppppnpOp=pppppp2p'ppppppvpcpQp6p ppppdp?pppppppppOp=pppppxplpOp=p1p p pi pO p= p po p] p= p+ p p pG ppppOp ppRpppppp~plp p p py pj pa pG p> p$ p p p p p p py p5 p$ p pppbpppppppptpfpTp1pppppjpp ppppppppwpep[pFp3p'pp pSpAp1p ppppppptp;ppppppvpdpGp0ppppppppop^p3p*pp ppppep;p*ppppppXpFppppppwpSp pppp}plpZphhhhhhhOOOOOOOOOPOCO8O&OOOOOOOOOOOOOOOyOlOOOOxOkOTO:OOOOOOOO%OOOOOOOOOOOO}OdOSOCO9O(OOOOOOOOOOOOOOzOeOTODO4O*O'OOO OOOOOOOOO{OqO`OPOIO;O6O OOOCO5O0OO O O O O O O O Op Oc O O O O Ov O[ OM OH O O O O O Oc ON O* O" O O O OOOOOOOrOOOOOOOOOOOOOOOO)OOO O O OE O7 O2 O O O O O O Ok OL O1 O OOOOOOOOvrnjfb^ZVRNJFB>:62.*&" `\XTPLHD@<840,($  |xtplhd`\XTPLHD+y+u+o+k+e+a+[+W+Q+C+=+9+3+/+)+%+++++ +++******iiiiiiii`i6iiiiiiiiiiuiOi-i iiiiiiGiiii;i)ii iiiiiiiiiiiiiyi>i1ii iiiiiiiiiiiiliPiCi&iiiiiiiiii}ihi`iMi9i,i!iiiiiiiiiiiiiii~ioieibiTiOiBi0i&iii ii i i i i i i i iw il i\ iO iC i9 i) i i i i i i i i i i i i} ii iV iG i= i: i, i' i i i i i i i i i i i i i~ ik iY iT iE i; i8 i* i% i i iiiiiiiiiiiyiaiYiSiIi9i(iiiiiiiiiiiiiii]iOi:ii iiiiijiQig iY iT iE i8 i/ i) i i i i i i i i i i i i i i i iu ik ia iT iF i< i2 i% i i i iiiiiiiipiDii iiiiiiixikiTi?i2iiiiiiiiiiiiyijiXiNi4i*iiiiiiiiiii{iei[iKi>i,i%ii i iiiiiiiii{itiei[iXiJiEi3iiiiiiiwiiidiQiiiiiiiiioiciOiCi>i/i%iiiiiiiiiiiixibiZiDi8i3i%i iiiiiiiiiuipibi]iSi?i<i6i,ii iiiiiiiiiiiisini_iRiMi>i4i/i!iiiiiidiiiiYiKiFi5i,iii iiiiiiiiiriki]iXiIi9i6i(i#iiiiixi*iiiiiiiiiiiizi\iiiiiiiiYi@i#i#i#i#i#iz#ip#i`#iX#iE#i0#i&#i#i#i"i"i"i"i"i"i"i"i|"iw"iU"iK"iE"i$"i"i"i!i!i!i!i!i!i!i{!ig!iS!i5!i(!i"!i!i!i !i i i im iW iO iG i# i i'i'i'i'i'i{'it'i_'iR'iK'i6'i.'i'i&i&i&i&i&i&i&i&i&i5&i2&i$&i&i &i&i%i%i%i%i%i%i%i%i%i%i%i%i~%ix%ih%i]%i-%i%i%i$i$i$i$i$i$i$i$iq$ia$iJ$i4$i/$i!$i$i#i+i+i+i+iO+i++i+i*i*i*i*i{*ih*i[*iG*i9*i0*i$*i*i *i)i)i)i)i)i)i)i)i)i)iZ)iG)i9)i4)i)i)i(i(i(i(i(i(i(i(i(i(i(iv(il(iW(iJ(iC(i.(i!(i(i(i'i/i/i/i/i/i-i,i,i3i3i3i3i3it3io3i93i2i2i2i2i2im2iD2i2i2i1i1i1i1i1i1i1i1i1i}1io1ib1iQ1i*1i0i0i0i0i0i0i0i0i}0iV0i&0i0i 0i/i7i7i7i7i7i7i7ib7i]7iL7i37i,7i7i6i6iv6iZ6i6i5i5i5i5im5ih5i\5iJ5i=5i+5i5i5i5i5i4i4i4i4i4i4i4i4i|4io4iY4iL4i64i)4i&4i4i4i;i;i;i;i;i;i;i;i;ib;i[;iS;iJ;i<;i7;i#;i ;i:i:i:i:i:i:i:i~:ic:iK:i:i9i9i9i9i9io9iL9i;9i8ig8i[8iB8i58i8i?i?i?i?i?i?i?i?i?i?i?it?if?iX?iS?i?i?i>i>i>i>i>i>i>i>i>iy>im>ia>iU>iR>iD>i?>i=i=i=i=i}=i.:.4.0.*.... .............................|.v.r.l.h.b.^.X.T.N.J.D.@.:.6.0.,.&.".................................|.x.r.n.h.d.^.Z.T.P.J.......|.x.t.p.l.h.d.`.X.T.P.L.H.D.@.<.8.4.0.,.(.$.... ....................................|.x.t.p.l.h.d.`.\.X.T.P.L.H.D.@.<.8.4.0.,.(.$. ..... ....................................|.x.t.p.l.h.d.`.\.X.T.P.L.H.D.@.<.8.4.0.,.(.$. ..... ....................................|.x.t.p.l.h.d.`.\.X.T.P.L.H.D.@.<.8.4.0.,.(.$. .....? ? ? ? ? ? ? ? ? ? ? ? ? ? u? p? j? \? S? N? A? 7? ,? "? ? ? ? ? ? ? ? ? ? ? ? ? ? z? i? ^? P? K? ?? 8? *? %? ? ? ? ? ? \? N? I? ? ? ? ? W? ? ? ? ? ? ? ? ? ? ? ? ? ? o? U? N? @? ;? /? (? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? z? s? e? `? T? M? ?? :? .? '? ? ? ? ? ? ? ? ? ? ? ? ? ? v? o? a? \? P? I? ;? 6? *? #? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? r? m? f? [? J? 0? ? ? ? ? H" s c ] O J '   Z   n / $   F" Z I 9     s : )    d "   % ?% "" "Q* .* $* * * *  / -2 2 s2 92 2 2 d2 W2 &2 2 2 2 P2 12 2 2 f 'f f 4f i i i }i gi ^i Hi Ci i i i i i i i i i |i oi `i Vi >i i i %    R %      V    - M  [ r % 9 d    J [ '  j ] v q         T :    4       d H  3 3 3 q3 K3 3 ;A ,A #A A E E /E 7H H H 8L L L P (P IP `P P P P ^ )^ Na a Ma ?a #a a x x 3x Px bx A~ ~ ~  7  } f S 5 "      2  b &      z      d 0   | 8 &   H   e e e e e e e e e e xe be Ge 9e 0e e e e e e e e e e e e qe Oe -e "e e e e e be He Ce /e *e e e b   B 1   1   s b 6 &  L )>i   w h ^ T J 7 &   q f $    2 ` Q     7 L 0lLD!C! _"""`"\"X"T"P"L"H"D"<"8"4"0","("$" """"" ""l'b'/'"'''. .000b0<0 000U0E0@00 0LLLLLLL~L]L,LLLLLL}LdL;L!LLowokoHo%o o yF~$~~~  $>Tn$>XtA*#.#S'9XG8$wd{.0!.,ڣ}{w.>uNjع&=87u&U=uYuCC&8uր̀ىuy+&>s&>G;sډ{+؎JW!_ҋ6s6q6o6m6k pP * .hLF!/5![]5!_a5!ce5!gi%ʎں!.%[!%_!%c!%g!˴@!ù=.Pw36y 2 qs u3?G&8uG } у-sЊ% } у+s2+ӊЊ%QЊŊYˊ%;u;Vt㑅tȖ^˺.@!'@!.&.U"^F&^F&:t3^&?u߸]"ظ0$VWP"X.._^"شPdY&&U"؊F<v<t:t&>v >t3>t RPP u . u3>u   ]"ˀsـ ˀ3Stack overflow! $Ȏغ? !UVWv~ _^].}..{2&@Ň֓6u>}rw2㻀%+r،ЎI2KHRQSFP"f YY^FV#=t^FF/!^FV!~3҉~ 2vmrNt< t< t< t<"t$Srt< t < t< t<"u 2r t<"t2B륋+Ft RWP"f Y_Zv+B(I<\tZ[#uыvYRV!ZH.&kB܋+r&.m&o^Vv^ t3FF...}UVW،؎&9&wQvv YY3dƺ ^ &G;sƺ ^ &GPƺ ^ &w&7vv]p uƺ ^ &_Fƺ ^ && Gt3_^]،؎&9&wQTDRD،؎&9&wQ>~:.JDLD)$= tPDNDTDRD .RDTD،؎&9&wQ>~ ($ uV،؎&9&wQƇ)$6N ~($ u |d)$ u]Ƅ)$"PP)$P "PP P0 *$RP YY6*$RP)$P p ">~"PP)$P "PP YY^،؎&9&wQ>~ ($UV،؎&9&wQ6vN | ;6})$^]U،؎&9&wQ> |F= tTDRDVDXD RDTDJDLDF)$]U،؎&9&wQcpdS2DS(avv$YYVFvv6lD6jD64D62DÅPP60D6.D ƅP60D6.D60D6.D YYɅP"PPJ ˅P"PP6 ΅P"PP" vv"PP ЅP"PP ӅP"PP{cp]U،؎&9&wQvv݅PօP60D6.D P * Y]UVW،؎&9&wQF3^^&=%tFF^&.;tCCy.g %efkvHG%P YY=r$Pvv P   %P RP .DP YY=r$Pvv P   NDP RP dP YY=r$Pvv P   dP RP TP YY=r$Pvv P   TP RP -Ƈ %F#Pvv P   [;r#Pvv P   0^^&ވ FF^^&?tƄ  _^]U،؎&9&wQ^&& Gt^&w&7 e YY^&G&^&G& Gt!^&w&w e YY^&G&G]U،؎&9&wQF FtvvpYYvv e YY]UV،؎&9&wQF Ft[3^&W&RP YYF^&G;^&& Gt^&w&7 e YY^&G^&G^]V،؎&9&wQ3VYY e YYLJLJLJLJF㋇ u^U،؎&9&wQ>~㋇,*D&|*D&G &_ K&6,D6*D YYF6D8D~u ~ u-BDDD@D>DD{Fظ"&u@D>DD@DI~ u+@D>DD%@D>D@D>DD@D~{u ~}uF]UV،؎&9&wQ3F= t= t >9FvF=tFظ"&uvpY ~ 3^]UVW،؎&9&wQ33>u F>u>u F>u>u Fx=F= t= t,>u >uSG>u >uF=FF=tFظ"&u ~3F_^]V،؎&9&wQ3pYY㉗P 2 Y㉗㋇ u PYYğ&G&ğ&Gğ&GFd}㋇ tL^U،؎&9&wQ>u5Fظ"&u~.t~#t ~&t~%u3'~!r~~wvP  u3]UV،؎&9&wQv PYY tPYY$ډVF0D".D0^&DDO4D2D1HDFD2 v vVC? >uvv9PYYRP\i>uvv>PYYRP\iv vV?  u>u3ҸHv vViV>t3^]UV،؎&9&wQv^F^^ F^F;Fw@VF;Fv3^KF^^ KF^^&^&NNN w^&^&FFN w^]U،؎&9&wQ^F^F ^&FN ~ wVF]،؎&9&wQHPPpUV،؎&9&wQF .;tCC.g !6/(FF FFظ"&u3~%u P4YNVYF=t~ u~F GF~ t~ t PYS>uB~ t<;|&;v @D>D u2VF@RP YYRDTD;|;v ^&PY^ PY PY>u PopY9 PY>uPopYF^& t^&PzYF^&?t.]U،؎&9&wQ>u P=YN~]U،؎&9&wQ>tv v vv7Pvv%6d6dvvņPvv6d6dvvцPvvv v vvDPԆPvv] v v vvZDPކPvv3 v v vvpdPPvv ]U،؎&9&wQ>u>uv vApYYC>u>uv vApYY&>uv v]YYv vv9p]U،؎&9&wQ^&?u ;d!|;dsdPYYdd FRPYY P3Y^OMYY PY"P YP^& .;tCC.g "\,VAkV\PY^&PY\PYbPY\PYfPY\PxYnPoY\PcYrPZY\PNYtPEY\P9YvP0Yr\P%YnPY\PYnP YL^&? r^&?~w^&PY(^&%PPFPCo FPgYYF^&?t"PY PY]U،؎&9&wQE^&=t=t  P_Y$ PTY PKY^&P;YF^&?u]U،؎&9&wQvvYYv v 7YY]U،؎&9&wQPvv]U،؎&9&wQ> |$PpYYF㉇.6D8DFظ"&u~u@~ uD.BDDD ~ uD .>D@D~{u ~}u]،؎&9&wQiU،؎&9&wQvv YY@P 2 YVFF Fu NPYYvvvv ]U،؎&9&wQFF ^&?tb^&ظ"&t^&PY^&P^ &ظ"&t^ &PY^ &Z;t^&ظ"&t^&PY^&P^ &ظ"&t^ &PY^ &X+]UVW،؎&9&wQ^&ظ"&t ^&^&PY^ &ظ"&t ^ &^ &PY;}] ;~RFF N~v^&?t ^ &?t\~u3$"^&?u^ &?u3_^]U،؎&9&wQv v vvJ VF>u6F Fu{RPvvxPcP60D6.D VF]U،؎&9&wQ> tjdS2DS(avviYYRP6lD6jD64D62DP>uRPP60D6.D P60D6.D=60D6.D YY]UV،؎&9&wQ3^&ظ"&t F^&8u^&8u@^]،؎&9&wQcPxYU:hظ&9&wQ^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GP@PFPCoFPpYY]UVVhظ&9&wQZPFP VF@RP YYvPVF@RPFP FPFPFP FPyPFPCo FPpYY^]U>hظ&9&wQ^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GPPFPCoFPpYY]hظ&9&wQPTP&6&6O=u hظ&9&wQPy PPTP8 U<hظ&9&wQ&FP&.D&GP FP"& P F;Fu-F;Fu%VԋF;Vu;FuVF;Vu ;Fu3&]Uhظ;r&9&wQPPPTP P PPTP> ]hظ&9&wQP PPTP UVWhظ&9&wQ33^&i.;tCC.g ,{}}GO u t~FE^ YYP^VF@RP]p uJF^㋇ uPVF@RPy uF^&8t$3_^]Vhظ&9&wQ3ePdP&&jp u9PdP&&O u PpYYF&& t^Uhظ&9&wQ&>u~r PpYY]VWhظ&9&wQPTP YYuK3.PTP㸒&H&Fjp uDF㸒&B& DuPTP&6&6O=u_^hظ&9&wQPTP&6&6O=uVhظ&9&wQ3]PDP&&jp u1PTP&&O u[F&& u^hظ&9&wQPTP&6&6O=uUVhظ&9&wQ3^&&w&7v v  =t|^&&G& Gt]^&&_&??u$^&&W&G@RPpYY^&&w&wpYY"F^&G;~H^&u3^]hظ&9&wQPTP&6&6=uU hظ&9&wQPTP&6&6=uFFTl^&ظ"&tR PFPvv VF~|u~r~|~3v PpYY^F^F^&?t]UVhظ&9&wQva|z 97A|Z &$1|9 0u$^]UVWhظ&9&wQ331^ &8-t'^ &ظ"&u^ &^&GF;vsF H;w^&F^ &8-t^ &ظ"&uF+_^]UDhظ&9&wQ^&GP^&GP^&GP^&GP^&GP^&GP^&GP^&GP^&GP^&GP^&GPPFPCoFPpYY]UVhظ&9&wQv~uH>Hv -uB<>Hs"& t H#>Hr"&t H3^]UVhظ&9&wQv~uJ>Jv-t "&tLF>J s"&t J-'>J r "&u Xtxu J3^]UVhظ&9&wQv~uL>Lv-t "&tLF>Ls"&t L-'>Lr "&u Xtxu L3^]Uhظ&9&wQ^F^^ F^FPYYFP YY~uvvv^]UVhظ&9&wQ3^&W&G^&W &GF^&G^&_&?tV^&_&P^&YY=t^&G^3&+G^&G ^]UVWhظ&9&wQ^&W&G^&W &G33,^&_&?(uF^&_&?)uN u3G^&G^&_&?tW^&_&P^&YY t ^&G^3&+G^&G t PpYY_^]hظ&9&wQ*PpYYU VWhظ&9&wQJPFP v vvPFP F3?sBPYN#uǻ"ڊQ:Bt FPYYFzuFP YY=uǻ"ڊtFFP!YY"FP YY=u~v FP1YY_^]UVWhظ&9&wQPFP v vv PFP F3Z szXtzxu B6 u1zXtzxu BPǻ X;t FPMYYFzuFP YY= u~v FP$YY_^]U VWhظ&9&wQPFP v vv PFP; F3^s"zXtzxu BBB6u1zXtzxu BPǻ X;t FPYYFzuFP YY=u~v FPYY_^]UVظ&9&wQ,Pvv  uvvpYYk^&G^&;Gu vv(YY3^&&w&7vv  t^&&G& Gt5F Ft-^&&w&wvv  uF FuVF vvpYY^&&W&Gvvvvv v ~C F^&G;~%vvpYY^&RPS^&G[XZ&W&F FuVF vvpYY^&O&G^&&W&Gvvvvv v B ^]UVظ&9&wQ3]vv&&jp u3vvv v vv&&hF&& uc|*vv-P,P&60D&6.D vvpYY&&P 2 Y&&&& u -P8pYY&ğ&G&&ğ&G&ğ&Gvvv v vv&&C&LJ&LJC&LJ&LJ^]UVWظ&9&wQPTP YYvv YY=svvTRP 7PTP~pYYvvPTP C-P?-Pp_^]Vظ&9&wQdS2DS(apDS2DS(a&>u;@u6&p&>tc-PpYY&tVpY-P-Pp^ظ&9&wQ9!&>t &>u>&>u PpY&>u-PP%P  u-PP%P  um-PP%P  u" &>u PpYd&>u.&>ui&>uR(&>t &>u(K =tϸ&>u i3#ظ&9&wQ&>uVظ&9&wQZDS2DS(a&T}4RPYYm&>u&>u -PYY2&>u&>u -P^YY -PQYYp4RPAYY`p=#uVpY;^Vظ&9&wQZDS2DS(a3RPPTP PTP&>T"uPpw-PPp-PPp-PPp23RPPTP PTP&>T"uPpep=#uxVpY^Vظ&9&wQpu\Z&;u4)u &l6&>t-P-PpVpY?.P>.Pp^Vظ&9&wQZDS2DS(apu,u&>u 6Rp&;ue)u &&>u.)u &VpY&>u 5RpVpY{.Pz.PpVpY.P.Pp&^UVWظ&9&wQdS2DS(a3 u Fظ"& u /PpYY u"Fظ"&tvYF$ v Fظ"&t vYF&>u:&>u-F&%C&Ƈ%P%PpYYr3F&%C&Ƈ%/PP%PpZF&%FpF=tv pY t&Ƅ%~t vpY3EP%P  u P%P G|&>uP%P~pYY/PP%P  uP%PP9pr/PP%P  uP%PP9pC/PP%P  uP%PP9pP%PP9pVOY_^]Vظ&9&wQZDS2DS(adS2DS(apu$=u4VpY/P/Pp&K&+RDPopY^UVظ&9&wQF Fum^F^N^&?\t0F^& .;tCC.g01234567abfnrtvE ,9^&F^&F^& F^& F^& F^& F^& Fu^&Gظ"&t^&GPY ^&G=xuVFPvv ^&F^KF^^&^&F^&^&FF^&?t^&^]Uظ&9&wQ0PYY t0PYY 0ډVF.Pvv  uvv YYPvv YYZBR 2 YVF tUvvvv vv.Pvv RP vv3PP\ivv e YY]UVWظ&9&wQZDS2DS(adS2DS(a3pFr5F&DC&ƇD2PPDPp=$ u Fظ"& u -2PpYY&>uFظ"&t vYF&DpFF~tv pY tI~t vpY&ƄD&>t3GPDP  u"PDP G|PPDPZ2P uP^2PPDP vD0VOY_^]ظ&9&wQ&>u3&>t&>t &>Du3nl &>uv{&>t &>u3> &>u8&>t &>u3UVظ&9&wQv^&G& Gu"&4D&2Db2"PPYY2h2P^&w&7  u"&4D&2Dj2"PPxYYp2P^&w&7RpVF uA^&w&72Ps2P&60D&6.D 2P'YYe~Rp^&W&&4D&2D&>u&64D&62D YYvvYYvv3 YYF^&& Gt^]UVظ&9&wQFFt&>tPpY&>uPpY&>u,&>)u&;Fu&F}&>u~@u 2PpYY&>u~}uPpYZ* vpY&>upF=t]2dS2DS(apF~{u&}P~(u&)&2F^&^&Gvv P9p2PpYY^&{ppFr'-3PpYY^&vv P9piF^&F&;Fu~)u &&>u ~tH^&}^&vv P9p^]Uظ&9&wQv v vvm&'$&%$ u]3P&6'$&6%$RpVF umHF^&ظ"&u^&P? Y tvvYY vv,YYvvyYYVF uvv3 YY]UVظ&9&wQdS2DS(a3pFOr3F&dC&Ƈd_3PPdPp}F&dpFF~t~,tFظ"&t&Ƅd~t vpY&>u3OPdP PpVOY^]Uظ&9&wQ^F^u3PFPvv-$ VFF FuF Fu=^&ظ"&t3FF^&ظ"&u~t^&?=t ^&?:t^&?=t ^&?:uFF^&ظ"&u^&?"t|3PFPvve# VFF FuF^&ظ"&u^&?"u03PFPvv# RPvvvv( m+^&?t ^&?%u3PPvvvv @&6'$&6%$vv3P3P&60D&6.D P * Y]Vظ&9&wQp uV&>uRp@&>u&>uRp&>u&>uRpVpY^Uظ&9&wQVF&,D&*DP2DP#YY&T# i&>uo&>tӸ&>uPpY PpYcp&>t 3PpYY]Vظ&9&wQpuSQ{u&}&:(u&)&&VpY3P3Pp^UVظ&9&wQoVF^&.;tCC.g %7vv YYVvvVF@RP p ^&@^&@@^&vv)YYR&>u&>uvvYY&&>u&>u vvYY^]Uظ&9&wQ_VF^&+.;tCC.g %eGeeeeln^&PpYXln^&PpY+ :& F& vv PpF& D]UVظ&9&wQFFt& F& 3^&~@u&>u vpYr&F^&@^&vv6$YY3~ u^&vv$YYRp3n^&ظ"&tIFظ"&tF^&F#^&vv#YY3F^&FF^&FpF=t^&vv~#YYF& ^]ظ&9&wQ&&ظ&9&wQv&>u PpY&>uH&>u1U VWظ&9&wQ3SVF4Pvvjp tF PpYN~$4P~pYY=@t={u=}upFpFpFF.4PFPjp uBVF24Pvvjp u^vv$YYFP$YY FP$YYF !NWpYp=t= vv$YY_^]Udظ&9&wQpF&>u&&>uFFFFPpYY~u&;Fu~)u &`vpYF%P~ r ~~wF?P&%P&6xPFPCoFP<4Pp]VWظ&9&wQ3&>uOp%{uG}u O }! GVpYpt &;uO _^Vظ&9&wQ&>t &>u_2&>u PpYM&>u0=4PP%P  u E4PP%P  uK4PP%P  uB&>u PpY&>u&6&^&>usF}&>u\/()`&>t &>u2=tϸ&>u&6^UVظ&9&wQpu\ZVxP VFF FuVpYS4PR4Pp#xڋV3+؃p&^]Uظ&9&wQFZDS2DS(a>n|>lv3FpF&>u%&>uFFFFPpYYd~uB~=t~/u0~uvpYvpY4P4Pp&K&+RDPopY]ظ&9&wQZDS2DS(aaRPPTP &>t &>uPTP~pYY UVظ&9&wQ&DF^4PFPvvM VF4PFPvv0 VFFFF FuFPV? ^]UVظ&9&wQFFtdS2DS(apF^&3s^&&>uvvP9pl&>uvv~pYYP&>u&>uvv~pYY'&>u&>u vv~pYY3F^&FpF~tFظ"&t ~ t(^&&>uvvP9pl&>uvv~pYYP&>u&>uvv~pYY'&>u&>u vv~pYYvpY^]ظ&9&wQ&&ظ&9&wQ&>u PpYp&>u4 u&&>u߸&>uUظ&9&wQ^&uP 2 Y^&W&-^&GP^&w&7 ^&W&^&& Gu 4P8pYY^&G]Vظ&9&wQ&>uS pPpYtRpRp^UVWظ;r&9&wQdždždžt&p3Ğ&&>uH&>u;pYpYY&Ğ&:erOĞ&@Ğ&5Pp&Ğ& u  u)&>u&>u ظ"&tdž l{u_}uR\uKĞ&Gp\uĞ&G ppYdžtĞ&Gu/ظ"&tS ppt<Ğ&dž339Ğ&9{uĞ&9}uĞ&9"tt>jt@Ğ&,.;tCC.g2"'-<>AEIOU`acefilmnopstu|,,,,,,,,,,,,,,,,,,,,,,,,,ƌӎÍ&{FƌӎÍ&"FGĞ&֌ӎÍ&FƌӎÍ&}FAƌӎÍ&{FƌӎÍ&"FƌӎÍ&}F.5PpYYHĞ&?\t @Ğ&?{t@@Ğ&?u@@Ğ&?{u@@Ğ&?}uĞ&?}tNOƌӎÍ&{FĞ&֌ӎÍ&GFĞ&֌ӎÍ&GFĞ&֌ӎÍ&GFĞ&֌ӎÍ&GFĞ&֌ӎÍ&FƌӎÍ&}FHĞ&?\ucNƌӎÍ&{FƌӎÍ&\FƌӎÍ&"FGĞ&֌ӎÍ&FƌӎÍ&}F3ƌӎÍ&{FƌӎÍ&"FƌӎÍ&}FĞ&֌ӎÍ&FGĞ&9t sƆ"HӎÍ&"ӎÍ&VOYu c5PpYY&P _^]UVظ&9&wQFFt3^&"FpFUr9F^&@^&5Pvvp^&VF]F^&FpF~tFظ"&uvpY^&"F^&VOYVF^]UVظ&9&wQFFtpF3Ur9F^&@^&5Pvvp^&VFJF^&FpF~t v pY uvpY^&VOYVF^]UVWظ&9&wQFFt^&pF&>t~%tdS2DS(a^&%pF3auFظ"&uLr^& FvpYF%*~ uG~F^&FpF~u^&vpYVF_^]Uظ&9&wQ**W P6*6* *** *t1*&;*s*K&?\u*K**0,vv*3+*P6*6* t}>u^&G t33]Uظ&9&wQFFtpFF3.;tCCH.g %3333333F^&^&G'vpYVFvpY^&VF]ظ&9&wQ&>u&>u &>u&>u &>u&>ub`&>uN&>uA PpYS pPpY&>u&>u   UVWظ&9&wQ3FFt&pF3^&&>uB&>u5vpYvvpYY&^&VFrGF^&@^&5Pvvp&^&VF`~ u /F~ u(&>u&>u FuFظ"&tF Z~{uGQ~}uOH~\uBF^&FpF~\uF^&F pFvpYF~tF^&F~"upvk ug^&?\uUpF~tE^&{F^&\F^&"FF^&F^&}F,Fظ"&tS ppF~t^&VOY~u 5PpYY&VF_^]U VWظ&9&wQFFtpFvxP VFF Fu4F^&^&G6Pvvp^&VFlxڋV3+؃pFS pF3^&"F&>u:&>u-^&vpYvvpYY^&VF~"tH^&?\um~pF~{u!H^&{^&\F^&"9H^&{^&\F^&"FF^&F^&}^&{F^&"F^&}~ u ^&~ u-&>u &>u ^&zFظ"&t ^& ]~\uNF^&pF~\u,FF^& pF~tFF^& vpY F^&~Fظ"&tS ppFF~t\tF;Ft s^&"@^&r"C6Pvvp^&VFVOYVF_^]UVظ&9&wQFFtpF3^&"FF^&FpFv pY trvpY^&"@^&r"k6Pvvp^&VFFVOYVF^]Vظ&9&wQᚑpVpYV pY t ^Uظ&9&wQFFt^&S pF~u^&VF@&>u3&>u&vpYvvpYY^&VFvpYdS2DS(a~{uigFظ"&tMK~"u?=Fظ"& tR#!6P6Pp^&VF]Uظ&9&wQ^F^F FtF^&ظ"&uF Ft^&?t ^&?%uFFFF^&?"tF^F^^&?\uFF^&?t ^&?"u^&?"u^&FvvYY@&6'$&6%$vv6P6P&60D&6.D P * Yb^F^F^&?t#^&?%t^&Pvv  t^&?t ^&?%u FF ^&FVF^ &W&VF]ظ&9&wQ&&&&&&%&D&d&TUظ&9&wQvvYYVFRPYY]Uظ&9&wQ^&G&G^&G &G^&G&G ^&G&G]ظ&9&wQ6PPpUظ&9&wQ& F& 6PPpF& ]Uظ&9&wQFFT Pvv VFF Fu7vv^&?"uPpvv YYPOY^&vv^&?"uPpvv YYPOY^CF^Pvv VFF Fu3Pvv VF^&vv Ppvv YYPOY^CF^^&?t]ظ&9&wQ&>t&>u&>u =PpYn&>u&>u =PpYH PpY&>u&K&+RDPopY=PpY PpY6PP9pظ&9&wQ&>u.&>u&6IopYPDP~pYY&PDP&>uP9pظ&9&wQ7P PpUظ&9&wQ&>uvv~pYYZ^&ظ"&tvvP9p/^&?%uvv P9pvv P9p]ظ&9&wQ&>tX&>tHO+PPDPp&>u7`7PPTP  t*PPDPp uO&>tPc7PPDP tPDP YY=vmPTP YY=vYPpYPDP YYPPDPPDP p &K&+RDPopY>&>u1g7PPTP  uPpY&-Uظ&9&wQ&>tF F t ^ &?u4vv&6'$&6%$j7P&60D&6.D ~F Fu9v v vv&6'$&6%$7P&60D&6.D =vvv v vv&6'$&6%$7P&60D&6.D ]Uظ&9&wQ3Pvv HVF^&PpYNF;Fs]VWظ&9&wQPTP YY&>T"up&Tظ"&tVF;s&Tظ"&u@+PTRPPTP p PTP YYK&T"umNv ރ&Tظ"&uڋރ&T\uvރ&T\tNK&ƇT"&ƄT_^U VWظ&9&wQFFtF33Fn&T={t =}u ?F~t@ûT،F^F^&ظ"&u^&?{uPIPvv uPMPvv uPQPvv tlPUPvv tQPYPvv t6P]Pvv tPaPvv u^&{FF$~u~u^&}FFN&T^&GF&Tt^&vvPTP _^]UVWظ&9&wQ&>u VF@(Pvv  t VF!33FF2^&=,t={t=}tGO u ^ތF^F^&8uŋF Fu VF^&^CF^F^&ظ"&uvvAP ePAP vv&OYY=u9gPAP vvAP iPAP vvAP APvv _^]UVظ&9&wQFFtFFT~u^&^&F3㸒&D&B YY;Ftvvv㸒&D&B]p uikPvv 㸒&H&Fvv pPvv 3Pvv VFFF㸒&B& Dt(vvvvv FFFFFPvvdVF t^&tV3+؃FFtuPN^QS  u^&P{Pvv uVFRPPTP vvPTP ^]UVWظ;r&9&wQPTP YYH&>T"u&T"toPP &ƇTPTRPP uZ&ƄTTRPYYRP YYRPP PP &ƄT Go&>ub&T;uU&ƄTTRP=YYRP YYRPP PP &ƄT GF;sTRPYYRP YYRPP PP PPTP _^]UVWظ;r&9&wQF 33|&T-t)O v!HӎÍ&ظ"&uFC&T-tFC&Tظ"&unjӎÍ&-GFظ"&t!C&Tظ"&ttFظ"& tC&Tظ"& uBFظ"&tC&Tظ"& uC&T?unjӎÍ&-GB&T׌ӎÍ&G&Tظ"&u &TFF&TttƃPPTP _^]UVWظ&9&wQFFt&>u VFF33^&^&^&8uw^&=.t={t=}tZFUNP~uH vDH^&ظ"&t(@^&ظ"&t G^& FGqVF_^]U VWظ&9&wQFFt&>T"t3F3&T={t=}t u_^]Uظ&9&wQF Ft^GEAC^ &EF^E&="t ={t!=}t"&>Au>Cu3CAA>Cu$E&ظ"& t ^ &E1E&?.u^ &E1^ &?u^ &EE Gt E&?tM^ &?u33VF]Uظ&9&wQ^ &ظ"& u ^ &?_uL^ &^&F F^ &^&F F^ &ظ"&u^ &?_t^&V F ]Uظ;r&9&wQvvP džBĞ&ӎÍTĞ&?$t1Ğ&?{t@RPĞ&?}t33(YYĞ&Ğ& t Ğ&?uĞ&Ğ&ظ"& u Ğ&?_ul=YYĞ&Ğ& t Ğ&?uĞ& Ğ&$Ğ&Ğ&Ğ&?tĞ&>BtB33]UVWظ&9&wQF F t ^ &?u33^F^F FuuPvvLP P3HLPYYVFF FtLPvv  uvvLP F |^FLF Ft ^&?u9Pv v GP KGPYY tG33QPvvy~NjWvvGP FPVP  uXGF+Pv v GRP KGPKYY tG7~^&?tFZPvv F^&?t>33_^]UVظ&9&wQPvv ~  u3 uOvvYYVFF Ft5Pvv ~  u3 tvvvv ^]UVPظ&9&wQF^&?t(^&ظ"&u^&?Xt ^&?xu3^F^b^&ظ"&u^&?Xt ^&?xu!F uVF@^ &W&VFG^&? t ^&?-uF^&?t^&?tC^ &G&33^]UVPظ&9&wQ3Q86vv42^ uvv42"F㋇2 4u33^]UVPظ&9&wQF ^ &?t(^ &ظ"&u^ &?Xt ^ &?xu3^&?-u Ƅ-FF^&?uiF ^ &?t(^ &ظ"&u^ &?Xt ^ &?xu^ &?u^ &F FF^&?u }Ƅ-FOF ^ &?t(^ &ظ"&u^ &?Xt ^ &?xu^ &?u^ &F F^ &?t } uA^ &ظ"&u+^ &?Xt"^ &?xt-33^]UVPظ&9&wQv^ &^F^F^v v  YYV3+^;r(F3+FPvvv v ~ vv]YYVFF FtDv v  YYPvv YYZ;rvvv v ^F^0v v  YY@;rPvvv v ~ F^F^FPvvVFVF tv v  YYPvv YYZ;r(vvv v v v vv ^]U*Pظ&9&wQvvFPv v FPnFP YYPFPFP }>vvFP4FP YYPFPFP }3]UPظ&9&wQ^F^SF ^ &?t(^ &ظ"&u^ &?Xt ^ &?xu^ &^&^ &?uF FF;Fr]Uظ&9&wQvvP0 vv YY]UVWظ&9&wQ~ v vvP vv YYi F@=vj.!&-B+}3 P@Z+7@@+.(@"vvP  @+}3@+3+F&;&+F^&& Gt^&&? u׋^&& Gu@~N&;&+N |(^&& Gt^&&? uӋ@+vvWVvvvvvYYt_^]UVWظ&9&wQ~ ~vv~ u4FRP vv YY3xi F~t~t ~ t~ uLF~t~uPvv ~NƄB~uVvvn3ƄB~uFVvvPFvv^BP0 FF;|vv YY~tpFNJBظ"&t ~uF0Bظ"&uFPvvN } }3ƄBvv YY9O}(FBFvvv0 vv YY vv,YY ~ƄBDvvBP vv P0 vv P0 vv YYvv P0 WP YYVBP YY^vv P0 N vv P0 vv YY~ u+F}3+FG1BP^&w&7  t$ ~ uOG |^&& Gu |^&& Gu vvYYF@+F}3~G+~_^]Uظ&9&wQ9vvP0 vv P0 vvP0 N ~ vv YY]ظ&9&wQظ&9&wQVظ&9&wQxi tuTxi -G= w=.%;@EYYYYYJOT5 0+&!3u ㋇^ظ&9&wQ ظ&9&wQظ&9&wQP3PPdpV>Z\^b"t4v6z:   J   | <  H L   U%ظ&9&wQVFHRPsYYVFG^ & ].;tCC.g .:ADRWX\adrw95] ^&ظ"& u3vvYYVF^&ظ"& u3vvYYVF^&ظ"& u{^&ظ"&u3vvzYYVFK^&ظ"&u3QvvHYYVF^&ظ"&u^&P Y u3 vvYYVF^&P Y u3vvYYVF^&P Y u^&ظ"&u3vvYYVF^&ظ"&uO^&ظ"&u3UvvLYYVF^&ظ"&u^&ظ"&uVvv YYVF^&ظ"&uvvYYVF^&ظ"&u^&ظ"&u3vvYYVF^&ظ"&u^&PCP  uYvvQYYVF^&PUP  uvv$YYVF^&ظ"&u^&ظ"&u3vvYYVF^&ظ"&u^&PgP  u3t^&PyP  u3wvvnYYVF^&PP  u'F ^ &^&:t33vv,YYVFF ^ &?t^&?u3]U%ظ&9&wQF^&.;tCC.g\{}PKKF^&ظ"& tF^&ظ"& uFF^&ظ"&u.F)F^&?uF F^&?uVF^&?tCVF]UVW.ظ&9&wQ^&&u^&&P? Y u6@^&^&HP@RPp u?66dPP PI P~PCo~PpYYWP * Y6+^&W&RPS^XXZ&W&GF;v}^&G&_^]UV.ظ&9&wQ{^&&te^&&P? Y tH6^&@^&(P@RPpF;v}}^]UV.ظ&9&wQ3~-t~/u3^].ظ&9&wQ&.ظ&9&wQ3PnP&60D&6.Dp .ظ&9&wQ#&.ظ&9&wQ&.ظ&9&wQ P66Rp&0D&.D uX66 P P"P0P  P"P0P  P'YY&0D"&.D0O.ظ&9&wQ6&.ظ&9&wQ&.ظ&9&wQ&.ظ&9&wQ&.ظ&9&wQ&D&>~3PP&60D&6.Dp 3P * Y.ظ&9&wQ663PP\i.ظ&9&wQ&j.ظ&9&wQ&.ظ&9&wQ&.ظ&9&wQ&.ظ&9&wQp&.ظ&9&wQJ&.ظ&9&wQ3P3PP66 &&&>u&>w&&.ظ&9&wQ&.ظ&9&wQ&.ظ&9&wQl&.ظ&9&wQF&.ظ&9&wQ &.ظ&9&wQ&.ظ&9&wQ&.ظ&9&wQv.ظ&9&wQ& .ظ&9&wQ3&D 3PP&60D&6.Dp .ظ&9&wQ3P^P&60D&6.Dp .ظ&9&wQPXEP@RP]p u3U"ظ&9&wQF FuF F t^ &G&33^F^F^&ظ"&uFFFFY^&PYVFF FuDVF;V|;FvVF)FV VFFVVFVFF^&?uVFFVF F tVF^ &W&VF]U"ظ&9&wQvY u3]UV"ظ&9&wQv"&t VYP6H6F VFF Fu3F3+F㋇J^]UV"ظ&9&wQv v  YYF Fu33NF F t ^ &?uVF5$Vv v vv]p uVFF^&?u33^]UVW"ظ&9&wQ~|~$~%~tF F tVF^ &W&33F^&ظ"&u^&=+t=-tFFFFF^F^~u/^&?0u!^&xt ^&XuFF ~u!^&?0u^&xt ^&XuFFFF&.;tCC.g  :{*VF҉VF^& F VVFF^&?0| ^&?1~o-VF VF^& F VVFF^&?0| ^&?3~+-VF VF^& F VVFF^&?0| ^&?7~^&?u^&"&t VYV6F6D VFF FuAF3+D |~(VF VFǙ F VVFFsW^&?u^&"&t VYV6F6D VFF FuAF3+D |~(VF VFǙ F VVFFs^&?u^&"&t VYV6F6D VFF Fu@F3+D |FH;}$FN^VFǙ)FVFtF F tVF^ &W&~tVFNVF؃VF~tVF؃VFF F tVF^ &W&VF_^]UV"؋v |XvW6 ރ#wƺ&^]"U""&㸙"&"&& u vY]U"؃> uVF㉗ 3]U"؋F3RP12 YY]U"^&W&G N^fu1^&_F^VF&W &G^&W&G ]U"؋V F ^&)&W^&O&VF VFV F ^&W&VF^&W&GN^ fu ^ (VFN ^ VFVF^&W&GVF]U"vv;i YYVF~u ~u33? ^&W&GVF^&W&^  ]U"vv;i YYVF~u ~u337^ ^ VF^&W&VF]U"؋F Fu33VF%VF33ۋ fuvvCYYVF33ۚfu^&W&N^0;ru;rvvvvl^&W&;Vr*u;Fr#vv3YY^&&WVF3^&_ F^VFftmvvYY]U"vvi YY]U"؋FRP;i YY]UVW"؋vF&+6{?;6uVF&&&>&{;v &+6{V&6{ YYu$ƱVF&&%#&{3ҋ3&&3_^]U"ظ&&N^fw(&&N^fr vv u3]U"ظ&&N^ VF&&N^fw&&N^fs-&F^vvP uVF]U"شJ^F!r SP % X]UVW"3F3^ F &FuUF";uH^&GP  Y u ^&gP^&Gt3P3PPvv  s^&GtPFP^&GP ^ =t8^&GP Y=t ^&O^&G% ^&G$~ u^&G@u^&gF]"ظ"PPYYU"DF^NV !r ~u P % ]U"ظD^!r]UVW"؋v~^&GV;u v >uF";u>uF";u^&?tP3PPvvX ^&Gt^&w &w e YY^&g^&GVF^&W &G^&W&G uq vm"& L & F F u!V 2 YV F t ^&O5V F ^&W&G ^&W &G^&wu ^&O3_^]UV"ؾ^&GV;t^&t<^&?}vv YY t^&Gt^&w &w e YY^&|^&GPA Y^&G^&G^&^&G^&t"3PP^&w RP YY^&G^]UV"؋v || P % "&LJVE Y^]UV"؋v>!r"&LJ3P % ^]UV"ؾF"Fl^&Gt vv3 YYFNu^]UV"ؾF"F^&Gt vv YYNF u^]UVW"؋F @=r^"&t3v v vv ^ FF@=r^"&tFpNv&<t0< tSPFPv ^ [F;u(SPPQv ^"&[+_^]U"?^N V!rP % ]UVW"؋F @=s3U^"&tv v vv x +^"&^|zF vӎÍ~trvĞzz&y< u Ğr& ryĞr&rrэ~3+à |Zu=rSrэ~3+ÃV~Pv x ;t s F +v+dӎÍ~trvtUrэ~3+à v,V~Pv x ;t sF +F _^]U"؋^"&tP3PPv @^N V!rP^"&XP % ]UV"3Pvv u"F tu3&^]U"؋^"&BF ^N V!r P % ]U"VW"~ ^ $w\rWFN }~t &-G؃v+6F +6F uNN6, s:FVF _^]U"؃~ uFF3RPv vv PaPF]U"vvv v vPaP]U"vvv v v~ u3PaP]U"؋F F u^ F ^&Pv v  PV FRPF3RP Pv v V F]U"vv"&>u"&&PXVF3Pvv ~ =uVF]U"AV!r3P % ]UVW"~2u~ +tIsŒ_^]UV"v^ t :t"t:t"t:t "u33FD^]UVW"~2H_^]UVW"3~ 2ыvD&]+_^]UVW"~ 2~VF_^]UVW"~v NsVF_^]UVW"~N F t Is_^]U"v v vvVF]UVW"؋N ^ VFfs3v~ N tNOtI++s_^]U"vvvv v  VF]U"CF N V!rP % ]U"؋^"&tTD^!rA€u8B33!r1RPB33!FVZYrB!r;Vr w;Fr 3P % ]UV"^&GV;t^&?|e^&Gu^&W&G N^;u>;u:^&^&W&G N^;u;u^&W &G^&W&G 3_^&w^&7F^&)7V^&W &G^&W&G RP^&GPa ;t^&Gu^&O3^]U"^&v vFP0 ]U"؊FF^&}HF^&G &_ K&^&Gt#~ t~ uv v YY tQFI^&^&Gu ^&Gu^&O^&O^&t:^&?tv v YY t^&W+^&;"&>uUF";uH^&GP  Y u ^&gP^&Gt3P3PPv v  Q~ u*^&G@uPP^&GP x =uPFP^&GP x =t^&Gu^&OF]UV"؋v"PPV6^]UVW"؋v F^&Gt+N tvv^ F &P=u^&G@tR^&tH^&G;s=^&?tvv YY t3nNVvv ^&GP x +KN t@^&}^ F &^&G &_ K&vv^ F &P!=u_^] U"؋V ת"תת"ת]UVW"FFP=W2I_6GN~&SQRF+FPWvv^FP~~ZY[~llv & t<%t6GNx&<%t剾l3ɉvdžj udžpdžr&2Ћ؀ `sG=v".]EQ,b<@DBd+++pzwj뚀w샎j뎀wu+tu{jߵqj gwGju$jP~&Fs p3uމr%sе,0wp |pur |rjjjjj ƆuƆon~&3 Ɔon~&GGv jt&GG~{ u3 u/ru-lptj%t0 jRPWǘPoPS r "nv z^&7CC^j t&7CC^:6Ɔojz+ϋr;v n~&F{2&v n~j u"&=F u;rvrv n~r }WQ{SR#jPjt Ft F FPFF{jtp ~ F+~vu t&=-tvvO&lp#j=unouvdžvxtXuj@KKv}džvvju  K;j@t 0nv ~'++&<-t< t<+u&IK0+&6GN{ ~ ˰ ev ~j u&=FP*FF&rxF l%)& u~P}#F_^]U"vve YY]U"ظ"&&33ۚfti"&&_ F^VF"&&W&G VF^&W &GVF^&W&G "&&^&W &G6VF"&&VF^&W &GVF^&W&G ]U"^ &W&^&&W"&& N ^ fuVF"&& ,^ &O&V F VFVF^&W&Gv v )2 YY]U"ظ"&& "& &fu9"&6 &6i YY33"&& "& &"& &_F^^&W&% urvv)2 YY"& &N^fu"33"&& "& &^&W&G"&& vvi YY*"&6&6 i YYVF"&& ]U"^&/&_^&O&VF VF^&_F^^&W&% uK"& &N^ft0^&W&^&&WVF^&W&G^F^ vvYY^&W&% uvvvvm]U"؋F FuAVF VF"&& ;Vu ;Fu vvYY]UV"3^F^ ^&F t8N ~3^ &|^ &G &_ K&vv YY=uuVF;Vu ;Fu33 ^&^ &Gt33VF^]U"ظB^33!r$RPB33!FVZYrB!rVF P % ]U"ظ PPvvv v FP= ]UV"vv YYvvVv v  t ^K&^]U"؋F 3RPvv. ]U "^F^&W&VFv v 12 YYVF3ɋٚftEVF;V wr;F sVFV F RPvFPvFP  vve YYVF]U"FFFJ^ F &F-=wU.Q_p$F/"& ;F}N"& F~Fx"&>u>"&>t1"&&FFF@PF@P RPFPPI(Vv$"&F $F"& ;F}"& FF"& ;F}6P"&6 "&6 "&6 "&6 P70NF N tVv$F] U"P3PPvvF P= ]"؀>t !V"؀>tP.Y^U"؀>t F]UVW"Uv"+ &Fu+t-uE&F9w/0r*t ᗇ⒗&F9w0sM|؃]_^]U"vvjYY]UVW"؋NV#ڱ#uvB㋟ K^ N@ظmظҖPfFI<4t%PRvv3Pv: t3ZX+ƃ_^]UVW"؋^D!rj+ x* ?S Y |MRPW!rRQ  !+PP+ɋї~+XX3P % _^]UVW"~ t%&%It>qF ߉~u336F~&= t& t:u&9=uvuGnj_^]UVW"vvv v L u35~ +~GvvvvV RPWLFF;v ~ܸ_^]UVW"؋~ +~GvvV RPvvWLFF;v ~ܸ_^]UVW"N~ F v^s_^]UVW"؋vvVv v L t"vvF +FFPF +FPL u3bvF FF;v}F FvF~-v+FP RPvW RPF +F@PL~FF;uɸ_^]U"ظ&;}'&>|&ğF^^FkvvvvyP"P0P ]U#FPP3PP ]U#ظ"&. ^&FFF;F~]U#ظ"&>tP"&>u@~t7FF F F~tF PFPFPF PF @PFP `PFPFPFPFP `PFPF P`PFPF PFPFPe F @PFPFHPF PF PFP `PF PFPF PFP `PFPF P`PF PF PF PFPe !"&>fFn NvV $] UV#؋vƺ"&3FF"&*ЈVfF^]U#^&^&;t$^&Šº"&:rƲ^&]U VW#ؚljFF "&;u3F t v v (FF"&;u3F t vvFY~tFPFP:$ ^&7F~tFPFPƊܹ $ ^ &7F FN u׷$_^] U#ظ"&>u#"&>tvv v vvIvv v vv] U#ظ"&ȸ"&ЋF ;w*F;w#F ;FF ;wF;w F ;F3]U#v vv ^&w&7 F ^&&&3] U#^&PFPv v FP= ]U#^&PFPv v vv= ]UV#3+^ F^^&^&:uF^&?uFF^&?ű^]UVW#vv YYv v  YY;vvvVVFRPv v  ^&VF_^]UVW#~ F2+ًˋvD&]2+_^]UVW#~ 2^+ٌǎ~VF_^]U#vv YY^،F^^&:F uVFNF;Fs33]UV#36^ F^^&^&:u F^&?u^&?u FF^&?u^]U#؃~u'Fظ"&t F F]U#؃~u'Fظ"&t F F]UV#>PYYVF uvv YY=s^&ظ"& u^&Gظ"& uq^&Gظ"& tY^&-t!^&+t^&Gظ"&t.^&Gظ"&uV^&Gظ"&u?420PFAP6*6( EP6.6, P3P6.6,- Pvv6*6( (&GVFRP YY3ɻ204^&ظ"& uzVFRP YY=r2^&Gظ"& t^&Gظ"& u<PVFRP6.6, ,&G4 F^&8ta^]UVW#؋v u(~ ~ ;r FFuO3F㋇;vr FFtN K㋇F rxt wquj~~u ^òtI^Cٸmf3һ+ʋF u;wu~ r ;ru ~ w3_^]U#؋FH"&"&VJ"&]UVW#ظ"&FNZ~ v;s H~u;;trsrsrsë_^] #ش$#"& +@#"& +@Turbo-C - Copyright (c) 1988 Borland Intl.Divide error Abnormal program termination print scanf : floating point formats not linked <$Id: bibclean.c,v 1.10 1996/04/26 01:15:13 beebe Exp beebe $ $+19@DKS[dkqw~HUNKNOWNABBREVATCOMMACOMMENTENTRYEQUALSFIELDINCLUDEINLINEKEYLBRACELITERALNEWLINEPREAMBLERBRACESHARPSPACESTRINGVALUEchaptermonthnumberpagesvolumeyear%s "%s", line %ld: %s. ???? ?? . ??%s %s ??Out of memory for pattern tables"#%'(),={}BIBCLEANINIBIBCLEANINIbibclean.inistdoutPATHBIBINPUTS@# line "" %ld input byte=%ld line=%ld column=%2ld output byte=%ld line=%ld column=%2ld File positions: input [] output [] Entry Value Current\%03oUnexpected paragraph break for field ``%f''Pushback buffer overflow: characters lostOut of string memory%s open file [%s]%s %%: FAILED%s%s "%s", line %ld: %s. %%%%$Id: chek.c,v 1.2 1996/04/26 01:17:05 beebe Exp beebe $Invalid checksum for CODEN %c%c%c%c%c%c in ``%%f = %%v''Invalid checksum for ISBN %s in ``%%f = %%v''Invalid checksum for ISSN %c%c%c%c-%c%c%c%c in ``%%f = %%v''ehhhlhohshvh{hIncomplete CODEN %c%c%c%c%c should be %c%c%c%c%c%c in ``%%f = %%v'' ??????????JrJr.SrSr.SJS.J.S. J.IVXUnexpected citation key ``%k''String length exceeds standard BibTeX limit for ``%f'' entrySuspicious year in ``%f = %v''Non-zero parenthesis level in ``%f = %v''Unexpected value in ``%f = %v''??????9ABCDEFGHIJKLMNOPQRSTUVWXYZ23456789ABCDEFGHIJKLMNOPQRSTUVWXYZ2345678??????????????????$Id: do.c,v 1.5 1996/04/26 01:35:56 beebe Exp beebe $+++++++++++++++++++++,, ,,,,,#,(,,,1,5,:,>,C,G,L,P,U,Y,_,c,h,l,q,u,z,~,,,,,,,,,,,,,,,,,,,,,,,,}])>'"`{[(<'"`../ ///*/8/F/T/b/l/v//%0:0O0U0[0p00000000000000000011131;1C1Z1q1x1111111111111122 2Expected Scribe close delimiter `%c' [8#%03o], but found `%c' [8#%03o] instead for field ``%%f''7O 7O7O7O7O!7O'7O.7O47O;7 O@7sG7sN7\T7BZ7 JanuaryjanFebruaryfebMarchmarAprilaprMaymayJunejunJulyjulAugustaugSeptembersepOctoberoctNovembernovDecemberdecJan.janFeb.febMar.marApr.aprJun.junJul.julAug.augSep.sepSept.sepOct.octNov.novDec.decJanjanFebfebMarmarApraprJunjunJuljulAugaugSepsepSeptsepOctoctNovnovDecdec%s Out of memory for pattern name [%s] -- pattern ignored %%Out of memory for pattern tables # Value too long for field ``%f''@ begins line, but brace level is not zero after entry ``@%e{%k,''Expected @name{...} after entry ``@%e{%k,''IncludePreambleString## # # Non-zero brace level after @name{...} processed. Last key = ``%k''Expected closing brace or parenthesis in entry ``@%e{%k,''Non-zero brace level after @name{...} processed. Last entry = ``@%e{%k,''Expected comma after last field ``%f''DeathesisDEAthesisInbookInBookIncollectionInCollectionInproceedingsInProceedingsMastersthesisMastersThesisPhdthesisPhdThesisTechreportTechReportNon-alphabetic character begins an entry name@entry_name too longIncludePreambleStringExpected "=" after field ``%f''BIBCLEANEXTBIBCLEANEXT.iniansi-standard-numberANSI-standard-numbercodenCODENieee-standard-numberIEEE-standard-numberisbnISBNiso-standard-numberISO-standard-numberissnISSNlccnLCCNmrclassMRclassmrnumberMRnumberuriURIurlURLurnURNxxansi-standard-numberxxANSI-standard-numberxxcodenxxCODENxxieee-standard-numberxxIEEE-standard-numberxxisbnxxISBNxxiso-standard-numberxxISO-standard-numberxxissnxxISSNxxmrclassxxMRclassxxmrnumberxxMRnumberxxurixxURIxxurixxURIxxurlxxURLxxurnxxURNEntry field name too longNon-alphabetic character begins a field nameoptOPTstdin-stdinrb %s Ignoring open failure on file [%s] ??perror() says@ begins line, but brace level is not zero after entry ``@%e{%k,''Expected open brace or parenthesis. Last entry = ``@%e{%k,''Braced literal string too long for entry ``%e''rCitation key too long=: %s Bad line [%s] in initialization file [%s] ??Non-zero brace level at end-of-fileExpected open brace or parenthesis. Last entry = ``@%e{%k,''"comment"@Comment{end"Comment"CommentBeginStringExpected Scribe open delimiter, one of { [ ( < ' " ` for field ``%f''Expected Scribe separator "=", "/", or " " for field ``%f'' Out of memory for pattern table spaceBibTeX string too long for field ``%f''Unexpected quote usage in German-style braced stringEnd-of-file in braced stringBibTeX string too long for field ``%f''BibTeX string too long for field ``%f''BibTeX string too long for field ``%f''End-of-file in quoted stringExpected Scribe value string for field ``%f''Scribe string too long for field ``%f''Scribe number string too long for field ``%f''Expected BibTeX value string for field ``%f''%s Bad line [%s] in initialization file [%s] ??},={authorchapterCODENISBNISSNmonthnumberpagesvolumeyearauthoreditormonthpagestitle""OPT"" file=[%s] field=[%-12s] existing patterns discarded file=[%s] field=[%-12s] pattern=[%s] file=[%s] field=[%-12s] pattern=[%s] message[%s] $Id: fix.c,v 1.4 1996/04/26 01:36:27 beebe Exp beebe $\bf\em\it\rm\sf\sl\tt {}" # # " # """" # " and and and "$Id: fndfil.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $ ;,|\\ ;,|$Id: isbn.c,v 1.2 1995/10/07 15:50:07 beebe Exp $PPPPPPPPPP P P P" P* P3 P< PA PF PL PR PY P` Ph Pp Py P P P P P P P P P P P P P P P P P P P P P P P$ P- P6 P; P@ PF PL PS PZ Pb Pj Ps P| P P P P P P P P P P P P P P P P P P P P P P P( P0 P9 PB PL PV P] Pd Pl Pt P} P P P P P P P P P P P P P P P P P P P P P& P, P2 P9 P@ PH PP PY Pb Pl Pv P| P P P P P P P P P P P P P P P P P P P P P" P) P0 P8 P@ PI PR PW P\ Pb Ph Po Pv P~ P P P P P P P P P P P P P P P P PP PPPP#P*P2P:P?PDPKPRPZPbPkPtP~PPPPPPPPPPPPPPPPP PPPP$P,P4P=PFPPPZPaPhPpPxPPPPPPPPPPPPPPPPPP PPP%P.P5P<PDPLPUP^PhPrPyPPPPPPPPPPPPPPPPPP PPP!P*P3P=PGPNPUP]PePnPwP}PPPPPPPPPPPPPPPPPP PPP)P/P5P<PCPKPSP\PePoPyPPPPPPPPPPPPPPPPPPPPP(P1P;PEPLPSP[PcPlPuP|PPPPPPPPPPPPPPPPP PPP$P-P4P;PCPKPTP]PdPkPsP{PPPPPPPPPPPPPPPPPP PPP"P+P5P?PFPMPUP]PfPoPwPPPPPPPPPPPPPPPPP PPP)P3P:PAPIPQPZPcPmPwP~PPPPPPPPPPPPPPPP PPP'P.P5P=PEPNPWPaPkPrPyPPPPPPPPPPPPPPPPP PPP%P/P9P@PGPOPWP_PgPpPyPPPPPPPPPPPPPPPPPPP'P/P8PAPKPUP]PePnPwPPPPPPPPPPPPPP0-000-190-2000-6980-70000-84990-850000-899970-9000000-9499990-95000000-98012231-550001-869571-8698001-8956822-012-192-2002-6072-70002-83172-840012-894362-9000002-9400282-95000002-99000033-013-193-2013-6333-70013-82523-850013-895243-9000013-9290313-95000003-98029644-004-194-2504-6574-75004-84704-870004-898294-9000004-9499995-015-125-2005-6905-70005-83965-850015-899965-9001655-9008507-007-047-1007-3147-50007-56397-800007-810357-9000007-90000080-0080-0980-20080-23680-700080-715180-8500080-8552980-90007580-90108181-20081-64881-700081-726681-8500081-8569081-90000081-90021182-40082-59982-700082-766182-9000082-9176982-99000082-99251783-0083-1183-20083-23383-700083-708083-8500083-8554183-90000083-90048284-0084-0784-20084-69984-700084-842084-8500084-8960085-0085-1785-20085-34185-700085-726185-8500085-8545785-90000085-90005186-0386-2786-30186-45586-700186-786186-8000186-8204586-90094186-90128987-0087-2087-41187-61187-700087-779987-8500187-8979687-98000087-99720288-0088-1988-20088-46188-700088-840288-8178588-8606589-089-090-0090-1890-20090-44990-500090-699990-7000090-7431990-80000090-80086891-091-191-2091-4891-50091-63291-700091-799891-8500291-8835691-97000091-99208392-092-592-6192-7792-80092-89192-900192-911793-093-0950-00950-47950-500950-795950-9000950-9899950-99000950-99949951-0951-1951-20951-54951-550951-889951-8900951-9498951-95000951-96448952-90952-90952-6666952-6666952-9500952-9714954-0954-0955-20955-28955-550955-616955-9000955-9151955-95000955-95444956-10956-19956-200956-266956-7000956-7205957-05957-43957-500957-685957-8500957-9699958-02958-32958-600958-656958-9000958-9285958-95001958-95343959-00959-13959-200959-216959-7000959-7033960-00960-12960-200960-433960-7000960-8499960-85000960-85203962-00962-19962-201962-474962-7001962-7646963-00963-18963-200963-892963-700963-8481963-85000963-85084965-01965-19965-207965-442967-60967-89967-900967-989967-9900967-9989967-99901967-99999968-10968-39968-400968-899968-6000968-7275969-0969-1969-26969-39969-400969-473969-8000969-8159970-05970-10970-604970-619970-91000970-91074971-06971-36971-500971-631971-8500971-8819971-91000971-91273972-0972-1972-20972-50972-550972-722972-8004972-9499972-95000972-97520973-21973-49973-550973-682973-9000973-9134973-95000973-95521974-00974-10974-200974-685974-7000974-8499974-85000974-88000975-09975-19975-345975-554975-7402975-7797975-95384975-96606976-40976-42976-600976-636976-8000976-8105977-01977-17977-200977-457977-5000977-5235978-000978-199978-2000978-2887978-30000978-31118979-400979-557979-8000979-8322980-00980-07980-200980-316980-6001980-6303981-00981-03981-200981-215981-3000981-3099982-01982-03982-100982-500983-60983-73983-800983-899983-9000983-9750983-99382983-99747984-01984-30984-400984-556984-8005984-8085987-0987-09963-09963-19963-309963-449963-5509963-5999963-75009963-78469964-09964-69964-709964-949964-9509964-9909966-209966-499966-8309966-8829966-98409966-98749968-97029968-97039971-09971-49971-609971-899971-9009971-9899971-99009971-99249973-109973-189973-7009973-9259973-97009973-99189974-09974-09974-309974-369974-5509974-5809974-75009974-75059976-19976-59976-609976-849976-9009976-9889976-99909976-99929977-009977-899977-9009977-9899977-99009977-99999978-579978-999978-9519978-9719978-99049978-99109979-19979-49979-509979-579979-8009979-8279979-90009979-90679980-09980-19980-549980-849980-9009980-9159981-09981-09982-009982-309982-8009982-8159982-99009982-99009983-859983-879983-99009983-99019987-309987-309987-5509987-5839987-88009987-88239988-09988-099903-099903-099904-099904-499904-6099904-6599904-90099904-91799908-1199908-2999908-90099908-90099911-0099911-3299911-60099911-86099912-099912-599912-6099912-7999912-90099912-90099913-099913-099914-099914-499914-5099914-5899914-90099914-92799915-099915-399915-5099915-7899915-80099915-83099916-199916-199916-3099916-3599916-70099916-70499920-099920-299920-5099920-5599920-90099920-904$Id: keybrd.c,v 1.3 1996/03/04 18:56:21 beebe Exp beebe $More? f)orwd b)ackwd e)nd q)uit r)efresh t)op \/)search   PgUp PgDn Home End More? f)orwd b)ackwd e)nd q)uit r)efresh t)op \/)search   PgUp PgDn Home End Search backward: Search forward: Search backward: $Id: match.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~$Id: option.c,v 1.5 1996/04/26 01:16:37 beebe Exp beebe $.? .#? .I? .? .? .? .n? .? .? .? .? (.? -.k? 7.? G.? V.? k.4? w.Z? .? .#? .? .? .n? .? .? .? .?  . ? 0 . ? B . 4? Q .? ^ .? m .8?  .^? .? .? .? .? .? .? .8? .^? .?  .? % .? 8 .? @ .? m .8?  .^? .? .8? .^? .? . . . .6 .K .f .l . . . . .K .z . . . .C .x . . ..M.}.....\...$.d....1.r.....:.z.....).n.p... .J....R....O.Q.a....b....[.....6.x....).n.....Q.i.k....>......9.~....<......E..... .P . . . . ..!.n!.!.!.!.".B".".".#.M#.#.#.$.W$.$.$.$.%._%.%.%.!&.f&.&.&.&. '.J'.'.'.'.'.(.(.-(.o(.(.(.(. ).K).).).*.S*.*.*.+.Z+.\+.+.+.!,.c,.,.,.,.,.-.-.--.q-.-.-.-.9..{..../././.5/.7/.M/././.0.W0.0.0.0.0.1.F1.H1.[1.1.1.!2.b2.2.2./3.U3.W3.q3.3.3.3.3.04.n4.4.4./5.15.D5.5.5.6.G6.v6.x6.6.6.7.U7.7.7.7.8.T8.8.8.9.-9./9.F9.9.9.9.7:.P:.R:.m:.:.:.3;.[;.];.;.;.*<.j<.<.<.3=.q=.=.=.=.=.5>.z>.>.>.>.?.b?.?.?.?.?.@.Z@.@.@.@. A._A.A.A.A.A.B.:B.iB.B.B.C.2C.gC.C.C.D. w%s cannot open error log file [%s]%% -- using stderr instead perror() says Usage: [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]align-equals ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile Command-line switches may be abbreviated to a unique leading prefix, and letter case is not significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag to no. For such options, the last setting determines the flag value used. This is significant when options are also specified in initialization files (see the INITIALIZATION FILES manual section). -author Display an author credit on the standard error unit, stderr. Sometimes an executable program is separated from its documentation and source code; this option provides a way to recover from that. -error-log filename Redirect stderr to the indicated file, which will then contain all of the error and warning messages. This option is provided for those systems that have difficulty redirecting stderr. -help or -? Display a help message on stderr, giving a usage description, similar to this section of the manual pages. -init-file filename Provide an explicit value pattern initialization file. It will be processed after any system-wide and job-wide initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANINI, but defaults to .bibcleanrc on UNIX, and to bibclean.ini elsewhere. For further details, see the INITIALIZATION FILES manual section. -max-width nnn bibclean normally limits output line widths to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special- purpose applications may require different maximum line widths, so this option provides that capability. The number following the option name can be specified in decimal, octal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is interpreted to mean unlimited, so -max-width 0 can be used to ensure that each field/value pair appears on a single line. When -no-prettyprint requests bibclean to act as a lexical analyzer, the default line width is unlimited, unless overridden by this option. When bibclean is prettyprinting, line wrapping will be done only at a space. Consequently, a long non-blank character sequence may result in the output exceeding the requested line width. When bibclean is lexing, line wrapping is done by inserting a backslash-newline pair when the specified maximum is reached, so no line length will ever exceed the maximum. -[no-]align-equals With the positive form, align the equals sign in key/value assignments at the same column, separated by a single space from the value string. Otherwise, the equals sign follows the key, separated by a single space. Default: no. -[no-]check-values With the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g. ``year = "192"'' instead of ``year = "1992"''), and issue warnings when unexpected patterns are found. This checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can disable it with the negative form of this option. Default: yes. -[no-]delete-empty-values With the positive form, remove all field/value pairs for which the value is an empty string. This is helpful in cleaning up bibliographies generated from text editor templates. Compare this option with -[no-]remove-OPT- prefixes described below. Default: no. -[no-]file-position With the positive form, give detailed file position information in warning and error messages. Default: no. -[no-]fix-font-changes With the positive form, supply an additional brace level around font changes in titles to protect against downcasing by some BibTeX styles. Font changes that already have more than one level of braces are not modified. For example, if a title contains the Latin phrase {\em Dictyostelium Discoideum} or {\em {D}ictyostelium {D}iscoideum}, then downcasing will incorrectly convert the phrase to lower-case letters. Most BibTeX users are surprised that bracing the initial letters does not prevent the downcase action. The correct coding is {{\em Dictyostelium Discoideum}}. However, there are also legitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, bibclean will normally not supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this option to supply them. If you think that you need this option, it is strongly recommended that you apply bibclean to your bibliography file with and without -fix-font-changes, then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You will have to decide which of the two output files is the better choice, then repair the incorrect title bracing by hand. Since font changes in titles are uncommon, except for cases of the type which this option is designed to correct, it should do more good than harm. Default: no. -[no-]fix-initials With the positive form, insert a space after a period following author initials. Default: yes. -[no-]fix-names With the positive form, reorder author and editor name lists to remove commas at brace level zero, placing first names or initials before last names. Default: yes. -[no-]German-style With the positive form, interpret quote characters ["] inside braced value strings at brace level 1 according to the conventions of the TeX style file german.sty, which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, invisible hyphens, raised/lowered quotes, French guillemets, and discretionary hyphens. Recognized character combinations will be braced to prevent BibTeX from interpreting the quote as a string delimiter. Quoted strings receive no special handling from this option, and since German nouns in titles must anyway be protected from the downcasing operation of most BibTeX bibliography styles, German value strings that use the overloaded quote character can always be entered in the form "{...}", without the need to specify this option at all. Default: no. -[no-]keep-linebreaks Normally, line breaks inside value strings are collapsed into a single space, so that long value strings can later be broken to provide lines of reasonable length. With the positive form, linebreaks are preserved in value strings. If -max-width is set to zero, this preserves the original line breaks. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-parbreaks With the positive form, preserve paragraph breaks (either formfeeds, or lines containing only spaces) in value strings. Normally, paragraph breaks are collapsed into a single space. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-preamble-spaces With the positive form, preserve all whitespace in @Preamble{...} entries. Default: no. -[no-]keep-spaces With the positive form, preserve all spaces in value strings. Normally, multiple spaces are collapsed into a single space. This option can be used together with - keep-linebreaks, -keep-parbreaks, and -max-width 0 to preserve the form of value strings while still providing syntax and value checking. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-string-spaces With the positive form, preserve all whitespace in @String{...} entries. Default: no. -[no-]parbreaks With the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field/value pairs. This may be useful to quickly trap runaway strings arising from mismatched delimiters. Default: yes. -[no-]prettyprint Normally, bibclean functions as a prettyprinter. However, with the negative form of this option, it acts as a lexical analyzer instead, producing a stream of lexical tokens. See the LEXICAL ANALYSIS manual section for further details. Default: yes. -[no-]print-patterns With the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used. When bibclean is compiled with native pattern-matching code (the default), these patterns are the ones that will be used in checking value strings for valid syntax, and all of them are specified in initialization files, rather than hard-coded into the program. For further details, see the INITIALIZATION FILES manual section. Default: no. -[no-]read-init-files With the negative form, suppress loading of system-, user-, and file-specific initialization files. Initializations will come only from those files explicitly given by -init-file filename options. Default: yes. -[no-]remove-OPT-prefixes With the positive form, remove the ``OPT'' prefix from each field name where the corresponding value is not an empty string. The prefix ``OPT'' must be entirely in upper-case to be recognized. This option is for bibliographies generated with the help of the GNU Emacs BibTeX editing support, which generates templates with optional fields identified by the ``OPT'' prefix. Although the function M-x bibtex-remove-OPT normally bound to the keystrokes C-c C-o does the job, users often forget, with the result that BibTeX does not recognize the field name, and ignores the value string. Compare this option with -[no-]delete-empty-values described above. Default: no. -[no-]scribe With the positive form, accept input syntax conforming to the Scribe document system. The output will be converted to conform to BibTeX syntax. See the SCRIBE BIBLIOGRAPHY FORMAT manual section for further details. Default: no. -[no-]trace-file-opening With the positive form, record in the error log file the names of all files which bibclean attempts to open. Use this option to identify where initialization files are located. Default: no. -[no-]warnings With the positive form, allow all warning messages. The negative form is not recommended since it may mask problems that should be repaired. Default: yes. -version Display the program version number on stderr. This will also include an indication of who compiled the program, the host name on which it was compiled, the time of compilation, and the type of string-value matching code selected, when that information is available to the compiler. Usage: [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]align-equals ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile bibclean Version 2.11.3 [01-May-1996] Compiled by <beebe@plot79.math.utah.edu> on May 02 1996 07:56:04 with native pattern matching no-$Id: romtol.c,v 1.1 1995/10/07 15:51:44 beebe Exp beebe $X" 2divxlcdm$Id: strist.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $$Id: strtol.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $H"0123456789abcdefghijklmnopqrstuvxwyz###* * * !!!!! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  0CDBXl  4H\p   @TMP.$$$ (null)0123456789ABCDEF       COMPAQ"""""""",">"["o"~"""""""""&"8"F"W"$Error 0Invalid function numberNo such file or directoryPath not foundToo many open filesPermission deniedBad file numberMemory arena trashedNot enough memoryInvalid memory block addressInvalid environmentInvalid formatInvalid access codeInvalid dataNo such deviceAttempted to remove current directoryNot same deviceNo more filesInvalid argumentArg list too bigExec format errorCross-device linkMath argumentResult too largeFile already existsUnknown error%s: %s ;Zx0Nm6#:#PFTZESTEDTbibclean-3.07/ibmpc/dos/tcc2p0/ibmtest.bat0000644000156700015670000001342206141407200017211 0ustar beebebeebeecho off break on REM ===================================================================== REM Test bibclean on IBM PC DOS. REM The funny backspace in echo commands is just to get a blank REM line, rather than the current echo status. REM [29-Apr-1996] REM ===================================================================== echo ================== begin BibTeX test 1 =================== echo bibclean -init bibclean.ini -err testbib1.err testbib1.org bibclean -init bibclean.ini -err testbib1.err testbib1.org >testbib1.bib echo  echo There should be no differences found: echo diff testbib1.bok testbib1.bib diff testbib1.bok testbib1.bib echo  echo There should be no differences found: echo diff testbib1.eok testbib1.err diff testbib1.eok testbib1.err echo =================== end BibTeX test 1 ==================== echo ================== begin BibTeX test 2 =================== echo bibclean -init bibclean.ini -no-check-values -err testbib2.err testbib2.org bibclean -init bibclean.ini -no-check-values -err testbib2.err testbib2.org >testbib2.bib echo  echo There should be no differences found: echo diff testbib2.bok testbib2.bib diff testbib2.bok testbib2.bib echo  echo There should be no differences found: echo diff testbib2.eok testbib2.err diff testbib2.eok testbib2.err echo =================== end BibTeX test 2 ==================== echo ================== begin BibTeX test 3 =================== echo bibclean -init bibclean.ini -fix-font-change -err testbib3.err testbib3.org bibclean -init bibclean.ini -fix-font-change -err testbib3.err testbib3.org >testbib3.bib echo  echo There should be no differences found: echo diff testbib3.bok testbib3.bib diff testbib3.bok testbib3.bib echo  echo There should be no differences found: echo diff testbib3.eok testbib3.err diff testbib3.eok testbib3.err echo =================== end BibTeX test 3 ==================== echo ================== begin BibTeX test 4 =================== echo bibclean -init bibclean.ini -fix-font-change -err testbib4.err testbib4.org bibclean -init bibclean.ini -fix-font-change -err testbib4.err testbib4.org >testbib4.bib echo  echo There should be no differences found: echo diff testbib4.bok testbib4.bib diff testbib4.bok testbib4.bib echo  echo There should be no differences found: echo diff testbib4.eok testbib4.err diff testbib4.eok testbib4.err echo =================== end BibTeX test 4 ==================== echo ================== begin BibTeX test 5 =================== echo bibclean -init bibclean.ini -German-style -err testbib5.err testbib5.org bibclean -init bibclean.ini -German-style -err testbib5.err testbib5.org >testbib5.bib echo  echo There should be no differences found: echo diff testbib5.bok testbib5.bib diff testbib5.bok testbib5.bib echo  echo There should be no differences found: echo diff testbib5.eok testbib5.err diff testbib5.eok testbib5.err echo =================== end BibTeX test 5 ==================== echo ================== begin BibTeX test 6 =================== echo bibclean -init bibclean.ini -err testisxn.err testisxn.org bibclean -init bibclean.ini -err testisxn.err testisxn.org >testisxn.bib echo  echo There should be no differences found: echo diff testisxn.bok testisxn.bib diff testisxn.bok testisxn.bib echo  echo There should be no differences found: echo diff testisxn.eok testisxn.err diff testisxn.eok testisxn.err echo =================== end BibTeX test 6 =================== echo ================== begin BibTeX test 7 =================== echo bibclean -init bibclean.ini -err testcodn.err testcodn.org bibclean -init bibclean.ini -err testcodn.err testcodn.org >testcodn.bib echo  echo There should be no differences found: echo diff testcodn.bok testcodn.bib diff testcodn.bok testcodn.bib echo  echo There should be no differences found: echo diff testcodn.eok testcodn.err diff testcodn.eok testcodn.err echo =================== end BibTeX test 7 =================== echo ================== begin Scribe test 1 =================== echo bibclean -init bibclean.ini -err testscr1.err -scribe -no-check testscr1.org bibclean -init bibclean.ini -err testscr1.err -scribe -no-check testscr1.org >testscr1.bib echo  echo There should be no differences found: echo diff testscr1.bok testscr1.bib diff testscr1.bok testscr1.bib echo  echo There should be no differences found: echo diff testscr1.eok testscr1.err diff testscr1.eok testscr1.err echo =================== end Scribe test 1 ==================== echo ==================== begin Scribe test 2 ===================== echo  bibclean -err testscr2.err -init-file bibclean.ini -scribe -file -no-check testscr2.org >testscr2.bib echo  echo There should be no differences found: echo diff testscr2.bok testscr2.bib echo  echo There should be no differences found: echo diff testscr2.eok testscr2.err echo  echo  bibclean -err testscr2.er2 -init-file bibclean.ini -scribe -file -no-check -no-par testscr2.org >testscr2.bi2 echo  echo There should be no differences found: echo diff testscr2.bo2 testscr2.bi2 echo  echo There should be no differences found: echo diff testscr2.eo2 testscr2.er2 echo  echo ===================== end Scribe test 2 ====================== echo ================== begin Scribe test 3 =================== echo bibclean -init bibclean.ini -err testscr3.err -scribe -no-check testscr3.org bibclean -init bibclean.ini -err testscr3.err -scribe -no-check testscr3.org >testscr3.bib echo  echo There should be no differences found: echo diff testscr3.bok testscr3.bib diff testscr3.bok testscr3.bib echo  echo There should be no differences found: echo diff testscr3.eok testscr3.err diff testscr3.eok testscr3.err echo =================== end Scribe test 3 ==================== bibclean-3.07/ibmpc/dos/tcc2p0/tcc20bld.bat0000644000156700015670000000244406142135220017142 0ustar beebebeebe:# Build bibclean with Turbo C 2.0 on IBM PC DOS. :# :# It is assumed that your ???/tc???/bin/turboc.cfg file sets library :# and link search paths appropriately. My turboc.cfg file says :# :# -IS:\SYS\TC\INCLUDE :# -LS:\SYS\TC\LIB :# :# [02-May-1996] :# You'll need to modify the directory path for wildargs.obj, which :# provides wild-card expansion of command line arguments. :# set WILDARGS=s:\sys\tc\wildargs.obj :#====================================================================== :# Set the desired compiler flags. These should not require changing. :# -A (ANSI keywords), -N (stack overflow check), -mc (compact memory :# model), -v (source debugging), -y (debug line numbers) :# set CFLAGS=-A -N -mc -v -y tcc -I. -A -N -mh -c bibclean.c tcc -I. -A -N -mh -c chek.c tcc -I. -A -N -mh -c do.c tcc -I. -A -N -mh -c fix.c tcc -I. -A -N -mh -c match.c tcc -I. -A -N -mh -c -DMAXPATHLEN=260 fndfil.c tcc -I. -A -N -mh -c isbn.c tcc -I. -A -N -mh -c keybrd.c tcc -I. -A -N -mh -c match.c tcc -I. -A -N -mh -c -DHOST="plot79.math.utah.edu" -DUSER="beebe" option.c tcc -I. -A -N -mh -c romtol.c tcc -I. -A -N -mh -c strist.c tcc -I. -A -N -mh -c strtol.c tcc -I. -A -N -mh bibclean.obj c*.obj d*.obj f*.obj i*.obj k*.obj m*.obj o*.obj r*.obj s*.obj s:\sys\tc\wildargs.obj bibclean-3.07/ibmpc/dos/tcc2p0/ibmclean.bat0000644000156700015670000000007406141407714017325 0ustar beebebeebedel test*.bi2 del test*.bib del test*.er2 del test*.err bibclean-3.07/ibmpc/dos/tcc2p0/tcc20pth.bat0000644000156700015670000000033106141774772017211 0ustar beebebeebe:# Set environment variables for compiling with Turbo C and running TeX :# [03-Nov-1992] path s:\sys\tc;s:\sys\td;h:\pc;c:\dos;c:\;c:\sunpc;f:\msdos;f:\unix;s:\usr\bin;s:\sys\bin;s:\sys\norton :# alias ls dir bibclean-3.07/ibmpc/dos/tpp3p0/0000775000156700015670000000000014431412252015111 5ustar beebebeebebibclean-3.07/ibmpc/dos/tpp3p0/tcc30pth.bat0000644000156700015670000000030505306476766017252 0ustar beebebeebe:# Set environment variables for compiling with Turbo C/C++ 3.0 :# [20-Nov-1992] path s:\sys\tc3p0\bin;s:\sys\td;h:\pc;c:\dos;c:\;c:\sunpc;f:\msdos;f:\unix;s:\usr\bin;s:\sys\bin;s:\sys\norton bibclean-3.07/ibmpc/dos/tpp3p0/config.h0000644000156700015670000001206306141423646016537 0ustar beebebeebe/* config.h. Generated automatically by configure. */ /* WARNING: Do NOT edit the config.h file; instead, put any needed changes in custom.h, so that they can override assumptions made in the automatically-generated config.h file */ #define STDC_HEADERS 1 /* #undef _ALL_SOURCE */ /* #undef _POSIX_SOURCE */ #define HAVE_STDC 1 /* Define if you want old pattern-less string matching in .ini files */ /* #undef HAVE_OLDCODE */ /* Define if you want standard bibclean-specific pattern in .ini files */ #define HAVE_PATTERNS 1 /* Define if you want regular-expression patterns in .ini files using re_comp() */ /* #undef HAVE_RECOMP */ /* #undef HAVE_REGEXP */ #if !(defined(__cplusplus) || defined(c_plusplus)) /* Define to empty if the keyword does not work, but do nothing in */ /* C++ environment, because autoconf 2.4 gets the wrong answer from */ /* the AC_C_CONST test program under C++ compilation. */ /* #undef const */ #endif /* Define if your free() requires (char*) cast instead of (void*) */ /* #undef FREE_CAST_IS_CHAR_STAR */ /* Define if your compiler recognizes \a as an alert (ASCII BEL) character */ #define HAVE_ALERT_CHAR 1 /* Library functions that we need */ #define HAVE_GETCWD 1 #define HAVE_GETWD 1 #define HAVE_STRCSPN 1 /* #undef HAVE_STRDUP */ #define HAVE_STRSPN 1 #define HAVE_STRSTR 1 #define HAVE_STRTOD 1 #define HAVE_STRTOL 1 /* Header files that we might need */ #define HAVE_CONIO_H 1 #define HAVE_CTYPE_H 1 /* #undef HAVE_DESCRIP_H */ #define HAVE_ERRNO_H 1 #define HAVE_FCNTL_H 1 /* #undef HAVE_IODEF_H */ #define HAVE_IO_H 1 /* #undef HAVE_JPIDEF_H */ #define HAVE_LIMITS_H 1 /* #undef HAVE_OSFCN_H */ /* #undef HAVE_PWD_H */ #define HAVE_REGEXP_H 1 /* #undef HAVE_REGEX_H */ /* #undef HAVE_RMS_H */ #define HAVE_SGTTY_H 1 /* #undef HAVE_SSDEF_H */ /* #undef HAVE_STAT_H */ /* #undef HAVE_STDDEF_H */ #define HAVE_STDIO_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 /* #undef HAVE_SYS_IOCTL_H */ /* #undef HAVE_SYS_PARAM_H */ #define HAVE_SYS_STAT_H 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_TERMIOS_H 1 #define HAVE_TERMIO_H 1 #define HAVE_TIME_H 1 /* #undef HAVE_TT2DEF_H */ /* #undef HAVE_TTDEF_H */ /* #undef HAVE_TYPES_H */ /* #undef HAVE_UNISTD_H */ /* #undef HAVE_UNIXIO_H */ #define RCSID(s) static char rcsid[] = s; #define OS_PCDOS 1 /* NB: some systems have Standard C header files, but compilers that do not accept function prototypes (e.g. HP HP-UX 9.0.3 /bin/cc) */ #if defined(STDC_HEADERS) && (defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)) #define ARGS(plist) plist #define VOID void #else #define ARGS(plist) () #define VOID #endif #define SCREEN_LINES 24 /*********************************************************************** The limit on file name lengths is non-standard: -------- ------------- ------------------------------------------ Name Definition System -------- ------------- ------------------------------------------ FNMAX PCC-20 MAXPATH Turbo C 2.0, C and C++ 3.0, and TopSpeed C _MAX_PATH Microsoft C 5.0, 6.0, 7.0 and TopSpeed C MAXPATHLEN Sun OS (4.2BSD), 4.3BSD, Gould UTX/32, HPUX, KCC-20, AIX (RT, RS, PS/2, 370), HP/Apollo DomainOS, DEC Alpha (OSF/1) PATH_MAX SYS V (Silicon Graphics) PATH_MAX POSIX, DEC Alpha (OSF/1) FILENAME_MAX Intel RMX, NeXT Mach, Turbo C/C++ 3.0 -------- ------------- ------------------------------------------ ***********************************************************************/ #if defined(HAVE_SYS_PARAM_H) #include #endif #if defined(HAVE_LIMITS_H) #include #endif #if defined(HAVE_STDLIB_H) #include #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN FNMAX #endif #if !defined(MAXPATHLEN) && defined(MAXPATH) #define MAXPATHLEN MAXPATH #endif #if !defined(MAXPATHLEN) && defined(_MAX_PATH) #define MAXPATHLEN _MAX_PATH #endif #if !defined(MAXPATHLEN) && defined(PATH_MAX) #define MAXPATHLEN PATH_MAX #endif #if !defined(MAXPATHLEN) && defined(FILENAME_MAX) #define MAXPATHLEN FILENAME_MAX #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN 1024 #endif #if defined(OS_PCDOS) #define SEP_COMP " ;,|" /* separators between filename components */ #define SEP_PATH "\\" /* separators between directory path and filename */ #endif #if defined(OS_UNIX) #define SEP_COMP " ;:,|" /* separators between filename components */ #define SEP_PATH "/" /* separators between directory path and filename */ #endif #include #if defined(__TURBOC__) #undef fileno #define fileno(f) ((f)->fd) #endif #include #if !defined(HAVE_IOCTL_PROTOTYPE) #if defined(__cplusplus) || defined(c_plusplus) /* system files should have: extern "C" {int ioctl ARGS((int, int, ...));} */ #else extern int ioctl ARGS((int, int, ...)); #endif #endif #if defined(FREE_CAST_IS_CHAR_STAR) #define FREE(p) free((char*)(p)) #else #define FREE(p) free((void*)(p)) #endif bibclean-3.07/ibmpc/dos/tpp3p0/bibclean.exe0000755000156700015670000046251406142133664017377 0ustar beebebeebeMZL3  ">Pjr[:C$ugbB4/! qlG94& pb]O. ^5rR2!up^T9+&     /     &        m_Zj\W' t l H         ^ N E 7 /  A0+ xsVB4/z^,J<7 ~y}ojH:2q`OG'wYKF9 6$tfaS0bQC>{wsokgc_[WSOKGC4a,a$aaa az=0%snaT{j]G/ $qkhZU<YSB2!{ZOE4)"+      o R +      { v W        Z *  xsB#U$ypb]N   0 "      l S 8 * " rd_4rZ?yhD%[D2#~iY yvhc@$vnXP<1 }kh]WRMB<9+&            p h M : -               q _ Q 9 )               s i X O 8 & !    zugWJ2,& i_I+               t n k ] X H ? 5 - #    `SE1"kZG94xb_QL=+#vj`N=7smZH4&iM,|kTC, lfN?3&m_ZH8$lOA,)}sbE~-nRD? awkc^PK,&xs?/#######v#e#K#>####"""""""""q"i"U"K"9"%"" "!!!!!!!|!n!i!Y!H!3!&!!         a Y  ''''''''''w'o'Z'R';'''&&&&&&&&&t&S&N&C&=&5&0&"&& &%%%%i%a%T%G%A%9%/%$%%% %%$$$$$$$t$g$b$D$9$3$.$ $$$-+&++****k*[*(*"*))))))))z)l)g)W)R)D);),)))))((((((y(d(K(A(/((((((////////}/o/j/P/@/3/&//.......q.c.C...------t-/,3333R3L3 33222222222o2]2W2Q2I282+22 2111111111B18131%1 100i0[0V0A0-0 077777777u717*7776666|655555t5H55 55444444444;443;;;;;;;;;y;m;j;\;W;;::::99999{9W9E9:949.99988888888~8v8m8_8Z8D8+88?????????r?l?d?\?V?J?=?0?-??? ?>>>>>>>>>>>n>a>Q>N>@>;>> >======e=\=N= = ==<<<<<<<<<<<w<r<,<<<;CCCCCCCCvCjCQCFC9C1C)C&CCCBBBBBBBBrBaBNB2B!BBAAAAAAAAAApAfAXAPAJA?A7A1A!AAAA@@@@@@@@@@@{@k@c@U@P@C@1@@??$DDDCl1h1d1`1\1X1T1P1L1H1D1@1<1814101,1(1$1 11111 111111111111111111111111111111111111|1x1V1R1N1J1F1B1>1:16121.1*1&1"111111 11111111111111111111111111111111111~1z1v1r1n1j1f1b1^1Z1V1R1N1J1F1B1>1:1u+1o+1k+1e+1a+1[+1W+1Q+1M+1G+19+13+1/+1)+1%+1+1+1+1+1 +1+1+1*1*1*1*1*1*1*1*1C C C C C C C ZC PC KC =C 8C %C C C C C C C C C C C C C C C C C xC ?C 'C C C C C C C mC >C %C C C C C C C C C C C C C iC ]C MC ;C C C C C C C C C C }C wC eC FC 6C )C C C C C C C C C C C lC YC OC GC DC 6C 1C C C C C C C C ]C 8C C C C C C C C C C f C V C C C 6 C  C C C C C C y C b C V C ? C 3 C $ C  C  C C C C C C C | C n C i C 7 C  C C C C C C C {C `C RC @C 4C %C C C c C U C P C 3 C - C % C  C    x d @     I ; 6  r 0     l '     ^ "   a a a a a ea 2a $a a a a a a a a a !a a a a Ka -a a a a na `a [a @a -a a a a a a a a na _a a ~zvrnjfb^ZVRNJFB>:62.*&" ~zvrnjfb^ZVRNJFB>:62.*&" ~zvrnjfb^ZVRNJFB>:62.*&" ~zvrnjfb^ZVRNJFB>:~zvrnjfb^ZVRNJFB>:62.*&" ~zvrnjfb^ZVRNJFB>:62.*&" ~zvrnjfb^ZVRNJFB>:62.*&" ~zvrnjfb^ZVRNJFB>:62.*&" ~zvrnjfb^ZVRNJFB>:62.*&"      V 9   k ] < . )  } %  z k ] R @ 2 %             |            | l [ M E   x c L ? 3 #  < < < Z< << < < < < r< >< *< < < < x< C< '< < < < < < < < p< :< ,< '< < < {< X< $< <              v m g [ S I A               } t f a Q I ; 6     e W O $             ~ y i a S N > 6 ( #               | w g _ Q L 2               w o a \ L D 6 1 !              ~ e P M ? : * "   { g Y T G 6 -    |xtplhd`\XTPLHD@<840,($  |xtpb\XRNHD>:40* |vrlhb^XTNJD@:60,&"|xrnhd^ZTPJ|xtplhd`XTPLHD@<840,($ |xtplhd`\XTPLHD@<840,($  |xtplhd`\XTPLHD@<840,($  |xtplhd`\XTPLHD@<840,($  $$u$r$d$\$8$*$%$i$)$$$>""k@+@ @@ @IZIGI7IIIIIrI4I!IIII]III I<+"\jT>&2""2"2"xJIpz '3HXr E / h RWh}{qg]J>0 6,tW0 |`V8!9 >P^sBcsN7+!~ l g < 4 !"""""#"$#######$ $>$C$\$$w%O&&M'A':')P)7)0)Z(4(+(('))G+*8*++I,, -+-.S,!.:.X.../+//////$0B0]1w11(21112"2"2"2"z2"v2"r2"n2"j2"f2"b2"^2"V2"R2"N2"J2"F2"B2">2":2"62"22".2"*2"&2""2"\54'4 44s3e2A296>6d66777%788M88)9k999:A:::;j;;;g<@=l==2"2"*2"@??>>>.@8@c@@@@@@2".S0!.,ڣ}{w.@>uNjعCC&8ùىuy+꿌&>Uts&>UtG;sډ{+؎JW!_ҋ&>Ut>vG>}r@w>~r7X!r*g!r H!r@HI!r X!sE t @p&3.S,6s6q6o6m6k& P.SVW,,_^ˋLF!/5![]5!_a5!ce5!gi%ʎں_!.S%[!%_!%c!%g!ˁt2׋;t#&?tt&:g&8gw&gӃ;t&?&t&_&Wô@!ù=.SPU2"؃> uFV3]U2"C2V!r ^ &3P]U2"CVN !r3P]U VW2"ظ2"&&FV2"&FNV#ڱ#uvB㋟K^ N@ظmظҖPfFI<u֐8=~u u $v$Y^]U2"3PPv|]U2"ظP3Pvc]2"3PP3PM2"ظPP3P:Vt^UVWv~ _^][Ssـ ˀ3 } у/sЊ% } у+s2+ӊЊ%UV2"؋v |X~W6 ރ#2"&6^]UV2"؋vV^]U2"ظD^!%]U"VW2"~ ^$w\rWFN }~t &-G؃v+6F +6F uNN6, s:FV F _^]U2"3Pvvv PPaPU]U2"؋^2"&BF ^N V!rP]U2"؋F F u^ F BvF FuڸOVFRPv v  RP]SPv v 1V F ] U2"v v3PP^&?u^&&PhV FFPv v< tV F]Vt^QЊŊYˊ%;u;U2"؋^2"&tP?^N V!rPp]2"عD2"&LJ2"؎&Ƈ,(P2"؎X&:A2"&9w2"&,PaY u 2"&&*P2"&*t3P3PP2"P(P. 2"&@PY u 2"&&>P2"&>t3P3PP2"P<PQ. U2"ظP3PPv]U2"؋Nu 2"؎&t  ]U2"؋Nu 2"؎&t ]U2"AV!r3P]ˊ'@'UVW2"FFPFJW2I_6GNu3SQRj+jPWv v V uFFP~jZY[j~~v& t<%t6GNv&<%t~3ɉNF NFF&2Ћ؀ `s_vy.owNπwNĀw~+tV봃fN 릀wMFu)N$~6Fs y؃NFnu׉FasʵFT,0wF |F2uF tFNeNfY FV3҈V~6 FV~6GGvFt6GG~~ u u ~ucNRPWǘPFPSV }Vv~^67CC^F t6CC^:Z6FfN+ϋV;vV~6F~26vV~F uq6=F uXU;NvNvV~N }WQ^SR#FPFt F FPj~FtV ~&=-uI+~V&=-t F tO&~~ N }N~^#F=ufou ~FxtXuN@KKn}FNFu  |K;F@t 0kFeV ~'++&<-t< t<+u&FIK0;+&6GN. ~ ˰ \v~F u6=FP*FF&FtGG&%vF~%& u~P}~tF_^] y = D I r P T X p  = U2"ظ2"&VJ2"P&Z‹VJ2"&]UVW2"ظ2"&FNZ~ v;s H~u;;trsrsrsë_^] #.6>{2&@Ň֓6uFF>}rw2㲀P@%+rI2KHRQSFPYY^FV#=t^FF/!^FV!~3҉~ 2vmrNt< t< t< t<"t$Srt< t < t< t<"u 32r t<"t2B륋+Ft RWPY_Zv+B(I<\tZ[#uыvYRV!ZH.&B܋+r&.&^Vv^ t3FF..6>66kom&UV2"v v 8(YY@Pv v vv VF^]U2"vvYY]U2"؋FRPYY]UV2"؋vF>F6F5^ F &F-؃w?.2"&;F|N2"&FuFp2"& u:2"&>t-2"&&FFF@PF@PeRPFPP$Vv$2"&F  F2"&;F}2"&F2"&F2"&;F}4P2"&P2"&P2"&P2"&PP NN tVvF^] wU2"ظ-P3PPvvF P]U2"^F&^F&:t3 ^&?u߸]2"شP2"XUQ@Yt tVj<u<t&<@uڳt=2 <t&<uPp Xt >t@]2"شhPY\&&U2"؊F;&:t-)$&>u@&>~@>v>@s >t3>@t @&>t PRPl u u3>u]ú.S@!'@!\.;t7ڎ>t.8.;t.3P.#.....R3PvÎ.;t.&>u&[&Ў&>u& &Q&؃>tá&&;t&... t!Ӝ66ӝ&.UVW.V t.;u._^]P.3PP%t+3.PRXP3ۊܱ.SP[=t..ډ3P3ۊܱ.SPQ[=t8%u..ډSR3SPZ[=tB3Ë)ڣۉU3ҋF UVF VW.t^rAu; . t . tڎ9s;u&v3w#._^]S.6V.6Vr u[SJ t7@@3ʁvv.Z.;tENj+&6&P&ю&>t&>&>ָS&S3P8ZU3UV F ^VW... t: t?r@u: &;rwӸ!BRP< SP3._^]UV2"؋vF2"&+6{?;6u2"V^&&j2"&2"֎&{;v ӎ&+{V2"&6{YYY؃u Ʊ뙸2"&{ú2"&&3^]U2"ظ2"&&N^w&2"&&N^r vv u3]U2"ظ2"&3ұ2"&FV|=vv2"&&N^wVF2"&&N^w¸2"&&N^r2"&&FVvvP tVF]2"ظ2"&>t&2"&!XPV2"ظ2"&>t PY^XPU2"ظ2"&>t2"&F2"&]UVW2"؋~vWVv v Q u3/F +@FvvWVRPvFFF;v ~߸_^]UVW2"؋~F +@FvWVcRPvvvFFF;v ~߸_^]U2"V DF^N!r ~uP]2"؀>t !UVW2"؋v~ vVv Wa t#vvF +FVR+ƋVR> u3S։~F;v} ׉vF)v+ƋVR}RPvWtRPF +F@P~FF;u͸_^]U2"FPP3PP].S&&U2"؋Fȸ2"&P3[ش2"&*ЈVF]U2"^&^&;t ^&¸2"&:rƲ^&]U VW2"؋~FF2"&;F u3F t v v 5F2"&;Fu3F tcvv FU~tFPFP@ ^&7F~tFPFPƊܹ ^ &7F O uV_^] U2"؋V2"& u2"&>tv v vvRv v vvR] UVW2"؋^ v~2"&ȸ2"&;w;w;;w9Vw ;v3_^]U2"؋V2"&. ^&FB;V~]U2"ظ2"& t@2"&>u0~t'F F FF~tF PF PFPFPF @PF P `PFPF PFPF Pn `PF PFP`PFPFPFPF P F @PF PFHPFPF PF P `PF PF PF PF P `PF PFP`PF PFPF k2"&>fFn N vVM] U2"شJ^F!rSPBX]VWw36y[ u 3&=t?G&8uG_^sqStack overflow! $یȎغ^" !2"ش2"2"&+@2"2"&+@U2"3PvvЃt F tu32"&]UVW2"Uv2"+ &Fu+t-uE&F9w/0r*t ᗇ⒗&F9w0sM|؃]_^]U2"vvlYY]U2"N CF V!rPw]U2"؋V2"&9w PU2"&LJRY]U2"ش>^!r2"&LJ3P]U2"ظ2"&;FwPa^2"&tLD^!r>€u5B3ɋ!r.RPB3ɋ!FVZYrB!r;Vr w;Fr3P]UV2"ؾ^&G;Ft^&t/&?}vS}YY uq^&Gt&w &wYY^&|&GPY^&G&G&&G&t3PPPP&wHRPYY^&G^]UV2"؋F Fu^&G;Ft^&?|Q&Gu&GV;Ft&9W uy^&&GV;Fub&9W u\&G &W&G&W JH^&G&@&)7P&G &W&G&W PR&GP;t^&Gu&OX3^]UVW2"؋~ 3ɋFVFV ^&F t4O~1^ &|&G&w &G & vv gYY=uuFV;Fu ;Vu33^&^ &Gt33VF_^]U2"ظB^33!r$RPB33!FVZYrB!rVFPޙ]UVW2"32"&6F2"F(^&Gt vSYYGFN uދ_^]UVW2"3^ F &T u ^&G@t^&gߠT^]2"ظ2"P(PYYUVW2"~ t%&%It2">F ߉~u 333F~&= t& t:u&9=uvuGnj_^]UVW2"~v NsVF_^]UW2"~N F t Is_]U2"؊F Pv vvVF]UVW2"؋N ^ VFǩuP Ճ~u,2"&>t &6 ǀt3F t?PPtvv3P }WqYvvv }~Vvv |f3PW@YYFt# t#% 3RPPW tWFtttPPvv |5t3ց RFt3Z Ћ2"&_^]U2"ذN u uV"N =!r FF % ^2"&FP~]U2"ظ2"&;}(2"&>|&㋇" FV^FvvvvP2"PPP]U2"^&v SFP]UV2"؊F^&?}T&&G&w &G &F &GuX> t > tGv vYY u32*^&Gu&Gu ^&O^&O&to&?tv SiYY u^&G&&G&w &G &F &Gu> t > tv vYY u^^&G2"؎&tP3PP^&GP҃> u'^&G@uPP&GPh =uPP^&GPI =t^&Gu^]U2"ظ2"P<PvH]UVW2"؋~~^&Gt."vv^ F &P =u3O u^&G@u0&u&9sm&?tvSYY u^&G2"؎&tP3PP^&GPуWv v ^&GPD ;r4i.^&|&&?u &+G&vvUYY t6Wv v ^&w&w p ^&&& ^&G2"؎&tP3PP^&GPЃWv v ^&GP ;r{^&tRG^&} &G&w &G ^ F &&´vv^ F &PL=u`O uWv v ^&GP;s8F_^] UVW2"ظ2"&;Fw PF @=r^2"&t3v v vvуF@=r^2"&@uFlNv&<t0< tSPFPvЃ[F;u(SPPQvlσ^2"&[+_^]UVW2"؋~v^&G;Fu v>u~<u>u ~(u^&?tP3PPvS( ^&Gt&w &wuYY^&g&GFV&G &W&G&W tg vc2"&&@F F u!V,YV F u:^&O-^F V &G&W &G &W&wu&O3_^]UV2"؋vVv v ^&w&7B ^&7S&G[&&^] U2"^&G8PFPv v FP]U2"^&G8PFPv v v]UVW2"~2u~ +tIs_^]UV2"v^ t :t"t:t"t:t "u33FD^]UVW2"3~ 2ыvD&]+_^]UVW2"~ 2ь~VF_^]U2"3,F V FV^&^&:tF^&?uFA^&?uˋ]UW2"~3;Fu;t H_]UVW2"؋~vvYYFv v YY;vVFFvPv v  F^&VF_^]UVW2"~ F2+ًˋvD&]2+_^]UVW2"~ 2^+ٌǎ~VF_^]U2"vvYY@ȋFVщFVN^&:F uVF I u33]U2"35F V FV^&^&:t F^&?u^&?t FA^&?u‹]UV2"PbYYVF uvv)YY=s^&2"؎& u^&G؎& tj^&G؎& tS^&-t&+t&G؎&t1^&G2"؎&uV^&G؎&u?PFP66P66P3P66Pvv66 &GFvPYYPR3ҸY[>ʉ^&2"؎& ttFvPYY=rl^&@2"؎& tR^&@؎& t;PFvP66. &G F^&8ti^]UV2"؃~u,v~;r FFuNFF^9v!~r FFtN^K㋇F~r{t~ wsul^~~~u ^òtI^Cٸmf3һ+ʋF~u;wu~ r ;ru ~ w3^]UVW2"؋~2"&9>w Pd?F @=s312"&tP3PPWZǃ2"&@uv v vW2"&F VFVF FuN^F&F< u ^& F^F&FrV3+Ѓ |Dur~8.tt= ttttt .tt]Uظ&9&Utw p">~  u]UVظ&9&Utwp"Ƈ6N ~ u |Y uRƄh2"h<h)h2"h<j _2P:6Pho >~h2"h<h)h2"h<q%^]Uظ&9&Utwp">~ ]UVظ&9&Utwp"FH | ;6}^]UV؋v&9&Utwp"> |= ttttt ttttƋ^]Uظ&9&Utwp"` h`ht(vvVFvv6t6t6t6thɅh6Qt6Ot)h̅6Qt6Ot6Qt6Otq%hυh2"h< hхh2"h< hԅh2"h< vvh2"h< hօh2"h< hمh2"h<O Uظ&9&Utwp"vvhh܅6Qt6Ot)j9]UVWظ&9&Utwp"F3^^&=%tFF^&=ftv=%u^=et^=ku=vuKh :=r"hvvht: ڸth tP9Rh0:=r"hvvht: ڸt5h0tP9h@:=r"hvvht: ڸth@tP9hP:=r"hvvht: ڸthPtP9`Ƅt%FXhvvht: ڸtS5r!hvvht: ڸt*^^&tFF^^&?tƄtڸt_^Uظ&9&Utwp"^&& Gt ^&w&7 ^&G&^&G& Gt"^&w&w ^&G&G]Uظ&9&Utwp"F Ftvvvv ]UVظ&9&Utwp"F FtW3^&&wP F^&9w^&& Gt^&w&7 ^&G^&G^]UVظ&9&Utwp"3Laa a a LJ aLJ aLJaLJaF a au^]UVWظ&9&Utwp">*d~*d*d㋇,d2`&|`&G& &G &6`6`-ttu ` u,tttttttt`{ƴ2"؎&utttttt`G u*tttttt%tttttttt{u }u_^]UVWظ&9&Utwp"3= t= t 83F}=tǴ2"؎&uW ~ _^]UVWظ&9&Utwp"3F>`u >`u>`u >`u>`uu`;= t= t->`u >`uNF>`u >`u7G=tƴ2"؎&u~ ~3`_^UVظ&9&Utwp"3 a a a aj*aaa au hğa&G&ğa&Gğa&GFd} a atc^]UV؋v&9&Utwp">Hdu0ƴ2"؎&u.t#t &t%u3$@duvvh?0.RP>@duvvhD0.RPv vV ` `u>au3ҸH``v vV+>`t3^UV؋v&9&Utwp"FVFVF V FVF;FwXF9FsNFVJFVF V JFV^&^&NNN w^&^&FFN w^UVW؋~ v &9&Utwp"FVFV ^&FN wVF_^Uظ&9&Utwp"hNj]UVW؋v&9&Utwp"=t<=t = u= u=t=t SG ;ƴ2"؎&u3%u j OW:=u uyw  t tj >P>auA t<@``;|&;v ttttj\j V_^]Uظ&9&Utwp"~2"u~<uv v ?vvv v )]Uظ&9&Utwp"jZjQ]Uظ&9&Utwp"hP^&w&whX^&w&7h[]UVWظ&9&Utwp"~t 3G^ && Gu3F^ && GtAvv^ &w&7)j ^ &w&7#9 tFFd;Ft^ && Gu\F Fdv v FdPVvvH t3u Fd+Ћ }3D;}=H52F.+ 73 vv^ &w&7)F^ && Gu_^Uظ&9&Utwp"h^j S]Uظ&9&Utwp"vvh`FP8 FPU<ظ&9&Utwp"v v vv^&w&w ^&w&w^&w&whdFP8FPvv^&w"&w ^&w&&w$^&w&whFP8FPvvUظ&9&Utvp"^&=u=t[= t>tu8F@vP ttڃ;`|;`v v^&Pdbj j >`uIjT=;j >`u+j6F^& t^&PfF^&?t ]UV؋v&9&Utwp">au j $N ^]Uظ&9&Utwp">Mttv v vvhvv 6`6`vvhˆvv6`6`vvh׆vvv v vvhthچvvM v v vvhthvv% v v vv[h`hvv ]Uظ&9&Utwp">`u>`uv veE>`u>`uv vG'>auv vKv vv]UV؋v&9&Utwp"^&?u;it!|;gtshWtitgtƙRPj CAj j"S^&= u-؃v.="t=tX=u=\tj\^&Pj\jbj\vjfmj\ajnXj\LjrCj\7jt.j\"jvtj\jnj\jnN^&? r^&?~w^&P*^&%PhFP8 FPNF^&?tj"j ^@UUظ&9&UtwNp"GE^&=t=t j :$j /j &^&PF^&?u]Uظ&9&Utwp"vvv v ]]Uظ&9&Utwp"hvv]UV؋v&9&Utwp">*d |h**d㉷,d*d.ttƴ2"؎&u`u`> utttt.tt utttt .tt{u }u^]Uظ&9&Utwp"DdA]Uظ&9&Utwp"vv:@P*VFF Fu hTvvvv9Uظ&9&Utwp"FF ^&?tf^&2"؎&t^&P* ^&P^ &2"؎&t^ &P* ^ &Z;t^&2"؎&t^&P* ^&P^ &2"؎&t^ &P* ^ &X+]UVW؋v&9&Utvp"^&2"؎&t ^&^&P#Ћ^ &2"؎&t ^ &^ &P#ЉV;~}P;~~FFF N v^&?t ^ &?t] u3^&?u^ &?u3_^Uظ&9&Utwp"v v vv)VF>tu4F FuڸڸRPvvh~hi6Qt6Ot)VFUظ&9&Utwp">tt*h`ht(vvsRP6t6t6t6th>StuڸڸRPh6Qt6Ot)h6Qt6Ot 6Qt6Otq%]UVظ&9&Utwp"3^&2"؎&u F^&8u^&8u@^]Uظ&9&Utwp"/jY]U:ظ&9&Utwp"^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GPhFFP8FPUVVظ&9&Utwp"h`FP9F@vP:vPF@vPFP. FjFPFPa FPhFP8 FP^U>ظ&9&Utwp"^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GPhFP8FPUظ&9&Utwp"hhP&6a&6a=t ]Uظ&9&Utwp"hhhh hhP ]U<ظ&9&Utwp"&StFP&Ot&GP+FP2"&@P+F;Fu-F;Fu%FV;Fu;VuFV;Fu ;Vu3&StUظ&9&Utwp"hPhhPa hhvhh hhP Uظ&9&Utwp"hhUhh hhP ]UVWظ&9&Utwp"3F^&=,t( = t2= t-={t=}t FN~ty~us3?:PF@vP= u@F uhF@vP9 uG^&9t53_^UVظ&9&Utwp"3]hh@& a& aA u6hh@&a&a' u'hF& a& au^]Uظ&9&Utwp"&> u~r h]UVظ&9&Utwp"hhP:F~uA3'hhP1&>&<A t>F1&8& :uhhP&6a&6a(=t^Uظ&9&Utwp"hhP&6 a&6a=t]UVظ&9&Utwp"3Vhh0& a& aA u/hhP&a&ao u 'F& a& au^]Uظ&9&Utwp"hhP&6(a&6&a=t]UVظ&9&Utwp"3^&&w&7v v < =uq^&&G& GtU^&&_&??u!^&&G@&wP ^&&w&wF^&9w~[^&u3^]Uظ&9&Utwp"hhP&60a&6.a=t]U ظ&9&Utwp"hhP&68a&66a=uaFFPm^&2"؎&tSj FPvvI VF~|u~r~|~3v hFVFVF^&?uUV؋v&9&Utwp"a| z/A| Z1| 9 0u$^]UVW؋N&9&Utwp"33-^ &8-t#^ &2"؎&u ^ &^&GF;sF H;w^&F^ &8-t^ &2"؎&u+_^]UDظ&9&Utwp"^&GP^&GP^&GP^&GP^&GP^&GP^&GP^&GP^&GP^&GP^&GPh FP8FPUV؋v&9&Utwp"~uN>Nv -u<>Ns2"& t N>Nr2"&t N3^]UV؋v&9&Utwp"~uP>Pv-t 2"&tF>P s2"&t P)>P r 2"&u Xtxu P3^]UV؋v&9&Utwp"~uR>Rv-t 2"&tF>Rs2"&t R)>Rr 2"&u Xtxu R3^]Uظ&9&Utwp"FVFVF V FVFPFP~tvvv^UVظ&9&Utwp"3^&G&W^&G &WF^&G^&_&?tV^&_&P^&=t^&G^3&+G^&G ^]UVWظ&9&Utwp"^&G&W^&G &W33,^&_&?(uF^&_&?)uN u3G^&G^&_&?tW^&_&P^& t ^&G^3&+G^&G t h_^]Uظ&9&Utwp"h0]U VWظ&9&Utwp"hPFP9v vvjFP F3DsBPT&u!BPǻ"X:Wt FPFzuFP:=uǻ"ڊzFFP&$FP:=u~v FP_^UVWظ&9&Utwp"hFP9v vvj FP$ F3_ s"zXtzxu BЋ7 u2zXtzxu BPǻ X;t FPFzuFP:= u~v FP_^U VWظ&9&Utwp"hFP9v vvj FPE F3ds'zXtzxu BփЋ7u2zXtzxu BPǻ X;t FPmFzuFP:=u~v FPB_^UVW1ظ&9&Utwp"h,vvd9 uvvW]^&G^&;Guvv(3^&&w&7vvd9 t^&&G& Gt2F Ft*^&&w&wvvd9 uF FuVFvv^&&W&Gvvvvv v @ F^&9w~1^&~&ESvv[&W&^&G&G^&SF FuVFvv[&W&Gvvvvv v  @ _^]UV1ظ&9&Utwp"3Wvv& a& aA u0vvv v vv&a&aGF& a& auc|(vvh-h,&6Qt&6Ot)vv& a& aj*&a&a&a& au h-!&ğa&G&&ğa&G&ğa&Gvvv v vv&a&a&LJa&LJa&LJa&LJa^]UV1ظ&9&Utwp"hhP:vv:FF=svvPhP92hhP&vvhhP9h9-h5-{^UV1ظ&9&Utwp"hhWthht(Shhthht(&>`u=@u8&R&>t:hY- & tV}h-h-{^]U1ظ&9&Utwp"]6'&>DduR&>`uBL&>au h}&>Dduh-hh d9 uFh-hh d9 uh-hh d9 u4"&>au h} &>Ddu&>Ddtmw&>DdtV`)Y&>Ddt8&>`t+5 =t͸&>Ddt"]U1ظ&9&Utwp"&>au ]U1ظ&9&Utwp"hhthht(&P1RPnq&>`u&>`u h-2&>`u&>`u h-Z h-MV1RP:SF=#tv8U1ظ&9&Utwp"hhthht(0RPhhP9hhP&>P"uPtmh-jth-jth-jtT0RPhhP9hhP&>P"uPtSF=#tvUV1ظ&9&Utwp"StZ&96 u5)u &3&>t-h-h-{V}h5.h4.{^]UV1ظ&9&Utwp"hhthht(Su,u &>`tL3&96 ul)u &&>u3)u &V&>`uD286V}hq.hp.{V}h.h.{&`^]UVW1ظ&9&Utwp"hhWthht(3 u"Ǵ2"؎& u h/  u Ǵ2"؎&t W* " vǴ2"؎&t W&>au5&>`u(׎& &Ƅ hh or,׎& &Ƅ h/hh {=׎& FS=tW  t&Ƅ t WF?^xvhh d9 u^|zhh 9F~|&>auhh &h/hh d9 uhh j`h/hh d9 uhh j8h/hh d9 uhh jhh jV_^UV1ظ&9&Utwp"hhthht(hhWthht(St%=u1V}h/h/{&?&+t&tP,^]UV1ظ&9&Utwp"F FuVFVFV4^&?\tF^&=7u-0؃v.-a؃v.o^&F^&F^& F^& F^& F^& F^& F^&G2"؎&t^&GP ^&G=xuVFPvvI ^&FFVJFV"^&^&F^&^&FF^&?t^&^o | 333 3333333 333 3 3 U1ظ&9&Utwp"h/0. th 00.ڸ0VFj.vv; uvv:Pvv:ZBR*VF tTvvvv9vvj.vv;RP9vvjjSvv UVW1ظ&9&Utwp"hhthht(hhWthht(3Sr,׎&0&Ƅ0h 2hh0{, u"Ǵ2"؎& u h#2 &>`uǴ2"؎&t WǺ&0SFtW  tTt W&Ƅ0&>`uzFA^hh0d9 u^hh09 F~|jhh0hP2: ujhT2hh0: v-V_^U1ظ&9&Utwp"&>`u3&>Ddt&>`t &>0u3db &>HduK&>Ddt &>`u3>{ &>HduW&>Ddt &>`u3]UV1ظ&9&Utwp"v^&G& Gu"&t&tX2h2"h(-h^2^&w&7d9 u"&t&t`2h2"h(Shf2^&w&76VF u>^&w&7h2hi2&6Qt&6Ot)h21h~^&G&&t&t&>@du&6t&6t7vvvv$F^&& Gt^UVW1ظ&9&Utwp"FFJd&>ath}&>Dduh}&>u(&> )u&96 u&}&>`u@u h2 &>u}uh}' V}&>u#S=tahhWthht(S{u& }L(u& )&/^&^&Gvvj h2 ^&{cSr%h#3 ^&vvj Y^&G&96 u)u &&>tuH^&}^&vvj _^U1ظ&9&Utwp"v v vv, &`&` uhS3&6`&6`6VF uUyQF^&2"؎&u^&P  tvvvvvvVF uvv$UVW1ظ&9&Utwp"hhWthht(3SEr+׎&@&Ƅ@hU3hh@{x׎&@SFt,tǴ2"؎&t&Ƅ@t W&> u hh@j tV_^]U1ظ&9&Utwp"FVFVhk3FPvv! VFF FuF FuF^&2"؎&t3FF^&2"؎&u~t^&?=t ^&?:t^&?=t ^&?:u FF^&2"؎&u^&?"thr3FPvv! VFF FuF^&2"؎&u^&?"u.hw3FPvv RPvvvv i^&?t ^&?%ujjvvvv >&6`&6`vvh3h|3&6Qt&6Ot)j9UV1ظ&9&Utwp"S uX&>uM&>`u&>`u,&>`u&>`u V^]U1ظ&9&Utwp"V^&`&`hht!&` "&>HduqS긌&>`tѸ&>auh}j }&>t h3 ]UV1ظ&9&Utwp"StS{u& }$;(u& )&`$V}h3h3{^]UV1ظ&9&Utwp"VF^&= t~= tw= tr= tm= te= t`=%tvv:VvvF@vPc  ^&@^&^&vvk&>`u&>`uvv`A&>`t1&>`t!vv0 ^UV1ظ&9&Utwp"VF^&= tE= t>= t= t4= t,= t'=%tCybd^&P뤃bd^&P 냸&6t&tvvj t&6tPK^UVW1ظ&9&Utwp"FFJd&tF&t3^&@u&>`u Wr'^&@^&vv!3 u^&vv!3b^&2"؎&tBǴ2"؎&t ^&F-^&vvz!3^&F ^&FS=t!^&vv>!V&t_^U1ظ&9&Utwp"&`&`]U1ظ&9&Utwp"~&>au h}&>DdtQA縌&>Ddt<=]U VW1ظ&9&Utwp"3VFh4vvA t h}O h4&F=@t={u=}uSFSFSFFh$4FPA uGeVFh(4vvA u]lvv"FP"$"FP}"F DNv}SF=t0vv="_^UbV1ظ&9&Utwp"S&>au&&>`uƈFFFPt~&96 u)u &m\V}%P< r <~w?P& %P&6 hnFP8FPh24{^UVW1ظ&9&Utwp"3&>DdtSS({uF}u N }FW}St&9> uN _^]U1ظ&9&Utwp"B ⸌&>Ddug&>`uW2&>au h}縌&>Ddu'h34hh d9 uh;4hh d9 uhA4hh d9 u&>au h}&>Ddu& F&a&>DdtqL希&>Ddt\7&1希&>DdtA&>`t4=tѸ&>DdtV& UV1ظ&9&Utwp"StUVhn#9VFF FuV}hI4hH4{^3nf& ^UVW1ظ&9&Utwp"3hhthht(>d|>bv3S&>au%&>`uƈFFFPft?=t/u.u~VV}h4h4{&?&+t&tP,_^U1ظ&9&Utwp"hhthht(RPhhP9&>Ddt &>`uhhP&]U1ظ&9&Utwp"&a&aFVh4FPvv VFh4FPvv VFFFF FuFFPv UVW1ظ&9&Utwp"FFJdhhWthht(S^&3s^&&>auvvjo&>`uvv&R&>`u&>`uvv&(&>`u&>`uvv&3^&FStǴ2"؎&t t0^&&>auvvjo&>`uvv&R&>`u&>`uvv&(&>`u&>`uvv&W_^U1ظ&9&Utwp"&`&`]U1ظ&9&Utwp"<&>au h}&>Ddt, t &>Ddt߸&>Dd]U1ظ&9&Utwp"^&uh*^&W&*^&GP^&w&7^&W&^&& Gu h4!^&G]U1ظ&9&Utwp"&>`t! FP~tUVW1ظ&9&Utwp"FFFJd&`SF3^&&>auB&>`u5vvv&`^&VFrCF^&@^&h4vv{&`^&VFh~ u dF~ u,&>`t&>`u FusF2"؎&tF X~{uFM~}uNB~\u`t@^&=ct]J=EtV$=<tO="tH='tC=-t>]=>t7=At2Q=Ut+ =It$=Ot>=`t=at2-e؃w(.-Ƃ{FƂ"FG^&FƂ}F'Ƃ{FƂ"FƂ}Fh$5H^&?\t@^&?{t^&?t{^&?{tk^&?}t[^&?}uKNOƂ{F^&GF^&GF^&GF^&GF^&FƂ}FVH^&?\u'NƂ{FƂ\FƂ"FG^&FƂ}F!Ƃ{FƂ"FƂ}F ^&FG^&9t sƆ"K6"KC6V~u hY5 &`Pvv9_^++,,+,,+++++,,+++,,,,,,+UVW1ظ&9&Utwp"FFJd3^&"FSKr5^&@^&hv5vv{^&VFO^&FStǴ2"؎&uW^&"F^&VVF_^UVW1ظ&9&Utwp"FFJdS3Kr5^&@^&h5vv{^&VFA^&FSt W  uW^&VVF_^UVW1ظ&9&Utwp"FFJd^&S&>Hdt%thhWthht(^&%SFV~uƴ2"؎&t?r^& GV%# uF~^&GSu^&VVF_^U1ظ&9&Utwp"**Tj 6*6*#9*** *tY*&>*vI*&\u>**J**+'vv*3+*P6*6*E& u>u^&G t33ڸ]UV1ظ&9&Utwp"FFJdS= t$= t= t= t8= t = t=%t'^&^&G%VVFV^&VF^U1ظ&9&Utwp"&>`u&>`u&>`u&>`u}&>`u&>`u^&>`uN&>`uAj  P&>`u&>`u   ]UVW1ظ&9&Utwp"FFFJd&`S3^&&>au@&>`u3Wvv&`^&VFrB^&@^&h5vv{&`^&VFi u < u(&>`u~&>`u ecǴ2"؎&t K{uFA}uN7\u2^&FS\u^&F  W3 t ^&F"u]vX~uR-^&?\ukSt6-^&{F^&\F^&"F^&F^&}F)Ǵ2"؎&t St5^&Vu h5 &`VF_^U VW1ظ&9&Utwp"FFFJdSWhn#9VFF Fu2^&^&Gh 6vv{^&VF;^3nfF 3^&"F&>au;&>`u.^&Wvv^&VF"tH^&?\u_~S{uH^&{^&\F^&"H^&{^&\F^&"F^&F^&}^&{F^&"F^&} u J^& u0^S&>`u &>`u [&kǴ2"؎&t ^& O\uB^&S\u!F^&  t"F^&W ^&~Ǵ2"؎&t SFt~\t;~t s6^&"@^&r!h96vv{^&VFVVF_^UVW1ظ&9&Utwp"FFJdS3^&"F^&FSW  trW^&"@^&r!ha6vv{^&VFFVVF_^UV1ظ&9&Utwp"SVV  t A^]UV1ظ&9&Utwp"FFJd^& u^&VF&>au4&>`u'Vvv^&VFVhhWthht({u Zƴ2"؎&twA"u6ƴ2"؎& th6h6{^&VF^U1ظ&9&Utwp"FVFVF FtF^&2"؎&uF Ft^&?t ^&?%uFFFF^&?"tFFVFV^&?\uFF^&?t ^&?"u^&?"u^&Fvv`҃&6`&6`vvh6h6&6Qt&6Ot)j9geFVFVF^&?t#^&?%t^&Pvv#9 t^&?t ^&?%u FF ^&F^ FV&G&VFU1ظ&9&Utwp"&&&`&`&Dd& &0&@&P]U1ظ&9&Utwp"vvFvP]U1ظ&9&Utwp"^&G&G^&G &G^&G&G ^&G&G]U1ظ&9&Utwp"h6jt]U1ظ&9&Utwp"&tF&th6jtV&tU1ظ&9&Utwp"FFPjvv#9VFF Fu:vv^&?"uPtvv:P^&vv^&?"uPtvv:PFVBFVjvv#9VFF Fujvv#9VF^&vvj tvv:PFVBFV^&?tU1ظ&9&Utwp"&>at&>`u&>`u j=}&>`u&>`u j=}ej }&>u(&?&+t&tP,j=}j }h6j]U1ظ&9&Utwp"&>au/&>`u&6=,hh0&$hh0&>`uP]U1ظ&9&Utwp"h6j t]U1ظ&9&Utwp"&>auvv&T^&2"؎&tvvj+^&?%uvvj vvj ]U1ظ&9&Utwp"&>`tK&>`t;hE+hh0&> u1hV7hhPd9 th*hh0 u&>BdtjhY7hh0: thh0:=vqhhP:=v^h}hh0:-@Phh0hh0c  &?&+t&tP,<&>`u/h]7hhPd9 uh}&`"]U1ظ&9&Utwp"&>atF F t ^ &?u2vv&6`&6`h`7&6Qt&6Ot)|F Fu8v v vv&6`&6`h7&6Qt&6Ot)P"ul&P2"؎&tRF;s&P2"؎&u@+PPhPhhPc  hhP:K&P"umNv ރ&P2"؎&uڋރ&P\uvރ&P\tNK&ƇP"&ƄP_^]U VWظ&9&Utwp"FFJdF33FL&P={t =}uF~t@PFFF^&2"؎&u^&?{ujh?vv: ujhCvv: txjhGvv: t`jhKvv: tHjhOvv: t0jhSvv: tjhWvv: u/^&{FF ~u~u ^&}FFN&P^&GF&Pt^&vvhhP9_^UVWظ&9&Utwp"&>`u VF<j(vv#9 t VF33FF5^&=,t={t=}tGO uFV։FVF^&8u‹F Fu VF^&FVBFVF^&2"؎&uvvh79h[h78vv=u4h]h78vvh78h_h78vvh78h7vv9_^UVظ&9&Utwp"FFJdFFP~u^&^&F31&:&8:;Ftvvv1&:&8= uchavv91&>&<vv8hfvv8jvv#9VFFF1&8& :t6vvvvv: FFFFFPvvVF t^&F3-JdFFJdhk-VvRd9 u-^&jhqvv: uFvPhhP9vvhhP9^UVWظ&9&Utwp"hhP:HF&>P"t}^&P"tjhwP9^&ƇPjPhPhy: u\&ƄPPhPRPRPP8hP8&ƄP @q&>Hdud&P;uW&ƄPPhPlRP6RPP8hP8&ƄP @F;vsPhPRPRPP8hP8PhhP9_^UVWظ&9&Utwp"F 33J&P-tO v K62"؎&uF&P-tF&P2"؎&uƃ-GF2"؎&t&P2"؎&ukF2"؎& t&P2"؎& u`u VF333^&^&^&8tm^&=.t={t=}tPAMIJ uF vBH^&2"؎&t&@^&2"؎&t G^& FG~VF_^U VWظ&9&Utwp"FFJd&>P"t3F3Z&P={t=}t0F&P^&FG+N&P^&FG~~F&P2"؎&u&P2"؎&u&P2"؎&tF3&P2"؎& u%u&PAuFFF&P\tF@!َ&P2"؎&tFAَ&P2"؎& u@;vu~~o^&{G&P^&FG;w^&}G&P{u&P}u&P\t&P tFFF~t\^&{G&P^&FG&P2"؎&uӸ&P2"؎&u^&}G&P^&FG&Pt^&WvvhhP9&>`u_^Uظ&9&Utwp"F FtFV=;79^ &=;FV;&="t ={t#=}t$(>7u!>9u39 77>9u$;&2"؎& t ^ &;-;&?.u ^ &;-^ &?u$^ &;; =t ;&?tQ^ &?u33VFUظ&9&Utwp"^ &2"؎& u ^ &?_uL^ &^&F F^ &^&F F^ &2"؎&u^ &?_t^&V F ]Uظ&9&Utwp"vvP9^FH^&VF#^&?$tF^&?{uqF@vPvvVF^F&?}t33vv0.VF^&^&FFF Ft ^&?u^&^&2"؎& u ^&?_u[vvvvlVFvv0.VF^&^&FFF Ft ^&?u^& ^&$F^&^&FF^&?t^&>HtڸH33UVWظ&9&Utwp"F F t ^ &?u33FVFVF FtmhvvhR: V3BhRVFF Ft.hRvvd9 tvvhR9F |^FRF Ft ^&?thv v hM: QhM tڸM33hWvv9~NjWvvhM: LPh\#9 u^MF+Pv v MP: QhMG tڸM4~^&?tFh`vvb;F^&?tC33_^UVظ&9&Utwp"jvv" u3 uPvvQVFF Ft5jvv" u3 tvvvv9^UVظ&9&Utvp"F^&?t(^&2"؎&u^&?Xt ^&?xu3FVFVb^&2"؎&u^&?Xt ^&?xu!F u1FVB^ &G&VFB^&? t ^&?-u F^&?u^&?tH^ &G&33^UVظ&9&Utwp"3J><vv:8Z uvv:8F8 :u33^]UVظ&9&Utw p"F ^ &?t(^ &2"؎&u^ &?Xt ^ &?xu3^&?-u Ƅ-FF^&?tpF ^ &?t(^ &2"؎&u^ &?Xt ^ &?xu^ &?u^ &F FF^&?u\}WƄ-FOMF ^ &?t(^ &2"؎&u^ &?Xt ^ &?xu^ &?t^ &F F^ &?t } u?^ &2"؎&u)^ &?Xt ^ &?xt-ڸ33^]UV؋v&9&Utwp"^ &FVFVFVF3+FPv v :Z;r.F3+FPvvv v 7: vvjVFF FtIv v :Pvv:Z;rvvv v 8FVFV/v v :@;rjvvv v 7: FFVFVFPvvVFF Ftv v :Pvv:Z;s(vvv v 8v v vv9^U*ظ&9&Utwp"vvFPv v FPmFP:PFPFP: }>vvFP1FP:PFPFP: }3Uظ&9&Utwp"FVFVQF ^ &?t(^ &2"؎&u^ &?Xt ^ &?xu^ &^&^ &?tF FF;FrUظ&9&Utwp"vvj_2vvq%]UVW؋v ~ &9&Utwp"vvh)vvq%SFCvI.B+}3 P@Z+8+.(@"vvh)럸@+}3@+3+F&Fd;&Fd+F^&& Gt^&&? uً^&& Gu@N&Fd;&Fd+N |&^&& Gt^&&? uՋ@.vvWVvvv;vv_^ {UVWظ&9&Utwp"F Fvv~ u:LP)vvq%3F~uZ~uQ~ uH~ u?~t~ujvv ~NƄH묃~uVvvg3ƄH뎃~u=VvvI3vvHP_2G;|vvq%K~un3NIH2"؎&tuF0H2"؎&ujvvN } }3ƄHvvq%O}*FHFvvv_2vvq%vv9 ~ƄH@vvhH)vvj _2vvj _2vvq%vvj _2h]:PhH:ZЋvvj _2N vvj _2vvq%~ uF +F}3F +FF 7F 20hHF ^&w&7@ u(~ uN F ~ |F ^&& Gu~ |F ^&& Gu$vvF@+F}3F@+FF F _^UV؋v &9&Utw:p"31vvj_2vvj _2vvj_2N vvq%^]Uظ&9&Utwp"]Uظ&9&Utwp"]UVظ&9&Utwp"r tu:aރG w%.a/ *% 3u㋇H^]).3GGGGG8=BUظ&9&Utwp"]Uظ&9&Utwp"]Uظ&9&Utwp"hjhH db\tX~*,`0l  n  2  h   > B ]Uظ&9&Utwp"FHvPVF^ &=Wu?8=Au= u=.u =:u l=Du=RurY=du=Xu=\u<=at7=ru=wu$^&2"؎& u3KvvCVF^&2"؎& u3vv VF^&2"؎& u^&2"؎&u3vvVF^&2"؎&u3vvVF^&2"؎&u@^&P $ u3Fvv>VF^&P $ u3vv VF^&P $ u^&2"؎&u3vvVF^&2"؎&uz^&2"؎&u3{vvqVF^&2"؎&u^&2"؎&uvv&VF^&2"؎&uvvVF^&2"؎&u^&2"؎&u3vvVF^&2"؎&u^&Ph9#9 uFvv[VF^&PhK#9 uvv-VF^&2"؎&u^&2"؎&u3vvVF^&2"؎&u^&Ph]#9 u|3u^&Pho#9 u3xvvnVF^&Ph#9 u)F ^ &^&:t33vv+VFF ^ &?t)^&?u3]Uظ&9&Utwp"F^&={tu =ts=\t =}taF^&2"؎& t F^&2"؎& u FF^&2"؎&u.F)F^&?uFF^&?uVF^&?tEVF]UVWظ&9&Utwp"^&&u^&&P u6>F ^&G&WFD^&G&B@hH@@6BP u=6B6@jdhF h? ~P8~Pj96>,^&G&F PRS^XXZ&W&GF;v}^&G&_^UVW؋~&9&Utwp"~^&&ti^&&P_ tK6>^&G&B@F ^&G&WFDh(@@6BPF;}{_^]UVW؋v&9&Utwp"3-t/u3_^]Uظ&9&Utwp"&]Uظ&9&Utwp"jhn&6Qt&6Ot ]Uظ&9&Utwp"& ]Uظ&9&Utwp"o&`]Uظ&9&Utwp">h 6F6D6&Qt&Ot uQ6F6Dh h h2"hP)h h2"hP)h 1&Qt2"&OtP]Uظ&9&Utwp"&Mt]Uظ&9&Utwp"|&`]Uظ&9&Utwp"Q&`]Uظ&9&Utwp"&&`]Uظ&9&Utwp"&a&a&>Fd~3Ph&6Qt&6Ot j9]Uظ&9&Utwp">6F6Djj]Uظ&9&Utwp"Z1&`]Uظ&9&Utwp"/&`]Uظ&9&Utwp"&`]Uظ&9&Utwp"&`]Uظ&9&Utwp"&`]Uظ&9&Utwp"&`]Uظ&9&Utwp">jjj6F6DI &`&`&>`u&>`w&`&`]Uظ&9&Utwp"&a]Uظ&9&Utwp"&a]Uظ&9&Utwp"&a]Uظ&9&Utwp"h&@d]Uظ&9&Utwp"=&Bd]Uظ&9&Utwp"&Hd]Uظ&9&Utwp"&t]Uظ&9&Utwp"]Uظ&9&Utwp"&t]Uظ&9&Utwp"5&a&a jh&6Qt&6Ot ]Uظ&9&Utwp"jh^&6Qt&6Ot ]Uظ&9&Utwp"jhNE@@6BP= u3]U""ظ&9&Utwp"F FuF F t^ &G&33FVFVF^&2"؎&uFFFFZ^&PVFF FtDFV;F|;VvFV)VF FVVFFVFVF^&?uFVVFF F tFV^ &G&VFU""ظ&9&Utwp"v u3]UV""؋v&9&Utwp"2"&t VP6>6<#9VFF Fu3^3+<㋇@^UV'"ظ&9&Utwp"v v :F Fu33LF F t ^ &?u.VF3$Vv v vv= uVFF^&?u33^]UVW+"ظ&9&Utwp"~|~$~*~t$F F tFV^ &G&33F^&2"؎&u^&=+t=-tFFFFFFVFV~u/^&?0u!^&xt ^&XuFF ~u!^&?0u^&xt ^&XuFFFF=u =tA=t}=u= uV$FVЉFV^& F VF^&?0}}^&?1~q'VFVF^& F VF^&?0}<^&?3~0'VFVF^& F VF^&?0}^&?7~^& u^&2"&t VV6<6:#9VFF FuF3+: }~VFVFǙ F VFp\^& uN^&2"&t VV6<6:#9VFF Fu F3+: }~VFVFǙ F VFp^& u^&2"&t VV6<6:#9VFF FtBF3+: |0FH;|(FPRVFY[VFǙ)FVFpF F tFV^ &G&~tVFJFVFV~tFVFVF F tFV^ &G&VF_^$Id: bibclean.c,v 1.10 1996/04/26 01:15:13 beebe Exp beebe $ $*17?FJQYajqw}HUNKNOWNABBREVATCOMMACOMMENTENTRYEQUALSFIELDINCLUDEINLINEKEYLBRACELITERALNEWLINEPREAMBLERBRACESHARPSPACESTRINGVALUEchaptermonthnumberpagesvolumeyear%s "%s", line %ld: %s. ???? ?? . ??%s %s ??Out of memory for pattern tables"#%'(),={}BIBCLEANINIBIBCLEANINIbibclean.inistdoutPATHBIBINPUTS@# line "" %ld input byte=%ld line=%ld column=%2ld output byte=%ld line=%ld column=%2ld File positions: input [] output [] Entry Value Current\%03oUnexpected paragraph break for field ``%f''Pushback buffer overflow: characters lostOut of string memory%s open file [%s]%s %%: FAILED%s%s "%s", line %ld: %s. %%%%$Id: chek.c,v 1.2 1996/04/26 01:17:05 beebe Exp beebe $Invalid checksum for CODEN %c%c%c%c%c%c in ``%%f = %%v''Invalid checksum for ISBN %s in ``%%f = %%v''Invalid checksum for ISSN %c%c%c%c-%c%c%c%c in ``%%f = %%v''knruy|Incomplete CODEN %c%c%c%c%c should be %c%c%c%c%c%c in ``%%f = %%v'' ??????????JrJr.SrSr.SJS.J.S. J.IVXUnexpected citation key ``%k''String length exceeds standard BibTeX limit for ``%f'' entrySuspicious year in ``%f = %v''Non-zero parenthesis level in ``%f = %v''Unexpected value in ``%f = %v''??????9ABCDEFGHIJKLMNOPQRSTUVWXYZ23456789ABCDEFGHIJKLMNOPQRSTUVWXYZ2345678??????????????????$Id: do.c,v 1.5 1996/04/26 01:35:56 beebe Exp beebe $+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+,10,14,19,1=,1B,1F,1K,1O,1U,1Y,1^,1b,1g,1k,1p,1t,1x,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 F O X ] b h n u |                  ")08@EJQX`hqz#*2:CLV`gnv~ "+4;BJR[dnx '09CMT[ckt} %/5;BIQYbku%.7AKRYair{ !*3:AIQZcjqy(1;ELS[clu} %/9@GOW`is}#-4;CKT]gqx "+5?FMU]emv %-5>GQ[ckt}0-000-190-2000-6980-70000-84990-850000-899970-9000000-9499990-95000000-98012231-550001-869571-8698001-8956822-012-192-2002-6072-70002-83172-840012-894362-9000002-9400282-95000002-99000033-013-193-2013-6333-70013-82523-850013-895243-9000013-9290313-95000003-98029644-004-194-2504-6574-75004-84704-870004-898294-9000004-9499995-015-125-2005-6905-70005-83965-850015-899965-9001655-9008507-007-047-1007-3147-50007-56397-800007-810357-9000007-90000080-0080-0980-20080-23680-700080-715180-8500080-8552980-90007580-90108181-20081-64881-700081-726681-8500081-8569081-90000081-90021182-40082-59982-700082-766182-9000082-9176982-99000082-99251783-0083-1183-20083-23383-700083-708083-8500083-8554183-90000083-90048284-0084-0784-20084-69984-700084-842084-8500084-8960085-0085-1785-20085-34185-700085-726185-8500085-8545785-90000085-90005186-0386-2786-30186-45586-700186-786186-8000186-8204586-90094186-90128987-0087-2087-41187-61187-700087-779987-8500187-8979687-98000087-99720288-0088-1988-20088-46188-700088-840288-8178588-8606589-089-090-0090-1890-20090-44990-500090-699990-7000090-7431990-80000090-80086891-091-191-2091-4891-50091-63291-700091-799891-8500291-8835691-97000091-99208392-092-592-6192-7792-80092-89192-900192-911793-093-0950-00950-47950-500950-795950-9000950-9899950-99000950-99949951-0951-1951-20951-54951-550951-889951-8900951-9498951-95000951-96448952-90952-90952-6666952-6666952-9500952-9714954-0954-0955-20955-28955-550955-616955-9000955-9151955-95000955-95444956-10956-19956-200956-266956-7000956-7205957-05957-43957-500957-685957-8500957-9699958-02958-32958-600958-656958-9000958-9285958-95001958-95343959-00959-13959-200959-216959-7000959-7033960-00960-12960-200960-433960-7000960-8499960-85000960-85203962-00962-19962-201962-474962-7001962-7646963-00963-18963-200963-892963-700963-8481963-85000963-85084965-01965-19965-207965-442967-60967-89967-900967-989967-9900967-9989967-99901967-99999968-10968-39968-400968-899968-6000968-7275969-0969-1969-26969-39969-400969-473969-8000969-8159970-05970-10970-604970-619970-91000970-91074971-06971-36971-500971-631971-8500971-8819971-91000971-91273972-0972-1972-20972-50972-550972-722972-8004972-9499972-95000972-97520973-21973-49973-550973-682973-9000973-9134973-95000973-95521974-00974-10974-200974-685974-7000974-8499974-85000974-88000975-09975-19975-345975-554975-7402975-7797975-95384975-96606976-40976-42976-600976-636976-8000976-8105977-01977-17977-200977-457977-5000977-5235978-000978-199978-2000978-2887978-30000978-31118979-400979-557979-8000979-8322980-00980-07980-200980-316980-6001980-6303981-00981-03981-200981-215981-3000981-3099982-01982-03982-100982-500983-60983-73983-800983-899983-9000983-9750983-99382983-99747984-01984-30984-400984-556984-8005984-8085987-0987-09963-09963-19963-309963-449963-5509963-5999963-75009963-78469964-09964-69964-709964-949964-9509964-9909966-209966-499966-8309966-8829966-98409966-98749968-97029968-97039971-09971-49971-609971-899971-9009971-9899971-99009971-99249973-109973-189973-7009973-9259973-97009973-99189974-09974-09974-309974-369974-5509974-5809974-75009974-75059976-19976-59976-609976-849976-9009976-9889976-99909976-99929977-009977-899977-9009977-9899977-99009977-99999978-579978-999978-9519978-9719978-99049978-99109979-19979-49979-509979-579979-8009979-8279979-90009979-90679980-09980-19980-549980-849980-9009980-9159981-09981-09982-009982-309982-8009982-8159982-99009982-99009983-859983-879983-99009983-99019987-309987-309987-5509987-5839987-88009987-88239988-09988-099903-099903-099904-099904-499904-6099904-6599904-90099904-91799908-1199908-2999908-90099908-90099911-0099911-3299911-60099911-86099912-099912-599912-6099912-7999912-90099912-90099913-099913-099914-099914-499914-5099914-5899914-90099914-92799915-099915-399915-5099915-7899915-80099915-83099916-199916-199916-3099916-3599916-70099916-70499920-099920-299920-5099920-5599920-90099920-904$Id: keybrd.c,v 1.3 1996/03/04 18:56:21 beebe Exp beebe $More? f)orwd b)ackwd e)nd q)uit r)efresh t)op \/)search   PgUp PgDn Home End More? f)orwd b)ackwd e)nd q)uit r)efresh t)op \/)search   PgUp PgDn Home End Search backward: Search forward: Search backward: $Id: match.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~$Id: option.c,v 1.5 1996/04/26 01:16:37 beebe Exp beebe $5 1 \          5 # - =, LW a m  1             &  , 8   G G T r c  u    I  G r       I . t 6  c  u  I   I    , A \ b y    A p    9 n    Cs RZ'h0pdf{@HEGWXQ,ndG_au4y/t2u;| F     $!d!!!!!8"{"""C### $M$$$$%U%%%&\&&&&'@'''''((#(e(((((A))) *I***+P+R+++,Y,,,,, - -#-g----/.q...//+/-/C/// 0M00000 1<1>1Q1112X222%3K3M3g33333&4d444%5'5:5v555=6l6n6667K7~7778J8889#9%9<9|999-:F:H:c:::);Q;S;;; <`<<<)=g=====+>p>>>>?X?????@P@@@@AUAAAAAA0B_BBBB(C]CCCC2DbDDDDDDDDDEEE#E%E.ELE?align-equalsauthorcheck-valuesdelete-empty-valueserror-logfile-positionfix-font-changesfix-initialsfix-namesGerman-stylehelpinit-filekeep-linebreakskeep-parbreakskeep-preamble-spaceskeep-spaceskeep-string-spacesmax-widthno-align-equalsno-check-valuesno-delete-empty-valuesno-file-positionno-fix-font-changesno-fix-initialsno-fix-namesno-German-styleno-keep-linebreaksno-keep-parbreaksno-keep-spacesno-parbreaksno-prettyprintno-print-patternsno-read-init-filesno-remove-OPT-prefixesno-scribeno-trace-file-openingno-warningsparbreaksprettyprintprint-patternsread-init-filesremove-OPT-prefixesscribetrace-file-openingversionwarnings%s%.*sUnrecognized option switch: no-print-patternsno-read-init-filesno-trace-file-openingprint-patternsread-init-filestrace-file-openingAuthor: Nelson H. F. Beebe Center for Scientific Computing Department of Mathematics University of Utah Salt Lake City, UT 84112 USA Tel: +1 801 581 5254 FAX: +1 801 581 4801 Email: w%s cannot open error log file [%s]%% -- using stderr instead perror() says Usage: [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]align-equals ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile Command-line switches may be abbreviated to a unique leading prefix, and letter case is not significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag to no. For such options, the last setting determines the flag value used. This is significant when options are also specified in initialization files (see the INITIALIZATION FILES manual section). -author Display an author credit on the standard error unit, stderr. Sometimes an executable program is separated from its documentation and source code; this option provides a way to recover from that. -error-log filename Redirect stderr to the indicated file, which will then contain all of the error and warning messages. This option is provided for those systems that have difficulty redirecting stderr. -help or -? Display a help message on stderr, giving a usage description, similar to this section of the manual pages. -init-file filename Provide an explicit value pattern initialization file. It will be processed after any system-wide and job-wide initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANINI, but defaults to .bibcleanrc on UNIX, and to bibclean.ini elsewhere. For further details, see the INITIALIZATION FILES manual section. -max-width nnn bibclean normally limits output line widths to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special- purpose applications may require different maximum line widths, so this option provides that capability. The number following the option name can be specified in decimal, octal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is interpreted to mean unlimited, so -max-width 0 can be used to ensure that each field/value pair appears on a single line. When -no-prettyprint requests bibclean to act as a lexical analyzer, the default line width is unlimited, unless overridden by this option. When bibclean is prettyprinting, line wrapping will be done only at a space. Consequently, a long non-blank character sequence may result in the output exceeding the requested line width. When bibclean is lexing, line wrapping is done by inserting a backslash-newline pair when the specified maximum is reached, so no line length will ever exceed the maximum. -[no-]align-equals With the positive form, align the equals sign in key/value assignments at the same column, separated by a single space from the value string. Otherwise, the equals sign follows the key, separated by a single space. Default: no. -[no-]check-values With the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g. ``year = "192"'' instead of ``year = "1992"''), and issue warnings when unexpected patterns are found. This checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can disable it with the negative form of this option. Default: yes. -[no-]delete-empty-values With the positive form, remove all field/value pairs for which the value is an empty string. This is helpful in cleaning up bibliographies generated from text editor templates. Compare this option with -[no-]remove-OPT- prefixes described below. Default: no. -[no-]file-position With the positive form, give detailed file position information in warning and error messages. Default: no. -[no-]fix-font-changes With the positive form, supply an additional brace level around font changes in titles to protect against downcasing by some BibTeX styles. Font changes that already have more than one level of braces are not modified. For example, if a title contains the Latin phrase {\em Dictyostelium Discoideum} or {\em {D}ictyostelium {D}iscoideum}, then downcasing will incorrectly convert the phrase to lower-case letters. Most BibTeX users are surprised that bracing the initial letters does not prevent the downcase action. The correct coding is {{\em Dictyostelium Discoideum}}. However, there are also legitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, bibclean will normally not supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this option to supply them. If you think that you need this option, it is strongly recommended that you apply bibclean to your bibliography file with and without -fix-font-changes, then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You will have to decide which of the two output files is the better choice, then repair the incorrect title bracing by hand. Since font changes in titles are uncommon, except for cases of the type which this option is designed to correct, it should do more good than harm. Default: no. -[no-]fix-initials With the positive form, insert a space after a period following author initials. Default: yes. -[no-]fix-names With the positive form, reorder author and editor name lists to remove commas at brace level zero, placing first names or initials before last names. Default: yes. -[no-]German-style With the positive form, interpret quote characters ["] inside braced value strings at brace level 1 according to the conventions of the TeX style file german.sty, which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, invisible hyphens, raised/lowered quotes, French guillemets, and discretionary hyphens. Recognized character combinations will be braced to prevent BibTeX from interpreting the quote as a string delimiter. Quoted strings receive no special handling from this option, and since German nouns in titles must anyway be protected from the downcasing operation of most BibTeX bibliography styles, German value strings that use the overloaded quote character can always be entered in the form "{...}", without the need to specify this option at all. Default: no. -[no-]keep-linebreaks Normally, line breaks inside value strings are collapsed into a single space, so that long value strings can later be broken to provide lines of reasonable length. With the positive form, linebreaks are preserved in value strings. If -max-width is set to zero, this preserves the original line breaks. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-parbreaks With the positive form, preserve paragraph breaks (either formfeeds, or lines containing only spaces) in value strings. Normally, paragraph breaks are collapsed into a single space. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-preamble-spaces With the positive form, preserve all whitespace in @Preamble{...} entries. Default: no. -[no-]keep-spaces With the positive form, preserve all spaces in value strings. Normally, multiple spaces are collapsed into a single space. This option can be used together with - keep-linebreaks, -keep-parbreaks, and -max-width 0 to preserve the form of value strings while still providing syntax and value checking. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-string-spaces With the positive form, preserve all whitespace in @String{...} entries. Default: no. -[no-]parbreaks With the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field/value pairs. This may be useful to quickly trap runaway strings arising from mismatched delimiters. Default: yes. -[no-]prettyprint Normally, bibclean functions as a prettyprinter. However, with the negative form of this option, it acts as a lexical analyzer instead, producing a stream of lexical tokens. See the LEXICAL ANALYSIS manual section for further details. Default: yes. -[no-]print-patterns With the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used. When bibclean is compiled with native pattern-matching code (the default), these patterns are the ones that will be used in checking value strings for valid syntax, and all of them are specified in initialization files, rather than hard-coded into the program. For further details, see the INITIALIZATION FILES manual section. Default: no. -[no-]read-init-files With the negative form, suppress loading of system-, user-, and file-specific initialization files. Initializations will come only from those files explicitly given by -init-file filename options. Default: yes. -[no-]remove-OPT-prefixes With the positive form, remove the ``OPT'' prefix from each field name where the corresponding value is not an empty string. The prefix ``OPT'' must be entirely in upper-case to be recognized. This option is for bibliographies generated with the help of the GNU Emacs BibTeX editing support, which generates templates with optional fields identified by the ``OPT'' prefix. Although the function M-x bibtex-remove-OPT normally bound to the keystrokes C-c C-o does the job, users often forget, with the result that BibTeX does not recognize the field name, and ignores the value string. Compare this option with -[no-]delete-empty-values described above. Default: no. -[no-]scribe With the positive form, accept input syntax conforming to the Scribe document system. The output will be converted to conform to BibTeX syntax. See the SCRIBE BIBLIOGRAPHY FORMAT manual section for further details. Default: no. -[no-]trace-file-opening With the positive form, record in the error log file the names of all files which bibclean attempts to open. Use this option to identify where initialization files are located. Default: no. -[no-]warnings With the positive form, allow all warning messages. The negative form is not recommended since it may mask problems that should be repaired. Default: yes. -version Display the program version number on stderr. This will also include an indication of who compiled the program, the host name on which it was compiled, the time of compilation, and the type of string-value matching code selected, when that information is available to the compiler. Usage: [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]align-equals ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile bibclean Version 2.11.3 [01-May-1996] Compiled by <beebe@plot79.math.utah.edu> on May 02 1996 07:24:58 with native pattern matching no-$Id: romtol.c,v 1.1 1995/10/07 15:51:44 beebe Exp beebe $N"" 2divxlcdm$Id: strist.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $$Id: strtol.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $>+"0123456789abcdefghijklmnopqrstuvxwyzBorland C++ - Copyright 1991 Borland Intl.Divide error Abnormal program termination !!!!! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  ( <PCdBx```@###TMP.$$$(null)       COMPAQprint scanf : floating point formats not linked 2"2"2"2"2"2"%2"52"J2"\2"y2"2"2"2"2"2"2"2"2"!2"22"D2"V2"d2"u2"2"%Error 0Invalid function numberNo such file or directoryPath not foundToo many open filesPermission deniedBad file numberMemory arena trashedNot enough memoryInvalid memory block addressInvalid environmentInvalid formatInvalid access codeInvalid dataNo such deviceAttempted to remove current directoryNot same deviceNo more filesInvalid argumentArg list too bigExec format errorCross-device linkMath argumentResult too largeFile already existsFile already existsPossible deadlockUnknown error%s: %s ;Zx0Nm2"2"PFTZESTEDT";bibclean-3.07/ibmpc/dos/tpp3p0/tpp30bld.bat0000644000156700015670000000324306142135030017225 0ustar beebebeebe:# Build bibclean with Turbo C/C++ 3.0 in C++ compilation mode on IBM PC DOS. :# :# It is assumed that your ???/tc???/bin/turboc.cfg file sets library :# and link search paths appropriately. My turboc.cfg file says :# :# -IS:\SYS\TC3P0\INCLUDE :# -LS:\SYS\TC3P0\LIB :# :# [02-May-1996] :# You'll need to modify the directory path for wildargs.obj, which :# provides wild-card expansion of command line arguments. :# set WILDARGS=s:\sys\tc3p0\lib\wildargs.obj :#====================================================================== :# Set the desired compiler flags. These should not require changing. :# -P (C++ compilation), -A (ANSI keywords), -N (stack overflow check), :# -mc (compact memory model), -v (source debugging), -y (debug line :# numbers). :# set CFLAGS=-P -A -N -mc -v -y :# The executable produced is considerably smaller for C than for C++, :# so we remove -P -v -y for production use. tcc -P -2 -G -Z -O -I. -A -N -mh -c bibclean.c tcc -P -2 -G -Z -O -I. -A -N -mh -c chek.c tcc -P -2 -G -Z -O -I. -A -N -mh -c do.c tcc -P -2 -G -Z -O -I. -A -N -mh -c fix.c tcc -P -2 -G -Z -O -I. -A -N -mh -c match.c tcc -P -2 -G -Z -O -I. -A -N -mh -c -DMAXPATHLEN=260 fndfil.c tcc -P -2 -G -Z -O -I. -A -N -mh -c isbn.c tcc -P -2 -G -Z -O -I. -A -N -mh -c keybrd.c tcc -P -2 -G -Z -O -I. -A -N -mh -c match.c tcc -P -2 -G -Z -O -I. -A -N -mh -c -DHOST="plot79.math.utah.edu" -DUSER="beebe" option.c tcc -P -2 -G -Z -O -I. -A -N -mh -c romtol.c tcc -P -2 -G -Z -O -I. -A -N -mh -c strist.c tcc -P -2 -G -Z -O -I. -A -N -mh -c strtol.c tcc -P -N -mh bibclean.obj c*.obj d*.obj f*.obj i*.obj k*.obj m*.obj o*.obj r*.obj s*.obj s:\sys\tc3p0\lib\wildargs.obj bibclean-3.07/ibmpc/dos/tpp3p0/ibmtest.bat0000644000156700015670000001342206141407200017244 0ustar beebebeebeecho off break on REM ===================================================================== REM Test bibclean on IBM PC DOS. REM The funny backspace in echo commands is just to get a blank REM line, rather than the current echo status. REM [29-Apr-1996] REM ===================================================================== echo ================== begin BibTeX test 1 =================== echo bibclean -init bibclean.ini -err testbib1.err testbib1.org bibclean -init bibclean.ini -err testbib1.err testbib1.org >testbib1.bib echo  echo There should be no differences found: echo diff testbib1.bok testbib1.bib diff testbib1.bok testbib1.bib echo  echo There should be no differences found: echo diff testbib1.eok testbib1.err diff testbib1.eok testbib1.err echo =================== end BibTeX test 1 ==================== echo ================== begin BibTeX test 2 =================== echo bibclean -init bibclean.ini -no-check-values -err testbib2.err testbib2.org bibclean -init bibclean.ini -no-check-values -err testbib2.err testbib2.org >testbib2.bib echo  echo There should be no differences found: echo diff testbib2.bok testbib2.bib diff testbib2.bok testbib2.bib echo  echo There should be no differences found: echo diff testbib2.eok testbib2.err diff testbib2.eok testbib2.err echo =================== end BibTeX test 2 ==================== echo ================== begin BibTeX test 3 =================== echo bibclean -init bibclean.ini -fix-font-change -err testbib3.err testbib3.org bibclean -init bibclean.ini -fix-font-change -err testbib3.err testbib3.org >testbib3.bib echo  echo There should be no differences found: echo diff testbib3.bok testbib3.bib diff testbib3.bok testbib3.bib echo  echo There should be no differences found: echo diff testbib3.eok testbib3.err diff testbib3.eok testbib3.err echo =================== end BibTeX test 3 ==================== echo ================== begin BibTeX test 4 =================== echo bibclean -init bibclean.ini -fix-font-change -err testbib4.err testbib4.org bibclean -init bibclean.ini -fix-font-change -err testbib4.err testbib4.org >testbib4.bib echo  echo There should be no differences found: echo diff testbib4.bok testbib4.bib diff testbib4.bok testbib4.bib echo  echo There should be no differences found: echo diff testbib4.eok testbib4.err diff testbib4.eok testbib4.err echo =================== end BibTeX test 4 ==================== echo ================== begin BibTeX test 5 =================== echo bibclean -init bibclean.ini -German-style -err testbib5.err testbib5.org bibclean -init bibclean.ini -German-style -err testbib5.err testbib5.org >testbib5.bib echo  echo There should be no differences found: echo diff testbib5.bok testbib5.bib diff testbib5.bok testbib5.bib echo  echo There should be no differences found: echo diff testbib5.eok testbib5.err diff testbib5.eok testbib5.err echo =================== end BibTeX test 5 ==================== echo ================== begin BibTeX test 6 =================== echo bibclean -init bibclean.ini -err testisxn.err testisxn.org bibclean -init bibclean.ini -err testisxn.err testisxn.org >testisxn.bib echo  echo There should be no differences found: echo diff testisxn.bok testisxn.bib diff testisxn.bok testisxn.bib echo  echo There should be no differences found: echo diff testisxn.eok testisxn.err diff testisxn.eok testisxn.err echo =================== end BibTeX test 6 =================== echo ================== begin BibTeX test 7 =================== echo bibclean -init bibclean.ini -err testcodn.err testcodn.org bibclean -init bibclean.ini -err testcodn.err testcodn.org >testcodn.bib echo  echo There should be no differences found: echo diff testcodn.bok testcodn.bib diff testcodn.bok testcodn.bib echo  echo There should be no differences found: echo diff testcodn.eok testcodn.err diff testcodn.eok testcodn.err echo =================== end BibTeX test 7 =================== echo ================== begin Scribe test 1 =================== echo bibclean -init bibclean.ini -err testscr1.err -scribe -no-check testscr1.org bibclean -init bibclean.ini -err testscr1.err -scribe -no-check testscr1.org >testscr1.bib echo  echo There should be no differences found: echo diff testscr1.bok testscr1.bib diff testscr1.bok testscr1.bib echo  echo There should be no differences found: echo diff testscr1.eok testscr1.err diff testscr1.eok testscr1.err echo =================== end Scribe test 1 ==================== echo ==================== begin Scribe test 2 ===================== echo  bibclean -err testscr2.err -init-file bibclean.ini -scribe -file -no-check testscr2.org >testscr2.bib echo  echo There should be no differences found: echo diff testscr2.bok testscr2.bib echo  echo There should be no differences found: echo diff testscr2.eok testscr2.err echo  echo  bibclean -err testscr2.er2 -init-file bibclean.ini -scribe -file -no-check -no-par testscr2.org >testscr2.bi2 echo  echo There should be no differences found: echo diff testscr2.bo2 testscr2.bi2 echo  echo There should be no differences found: echo diff testscr2.eo2 testscr2.er2 echo  echo ===================== end Scribe test 2 ====================== echo ================== begin Scribe test 3 =================== echo bibclean -init bibclean.ini -err testscr3.err -scribe -no-check testscr3.org bibclean -init bibclean.ini -err testscr3.err -scribe -no-check testscr3.org >testscr3.bib echo  echo There should be no differences found: echo diff testscr3.bok testscr3.bib diff testscr3.bok testscr3.bib echo  echo There should be no differences found: echo diff testscr3.eok testscr3.err diff testscr3.eok testscr3.err echo =================== end Scribe test 3 ==================== bibclean-3.07/ibmpc/dos/tpp3p0/ibmclean.bat0000644000156700015670000000007406141407714017360 0ustar beebebeebedel test*.bi2 del test*.bib del test*.er2 del test*.err bibclean-3.07/ibmpc/dos/tcc3p0/0000775000156700015670000000000014431412252015057 5ustar beebebeebebibclean-3.07/ibmpc/dos/tcc3p0/tcc30bld.bat0000644000156700015670000000330406142135000017134 0ustar beebebeebe:# Build bibclean with Turbo C/C++ 3.0 in C compilation mode on IBM PC DOS. :# :# It is assumed that your ???/tc???/bin/turboc.cfg file sets library :# and link search paths appropriately. My turboc.cfg file says :# :# -IS:\SYS\TC3P0\INCLUDE :# -LS:\SYS\TC3P0\LIB :# :# [02-May-1996] :# You'll need to modify the directory path for wildargs.obj, which :# provides wild-card expansion of command line arguments. :# set WILDARGS=s:\sys\tc3p0\lib\wildargs.obj :# Define these variables appropriately. Without them, the executable :# will not contain the host and user information displayed by the :# -version switch. :# set DEFINES=-DHOST="plot79.math.utah.edu" -DUSER="beebe" :#====================================================================== :# Set the desired compiler flags. These should not require changing. :# -P (C++ compilation), -A (ANSI keywords), -N (stack overflow check), :# -mc (compact memory model), -v (source debugging), -y (debug line :# numbers). :# set CFLAGS=-P -A -N -mc -v -y :# The executable produced is considerably smaller for C than for C++, :# so we remove -P -v -y for production use. tcc -I. -A -N -mh -c bibclean.c tcc -I. -A -N -mh -c chek.c tcc -I. -A -N -mh -c do.c tcc -I. -A -N -mh -c fix.c tcc -I. -A -N -mh -c match.c tcc -I. -A -N -mh -c -DMAXPATHLEN=260 fndfil.c tcc -I. -A -N -mh -c isbn.c tcc -I. -A -N -mh -c keybrd.c tcc -I. -A -N -mh -c match.c tcc -I. -A -N -mh -c -DHOST="plot79.math.utah.edu" -DUSER="beebe" option.c tcc -I. -A -N -mh -c romtol.c tcc -I. -A -N -mh -c strist.c tcc -I. -A -N -mh -c strtol.c tcc -I. -A -N -mh bibclean.obj c*.obj d*.obj f*.obj i*.obj k*.obj m*.obj o*.obj r*.obj s*.obj s:\sys\tc3p0\lib\wildargs.obj bibclean-3.07/ibmpc/dos/tcc3p0/tcc30pth.bat0000644000156700015670000000030505306476766017220 0ustar beebebeebe:# Set environment variables for compiling with Turbo C/C++ 3.0 :# [20-Nov-1992] path s:\sys\tc3p0\bin;s:\sys\td;h:\pc;c:\dos;c:\;c:\sunpc;f:\msdos;f:\unix;s:\usr\bin;s:\sys\bin;s:\sys\norton bibclean-3.07/ibmpc/dos/tcc3p0/bibclean.exe0000755000156700015670000046227406142137634017351 0ustar beebebeebeMZ3  ">Pjr[:Y8*%wrPB=0& toL>9& RD?e8 sTC"cUP2      b T F >  y k f 3    V %   x$a\NI}8*"            u l R .  _ lIPB4/ugb  xs_F0uJA6(#u@2*  n${wsokgc_[WSOKGC_RG5$!xkwjS9&qgVF?1,wgUKH:5% ~ngYT`RM1)!               z #       \ T Q C >    H!:+B4/   V H C        q V ; - % /  pR(xgANF4$}m6)iK># {q\S@+|toe]WID3!           i V K > / &             } p W G = 5 / !             x r ^ L G = 5 / !   reME?5#yoW;/! $  E 7 2 "               } t f Y O E 8 *    ydXK:se`?2{lZP=.~l[V=* rd\RB6)" iX>8'waT,  qeXKD.%vfRF.zkVSE@4, o lFupM6.Q>/KE-!WJ/"#######{#n#U#>#*####"""""""}"u"b"N"A"5"'"""!!!!!!!!x!b!U!7!#!!!        5  '''''''''k']'K'6')'"' ''&&&&&&&&&{&m&h&T&%%%%%%%%%}%s%i%a%[%M%H%9%'%%%%$$$$$${$s$k$]$X$;$"$$b+[+J+$++****s*,*'** *)))))))))))z)w)i)d)M)*))(((((((|(u(g(b(O(>(;(-(((((//////////z/d/V/K/>//........~.\.......-k-f-U-,333~38333'33 3222222222~2x2e2X2G2:2(222111111^1T1O1A1<1100s0n0W0C007777777~7g7%77 766666v6555555\5+555 544444444R4443;;;;;;;;z;o;c;W;K;?;3;0;";;:::t:U:999|9f9B9998888888888z8u8U8N8F8=8/8*887???????|?n?`?[?N?6?.?'??? ??>>>>>>>>>>|>x>`>S>M>:>->>> >>=====p=h=Z=2=*==<<<<<<<<}<z<l<g<W<I<;<6<CCCCCCCC{CqCiCRCFC-C"CCCCCBBBBBBBByBeBKB:B&B BAAAAAAAA{AqA_AYAGA=A/A%AAA AA@@@@@@@@@@@u@c@]@S@>@.@&@@@@Dj(f(b(^(Z(V(R(N(J(F(B(>(:(6(2(.(*(&("(((((( (((((((((((((((((((((((((((((((((((~(z(v(T(P(L(H(D(@(<(8(4(0(,((($( ((((( ((((((((((((((((((((((((((((((((((((|(x(t(p(l(h(d(`(\(X(T(P(L(H(D(@(<(8(s+(m+(i+(c+(_+(Y+(U+(O+(K+(E+(7+(1+(-+('+(#+(+(+(+(+( +(+(*(*(*(*(*(*(*(*(*(> > > > > > k> a> \> N> I> 1> > > > > > > > > > > > > > > > > W> <> !> > > > > > m> >> %> > > > > > > > > > > }> m> [> 6> (> > > > > > > > > > > _> R> E> 8> #> > > > > > > > > > s> j> `> ]> O> J> 4> *> > > > |> W> ;> *> > > > > > > > > n > a > O > B > $ > > > > > > > w > k > U > I > : > . >  >  > > > > > > > > [ > ? > > > > > > > > ~> p> ^> R> C> .> > > > > a > S > N > / > ) >  >  >    l G     H : 5  o .     h #     m 0 !   ^ ^ ^ ^ ^ f^ 3^ %^ ^ ^ z^ ^ ^ ^ ^ ^ ^ ^ ^ p^ 8^ ^ ^ ^ ^ p^ b^ ]^ >^ ,^ ^ ^ ^ ^ ^ ^ ^ k^ ]^ ^ |xtplhd`\XTPLHD@<840,($  |xtplhd`\XTPLHD@<840,($  |xtplhd`\XTPLHD@<840,($  |xtplhd`\XTPLHD@<8|xtplhd`\XTPLHD@<840,($  |xtplhd`\XTPLHD@<840,($  |xtplhd`\XTPLHD@<840,($  |xtplhd`\XTPLHD@<840,($  |xtplhd`\XTPLHD@<840,($       R 4   \ N 0 "  | l   r b T I 8 *                         v d S E =   z c K > 1   : : : v: X: 2: : : : : d: 4: : : : : : a: I: *: : : : : n: (: : : 7: : : : : : :               r h ] S / )               s n ^ V H C     m _ Z &               y k f V N @ ; + #                w i d J 3 %               x s c [ M H 8 0 "             | g d V Q A 9 + &     u p c R G 9 4 '  |xtplhd`\XTPLHD@<840,($  |xtplhdVPLFB<82.($ ~ztpjf`\VRLHB>84.*$  zvplfb\XRNHD>|xtplhd`\XTLHD@<840,($ |xtplhd`\XTPLHD@<840,($  |xtplhd`\XTPLHD@<840,($  |xtplhd`\XTPLHD@<840,($  {xjb>0+j*<"c:'::: :zB8B'BBBBBBZB!BBBBzBdB$BBBJ!"\jT>&)"")")"xJIpz '3HXr E / h RWh}{qg]J>0 6,tW0 |`V8!9 >P^sBcsN7+!~ l g < 4 !"""""#"$#######$ $>$C$\$$w%O&&M'A':')P)7)0)Z(4(+(('))G+*8*++I,, -+-.S,!.:.X.../+//////$0B0]1w11(2111)")")")"z)"v)"r)"n)"j)"f)"b)"^)"V)"R)"N)"J)"F)"B)">)":)"6)"2)".)"*)"&)"")"\54'4 44s3e2A296>6d66777%788M88)9k999:A:::;j;;;g<@=l==)")"*)"@??>>>.@8@c@@@@@@)".S0!.,ڣ}{w.@>uNjعCC&8ùىuy+꿄&>s&>G;sډ{+؎JW!_ҋ&>>vG>}r@w>~r7X!r*g!r H!r@HI!r X!sE t @p&3.S,6s6q6o6m6k P.SVW,,_^ˋLF!/5![]5!_a5!ce5!gi%ʎں_!.S%[!%_!%c!%g!ˁt2׋;t#&?tt&:g&8gw&gӃ;t&?&t&_&Wô@!ù=.SPU)"؃> uFV3]U)"C2V!r ^ &3P]U)"CVN !r3P]U VW)"ظ)"&&FV)"&FNV#ڱ#uvB㋟K^ N@ظmظҖPfFI<u֐8=~u u $v$Y^]U)"3PPv|]U)"ظP3Pvc])"3PP3PM)"ظPP3P:Vt^UVWv~ _^][Ssـ ˀ3 } у/sЊ% } у+s2+ӊЊ%UV)"؋v |X~W6 ރ#)"&6^]UV)"؋vV^]U)"ظD^!%]U"VW)"~ ^$w\rWFN }~t &-G؃v+6F +6F uNN6, s:FV F _^]U)"3Pvvv PPaPU]U)"؋^)"&BF ^N V!rP]U)"؋F F u^ F BvF FuڸOVFRPv v  RP]SPv v 1V F ] U)"v v3PP^&?u^&&PhV FFPv v< tV F]Vt^QЊŊYˊ%;u;U)"؋^)"&tP?^N V!rPp])"عD)"&LJ)"؎&Ƈ,(P)"؎X&:A)"&9w)"&,PaY u )"&&*P)"&*t3P3PP)"P(P. )"&@PY u )"&&>P)"&>t3P3PP)"P<PQ. U)"ظP3PPv]U)"؋Nu )"؎&t  ]U)"؋Nu )"؎&t ]U)"AV!r3P]ˊ'@'UVW)"FFPFJW2I_6GNu3SQRj+jPWv v V uFFP~jZY[j~~v& t<%t6GNv&<%t~3ɉNF NFF&2Ћ؀ `s_vy.owNπwNĀw~+tV봃fN 릀wMFu)N$~6Fs y؃NFnu׉FasʵFT,0wF |F2uF tFNeNfY FV3҈V~6 FV~6GGvFt6GG~~ u u ~ucNRPWǘPFPSV }Vv~^67CC^F t6CC^:Z6FfN+ϋV;vV~6F~26vV~F uq6=F uXU;NvNvV~N }WQ^SR#FPFt F FPj~FtV ~&=-uI+~V&=-t F tO&~~ N }N~^#F=ufou ~FxtXuN@KKn}FNFu  |K;F@t 0kFeV ~'++&<-t< t<+u&FIK0;+&6GN. ~ ˰ \v~F u6=FP*FF&FtGG&%vF~%& u~P}~tF_^] y = D I r P T X p  = U)"ظ)"&VJ)"P&Z‹VJ)"&]UVW)"ظ)"&FNZ~ v;s H~u;;trsrsrsë_^] #.6>{2&@Ň֓6uFF>}rw2㲀P@%+rI2KHRQSFPYY^FV#=t^FF/!^FV!~3҉~ 2vmrNt< t< t< t<"t$Srt< t < t< t<"u 32r t<"t2B륋+Ft RWPY_Zv+B(I<\tZ[#uыvYRV!ZH.&B܋+r&.&^Vv^ t3FF..6>66kom&UV)"v v 8(YY@Pv v vv VF^]U)"vvYY]U)"؋FRPYY]UV)"؋vF>F6F5^ F &F-؃w?.)"&;F|N)"&FuFp)"& u:)"&>t-)"&&FFF@PF@PeRPFPP$Vv$)"&F  F)"&;F})"&F)"&F)"&;F}4P)"&P)"&P)"&P)"&PP NN tVvF^] wU)"ظ-P3PPvvF P]U)"^F&^F&:t3 ^&?u߸])"شP)"XUQ@Yt tVj<u<t&<@uڳt=2 <t&<uPp Xt >t@])"شhPY\&&U)"؊F;&:t-)$&>u@&>~@>v>@s >t3>@t @&>t PRPl u u3>u]ú.S@!'@!\.;t7ڎ>t.8.;t.3P.#.....R3PvÎ.;t.&>u&[&Ў&>u& &Q&؃>tá&&;t&... t!Ӝ66ӝ&.UVW.V t.;u._^]P.3PP%t+3.PRXP3ۊܱ.SP[=t..ډ3P3ۊܱ.SPQ[=t8%u..ډSR3SPZ[=tB3Ë)ڣۉU3ҋF UVF VW.t^rAu; . t . tڎ9s;u&v3w#._^]S.6V.6Vr u[SJ t7@@3ʁvv.Z.;tENj+&6&P&ю&>t&>&>ָS&S3P8ZU3UV F ^VW... t: t?r@u: &;rwӸ!BRP< SP3._^]UV)"؋vF)"&+6{?;6u)"V^&&j)"&)"֎&{;v ӎ&+{V)"&6{YYY؃u Ʊ뙸)"&{ú)"&&3^]U)"ظ)"&&N^w&)"&&N^r vv u3]U)"ظ)"&3ұ)"&FV|=vv)"&&N^wVF)"&&N^w¸)"&&N^r)"&&FVvvP tVF])"ظ)"&>t&)"&!XPV)"ظ)"&>t PY^XPU)"ظ)"&>t)"&F)"&]UVW)"؋~vWVv v Q u3/F +@FvvWVRPvFFF;v ~߸_^]UVW)"؋~F +@FvWVcRPvvvFFF;v ~߸_^]U)"V DF^N!r ~uP])"؀>t !UVW)"؋v~ vVv Wa t#vvF +FVR+ƋVR> u3S։~F;v} ׉vF)v+ƋVR}RPvWtRPF +F@P~FF;u͸_^]U)"FPP3PP].S&&U)"؋Fȸ)"&P3[ش)"&*ЈVF]U)"^&^&;t ^&¸)"&:rƲ^&]U VW)"؋~FF)"&;F u3F t v v 5F)"&;Fu3F tcvv FU~tFPFP@ ^&7F~tFPFPƊܹ ^ &7F O uV_^] U)"؋V)"& u)"&>tv v vvRv v vvR] UVW)"؋^ v~)"&ȸ)"&;w;w;;w9Vw ;v3_^]U)"؋V)"&. ^&FB;V~]U)"ظ)"& t@)"&>u0~t'F F FF~tF PF PFPFPF @PF P `PFPF PFPF Pn `PF PFP`PFPFPFPF P F @PF PFHPFPF PF P `PF PF PF PF P `PF PFP`PF PFPF k)"&>fFn N vVM] U)"شJ^F!rSPBX]VWw36y[ u 3&=t?G&8uG_^sqStack overflow! $یȎغ^" !)"ش)")"&+@)")"&+@U)"3PvvЃt F tu3)"&]UVW)"Uv)"+ &Fu+t-uE&F9w/0r*t ᗇ⒗&F9w0sM|؃]_^]U)"vvlYY]U)"N CF V!rPw]U)"؋V)"&9w PU)"&LJRY]U)"ش>^!r)"&LJ3P]U)"ظ)"&;FwPa^)"&tLD^!r>€u5B3ɋ!r.RPB3ɋ!FVZYrB!r;Vr w;Fr3P]UV)"ؾ^&G;Ft^&t/&?}vS}YY uq^&Gt&w &wYY^&|&GPY^&G&G&&G&t3PPPP&wHRPYY^&G^]UV)"؋F Fu^&G;Ft^&?|Q&Gu&GV;Ft&9W uy^&&GV;Fub&9W u\&G &W&G&W JH^&G&@&)7P&G &W&G&W PR&GP;t^&Gu&OX3^]UVW)"؋~ 3ɋFVFV ^&F t4O~1^ &|&G&w &G & vv gYY=uuFV;Fu ;Vu33^&^ &Gt33VF_^]U)"ظB^33!r$RPB33!FVZYrB!rVFPޙ]UVW)"3)"&6F)"F(^&Gt vSYYGFN uދ_^]UVW)"3^ F &T u ^&G@t^&gߠT^])"ظ)"P(PYYUVW)"~ t%&%It)">F ߉~u 333F~&= t& t:u&9=uvuGnj_^]UVW)"~v NsVF_^]UW)"~N F t Is_]U)"؊F Pv vvVF]UVW)"؋N ^ VFǩuP Ճ~u,)"&>t &6 ǀt3F t?PPtvv3P }WqYvvv }~Vvv |f3PW@YYFt# t#% 3RPPW tWFtttPPvv |5t3ց RFt3Z Ћ)"&_^]U)"ذN u uV"N =!r FF % ^)"&FP~]U)"ظ)"&;}()"&>|&㋇" FV^FvvvvP)"PPP]U)"^&v SFP]UV)"؊F^&?}T&&G&w &G &F &GuX> t > tGv vYY u32*^&Gu&Gu ^&O^&O&to&?tv SiYY u^&G&&G&w &G &F &Gu> t > tv vYY u^^&G)"؎&tP3PP^&GP҃> u'^&G@uPP&GPh =uPP^&GPI =t^&Gu^]U)"ظ)"P<PvH]UVW)"؋~~^&Gt."vv^ F &P =u3O u^&G@u0&u&9sm&?tvSYY u^&G)"؎&tP3PP^&GPуWv v ^&GPD ;r4i.^&|&&?u &+G&vvUYY t6Wv v ^&w&w p ^&&& ^&G)"؎&tP3PP^&GPЃWv v ^&GP ;r{^&tRG^&} &G&w &G ^ F &&´vv^ F &PL=u`O uWv v ^&GP;s8F_^] UVW)"ظ)"&;Fw PF @=r^)"&t3v v vvуF@=r^)"&@uFlNv&<t0< tSPFPvЃ[F;u(SPPQvlσ^)"&[+_^]UVW)"؋~v^&G;Fu v>u~<u>u ~(u^&?tP3PPvS( ^&Gt&w &wuYY^&g&GFV&G &W&G&W tg vc)"&&@F F u!V,YV F u:^&O-^F V &G&W &G &W&wu&O3_^]UV)"؋vVv v ^&w&7B ^&7S&G[&&^] U)"^&G8PFPv v FP]U)"^&G8PFPv v v]UVW)"~2u~ +tIs_^]UV)"v^ t :t"t:t"t:t "u33FD^]UVW)"3~ 2ыvD&]+_^]UVW)"~ 2ь~VF_^]U)"3,F V FV^&^&:tF^&?uFA^&?uˋ]UW)"~3;Fu;t H_]UVW)"؋~vvYYFv v YY;vVFFvPv v  F^&VF_^]UVW)"~ F2+ًˋvD&]2+_^]UVW)"~ 2^+ٌǎ~VF_^]U)"vvYY@ȋFVщFVN^&:F uVF I u33]U)"35F V FV^&^&:t F^&?u^&?t FA^&?u‹]UV)"PbYYVF uvv)YY=s^&)"؎& u^&G؎& tj^&G؎& tS^&-t&+t&G؎&t1^&G)"؎&uV^&G؎&u?PFP66P66P3P66Pvv66 &GFvPYYPR3ҸY[>ʉ^&)"؎& ttFvPYY=rl^&@)"؎& tR^&@؎& t;PFvP66. &G F^&8ti^]UV)"؃~u,v~;r FFuNFF^9v!~r FFtN^K㋇F~r{t~ wsul^~~~u ^òtI^Cٸmf3һ+ʋF~u;wu~ r ;ru ~ w3^]UVW)"؋~)"&9>w Pd?F @=s31)"&tP3PPWZǃ)"&@uv v vW)"&F VFVF FuN^F&F< u ^& F^F&FrV3+Ѓ |Dur~:.EGd= tKIOM .MO]Uظ&9&wp">~ d u]UVظ&9&wp"Ƈd6N ~d u |`d uYƄd)"P<PdP))"P<P P_2dP:YY6dPdP ">~)"P<PdP))"P<Pq%YY^]Uظ&9&wp">~ d]UVظ&9&wp"FH | ;6}d^]UV؋v&9&wp"> |= tOMQS MOEGƋd^]Uظ&9&wp"O $P-P(vv,YYVFvv666/6-PP66)P66@66q%YYP)"P<Pp P)"P<P[ …P)"P<PF vv)"P<P0 ąP)"P<P DžP)"P<PL ]Uظ&9&wp"vvхPʅP66)P9Y]UVWظ&9&wp"F3^^&=%tFF^&F.;Ft.g TP:YY=r$PvvP: ڸTPP9iDP:YY=rD4P:YY=r4$P:YY=rl$Ƅ%F[rP^^&FF^^&?tƄB_^]%efkvLkUظ&9&wp"^&& Gt^&w&7 YY^&G&^&G& Gt!^&w&w YY^&G&G]Uظ&9&wp"F FtvvYYvv YY]UVظ&9&wp"F FtX3^&&wP YYF^&9w^&& Gt^&w&7 YY^&G^&G^]UVظ&9&wp"3VYY YYLJLJLJLJF㋇ u^]UVWظ&9&wp">~㋇$1$&|$&G& &G &6$6$-YY13u  u,=?;975;9{ƴ)"؎&u;9759;G u*;975;9%;9;9759;{u }u_^]UVWظ&9&wp"3= t= t :Gz=tƴ)"؎&uVY ~ 3_^]UVWظ&9&wp"3F>u >u>u >u>uu;= t= t+>u >uPF>u >u7G=tƴ)"؎&u~ ~3_^]UVظ&9&wp"3YY㉗P*Y㉗㋇ u ԅPoYYğ&G&ğ&Gğ&GFd}㋇ tL^]UV؋v&9&wp">u0ƴ)"؎&u.t#t &t%u3%uvv-P0.YYRP >uvv2P0.YYRP v vV  u>u3ҸHv vVWV>t3^]UV؋v&9&wp"FVFVF V FVF;FwCF9Fs9FVJFVF V JFV^&^&NNN w^&^&FFN w^]UV؋v &9&wp"FVFV F ^&FN wVF^]Uظ&9&wp"uA t<;|&;v ;975\PY PYVY_^] Wle^Uظ&9&wp"~)"u~<uv v IYYvvv v )]Uظ&9&wp"PdYP[Y]Uظ&9&wp">PYY^&w&wYYFPYY^&w&7YYIPYY]UVWظ&9&wp"~t 3G^ && Gu3F^ && GtEvv^ &w&7) P^ &w&7#9 tF;Ft^ && GuXF v v PVvv? u*u +Ћ }3 ;|HF, 93!vv^ &w&7)F^ && Gu_^]Uظ&9&wp"LP PS]Uظ&9&wp"vvNPFP8 FPYY]U<ظ&9&wp"v v vv^&w&w ^&w&w^&w&wRPFP8FPvv^&w"&w ^&w&&w$^&w&wwPFP8FPvv]Uظ&9&wp"^&=u=tV= t>u7F@vP YYOMڃ;|;v ^&PY^ PY PY>u PNY9 PY>uP2YF^& t^&PtYF^&?t)]UV؋v&9&wp">u P2YN ^]Uظ&9&wp">tv v vv Pvv6$6$vvPvv6$6$vvņPvvv v vvUPȆPvvS v v vvP҆Pvv) v v vvY$P܆Pvv ]Uظ&9&wp">u>uv v"YYC>u>uv vYY&>uv vSYYv vv]UV؋v&9&wp"^&?u};!|;s}PYYƙRPYY P%YCAYY PY"PY^&F 5.;Ft.g\PY^&PY\PYb\PYf<\PYr˸\PYt뽸\P|Yv미\PnYnPeY\P\Yn^&? r^&?~w^&P7Y(^&%PPFP8 FPYYF^&?t"PY PY^] "\ZvhxvAAUظ&9&wp"6^&=t=t  PY PyY^&F^&?u]Uظ&9&wp"vvYYv v 2YY]Uظ&9&wp"Pvv]UV؋v&9&wp"> |PYY㉷$.13ƴ)"؎&uu> u75;9.=? u75;9 .9;{u }u^]Uظ&9&wp"]Uظ&9&wp"vv:YY@P*YVFF Fu BPYYvvvv9]Uظ&9&wp"FF ^&?tb^&)"؎&t^&P* Y^&P^ &)"؎&t^ &P* Y^ &Z;t^&)"؎&t^&P* Y^&P^ &)"؎&t^ &P* Y^ &X+]UVW؋v&9&wp"^&)"؎&t ^&^&PY#Ћ^ &)"؎&t ^ &^ &PY#ЉV;~}U;~~GFF N v^&?t ^ &?tb u3"^&?u^ &?u3_^]Uظ&9&wp"v v vv)VF>u6F FuڸoڸxRPvvlPWP66)VF]Uظ&9&wp">t~$P-P(vvbYYRP666/6-P>uڸڸRPyP66)P66l66q%YY]UVظ&9&wp"3^&)"؎&t F^&8u^&8u@^]Uظ&9&wp"~PY]U:ظ&9&wp"^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GPDPFP8FPYY]UVVظ&9&wp"^PFP9F@vP:YYvPF@vPFP. FPFPFP^ FP}PFP8 FPYY^]U>ظ&9&wp"^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GP^&u?^&GPPFP8FPYY]Uظ&9&wp"P$P&6&6Q=u ]Uظ&9&wp"PPP PP$P; ]U<ظ&9&wp"&FP&&GP+FP)"&@P+F;Fu-F;Fu%FV;Fu;VuFV;Fu ;Vu3&]Uظ&9&wp"PPP$P^ PPP PP$P= ]Uظ&9&wp"PPP PP$P ]UVWظ&9&wp"33^&F:.;Ft.g FN u uwFA^:YYP^F@vPu uF^㋇ uPF@vP9 u|G^&9t;3i_^] ,{}UVظ&9&wp"3eP4P㸄&& u9P4P㸄&&L u PYYF㸄&& u^]Uظ&9&wp"&>u~r PYY]UVظ&9&wp"P$P:YYF~uK3.P$P(&<&: uEF(&6& 8uP$P&6&6?=u ^]Uظ&9&wp"P$P&6&6=u]UVظ&9&wp"3^PDP㸄&& u2P$P㸄&&t uEF㸄&& u^]Uظ&9&wp"P$P&6&6=u]UVظ&9&wp"3^&&w&7v v : =uy^&&G& GtZ^&&_&??u!^&&G@&wP^&&w&wYY F^&9w~P^&u3^]Uظ&9&wp"P$P&6&6=u]U ظ&9&wp"P$P&6&6=ugFF$o^&)"؎&tU PFPvvB VF~|u~r~|~3v PYYFVFVF^&?u]UV؋v&9&wp"a|z 97A|Z $1|9 0u$^]UVW؋N&9&wp"33-^ &8-t#^ &)"؎&u ^ &^&GF;sF H;w^&F^ &8-t^ &)"؎&u+_^]UDظ&9&wp"^&GP^&GP^&GP^&GP^&GP^&GP^&GP^&GP^&GP^&GP^&GPPFP8FPYY]UV؋v&9&wp"~uL>Lv -u82>Ls)"& tL>Lr)"&t3^]UV؋v&9&wp"~uN>Nv-t )"&tB<>N s)"&tN >N r)"&u Xtxu3^]UV؋v&9&wp"~uP>Pv-t )"&tB<>Ps)"&tP >Pr)"&u Xtxu3^]Uظ&9&wp"FVFVF V FVFPYYFP YY~uvvv^]UVظ&9&wp"3^&G&W^&G &WF^&G^&_&?tV^&_&P^&YY=t^&G^3&+G^&G ^]UVWظ&9&wp"^&G&W^&G &W33,^&_&?(uF^&_&?)uN u3G^&G^&_&?tW^&_&P^&YY t ^&G^3&+G^&G t PYY_^]Uظ&9&wp".PYY]U VWظ&9&wp"NPFP9v vvPFP F3CsBPYR'%u BPǻ"X:Ut FPiYYFzuFP:YY=uǻ"ڊxFFP/YY"FP:YY=u~v FPYY_^]UVWظ&9&wp"PFP9v vv PFP) F3^ s"zXtzxu BЋ6 u1zXtzxu BPǻ X;t FP)YYFzuFP:YY= u~v FPYY_^]U VWظ&9&wp"PFP9v vv PFPH F3cs'zXtzxu BփЋ6u1zXtzxu BPǻ X;t FPYYFzuFP:YY=u~v FPYY_^]UVW(ظ&9&wp",Pvvd9 uvvYYP^&G^&;Gu vvt(YY3^&&w&7vvd9 t^&&G& Gt5F Ft-^&&w&wvvd9 uF FuVF vvYY^&&W&G|F^&9w~A^&~&ESvvYY[&W&^&G&G^&SF FuVF vvYY[&W&Gvvvvv v ? _^]UV(ظ&9&wp"3]vv㸄&& u3vvv v vv㸄&&fF㸄&& uc|*vv-P,P&6&6)vvYY㹄&&P*Y㹄&&㸄&& u -PKYY㸄&ğ&G&㸄&ğ&G㸄&ğ&Gvvv v vv㸄&&㸄&LJ&LJ㸄&LJ&LJ^]UV(ظ&9&wp"P$P:YYvv:YYFF=svvƺ$RP94P$PYYvvP$P97-P3-P^]UV(ظ&9&wp"}RP-RP(URP-RP(&>u;@u6& &>tW-PYY&tVY-P-P^]U(ظ&9&wp"5!&>t &>uLY&>u PY&>u-PPTPd9 uW-PPTPd9 u-PPTPd9 uX"&>u PY&>u&>un{&>uU&`&>t &>u-: =t˸&>u "]U(ظ&9&wp"&>u ]U(ظ&9&wp"RP-RP(&$W&>u&>u -P}YY+&>u&>u--PPYY'1RP>YYF=#tv$Y8]U(ظ&9&wp"RP-RP(0RPP$P9P$P&>$"ul-PP-PP-PPk:0RPP$P9P$P&>$"uP)F=#uvv$Y]UV(ظ&9&wp"u\Z&96u5)u &Y3&>t-P-PVY3.P2.P^]UV(ظ&9&wp"RP-RP(u,u&>u 2&96uf)u &&>u/)u &V$Y&>u 2VYo.Pn.PVY.P.P&^]UVW(ظ&9&wp"}RP-RP(3 u"Ǵ)"؎& u /PYY uǴ)"؎&t W* Y vǴ)"؎&t WY&>u6&>u)׎&T&ƄTPTPYYr/׎&T&ƄT/PPTPR׎&TF=tW8 Y t&ƄTtW$YFI^vtPTPd9 u!^zxPTP9F~|&>uPTPYY/PPTPd9 uPTPPi/PPTPd9 uPTPP:/PPTPd9 u PTP PTPPVY_^]UV(ظ&9&wp"RP-RP(}RP-RP(u%=u1VY/P/P&?&+M&OPY^]U V(ظ&9&wp"F Fu%FVFV^&?\tF^&F}.;Ft.g^&F^&^& ^& ^& ^& ^& ^&G)"؎&t^&GPY ^&G=xuVFPvvB ^&FFVJFV^&^&N^&^&FF^&?t^&^]01234567abfnrtv  U(ظ&9&wp"/P0.YY t0P0.YYڸ0VF.Pvv; uvv:YYPvv:YYZBR*YVF tUvvvv9vv.Pvv;RP9vv3PPvv YY]UVW(ظ&9&wp"RP-RP(}RP-RP(3r1׎&D&ƄD2PPDP=& u"Ǵ)"؎& u !2PYY&>uǴ)"؎&t WYǺ&DFtW8 Y tStW$Y&ƄD&>tFK^PDPd9 u#^PDP9 F~|PPDPN2P: uPR2PPDP: vp-VY_^]U(ظ&9&wp"&>u3&>t&>t &>Dub` &>u\&>t &>u뉐 &>uX&>t &>uOK]UV(ظ&9&wp"v^&G& Gu#&/&-V2)"P(PYY2\2P^&w&7d9 u#&/&-^2)"P(PLYYd2P^&w&7kVF u?^&w&72Pg2P&6&6)2P1d~^&G&&/&-&>u&6/&6-YYvvYYvv$YYF^&& Gt^]UVW(ظ&9&wp"FF&>tPY&>uPY&>u(&>)u&96u&}&>u@u 2PYY&>u}uPYs'VY&>u=te}RP-RP({u&}N(u&)&1^&^&Gvv P2PYY^&{gr'!3PYY^&vv P]^&G&96u)u &&>uuH^&}^&vv P_^]U(ظ&9&wp"v v vv+ &$&$ uQ3P&6$&6$kVF uqKF^&)"؎&u^&P Y t vv vvYYvvYYVF uvv$YY]UVW(ظ&9&wp"}RP-RP(3Hr.׎&4&Ƅ4S3PP4Px׎&4Ft,tǴ)"؎&t&Ƅ4tW$Y&>uNP4P PVY_^]U(ظ&9&wp"FVFVi3PFPvvV! VFF Fu|F Fu1^&)"؎&t3FF^&)"؎&u~t^&?=t ^&?:t^&?=t ^&?:uFF^&)"؎&u^&?"tp3PFPvv VFF FtpF^&)"؎&u^&?"u1u3PFPvv9 RPvvvvl Y^&?t ^&?%u3PѸ&6$&6$vv3Pz3P&6&6)P9Y]UV(ظ&9&wp" uV&>u@&>u&>u&>u&>uV$Y^]U(ظ&9&wp"V^&$&$P-P&!YY& "&>urL긄&>tѸ&>uPY PY&>t 3PYY]UV(ظ&9&wp"uUS{u&}$;(u&)&#VY3P3P^]UV(ظ&9&wp"VF^&F|.;Ft.gvv:YYVvvF@vP  ^&@^&^&vvYYR&>u&>uvv\YY&&>u&>u vv4YY'^] %!!!!!!U(ظ&9&wp"yVF^&Fc.;Ftz.g`b^&P$YZ`b^&P$Y@ ;&F&vv PV&W] % UVW(ظ&9&wp"FF&F&3^&@u&>u W$Yr%^&@^&vvw!YY3x u^&vvZ!YY3V^&)"؎&t6Ǵ)"؎&t^&vv!YY3^&F ^&F=t2^&vv YYV&_^]U(ظ&9&wp"&&]U(ظ&9&wp"~&>u PY&>uP=縄&>u9*]U VW(ظ&9&wp"3VF4Pvv t PYO 4PYYF=@t={u=}uFFFF"4PFP uFVF&4Pvv u dvv@"YYFP4"YY FP&"YYF NvYF=t5 vv!YY_^]UbV(ظ&9&wp"&>u%&>uƈFFFPYYu~&96u)u &\VY%P< r <~w?P&%P&6lPFP8FP04P^]UVW(ظ&9&wp"3&>uJ{uF}u N }rFWYt &9>u&N _^]U(ظ&9&wp"Ḅ&>t &>ub7&>u PY縄&>u314PPTPd9 u94PPTPd9 u?4PPTPd9 u9&>u PY&>u&F&_&>usH帄&>u\$/帄&>t &>u6 =tϸ&>uV&]UV(ظ&9&wp"uXVVlP#9VFF FuVYG4PF4P^3ld&^]UVW(ظ&9&wp"3RP-RP(>b|>`v3&>u$&>uƈFFFPYYdu==t/u,uV$YVY4P4P&?&+M&OPY_^]U(ظ&9&wp"RP-RP(RPP$P9&>t &>uP$PYYR]U(ظ&9&wp"&$&$FV4PFPvvo VF4PFPvvQ VFFFF FuFFPv ]UVW(ظ&9&wp"FF}RP-RP(^&3s^&&>uvvPl&>uvvYYP&>u&>uvvYY'&>u&>u vvYY3^&FtǴ)"؎&t t1^&&>uvvPl&>uvvYYP&>u&>uvvYY'&>u&>u vvYYW$Y_^]U(ظ&9&wp"&&]U(ظ&9&wp"&>u PYg&>u4 u&&>u߸&>u]U(ظ&9&wp"^&u P*Y#^&GP^&w&7^&W&^&& Gu 4PKYY^&G]U(ظ&9&wp"&>u} FP$Y~t]U VW(ظ&9&wp"FFF&F3^&l&>uB&>u5v$YvvYY&^&VFFr-F^&@^&4Pvv~ u UF~ u'&>u&>u FqF)"؎&tF V~{uFK~}uN@~\u:F^&GF~\uF^&G Fv$YF~t F^&G~u,F)"؎&t} F~t^&F33^&9{uF ^&9}uN^&9"tj~ta>^uk@^&F-.;Ft$.g2Ƃ{FƂ"FG^&FƂ}F Ƃ{FƂ"FƂ}F"5PYYH^&?\t@^&?{t^&?t{^&?{tk^&?}t[^&?}uKNOƂ{F^&GF^&GF^&GF^&GF^&FƂ}F@H^&?\u NƂ{FƂ\FƂ"FG^& Ƃ{FƂ"FƂ}F ^&FG^&9t sRƆ"K6"KC6VY~u W5PYY&Pvv9_^]"'-<>AEIOU`acefilmnopstu|+++++++++++++++++++++++++UVW(ظ&9&wp"FF3^&"FNr8^&@^&t5Pvv^&VFI^&FtǴ)"؎&uW$Y^&"F^&VY_^]UVW(ظ&9&wp"FF3Nr8^&@^&5Pvv^&VF9^&Ft W8 Y uW$Y^&VY_^]UVW(ظ&9&wp"FF^&&>t%t}RP-RP(^&%FX~uƴ)"؎&u?r^& GV$Y%% uF~~^&Gu^&V$YVF_^]U(ظ&9&wp"**V P6*6*#9*** *t0*&>*v*&\u**J**+'vv*3+*P6*6*E& u>u^&G t33ڸ]UV(ظ&9&wp"FFv1.;Ft).g^&^&G#V$YVFV$Y^&VF^] %~1~1~1~1~1~11U(ظ&9&wp"&>u&>u &>u&>u&>u&>ub&>uO&>uB P$Y} P$Y&>u&>u  c []UVW(ظ&9&wp"FFF&3^&&>u@&>u3W$YvvYY&^&VFZr,^&@^&5Pvv( u L u&&>u&>u aǴ)"؎&t I{uF?}uN5\u0^&F\u^&F  W$Y3 t ^&F"u[vV~uP-^&?\u>t0-^&{F^&\F^&"F^&F^&}F)Ǵ)"؎&t} tQ^&VYu 5PYY&d_^]U VW(ظ&9&wp"FFFWlP#9VFF Fu3^&^&G 6Pvv^&VF^3ldF} 3^&"&>u*&>u^&W$YvvYY뒃"tH^&?\uZ~{uH^&{^&\F^&",H^&{^&\F^&"F^&F^&}^&{F^&"F^&} u {^& u0^S&>u &>u [&eǴ)"؎&t ^& I\u<^&\uF^&  t F^&W$Y^&~Ǵ)"؎&t} Ft~\t;~t sU^&"@^&r76VY_^]UVW(ظ&9&wp"FF3^&"F^&FW8 Y trW$Y^&"@^&r"_6Pvv^&VF FVY_^]UV(ظ&9&wp"UV$YV8 Y t^]UV(ظ&9&wp"FF^&} u^&VF0&>u#&>uV$YvvYYV$Y}RP-RP({uAYƴ)"؎&t&>"u1ƴ)"؎& t l]6P6P9^]U(ظ&9&wp"FVFVF FtF^&)"؎&uF Ft^&?t ^&?%uFFFF^&?"tFFVFV^&?\uFF^&?t ^&?"u^&?"u^&FvvYY@&6$&6$vv6P6P&6&6)P9YeFVFVF^&?t#^&?%t^&Pvv#9 t^&?t ^&?%u FF ^&F^ FV&G&VF]U(ظ&9&wp"&&&&&&T&D&4&$]U(ظ&9&wp"vvYYFvPYY]U(ظ&9&wp"^&G&G^&G &G^&G&G ^&G&G]U(ظ&9&wp"6PP]U(ظ&9&wp"&F&6PPV&]U(ظ&9&wp"FF$Pvv#9VFF Fu7vv^&?"uPvv:YYPY^&vv^&?"uPvv:YYPYFVBFVPvv#9VFF Fu3Pvv#9VF^&vv Pvv:YYPYFVBFV^&?t]U(ظ&9&wp"&>t&>u&>u =PYp&>u&>u=J PY&>u&&?&+M&OPY=PY PY6PP]U(ظ&9&wp"&>u.&>u&6=YPDPYY&PDP&>uP]U(ظ&9&wp"6P P]U(ظ&9&wp"&>uvvYYQ^&)"؎&tvvP&^&?%u vv vv P]U(ظ&9&wp"&>t_&>tOC+PPDP&>u7T7PP$Pd9 t*PPDP u&&>tPW7PPDP: tPDP:YY=vtP$P:YY=v`PYPDP:YY-@PPDPPDP  &?&+M&OPY>&>u1[7PP$Pd9 uPY&]U(ظ&9&wp"&>tF F t ^ &?u3vv&6$&6$^7P&6&6)~F Fu9v v vv&6$&6$7P&6&6)=vvv v vv&6$&6$7P&6&6)]U(ظ&9&wp"3Pvv#9HVF^&P$YNF;Fs]UVW(ظ&9&wp"P$P:YY&>$"up&$)"؎&tVF;s&$)"؎&u@+Pƺ$RPP$P  P$P:YYK&$"umNv ރ&$)"؎&uڋރ&$\uvރ&$\tNK&Ƈ$"&Ƅ$_^]U VWظ&9&wp"FFF33Fd&$={t =}u5F~t @$FFF^&)"؎&u^&?{uPMPvv: uPQPvv: uPUPvv: tlPYPvv: tQP]Pvv: t6PaPvv: tPePvv: u ^&{FF ~u~u ^&}FFN&$^&GF&$t^&vvP$P9_^]UVWظ&9&wp"&>u VF/(Pvv#9 t33FF5^&=,t={t=}tGO uFV։FVF^&8u‹F Fu^&FVBFVF^&)"؎&uvvEP9iPEP8vvCYY=u,kPEP8vvEP8mPvvEP8EPvv9_^]UVظ&9&wp"FFFF$~u^&^&F3(&8&6:YY;Ftvvv(&8&6u uioPvv9(&<&:vv8tPvv83Pvv#9VFFF(&6& 8t(vvvvv: FFFFFPvvVF t^&F3-FFyP-VvRd9 u-^&PPvv: u FvPvvP$P9^]UVWظ&9&wp"P$P:YYHF&>$"u^&$"tqPP9^&Ƈ$Pƺ$RPP: u\&Ƅ$Ǻ$RPYYRPYYRPP8PP8&Ƅ$ @q&>ud&$;uW&Ƅ$Ǻ$RPkYYRP<YYRPP8PP8&Ƅ$ @F;vs Ǻ$RPYYRPYYRPP8PP8PP$P9_^]UVWظ&9&wp"F 33H&$-tO vK6)"؎&uF&$-tF&$)"؎&uƃ-GF)"؎&t&$)"؎&ukF)"؎& t&$)"؎& uu VF333^&^&^&8um^&=.t={t=}tPAMIJ uD v@H^&)"؎&t$@^&)"؎&tG^& FG|VFj_^]U VWظ&9&wp"FF&>$"t~3F3-&$={t=}tF&$^&FGN~~Fw&$)"؎&u&$)"؎&u&$)"؎&tFC&$)"؎& u u&$AuFFF&$\tF@!َ&$)"؎&tFAَ&$)"؎& u@;vi~~c^&{&$^&FG;w^&}G&${u&$}u&$\u&$ uF}F~tZ^&{&$^&FG&$)"؎&uӸ&$)"؎&u^&}&$^&FG&$t^&WYvvP$P9&>u_^]Uظ&9&wp"F FtFVKIEG^ &KIFVI&="t ={t!=}t"&>Eu>Gu3GEE>Gu$I&)"؎& t ^ &I'I&?.u^ &I'^ &?uI Kt I&?tW^ &?u33VF]Uظ&9&wp"^ &)"؎& u ^ &?_uL^ &^&F F^ &^&F F^ &)"؎&u^ &?_t^&V F ]Uظ&9&wp"vvP9^FF^&VF^&?$tF^&?{upF@vPvvVF^F&?}t33vv0.YYVF^&^&FFF Ft ^&?u^&^&)"؎& u ^&?_uZvvvvkVFvv0.YYVF^&^&FFF Ft ^&?u^& ^&$F^&^&FF^&?t^&>FtڸF33]UVWظ&9&wp"F F t ^ &?u33FVFVF FtuPvvPP: T3HPPYYVFF FtPPvvd9 uvvPP9F |^FPF Ft ^&?u:Pv v KP: OKPYY tڸK33)UPvv9~NjWvvKP: JPZP#9 u\KF+Pv v KP: OKPIYY tڸK~^&?tF^Pvvb;F^&?t>]_^]UVظ&9&wp"Pvv" u3 uQvvAYYVFF Ft7Pvv" u3 tvvvv9^]UVظ&9&wp"F^&?t(^&)"؎&u^&?Xt ^&?xu3FVFVb^&)"؎&u^&?Xt ^&?xu!F uFVB^ &G&VFD^&? t ^&?-u F^&?u^&?tC^ &G&33^]UVظ&9&wp"3S<:vv86c u vv86"F㋇6 8u33^]UVظ&9&wp"F ^ &?t(^ &)"؎&u^ &?Xt ^ &?xu3^&?-u Ƅ-FF^&?tiF ^ &?t(^ &)"؎&u^ &?Xt ^ &?xu^ &?u^ &F FF^&?u }Ƅ-FOF ^ &?t(^ &)"؎&u^ &?Xt ^ &?xu^ &?u^ &F F^ &?t } uA^ &)"؎&u+^ &?Xt"^ &?xt-ڸ33^]UV؋v&9&wp"^ &FVFVFVF3+FPv v :YYZ;r,F3+FPvvv v 7: vv[YYVFF FtGv v :YYPvv:YYZ;rvvv v 8FVFV0v v :YY@;rPvvv v 7: FFVFVFPvvVFF Ftv v :YYPvv:YYZ;r(vvv v 8v v vv9^]U*ظ&9&wp"vvFPv v FPoFP:YYPFPFP: }?vvFP4FP:YYPFPFP: }3]Uظ&9&wp"FVFVSF ^ &?t(^ &)"؎&u^ &?Xt ^ &?xu^ &^&^ &?uF FF;Fr]Uظ&9&wp"vvP_2vvq%YY]UVW؋v ~ &9&wp"vvP)vvq%YYYFCvC.B+}3 P@Z+0;vvP)Ӌ@+}3@+3뽋+F&;&+F^&& Gt^&&? u׋^&& Gu@NN&;&+N |(^&& Gt^&&? uӋ@vvWVvvv<vvYY_^]jUVW؋~ &9&wp"~vv~ u8JP)vvq%YY3F~t~t ~ t~ uPJ~t~uPvv ~NƄF~uVvvr3ƄF~uHVvvSFvv^FP_2F9v|vvq%YY~uuFMF)"؎&t ~uF4F)"؎&uFPvvN } }3ƄFvvq%YY97O}&FFFvvv_2vvq% vv3YY ~ƄFDvvFP)vv P_2vv P_2vvq%YYvv P_2[P:YYPFP:YYZЋvv P_2N vv P_2vvq%YY~ u+F}3+FG1FP^&w&7: t$ ~ uOG |^&& Gu |^&& Gu"vvYYF@+F}3F@+F_^]UV؋v &9&wp"7vvP_2vv P_2vvP_2N vvq%YY^]Uظ&9&wp"]Uظ&9&wp"]UVظ&9&wp"x tu<gރG w%.d5 3u ㋇^]&+0DDDDD5:?Uظ&9&wp"]Uظ&9&wp"]Uظ&9&wp"P3PP ZB^` b"f&x8z:~> N    @  L P   ]Uظ&9&wp"FHvPpYYVF ^ &F s.;Ft.g^&)"؎& u3^&)"؎& uvvYYVF^&)"؎& uy^&)"؎&uH^&)"؎&urvvYYVF^&)"؎&u^&P&Y u,^&P&Y uvv/YYVF^&P&Y u^&)"؎&uvvYYVF^&)"؎&uj^&)"؎&uvvYYVF^&)"؎&u^&)"؎&u^vvSYYVF^&)"؎&uvv%YYVF^&)"؎&u^&)"؎&uvvYYVF^&)"؎&u^&PGP#9 u^vvYYVF^&PYP#9 uvv_YYVF^&)"؎&u^&)"؎&uvvYYVF^&)"؎&u^&PkP#9 us^&P}P#9 uvvYYVF^&PP#9 u'F ^ &^&:tFvvcYYVFF ^ &?t^&?u3] .:ADRWX\adrwnV%f>Uظ&9&wp"F^&F.;Ft.gF^&)"؎& t F^&)"؎& uFF^&)"؎&u+F&^&?uF F^&?uVF^&?tI]\{}OJJUVWظ&9&wp"^&&u^&&PY u6@^&G&^&G&<P@6P u@66dPD P= P~P8~PYYP9Y6.^&G&F PRS^XXZ&W&GF;v}^&G&_^]UVظ&9&wp"^&&tj^&&P_Y tM6^&G&@^&G&P@6PF;v}x^]UVW؋v&9&wp"3-t/u3_^]Uظ&9&wp"&]Uظ&9&wp"3PbP&6&6% ]Uظ&9&wp"&]Uظ&9&wp"|&]Uظ&9&wp" P66k&& uX66 P P)"PPP) P)"PPP) P1YY&)"&P]Uظ&9&wp"&]Uظ&9&wp"&]Uظ&9&wp"V&]Uظ&9&wp"+&]Uظ&9&wp"&$&$&>~3PP&6&6% 3P9Y]Uظ&9&wp"663PP ]Uظ&9&wp"_(&^]Uظ&9&wp"4&]Uظ&9&wp" &]Uظ&9&wp"&]Uظ&9&wp"&]Uظ&9&wp"&]Uظ&9&wp"3P3PP66B &&&>u&>w&&]Uظ&9&wp"&]Uظ&9&wp"&]Uظ&9&wp"&]Uظ&9&wp"l&]Uظ&9&wp"A&]Uظ&9&wp"&]Uظ&9&wp"&]Uظ&9&wp"]Uظ&9&wp"&]Uظ&9&wp"7&$&$3PP&6&6% ]Uظ&9&wp"3PRP&6&6% ]Uظ&9&wp"PLEP@6Pu u3]U"ظ&9&wp"F FuF F t^ &G&33FVFVF^&)"؎&uFFFFZ^&PYVFF FuDFV;F|;VvFV)VF FVVFFVFVF^&?uFVVFF F tFV^ &G&VF-]U"ظ&9&wp"vY u3]UV"؋v&9&wp")"&t VYP6<6:#9VFF Fu3^3+:㋇>^]U"ظ&9&wp"v v :YYFF Fu33FF F t ^ &?u&vv v vvu uVFF^&?u]UVW!"ظ&9&wp"~|~$~%~tF F tFV^ &G&33F^&)"؎&u^&=+t=-tFFFFFVFV~u/^&?0u!^&xt ^&XuFF ~u!^&?0u^&xt ^&XuFFFFF.;Ft.g $FVЉFV^& F VF^&?0| ^&?1~Y'VFVF^& F VF^&?0| ^&?3~'VFVF^& F VF^&?0| ^&?7~^& u{^&)"&t VYV6J6H#9VFF Fu;F3+H |~"VFVFǙ F VFxR^& u{^&)"&t VYV6J6H#9VFF Fu;F3+H |~"VFVFǙ F VFx^& u^&)"&t VYV6J6H#9VFF FuDF3+H |FH;}(FPRVFY[VFǙ)FVFnF F tFV^ &G&~tFFVFV~tFVFVF F tFV^ &G&VFT_^] 2mt$Id: bibclean.c,v 1.10 1996/04/26 01:15:13 beebe Exp beebe $ %-48?GOX_ekrHxUNKNOWNABBREVATCOMMACOMMENTENTRYEQUALSFIELDINCLUDEINLINEKEYLBRACELITERALNEWLINEPREAMBLERBRACESHARPSPACESTRINGVALUEchaptermonthnumberpagesvolumeyear%s "%s", line %ld: %s. ???? ?? . ??%s %s ??Out of memory for pattern tables"#%'(),={}BIBCLEANINIBIBCLEANINIbibclean.inistdoutPATHBIBINPUTS@# line "" %ld input byte=%ld line=%ld column=%2ld output byte=%ld line=%ld column=%2ld File positions: input [] output [] Entry Value Current\%03oUnexpected paragraph break for field ``%f''Pushback buffer overflow: characters lostOut of string memory%s open file [%s]%s %%: FAILED%s%s "%s", line %ld: %s. %%%%$Id: chek.c,v 1.2 1996/04/26 01:17:05 beebe Exp beebe $Invalid checksum for CODEN %c%c%c%c%c%c in ``%%f = %%v''Invalid checksum for ISBN %s in ``%%f = %%v''Invalid checksum for ISSN %c%c%c%c-%c%c%c%c in ``%%f = %%v''ilpswzIncomplete CODEN %c%c%c%c%c should be %c%c%c%c%c%c in ``%%f = %%v'' ??????????JrJr.SrSr.SJS.J.S. J.IVXUnexpected citation key ``%k''String length exceeds standard BibTeX limit for ``%f'' entrySuspicious year in ``%f = %v''Non-zero parenthesis level in ``%f = %v''Unexpected value in ``%f = %v''??????9ABCDEFGHIJKLMNOPQRSTUVWXYZ23456789ABCDEFGHIJKLMNOPQRSTUVWXYZ2345678??????????????????$Id: do.c,v 1.5 1996/04/26 01:35:56 beebe Exp beebe $+(+(+(+(+(+(+(+(+(+(+(+(+(+(+(+(+(+(+(+(+(+(+(,(,( ,(,(,(,(,( ,(%,(),(.,(2,(7,(;,(@,(D,(I,(M,(S,(W,(\,(`,(e,(i,(n,(r,(v,(z,(~,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(}])>'"`{[(<'"`.(.(.(.(/(/(/(,/(:/(H/(V/(`/(j/(u/(0(.0(C0(I0(O0(d0(y0(~0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(1('1(/1(71(N1(e1(l1(s1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(2(Expected Scribe close delimiter `%c' [8#%03o], but found `%c' [8#%03o] instead for field ``%%f''6(&6(7( 7(7(7(,7("7((7(/7(6 47(?> ;7(?> B7(@> H7( > N7( > JanuaryjanFebruaryfebMarchmarAprilaprMaymayJunejunJulyjulAugustaugSeptembersepOctoberoctNovembernovDecemberdecJan.janFeb.febMar.marApr.aprJun.junJul.julAug.augSep.sepSept.sepOct.octNov.novDec.decJanjanFebfebMarmarApraprJunjunJuljulAugaugSepsepSeptsepOctoctNovnovDecdec%s Out of memory for pattern name [%s] -- pattern ignored %%Out of memory for pattern tables # Value too long for field ``%f''@ begins line, but brace level is not zero after entry ``@%e{%k,''Expected @name{...} after entry ``@%e{%k,''IncludePreambleString## # # Non-zero brace level after @name{...} processed. Last key = ``%k''Expected closing brace or parenthesis in entry ``@%e{%k,''Non-zero brace level after @name{...} processed. Last entry = ``@%e{%k,''Expected comma after last field ``%f''DeathesisDEAthesisInbookInBookIncollectionInCollectionInproceedingsInProceedingsMastersthesisMastersThesisPhdthesisPhdThesisTechreportTechReportNon-alphabetic character begins an entry name@entry_name too longIncludePreambleStringExpected "=" after field ``%f''BIBCLEANEXTBIBCLEANEXT.iniansi-standard-numberANSI-standard-numbercodenCODENieee-standard-numberIEEE-standard-numberisbnISBNiso-standard-numberISO-standard-numberissnISSNlccnLCCNmrclassMRclassmrnumberMRnumberuriURIurlURLurnURNxxansi-standard-numberxxANSI-standard-numberxxcodenxxCODENxxieee-standard-numberxxIEEE-standard-numberxxisbnxxISBNxxiso-standard-numberxxISO-standard-numberxxissnxxISSNxxmrclassxxMRclassxxmrnumberxxMRnumberxxurixxURIxxurixxURIxxurlxxURLxxurnxxURNEntry field name too longNon-alphabetic character begins a field nameoptOPTstdin-stdinrb %s Ignoring open failure on file [%s] ??perror() says@ begins line, but brace level is not zero after entry ``@%e{%k,''Expected open brace or parenthesis. Last entry = ``@%e{%k,''Braced literal string too long for entry ``%e''rCitation key too long=: %s Bad line [%s] in initialization file [%s] ??Non-zero brace level at end-of-fileExpected open brace or parenthesis. Last entry = ``@%e{%k,''"comment"@Comment{end"Comment"CommentBeginStringExpected Scribe open delimiter, one of { [ ( < ' " ` for field ``%f''Expected Scribe separator "=", "/", or " " for field ``%f'' Out of memory for pattern table spaceBibTeX string too long for field ``%f''Unexpected quote usage in German-style braced stringEnd-of-file in braced stringBibTeX string too long for field ``%f''BibTeX string too long for field ``%f''BibTeX string too long for field ``%f''End-of-file in quoted stringExpected Scribe value string for field ``%f''Scribe string too long for field ``%f''Scribe number string too long for field ``%f''Expected BibTeX value string for field ``%f''%s Bad line [%s] in initialization file [%s] ??},={authorchapterCODENISBNISSNmonthnumberpagesvolumeyearauthoreditormonthpagestitle""OPT"" file=[%s] field=[%-12s] existing patterns discarded file=[%s] field=[%-12s] pattern=[%s] file=[%s] field=[%-12s] pattern=[%s] message[%s] $Id: fix.c,v 1.4 1996/04/26 01:36:27 beebe Exp beebe $\bf\em\it\rm\sf\sl\tt {}" # # " # """" # " and and and "$Id: fndfil.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $ ;,|\\ ;,|$Id: isbn.c,v 1.2 1995/10/07 15:50:07 beebe Exp $    & . 7 @ E J P V ] d l t }                       ( 1 : ? D J P W ^ f n w                       $ , 4 = F P Z a h p x                     ! * 0 6 = D L T ] f p z                      & - 4 < D M V [ ` f l s z                   '.6>CHOV^fox!(08AJT^elt|  )29@HPYblv}%.7AKRYair{#-39@GOW`is} #,5?IPW_gpy(18?GOXahow &/9CJQYajs{ #-7>EMU^gq{!+29AIR[eov} )3=DKS[ckt} #+3<EOYair{0-000-190-2000-6980-70000-84990-850000-899970-9000000-9499990-95000000-98012231-550001-869571-8698001-8956822-012-192-2002-6072-70002-83172-840012-894362-9000002-9400282-95000002-99000033-013-193-2013-6333-70013-82523-850013-895243-9000013-9290313-95000003-98029644-004-194-2504-6574-75004-84704-870004-898294-9000004-9499995-015-125-2005-6905-70005-83965-850015-899965-9001655-9008507-007-047-1007-3147-50007-56397-800007-810357-9000007-90000080-0080-0980-20080-23680-700080-715180-8500080-8552980-90007580-90108181-20081-64881-700081-726681-8500081-8569081-90000081-90021182-40082-59982-700082-766182-9000082-9176982-99000082-99251783-0083-1183-20083-23383-700083-708083-8500083-8554183-90000083-90048284-0084-0784-20084-69984-700084-842084-8500084-8960085-0085-1785-20085-34185-700085-726185-8500085-8545785-90000085-90005186-0386-2786-30186-45586-700186-786186-8000186-8204586-90094186-90128987-0087-2087-41187-61187-700087-779987-8500187-8979687-98000087-99720288-0088-1988-20088-46188-700088-840288-8178588-8606589-089-090-0090-1890-20090-44990-500090-699990-7000090-7431990-80000090-80086891-091-191-2091-4891-50091-63291-700091-799891-8500291-8835691-97000091-99208392-092-592-6192-7792-80092-89192-900192-911793-093-0950-00950-47950-500950-795950-9000950-9899950-99000950-99949951-0951-1951-20951-54951-550951-889951-8900951-9498951-95000951-96448952-90952-90952-6666952-6666952-9500952-9714954-0954-0955-20955-28955-550955-616955-9000955-9151955-95000955-95444956-10956-19956-200956-266956-7000956-7205957-05957-43957-500957-685957-8500957-9699958-02958-32958-600958-656958-9000958-9285958-95001958-95343959-00959-13959-200959-216959-7000959-7033960-00960-12960-200960-433960-7000960-8499960-85000960-85203962-00962-19962-201962-474962-7001962-7646963-00963-18963-200963-892963-700963-8481963-85000963-85084965-01965-19965-207965-442967-60967-89967-900967-989967-9900967-9989967-99901967-99999968-10968-39968-400968-899968-6000968-7275969-0969-1969-26969-39969-400969-473969-8000969-8159970-05970-10970-604970-619970-91000970-91074971-06971-36971-500971-631971-8500971-8819971-91000971-91273972-0972-1972-20972-50972-550972-722972-8004972-9499972-95000972-97520973-21973-49973-550973-682973-9000973-9134973-95000973-95521974-00974-10974-200974-685974-7000974-8499974-85000974-88000975-09975-19975-345975-554975-7402975-7797975-95384975-96606976-40976-42976-600976-636976-8000976-8105977-01977-17977-200977-457977-5000977-5235978-000978-199978-2000978-2887978-30000978-31118979-400979-557979-8000979-8322980-00980-07980-200980-316980-6001980-6303981-00981-03981-200981-215981-3000981-3099982-01982-03982-100982-500983-60983-73983-800983-899983-9000983-9750983-99382983-99747984-01984-30984-400984-556984-8005984-8085987-0987-09963-09963-19963-309963-449963-5509963-5999963-75009963-78469964-09964-69964-709964-949964-9509964-9909966-209966-499966-8309966-8829966-98409966-98749968-97029968-97039971-09971-49971-609971-899971-9009971-9899971-99009971-99249973-109973-189973-7009973-9259973-97009973-99189974-09974-09974-309974-369974-5509974-5809974-75009974-75059976-19976-59976-609976-849976-9009976-9889976-99909976-99929977-009977-899977-9009977-9899977-99009977-99999978-579978-999978-9519978-9719978-99049978-99109979-19979-49979-509979-579979-8009979-8279979-90009979-90679980-09980-19980-549980-849980-9009980-9159981-09981-09982-009982-309982-8009982-8159982-99009982-99009983-859983-879983-99009983-99019987-309987-309987-5509987-5839987-88009987-88239988-09988-099903-099903-099904-099904-499904-6099904-6599904-90099904-91799908-1199908-2999908-90099908-90099911-0099911-3299911-60099911-86099912-099912-599912-6099912-7999912-90099912-90099913-099913-099914-099914-499914-5099914-5899914-90099914-92799915-099915-399915-5099915-7899915-80099915-83099916-199916-199916-3099916-3599916-70099916-70499920-099920-299920-5099920-5599920-90099920-904$Id: keybrd.c,v 1.3 1996/03/04 18:56:21 beebe Exp beebe $More? f)orwd b)ackwd e)nd q)uit r)efresh t)op \/)search   PgUp PgDn Home End More? f)orwd b)ackwd e)nd q)uit r)efresh t)op \/)search   PgUp PgDn Home End Search backward: Search forward: Search backward: $Id: match.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~$Id: option.c,v 1.5 1996/04/26 01:16:37 beebe Exp beebe $L > i       !  L ! + ;C Jn _ k ~ >      !      $  C 6   E _ R  a  s    6 a  _       6  a ,  4  a  s  a   a    * ? Z ` w    ? n    7 l   Aq PX%f.nbdy>FCEUVO*lbE]_s2w-r0s9z D     "!b!!!!!6"y"""A###$K$$$$%S%%%&Z&&&&'>'''''((!(c(((((?))) *G***+N+P+++,W,,,,,- -!-e-----.o...//)/+/A/// 0K00000 1:1<1O1112V222#3I3K3e33333$4b444#5%585t555;6j6l6667I7|7~778H8889!9#9:9z999+:D:F:a:::';O;Q;;;<^<<<'=e=====)>n>>>>?V?????@N@@@@ASAAAAAA.B]BBBB&C[CCCC0D`DDDDDDDDDEEE!E#E,EJE?align-equalsauthorcheck-valuesdelete-empty-valueserror-logfile-positionfix-font-changesfix-initialsfix-namesGerman-stylehelpinit-filekeep-linebreakskeep-parbreakskeep-preamble-spaceskeep-spaceskeep-string-spacesmax-widthno-align-equalsno-check-valuesno-delete-empty-valuesno-file-positionno-fix-font-changesno-fix-initialsno-fix-namesno-German-styleno-keep-linebreaksno-keep-parbreaksno-keep-spacesno-parbreaksno-prettyprintno-print-patternsno-read-init-filesno-remove-OPT-prefixesno-scribeno-trace-file-openingno-warningsparbreaksprettyprintprint-patternsread-init-filesremove-OPT-prefixesscribetrace-file-openingversionwarnings%s%.*sUnrecognized option switch: no-print-patternsno-read-init-filesno-trace-file-openingprint-patternsread-init-filestrace-file-openingAuthor: Nelson H. F. Beebe Center for Scientific Computing Department of Mathematics University of Utah Salt Lake City, UT 84112 USA Tel: +1 801 581 5254 FAX: +1 801 581 4801 Email: w%s cannot open error log file [%s]%% -- using stderr instead perror() says Usage: [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]align-equals ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile Command-line switches may be abbreviated to a unique leading prefix, and letter case is not significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag to no. For such options, the last setting determines the flag value used. This is significant when options are also specified in initialization files (see the INITIALIZATION FILES manual section). -author Display an author credit on the standard error unit, stderr. Sometimes an executable program is separated from its documentation and source code; this option provides a way to recover from that. -error-log filename Redirect stderr to the indicated file, which will then contain all of the error and warning messages. This option is provided for those systems that have difficulty redirecting stderr. -help or -? Display a help message on stderr, giving a usage description, similar to this section of the manual pages. -init-file filename Provide an explicit value pattern initialization file. It will be processed after any system-wide and job-wide initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANINI, but defaults to .bibcleanrc on UNIX, and to bibclean.ini elsewhere. For further details, see the INITIALIZATION FILES manual section. -max-width nnn bibclean normally limits output line widths to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special- purpose applications may require different maximum line widths, so this option provides that capability. The number following the option name can be specified in decimal, octal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is interpreted to mean unlimited, so -max-width 0 can be used to ensure that each field/value pair appears on a single line. When -no-prettyprint requests bibclean to act as a lexical analyzer, the default line width is unlimited, unless overridden by this option. When bibclean is prettyprinting, line wrapping will be done only at a space. Consequently, a long non-blank character sequence may result in the output exceeding the requested line width. When bibclean is lexing, line wrapping is done by inserting a backslash-newline pair when the specified maximum is reached, so no line length will ever exceed the maximum. -[no-]align-equals With the positive form, align the equals sign in key/value assignments at the same column, separated by a single space from the value string. Otherwise, the equals sign follows the key, separated by a single space. Default: no. -[no-]check-values With the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g. ``year = "192"'' instead of ``year = "1992"''), and issue warnings when unexpected patterns are found. This checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can disable it with the negative form of this option. Default: yes. -[no-]delete-empty-values With the positive form, remove all field/value pairs for which the value is an empty string. This is helpful in cleaning up bibliographies generated from text editor templates. Compare this option with -[no-]remove-OPT- prefixes described below. Default: no. -[no-]file-position With the positive form, give detailed file position information in warning and error messages. Default: no. -[no-]fix-font-changes With the positive form, supply an additional brace level around font changes in titles to protect against downcasing by some BibTeX styles. Font changes that already have more than one level of braces are not modified. For example, if a title contains the Latin phrase {\em Dictyostelium Discoideum} or {\em {D}ictyostelium {D}iscoideum}, then downcasing will incorrectly convert the phrase to lower-case letters. Most BibTeX users are surprised that bracing the initial letters does not prevent the downcase action. The correct coding is {{\em Dictyostelium Discoideum}}. However, there are also legitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, bibclean will normally not supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this option to supply them. If you think that you need this option, it is strongly recommended that you apply bibclean to your bibliography file with and without -fix-font-changes, then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You will have to decide which of the two output files is the better choice, then repair the incorrect title bracing by hand. Since font changes in titles are uncommon, except for cases of the type which this option is designed to correct, it should do more good than harm. Default: no. -[no-]fix-initials With the positive form, insert a space after a period following author initials. Default: yes. -[no-]fix-names With the positive form, reorder author and editor name lists to remove commas at brace level zero, placing first names or initials before last names. Default: yes. -[no-]German-style With the positive form, interpret quote characters ["] inside braced value strings at brace level 1 according to the conventions of the TeX style file german.sty, which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, invisible hyphens, raised/lowered quotes, French guillemets, and discretionary hyphens. Recognized character combinations will be braced to prevent BibTeX from interpreting the quote as a string delimiter. Quoted strings receive no special handling from this option, and since German nouns in titles must anyway be protected from the downcasing operation of most BibTeX bibliography styles, German value strings that use the overloaded quote character can always be entered in the form "{...}", without the need to specify this option at all. Default: no. -[no-]keep-linebreaks Normally, line breaks inside value strings are collapsed into a single space, so that long value strings can later be broken to provide lines of reasonable length. With the positive form, linebreaks are preserved in value strings. If -max-width is set to zero, this preserves the original line breaks. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-parbreaks With the positive form, preserve paragraph breaks (either formfeeds, or lines containing only spaces) in value strings. Normally, paragraph breaks are collapsed into a single space. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-preamble-spaces With the positive form, preserve all whitespace in @Preamble{...} entries. Default: no. -[no-]keep-spaces With the positive form, preserve all spaces in value strings. Normally, multiple spaces are collapsed into a single space. This option can be used together with - keep-linebreaks, -keep-parbreaks, and -max-width 0 to preserve the form of value strings while still providing syntax and value checking. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-string-spaces With the positive form, preserve all whitespace in @String{...} entries. Default: no. -[no-]parbreaks With the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field/value pairs. This may be useful to quickly trap runaway strings arising from mismatched delimiters. Default: yes. -[no-]prettyprint Normally, bibclean functions as a prettyprinter. However, with the negative form of this option, it acts as a lexical analyzer instead, producing a stream of lexical tokens. See the LEXICAL ANALYSIS manual section for further details. Default: yes. -[no-]print-patterns With the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used. When bibclean is compiled with native pattern-matching code (the default), these patterns are the ones that will be used in checking value strings for valid syntax, and all of them are specified in initialization files, rather than hard-coded into the program. For further details, see the INITIALIZATION FILES manual section. Default: no. -[no-]read-init-files With the negative form, suppress loading of system-, user-, and file-specific initialization files. Initializations will come only from those files explicitly given by -init-file filename options. Default: yes. -[no-]remove-OPT-prefixes With the positive form, remove the ``OPT'' prefix from each field name where the corresponding value is not an empty string. The prefix ``OPT'' must be entirely in upper-case to be recognized. This option is for bibliographies generated with the help of the GNU Emacs BibTeX editing support, which generates templates with optional fields identified by the ``OPT'' prefix. Although the function M-x bibtex-remove-OPT normally bound to the keystrokes C-c C-o does the job, users often forget, with the result that BibTeX does not recognize the field name, and ignores the value string. Compare this option with -[no-]delete-empty-values described above. Default: no. -[no-]scribe With the positive form, accept input syntax conforming to the Scribe document system. The output will be converted to conform to BibTeX syntax. See the SCRIBE BIBLIOGRAPHY FORMAT manual section for further details. Default: no. -[no-]trace-file-opening With the positive form, record in the error log file the names of all files which bibclean attempts to open. Use this option to identify where initialization files are located. Default: no. -[no-]warnings With the positive form, allow all warning messages. The negative form is not recommended since it may mask problems that should be repaired. Default: yes. -version Display the program version number on stderr. This will also include an indication of who compiled the program, the host name on which it was compiled, the time of compilation, and the type of string-value matching code selected, when that information is available to the compiler. Usage: [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]align-equals ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile bibclean Version 2.11.3 [01-May-1996] Compiled by <beebe@plot79.math.utah.edu> on May 02 1996 07:58:17 with native pattern matching no-$Id: romtol.c,v 1.1 1995/10/07 15:51:44 beebe Exp beebe $L" 2divxlcdm$Id: strist.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $$Id: strtol.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $L!"0123456789abcdefghijklmnopqrstuvxwyzBorland C++ - Copyright 1991 Borland Intl.Divide error Abnormal program termination !!!!! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  ( <PCdBx```@###TMP.$$$(null)       COMPAQprint scanf : floating point formats not linked )")")")")")"%)"5)"J)"\)"y)")")")")")")")")"!)"2)"D)"V)"d)"u)")"%Error 0Invalid function numberNo such file or directoryPath not foundToo many open filesPermission deniedBad file numberMemory arena trashedNot enough memoryInvalid memory block addressInvalid environmentInvalid formatInvalid access codeInvalid dataNo such deviceAttempted to remove current directoryNot same deviceNo more filesInvalid argumentArg list too bigExec format errorCross-device linkMath argumentResult too largeFile already existsFile already existsPossible deadlockUnknown error%s: %s ;Zx0Nm)")"PFTZESTEDT";bibclean-3.07/ibmpc/dos/tcc3p0/config.h0000644000156700015670000001206306141423646016505 0ustar beebebeebe/* config.h. Generated automatically by configure. */ /* WARNING: Do NOT edit the config.h file; instead, put any needed changes in custom.h, so that they can override assumptions made in the automatically-generated config.h file */ #define STDC_HEADERS 1 /* #undef _ALL_SOURCE */ /* #undef _POSIX_SOURCE */ #define HAVE_STDC 1 /* Define if you want old pattern-less string matching in .ini files */ /* #undef HAVE_OLDCODE */ /* Define if you want standard bibclean-specific pattern in .ini files */ #define HAVE_PATTERNS 1 /* Define if you want regular-expression patterns in .ini files using re_comp() */ /* #undef HAVE_RECOMP */ /* #undef HAVE_REGEXP */ #if !(defined(__cplusplus) || defined(c_plusplus)) /* Define to empty if the keyword does not work, but do nothing in */ /* C++ environment, because autoconf 2.4 gets the wrong answer from */ /* the AC_C_CONST test program under C++ compilation. */ /* #undef const */ #endif /* Define if your free() requires (char*) cast instead of (void*) */ /* #undef FREE_CAST_IS_CHAR_STAR */ /* Define if your compiler recognizes \a as an alert (ASCII BEL) character */ #define HAVE_ALERT_CHAR 1 /* Library functions that we need */ #define HAVE_GETCWD 1 #define HAVE_GETWD 1 #define HAVE_STRCSPN 1 /* #undef HAVE_STRDUP */ #define HAVE_STRSPN 1 #define HAVE_STRSTR 1 #define HAVE_STRTOD 1 #define HAVE_STRTOL 1 /* Header files that we might need */ #define HAVE_CONIO_H 1 #define HAVE_CTYPE_H 1 /* #undef HAVE_DESCRIP_H */ #define HAVE_ERRNO_H 1 #define HAVE_FCNTL_H 1 /* #undef HAVE_IODEF_H */ #define HAVE_IO_H 1 /* #undef HAVE_JPIDEF_H */ #define HAVE_LIMITS_H 1 /* #undef HAVE_OSFCN_H */ /* #undef HAVE_PWD_H */ #define HAVE_REGEXP_H 1 /* #undef HAVE_REGEX_H */ /* #undef HAVE_RMS_H */ #define HAVE_SGTTY_H 1 /* #undef HAVE_SSDEF_H */ /* #undef HAVE_STAT_H */ /* #undef HAVE_STDDEF_H */ #define HAVE_STDIO_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 /* #undef HAVE_SYS_IOCTL_H */ /* #undef HAVE_SYS_PARAM_H */ #define HAVE_SYS_STAT_H 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_TERMIOS_H 1 #define HAVE_TERMIO_H 1 #define HAVE_TIME_H 1 /* #undef HAVE_TT2DEF_H */ /* #undef HAVE_TTDEF_H */ /* #undef HAVE_TYPES_H */ /* #undef HAVE_UNISTD_H */ /* #undef HAVE_UNIXIO_H */ #define RCSID(s) static char rcsid[] = s; #define OS_PCDOS 1 /* NB: some systems have Standard C header files, but compilers that do not accept function prototypes (e.g. HP HP-UX 9.0.3 /bin/cc) */ #if defined(STDC_HEADERS) && (defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)) #define ARGS(plist) plist #define VOID void #else #define ARGS(plist) () #define VOID #endif #define SCREEN_LINES 24 /*********************************************************************** The limit on file name lengths is non-standard: -------- ------------- ------------------------------------------ Name Definition System -------- ------------- ------------------------------------------ FNMAX PCC-20 MAXPATH Turbo C 2.0, C and C++ 3.0, and TopSpeed C _MAX_PATH Microsoft C 5.0, 6.0, 7.0 and TopSpeed C MAXPATHLEN Sun OS (4.2BSD), 4.3BSD, Gould UTX/32, HPUX, KCC-20, AIX (RT, RS, PS/2, 370), HP/Apollo DomainOS, DEC Alpha (OSF/1) PATH_MAX SYS V (Silicon Graphics) PATH_MAX POSIX, DEC Alpha (OSF/1) FILENAME_MAX Intel RMX, NeXT Mach, Turbo C/C++ 3.0 -------- ------------- ------------------------------------------ ***********************************************************************/ #if defined(HAVE_SYS_PARAM_H) #include #endif #if defined(HAVE_LIMITS_H) #include #endif #if defined(HAVE_STDLIB_H) #include #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN FNMAX #endif #if !defined(MAXPATHLEN) && defined(MAXPATH) #define MAXPATHLEN MAXPATH #endif #if !defined(MAXPATHLEN) && defined(_MAX_PATH) #define MAXPATHLEN _MAX_PATH #endif #if !defined(MAXPATHLEN) && defined(PATH_MAX) #define MAXPATHLEN PATH_MAX #endif #if !defined(MAXPATHLEN) && defined(FILENAME_MAX) #define MAXPATHLEN FILENAME_MAX #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN 1024 #endif #if defined(OS_PCDOS) #define SEP_COMP " ;,|" /* separators between filename components */ #define SEP_PATH "\\" /* separators between directory path and filename */ #endif #if defined(OS_UNIX) #define SEP_COMP " ;:,|" /* separators between filename components */ #define SEP_PATH "/" /* separators between directory path and filename */ #endif #include #if defined(__TURBOC__) #undef fileno #define fileno(f) ((f)->fd) #endif #include #if !defined(HAVE_IOCTL_PROTOTYPE) #if defined(__cplusplus) || defined(c_plusplus) /* system files should have: extern "C" {int ioctl ARGS((int, int, ...));} */ #else extern int ioctl ARGS((int, int, ...)); #endif #endif #if defined(FREE_CAST_IS_CHAR_STAR) #define FREE(p) free((char*)(p)) #else #define FREE(p) free((void*)(p)) #endif bibclean-3.07/ibmpc/dos/tcc3p0/ibmclean.bat0000644000156700015670000000007406141407714017326 0ustar beebebeebedel test*.bi2 del test*.bib del test*.er2 del test*.err bibclean-3.07/ibmpc/dos/tcc3p0/ibmtest.bat0000644000156700015670000001342206141407200017212 0ustar beebebeebeecho off break on REM ===================================================================== REM Test bibclean on IBM PC DOS. REM The funny backspace in echo commands is just to get a blank REM line, rather than the current echo status. REM [29-Apr-1996] REM ===================================================================== echo ================== begin BibTeX test 1 =================== echo bibclean -init bibclean.ini -err testbib1.err testbib1.org bibclean -init bibclean.ini -err testbib1.err testbib1.org >testbib1.bib echo  echo There should be no differences found: echo diff testbib1.bok testbib1.bib diff testbib1.bok testbib1.bib echo  echo There should be no differences found: echo diff testbib1.eok testbib1.err diff testbib1.eok testbib1.err echo =================== end BibTeX test 1 ==================== echo ================== begin BibTeX test 2 =================== echo bibclean -init bibclean.ini -no-check-values -err testbib2.err testbib2.org bibclean -init bibclean.ini -no-check-values -err testbib2.err testbib2.org >testbib2.bib echo  echo There should be no differences found: echo diff testbib2.bok testbib2.bib diff testbib2.bok testbib2.bib echo  echo There should be no differences found: echo diff testbib2.eok testbib2.err diff testbib2.eok testbib2.err echo =================== end BibTeX test 2 ==================== echo ================== begin BibTeX test 3 =================== echo bibclean -init bibclean.ini -fix-font-change -err testbib3.err testbib3.org bibclean -init bibclean.ini -fix-font-change -err testbib3.err testbib3.org >testbib3.bib echo  echo There should be no differences found: echo diff testbib3.bok testbib3.bib diff testbib3.bok testbib3.bib echo  echo There should be no differences found: echo diff testbib3.eok testbib3.err diff testbib3.eok testbib3.err echo =================== end BibTeX test 3 ==================== echo ================== begin BibTeX test 4 =================== echo bibclean -init bibclean.ini -fix-font-change -err testbib4.err testbib4.org bibclean -init bibclean.ini -fix-font-change -err testbib4.err testbib4.org >testbib4.bib echo  echo There should be no differences found: echo diff testbib4.bok testbib4.bib diff testbib4.bok testbib4.bib echo  echo There should be no differences found: echo diff testbib4.eok testbib4.err diff testbib4.eok testbib4.err echo =================== end BibTeX test 4 ==================== echo ================== begin BibTeX test 5 =================== echo bibclean -init bibclean.ini -German-style -err testbib5.err testbib5.org bibclean -init bibclean.ini -German-style -err testbib5.err testbib5.org >testbib5.bib echo  echo There should be no differences found: echo diff testbib5.bok testbib5.bib diff testbib5.bok testbib5.bib echo  echo There should be no differences found: echo diff testbib5.eok testbib5.err diff testbib5.eok testbib5.err echo =================== end BibTeX test 5 ==================== echo ================== begin BibTeX test 6 =================== echo bibclean -init bibclean.ini -err testisxn.err testisxn.org bibclean -init bibclean.ini -err testisxn.err testisxn.org >testisxn.bib echo  echo There should be no differences found: echo diff testisxn.bok testisxn.bib diff testisxn.bok testisxn.bib echo  echo There should be no differences found: echo diff testisxn.eok testisxn.err diff testisxn.eok testisxn.err echo =================== end BibTeX test 6 =================== echo ================== begin BibTeX test 7 =================== echo bibclean -init bibclean.ini -err testcodn.err testcodn.org bibclean -init bibclean.ini -err testcodn.err testcodn.org >testcodn.bib echo  echo There should be no differences found: echo diff testcodn.bok testcodn.bib diff testcodn.bok testcodn.bib echo  echo There should be no differences found: echo diff testcodn.eok testcodn.err diff testcodn.eok testcodn.err echo =================== end BibTeX test 7 =================== echo ================== begin Scribe test 1 =================== echo bibclean -init bibclean.ini -err testscr1.err -scribe -no-check testscr1.org bibclean -init bibclean.ini -err testscr1.err -scribe -no-check testscr1.org >testscr1.bib echo  echo There should be no differences found: echo diff testscr1.bok testscr1.bib diff testscr1.bok testscr1.bib echo  echo There should be no differences found: echo diff testscr1.eok testscr1.err diff testscr1.eok testscr1.err echo =================== end Scribe test 1 ==================== echo ==================== begin Scribe test 2 ===================== echo  bibclean -err testscr2.err -init-file bibclean.ini -scribe -file -no-check testscr2.org >testscr2.bib echo  echo There should be no differences found: echo diff testscr2.bok testscr2.bib echo  echo There should be no differences found: echo diff testscr2.eok testscr2.err echo  echo  bibclean -err testscr2.er2 -init-file bibclean.ini -scribe -file -no-check -no-par testscr2.org >testscr2.bi2 echo  echo There should be no differences found: echo diff testscr2.bo2 testscr2.bi2 echo  echo There should be no differences found: echo diff testscr2.eo2 testscr2.er2 echo  echo ===================== end Scribe test 2 ====================== echo ================== begin Scribe test 3 =================== echo bibclean -init bibclean.ini -err testscr3.err -scribe -no-check testscr3.org bibclean -init bibclean.ini -err testscr3.err -scribe -no-check testscr3.org >testscr3.bib echo  echo There should be no differences found: echo diff testscr3.bok testscr3.bib diff testscr3.bok testscr3.bib echo  echo There should be no differences found: echo diff testscr3.eok testscr3.err diff testscr3.eok testscr3.err echo =================== end Scribe test 3 ==================== bibclean-3.07/ibmpc/dos/README0000644000156700015670000003365706142142034014655 0ustar beebebeebe%% /u/sy/beebe/tex/bibclean/2-11/ibmpc/dos/README, Thu May 2 08:18:01 1996 %% Edit by Nelson H. F. Beebe =============================== bibclean for IBM PC DOS systems =============================== %% Author: %% Nelson H. F. Beebe %% Center for Scientific Computing %% Department of Mathematics %% University of Utah %% Salt Lake City, UT 84112 %% USA %% Email: beebe@math.utah.edu (Internet) %% WWW URL: http://www.math.utah.edu/~beebe ==== NEWS ==== Several pre-compiled versions of bibclean for the IBM PC DOS environment are provided with this release, so most users will only have to copy the bibclean.exe file and the bibclean.ini file into some directory listed in the PATH variable. See the ``Doing it Yourself'' section below for details on building bibclean. Here are the file sizes of the bibclean executables on the Intel architecture, sorted from smallest to largest: 71684 May 1 20:25 ./linux/bibclean (stripped) 112238 May 2 08:07 ./dos/wat10/wcc386/bibclean.exe 113514 May 2 08:11 ./dos/wat10/wpp386/bibclean.exe 133563 May 2 07:52 ./dos/msc6p0/bibclean.exe 133604 May 2 08:03 ./dos/wat10/wcc/bibclean.exe 152883 May 2 07:48 ./dos/msc5p1/bibclean.exe 156860 May 2 07:58 ./dos/tcc3p0/bibclean.exe 157004 May 2 07:25 ./dos/tpp3p0/bibclean.exe 157785 May 2 07:56 ./dos/tcc2p0/bibclean.exe 211679 May 1 20:25 ./linux/bibclean (not stripped) For O/S-independent changes in bibclean, see the top-level ChangeLog file. One of the changes in this release for IBM PC DOS systems is the use of binary input mode for the BibTeX input files, making it possible for Ctl-Z to be treated as a regular character. It is no longer necessary, as it was in previous releases of bibclean for the IBM PC, to remove the test line in testbib1.org, in order to get all of the tests to pass. Occasionally, the error file will contain blank lines between messages. The reason for this is that check_inodes() in chek.c sets the variable stdlog_on_stdout by trying to figure out if the log file is different from the normal output file. When that variable is set to YES, warnings are prefixed by a newline to prevent them from being issued in the middle of a line of output data. IBM PC DOS does not have the concept of an inode, which together with the device number, on UNIX and VAX VMS is a unique file identifier, so check_inodes() tests other fields of the stat structure for equality to see, and these tests are not sufficient to always make the correct decision. For example, if the output and log files are both created as named files within the same clock tick (1/60 sec), then the test in check_inodes() will incorrectly conclude they are identical, even though they are different. One possible solution would be to issue a sleep(1) call before the log file is opened, which would ensure different time stamps; however, that function is not available with the Microsoft C compilers, although both Turbo C and Watcom C have it. What is really needed to distinguish the files is their initial disk block addresses, or their file names (DOS file systems do not support links, so different filenames imply different files; this is not true on UNIX or VMS), but I can find no documented C library call that will obtain this information. Another solution would be to call utime() after the open of the log file and set its write time forward by one clock tick (two seconds in DOS file systems). With the Microsoft C compilers, _dos_getftime() and _dos_setftime() could be used too; with Turbo C, getftime() and setftime() similarly available. If anyone has a better idea how to solve this problem, I will happily accept suggestions. ======================= Borland Turbo C and C++ ======================= This release of bibclean 2.11 has been built and successfully tested with Turbo C 3.0, using tcc30bld.bat on SunPC 4.1 running on a native Intel 486 25MHz processor board inside my Sun UltraSPARC 170 workstation. The huge memory model is required to successfully link the program. The executable, associated batch files, and the customized config.h file, can be found in the tcc3p0 subdirectory. Success was also obtained with Turbo C 2.0 in the huge memory model; the files are in the tcc2p0 subdirectory. Turbo C++ 3.0 compilation and testing also works; the results are in the tpp3p0 directory. =================== Microsoft C and C++ =================== A build with Microsoft C 5.0 was successful in the compact, large, and huge models, but the output in the compact model was erroneous, and the large and huge model versions died with run-time error R6009 - not enough space for environment despite the fact that the environment contained on 3 short variables and the PATH variable. With Microsoft C 5.1, compilation and testing was successful in the huge model; the executable and associated files are in the msc5p1 subdirectory. The bibclean.exe file produced is 153KB, slightly smaller than the 156KB file from Turbo C 3.0. Compilation and testing with Microsoft C 6.0 was successful in the compact model; the executable and associated files are in the msc6p0 subdirectory. Microsoft C 7.0 will not run on SunPC, even with a native 486 processor board; it complains: run-time error R6901 - DOSX32 : This is a protected-mode application that requires DPMI (DOS Protected Mode Interface) services. Examples of hosts that provide these services include: - a DOS session under Windows 3.x in enhanced mode - Qualitas' 386MAX or BlueMAX version 6.x With older versions of SunPC, it would not start even if 386max.sys was installed in config.sys. When I put 386max.sys there for these tests, after rebooting, the compiler starts, and then shuts down: cl -c -I. isbn.c Microsoft (R) C/C++ Optimizing Compiler Version 7.00 Copyright (c) Microsoft Corp 1984-1992. All rights reserved. isbn.c runtime error R6008 - not enough space for arguments This happens no matter what the /E switch on command.com is set to in config.sys: I tried sizes from 512 to 40K. Also, if 386max.sys is used, then SunPC will only work with a 486 hardware board, but not in software emulation mode, Microsoft software products, as usual, are the pits! I've placed copies of the batch files and config.h file in the msc7p0 subdirectory, but I cannot create an executable. Perhaps some reader can do so, and send me the results. I would also very much like to see the results of Microsoft C++ compilation. ================ Watcom C and C++ ================ The batch files for building bibclean with the Waterloo compiler assume that you have copied the file watcom/src/startup/wildargv.c from the compiler installation tree to the current directory. I have not supplied a copy command in the batch files, because the local home of this compiler on my system has not yet been finalized. On a Sun UltraSPARC 170 running Sun Solaris 2.5, with C++ 4.0 compilation, the memory sizes of the various object files are: ============================================= Module code init uninit total data data ============================================= bibclean.o 30898 1837 12372 45107 chek.o 15646 716 0 16362 do.o 62733 4214 10248 77195 fix.o 13863 159 4096 18118 fndfil.o 4763 86 3084 7933 isbn.o 11205 6633 14 17852 keybrd.o 9643 362 36 10041 match.o 4583 157 0 4740 option.o 13549 17797 12 31358 romtol.o 1483 98 0 1581 strist.o 578 58 0 636 strtol.o 2974 99 0 3073 --------------------------------------------- Total 171918 32216 29862 233996 ============================================= Evidently, the sum of initialized and uninitialized data is about 62KB. After several attempts that were thwarted by the IBM PC 64KB segment size limit, I finally found a set of switches that allow use of the Watcom C/C++ 10.0 wcc compiler: wcc -I. -ml -zq -zt512 chek.c This produced an executable in both compact and large models that passed the validation suite successfully, except for the last one, Scribe test 3, where the program goes into an infinite loop writing %% "testscr3.org", line 0: Pushback buffer overflow: characters lost. Adding the -ox optimization switch to the compilations had no effect. Thus, the wat10/wcc/bibclean.exe executable should not be regarded as reliable. I also tried using C++ compilation like this: wcl -c -cc++ -I. -mc -ox -zq -zt512 chek.c I then had to remove the -ox optimization flag for chek.c and do.c because the compiler ran out of memory. Even without that flag, the compiler could not handle do.c, which is the largest source file in bibclean. Also I had to change one statement in isbn.c from for (p = start = s; (p = next_ISBN(p,&next), p) != (const char*)NULL; start = p) to for (p = start = s; (p = next_ISBN(p,&next)) != (const char*)NULL; start = p) because the C++ compiler erroneously treated the comma expression as of type long, which is incompatible with const char *. Thus, successful compilation with Watcom C++ is not possible without code rewriting, which I'm not prepared to do at this time. Compilation and testing with the Watcom C/C++ 10.0 wcc386 compiler was successful; the required files are stored in the watcom subdirectory. This version of the program requires an Intel 386 or higher processor, and does not use segmented memory addressing. Because it uses more efficient 32-bit addressing, instead of multiple instructions to twiddle segment and offset registers, it is likely to run faster than the Turbo C version. The 386 executable program file is also 28% smaller than the segmented memory version. If you attempt to run the wat10/wcc386/bibclean.exe file on a 286 or older system, or on an emulator that does not support the 386 extensions, such as SunPC 4.1, it terminates immediately with an error DOS/16M error: [15] protected mode available only with 386 or 486 It works successfully on SunPC 4.1 when the 486 board is installed. Unfortunately, it also produces an obnoxious copyright message each time it is run: DOS/4GW Protected Mode Run-time Version 1.95 Copyright (c) Rational Systems, Inc. 1990-1993 These messages arise from the dos4gw.exe file that is dynamically loaded. You can suppress them by setting an environment variable like this: set DOS4G=quiet The dos4gw.exe file is needed to run the bibclean.exe file, and can be FREELY distributed with it. Further details can be found in its documentation file, wat10/wcc386/dos4gw.doc. Finally, a build and test was done successfully with the 386 C++ compiler, wpp386; the associated files are in the wat10/wpp386 subdirectory. ================= Doing it Yourself ================= If you are content to use a precompiled version of bibclean provided with the distribution, stop reading now. Because of the poor quality of, and variation in, IBM PC DOS make implementations, I have not attempted to use Makefiles for building bibclean on the IBM PC. Instead, I use a pair of batch files, one to set the search paths and environment variables for a particular compiler, and another to invoke the compiler to compile and link the complete program. The first of these will require modification at end-user sites, because there are no standards for where software is installed on IBM PC DOS systems. The second will not require modification unless you change compilers, or want to experiment with different compilation options. Copy the source files, *.c and *.h, and the test files, test*.*, from the distribution directory into an empty directory, and then copy in the batch files and the config.h file from one of these subdirectories: ./msc5p1 ./msc6p0 ./msc7p0 ./tcc2p0 ./tcc3p0 ./wat10/wcc ./wat10/wcc386 ./wat10/wpp386 For example, tcc3p0 contains these files: bibclean.exe ibmclean.bat tcc30bld.bat config.h ibmtest.bat tcc30pth.bat Depending on how you installed the files, it may be necessary to change UNIX LF line terminators to PC DOS CR LF terminators in the *.c, *.h, and test*.* files in the first step. Some compilers will happily handle both styles of line termination. The files in the above compiler-specific directories have already been converted to PC DOS format. After modifying the batch files as needed, execute the one that sets the sets the path (e.g. tcc30pth) to prepare for compilation. Then execute the build batch file (e.g. tcc30bld). If the compilation and/or linking fail, fix the problems (config.h may need minor tweaks if you changed compilers). Otherwise, execute the ibmtest batch file. If the installation is correct, no differences will be found during its execution. You can use ibmclean to remove the temporary output test files. Some versions of PC DOS have an improved file comparison utility named fc; you can copy it into the current directory under the name diff.exe if you want to use it instead of the primitive diff utility historically available with PC DOS. Your port should support wildcarded files on the command line. With the Microsoft, Turbo, and Waterloo C compilers, special library object files named setargv (Microsoft), wildargs (Turbo), or wildargv (Waterloo) can be linked in to provide this service. If you succeed in porting bibclean to a new compiler and/or operating system, and the resulting program can pass all of the validation tests, please return an archive file (e.g. .arc, .tar, .zip, or .zoo) to the author with the executable program, your batch files, and all changed source files. Send either a uuencoded or Mime-encoded e-mail message to the address above, or if you have Internet anonymous ftp access, deposit the archive file in ftp://ftp.math.utah.edu/incoming, and then send the author notification that you have done so. For security reasons, that directory cannot be listed, nor can you overwrite anything that is already there. ======= THE END ======= bibclean-3.07/ibmpc/dos/msc5p1/0000775000156700015670000000000014431412252015073 5ustar beebebeebebibclean-3.07/ibmpc/dos/msc5p1/ibmtest.bat0000644000156700015670000001342206141407200017226 0ustar beebebeebeecho off break on REM ===================================================================== REM Test bibclean on IBM PC DOS. REM The funny backspace in echo commands is just to get a blank REM line, rather than the current echo status. REM [29-Apr-1996] REM ===================================================================== echo ================== begin BibTeX test 1 =================== echo bibclean -init bibclean.ini -err testbib1.err testbib1.org bibclean -init bibclean.ini -err testbib1.err testbib1.org >testbib1.bib echo  echo There should be no differences found: echo diff testbib1.bok testbib1.bib diff testbib1.bok testbib1.bib echo  echo There should be no differences found: echo diff testbib1.eok testbib1.err diff testbib1.eok testbib1.err echo =================== end BibTeX test 1 ==================== echo ================== begin BibTeX test 2 =================== echo bibclean -init bibclean.ini -no-check-values -err testbib2.err testbib2.org bibclean -init bibclean.ini -no-check-values -err testbib2.err testbib2.org >testbib2.bib echo  echo There should be no differences found: echo diff testbib2.bok testbib2.bib diff testbib2.bok testbib2.bib echo  echo There should be no differences found: echo diff testbib2.eok testbib2.err diff testbib2.eok testbib2.err echo =================== end BibTeX test 2 ==================== echo ================== begin BibTeX test 3 =================== echo bibclean -init bibclean.ini -fix-font-change -err testbib3.err testbib3.org bibclean -init bibclean.ini -fix-font-change -err testbib3.err testbib3.org >testbib3.bib echo  echo There should be no differences found: echo diff testbib3.bok testbib3.bib diff testbib3.bok testbib3.bib echo  echo There should be no differences found: echo diff testbib3.eok testbib3.err diff testbib3.eok testbib3.err echo =================== end BibTeX test 3 ==================== echo ================== begin BibTeX test 4 =================== echo bibclean -init bibclean.ini -fix-font-change -err testbib4.err testbib4.org bibclean -init bibclean.ini -fix-font-change -err testbib4.err testbib4.org >testbib4.bib echo  echo There should be no differences found: echo diff testbib4.bok testbib4.bib diff testbib4.bok testbib4.bib echo  echo There should be no differences found: echo diff testbib4.eok testbib4.err diff testbib4.eok testbib4.err echo =================== end BibTeX test 4 ==================== echo ================== begin BibTeX test 5 =================== echo bibclean -init bibclean.ini -German-style -err testbib5.err testbib5.org bibclean -init bibclean.ini -German-style -err testbib5.err testbib5.org >testbib5.bib echo  echo There should be no differences found: echo diff testbib5.bok testbib5.bib diff testbib5.bok testbib5.bib echo  echo There should be no differences found: echo diff testbib5.eok testbib5.err diff testbib5.eok testbib5.err echo =================== end BibTeX test 5 ==================== echo ================== begin BibTeX test 6 =================== echo bibclean -init bibclean.ini -err testisxn.err testisxn.org bibclean -init bibclean.ini -err testisxn.err testisxn.org >testisxn.bib echo  echo There should be no differences found: echo diff testisxn.bok testisxn.bib diff testisxn.bok testisxn.bib echo  echo There should be no differences found: echo diff testisxn.eok testisxn.err diff testisxn.eok testisxn.err echo =================== end BibTeX test 6 =================== echo ================== begin BibTeX test 7 =================== echo bibclean -init bibclean.ini -err testcodn.err testcodn.org bibclean -init bibclean.ini -err testcodn.err testcodn.org >testcodn.bib echo  echo There should be no differences found: echo diff testcodn.bok testcodn.bib diff testcodn.bok testcodn.bib echo  echo There should be no differences found: echo diff testcodn.eok testcodn.err diff testcodn.eok testcodn.err echo =================== end BibTeX test 7 =================== echo ================== begin Scribe test 1 =================== echo bibclean -init bibclean.ini -err testscr1.err -scribe -no-check testscr1.org bibclean -init bibclean.ini -err testscr1.err -scribe -no-check testscr1.org >testscr1.bib echo  echo There should be no differences found: echo diff testscr1.bok testscr1.bib diff testscr1.bok testscr1.bib echo  echo There should be no differences found: echo diff testscr1.eok testscr1.err diff testscr1.eok testscr1.err echo =================== end Scribe test 1 ==================== echo ==================== begin Scribe test 2 ===================== echo  bibclean -err testscr2.err -init-file bibclean.ini -scribe -file -no-check testscr2.org >testscr2.bib echo  echo There should be no differences found: echo diff testscr2.bok testscr2.bib echo  echo There should be no differences found: echo diff testscr2.eok testscr2.err echo  echo  bibclean -err testscr2.er2 -init-file bibclean.ini -scribe -file -no-check -no-par testscr2.org >testscr2.bi2 echo  echo There should be no differences found: echo diff testscr2.bo2 testscr2.bi2 echo  echo There should be no differences found: echo diff testscr2.eo2 testscr2.er2 echo  echo ===================== end Scribe test 2 ====================== echo ================== begin Scribe test 3 =================== echo bibclean -init bibclean.ini -err testscr3.err -scribe -no-check testscr3.org bibclean -init bibclean.ini -err testscr3.err -scribe -no-check testscr3.org >testscr3.bib echo  echo There should be no differences found: echo diff testscr3.bok testscr3.bib diff testscr3.bok testscr3.bib echo  echo There should be no differences found: echo diff testscr3.eok testscr3.err diff testscr3.eok testscr3.err echo =================== end Scribe test 3 ==================== bibclean-3.07/ibmpc/dos/msc5p1/bibclean.exe0000755000156700015670000045246306142136430017355 0ustar beebebeebeMZ3+ <#g@4<4844404,4(4$4 44444 4444444+ #     vqv:vv v"v"vvgv\vIvBvvvvvvvvgv v""vvzvbvvvvvvv|vev^vKvDv8v.vvvvvvvyvVvvvHv5vvqvMvvv "b v v v v_ vWvv v "ZvKv/v v v v v v vs vi vO v! v v v vvv^v!vvvvv<v,vvvvv vvvvvvvvv"vvvvvvvvOvvvavvIv7vvvvrv0vv/v#vv4444444IB9B,BBBBBBBB BBBBBlBWBQBEB8B""\B<BB BBBBBtBGBBBBBBsBkBcBZBSBCBBBB" B B B B B B B' B B Bt B_ BY B4 B B BBBBBwBqBKB6B$BBBBBBBBnBB B B B B B B B BR B. BzBBBB^BBBBBBzBBBMBBlBBB44444444444444444444444444|4x4t4p4l4h4d4`4\4X4T4P4L4H4D4@4<4844404,4(4$4 44444 444444444444444444B 4> 4: 46 42 4. 4* 4& 4" 4 4 4 4 4 4~4z4v4r4n4j4f4b4^4Z4V4R4N4J4F4B4>4:46424.4*4&4"444444 444444444444444444444~4x4t4n4j4d4`4Z4L4F4B4<48424.4(4$44444 4444444zMz$zzkz;z)zz"gzUzNz?z8z.z'zzzzzzz[zzzzzyzKzz zzzzZz6z z """""zzzzzzzwz&"$"""zzzzzzzzhz)z2"0".","*"(" z z zzzzzzzzzzszXzOz6z(zzz4" zx z4 z/ z6"V zD z. z! z z z z z:"8"2 z' z z z z z z z z z z z z zx zq zU zN z1 z z z z z zy zr z_ zD z z z z z~ zu z>"<"zzzzzwzkz[zFz'zz zz z z z zw zP zG zzzzzzzzmzfz*zzzzzzzzz>zzzB"@"zD"#zzzzsz_z@z/zzzzzwzkz7zzzzrz!zzzF"zVzzzzH"zz\zWzEz9zzzzzz}zgzKzDz1zzzzzzzJ"*zzzzzxzszczMzEz9zzzL"i!z8!z!z!z z z z z z zw z< z# z zzRzzzzQz'zzzs$z#z#z#zx#zq#zX#zQ#z0#z"z"z"zw"zc"zQ"z"z!z!z!z&z&z%z%z%z%z%z%z%z%zM%z%z$z$z$z$z$zx$zN"&z7&zP")z)zs)zj)zY)z@)z)z(z(z(z(zm(z\(zQ(z(z'z'zK'z&z&z&z&zV"T"R",z+z+zB+z6+z+zl*z)z)z)z)z)z0zd0z=0z30z0z0z/z]3z 3z2z2z2zg2z[2zO2z?2z2z 2z1z1zf1za1zW1zG1z1zX"6z_6z5z5z5z5z5z]5zW5zO5z4z4z4zl4zg4z]4zP4z3z3z3z3z3zt3zn3z9z09z9z8z8z8z8z8z{8zh8zD8z7z.7z"7z@>z6>z(>z>z=z=z=z=z=z=z=zw=zW=z =zz>z\"Z"BzBzBzqBzVBz.Bz%BzBzAzAzAzAzAzAzsAzSAzCAz5Az@z@ze@z^"zCzdCzXCz/Cz CzBz`"[Dz#Dz DzCzCzCzCzCzCzCzCzd"b"EzEzEzEz|EzuEzmEzSEzLEzCEz2Ez+EzEzEzEzDzDzDzDzDzDzDzDzgDzf"HzHzHzyHzSHzHzHzGzGzGzGzGzvGzNGzGGzAGz+GzFzFzFz~Fz>FzEz; 4   t Y >     M   h"          } m >            z g Y R D = u O + $  l"j"   q  =     v o ` M .        K 5 "     o H A ; l  e  9   n"    p"l <     F    f  -     N      {   f D     G    w   o : +  555~5z5v5r5n5j5f5b5^5Z5V5R5N5J5F5B5>5:56525.5*5&5"555555 55555555555555555555555555555555555~5z5v5r5n5j5f5b5^5Z5V5R5N5J5F5B5>5:56525.5*5&5"555555 555555 55555555555555555555555555555555555~5z5v5r5n5j5f5b5^5Z5V5R5N5J5F5B5>5:56525.5*5&5"555555 55555555555555555555555555555555555555555~5z5v5r5n5j5f5b5^5Z5V5R5N5J5F5B5>5:56525.5*5&5"555555 55555555555555555555555555555555555~5z5v5r5n5j5f5b5^5Z5V5R5N5J5F5B5>5:56525.5*5&5"555.5*5&5"555555 55555555555555555555555555555555555~5z5v5r5n5j5f5b5^5Z5V5R5N5J5F5B5>5:56525.5*5&5"555555 55555555555555555555555555555555555555555~5z5v5r5n5j5f5b5^5Z5V5R5N5J5F5B5>5:56525.5*5&5"555555 55555555555555555555555555555555555~5z5v5r5n5j5f5b5^5Z5V5R5N5J5F5B5>5:56525v5r5n5j5f5b5^5Z5V5R5N5J5F5B5>5:56525.5*5&5"555555 55555555555555555555[ r"[ [ g[ W[ 9[ [ [ [ [ [ [ `[ ?[ [ o[ [ G[ '[ [ [ [ [ -   t"    \ N + \ N =  m T ; "        { o f a N      u c R   t Y @ 1 $    t [ B )  z a H /        g N 5       c c c Oc 3c c c c c c 2/4,/4(/4"/4/4/4/4/4 /4/4/4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4~.4x.4t.4n.4j.4d.4`.4Z.4V.4P.4L.4F.4B.4<.48.42.4..4(.4$.4.4.4.4.4 .4.4.4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4~-4z-4t-4p-4j-4f-4`-4/4/4/4/4/4/4/4/4/4/4/4/404040404040404040404~zvrnjfb^ZVRNJFB>:62.*&" ~zvrnjfb^ZVRNJFB>:62.*&"  ~zvrnjfb^ZVRNJFB>:62.*&" zvrnjfb^ZVRNJFB>:62.*&" ~zvrnjfb^ZVRNJFB>:62.*&"Jj4Fj4Bj4>j4:j46j42j4.j4*j4&j4"j4j4j4j4j4k4k4k4 k4k4k4k4j4j4j4j4j4j4j4      o  v"/ x"^ C z"i |"      } ~" "+ "? "S """     g " " " "# "7 "K "u _ " " " " " "  "1  "     Q = fk4{T+ i555l4=c=E===}=)== ====l4?Gl4.!rSs4r4dt4* E   F 4  y k H 0  gPY0R[" k_/y o8jI~ tc3##"' '&c&+W."0;1 1000`0w4w4|w4xw4tw4pw4lw4hw4dw4`w4\w4Xw4Tw4Pw4Lw4Hw4Dw4@w4!CFL!txrxl%!>lt ll%!;s EtYZ+r ;mrRQˡm@u3kRQ.mmm8lt)l&,l33uGG>lыѿl< t< t< to tkGN< t< t< t\ tX<"t$<\tB3A<\t<"tӋѨuN< t+ t'<"t<\tB3A<\t<"tۋѨu>lG׀+ģll6?6W6lN u6l3< t< t< u u6?6WתN< t< t< tk tg<"t&<\t3A<\t<"t\Ѱ\s"Fװ"ON< t. t*<"t<\t3A<\t<"t\Ѱ\s"3Gt.mU mu  m m!OVN!)ms3]UV^&G u&G @tSF-:s ㋇.tFvv^&G P) |h~te6mPFPFFV^&\t8mPFPnN Pvvv,/FPZ1 t^&G ^]ːU)FV tvPv v vvx +]ːUWVFFVvvvvv v vv* vvVJ^_]UVF-:s *tF^&G t&G @t^&G t&O &O ^'^&G u'-:s *tu v^&G&W&&W^w^&w&w&G Px*^&G t=u&t &G &GQ&O&7&&G&*^]UV+^&G $<uY&G u-:s *tt8^&&+GF ~'P&w&w&G Pb+;Ft ^&O ^&G&W&&W&G^]UWVv^&Ox&?&&G&* v SV^_]ːU^ t&O]UVWF=s>uu%tuutu v,_^]˻9^v^C^3PPOQPh.tA‡uu;uvu tڣ^3HHG G  Ì؎N3ێu$ ҌU׋~3u~ +؎FFtI]U׋v ؎3~ǨtI]U׋v~ 3+t]U~3I]UWV~3O~ ߋNuA+Nً󤪋Œ^_]UWV~v ߋN t2Ì^_]UWVN'~3ˋv D3&:EwtIIы^_]UVllFV tvF Ftnvv F^&& GtJ&w&7 ;~^&&8=uVvv^&w&7 u^&@+^]UVF Ft8^&?t/S PvvPb+PuPPb+>l| w9l|wl㋇.w0wFVRP PvvVb+PuPVb+^]ːu uu!UF+F F+F ]UWVFVFV~ +|~ vEvv @u#FV9Fu9Vu +~ vE~ v0^F&< tOt^ &Ox&&W&؎&*^&FV^_]ːUWVvv v v v v WPvv$ Fv v VJ9~u+^_]ːUWVFFVFFV^&G BFV&G&W&&W&Gvv v S* ^&Ox*&?&&G&vS+P^_]ːUVF Fuv ~ uvv+^&w&gv SH/ t FV_v FV t)$Pvvvv vv$PvvH/^&wFV^]ːUW~3AيF O&8t3Njnj_]UW~3AOF G&8t3nj_]U VWv Ў3~ tȰCvC%tȰ"Ct_^]U VWv Ў3~ tȰCvC%tȰ"Cu_^]UNNWVv ~H+#‹+#@+ u unj^_FV]UVC!rF t t U"VvFDvFPFP/~t)F%F^F%?&&G +&G&G &G&w&Glt$& GFWFPFP/F%PF%?PF %PF%PF%PF %P60 ^&G&W&G&W&G&W~t+&G&G&7&w &O NP+PPV)FVP+PPV)^&G&W+PvvV)^&O+^]UF^ ؋^ u F]ȋFf ȋFы]U^v vw7^W]U^WNj1^W]UP >utuP ]˸V3B22UtP ^UUl3ɋI6, t&>tEuE@$W _ϋ.ll3I<;Ct ~F uNN]]UVWV6y;t@t 3_^]UWv t3I@!_]r3]sPX]s]2ˢl u#>lr <"s < r<vuטlÊUV+F|H|J|L|*y&l&lFVRuP^&w&75FV tvP^&w&7CF^&w&7 u5F^&& Gt+&7&&G&<"uF&w&7 t˸+ɡJ|L|FV^vtA uv^^NPFV t0FV&l&l0F&lJ|L|FV^v^T&&WFt uv^^^+&G&"J|&G&WJ|L|vvꚔJ|L|FV u+^]ːUWVF~ ^v &=/t&=:tO;u;t&=\u^~ F &?:u FV@;u;V tvvrf^ &F<\t^ &?+u Z|n|(&? u>Z|un|N| ^ &?-uh|F ^ &PJ  uv v |PF V >|} h||أ|^ &?.u.p|F v x|PYF V >x|} x|p|^ &=Ft==Nt@=ht+=luX|>X|u ^ &?LuF ^ &?uX|X|X|&F=Et =Gt=XuV|F F-c=v.("j|&t|&j|Mr|N| P4T|V|>p|u z|z|p|x|>X|u+X|F9|t'|F>h|t |.|| }+|j|P>:P~t">h|tF-| }+||.j|Pj|m'+PY"v=>X|t F V N F V @FVR! !!!!" !"""" !&!""!"!""!>v|t>t|unP|&G u^aF 4F^&F t<%u+F Pv v LFVF V ^ &F t>t|uP|&G tt|]ːUWV~ tr|>X|t>X|uj|&&WFVj|+>r|tj|&FFj|&FVj|>N|tF FtF+}||~|FV>r|u1~}+~ u^F&-FV؃ډFVFF\|F^vPvv|3 >p|t1vv x|+ȉN~&0GI ~FNV|^v^& tr|uZ| n|t ~u+P^_]UWV~tj|l|FVj|>X|tj|&&WFVj|j|&FF^j|>X|tF Fuu ~u uF^FVFV+96p|tx|^F&?tF;~F^F&?u>|+>h|uW_Vvv>h|tWB^_]ːUj|l|FV~gt~Gu*F>p|ux|~t >x|ux|6V|6x|v6~|6||vv,y&w~t>N|u6~|6||,y&w>N|t>x|u6~|6||,y&wj|}Z| n|tvv,y&w t+P3]ːUV>v|u=P|&OxF&7&&G&*6R|Sv@uv|t|^]ːUWV>v|uWv ~P6R|6P|6}@uv|N ~P|&OxԠ}&?&&G&*ԃ>v|uFt|^_]UWVv >v|u^"6R|6P|^&P@uv|FN t%P|&Ox^&P|&?&&G&*ʃ>v|uF t|^_]U V||~|FV+FF>}0u9p|t9T|t9z|u} 6|vv F++v>h|u"^&?-u>}0uF&PZN>}0t ~>h|t~tFi>}tFs>h|u)Vg~t ~u<>}t ~uCvvv>h|t} V!^]ː>Z|t+ P˸0P>}u>V|tXxPUWVF^ &?*uj|&7j|F a^ &?-uFF +^ &F<0|@<9<96p|u <0u}0&=9&ȃ0G&=0}މ~ F F^&7F V ^_]ːUWuF^N~G&=t&8 u~F ~F+_]ːU:sF^^&G u%+&G&G &G&W&&W&G Ì̃F ;tu;tu+]ːU^;lr >!rƇl6U^;lr *F tH~ t3ɋѸB!rKF uFV y(6VFѸB!FV y NVB!؋VN F B!rlU^;lr g3N `luYN V?!s Glt@lVW^ ' < u&l:t<u&lG+_^Pt< tl@tD! u V?!rҰ ,FV?!r t~ tѸB!~ t VV됀~ uU^;lr l t B3ɋ!rlt|^F V3FFWVfN ^ uQ^h3=vKܺ=(s+ԋN < t ;t&o ;u F^_^cP3PSQ+^@!rF tY[Xs $^l@t^ ^?u F+Ff^_^N uV@!s ul@t &?uU^ tO]UVWu?u)su3$@$uuD6uN؎ _^]AtswtBH;st4Dt L+HLƌڌ;t&u&u=t%tH;stDG t&ut،;t&u7뼋w3j;t $@@^t MtNN뙌،;t&uG3QEt+IAA&;uvurr #+ uu3YRQtWDw+JUXYZSP3RRPPh.Z[t UVW~ u8ZlVFHuSr'H6lHt;t DFV:^s0ls uڃ۱H!r钉T6l3_^]ˋN9Lt lu?r9ӎ;u9Tls&;u ١l+؎J!r ;uTlUVWN F3҃ u~UVWN A~3ی،;uuWOOPW$;uBtHs; t5r&=u5GG3;u*M=t!^Z$묋 AA+@ڋF3_Y% _^]UVW~]MUu} !W~ ]MUuE r3T~ u _^]U WVvQRPD3+¹3+™RPFV^㋿wƙ u~~G<RPFRP+SQȋF ڙRPN^暘QSQȸmЋF ǙRPN^⚘FVFVȋFڙځN^F ljF3$x&xFVDPFFHFF F>(xtFP4 t n^FV^_]ːUVA!2Zlr59Tls%Pرًl+ËشJ!Xr$HTl.ZlZlËU2~F Fu@uoxuFV$ Ǵ=!s=u tE%=u >!FD!€tN@F@tF tt 3ɴ@!>!VC!gFuuѸB!ٍV?! t~uًѸB!3ɴ@!3ɋѸB!nFN N FuF uV!F $ FV=!rؓFuF tVC!rF@u?VC!2%tF t ;lr >! NlË]2ܡl#3ɨuYZm;s+RQ3UVWzU^;l}| l@t3]>}u}UVxP FV u^&?uPS6,x6*xh RPFvv 7RP$x&x+^&8t&tu ^&8-uF|^&8tPÌRP60x6.xh .x&.x&?@(x^]ːUV^&}& ~&~ & }&w l~&u&_㋇w^&_㋇xFuF^&w FmȍDٙ3+¹3+FF+‰F^&u&9G u"&|^F&9G|u&|+^]UW~W @P[ u u RP_]U VWv Ў3~ tȰCv3Ҭ%tȰ"CtD_^]ˋNFV~ W t u y -ۃڋ3 t0<9v' uODD;rX_^]USVF uN F3؋F8ȋ^ VF uf F r ;Vwr;FvN3Җ^[]UV:sF^+^&G tS@tFF tt9Fv؋^]ːUWVv33۬< t< tP<-t<+u<9w,0rҋˋ؃X<-u؃^_]UDvv FFF RPFRPF V ‹&&WFV u RPFRPF V ‹&+F#FPvvvv{ ts RPFRPF V ‹&]+]3Dx&x"&z"ː3D>~Nx&.p"&r"x&= ux&t"&v"&x"&z"ˎx&.x"&z"ː3Dx& t >UDx&ƇFN~~ ^& u~|n^x& u_&ƇFsPRP FsP P^^RP P^RPRP #>~FsPRP FsP]3D>~x&ːUDFHF |9F}^x&]ː]ːU3D> |F= ux+&z"&x"&|"&~"x&x"&z"&p"&r"Fx&]UDWVO HzX"عvv'FVRPx&6:&68x&6Z"&6X"PPx&6"&6"Px&6"&6"+x&6"&6"PFsPh PFsPW PFsPF vvFsP4 PFsP# PFsPI ^_]ːU3DvvPPx&6"&6"P]UDFFqFF+Fҹ V‹&=%u =et=fu=ku=vuPRP FFF=r.Pvv!#RPh x& 3!#]˸PRP^!#RPFF2RP FFF=s2뺸PRP FFF=reP두BRP FFF=r;Bf^F+Ɏx&Ƈ!#%*F+Fҹ V‹&^F+Ɏx&!#FF+Fҹ V‹&F t=%uf~r^+Ɏx&Ƈ!#U3D^&& Gt&w&7^+&G&^&G& Gt&w&w^+&G&G]ːU3DF Ftvvvv]ːUDF FtiF,Fu^& &WRP2F^F&9G&& Gt&w&7^&G^&G]UDVFFvx& &  tR& & ^x& & vx+& & & & 땐^]ːUD>~㋇4zLx&P"&Ox'x&P"&&W&s&G‹&*x&6R"&6P"Fx&\"&^"=u ~ u.&h"&j"&d"&f"&`"&b"+&f"&d"^*tu(x&d"&f"&`"&b"&d"&f"R~ u*x&d"&f"&`"&b"$&d"&f"#x&d"&f"&`"&b"&d"&f"~{u ~}uF]ːUDF^*ttF= t*= t-FfF@uvM~~ ]ː]ː]ː+]UDFF>t>u>t>u>u FWF@tT^*ttHF= t= tې>u>u]ːF뿐>u>uF]ːF룐~~~+ِUDF^x& & FV uRv^x& & P^x& & ^& &  u PE^x&ğ +&G&^x&ğ &G^x&ğ &GF~d}7]ːU3D>u)^*tu~.t~#t ~&t~%u%]ˊ^*ttv(P  t+]UD3P  t?P KډFV+xRs&"&"^&&Wx&B&BBxX&X"&Z"Y&l"&n"9v vv >uvv`P RPz>uvveP RPzv vv  u>uHv vvz>@]UDFVFVF V FVFV9Vvr9FvF+Fҹ V;Vruw;FvnF+-F VFVF+-F V FVN~tS^Frn&^Frn&ӐN~t%^FsF&^FsF&Ӑ]UDFVFV^FsFF &N ~ uFV]ː3DoPPUDF=t}= u= u=u=tp=tc>uM= tHg;|2;v,x&d"&f"&`"&b"\P Pv[]&]|]pF^*tuFNvrF@t3~ t-~%u P](F= t= u鐋]U3DFs9Fu9Nuv v A]vvv v ]3DPPU3DqP^&w&wyP^&w&7|P]ːU D~tfj FFFuF V ‹&& GuFFFuF V ‹&&WFV tLvvRv  PFuF V ‹&w&7  tF-9Ft)FuF V ‹&& GumF v v -Pvvv4 F=u  ]˃~u F+F~} FF9F}HFFFFFuF V ‹&&WFV tvvRv 븋]3DP PUDvvPFP^ FP]U<Dv v vv^&w&w &w&w&w&wPFP^ FPvv^&w"&w &w&&w$&w&wPFP^ FPvv]ːUDV>unF VRP] x&x"&z";|8;v0 F%F^&F u=tE=t= t^&*P P P>uPSӐ P>uP6 F%FF V‹&? tN]U3D>u PbN~]U3D>tv v vv@Pvv.6Jz6HzvvPvv6^z6\zvvPvvv v vvBRPPvvy v v vv(RPPvvL v v vvsHzPPvv" ]ːU3D>u>uv v(]ː>u>t>u v vsِv vv]UDV^&?ux "&9|,&9v#RPx&& "FRP0 P^42 P^"PS&\PF^&P7F%F ^&F u= t,~=t= t== tr= tE\Pb몸\Pf뚸\Pr늸\Pty\Pvg\PnP\Pn?^&*PPFP^ FP= ur=t=t="u=\u^&*tWtV"P P^]ːUD# P PF%F^&F t=t=t&*͐]U3Dvvv v q]U3D$Pvv]U3D> |PP]ːF4zx&.\"&^"^*tu~u Y~ u$x&`"&b"&d"&f"&.h"&j".~ ux&`"&b"&d"&f"x&.d"&f"~{u]˃~}u]3D|zːUDvv @PFV u zPLvvvv]UDV^*tt^&tt ^&- ^&^ &*tt^ &tt ^ &- ^ &;u(F%FF %F ^&F tq^ &*tt^ &tt ^ &- ^ &^&*tt^&tt ^&- ^&+^]UD`^&tty^& u^ &tt|^ & xF9F~]ːF%FF %F N~t[^&F tN^ &?tE*tuw^&*F^ &*tut^ &*F9F|{]˃~t^&?tj^ &?u+]ːUDv v vvJFV>u5 uPvvPPx&6"&6"FV]ːU3DWV>tHzX"عvvRPx&6:&68x&6Z"&6X"P>uPPx&6"&6"Px&6"&6"x&6"&6"^_]UDFFF+Fҹ V‹&F t *ttҋF+Fҹ V‹&?uF@]ˋF]ː3DPːU:DF V‹&?u?F V‹&PF V‹&?u?F V‹&PF V‹&?u?F V‹&PF V‹&?u?F V‹&PF V‹&?u?F V‹&PF V‹&?u?F V‹&P PFP^ FPv]ːUXDEPFPF VRP F-#PF VRPFP FPFPFP[ FPPPFP^ FPv]ːU>DF V‹&?u?F V‹&PF V‹&?u?F V‹&PF V‹&?u?F V‹&PF V‹&?u?F V‹&PF V‹&?u?F V‹&PF V‹&?u?F V‹&PF V‹&?u?F V‹&PF V‹&?u?F V‹&P~PFP^ FPv]ː3DBRP ‚‹&w&7=t 3DBRP BRPBRP? ːU<Dx&FPx&"&G P:FPQsP:F9Fu.F9Fu&FV9Fu9VuFV9Fu 9Vu+x&]UDPPBRP[ BRPBRPBRPq ]ː3DBRPBRPBRPI ːU DFFFFFF V‹&F u= t'= t"=,t={t=}uN뻃~u]ː~uFF^㋇FV t@Rv P^F@F VRP&v u돐PF@F VRP ue+]UDFFFu ‚‹&&WFV thPRPvvv uPRPFu ‚‹&w&7E u Pv]ːU3Dx&>u~r Pv]UDBRP F=u}FFFu 0‹&& GtGBRPFu 0‹&w&7v u]ːBRP  ‚‹&w&76=t4]3DBRP ‚‹&w&7=tUDFFFu ‚‹&&WFV t_2RPvvv uBRPFu ‚‹&w&7M uL]3DBRP ‚‹&w&7 =t UDFCFu^& &W‹&w&7v]F^F&9Gu^& &W‹&w&7v v c =uFu^& &W‹&&WFV un^&??t)ÃVRP,vG^&؋]3DBRP$ ‚‹&w&7=tUDBRP, ‚‹&w&7{=uvFBFl^*ttR PFPvv= FV |=r~|~3v XPvFVFV F%F^&F u]ːU3D~a|~zF-`]˃~A|~ZF-@]˃~1|~9F-]˃~0u$]ː]ːU DVFFaF H;Fv`F+F ҹ VFV^&F<-t0tu&^&ȋFF+ҋFҹ V‹&FF9FrF+Fҹ V‹&FF+F ҹ V‹&F<-tݘtuӋF+F^]UJDWVF V‹&FV‹&FV‹&FFV‹&FFV‹&FFV‹&PvvvWVvvvWVxPFP^ FPv^_]ːU3D~u>t ~-u]˃>s^tt䐃>r ^tu+]ːU3D~u>t~-t ^tt]˃> s^tt䐃> r^tuXtxt+]ːU3D~u>t~-t ^tt]˃>s^tt䐃>r^tuXtxt+]ːUDFVFVF V FVvvv^FPFP~uӋ]ːUDWVF^&L&|&O& F^&G%&G^&_&F tvP^&=t^&w &w&w&w( ^&G ^_]ːUDWV^&L&|&O& FF+^&_&?)u NuFF^&G%&G^&_&F t*vP^& t~~^&_&?(uF^&w &w&w&w( ^&G ~t Pv^_]3DPvːUDV PFPv vvPFP" FFF.~u%F"ڊv+8Bt FPFv+ɊBF t!sPpȋ^㋇ZFΐFP =uF"ڊ6FFP["FP =u~t FP]^]ːUDVfPFPv vv PFP$ FFFZv+ɊB-0fFC~ u=v+ɀzXtzxu v+ɊB-0ȋF ;t FPNFv+ɀzt szXtzxu 두FP = u~t FP^]ːUDVqPFPv vv PFP8 FFF`v+ɊB-0NFD~u=v+ɀzXtzxu v+ɊB-0ȋF ;t FPFv+ɀztszXtzxu 닐FP =u~t FP^]ːUDWVPvv uvvv^&G&;Gu S(F*vvvȋFڙu;F^F&9Gu^& &W‹&w&7vv uFu^& &W‹&&WFV t!F FtRvvv uF Ft'FV,vvv^&Gڙu~& &U‹&5&]F Fu FVvvv^&G&Gڙu~& &U‹&5&]vvvvv v C ^_]UDWVFFFu ‚‹&&WFV tcvvRvv uvvv v vvFu ‚‹&w&7g^_]˃~c|&vvD PG Px&6"&6"̐vvvȋFڙu ‚‹&5&]PȋFڙu ‚‹&5&]Fu ‚‹&& Gu PNvFu ‚‹&+&G&Fu ‚‹&&GFu ‚‹&&Gvvv v vvFu ‚‹&w&7Fu ‚‹+&G&Fu  ‚‹+&G&^_]ːUDBRP Fvv FFF=s$vvF+Bҹ RP]˸BRPvvvBRP P Pv]ːUDWVxX"عvFxBX"عx&>u?~@u9x&*vx&>tB P,vx&^_]ː~tvBv P6 Pv^_]ː3D1:;x&>u7x&>u(sx&>u PBvx&>u7 PPRP u? PPRP u?H PPRP u!x&>u PBvjx&>tmxx&>tYlx&>Xx&>t1x&>t%p =tӎx&>t W!3Dx&>uːUDWVx(X"عx&BMx&>ux&>uO "x&>ux&>uQ S P5RPvF=#tPv#<^_]ːUDWVx(X"عQ5RPBRPBRPx&>B"ufdW PPvY PPv[ PPv4RPBRPBRPx&>B"tPvvF=#tPv^_]ːUDvF=tQx&9u)=)u x&7x&>t(] P vBv P Pv]ːUDWVx(X"عvF=u=,ux&>tk7vuxF&9uH=)u x&x&>u~)u&vvvBv P) vBv* PQ Pvx&^_]UDWVxX"عF F'~t#^*tt^tt ÉFx&>uYx&>uMF+Pҹ ‹؊F&F@+P‹&PRPv^_]ː~rQF+Pҹ ‹؊F&F@+P‹& PPRPv^_]ˋF+Pҹ ‹؊F&FvF@t[vZ v tL~u^*tu P,v~t^*tu^tu- F+Pҹ ‹&~t vvF^N L PRP u^R P PRPF~|x&>uPRPv3 PPRP u PRPW; PPRP u PRP1D PPRP u PRP PRPPXvvfB^_]ːUDWVx(X"عxX"عvF=t(==uJ5vBv P Pvx&0x&+x"Pv^_]ːU DF FuFVFV^FsF&^FsF&r^FsF& \^FsF& F^FsF& 0^FsF& ^FsF& F V‹&*tt<FV‹&*ttFV‹&* F V‹&*=xuFvFPvv= ^FsF&F VFV?=fu=nu=ru=tu=vu^&^FsF&F%F^&F tP<\uFF%FFV‹&=bu5~x=0u=1|=7"=au끐^&]ːUDV P  t P  ډFV.Pvv  uvv vv @PFV tSvvvPvv.Pvv RPvv+PPvv^]UDWVx(X"عxX"عFvFu~u^*tu P,vx&>u^*tt^ttF FȋF+ҋ2ҹ ‹&vFF~tjvZ v t[~smF+2ҹ ‹؊F&F@+2‹&P2RPv^_]˃~t vvF+2ҹ ‹&x&>tFF~}B^2RP uԋ^2RPP2RPP uPP2RPh ~t0vfB^_]3Dx&>u+x&>tx&>tx&>2t+2 0  x&>ux&>tx&>tf x&>uTx&>urx&>ucU DFFF V ‹&& Gu x&X"&Z":sP]FPFuF V ‹&w&7vFV uTFuF V ‹&w&7PPx&6"&6"Pd q~~vFuF V ‹&&Wx&X"&Z"x&>u xRP)vvvvdFFuF V ‹&&WFV t3PRv tx&X"&Z":sPb떋]UDWVF"FKx&>tPBvx&>uPBvvF@ux&>u&x&>)uF&9ux&F}x&>u~@u P,vx&>u~}uPBv* vBvx&>tc^_]ˎxX"عvF={u x&}~(uVx&)x&^&{F~uvF~rfP,vF+Fҹ ^F&F V‹&vv PXvMP,v^_]ˋFF+Fҹ V‹؊F&xF&9u=)u x&x&>t8FH+Fҹ V‹&}F+FV‹&vv PXv^_]UDv v vv> x&T"&V" uP&6V"&6T"vFV trvvFFV tM F%F^&*tu^&P  tvv vv@vvd]UDWVxX"عFvF(F+Pҹ ‹؊F&vFF~tj~,td^*tuX~rF+Pҹ ‹؊F&F@+P‹&PPRPv^_]ˋF+Pҹ ‹&~t vvx&>uBPRP PvvfB^_]UDFVFVPFPRv$ FV uYF Fu^&*t$<AN F%F^&*tu~t^&F<=t<:t^&F<=t<:u F%F^&*tu^&?"tPFPv!$ FV tj F%F^&*tu^&?"u.PFPv# RPvvvv ]^&F t<%u+PҎx&6V"&6T"vvPPx&6"&6"P]UDvF= uHx&>tx&>ux&>u v]ːx&>ux&>u vv]ːU3DxFV&P"&R"X"RP$x&g$xx&>u x&>t֎x&>uPBv PBvvx&>t P,v]UDvF=tQ={ux&}T']˃~(ux&)x&vBv9PwPv]ːUD= = t{=%tvv FPvvF VRP v ^&F@+Fҹ V‹&F+FV‹&1x&>u x&>tx&>ux&>u vv.FV^&= |"]UD}FV^&= t y= t"]˃0 2 &Pv?0 2 ^&Pv롎x&F&vv PvxF&o= |= ~= t=%t]U DF"Fx&F&F^&~@ux&>uvv~rIF+Fҹ V‹؊F&F@+FV‹&vv$F~ u.F+Fҹ V‹&vv$v^&*tt6^tu,F+Fҹ V‹&vvq$FFF+Fҹ V‹؊F&vF@tF+Fҹ V‹&vv$xF&]ː3Dx& x&3Dx&>u PBv%x&>ts!x&>t_UDFFVxPRvv tFPBvN~븂PvvF@uF=@t={u=}utvFvFvFFPFPv u5XFVPRvv u ]ːvvp%FPd%vBvVF쐃~h"Nڐvv0%]ːUdDVvFx&>u(x&>uFFFFPv^]˃~t~xF&9u=)u x&&^]ːvBvF*VtWtF?Px&*P&6PFP^ FPPv^]ːUDFFx&>tR~}u NyG!FvBvvF=tx&9t ={uN~~SL]UDisx&>u\x&>uMx&>u PBv3x&>uPPRP u PPRP u PPRP ux&>u PBvx&>ux&Fx&x&>tex&>vx&>t<x&>t0=tӎx&>tuxF&:]UDvF=tRP< P FV u"vBvPXPv]ː^< 4 x&]UDWVFx(X"ع>2 |>0 t+FvFx&>u)x&>uFFFFPv^_]˃~tG~=t~/uf5~uZvvvBvYPPvx&0x&+x"Pv^_]ː3DWVx(X"عRPBRPx&>t x&>uBRPv^_8^_ːUDx&B&BFVPFPvvT FVPFPvv7 FV+FFF uFFPv ]ːUDWVF"FxX"عvF^&F^*tu~ u~sF+Fҹ V‹&x&>uvvPXvJx&>t0x&>u x&>tx&>ux&>uvvvFFF+Fҹ V‹؊F&vF~t%F+Fҹ V‹&x&>uvvPXvKx&>t0x&>u x&>tx&>ux&>uvvvvv^_]ː3Dx& x&3D3x&>u PBvx&>t$! tx&>t IxU3D^&uP^&GP&w&7 ^&&W^&& Gu PNv^&G]ːUDx&>t! vFPv~tvv]UDVdžF"Fx&vFdž^&~ux&>uCx&>u7vvvvvx&^&FV^]ːrL+Fҹ V‹؊F&@+FV‹&Pvvv돐~ u ^ F~ u&x&>tx&>uԸ ϐ^*ttF ~{u|~}un~\uh+Fҹ V‹؊F&vF=\u*+Fҹ V‹؊F&V vCvvF~t!+Fҹ V‹؊F&u0+Fҹ V‹&dždždž^*tt vvF+Fҹ V‹&?}u+Fҹ V‹&?"t_tU>. t@+FV‹&=It~=-t /="t='u9+Ƃ{Ƃ"=<t=>t=At=EtNjƂ{Ƃ"Ƃ}Pv-O=-w.,S,,,,,,S,,,,,,,,,,,S,S,,S,,S,S,,,S,,,S,S,S,S,S,,,S,S,S,,,,,,,S,_H+Fҹ V‹&?\tq@+FV‹&?{tS+FV‹& u.<{u'<}u +FV‹&?}t+Ƃ{+Fѹ V‹&+Ɉ+Fѹ V‹&+Ɉ+Fѹ V‹&+Ɉ+Fѹ V‹&+Ɉ+Fѹ V‹&+ɈƂ}H+Fҹ V‹&?\u\+Ƃ{Ƃ\Ƃ"+Fѹ V‹&+Ɉ+Ƃ{Ƃ"+T+Fҹ V‹&+Ɉ+Fҹ V‹& ts<{tƆ"NƂ"ƂfB~u #P,vx&Pvv^]ːUDF"FFFF+Fҹ V‹&"vF=u^*tu~rYF+Fҹ V‹؊F&F@+FV‹&@Pvvv^&FV]ːFF+Fҹ V‹؊F&_vvFF+Fҹ V‹&"F+FV‹&vfBUDF"FvFF~uvZ v u~rXF+Fҹ V‹؊F&F@+FV‹&hPvvv^&FV]ˋFF+Fҹ V‹؊F&vF\vvF+Fҹ V‹&vfBU DWVF"F^&vFx&>uf=%uaxX"ع^&%vFFF~t~u>^*tu2F+Fҹ V‹&vvFV^_]ː~r/FF+Fҹ V‹& vvF%똃~ uF~FF+Fҹ V‹؊F&vFGU3Dtzvzx&vv6vz6tzRP( (P6vz6tzV tv P6vz6tz pzrz tWpz&;rzwCr;pzs;pz rz‹&?\upzrztzvzYx&>u^&G t+]ː]UDF"FvF= |= ~= t=%t?vv^ ^F&F V‹&FV]ːvvsFVސ3Dx&>ux&>uːx&>u x&>tx&>u x&>tˎx&>uFx&>u: Pv vPvx&>uˎx&>u ˸ U DFF"Fx&vFF^&~ux&>uBx&>u6vvvvvx&^&FV]ː~rIF+Fҹ V‹؊F&F@+FV‹&Pvvv듃~ u lF~ u&x&>tx&>uԸ ϐ^*ttF ~{uFw~}uNk~\udFF+Fҹ V‹؊F&vF=\u(FF+Fҹ V‹؊F&V vIvvF~tFF+Fҹ V‹؊F&~"t~w~tF-+Fҹ V‹&?\tvF=unFF+Fҹ V‹&{FF+FV‹&\FF+FV‹&"FF+FV‹؊F&FF+FV‹&}^*ttM vKF+Fҹ V‹&vfB~u P,vx&}vF&UDVFF"FvFP< P FV uI^F&F V‹&Pvvv^&FV^]ː^< 4 F vFFFF+Fҹ V‹&"o~"t?FH+Fҹ V‹&?\tFFvF={uPFH+Fҹ V‹&{F+FV‹&\FF+FV‹&"FH+Fҹ V‹&{F+FV‹&\FF+FV‹&"FF+FV‹؊F&FF+FV‹&},F+Fҹ V‹&{FF+FV‹&"묃~ u$0ȋF+ҋFҹ V‹&~ u$x&>u ʎx&>u뺰 붊^*ttF+Fҹ V‹& y~\uWF+Fҹ V‹؊F&vF=\ucFF+Fҹ V‹؊F&V vF tFF+Fҹ V‹؊F&FF^*tt vvvڐvFF~ti~\tF9Ft[~sTx&>tgx&>tXF+Fҹ V‹&vvvvvF+Fҹ V‹&"F@+FV‹&~rvfBUDF"FvFFFF+Fҹ V‹&"/~s6F+Fҹ V‹؊F&FvFvZ v uvvF+Fҹ V‹&"F@+FV‹&~r%+Pvvv^&FV]ːFvfBUD;vFPvvZ v t ]ː]UDWVF"F^& vF=u^&FV^_]ˎx&>u(x&>uvvvvv뺐vvxX"ع~{u 1^_]ː^*tt ^_]˃~"u ^_]ˊ^*tt ^_]˸ZPPv6U DFVFV t F%F^&*tuF Ft^&F t<%u+FFFF/^&?"tF%FFVFV$~"t+~\u F%FF%F^&F u^&?"u FsF&vv9΃x&6V"&6T"vvPPx&6"&6"PlFVFV F%F^&F t<%tPvv  t^&F t<%u +FF^FsF&^ FV&&WFV]3Dx&x&x&x&x&x&Px&2x&Px&BːU3DvvFVRP]ːU3D^+&G&G^&G &G^&G&G ^&G&G]3DPPvːUDx&F&PPvxF&]UDFBF(Pvv FV utx&>ux&>u=PBvːx&>u x&>tڸ PBvx&>ux&0x&+x"-Pv=PBv 뗸PPXv3Dx&>u/x&>ux&6.v2RPvː2RPx&>uPXvː3DP PvːU3Dx&>uvvv]^&*tt v^&?%uS S PXv]3Dx&>thx&>tYP2RPvx&>u7 PBRP t*P2RPv uBx&>tP#P2RP t2RP =vBRP =vjPBv2RP -P2 RP2RP v Kx&0x&+x"Pv?x&>u2'PBRP uPBvx&ːːU3Dx&>tF F t ^ &?u2vvx&6V"&6T"Px&6"&6"]ːF Fu8v v vvx&6V"&6T" Px&6"&6"]ːvvv v vvx&6V"&6T"1Px&6"&6"]ːUDV+Pvv ȋڸƃ ӉFVF%)FFV9Vrw9Fr^&Pv^]ːUDBRP Fx&>B"tB ‹&*tuFFF9Fs#F+Bҹ ‹&*tuҋF+F@PF+Bҹ RPBRP v BRP FFH+Bҹ ‹&?"tFFN~v&F-+Bҹ ‹&*tuыF-+Bҹ ‹&?\u&~v F-+B‹&?\tNFH+Bҹ ‹&"F+B‹&]ːUDVF"FFFFFF~uAF@+Bҹ FV F%F^&*tu^&?{utF+Bҹ ‹&ȋF+ҋFҹ V‹&FFF+Bҹ ‹&F u3={uL=}u댸PdPvv uPhPvv uPlPvv toPpPvv tTPtPvv t9PxPvv tP|Pvv tFF+Fҹ V‹&{F~u(~u"FF+Fҹ V‹&}FNlF+Fҹ V‹&vvBRP^]ːUDx&>u FV]ː(Pvv  uFF+FFFFF+Fҹ V‹&F t6=,t={t=}uNȐ~uF+Fҹ VFV맋F Fud^&F VFV F%F^&*tuv5RPP5RPnvvB=u3P5RPnvv5RPnPvv5RPn5RPvv]UDF"FFBFGFFF+ұu 0‹&&WFV uRv ;FuvvvF+ұu 0‹&w&7&v tuPvvF+ұu 0‹&w&7vvnPvvn+Pvv FVFvvvvvh F++ۋNڹ ^+FFFPvvP FV t#~t^&^FsF&뺐^&"RPvv( FF"FPF-+Fҹ VRP uF-+Fҹ V‹&PPvv uF VRPvvBRP]ːU DBRP Hx&>B"t+Bҹ ‹&?"tPP+Bҹ ‹&Fdžx&>tF+Bҹ Ğ&?;um&+BRP;RPbRPPnPPnF+Bҹ ‹& F@F9FrPF+Bҹ RPP t#F+Bҹ ‹&+BRP{RPRPPnPPnF+Bҹ ‹& F9+Bҹ RPRP7RPPnPPnPBRP]ːUDVF dždžN+Ɋ*ttu@+Bҹ ‹&?-t@+Bҹ ‹&*tu׋+Ƃ-^tt(@+Bѹ ‹&*tt^*tt%@+Bҹ ‹&*tuP^*tt%@+Bҹ ‹&*tu@+Bҹ ‹&??uP+Ƃ-?+Bҹ ‹&+Ɉ*tuÈF+Bҹ ‹& t<-ugƂPBRP^]U DVF"Fx&>u FV^]ːFFF6F+Fҹ V‹&=.ty={t=}tiFFFF+Fҹ V‹&ȋF+ҋFҹ V‹&F+FV‹&?tyFV^]N또~u~tFH+Fҹ V‹&*tueF@+FV‹&*tuBFF+FV‹& %UDVF"Fx&>B"tFFF4={u=}u~F~uFF+Fҹ V‹&{F+Bҹ ‹&*tFFu FuFF+Bҹ ‹&ȋFF+ҋFҹ V‹&FFF+Bҹ ‹&ȋFF+ҋFҹ V‹&:N뺐F+Bҹ ‹&*tuF@+B‹&*tFFuFt FF@+Bҹ ‹&*tt~uʋF+B‹&?AutF+Bҹ ‹&?\tTFF@F FtFFFB ‹&*tFFuˋF@;Fr~FF+FV‹&{=FF+Bҹ ‹&ȋFF+ҋFҹ V‹&F9FwFF+Fҹ V‹&}F+B‹&?{u"F@+B‹&?}uF\F+Bҹ ‹&?\u>F@+B‹&? u#FFF+Fҹ V‹&}F+Bҹ ‹&F tF+FV‹&vfBvvBRPx&>um^]UDF FtFV^ &FV u&F u="t ={tM=}tN>u>u+>u3&*tt#^ &%댐&?.u$^ &%^ &?u+]^ &?uѐFV]UD^ &Ftu<_u@^ F sF &^FsF&^ &Ftu<_t^&F V ]U츤DvvbPxzF^^&bFV\`$t0F%F^&?{tà VRPvvFV^FsF&?}t-vv FVF Ft+^&?t"FsF&^FsF&ΐ^&^&`tu<_u^vvvFVvv FVF Ft^&?tFsF&^FsF&ΐ^FsF&$"^FsF&^FsF&^&` t^&>xztxz\^ڋ]+]ːUDF F t ^ &?u+]ːFVFV trPRv {Ph {Fvv {PF~ }+ {PFV t {PRv u {F^F Ft ^&?u9Pv v {Ph ,|{P u6{ڋ]ː^&?u ,PSF=~FPvv{Ph FF؊{P1P  u ^F3{+FPv v F{Ph ,|{P` tXF+ۋNڹ ^^&?uAF%F5Pvv^++ۋNڹ ^ UDPvv=ىN uIvvFV t2PRv=ىN tvvvvF]ːUDF%F^&F ttu|-P<|>|RPv uB6>|6<|dP?-P\-P|P^ |PvPD|zFuF V ‹+&G&^_]ːUDFFuF V ‹&&WFVFV‹&?u^&P uFD|uF V ‹&&W<|>|FuF V ‹&&W@|B|/P<|>|RPvFF9F}]UDF~-t~/u+F]ː3D{x&3D+P1Px&6"&6"v 3DAx&3D-x&3DD|>1P6B|6@|vx&"&" uO6B|6@|@1PC1PRsPf1PRsP1Pd xRs&"&"˚B3Dx&3Dy&3Dky&3DWy&3Dy&B&By&& y&>~+PRPx&6"&6"v +Pː3DD|6B|6@|+PPz3D y&. 3Dy&3Dy&3Dy&3Dsy&3D_y&3DD|+PPP6B|6@|= y&& | u&&3Dy&3Dy&3Dy&3D y&3D"y&3D$y&3D&y&3DS3Dm(y&3D3y&B&BPjRj+PLjPx&6"&6"v 3D+P"kPx&6"&6"v 3DP^kP<| >|RP&v ȃ@ːUDF FuF F t ^ +&G&+]ˋFVFV F%F^&tu+FFFFDFV9V|9FvFV)FV FVFVFVFVF%F^&F tP[FV uFVFVF F t^ FV&&WFV]ːU3Dv ȃ@]UD^tttt P6k6k FV u+]ː6k6kvv( ㋇k]ːUDv v  FF Fu+]ːF F t ^ &?u FV]ː^&?tvv v S&v tՃF%FUD~|~$~1~t+F F t^ FV&&W+]˃F%F^&tu^&=+tt=-t FFF%FFVFV~uX^&?0uJà V‹&?xtFV‹&?Xu F또FF ~u8^&?0u/à V‹&F^&?tAF F t^ FV&&W~u}^&F<0};<1~4fV&-0 F VF%Fǐ^&F<0}<3~PFP^&-0 F VF%F^&F<0}<7~PFP^&-0 F VF%F^&Ftttt ÉFv6Rl6Pl FV tK6Rl6PlRv( F |3=.PFPF F VF%F^&?ts~tFV؃ډFVF F t^ FV&&WFV]^&Ftttt ÉFv6Rl6Pl FV t6Rl6PlRv( F }h=~`PFPF F VF%F^&?tm/&Ftttt ÉFv6Rl6Pl FV u~6Rl6PlRv( F }cFH;F}WFRPFPF)FVF%F#FV؃ډFV000000l0q0v0|0000000000000000000 000%0.080B0G0L0R0X0_0f0n0v000000000000000000000000(0-02080>0E0L0T0\0e0n0t0z00000000000000000 000 0)020<0F0L0R0Y0`0h0p0y000000000000000000000"0(0.050<0D0L0U0^0h0r0x0~0000000000000000000000"0*020;0D0N0X0]0b0h0n0u0|0000000000000000000000 0*040:0@0G0N0V0^0g0p0z000000000000000000 000$0-060=0D0L0T0]0f0m0t0|00000000000000000 000%0,040<0E0N0U0\0d0l0t0}0000000000000000 0 0 0 0# 0) 0/ 06 0= 0E 0M 0V 0_ 0f 0m 0u 0} 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0!0!0!0%!0,!03!0;!0C!0L!0U!0_!0i!0p!0w!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0"0"0"0!"0("0/"07"0?"0H"0Q"0Y"0a"0j"0s"0}"0"0"0"0"0"0"0"0"0"0"0"0"0"0"0"0#0 #0#0#0#0'#0.#05#0=#0E#0N#0W#0a#0k#0r#0y#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0$0 $0$0$0#$0+$04$0=$0G$0Q$0[$0e$0l$0s$0{$0$0$0$0$0$0$0$0$0$0$0$0$0$0$0$0%0%0%0#%0*%01%09%0A%0J%0S%0]%0g%0o%0w%0%0%0%0%0%0%0%0%0%0%0%0%0%0%0%0&0 &0&0&0%&0-&05&0>&0G&0N&0U&0]&0e&0n&0w&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0'0 '0'0'0%'0/'09'0B'0K'0U'0_'0h'0q'0{'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0(0 (0(0(0#(0-(07(0?(0G(0P(0Y(0c(0m(0u(0}(0(0(0(010101010/20g20202020430g30303040$40\40^404040%50f505050.60s60u606060670f70h70}707070D80c80e80r80808080 90L909090:0U:0:0:0;0V;0;0;0;0;0#<0d<0<0<0(=0h=0=0=0!>0c>0{>0}>0>0>0*?0,?0n?0?0?0@0@0S@0@0@0@0@0A0@A0A0A0B0 B0"B06B0zB0B0C0;C0=C0C0C0D0&D0(D0CD0D0D0 E0LE0E0E0E0E0F0F03F0wF0F0F01G0FG0HG0G0G0 H0NH0H0H0I0VI0I0I0 J0\J0^J0J0J0)K0iK0K0K0,L0NL0PL0L0L0M0M0)M0jM0M0M0M0M09N0xN0zN0N0N0O0XO0O0O0P0^P0P0P0P0!Q0dQ0Q0Q0+R0oR0R0R0R0R0R0R0;S0wS0yS0S0T0DT0T0T0T0T0T0T0U0WU0U0U0V0>V0@V0\V0V0V0V0V0 W0dW0W0W0+X0pX0X0X0X0X04Y0cY0eY0vY0Y0Y08Z0vZ0Z0Z0Z0[0H[0[0[0[0[0\0T\0\0\0 ]0]0Q]0]0]0^0a^0^0^0^0^0 _0E_0_0_0_0_0_04`0w`0`0`0`0'a0ka0a0a01b0ub0b0b0 c0"c00c0uc0c0c0Cd0Ed0_d0d0d0)e0Ke0Me0]e0e0e0f0f0bf0f0f0'g0fg0{g0MS Run-Time Library - Copyright (c) 1988, Microsoft CorpUNKNOWNABBREVATCOMMACOMMENTENTRYEQUALSFIELDINCLUDEINLINEKEYLBRACELITERALNEWLINEPREAMBLERBRACESHARPSPACESTRINGVALUEchaptermonthnumberpagesvolumeyear$Id: bibclean.c,v 1.10 1996/04/26 01:15:13 beebe Exp beebe $B0J0Q0T0Z0b0h0o0u0}00000000000H??%s "%s", line %ld: %s. ?? ?? . ????%s %s Out of memory for pattern tables"#%'(),={}BIBCLEANINIBIBCLEANINIbibclean.inistdoutPATHBIBINPUTS@# line "" %ld input byte=%ld line=%ld column=%2ld output byte=%ld line=%ld column=%2ld File positions: input [] output [] Entry Value Current\%03oUnexpected paragraph break for field ``%f''Pushback buffer overflow: characters lostOut of string memory: FAILED%%%s open file [%s]%s %% %s%s "%s", line %ld: %s. %%$Id: chek.c,v 1.2 1996/04/26 01:17:05 beebe Exp beebe $Invalid checksum for CODEN %c%c%c%c%c%c in ``%%f = %%v''??????????Invalid checksum for ISBN %s in ``%%f = %%v''Invalid checksum for ISSN %c%c%c%c-%c%c%c%c in ``%%f = %%v''JrJr.SrSr.SJS.J.S. J.IVX0000000Unexpected citation key ``%k''String length exceeds standard BibTeX limit for ``%f'' entrySuspicious year in ``%f = %v''Incomplete CODEN %c%c%c%c%c should be %c%c%c%c%c%c in ``%%f = %%v''Non-zero parenthesis level in ``%f = %v''Unexpected value in ``%f = %v''??????9ABCDEFGHIJKLMNOPQRSTUVWXYZ23456789ABCDEFGHIJKLMNOPQRSTUVWXYZ2345678 ??????????????????JanuaryjanFebruaryfebMarchmarAprilaprMaymayJunejunJulyjulAugustaugSeptembersepOctoberoctNovembernovDecemberdecJan.janFeb.febMar.marApr.aprJun.junJul.julAug.augSep.sepSept.sepOct.octNov.novDec.decJanjanFebfebMarmarApraprJunjunJuljulAugaugSepsepSeptsepOctoctNovnovDecdec$Id: do.c,v 1.5 1996/04/26 01:35:56 beebe Exp beebe $z00000000000000000000000000 00000 0$0)0-02060;0?0D0H0N0R0W0[0`0d0i0m0q0u0y0}00000000000000000000}])>'"`{[(<'"`%%%s Out of memory for pattern name [%s] -- pattern ignored Out of memory for pattern tablesValue too long for field ``%f'' # @ begins line, but brace level is not zero after entry ``@%e{%k,''Expected @name{...} after entry ``@%e{%k,''IncludePreambleString## # # Non-zero brace level after @name{...} processed. Last key = ``%k''Expected closing brace or parenthesis in entry ``@%e{%k,''Non-zero brace level after @name{...} processed. Last entry = ``@%e{%k,''Expected comma after last field ``%f''DeathesisDEAthesisInbookInBookIncollectionInCollectionInproceedingsInProceedingsMastersthesisMastersThesisPhdthesisPhdThesisTechreportTechReportNon-alphabetic character begins an entry name@entry_name too longIncludePreambleStringR 0\ 0f 0m 0t 0 0 0 0 0 0 0 0 0 0Expected "=" after field ``%f''BIBCLEANEXTBIBCLEANEXT.iniansi-standard-numberANSI-standard-numbercodenCODENieee-standard-numberIEEE-standard-numberisbnISBNiso-standard-numberISO-standard-numberissnISSNlccnLCCNmrclassMRclassmrnumberMRnumberuriURIurlURLurnURNxxansi-standard-numberxxANSI-standard-numberxxcodenxxCODENxxieee-standard-numberxxIEEE-standard-numberxxisbnxxISBNxxiso-standard-numberxxISO-standard-numberxxissnxxISSNxxmrclassxxMRclassxxmrnumberxxMRnumberxxurixxURIxxurixxURIxxurlxxURLxxurnxxURNEntry field name too longNon-alphabetic character begins a field nameoptOPT 0 0 0 0 0 0" 0' 0, 0@ 0T 0Y 0^ 0c 0h 0p 0x 0 0 0 0 0 0 0 0 0 0 0 0 0 000020H0O0V0`0j0u000000000stdin-stdinrb?? %s Ignoring open failure on file [%s] perror() says@ begins line, but brace level is not zero after entry ``@%e{%k,''Expected open brace or parenthesis. Last entry = ``@%e{%k,''Braced literal string too long for entry ``%e''rCitation key too long=: ??%s Bad line [%s] in initialization file [%s] Non-zero brace level at end-of-fileExpected open brace or parenthesis. Last entry = ``@%e{%k,''"comment"@Comment{end"Comment"Expected Scribe close delimiter `%c' [8#%03o], but found `%c' [8#%03o] instead for field ``%%f''CommentBeginStringExpected Scribe open delimiter, one of { [ ( < ' " ` for field ``%f''Expected Scribe separator "=", "/", or " " for field ``%f'' Out of memory for pattern table spaceBibTeX string too long for field ``%f''Unexpected quote usage in German-style braced stringEnd-of-file in braced stringBibTeX string too long for field ``%f''BibTeX string too long for field ``%f''BibTeX string too long for field ``%f''End-of-file in quoted stringExpected Scribe value string for field ``%f''Scribe string too long for field ``%f''Scribe number string too long for field ``%f''Expected BibTeX value string for field ``%f''??%s Bad line [%s] in initialization file [%s] },={authorchapterCODENISBNISSNmonthnumberpagesvolumeyearauthoreditormonthpagestitle""OPT""0B0LB0B0:B0B0B0lB0T B0 B0 B02 02 0 0 0  file=[%s] field=[%-12s] existing patterns discarded file=[%s] field=[%-12s] pattern=[%s] file=[%s] field=[%-12s] pattern=[%s] message[%s] \bf\em\it\rm\sf\sl\tt$Id: fix.c,v 1.4 1996/04/26 01:36:27 beebe Exp beebe $ {}" # # " # """" # " and and and "$Id: fndfil.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $ ;,|\\ ;,|$Id: isbn.c,v 1.2 1995/10/07 15:50:07 beebe Exp $0-000-190-2000-6980-70000-84990-850000-899970-9000000-9499990-95000000-98012231-550001-869571-8698001-8956822-012-192-2002-6072-70002-83172-840012-894362-9000002-9400282-95000002-99000033-013-193-2013-6333-70013-82523-850013-895243-9000013-9290313-95000003-98029644-004-194-2504-6574-75004-84704-870004-898294-9000004-9499995-015-125-2005-6905-70005-83965-850015-899965-9001655-9008507-007-047-1007-3147-50007-56397-800007-810357-9000007-90000080-0080-0980-20080-23680-700080-715180-8500080-8552980-90007580-90108181-20081-64881-700081-726681-8500081-8569081-90000081-90021182-40082-59982-700082-766182-9000082-9176982-99000082-99251783-0083-1183-20083-23383-700083-708083-8500083-8554183-90000083-90048284-0084-0784-20084-69984-700084-842084-8500084-8960085-0085-1785-20085-34185-700085-726185-8500085-8545785-90000085-90005186-0386-2786-30186-45586-700186-786186-8000186-8204586-90094186-90128987-0087-2087-41187-61187-700087-779987-8500187-8979687-98000087-99720288-0088-1988-20088-46188-700088-840288-8178588-8606589-089-090-0090-1890-20090-44990-500090-699990-7000090-7431990-80000090-80086891-091-191-2091-4891-50091-63291-700091-799891-8500291-8835691-97000091-99208392-092-592-6192-7792-80092-89192-900192-911793-093-0950-00950-47950-500950-795950-9000950-9899950-99000950-99949951-0951-1951-20951-54951-550951-889951-8900951-9498951-95000951-96448952-90952-90952-6666952-6666952-9500952-9714954-0954-0955-20955-28955-550955-616955-9000955-9151955-95000955-95444956-10956-19956-200956-266956-7000956-7205957-05957-43957-500957-685957-8500957-9699958-02958-32958-600958-656958-9000958-9285958-95001958-95343959-00959-13959-200959-216959-7000959-7033960-00960-12960-200960-433960-7000960-8499960-85000960-85203962-00962-19962-201962-474962-7001962-7646963-00963-18963-200963-892963-700963-8481963-85000963-85084965-01965-19965-207965-442967-60967-89967-900967-989967-9900967-9989967-99901967-99999968-10968-39968-400968-899968-6000968-7275969-0969-1969-26969-39969-400969-473969-8000969-8159970-05970-10970-604970-619970-91000970-91074971-06971-36971-500971-631971-8500971-8819971-91000971-91273972-0972-1972-20972-50972-550972-722972-8004972-9499972-95000972-97520973-21973-49973-550973-682973-9000973-9134973-95000973-95521974-00974-10974-200974-685974-7000974-8499974-85000974-88000975-09975-19975-345975-554975-7402975-7797975-95384975-96606976-40976-42976-600976-636976-8000976-8105977-01977-17977-200977-457977-5000977-5235978-000978-199978-2000978-2887978-30000978-31118979-400979-557979-8000979-8322980-00980-07980-200980-316980-6001980-6303981-00981-03981-200981-215981-3000981-3099982-01982-03982-100982-500983-60983-73983-800983-899983-9000983-9750983-99382983-99747984-01984-30984-400984-556984-8005984-8085987-0987-09963-09963-19963-309963-449963-5509963-5999963-75009963-78469964-09964-69964-709964-949964-9509964-9909966-209966-499966-8309966-8829966-98409966-98749968-97029968-97039971-09971-49971-609971-899971-9009971-9899971-99009971-99249973-109973-189973-7009973-9259973-97009973-99189974-09974-09974-309974-369974-5509974-5809974-75009974-75059976-19976-59976-609976-849976-9009976-9889976-99909976-99929977-009977-899977-9009977-9899977-99009977-99999978-579978-999978-9519978-9719978-99049978-99109979-19979-49979-509979-579979-8009979-8279979-90009979-90679980-09980-19980-549980-849980-9009980-9159981-09981-09982-009982-309982-8009982-8159982-99009982-99009983-859983-879983-99009983-99019987-309987-309987-5509987-5839987-88009987-88239988-09988-099903-099903-099904-099904-499904-6099904-6599904-90099904-91799908-1199908-2999908-90099908-90099911-0099911-3299911-60099911-86099912-099912-599912-6099912-7999912-90099912-90099913-099913-099914-099914-499914-5099914-5899914-90099914-92799915-099915-399915-5099915-7899915-80099915-83099916-199916-199916-3099916-3599916-70099916-70499920-099920-299920-5099920-5599920-90099920-904$Id: keybrd.c,v 1.3 1996/03/04 18:56:21 beebe Exp beebe $More? f)orwd b)ackwd e)nd q)uit r)efresh t)op \/)search   PgUp PgDn Home End More? f)orwd b)ackwd e)nd q)uit r)efresh t)op \/)search   PgUp PgDn Home End Search backward: Search forward: Search backward: !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~ !#()*+,-./:;?[]~$Id: match.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $?align-equalsauthorcheck-valuesdelete-empty-valueserror-logfile-positionfix-font-changesfix-initialsfix-namesGerman-stylehelpinit-filekeep-linebreakskeep-parbreakskeep-preamble-spaceskeep-spaceskeep-string-spacesmax-widthno-align-equalsno-check-valuesno-delete-empty-valuesno-file-positionno-fix-font-changesno-fix-initialsno-fix-namesno-German-styleno-keep-linebreaksno-keep-parbreaksno-keep-spacesno-parbreaksno-prettyprintno-print-patternsno-read-init-filesno-remove-OPT-prefixesno-scribeno-trace-file-openingno-warningsparbreaksprettyprintprint-patternsread-init-filesremove-OPT-prefixesscribetrace-file-openingversionwarningsUnrecognized option switch: %s%.*s$Id: option.c,v 1.5 1996/04/26 01:16:37 beebe Exp beebe $*0b *0* *0> *0d *0x *0 *0 *0& *0: +0N +0 +0b #+0 -+0 =+0  L+0 a+02 m+0F +0Z +0* +0d +0x +0 +0& +0: +0N ,0 ,0  &,0  8,0 2 G,0 T,0 c,0 u,0 ,0 ,0 ,0 ,08 ,0 ,0 ,0 ,0 -0 -0 -0 .-0, 6-08 no-print-patternsno-read-init-filesno-trace-file-openingprint-patternsread-init-filestrace-file-opening~/0 /0 /0 /0 /0 /0 Author: Nelson H. F. Beebe Center for Scientific Computing Department of Mathematics University of Utah Salt Lake City, UT 84112 USA Tel: +1 801 581 5254 FAX: +1 801 581 4801 Email: 200;00P00r00000000000000w%%%s cannot open error log file [%s] -- using stderr instead perror() says Usage: [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]align-equals ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile Command-line switches may be abbreviated to a unique leading prefix, and letter case is not significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag to no. For such options, the last setting determines the flag value used. This is significant when options are also specified in initialization files (see the INITIALIZATION FILES manual section). -author Display an author credit on the standard error unit, stderr. Sometimes an executable program is separated from its documentation and source code; this option provides a way to recover from that. -error-log filename Redirect stderr to the indicated file, which will then contain all of the error and warning messages. This option is provided for those systems that have difficulty redirecting stderr. -help or -? Display a help message on stderr, giving a usage description, similar to this section of the manual pages. -init-file filename Provide an explicit value pattern initialization file. It will be processed after any system-wide and job-wide initialization files found on the PATH (for VAX VMS, SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANINI, but defaults to .bibcleanrc on UNIX, and to bibclean.ini elsewhere. For further details, see the INITIALIZATION FILES manual section. -max-width nnn bibclean normally limits output line widths to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special- purpose applications may require different maximum line widths, so this option provides that capability. The number following the option name can be specified in decimal, octal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is interpreted to mean unlimited, so -max-width 0 can be used to ensure that each field/value pair appears on a single line. When -no-prettyprint requests bibclean to act as a lexical analyzer, the default line width is unlimited, unless overridden by this option. When bibclean is prettyprinting, line wrapping will be done only at a space. Consequently, a long non-blank character sequence may result in the output exceeding the requested line width. When bibclean is lexing, line wrapping is done by inserting a backslash-newline pair when the specified maximum is reached, so no line length will ever exceed the maximum. -[no-]align-equals With the positive form, align the equals sign in key/value assignments at the same column, separated by a single space from the value string. Otherwise, the equals sign follows the key, separated by a single space. Default: no. -[no-]check-values With the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g. ``year = "192"'' instead of ``year = "1992"''), and issue warnings when unexpected patterns are found. This checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can disable it with the negative form of this option. Default: yes. -[no-]delete-empty-values With the positive form, remove all field/value pairs for which the value is an empty string. This is helpful in cleaning up bibliographies generated from text editor templates. Compare this option with -[no-]remove-OPT- prefixes described below. Default: no. -[no-]file-position With the positive form, give detailed file position information in warning and error messages. Default: no. -[no-]fix-font-changes With the positive form, supply an additional brace level around font changes in titles to protect against downcasing by some BibTeX styles. Font changes that already have more than one level of braces are not modified. For example, if a title contains the Latin phrase {\em Dictyostelium Discoideum} or {\em {D}ictyostelium {D}iscoideum}, then downcasing will incorrectly convert the phrase to lower-case letters. Most BibTeX users are surprised that bracing the initial letters does not prevent the downcase action. The correct coding is {{\em Dictyostelium Discoideum}}. However, there are also legitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, bibclean will normally not supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this option to supply them. If you think that you need this option, it is strongly recommended that you apply bibclean to your bibliography file with and without -fix-font-changes, then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You will have to decide which of the two output files is the better choice, then repair the incorrect title bracing by hand. Since font changes in titles are uncommon, except for cases of the type which this option is designed to correct, it should do more good than harm. Default: no. -[no-]fix-initials With the positive form, insert a space after a period following author initials. Default: yes. -[no-]fix-names With the positive form, reorder author and editor name lists to remove commas at brace level zero, placing first names or initials before last names. Default: yes. -[no-]German-style With the positive form, interpret quote characters ["] inside braced value strings at brace level 1 according to the conventions of the TeX style file german.sty, which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, invisible hyphens, raised/lowered quotes, French guillemets, and discretionary hyphens. Recognized character combinations will be braced to prevent BibTeX from interpreting the quote as a string delimiter. Quoted strings receive no special handling from this option, and since German nouns in titles must anyway be protected from the downcasing operation of most BibTeX bibliography styles, German value strings that use the overloaded quote character can always be entered in the form "{...}", without the need to specify this option at all. Default: no. -[no-]keep-linebreaks Normally, line breaks inside value strings are collapsed into a single space, so that long value strings can later be broken to provide lines of reasonable length. With the positive form, linebreaks are preserved in value strings. If -max-width is set to zero, this preserves the original line breaks. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-parbreaks With the positive form, preserve paragraph breaks (either formfeeds, or lines containing only spaces) in value strings. Normally, paragraph breaks are collapsed into a single space. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-preamble-spaces With the positive form, preserve all whitespace in @Preamble{...} entries. Default: no. -[no-]keep-spaces With the positive form, preserve all spaces in value strings. Normally, multiple spaces are collapsed into a single space. This option can be used together with - keep-linebreaks, -keep-parbreaks, and -max-width 0 to preserve the form of value strings while still providing syntax and value checking. Spacing outside value strings remains under bibclean's control, and is not affected by this option. Default: no. -[no-]keep-string-spaces With the positive form, preserve all whitespace in @String{...} entries. Default: no. -[no-]parbreaks With the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field/value pairs. This may be useful to quickly trap runaway strings arising from mismatched delimiters. Default: yes. -[no-]prettyprint Normally, bibclean functions as a prettyprinter. However, with the negative form of this option, it acts as a lexical analyzer instead, producing a stream of lexical tokens. See the LEXICAL ANALYSIS manual section for further details. Default: yes. -[no-]print-patterns With the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used. When bibclean is compiled with native pattern-matching code (the default), these patterns are the ones that will be used in checking value strings for valid syntax, and all of them are specified in initialization files, rather than hard-coded into the program. For further details, see the INITIALIZATION FILES manual section. Default: no. -[no-]read-init-files With the negative form, suppress loading of system-, user-, and file-specific initialization files. Initializations will come only from those files explicitly given by -init-file filename options. Default: yes. -[no-]remove-OPT-prefixes With the positive form, remove the ``OPT'' prefix from each field name where the corresponding value is not an empty string. The prefix ``OPT'' must be entirely in upper-case to be recognized. This option is for bibliographies generated with the help of the GNU Emacs BibTeX editing support, which generates templates with optional fields identified by the ``OPT'' prefix. Although the function M-x bibtex-remove-OPT normally bound to the keystrokes C-c C-o does the job, users often forget, with the result that BibTeX does not recognize the field name, and ignores the value string. Compare this option with -[no-]delete-empty-values described above. Default: no. -[no-]scribe With the positive form, accept input syntax conforming to the Scribe document system. The output will be converted to conform to BibTeX syntax. See the SCRIBE BIBLIOGRAPHY FORMAT manual section for further details. Default: no. -[no-]trace-file-opening With the positive form, record in the error log file the names of all files which bibclean attempts to open. Use this option to identify where initialization files are located. Default: no. -[no-]warnings With the positive form, allow all warning messages. The negative form is not recommended since it may mask problems that should be repaired. Default: yes. -version Display the program version number on stderr. This will also include an indication of who compiled the program, the host name on which it was compiled, the time of compilation, and the type of string-value matching code selected, when that information is available to the compiler. Usage: [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]align-equals ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile }g0g0g0g0h0Vh0h0h0h0#i0Vi0i0i0i0j0bibclean Version 2.11.3 [01-May-1996] Compiled by <beebe@plot79.math.utah.edu> on May 02 1996 07:47:43 with native pattern matching j0j0j0j0j0j0j0j0j0j0j0j0k0 k0no-$Id: romtol.c,v 1.1 1995/10/07 15:51:44 beebe Exp beebe $ivxlcdmk0 2d$Id: strist.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $0123456789abcdefghijklmnopqrstuvxwyz$Id: strtol.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $k00Zl;C_FILE_INFOl0C~\\:m0:m0t0 ((((( H :   *?...(null)(null)+- # Error 0No such file or directoryArg list too longExec format errorBad file numberNot enough corePermission deniedFile existsCross-device linkInvalid argumentToo many open filesNo space left on deviceMath argumentResult too largeResource deadlock would occurUnknown erroru0v0v0v0v0v0 v0!v03v0Ev0Uv0Vv0Wv0gv0yv0zv0{v0|v0v0v0v0v0v0v0v0v0v0v0v0v0v0v0v0v0v0w0w0 w0%66666;Zx0Nm:Yw/MlTZPSTPDTpx0 x0SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDec60000000000000000000000000000000000500000000000000000000000000<>R6008 - not enough space for arguments R6000 - stack overflow R6003 - integer divide by 0 R6009 - not enough space for environment run-time error R6002 - floating point not loaded R6001 - null pointer assignment bibclean-3.07/ibmpc/dos/msc5p1/msc51bld.bat0000644000156700015670000000136606142134421017200 0ustar beebebeebe:# Compile bibclean with the Microsoft C 5.1 compiler :# [02-May-1996] cl -c -I. -AH -W3 -Gt512 bibclean.c cl -c -I. -AH -W3 -Gt512 fndfil.c cl -c -I. -AH -W3 -Gt512 romtol.c cl -c -I. -AH -W3 -Gt512 match.c cl -c -I. -AH -W3 -Gt512 chek.c cl -c -I. -AH -W3 -Gt512 do.c cl -c -I. -AH -W3 -Gt512 fix.c cl -c -I. -AH -W3 -Gt512 fndfil.c cl -c -I. -AH -W3 -Gt512 isbn.c cl -c -I. -AH -W3 -Gt512 keybrd.c cl -c -I. -AH -W3 -Gt512 match.c cl -c -I. -AH -W3 -Gt512 -DHOST=\"plot79.math.utah.edu\" -DUSER=\"beebe\" option.c cl -c -I. -AH -W3 -Gt512 romtol.c cl -c -I. -AH -W3 -Gt512 strist.c cl -c -I. -AH -W3 -Gt512 strtol.c cl -AH -Febibclean.exe -F 8000 -Gt512 s:\sys\msc5p1\lib\setargv.obj *.obj -link /noe :# exemod bibclean.exe /stack 8000 bibclean-3.07/ibmpc/dos/msc5p1/msc51pth.bat0000644000156700015670000000041705307423664017242 0ustar beebebeebe:# Set environment variables for compiling with Microsoft C 5.1 :# [23-Nov-1992] PATH=s:\sys\msc5p1\bin;h:\pc;c:\dos;c:\;c:\sunpc;f:\msdos;f:\unix;s:\usr\bin;s:\sys\bin;s:\sys\norton set LIB=s:\sys\msc5p1\lib set INCLUDE=s:\sys\msc5p1\include set TMP=h:\pc\tmp bibclean-3.07/ibmpc/dos/msc5p1/config.h0000644000156700015670000001173306141727656016534 0ustar beebebeebe/* config.h. Generated automatically by configure. */ /* WARNING: Do NOT edit the config.h file; instead, put any needed changes in custom.h, so that they can override assumptions made in the automatically-generated config.h file */ #define STDC_HEADERS 1 /* #undef _ALL_SOURCE */ /* #undef _POSIX_SOURCE */ #define HAVE_STDC 1 /* Define if you want old pattern-less string matching in .ini files */ /* #undef HAVE_OLDCODE */ /* Define if you want standard bibclean-specific pattern in .ini files */ #define HAVE_PATTERNS 1 /* Define if you want regular-expression patterns in .ini files using re_comp() */ /* #undef HAVE_RECOMP */ /* #undef HAVE_REGEXP */ #if !(defined(__cplusplus) || defined(c_plusplus)) /* Define to empty if the keyword does not work, but do nothing in */ /* C++ environment, because autoconf 2.4 gets the wrong answer from */ /* the AC_C_CONST test program under C++ compilation. */ #define const #endif /* Define if your free() requires (char*) cast instead of (void*) */ /* #undef FREE_CAST_IS_CHAR_STAR */ /* Define if your compiler recognizes \a as an alert (ASCII BEL) character */ #define HAVE_ALERT_CHAR 1 /* Library functions that we need */ #define HAVE_GETCWD 1 #define HAVE_GETWD 1 #define HAVE_STRCSPN 1 /* #undef HAVE_STRDUP */ #define HAVE_STRSPN 1 #define HAVE_STRSTR 1 #define HAVE_STRTOD 1 #define HAVE_STRTOL 1 /* Header files that we might need */ #define HAVE_CONIO_H 1 #define HAVE_CTYPE_H 1 /* #undef HAVE_DESCRIP_H */ #define HAVE_ERRNO_H 1 #define HAVE_FCNTL_H 1 /* #undef HAVE_IODEF_H */ #define HAVE_IO_H 1 /* #undef HAVE_JPIDEF_H */ #define HAVE_LIMITS_H 1 /* #undef HAVE_OSFCN_H */ /* #undef HAVE_PWD_H */ #define HAVE_REGEXP_H 1 /* #undef HAVE_REGEX_H */ /* #undef HAVE_RMS_H */ #define HAVE_SGTTY_H 1 /* #undef HAVE_SSDEF_H */ /* #undef HAVE_STAT_H */ /* #undef HAVE_STDDEF_H */ #define HAVE_STDIO_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 /* #undef HAVE_SYS_IOCTL_H */ /* #undef HAVE_SYS_PARAM_H */ #define HAVE_SYS_STAT_H 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_TERMIOS_H 1 #define HAVE_TERMIO_H 1 #define HAVE_TIME_H 1 /* #undef HAVE_TT2DEF_H */ /* #undef HAVE_TTDEF_H */ /* #undef HAVE_TYPES_H */ /* #undef HAVE_UNISTD_H */ /* #undef HAVE_UNIXIO_H */ #define RCSID(s) static char rcsid[] = s; #define OS_PCDOS 1 /* NB: some systems have Standard C header files, but compilers that do not accept function prototypes (e.g. HP HP-UX 9.0.3 /bin/cc) */ #if defined(STDC_HEADERS) && (defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)) #define ARGS(plist) plist #define VOID void #else #define ARGS(plist) () #define VOID #endif #define SCREEN_LINES 24 /*********************************************************************** The limit on file name lengths is non-standard: -------- ------------- ------------------------------------------ Name Definition System -------- ------------- ------------------------------------------ FNMAX PCC-20 MAXPATH Turbo C 2.0, C and C++ 3.0, and TopSpeed C _MAX_PATH Microsoft C 5.0, 6.0, 7.0 and TopSpeed C MAXPATHLEN Sun OS (4.2BSD), 4.3BSD, Gould UTX/32, HPUX, KCC-20, AIX (RT, RS, PS/2, 370), HP/Apollo DomainOS, DEC Alpha (OSF/1) PATH_MAX SYS V (Silicon Graphics) PATH_MAX POSIX, DEC Alpha (OSF/1) FILENAME_MAX Intel RMX, NeXT Mach, Turbo C/C++ 3.0 -------- ------------- ------------------------------------------ ***********************************************************************/ #if defined(HAVE_SYS_PARAM_H) #include #endif #if defined(HAVE_LIMITS_H) #include #endif #if defined(HAVE_STDLIB_H) #include #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN FNMAX #endif #if !defined(MAXPATHLEN) && defined(MAXPATH) #define MAXPATHLEN MAXPATH #endif #if !defined(MAXPATHLEN) && defined(_MAX_PATH) #define MAXPATHLEN _MAX_PATH #endif #if !defined(MAXPATHLEN) && defined(PATH_MAX) #define MAXPATHLEN PATH_MAX #endif #if !defined(MAXPATHLEN) && defined(FILENAME_MAX) #define MAXPATHLEN FILENAME_MAX #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN 1024 #endif #if defined(OS_PCDOS) #define SEP_COMP " ;,|" /* separators between filename components */ #define SEP_PATH "\\" /* separators between directory path and filename */ #endif #if defined(OS_UNIX) #define SEP_COMP " ;:,|" /* separators between filename components */ #define SEP_PATH "/" /* separators between directory path and filename */ #endif #include #include #if !defined(HAVE_IOCTL_PROTOTYPE) #if defined(__cplusplus) || defined(c_plusplus) /* system files should have: extern "C" {int ioctl ARGS((int, int, ...));} */ #else extern int ioctl ARGS((int, int, ...)); #endif #endif #if defined(FREE_CAST_IS_CHAR_STAR) #define FREE(p) free((char*)(p)) #else #define FREE(p) free((void*)(p)) #endif bibclean-3.07/ibmpc/dos/msc5p1/ibmclean.bat0000644000156700015670000000007406141407714017342 0ustar beebebeebedel test*.bi2 del test*.bib del test*.er2 del test*.err bibclean-3.07/toklst.h0000644000156700015670000000230010503634262013571 0ustar beebebeebe#ifndef TOKLST_H_DEFINED_ #define TOKLST_H_DEFINED_ #if defined(__APPLE__) #define token_t Token_t /* avoid conflict with type in /usr/include/bsm/audit.h */ #endif #if defined(HAVE_STDC) typedef enum token_list { TOKEN_UNKNOWN = 0, TOKEN_ABBREV = 1, /* alphabetical order, starting at 1 */ TOKEN_AT, TOKEN_COMMA, TOKEN_COMMENT, TOKEN_ENTRY, TOKEN_EQUALS, TOKEN_FIELD, TOKEN_INCLUDE, TOKEN_INLINE, TOKEN_KEY, TOKEN_LBRACE, TOKEN_LITERAL, TOKEN_NEWLINE, TOKEN_PREAMBLE, TOKEN_RBRACE, TOKEN_SHARP, TOKEN_SPACE, TOKEN_STRING, TOKEN_VALUE } token_t; #else /* K&R style */ typedef int token_t; #define TOKEN_UNKNOWN 0 #define TOKEN_ABBREV 1 /* alphabetical order, starting at 1 */ #define TOKEN_AT 2 #define TOKEN_COMMA 3 #define TOKEN_COMMENT 4 #define TOKEN_ENTRY 5 #define TOKEN_EQUALS 6 #define TOKEN_FIELD 7 #define TOKEN_INCLUDE 8 #define TOKEN_INLINE 9 #define TOKEN_KEY 10 #define TOKEN_LBRACE 11 #define TOKEN_LITERAL 12 #define TOKEN_NEWLINE 13 #define TOKEN_PREAMBLE 14 #define TOKEN_RBRACE 15 #define TOKEN_SHARP 16 #define TOKEN_SPACE 17 #define TOKEN_STRING 18 #define TOKEN_VALUE 19 #endif #endif /* TOKLST_H_DEFINED_ */ bibclean-3.07/configure0000775000156700015670000076636414162072201014036 0ustar beebebeebe#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.71 for bibclean 3.07. # # Report bugs to >. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, # Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="as_nop=: if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else \$as_nop case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ) then : else \$as_nop exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 blah=\$(echo \$(echo blah)) test x\"\$blah\" = xblah || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null then : as_have_required=yes else $as_nop as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null then : else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$as_shell as_have_required=yes if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null then : break 2 fi fi done;; esac as_found=false done IFS=$as_save_IFS if $as_found then : else $as_nop if { test -f "$SHELL" || test -f "$SHELL.exe"; } && as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$SHELL as_have_required=yes fi fi if test "x$CONFIG_SHELL" != x then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno then : printf "%s\n" "$0: This script requires a shell more modern than all" printf "%s\n" "$0: the shells that I found on your system." if test ${ZSH_VERSION+y} ; then printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." else printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and Nelson H. F. Beebe $0: about your system, including any $0: error possibly output before this message. Then install $0: a modern shell, or manually run the script under such a $0: shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_nop # --------- # Do nothing but, unlike ":", preserve the value of $?. as_fn_nop () { return $? } as_nop=as_fn_nop # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else $as_nop as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_nop # --------- # Do nothing but, unlike ":", preserve the value of $?. as_fn_nop () { return $? } as_nop=as_fn_nop # as_fn_nop # --------- # Do nothing but, unlike ":", preserve the value of $?. as_fn_nop () { return $? } as_nop=as_fn_nop # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='bibclean' PACKAGE_TARNAME='bibclean' PACKAGE_VERSION='3.07' PACKAGE_STRING='bibclean 3.07' PACKAGE_BUGREPORT='Nelson H. F. Beebe ' PACKAGE_URL='' ac_unique_file="bibclean.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_STDIO_H # include #endif #ifdef HAVE_STDLIB_H # include #endif #ifdef HAVE_STRING_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_header_c_list= ac_subst_vars='LTLIBOBJS VM LIBOBJS CPP EGREP OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC ZOO ZIP WINE UNZIP UNO TR TOUCH TEST TAR STRIP SPLINT SED RM RATS NROFF MV MKDIR MAN2HTML LS LN LINT LATEX JAR ITS4 HTMLPRETTY HTMLNCHECK GZIP GREP FLAWFINDER EXPR ETAGS DITROFF DISTILL DIFF DATE CUT CPPCHECK CP CMP CHMOD CHECKSUM CAT BIBTEX AWK AUTOHEADER AUTOCONF ANTIC target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir runstatedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -runstatedir | --runstatedir | --runstatedi | --runstated \ | --runstate | --runstat | --runsta | --runst | --runs \ | --run | --ru | --r) ac_prev=runstatedir ;; -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ | --run=* | --ru=* | --r=*) runstatedir=$ac_optarg ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures bibclean 3.07 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/bibclean] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of bibclean 3.07:";; esac cat <<\_ACEOF Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to >. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for configure.gnu first; this name is used for a wrapper for # Metaconfig's "Configure" on case-insensitive file systems. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF bibclean configure 3.07 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest.beam if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_run LINENO # ---------------------- # Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that # executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: program exited with status $ac_status" >&5 printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$3=yes" else $as_nop eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err } then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext } then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. */ #include #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main (void) { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : eval "$3=yes" else $as_nop eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR # ------------------------------------------------------------------ # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR # accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR. ac_fn_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack as_decl_name=`echo $2|sed 's/ *(.*//'` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 printf %s "checking whether $as_decl_name is declared... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` eval ac_save_FLAGS=\$$6 as_fn_append $6 " $5" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { #ifndef $as_decl_name #ifdef __cplusplus (void) $as_decl_use; #else (void) $as_decl_name; #endif #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$3=yes" else $as_nop eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext eval $6=\$ac_save_FLAGS fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_check_decl ac_configure_args_raw= for ac_arg do case $ac_arg in *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append ac_configure_args_raw " '$ac_arg'" done case $ac_configure_args_raw in *$as_nl*) ac_safe_unquote= ;; *) ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. ac_unsafe_a="$ac_unsafe_z#~" ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; esac cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by bibclean $as_me 3.07, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac printf "%s\n" "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Sanitize IFS. IFS=" "" $as_nl" # Save into config.log some information that might help in debugging. { echo printf "%s\n" "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo printf "%s\n" "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then printf "%s\n" "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then printf "%s\n" "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && printf "%s\n" "$as_me: caught signal $ac_signal" printf "%s\n" "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h printf "%s\n" "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then ac_site_files="$CONFIG_SITE" elif test "x$prefix" != xNONE; then ac_site_files="$prefix/share/config.site $prefix/etc/config.site" else ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi for ac_site_file in $ac_site_files do case $ac_site_file in #( */*) : ;; #( *) : ac_site_file=./$ac_site_file ;; esac if test -f "$ac_site_file" && test -r "$ac_site_file"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 printf "%s\n" "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 printf "%s\n" "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Test code for whether the C compiler supports C89 (global declarations) ac_c_conftest_c89_globals=' /* Does the compiler advertise C89 conformance? Do not test the value of __STDC__, because some compilers set it to 0 while being otherwise adequately conformant. */ #if !defined __STDC__ # error "Compiler does not advertise C89 conformance" #endif #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ struct buf { int x; }; struct buf * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not \xHH hex character constants. These do not provoke an error unfortunately, instead are silently treated as an "x". The following induces an error, until -std is added to get proper ANSI mode. Curiously \x00 != x always comes out true, for an array size at least. It is necessary to write \x00 == 0 to get something that is true only with -std. */ int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) '\''x'\'' int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), int, int);' # Test code for whether the C compiler supports C89 (body of main). ac_c_conftest_c89_main=' ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); ' # Test code for whether the C compiler supports C99 (global declarations) ac_c_conftest_c99_globals=' // Does the compiler advertise C99 conformance? #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L # error "Compiler does not advertise C99 conformance" #endif #include extern int puts (const char *); extern int printf (const char *, ...); extern int dprintf (int, const char *, ...); extern void *malloc (size_t); // Check varargs macros. These examples are taken from C99 6.10.3.5. // dprintf is used instead of fprintf to avoid needing to declare // FILE and stderr. #define debug(...) dprintf (2, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK #error "your preprocessor is broken" #endif #if BIG_OK #else #error "your preprocessor is broken" #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) continue; return 0; } // Check varargs and va_copy. static bool test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str = ""; int number = 0; float fnumber = 0; while (*format) { switch (*format++) { case '\''s'\'': // string str = va_arg (args_copy, const char *); break; case '\''d'\'': // int number = va_arg (args_copy, int); break; case '\''f'\'': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); return *str && number && fnumber; } ' # Test code for whether the C compiler supports C99 (body of main). ac_c_conftest_c99_main=' // Check bool. _Bool success = false; success |= (argc != 0); // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[0] = argv[0][0]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' || dynamic_array[ni.number - 1] != 543); ' # Test code for whether the C compiler supports C11 (global declarations) ac_c_conftest_c11_globals=' // Does the compiler advertise C11 conformance? #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L # error "Compiler does not advertise C11 conformance" #endif // Check _Alignas. char _Alignas (double) aligned_as_double; char _Alignas (0) no_special_alignment; extern char aligned_as_int; char _Alignas (0) _Alignas (int) aligned_as_int; // Check _Alignof. enum { int_alignment = _Alignof (int), int_array_alignment = _Alignof (int[100]), char_alignment = _Alignof (char) }; _Static_assert (0 < -_Alignof (int), "_Alignof is signed"); // Check _Noreturn. int _Noreturn does_not_return (void) { for (;;) continue; } // Check _Static_assert. struct test_static_assert { int x; _Static_assert (sizeof (int) <= sizeof (long int), "_Static_assert does not work in struct"); long int y; }; // Check UTF-8 literals. #define u8 syntax error! char const utf8_literal[] = u8"happens to be ASCII" "another string"; // Check duplicate typedefs. typedef long *long_ptr; typedef long int *long_ptr; typedef long_ptr long_ptr; // Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. struct anonymous { union { struct { int i; int j; }; struct { int k; long int l; } w; }; int m; } v1; ' # Test code for whether the C compiler supports C11 (body of main). ac_c_conftest_c11_main=' _Static_assert ((offsetof (struct anonymous, i) == offsetof (struct anonymous, w.k)), "Anonymous union alignment botch"); v1.i = 2; v1.w.k = 5; ok |= v1.i != 5; ' # Test code for whether the C compiler supports C11 (complete). ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} ${ac_c_conftest_c99_globals} ${ac_c_conftest_c11_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} ${ac_c_conftest_c99_main} ${ac_c_conftest_c11_main} return ok; } " # Test code for whether the C compiler supports C99 (complete). ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} ${ac_c_conftest_c99_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} ${ac_c_conftest_c99_main} return ok; } " # Test code for whether the C compiler supports C89 (complete). ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} return ok; } " as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" as_fn_append ac_header_c_list " utime.h utime_h HAVE_UTIME_H" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu PACKAGE_DATE="26-Dec-2021" printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h printf "%s\n" "#define PACKAGE_DATE \"$PACKAGE_DATE\"" >>confdefs.h printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h ac_config_headers="$ac_config_headers config.h:config.hin" for ac_prog in antic do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ANTIC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ANTIC"; then ac_cv_prog_ANTIC="$ANTIC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ANTIC="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ANTIC=$ac_cv_prog_ANTIC if test -n "$ANTIC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ANTIC" >&5 printf "%s\n" "$ANTIC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ANTIC" && break done for ac_prog in autoconf do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AUTOCONF+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$AUTOCONF"; then ac_cv_prog_AUTOCONF="$AUTOCONF" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AUTOCONF="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AUTOCONF=$ac_cv_prog_AUTOCONF if test -n "$AUTOCONF"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AUTOCONF" >&5 printf "%s\n" "$AUTOCONF" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$AUTOCONF" && break done for ac_prog in autoheader do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AUTOHEADER+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$AUTOHEADER"; then ac_cv_prog_AUTOHEADER="$AUTOHEADER" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AUTOHEADER="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AUTOHEADER=$ac_cv_prog_AUTOHEADER if test -n "$AUTOHEADER"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AUTOHEADER" >&5 printf "%s\n" "$AUTOHEADER" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$AUTOHEADER" && break done for ac_prog in mawk nawk gawk bawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AWK+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 printf "%s\n" "$AWK" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$AWK" && break done for ac_prog in bibtex do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_BIBTEX+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$BIBTEX"; then ac_cv_prog_BIBTEX="$BIBTEX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_BIBTEX="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi BIBTEX=$ac_cv_prog_BIBTEX if test -n "$BIBTEX"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $BIBTEX" >&5 printf "%s\n" "$BIBTEX" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$BIBTEX" && break done for ac_prog in cat do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CAT+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CAT"; then ac_cv_prog_CAT="$CAT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CAT="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CAT=$ac_cv_prog_CAT if test -n "$CAT"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CAT" >&5 printf "%s\n" "$CAT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CAT" && break done for ac_prog in checksum do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CHECKSUM+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CHECKSUM"; then ac_cv_prog_CHECKSUM="$CHECKSUM" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CHECKSUM="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CHECKSUM=$ac_cv_prog_CHECKSUM if test -n "$CHECKSUM"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CHECKSUM" >&5 printf "%s\n" "$CHECKSUM" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CHECKSUM" && break done for ac_prog in chmod do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CHMOD+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CHMOD"; then ac_cv_prog_CHMOD="$CHMOD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CHMOD="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CHMOD=$ac_cv_prog_CHMOD if test -n "$CHMOD"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CHMOD" >&5 printf "%s\n" "$CHMOD" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CHMOD" && break done for ac_prog in cmp do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CMP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CMP"; then ac_cv_prog_CMP="$CMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CMP="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CMP=$ac_cv_prog_CMP if test -n "$CMP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CMP" >&5 printf "%s\n" "$CMP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CMP" && break done # Extract the first word of "scp", so it can be a program name with args. set dummy scp; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CP"; then ac_cv_prog_CP="$CP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CP="scp -p" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CP=$ac_cv_prog_CP if test -n "$CP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CP" >&5 printf "%s\n" "$CP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi # Extract the first word of "rcp", so it can be a program name with args. set dummy rcp; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CP"; then ac_cv_prog_CP="$CP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CP="rcp -p" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CP=$ac_cv_prog_CP if test -n "$CP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CP" >&5 printf "%s\n" "$CP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi # Extract the first word of "cp", so it can be a program name with args. set dummy cp; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CP"; then ac_cv_prog_CP="$CP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CP="cp" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CP=$ac_cv_prog_CP if test -n "$CP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CP" >&5 printf "%s\n" "$CP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi for ac_prog in cppcheck do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CPPCHECK+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CPPCHECK"; then ac_cv_prog_CPPCHECK="$CPPCHECK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CPPCHECK="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CPPCHECK=$ac_cv_prog_CPPCHECK if test -n "$CPPCHECK"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPPCHECK" >&5 printf "%s\n" "$CPPCHECK" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CPPCHECK" && break done for ac_prog in cut do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CUT+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CUT"; then ac_cv_prog_CUT="$CUT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CUT="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CUT=$ac_cv_prog_CUT if test -n "$CUT"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CUT" >&5 printf "%s\n" "$CUT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CUT" && break done for ac_prog in date do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DATE+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$DATE"; then ac_cv_prog_DATE="$DATE" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DATE="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DATE=$ac_cv_prog_DATE if test -n "$DATE"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DATE" >&5 printf "%s\n" "$DATE" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$DATE" && break done for ac_prog in diff do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DIFF+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$DIFF"; then ac_cv_prog_DIFF="$DIFF" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DIFF="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DIFF=$ac_cv_prog_DIFF if test -n "$DIFF"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DIFF" >&5 printf "%s\n" "$DIFF" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$DIFF" && break done for ac_prog in distill ps2pdf do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DISTILL+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$DISTILL"; then ac_cv_prog_DISTILL="$DISTILL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DISTILL="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DISTILL=$ac_cv_prog_DISTILL if test -n "$DISTILL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DISTILL" >&5 printf "%s\n" "$DISTILL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$DISTILL" && break done for ac_prog in ditroff groff do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DITROFF+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$DITROFF"; then ac_cv_prog_DITROFF="$DITROFF" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DITROFF="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DITROFF=$ac_cv_prog_DITROFF if test -n "$DITROFF"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DITROFF" >&5 printf "%s\n" "$DITROFF" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$DITROFF" && break done for ac_prog in etags do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ETAGS+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ETAGS"; then ac_cv_prog_ETAGS="$ETAGS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ETAGS="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ETAGS=$ac_cv_prog_ETAGS if test -n "$ETAGS"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ETAGS" >&5 printf "%s\n" "$ETAGS" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ETAGS" && break done for ac_prog in expr do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_EXPR+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$EXPR"; then ac_cv_prog_EXPR="$EXPR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_EXPR="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi EXPR=$ac_cv_prog_EXPR if test -n "$EXPR"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $EXPR" >&5 printf "%s\n" "$EXPR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$EXPR" && break done for ac_prog in flawfinder do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_FLAWFINDER+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$FLAWFINDER"; then ac_cv_prog_FLAWFINDER="$FLAWFINDER" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_FLAWFINDER="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi FLAWFINDER=$ac_cv_prog_FLAWFINDER if test -n "$FLAWFINDER"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FLAWFINDER" >&5 printf "%s\n" "$FLAWFINDER" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$FLAWFINDER" && break done for ac_prog in egrep grep do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_GREP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$GREP"; then ac_cv_prog_GREP="$GREP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_GREP="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi GREP=$ac_cv_prog_GREP if test -n "$GREP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GREP" >&5 printf "%s\n" "$GREP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$GREP" && break done for ac_prog in gzip compress do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_GZIP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$GZIP"; then ac_cv_prog_GZIP="$GZIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_GZIP="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi GZIP=$ac_cv_prog_GZIP if test -n "$GZIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GZIP" >&5 printf "%s\n" "$GZIP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$GZIP" && break done for ac_prog in html-ncheck echo do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_HTMLNCHECK+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$HTMLNCHECK"; then ac_cv_prog_HTMLNCHECK="$HTMLNCHECK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_HTMLNCHECK="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi HTMLNCHECK=$ac_cv_prog_HTMLNCHECK if test -n "$HTMLNCHECK"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $HTMLNCHECK" >&5 printf "%s\n" "$HTMLNCHECK" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$HTMLNCHECK" && break done for ac_prog in html-pretty echo do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_HTMLPRETTY+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$HTMLPRETTY"; then ac_cv_prog_HTMLPRETTY="$HTMLPRETTY" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_HTMLPRETTY="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi HTMLPRETTY=$ac_cv_prog_HTMLPRETTY if test -n "$HTMLPRETTY"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $HTMLPRETTY" >&5 printf "%s\n" "$HTMLPRETTY" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$HTMLPRETTY" && break done for ac_prog in its4 do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ITS4+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ITS4"; then ac_cv_prog_ITS4="$ITS4" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ITS4="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ITS4=$ac_cv_prog_ITS4 if test -n "$ITS4"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ITS4" >&5 printf "%s\n" "$ITS4" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ITS4" && break done for ac_prog in jar tar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_JAR+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$JAR"; then ac_cv_prog_JAR="$JAR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_JAR="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi JAR=$ac_cv_prog_JAR if test -n "$JAR"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $JAR" >&5 printf "%s\n" "$JAR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$JAR" && break done for ac_prog in latex2e latex do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_LATEX+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$LATEX"; then ac_cv_prog_LATEX="$LATEX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_LATEX="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LATEX=$ac_cv_prog_LATEX if test -n "$LATEX"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LATEX" >&5 printf "%s\n" "$LATEX" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$LATEX" && break done for ac_prog in lint do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_LINT+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$LINT"; then ac_cv_prog_LINT="$LINT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_LINT="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LINT=$ac_cv_prog_LINT if test -n "$LINT"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LINT" >&5 printf "%s\n" "$LINT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$LINT" && break done for ac_prog in ln do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_LN+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$LN"; then ac_cv_prog_LN="$LN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_LN="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LN=$ac_cv_prog_LN if test -n "$LN"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LN" >&5 printf "%s\n" "$LN" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$LN" && break done for ac_prog in ls do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_LS+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$LS"; then ac_cv_prog_LS="$LS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_LS="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LS=$ac_cv_prog_LS if test -n "$LS"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LS" >&5 printf "%s\n" "$LS" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$LS" && break done for ac_prog in man2html do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_MAN2HTML+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$MAN2HTML"; then ac_cv_prog_MAN2HTML="$MAN2HTML" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_MAN2HTML="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MAN2HTML=$ac_cv_prog_MAN2HTML if test -n "$MAN2HTML"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAN2HTML" >&5 printf "%s\n" "$MAN2HTML" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$MAN2HTML" && break done for ac_prog in mkdir do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_MKDIR+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$MKDIR"; then ac_cv_prog_MKDIR="$MKDIR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_MKDIR="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MKDIR=$ac_cv_prog_MKDIR if test -n "$MKDIR"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR" >&5 printf "%s\n" "$MKDIR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$MKDIR" && break done for ac_prog in mv do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_MV+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$MV"; then ac_cv_prog_MV="$MV" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_MV="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MV=$ac_cv_prog_MV if test -n "$MV"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MV" >&5 printf "%s\n" "$MV" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$MV" && break done for ac_prog in nroff do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_NROFF+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$NROFF"; then ac_cv_prog_NROFF="$NROFF" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_NROFF="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NROFF=$ac_cv_prog_NROFF if test -n "$NROFF"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NROFF" >&5 printf "%s\n" "$NROFF" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$NROFF" && break done for ac_prog in rats do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_RATS+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$RATS"; then ac_cv_prog_RATS="$RATS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_RATS="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RATS=$ac_cv_prog_RATS if test -n "$RATS"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RATS" >&5 printf "%s\n" "$RATS" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$RATS" && break done for ac_prog in rm do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_RM+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$RM"; then ac_cv_prog_RM="$RM" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_RM="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RM=$ac_cv_prog_RM if test -n "$RM"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RM" >&5 printf "%s\n" "$RM" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$RM" && break done for ac_prog in sed do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_SED+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$SED"; then ac_cv_prog_SED="$SED" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_SED="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi SED=$ac_cv_prog_SED if test -n "$SED"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SED" >&5 printf "%s\n" "$SED" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$SED" && break done for ac_prog in splint lclint do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_SPLINT+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$SPLINT"; then ac_cv_prog_SPLINT="$SPLINT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_SPLINT="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi SPLINT=$ac_cv_prog_SPLINT if test -n "$SPLINT"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SPLINT" >&5 printf "%s\n" "$SPLINT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$SPLINT" && break done # Extract the first word of "sh", so it can be a program name with args. set dummy sh; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_SHELL+y} then : printf %s "(cached) " >&6 else $as_nop case $SHELL in [\\/]* | ?:[\\/]*) ac_cv_path_SHELL="$SHELL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_SHELL="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi SHELL=$ac_cv_path_SHELL if test -n "$SHELL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SHELL" >&5 printf "%s\n" "$SHELL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi for ac_prog in strip do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_STRIP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 printf "%s\n" "$STRIP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$STRIP" && break done for ac_prog in gtar gnutar tar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_TAR+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$TAR"; then ac_cv_prog_TAR="$TAR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_TAR="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi TAR=$ac_cv_prog_TAR if test -n "$TAR"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $TAR" >&5 printf "%s\n" "$TAR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$TAR" && break done for ac_prog in test do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_TEST+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$TEST"; then ac_cv_prog_TEST="$TEST" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_TEST="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi TEST=$ac_cv_prog_TEST if test -n "$TEST"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $TEST" >&5 printf "%s\n" "$TEST" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$TEST" && break done for ac_prog in touch do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_TOUCH+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$TOUCH"; then ac_cv_prog_TOUCH="$TOUCH" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_TOUCH="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi TOUCH=$ac_cv_prog_TOUCH if test -n "$TOUCH"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $TOUCH" >&5 printf "%s\n" "$TOUCH" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$TOUCH" && break done for ac_prog in tr do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_TR+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$TR"; then ac_cv_prog_TR="$TR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_TR="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi TR=$ac_cv_prog_TR if test -n "$TR"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $TR" >&5 printf "%s\n" "$TR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$TR" && break done for ac_prog in uno do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_UNO+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$UNO"; then ac_cv_prog_UNO="$UNO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_UNO="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi UNO=$ac_cv_prog_UNO if test -n "$UNO"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $UNO" >&5 printf "%s\n" "$UNO" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$UNO" && break done for ac_prog in unzip do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_UNZIP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$UNZIP"; then ac_cv_prog_UNZIP="$UNZIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_UNZIP="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi UNZIP=$ac_cv_prog_UNZIP if test -n "$UNZIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $UNZIP" >&5 printf "%s\n" "$UNZIP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$UNZIP" && break done for ac_prog in wine do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_WINE+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$WINE"; then ac_cv_prog_WINE="$WINE" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_WINE="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi WINE=$ac_cv_prog_WINE if test -n "$WINE"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $WINE" >&5 printf "%s\n" "$WINE" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$WINE" && break done for ac_prog in zip false do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ZIP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ZIP"; then ac_cv_prog_ZIP="$ZIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ZIP="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ZIP=$ac_cv_prog_ZIP if test -n "$ZIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ZIP" >&5 printf "%s\n" "$ZIP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ZIP" && break done for ac_prog in zoo false do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ZOO+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ZOO"; then ac_cv_prog_ZOO="$ZOO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ZOO="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ZOO=$ac_cv_prog_ZOO if test -n "$ZOO"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ZOO" >&5 printf "%s\n" "$ZOO" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ZOO" && break done { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we have NeXT system" >&5 printf %s "checking whether we have NeXT system... " >&6; } if test -d /NextAdmin then CFLAGS=-posix { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. set dummy ${ac_tool_prefix}clang; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}clang" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "clang", so it can be a program name with args. set dummy clang; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="clang" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi fi test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion -version; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 printf %s "checking whether the C compiler works... " >&6; } ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else $as_nop ac_file='' fi if test -z "$ac_file" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 printf %s "checking for C compiler default output file name... " >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 printf "%s\n" "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 printf %s "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else $as_nop { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 printf "%s\n" "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 printf %s "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 printf "%s\n" "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 printf %s "checking for suffix of object files... " >&6; } if test ${ac_cv_objext+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 printf "%s\n" "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 printf %s "checking whether the compiler supports GNU C... " >&6; } if test ${ac_cv_c_compiler_gnu+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_compiler_gnu=yes else $as_nop ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } ac_compiler_gnu=$ac_cv_c_compiler_gnu if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+y} ac_save_CFLAGS=$CFLAGS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 printf %s "checking whether $CC accepts -g... " >&6; } if test ${ac_cv_prog_cc_g+y} then : printf %s "(cached) " >&6 else $as_nop ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes else $as_nop CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 printf "%s\n" "$ac_cv_prog_cc_g" >&6; } if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi ac_prog_cc_stdc=no if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 printf %s "checking for $CC option to enable C11 features... " >&6; } if test ${ac_cv_prog_cc_c11+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c11_program _ACEOF for ac_arg in '' -std=gnu11 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c11=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c11" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c11" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c11" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } CC="$CC $ac_cv_prog_cc_c11" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 ac_prog_cc_stdc=c11 fi fi if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 printf %s "checking for $CC option to enable C99 features... " >&6; } if test ${ac_cv_prog_cc_c99+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c99_program _ACEOF for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c99=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c99" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c99" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } CC="$CC $ac_cv_prog_cc_c99" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 ac_prog_cc_stdc=c99 fi fi if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 printf %s "checking for $CC option to enable C89 features... " >&6; } if test ${ac_cv_prog_cc_c89+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c89_program _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c89" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c89" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } CC="$CC $ac_cv_prog_cc_c89" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 ac_prog_cc_stdc=c89 fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need _ALL_SOURCE" >&5 printf %s "checking whether we need _ALL_SOURCE... " >&6; } all=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct winsize w; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop all=maybe fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext if test $all = maybe ; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _ALL_SOURCE #include #include struct winsize w; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h all=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test $all = maybe ; then all=no ; fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $all" >&5 printf "%s\n" "$all" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need _POSIX_SOURCE" >&5 printf %s "checking whether we need _POSIX_SOURCE... " >&6; } posix=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat buffer; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop posix=maybe fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext if test $posix = maybe ; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _POSIX_SOURCE #include #include struct stat buffer; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h posix=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test $posix = maybe ; then posix=no ; fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $posix" >&5 printf "%s\n" "$posix" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Standard C and C++ function declarations" >&5 printf %s "checking for Standard C and C++ function declarations... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ void foo(void){} int bar(int x, float y, char z){return 1;} int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } printf "%s\n" "#define HAVE_STDC 1" >>confdefs.h else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SunOS C++ free() argument type bug" >&5 printf %s "checking for SunOS C++ free() argument type bug... " >&6; } freebug=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { void *p; p = (void*)0; free(p) ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop freebug=maybe fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext if test $freebug = maybe ; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { void *p; p = (void*)0; free((char*)p) ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : printf "%s\n" "#define FREE_CAST_IS_CHAR_STAR 1" >>confdefs.h freebug=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test $freebug = maybe ; then freebug=no ; fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $freebug" >&5 printf "%s\n" "$freebug" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Standard C alert character" >&5 printf %s "checking for Standard C alert character... " >&6; } havealert=yes if test "$cross_compiling" = yes then : havealert=no else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main(){return((int)'\a'-007);} _ACEOF if ac_fn_c_try_run "$LINENO" then : havealert=yes printf "%s\n" "#define HAVE_ALERT_CHAR 1" >>confdefs.h else $as_nop havealert=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $havealert" >&5 printf "%s\n" "$havealert" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compatibility" >&5 printf %s "checking for compatibility... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } ac_cv_header_sys_param_h=no} fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # Autoupdate added the next two lines to ensure that your configure # script's behavior did not change. They are probably safe to remove. ac_header= ac_cache= for ac_item in $ac_header_c_list do if test $ac_cache; then ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then printf "%s\n" "#define $ac_item 1" >> confdefs.h fi ac_header= ac_cache= elif test $ac_header; then ac_cache=$ac_item else ac_header=$ac_item fi done if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes then : printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 printf %s "checking for grep that handles long lines and -e... " >&6; } if test ${ac_cv_path_GREP+y} then : printf %s "(cached) " >&6 else $as_nop if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in grep ggrep do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 printf %s 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" printf "%s\n" 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 printf "%s\n" "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 printf %s "checking for egrep... " >&6; } if test ${ac_cv_path_EGREP+y} then : printf %s "(cached) " >&6 else $as_nop if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in egrep do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 printf %s 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" printf "%s\n" 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 printf "%s\n" "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" ac_fn_c_check_header_compile "$LINENO" "conio.h" "ac_cv_header_conio_h" "$ac_includes_default" if test "x$ac_cv_header_conio_h" = xyes then : printf "%s\n" "#define HAVE_CONIO_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "ctype.h" "ac_cv_header_ctype_h" "$ac_includes_default" if test "x$ac_cv_header_ctype_h" = xyes then : printf "%s\n" "#define HAVE_CTYPE_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "descrip.h" "ac_cv_header_descrip_h" "$ac_includes_default" if test "x$ac_cv_header_descrip_h" = xyes then : printf "%s\n" "#define HAVE_DESCRIP_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "errno.h" "ac_cv_header_errno_h" "$ac_includes_default" if test "x$ac_cv_header_errno_h" = xyes then : printf "%s\n" "#define HAVE_ERRNO_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$ac_includes_default" if test "x$ac_cv_header_fcntl_h" = xyes then : printf "%s\n" "#define HAVE_FCNTL_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "io.h" "ac_cv_header_io_h" "$ac_includes_default" if test "x$ac_cv_header_io_h" = xyes then : printf "%s\n" "#define HAVE_IO_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "iodef.h" "ac_cv_header_iodef_h" "$ac_includes_default" if test "x$ac_cv_header_iodef_h" = xyes then : printf "%s\n" "#define HAVE_IODEF_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "jpidef.h" "ac_cv_header_jpidef_h" "$ac_includes_default" if test "x$ac_cv_header_jpidef_h" = xyes then : printf "%s\n" "#define HAVE_JPIDEF_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "libc.h" "ac_cv_header_libc_h" "$ac_includes_default" if test "x$ac_cv_header_libc_h" = xyes then : printf "%s\n" "#define HAVE_LIBC_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "limits.h" "ac_cv_header_limits_h" "$ac_includes_default" if test "x$ac_cv_header_limits_h" = xyes then : printf "%s\n" "#define HAVE_LIMITS_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "osfcn.h" "ac_cv_header_osfcn_h" "$ac_includes_default" if test "x$ac_cv_header_osfcn_h" = xyes then : printf "%s\n" "#define HAVE_OSFCN_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "pwd.h" "ac_cv_header_pwd_h" "$ac_includes_default" if test "x$ac_cv_header_pwd_h" = xyes then : printf "%s\n" "#define HAVE_PWD_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "regex.h" "ac_cv_header_regex_h" "$ac_includes_default" if test "x$ac_cv_header_regex_h" = xyes then : printf "%s\n" "#define HAVE_REGEX_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "regexp.h" "ac_cv_header_regexp_h" "$ac_includes_default" if test "x$ac_cv_header_regexp_h" = xyes then : printf "%s\n" "#define HAVE_REGEXP_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "rms.h" "ac_cv_header_rms_h" "$ac_includes_default" if test "x$ac_cv_header_rms_h" = xyes then : printf "%s\n" "#define HAVE_RMS_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "sgtty.h" "ac_cv_header_sgtty_h" "$ac_includes_default" if test "x$ac_cv_header_sgtty_h" = xyes then : printf "%s\n" "#define HAVE_SGTTY_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "ssdef.h" "ac_cv_header_ssdef_h" "$ac_includes_default" if test "x$ac_cv_header_ssdef_h" = xyes then : printf "%s\n" "#define HAVE_SSDEF_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "stat.h" "ac_cv_header_stat_h" "$ac_includes_default" if test "x$ac_cv_header_stat_h" = xyes then : printf "%s\n" "#define HAVE_STAT_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "stdbool.h" "ac_cv_header_stdbool_h" "$ac_includes_default" if test "x$ac_cv_header_stdbool_h" = xyes then : printf "%s\n" "#define HAVE_STDBOOL_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "stdio.h" "ac_cv_header_stdio_h" "$ac_includes_default" if test "x$ac_cv_header_stdio_h" = xyes then : printf "%s\n" "#define HAVE_STDIO_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes then : printf "%s\n" "#define HAVE_STDLIB_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "string.h" "ac_cv_header_string_h" "$ac_includes_default" if test "x$ac_cv_header_string_h" = xyes then : printf "%s\n" "#define HAVE_STRING_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "sys/ioctl.h" "ac_cv_header_sys_ioctl_h" "$ac_includes_default" if test "x$ac_cv_header_sys_ioctl_h" = xyes then : printf "%s\n" "#define HAVE_SYS_IOCTL_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default" if test "x$ac_cv_header_sys_param_h" = xyes then : printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "sys/stat.h" "ac_cv_header_sys_stat_h" "$ac_includes_default" if test "x$ac_cv_header_sys_stat_h" = xyes then : printf "%s\n" "#define HAVE_SYS_STAT_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default" if test "x$ac_cv_header_sys_types_h" = xyes then : printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "termio.h" "ac_cv_header_termio_h" "$ac_includes_default" if test "x$ac_cv_header_termio_h" = xyes then : printf "%s\n" "#define HAVE_TERMIO_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "termios.h" "ac_cv_header_termios_h" "$ac_includes_default" if test "x$ac_cv_header_termios_h" = xyes then : printf "%s\n" "#define HAVE_TERMIOS_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "time.h" "ac_cv_header_time_h" "$ac_includes_default" if test "x$ac_cv_header_time_h" = xyes then : printf "%s\n" "#define HAVE_TIME_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "tt2def.h" "ac_cv_header_tt2def_h" "$ac_includes_default" if test "x$ac_cv_header_tt2def_h" = xyes then : printf "%s\n" "#define HAVE_TT2DEF_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "ttdef.h" "ac_cv_header_ttdef_h" "$ac_includes_default" if test "x$ac_cv_header_ttdef_h" = xyes then : printf "%s\n" "#define HAVE_TTDEF_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "types.h" "ac_cv_header_types_h" "$ac_includes_default" if test "x$ac_cv_header_types_h" = xyes then : printf "%s\n" "#define HAVE_TYPES_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" if test "x$ac_cv_header_unistd_h" = xyes then : printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "unixio.h" "ac_cv_header_unixio_h" "$ac_includes_default" if test "x$ac_cv_header_unixio_h" = xyes then : printf "%s\n" "#define HAVE_UNIXIO_H 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 printf %s "checking for an ANSI C-conforming const... " >&6; } if test ${ac_cv_c_const+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { #ifndef __cplusplus /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* IBM XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this sort of thing. */ char tx; char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* IBM XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_c_const=yes else $as_nop ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 printf "%s\n" "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then printf "%s\n" "#define const /**/" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" if test "x$ac_cv_type_mode_t" = xyes then : else $as_nop printf "%s\n" "#define mode_t int" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes then : else $as_nop printf "%s\n" "#define size_t unsigned int" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 printf %s "checking whether struct tm is in sys/time.h or time.h... " >&6; } if test ${ac_cv_struct_tm+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main (void) { struct tm tm; int *p = &tm.tm_sec; return !p; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_struct_tm=time.h else $as_nop ac_cv_struct_tm=sys/time.h fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 printf "%s\n" "$ac_cv_struct_tm" >&6; } if test $ac_cv_struct_tm = sys/time.h; then printf "%s\n" "#define TM_IN_SYS_TIME 1" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "#include " if test "x$ac_cv_type__Bool" = xyes then : printf "%s\n" "#define HAVE__BOOL 1" >>confdefs.h fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 printf %s "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test ${ac_cv_prog_CPP+y} then : printf %s "(cached) " >&6 else $as_nop # Double quotes because $CC needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO" then : else $as_nop # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO" then : # Broken: success on invalid input. continue else $as_nop # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 printf "%s\n" "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO" then : else $as_nop # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO" then : # Broken: success on invalid input. continue else $as_nop # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : else $as_nop { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test $ac_cv_c_compiler_gnu = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5 printf %s "checking whether $CC needs -traditional... " >&6; } if test ${ac_cv_prog_gcc_traditional+y} then : printf %s "(cached) " >&6 else $as_nop ac_pattern="Autoconf.*'x'" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Autoconf TIOCGETP _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1 then : ac_cv_prog_gcc_traditional=yes else $as_nop ac_cv_prog_gcc_traditional=no fi rm -rf conftest* if test $ac_cv_prog_gcc_traditional = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Autoconf TCGETA _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1 then : ac_cv_prog_gcc_traditional=yes fi rm -rf conftest* fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gcc_traditional" >&5 printf "%s\n" "$ac_cv_prog_gcc_traditional" >&6; } if test $ac_cv_prog_gcc_traditional = yes; then CC="$CC -traditional" fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether utime accepts a null argument" >&5 printf %s "checking whether utime accepts a null argument... " >&6; } if test ${ac_cv_func_utime_null+y} then : printf %s "(cached) " >&6 else $as_nop rm -f conftest.data; >conftest.data # Sequent interprets utime(file, 0) to mean use start of epoch. Wrong. if test "$cross_compiling" = yes then : ac_cv_func_utime_null='guessing yes' else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default #ifdef HAVE_UTIME_H # include #endif int main (void) { struct stat s, t; return ! (stat ("conftest.data", &s) == 0 && utime ("conftest.data", 0) == 0 && stat ("conftest.data", &t) == 0 && t.st_mtime >= s.st_mtime && t.st_mtime - s.st_mtime < 120); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : ac_cv_func_utime_null=yes else $as_nop ac_cv_func_utime_null=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_utime_null" >&5 printf "%s\n" "$ac_cv_func_utime_null" >&6; } if test "x$ac_cv_func_utime_null" != xno; then ac_cv_func_utime_null=yes printf "%s\n" "#define HAVE_UTIME_NULL 1" >>confdefs.h fi rm -f conftest.data ac_fn_c_check_func "$LINENO" "strtol" "ac_cv_func_strtol" if test "x$ac_cv_func_strtol" = xyes then : printf "%s\n" "#define HAVE_STRTOL 1" >>confdefs.h else $as_nop case " $LIBOBJS " in *" strtol.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strtol.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "getcwd" "ac_cv_func_getcwd" if test "x$ac_cv_func_getcwd" = xyes then : printf "%s\n" "#define HAVE_GETCWD 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "getpwnam" "ac_cv_func_getpwnam" if test "x$ac_cv_func_getpwnam" = xyes then : printf "%s\n" "#define HAVE_GETPWNAM 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "getwd" "ac_cv_func_getwd" if test "x$ac_cv_func_getwd" = xyes then : printf "%s\n" "#define HAVE_GETWD 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "re_comp" "ac_cv_func_re_comp" if test "x$ac_cv_func_re_comp" = xyes then : printf "%s\n" "#define HAVE_RE_COMP 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "strcspn" "ac_cv_func_strcspn" if test "x$ac_cv_func_strcspn" = xyes then : printf "%s\n" "#define HAVE_STRCSPN 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "strdup" "ac_cv_func_strdup" if test "x$ac_cv_func_strdup" = xyes then : printf "%s\n" "#define HAVE_STRDUP 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "strspn" "ac_cv_func_strspn" if test "x$ac_cv_func_strspn" = xyes then : printf "%s\n" "#define HAVE_STRSPN 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "strstr" "ac_cv_func_strstr" if test "x$ac_cv_func_strstr" = xyes then : printf "%s\n" "#define HAVE_STRSTR 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "strtod" "ac_cv_func_strtod" if test "x$ac_cv_func_strtod" = xyes then : printf "%s\n" "#define HAVE_STRTOD 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "strtol" "ac_cv_func_strtol" if test "x$ac_cv_func_strtol" = xyes then : printf "%s\n" "#define HAVE_STRTOL 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } if test ${ac_cv_c_undeclared_builtin_options+y} then : printf %s "(cached) " >&6 else $as_nop ac_save_CFLAGS=$CFLAGS ac_cv_c_undeclared_builtin_options='cannot detect' for ac_arg in '' -fno-builtin; do CFLAGS="$ac_save_CFLAGS $ac_arg" # This test program should *not* compile successfully. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { (void) strchr; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop # This test program should compile successfully. # No library function is consistently available on # freestanding implementations, so test against a dummy # declaration. Include always-available headers on the # off chance that they somehow elicit warnings. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include extern void ac_decl (int, char *); int main (void) { (void) ac_decl (0, (char *) 0); (void) ac_decl; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : if test x"$ac_arg" = x then : ac_cv_c_undeclared_builtin_options='none needed' else $as_nop ac_cv_c_undeclared_builtin_options=$ac_arg fi break fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done CFLAGS=$ac_save_CFLAGS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5 printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; } case $ac_cv_c_undeclared_builtin_options in #( 'cannot detect') : { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot make $CC report undeclared builtins See \`config.log' for more details" "$LINENO" 5; } ;; #( 'none needed') : ac_c_undeclared_builtin_options='' ;; #( *) : ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;; esac ac_fn_check_decl "$LINENO" "fileno" "ac_cv_have_decl_fileno" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_fileno" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_FILENO $ac_have_decl" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for isatty" >&5 printf %s "checking for isatty... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined(HAVE_STDIO_H) #include #endif #if defined(HAVE_STDLIB_H) #include #endif #if defined(HAVE_UNISTD_H) #include #endif int main (void) { (void)isatty(1) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } printf "%s\n" "#define HAVE_ISATTY 1" >>confdefs.h else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ioctl prototype" >&5 printf %s "checking for ioctl prototype... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "ioctl[ ]*[(]" >/dev/null 2>&1 then : printf "%s\n" "#define HAVE_IOCTL_PROTOTYPE 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi rm -rf conftest* if test "$CC" = "lcc" then CFLAGS="`echo $CFLAGS | sed -e 's/-g //g' -e 's/ -g$//g' -e 's/^-g$//'`" fi ac_fn_c_check_header_compile "$LINENO" "sys/pledge.h" "ac_cv_header_sys_pledge_h" "$ac_includes_default" if test "x$ac_cv_header_sys_pledge_h" = xyes then : printf "%s\n" "#define HAVE_SYS_PLEDGE_H 1" >>confdefs.h fi test "x$ac_cv_exeext" = "x.exe" && VM='$(WINE)' # Old autoconf style: AC_CONFIG_FILES([Makefile]) cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else $as_nop as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by bibclean $as_me 3.07, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_headers="$ac_config_headers" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration headers: $config_headers Report bugs to >." _ACEOF ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ bibclean config.status 3.07 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" Copyright (C) 2021 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) printf "%s\n" "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX printf "%s\n" "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.hin" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :H $CONFIG_HEADERS " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 printf "%s\n" "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 printf "%s\n" "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi # New autoconf style: ac_config_files="$ac_config_files Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else $as_nop as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by bibclean $as_me 3.07, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Report bugs to >." _ACEOF ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ bibclean config.status 3.07 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" Copyright (C) 2021 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) printf "%s\n" "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX printf "%s\n" "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.hin" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 printf "%s\n" "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 printf "%s\n" "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi bibclean-3.07/bibclean.c0000644000156700015670000016005513251477541014027 0ustar beebebeebe/*********************************************************************** @C-file{ author = "Nelson H. F. Beebe", version = "3.03", date = "11 March 2018", time = "12:14:56 MDT", filename = "bibclean.c", address = "University of Utah Department of Mathematics, 110 LCB 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA", telephone = "+1 801 581 5254", FAX = "+1 801 581 4148", URL = "http://www.math.utah.edu/~beebe", checksum = "56265 2241 7416 57389", email = "beebe@math.utah.edu, beebe@acm.org, beebe@computer.org (Internet)", codetable = "ISO/ASCII", keywords = "prettyprint, bibliography", license = "GNU General Public License, version 2 or later", supported = "yes", docstring = {Prettyprint one or more BibTeX files on stdin, or specified files, to stdout, and check the brace balance and value strings as well. Text outside @item-type{...} BibTeX entries is passed through verbatim, except that trailing blanks are trimmed. BibTeX items are formatted into a consistent structure with one field = "value" pair per line, and the initial @ and trailing right brace in column 1. Long values are split at a blank and continued onto the next line with leading indentation. Tabs are expanded into blank strings; their use is discouraged because they inhibit portability, and can suffer corruption in electronic mail. Braced strings are converted to quoted strings. This format facilitates the later application of simple filters to process the text for extraction of items, and also is the one expected by the GNU Emacs BibTeX support functions. Usage: bibclean [ -author ] [ -copyleft ] [ -copyright ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -ISBN-file filename ] [ -keyword-file filename ] [ -max-width # ] [ -[no-]align-equals ] [ -[no-]check-values ] [ -[no-]debug-match-failures] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-math ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks] [ -[no-]keep-parbreaks] [ -[no-]keep-preamble-spaces] [ -[no-]keep-spaces] [ -[no-]keep-string-spaces] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-ISBN-table ] [ -[no-]print-keyword-table ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -version ] [ -[no-]warnings ] outfile Letter case is NOT significant in command-line option names. The checksum field above contains a CRC-16 checksum as the first value, followed by the equivalent of the standard UNIX wc (word count) utility output of lines, words, and characters. This is produced by Robert Solovay's checksum utility.}, } ***********************************************************************/ /*********************************************************************** The formatting should perhaps be user-customizable; that is left for future work. The major goal has been to convert entries to the standard form @item-type{citation-key, field = "value", field = "value", ... } while applying heuristics to permit early error detection. If the input file is syntactically correct for BibTeX and LaTeX, this is reasonably easy. If the file has errors, error recovery is attempted, but cannot be guaranteed to be successful; however, the output file, and stderr, will contain an error message that should localize the error to a single entry where a human can find it more easily than a computer can. To facilitate error checking and recovery, the following conditions are used: @ starts a BibTeX entry only if it occurs at brace level 0 and is not preceded by non-blank text on the same line. " is significant only at brace level 1. {} are expected to occur at @-level 1 or higher } at beginning of line ends a BibTeX entry Backslashes preceding these 4 characters remove their special significance. These heuristics are needed to deal with legal value strings like {..."...} "...{..}..." and will flag as errors strings like "...{..." "...}..." The special treatment of @ and } at beginning of line attempts to detect errors in entries before the rest of the file is swallowed up in an attempt to complete an unclosed entry. The output bibliography file should be processed by BibTeX and the LaTeX without errors before discarding the original bibliography file. We do our own output and line buffering here so as to be able to trim trailing blanks, and output data in rather large blocks for efficiency (in filters of this type, I/O accounts for the bulk of the processing, so large output buffers offer significant performance gains). The -scribe option enables recognition of the extended syntax used by the Scribe document formatting system, originally developed by Brian Reid at Carnegie-Mellon University, and now marketed by Unilogic, Ltd. I have followed the syntax description in the Scribe Introductory User's Manual, 3rd Edition, May 1980. Scribe extensions include these features: (1) Letter case is not significant in field names and entry names, but case is preserved in value strings. (2) In field/value pairs, the field and value may be separated by one of three characters: =, /, or space. Space may optionally surround these separators. (3) Value delimiters are any of these seven pairs: { } [ ] ( ) < > ' ' " " ` ` (4) Value delimiters may not be nested, even when with the first four delimiter pairs, nested balanced delimiters would be unambiguous. (5) Delimiters can be omitted around values that contain only letters, digits, sharp (#), ampersand (&), period (.), and percent (%). (6) A literal at-sign (@) is represented by doubled at-signs (@@). (7) Bibliography entries begin with @name, as for BibTeX, but any of the seven Scribe value delimiters may be used to surround the field/value pairs. As in (4), nested delimiters are forbidden. (8) Arbitrary space may separate entry names from the following delimiters. (9) @Comment is a special command whose delimited value is discared. As in (4), nested delimiters are forbidden. (10) The special form @Begin{comment} ... @End{comment} permits encapsulating arbitrary text containing any characters or delimiters, other than "@End{comment}". Any of the seven delimiters may be used around the word comment following the @begin or @end. (11) The "key" field name is required in each bibliography entry. (12) Semicolons may be used in place of "and" in author lists (undocumented, but observed in practice). Because of this loose syntax, error detection heuristics are less effective, and consequently, Scribe mode input is not the default; it must be explicitly requested. ***********************************************************************/ /*********************************************************************** We want this code to be compilable with C++ compilers as well as C compilers, in order to get better compile-time checking. We therefore must declare all function headers in both old Kernighan-and-Ritchie style, as well as in new Standard C and C++ style. Although Standard C also allows K&R style, C++ does not. For functions with no argument, we just use VOID which expands to either void, or nothing. Older C++ compilers predefined the symbol c_plusplus, but that was changed to __cplusplus in 1989 to conform to ISO/ANSI Standard C conventions; we allow either. It is regrettable that the C preprocessor language is not powerful enough to transparently handle the generation of either style of function declaration. ***********************************************************************/ #include #include "xtypes.h" #include "xstdbool.h" #include "xstdlib.h" #include "xstring.h" #include "xctype.h" #include "xlimits.h" #include "xstat.h" #include "xunistd.h" RCSID("$Id: bibclean.c,v 1.21 2014/04/03 18:00:15 beebe Exp beebe $") #include "ch.h" #include "delete.h" #include "isbn.h" #include "keybrd.h" #include "yesorno.h" #include "match.h" /* must come AFTER yesorno.h */ #include "typedefs.h" /* must come AFTER match.h */ #if defined(sun386) /* Sun386i run-time library bug in fputs(): only first line in s is written! */ #define fputs(s,fp) fwrite(s,1,strlen(s),fp) #endif #if !defined(BIBCLEAN_INI) #define BIBCLEAN_INI "BIBCLEANINI" /* environment variable */ #endif #if !defined(BIBCLEAN_ISBN) #define BIBCLEAN_ISBN "BIBCLEANISBN" /* environment variable */ #endif #if !defined(BIBCLEAN_KEY) #define BIBCLEAN_KEY "BIBCLEANKEY" /* environment variable */ #endif #define EMPTY_STRING(s) (s[0] = (char)'\0', s) /* for return (EMPTY_STRING(foo))*/ #if !defined(EXIT_FAILURE) #define EXIT_FAILURE 1 #endif #if !defined(EXIT_SUCCESS) #define EXIT_SUCCESS 0 #endif #ifdef FOPEN #undef FOPEN #endif #if defined(__SUNCC__) #define FOPEN(a,b) fopen((char*)(a),(char*)(b)) /* bug workaround: wrong type for fopen() args with SunOS 4.1.2 CC */ #else /* NOT defined(__SUNCC__) */ #define FOPEN(a,b) fopen((a),(b)) #endif /* defined(__SUNCC__) */ #define GETDEFAULT(envname,default) \ ((getenv(envname) != (char *)NULL) ? getenv(envname) : default) #define FIELD_INDENTATION 2 /* how far to indent "field = value," pairs */ int field_indentation = FIELD_INDENTATION; #define KEEP_PREAMBLE_SPACES() ((in_preamble == YES) && \ (keep_preamble_spaces == YES)) #define KEEP_STRING_SPACES() ((in_string == YES) && \ (keep_string_spaces == YES)) #define LAST_SCREEN_LINE (-2) /* used in opt_help() and do_more() */ #if defined(MAX) #undef MAX #endif #define MAX(a,b) (((a) > (b)) ? (a) : (b)) #if !defined(MAX_BUFFER) #define MAX_BUFFER 8192 /* output buffer size; this does NOT */ /* limit lengths of input lines */ #endif /* !defined(MAX_BUFFER) */ #if !defined(MAX_WIDTH) #define MAX_WIDTH 72L /* length of longest entry line; */ /* non-BibTeX entry text is output verbatim */ #endif /* !defined(MAX_WIDTH) */ #if !defined(MAX_FIELD_LENGTH) #define MAX_FIELD_LENGTH 12 /* "howpublished" */ #endif /* !defined(MAX_FIELD_LENGTH) */ #include "pattern.h" #include "token.h" #if !defined(SCREEN_LINES) #if OS_PCDOS #define SCREEN_LINES 25 /* set 0 to disable pausing in out_lines() */ #else /* NOT OS_PCDOS */ #define SCREEN_LINES 24 /* set 0 to disable pausing in out_lines() */ #endif /* OS_PCDOS */ #endif /* !defined(SCREEN_LINES) */ #define VALUE_INDENTATION (FIELD_INDENTATION + MAX_FIELD_LENGTH + 3) /* where item values are output; allow space */ /* for "< = >" */ int value_indentation = VALUE_INDENTATION; /* Operating system-specific customizations. */ #if OS_UNIX #if !defined(INITDIR) #define INITDIR ("/usr/local/share/" PACKAGE_NAME "/" PACKAGE_VERSION) #endif #if !defined(INITFILE) #define INITFILE (PACKAGE_NAME ".ini") #endif #if !defined(ISBNFILE) #define ISBNFILE (PACKAGE_NAME ".isbn") #endif #if !defined(KEYWORDFILE) #define KEYWORDFILE (PACKAGE_NAME ".key") #endif #if !defined(USERPATH) #define USERPATH "BIBINPUTS" #endif #endif /* OS_UNIX */ #if OS_VAXVMS #if !defined(INITFILE) #define INITFILE (PACKAGE_NAME ".ini") #endif #if !defined(USERPATH) #define USERPATH "BIBINPUTS" #endif #endif /* OS_VAXVMS */ /* For any that are undefined, default to values suitable for OS_PCDOS. */ #if !defined(INITFILE) #define INITFILE (PACKAGE_NAME ".ini") #endif #if !defined(ISBNFILE) #define ISBNFILE (PACKAGE_NAME ".isb") #endif #if !defined(KEYWORDFILE) #define KEYWORDFILE (PACKAGE_NAME ".key") #endif #if !defined(USERPATH) #define USERPATH "BIBINPUTS" #endif #include "toklst.h" static const char *type_name[] = { /* must be indexable by TOKEN_xxx */ "UNKNOWN", "ABBREV", /* alphabetical order, starting at 1 */ "AT", "COMMA", "COMMENT", "ENTRY", "EQUALS", "FIELD", "INCLUDE", "INLINE", "KEY", "LBRACE", "LITERAL", "NEWLINE", "PREAMBLE", "RBRACE", "SHARP", "SPACE", "STRING", "VALUE", }; /* Almost all functions except main() are static to overcome limitations on external name lengths in ISO/ANSI Standard C. Please keep them in ALPHABETICAL order, ignoring letter case. */ void do_initfile ARGS((/*@null@*/ const char *pathlist_, /*@null@*/ const char *name_)); YESorNO apply_function ARGS((const char *option_, OPTION_FUNCTION_ENTRY table_[])); void check_inodes ARGS((void)); void error ARGS((const char *msg_)); /*@noreturn@*/ void fatal ARGS((const char *msg_)); void free_pattern_table_entries ARGS((PATTERN_TABLE *pt_)); int get_char ARGS((void)); int get_linebreak ARGS((void)); int get_next_non_blank ARGS((void)); bool is_idchar ARGS((int c_)); int main ARGS((int argc_, char *argv_[])); void out_at ARGS((void)); void out_c ARGS((int c_)); void out_flush ARGS((void)); void out_lines ARGS((FILE *fpout_,const char *lines_[], YESorNO pausing_)); void out_newline ARGS((void)); void out_s ARGS((const char *s_)); void out_spaces ARGS((int n_)); void out_string ARGS((token_t type_, const char *token_)); void out_token ARGS((token_t type_, const char *token_)); void out_with_error ARGS((const char *s_,const char *msg_)); void out_with_parbreak_error ARGS((char *s_)); void put_back ARGS((int c_)); /*@null@*/ FILE *tfopen ARGS((const char *filename_, const char *mode_)); void warning ARGS((const char *msg_)); extern void do_args ARGS((int argc_, char *argv_[])); extern void do_files ARGS((int argc_, char *argv_[])); extern void do_keyword_file ARGS((/*@null@*/ const char *pathlist_, /*@null@*/ const char *name_)); extern void do_other ARGS((void)); extern void do_preargs ARGS((int argc_, char *argv_[])); extern void do_print_keyword_table ARGS((void)); extern void finish ARGS((int status)); extern void free_keyword_table ARGS((void)); extern void keyword_initialize ARGS((void)); static long bcolumn ARGS((void)); static void bdelc ARGS((void)); static void bdelline ARGS((void)); static void bflush ARGS((void)); static int blastc ARGS((void)); static int bpeekc ARGS((int c_)); static void bputc ARGS((int c_)); static char *format ARGS((const char *msg_)); static void free_match_pattern ARGS((MATCH_PATTERN *mp_)); static void free_pattern_table ARGS((PATTERN_TABLE *pt_)); static void free_tables ARGS((void)); static void init_tables ARGS((void)); #if (defined(HAVE_REGEXP) || defined(HAVE_RECOMP)) static int match_regexp ARGS((const char *string_,const char *pattern_)); #endif /* (defined(HAVE_REGEXP) || defined(HAVE_RECOMP)) */ static void out_error ARGS((FILE *fpout_, const char *s_)); static void out_input_position ARGS((IO_PAIR *pair_)); static void out_number ARGS((long n_)); static void out_position ARGS((FILE *fpout_,const char *msg_, IO_PAIR *the_location_)); static void out_status ARGS((FILE *fpout_, const char *prefix_)); static void out_verbatim ARGS((const char *token_)); static void resync ARGS((void)); extern char *Strdup ARGS((const char *s_)); static size_t word_length ARGS((const char *s_)); static void wrap_line ARGS((void)); /**********************************************************************/ /* Please keep these (mostly) global variables in ALPHABETICAL order, ignoring letter case. */ YESorNO align_equals = NO; /* NO: left-adjust equals */ int at_level = 0; /* @ nesting level */ int brace_level = 0; /* curly brace nesting level */ YESorNO brace_math = YES; /* NO: leave mixed-case math text untouched */ YESorNO brace_protect = YES; /* NO: leave mixed-case title words untouched */ static size_t buf_length = 0; /* length of buf[] */ static char buf[MAX_BUFFER+1]; /* 1 extra slot for trailing NUL */ YESorNO check_values = YES; /* NO: suppress value checks */ int close_char = EOF; /* BibTeX entry closing; may */ /* be right paren or brace */ char current_entry_name[MAX_TOKEN_SIZE]; /* entry name */ char current_field[MAX_TOKEN_SIZE]; /* field name */ char current_key[MAX_TOKEN_SIZE]; /* citation key */ char current_value[MAX_TOKEN_SIZE]; /* string value */ YESorNO delete_empty_values = NO; /* YES: delete empty values */ YESorNO discard_next_comma = NO; /* YES: deleting field/value */ YESorNO eofile = NO; /* set to YES at end-of-file */ static int error_count = 0; /* used to decide exit code */ /* normalizing names */ YESorNO fix_accents = NO; /* repair accent bracing? */ YESorNO fix_braces = NO; /* normalize bracing? */ YESorNO fix_degrees = NO; /* normalize author academic degrees? */ YESorNO fix_font_changes = NO; /* brace {\em E. Coli}? */ YESorNO fix_initials = YES; /* reformat A.U. Thor? */ YESorNO fix_math = NO; /* reformat math mode? */ YESorNO fix_names = YES; /* reformat Bach, P.D.Q? */ #if defined(DEBUG) static FILE *fpdebug; /* for debugging */ #endif /* defined(DEBUG) */ FILE *fpin; /* input file pointer */ char *initialization_file_name; YESorNO in_preamble = NO; /* YES: in @Preamble{...} */ YESorNO in_string = NO; /* YES: in @String{...} */ YESorNO in_value = NO; /* YES: in value string */ YESorNO is_parbreak = NO; /* get_next_non_blank() sets */ YESorNO keep_linebreaks = NO; /* YES: keep linebreaks in values */ YESorNO keep_parbreaks = NO; /* YES: keep parbreaks in values */ YESorNO keep_preamble_spaces = NO; /* YES: keep spaces in @Preamble{} */ YESorNO keep_spaces = NO; /* YES: keep spaces in values */ YESorNO keep_string_spaces = NO; /* YES: keep spaces in @String{} */ long max_width; int non_white_chars = 0; /* used to test for legal @ */ static IO_PAIR original_file; /* used in error messages */ YESorNO parbreaks = YES; /* NO: parbreaks forbidden */ /* in strings and entries */ YESorNO prettyprint = YES; /* NO: do lexical analysis */ YESorNO print_ISBN_table = NO; /* YES: print ISBN table */ YESorNO print_keyword_table = NO; /* YES: print keyword table */ YESorNO print_patterns = NO; /* YES: print value patterns */ char *program_name; /* set to argv[0] */ PATTERN_NAMES pattern_names[MAX_PATTERN_NAMES] = { {"chapter", (PATTERN_TABLE*)NULL}, {"month", (PATTERN_TABLE*)NULL}, {"number", (PATTERN_TABLE*)NULL}, {"pages", (PATTERN_TABLE*)NULL}, {"volume", (PATTERN_TABLE*)NULL}, {"year", (PATTERN_TABLE*)NULL}, #if _AIX370 {NULL, NULL}, /* CC compiler cannot handle correct cast */ #else /* NOT _AIX370 */ {(CONST char*)NULL, (PATTERN_TABLE*)NULL}, /* entry terminator */ #endif /* _AIX370 */ /* remaining slots may be initialized at run time */ }; #define MAX_PUSHBACK 10 static int n_pushback = 0; static int pushback_buffer[MAX_PUSHBACK]; YESorNO read_initialization_files = YES;/* -[no-]read-init-files sets */ YESorNO remove_OPT_prefixes = NO; /* YES: remove OPT prefix */ YESorNO rflag = NO; /* YES: resynchronizing */ int screen_lines = SCREEN_LINES;/* kbopen() and out_lines() reset */ YESorNO Scribe = NO; /* Scribe format input */ /* In all memory models from tiny to huge, Turbo C on IBM PC DOS will not permit more than 64KB of global constant data. Therefore, we use a global scratch array shared between the functions fix_title(), format(), get_Scribe_identifier_string() and get_Scribe_delimited_string(). The code has been carefully examined to make sure that this space is not overwritten while still in use. Oh, the pain of the Intel segmented memory architecture! */ char shared_string[MAX_TOKEN_SIZE]; YESorNO show_file_position = NO; /* messages usually brief */ FILE *stdlog; /* usually stderr */ YESorNO stdlog_on_stdout = YES; /* NO for separate files */ #if OS_PCDOS unsigned int _stklen = 0xF000; /* stack size for Turbo C */ #endif /* OS_PCDOS */ IO_PAIR token_start; /* used for # line output */ IO_PAIR the_entry; /* used in error messages */ IO_PAIR the_file; /* used in error messages */ IO_PAIR the_value; /* used in error messages */ YESorNO trace_file_opening = NO; /* -[no-]trace-file-opening sets */ YESorNO warnings = YES; /* NO: suppress warnings */ YESorNO wrapping = YES; /* NO: verbatim output */ /**********************************************************************/ #if defined(HAVE_STDC) YESorNO apply_function(const char *option, OPTION_FUNCTION_ENTRY table[]) #else /* K&R style */ YESorNO apply_function(option,table) const char *option; OPTION_FUNCTION_ENTRY table[]; #endif { /* return YES if function matching option was invoked, otherwise NO */ int k; /* index into table[] */ size_t n; n = strlen(option); /* all chars of option[] will be examined */ for (k = 0; table[k].name != (const char*)NULL; ++k) { if (strnicmp(option,table[k].name,MAX(n,table[k].min_match)) == 0) { table[k].function(); return (YES); } } return (NO); } /* Version 2.10: the new functions bcolumn(), bdelc(), bdelline(), bflush(), blastc(), bpeekc(), and bputc() provide a clean, simple, and sole interface to the output buffer, buf[]. Code evolution prior to version 2.10 had made out_c() too complex, and these routines simplified it substantially. We no longer treat horizontal tab specially: all characters except newline increment the column position by 1, because doing otherwise complicates updating the column position on a DELETE_CHAR operation. */ static long bcolumn(VOID) /* return output column position */ { return (the_file.output.column_position); } static void bdelc(VOID) /* delete last character in buf[] */ { if (buf_length > 0) { the_file.output.byte_position--; switch (buf[--buf_length]) { case '\n': the_file.output.column_position = the_file.output.last_column_position; break; default: the_file.output.column_position--; break; } } } static void bdelline(VOID) /* delete last line in buf[] */ { while ((buf_length > 0) && (buf[buf_length-1] != '\n')) bdelc(); } static void bflush(VOID) /* output all but last line in buf[] */ { size_t k; /* Output all but the last line of buf[], unless there is only one line, in which case, output all of buf[]. We need to keep a complete line available in case of a DELETE_LINE operation. */ buf[buf_length] = '\0'; /* terminate buffer string */ for (k = buf_length; (k > 0) && (buf[k-1] != '\n'); --k) continue; /* find preceding newline */ if (buf[k] == '\n') /* then found last line */ { buf[k] = (char)'\0'; /* zap the newline */ (void)fputs(buf,stdout); /* output up to the zapped newline */ (void)fputc('\n',stdout); /* output the zapped newline */ buf_length = strlen(&buf[k+1]); (void)Memmove(buf,&buf[k+1],buf_length); /* move last line to start of buf[] */ /* NB: overlap requires Memmove(), */ /* NOT strcpy()! */ } else if (buf_length > 0) /* have only one line in buf[] */ { (void)fputs(buf,stdout); buf_length = 0; } (void)fflush(stdout); /* synchronize for error messages */ } static int blastc(VOID) /* return last character in buffer, or EOF */ { return (buf_length > 0) ? (int)buf[buf_length-1] : EOF; } #if defined(HAVE_STDC) static int /* return char at (negative) offset */ bpeekc(int offset) /* from end of buf[], or EOF */ #else /* K&R style */ static int bpeekc(offset) int offset; #endif { int k; k = (int)buf_length - 1 + offset; return ((0 <= k) && (k < (int)buf_length)) ? (int)buf[k] : EOF; } #if defined(HAVE_STDC) static void bputc(int c) /* output c to buf[] */ #else /* K&R style */ static void bputc(c) int c; #endif { if (buf_length >= MAX_BUFFER) bflush(); switch (c) { case '\n': the_file.output.column_position = 0; the_file.output.line_number++; break; default: the_file.output.column_position++; break; } the_file.output.byte_position++; buf[buf_length++] = (char)c; } #if defined(HAVE_STDC) void /* issue an error message */ error(const char *msg) /* default provided if this is NULL */ #else /* K&R style */ void error(msg) /* issue an error message */ const char *msg; /* default provided if this is NULL */ #endif { char *p; error_count++; out_flush(); /* flush all buffered output */ at_level = 0; /* suppress further messages */ /* until we have resynchronized */ original_file = the_file; /* save for error messages */ p = format(msg); (void)fprintf(stdlog,"%s \"%s\", line %ld: %s.\n", ERROR_PREFIX, the_file.input.filename, the_value.input.line_number, p); /* UNIX-style error message for */ /* GNU Emacs M-x compile to parse */ out_status(stdlog, ERROR_PREFIX); (void)fflush(stdlog); out_error(stdout, "\n"); /* make sure we start a newline */ out_error(stdout, ERROR_PREFIX); out_error(stdout, " "); out_error(stdout, p); out_error(stdout, ".\n"); out_status(stdout, ERROR_PREFIX); out_flush(); /* flush all buffered output */ } /*@noreturn@*/ #if defined(HAVE_STDC) void /* issue an error message and die */ fatal(const char *msg) #else /* K&R style */ void fatal(msg) /* issue an error message and die */ const char *msg; #endif { (void)fprintf(stdlog,"%s %s\n", ERROR_PREFIX, msg); exit(EXIT_FAILURE); } #if defined(HAVE_STDC) void finish(int status) #else /* K&R style */ void finish(status) int status; #endif { if (status == EXIT_SUCCESS) free_tables(); exit(status); } #if defined(HAVE_STDC) static char * format(const char *msg) #else /* K&R style */ static char * format(msg) const char *msg; #endif { /* expand %f, %k, %v, and %% items in msg[], return pointer to new copy */ size_t k; size_t len; size_t n; static char newmsg[MAX_TOKEN_SIZE]; /* static because we return it */ /* Shorthand for writable copy of msg[] with guaranteed NUL termination */ #define ORIGINAL_MESSAGE (strncpy(newmsg,msg,MAX_TOKEN_SIZE), \ newmsg[MAX_TOKEN_SIZE-1] = (char)'\0', newmsg) for (k = 0, n = 0; msg[k] != '\0'; ++k) { switch (msg[k]) { case '%': /* expect valid format item */ switch (msg[++k]) { case 'e': /* %e -> current_entry_name */ len = strlen(current_entry_name); if ((n + len) >= MAX_TOKEN) return (ORIGINAL_MESSAGE); /* no space left*/ (void)strcpy(&newmsg[n],current_entry_name); n += len; break; case 'f': /* %f -> current_field */ len = strlen(current_field); if ((n + len) >= MAX_TOKEN) return (ORIGINAL_MESSAGE); /* no space left*/ (void)strcpy(&newmsg[n],current_field); n += len; break; case 'k': /* %k -> current_key */ len = strlen(current_key); if ((n + len) >= MAX_TOKEN) return (ORIGINAL_MESSAGE); /* no space left*/ (void)strcpy(&newmsg[n],current_key); n += len; break; case 'v': /* %v -> current_value */ len = strlen(current_value); if ((n + len) >= MAX_TOKEN) return (ORIGINAL_MESSAGE); /* no space left*/ (void)strcpy(&newmsg[n],current_value); n += len; break; case '%': /* %% -> % */ newmsg[n++] = (char)'%'; break; default: return (ORIGINAL_MESSAGE); /* no space left*/ } break; default: if (n >= MAX_TOKEN) return (ORIGINAL_MESSAGE); /* no space left*/ newmsg[n++] = msg[k]; break; } } newmsg[n] = (char)'\0'; /* terminate string */ return (newmsg); } #if defined(HAVE_STDC) static void free_match_pattern(MATCH_PATTERN *mp) #else /* K&R style */ static void free_match_pattern(mp) MATCH_PATTERN *mp; #endif { if (mp->pattern != (const char*)NULL) { /* NB: (void*) cast fails with Sun C++ */ FREE(mp->pattern); mp->pattern = (const char*)NULL; } if (mp->message != (const char*)NULL) { FREE(mp->message); mp->message = (const char*)NULL; } } #if defined(HAVE_STDC) static void free_pattern_table(PATTERN_TABLE *pt) #else /* K&R style */ static void free_pattern_table(pt) PATTERN_TABLE *pt; #endif { if (pt != (PATTERN_TABLE*)NULL) { free_pattern_table_entries(pt); FREE(pt); } } #if defined(HAVE_STDC) void free_pattern_table_entries(PATTERN_TABLE *pt) #else /* K&R style */ void free_pattern_table_entries(pt) PATTERN_TABLE *pt; #endif { if (pt != (PATTERN_TABLE*)NULL) { int k; for (k = 0; k < pt->current_size; ++k) free_match_pattern(&(pt->patterns[k])); if (pt->patterns != (MATCH_PATTERN*)NULL) { FREE(pt->patterns); pt->patterns = (MATCH_PATTERN*)NULL; } pt->current_size = 0; pt->maximum_size = 0; } } static void free_tables(VOID) { int k; /* index into pattern_names[] */ for (k = 0; pattern_names[k].name != (const char*)NULL; ++k) { /* free dynamic part */ free_pattern_table(pattern_names[k].table); FREE(pattern_names[k].name); pattern_names[k].name = (const char*)NULL; pattern_names[k].table = (PATTERN_TABLE *)NULL; } free_keyword_table(); free_ISBN_table(); } int get_char(VOID) /* all input is read through this function */ { int c; /* NB: this is the ONLY place where the input file is read! */ c = (n_pushback > 0) ? pushback_buffer[--n_pushback] : getc(fpin); the_file.input.byte_position++; /* Adjust global status and position values */ if (c == EOF) eofile = YES; else if (c == (int)'\n') { the_file.input.line_number++; the_file.input.last_column_position = the_file.input.column_position; the_file.input.column_position = 0L; non_white_chars = 0; } else if (!Isspace(c)) { the_file.input.last_column_position = the_file.input.column_position; the_file.input.column_position++; non_white_chars++; } else if (c == (int)'\t') { the_file.input.last_column_position = the_file.input.column_position; the_file.input.column_position = (the_file.input.column_position + 8L) & ~07L; } else { the_file.input.last_column_position = the_file.input.column_position; the_file.input.column_position++; } if (c == (int)'{') brace_level++; else if (c == (int)'}') brace_level--; #if defined(DEBUG) if (fpdebug) (void)fprintf(fpdebug,"[%c] %5ld %4ld %2ld\n", c, the_file.input.byte_position, the_file.input.line_number, the_file.input.column_position); #endif /* defined(DEBUG) */ return (c); } int get_linebreak(VOID) { int c; int ns = 0; while (((c = get_char(), c) != EOF) && Isspace(c)) { switch (c) { case '\n': return (LINEBREAK); case '\f': return (PARBREAK); default: ns++; break; } } put_back(c); return ((ns > 0) ? (int)' ' : (int)'\0'); } int get_next_non_blank(VOID) { int c; if (keep_spaces == YES) c = get_char(); else if (KEEP_PREAMBLE_SPACES()) c = get_char(); else if (KEEP_STRING_SPACES()) c = get_char(); else { int ff = 0; int nl = 0; is_parbreak = NO; while (((c = get_char(), c) != EOF) && Isspace(c)) { switch (c) { case '\n': if ((in_value == YES) && (keep_linebreaks == YES)) return (LINEBREAK); nl++; break; case '\f': if ((in_value == YES) && (keep_linebreaks == YES)) return (c); ff++; break; default: break; } } is_parbreak = ((nl > 1) || (ff > 0)) ? YES : NO; } return (c); } static void init_tables(VOID) { int k; /* Convert statically-allocated table data to dynamic data */ for (k = 0; (k < MAX_PATTERN_NAMES) && (pattern_names[k].name != (const char *)NULL); ++k) { pattern_names[k].name = (const char *)Strdup(pattern_names[k].name); pattern_names[k].table = (PATTERN_TABLE*)malloc(sizeof(PATTERN_TABLE)); if (pattern_names[k].table == (PATTERN_TABLE*)NULL) fatal("Out of memory for pattern tables"); pattern_names[k].table->patterns = (MATCH_PATTERN*)NULL; pattern_names[k].table->current_size = 0; pattern_names[k].table->maximum_size = 0; } } #if defined(HAVE_STDC) bool is_idchar(int c) #else /* K&R style */ bool is_idchar(c) int c; #endif { /* ** See LaTeX User's Guide and Reference Manual, Section B.1.3, for ** the rules of what characters can be used in a BibTeX word ** value. Section 30 of BibTeX initializes id_class[] to match ** this, but curiously, allows ASCII DELete (0x3f), as an ** identifier character. That irregularity was reported to Oren ** Patashnik on [06-Oct-1990]. We disallow it here. ** ** The Scribe syntax is simpler: letters, digits, ., #, &, and %. */ return ((Scribe == YES) ? ((Isalnum(c) || (c == (int)'.') || (c == (int)'#') || (c == (int)'&') || (c == (int)'%') ) ? YES : NO) : ((Isgraph(c) && !IN_SET("\"#%'(),={}", c)) ? YES : NO) ); } #if defined(HAVE_STDC) int main(int argc, char *argv[]) #else /* K&R style */ int main(argc,argv) int argc; char *argv[]; #endif { const char *initfile; const char *ISBN_file; const char *keyword_file; const char *initdir; static char alt_initdir[MAXPATHLEN + 1] = { '\0' }; #if defined(vms) extern char **cmd_lin(); argv = cmd_lin( "", &argc, argv ); #endif /* defined(vms) */ #if defined(HAVE_SYS_PLEDGE_H) /* ** NB: The prototype for pledge() comes from , but to ** avoid possible conflicts with other O/Ses that might have ** declare that name for another purpose, the configure script ** actually checks for , which is more likely to be ** the characteristic signature that OpenBSD-style pledge() is ** supported. ** ** The pledge() call, introduced in OpenBSD 5.9, and available in ** later OpenBSD releases, enumerates classes of operations that ** the program is permitted to do. It can be issued more than ** once, but only to further reduce privileges. Its use here is ** part of being a good software citizen on OpenBSD, and any other ** operating systems that adopt the pledge mechanism for improving ** system security. ** ** The privileges required by bibclean are: ** ** cpath -- create new files ** ** rpath -- read files and directories ** ** stdio -- read and write stdio channels ** ** tty -- allow read/write/ioctl on /dev/tty ** (needed for --help option) ** ** wpath -- write files ** */ if (pledge("cpath rpath stdio tty wpath", NULL) != 0) { perror("pledge system call failed: perror says"); exit(EXIT_FAILURE); } #endif initfile = GETDEFAULT(BIBCLEAN_INI,INITFILE); ISBN_file = GETDEFAULT(BIBCLEAN_ISBN,ISBNFILE); keyword_file = GETDEFAULT(BIBCLEAN_KEY,KEYWORDFILE); max_width = 0L; /* reset later */ stdlog = stderr; /* cannot assign at compile time on some systems */ program_name = argv[0]; initdir = INITDIR; if (alt_initdir[0] != '\0') /* have value from previous call */ initdir = (const char *)&alt_initdir[0]; else if ( (program_name != (char *)NULL) && (program_name[0] != '\0') ) { /* ** If INITDIR does not exist, then convert a path to the ** executable of, say, "/usr/local/bin/bibclean" to a ** directory name "/usr/local/bin/", then append to it a ** relative path to find the installation tree location, ** "/usr/local/share/bibclean/VERSION" */ struct stat stat_buf; if ( (stat(initdir, &stat_buf) == 0) && (S_ISDIR(stat_buf.st_mode)) ) { /* success: initdir exists */ } else /* replace likely-relocated initdir at run-time */ { char * p; (void)strncpy(alt_initdir, program_name, sizeof(alt_initdir)); p = strrchr(alt_initdir, '/'); if (p == (char *)NULL) alt_initdir[0] = '\0'; else { *p = '\0'; /* terminate string at last directory */ p = strrchr(alt_initdir, '/'); if (p != (char *)NULL) { p = strrchr(alt_initdir, '/'); if (p != (char *)NULL) { const char *q; p[1] = '\0'; /* terminate string at second last directory */ q = ("share/" PACKAGE_NAME "/" PACKAGE_VERSION "/"); (void)strncat(alt_initdir, q, sizeof(alt_initdir) - strlen(q)); initdir = &alt_initdir[0]; if ( (stat(initdir, &stat_buf) == 0) && (S_ISDIR(stat_buf.st_mode)) ) { /* then relocated directory exists*/ } else (void)fprintf(stderr, "WARNING: relocated %s installation directory does not exist\n", initdir); } } } } } check_inodes(); #if defined(DEBUG) fpdebug = tfopen((PACKAGE_NAME ".dbg"), "w"); #endif /* defined(DEBUG) */ the_file.input.filename = ""; the_file.output.filename = "stdout"; init_tables(); do_preargs(argc,argv);/* some args must be handled BEFORE initializations */ if (read_initialization_files == YES) do_initfile(initdir,initfile); if (read_initialization_files == YES) do_initfile(getenv(USERPATH),initfile); ISBN_initialize(); keyword_initialize(); if (read_initialization_files == YES) { do_ISBN_file(initdir,ISBN_file); do_ISBN_file(getenv(USERPATH),ISBN_file); do_keyword_file(initdir,keyword_file); do_keyword_file(getenv(USERPATH),keyword_file); } do_args(argc,argv); if (print_ISBN_table == YES) { do_print_ISBN_table(); finish(EXIT_SUCCESS); } if (print_keyword_table == YES) { do_print_keyword_table(); finish(EXIT_SUCCESS); } if (max_width == 0L) /* set default value */ max_width = (prettyprint == YES) ? MAX_WIDTH : LONG_MAX; do_files(argc,argv); finish((error_count > 0) ? EXIT_FAILURE : EXIT_SUCCESS); } #if defined(HAVE_STDC) void Memmove(void *target, const void *source, size_t n) #else /* K&R style */ void Memmove(target, source, n) void *target; const void *source; size_t n; #endif { char *t; const char *s; t = (char *)target; s = (const char*)source; if ((s <= t) && (t < (s + n))) /* overlap: need right to left copy */ { for (t = ((char *)target) + n - 1, s = ((const char*)source) + n - 1; n > 0; --n) *t-- = *s--; } else /* left to right copy is okay */ { for ( ; n > 0; --n) *t++ = *s++; } } #if defined(HAVE_STDC) void* Memset(void *target, int value, size_t n) #else /* K&R style */ void* Memset(target, value, n) void *target; int value; size_t n; #endif { unsigned char *t = (unsigned char*)target; for ( ; n > 0; --n) *t++ = (unsigned char)value; return (target); } void out_at(VOID) { out_string(TOKEN_AT, "@"); } #if defined(HAVE_STDC) void /* output c, but trim trailing blanks, */ out_c(int c) /* and output buffer if c == EOF */ #else /* K&R style */ void out_c(c) /* output c, but trim trailing blanks, */ int c; /* and output buffer if c == EOF */ #endif { int offset; switch (c) { case EOF: bflush(); /* output all but last line of buf[], */ break; /* or all of it, if on last line */ case DELETE_CHAR: /* delete last character from buf[] */ bdelc(); break; case DELETE_LINE: /* delete current line in buf[] */ bdelline(); break; case DELETE_WHITESPACE: /* discarding trailing whitespace */ for (c = blastc(); Isspace(c); c = blastc()) bdelc(); /* If the buffer ends with an inline comment, then we just deleted the newline that terminates it, so we must put it back */ for (offset = 0; ((c = bpeekc(offset)) != EOF) && (c != (int)'\n'); offset--) { if (c == BIBTEX_COMMENT_PREFIX) { bputc((int)'\n'); break; } } break; #if OS_PCDOS case '\r': /* Because we open the input file in binary mode to prevent Ctl-Z causing an end-of-file, we see Ctl-M characters. We simply discard them here: they will be supplied by the run-time library when the following newline is written, since the output files are opened in text mode. */ break; #endif case '\n': for (c = blastc(); (c == (int)' ') || (c == (int)'\t'); c = blastc()) bdelc(); /* discard trailing horizontal space */ bputc((int)'\n'); break; default: /* output ordinary character, with possible line wrap */ if ((prettyprint == NO) && (c != (int)'\n')) { /* need to line wrap? */ if (bcolumn() > (max_width - 2)) { /* yes, output backslash-newline pair */ the_file.input.last_column_position = the_file.input.column_position; bputc((int)'\\'); bputc((int)'\n'); } } bputc(c); break; } /* end switch (c) */ } #if defined(HAVE_STDC) static void out_error(FILE *fpout, const char *s) #else /* K&R style */ static void out_error(fpout, s) FILE *fpout; const char *s; #endif { if (fpout == stdout) /* private handling of stdout so we */ out_s(s); /* can track positions */ else (void)fputs(s,fpout); } void out_flush(VOID) /* flush buffered output */ { out_c(EOF); /* magic value to flush buffers */ out_c(EOF); /* NB: TWO EOFs needed to really flush: */ /* see out_c() for the explanation */ } #if defined(HAVE_STDC) static void out_input_position(IO_PAIR *pair) #else /* K&R style */ static void out_input_position(pair) IO_PAIR *pair; #endif { out_s("# line "); out_number(pair->input.line_number); out_s(" \""); out_s(pair->input.filename); out_s("\"\n"); } #if defined(HAVE_STDC) void out_lines(FILE *fpout, const char *lines[], YESorNO pausing) #else /* K&R style */ void out_lines(fpout, lines, pausing) FILE *fpout; const char *lines[]; YESorNO pausing; #endif { int k; #if (SCREEN_LINES > 0) if ((pausing == YES) && (screen_lines > 0)) { int lines_on_screen; int nlines; kbopen(); for (nlines = 0; lines[nlines] != (const char*)NULL; ++nlines) continue; /* count number of lines */ for (k = 0, lines_on_screen = 0; ; ) { if (lines[k] != (const char*)NULL) { (void)fputs(lines[k], fpout); if (IN_SET(lines[k], '\n')) lines_on_screen++; /* some lines[k] are only partial */ } if ((lines_on_screen == (screen_lines - 2)) || (lines[k] == (const char*)NULL)) { /* pause for user action */ lines_on_screen = 0; screen_lines = get_screen_lines(); /* maybe window resize? */ if (screen_lines == 0) { k++; if (k < nlines) continue; else break; /* here's the loop exit */ } k = do_more(fpout,k,screen_lines - 2,lines); if (k == EOF) break; /* here's the loop exit */ else if (k == LAST_SCREEN_LINE) k = nlines - (screen_lines - 2); if (k < 0) /* ensure k stays in range */ k = 0; else if (k >= nlines) k = nlines - 1; } else /* still filling current screen */ k++; } /* end for (k...) */ kbclose(); } else /* pausing == NO */ { for (k = 0; lines[k] != (const char*)NULL; k++) (void)fputs(lines[k], fpout); } #else /* NOT (SCREEN_LINES > 0) */ for (k = 0; lines[k] != (const char*)NULL; k++) (void)fputs(lines[k], fpout); #endif /* (SCREEN_LINES > 0) */ } void out_newline(VOID) { out_string(TOKEN_NEWLINE, "\n"); } #if defined(HAVE_STDC) static void out_number(long n) #else /* K&R style */ static void out_number(n) long n; #endif { char number[22]; /* ceil(log10(2^64-1))+1, big enough */ /* for even 64-bit machines */ (void)sprintf(number,"%ld",n); out_s(number); } #if defined(HAVE_STDC) static void out_position(FILE* fpout, const char *msg, IO_PAIR *the_location) #else /* K&R style */ static void out_position(fpout,msg,the_location) FILE* fpout; const char *msg; IO_PAIR *the_location; #endif { char s[sizeof( " output byte=XXXXXXXXXX line=XXXXXXXXXX column=XXXXXXXXXX")+1]; out_error(fpout, msg); (void)sprintf(s," input byte=%ld line=%ld column=%2ld", the_location->input.byte_position, the_location->input.line_number, the_location->input.column_position); out_error(fpout, s); (void)sprintf(s, " output byte=%ld line=%ld column=%2ld\n", the_location->output.byte_position, the_location->output.line_number, the_location->output.column_position); out_error(fpout, s); } #if defined(HAVE_STDC) void out_s(const char *s) /* output a string, wrapping long lines */ #else /* K&R style */ void out_s(s) /* output a string, wrapping long lines */ const char *s; #endif { /* The strings s[] has already had runs of whitespace of all kinds collapsed to single spaces. The word_length() function returns 1 more than the actual non-blank word length at end of string, so that we can automatically account for the comma that will be supplied after the string. */ for (; (*s != '\0'); ++s) { switch (*s) { case ' ': /* may change space to new line and indent */ if ((wrapping == YES) && (the_file.output.column_position + 1 + word_length(s+1)) > max_width) wrap_line(); else out_c((int)(unsigned char)*s); break; case PARBREAK: /* Possible after first character only if */ /* keep_parbreaks == YES. Cannot use */ /* wrap_line(), because that is infinitely */ /* recursive to this statement! */ out_c((int)(unsigned char)'\n'); out_c((int)(unsigned char)'\n'); /* two newlines marks a parbreak */ if (keep_spaces == NO) out_spaces(VALUE_INDENTATION); /* supply leading indentation */ break; case LINEBREAK: out_c((int)(unsigned char)'\n'); /* change LINEBREAK to newline */ if (keep_spaces == NO) { out_spaces(VALUE_INDENTATION); /* supply leading indentation */ while (s[1] == ' ') /* and ignore following explicit space */ ++s; } break; default: /* everything else is output verbatim */ out_c((int)(unsigned char)*s); } } } #if defined(HAVE_STDC) void out_spaces(int n) #else /* K&R style */ void out_spaces(n) int n; #endif { if (prettyprint == YES) { for (; n > 0; --n) out_c((int)' '); } /* If we are not prettyprinting, but lexically analyzing, we */ /* cannot use n as a reliable count of spaces, because it is */ /* based on column positions in prettyprinted output. We must */ /* therefore simply discard TOKEN_SPACE from the output stream. */ } #if defined(HAVE_STDC) static void out_status (FILE* fpout,const char *prefix) #else /* K&R style */ static void out_status(fpout,prefix) FILE* fpout; const char *prefix; #endif { if (show_file_position == YES) { out_error(fpout, prefix); out_error(fpout, " File positions: input ["); out_error(fpout, original_file.input.filename); out_error(fpout, "] output ["); out_error(fpout, original_file.output.filename); out_error(fpout, "]\n"); out_error(fpout, prefix); out_position(fpout, " Entry ", &the_entry); out_error(fpout, prefix); out_position(fpout, " Value ", &the_value); out_error(fpout, prefix); out_position(fpout, " Current", &original_file); } } #if defined(HAVE_STDC) void out_string(token_t type, const char *token) #else /* K&R style */ void out_string(type,token) token_t type; const char *token; #endif { if (KEEP_PREAMBLE_SPACES()) out_verbatim(token); else if (KEEP_STRING_SPACES()) out_verbatim(token); else if (prettyprint == YES) out_s(token); /* prettyprinted output */ else out_token(type,token); /* lexical analysis output */ } #if defined(HAVE_STDC) void out_token(token_t type, const char *token) /* lexical analysis output */ #else /* K&R style */ void out_token(type,token) token_t type; const char *token; #endif { char octal[4 + 1]; static long last_line_number = 0L; if (*token == (char)'\0') /* ignore empty tokens */ return; if (last_line_number < token_start.input.line_number) { out_input_position(&token_start); last_line_number = token_start.input.line_number; } out_number((long)type); out_c((int)'\t'); out_s(type_name[(int)type]); out_c((int)'\t'); out_c((int)'"'); for (; (*token != '\0'); ++token) { switch (*token) { case '"': case '\\': out_c((int)'\\'); out_c((int)*token); break; case '\b': out_c((int)'\\'); out_c((int)'b'); break; case '\f': out_c((int)'\\'); out_c((int)'f'); break; case LINEBREAK: case '\n': out_c((int)'\\'); out_c((int)'n'); break; case '\r': out_c((int)'\\'); out_c((int)'r'); break; case '\t': out_c((int)'\\'); out_c((int)'t'); break; case '\v': out_c((int)'\\'); out_c((int)'v'); break; case PARBREAK: /* two newlines mark a parbreak */ out_c((int)'\\'); out_c((int)'n'); out_c((int)'\\'); out_c((int)'n'); break; default: if (Isprint(*token)) out_c((int)(unsigned char)*token); else { (void)sprintf(octal,"\\%03o",BYTE_VAL(*token)); out_s(octal); } break; } } out_c((int)'"'); out_c((int)'\n'); } #if defined(HAVE_STDC) static void out_verbatim(const char *token) #else /* K&R style */ static void out_verbatim(token) const char *token; #endif { for (; (*token != '\0'); ++token) { switch (*token) { case LINEBREAK: out_c((int)(unsigned char)'\n'); break; case PARBREAK: out_c((int)(unsigned char)'\n'); out_c((int)(unsigned char)'\n'); break; default: out_c((int)(unsigned char)*token); break; } } } #if defined(HAVE_STDC) void out_with_error(const char *s, const char *msg) #else /* K&R style */ void out_with_error(s,msg) /* output string s, error message, and resynchronize */ const char *s; const char *msg; #endif { out_s(s); error(msg); resync(); } #if defined(HAVE_STDC) void out_with_parbreak_error(char *s) #else /* K&R style */ void out_with_parbreak_error(s) char *s; #endif { out_with_error(s, "Unexpected paragraph break for field ``%f''"); } #if defined(HAVE_STDC) void put_back(int c) /* put last get_char() value back onto input stream */ #else /* K&R style */ void put_back(c) /* put last get_char() value back onto input stream */ int c; #endif { if (n_pushback >= MAX_PUSHBACK) { warning("Pushback buffer overflow: characters lost"); return; } pushback_buffer[n_pushback++] = c; the_file.input.byte_position--; /* Adjust status values that are set in get_char() */ if (!Isspace(c)) non_white_chars--; if (c == EOF) eofile = NO; else if (c == (int)'\n') { the_file.input.column_position = the_file.input.last_column_position; the_file.input.line_number--; } else if (c == (int)'\t') the_file.input.column_position = the_file.input.last_column_position; else the_file.input.column_position--; if (c == (int)'{') brace_level--; else if (c == (int)'}') brace_level++; } static void resync(VOID) /* copy input to output until new entry met */ { /* and set resynchronization flag */ rflag = YES; do_other(); /* copy text until new entry found */ brace_level = 0; /* might have been non-zero because of errors */ } #if defined(HAVE_STDC) char* Strdup(const char *s) #else /* K&R style */ char* Strdup(s) const char *s; #endif { char *p; p = (char*)malloc(strlen(s)+1); if (p == (char*)NULL) fatal("Out of string memory"); return (strcpy(p,s)); } #if defined(HAVE_STDC) int stricmp(const char *s1,const char *s2) #else /* K&R style */ int stricmp(s1, s2) const char *s1; const char *s2; #endif { #define TOUPPER(c) (Islower(c) ? toupper((int)(c)) : (int)(c)) while ((*s1 != '\0') && (TOUPPER(*s1) == TOUPPER(*s2))) { s1++; s2++; } return((int)(TOUPPER(*s1) - TOUPPER(*s2))); #undef TOUPPER } #if defined(HAVE_STDC) int strnicmp(const char *s1, const char *s2, size_t n) #else /* K&R style */ int strnicmp(s1,s2,n) const char *s1; const char *s2; size_t n; #endif { int c1; int c2; /******************************************************************* Compare strings ignoring case, stopping after n characters, or at end-of-string, whichever comes first. *******************************************************************/ for (; (n > 0) && (*s1 != '\0') && (*s2 != '\0'); ++s1, ++s2, --n) { c1 = 0xff & (int)(Islower(*s1) ? (int)*s1 : tolower((int)(*s1))); c2 = 0xff & (int)(Islower(*s2) ? (int)*s2 : tolower((int)(*s2))); if (c1 < c2) return (-1); else if (c1 > c2) return (1); } if (n == 0) /* first n characters match */ return (0); else if (*s1 == '\0') return ((*s2 == '\0') ? 0 : -1); else /* (*s2 == '\0') */ return (1); } #if defined(HAVE_STDC) /*@null@*/ FILE* tfopen(const char *filename, const char *mode) /* traced file opening */ #else /* K&R style */ /*@null@*/ FILE* tfopen(filename,mode) const char *filename; const char *mode; #endif { FILE *fp; fp = FOPEN(filename,mode); if (trace_file_opening == YES) (void)fprintf(stdlog,"%s open file [%s]%s\n", /* NB: lineup with lookup in fndfil.c:file_is_readable() */ WARNING_PREFIX, filename, (fp == (FILE*)NULL) ? ": FAILED" : ""); return (fp); } #if defined(HAVE_STDC) void warning(const char *msg) /* issue a warning message to stdlog */ #else /* K&R style */ void warning(msg) /* issue a warning message to stdlog */ const char *msg; #endif { if (warnings == YES) { out_flush(); /* flush all buffered output */ /* Because warnings are often issued in the middle of lines, we start a new line if stdlog and stdout are the same file. */ original_file = the_file; /* save for error messages */ (void)fprintf(stdlog,"%s%s %s:%ld:%s.\n", (stdlog_on_stdout == YES) ? "\n" : "", WARNING_PREFIX, the_file.input.filename, the_value.input.line_number, format(msg)); out_status(stdlog, WARNING_PREFIX); (void)fflush(stdlog); } } #if defined(HAVE_STDC) static size_t word_length(const char *s) /* return length of leading non-blank prefix */ #else /* K&R style */ static size_t word_length(s) /* return length of leading non-blank prefix */ const char *s; #endif { size_t n; for (n = 0; (s[n] != '\0'); ++n) { if (Isspace(s[n])) break; } return ((s[n] == '\0') ? n + 1 : n); /* at end of string, return one more than */ /* true length to simplify line wrapping */ } static void wrap_line(VOID) /* insert a new line and leading indentation */ { out_newline(); out_spaces(VALUE_INDENTATION); /* supply leading indentation */ } /*********************************************************************** We put this regular expression matching code last because (a) it is not universally available, (b) the 6 macros in the HAVE_REGEXP section can only be defined once, and (c) there are three variants: the old ugly regexp.h interface (HAVE_REGEXP), the new clean regex.h interface (HAVE_RECOMP), and the GNU version (not yet supported here) ***********************************************************************/ /**********************************************************************/ #if defined(HAVE_RECOMP) #if (_AIX || ultrix) /* AIX 370, AIX PS/2, and ULTRIX have these, but no regex.h, sigh... */ #if __cplusplus extern "C" { #endif /* __cplusplus */ char *re_comp ARGS((const char *s_)); int re_exec ARGS((const char *s_)); #if __cplusplus }; #endif /* __cplusplus */ #else /* NOT (_AIX || ultrix) */ #if defined(HAVE_REGEX_H) #include #endif #endif /* (_AIX || ultrix) */ #if defined(HAVE_STDC) static int match_regexp(const char *string,const char *pattern) #else /* K&R style */ static int match_regexp(string,pattern) const char *string; const char *pattern; #endif { if (re_comp(pattern) != (char*)NULL) fatal("Internal error: bad regular expression"); switch (re_exec(string)) { case 1: return (YES); case 0: return (NO); default: fatal("Internal error: bad regular expression"); } return (YES); /* keep optimizers happy */ } #endif /* defined(HAVE_RECOMP) */ /**********************************************************************/ #if defined(HAVE_REGEXP) const char *sp_global; #define ERROR(c) regerr() #define GETC() (*sp++) #define INIT const char *sp = sp_global; #define PEEKC() (*sp) #define RETURN(c) return(c) #define UNGETC(c) (--sp) void regerr(VOID) { fatal("Internal error: bad regular expression"); } #if defined(HAVE_REGEXP_H) #include #endif #if defined(HAVE_STDC) static int match_regexp(const char *string,const char *pattern) #else /* K&R style */ static int match_regexp(string,pattern) const char *string; const char *pattern; #endif { char expbuf[MAX_TOKEN_SIZE]; sp_global = string; (void)compile((char*)pattern, (char*)expbuf, (char*)(expbuf + sizeof(expbuf)), '\0'); return (step((char*)string,(char*)expbuf) ? YES : NO); } #endif /* defined(HAVE_REGEXP) */ /**********************************************************************/ bibclean-3.07/testscr2.bo20000444000156700015670000000531007343451014014257 0ustar beebebeebe@Comment{ This file contains some test Scribe bibliography entries with embedded paragraph breaks for testing the -no-parbreaks switch in bibclean. Without that switch, it should process correctly; with it, 3 sets of error messages should be displayed. } @TechReport{bs-1629-0, author = "BSI", title = "Bibliographic References", institution = "British Standards Institution", year = "1976", type = "BS", number = "1629", } @TechReport{bs-1629-1, author = "BSI", title = "Bibliographic ?? Unexpected paragraph break for field ``title''. ?? File positions: input [testscr2.org] output [stdout] ?? Entry input byte=489 line=19 column= 1 output byte=474 line=17 column= 0 ?? Value input byte=547 line=21 column=14 output byte=538 line=19 column=17 ?? Current input byte=564 line=23 column= 0 output byte=553 line=19 column=32 References", INSTITUTION = "British Standards Institution", YEAR = "1976", TYPE = "BS", NUMBER = "1629" ) @TechReport{bs-1629-2, author = "BSI", title = "Bibliographic References", institution = "British Standards Institution", year = "1976", type = "BS", number = "1629", } @TechReport{bs-1629-3, author = "BSI", title = "Bibliographic ?? Unexpected paragraph break for field ``title''. ?? File positions: input [testscr2.org] output [stdout] ?? Entry input byte=919 line=43 column= 1 output byte=1309 line=46 column= 0 ?? Value input byte=977 line=45 column=14 output byte=1373 line=48 column=17 ?? Current input byte=994 line=47 column= 0 output byte=1388 line=48 column=32 References", INSTITUTION = "British Standards Institution", YEAR = "1976", TYPE = "BS", NUMBER = "1629" ) @TechReport{bs-1629-4, author = "BSI", title = "Bibliographic References", institution = "British Standards Institution", year = "1976", type = "BS", number = "1629", } @TechReport{bs-1629-5, author = "BSI", title = "Bibliographic ?? Unexpected paragraph break for field ``title''. ?? File positions: input [testscr2.org] output [stdout] ?? Entry input byte=1337 line=65 column= 1 output byte=2146 line=74 column= 0 ?? Value input byte=1393 line=67 column=14 output byte=2210 line=76 column=17 ?? Current input byte=1410 line=69 column= 0 output byte=2225 line=76 column=32 References", INSTITUTION = "British Standards Institution", YEAR = 1976, TYPE = BS, NUMBER = 1629 ) bibclean-3.07/isbn.h0000644000156700015670000000046513251074553013222 0ustar beebebeebe#ifndef ISBN_H_DEFINED_ #define ISBN_H_DEFINED_ extern void do_ISBN_file ARGS((/*@null@*/ const char *pathlist_, /*@null@*/ const char *name_)); extern void do_print_ISBN_table ARGS((void)); extern void free_ISBN_table ARGS((void)); extern void ISBN_initialize ARGS((void)); #endif /* ISBN_H_DEFINED_ */ bibclean-3.07/bibclean.isbn0000664000156700015670000025541512663434667014557 0ustar beebebeebe%%% ******************************************************************** %%% ******************************************************************** %%% WARNING: Do NOT edit this file. It was created automatically *** %%% from the master ISBN prefix list on Sat Oct 24 09:13:58 MDT 2015 *** %%% by *** %%% *** %%% awk -f isbn-el-to-bibclean-init.awk isbn.el >this-file *** %%% *** %%% ******************************************************************** %%% ******************************************************************** 0-00 0-19 Region name: Australia Country code(s): AU Language group: 0 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 89999 ; 900000 - 949999 ; 9500000 - 9999999 0-200 0-699 0-7000 0-8499 0-85000 0-89999 0-900000 0-949999 0-9500000 0-9999999 0-315 0-315 [24-Sep-2015] Updated list from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 0-458 0-459 0-612 0-612 0-616 0-616 0-660 0-660 0-662 0-662 0-665 0-665 0-7700 0-7799 0-86488 0-86507 0-88500 0-88668 0-88750 0-88999 0-919000 0-921999 0-9680000 0-9699999 0-9730000 0-9739999 0-9583000 0-9583049 Region name: Gibraltar Country code(s): GI Language group: 0 Publisher(s): 9583000 - 9583049 0-9633400 0-9633499 Region name: Puerto Rico Country code(s): PR Language group: 0 Publisher(s): 9633400 - 9633499 0-620 0-629 Region name: South Africa Country code(s): ZA Language group: 0 Publisher(s): 620 - 629 ; 636 - 639 ; 7954 - 7973 ; 7975 - 7999 ; 86483 - 86487 ; 86808 - 86817 ; 86843 - 86852 ; 86873 - 86887 ; 86950 - 86999 ; 907980 - 907999 ; 908352 - 908409 ; 909060 - 909079 ; 909230 - 909239 ; 947000 - 947059 ; 949934 - 949998 ; 9583050 - 9583249 ; 9583750 - 9585149 0-636 0-639 0-7021 0-7021 [24-Sep-2015] Addition from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 0-7954 0-7973 0-7975 0-7977 0-7979 0-7998 0-9583750 0-9585149 Region name: Swaziland Country code(s): SZ Language group: 0 Publisher(s): ??????? - ??????? 0-7974 0-7974 Region name: Zimbabwe Country code(s): ZW Language group: 0 Publisher(s): 7974 ; 86918 - 86929 ; 908300 - 908305 ; 949225 - 949933 0-86918 0-86929 0-908300 0-908305 0-949225 0-949933 1-74000 1-76999 Region name: Australia Country code(s): AU Language group: 1 Publisher(s): 74000 - 76999 ; 86250 - 86799 ; 875100 - 877099 ; 920680 - 926429 1-86250 1-86799 1-875100 1-877099 1-920680 1-926429 1-55000 1-55499 Region name: Canada Country code(s): CA Language group: 1 Publisher(s): 55000 - 55499 1-894000 1-896999 [24-Sep-2015] Additions from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 1-897000 1-897579 1-919655 1-919679 Region name: Gibraltar Country code(s): GI Language group: 1 Publisher(s): 919655 - 919679 1-86930 1-86979 Region name: New Zealand Country code(s): NZ Language group: 1 Publisher(s): 86930 - 86979 ; 877130 - 877579 1-877130 1-877579 1-881700 1-881749 Region name: Puerto Rico Country code(s): PR Language group: 1 Publisher(s): 881700 - 881749 1-4150 1-4154 [24-Sep-2015] Additions from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 1-77000 1-77019 1-919680 1-920679 Region name: United Kingdom Country code(s): GB Language group: 1 Publisher(s): 84000 - 86249 ; 869800 - 874799 ; 897580 - 919679 1-4050 1-4099 [24-Sep-2015] Updated list from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 1-84000 1-85122 1-85124 1-86249 1-869800 1-871030 1-871032 1-874799 1-897580 1-919654 1-952246 1-952246 1-987807 1-987807 1-4000 1-4049 1-4100 1-4149 1-55500 1-59999 1-871031 1-871031 1-877580 1-897579 1-928530 1-952245 1-952247 1-987806 1-987808 1-998999 1-77900 1-77919 Region name: Zimbabwe Country code(s): ZW Language group: 1 Publisher(s): 77900 - 77919 ; 877100 - 877129 1-877100 1-877129 2-500 2-549 Region name: Belgium Country code(s): BE Language group: 2 Publisher(s): 500 - 549 ; 8000 - 8249 ; 87000 - 87949 ; 930000 - 939999 ; 9600000 - 9699999 2-8000 2-8249 2-87000 2-87949 2-930000 2-939999 2-9600000 2-9699999 2-550 2-599 Region name: Canada Country code(s): CA Language group: 2 Publisher(s): 550 - 599 ; 7600 - 7653 ; 7655 - 7776 ; 7778 - 7999 ; 89000 - 89999 ; 920000 - 929999 ; 9800000 - 9999999 2-7600 2-7653 2-7655 2-7776 2-7778 2-7999 2-89000 2-89999 2-920000 2-929999 2-9800000 2-9999999 2-00 2-19 Region name: France Country code(s): FR Language group: 2 Publisher(s): 00 - 19 ; 200 - 399 ; 7000 - 7599 ; 7654 ; 7777 ; 84000 - 86999 ; 900000 - 919768 ; 9500000 - 9599768 2-200 2-349 2-35000 2-39999 2-400 2-699 2-7000 2-8399 2-84000 2-89999 2-900000 2-949999 2-9500000 2-9999999 2-495 2-499 Region name: Luxembourg Country code(s): LU Language group: 2 Publisher(s): 495 - 499 ; 87950 - 87999 ; 919769 - 919999 ; 9599769 - 9599999 2-87950 2-87999 2-919769 2-919999 2-9599769 2-9599999 2-600 2-699 Region name: Switzerland (French speaking) Country code(s): CH Language group: 2 Publisher(s): 600 - 699 ; 8250 - 8399 ; 88000 - 88999 ; 940000 - 949999 ; 9700000 - 9799999 2-8250 2-8399 2-88000 2-88999 2-940000 2-949999 2-9700000 2-9799999 3-01 3-02 Region name: Austria Country code(s): AT Language group: 3 Publisher(s): 01 - 02 ; 200 - 249 ; 7000 - 7149 ; 85000 - 85499 ; 900000 - 904999 ; 9500000 - 9519999 3-200 3-249 3-7000 3-7149 3-85000 3-85499 3-900000 3-904999 3-9500000 3-9519999 3-00 3-00 Region name: Germany Country code(s): DE Language group: 3 Publisher(s): 00 ; 05 - 19 ; 320 - 379 ; 400 - 699 ; 7300 - 7499 ; 7600 - 8499 ; 86000 - 86499 ; 87000 - 89999 ; 910000 - 949999 ; 9700000 - 9899999 3-05 3-19 3-320 3-379 3-400 3-699 3-7300 3-8499 [24-Sep-2015] Updates from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 3-86000 3-89999 3-9700000 3-9999999 3-030 3-033 Region name: Switzerland (German speaking) Country code(s): CH Language group: 3 Publisher(s): 030 - 033 ; 0340 - 0369 ; 03700 - 03999 ; 250 - 319 ; 7150 - 7299 ; 85500 - 85999 ; 905000 - 909999 ; 9520000 - 9539999 3-0340 3-0369 3-03700 3-03999 3-250 3-319 3-7150 3-7299 3-85500 3-85999 3-905000 3-909999 3-9520000 3-9539999 4-00 4-19 Region name: Japan Country code(s): JP Language group: 4 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 -8499 ; 85000 - 89999 ; 900000 - 949999 ; 9500000 - 9999999 4-200 4-699 4-7000 4-8499 4-85000 4-89999 4-900000 4-949999 4-9500000 4-9999999 5-00 5-19 Region name: Armenia Country code(s): AM Language group: 5 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 89999 ; 800000 - 919999 5-200 5-699 5-7000 5-8499 5-85000 5-89999 5-800000 5-919999 5-900000 5-949999 Region name: Belarus Country code(s): BY Language group: 5 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 89999 ; 900000 - 949999 ; 9500000 - 9999999 5-9500000 5-9999999 5-900000 5-919999 Region name: Kazakhstan Country code(s): KZ Language group: 5 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 89999 ; 900000 - 919999 5-9200 5-9299 Region name: Russian Federation Country code(s): RU Language group: 5 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 89999 ; 900000 - 919999 ; 9200 - 9299 ; 93000 - 94999 ; 950000 - 979999 ; 9800000 - 9999999 5-93000 5-94999 5-950000 5-979999 5-9800000 5-9999999 7-00 7-09 Region name: China Country code(s): CN Language group: 7 Publisher(s): 00 - 09 ; 100 - 499 ; 5000 - 7999 ; 80000 - 89999 ; 900000 - 999999 7-100 7-499 7-5000 7-7999 7-80000 7-89999 7-900000 7-999999 80-00 80-19 Region name: Czech Republic Country code(s): CZ Language group: 80 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 89999 ; 900000 - 999999 80-200 80-699 80-7000 80-8499 80-85000 80-89999 80-900000 80-999999 81-00 81-19 [24-Sep-2015] Additions from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 81-200 81-699 81-7000 81-8499 81-85000 81-89999 81-900000 81-999999 82-00 82-19 Region name: Norway Country code(s): NO Language group: 82 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8999 ; 90000 - 98999 ; 990000 - 999999 82-200 82-699 82-7000 82-8999 82-90000 82-98999 82-990000 82-999999 83-00 83-19 Region name: Poland Country code(s): PL Language group: 83 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 89999 ; 900000 - 999999 83-200 83-699 83-7000 83-8499 83-85000 83-89999 83-900000 83-999999 84-00 84-19 Region name: Spain Country code(s): ES Language group: 84 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 89999 ; 900000 - 949999 ; 95000 - 96999 ; 9700 - 9999 84-200 84-699 84-7000 84-8499 84-9000 84-9199 [24-Sep-2015] Additions from https://web.archive.org/web/20030210002752/http://isbn.spk-berlin.de/html/prefix/prefu.htm 84-920000 84-923999 84-92400 84-92999 84-930000 84-949999 85-00 85-19 Region name: Brazil Country code(s): BR Language group: 85 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 89999 ; 900000 - 999999 85-200 85-699 85-7000 85-8499 85-85000 85-89999 85-900000 85-999999 86-00 86-29 Region name: Bosnia and Herzegovina Country code(s): BA Language group: 86 Publisher(s): 00 - 29 ; 300 - 699 ; 7000 - 7999 ; 80000 - 89999 ; 900000 - 999999 86-300 86-699 86-7000 86-7999 86-80000 86-89999 86-900000 86-999999 87-00 87-29 Region name: Denmark Country code(s): DK Language group: 87 Publisher(s): 00 - 29 ; 400 - 649 ; 7000 - 7999 ; 85000 - 94999 ; 970000 - 999999 87-400 87-649 87-7000 87-7999 87-85000 87-94999 87-970000 87-999999 88-00 88-19 Region name: Switzerland (Italian speaking) Country code(s): CH Language group: 88 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 89999 ; 900000 - 999999 88-200 88-699 88-7000 88-8499 88-85000 88-89999 88-900000 88-999999 89-00 89-24 Region name: Korea (Republic) Country code(s): KR Language group: 89 Publisher(s): 00 - 24 ; 250 - 549 ; 5500 - 8499 ; 85000 - 94999 ; 950000 - 999999 89-250 89-549 89-5500 89-8499 89-85000 89-94999 89-950000 89-999999 90-00 90-19 Region name: Belgium Country code(s): BE Language group: 90 Publisher(s): 00 - 19 ; 200 - 499 ; 5000 - 6999 ; 70000 - 79999 ; 800000 - 899999 90-200 90-499 90-5000 90-6999 90-70000 90-79999 90-800000 90-899999 91-0 91-1 Region name: Sweden Country code(s): SE Language group: 91 Publisher(s): 0 - 1 ; 20 - 49 ; 500 - 649 ; 7000 - 7999 ; 85000 - 94999 ; 970000 - 999999 91-20 91-49 91-500 91-649 91-7000 91-7999 91-85000 91-94999 91-970000 91-999999 950-00 950-49 Region name: Argentina Country code(s): AR Language group: 950 Publisher(s): 00 - 49 ; 500 - 899 ; 9000 - 9899 ; 99000 - 99999 950-500 950-899 950-9000 950-9899 950-99000 950-99999 951-0 951-1 Region name: Finland Country code(s): FI Language group: 951 Publisher(s): 0 - 1 ; 20 - 54 ; 550 - 889 ; 8900 - 9499 ; 95000 - 99999 951-20 951-54 951-550 951-889 951-8900 951-9499 951-95000 951-99999 952-00 952-19 Region name: Finland Country code(s): FI Language group: 952 Publisher(s): 00 - 19 ; 200 - 499 ; 5000 - 8899 ; 89 - 94 ; 9500 - 9899 ; 99000 - 99999 952-200 952-499 952-5000 952-8899 952-89 952-94 952-9500 952-9899 952-99000 952-99999 953-0 953-0 Region name: Croatia Country code(s): HR Language group: 953 Publisher(s): 0 ; 10 - 14 ; 150 - 599 ; 6000 - 9599 ; 96000 - 99999 953-10 953-14 953-150 953-599 953-6000 953-9599 953-96000 953-99999 954-00 954-29 Region name: Bulgaria Country code(s): BG Language group: 954 Publisher(s): 00 - 29 ; 300 - 799 ; 8000 - 8999 ; 90000 - 94999 ; 9500 - 9999 954-300 954-799 954-8000 954-8999 954-90000 954-94999 954-9500 954-9999 955-0 955-1 Region name: Sri Lanka Country code(s): LK Language group: 955 Publisher(s): 0 - 1 ; 20 - 54 ; 550 - 799 ; 8000 - 9499 ; 95000 - 99999 955-20 955-54 955-550 955-799 955-8000 955-9499 955-95000 955-99999 956-00 956-19 Region name: Chile Country code(s): CL Language group: 956 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 9999 956-200 956-699 956-7000 956-9999 957-00 957-02 Region name: Taiwan, China Country code(s): TW Language group: 957 Publisher(s): 00 - 02 ; 0300 - 0499 ; 05 -19 ; 2000 - 2099 ; 21 - 29 ; 30000 - 30999 ; 31 - 43 ; 440 - 819 ; 8200 - 9699 ; 97000 - 99999 957-0300 957-0499 957-05 957-19 957-2000 957-2099 957-21 957-29 957-30000 957-30999 957-31 957-43 957-440 957-819 957-8200 957-9699 957-97000 957-99999 958-00 958-59 Region name: Colombia Country code(s): CO Language group: 958 Publisher(s): 00 - 59 ; 600 - 799 ; 8000 - 9499 ; 95000 - 99999 958-600 958-799 958-8000 958-9499 958-95000 958-99999 959-00 959-19 Region name: Cuba Country code(s): CU Language group: 959 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 959-200 959-699 959-7000 959-8499 960-00 960-19 Region name: Greece Country code(s): GR Language group: 960 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 99999 960-200 960-699 960-7000 960-8499 960-85000 960-99999 961-00 961-19 Region name: Slovenia Country code(s): SI Language group: 961 Publisher(s): 00 - 19 ; 200 - 599 ; 6000 - 8999 ; 90000 - 94999 961-200 961-599 961-6000 961-8999 961-90000 961-94999 962-00 962-19 Region name: Hong Kong Country code(s): HK Language group: 962 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 86999 ; 8700 - 8999 ; 900 - 999 962-200 962-699 962-7000 962-8499 962-85000 962-86999 962-8700 962-8999 962-900 962-999 963-00 963-19 Region name: Hungary Country code(s): HU Language group: 963 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 89999 ; 9000 - 9999 963-200 963-699 963-7000 963-8499 963-85000 963-89999 963-9000 963-9999 966-00 966-29 Region name: Ukraine Country code(s): UA Language group: 966 Publisher(s): 00 - 29 ; 500 - 699 ; 7000 - 7999 ; 90000 - 99999 966-500 966-699 966-7000 966-7999 966-90000 966-99999 967-0 967-5 Region name: Malaysia Country code(s): MY Language group: 967 Publisher(s): 0 - 5 ; 60 - 89 ; 900 - 989 ; 9900 - 9989 ; 99900 - 99999 967-60 967-89 967-900 967-989 967-9900 967-9989 967-99900 967-99999 968-10 968-39 Region name: Mexico Country code(s): MX Language group: 968 Publisher(s): 10 - 39 ; 400 - 499 ; 5000 - 7999 ; 800 - 899 968-400 968-499 968-5000 968-7999 968-800 968-899 969-0 969-1 Region name: Pakistan Country code(s): PK Language group: 969 Publisher(s): 0 - 1 ; 20 - 39 ; 400 - 799 ; 8000 - 9999 969-20 969-39 969-400 969-799 969-8000 969-9999 970-00 970-59 Region name: Mexico Country code(s): MX Language group: 970 Publisher(s): 00 - 59 ; 600 - 899 ; 9000 - 9099 ; 91000 - 99999 970-600 970-899 970-9000 970-9099 970-91000 970-99999 971-00 971-49 Region name: Philippines Country code(s): PH Language group: 971 Publisher(s): 00 - 49 ; 500 - 849 ; 8500 - 9099 ; 91000 - 99999 971-500 971-849 971-8500 971-9099 971-91000 971-99999 972-0 972-1 Region name: Portugal Country code(s): PT Language group: 972 Publisher(s): 0 - 1 ; 20 - 54 ; 550 - 799 ; 8000 - 9499 ; 95000 - 99999 972-20 972-54 972-550 972-799 972-8000 972-9499 972-95000 972-99999 973-0 973-1 Region name: Romania Country code(s): RO Language group: 973 Publisher(s): 0 - 1 ; 20 - 54 ; 550 - 799 ; 8000 - 8499 ; 85000 - 99999 973-20 973-54 973-550 973-799 973-8000 973-8499 973-85000 973-99999 974-00 974-19 Region name: Thailand Country code(s): TH Language group: 974 Publisher(s): 00 - 19 ; 200 - 699 ; 7000 - 8499 ; 85000 - 89999 974-200 974-699 974-7000 974-8499 974-85000 974-89999 975-00 975-29 Region name: Turkey Country code(s): TR Language group: 975 Publisher(s): 00 - 29 ; 300 - 599 ; 6000 - 9199 ; 92000 - 97999 975-300 975-599 975-6000 975-9199 975-92000 975-97999 976-0 976-3 Region name: Caribbean Community Country code(s): Antigua AG, Bahamas BS, Barbados BB, Belize BZ, Cayman Islands KY, Dominica DM, Grenada GD, Guyana GY, Jamaica JM, Montserrat MS, St. Kitts-Nevis KN, St. Lucia LC, St. Vincent VC, Trinidad and Tobago TT, Virgin Islands (Br.) VG Language group: 976 Publisher(s): 0 - 3 ; 40 - 59 ; 600 - 799 ; 8000 - 9499 ; 95000 - 99999 976-40 976-59 976-600 976-799 976-8000 976-9499 976-95000 976-99999 977-00 977-19 Region name: Egypt Country code(s): EG Language group: 977 Publisher(s): 00 - 19 ; 200 - 499 ; 5000 - 6999 ; 70000 - 99999 977-200 977-499 977-5000 977-6999 977-70000 977-99999 978-000 978-199 Region name: Nigeria Country code(s): NG Language group: 978 Publisher(s): 000 - 199 ; 2000 - 2999 ; 30000 - 79999 ; 8000 - 8999 ; 900 - 999 978-2000 978-2999 978-30000 978-79999 978-8000 978-8999 978-900 978-999 980-00 980-19 Region name: Venezuela Country code(s): VE Language group: 980 Publisher(s): 00 - 19 ; 200 - 599 ; 6000 - 9999 980-200 980-599 980-6000 980-9999 981-00 981-19 Region name: Singapore Country code(s): SG Language group: 981 Publisher(s): 00 - 19 ; 200 - 299 ; 3000 - 9999 981-200 981-299 981-3000 981-9999 982-00 982-09 Region name: South Pacific Country code(s): Cook Islands CK, Fiji FJ, Kiribati KI, Nauru NR, New Caledonia NC, Niue NU, Samoa WS, Solomon Islands SB, Tokelau TK, Tonga TO, Tuvalu TV, Vanuatu VU Language group: 982 Publisher(s): 00 - 09 ; 100 - 699 ; 70 - 89 ; 9000 - 9999 982-100 982-699 982-70 982-89 982-9000 982-9999 983-00 983-01 Region name: Malaysia Country code(s): MY Language group: 983 Publisher(s): 00 - 01 ; 020 - 199 ; 2000 - 3999 ; 40000 - 49999 ; 50 - 79 ; 800 - 899 ; 9000 - 9899 ; 99000 - 99999 983-020 983-199 983-2000 983-3999 983-40000 983-49999 983-50 983-79 983-800 983-899 983-9000 983-9899 983-99000 983-99999 984-00 984-39 Region name: Bangladesh Country code(s): BD Language group: 984 Publisher(s): 00 - 39 ; 400 - 799 ; 8000 - 8999 ; 90000 - 99999 984-400 984-799 984-8000 984-8999 984-90000 984-99999 985-00 985-39 Region name: Belarus Country code(s): BY Language group: 985 Publisher(s): 00 - 39 ; 400 - 599 ; 6000 - 8999 ; 90000 - 99999 985-400 985-599 985-6000 985-8999 985-90000 985-99999 986-00 986-19 Region name: Taiwan, China Country code(s): TW Language group: 986 Publisher(s): 00 - 19 ; 200 - 559 ; 5600 - 7999 ; 8000 - 99999 986-200 986-559 986-5600 986-7999 986-8000 986-99999 987-00 987-09 Region name: Argentina Country code(s): AR Language group: 987 Publisher(s): 00 - 09 ; 1000 - 1999 ; 20000 - 29999 ; 30 - 49 ; 500 - 899 ; 9000 - 9499 ; 95000 - 99999 987-1000 987-1999 987-20000 987-29999 987-30 987-49 987-500 987-899 987-9000 987-9499 987-95000 987-99999 9952-0 9952-0 Region name: Azerbaijan Country code(s): AZ Language group: 9952 Publisher(s): 0 ; 20 - 29 ; 400 - 599 ; 8000 - 9999 9952-20 9952-29 9952-400 9952-599 9952-8000 9952-9999 9953-0 9953-0 Region name: Lebanon Country code(s): LB Language group: 9953 Publisher(s): 0 ; 10-39 ; 400-899 ; 9000-9999 9953-10 9953-39 9953-400 9953-899 9953-9000 9953-9999 9954-0 9954-1 Region name: Morocco Country code(s): MA Language group: 9954 Publisher(s): 0 - 1 ; 20 - 39 ; 400 - 799 ; 8000 - 9999 9954-20 9954-39 9954-400 9954-799 9954-8000 9954-9999 9955-00 9955-39 Region name: Lithuania Country code(s): LT Language group: 9955 Publisher(s): 00 - 39 ; 400 - 899 ; 9000 - 9999 9955-400 9955-899 9955-9000 9955-9999 9956-0 9956-0 Region name: Cameroon Country code(s): CM Language group: 9956 Publisher(s): 0 ; 10 - 39 ; 400 - 899 ; 9000 - 9999 9956-10 9956-39 9956-400 9956-899 9956-9000 9956-9999 9958-0 9958-0 Region name: Bosnia and Herzegovina Country code(s): BA Language group: 9958 Publisher(s): 0 ; 10 - 49 ; 500 - 899 ; 9000 - 9999 9958-10 9958-49 9958-500 9958-899 9958-9000 9958-9999 9959-0 9959-1 Region name: Libya Country code(s): LY Language group: 9959 Publisher(s): 0 - 1 ; 20 - 79 ; 800 - 949 ; 9500 - 9999 9959-20 9959-79 9959-800 9959-949 9959-9500 9959-9999 9960-00 9960-59 Region name: Saudi Arabia Country code(s): SA Language group: 9960 Publisher(s): 00 - 59 ; 600 - 899 ; 9000 - 9999 9960-600 9960-899 9960-9000 9960-9999 9961-0 9961-4 Region name: Algeria Country code(s): DZ Language group: 9961 Publisher(s): 0 - 4 ; 50 - 79 ; 800 - 949 ; 9500 - 9999 9961-50 9961-79 9961-800 9961-949 9961-9500 9961-9999 9962-00 9962-59 Region name: Panama Country code(s): PA Language group: 9962 Publisher(s): 00 - 59 ; 600 - 849 ; 8500 - 9999 9962-600 9962-849 9962-8500 9962-9999 9963-0 9963-2 Region name: Cyprus Country code(s): CY Language group: 9963 Publisher(s): 0 - 2 ; 30 - 54 ; 550 - 749 ; 7500 - 9999 9963-30 9963-54 9963-550 9963-749 9963-7500 9963-9999 9964-0 9964-6 Region name: Ghana Country code(s): GH Language group: 9964 Publisher(s): 0 - 6 ; 70 - 94 ; 950 - 999 9964-70 9964-94 9964-950 9964-999 9965-00 9965-39 Region name: Kazakhstan Country code(s): KZ Language group: 9965 Publisher(s): 00 - 39 ; 400 - 899 ; 9000 - 9999 9965-400 9965-899 9965-9000 9965-9999 9966-00 9966-69 Region name: Kenya Country code(s): KE Language group: 9966 Publisher(s): 00 - 69 ; 800 - 959 ; 9600 - 9999 9966-800 9966-959 9966-9600 9966-9999 9967-00 9967-39 Region name: Kyrgyzstan Country code(s): KG Language group: 9967 Publisher(s): 00 - 39 ; 400 - 899 ; 9000 - 9999 9967-400 9967-899 9967-9000 9967-9999 9968-0 9968-0 Region name: Costa Rica Country code(s): CR Language group: 9968 Publisher(s): 0 ; 10 - 69 ; 700 - 969 ; 9700 - 9999 9968-10 9968-69 9968-700 9968-969 9968-9700 9968-9999 9970-00 9970-39 Region name: Uganda Country code(s): UG Language group: 9970 Publisher(s): 00 - 39 ; 400 - 899 ; 9000 - 9999 9970-400 9970-899 9970-9000 9970-9999 9971-0 9971-5 Region name: Singapore Country code(s): SG Language group: 9971 Publisher(s): 0 - 5 ; 60 - 89 ; 900 - 989 ; 9900 - 9999 9971-60 9971-89 9971-900 9971-989 9971-9900 9971-9999 9972-00 9972-09 Region name: Peru Country code(s): PE Language group: 9972 Publisher(s): 00 - 09 ; 1 - 3 ; 40 - 59 ; 600 - 899 ; 9000 - 9999 9972-1 9972-3 9972-40 9972-59 9972-600 9972-899 9972-9000 9972-9999 9973-0 9973-0 Region name: Tunisia Country code(s): TN Language group: 9973 Publisher(s): 0 ; 10 - 69 ; 700 - 969 ; 9700 - 9999 9973-10 9973-69 9973-700 9973-969 9973-9700 9973-9999 9974-0 9974-2 Region name: Uruguay Country code(s): UY Language group: 9974 Publisher(s): 0 - 2 ; 30 - 54 ; 550 - 749 ; 7500 - 9999 9974-30 9974-54 9974-550 9974-749 9974-7500 9974-9999 9975-0 9975-4 Region name: Moldova Country code(s): MD Language group: 9975 Publisher(s): 0 - 4 ; 50 - 89 ; 900 - 949 ; 9500 - 9999 9975-50 9975-89 9975-900 9975-949 9975-9500 9975-9999 9976-0 9976-5 Region name: Tanzania Country code(s): TZ Language group: 9976 Publisher(s): 0 - 5 ; 60 - 89 ; 900 - 989 ; 9990 - 9999 9976-60 9976-89 9976-900 9976-989 9976-9990 9976-9999 9977-00 9977-89 Region name: Costa Rica Country code(s): CR Language group: 9977 Publisher(s): 00 - 89 ; 900 - 989 ; 9900 - 9999 9977-900 9977-989 9977-9900 9977-9999 9978-00 9978-94 Region name: Ecuador Country code(s): EC Language group: 9978 Publisher(s): 00 - 94 ; 950 - 989 ; 9900 - 9999 9978-950 9978-989 9978-9900 9978-9999 9980-0 9980-3 Region name: Papua New Guinea Country code(s): PG Language group: 9980 Publisher(s): 0 - 3 ; 40 - 89 ; 900 - 989 9980-40 9980-89 9980-900 9980-989 9981-00 9981-09 Region name: Morocco Country code(s): MA Language group: 9981 Publisher(s): 00 - 09 ; 100 - 159 ; 1600 - 1999 ; 20 - 79 ; 800 - 949 ; 9500 - 9999 9981-100 9981-159 9981-1600 9981-1999 9981-20 9981-79 9981-800 9981-949 9981-9500 9981-9999 9982-00 9982-79 Region name: Zambia Country code(s): ZM Language group: 9982 Publisher(s): 00 - 79 ; 800 - 889 ; 9900 - 9999 9982-800 9982-889 9982-9900 9982-9999 9983-80 9983-94 Region name: Gambia Country code(s): GM Language group: 9983 Publisher(s): 80 - 94 ; 950 - 989 ; 9900 - 9999 9983-950 9983-989 9983-9900 9983-9999 9984-00 9984-49 Region name: Latvia Country code(s): LV Language group: 9984 Publisher(s): 00 - 49 ; 500 - 899 ; 9000 - 9999 9984-500 9984-899 9984-9000 9984-9999 9985-0 9985-4 Region name: Estonia Country code(s): EE Language group: 9985 Publisher(s): 0 - 4 ; 50 - 79 ; 800 - 899 ; 9000 - 9999 9985-50 9985-79 9985-800 9985-899 9985-9000 9985-9999 9986-00 9986-39 Region name: Lithuania Country code(s): LT Language group: 9986 Publisher(s): 00 - 39 ; 400 - 899 ; 9000 - 9399 ; 940 - 969 ; 97 - 99 9986-400 9986-899 9986-9000 9986-9399 9986-940 9986-969 9986-97 9986-99 9987-00 9987-39 Region name: Tanzania Country code(s): TZ Language group: 9987 Publisher(s): 00 - 39 ; 400 - 879 ; 8800 - 9999 9987-400 9987-879 9987-8800 9987-9999 9988-0 9988-2 Region name: Ghana Country code(s): GH Language group: 9988 Publisher(s): 0 - 2 ; 30 - 54 ; 550 - 749 ; 7500 - 9999 9988-30 9988-54 9988-550 9988-749 9988-7500 9988-9999 9989-0 9989-2 Region name: Macedonia Country code(s): MK Language group: 9989 Publisher(s): 0 - 2 ; 30 - 59 ; 600 - 849 ; 8500 - 9999 9989-30 9989-59 9989-600 9989-849 9989-8500 9989-9999 99901-00 99901-49 Region name: Bahrain Country code(s): BH Language group: 99901 Publisher(s): 00 - 49 ; 500 - 999 99901-500 99901-999 99903-0 99903-1 Region name: Mauritius Country code(s): MU Language group: 99903 Publisher(s): 0 - 1 ; 20 - 89 ; 900 -999 99903-20 99903-89 99903-900 99903-999 99904-0 99904-5 Region name: Netherlands Antilles Country code(s): AN Language group: 99904 Publisher(s): 0 - 5 ; 60 - 89 ; 900 - 999 99904-60 99904-89 99904-900 99904-999 99905-0 99905-3 Region name: Bolivia Country code(s): BO Language group: 99905 Publisher(s): 0 - 3 ; 40 - 79 ; 800 - 999 99905-40 99905-79 99905-800 99905-999 99906-0 99906-2 Region name: Kuwait Country code(s): KW Language group: 99906 Publisher(s): 0 - 2 ; 30 - 59 ; 600 - 999 99906-30 99906-59 99906-600 99906-999 99908-0 99908-0 Region name: Malawi Country code(s): MW Language group: 99908 Publisher(s): 0 ; 10 - 89 ; 900 - 999 99908-10 99908-89 99908-900 99908-999 99909-0 99909-3 Region name: Malta Country code(s): MT Language group: 99909 Publisher(s): 0 - 3 ; 40 - 94 ; 950 - 999 99909-40 99909-94 99909-950 99909-999 99910-0 99910-2 Region name: Sierra Leone Country code(s): SL Language group: 99910 Publisher(s): 0 - 2 ; 30 - 89 ; 900 - 999 99910-30 99910-89 99910-900 99910-999 99911-00 99911-59 Region name: Lesotho Country code(s): LS Language group: 99911 Publisher(s): 00 - 59 ; 600 - 999 99911-600 99911-999 99912-0 99912-5 Region name: Botswana Country code(s): BW Language group: 99912 Publisher(s): 0 - 5 ; 60 - 89 ; 900 - 999 99912-60 99912-89 99912-900 99912-999 99914-0 99914-4 Region name: Suriname Country code(s): SR Language group: 99914 Publisher(s): 0 - 4 ; 50 - 89 ; 900 - 949 99914-50 99914-89 99914-900 99914-949 99915-0 99915-4 Region name: Maldives Country code(s): MV Language group: 99915 Publisher(s): 0 - 4 ; 50 - 79 ; 800 - 999 99915-50 99915-79 99915-800 99915-999 99916-0 99916-2 Region name: Namibia Country code(s): NA Language group: 99916 Publisher(s): 0 - 2 ; 30 - 69 ; 700 - 999 99916-30 99916-69 99916-700 99916-999 99917-0 99917-2 Region name: Brunei Darussalam Country code(s): BN Language group: 99917 Publisher(s): 0 - 2 ; 30 - 89 ; 900 - 999 99917-30 99917-89 99917-900 99917-999 99918-0 99918-3 Region name: Faroe Islands Country code(s): FO Language group: 99918 Publisher(s): 0 - 3 ; 40 - 89 ; 900 - 999 99918-40 99918-89 99918-900 99918-999 99919-0 99919-2 Region name: Benin Country code(s): BJ Language group: 99919 Publisher(s): 0 - 2 ; 40 - 69 ; 900 - 999 99919-40 99919-69 99919-900 99919-999 99920-0 99920-4 Region name: Andorra Country code(s): AD Language group: 99920 Publisher(s): 0 - 4 ; 50 - 89 ; 900 - 999 99920-50 99920-89 99920-900 99920-999 99921-0 99921-1 Region name: Qatar Country code(s): QA Language group: 99921 Publisher(s): 0 - 1 ; 20 - 69 ; 700 - 999 99921-20 99921-69 99921-700 99921-999 99922-0 99922-4 Region name: Guatemala Country code(s): GT Language group: 99922 Publisher(s): 0 - 4 ; 50 - 79 ; 800 - 900 ; ??????? - ??????? 99922-50 99922-79 99922-800 99922-900 99923-0 99923-1 Region name: El Salvador Country code(s): SV Language group: 99923 Publisher(s): 0 - 1 ; 20 - 79 ; 800 - 999 99923-20 99923-79 99923-800 99923-999 99924-0 99924-2 Region name: Nicaragua Country code(s): NI Language group: 99924 Publisher(s): 0 - 2 ; 30 - 79 ; 800 - 900 99924-30 99924-79 99924-800 99924-900 99925-0 99925-3 Region name: Paraguay Country code(s): PY Language group: 99925 Publisher(s): 0 - 3 ; 40 - 79 ; 800 - 999 99925-40 99925-79 99925-800 99925-999 99926-0 99926-0 Region name: Honduras Country code(s): HN Language group: 99926 Publisher(s): 0 ; 10 - 59 ; 600 - 999 99926-10 99926-59 99926-600 99926-999 99927-0 99927-2 Region name: Albania Country code(s): AL Language group: 99927 Publisher(s): 0 - 2 ; 30 - 59 ; 600 - 999 99927-30 99927-59 99927-600 99927-999 99928-0 99928-0 Region name: Georgia Country code(s): GE Language group: 99928 Publisher(s): 0 ; 10 - 79 ; 800 - 999 99928-10 99928-79 99928-800 99928-999 99930-0 99930-4 Region name: Armenia Country code(s): AM Language group: 99930 Publisher(s): 0 - 4 ; 50 - 79 ; 800 - 999 99930-50 99930-79 99930-800 99930-999 99931-0 99931-4 Region name: Seychelles Country code(s): SC Language group: 99931 Publisher(s): 0 - 4 ; 50 - 79 ; 800 - 999 99931-50 99931-79 99931-800 99931-999 99932-0 99932-0 Region name: Malta Country code(s): MT Language group: 99932 Publisher(s): 0 ; 10 - 59 ; 600 -999 99932-10 99932-59 99932-600 99932-999 99934-0 99934-1 Region name: Dominican Republic Country code(s): DO Language group: 99934 Publisher(s): 0 - 1 ; 20 - 79 ; 800 - 999 99934-20 99934-79 99934-800 99934-999 99935-0 99935-2 Region name: Haiti Country code(s): HT Language group: 99935 Publisher(s): 0 -2 ; 30 - 59 ; 600 - 999 99935-30 99935-59 99935-600 99935-999 99936-0 99936-0 Region name: Bhutan Country code(s): BT Language group: 99936 Publisher(s): 0 ; 10 - 59 ; 600 - 999 99936-10 99936-59 99936-600 99936-999 99937-0 99937-1 Region name: Macau Country code(s): MO Language group: 99937 Publisher(s): 0 - 1 ; 20 - 59 ; 600 - 999 99937-20 99937-59 99937-600 99937-999 99938-0 99938-2 Region name: Srpska (Republic of) Country code(s): BA Language group: 99938 Publisher(s): 0 - 2 ; 30 - 59 ; 600 - 999 99938-30 99938-59 99938-600 99938-999 1-00 1-09 Region name: English language Country code(s): ?? Language group: 1 Publisher(s): 00 - 09; 100 - 399; 4000 - 5499; 55000 - 86979; 869800 - 998999; 9990000 - 9999999 1-100 1-399 1-4000 1-5499 1-55000 1-86979 1-869800 1-998999 1-9990000 1-9999999 1-869800 1-998999 [24-Sep-2015] Additions from https://web.archive.org/web/20150801000000*/http://www.isbn-international.org/en/identifiers/List-of-Ranges.pdf 2-00 2-19 Region name: French language Country code(s): ?? Language group: 2 Publisher(s): 00 - 19; 200 - 349; 35000 - 39999; 400 - 699; 7000 - 8399; 84000 - 89999; 900000 - 949999; 9500000 - 9999999 2-200 2-349 2-35000 2-39999 2-400 2-699 2-7000 2-8399 2-84000 2-89999 2-900000 2-949999 2-9500000 2-9999999 3-00 3-02 Region name: German language Country code(s): ?? Language group: 3 Publisher(s): 00 - 02; 030 - 033; 0340 - 0369; 03700 - 03999; 04 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 949999; 9500000 - 9539999; 95400 - 96999; 9700000 - 9899999; 99000 - 99499; 99500 - 99999 3-030 3-033 3-0340 3-0369 3-03700 3-03999 3-04 3-19 3-200 3-699 3-7000 3-8499 3-85000 3-89999 3-900000 3-949999 3-9500000 3-9539999 3-95400 3-96999 3-9700000 3-9899999 3-99000 3-99499 3-99500 3-99999 4-00 4-19 Region name: Japan Country code(s): JP Language group: 4 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 949999; 9500000 - 9999999 4-200 4-699 4-7000 4-8499 4-85000 4-89999 4-900000 4-949999 4-9500000 4-9999999 5-00000 5-00499 Region name: former U.S.S.R Country code(s): ?? Language group: 5 Publisher(s): 00000 - 00499; 0050 - 0099; 01 - 19; 200 - 420; 4210 - 4299; 430 - 430; 4310 - 4399; 440 - 440; 4410 - 4499; 450 - 699; 7000 - 8499; 85000 - 89999; 900000 - 909999; 91000 - 91999; 9200 - 9299; 93000 - 94999; 9500000 - 9500999; 9501 - 9799; 98000 - 98999; 9900000 - 9909999; 9910 - 9999 5-0050 5-0099 5-01 5-19 5-200 5-420 5-4210 5-4299 5-430 5-430 5-4310 5-4399 5-440 5-440 5-4410 5-4499 5-450 5-699 5-7000 5-8499 5-85000 5-89999 5-900000 5-909999 5-91000 5-91999 5-9200 5-9299 5-93000 5-94999 5-9500000 5-9500999 5-9501 5-9799 5-98000 5-98999 5-9900000 5-9909999 5-9910 5-9999 600-00 600-09 Region name: Iran Country code(s): IR Language group: 600 Publisher(s): 00 - 09; 100 - 499; 5000 - 8999; 90000 - 99999 600-100 600-499 600-5000 600-8999 600-90000 600-99999 601-00 601-19 Region name: Kazakhstan Country code(s): KZ Language group: 601 Publisher(s): 00 - 19; 200 - 699; 7000 - 7999; 80000 - 84999; 85 - 99 601-200 601-699 601-7000 601-7999 601-80000 601-84999 601-85 601-99 602-00 602-07 Region name: Indonesia Country code(s): ID Language group: 602 Publisher(s): 00 - 07; 0800 - 0899; 0900 - 1099; 1100 - 1199; 1200 - 1399; 14000 - 14999; 1500 - 1699; 17000 - 17999; 18000 - 18999; 19000 - 19999; 200 - 674; 6750 - 6999; 70000 - 74999; 7500 - 7999; 8000 - 9499; 95000 - 99999 602-0800 602-0899 602-0900 602-1099 602-1100 602-1199 602-1200 602-1399 602-14000 602-14999 602-1500 602-1699 602-17000 602-17999 602-18000 602-18999 602-19000 602-19999 602-200 602-674 602-6750 602-6999 602-70000 602-74999 602-7500 602-7999 602-8000 602-9499 602-95000 602-99999 603-00 603-04 Region name: Saudi Arabia Country code(s): SA Language group: 603 Publisher(s): 00 - 04; 05 - 49; 500 - 799; 8000 - 8999; 90000 - 99999 603-05 603-49 603-500 603-799 603-8000 603-8999 603-90000 603-99999 604-0 604-4 Region name: Vietnam Country code(s): VN Language group: 604 Publisher(s): 0 - 4; 50 - 89; 900 - 979; 9800 - 9999 604-50 604-89 604-900 604-979 604-9800 604-9999 605-01 605-02 Region name: Turkey Country code(s): TR Language group: 605 Publisher(s): 01 - 02; 030 - 039; 04 - 09; 100 - 399; 4000 - 5999; 60000 - 89999; 9000 - 9999 605-030 605-039 605-04 605-09 605-100 605-399 605-4000 605-5999 605-60000 605-89999 605-9000 605-9999 606-0 606-0 Region name: Romania Country code(s): RO Language group: 606 Publisher(s): 0 - 0; 10 - 49; 500 - 799; 8000 - 9199; 92000 - 99999 606-10 606-49 606-500 606-799 606-8000 606-9199 606-92000 606-99999 607-00 607-39 Region name: Mexico Country code(s): MX Language group: 607 Publisher(s): 00 - 39; 400 - 749; 7500 - 9499; 95000 - 99999 607-400 607-749 607-7500 607-9499 607-95000 607-99999 608-0 608-0 Region name: Macedonia Country code(s): MK Language group: 608 Publisher(s): 0 - 0; 10 - 19; 200 - 449; 4500 - 6499; 65000 - 69999; 7 - 9 608-10 608-19 608-200 608-449 608-4500 608-6499 608-65000 608-69999 608-7 608-9 609-00 609-39 Region name: Lithuania Country code(s): LT Language group: 609 Publisher(s): 00 - 39; 400 - 799; 8000 - 9499; 95000 - 99999 609-400 609-799 609-8000 609-9499 609-95000 609-99999 612-00 612-29 Region name: Peru Country code(s): PE Language group: 612 Publisher(s): 00 - 29; 300 - 399; 4000 - 4499; 45000 - 49999; 50 - 99 612-300 612-399 612-4000 612-4499 612-45000 612-49999 612-50 612-99 613-0 613-9 Region name: Mauritius Country code(s): MU Language group: 613 Publisher(s): 0 - 9 614-00 614-39 Region name: Lebanon Country code(s): LB Language group: 614 Publisher(s): 00 - 39; 400 - 799; 8000 - 9499; 95000 - 99999 614-400 614-799 614-8000 614-9499 614-95000 614-99999 615-00 615-09 Region name: Hungary Country code(s): HU Language group: 615 Publisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 89999 615-100 615-499 615-5000 615-7999 615-80000 615-89999 616-00 616-19 Region name: Thailand Country code(s): TH Language group: 616 Publisher(s): 00 - 19; 200 - 699; 7000 - 8999; 90000 - 99999 616-200 616-699 616-7000 616-8999 616-90000 616-99999 617-00 617-49 Region name: Ukraine Country code(s): UA Language group: 617 Publisher(s): 00 - 49; 500 - 699; 7000 - 8999; 90000 - 99999 617-500 617-699 617-7000 617-8999 617-90000 617-99999 618-00 618-19 Region name: Greece Country code(s): GR Language group: 618 Publisher(s): 00 - 19; 200 - 499; 5000 - 7999; 80000 - 99999 618-200 618-499 618-5000 618-7999 618-80000 618-99999 619-00 619-14 Region name: Bulgaria Country code(s): BG Language group: 619 Publisher(s): 00 - 14; 150 - 699; 7000 - 8999; 90000 - 99999 619-150 619-699 619-7000 619-8999 619-90000 619-99999 620-0 620-9 Region name: Mauritius Country code(s): MU Language group: 620 Publisher(s): 0 - 9 621-00 621-29 Region name: Philippines Country code(s): PH Language group: 621 Publisher(s): 00 - 29; 400 - 599; 8000 - 8999; 95000 - 99999 621-400 621-599 621-8000 621-8999 621-95000 621-99999 7-00 7-09 Region name: China, People's Republic Country code(s): CN Language group: 7 Publisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 89999; 900000 - 999999 7-100 7-499 7-5000 7-7999 7-80000 7-89999 7-900000 7-999999 80-00 80-19 Region name: former Czechoslovakia Country code(s): ?? Language group: 80 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 999999 80-200 80-699 80-7000 80-8499 80-85000 80-89999 80-900000 80-999999 81-00 81-19 Region name: India Country code(s): IN Language group: 81 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 900000 - 999999 81-200 81-699 81-7000 81-8499 81-85000 81-89999 81-900000 81-999999 82-00 82-19 Region name: Norway Country code(s): NO Language group: 82 Publisher(s): 00 - 19; 200 - 689; 690000 - 699999; 7000 - 8999; 90000 - 98999; 990000 - 999999 82-200 82-689 82-690000 82-699999 82-7000 82-8999 82-90000 82-98999 82-990000 82-999999 83-00 83-19 Region name: Poland Country code(s): PL Language group: 83 Publisher(s): 00 - 19; 200 - 599; 60000 - 69999; 7000 - 8499; 85000 - 89999; 900000 - 999999 83-200 83-599 83-60000 83-69999 83-7000 83-8499 83-85000 83-89999 83-900000 83-999999 84-00 84-13 Region name: Spain Country code(s): ES Language group: 84 Publisher(s): 00 - 13; 140 - 149; 15000 - 19999; 200 - 699; 7000 - 8499; 85000 - 89999; 9000 - 9199; 920000 - 923999; 92400 - 92999; 930000 - 949999; 95000 - 96999; 9700 - 9999 84-140 84-149 84-15000 84-19999 84-200 84-699 84-7000 84-8499 84-85000 84-89999 84-9000 84-9199 84-920000 84-923999 84-92400 84-92999 84-930000 84-949999 84-95000 84-96999 84-9700 84-9999 85-00 85-19 Region name: Brazil Country code(s): BR Language group: 85 Publisher(s): 00 - 19; 200 - 549; 5500 - 5999; 60000 - 69999; 7000 - 8499; 85000 - 89999; 900000 - 959999; 96 - 97; 98000 - 99999 85-200 85-549 85-5500 85-5999 85-60000 85-69999 85-7000 85-8499 85-85000 85-89999 85-900000 85-959999 85-96 85-97 85-98000 85-99999 86-00 86-29 Region name: former Yugoslavia Country code(s): ?? Language group: 86 Publisher(s): 00 - 29; 300 - 599; 6000 - 7999; 80000 - 89999; 900000 - 999999 86-300 86-599 86-6000 86-7999 86-80000 86-89999 86-900000 86-999999 87-00 87-29 Region name: Denmark Country code(s): DK Language group: 87 Publisher(s): 00 - 29; 400 - 649; 7000 - 7999; 85000 - 94999; 970000 - 999999 87-400 87-649 87-7000 87-7999 87-85000 87-94999 87-970000 87-999999 88-00 88-19 Region name: Italy Country code(s): IT Language group: 88 Publisher(s): 00 - 19; 200 - 599; 6000 - 8499; 85000 - 89999; 900000 - 909999; 910 - 929; 9300 - 9399; 940000 - 949999; 95000 - 99999 88-200 88-599 88-6000 88-8499 88-85000 88-89999 88-900000 88-909999 88-910 88-929 88-9300 88-9399 88-940000 88-949999 88-95000 88-99999 89-00 89-24 Region name: Korea, Republic Country code(s): KR Language group: 89 Publisher(s): 00 - 24; 250 - 549; 5500 - 8499; 85000 - 94999; 950000 - 969999; 97000 - 98999; 990 - 999 89-250 89-549 89-5500 89-8499 89-85000 89-94999 89-950000 89-969999 89-97000 89-98999 89-990 89-999 90-00 90-19 Region name: Netherlands Country code(s): NL Language group: 90 Publisher(s): 00 - 19; 200 - 499; 5000 - 6999; 70000 - 79999; 800000 - 849999; 8500 - 8999; 90 - 90; 94 - 94 90-200 90-499 90-5000 90-6999 90-70000 90-79999 90-800000 90-849999 90-8500 90-8999 90-90 90-90 90-94 90-94 91-0 91-1 Region name: Sweden Country code(s): SE Language group: 91 Publisher(s): 0 - 1; 20 - 49; 500 - 649; 7000 - 7999; 85000 - 94999; 970000 - 999999 91-20 91-49 91-500 91-649 91-7000 91-7999 91-85000 91-94999 91-970000 91-999999 92-0 92-5 Region name: International NGO Publishers and EU Organizations Country code(s): ?? Language group: 92 Publisher(s): 0 - 5; 60 - 79; 800 - 899; 9000 - 9499; 95000 - 98999; 990000 - 999999 92-60 92-79 92-800 92-899 92-9000 92-9499 92-95000 92-98999 92-990000 92-999999 93-00 93-09 Region name: India Country code(s): IN Language group: 93 Publisher(s): 00 - 09; 100 - 499; 5000 - 7999; 80000 - 94999; 950000 - 999999 93-100 93-499 93-5000 93-7999 93-80000 93-94999 93-950000 93-999999 94-000 94-599 Region name: Netherlands Country code(s): NL Language group: 94 Publisher(s): 000 - 599; 6000 - 8999; 90000 - 99999 94-6000 94-8999 94-90000 94-99999 950-00 950-49 Region name: Argentina Country code(s): AR Language group: 950 Publisher(s): 00 - 49; 500 - 899; 9000 - 9899; 99000 - 99999 950-500 950-899 950-9000 950-9899 950-99000 950-99999 951-0 951-1 Region name: Finland Country code(s): FI Language group: 951 Publisher(s): 0 - 1; 20 - 54; 550 - 889; 8900 - 9499; 95000 - 99999 951-20 951-54 951-550 951-889 951-8900 951-9499 951-95000 951-99999 952-00 952-19 Region name: Finland Country code(s): FI Language group: 952 Publisher(s): 00 - 19; 200 - 499; 5000 - 5999; 60 - 65; 6600 - 6699; 67000 - 69999; 7000 - 7999; 80 - 94; 9500 - 9899; 99000 - 99999 952-200 952-499 952-5000 952-5999 952-60 952-65 952-6600 952-6699 952-67000 952-69999 952-7000 952-7999 952-80 952-94 952-9500 952-9899 952-99000 952-99999 953-0 953-0 Region name: Croatia Country code(s): HR Language group: 953 Publisher(s): 0 - 0; 10 - 14; 150 - 509; 51 - 54; 55000 - 59999; 6000 - 9499; 95000 - 99999 953-10 953-14 953-150 953-509 953-51 953-54 953-55000 953-59999 953-6000 953-9499 953-95000 953-99999 954-00 954-28 Region name: Bulgaria Country code(s): BG Language group: 954 Publisher(s): 00 - 28; 2900 - 2999; 300 - 799; 8000 - 8999; 90000 - 92999; 9300 - 9999 954-2900 954-2999 954-300 954-799 954-8000 954-8999 954-90000 954-92999 954-9300 954-9999 955-0000 955-1999 Region name: Sri Lanka Country code(s): LK Language group: 955 Publisher(s): 0000 - 1999; 20 - 40; 41000 - 43999; 44000 - 44999; 4500 - 4999; 50000 - 54999; 550 - 749; 7500 - 7999; 8000 - 9499; 95000 - 99999 955-20 955-40 955-41000 955-43999 955-44000 955-44999 955-4500 955-4999 955-50000 955-54999 955-550 955-749 955-7500 955-7999 955-8000 955-9499 955-95000 955-99999 956-00 956-19 Region name: Chile Country code(s): CL Language group: 956 Publisher(s): 00 - 19; 200 - 699; 7000 - 9999 956-200 956-699 956-7000 956-9999 957-00 957-02 Region name: Taiwan Country code(s): TW Language group: 957 Publisher(s): 00 - 02; 0300 - 0499; 05 - 19; 2000 - 2099; 21 - 27; 28000 - 30999; 31 - 43; 440 - 819; 8200 - 9699; 97000 - 99999 957-0300 957-0499 957-05 957-19 957-2000 957-2099 957-21 957-27 957-28000 957-30999 957-31 957-43 957-440 957-819 957-8200 957-9699 957-97000 957-99999 958-00 958-56 Region name: Colombia Country code(s): CO Language group: 958 Publisher(s): 00 - 56; 57000 - 59999; 600 - 799; 8000 - 9499; 95000 - 99999 958-57000 958-59999 958-600 958-799 958-8000 958-9499 958-95000 958-99999 959-00 959-19 Region name: Cuba Country code(s): CU Language group: 959 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 99999 959-200 959-699 959-7000 959-8499 959-85000 959-99999 960-00 960-19 Region name: Greece Country code(s): GR Language group: 960 Publisher(s): 00 - 19; 200 - 659; 6600 - 6899; 690 - 699; 7000 - 8499; 85000 - 92999; 93 - 93; 9400 - 9799; 98000 - 99999 960-200 960-659 960-6600 960-6899 960-690 960-699 960-7000 960-8499 960-85000 960-92999 960-93 960-93 960-9400 960-9799 960-98000 960-99999 961-00 961-19 Region name: Slovenia Country code(s): SI Language group: 961 Publisher(s): 00 - 19; 200 - 599; 6000 - 8999; 90000 - 94999 961-200 961-599 961-6000 961-8999 961-90000 961-94999 962-00 962-19 Region name: Hong Kong, China Country code(s): HK Language group: 962 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 86999; 8700 - 8999; 900 - 999 962-200 962-699 962-7000 962-8499 962-85000 962-86999 962-8700 962-8999 962-900 962-999 963-00 963-19 Region name: Hungary Country code(s): HU Language group: 963 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 9000 - 9999 963-200 963-699 963-7000 963-8499 963-85000 963-89999 963-9000 963-9999 964-00 964-14 Region name: Iran Country code(s): IR Language group: 964 Publisher(s): 00 - 14; 150 - 249; 2500 - 2999; 300 - 549; 5500 - 8999; 90000 - 96999; 970 - 989; 9900 - 9999 964-150 964-249 964-2500 964-2999 964-300 964-549 964-5500 964-8999 964-90000 964-96999 964-970 964-989 964-9900 964-9999 965-00 965-19 Region name: Israel Country code(s): IL Language group: 965 Publisher(s): 00 - 19; 200 - 599; 7000 - 7999; 90000 - 99999 965-200 965-599 965-7000 965-7999 965-90000 965-99999 966-00 966-12 Region name: Ukraine Country code(s): UA Language group: 966 Publisher(s): 00 - 12; 130 - 139; 14 - 14; 1500 - 1699; 170 - 199; 2000 - 2789; 279 - 289; 2900 - 2999; 300 - 699; 7000 - 8999; 90000 - 90999; 910 - 949; 95000 - 97999; 980 - 999 966-130 966-139 966-14 966-14 966-1500 966-1699 966-170 966-199 966-2000 966-2789 966-279 966-289 966-2900 966-2999 966-300 966-699 966-7000 966-8999 966-90000 966-90999 966-910 966-949 966-95000 966-97999 966-980 966-999 967-00 967-00 Region name: Malaysia Country code(s): MY Language group: 967 Publisher(s): 00 - 00; 0100 - 0999; 10000 - 19999; 300 - 499; 5000 - 5999; 60 - 89; 900 - 989; 9900 - 9989; 99900 - 99999 967-0100 967-0999 967-10000 967-19999 967-300 967-499 967-5000 967-5999 967-60 967-89 967-900 967-989 967-9900 967-9989 967-99900 967-99999 968-01 968-39 Region name: Mexico Country code(s): MX Language group: 968 Publisher(s): 01 - 39; 400 - 499; 5000 - 7999; 800 - 899; 9000 - 9999 968-400 968-499 968-5000 968-7999 968-800 968-899 968-9000 968-9999 969-0 969-1 Region name: Pakistan Country code(s): PK Language group: 969 Publisher(s): 0 - 1; 20 - 22; 23000 - 23999; 24 - 39; 400 - 749; 7500 - 9999 969-20 969-22 969-23000 969-23999 969-24 969-39 969-400 969-749 969-7500 969-9999 970-01 970-59 Region name: Mexico Country code(s): MX Language group: 970 Publisher(s): 01 - 59; 600 - 899; 9000 - 9099; 91000 - 96999; 9700 - 9999 970-600 970-899 970-9000 970-9099 970-91000 970-96999 970-9700 970-9999 971-000 971-015 Region name: Philippines Country code(s): PH Language group: 971 Publisher(s): 000 - 015; 0160 - 0199; 02 - 02; 0300 - 0599; 06 - 49; 500 - 849; 8500 - 9099; 91000 - 95999; 9600 - 9699; 97 - 98; 9900 - 9999 971-0160 971-0199 971-02 971-02 971-0300 971-0599 971-06 971-49 971-500 971-849 971-8500 971-9099 971-91000 971-95999 971-9600 971-9699 971-97 971-98 971-9900 971-9999 972-0 972-1 Region name: Portugal Country code(s): PT Language group: 972 Publisher(s): 0 - 1; 20 - 54; 550 - 799; 8000 - 9499; 95000 - 99999 972-20 972-54 972-550 972-799 972-8000 972-9499 972-95000 972-99999 973-0 973-0 Region name: Romania Country code(s): RO Language group: 973 Publisher(s): 0 - 0; 100 - 169; 1700 - 1999; 20 - 54; 550 - 759; 7600 - 8499; 85000 - 88999; 8900 - 9499; 95000 - 99999 973-100 973-169 973-1700 973-1999 973-20 973-54 973-550 973-759 973-7600 973-8499 973-85000 973-88999 973-8900 973-9499 973-95000 973-99999 974-00 974-19 Region name: Thailand Country code(s): TH Language group: 974 Publisher(s): 00 - 19; 200 - 699; 7000 - 8499; 85000 - 89999; 90000 - 94999; 9500 - 9999 974-200 974-699 974-7000 974-8499 974-85000 974-89999 974-90000 974-94999 974-9500 974-9999 975-00000 975-01999 Region name: Turkey Country code(s): TR Language group: 975 Publisher(s): 00000 - 01999; 02 - 24; 250 - 599; 6000 - 9199; 92000 - 98999; 990 - 999 975-02 975-24 975-250 975-599 975-6000 975-9199 975-92000 975-98999 975-990 975-999 976-0 976-3 Region name: Caribbean Community Country code(s): ?? Language group: 976 Publisher(s): 0 - 3; 40 - 59; 600 - 799; 8000 - 9499; 95000 - 99999 976-40 976-59 976-600 976-799 976-8000 976-9499 976-95000 976-99999 977-00 977-19 Region name: Egypt Country code(s): EG Language group: 977 Publisher(s): 00 - 19; 200 - 499; 5000 - 6999; 700 - 849; 85000 - 89999; 90 - 99 977-200 977-499 977-5000 977-6999 977-700 977-849 977-85000 977-89999 977-90 977-99 978-000 978-199 Region name: Nigeria Country code(s): NG Language group: 978 Publisher(s): 000 - 199; 2000 - 2999; 30000 - 79999; 8000 - 8999; 900 - 999 978-2000 978-2999 978-30000 978-79999 978-8000 978-8999 978-900 978-999 979-000 979-099 Region name: Indonesia Country code(s): ID Language group: 979 Publisher(s): 000 - 099; 1000 - 1499; 15000 - 19999; 20 - 29; 3000 - 3999; 400 - 799; 8000 - 9499; 95000 - 99999 979-1000 979-1499 979-15000 979-19999 979-20 979-29 979-3000 979-3999 979-400 979-799 979-8000 979-9499 979-95000 979-99999 980-00 980-19 Region name: Venezuela Country code(s): VE Language group: 980 Publisher(s): 00 - 19; 200 - 599; 6000 - 9999 980-200 980-599 980-6000 980-9999 981-00 981-16 Region name: Singapore Country code(s): SG Language group: 981 Publisher(s): 00 - 16; 17000 - 19999; 200 - 299; 3000 - 3099; 310 - 399; 4000 - 9999 981-17000 981-19999 981-200 981-299 981-3000 981-3099 981-310 981-399 981-4000 981-9999 982-00 982-09 Region name: South Pacific Country code(s): ?? Language group: 982 Publisher(s): 00 - 09; 100 - 699; 70 - 89; 9000 - 9799; 98000 - 99999 982-100 982-699 982-70 982-89 982-9000 982-9799 982-98000 982-99999 983-00 983-01 Region name: Malaysia Country code(s): MY Language group: 983 Publisher(s): 00 - 01; 020 - 199; 2000 - 3999; 40000 - 44999; 45 - 49; 50 - 79; 800 - 899; 9000 - 9899; 99000 - 99999 983-020 983-199 983-2000 983-3999 983-40000 983-44999 983-45 983-49 983-50 983-79 983-800 983-899 983-9000 983-9899 983-99000 983-99999 984-00 984-39 Region name: Bangladesh Country code(s): BD Language group: 984 Publisher(s): 00 - 39; 400 - 799; 8000 - 8999; 90000 - 99999 984-400 984-799 984-8000 984-8999 984-90000 984-99999 985-00 985-39 Region name: Belarus Country code(s): BY Language group: 985 Publisher(s): 00 - 39; 400 - 599; 6000 - 8999; 90000 - 99999 985-400 985-599 985-6000 985-8999 985-90000 985-99999 986-00 986-11 Region name: Taiwan Country code(s): TW Language group: 986 Publisher(s): 00 - 11; 120 - 559; 5600 - 7999; 80000 - 99999 986-120 986-559 986-5600 986-7999 986-80000 986-99999 987-00 987-09 Region name: Argentina Country code(s): AR Language group: 987 Publisher(s): 00 - 09; 1000 - 1999; 20000 - 29999; 30 - 35; 3600 - 3999; 4000 - 4199; 42 - 43; 4400 - 4499; 45000 - 48999; 4900 - 4999; 500 - 899; 9000 - 9499; 95000 - 99999 987-1000 987-1999 987-20000 987-29999 987-30 987-35 987-3600 987-3999 987-4000 987-4199 987-42 987-43 987-4400 987-4499 987-45000 987-48999 987-4900 987-4999 987-500 987-899 987-9000 987-9499 987-95000 987-99999 988-00 988-11 Region name: Hong Kong, China Country code(s): HK Language group: 988 Publisher(s): 00 - 11; 12000 - 14999; 15000 - 16999; 17000 - 19999; 200 - 769; 77000 - 79999; 8000 - 9699; 97000 - 99999 988-12000 988-14999 988-15000 988-16999 988-17000 988-19999 988-200 988-769 988-77000 988-79999 988-8000 988-9699 988-97000 988-99999 989-0 989-1 Region name: Portugal Country code(s): PT Language group: 989 Publisher(s): 0 - 1; 20 - 54; 550 - 799; 8000 - 9499; 95000 - 99999 989-20 989-54 989-550 989-799 989-8000 989-9499 989-95000 989-99999 9924-30 9924-39 Region name: Cambodia Country code(s): KH Language group: 9924 Publisher(s): 30 - 39; 500 - 649; 9000 - 9999 9924-500 9924-649 9924-9000 9924-9999 9925-0 9925-2 Region name: Cyprus Country code(s): CY Language group: 9925 Publisher(s): 0 - 2; 30 - 54; 550 - 734; 7350 - 9999 9925-30 9925-54 9925-550 9925-734 9925-7350 9925-9999 9926-0 9926-1 Region name: Bosnia and Herzegovina Country code(s): BA Language group: 9926 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999 9926-20 9926-39 9926-400 9926-799 9926-8000 9926-9999 9927-00 9927-09 Region name: Qatar Country code(s): QA Language group: 9927 Publisher(s): 00 - 09; 100 - 399; 4000 - 4999 9927-100 9927-399 9927-4000 9927-4999 9928-00 9928-09 Region name: Albania Country code(s): AL Language group: 9928 Publisher(s): 00 - 09; 100 - 399; 4000 - 4999 9928-100 9928-399 9928-4000 9928-4999 9929-0 9929-3 Region name: Guatemala Country code(s): GT Language group: 9929 Publisher(s): 0 - 3; 40 - 54; 550 - 799; 8000 - 9999 9929-40 9929-54 9929-550 9929-799 9929-8000 9929-9999 9930-00 9930-49 Region name: Costa Rica Country code(s): CR Language group: 9930 Publisher(s): 00 - 49; 500 - 939; 9400 - 9999 9930-500 9930-939 9930-9400 9930-9999 9931-00 9931-29 Region name: Algeria Country code(s): DZ Language group: 9931 Publisher(s): 00 - 29; 300 - 899; 9000 - 9999 9931-300 9931-899 9931-9000 9931-9999 9932-00 9932-39 Region name: Lao People's Democratic Republic Country code(s): LA Language group: 9932 Publisher(s): 00 - 39; 400 - 849; 8500 - 9999 9932-400 9932-849 9932-8500 9932-9999 9933-0 9933-0 Region name: Syria Country code(s): SY Language group: 9933 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999 9933-10 9933-39 9933-400 9933-899 9933-9000 9933-9999 9934-0 9934-0 Region name: Latvia Country code(s): LV Language group: 9934 Publisher(s): 0 - 0; 10 - 49; 500 - 799; 8000 - 9999 9934-10 9934-49 9934-500 9934-799 9934-8000 9934-9999 9935-0 9935-0 Region name: Iceland Country code(s): IS Language group: 9935 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999 9935-10 9935-39 9935-400 9935-899 9935-9000 9935-9999 9936-0 9936-1 Region name: Afghanistan Country code(s): AF Language group: 9936 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999 9936-20 9936-39 9936-400 9936-799 9936-8000 9936-9999 9937-0 9937-2 Region name: Nepal Country code(s): NP Language group: 9937 Publisher(s): 0 - 2; 30 - 49; 500 - 799; 8000 - 9999 9937-30 9937-49 9937-500 9937-799 9937-8000 9937-9999 9938-00 9938-79 Region name: Tunisia Country code(s): TN Language group: 9938 Publisher(s): 00 - 79; 800 - 949; 9500 - 9999 9938-800 9938-949 9938-9500 9938-9999 9939-0 9939-4 Region name: Armenia Country code(s): AM Language group: 9939 Publisher(s): 0 - 4; 50 - 79; 800 - 899; 9000 - 9999 9939-50 9939-79 9939-800 9939-899 9939-9000 9939-9999 9940-0 9940-1 Region name: Montenegro Country code(s): ME Language group: 9940 Publisher(s): 0 - 1; 20 - 49; 500 - 899; 9000 - 9999 9940-20 9940-49 9940-500 9940-899 9940-9000 9940-9999 9941-0 9941-0 Region name: Georgia Country code(s): GE Language group: 9941 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999 9941-10 9941-39 9941-400 9941-899 9941-9000 9941-9999 9942-00 9942-84 Region name: Ecuador Country code(s): EC Language group: 9942 Publisher(s): 00 - 84; 8500 - 8999; 900 - 984; 9850 - 9999 9942-8500 9942-8999 9942-900 9942-984 9942-9850 9942-9999 9943-00 9943-29 Region name: Uzbekistan Country code(s): UZ Language group: 9943 Publisher(s): 00 - 29; 300 - 399; 4000 - 9749; 975 - 999 9943-300 9943-399 9943-4000 9943-9749 9943-975 9943-999 9944-0000 9944-0999 Region name: Turkey Country code(s): TR Language group: 9944 Publisher(s): 0000 - 0999; 100 - 499; 5000 - 5999; 60 - 69; 700 - 799; 80 - 89; 900 - 999 9944-100 9944-499 9944-5000 9944-5999 9944-60 9944-69 9944-700 9944-799 9944-80 9944-89 9944-900 9944-999 9945-00 9945-00 Region name: Dominican Republic Country code(s): DO Language group: 9945 Publisher(s): 00 - 00; 010 - 079; 08 - 39; 400 - 569; 57 - 57; 580 - 849; 8500 - 9999 9945-010 9945-079 9945-08 9945-39 9945-400 9945-569 9945-57 9945-57 9945-580 9945-849 9945-8500 9945-9999 9946-0 9946-1 Region name: Korea, P.D.R. Country code(s): KP Language group: 9946 Publisher(s): 0 - 1; 20 - 39; 400 - 899; 9000 - 9999 9946-20 9946-39 9946-400 9946-899 9946-9000 9946-9999 9947-0 9947-1 Region name: Algeria Country code(s): DZ Language group: 9947 Publisher(s): 0 - 1; 20 - 79; 800 - 999 9947-20 9947-79 9947-800 9947-999 9948-00 9948-39 Region name: United Arab Emirates Country code(s): AE Language group: 9948 Publisher(s): 00 - 39; 400 - 849; 8500 - 9999 9948-400 9948-849 9948-8500 9948-9999 9949-0 9949-0 Region name: Estonia Country code(s): EE Language group: 9949 Publisher(s): 0 - 0; 10 - 39; 400 - 749; 75 - 89; 9000 - 9999 9949-10 9949-39 9949-400 9949-749 9949-75 9949-89 9949-9000 9949-9999 9950-00 9950-29 Region name: Palestine Country code(s): PS Language group: 9950 Publisher(s): 00 - 29; 300 - 849; 8500 - 9999 9950-300 9950-849 9950-8500 9950-9999 9951-00 9951-39 Region name: Kosova Country code(s): ?? Language group: 9951 Publisher(s): 00 - 39; 400 - 849; 8500 - 9999 9951-400 9951-849 9951-8500 9951-9999 9952-0 9952-1 Region name: Azerbaijan Country code(s): AZ Language group: 9952 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999 9952-20 9952-39 9952-400 9952-799 9952-8000 9952-9999 9953-0 9953-0 Region name: Lebanon Country code(s): LB Language group: 9953 Publisher(s): 0 - 0; 10 - 39; 400 - 599; 60 - 89; 9000 - 9999 9953-10 9953-39 9953-400 9953-599 9953-60 9953-89 9953-9000 9953-9999 9954-0 9954-1 Region name: Morocco Country code(s): MA Language group: 9954 Publisher(s): 0 - 1; 20 - 39; 400 - 799; 8000 - 9999 9954-20 9954-39 9954-400 9954-799 9954-8000 9954-9999 9955-00 9955-39 Region name: Lithuania Country code(s): LT Language group: 9955 Publisher(s): 00 - 39; 400 - 929; 9300 - 9999 9955-400 9955-929 9955-9300 9955-9999 9956-0 9956-0 Region name: Cameroon Country code(s): CM Language group: 9956 Publisher(s): 0 - 0; 10 - 39; 400 - 899; 9000 - 9999 9956-10 9956-39 9956-400 9956-899 9956-9000 9956-9999 9957-00 9957-39 Region name: Jordan Country code(s): JO Language group: 9957 Publisher(s): 00 - 39; 400 - 649; 65 - 69; 70 - 84; 8500 - 8799; 88 - 99 9957-400 9957-649 9957-65 9957-69 9957-70 9957-84 9957-8500 9957-8799 9957-88 9957-99 9958-00 9958-01 Region name: Bosnia and Herzegovina Country code(s): BA Language group: 9958 Publisher(s): 00 - 01; 020 - 029; 0300 - 0399; 040 - 089; 0900 - 0999; 10 - 18; 1900 - 1999; 20 - 49; 500 - 899; 9000 - 9999 9958-020 9958-029 9958-0300 9958-0399 9958-040 9958-089 9958-0900 9958-0999 9958-10 9958-18 9958-1900 9958-1999 9958-20 9958-49 9958-500 9958-899 9958-9000 9958-9999 9959-0 9959-1 Region name: Libya Country code(s): LY Language group: 9959 Publisher(s): 0 - 1; 20 - 79; 800 - 949; 9500 - 9699; 970 - 979; 98 - 99 9959-20 9959-79 9959-800 9959-949 9959-9500 9959-9699 9959-970 9959-979 9959-98 9959-99 9960-00 9960-59 Region name: Saudi Arabia Country code(s): SA Language group: 9960 Publisher(s): 00 - 59; 600 - 899; 9000 - 9999 9960-600 9960-899 9960-9000 9960-9999 9961-0 9961-2 Region name: Algeria Country code(s): DZ Language group: 9961 Publisher(s): 0 - 2; 30 - 69; 700 - 949; 9500 - 9999 9961-30 9961-69 9961-700 9961-949 9961-9500 9961-9999 9962-00 9962-54 Region name: Panama Country code(s): PA Language group: 9962 Publisher(s): 00 - 54; 5500 - 5599; 56 - 59; 600 - 849; 8500 - 9999 9962-5500 9962-5599 9962-56 9962-59 9962-600 9962-849 9962-8500 9962-9999 9963-0 9963-1 Region name: Cyprus Country code(s): CY Language group: 9963 Publisher(s): 0 - 1; 2000 - 2499; 250 - 279; 2800 - 2999; 30 - 54; 550 - 734; 7350 - 7499; 7500 - 9999 9963-2000 9963-2499 9963-250 9963-279 9963-2800 9963-2999 9963-30 9963-54 9963-550 9963-734 9963-7350 9963-7499 9963-7500 9963-9999 9964-0 9964-6 Region name: Ghana Country code(s): GH Language group: 9964 Publisher(s): 0 - 6; 70 - 94; 950 - 999 9964-70 9964-94 9964-950 9964-999 9965-00 9965-39 Region name: Kazakhstan Country code(s): KZ Language group: 9965 Publisher(s): 00 - 39; 400 - 899; 9000 - 9999 9965-400 9965-899 9965-9000 9965-9999 9966-000 9966-149 Region name: Kenya Country code(s): KE Language group: 9966 Publisher(s): 000 - 149; 1500 - 1999; 20 - 69; 7000 - 7499; 750 - 959; 9600 - 9999 9966-1500 9966-1999 9966-20 9966-69 9966-7000 9966-7499 9966-750 9966-959 9966-9600 9966-9999 9967-00 9967-39 Region name: Kyrgyz Republic Country code(s): KG Language group: 9967 Publisher(s): 00 - 39; 400 - 899; 9000 - 9999 9967-400 9967-899 9967-9000 9967-9999 9968-00 9968-49 Region name: Costa Rica Country code(s): CR Language group: 9968 Publisher(s): 00 - 49; 500 - 939; 9400 - 9999 9968-500 9968-939 9968-9400 9968-9999 9970-00 9970-39 Region name: Uganda Country code(s): UG Language group: 9970 Publisher(s): 00 - 39; 400 - 899; 9000 - 9999 9970-400 9970-899 9970-9000 9970-9999 9971-0 9971-5 Region name: Singapore Country code(s): SG Language group: 9971 Publisher(s): 0 - 5; 60 - 89; 900 - 989; 9900 - 9999 9971-60 9971-89 9971-900 9971-989 9971-9900 9971-9999 9972-00 9972-09 Region name: Peru Country code(s): PE Language group: 9972 Publisher(s): 00 - 09; 1 - 1; 200 - 249; 2500 - 2999; 30 - 59; 600 - 899; 9000 - 9999 9972-1 9972-1 9972-200 9972-249 9972-2500 9972-2999 9972-30 9972-59 9972-600 9972-899 9972-9000 9972-9999 9973-00 9973-05 Region name: Tunisia Country code(s): TN Language group: 9973 Publisher(s): 00 - 05; 060 - 089; 0900 - 0999; 10 - 69; 700 - 969; 9700 - 9999 9973-060 9973-089 9973-0900 9973-0999 9973-10 9973-69 9973-700 9973-969 9973-9700 9973-9999 9974-0 9974-2 Region name: Uruguay Country code(s): UY Language group: 9974 Publisher(s): 0 - 2; 30 - 54; 550 - 749; 7500 - 9099; 91 - 94; 95 - 99 9974-30 9974-54 9974-550 9974-749 9974-7500 9974-9099 9974-91 9974-94 9974-95 9974-99 9975-0 9975-0 Region name: Moldova Country code(s): MD Language group: 9975 Publisher(s): 0 - 0; 100 - 299; 3000 - 3999; 4000 - 4499; 45 - 89; 900 - 949; 9500 - 9999 9975-100 9975-299 9975-3000 9975-3999 9975-4000 9975-4499 9975-45 9975-89 9975-900 9975-949 9975-9500 9975-9999 9976-0 9976-5 Region name: Tanzania Country code(s): TZ Language group: 9976 Publisher(s): 0 - 5; 60 - 89; 900 - 989; 9900 - 9999 9976-60 9976-89 9976-900 9976-989 9976-9900 9976-9999 9977-00 9977-89 Region name: Costa Rica Country code(s): CR Language group: 9977 Publisher(s): 00 - 89; 900 - 989; 9900 - 9999 9977-900 9977-989 9977-9900 9977-9999 9978-00 9978-29 Region name: Ecuador Country code(s): EC Language group: 9978 Publisher(s): 00 - 29; 300 - 399; 40 - 94; 950 - 989; 9900 - 9999 9978-300 9978-399 9978-40 9978-94 9978-950 9978-989 9978-9900 9978-9999 9979-0 9979-4 Region name: Iceland Country code(s): IS Language group: 9979 Publisher(s): 0 - 4; 50 - 64; 650 - 659; 66 - 75; 760 - 899; 9000 - 9999 9979-50 9979-64 9979-650 9979-659 9979-66 9979-75 9979-760 9979-899 9979-9000 9979-9999 9980-0 9980-3 Region name: Papua New Guinea Country code(s): PG Language group: 9980 Publisher(s): 0 - 3; 40 - 89; 900 - 989; 9900 - 9999 9980-40 9980-89 9980-900 9980-989 9980-9900 9980-9999 9981-00 9981-09 Region name: Morocco Country code(s): MA Language group: 9981 Publisher(s): 00 - 09; 100 - 159; 1600 - 1999; 20 - 79; 800 - 949; 9500 - 9999 9981-100 9981-159 9981-1600 9981-1999 9981-20 9981-79 9981-800 9981-949 9981-9500 9981-9999 9982-00 9982-79 Region name: Zambia Country code(s): ZM Language group: 9982 Publisher(s): 00 - 79; 800 - 989; 9900 - 9999 9982-800 9982-989 9982-9900 9982-9999 9983-80 9983-94 Region name: Gambia Country code(s): GM Language group: 9983 Publisher(s): 80 - 94; 950 - 989; 9900 - 9999 9983-950 9983-989 9983-9900 9983-9999 9984-00 9984-49 Region name: Latvia Country code(s): LV Language group: 9984 Publisher(s): 00 - 49; 500 - 899; 9000 - 9999 9984-500 9984-899 9984-9000 9984-9999 9985-0 9985-4 Region name: Estonia Country code(s): EE Language group: 9985 Publisher(s): 0 - 4; 50 - 79; 800 - 899; 9000 - 9999 9985-50 9985-79 9985-800 9985-899 9985-9000 9985-9999 9986-00 9986-39 Region name: Lithuania Country code(s): LT Language group: 9986 Publisher(s): 00 - 39; 400 - 899; 9000 - 9399; 940 - 969; 97 - 99 9986-400 9986-899 9986-9000 9986-9399 9986-940 9986-969 9986-97 9986-99 9987-00 9987-39 Region name: Tanzania Country code(s): TZ Language group: 9987 Publisher(s): 00 - 39; 400 - 879; 8800 - 9999 9987-400 9987-879 9987-8800 9987-9999 9988-0 9988-2 Region name: Ghana Country code(s): GH Language group: 9988 Publisher(s): 0 - 2; 30 - 54; 550 - 749; 7500 - 9999 9988-30 9988-54 9988-550 9988-749 9988-7500 9988-9999 9989-0 9989-0 Region name: Macedonia Country code(s): MK Language group: 9989 Publisher(s): 0 - 0; 100 - 199; 2000 - 2999; 30 - 59; 600 - 949; 9500 - 9999 9989-100 9989-199 9989-2000 9989-2999 9989-30 9989-59 9989-600 9989-949 9989-9500 9989-9999 99901-00 99901-49 Region name: Bahrain Country code(s): BH Language group: 99901 Publisher(s): 00 - 49; 500 - 799; 80 - 99 99901-500 99901-799 99901-80 99901-99 99903-0 99903-1 Region name: Mauritius Country code(s): MU Language group: 99903 Publisher(s): 0 - 1; 20 - 89; 900 - 999 99903-20 99903-89 99903-900 99903-999 99904-0 99904-5 Region name: Curacao Country code(s): ?? Language group: 99904 Publisher(s): 0 - 5; 60 - 89; 900 - 999 99904-60 99904-89 99904-900 99904-999 99905-0 99905-3 Region name: Bolivia Country code(s): BO Language group: 99905 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99905-40 99905-79 99905-800 99905-999 99906-0 99906-2 Region name: Kuwait Country code(s): KW Language group: 99906 Publisher(s): 0 - 2; 30 - 59; 600 - 699; 70 - 89; 90 - 94; 950 - 999 99906-30 99906-59 99906-600 99906-699 99906-70 99906-89 99906-90 99906-94 99906-950 99906-999 99908-0 99908-0 Region name: Malawi Country code(s): MW Language group: 99908 Publisher(s): 0 - 0; 10 - 89; 900 - 999 99908-10 99908-89 99908-900 99908-999 99909-0 99909-3 Region name: Malta Country code(s): MT Language group: 99909 Publisher(s): 0 - 3; 40 - 94; 950 - 999 99909-40 99909-94 99909-950 99909-999 99910-0 99910-2 Region name: Sierra Leone Country code(s): SL Language group: 99910 Publisher(s): 0 - 2; 30 - 89; 900 - 999 99910-30 99910-89 99910-900 99910-999 99911-00 99911-59 Region name: Lesotho Country code(s): LS Language group: 99911 Publisher(s): 00 - 59; 600 - 999 99911-600 99911-999 99912-0 99912-3 Region name: Botswana Country code(s): BW Language group: 99912 Publisher(s): 0 - 3; 400 - 599; 60 - 89; 900 - 999 99912-400 99912-599 99912-60 99912-89 99912-900 99912-999 99913-0 99913-2 Region name: Andorra Country code(s): AD Language group: 99913 Publisher(s): 0 - 2; 30 - 35; 600 - 604 99913-30 99913-35 99913-600 99913-604 99914-0 99914-4 Region name: Suriname Country code(s): SR Language group: 99914 Publisher(s): 0 - 4; 50 - 89; 900 - 999 99914-50 99914-89 99914-900 99914-999 99915-0 99915-4 Region name: Maldives Country code(s): MV Language group: 99915 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99915-50 99915-79 99915-800 99915-999 99916-0 99916-2 Region name: Namibia Country code(s): NA Language group: 99916 Publisher(s): 0 - 2; 30 - 69; 700 - 999 99916-30 99916-69 99916-700 99916-999 99917-0 99917-2 Region name: Brunei Darussalam Country code(s): BN Language group: 99917 Publisher(s): 0 - 2; 30 - 89; 900 - 999 99917-30 99917-89 99917-900 99917-999 99918-0 99918-3 Region name: Faroe Islands Country code(s): FO Language group: 99918 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99918-40 99918-79 99918-800 99918-999 99919-0 99919-2 Region name: Benin Country code(s): BJ Language group: 99919 Publisher(s): 0 - 2; 300 - 399; 40 - 69; 70 - 79; 800 - 849; 850 - 899; 900 - 999 99919-300 99919-399 99919-40 99919-69 99919-70 99919-79 99919-800 99919-849 99919-850 99919-899 99919-900 99919-999 99920-0 99920-4 Region name: Andorra Country code(s): AD Language group: 99920 Publisher(s): 0 - 4; 50 - 89; 900 - 999 99920-50 99920-89 99920-900 99920-999 99921-0 99921-1 Region name: Qatar Country code(s): QA Language group: 99921 Publisher(s): 0 - 1; 20 - 69; 700 - 799; 8 - 8; 90 - 99 99921-20 99921-69 99921-700 99921-799 99921-8 99921-8 99921-90 99921-99 99922-0 99922-3 Region name: Guatemala Country code(s): GT Language group: 99922 Publisher(s): 0 - 3; 40 - 69; 700 - 999 99922-40 99922-69 99922-700 99922-999 99923-0 99923-1 Region name: El Salvador Country code(s): SV Language group: 99923 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99923-20 99923-79 99923-800 99923-999 99924-0 99924-1 Region name: Nicaragua Country code(s): NI Language group: 99924 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99924-20 99924-79 99924-800 99924-999 99925-0 99925-3 Region name: Paraguay Country code(s): PY Language group: 99925 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99925-40 99925-79 99925-800 99925-999 99926-0 99926-0 Region name: Honduras Country code(s): HN Language group: 99926 Publisher(s): 0 - 0; 10 - 59; 600 - 869; 87 - 89; 90 - 99 99926-10 99926-59 99926-600 99926-869 99926-87 99926-89 99926-90 99926-99 99927-0 99927-2 Region name: Albania Country code(s): AL Language group: 99927 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99927-30 99927-59 99927-600 99927-999 99928-0 99928-0 Region name: Georgia Country code(s): GE Language group: 99928 Publisher(s): 0 - 0; 10 - 79; 800 - 999 99928-10 99928-79 99928-800 99928-999 99929-0 99929-4 Region name: Mongolia Country code(s): MN Language group: 99929 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99929-50 99929-79 99929-800 99929-999 99930-0 99930-4 Region name: Armenia Country code(s): AM Language group: 99930 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99930-50 99930-79 99930-800 99930-999 99931-0 99931-4 Region name: Seychelles Country code(s): SC Language group: 99931 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99931-50 99931-79 99931-800 99931-999 99932-0 99932-0 Region name: Malta Country code(s): MT Language group: 99932 Publisher(s): 0 - 0; 10 - 59; 600 - 699; 7 - 7; 80 - 99 99932-10 99932-59 99932-600 99932-699 99932-7 99932-7 99932-80 99932-99 99933-0 99933-2 Region name: Nepal Country code(s): NP Language group: 99933 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99933-30 99933-59 99933-600 99933-999 99934-0 99934-1 Region name: Dominican Republic Country code(s): DO Language group: 99934 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99934-20 99934-79 99934-800 99934-999 99935-0 99935-2 Region name: Haiti Country code(s): HT Language group: 99935 Publisher(s): 0 - 2; 30 - 59; 600 - 699; 7 - 8; 90 - 99 99935-30 99935-59 99935-600 99935-699 99935-7 99935-8 99935-90 99935-99 99936-0 99936-0 Region name: Bhutan Country code(s): BT Language group: 99936 Publisher(s): 0 - 0; 10 - 59; 600 - 999 99936-10 99936-59 99936-600 99936-999 99937-0 99937-1 Region name: Macau Country code(s): MO Language group: 99937 Publisher(s): 0 - 1; 20 - 59; 600 - 999 99937-20 99937-59 99937-600 99937-999 99938-0 99938-1 Region name: Srpska, Republic of Country code(s): ?? Language group: 99938 Publisher(s): 0 - 1; 20 - 59; 600 - 899; 90 - 99 99938-20 99938-59 99938-600 99938-899 99938-90 99938-99 99939-0 99939-5 Region name: Guatemala Country code(s): GT Language group: 99939 Publisher(s): 0 - 5; 60 - 89; 900 - 999 99939-60 99939-89 99939-900 99939-999 99940-0 99940-0 Region name: Georgia Country code(s): GE Language group: 99940 Publisher(s): 0 - 0; 10 - 69; 700 - 999 99940-10 99940-69 99940-700 99940-999 99941-0 99941-2 Region name: Armenia Country code(s): AM Language group: 99941 Publisher(s): 0 - 2; 30 - 79; 800 - 999 99941-30 99941-79 99941-800 99941-999 99942-0 99942-4 Region name: Sudan Country code(s): SD Language group: 99942 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99942-50 99942-79 99942-800 99942-999 99943-0 99943-2 Region name: Albania Country code(s): AL Language group: 99943 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99943-30 99943-59 99943-600 99943-999 99944-0 99944-4 Region name: Ethiopia Country code(s): ET Language group: 99944 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99944-50 99944-79 99944-800 99944-999 99945-0 99945-5 Region name: Namibia Country code(s): NA Language group: 99945 Publisher(s): 0 - 5; 60 - 89; 900 - 999 99945-60 99945-89 99945-900 99945-999 99946-0 99946-2 Region name: Nepal Country code(s): NP Language group: 99946 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99946-30 99946-59 99946-600 99946-999 99947-0 99947-2 Region name: Tajikistan Country code(s): TJ Language group: 99947 Publisher(s): 0 - 2; 30 - 69; 700 - 999 99947-30 99947-69 99947-700 99947-999 99948-0 99948-4 Region name: Eritrea Country code(s): ER Language group: 99948 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99948-50 99948-79 99948-800 99948-999 99949-0 99949-1 Region name: Mauritius Country code(s): MU Language group: 99949 Publisher(s): 0 - 1; 20 - 89; 900 - 999 99949-20 99949-89 99949-900 99949-999 99950-0 99950-4 Region name: Cambodia Country code(s): KH Language group: 99950 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99950-50 99950-79 99950-800 99950-999 99952-0 99952-4 Region name: Mali Country code(s): ML Language group: 99952 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99952-50 99952-79 99952-800 99952-999 99953-0 99953-2 Region name: Paraguay Country code(s): PY Language group: 99953 Publisher(s): 0 - 2; 30 - 79; 800 - 939; 94 - 99 99953-30 99953-79 99953-800 99953-939 99953-94 99953-99 99954-0 99954-2 Region name: Bolivia Country code(s): BO Language group: 99954 Publisher(s): 0 - 2; 30 - 69; 700 - 879; 88 - 99 99954-30 99954-69 99954-700 99954-879 99954-88 99954-99 99955-0 99955-1 Region name: Srpska, Republic of Country code(s): ?? Language group: 99955 Publisher(s): 0 - 1; 20 - 59; 600 - 799; 80 - 99 99955-20 99955-59 99955-600 99955-799 99955-80 99955-99 99956-00 99956-59 Region name: Albania Country code(s): AL Language group: 99956 Publisher(s): 00 - 59; 600 - 859; 86 - 99 99956-600 99956-859 99956-86 99956-99 99957-0 99957-1 Region name: Malta Country code(s): MT Language group: 99957 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99957-20 99957-79 99957-800 99957-999 99958-0 99958-4 Region name: Bahrain Country code(s): BH Language group: 99958 Publisher(s): 0 - 4; 50 - 93; 940 - 949; 950 - 999 99958-50 99958-93 99958-940 99958-949 99958-950 99958-999 99959-0 99959-2 Region name: Luxembourg Country code(s): LU Language group: 99959 Publisher(s): 0 - 2; 30 - 59; 600 - 999 99959-30 99959-59 99959-600 99959-999 99960-0 99960-0 Region name: Malawi Country code(s): MW Language group: 99960 Publisher(s): 0 - 0; 10 - 94; 950 - 999 99960-10 99960-94 99960-950 99960-999 99961-0 99961-3 Region name: El Salvador Country code(s): SV Language group: 99961 Publisher(s): 0 - 3; 40 - 89; 900 - 999 99961-40 99961-89 99961-900 99961-999 99962-0 99962-4 Region name: Mongolia Country code(s): MN Language group: 99962 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99962-50 99962-79 99962-800 99962-999 99963-00 99963-49 Region name: Cambodia Country code(s): KH Language group: 99963 Publisher(s): 00 - 49; 500 - 919; 92 - 99 99963-500 99963-919 99963-92 99963-99 99964-0 99964-1 Region name: Nicaragua Country code(s): NI Language group: 99964 Publisher(s): 0 - 1; 20 - 79; 800 - 999 99964-20 99964-79 99964-800 99964-999 99965-0 99965-3 Region name: Macau Country code(s): MO Language group: 99965 Publisher(s): 0 - 3; 40 - 62; 630 - 999 99965-40 99965-62 99965-630 99965-999 99966-0 99966-2 Region name: Kuwait Country code(s): KW Language group: 99966 Publisher(s): 0 - 2; 30 - 69; 700 - 799; 80 - 94 99966-30 99966-69 99966-700 99966-799 99966-80 99966-94 99967-0 99967-1 Region name: Paraguay Country code(s): PY Language group: 99967 Publisher(s): 0 - 1; 20 - 59; 600 - 899 99967-20 99967-59 99967-600 99967-899 99968-0 99968-3 Region name: Botswana Country code(s): BW Language group: 99968 Publisher(s): 0 - 3; 400 - 599; 60 - 89; 900 - 999 99968-400 99968-599 99968-60 99968-89 99968-900 99968-999 99969-0 99969-4 Region name: Oman Country code(s): OM Language group: 99969 Publisher(s): 0 - 4; 50 - 79; 800 - 999 99969-50 99969-79 99969-800 99969-999 99970-0 99970-4 Region name: Haiti Country code(s): HT Language group: 99970 Publisher(s): 0 - 4; 50 - 89; 900 - 999 99970-50 99970-89 99970-900 99970-999 99971-0 99971-5 Region name: Myanmar Country code(s): MM Language group: 99971 Publisher(s): 0 - 5; 60 - 84; 850 - 999 99971-60 99971-84 99971-850 99971-999 99972-0 99972-4 Region name: Faroe Islands Country code(s): FO Language group: 99972 Publisher(s): 0 - 4; 50 - 89; 900 - 999 99972-50 99972-89 99972-900 99972-999 99973-0 99973-3 Region name: Mongolia Country code(s): MN Language group: 99973 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99973-40 99973-79 99973-800 99973-999 99974-40 99974-79 Region name: Bolivia Country code(s): BO Language group: 99974 Publisher(s): 40 - 79; 800 - 999 99974-800 99974-999 99975-0 99975-3 Region name: Tajikistan Country code(s): TJ Language group: 99975 Publisher(s): 0 - 3; 40 - 79; 800 - 999 99975-40 99975-79 99975-800 99975-999 99976-0 99976-1 Region name: Srpska, Republic of Country code(s): ?? Language group: 99976 Publisher(s): 0 - 1; 20 - 59; 600 - 799 99976-20 99976-59 99976-600 99976-799 99977-0 99977-1 Region name: Rwanda Country code(s): RW Language group: 99977 Publisher(s): 0 - 1; 40 - 69; 700 - 799 99977-40 99977-69 99977-700 99977-799 10-00 10-19 Region name: France Country code(s): FR Language group: 10 Publisher(s): 00 - 19; 200 - 699; 7000 - 8999; 90000 - 97599; 976000 - 999999 10-200 10-699 10-7000 10-8999 10-90000 10-97599 10-976000 10-999999 11-00 11-24 Region name: Korea, Republic Country code(s): KR Language group: 11 Publisher(s): 00 - 24; 250 - 549; 5500 - 8499; 85000 - 94999; 950000 - 999999 11-250 11-549 11-5500 11-8499 11-85000 11-94999 11-950000 11-999999 12-200 12-200 Region name: Italy Country code(s): IT Language group: 12 Publisher(s): 200 - 200 bibclean-3.07/vmswild.c0000644000156700015670000007731512246434707013763 0ustar beebebeebe/* -*-C-*- vmswild.c */ /*-->vmswild*/ /**********************************************************************/ /****************************** vmswild *******************************/ /**********************************************************************/ #include #if 0 /* BEGIN COMMENT SECTION */ /* Compile with TEST defined to create a stand-alone test program */ /*********************************************************************** ** [09-Mar-1990] ** Edit by Nelson H. F. Beebe ** Overhaul to meet these objectives: ** ** (1) If a file is in the current directory, the device and ** directory specification is stripped from the file name. ** ** (2) Convert all file names in argv[] to lower case. ** ** (3) If a generation number was specified in the command-line ** file name, as indicated by the presence of a semicolon in the ** wildcard specification, preserve generation numbers in the ** output; otherwise, eliminate them, since the files must ** correspond to the highest generation. ** ** (4) If a filename ends in a dot, remove it ("foo." -> "foo"). ** ** (5) Reorder routines alphabetically, and supply Standard C ** function prototype declarations. ** ** (6) Make all functions and global variables static (private), ** except cmd_lin(), so they do not interfere with user-defined ** values outside this file. ** ** (7) Remove prompting for missing arguments. ** ** These changes result in a shorter command line, which is important ** when the names are used to build other commands (e.g. in vcc), ** because VAX VMS has a very limited command line buffer size. They ** also match what UNIX programs get from the shell command line ** expansion; this is important for programs like gawk where the ** filename may be used by the program. UNIX programs never prompt ** for arguments, and they shouldn't do so either when ported to VAX ** VMS. New functions added are expand_logical() and ** normalize_filename(). The body of nxt_wld() has been completely ** rewritten. ** ************************************************************************ ** PDVI:VMSWILD.C, Sat Oct 1 15:59:31 1988 ** Edit by Nelson H. F. Beebe ** Fix erroneous leading comments, change initialization of OPoption ** so that arguments of form "{foo}" (e.g. for awk) are not lost. ** ************************************************************************ ** Original version: ** 4-Mar-88 19:08:58-MST,26262;000000000000 ** Return-Path: ** Received: from cs.utah.edu by SCIENCE.UTAH.EDU with TCP; ** Fri 4 Mar 88 19:08:46-MST ** Received: by cs.utah.edu (5.54/utah-2.0-cs) ** id AA20734; Fri, 4 Mar 88 19:08:52 MST ** From: news@cs.utah.edu (Netnews Owner) ** Reply-To: ERICMC%usu.BITNET@CC.UTAH.EDU (Eric McQueen) ** To: comp-os-vms@cs.utah.edu ** Subject: RE: Wild card expansion under VAX11-C: Code Wanted ** Message-Id: <8803041943.AA24229@jade.berkeley.edu> ** Date: 4 Mar 88 04:59:00 GMT ** Sender: daemon@ucbvax.berkeley.edu ** ** (sorry for the previous abbreviated copy of this) ** ** In article <5361@ames.arpa> woo@pioneer.UUCP (Alex Woo) writes: ** > How does one expand wildcards in command line arguments in ** > VAX11-C under VMS? ** ** I have a tool for C programmers using VMS, especially those porting ** facilities from Un*x. It prompts for command line arguments (unless ** you have already specified some via a "foreign command" or MCR), ** expands file wildcards found on the command line, and redirects ** 'stdin' or 'stdout'. Here is a sample use: ** ** int ** main( argc, argv ) ** int argc; ** char **argv; ** { ** !* local variables *! ** #ifdef VMS !* Or whatever the Standard C-conforming word will be *! ** extern char **cmd_lin(); ** ** argv = cmd_lin( "", &argc, argv ); ** !* The first argument provides misc. options (not currently used). *! ** #endif !* VMS *! ** !* your routine *! ** } ** ** $ run grep ** _command_line_arguments: -i STOP *.for ** ** The source is 40 blocks (600 lines) so I am not sure that I should ** post the actual source in this group, but I have (see below). If you ** are interested, please look through the documentation, try it out, ** and send any significant comments, suggestions, useful pieces of ** code, etc. to one of the addresses below. I will post summaries to ** comp.os.vms/INFO-VAX and comp.lang.c/INFO-C. Please excuse the ** "lived-in" look of the code but I am still working on this thing so ** this is mearly the last debugged version I have. ** ** --- ** Eric Tye McQueen Mathematics Department Also at (after some ** ericmc@usu.bitnet Utah State University time in March[June?!]): ** (801) 753-4683 Logan, Utah 84322-3900 ericmc@usu.usu.edu ** ** UUCP: ...{psuvax1,uunet}!usu.bitnet!ericmc "Doodle doodle dee" ** Arpa: ericmc%usu.bitnet@cunyvm.cuny.edu "wubba wubba wubba." ** ** +------------------------------- cmdlin.c -------------------------------+ ***********************************************************************/ /*********************************************************************** * cmdlin.c -- Un*x-style command line processing for VMS. (V2.0, 3-Mar-1988) * Copyright (C) 1988 Eric Tye McQueen * Emulates Un*x-style command line options in VAX C programs: * - Allows entry of command line arguments after the program starts: * The easiest way to run a program in VMS (the RUN command) does not * allow for specification of command-line arguments while other methods * that do allow arguments won't interpret the arguments in a very Un*x- * like manner. If no arguments are specified (other than the program * name which is supplied by VAX C), we prompt for arguments from * SYS$COMMAND and try to interpret them as Un*x would. * - Expands any filename wildcards found in the command line arguments: * C programs that process files are usually written to accepts several * filenames, one name per argument. Un*x environments expand filename * wildcards specified on the command line to the names of all matching * files and pass these names to the program. This routine does this * since VMS will not. VMS wildcards and filenames are supported, NOT * Un*x-style wildcards and filenames (this has its good and bad points). * - Supports simple C-shell-style standard I/O redirection (`<', `>', `>>', * `>&', and `>>&'). * - In the future support can be added for strings and quoting of charac- * ters (`\', "'", `"'), symbol substitution (`$'), parallel processing * and pipes (`||', `&&', etc.), etc. * * Currently supported: * All VMS wildcards (`*', `%', and `...'). * Both VMS and Un*x-style file names. * I/O redirection via `<', `>', `>>', `>&', and `>>&' * (watch out for people who use `<' and `>' for directory names) * Reasonable to add support for: * Specification of cmd_lin() options between `{' and `}'. * Continuation lines via \ at end of line. * Inclusion of spaces (and newlines) into arguments via ' and ". * Substitutions from the VMS symbol table using ${name}. * Using Un*x-style directories (/) with wildcards. * Pipe dreams: * Pipes via || and &&. * Un*x-style wildcards like [char-set]. * (watch out for people who use `[' and `]' for directory names!!) * * This files also contains a special demonstration program. To use it type: * $ cc cmdlin/define:example * $ link cmdlin,sys$input:/opt * sys$share:vaxcrtl/share * $ run cmdlin * * Sample use: * ... * int * main( argc, argv ) * int argc; * char **argv; * { * ... (definitions) * #ifdef VMS * extern char **cmd_lin(); * argv = cmd_lin( "", &argc, argv ); * #endif * ... (other statements) * } * ... * $ run grep * _command_line_arguments: -i stop *.for * * If you specify something that looks like a VMS wildcard (that contains * "*", "%", or "...") but that doesn't match the name of any existing files, * cmd_lin() will write ": No match." to `stderr'. If you specify a * string containing "*", "%", or "..." that is not a valid VMS file wildcard, * cmd_lin() will also write ": Invalid file wildcard." to `stderr'. * In either case, the original string will be included, unchanged, as a * command line argument. ***********************************************************************/ #endif /* END COMMENT SECTION */ #if 0 static char version[] = /* (Not currently) printed inside "debug" option. */ "cmd_lin() V2.0, Copyright (C) 1988 Eric Tye McQueen (3-Mar)."; #endif /* 0 */ /*@unused@*/ static char rcsid[] = "$Id: vmswild.c,v 1.5 2013/11/30 19:17:27 beebe Exp beebe $"; #ifndef VMS /* Should be changed to Standard C-conforming name soon. */ /* Dummy version of cmd_lin() for non VAX C (non-VMS) systems: */ char ** #if defined(HAVE_STDC) cmd_lin( /*@unused@*/ char *opt0, /* Options specified in `main()' */ /*@unused@*/ int *ainpc, /* &main\argc (input and output) */ char **inpv /* main\argv (input) */ ) #else /* NOT defined(HAVE_STDC) */ cmd_lin( opt0, ainpc, inpv ) /*@unused@*/ char *opt0; /* Options specified in `main()' */ /*@unused@*/ int *ainpc; /* &main\argc (input and output) */ char **inpv; /* main\argv (input) */ #endif /* defined(HAVE_STDC) */ { return( inpv ); } #else /* VMS */ #include /* stdin stdout stderr */ #if defined(HAVE_CTYPE_H) #include #endif #if defined(HAVE_ERRNO_H) #include #endif #if defined(HAVE_STDLIB_H) #include #endif #if defined(HAVE_STRING_H) #include #endif typedef char bool; /* Smallest addressable signed data type. */ typedef unsigned char uchar; typedef unsigned short ushort; typedef unsigned int uint; typedef unsigned long ulong; #define odd(stat) ( (stat) & 1 ) /* General VMS descriptor (not as clumsy as $DESCRIPTOR from ): */ struct descr { ushort leng; /* Length of data area (or string). */ uchar type; /* Type of data in area (dsc$k_dtype_t). */ uchar class; /* Class of descriptor (dsc$k_class_s). */ char *addr; /* Address of start of data area. */ }; globalvalue dsc$k_dtype_t; /* Text (data type) */ globalvalue dsc$k_class_s; /* Static (class) descriptor */ /* To allocate a descriptor (dsc) for array of char (arr): */ #define desc_arr(dsc,arr) struct descr dsc = \ { (sizeof arr)-1, dsc$k_dtype_t, dsc$k_class_s, arr } /* To allocate a descriptor (dsc) for null-terminated string (str): */ #define desc_str(dsc,str) struct descr dsc = \ { strlen(str), dsc$k_dtype_t, dsc$k_class_s, str } #define FNAMSIZ 1024 /* size of filename buffers (+1 for '\0') */ /* Options that are set by an argument like "{opt1,!opt2,noopt3,opt4=val}": * (none of these are really supported in this release) * help : show possible options then terminate execution. * option : allows options to be specified (default). * expand : expand VMS-style wildcards (default). * prompt [ = string ] : prompt if no arguments are present (default). * append : prompt if some arguments are initially present. * debug : show option changes and final command line arguments. * redirect : allows `<', `>', etc. to be used to redirect `std*'. * unixy : don't return VMS-style device or directory names (default). * lower : convert letters in file specifications to lowercase (default). * device = "never", "different" (default), "always" : show device name. * directory = "never", "different" (default), "always" : show directory. * version = "never", "different" (default), "always" : show version. * `dev':/`path' : Un*x-like alias for device name (ex: "user$disk:/usr"). * Interactions: * unixy & show device -> show directory * unixy & !device & directory -> directory is relative (../etc) * unixy & !device & directory=always -> default = ./ */ /* Key values for OTfreq options (device, directory, and version): */ enum { never=0, diff, always }; /* Current values of all options: */ #if 0 char *OPprompt = "_command_line_arguments: "; #else /* 1 */ char *OPprompt = (char*)NULL; #endif /* 0 */ #if 0 /* Disable; otherwise an awk option string like "{print $0}" disappears. */ static char *OPoption = "{}"; #else /* NOT 0 */ static char *OPoption = ""; #endif /* 0 */ static bool OPexpand = 1; static bool OPappend = 0; static bool OPdebug = 0; static bool OPredir = 1; static bool OPunixy = 1; static bool OPlower = 1; static bool OPdevice = diff; static bool OPdirect = diff; static bool OPversion = diff; char **cmd_lin(char *opt0,int *ainpc,char **inpv); /* Private functions */ static char **add_arg(char *arg, int *acnt, char **ptrs); static uint crelnm(char *table, char *name, char *value); static void *emalloc(unsigned siz); static void *erealloc(void *ptr, unsigned siz); static char *expand_logical(char *logname); static bool is_wild(char *name); static char *nameonly(char *file); static char *normalize_filename(char *filename); static char *nxt_wld(char *wild); static char **parse_opt(int *ainpc,char **inpv); static char **read_cmd_lin(int *ainpc,char **inpv); static char *read_w_prompt(char *prompt, char *buff, int size); static char **redir(int *ainpc,char **inpv,FILE *fp,char *io, char *tok,char *lnm,char *acc); static char **redirin(int *ainpc,char **inpv); static char **redirout(int *ainpc,char **inpv); static void sigvms(uint stat); static char *strsub(char *str, char *sub); #if defined(__ALPHA) void lib$stop(int status_); #endif #ifdef TEST static void dump(char *str); int main(int argc,char **argv); #endif /* TEST */ char ** #if defined(HAVE_STDC) cmd_lin( char *opt0, /* Options specified in `main()' */ int *ainpc, /* &main\argc (input and output) */ char **inpv /* main\argv (input) */ ) #else /* NOT defined(HAVE_STDC) */ cmd_lin( opt0, ainpc, inpv ) /* returns new value for main\argv */ char *opt0; /* Options specified in `main()' */ int *ainpc; /* &main\argc (input and output) */ char **inpv; /* main\argv (input) */ #endif /* defined(HAVE_STDC) */ { int endc; /* `endc' and `endv' will be `argc' and `argv' for main() */ char **endv = add_arg((char*)NULL,&endc,(char**)NULL); /* Initialize `add_arg()' structures */ char **xtra = 0; /* So we can free() what read_cmd_lin() may allocate */ char *cp; if( OPoption[0] == *opt0 ) inpv = parse_opt( ainpc, inpv ); #ifdef DEBUG else if( *opt0 ) { globalvalue ss$abort; (void)fprintf( stderr, "%s (%s) %s.\n", "Invalid options string", opt0, "specified in `main()'" ); exit( ss$abort ); } #endif /* DEBUG */ if( *ainpc ) { /* Process `argv[0]', the program name: */ if( OPunixy ) /* Remove VMS device/dir/version: */ *inpv = nameonly( *inpv ); /* (and ".ext") */ endv = add_arg( *inpv, &endc, endv ); --*ainpc; ++inpv; } else /* (Impossible?) No `argv[0]' so make one up: */ endv = add_arg( "Me", &endc, endv ); if ( OPappend || ( !*ainpc && OPprompt ) ) xtra = inpv = read_cmd_lin( ainpc, inpv ); while ( *ainpc ) { if( OPoption && OPoption[0] == **inpv ) inpv = parse_opt( ainpc, inpv ); else if( OPredir && '<' == **inpv ) inpv = redirin( ainpc, inpv ); else if( OPredir && '>' == **inpv ) inpv = redirout( ainpc, inpv ); else if( OPexpand && is_wild( *inpv ) ) { if( ( cp = nxt_wld(*inpv) ) ) { do { endv = add_arg( cp, &endc, endv ); } while( ( cp = nxt_wld(*inpv) ) ); } else { (void)fprintf( stderr, "%s: No match.\n", *inpv ); endv = add_arg( *inpv, &endc, endv ); } } else endv = add_arg( *inpv, &endc, endv ); --*ainpc; ++inpv; } if ( xtra ) /* An extra block of pointers was malloc()ed */ FREE( xtra ); *ainpc = endc; return( endv ); } /**********************************************************************/ /* Private functions */ /**********************************************************************/ /* Builds argc,argv type lists of strings: */ static char ** #if defined(HAVE_STDC) add_arg( char *arg, /* Argument to be added to the argument list */ int *acnt, /* Number of arguments currently in the argument list */ char **ptrs /* Array of pointers to the arguments */ ) #else /* NOT defined(HAVE_STDC) */ add_arg( arg, acnt, ptrs ) char *arg; /* Argument to be added to the argument list */ int *acnt; /* Number of arguments currently in the argument list */ char **ptrs; /* Array of pointers to the arguments */ #endif /* defined(HAVE_STDC) */ { # define ARGRP 64 /* number of string pointers allocated at a time */ if( !ptrs ) { /* Initialize a new argument list: */ char **v = emalloc( ARGRP * sizeof(char *) ); *acnt = 0; v[0] = 0; return( v ); } if( 0 == (*acnt+1) % ARGRP ) /* Need more space for pointers */ ptrs = erealloc( ptrs, (*acnt+1+ARGRP) * sizeof(char *) ); ptrs[*acnt] = arg; ptrs[++*acnt] = (char*)NULL; return( ptrs ); } /* Creates a logical name. */ static uint /* Returns a VMS condition value. */ #if defined(HAVE_STDC) crelnm( char *table, char *name, char *value ) #else /* NOT defined(HAVE_STDC) */ crelnm( table, name, value ) char *table; char *name; char *value; #endif /* defined(HAVE_STDC) */ { desc_str( tdsc, table ); desc_str( ndsc, name ); struct itemstr { ushort buflen, type; char *addr; ushort *retlen; uint end; } itemrec; /* globalvalue psl$k_user; */ /* Change this to "#include psldef". */ uchar mode = 3 /* psl$k_user */; extern uint sys$crelnm(); /* globalvalue lnm$_string; */ /* Change this to "#include lnmdef". */ itemrec.type = 2 /* lnm$_string */; itemrec.buflen = strlen(value); itemrec.addr = value; itemrec.retlen = (ushort *) 0; itemrec.end = 0; return( sys$crelnm( 0, &tdsc, &ndsc, &mode, &itemrec ) ); } /* Same as malloc() except never returns NULL. */ static void * #if defined(HAVE_STDC) emalloc( unsigned siz ) #else /* NOT defined(HAVE_STDC) */ emalloc( siz ) unsigned siz; #endif /* defined(HAVE_STDC) */ { globalvalue ss$_insfmem; /* Insufficient dynamic memory error */ register void *p = malloc( siz ); if( !p ) /* Don't try to recover after allocating too much: */ sys$exit( ss$_insfmem ); /* Don't recover */ return( p ); } /* Same as realloc() except never returns NULL. */ static void * #if defined(HAVE_STDC) erealloc( void *ptr, unsigned siz ) #else /* NOT defined(HAVE_STDC) */ erealloc( ptr, siz ) void *ptr; unsigned siz; #endif /* defined(HAVE_STDC) */ { globalvalue ss$_insfmem; /* Insufficient dynamic memory error */ register void *p = realloc( ptr, siz ); if( !p ) /* Don't try to recover after allocating too much: */ sys$exit( ss$_insfmem ); /* Don't recover */ return( p ); } static char* #if defined(HAVE_STDC) expand_logical( char *logname ) #else /* NOT defined(HAVE_STDC) */ expand_logical(logname) /* return recursively expanded logical name */ char *logname; #endif /* defined(HAVE_STDC) */ { char *p; char *colon; colon = strchr(logname,':'); /* trim string before colon for getenv() */ if (colon) *colon = '\0'; p = getenv(logname); if (colon) *colon = ':'; return ((p == (char*)NULL) ? logname : expand_logical(p)); } static bool /* Returns 1 if `name' looks like a wild-carded file name. */ #if defined(HAVE_STDC) is_wild( char *name ) #else /* NOT defined(HAVE_STDC) */ is_wild( name ) char *name; #endif /* defined(HAVE_STDC) */ { return(strchr(name,'*') || strchr(name,'%') || strsub(name,"...")); } /* Usually used to simplify argv[0]. */ static char * #if defined(HAVE_STDC) nameonly( char *file ) #else /* NOT defined(HAVE_STDC) */ nameonly( file ) char *file; #endif /* defined(HAVE_STDC) */ { char *cp = file, *tp; #ifdef VMS tp = strrchr(cp,']'); /* Skip directory */ tp = tp ? tp+1 : cp; cp = strrchr(tp,'>'); /* Skip alternate form of directory */ cp = cp ? cp+1 : tp; tp = strrchr(cp,':'); /* Skip device and/or node */ tp = tp ? tp+1 : cp; cp = tp; if( tp = strchr(cp,';') ) /* Remove version number */ *tp = '\0'; if( tp = strchr(cp,'.') ) /* Remove extension and/or... */ *tp = '\0'; /* alternate form for version */ #else /* NOT VMS */ /* cp = strrchr(cp,'/'); may be useful on other than MS-DOS */ #ifdef MSDOS /* Like this would ever be run under MS-DOS! */ tp = strrchr(cp,'/'); /* Skip Un*x path */ tp = tp ? tp+1 : cp; cp = strrchr(tp,'\\'); /* Skip MS-DOS path */ cp = cp ? cp+1 : tp; if( tp = strchr(cp,'.') ) *tp = '\0'; /* Remove extension */ #endif /* MSDOS */ #endif /* VMS */ return( cp ); } static char* #if defined(HAVE_STDC) normalize_filename( char *filename /* with logical names expanded */ ) #else /* NOT defined(HAVE_STDC) */ normalize_filename(filename) /* return lower-case copy of normalized name */ char *filename; /* with logical names expanded */ #endif /* defined(HAVE_STDC) */ { char *logname; char *p; char *q; p = strchr(filename,':'); /* do we have a logical name? */ if (p != (char*)NULL) { /* yes, have to translate it interactively */ logname = expand_logical(filename); q = emalloc(strlen(p+1) + strlen(logname) + 1); (void)strcpy(q,logname); (void)strcat(q,p+1); } else /* no, just copy bare file name */ q = strcpy(emalloc(strlen(filename)),filename); for (p = q ; *p; ++p) /* convert filename to lowercase */ *p = Isupper(*p) ? tolower(*p) : *p; /* remove remnants of rooted logical names */ for (p = strsub(q,".]["); p; p = strsub(q,".][")) (void)strcpy(p+1,p+3); return (q); } /* Returns the next file name matching the specified wildcard. */ static char * /* Returns a pointer to an malloc()ed expanded filename */ #if defined(HAVE_STDC) nxt_wld( char *wild /* Wildcard to be expanded. */ ) #else /* NOT defined(HAVE_STDC) */ nxt_wld( wild ) /* Returns 0 if all matching filenames have been returned. */ char *wild; /* Wildcard to be expanded. */ #endif /* defined(HAVE_STDC) */ { desc_str( wlddsc, wild ); /* VMS descriptor of wildcard string. */ static uint cntxt = 0; /* Context of wildcard search. */ uint stat; /* Status returned by lib$* services. */ uint two = 2; /* Flags to be passed by reference. */ char file[FNAMSIZ]; /* Buffer to hold expanded file name. */ desc_arr( fildsc, file ); /* VMS descriptor of buffer. */ extern uint lib$find_file(), lib$find_file_end(); /* Library services. */ globalvalue rms$_fnf, rms$_nmf, rms$_syn; /* Possible statuses. */ static char* cwd = (char*)NULL; static int lencwd = 0; char *colon; char *logname; char *newcwd; char *p; char *q; if (cwd == (char*)NULL) /* true only on first call */ { cwd = (char*)getcwd((char*)NULL,FNAMSIZ); lencwd = (cwd == (char*)NULL) ? 0 : strlen(cwd); if (lencwd > 0) { newcwd = normalize_filename(cwd); FREE(cwd); cwd = newcwd; lencwd = strlen(cwd); } } stat = lib$find_file( &wlddsc, &fildsc, &cntxt, 0, 0, 0, &two ); if ( rms$_syn == stat ) { /* File syntax error: */ (void)fprintf( stderr, "%s: Invalid file wildcard.\n", wild ); } else if ( rms$_fnf != stat && rms$_nmf != stat ) { /* Not "file not found" (1st try) * nor "no more files" (later tries): */ sigvms( stat ); /* Display non-trivial status messages. */ } if( !odd(stat) ) { /* Search didn't work: */ sigvms( lib$find_file_end( &cntxt ) ); return( 0 ); } while (' ' == file[fildsc.leng-1]) /* Remove trailing spaces: */ --fildsc.leng; file[fildsc.leng] = '\0'; p = normalize_filename(file); (void)strcpy(file,p); FREE(p); p = (char*)NULL; if (strsub(wild,";") == (char*)NULL) /* strip generation numbers too */ { p = strrchr(file,';'); if (p != (char*)NULL) *p = '\0'; else p = strrchr(file,'\0'); if (p[-1] == '.') /* trim final dot too */ p[-1] = '\0'; } fildsc.leng = strlen(file); /* Strip off current working directory, if present. */ if ((lencwd > 0) && (strncmp(cwd,file,lencwd) == 0)) { (void)strcpy(file,&file[lencwd]); fildsc.leng -= lencwd; } return( strcpy( emalloc((unsigned)fildsc.leng+1), file ) ); } /* Accepts argument beginning "{" and parses the options listed before the * closing "}". */ static char ** /* Returns new value of `inpv'. */ #if defined(HAVE_STDC) parse_opt( int *ainpc, char **inpv ) #else /* NOT defined(HAVE_STDC) */ parse_opt( ainpc, inpv ) int *ainpc; char **inpv; #endif /* defined(HAVE_STDC) */ { /* code to be added later */ return( inpv ); } /* Read additional command line arguments: */ static char ** #if defined(HAVE_STDC) read_cmd_lin( int *ainpc, char **inpv ) #else /* NOT defined(HAVE_STDC) */ read_cmd_lin( ainpc, inpv ) int *ainpc; char **inpv; #endif /* defined(HAVE_STDC) */ { int midc; char **midv, line[4096], *ap, *cp, c; if( NULL == read_w_prompt( OPprompt, line, sizeof(line) ) ) lib$stop( vaxc$errno ); midv = add_arg( (char*)NULL, &midc, (char**)NULL ); while( (*ainpc)-- ) midv = add_arg( *(inpv++), &midc, midv ); cp = strcpy( emalloc( strlen(line)+1 ), line ); do { while( Isspace( *cp ) ) cp++; if( !*( ap = cp ) ) break; while( *cp && !Isspace(*cp) ) cp++; c = *cp; *cp++ = '\0'; midv = add_arg( ap, &midc, midv ); } while( c ); *ainpc = midc; return( midv ); } /* Prompt for a string from SYS$INPUT: */ static char * #if defined(HAVE_STDC) read_w_prompt( char *prompt, /* String to prompt user with */ char *buff, /* Pointer to buffer to store the string that is read */ int size /* Size of *buff */ ) #else /* NOT defined(HAVE_STDC) */ read_w_prompt( prompt, buff, size ) char *prompt; /* String to prompt user with */ char *buff; /* Pointer to buffer to store the string that is read */ int size; /* Size of *buff */ #endif /* defined(HAVE_STDC) */ { desc_str( pdsc, prompt ); struct descr bdsc = { size-1, dsc$k_dtype_t, dsc$k_class_s, buff }; extern uint lib$get_command(); ushort len; uint stat = lib$get_command( &bdsc, &pdsc, &len ); if( !odd( stat ) ) { errno = EIO; /* or EVMSERR? */ vaxc$errno = stat; return( 0 ); } buff[len] = '\0'; return( buff ); } /* Aspects of redirection common to both ">" (and variants) and "<": */ static char ** /* Returns new value for `inpv'. */ #if defined(HAVE_STDC) redir( int *ainpc, char **inpv, FILE *fp, /* `stdin' or `stdout' */ char *io, /* "in" or "out" */ char *tok, /* ", `<'" or " (`>', `>>', `>&', or `>>&')" */ char *lnm, /* logical name: "SYS$INPUT:" or "SYS$OUTPUT:" */ char *acc /* file access: "r", "w", or "a" */ ) #else /* NOT defined(HAVE_STDC) */ redir( ainpc, inpv, fp, io, tok, lnm, acc ) int *ainpc; char **inpv; FILE *fp; /* `stdin' or `stdout' */ char *io; /* "in" or "out" */ char *tok; /* ", `<'" or " (`>', `>>', `>&', or `>>&')" */ char *lnm; /* logical name: "SYS$INPUT:" or "SYS$OUTPUT:" */ char *acc; /* file access: "r", "w", or "a" */ #endif /* defined(HAVE_STDC) */ { uint stat = 0; /* Assume we wouldn't reassign `lnm'. */ if( !**inpv ) /* Not ">file" / " file" / "< file". */ if( !*inpv || !**inpv ) { (void)fprintf( stderr, "Invalid null %sput redirection%s.\n", io, tok ); if( *ainpc == 0 ) /* Fell off end of argument list: */ ++*ainpc, --inpv; return( inpv ); } if( strchr( *inpv, '*' ) || strchr( *inpv, '%' ) || strsub( *inpv, "..." ) ) { (void)fprintf( stderr, "Wildcards (%s) illegal in redirection%s.\n", *inpv, tok ); return( inpv ); } *strchr( lnm, ':' ) = '\0'; /* Remove trailing colon. */ if( strchr( *inpv, '/' ) || strsub( *inpv, ".." ) ) { if( OPdebug ) (void)fprintf( stderr, "%s %s %s (%s).\n", "Warning: Can't reassign", lnm, "to Un*x-style file name", *inpv ); } else { stat = crelnm( "LNM$FILE_DEV", lnm, *inpv ); if( OPdebug ) sigvms( stat ); } lnm[strlen(lnm)] = ':'; /* Restore trailing colon. */ if( !freopen( odd(stat) ? lnm : *inpv, acc, fp ) ) { /* if( !( odd(stat) && freopen(lnm,acc,fp) ) && !freopen(*inpv,acc,fp) ) { */ (void)fprintf( stderr, "Can't open \"%s\" as `std%s'.\n", *inpv, io ); /* perror( *inpv ); */ exit( vaxc$errno ); } return( inpv ); } /* Redirects `stdin': */ static char ** #if defined(HAVE_STDC) redirin( int *ainpc, char **inpv ) #else /* NOT defined(HAVE_STDC) */ redirin( ainpc, inpv ) int *ainpc; char **inpv; #endif /* defined(HAVE_STDC) */ { static char sysinput[] = "SYS$INPUT:"; /* must be modifiable */ ++*inpv; /* Skip over the '<'. */ return(redir( ainpc, inpv, stdin, "in", ", `<'", sysinput, "r" )); } /* Redirects `stdout': */ static char ** #if defined(HAVE_STDC) redirout( int *ainpc, char **inpv ) #else /* NOT defined(HAVE_STDC) */ redirout( ainpc, inpv ) int *ainpc; char **inpv; #endif /* defined(HAVE_STDC) */ { static char sysoutput[] = "SYS$OUTPUT:"; /* must be modifiable */ bool err = 0; /* Assume not ">&" nor ">>&". */ char *acc = "w"; /* Assume ">" (write) not ">>" (append). */ if( '>' == *++*inpv ) /* Append to output file: */ ++*inpv, *acc = 'a'; if( '&' == **inpv ) /* Redirect `stderr' as well: */ ++*inpv, err = 1; inpv = redir( ainpc, inpv, stdout, "out", " (`>', `>>', `>&', or `>>&')", sysoutput, acc ); /* The following is harmless if redir() failed: */ if( err ) { if( !strchr( *inpv, '/' ) && !strsub( *inpv, ".." ) ) { uint stat = crelnm( "LNM$FILE_DEV", "SYS$ERROR", *inpv ); if( OPdebug ) sigvms( stat ); } stderr = stdout; /* VAX-C specific method. */ } return( inpv ); } /* Signals any non-boring condition values so that error/warning messages * will be displayed. */ static void #if defined(HAVE_STDC) sigvms( uint stat ) #else /* NOT defined(HAVE_STDC) */ sigvms( stat ) uint stat; #endif /* defined(HAVE_STDC) */ { extern void lib$signal(); if( ( stat & 0xffff ) == 1 ) return; /* Boring status message; skip it. */ lib$signal( stat ); } /* Returns the position of a substring within a string. Should be replaced by * strstr() when DEC provides one. */ static char * #if defined(HAVE_STDC) strsub( char *str, char *sub ) #else /* NOT defined(HAVE_STDC) */ strsub( str, sub ) char *str; char *sub; #endif /* defined(HAVE_STDC) */ { register char *fp = sub; /* Points to character we hope to Find next */ char *sp = strchr(str,*fp); /* Points to current Starting character */ register char *cp = sp; /* Points to character currently Comparing */ while( sp ) { while( *fp && *fp == *cp ) ++fp, ++cp; if( !*fp ) return( sp ); /* We found it */ fp = sub; /* Start the search over again */ cp = sp = strchr(sp+1,*fp); /* were we left off last time */ } return( 0 ); } #ifdef TEST /* Displays a string to `stdout', making all control and meta characters * printable unambiguously. */ static void #if defined(HAVE_STDC) dump( char *str ) #else /* NOT defined(HAVE_STDC) */ dump( str ) char *str; #endif /* defined(HAVE_STDC) */ { # define META '`' /* Show 'a'+'\200' as "`a" */ # define CTRL '^' /* Show '\001' as "^A" */ # define BOTH '~' /* Show '\201' as "~A" */ # define QOTE '~' /* Show '`' as "~`", '^' as "~^", and '~' as "~~" */ # define DEL '\177' # define uncntrl(c) ( DEL==c ? '?' : c + '@' ) static char spec[] = { META, CTRL, BOTH, QOTE, 0 }; while( *str ) { switch( (!!iscntrl(*str)) + 2 * (!isascii(*str)) ) { case 0: /* Normal */ if( strchr( spec, *str ) ) putchar( QOTE ); putchar( *str ); break; case 1: /* Control */ putchar( CTRL ); putchar( uncntrl(*str) ); break; case 2: /* Meta */ putchar( META ); putchar( toascii(*str) ); break; case 3: /* Both */ putchar( BOTH ); putchar( uncntrl(toascii(*str)) ); break; } ++str; } } int #if defined(HAVE_STDC) main( int argc, char **argv ) #else /* NOT defined(HAVE_STDC) */ main( argc, argv ) int argc; char **argv; #endif /* defined(HAVE_STDC) */ { int cnt; extern char **cmd_lin(); argv = cmd_lin( "", &argc, argv ); (void)printf( "%d argument%s%s\n", argc, 1==argc ? "" : "s", argc ? ":" : "." ); for( cnt = 0; *argv; ++argv ) { (void)printf( "%5d: `", ++cnt ); dump( *argv ); (void)printf( "'\n" ); } exit(EXIT_SUCCESS); return(0); } #endif /* TEST */ #endif /* VMS */ bibclean-3.07/keybrd.h0000644000156700015670000000230612073627433013545 0ustar beebebeebe#ifndef KEYBRD_H_DEFINED_ #define KEYBRD_H_DEFINED_ #if (SCREEN_LINES > 0) #if defined(HAVE_STDC) typedef enum keyboard_code { KEYBOARD_EOF = EOF, KEYBOARD_UNKNOWN = 0, KEYBOARD_AGAIN, KEYBOARD_DOWN, KEYBOARD_END, KEYBOARD_HELP, KEYBOARD_HOME, KEYBOARD_PGDN, KEYBOARD_PGUP, KEYBOARD_QUIT, KEYBOARD_SEARCH_BACKWARD, KEYBOARD_SEARCH_FORWARD, KEYBOARD_UP, KEYBOARD_DOWN_PARAGRAPH, KEYBOARD_UP_PARAGRAPH } keyboard_code_t; #else /* K&R style */ #define KEYBOARD_EOF EOF #define KEYBOARD_UNKNOWN 0 #define KEYBOARD_AGAIN 1 #define KEYBOARD_DOWN 2 #define KEYBOARD_END 3 #define KEYBOARD_HELP 4 #define KEYBOARD_HOME 5 #define KEYBOARD_PGDN 6 #define KEYBOARD_PGUP 7 #define KEYBOARD_QUIT 8 #define KEYBOARD_SEARCH_BACKWARD 9 #define KEYBOARD_SEARCH_FORWARD 10 #define KEYBOARD_UP 11 #define KEYBOARD_DOWN_PARAGRAPH 12 #define KEYBOARD_UP_PARAGRAPH 13 typedef int keyboard_code_t; #endif extern int do_more ARGS((FILE *fpout_, int line_, int pause_after_, const char *lines[])); extern int get_screen_lines ARGS((void)); extern void kbclose ARGS((void)); extern void kbopen ARGS((void)); #endif /* SCREEN_LINES > 0 */ #endif /* KEYBRD_H_DEFINED_ */ bibclean-3.07/bibclean.hlp0000664000156700015670000021651514167071264014374 0ustar beebebeebe2 1mNAME0m 1mNAME0m bibclean - prettyprint and syntax check BibTeX and Scribe bibliography data base files 2 1mSYNOPSIS0m 1mSYNOPSIS0m 1mbibclean 22m[ 1m-author 22m] [ 1m-copyleft 22m] [ 1m-copyright 22m] [ 1m-error-log 4m22mfilename24m ] [ 1m-help 22m] [ 1m'-?' 22m] [ 1m-init-file 4m22mfilename24m ] [ 1m-ISBN-file 4m22mfilename24m ] [ 1m-keyword-file 4m22mfilename24m ] [ 1m-max-width 4m22mnnn24m ] [ 1m-[no-]align-equals 22m] [ 1m-[no-]brace-protect 22m] [ 1m-[no-]check-values 22m] [ 1m-[no-]debug-match-failures 22m] [ 1m-[no-]delete-empty-values 22m] [ 1m-[no-]file-position 22m] [ 1m-[no-]fix-accents 22m] [ 1m-[no-]fix-braces 22m] [ 1m-[no-]fix-degrees 22m] [ 1m-[no-]fix-font-changes 22m] [ 1m-[no-]fix-initials 22m] [ 1m-[no-]fix-math 22m] [ 1m-[no-]fix-names 22m] [ 1m-[no-]German-style 22m] [ 1m-[no-]keep-linebreaks 22m] [ 1m-[no-]keep-parbreaks 22m] [ 1m-[no-]keep-preamble-spaces 22m] [ 1m-[no-]keep-spaces 22m] [ 1m-[no-]keep-string-spaces 22m] [ 1m-[no-]parbreaks 22m] [ 1m-[no-]prettyprint 22m] [ 1m-[no-]print-ISBN-table 22m] [ 1m-[no-]print-keyword-table 22m] [ 1m-[no-]print-patterns 22m] [ 1m-[no-]quiet 22m] [ 1m-[no-]read-init-files 22m] [ 1m-[no-]remove-OPT-prefixes 22m] [ 1m-[no-]scribe 22m] [ 1m-[no-]trace-file-opening 22m] [ 1m-[no-]warnings 22m] [ 1m-output-file 4m22mfilename24m ] [ 1m-version 22m] 4moutfile0m All options can be abbreviated to a unique leading prefix. An explicit file name of ``-'' represents standard input; it is assumed if no input files are specified. On VAX VMS and IBM PC DOS, the leading ``-'' on option names may be re- placed by a slash, ``/''; however, the ``-'' option prefix is always recognized. 2 1mDESCRIPTION0m 1mDESCRIPTION0m 1mbibclean 22mprettyprints input BibTeX files to 4mstdout24m, or to a user-speci- fied file, and checks the brace balance and bibliography entry syntax as well. It can be used to detect problems in BibTeX files that some- times confuse even BibTeX itself, and importantly, can be used to nor- malize the appearance of collections of BibTeX files. Here is a summary of the formatting actions: o BibTeX items are formatted into a consistent structure with one 4mfield24m 4m=24m 4m"value"24m pair per line, and the initial @ and trailing right brace in column 1. o Tabs are expanded into blank strings; their use is discouraged be- cause they inhibit portability, and can suffer corruption in elec- tronic mail. o Long string values are split at a blank and continued onto the next line with leading indentation. o A single blank line separates adjacent bibliography entries. o Text outside BibTeX entries is passed through verbatim. o Outer parentheses around entries are converted to braces. o Personal names in 4mauthor24m and 4meditor24m field values are normalized to the form ``P. D. Q. Bach'', from ``P.D.Q. Bach'' and ``Bach, P.D.Q.''. o Hyphen sequences in page numbers are converted to en-dashes. o Month values are converted to standard BibTeX string abbreviations. o In titles, sequences of upper-case characters at brace level zero are braced to protect them from being converted to lower-case let- ters by some bibliography styles. o CODEN, ISBN (International Standard Book Number) and ISSN (Interna- tional Standard Serial Number) entry values are examined to verify the checksums of each listed number, and correct ISBN hyphenation is automatically supplied. The standardized format of the output of 1mbibclean 22mfacilitates the later application of simple filters, such as 1mbibcheck22m(1), 1mbibdup22m(1), 1mbibex-0m 1mtract22m(1), 1mbibindex22m(1), 1mbibjoin22m(1), 1mbiblabel22m(1), 1mbiblook22m(1), 1mbibor-0m 1mder22m(1), 1mbibsort22m(1), 1mcitefind22m(1), and 1mcitetags22m(1), to process the text, and also is the one expected by the GNU Emacs BibTeX support functions. 2 1mOPTIONS0m 1mOPTIONS0m Command-line switches may be abbreviated to a unique leading prefix, and letter case is 4mnot24m significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag to 4mno24m. For such op- tions, the last setting determines the flag value used. That is sig- nificant when options are also specified in initialization files (see the 1mINITIALIZATION FILES 22mmanual section). The leading hyphen that distinguishes an option from a filename may be doubled, for compatibility with GNU and POSIX conventions. Thus, 1m-au-0m 1mthor 22mand 1m--author 22mare equivalent. To avoid confusion with options, if a filename begins with a hyphen, it must be disguised by a leading absolute or relative directory path, e.g., 4m/tmp/-foo.bib24m or 4m./-foo.bib24m. 1m-author 22mDisplay an author credit on the standard error unit, 4mstderr24m, and then terminate with a success return code. Sometimes an exe- cutable program is separated from its docu- mentation and source code; this option pro- vides a way to recover from that. 1m-copyleft 22mDisplay copyright information on the stan- dard error unit, 4mstderr24m, and then terminate with a success return code. 1m-copyright 22mDisplay copyright information on the stan- dard error unit, 4mstderr24m, and then terminate with a success return code. 1m-error-log 4m22mfilename24m Redirect 4mstderr24m to the indicated file, which then contains all of the error and warning messages. This option is provided for those systems that have difficulty redirecting 4mstderr24m. 1m-help 22mor 1m-? 22mDisplay a help message on 4mstderr24m, giving a usage description, similar to this section of the manual pages, and then terminate with a success return code. 1m-ISBN-file 4m22mfilename24m Provide an explicit ISBN-range initializa- tion file. It is processed 4mafter24m any sys- tem-wide and job-wide ISBN initialization files found on the 1mPATH 22m(for VAX VMS, 1mSYS$SYSTEM22m) and 1mBIBINPUTS 22msearch paths, re- spectively, and may override them. The ISBN initialization file name can be changed at compile time, or at run time through a setting of the environment vari- able 1mBIBCLEANISBN22m, but defaults to 4m.bib-0m 4mclean.isbn24m on UNIX, and 4mbibclean.isb24m else- where. For further details, see the 1mISBN0m 1mINITIALIZATION FILES 22mmanual section. 1m-init-file 4m22mfilename24m Provide an explicit value pattern initial- ization file. It is processed 4mafter24m any system-wide and job-wide initialization files found on the 1mPATH 22m(for VAX VMS, 1mSYS$SYSTEM22m) and 1mBIBINPUTS 22msearch paths, re- spectively, and may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a set- ting of the environment variable 1mBIB-0m 1mCLEANINI22m, but defaults to 4m.bibcleanrc24m on UNIX, and to 4mbibclean.ini24m elsewhere. For further details, see the 1mINITIALIZATION0m 1mFILES 22mmanual section. 1m-keyword-file 4m22mfilename24m Provide an explicit keyword initialization file. It is processed 4mafter24m any system- wide and job-wide keyword initialization files found on the 1mPATH 22m(for VAX VMS, 1mSYS$SYSTEM22m) and 1mBIBINPUTS 22msearch paths, re- spectively, and may override them. The keyword initialization file name can be changed at compile time, or at run time through a setting of the environment vari- able 1mBIBCLEANKEY22m, but defaults to 4m.bib-0m 4mclean.key24m on UNIX, and 4mbibclean.key24m else- where. For further details, see the 1mKEY-0m 1mWORD INITIALIZATION FILES 22mmanual section. 1m-max-width 4m22mnnn24m 1mbibclean 22mnormally limits output line widths to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special-purpose ap- plications may require different maximum line widths, so this option provides that capability. The number following the op- tion name can be specified in decimal, oc- tal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is interpreted to mean unlimited, so 1m-max-width 4m22m024m can be used to ensure that each field/value pair appears on a single line. When 1m-no-prettyprint 22mrequests 1mbibclean 22mto act as a lexical analyzer, the default line width is unlimited, unless overridden by this option. When 1mbibclean 22mis prettyprinting, line wrap- ping is done only at a space. Consequently, a long non-blank character sequence may re- sult in the output exceeding the requested line width. When 1mbibclean 22mis lexing, line wrapping is done by inserting a backslash-newline pair when the specified maximum is reached, so no line length ever exceeds the maximum. 1m-[no-]align-equals 22mWith the positive form, align the equals sign in key/value assignments at the same column, separated by a single space from the value string. Otherwise, the equals sign follows the key, separated by a single space. Default: 4mno24m. 1m-[no-]brace-protect 22mProtect uppercase and mixedcase words at brace-level zero with braces to prevent downcasing by some BibTeX styles. Default: 4myes24m. 1m-[no-]check-values 22mWith the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g., ``4myear24m 4m=0m 4m"192"24m'' instead of ``4myear24m 4m=24m 4m"1992"24m''), and issue warnings when unexpected patterns are found. That checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can dis- able it with the negative form of this op- tion. Default: 4myes24m. 1m-[no-]debug-match-failures 22mWith the positive form, print out a warning when a value pattern fails to match a value string. That is helpful in debugging new patterns, but because the output can be voluminous, you should use this option only with small test files, and initialization files that eliminate all patterns apart from the ones that you are testing. Default: 4mno24m. 1m-[no-]delete-empty-values 22mWith the positive form, remove all field/value pairs for which the value is an empty string. That is helpful in cleaning up bibliographies generated from text edi- tor templates. Compare this option with 1m-[no-]remove-OPT-prefixes 22mdescribed below. Default: 4mno24m. 1m-[no-]file-position 22mWith the positive form, give detailed file position information in warning and error messages. Default: 4mno24m. 1m-[no-]fix-accents 22mWith the positive form, normalize TeX ac- cents in annotes, authors, booktitles, edi- tors, notes, remarks, and titles. Default: 4mno24m. 1m-[no-]fix-braces 22mWith the positive form, normalize bracing in annotes, authors, booktitles, editors, notes, remarks, and titles, by removing un- necessary levels of braces. Default: 4mno24m. 1m-[no-]fix-degrees 22mWith the positive form, remove spaces in author/editor fields inside braces after letter-ending periods. That makes reduc- tions from 4mJ.24m 4mJ.24m 4m{Thomson,24m 4mM.24m 4mA.,24m 4mF.24m 4mR.0m 4mS.}24m, 4mFrederick24m 4m{Soddy,24m 4mB.24m 4mA.24m 4m(Oxon.)}24m, and 4mJohn24m 4mA.24m 4m{Cable,24m 4mM.24m 4mA.,24m 4mM.24m 4mEd.,24m 4mDipl.0m 4mDeutsch24m 4m(Marburg),24m 4mA.24m 4mL.24m 4mC.24m 4mM.}24m to 1mJ. J.0m 1m{Thomson, M.A., F.R.S.}22m, 1mFrederick {Soddy,0m 1mB.A. (Oxon.)}22m, and 1mJohn A. {Cable, M.A.,0m 1mM.Ed., Dipl.Deutsch (Marburg), A.L.C.M.}22m, respectively. In journals in the humanities and history of science, as well as in some scientific journals until well into the 20th Century, academic, honorary, and professional titles and degrees are commonly attached to per- sonal names. Even though modern publishing practice avoids such decorations, for accu- racy, bibliography entries should prefer- ably retain them. Journal typographical practice generally follows the reductions described here. 1m-[no-]fix-font-changes 22mWith the positive form, supply an addi- tional brace level around font changes in titles to protect against downcasing by some BibTeX styles. Font changes that al- ready have more than one level of braces are not modified. For example, if a title contains the Latin phrase 4m{\em24m 4mDictyostelium24m 4mdiscoideum}24m or 4m{\em24m 4m{D}ictyostelium24m 4mdiscoideum}24m, then downcasing incorrectly converts the phrase to lower-case letters. Most BibTeX users are surprised that bracing the initial let- ters does not prevent the downcase action. The correct coding is 4m{{\em24m 4mDictyostelium0m 4mdiscoideum}}24m. However, there are also le- gitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, 1mbibclean 22mnormally does 4mnot0m supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this op- tion to supply them. If you think that you need this option, it is 4mstrongly24m recommended that you apply 1mbib-0m 1mclean 22mto your bibliography file with and without 1m-fix-font-changes22m, then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You must decide which of the two output files is the better choice, then repair the incorrect title bracing by hand. Because font changes in titles are uncom- mon, except for cases of the type that this option is designed to correct, it should do more good than harm. Default: 4mno24m. 1m-[no-]fix-initials 22mWith the positive form, insert a space af- ter a period following author initials. Default: 4myes24m. 1m-[no-]fix-math 22mWith the positive form, improve readability of math mode in titles by inserting spaces around operators, deleting other unneces- sary space, and removing braces around sin- gle-character subscripts and superscripts. Default: 4mno24m. 1m-[no-]fix-names 22mWith the positive form, reorder 4mauthor24m and 4meditor24m name lists to remove commas at brace level zero, placing first names or initials before last names. Default: 4myes24m. 1m-[no-]German-style 22mWith the positive form, interpret quote characters ["] inside 4mbraced24m value strings at brace level 1 according to the conven- tions of the TeX style file 4mgerman.sty24m, which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, in- visible hyphens, raised/lowered quotes, French guillemets, and discretionary hy- phens. Recognized character combinations are braced to prevent BibTeX from inter- preting the quote as a string delimiter. Quoted strings receive no special handling from this option, and because German nouns in titles must anyway be protected from the downcasing operation of most BibTeX bibli- ography styles, German value strings that use the overloaded quote character can al- ways be entered in the form "{...}", with- out the need to specify this option at all. Default: 4mno24m. 1m-[no-]keep-linebreaks 22mNormally, line breaks inside value strings are collapsed into a single space, so that long value strings can later be broken to provide lines of reasonable length. With the positive form, linebreaks are pre- served in value strings. If 1m-max-width 22mis set to zero, this preserves the original line breaks. Spacing 4moutside24m value strings remains under 1mbibclean22m's control, and is not affected by this option. Default: 4mno24m. 1m-[no-]keep-parbreaks 22mWith the positive form, preserve paragraph breaks (either formfeeds, or lines contain- ing only spaces) in value strings. Nor- mally, paragraph breaks are collapsed into a single space. Spacing 4moutside24m value strings remains under 1mbibclean22m's control, and is not affected by this option. De- fault: 4mno24m. 1m-[no-]keep-preamble-spaces 22mWith the positive form, preserve all white- space in @Preamble{...} entries. Default: 4mno24m. 1m-[no-]keep-spaces 22mWith the positive form, preserve all spaces in value strings. Normally, multiple spa- ces are collapsed into a single space. This option can be used together with 1m-keep-linebreaks22m, 1m-keep-parbreaks22m, and 1m-max-width 4m22m024m to preserve the form of value strings while still providing syntax and value checking. Spacing 4moutside24m value strings remains under 1mbibclean22m's control, and is not affected by this option. De- fault: 4mno24m. 1m-[no-]keep-string-spaces 22mWith the positive form, preserve all white- space in @String{...} entries. Default: 4mno24m. 1m-[no-]parbreaks 22mWith the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field/value pairs. That may be useful to quickly trap runaway strings arising from mismatched delimiters. Default: 4myes24m. 1m-[no-]prettyprint 22mNormally, 1mbibclean 22mfunctions as a pretty- printer. However, with the negative form of this option, it acts as a lexical ana- lyzer instead, producing a stream of lexi- cal tokens. See the 1mLEXICAL ANALYSIS 22mman- ual section for further details. Default: 4myes24m. 1m-[no-]print-ISBN-table 22mWith the positive form, print the ISBN- range table on 4mstderr24m, then terminate with a success return code. That action is taken after all command-line options are processed, and before any input files are read (other than those that are values of command-line options). The format of the output ISBN-range table is acceptable for input as an ISBN initial- ization file (see the 1mISBN INITIALIZATION0m 1mFILES 22mmanual section). Default: 4mno24m. 1m-[no-]print-keyword-table 22mWith the positive form, print the keyword initialization table on 4mstderr24m, then termi- nate with a success return code. That action is taken after all command-line options are processed, and before any input files are read (other than those that are values of command-line options). The format of the output table is accept- able for input as a keyword initialization file (see the 1mKEYWORD INITIALIZATION FILES0m manual section). Default: 4mno24m. 1m-[no-]print-patterns 22mWith the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used. When 1mbibclean 22mis compiled with native pat- tern-matching code (the default), those patterns are the ones that are used in checking value strings for valid syntax, and all of them are specified in initial- ization files, rather than hard-coded into the program. For further details, see the 1mINITIALIZATION FILES 22mmanual section. De- fault: 4mno24m. 1m-[no-]quiet 22mThis option is the opposite of 1m-[no-]warn-0m 1ming22m; it exists for user convenience, and for compatibility with other programs that use 1m-q 22mfor quiet operation, without warn- ing messages. 1m-[no-]read-init-files 22mWith the negative form, suppress loading of system-, user-, and file-specific initial- ization files. Initializations then come 4monly24m from those files explicitly given by 1m-init-file 4m22mfilename24m options. Default: 4myes24m. 1m-[no-]remove-OPT-prefixes 22mWith the positive form, remove the ``OPT'' prefix from each field name where the cor- responding value is 4mnot24m an empty string. The prefix ``OPT'' must be entirely in up- per-case to be recognized. This option is for bibliographies generated with the help of the GNU Emacs BibTeX edit- ing support, which generates templates with optional fields identified by the ``OPT'' prefix. Although the function 4mM-x24m 4mbibtex-0m 4mremove-OPT24m normally bound to the keystrokes 4mC-c24m 4mC-o24m does the job, users often forget, with the result that BibTeX does not recog- nize the field name, and ignores the value string. Compare this option with 1m-[no-]delete-empty-values 22mdescribed above. Default: 4mno24m. 1m-[no-]scribe 22mWith the positive form, accept input syntax conforming to the Scribe document system. The output is converted to conform to Bib- TeX syntax. See the 1mSCRIBE BIBLIOGRAPHY0m 1mFORMAT 22mmanual section for further details. Default: 4mno24m. 1m-[no-]trace-file-opening 22mWith the positive form, record in the error log file the names of all files that 1mbib-0m 1mclean 22mattempts to open. Use this option to identify where initialization files are lo- cated. Default: 4mno24m. 1m-[no-]warnings 22mWith the positive form, allow all warning messages. The negative form is 4mnot24m recom- mended because it may mask problems that should be repaired. Default: 4myes24m. 1m-output-file 4m22mfilename24m Supply an alternate output file to replace 4mstdout24m. If the filename cannot be opened for output, execution terminates immedi- ately with a nonzero exit code. 1m-version 22mDisplay the program version number on 4mstderr24m, and then terminate with a success return code. That includes an indication of who compiled the program, the host name on which it was compiled, the time of com- pilation, and the type of string-value matching code selected, when that informa- tion is available to the compiler. 2 1mERROR-RECOVERY-AND-WARNINGS0m 1mERROR RECOVERY AND WARNINGS0m When 1mbibclean 22mdetects an error, it issues an error message to both 4mstderr24m and 4mstdout24m. That way, the user is clearly notified, and the output bibliography also contains the message at the point of error. Error messages begin with a distinctive pair of queries, ??, beginning in column 1, followed by the input file name and line number. If the 1m-file-position 22moption was specified, they also contain the input and output positions of the current file, entry, and value. Each position includes the file byte number, the line number, and the column number. In the event of a runaway string argument, the entry and value posi- tions should precisely pinpoint the erroneous bibliography entry, and the file positions indicate where it was detected, which may be rather later in the files. Warning messages identify possible problems, and are therefore sent only to 4mstderr24m, and not to 4mstdout24m, so they never appear in the output file. They are identified by a distinctive pair of percents, %%, be- ginning in column 1, and as with error messages, may be followed by file position messages if the 1m-file-position 22moption was specified. For convenience, the first line of each error and warning message sent to 4mstderr24m is formatted according to the expectations of the GNU Emacs 4mnext-error24m command. You can invoke 1mbibclean 22mwith the Emacs 4mM-x24m 4mcom-0m 4mpilebibclean24m 4mfilename.bib24m 4m>filename.new24m command, then use the 4mnext-error24m command, normally bound to 4mC-x24m 4m`24m (that's a grave, or back, accent), to move to the location of the error in the input file. If error messages are ignored, and left in the output bibliography file, they precipitates an error when the bibliography is next pro- cessed with BibTeX. After issuing an error message, 1mbibclean 22mthen resynchronizes its input by copying it verbatim to 4mstdout24m until a new bibliography entry is rec- ognized on a line in which the first non-blank character is an at-sign (@). That ensures that nothing is lost from the input file(s), allow- ing corrections to be made in either the input or the output files. However, if 1mbibclean 22mdetects an internal error in its data structures, it terminates abruptly without further input or output processing; that kind of error should never happen, and if it does, it should be re- ported immediately to the author of the program. Errors in initializa- tion files, and running out of dynamic memory, also immediately termi- nate 1mbibclean22m. 2 1mSEARCH-PATHS0m 1mSEARCH PATHS0m Versions of 1mbibclean 22mbefore 3.00 found some of their initialization files in the same directory as the executable program. That design choice means that those files can be copied anywhere in the file sys- tem, and still be found at run time. Some software distributions, how- ever, prefer to follow the model where initialization and other related files are instead stored in a directory whose name is related to that of the executable by a conventional difference in filepath. For exam- ple, a program might be installed in 4m/opt/bin24m and its associated files in 4m/opt/share/lib/PROGRAMNAME/24m or 4m/opt/share/lib/PROGRAMNAME/PRO-0m 4mGRAMVERSION/24m. The second form is preferable, because it permits multi- ple versions of the same program to be installed, as long as the exe- cutable program names carry a version suffix. Thus, a site might have installed programs named 4mbibclean-1.0024m, 4mbibclean-2.0024m, 4mbibclean-2.1524m, and 4mbibclean-3.0024m, with the versionless name 4mbibclean24m being a symbolic link to whichever version is the desired local default. With most software packages, the absolute path to the directory con- taining associated files is compiled into the program, making it impos- sible to change the installation locations after the program has been built from source code. Some packages, however, instead use the location of the executable pro- gram to find files by relative path at runtime. In the above example, the program would determine its filesystem location at runtime, say 4m/opt/bin24m, then find its associated files relative to that location in 4m../share/lib/PROGRAMNAME/PROGRAMVERSION/24m. From version 3.00, 4mbibclean24m uses that second approach, with an associ- ated directory like 4m../share/lib/bibclean/3.0024m. That allows an instal- lation directory tree to be distributed to other systems and unbundled 4manywhere24m in the file system, as long as the relative paths are not changed. 4mbibclean24m tests whether its compiled-in library path is a di- rectory on the local system, and if so, uses it. Otherwise, it re- places that path by a reconstructed one based on the location of the executable program. If the reconstructed path for the library direc- tory does not exist, it uses a warning. In either case, it continues normally. With the old approach, initialization files on Unix systems were named with a leading period, making them `hidden' files for the 4mls24m command. With the new practice, initialization files are no longer named as hid- den files. 2 1mINITIALIZATION-FILES0m 1mINITIALIZATION FILES0m 1mbibclean 22mcan be compiled with one of three different types of pattern matching; the choice is made by the installer at compile time: o The original version uses explicit hand-coded tests of value- string syntax. o The second version uses regular-expression pattern-matching host library routines together with regular-expression pat- terns that come entirely from initialization files. o The third version uses special patterns that come entirely from initialization files. The second and third versions are the ones of most interest here, be- cause they allow the user to control what values are considered accept- able. However, command-line options can also be specified in initial- ization files, no matter which pattern matching choice was selected. When 1mbibclean 22mstarts, it searches for initialization files, finding the first one in the system executable program search path (on UNIX and IBM PC DOS, 1mPATH22m) and the first one in the 1mBIBINPUTS 22msearch path, and pro- cesses them in turn. Then, when command-line arguments are processed, any additional files specified by 1m-init-file 4m22mfilename24m options are also processed. Finally, immediately before each 4mnamed24m bibliography file is processed, an attempt is made to process an initialization file with the same name, but with the extension changed to 4m.ini24m. The default ex- tension can be changed by a setting of the environment variable 1mBIB-0m 1mCLEANEXT22m. That scheme permits system-wide, user-wide, session-wide, and file-specific initialization files to be supported. When input is taken from 4mstdin24m, there is no file-specific initializa- tion. For precise control, the 1m-no-read-init-files 22moption suppresses all ini- tialization files except those explicitly named by 1m-init-file 4m22mfilename0m options, either on the command line, or in requested initialization files. Recursive execution of initialization files with nested 1m-init-file 22mop- tions is permitted; if the recursion is circular, 1mbibclean 22mfinally gets a non-fatal initialization file open failure after opening too many files. That terminates further initialization file processing. As the recursion unwinds, the files are all closed, then execution proceeds normally. An initialization file may contain empty lines, comments from percent to end of line (just like TeX), option switches, and field/pattern or field/pattern/message assignments. Leading and trailing spaces are ig- nored. That is best illustrated by a short example: % This is a small bibclean initialization file -init-file /u/math/bib/.bibcleanrc %% departmental patterns chapter = "\"D\"" %% 23 pages = "\"D--D\"" %% 23--27 volume = "\"D \\an\\d D\"" %% 11 and 12 year = \ "\"dddd, dddd, dddd\"" \ "Multiple years specified." %% 1989, 1990, 1991 -no-fix-names %% do not modify author/editor lists Long logical lines can be split into multiple physical lines by break- ing at a backslash-newline pair; the backslash-newline pair is dis- carded. That processing happens while characters are being read, be- fore any further interpretation of the input stream. Each logical line must contain a complete option (and its value, if any), or a complete field/pattern pair, or a field/pattern/message triple. Comments are stripped during the parsing of the field, pattern, and message values. The comment start symbol is not recognized inside quoted strings, so it can be freely used in such strings. Comments on logical lines that were input as multiple physical lines via the backslash-newline convention must appear on the 4mlast24m physical line; otherwise, the remaining physical lines become part of the com- ment. Pattern strings must be enclosed in quotation marks; within such strings, a backslash starts an escape mechanism that is commonly used in UNIX software. The recognized escape sequences are: 1m\a 22malarm bell (octal 007) 1m\b 22mbackspace (octal 010) 1m\f 22mformfeed (octal 014) 1m\n 22mnewline (octal 012) 1m\r 22mcarriage return (octal 015) 1m\t 22mhorizontal tab (octal 011) 1m\v 22mvertical tab (octal 013) 1m\ooo 22mcharacter number octal 4mooo24m (e.g 1m\012 22mis linefeed). Up to 3 octal digits may be used. 1m\0xhh 22mcharacter number hexadecimal 4mhh24m (e.g., 1m\0x0a 22mis line- feed). 4mxhh24m may be in either letter case. Any number of hexadecimal digits may be used. Backslash followed by any other character produces just that character. Thus, \% gets a literal percent into a string (preventing its interpre- tation as a comment), \" produces a quotation mark, and \\ produces a single backslash. An ASCII NUL 4m(\0)24m in a string terminates it; that is a feature of the C programming language in which 1mbibclean 22mis implemented. Field/pattern pairs can be separated by arbitrary space, and option- ally, either an equals sign or colon functioning as an assignment oper- ator. Thus, the following are equivalent: pages="\"D--D\"" pages:"\"D--D\"" pages "\"D--D\"" pages = "\"D--D\"" pages : "\"D--D\"" pages "\"D--D\"" Each field name can have an arbitrary number of patterns associated with it; however, they must be specified in separate field/pattern as- signments. An empty pattern string causes previously-loaded patterns for that field name to be forgotten. That feature permits an initialization file to completely discard patterns from earlier initialization files. Patterns for value strings are represented in a tiny special-purpose language that is both convenient and suitable for bibliography value- string syntax checking. While not as powerful as the language of regu- lar-expression patterns, its parsing can be portably implemented in less than 3% of the code in a widely-used regular-expression parser (the GNU 1mregexp 22mpackage). The patterns are represented by the following special characters: 1m 22mone or more spaces 1ma 22mexactly one letter 1mA 22mone or more letters 1md 22mexactly one digit 1mD 22mone or more digits 1mr 22mexactly one Roman numeral 1mR 22mone or more Roman numerals (i.e. a Roman number) 1mw 22mexactly one word (one or more letters and digits) 1mW 22mone or more space-separated words, beginning and ending with a word 1m. 22mone `special' character, one of the characters !#()*+,-./:;?[]~, a subset of punctuation char- acters that are typically used in string values 1m: 22mone or more `special' characters 1mX 22mone or more `special'-separated words, beginning and ending with a word 1m\x 22mexactly one x (x is any character), possibly with an escape sequence interpretation given earlier 1mx 22mexactly the character x (x is anything but one of these pattern characters: aAdDrRwW.:\) The 1mX 22mpattern character is very powerful, but generally inadvisable, because it matches almost anything likely to be found in a BibTeX value string. The reason for providing pattern matching on the value strings is to uncover possible errors, not mask them. There is no provision for specifying ranges or repetitions of charac- ters, but that can usually be done with separate patterns. It is a good idea to accompany the pattern with a comment showing the kind of thing it is expected to match. Here is a portion of an initialization file giving a few of the patterns used to match 4mnumber24m value strings: number = "\"D\"" %% 23 number = "\"A AD\"" %% PN LPS5001 number = "\"A D(D)\"" %% RJ 34(49) number = "\"A D\"" %% XNSS 288811 number = "\"A D\\.D\"" %% Version 3.20 number = "\"A-A-D-D\"" %% UMIAC-TR-89-11 number = "\"A-A-D\"" %% CS-TR-2189 number = "\"A-A-D\\.D\"" %% CS-TR-21.7 For a bibliography that contains only 4marticle24m entries, that list should probably be reduced to just the first pattern, so that anything other than a digit string fails the pattern-match test. That is easily done by keeping bibliography-specific patterns in a corresponding file with extension 4m.ini24m, because that file is read automatically. You should be sure to use empty pattern strings in the pattern file to discard patterns from earlier initialization files. The value strings passed to the pattern matcher contain surrounding quotes, so the patterns should also. However, you could use a pattern specification like "\"D" to match an initial digit string followed by anything else; the omission of the final quotation mark \" in the pat- tern allows the match to succeed without checking that the next charac- ter in the value string is a quotation mark. Because the value strings are intended to be processed by TeX, the pat- tern matching ignores braces, and TeX control sequences, together with any space following those control sequences. Spaces around braces are preserved. That convention allows the pattern fragment 4mA-AD-D24m to match the value string 4mTN-K\slash24m 4m27-7024m, because the value is implicitly col- lapsed to 4mTN-K27-7024m during the matching operation. 1mbibclean22m's normal action when a string value fails to match any of the corresponding patterns is to issue a 4mwarning24m message something like this: 4m"Unexpected24m 4mvalue24m 4min24m 4m``year24m 4m=24m 4m"192"''24m. In most cases, that is sufficient to alert the user to a problem. In some cases, however, it may be desirable to associate a different message with a particular pattern. That can be done by supplying a message string following the pattern string. Format items 4m%%24m (single percent), 4m%e24m (entry name), 4m%f0m (field name), 4m%k24m (citation key), and 4m%v24m (string value) are available to get current values expanded in the messages. Here is an example: chapter = "\"D:D\"" "Colon found in ``%f = %v''" %% 23:2 To be consistent with other messages output by 1mbibclean22m, the message string should 4mnot24m end with punctuation. If you wish to make the message an error, rather than just a warning, begin it with a query (?), like this: chapter = "\"D:D\"" "?Colon found in ``%f = %v''" %% 23:2 The query is be included in the output message. Escape sequences are supported in message strings, just as they are in pattern strings. You can use that to advantage for fancy things, such as terminal display mode control. If you rewrite the previous example as chapter = "\"D:D\"" \ "?\033[7mColon found in ``%f = %v''\033[0m" %% 23:2 the error message appears in inverse video on display screens that sup- port ANSI terminal control sequences. Such practice is not normally recommended, because it may have undesirable effects on some output de- vices. Nevertheless, you may find it useful for restricted applica- tions. For some types of bibliography fields, 1mbibclean 22mcontains special-pur- pose code to supplement or replace the pattern matching: o 4mCODEN24m, 4mISBN24m and 4mISSN24m field values are handled that way be- cause their validation requires evaluation of checksums that cannot be expressed by simple patterns; no patterns are even used in these three cases. o When 1mbibclean 22mis compiled with pattern-matching code support, 4mchapter24m, 4mnumber24m, 4mpages24m, and 4mvolume24m values are checked only by pattern matching. o 4mmonth24m values are first checked against the standard BibTeX month abbreviations, and only if no match is found are pat- terns then used. o 4myear24m values are first checked against patterns, then if no match is found, the year numbers are found and converted to integer values for testing against reasonable bounds. Values for other fields are checked only against patterns. You can provide patterns for 4many24m field you like, even ones 1mbibclean 22mdoes not already know about. New ones are simply added to an internal table that is searched for each string to be validated. The special field, 4mkey24m, represents the bibliographic citation key. It can be given patterns, like any other field. Here is an initialization file pattern assignment that matches an author name, a colon, a four- digit year, a colon, and an alphabetic string, in the BibNet Project style: key = "A:dddd:A" %% Knuth:1986:TB Notice that no quotation marks are included in the pattern, because the citation keys are not quoted. You can use such patterns to help en- force uniform naming conventions for citation keys, which is increas- ingly important as your bibliography data base grows. 2 1mISBN-INITIALIZATION-FILES0m 1mISBN INITIALIZATION FILES0m 1mbibclean 22mcontains a compiled-in table of ISBN ranges and country/lan- guage settings that is suitable for most applications. However, ISBN data change yearly, as new countries adopt ISBNs, and as publishers are granted new, or additional, ISBN prefixes. Thus, from version 2.12, 1mbibclean 22msupports reading of run-time ISBN initialization files found on the 1mPATH 22m(for VAX VMS, 1mSYS$SYSTEM22m) and 1mBIBINPUTS 22msearch paths, and then any specified by 1m-ISBN-file 4m22mfilename0m options. That feature makes it possible to incorporate new ISBN data without having to produce a new 1mbibclean 22mrelease and reinstall the software at end-user sites. The format of an ISBN initialization file is similar to that of the 1mbibclean 22minitialization files described in the preceding section: com- ments begin with percent and continue to end of line, blank and empty lines are ignored, backslash-newline joins adjacent lines, and other- wise, lines are expected to contain a required pair of ISBN coun- try/language-publisher prefixes forming a non-decreasing range, option- ally followed by one or more words of text that are treated as the country/language group value. The latter value plays no part in ISBN validation, but its presence is strongly recommended, in order to make the ISBN table more understandable for humans. Here is a short example: %% The Faeroes got ISBN assignments between 1993 and 1998 99918-0 99918-3 Faeroes 99918-40 99918-61 99918-900 99918-938 It is not necessary to repeat the country names on succeeding entries with the same initial number (99918 in that example); that is handled internally. Data from ISBN files normally augment the compiled-in data. However, if the first prefix begins with a hyphen, then 1mbibclean 22mdeletes the first entry in the table matching that first prefix (ignoring the lead- ing hyphen): %% Latvia got ISBN ranges between 1993 and 1998 %% so we remove the old placeholder, then add the %% new ranges. -9984-0 9984-9 This one is no longer valid 9984-00 9984-20 Latvia 9984-500 9984-770 9984-9000 9984-9984 2 1mKEYWORD-INITIALIZATION-FILES0m 1mKEYWORD INITIALIZATION FILES0m 1mbibclean 22mcontains a compiled-in table of keyword mappings that is suit- able for most applications. The default settings merely adjust letter- case in certain keyword names, so that, for example, 4misbn24m is output as 4mISBN24m. From version 2.12, 1mbibclean 22msupports reading of run-time keyword ini- tialization files found on the 1mPATH 22m(for VAX VMS, 1mSYS$SYSTEM22m) and 1mBIB-0m 1mINPUTS 22msearch paths, and then any specified by 1m-keyword-file 4m22mfilename0m options. That feature makes it possible to incorporate special spellings of new keywords without having to produce a new 1mbibclean 22mrelease and reinstall the software at end-user sites. The format of a keyword initialization file is similar to that of the other 1mbibclean 22minitialization files described in the preceding sec- tions: comments begin with percent and continue to end of line, blank and empty lines are ignored, backslash-newline joins adjacent lines, and otherwise, lines are expected to contain a required pair of old and new keyword names. Here is a short example: %% We want special handling of MathReviews keywords mrclass MRclass mrnumber MRnumber mrreviewer MRreviewer Data from keywords files normally augment the compiled-in data. How- ever, if the first keyword begins with a hyphen, then 1mbibclean 22mdeletes the first entry in the table matching that keyword (ignoring the lead- ing hyphen): %% Remove special handling of ISBN, ISSN, and LCCN values. -issn ISSN -isbn ISBN -lccn LCCN Even though the second keyword in each deletion pair is not used, it still must be specified. Notice that this feature can be used to regularize keyword names, but use it with care, in order to avoid producing duplicate key names in output BibTeX entries: %% Map variations of keywords into a common name: keys keywords keywds keywords keyword keywords keywrd keywords keywrds keywords searchkey keywords 2 1mLEXICAL-ANALYSIS0m 1mLEXICAL ANALYSIS0m When 1m-no-prettyprint 22mis specified, 1mbibclean 22macts as a lexical analyzer instead of a prettyprinter, producing output in lines of the form "" Each output line contains a single complete token, identified by a small integer number for use by a computer program, a token type name for human readers, and a string value in quotes. Special characters in the token value string are represented with ANSI/ISO Standard C escape sequences, so all characters other than NUL are representable, and multi-line values can be represented in a single line. Here are the token numbers and token type names that can appear in the output when 1m-prettyprint 22mis specified: 0 UNKNOWN 1 ABBREV 2 AT 3 COMMA 4 COMMENT 5 ENTRY 6 EQUALS 7 FIELD 8 INCLUDE 9 INLINE 10 KEY 11 LBRACE 12 LITERAL 13 NEWLINE 14 PREAMBLE 15 RBRACE 16 SHARP 17 SPACE 18 STRING 19 VALUE Programs that parse such output should also be prepared for lines be- ginning with the warning prefix, %%, or the error prefix, ??, and for ANSI/ISO Standard C line-number directives of the form # line 273 "texbook1.bib" that record the line number and file name of the current input file. If a 1m-max-width 4m22mnnn24m command-line option was specified, long output lines are wrapped at a backslash-newline pair, and consequently, soft- ware that processes the lexical token stream should be prepared to col- lapse such wrapped lines back into single lines. As an example of the use of 1m-no-prettyprint22m, the UNIX command pipeline 1mbibclean -no-prettyprint 4m22mmylib.bib24m | \ 1mawk 22m'$2 == "KEY" {print $3}' | \ 1msed 22m-e 's/"//g' | \ 1msort0m extracts a sorted list of all citation keys in the file 4mmylib.bib24m. A certain amount of processing has been done on the tokens. In partic- ular, delimiters equivalent to braces have been replaced by braces, and braced strings have become quoted strings. The LITERAL token type is used for arbitrary text that 1mbibclean 22mdoes not examine further, such as the contents of a @Preamble{...} or a @Comment{...}. The UNKNOWN token type should never appear in the output stream. It is used internally to initialize token type variables. 2 1mSCRIBE-BIBLIOGRAPHY-FORMAT0m 1mSCRIBE BIBLIOGRAPHY FORMAT0m 1mbibclean22m's support for the Scribe bibliography format is based on the syntax description in the Scribe Introductory User's Manual, 3rd Edi- tion, May 1980. Scribe was originally developed by Brian Reid at Carnegie-Mellon University, and was marketed by Unilogic, Ltd., later renamed to Scribe Systems, and apparently now long defunct. The BibTeX bibliography format was strongly influenced by Scribe, and indeed, with care, it is possible to share bibliography files between the two systems. Nevertheless, there are some differences, so here is a summary of features of the Scribe bibliography file format: (1) Letter case is not significant in field names and entry names, but case is preserved in value strings. (2) In field/value pairs, the field and value may be separated by one of three characters: =, /, or space. Space may optionally sur- round these separators. (3) Value delimiters are any of these seven pairs: { } [ ] ( ) < > ' ' " " ` ` (4) Value delimiters may not be nested, even though with the first four delimiter pairs, nested balanced delimiters would be unam- biguous. (5) Delimiters can be omitted around values that contain only let- ters, digits, sharp (#), ampersand (&), period (.), and percent (%). (6) Outside of delimited values, a literal at-sign (@) is represented by doubled at-signs (@@). (7) Bibliography entries begin with @name, as for BibTeX, but any of the seven Scribe value delimiter pairs may be used to surround the values in field/value pairs. As in (4), nested delimiters are forbidden. (8) Arbitrary space may separate entry names from the following de- limiters. (9) @Comment is a special command whose delimited value is discarded. As in (4), nested delimiters are forbidden. (10) The special form @Begin{comment} ... @End{comment} permits encapsulating arbitrary text containing any characters or delimiters, other than ``@End{comment}''. Any of the seven de- limiter pairs may be used around the word ``comment'' following the ``@Begin'' or ``@End''; the delimiters in the two cases need not be the same, and consequently, ``@Begin{com- ment}''/``@End{comment}'' pairs may 4mnot24m be nested. (11) The 4mkey24m field is required in each bibliography entry. (12) A backslashed quote in a string is assumed to be a TeX accent, and braced appropriately. While such accents do not conform to Scribe syntax, Scribe-format bibliographies have been found that appear to be intended for TeX processing. Because of that loose syntax, 1mbibclean22m's normal error detection heuris- tics are less effective, and consequently, Scribe mode input is not the default; it must be explicitly requested. 2 1mENVIRONMENT-VARIABLES0m 1mENVIRONMENT VARIABLES0m 1mBIBCLEANEXT 22mFile extension of bibliography-specific initialization files. Default: 4m.ini24m. 1mBIBCLEANINI 22mName of 1mbibclean 22minitialization files. Default: 4m.bib-0m 4mcleanrc24m (UNIX), 4mbibclean.ini24m (non-UNIX). 1mBIBCLEANISBN 22mName of 1mbibclean 22mISBN initialization files. Default: 4m.bibclean.isbn24m (UNIX), 4mbibclean.isb24m (non-UNIX). 1mBIBCLEANKEY 22mName of 1mbibclean 22mkeyword initialization files. Default: 4m.bibclean.key24m (UNIX), 4mbibclean.key24m (non-UNIX). 1mBIBINPUTS 22mSearch path for 1mbibclean 22mand BibTeX input files. On UNIX, it is a colon-separated list of directories that are searched in order from first to last. It is not an error for a specified directory to not exist. On other operating systems, the directory names should be separated by whatever character is used in system search path specifications, such as a semicolon on IBM PC DOS. 1mPATH 22mOn Atari TOS, IBM PC DOS, IBM PC OS/2, Microsoft NT, and UNIX, search path for system executable files. The sys- tem-wide 1mbibclean 22minitialization file is searched for in that path. 1mSYS$SYSTEM 22mOn VAX VMS, search path for system executable files and the system-wide 1mbibclean 22minitialization file. 2 1mFILES0m 1mFILES0m 4m*.bib24m BibTeX and Scribe bibliography data base files. 4m*.ini24m File-specific initialization files. 4m.bibclean.isbn24m UNIX system-wide and user-specific ISBN initialization files. 4m.bibclean.key24m UNIX system-wide and user-specific keyword initializa- tion files. 4m.bibcleanrc24m UNIX system-wide and user-specific initialization files. 4mbibclean.ini24m Non-UNIX system-wide and user-specific initialization files. 4mbibclean.isb24m Non-UNIX system-wide and user-specific ISBN initializa- tion files. 4mbibclean.key24m Non-UNIX system-wide and user-specific keyword initial- ization files. 2 1mSEE-ALSO0m 1mSEE ALSO0m 1mbibcheck22m(1), 1mbibdup22m(1), 1mbibextract22m(1), 1mbibindex22m(1), 1mbibjoin22m(1), 1mbibla-0m 1mbel22m(1), 1mbiblex22m(1), 1mbiblook22m(1), 1mbiborder22m(1), 1mbibparse22m(1), 1mbibsearch22m(1), 1mbibsort22m(1), 1mbibtex22m(1), 1mbibunlex22m(1), 1mcitefind22m(1), 1mcitesub22m(1), 1mcite-0m 1mtags22m(1), 1mlatex22m(1), 1mscribe22m(1), 1mtex22m(1). 2 1mAUTHOR0m 1mAUTHOR0m Nelson H. F. Beebe University of Utah Department of Mathematics, 110 LCB 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA Tel: +1 801 581 5254 FAX: +1 801 581 4148 Email: beebe@math.utah.edu, beebe@acm.org, beebe@computer.org (Internet) URL: http://www.math.utah.edu/~beebe 2 1mCOPYRIGHT0m 1mCOPYRIGHT0m ######################################################################## ######################################################################## ######################################################################## ### ### ### bibclean: prettyprint and syntax check BibTeX and Scribe ### ### bibliography data base files ### ### ### ### Copyright (C) 1990--2016 Nelson H. F. Beebe ### ### ### ### This program is covered by the GNU General Public License (GPL), ### ### version 2 or later, available as the file COPYING in the program ### ### source distribution, and on the Internet at ### ### ### ### ftp://ftp.gnu.org/gnu/GPL ### ### ### ### http://www.gnu.org/copyleft/gpl.html ### ### ### ### 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; either version 2 of ### ### the License, or (at your option) any later version. ### ### ### ### 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. ### ### ### ### You should have received a copy of the GNU General Public ### ### License along with this program; if not, write to the Free ### ### Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, ### ### MA 02111-1307 USA ### ######################################################################## ######################################################################## ######################################################################## 2 Version-3.05----------------------18-May-2020----------------------BIBCLEAN(1) Version 3.05 18 May 2020 BIBCLEAN(1) bibclean-3.07/vaxvms.c0000644000156700015670000006205407721523172013611 0ustar beebebeebe/* -*-C-*- vaxvms.c */ /*-->vaxvms*/ /**********************************************************************/ /****************************** vaxvms ********************************/ /**********************************************************************/ /*********************************************************************** This file provides alternative functions for several VMS VMS C library routines which either unacceptable, or incorrect, implementations. They have been developed and tested under VMS Version 4.4, but indications are that they apply to earlier versions, back to 3.2 at least. They should be retested with each new release of VMS C. Some of these (memxxx(), strxxx(), and system()) are available with VMS C 2.3 or later, but these versions should still work. Under VAX VMS 5.2, system(), sscanf(), and strtod() are in the run-time library. However, the run-time library version of system() returns a VMS-style exit code, not a UNIX-style code; for portability, our version below is preferred. Contents: FSEEK FTELL GETCHAR GETENV READ UNGETC getjpi -- system-service access getlogin memchr memcmp memcpy memmove memset stricmp strtok strtol system tell unlink utime The VAX VMS file system record structure has unfortunate consequences for random access files. By default, text files written by most system utilities, and languages other than C, have a variable length record format, in which a 16-bit character count is aligned on an even-byte boundary in the disk block b(always 512 bytes in VMS, independent of record and file formats), followed by bytes of data. Binary files, such as .EXE, .OBJ, and TeX .DVI and font files, all use a 512-byte fixed record format which has no explicit length field. No file byte count is stored; instead, the block count, and the offset of the last data byte in the last block are recorded in the file header (do ``DUMP/HEADER filespec'' to see it). For binary files with fixed-length records, the last block is normally assumed to be full, and consequently, file transfer of binary data from other machines via Kermit, FTP, or DCL COPY from ANSI tapes, generally fails because the input file length is not a multiple of 512. This record organization may be contrasted with the STREAM, STREAM_LF, and STREAM_CR organizations supported from Version 4.0; in these, disk blocks contain a continuous byte stream in which nothing, or LF, or CR, is recognized as a record terminator. These formats are similar to the UNIX and TOPS-20 file system formats which also use continuous byte streams. For C, this means that a program operating on a file in record format cannot count input characters and expect that count to be the same value as the offset parameter passed to fseek(), which numerous C programs assume to be the case. The 15-Dec-1989 C Standard, and Harbison and Steele's ``C Reference Manual'', emphasize that only values returned by ftell() should be used as arguments to fseek(), allowing the program to return to a position previously read or written. UNFORTUNATELY, VMS C ftell() DOES NOT RETURN A CORRECT OFFSET VALUE FOR RECORD FILES. Instead, for record files, it returns the byte offset of the start of the current record, no matter where in that record the current position may be. This misbehavior is completely unnecessary, since the replacements below perform correctly, and are written entirely in C. Another problem is that ungetc(char c, FILE *fp) is unreliable. VMS C implements characters as signed 8-bit integers (so do many other C implementations). fgetc(FILE *fp) returns an int, not a char, whose value is EOF (-1) in the event of end-of-file; however, this value will also be returned for a character 0xFF, so it is essential to use feof(FILE *fp) to test for a true end-of-file condition when EOF is returned. ungetc() checks the sign of its argument c, and if it is negative (which it will be for 128 of the 256 signed bytes), REFUSES TO PUT IT BACK IN THE INPUT STREAM, on the assumption that c is really EOF. This too can be fixed; ungetc() should only do nothing if feof() indicates a true end-of-file condition. The overhead of this is trivial, since feof() is actually implemented as a macro which does nothing more than a logical AND and compare-with-zero. getchar() waits for a to be typed when stdin is a terminal; the replacement vms_getchar() remedies this. Undoubtedly other deficiencies in VMS C will reveal themselves. VMS read() returns only a single disk block on each call. Its replacement, vms_read(), will return the requested number of bytes, if possible. [29-Apr-1987] Brendan Mackay (munnari!anucsd.oz!bdm@seismo.CSS.GOV) This fix has been incorporated in vms_read() below. Here are Brendan's comments: >> The code for vms_read() has problems. One is that you don't test for >> end of file. The other is that there is a bug in the C library which >> prevents you asking for more than 65535 bytes at a time. It is >> documented that no more than 65535 bytes will be returned, but not >> that you can't ask for more. If you do, it reduces your request mod >> 65536! There are also a few UNIX standard functions which are unimplemented. getlogin() and unlink() have VMS equivalents provided below. tell() is considered obsolete, since its functionality is available from lseek(), but it is still seen in a few programs, so is provided below. getenv() fails if the name contains a colon; its replacement allows the colon, and ignores letter case. In the interest of minimal source perturbation, replacements for VMS functions are given the same names, but prefixed "vms_". For readability, the original names are preserved, but are converted to upper-case: #define FTELL vms_ftell #define FSEEK vms_fseek #define GETCHAR vms_getchar #define GETENV vms_getenv #define UNGETC vms_ungetc These are only defined to work correctly for fixed length 512-byte records, and no check is made that the file has that organization (it is possible, but not without expensive calls to fstat(), or access to internal library structures). [02-Apr-1987] -- Nelson H. F. Beebe, University of Utah Center for Scientific Computing [13-Apr-1988] -- added memxxx(), strxxx(), fixed return code in system() ***********************************************************************/ #ifdef VMS /* so this compiles anywhere */ #undef VOIDP #if 0 /* prior to VMS C 2.3 */ #define VOIDP char* /* char *prior to Standard C */ #define const /* const is a type modifier in Standard C */ #else /* NOT 1 */ #define VOIDP void* /* char *prior to Standard C */ #endif /* 1 */ #define FTELL vms_ftell #define FSEEK vms_fseek #define GETENV vms_getenv #define GETCHAR vms_getchar #define READ vms_read #define UNGETC vms_ungetc #include #include #if defined(HAVE_STDLIB_H) #include #endif #if defined(HAVE_STRING_H) #include #endif #if defined(HAVE_TYPES_H) #include #endif #if defined(HAVE_CTYPE_H) #include #endif #if defined(HAVE_DESCRIP_H) #include #endif #if defined(HAVE_ERRNO_H) #include /* need for utime() */ #endif #if defined(HAVE_IODEF_H) #include /* need for vms_getchar() */ #endif #if defined(HAVE_RMS_H) #include /* need for utime() */ #endif #if defined(HAVE_SSDEF_H) #include #endif #if defined(HAVE_STAT_H) #include #endif #if defined(HAVE_STRING_H) #include #endif #if defined(HAVE_TIME_H) #include #endif #if defined(HAVE_UNIXIO_H) #include #endif #if defined(__ALPHA) int lib$spawn(struct dsc$descriptor *t_,int,int,int,int,int,int *stat_); void lib$stop(int status_); int sys$assign(void *desc_,int *channel_,int n1_,int n2_); int sys$bintim(struct dsc$descriptor_s *time_desc_, int xab_element_); int sys$close(struct FAB *fab_); int sys$qiow(int, int channel_, int flags_, int n1_, int n2_, int n3_, int *ret_char_, int n4_, int n5_, int n6_, int n7_, int n8_); int sys$open(struct FAB *fab_); int system(const char *s_); #else /* VAX VMS 6.1 has these header files */ #include /* for lib$spawn(), lib$stop() */ #include /* for sys$assign(), sys$bintim(), sys$close(), sys$exit(), sys$open(), sys$qiow() */ #endif long vms_fseek(FILE *fp_, long n_, long dir_); long vms_ftell(FILE *fp_); char *vms_getenv(char *name_); int vms_getchar(void); int vms_read(int file_desc_, char *buffer_, int nbytes_); long vms_ungetc(char c_, FILE *fp_); static char rcsid[] = "$Id: vaxvms.c,v 1.3 2003/08/22 23:25:43 beebe Exp beebe $"; /**********************************************************************/ /*-->FSEEK*/ /* VMS fseek() and ftell() on fixed-length record files work correctly only at block boundaries. This replacement code patches in the offset within the block. Directions from current position and from end-of-file are converted to absolute positions, and then the code for that case is invoked. */ long #if defined(HAVE_STDC) FSEEK( FILE *fp, long n, long dir ) #else /* NOT defined(HAVE_STDC) */ FSEEK(fp,n,dir) FILE *fp; long n; long dir; #endif /* defined(HAVE_STDC) */ { long k,m,pos,val,oldpos; struct stat buffer; for (;;) /* loops only once or twice */ { switch (dir) { case 0: /* from BOF */ oldpos = FTELL(fp); /* get current byte offset in file */ k = n & 511; /* offset in 512-byte block */ m = n >> 9; /* relative block number in file */ if (((*fp)->_cnt) && ((oldpos >> 9) == m)) /* still in same block */ { val = 0; /* success */ (*fp)->_ptr = ((*fp)->_base) + k; /* reset pointers to requested byte */ (*fp)->_cnt = 512 - k; } else { val = fseek(fp,m << 9,0); /* move to start of requested 512-byte block */ if (val == 0) /* success */ { (*fp)->_cnt = 0; /* indicate empty buffer */ (void)fgetc(fp); /* force refill of buffer */ (*fp)->_ptr = ((*fp)->_base) + k; /* reset pointers to requested byte */ (*fp)->_cnt = 512 - k; } } return (val); case 1: /* from current pos */ pos = FTELL(fp); if (pos == EOF) /* then error */ return (EOF); n += pos; dir = 0; break; /* go do case 0 */ case 2: /* from EOF */ val = fstat((int)fileno(fp),&buffer); if (val == EOF) /* then error */ return (EOF); n += buffer.st_size - 1; /* convert filesize to offset and */ /* add to requested offset */ dir = 0; break; /* go do case 0 */ default: /* illegal direction parameter */ return (EOF); } } } /**********************************************************************/ /*-->FTELL*/ /* With fixed-length record files, ftell() returns the offset of the start of block. To get the true position, this must be biased by the offset within the block. */ long #if defined(HAVE_STDC) FTELL( FILE *fp ) #else /* NOT defined(HAVE_STDC) */ FTELL(fp) FILE *fp; #endif /* defined(HAVE_STDC) */ { char c; long pos; long val; if ((*fp)->_cnt == 0) /* buffer empty--force refill */ { c = fgetc(fp); val = UNGETC(c,fp); if (val != c) return (EOF); /* should never happen */ } pos = ftell(fp); /* this returns multiple of 512 (start of block) */ if (pos >= 0) /* then success--patch in offset in block */ pos += ((*fp)->_ptr) - ((*fp)->_base); return (pos); } /**********************************************************************/ /*-->GETCHAR*/ static int tt_channel = -1; /* terminal channel for image QIO's */ #define FAILED(status) (~(status) & 1) /* failure if LSB is 0 */ int GETCHAR(VOID) { int ret_char; /* character returned */ int status; /* system service status */ static $DESCRIPTOR(sys_in,"TT:"); if (tt_channel == -1) /* then first call--assign channel */ { status = sys$assign(&sys_in,&tt_channel,0,0); if (FAILED(status)) lib$stop(status); } ret_char = 0; status = sys$qiow(0,tt_channel,IO$_TTYREADALL | IO$M_NOECHO,0,0,0, &ret_char,1,0,0,0,0); if (FAILED(status)) lib$stop(status); return (ret_char); } /**********************************************************************/ /*-->memchr*/ /* This is a simple implementation of memchr(), which searches for the first occurrence of a byte in the first n bytes of a byte string. A library version should use hardware moves, or unrolled loops, or other tricks for greater efficiency. */ #if !defined(HAVE_MEMCHR) VOIDP #if defined(HAVE_STDC) memchr( const VOIDP s, int c, size_t n ) #else /* NOT defined(HAVE_STDC) */ memchr(s,c,n) const VOIDP s; int c; size_t n; #endif /* defined(HAVE_STDC) */ { unsigned char *ss = (unsigned char*)s; for (; n > 0; ss++,--n) { if (*ss == (unsigned char)c) return ((VOIDP)ss); } return ((VOIDP)NULL); } #endif /**********************************************************************/ /*-->memcmp*/ /* This is a simple implementation of memcmp(), which compares two objects byte by byte, stopping after n bytes. A library version should use hardware moves, or unrolled loops, or other tricks for greater efficiency. */ #if !defined(HAVE_MEMCMP) int #if defined(HAVE_STDC) memcmp( const VOIDP s1, const VOIDP s2, size_t n ) #else /* NOT defined(HAVE_STDC) */ memcmp(s1,s2,n) const VOIDP s1; const VOIDP s2; size_t n; #endif /* defined(HAVE_STDC) */ { unsigned char *t1; unsigned char *t2; for (t1 = (unsigned char*)s1, t2 = (unsigned char*)s2; n > 0; --n, t1++, t2++) { if (*t1 < *t2) return (-(int)(t2 - (unsigned char*)s2)); else if (*t1 > *t2) return ((int)(t2 - (unsigned char*)s2)); } return (0); } #endif /**********************************************************************/ /*-->memcpy*/ /* This is a simple implementation of memcpy(), which copies source to target with undefined behavior in the event of overlap. This particular implementation copies from first to last byte, in order. */ #if !defined(HAVE_MEMCPY) VOIDP #if defined(HAVE_STDC) memcpy( VOIDP t, /* target */ const VOIDP s, /* source */ size_t n ) #else /* NOT defined(HAVE_STDC) */ memcpy(t,s,n) VOIDP t; /* target */ const VOIDP s; /* source */ size_t n; #endif /* defined(HAVE_STDC) */ { unsigned char *ss = (unsigned char*)s; unsigned char *tt = (unsigned char*)t; for (; n > 0; --n) *tt++ = *ss++; /* always copy in forward order */ return (t); } #endif /**********************************************************************/ /*-->memmove*/ /* This is a simple implementation of memmove(), which copies as if the source were first completely copied to a temporary area, then that area were copied to the target. A library version should use hardware moves, or unrolled loops, or other tricks for greater efficiency. */ #if !defined(HAVE_MEMMOVE) VOIDP #if defined(HAVE_STDC) memmove( VOIDP t, /* target */ const VOIDP s, /* source */ size_t n ) #else /* NOT defined(HAVE_STDC) */ memmove(t,s,n) VOIDP t; /* target */ const VOIDP s; /* source */ size_t n; #endif /* defined(HAVE_STDC) */ { unsigned char *ss = (unsigned char*)s; unsigned char *tt = (unsigned char*)t; if ((ss < tt) && ((ss + n) > tt)) /* source overlaps target from below */ for (ss += n, tt += n; n > 0; --n) *tt-- = *ss--; /* copy in reverse order */ else for (; n > 0; --n) *tt++ = *ss++; /* copy in forward order */ return (t); } #endif /**********************************************************************/ /*-->memset*/ /* This is a simple implementation of memset(). A library version should use hardware moves, or unrolled loops, or other tricks for greater efficiency. */ #if !defined(HAVE_MEMSET) VOIDP #if defined(HAVE_STDC) memset( VOIDP s, /* target */ int ch, /* fill character (treated as unsigned char) */ size_t n /* fill count */ ) #else /* NOT defined(HAVE_STDC) */ memset(s,ch,n) VOIDP s; /* target */ int ch; /* fill character (treated as unsigned char) */ size_t n; /* fill count */ #endif /* defined(HAVE_STDC) */ { unsigned char *ss = (unsigned char *)s; for (; n > 0; --n) *ss++ = (unsigned char)ch; return (s); } #endif /**********************************************************************/ /*-->READ*/ int #if defined(HAVE_STDC) READ( register int file_desc, register char *buffer, register int nbytes ) #else /* NOT defined(HAVE_STDC) */ READ(file_desc,buffer,nbytes) register int file_desc; register char *buffer; register int nbytes; #endif /* defined(HAVE_STDC) */ { register int ngot; register int left; for (left = nbytes; left > 0; /* NOOP */) { ngot = read(file_desc,buffer,(left > 65024 ? 65024 : left)); if (ngot < 0) return (-1); /* error occurred */ if (ngot == 0) /* eof occurred */ return (nbytes-left); buffer += ngot; left -= ngot; } return (nbytes-left); } /**********************************************************************/ /*-->UNGETC*/ long #if defined(HAVE_STDC) UNGETC( char c, FILE *fp ) #else /* NOT defined(HAVE_STDC) */ UNGETC(c,fp) /* VMS ungetc() is a no-op if c < 0 (which is half the time!) */ char c; FILE *fp; #endif /* defined(HAVE_STDC) */ { if ((c == EOF) && feof(fp)) return (EOF); /* do nothing at true end-of-file */ else if ((*fp)->_cnt >= 512)/* buffer full--no fgetc() done in this block!*/ return (EOF); /* must be user error if this happens */ else /* put the character back in the buffer */ { (*fp)->_cnt++; /* increase count of characters left */ (*fp)->_ptr--; /* backup pointer to next available char */ *((*fp)->_ptr) = c; /* save the character */ return (c); /* and return it */ } } /**********************************************************************/ /*-->getenv*/ char* #if defined(HAVE_STDC) GETENV( char *name ) #else /* NOT defined(HAVE_STDC) */ GETENV(name) char *name; #endif /* defined(HAVE_STDC) */ { char *p; char *result; char ucname[256]; p = ucname; while (*name) /* VMS logical names must be upper-case */ { *p++ = Islower(*name) ? toupper(*name) : *name; ++name; } *p = '\0'; p = strchr(ucname,':'); /* colon in name? */ if (p == (char *)NULL) /* no colon in name */ result = getenv(ucname); else /* try with and without colon */ { result = getenv(ucname); if (result == (char *)NULL) { *p = '\0'; result = getenv(ucname); *p = ':'; } } return (result); } /**********************************************************************/ /*-->getjpi*/ /*********************************************************************** Return a system job/process value obtained from the VMS system call LIB$GETJPI. This call can return either 32-bit integer values, or strings. The obtained value is stored in an internal static buffer which is overwritten on subsequent calls. The function return is a (char*) pointer to that buffer, which must be coerced to (long*) if an integer value is obtained. String values are guaranteed to be NUL terminated, with no trailing blanks. The argument, jpi_code, is one of the values defined in . In the event of an error return from LIB$GETJPI, (char*)NULL is returned instead. [30-Oct-1987] ***********************************************************************/ #define LIB$_INVARG 0x158234 /* not defined in standard .h files */ char* #if defined(HAVE_STDC) getjpi( int jpi_code /* values defined in */ ) #else /* NOT defined(HAVE_STDC) */ getjpi(jpi_code) int jpi_code; /* values defined in */ #endif /* defined(HAVE_STDC) */ { short retlen = 0; long retval; static char buffer[256]; /* space for up to 255-char results */ static $DESCRIPTOR(strdes,buffer); strdes.dsc$w_length = sizeof(buffer)-1; /* $DESCRIPTOR doesn't set this */ /* lib$getjpi() will normally return a string representation. Try first to get the integer representation, then if an invalid argument is signalled, get the string representation. */ retval = lib$getjpi(&jpi_code,0L,0L,&buffer[0]); if (retval == LIB$_INVARG) { retval = lib$getjpi(&jpi_code,0L,0L,&buffer[0],&strdes,&retlen); buffer[retlen] = '\0'; /* terminate any string value */ while ((retlen > 0) && (buffer[--retlen] == ' ')) buffer[retlen] = '\0'; } return ((retval == SS$_NORMAL) ? (char*)(&buffer[0]) : (char*)NULL); } /**********************************************************************/ /*-->getlogin*/ char* getlogin(VOID) { return ((char *)getenv("USER")); /* use equivalent VMS routine */ } /**********************************************************************/ /*-->system*/ int #if defined(HAVE_STDC) system( const char *s ) #else /* NOT defined(HAVE_STDC) */ system(s) const char *s; #endif /* defined(HAVE_STDC) */ { struct dsc$descriptor t; int stat; t.dsc$w_length = strlen(s); t.dsc$a_pointer = s; t.dsc$b_class = DSC$K_CLASS_S; t.dsc$b_dtype = DSC$K_DTYPE_T; /******************************************************************* UNIX system() always returns 0 on success; interpretation of non-zero returns varies with the particular implementation of UNIX, but always means some kind of failure. BSD UNIX returns 127 if the shell, sh, cannot be executed, and otherwise returns 256*(program exit code) + (wait() return value). The 3 low-order bits of stat return by LIB$SPAWN are: 0 warning 1 success 2 error 3 information 4 severe or fatal error DCL returns 0 in the low-order bits for undefined commands, and CC returns 0 for correctable syntax errors (it issues warnings for them). We therefore consider values of 1 or 3 to be success. LIB$SPAWN will usually return SS$_NORMAL, independent of the value of stat, but if it fails, we follow BSD UNIX and return 127. *******************************************************************/ if (lib$spawn(&t,0,0,0,0,0,&stat) != SS$_NORMAL) return (127); switch (stat & 7) { case 0: return (256); case 1: case 3: return (0); default: return (stat << 8); } } /**********************************************************************/ /*-->tell*/ long #if defined(HAVE_STDC) tell( int handle ) #else /* NOT defined(HAVE_STDC) */ tell(handle) int handle; #endif /* defined(HAVE_STDC) */ { return (lseek(handle,0L,1)); } /**********************************************************************/ /*-->unlink*/ int #if defined(HAVE_STDC) unlink( char *filename ) #else /* NOT defined(HAVE_STDC) */ unlink(filename) char *filename; #endif /* defined(HAVE_STDC) */ { return (delete(filename)); /* use equivalent VMS routine */ } /**********************************************************************/ /*-->utime*/ /* utime(path,times) sets the access and modification times of the file 'path' to the UNIX binary time values, 'times'. Return 0 on success, and -1 on error (setting errno as well). */ #if defined(HAVE_STDC) utime( char *path, time_t times[2] ) #else /* NOT defined(HAVE_STDC) */ utime(path,times) /* VAX VMS C version */ char *path; time_t times[2]; #endif /* defined(HAVE_STDC) */ { int status; struct dsc$descriptor_s time_desc; char *ftime = "23-OCT-1907 12:34:56"; struct tm *the_timeval; static char *months[] = {"JAN","FEB","MAR","APR","MAY","JUN", "JUL","AUG","SEP","OCT","NOV","DEC"}; struct FAB fab1; struct XABRDT xab1; /* Zero FAB and XAB structures */ (void)memset(&fab1,'\0',sizeof(fab1)); (void)memset(&xab1,'\0',sizeof(xab1)); /* Convert UNIX binary time to ASCII string for sys$bintime(). We use localtime() instead of ctime(), because although ctime() is simpler, it drops the seconds field, which we would rather preserve. */ the_timeval = (struct tm*)localtime(×[0]); sprintf(ftime,"%02d-%3s-19%02d %02d:%02d:%02d", the_timeval->tm_mday, months[the_timeval->tm_mon], the_timeval->tm_year, the_timeval->tm_hour, the_timeval->tm_min, the_timeval->tm_sec); /* Setup fab1 and rab fields. */ fab1.fab$b_bid = FAB$C_BID; fab1.fab$b_bln = FAB$C_BLN; fab1.fab$l_fop = FAB$V_UFO; fab1.fab$b_fac = FAB$V_GET; fab1.fab$l_fna = path; fab1.fab$b_fns = strlen(path); fab1.fab$l_xab = (char*)&xab1; xab1.xab$b_bln = XAB$C_RDTLEN; xab1.xab$b_cod = XAB$C_RDT; xab1.xab$l_nxt = (char*)NULL; /* Open the file */ status = sys$open(&fab1); if (status != RMS$_NORMAL) { errno = ENOENT; return (-1); } /* Convert the time string to a VMS binary time value in the XAB */ time_desc.dsc$w_length = strlen(ftime); time_desc.dsc$a_pointer = ftime; time_desc.dsc$b_class = DSC$K_CLASS_S; time_desc.dsc$b_dtype = DSC$K_DTYPE_T; status = sys$bintim(&time_desc,&xab1.xab$q_rdt); if (status != SS$_NORMAL) { status = sys$close(&fab1); errno = EFAULT; return (-1); } /* Close the file, updating the revision date/time value */ status = sys$close(&fab1); if (status != RMS$_NORMAL) { errno = EACCES; return (-1); } return (0); } #else /*@unused@*/ static int this_is_not_vms = 0; /* to provide SOMETHING to compile */ #endif /* VMS */ bibclean-3.07/build-all.sh0000755000156700015670000000442707011655461014324 0ustar beebebeebe#! /bin/sh #======================================================================= # This script attempts to build and check a program on every UNIX C # and C++ compiler available to the author. # # Because of wide variations in optimizer switches, no attempt is yet # made to validate the same compiler at multiple optimization levels: # that job is left for the installer. # # Usage: # build-all.sh |& tee -a typescript.xxx # # The program author can examine the output in the typescript.xxx file # to determine what, if any, changes are needed in the code to ensure # that it will build correctly. # # [08-Nov-1999] -- update with more compilers, and use separate # doconfig.sh to work around lack of shell functions on # some systems # [30-Sep-1995] #======================================================================= # Originally, I used a shell function with a workaround on DECstation # ULTRIX, where /bin/sh does not support shell functions, but # /usr/bin/ksh and /usr/local/bin/bash do, of feeding the input stream # inline to an alternate shell. Unfortunately, this failed on Sun SunOS # 4.x, where the first time that the shell function was executed, it # exited, rather than returning to the caller. This version therefore # moves that shell function into a separate file, doconfig.sh. # Here is a list of known compilers on DEC (MIPS ULTRIX and Alpha # OSF/1), HP (PA-RISC HP-UX), IBM (POWER AIX), IBM PC (Intel LINUX), # NeXT (Motorola 68K Mach) SGI (MIPS), and Sun (SPARC SunOS and SPARC # Solaris) systems. We try all that actually exist on this system. ./doconfig.sh /bin/c++ ./doconfig.sh /bin/c89 ./doconfig.sh /bin/CC ./doconfig.sh /bin/cc ./doconfig.sh /bin/cxx ./doconfig.sh /bin/xlC ./doconfig.sh /opt/SUNWspro/bin/c89 ./doconfig.sh /opt/SUNWspro/bin/CC ./doconfig.sh /opt/SUNWspro/bin/cc ./doconfig.sh /usr/bin/c89 ./doconfig.sh /usr/bin/CC ./doconfig.sh /usr/bin/cc ./doconfig.sh /usr/bin/g++ ./doconfig.sh /usr/bin/gcc ./doconfig.sh /usr/ccs/bin/c89 ./doconfig.sh /usr/ccs/bin/cc ./doconfig.sh /usr/lang/acc ./doconfig.sh /usr/lang/CC ./doconfig.sh /usr/local/bin/g++ ./doconfig.sh /usr/local/bin/gcc ./doconfig.sh /usr/local/bin/lcc ./doconfig.sh /usr/local/bin/lcc "-A -A" ./doconfig.sh /usr/ucb/cc echo ================================= Done ================================= bibclean-3.07/config.hin0000664000156700015670000001300014020765302014044 0ustar beebebeebe/* config.hin. Generated from configure.ac by autoheader. */ /* Define if free() is of type char*. */ #undef FREE_CAST_IS_CHAR_STAR /* Define if \a is recognized in C strings. */ #undef HAVE_ALERT_CHAR /* Define to 1 if you have the header file. */ #undef HAVE_CONIO_H /* Define to 1 if you have the header file. */ #undef HAVE_CTYPE_H /* Define to 1 if you have the declaration of `fileno', and to 0 if you don't. */ #undef HAVE_DECL_FILENO /* Define to 1 if you have the header file. */ #undef HAVE_DESCRIP_H /* Define to 1 if you have the header file. */ #undef HAVE_ERRNO_H /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the `getcwd' function. */ #undef HAVE_GETCWD /* Define to 1 if you have the `getpwnam' function. */ #undef HAVE_GETPWNAM /* Define to 1 if you have the `getwd' function. */ #undef HAVE_GETWD /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if the compiler can see an ioctl() prototype. */ #undef HAVE_IOCTL_PROTOTYPE /* Define to 1 if you have the header file. */ #undef HAVE_IODEF_H /* Define to 1 if you have the header file. */ #undef HAVE_IO_H /* Define if isatty() is available. */ #undef HAVE_ISATTY /* Define to 1 if you have the header file. */ #undef HAVE_JPIDEF_H /* Define to 1 if you have the header file. */ #undef HAVE_LIBC_H /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H /* Define to 1 if you have the header file. */ #undef HAVE_OSFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_PWD_H /* Define to 1 if you have the header file. */ #undef HAVE_REGEXP_H /* Define to 1 if you have the header file. */ #undef HAVE_REGEX_H /* Define to 1 if you have the `re_comp' function. */ #undef HAVE_RE_COMP /* Define to 1 if you have the header file. */ #undef HAVE_RMS_H /* Define to 1 if you have the header file. */ #undef HAVE_SGTTY_H /* Define to 1 if you have the header file. */ #undef HAVE_SSDEF_H /* Define to 1 if you have the header file. */ #undef HAVE_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDBOOL_H /* Define if Standard C and C++ function declarations are supported. */ #undef HAVE_STDC /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDIO_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strcspn' function. */ #undef HAVE_STRCSPN /* Define to 1 if you have the `strdup' function. */ #undef HAVE_STRDUP /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strspn' function. */ #undef HAVE_STRSPN /* Define to 1 if you have the `strstr' function. */ #undef HAVE_STRSTR /* Define to 1 if you have the `strtod' function. */ #undef HAVE_STRTOD /* Define to 1 if you have the `strtol' function. */ #undef HAVE_STRTOL /* Define to 1 if you have the header file. */ #undef HAVE_SYS_IOCTL_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PARAM_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PLEDGE_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_TERMIOS_H /* Define to 1 if you have the header file. */ #undef HAVE_TERMIO_H /* Define to 1 if you have the header file. */ #undef HAVE_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_TT2DEF_H /* Define to 1 if you have the header file. */ #undef HAVE_TTDEF_H /* Define to 1 if you have the header file. */ #undef HAVE_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the header file. */ #undef HAVE_UNIXIO_H /* Define to 1 if you have the header file. */ #undef HAVE_UTIME_H /* Define to 1 if `utime(file, NULL)' sets file's timestamp to the present. */ #undef HAVE_UTIME_NULL /* Define to 1 if the system has the type `_Bool'. */ #undef HAVE__BOOL /* Package bug-reporting address */ #undef PACKAGE_BUGREPORT /* Package date */ #undef PACKAGE_DATE /* Package name */ #undef PACKAGE_NAME /* Package string */ #undef PACKAGE_STRING /* Package tarname */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Package version */ #undef PACKAGE_VERSION /* Define to 1 if all of the C90 standard headers exist (not just the ones required in a freestanding environment). This macro is provided for backward compatibility; new code need not use it. */ #undef STDC_HEADERS /* Define to 1 if your declares `struct tm'. */ #undef TM_IN_SYS_TIME /* Define if needed to expose winsize in ioctl.h. */ #undef _ALL_SOURCE /* Define if needed with stat.h. */ #undef _POSIX_SOURCE /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `int' if does not define. */ #undef mode_t /* Define to `unsigned int' if does not define. */ #undef size_t #define SCREEN_LINES 24 #include bibclean-3.07/README0000644000156700015670000006436713251477032013010 0ustar beebebeebe%% /u/sy/beebe/tex/bibclean/bibclean-2.16/README, Tue Jan 1 08:59:06 2013 %% Edit by Nelson H. F. Beebe %% /u/sy/beebe/tex/bibclean/2-11/README, Mon Oct 2 10:01:31 1995 %% Edit by Nelson H. F. Beebe ======================================================================== ========== Jump start ========== As with most GNUware, you can build, test, and install this program on most UNIX systems by these simple steps csh et amici: setenv CC ...your favorite C or C++ compiler... ./configure && make all check install sh et amici: CC=...your favorite C or C++ compiler... export CC ./configure && make all check install If you don't set the CC environment variable, then gcc (or cc, if gcc is not available) will be assumed. If you wish to undo a "make install", just do "make uninstall"; this will remove any files in system directories put there by "make install". See below for further details, and for instructions for non-UNIX systems. This program normally records the username and hostname of the builder; software distributions may wish to suppress that information by undefining HOST and USER at in the make command: ./configure && env HOST= USER= make all check install ============ Introduction ============ This directory contains bibclean, a BibTeX prettyprinter, portability verifier, and syntax checker. It can be used to find errors in .bib files, as well as to standardize their format for readability and editing convenience. It can also be used to convert Scribe-format bibliographies to BibTeX form. Binary executables for IBM PC DOS, DEC Alpha OpenVMS, DEC VAX VMS, and Intel x86 Linux may be included in the distribution. If you do not require either the IBM PC DOS or LINUX, or the DEC VMS (Alpha and VAX) versions, then you can save about 2.5MB of disk space by deleting the ibmpc and vms subdirectories. The default pattern matching in bibclean.c is selected by HAVE_PATTERNS; with it, no regular-expression library support is needed. Should you wish to compile with regular-expression support instead of the HAVE_PATTERNS code, and your system does not have compile()/step (HAVE_REGEXP), or re_comp()/re_exec() (HAVE_RECOMP), you may be able to use the regex-?-??.tar.Z distribution from the Free Software Foundation, available on prep.ai.mit.edu in /pub/gnu. In most cases, the HAVE_PATTERNS code is recommended, since it will give identical results across all machines. I was prompted to write it after discovering that there was considerable variety in the regular expression library codes that resulted in different matching on different machines, a most unsatisfactory situation. Please report all problems, suggestions, and comments to the author: Nelson H. F. Beebe University of Utah Department of Mathematics, 110 LCB 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA Tel: +1 801 581 5254 FAX: +1 801 581 4148 Email: beebe@math.utah.edu, beebe@acm.org, beebe@computer.org (Internet) WWW URL: http://www.math.utah.edu/~beebe/ ============ Installation ============ Starting with version 2.10.1, bibclean has been adapted to use the GNU autoconf automatic configuration system for UNIX installations. GNU autoconf is run at the author's site to produce the configure script from configure.ac. The configure script is run at each installer's UNIX site to produce Makefile from Makefile.in, and config.h from config.hin. The configure script is a large (1800+ lines) Bourne shell program that investigates various aspects of the local C implementation, and records its conclusions in config.h. Interestingly, its probes uncovered a bug in one compiler: lcc 3.4b on Sun Solaris 2.x has an incorrect definition of toupper() in its ctype.h! autoconf, at least at the current 2.4 version, is not as C++-aware as it should be. The Makefile must carry out minor edits of the configure script to get it to even work with C++ compilers. The small test programs run by configure to determine the existence of assorted Standard C library functions all lead to incorrect conclusions for config.h, because they intentionally contain function prototypes with different argument types. Since C++ functions are compiled into external names that encode the function and argument types, along with the function name, these prototypes produce references to non-existent functions, causing program linking to fail. Fortunately, I've been able to fix this problem too with additional automatic edits, all carried out by "make configure". Should you do a "make maintainer-clean" [NOT recommended, except at the author's site], the configure script will be deleted, and you will need recent versions of both GNU m4 and autoconf correctly installed to reconstruct things, which can be done this way: autoconf # Regenerate unedited configure ./configure # Regenerate config.h and Makefile rm configure # delete configure make configure # Regenerate edited configure For convenience and safety, the distribution includes a subdirectory named save that contains read-only copies of the files Makefile, config.h, and configure created by autoconf and "make configure". This will allow recovery from a lost or damaged configure file. Suitable hand-crafted config.h files are provided for non-UNIX systems, and in the unlikely event of a failure of the configure script on a UNIX system, config.h can be manually produced from a copy of config.hin with a few minutes' editing work. If you do this, remember to save a copy of your config.h under a different name, because running configure will destroy it. If you have GNU autoconf installed (the installation is very simple and source code is available from prep.ai.mit.edu:/pub/gnu/autoconf-x.y.tar.gz), you might try augmenting config.hin instead, then run autoconf and configure. Thus, on UNIX, installation normally consists of just two steps (assuming a csh-compatible shell): setenv CC ...your favorite C or C++ compiler... ./configure && make all check install If you like, add OPT='your favorite optimization flags' to the make command; by default, only -g (debug) is assumed. If your compiler won't accept -g with other optimization levels, then set CFLAGS instead of OPT on the command line; be sure NOT to override any non-optimizing flags in the CFLAGS set in the Makefile. The GNU standard installation directories /usr/local/bin for binaries, and /usr/local/man/man1 for manual pages are assumed. The prefix /usr/local can be overridden by providing an alternate definition on the command line: make prefix=/some/other/path install After installation, you can do make distclean to restore the directories to their distribution state. You should also do this between builds for different architectures from the same source tree; neglecting to do to will almost certainly lead to failure, because the config.cache file created by configure will lead to an incorrect config.h for the next build. ============ UNIX Systems ============ The code can be compiled with either C (K&R or ISO/ANSI Standard C) or C++ compilers. With some C++ compilers, it may be necessary to supply additional switches for force the compiler to stay in C++ mode, rather than reverting to C mode (e.g. on DEC Alpha OSF/1, you must do setenv CC "cxx -x cxx"). On UNIX systems, the only changes that you are likely to need in the Makefile are the settings of CC and CFLAGS, and possibly, DEFINES, and if you wish to do "make install", the settings of bindir, MANDIR, and MANEXT. If you are installing bibclean on a new system, you should definitely run "make check" before installing it on your system. For the target test-bibtex-2, latex is needed. For test-bibtex-2 and test-scribe-1, bibtex is needed. Sample output of "make check" from a UNIX system is given below. The code has been tested under more than 55 different C and C++ compilers, and is in regular use to maintain the TeX User Group bibliography collection stored on ftp.math.utah.edu:/pub/tex/bib, as well as several other local bibliographies. These files total more than 1.08M lines and 62K bibliography entries. Some of these bibliographies are mirrored to the Comprehensive TeX Archive Network (CTAN) hosts. Do "finger ctan@pip.shsu.edu" to find a CTAN site on the Internet near you. bibclean is also used for the BibNet Project, which collects bibliographies in numerical analysis. The master collection is available on ftp.math.utah.edu:/pub/bibnet, and is mirrored from there to netlib servers at AT&T and Oak Ridge National Laboratory. If you port bibclean to a new system, please select maximal error and warning messages in your compiler, to better uncover problems. If you find massive numbers of errors complaining about function and argument type mismatches, it is likely that this can be remedied by suitable modifications of config.h. As C implementations move towards conformance with the December 1989 ISO/ANSI C Language Standard, the C language is a moving target that must be tracked by config.h, which is why that file is normally automatically generated on UNIX systems by the configure script. With C compilers, you can safely ignore complaints about implicit declaration of library functions; they are caused by deficiencies in the vendor-provided header files. If you have a C++ compiler, please try that as well. This code has been successfully compiled under at least 19 C++ compilers, and the stricter type checking has uncovered problems that slipped past other compilers. These programs have been successfully built with C and C++ compilers and tested on these systems for the 2.10.1 release: DECstation 5000 ULTRIX 4.2 cc, gcc, g++, lcc DEC Alpha OSF/1 3.0, 3.2c cc, c89, cxx, gcc, g++ HP 9000/375 BSD 4.3 cc, CC HP 9000/735 HP-UX 9.0 cc, c89, CC, gcc, g++ IBM RS/6000 AIX 3.2 cc, c89, xlC, gcc, g++ Intel 486 Linux 1.3.15 gcc, g++ MIPS RC6280 RISCos 2.1.1AC cc NeXT 68040 Mach 3.0 cc, cc -ObjC, gcc, g++ SGI 4D/210 IRIX 4.0.5c cc, gcc, lcc SGI Indigo/2 IRIX 5.3 cc, CC, gcc, g++, lcc SGI Power Challenge IRIX 6.0.1 cc, CC Sun SPARCstation Solaris 2.3,2.4 cc, CC, gcc, g++, lcc Sun SPARCstation SunOS 4.1.3 acc, cc, CC, gcc Further details are given below. Where builds have failed, it is usually because of conflicts between system header files. The author uses the build-all.sh script for these tests; it tries builds with every known compiler on the development systems. If your UNIX system has other compilers that can be tested, please send their full path names to the author. ========== IBM PC DOS ========== The ibmpc/dos/README file contains details of the builds and tests of bibclean under 8 IBM PC DOS C and C++ compilers, and instructions for building and testing bibclean with other compilers. Since bibclean uses no floating-point arithmetic, and PC DOS has no shared libraries, I expect that the executables will run on any version of DOS greater than 4.0. They may also run on earlier versions. At the time of writing, MS-DOS 6.22 is current, and the bibclean executables work fine on it. ================= DEC Alpha OpenVMS ================= The vms/alpha subdirectory contains these files for DEC Alpha OpenVMS: bibclean.exe bibclean executable program config.h hand-coded configuration file recomp.com do @recomp foo to recompile foo.c vmsclean.com do @vmsclean to cleanup after a build vmsmake.com do @vmsmake to build bibclean vmstest.com do @vmstest to test bibclean You will have to change one line in vmstest.com to define the disk location of bibclean.exe in the foreign command symbol for bibclean. Unlike the UNIX "make check", execution of vmstest.com does not require that latex or bibtex be installed on your system. [I didn't have either on the Alpha OpenVMS system that I built bibclean on.] =========== DEC VAX VMS =========== The vms/vax/README file contains details of the building and testing of bibclean on VAX VMS 6.1 Unlike the UNIX "make check", execution of vmstest.com does not require that latex or bibtex be installed on your system. [I didn't have either on the VAX VMS system that I built bibclean on.] On versions of VMS before 6.1, you may find differences in the vmstest output between testbib1.bok (correct Sun) and testbib1.bib (VAX VMS); characters with octal values 211--215 and 240 disappear from the VAX VMS output. The reason is that on VAX VMS 5.4 (and likely other versions of VAX VMS) isspace() from classifies those characters as spaces. This problem does NOT exist on DEC Alpha OpenVMS 1.5, or in VMS 6.1. As long as your .bib files do not use those six characters, execution should be correct; for portability, .bib files should restrict themselves to ASCII/ISO-8859 characters in the range 32--127, plus newline and tab. =================================== Sample "make check" Output for UNIX =================================== Here is a log of "make check" on Sun Solaris 2.5 using the native C++ compiler, CC: CC -c -I. -I. -DHAVE_CONFIG_H -g romtol.c /bin/rm -f match.O if [ -f match.o ] ; then /bin/mv match.o match.O ; fi /bin/rm -f match.o CC -I. -I. -DHAVE_CONFIG_H -g -DTEST -o match \ match.c romtol.o /bin/rm -f match.o if [ -f match.O ] ; then /bin/mv match.O match.o ; fi ===================== begin match test ======================= ./match match.lst There should be no differences found: diff match.lok match.lst ====================== end match test ======================== /bin/rm -f romtol.O if [ -f romtol.o ] ; then /bin/mv romtol.o romtol.O ; fi /bin/rm -f romtol.o CC -I. -I. -DHAVE_CONFIG_H -g -DTEST -o romtol romtol.c /bin/rm -f romtol.o if [ -f romtol.O ] ; then /bin/mv romtol.O romtol.o ; fi ===================== begin romtol test ====================== ./romtol romtol.lst There should be no differences found: diff romtol.lok romtol.lst ====================== end romtol test ======================= CC -c -I. -I. -DHAVE_CONFIG_H -g bibclean.c CC -c -I. -I. -DHAVE_CONFIG_H -g chek.c CC -c -I. -I. -DHAVE_CONFIG_H -g do.c CC -c -I. -I. -DHAVE_CONFIG_H -g fix.c CC -c -I. -I. -DHAVE_CONFIG_H -g fndfil.c CC -c -I. -I. -DHAVE_CONFIG_H -g isbn.c CC -c -I. -I. -DHAVE_CONFIG_H -g keybrd.c CC -c -I. -I. -DHAVE_CONFIG_H -g match.c CC -I. -I. -g -c -DHOST=\"`hostname`\" -DUSER=\"beebe\" option.c CC -c -I. -I. -DHAVE_CONFIG_H -g strist.c CC -c -I. -I. -DHAVE_CONFIG_H -g strtol.c CC -o bibclean -g bibclean.o chek.o do.o fix.o fndfil.o isbn.o keybrd.o match.o option.o romtol.o strist.o strtol.o ild: (Performing full relink) too many files changed ==================== begin BibTeX test 1 ===================== ./bibclean -init-file bibclean.ini testbib1.org >testbib1.bib 2>testbib1.err There should be no differences found: diff testbib1.bok testbib1.bib There should be no differences found: diff testbib1.eok testbib1.err ===================== end BibTeX test 1 ====================== ==================== begin BibTeX test 2 ===================== ./bibclean -init-file bibclean.ini -no-check-values testbib2.org >testbib2.bib 2>testbib2.err There should be no differences found: diff testbib2.bok testbib2.bib There should be no differences found: diff testbib2.eok testbib2.err latex testbib2.ltx >/dev/null Expect 6 BibTeX warnings: bibtex testbib2 Warning--empty year in Bennett Warning--empty year in Cejchan Warning--there's a number but no volume in Dubowsky:75 Warning--empty institution in Diver:88a Warning--empty booktitle in Diver:88 Warning--empty year in Diver (There were 6 warnings) latex testbib2.ltx >/dev/null latex testbib2.ltx This is TeX, Version 3.1415 (C version 6.1) (testbib2.ltx LaTeX Version 2.09 <14 January 1991> (/usr/local/lib/tex/latex/article.sty Document Style `article' <16 Mar 88>. (/usr/local/lib/tex/latex/art10.sty)) (testbib2.aux) (testbib2.bbl [1] [2] [3] Underfull \hbox (badness 1024) in paragraph at lines 261--264 [] []\tenrm L. M. Berkovich, V. P. Gerdt, Z. T. Kos-tova, and M. L. [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]) [17] (testbib2.aux) ) (see the transcript file for additional information) Output written on testbib2.dvi (17 pages, 49032 bytes). Transcript written on testbib2.log. ===================== end BibTeX test 2 ====================== ==================== begin BibTeX test 3 ===================== ./bibclean -init-file bibclean.ini -fix-font-change testbib3.org >testbib3.bib 2>testbib3.err There should be no differences found: There should be no differences found: diff testbib3.eok testbib3.err ===================== end BibTeX test 3 ====================== ==================== begin BibTeX test 4 ===================== ./bibclean -init-file bibclean.ini -fix-font-change testbib4.org >testbib4.bib 2>testbib4.err There should be no differences found: There should be no differences found: diff testbib4.eok testbib4.err ===================== end BibTeX test 4 ====================== ==================== begin BibTeX test 5 ===================== ./bibclean -init-file bibclean.ini -German-style testbib5.org >testbib5.bib 2>testbib5.err There should be no differences found: There should be no differences found: diff testbib5.eok testbib5.err ===================== end BibTeX test 5 ====================== ==================== begin BibTeX test 6 ===================== ./bibclean -init-file bibclean.ini testisxn.org >testisxn.bib 2>testisxn.err There should be no differences found: diff testisxn.bok testisxn.bib There should be no differences found: diff testisxn.eok testisxn.err ===================== end BibTeX test 6 ====================== ==================== begin BibTeX test 7 ===================== ./bibclean -init-file bibclean.ini testcodn.org >testcodn.bib 2>testcodn.err There should be no differences found: diff testcodn.bok testcodn.bib There should be no differences found: diff testcodn.eok testcodn.err ===================== end BibTeX test 7 ====================== ==================== begin Scribe test 1 ===================== ---------------------------------------------------- ./bibclean -init-file bibclean.ini -scribe -no-check testscr1.org >testscr1.bib There should be no differences found: diff testscr1.bok testscr1.bib There should be no differences found: diff testscr1.eok testscr1.err Expect 5 BibTeX warnings bibtex testscr1 Warning--empty publisher in hanson-67 Warning--can't use both volume and number fields in kendeigh-52 Warning--empty author in singer-portion-chapter Warning--empty author in singer-portion-volume Warning--can't use both author and editor fields in wright-63 (There were 5 warnings) ---------------------------------------------------- ./bibclean -init-file bibclean.ini -scribe -no-check testscr2.org >testscr2.bib There should be no differences found: diff testscr2.bok testscr2.bib There should be no differences found: diff testscr2.eok testscr2.err There should be no BibTeX warnings: bibtex testscr2 ===================== end Scribe test 1 ====================== ==================== begin Scribe test 2 ===================== ./bibclean -init-file bibclean.ini -scribe -file -no-check testscr2.org \ >testscr2.bib 2>testscr2.err There should be no differences found: diff testscr2.bok testscr2.bib There should be no differences found: diff testscr2.eok testscr2.err ./bibclean -init-file bibclean.ini -scribe -file -no-check -no-par testscr2.org \ >testscr2.bi2 2>testscr2.er2 make: [test-scribe-2] Error 1 (ignored) There should be no differences found: diff testscr2.bo2 testscr2.bi2 There should be no differences found: diff testscr2.eo2 testscr2.er2 ===================== end Scribe test 2 ====================== ==================== begin Scribe test 3 ===================== ./bibclean -init-file bibclean.ini -scribe -no-check testscr3.org >testscr3.bib 2>testscr3.err There should be no differences found: diff testscr3.bok testscr3.bib There should be no differences found: diff testscr3.eok testscr3.err ===================== end Scribe test 3 ====================== ===================================== Details of UNIX installation attempts ===================================== Clean builds and validations with "setenv CC xxx && ./configure && make && make check" have been achieved on these systems: DEC Alpha OSF/1 3.0 /bin/cc /usr/ccs/bin/c89 /usr/ccs/bin/cc /usr/local/bin/g++ /usr/local/bin/gcc /usr/ucb/cc For /bin/cxx, compiler switches to c89 for .c files, and then gets an error which arises because /usr/include/sys/signal.h:468: error: Missing ")". stack_t is not defined by types.h except in Standard C or C++ mode. Recent versions of cxx have switch "-x cxx" to force use of C++ compilation for .c files, but older ones do not. On one such old system, I made an experiment with changing extensions from .c to .cxx and updating the Makefile accordingly. The build failed with: ``Fatal: An attempt to allocate memory failed.'' during compilation of bibclean.cxx, and with conflicting declarations of swab() from /usr/include/unistd.h and /usr/include/cxx/string.h during compilation of fndfil.cxx. These are both vendor problems that may be fixed in newer releases of the C++ compiler. DEC Alpha OSF/1 3.2C (Digital UNIX) /usr/ucb/cxx The problems with cxx experienced on OSF/1 3.0 have all disappeared, and I regularly use "cxx -x cxx" as my C/C++ compiler of choice on this system. [The DEC 2100-5/250 on which the compiler is installed has 3 CPUs and 2GB of RAM, and each CPU does 250Mflops in benchmarks, so it is a terrific development system!] DECstation ULTRIX 4.3 /bin/cc /usr/local/bin/g++ /usr/local/bin/gcc Got many "warning: missing prototype" messages for functions in system header files (because they are still K&R style) with: /usr/local/bin/lcc -A -A but build completed and validated. HP 9000/735 HP-UX 9.0.3 /bin/cc /bin/c89 /usr/bin/CC /usr/local/bin/g++ /usr/local/bin/gcc For /bin/cc, the compiler warns cc: "bibclean.c", line 3723: warning 30: Character constant contains undefined escape sequence. cc: "bibclean.c", line 3730: warning 30: Character constant contains undefined escape sequence. but the escape sequence ('\a') IS correctly translated. HP 9000/735 HP-UX 10.0.1 /bin/cc /bin/c89 /usr/bin/CC /usr/local/bin/g++ /usr/local/bin/gcc The warnings from /bin/cc no longer appear. IBM RS/6000 AIX 3.2.5 /bin/cc /bin/xlC /usr/bin/c89 /usr/local/bin/g++ /usr/local/bin/gcc IBM RS/6000 AIX 4.1 /bin/c89 /bin/xlC /usr/bin/c89 Intel 486 Linux 1.3.15 and 1.3.97 (POSIX) /usr/bin/g++ /usr/bin/gcc MIPS RC 6280 RISCos 2.1.1AC /bin/cc NeXT Turbostation Mach 3.0 Compilation with any compiler produces failing links with error: /bin/ld: multiple definitions of symbol _strtol The configure.ac script attempts to deal with this by AC_REPLACE_FUNCS(strtol), but that results in the created Makefile having LIBOBJS=strtol. Building with make LIBOBJS= provides a temporary workaround. /usr/local/bin/gcc /bin/cc /usr/local/bin/g++ Many compilation "warning: missing prototype", plus bibclean.c:2774: undeclared identifier `__ctype' bibclean.c:3158: type error: pointer expected ... for /usr/local/bin/lcc -A -A lcc on this system is an old version (1.9); the current lcc elsewhere is 3.4b, but unfortunately, lcc 3.x dropped support for the Motorola 68xxx code generator. I'm therefore writing off lcc on the NeXT as not viable for software development. NeXT Turbostation Mach 3.1 /bin/cc /usr/local/bin/g++ /usr/local/bin/gcc Silicon Graphics Indigo IRIX 4.0.5F /usr/bin/cc /usr/local/bin/gcc /usr/local/bin/lcc -A -A Compilation fails with /usr/local/bin/g++ because of conflicts between system header files and g++ built-in library function declarations. Silicon Graphics Indigo-2 IRIX 5.3 /bin/cc /usr/local/bin/g++ /usr/local/bin/gcc /usr/local/bin/lcc -A -A Silicon Graphics Power Challenge IRIX 6.0.1 /bin/CC /bin/cc For /usr/local/bin/g++ and /usr/local/bin/gcc (2.7.0) get assembler errors from generated code. Sun SPARC 4/380 Sun SunOS 4.1.3 /bin/cc /usr/lang/acc /usr/lang/CC /usr/local/bin/gcc /usr/ucb/cc Linking fails with /usr/local/bin/g++ because of multiply defined symbols. These arise because g++ generates inline C-style interfaces to library functions like strchr(), but on this system, the library also contains C-style functions with the same name, so linking produces multiple definitions, and failure. Curiously, g++ 2.7.0 on other systems, including Sun Solaris 2.x, does not generate these interface functions, and so does not cause problems there. Compilation fails with /usr/local/bin/lcc -A -A because of a conflict in the definition of size_t between /usr/include/sys/stdtypes.h and /usr/local/include/lcc-3.4b/sparc-sun/stdlib.h. Sun SPARC 20 Sun Solaris 2.3 /opt/SUNWspro/bin/cc /opt/SUNWspro/bin/CC /usr/local/bin/gcc /usr/ucb/cc Linking failed for /usr/local/bin/g++ with MANY multiply-defined symbols (e.g. memchr in bibclean and fndfil) No problem on Solaris 2.4 with g++! The reason that configure says checking for strcspn... (cached) no checking for strdup... (cached) no checking for strspn... (cached) no checking for strstr... (cached) no checking for strtod... (cached) no checking for strtol... (cached) no is that it generates a test program with char $ac_func(); as the prototype. With C++, that is a separate function that cannot be found in the library. That is also why LIBOBJS is being set incorrectly. *** Need to check out g++ and lcc on this system *** Build failed for /usr/local/bin/lcc -A -A with message configure: error: can not run test program while cross compiling This happens because configure uses -g, which blows compilation because of unknown opcode ".stabd" errors in assembler. Can be fixed by manually changing configure line test "${CFLAGS+set}" = set || CFLAGS="-g" to test "${CFLAGS+set}" = set || CFLAGS="" There is another problem: STDC_HEADERS is not defined, because a test program created by configure detects an error in toupper(). This was traced to a bug in lcc's ctype.h, and has been reported to the lcc-bugs list. A manual patch to config.h solves the problem. ===============================[The End]=============================== bibclean-3.07/ChangeLog0000644000156700015670000023051014162101341013650 0ustar beebebeebe2021-12-26 06:46:00-0600 Nelson H. F. Beebe Release bibclean 3.07 with minor patch for --fix-degrees. * bibisbn.c: Update version number and date. * configure.ac: Update version number and date. * fix.c: Preserve space after "St.", "Sta.", and "Ste." in author/editor names. * option.c: Update copyright year range. 2021-08-10 07:49:51-0600 Nelson H. F. Beebe Release bibclean 3.06 with new bibisbn tool. * chek.c: Increase STD_MAX_TOKEN from 20000 to 200000 to match TeX Live 2019 and later. * fix.c: Rename local variable brace_protect to brace_protect_local to avoid shadowing global variable of same name. * isbn.c: Add comment about new bibisbn tool, and code to implement bibisbn. 2020-05-18 09:29:27-0700 Nelson H. F. Beebe * Release bibclean 3.05 with minor change to support DESTDIR prefix in Makefile install targets (see automake documentation in the section DESTDIR for the motivation and expected behavior). There are no changes in bibclean itself. * Makefile.in: Add DESTDIR support. * bibclean.man: Update version number and date. * bibclean.h: Regenerate from current bibclean.man. * test/okay/*.err: Update those that include the bibclean version number. 2019-11-21 10:50:01-0700 Nelson H. F. Beebe * Prepare, but do not release, bibclean 3.04 with minor changes to address behavior and customization issues raised by a remote user. * Makefile.in: Add ${XDEFS} to DEFS value, and add large comment block before XDEFS assignment to document local customizations at some sites. * chek.c: Make STD_MAX_TOKEN compile-time settable, and document the reason for the increase in its default value from 1000 to 20000 (BibTeX evolution in TeX Live distributions). Add a block enabled by nondefault compile-time definition of DOI_RAW_VALID to accept DOI = "10.xxx" values in BibTeX entries. I do NOT want this to be a default for bibclean, because I feel that BibTeX entries should use the URL form of DOI values, and BibTeX styles that support DOI keywords should strip the URL prefix in the output .bbl file. * configure.ac: Update version and date. * do.c: In do_initfile(), skip comment lines and empty lines, rather than passing them to do_single_arg() or do_new_pattern(). That could be considered a bug fix, but I never noticed unexpected behavior in 29 years of use of bibclean on hundreds of millions of BibTeX entries. * token.h: Increase MAX_TOKEN from 32760 to 65525 and revise comment documentation that justifies that change. 2018-03-12 06:44:34-0600 Nelson H. F. Beebe * Release bibclean 3.03 with no user-visible changes, but with internal redesign to eliminate all memory leaks. Previously, the user-extendable ISBN and keywords tables contained a mixture of compile-time static strings, and optional user-provided dynamic strings, so their storage was never dynamically recovered. With the new code in this version, at startup, all static strings in those tables are dynamically reallocated, and then, just before exit, their storage is freed. Memory leak detectors in clang and gcc (compiler options -fsanitize=address -fsanitize=undefined -fsanitize-recover=all), and Solaris dbx (check -all) now report zero memory leaks when execution terminates. While those changes might be seen as cosmetic, they will be beneficial if bibclean is again extended in the future, and new memory leaks appear during development and testing. * configure.ac: New name for old configure.in to meet recent autoconf requirements. Update version and PACKAGE_DATE. * bibclean.c: Add two function prototypes. Call keyword_initialize() on startup. Add new wrapper function finish(status) to call free_keyword_table() and free_ISBN_table() before successful exits, and replace all but two exit(EXIT_xxx) calls by finish(EXIT_xxx). The exceptions are for fatal errors that are caught early in execution. Failure exits intentionally do not do memory cleanups. * bibclean.key: Add rules for ISMN and ORCID-numbers; the latter are present in Web of Science BibTeX output, and record unique check-digited identifiers for authors (see https://orcid.org/ and https://en.wikipedia.org/wiki/ORCID). * dbx-test.run: New file to automate memory leak checking in Solaris dbx over almost all of the test suite. It uses "check -all" to maximize error checking, but has to use "suppress rui" to suppress read-from-uninitialized checks, because the Solaris C library function, strlen(), raises such errors, perhaps because it acts on words, rather than bytes. * do.c: Add new functions free_keyword_table() and keyword_initialize(). Revise add_one_keyword() and add_one_pattern() to free strings before assigning new ones. Change exit() calls to finish() calls to localize memory cleanup immediately before termination. * isbn.c: Add new function free_ISBN_table(). Change logic in ISBN_range[] table handling to require (and check for) begin / end / countries triples to be all non--NULL, or all NULL; previously, countries was handled differently. All assignments to ISBN_range[] table entries are now either NULL, or the result of a Strdup() call, so all non--NULL pointers in that table are allowable in FREE() calls. * isbn.h: Add function prototype for free_ISBN_table(). * match.c: Add condition (p >= &line[0]) in loop to ensure that memory before line[0] is never referenced. * option.c: Add prototypes for finish() and free_keyword_table(). Change exit() calls to finish() calls to localize memory cleanup immediately before termination. Update copyright year ranges. * isbn.tbl: change all but last entry's NULL pointers to empty strings ("") to match logic changes in ISBN_range[] table handling. * isbn-el-to-bibclean-isbn.awk: Change NULL initializations of countries field to empty string ("") to match logic changes in bibclean to remove all memory leaks. * test/plain.bst: Copy of standard BibTeX style file so that systems that have a bibtex executable, but lack that style file, or don't have environment variable search paths to find it elsewhere, can find it here during "make check" runs. 2017-06-09 08:20:55-0600 Nelson H. F. Beebe * Release bibclean 3.02 with minor extensions. * chek.c: Revise validate_DOI() to recognize any of a list of DOI prefixes introduced by the DOI agency in 2016. Revise validate_URL() to recognize "https:" protocol, and to issue only one warning message (previously, two similar warnings could be produced). * fix.c: Repair an incorrectly-nested multiline comment. * configure.in: Update revision date and version number. * keybrd.c and match.c: Tabify leading spaces. * test/okay/*.err: Update 5 such files to reflect changes in warning messages. 2017-04-01 12:11:32-0600 Nelson H F Beebe * Release bibclean 3.01 with support for OpenBSD pledge-style privilege reduction. This is a security feature, and legitimate use of bibclean is not affected. Version 3.01 otherwise behaves identically to 3.00. * configure.in: Change version and date. * option.c: Revise copyright years. 2016-02-29 09:55:45-0600 Nelson H. F. Beebe * Release bibclean 3.00 with improved standardization of configure-file installation locations, rehosting of already-built installations in new positions in the file tree, and -[no-]fix-degrees options. * configure.in: Change version and date. * Makefile.in: Change $(var) to ${var} throughout. Add datarootdir, datadir, bibcleandir, and initdir variables and revise "make install" commands to reflect new locations * bibclean.c: Revise locations of installed configuration files. Add large code block near start of main() to permit configuration files to be found relative to the bibclen executable, allowing trivial rehosting of a pre-built installation tree to anywhere else in the filesystem (e.g., in a user's home directory tree). Add declaration of fix_degrees. * fix.c: Add new fix_author_degrees() function. * option.c: Add support for -[no-]fix-degrees options. Allow USER and HOST to be undefined, and absent from the executable for privacy reasons. Update copyright years. 2015-02-15 13:40:28-0600 Nelson H. F. Beebe * Release bibclean 2.17. * Makefile.in and test/*: Add greatly expanded test suite. * configure.in: Change version and date. * option.c: Add --no-brace-protect option, and revise copyright years 2014-04-03 12:10:55-0600 Nelson H. F. Beebe * Release bibclean 2.16 after 15 months of extensive internal use and testing. 2013-01-01 15:07:45-0700 Nelson H. F. Beebe ============================ Development of bibclean 2.16 ============================ This is the first major update of bibclean in a decade, a period in which it has successfully processed millions of BibTeX entries and been an essential, reliable, and robust tool for creating high-quality BibTeX data and databases. During that time, it has exhibited ZERO bugs. That decade of use, however, showed limitations in bibclean's cleanup and correction of accents and title bracing, and the manual work necessitated in further repairs of BibTeX entries generated from publisher Web site data made it increasingly urgent to improve bibclean so that a computer can do much more of the bibliographer's drudge work. During that decade, document URLs became common, and DOI (Digital Object Identifier) and ISBN-13 book numbers were introduced. In early 2013, 40% of the more than 740,000 entries in the TeX User Group and BibNet Project bibliography archives contain URL values, 27% contain DOI values, and 6% contain ISBN-13 values (but they appear in 82% of Book/Proceedings entries). Because ISBNs were only introduced in 1972, there will always be a substantial fraction of book-like entries for which no ISBNs have been issued. Only limited syntax checking on URLs and DOIs is possible, but because a DOI is intended to be a unique document identifier, it should be rare for there to be more than one DOI value, so this new version checks for exceptions to that rule. It is regrettable that the DOI consortium at http://dx.doi.org/ did not learn from past mistakes, and require a simple but rigorous syntax for all DOI values, and include error correction digits that could be used to detect, and even repair, single and double character errors. All that can be sure about a DOI value is that it begins with "10." followed by a decimal digit string identifying the publisher, followed by a slash, followed by anything whatever. In browser-usable form, it begins "http://dx.doi.org/10."; that site then redirects it to the current owner of the document (the original publisher might no longer exist). In 1997, this author developed bibsearch http://www.math.utah.edu/pub/bibsearch to provide an interface to the MG (Managing Gigabytes) fast free-text search engine. Extensive experience with bibsearch shows that its inability to restrict searches to document subfields is a major limitation: entries can be found quickly (in just milliseconds). As a result, there are usually many entries found that are not of interest, and the search often hides the sought-for golden needle in a file of chaff. Also, it is not possible to easily extract subsets of the date, such as a list of unique authors or journals whose entries match the search. Consequently, in 2008, this author developed bibtosql and bibsql: see http://www.math.utah.edu/~beebe/talks/index.html#2009 http://www.math.utah.edu/pub/bibsql They provide a way to get clean (thanks to bibclean!) BibTeX data into, and out of, three different SQL databases (MySQL, PostgreSQL, and SQLite3). That makes it possible to do precise subfield searching, with SQL queries like this: select filename, year, label from bibtab where (author like '%Knuth%') and (title like '%TeX%') order by filename, year, label; It also allows implementing extensive sanity checks on BibTeX data (e.g., find unexpected digits in author or editor values, probably left there because of errors in conversion of publisher data that superscripted author names to relate them to author address values). Those sanity checks are now run automatically prior to Web publication of newly-updated or newly-released BibTeX files at the sites http://www.math.utah.edu/pub/bibnet/ http://www.math.utah.edu/pub/tex/bib/index-table.html SQL searches also facilitate automated extraction of material from the entire corpus for use in other BibTeX bibliographies. Nightly cron jobs produce temporary files containing possible updates to author- and subject-specific bibliographies, making it much less likely that new material is overlooked. Cron jobs run several times daily update the SQL databases with data from recently-changed BibTeX files. An rcsdiff of the final code for bibclean version 2.16 shows about 530 replaced lines (out of about 15,260 original lines of code in version 2.15), and 2900 new lines. Thus, version 2.16 is a SUBSTANTIAL update that must receive extensive local use before it is released on the Web at http://www.math.utah.edu/pub/bibclean Here is a summary of the many changes for version 2.16: * Change license fields in comment preambles from "public domain" to "GNU General Public License, version 2 or later". * Change copyright owner to include the Free Software Foundation. * Makefile.in: Change file order in cmp and diff commands in check targets to conventional order "diff oldfile newfile". Add new check-syntax target and several related targets for additional source-code syntax checking. Add more tests to CHECK-BIBTEX list, and remove their file extensions, with suitable changes in the commands in the check-bibtex target. Extend check-bibtex target commands to number the tests, and produce reports of passes and failures; expect a final report that says ALL TESTS PASSED! * README: Update author addresses. * bibclean.c: Update author addresses. Add declaration of new brace_protect, fix_accents, fix_font_changes, and fix_math options. Use new IN_SET() macro to simplify some coding. Revise warning location data to use conventional GNU-style filename:lineno:message format, but retain WARNING_PREFIX on stdout so that warnings in the output can be readily found and removed as repairs are made. * bibclean.h: Regenerate to reflect new options and their documentation. * bibclean.ini: Add three more bibdate patterns and two more pages patterns. * bibclean.man: Update author addresses. Document new options (-copyleft, -copyright, -[no]-brace-protect, -[no-]fix-accents) (-[no-]fix-braces, -[no-]fix-math, -[no-]quiet, and -output-file). * chek.c: Add new functions for ISBN-13 and ISSN-L support, and limited checks on DOI and URL values. * configure.in: Update version number and date, and add checks for six extra C/C++ syntax checkers, and for a declaration of fileno(). * configure: Regenerate with latest autoconf (2.69). * custom.h: Add definition of IN_SET() macro. * chek.c: Add new functions bad_ISBN_13(), check_DOI(), check_ISBN_13(), check_ISSN_L(), is_DOI_char(), is_ISBN_13_char(), validate_DOI(), validate_ISBN_13(), and validate_URL(). * do.c: Add booktitle to fixes[]. Add DOI, ISBN-13, and ISSN_L to checks[]. Add book-DOI, book-URL, DOI, ISBN-13, ISSN-L, xxDOI, ZMclass, ZMnumber, and ZMreviewer to field_pair[]. Use new IN_SET() macro to simplify some coding. Remove one unused format item in a debug print statement. Bind editor field to check_other() (like the author field: the editor field had been forgotten in earlier bibclean versions). Bind abstract, annote, note, and remark to fix_math_spacing(). Bind booktitle to fix_title(). * fix.c: Replace bracing algorithm in fix_title() and put its use under control of the new -brace-protect option. Add new functions fix_accent_bracing(), fix_math_spacing(), and squeeze_space() for support of the new fix-accents and -fix-math options. Use new IN_SET() macro to simplify some coding. Add several macros (COPY_1(), COPY_2(), ..., STORE_NUL()) to simplify coding. REMARK: the complex -fix-accents, -fix-braces, and -fix-math support is the largest feature addition with this release, and will save me much time in future Web-to-BibTeX data conversions. * fndfil.c: Use new IN_SET() macro to simplify some coding. * isbn.c: Add new functions fix_ISBN_13(), hyphenate_one_ISBN_13(), and next_ISBN_13(). * isbn.tbl: New version with latest ISBN pattern data fetched on 08 January 2013 from http://www.isbn-international.org/agency?rmpdf=1 http://www.isbn-international.org/agency?rmpdf=1&sort=agency http://www.isbn-international.org/agency?rmxml=1 http://www.isbn-international.org/page/ranges and converted from XML to Emacs Lisp code with RangeMessage-xml-to-el.awk and from that output, to an initializer in C code with isbn-el-to-bibclean-isbn.awk. It is important to update isbn.tbl INFREQUENTLY, because that requires rebuilding and reinstalling bibclean. Instead, just add new patterns to the bibclean.isbn file that is normally installed as the hidden file $(prefix)/bin/.bibclean.isbn. There have been lots of changes to the ISBN patterns since the previous version of isbn.tbl from 23-Aug-2003, so it was worthwhile to update it for this major new release of bibclean. * keybrd.c: Move two declarations inside nearest enclosing braced statement. Make kbcode() and kbget() static, because they are not used outside this file. * match.c: Use new IN_SET() macro to simplify some coding. * option.c: Update author addresses. Add support for new options (-copyleft, -copyright, -[no]-brace-protect, -[no-]fix-accents) (-[no-]fix-braces, -[no-]fix-math, -[no-]quiet, and -output-file). Include copyleft statement in -version output. Remove duplication of option lists in two functions by using new top-level help_lines[] array. * save/*: Update with current file versions. * test/*.{bib,opt}: Add several new tests of new features. * test/okay/*: Update to reflect changed behavior of this version of bibclean. * test/testopt[l-o].{bib,opt}: test files for new features. * xstdio.h: Add additional test for HAVE_FILENO_DECL. 2003-08-23 19:30:25-0600 Nelson H. F. Beebe * Makefile.in: Update CPPFLAGS and LDFLAGS to import configure-time values. Add doc/bibclean.pdf, doc/bibclean.ps, tstctype.c, and typedefs.h to DIST-FILES. Add check-setup target so that compilations of test programs do not clutter test output. Add new check-ctype test, after tracing test failures on OpenBSD 3.2 to broken support. Supply some missing echo statements to make the test output wrappers similar. Add check for missing LaTeX and/or BibTeX in check-scribe. Add FIXBLG macro and use to remove unwanted crud from .blg files. Add tstctype target. * bibclean.c: Update version number to 2.14, and update file header FAX number. * configure.in: Update version number to 2.14, and add check for _Bool type. * isbn.tbl: Update from latest emacs.el. * xstdbool.h: When is not available, remap _Bool to private type to avoid reserved-word conflicts on some recent compilers. 2003-08-22 16:57:15-0600 Nelson H. F. Beebe Start new version 2.14, as promised below in log entry for 2001-08-29 16:41:50-0600. More changes to make splint (formerly, lclint) much happier. Also, introduce use of C++98/C99 bool type, wrapped for portability to older compilers. Eventually, bool may replace the similar YESorNO type. Use of bool provides splint with more information, enhancing error checking. * Makefile.in: Update many dependency lists to add new header files. Add splint and splint.log targets. Add SPLINT, SPLINTFLAGS, and XSPLINTFLAGS macros. * custom.h: Add splint annotations. * ch.h: Add several (int) typecasts to reduce instances of char/int type mixing. * isbn.h: Add splint annotations. * match.h: Add splint annotations. Add file wrapper conditional. * token.h: Increase MAX_TOKEN, and add long comment about it. * typedefs.h: New file to avoid duplication of seven typedefs in several source files. * xctype.h: Change definitions of Isxxx() macros to produce Boolean result. * xlimits.h: Remove L suffix on INT_MAX value. * xstdbool.h: New file to wrap C99 * yesorno.h: Add file wrapper conditional. * configure.in: Add check for stdbool.h and SPLINT. * bibclean.c: Add splint annotations. Move typedefs into typedefs.h. Include typedefs.h and xstdbool.h. Add several (int) typecasts to reduce instances of char/int type mixing. Change isxxx() functions to is_xxx() to avoid conflict with reserved names in C89 and C99, and make their type bool instead of int. Change conditionals based on zero/nonzero tests to explicit Boolean relational expressions. * chek.c: Add splint annotations. Move typedefs into typedefs.h. Include typedefs.h. Add several (int) typecasts to reduce instances of char/int type mixing. Change isxxx() functions to Isxxx(). * do.c: Add splint annotations. Move typedefs into typedefs.h. Include typedefs.h. Add several (char) and (int) typecasts to reduce instances of char/int type mixing. Change isxxx() functions to Isxxx(). Change isxxx() functions to is_xxx() to avoid conflict with reserved names in C89 and C99, and make their type bool instead of int. * fix.c: Add splint annotations. Move typedefs into typedefs.h. Include match.h and typedefs.h. Add several (char) and (int) typecasts to reduce instances of char/int type mixing. * fndfil.c: Add splint annotations. Include xstdbool.h. Add several (char) and (int) typecasts to reduce instances of char/int type mixing. Change isxxx() functions to Isxxx(). Change isxxx() functions to is_xxx() to avoid conflict with reserved names in C89 and C99, and make their type bool instead of int. Change conditionals based on zero/nonzero tests to explicit Boolean relational expressions. Rename file_is_readable() and FILE_IS_READABLE() to is_file_readable() and IS_FILE_READABLE(), and change their type from int to bool. * isbn.c: Add splint annotations. Include xstdbool.h. Add several (char) and (int) typecasts to reduce instances of char/int type mixing. Change isxxx() functions to Isxxx(). Change conditionals based on zero/nonzero tests to explicit Boolean relational expressions. * keybrd.c: Add several (int) typecasts to reduce instances of char/int type mixing. Change conditionals based on zero/nonzero tests to explicit Boolean relational expressions. * match.c: Add splint annotations. Include xstdbool.h. Add several (char) and (int) typecasts to reduce instances of char/int type mixing. Change isxxx() functions to Isxxx(). Change conditionals based on zero/nonzero tests to explicit Boolean relational expressions. * option.c: Add splint annotations. Move typedefs into typedefs.h. Include typedefs.h and xstdbool.h. Add several (char) and (int) typecasts to reduce instances of char/int type mixing. Change isxxx() functions to Isxxx(). Change isxxx() functions to is_xxx() to avoid conflict with reserved names in C89 and C99, and make their type bool instead of int. Change conditionals based on zero/nonzero tests to explicit Boolean relational expressions. * romtol.c: Add splint annotations. Include xstdbool.h. Add several (char) and (int) typecasts to reduce instances of char/int type mixing. Change isxxx() functions to Isxxx(). Change isxxx() functions to is_xxx() to avoid conflict with reserved names in C89 and C99, and make their type bool instead of int. Change conditionals based on zero/nonzero tests to explicit Boolean relational expressions. * strist.c: Change conditionals based on zero/nonzero tests to explicit Boolean relational expressions. * strtol.c: Add splint annotations. Include xstdbool.h. Check for NULL nptr. Add several (char) and (int) typecasts to reduce instances of char/int type mixing. Change isxxx() functions to Isxxx(). Change conditionals based on zero/nonzero tests to explicit Boolean relational expressions. Change int negative to bool is_negative. * vaxvms.c: Add splint annotations. Change isxxx() functions to Isxxx(). * vmswild.c: Add splint annotations. Change isxxx() functions to is_xxx() to avoid conflict with reserved names in C89 and C99, and make their type bool instead of int. 2001-10-06 15:45:03-0600 Nelson H. F. Beebe These changes for version 2.13 were suggested by the excellent lclint utility, or by more C++ compilations: * bibclean.c: Reset pt->patterns to NULL after freeing its storage. * chek.c: Include xstdlib.h to get strtol() prototype. * fix.c: Add checks for NULL author argument, and NULL next pointer. * isbn.c: Add check for NULL the_countries pointer. * keybrd.c: Add lclint /*@-modobserver@*/ comment. * match.c: Add lclint and lint fall-through comments, and correct type of string-length argument in sprintf() call from size_t to int. * vmswild.c: Set p to NULL after freeing its storage. * Makefile.in: Update file lists. Do not save bibtex's stdout for comparisons with master copies, because some bibtex versions produce memory usage statistics on stdout, and others do not. 2001-08-29 16:41:50-0600 Nelson H. F. Beebe * Release version 2.12. This release has been delayed since the `completion' logged below on 7-Nov-2000, partly for lack of time to complete extensive testing, but mostly to resolve the problem of getting up-to-date ISBN data. Both of these have now been satisfactorily dealt with, :^)! A companion version 2.13 will be released shortly; it is intended that its source code (*.c, *.h, configure.in) be identical to that of 2.12, apart from version numbering; however, the 2.13 test suite has been completely redesigned and extended. Source changes beyond 2.13 will be incorporated in version 2.14. 2001-08-29 16:17:51-0600 Nelson H. F. Beebe * isbn.c: Fix bug in add_one_ISBN_range(): incorrectly assigned NULL the_countries instead of "" to ISBN_range[where].countries, invalidating the requirement of non-NULL entries in the ISBN_range[] table (except for the last one, which flags table end). Fix bug in do_print_ISBN_table(): when ISBN_range[k].countries[0] == "", set country_names to NULL instead of "". Otherwise, the output incorrectly contains bogus empty lines. * isbn.tbl: Replace contents with data derived automatically on 8-Aug-2001 from data at the International ISBN Agency Web site. Work in November 2000 with that data turned up a number of errors and omissions which were reported to the Agency, and have now been repaired. * bibclean.isbn: New file obtained from "./bibclean --print-ISBN-table". Since this data is already provided in isbn.tbl, this file is superfluous, but is retained (and will be installed) as a demonstration of the dynamic ISBN table facility. 2001-08-28 18:50:34-0600 Nelson H. F. Beebe * Makefile.in: Major overhaul of check target family, replacing all TEST-xxx variables and test-xxx targets, with CHECK-xxx variables and check-xxx targets. This gives much cleaner test output, analogous to what many other packages now use. Instead of top-level test*.* files, there is now a directory tree test with input files, and test/okay with expected output files. Testing with "make check" is divided into five subtargets (check-match check-romtol check-bibtex check-latex check-scribe), each of which includes a loop over base files, making it trivial to add new tests, simply by updating the CHECK-xxx variables, and adding suitable input files in ./test. About 20 new tests have been added to check the parsing of most of the command line options that can be tested portably (-trace-file-opening cannot be, since the output depends on user-defined search paths and local directory tree conventions). Lack of such testing in previous versions was responsible for the omitted -no-keep-string-spaces table entry bug (see below). Update install-xxx targets. * Makefile.in: Update comments to Lisp style. Add uninstall-xxx targets. * bibclean.c: Add code to out_lines() to make screen_lines == 0 suppress paging, so that --help can be used in batch mode, for testing, or dumping the entire help document. * keybrd.c: Add code in get_screen_lines() to return 0 if either stdin or stdout is not a terminal device. * option.c: Add missing -no-keep-string-spaces option entry in options[]. * option.c: Change BIBCLEAN_VERSION to use PACKAGE_xxx variables set in configure.in, to remove the need to update this file when the version number changes. * match.c: Supply missing semicolon in K&R declaration of match_failure(). 2001-08-27 12:36:34-0600 Nelson H. F. Beebe * bibclean.c: Update version number to 2.13. * option.c: Update version number to 2.13, and include xlimits.h. * testisxn.{eok,bok}: Update to reflect new output. * Makefile.in: Update distclean target removals. * acconfig.h: Remove (subsumed by new configure.in file). * configure.in: Update with new autoconf-2.5x AH_TEMPLATE() and AH_BOTTOM() macros that allow elimination of acconfig.h, update call to AC_INIT(), and add call to new AC_CONFIG_SRCDIR(). * custom.h: Update with material previously included in hand-generated config.hin. That file is now created automatically by autoheader. 2000-11-25 Nelson H. F. Beebe * Replace isbn.tbl with new (25-Nov-2000) data derived automatically from the World-Wide Web site of The International ISBN Agency at http://www.isbn.spk-berlin.de/html/prefix.htm This data is at least a year newer than the previous contents of isbn.tbl, and includes several new regions (\approx countries), and a great many changes in allowable publisher ranges. Provided that Web site continues to be accessible, it should be possible to simply provide updates to .bibclean.isbn, instead of changing isbn.tbl, and releasing a new version of bibclean. 2000-11-25 Nelson H. F. Beebe * Version 2.13 almost completed. * Add missing array dimension in isbn.tbl; this bug was in isbn-el-to-bibclean-isbn.awk, and has been fixed there too. * In isbn.c, assign "" instead of the_countries to ISBN_range[where].countries, because it is not expected to ever be a NULL pointer. If it is, then there can be a NULL pointer dereference when a .bibclean.isbn file is read and processed. 1999-11-07 Nelson H. F. Beebe * Version 2.12 completed. * Implement eight new options: "-ISBN-file filename", "-keyword-file filename", "-[no-]debug-match-failures", "-[no-]print-ISBN-table", and "-[no-]print-keyword-table". * Files changed with this release: ChangeLog, Makefile.in, bibclean.c, bibclean.h, bibclean.hlp, bibclean.html, bibclean.man, bibclean.pdf, bibclean.ps, bibclean.txt, configure, configure.sed, do.c, fndfil.c, isbn.c, keybrd.c, match.c, match.lok, option.c, romtol.c, testisxn.bok, testisxn.eok, and xstring.h. * Files new with this release: isbn.h and isbn.tbl. * Makefile.in: adjust dependency lists, and add bibclean.html and bibclean.pdf to the docs target * bibclean.c: add definitions of compile-time overridable environment variables BIBCLEANISBN and BIBCLEANKEY, with suitable default definitions of their files. * bibclean.c: add new code to call do_ISBN_file(), do_keyword_file(), do_print_ISBN_table(), and do_print_keyword_table(). * bibclean.c: Add two blanks to trace-file-opening output string to get lineup with new tracing in fndfil.c:file_is_readable(). * bibclean.h: regenerate to include documentation of new commands. * bibclean.hlp: regenerate automatically * bibclean.html: regenerate automatically * bibclean.man: update with documentation of the new options, and new sections "ISBN INITIALIZATION FILES" and "KEYWORD INITIALIZATION FILES" * bibclean.pdf: regenerate automatically * bibclean.ps: regenerate automatically * bibclean.txt: regenerate automatically * configure: regenerate automatically * configure.sed: extend with substitutions to remove the non-portable default compiler options that autoconf generates * do.c: major update with new functions add_keyword(), add_one_keyword(), do_keyword_file, and do_print_keyword_table() to handle two of the new options. These new functions are quite similar to new ones in isbn.c, but not sufficiently so to permit code sharing without further generalization. Once the ISBN ones were written and debugged, the ones in this file were produced from them by straightforward edit substitutions, and worked correctly immediately. Replace strcmp() uses by calls to STREQUAL macro. Move field_pair[] out of do_field() into private file scope, so that it can be accesed by the new functions. Add MRclass and xxMRclass to the field_pair[] table. Remove duplicate xxURI from field_pair[] table. Give field_pair[] a compile-time adjustable size MAX_KEYWORD, with plenty of extra space for run-time updates (I do not want to use malloc() to expand this table). * fndfil.c: Replace lone strcmp() use by call to STREQUAL macro. * fndfil.c: Replace FILE_IS_READABLE() macro to call new function file_is_readable(), which now provides tracing of access() calls. * isbn.c: major update with new functions add_ISBN_range(), add_one_ISBN_range(), do_print_ISBN_table(), is_valid_ISBN_prefix(), ISBN_match_country_language(), and ISBN_initialize() to support two of the new options. Move the ISBN_range[] table out of fix_ISBN() into private file scope, so that it can be accessed by the new functions. Give ISBN_range[] a compile-time adjustable size MAX_ISBN_RANGE, with plenty of extra space for run-time updates (I do not want to use malloc() to expand this table). Apply massive update to ISBN_range[] table entries to reflect changes from the ISBN numeric index registry volume (Publishers' International ISBN Directory, 19th edition, 1992/1993, Volume 2, Numerical ISBN Section, R. R. Bowker, New York, 1992, ISBN 3-598-21601-7, to the same volume of the 25th edition, 1998/1999, ISBN 3-598-21607-6). The need for such updates was a major impetus for the new run-time ISBN-range customization features. The companion Emacs Lisp file, isbn.el, has been similarly updated; it is not included in the bibclean distribution, but can be obtained at either of these locations: ftp://ftp.math.utah.edu/pub/emacs/isbn.el http://www.math.utah.edu/pub/emacs/isbn.el Replace calls to strcmp() by STREQUAL and STRGREATER macros. * isbn.h: new file to encapulate public interface to ISBN support code. * isbn.tbl: new file containing initialization of ISBN_range[] table; this file is generated automatically from isbn.el by a new awk program, isbn-el-to-bibclean-isbn.awk. * keybrd.c: change bindings of \r and \n from KEYBOARD_DOWN to KEYBOARD_PGDN, to match bindings in more and less pagers. * match.c: add support for new "-[no-]debug-match-failures" options, with new functions match_failure() and match_warning(). Rename private macro isspecial() to is_special() to avoid conflict with that name in on Apple Macintosh Rhapsody 5.5, sigh... I believe that their supplying such a symbol is a violation of ANSI/ISO Standard C, which reserves names matching "^(is|to)[a-z][a-zA-Z0-9_]*$" for future expansion. Correct bug in handling of '.' pattern. Update comment in main() test program to document which keys are handled. Add definition of MIN() macro. Correct `Roman' to `roman'. * option.c: update BIBCLEAN_VERSION to reflect this release. Add support for the new options, with additional entries in the options[] table in do_args(), new usage summaries in opt_help() and usage(), and new functions opt_debug_match_failures(), opt_ISBN_file(), opt_keyword_file(), opt_print_ISBN_table(), and opt_print_keyword_table(). * romtol.c: change from gets() to fgets(), for safety (though that function was used only in the test program, and did not compromise the security of bibclean) * xstring.h: add STRGREATER macro Sun May 10 06:28:55 1998 Nelson H. F. Beebe * Version 2.11.4 completed. * Files changed with this release: ChangeLog Makefile.in README bibclean.c bibclean.h bibclean.html bibclean.man custom.h fix.c isbn.c option.c. * New files with this release: testbib6.bok testbib6.eok testbib6.org. * Makefile.in: Add testbib6.org to the BIBTEX-TESTS list to exercise the bug fix in fix_month() described below. Change modes of installed files to permit group write access. Change the mode of the installed .bibcleanrc file to ensure readability. Save any old installed version of bibclean as bibclean.old during "make install". Create a hard link from the installed bibclean to bibclean-2.11.4, and similarly, for the installed manual page. That way, if a later version comes out and is installed, then bibclean-2.11.4 will still remain accessible. [I'm doing this for all of my software distributions; extensive experience with GNUware, and even commercial packages like Matlab and Maple, on ten architectures, has shown the desirability of having multiple versions available as a check when a suspected bug turns up.] The "make uninstall" command will remove the version-number-specific installed files, if you wish to back out of an install. Change symbolic links to hard links; they are all used in a context where this has no side effects. Change CP to mean "rcp -p", so as to preserve file time stamps on installation. * README: Update my mailing addresses. * bibclean.c: Update my mailing addresses in the file header. * bibclean.h: Automatically generated from the formatted output of bibclean.man to include that file's changes. * bibclean.hhtml: Automatically generated from bibclean.man to include that file's changes. * bibclean.man: Update my mailing addresses in the file header and the AUTHOR section. Document the new exit behavior for -author and -version. Documen the new GNU/POSIX --option support, and add a paragraph on the handling of filenames that would be confused with option names. Add cross references to bibcheck(1), bibdup(1), bibjoin(1), biblabel(), and biborder(1). * custom.h: Change type of sleep() on NeXT from int to unsigned int. * fix.c: Fix a rarely-encountered, but long-standing, bug in fix_month(). Prior to this version, a value mar # "\slash" # apr would be incorrectly transformed month = mar # "\slash" # " # apr # " because in_quoted_string was incorrect for the remaineder of the value. If the input value was changed to mar # "\slash " # apr then that space inside the quoted string preserved the correctness of in_quoted_string, and the output was correct. * isbn.c: Add several countries to the list of recognized ISBN prefixes. Similar updates have been added to the Emacs Lisp file, isbn.el, available in a separate software distribution. Update my mailing addresses in the file header. * option.c: : Update my mailing addresses on opt_author(). Add support for GNU/POSIX-style --options. Update bibclean version number. Make -author and -version handling exit with a success code after their output on stderr. Sat May 4 07:52:26 1996 Nelson H. F. Beebe * Version 2.11.3 (final edits before public release) * Build and test bibclean under 8 IBM PC DOS C and C++ compilers, and under VAX VMS 6.1. bibclean already builds and tests successfully under about 40 C and C++ compilers on 10 different UNIX architectures. * Update README, ibmpc/dos/README and vms/vax/README files. * In bibclean.c, move sanity checks on HAVE_xxx pattern matching flags to custom.h. * In bibclean.man, update version release date to match that set in option.c. * In chek.c, update computation of stdlog_on_stdout to be stricter. Fix off-by-one error in loop termination condition in u72copy_element(). Add code in copy_element() to skip trailing space and hyphens, to avoid generating bogus warnings about checksum mismatches. * In configure.in, remove -g from CFLAGS if we are compiling with lcc because it produces bad debug symbol tables on Sun Solaris 2.x. * In do.c, remove unused LAST_SCREEN_LINE macro. Change open of bibliography files to use binary mode in OS_PCDOS. * In fix.c, change types of n and nupper in fix_title() from int to size_t to avoid type conflict warnings from some compilers. * In fndfil.c, remove unused NEWLINE() macro. Update remainder of code to match fndfil.c in DVI 3.0 development tree. * In isbn.c, add workaround for bug in Watcom 10.0 C++ compilers in ISBN_hyphenate(). Fix serious bug in squeeze_ISBN() that had gone undetected for a very long time: the loop exit condition referred to in_ISBN instead of *in_ISBN. * In keybrd.c, add #include to get some needed library function headers. Remove some old unused macros. Update get_screen_lines() for VAX VMS 6.x. * In Makefile.in, remove some obsolete files and targets, update the DIST-FILES list, and add missing testbib5.org file to BIBTEX-TESTS list. Remove DIST-FILES-BIN list, since the share bundle option is no longer provided, and DIST-FILES now has all files listed. Add match, romtol, and subdist targets. Add dependency on subdist of distribution file targets. Add test-match and test-romtol targets. * In match.c, add month_patterns[], pages_patterns[], and volume_patterns[]. Update messages to include input line number. Modify process() to accept ``key = "value",'' lines that can be easily extracted from bibliography file collections. A test suite has been prepared in match.dat, and the test-match and match targets added to Makefile.in to support this testing. * In option.c, update release date in BIBCLEAN_VERSION. * In vaxvms.c, include and for more function prototypes. Update for VAX VMS 6.x. Add conditionals around memxxx() functions, so as to avoid linker warnings about duplicate symbols, and add missing return values in the memxxx() functions. Change LIB$SPAWN to lib$spawn. * In vmswild.c, remove unused LINSIZ macro. Sun Apr 28 08:54:38 1996 Nelson H. F. Beebe * Version 2.11.3 (continued): * Makefile.in (test-bibtex): Add test-bibtex-7 with test files testcodn.{org,bok,eok}, to test CODEN handling. Thu Apr 25 11:24:18 1996 Nelson H. F. Beebe * Version 2.11.3: * In bibclean.c, remove declarations of unused functions that were moved to new file chek.c in 2.11.0. Change one test (n <= 0) to (n == 0) to avoid compiler warnings about test of unsigned values for being negative. * Add CODEN validation support to chek.c, and completely rewrite the ISBN and ISSN handling. The reason for the latter is that by defining a simple list grammar for CODEN, ISBN, and ISSN string values, the code becomes cleaner and more rigorous, and parts of it can be shared for the checking of all three types. Future versions of bibclean may add support for additional key/value pairs for which the string values can also be validated, and such support will then be very simple to supply. New functions added: check_CODEN(), bad_CODEN(), copy_element(), incomplete_CODEN(), is_CODEN_char(), is_ISBN_char(), is_ISSN_char(), parse_list(), parse_element(), parse_separator(), validate_CODEN(), validate_ISBN(), validate_ISSN(). New typedef added: parse_data. These improvements necessitated a change in testisxn.eok, since the recognition of ISBN values (and also CODEN and ISSN values) is now quite strict, so some of the erroneous ISBNs in testisxn.org are now handled slightly differently. The same number of error messages are issued in both 2.11.2 and 2.11.3 however. * Add mention of the CODEN validations to bibclean.man. * Add CODEN entry in out_value() checks[] array in do.c. Mon Mar 4 16:23:20 1996 Nelson H. F. Beebe * Version 2.11.2: This version adds six new command-line options: -[no]-align-equals, -[no]-keep-preamble-spaces, and -[no]-keep-string-spaces. The first pair of these was suggested by Matthew Morley who contributed an implementation for a much older version of bibclean (2.05); the idea has been used, but not the contributed code. The second and third pairs supply a need that has developed as the TUG and BibNet bibliography collections have grown: namely, sometimes bibliographies have rather long, and carefully spaced, @Preamble{} and @String{} entries, and these new options allow the internal spacing in those entries to be preserved. * bibclean.c: Add the six new options to the file header comments. Add function out_verbatim() to handle output without space fiddling. Add new macros KEEP_PREAMBLE_SPACES() and KEEP_STRING_SPACES(), and use them in get_next_non_blank() and out_string(). * bibclean.man: Document the new -[no]-align-equals, -[no]-keep-preamble-spaces, and -[no]-keep-string-spaces options. * do.c: Add new macros KEEP_PREAMBLE_SPACES() and KEEP_STRING_SPACES(), and use them in several places. Add new global variables keep_preamble_spaces and keep_string_spaces. Make in_preamble instead of static, since it is now needed in bibclean.c too. Add new functions do_preamble_2() and do_string_2() to hold old bodies of do_preamble() and do_string(), to simplify setting of in_preamble and in_string flags. Add support in out_equals() for -align-equals option. The code for -keep-preamble-spaces and -keep-string-spaces turned out to be quite hard to get right, largely because of the design flaw (for which I alone hold responsibility) that input space is discarded at a rather low level, rather than being collected as a legitimate token that is carried up to the highest levels, and then discarded, or otherwise modified. * fix.c: Add additional checks in fix_pages() to avoid inserting en-dashes where they don't belong. * keybrd.c: Add MIN() macro. Add new functions beep() and erase_characters() to shorten coding. Move search code out of do_more() into separate function do_search(). Add support for word-erase, line-erase, and line-reprint in do_search(). When a search string is reused, print it again. Beep if too many characters are entered in a search string. Add support for forward-paragraph and backward-paragraph commands. Correct binding of M-> to be KEYBOARD_END instead of KEYBOARD_HOME. Add support for X Window System arrow keys, and PgUP and PgDn keys. * option.c: Add new functions opt_align_equals(), opt_keep_preamble_spaces(), and opt_keep_string_spaces(), plus corresponding entries in the options[] array, and document them in the opt_help() help_lines[] and usage() usage_lines[] arrays. Sat Oct 7 08:59:48 1995 Nelson H. F. Beebe * Version 2.11: The major change for this new version is the conversion of the source code to use the GNU autoconf system so that on UNIX systems, the configure script can automatically prepare a header file, config.h, that deals with the variations in UNIX and compiler implementations. This entailed: (a) the creation of 3 new files: Makefile.in, config.hin, and configure.in; (b) elimination of 12 header files: machdefs.h os.h osatari.h ospcdos.h osprimos.h osrmx.h ostops20.h osunix.h osvaxvms.h osvmcms.h unixlib.h xstddef.h; (c) adjustments of #include statements, protecting most with #if HAVE_xxx ... #endif; (d) change of the NEW_STYLE and STDC macros to HAVE_STDC; (e) replacement of free() calls by macro FREE(), so as to be able to hide some typecasting to deal with defective C/C++ implementations. * bibclean.c: The code in this file became too large for IBM PC DOS compilers, so it has been split into 10 new header files: ch.h config.h custom.h delete.h keybrd.h pattern.h token.h toklst.h xunistd.h yesorno.h and 5 additional source code files: chek.c do.c fix.c keybrd.c option.c. [The name is chek.c, rather than check.c, to avoid a conflict with the GNU standard Makefile target, check.] The 683-line revision history has been moved from bibclean.c into this new ChangeLog file (see below), following GNU Project conventions; I've not bothered to revise the recording style to match that supported by the GNU Emacs add-change-log-entry-other-window command. This file splitting reduced bibclean.c from 8K lines to 2K lines, and the file do.c, at 2.9K lines, is now the largest source code file. Here is a current source code line count: % wc -l *.c | sort +0nr -1 11626 total 2885 do.c 2094 bibclean.c 1051 vmswild.c 880 vaxvms.c 790 isbn.c 774 chek.c 606 keybrd.c 572 fix.c 569 fndfil.c 551 option.c 395 match.c 240 strtol.c 174 romtol.c 45 strist.c % wc -l *.h | sort +0nr -1 835 total 260 bibclean.h 178 config.h 81 custom.h 51 toklst.h 47 keybrd.h 37 ch.h 26 xctype.h 18 xstring.h 17 xstdlib.h 16 xstat.h 15 token.h 12 xtypes.h 12 xunistd.h 11 pattern.h 10 delete.h 10 match.h 9 xerrno.h 9 xlimits.h 9 xpwd.h 7 yesorno.h Despite the increased number of source files between versions 2.10 and 2.11, the total source code has been reduced from 16.6K lines to 12.5K lines, largely due to the use of GNU configure. Of course, one must factor in about 1K new lines in Makefile.in, config.hin, and configure.in, and 1.6K lines in the automatically-generated configure script. In summary, although this was my first use of autoconf, and the development effort stretched over 3 otherwise very busy weeks, I believe the payoff for other programs will be significant, because their config.in and configure.in files will be very similar to those for bibclean, so the conversion effort will be much smaller. Once config.h files are manually generated for other operating systems, they too will be largely reusable for most of my other programs in C/C++. * do.c: In get_line(), change if (*(p-1) == '\\') to if ((p > &line[0]) && (*(p-1) == '\\')) in order to avoid possible out-of-bounds pointer reference. * fix.c: In fix_pages(), add code * match.c: In next_s(), change for (++s; ; ) to for (++s; *s; ) to eliminate compiler warnings about the final return() being unreachable. The additional test of *s against '\0' is of no significance for execution time. * Makefile.in: remove vaxvms.c and vmswild.c, since they will be handled now by a separate Makefile for VAX VMS and OpenVMS. * README: Completely rewrite, with new installation instructions for UNIX using the configure script, and new subsections containing status reports of installation attempts on all major UNIX variants. Revision history (reverse time order): [08-Mar-1995] 2.10.1 In get_braced_string(), handle overlooked case of \"{x}. [04-Jun-1994]--[18-Oct-1994] 2.10 Add support for simple forward and backward searches in help display in do_more(). Add World-Wide Web URI, URL, and URN names to the list of field names that are forced to uppercase. Disable code in out_s() that breaks lines at punctuation characters, because this can introduce unwanted line breaks in file names and WWW names. Add code in out_c() to preserve last line in output buffer, so that a subsequent DELETE_LINE operation will have a complete line to delete. Previously, with -delete-empty, if the output buffer filled up in the middle of a line that was going to be deleted, the initial part of the line would be (incorrectly) output. This was a hard bug to track down, because it happened very rarely. Extend out_flush() to force out all buffered output. Change bad_ISBN() to not put incorrect hyphens back into ISBNs. ISBN hyphen positions vary, because large publishers get short prefixes, and small publishers get long prefixes. The ISBN is a 10-character value of the form countrygroupnumber-publishernumber-booknumber-checkdigit where the first three fields are of variable width and contain only the digits [0-9], and the last single-character checkdigit field contains [0-9X]. Larger country groups or publishers have smaller numbers, and correspondingly larger booknumbers. Thus, the TeXbook ISBN, 0-201-13447-0, consists of 0 for English-language countries, 201 for Addison-Wesley, 13447 for the book number, and 0 for the check digit. Although it is permissible to use spaces instead of hyphends, we prefer the latter in order to have unbreakable text for improved readability and editing convenience. Add code in fix_title() to supply braces around brace-level-zero TeX control words containing upper-case letters, to obtain conversions like these: "\TeX{} for the Impatient" -> "{\TeX} for the Impatient" "\TeX\ for the Impatient" -> "{\TeX} for the Impatient" in order to protect the control words from downcasing in some BibTeX styles. Change DELETE_CHAR and DELETE_LINE values to be outside the range of possible signed or unsigned character values, so as not to interfere with handling of 8-bit character data. Add new functions bcolumn(), bdelc(), bdelline(), bflush(), blastc(), bpeekc(), and bputc() to localize access to the output buffer, buf[], and the variables that record line number, column number, and output byte position. Completely rewrite out_c() to use these new functions, substantially simplifying the code. Add original_file initialized to the_file in error() and warning(), and used in out_status(), to more accurately reflect output file positions. Previously, the error messages themselves resulted in modification of these values. In new_entry(), initialize non_white_chars to zero. Previously, if multiple input files were specified, the first entry in files after the first was not correctly recognized if it started on the first line. This bug went undetected for so long because bibclean is rarely used with multiple input files. At most calls of out_with_parbreak_error(), put the current character back into the input stream so that it is output after the error message instead of before. This is more likely to avoid splitting an input token. The remaining fixes are for bugs and problems caught by Alf-Christian Achilles who maintains a very large bibliography collection on ftp.ira.uka.de in /pub/bibliography consisting of about 300 bibliographies, and 800 bibcleaned files, occupying about 100MB. In trim_value(), check for final "\" control sequence, and discard it; previously, only the space was discarded, leaving an erroneous bare backslash. In get_braced_string(), add missing additional boundary check in loop to convert braced string to quoted string. Add DELETE_WHITESPACE support. In out_c(), this requests discarding of all trailing whitespace in the output buffer. In do_BibTeX_entry(), do_group(), do_preamble(), and do_Scribe_entry(), if prettyprinting, call out_c(DELETE_WHITESPACE) after parsing optional space following the @ and the name. Previously, a newline following the @ or the name would be preserved, which is legal, but not desirable in prettyprinted output. At end of do_one_file(), call out_c(DELETE_WHITESPACE) to discard trailing space at end of file. Add -[no-]German-style option to provide for special treatment of quote characters inside braced strings, following the conventions of german.sty, which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, invisible hyphens, raised/lowered quotes, French guillemets, and discretionary hyphens. Add external file isbn.c, and call to ISBN_hyphenate() in bad_ISBN() and check_ISBN(), so that correct hyphenation of ISBNs is automatically supplied. [01-Mar-1994] 2.09 Add -[no-]keep-linebreaks, -[no-]keep-parbreaks, and -[no-]keep-spaces. This required usurping two control characters, Ctl-N and Ctl-P, for LINEBREAK and PARBREAK respectively; should such characters occur in an input string value, they will be misinterpreted, and will not be preserved in the output. This restriction could be eliminated if value strings had such characters converted to escape sequences which were converted back again on output; however, this would pose a substantial complication for column position tracking, and carry a run-time penalty from the extra conversions. Since control characters are not expected to be present in value strings, loss of two of them is not expected to be a problem. [24-Sep-1993] 2.08 Update bibclean.c to handle characters in range 128..255 when char is a signed data type, and extend testbib1.bib with more tests of the complete character set. Augment Makefile with convenience targets for each host environment. Add private input character pushback support, because ANSI/ISO Standard C only guarantees one character of pushback, and bibclean needs at least 3. [04-Jun-1993] 2.07 Update *.h files from DVI development to include support for DEC Alpha 3000/500x OSF 1.2 (cc, c89, cxx), and HP 9000/735 HP-UX A.09.01 (cc, c89, CC, gcc, g++). Private memset() below is not compiled on DEC Alpha to avoid conflicts with vendor-supplied version. [30-Nov-1992 -- 29-Jan-1993] 2.06 [1] Extend fix_author() to handle conversion of "Smith, Jr., A. B." to "A. B. {Smith, Jr.}", and "Smith Jr., A. B." to "A. B. {Smith Jr.}". Introduce new auxiliary function check_junior() called by fix_author(). [2] Extend month_pair[] table to include abbreviated month names. Add new function month_token() and rewrite fix_month() to use it to do a token-based parse of the current_value[] string in order to be able to handle conversions like these: "January" --> jan "Jan." --> jan "January 24" --> jan # " 24" "24 Jan." --> "24 " # jan "May/June" --> may # "/" # jun "February and May" --> feb # " and " # may New test input files have been added, with new expected output and error files. [3] Add -[no-]fix-font-changes switch and new function opt_fix_font_changes() to supply additional braces around font changes in titles to prevent letter case conversion by some BibTeX stylos. The real work is done in the new function brace_font_changes() called at the end of fix_title(). [4] Fix bug in out_value() with -delete-empty-fields requested. The code incorrectly assumed that a string value of 2 or fewer characters was an empty string. That is correct if the string value is a quoted string, but wrong if the string value is a 1- or 2-character macro. The code now correctly checks explicitly for empty string, rather than using its length to make the deletion decision. Thanks to Manfred Aben for reporting this bug! [5] Fix bug in get_token(); the code must test for a non-NULL pointer before calling SKIP_SPACE(). Thanks to Gil Webster for reporting this bug! [And thanks to the Internet funding agencies, who make worldwide collaboration like this possible.] [6] Add support for Roman numeral matching in match.c. New file romtol.c contains romtol(), isroman(), and a test program. [7] Add calls to perror() at file open failures. [8] Fix stupid error in brace_font_changes(); s[] was not NUL-terminated before the final call to strcpy(). [9] In format(), make newmsg[] an internal static array instead of reusing shared_string; otherwise, a warning message from check_length() wipes out the current string value. [10] In main(), initialize the_file.input.filename to an empty string, to avoid dereferencing a NULL pointer in warning() during command-line option parsing. [11] In do_args(), add code to display erroneous option switches. [12] In apply_function(), make string comparisons use longer of the minimum match length and the option switch length, so that all characters of the option switch are tested. Previously, option misspellings after the minimum match length went undetected. [13] Add -[no-]prettyprint support, with new functions do_string(), opt_prettyprint(), out_at(), out_close_brace(), out_comma(), out_newline(), out_open_brace(), out_other(), and out_token(), and new data type token_t. Move do_comma() processing out of do_field_value_pair() so that it can be used by do_string(). [14] Add BYTE_VAL() macro for printing of characters with octal formats. [15] Change tag/key to key/field to agree with Appendix B of LaTeX User's Guide and Reference Manual. Change format items %t/%k to %k/%f to match key/field terminology. The user impact of this rather large source code and documentation change should be minimal, and the removal of the disagreement with the LaTeX book needs to be done now, rather than later. bibclean.ini does not use either of the changed format items. [16] Change keyboard uses of key to keyboard, so key now refers exclusively to bibliography citation keys. [17] Change MAX_COLUMN to MAX_WIDTH and add -max-width support, with new function opt_max_width() and new variable max_width. Include "xlimits.h". [18] Add BIBCLEAN_EXT and BIBCLEAN_INI to define environment variables that can supply alternate initialization file extension and name. Add GETDEFAULT() macro to simplify coding. [19] Rename put_char() to out_c(), and remove macro out_c(). [20] Add line wrapping support for lexical analysis output in out_c(). [21] Add ``# line nnn "filename"'' output from out_token() for lexical analysis output. [22] Add strdup macro to redefine that name as strdup_private to avoid problems with incorrect declarations of that function (for DEC Alpha OSF/1). [23] Add out_input_position() and token_start so that out_token() can record both starting and ending line numbers of a multi-line value token in lexical analyzer output. [24] Add check for non-zero brace level at end-of-file in do_one_file(). [25] Add support for @Include{...}, a proposed extension of BibTeX. [26] Add append_value(), do_newline(), do_optional_inline_comment(), do_optional_space(), do_space(), get_inline_comment(), get_optional_space(), and out_complex_value() so that intervening space can be output when lexing, and so that we can support in-line comments as well as horizontal and vertical space between lexical items, according to the proposed grammar for BibTeX. Add do_preamble() to do rigorous parse of @Preamble{...}. Revise do_BibTeX_value() to support recognition of optional space between tokens of a string expression, splitting it into two separate functions do_BibTeX_value_1() and do_BibTeX_value_2() to handle the two cases of prettyprinting and lexical analysis. Add out_string() to localize test for output style. [27] Add checks for end-of-file in quoted and braced strings so these errors get reported. Suppress pattern value checking for empty values; some of the check_xxx() functions did this already, but some did not. Now the test is localized in one place, in out_value(), for all of them. [16-Nov-1992 -- 24-Nov-1992] 2.05 Add Makefile steps to automatically extract help() text from output of manual pages into new file bibclean.h, so the built-in documentation stays up-to-date. The usage messages still need manual adjustment if switches are added or changed. Add missing test of check_values in check_patterns(). Add support for optional warning messages with patterns from initialization files. New function: get_token(). New parsing code in do_new_pattern() to handle optional warning message strings. Add message argument to add_pattern(). Remove strip_comments() since comment processing is now handled by get_token() and do_new_pattern(). This permits unescaped comment characters inside quoted strings. Write bibclean.reg, an initialization file similar to bibclean.ini, but with regular expressions. Replace cascaded if statements for regular expression testing with loop over patterns in check_patterns(). Move inclusion of match.h to after definition of typedef YESorNO, and change type of match_pattern() from int to YESorNO. Add do_fileinit() and code in main() to call do_fileinit() for each named input file with an extension, replacing that extension with INITFILE_EXT (default .ini). This adds a bibliography-specific initialization capability to the system-wide, user-wide, and job-wide files already supported. Change -keep-initials and -keep-names to -fix-initials and -fix-names, making them positive, rather than negative, options. Also, make them independent by moving invocations of fix_periods() outside of fix_author(), and by checking fix_names in fix_author() instead of at start of fix_namelist(). Add -[no-]read-init-files option to allow control over which initialization files are read. Add -[no-]trace-file-opening option to allow easy tracing of file opening attempts by the program. A similar feature in my DVI drivers has proved enormously valuable in tracking down problems of missing files. Rename entry_name[] to current_entry_name[], key[] to current_key[], tag[] to current_tag[], and value[] to current_value[] to get more distinctive names for those global variables. Include the value string matching code selection in the version() message; this is needed so that users can prepare initialization files with the correct pattern syntax. Make several MAX_xxx symbolic constants definable at compile time. Add MAX_PATTERN_NAMES constant, and increase pattern_names[] table to that size, leaving empty slots for expansion. Extend add_pattern() so that unrecognized key names result in creation of new entries in pattern_names[], making the set of key/value pairs extensible without modification of the bibclean source code. Add check_other() to handle checking of other keywords. Add unexpected() to localize issuing of unexpected value warnings. Repair next_s() in match.c to skip past TeX control sequence; it was stopping one character early. Revise upper-case letter bracing code in fix_title() to handle more cases. Rewrite space collapsing code in fix_pages() to only collapse space around en-dashes. The previous code was too aggressive, so that "319 with 30 illustrations" became "319 with30illustrations". Add check_tag() called from do_tag_name(), and add second argument, value, to check_patterns(). Add format() called from error() and warning() to expand %e (@entry name), %k (key), %t (tag), %v (value), and %% (percent) format items in messages. This feature is needed so user-defined messages in initialization files can get key, tag, and value into messages. It also simplifies, and improves, calls to warning() and error(). Add some missing (void) typecasts before str***() calls. Change word_length() to return one more than true length at end of string. Change tests in out_s() to > MAX_COLUMN instead of >= MAX_COLUMN. Previously, if a line ended exactly at column MAX_COLUMN, bibclean could produce a spurious blank line, and would sometimes wrap a line earlier than necessary. Add additional punctuation wrap points in out_s(), and remove tests for non-blank whitespace in switch() statement. Change type of all string index variables from int to size_t. In get_simple_string(), use enum type for type codes if NEW_STYLE. In check_year(), validate all sequences of 1 or more digits. Use the C preprocessor to define memmove() to be Memmove(), so we always use our own version. Too many C and C++ implementations were found to be lacking it, sigh... Similarly, we provide our own version of strtol() (in a separate file) from the DVI 3.0 development, because it too is missing from older UNIX systems. Complete port to IBM PC DOS with Turbo C 2.0, and Turbo C and C++ 3.0. This required economization of storage for arrays of size [MAX_TOKEN_SIZE] to get global data below 64KB without having to reduce MAX_TOKEN. Added code in do_more() and preprocessor conditionals in out_lines() to handle character-at-a-time input for help paging on IBM PC DOS. Keyboard function keys PgUp, PgDn, End, Home, Up arrow and Down arrow are also recognized. This was easy to do because most PC DOS C compilers provide getch() to get a keyboard character without echo. No fiddling of terminal modes is needed like it is on other systems. The IBM PC DOS port exposed a problem in findfile(), where it was assumed that an environment variable would not be longer than the longest filename. Turbo C sets the latter to 80 characters, but environment variables can be set that are almost 128 characters long. Microsoft C 5.0 also sets it to 80, but C 5.1 sets it to 144, and C 6.0 and C and C++ 7.0 set it to 260. This has been handled by defining MAXPATHLEN at compile time, overriding the built-in defaults. Add support for character-at-a-time input for help paging on VAX VMS, and for getting the screen size in get_screen_lines(). Rename do_more_init() to kbopen(), do_more_term() to kbclose(), and use kbget() in do_more() to conceal the heavily-O/S dependent details of the kbxxx() functions. Introduce STREQUAL() macro to simplify coding. Introduce KEY_FUNCTION_ENTRY type and apply_function() to simplify coding, and use it in do_args(), do_preargs(), and out_value(). Argument actions are moved into separate functions, opt_xxx(). Rename show_author() to opt_author(), and help() to opt_help(). Rename do_file() to do_one_file(), and move file loop code from main() into new do_files(). Split large body of get_simple_string() into four new functions, get_braced_string(), get_digit_string(), get_quoted_string(), and get_identifier_string(). Add check_inodes() to determine whether stdlog and stdout are the same file. If so, we need to ensure that each warning message begins a new line, without double spacing unnecessarily when they are different files. Add memset() implementation for SunOS 4.1.1 CC (C++) and BSD 4.3 UNIX because it is missing from their run-time libraries. Replace fopen() by macro FOPEN() to work around erroneous fopen() prototype for SunOS 4.1.1 CC (C++). Complete port to IBM PC DOS with Microsoft C 5.1 and 6.0 compilers. Minor source changes (the CONST macro below) needed to work around compiler errors. [15-Nov-1992] 2.04 Minor changes to complete successful VAX VMS installation and test. [15-Nov-1992] 2.03 Add match_pattern() support for consistent pattern matching in the check_xxx() functions, using new code defined separately in match.c. Add support for run-time redefinition of patterns via one or more initialization file(s) found in the PATH (system-defined) and BIBINPUTS (user-defined) search paths. New functions: add_pattern(), check_patterns(), do_initfile(), do_new_pattern(), do_single_arg(), enlarge_table(), get_line(), strdup(), strip_comments(), and trim_value(). New C preprocessor symbols: HAVE_OLDCODE, HAVE_PATTERNS, HAVE_RECOMP, and HAVE_REGEXP. One of these should be defined at compile time; if none are, then HAVE_PATTERNS is the default. Since options can now be specified in initialization files, they each need negations so the command line can override values from an initialization file. Change all YES/NO flags to new type, YESorNO, for better type checking. Add do_more(), do_more_init(), and do_more_term(), for pausing during help output; a private version of screen paging is used instead of a pager invoked by system() for better portability across systems. Set SCREEN_LINES to 0 at compile time to suppress this feature. In fix_title(), add code to brace upper-case letters for cases like: "X11" -> "{X11}" "Standard C Library" -> "Standard {C} Library" "C++ Book" -> "{C}++ Book" leaving "A xxx" unchanged. [11-Nov-1992] 2.02 Add bad_ISBN(), bad_ISSN(), check_ISBN(), and check_ISSN() for validation of ISBN and ISSN values. ISBN == "International Standard Book Number", and ISSN = "International Standard Serial Number". Add testisxn.bib and testisxn.bok to the test collection, with steps in the Makefile to run the test. Add support for embedded \" in Scribe value strings (forgotten in 2.01 revision); they are converted from \"x to {\"x}. [10-Nov-1992] 2.01 Add support for conversion of level-0 \"x to {\"x} and x"y to x{"}y in value strings. Such input is illegal for BibTeX, and causes hard-to-find errors, since BibTeX raises an error at the line where it runs out of string collection space, rather than at the beginning of the collection point. [06-Nov-1992] 2.00 Add full Scribe .bib file input compatibility with -scribe command-line option. Add support for multiple .bib file arguments on command line, with new do_file() function to process them. Allow slash as well as hyphen for introducing command-line options on VAX VMS and IBM PC DOS. Add argument summary to help() (text extracted verbatim from the manual pages). Add new -delete-empty-fields, -keep-names, -no-parbreaks, -remove-OPT-prefixes, and -no-warnings command-line options and support code. Add new out_with_error() and out_with_parbreak_error() functions, and APPEND_CHAR() and EMPTY_STRING() macros to shorten and clarify coding. Add flush_inter_entry_space() function to standardize line spacing. Increase array sizes to MAX_TOKEN_SIZE (= MAX_TOKEN + 3) to reduce array bounds checking in inner loops. Add additional file position tracking to enhance error localization (structures IO_PAIR and POSITION, and functions new_io_pair(), new_position(), out_position(), and out_status()). Error messages are parsable by GNU Emacs M-x next-error (C-x `) when bibclean is run from Emacs by the command M-x compilebibclean foo.bib >foo.new Use arrays of constant strings for multiple string output via new function out_lines(), instead of multiple calls to fprintf(). Add additional checking via check_chapter(), check_month(), check_number(), check_pages(), check_volume(), check_year(), and match_regexp(). Supply implementation of memmove() library function missing from g++ 2.2.2 library. [03-Oct-1992] 1.06 Correct logic error in do_comma() that prevented correct recognition of @name(key = "value") where the last key/value pair did not have a trailing comma. Add C++ support. Add key_pair[] and entry_pair[] tables for standardization of letter case usage, and use the new NAME_PAIR type in fix_month(). Update author address. Rename author() to show_author() to avoid shadowing global names. Fix two assignments of constant strings to char* pointers. Remove variable at_line_number which was defined, but never used. [01-Aug-1992] 1.05 Add -keep-initials switch support (thanks to Karl Berry ). Internationalize telephone and FAX numbers. [02-Jan-1992] 1.04 Modify fix_title() to ignore macros. Modify fix_author()) to ignore author lists with parentheses (e.g. author = "P. D. Q. Bach (113 MozartStrasse, Vienna, Austria)"). [31-Dec-1991] 1.03 Add fix_title() to supply braces around unbraced upper-case acronyms in titles, and add private definition of MAX(). [15-Nov-1991] 1.02 Handle @String(...) and @Preamble(...), converting outer parentheses to braces. Insert spaces after author and editor initials, and normalize names to form "P. D. Q. Bach" instead of "Bach, P. D. Q.". [10-Oct-1991] 1.01 Increase MAX_TOKEN to match enlarged BibTeX, and add check against STD_MAX_TOKEN. Output ISBN and ISSN in upper case. Always surround = by blanks in key = "value". [19-Dec-1990] 1.00 (version number unchanged) Install Sun386i bug fix. [08-Oct-1990] 1.00 Original version. bibclean-3.07/tstctype.c0000644000156700015670000000361307721761527014150 0ustar beebebeebe/*********************************************************************** Test the functions for characters in 0..255. [23-Aug-2003] ***********************************************************************/ #include #include #if defined(__cplusplus) || defined(__STDC__) void test_isxxx(const char *name, int (*fcn)(int)) #else void test_isxxx(name, fcn) char *name; int (*fcn)(); #endif { int k; (void)printf("\n"); (void)printf("Test of %s: ", name); for (k = 0; k <= 255; ++k) { if ((*fcn)(k)) (void)printf(" %d", k); } (void)printf("\n"); (void)printf("Test of %s: ", name); for (k = 0; k <= 255; ++k) { if ((*fcn)(k)) (void)printf("%c", k); } (void)printf("\n"); } #if defined(__cplusplus) || defined(__STDC__) void test_to(const char *name, int (*fcn)(int)) #else void test_to(name, fcn) char *name; int (*fcn)(); #endif { int k; (void)printf("\n"); (void)printf("Test of %s: ", name); for (k = 0; k <= 255; ++k) { if ((*fcn)(k) != k) (void)printf(" %d->%d", k, (*fcn)(k)); } (void)printf("\n"); (void)printf("Test of %s: ", name); for (k = 0; k <= 255; ++k) { if ((*fcn)(k) != k) (void)printf(" %c->%c", k, (*fcn)(k)); } (void)printf("\n"); } #if defined(__cplusplus) || defined(__STDC__) int main(int argc, char* argv[]) #else int main(argc, argv) int argc; char* argv[]; #endif { test_isxxx("isalnum", isalnum); test_isxxx("isalpha", isalpha); test_isxxx("iscntrl", iscntrl); test_isxxx("isdigit", isdigit); test_isxxx("isgraph", isgraph); test_isxxx("islower", islower); test_isxxx("isprint", isprint); test_isxxx("ispunct", ispunct); test_isxxx("isspace", isspace); test_isxxx("isupper", isupper); test_isxxx("isxdigit", isxdigit); test_to("tolower", tolower); test_to("toupper", toupper); return (0); } bibclean-3.07/xstdbool.h0000644000156700015670000000566612073272756014143 0ustar beebebeebe#ifndef XSTDBOOL_H_DEFINED_ #define XSTDBOOL_H_DEFINED_ /* ** ISO C99 (ISO/IEC 9899:TC3 September 2007) requires that ** define these four macros: ** ** #define bool _Bool ** #define true 1 ** #define false 0 ** #define __bool_true_false_are_defined 1 ** ** Most systems hide those definitions unless (__STDC_VERSION__ - 0) ** >= 199901L. ** ** The type _Bool is an unsigned integer type that tests on many ** systems show almost always is a 1-byte value (56 / 58), or rarely, ** a 4-byte value (2 / 58) (on Apple Mac OS X 10.5.8 PowerPC ** (code-named Leopard)). ** ** ISO C++98 (ISO/IEC 14882 1998-09-01) took a different approach. It ** defines __cplusplus >= 199711L, and requires that bool, true, and ** false be literals (NOT preprocessor definitions) known to the ** compiler, and that bool cannot be further qualified (signed, ** unsigned, short, long, long long, ...). It says that sizeof(bool) ** is implementation-defined, and is not required to be 1. Because ** the three literals are native to the language, no header file is ** needed to use them. ** ** Thus, the underlying type is _Bool in C99, and bool in C++, but ** both should be identical. Outside this header file and config.h, ** we use only bool, true, and false. Here, we have to deal with ** compilers that lack but recognize _Bool, or have ** but not _Bool, as well as c89, traditional cc, c99, and ** C++ environments. */ #if defined(__cplusplus) /* ** Because 1999 ISO Standard C requires that bool, true, and false be ** macros, guarantee that also in a C++ environment. */ #define _Bool bool #define true true #define false false #elif defined(HAVE_STDBOOL_H) #undef bool #undef true #undef false #if defined(__LCLINT__) typedef enum { false, true } bool; /* because bool is not known to lclint or splint */ /* NB: lclint and splint will need: -booltype bool -booltrue true -boolfalse false */ #endif #include #if !defined(HAVE__BOOL) typedef int _Bool; /* some systems have but no _Bool, sigh... */ #endif #if !defined(__bool_true_false_are_defined) /* ** Systems that have usually make it effectively empty in ** pre-C99 environments. However, if it does define bool, true, and ** false, it has to declare another testable symbol that we can use. */ #define bool _Bool #define true 1 #define false 0 #endif /* !defined(__bool_true_false_are_defined) */ #else /* NOT defined(HAVE_STDBOOL_H) and NOT defined(__cplusplus) */ /* ** Some C compilers now recognize _Bool as a language keyword, and ** reject attempts to create a typedef for it, but still lack ** . We therefore remap that keyword to a private type. */ #define _Bool my_boolean_t typedef enum { __false = 0, __true = 1 } _Bool; #define true __true #define false __false #define bool _Bool #endif /* defined(__cplusplus) */ #undef __bool_true_false_are_defined #define __bool_true_false_are_defined 1 #endif /* XSTDBOOL_H_DEFINED_ */ bibclean-3.07/fndfil.c0000644000156700015670000005105212317321307013514 0ustar beebebeebe/* -*-C-*- fndfil.c */ /*-->findfile*/ /**********************************************************************/ /****************************** findfile ******************************/ /**********************************************************************/ /*********************************************************************** NB: If the macro DVI is defined when this file is compiled, then additional code will be executed in is_file() to optionally trace the lookup attempts. If the macro TEST is defined at compile-time, a test main program will be compiled which takes paths and names from stdin, and echos their existence and expansion to stdout. ***********************************************************************/ /*********************************************************************** Search for a file in a list of directories specified in the pathlist, and if found, return a pointer to an internal buffer (overwritten on subsequent calls) containing a full filename; otherwise, return (char*)NULL. This version has been extended to use the file cache stored in an optional hash table pointed to by fsf_table. If the table exists, and a match is found there, then it is assumed to be a valid file name and the operating system is not consulted at all, nor is the path list examined. Note that this permits finding files whose directories are not specified in the path list. You can view this as both a bug and a feature. Since the user can control the contents of the FSMAPFILE file, and can suppress it entirely, the feature outweighs the bug. Filename caching is a valuable economization because file system lookups are relatively time consuming. Of course, if the cache is incorrect, a returned filename may not exist, and a later open attempt will fail; that should alert to user to update the FSMAPFILE file. The pathlist is expected to contain directories separated by one (or more) of the characters in the system-dependent SEP_COMP string constant. The search is restricted to the directories in the path list; unlike PC DOS's PATH variable, the current directory is NOT searched unless it is included in the path list. For example, findfile(".:/usr/local/lib:/tmp", "foo.bar") will check for the files ./foo.bar /usr/local/lib/foo.bar /tmp/foo.bar in that order. The character which normally separates a directory from a file name will be supplied automatically if it is not given in the path list. Thus, the example above could have been written findfile("./:/usr/local/lib/:/tmp/","foo.bar") Since multiple path separators are ignored, the following are also acceptable: findfile("./ : /usr/local/lib/ : /tmp/","foo.bar") findfile("./ /usr/local/lib/ /tmp/","foo.bar") findfile("./:::::/usr/local/lib/:::::/tmp/:::::","foo.bar") For VAX VMS, additional support is provided for rooted logical names, and names that look like rooted names, but are not. Normally, a logical name in a path will look name "LOGNAME:", and a file like "FILE.EXT"; combining them gives "LOGNAME:FILE.EXT". A rooted logical name is created by a DCL command like $ define /translation=(concealed,terminal) LOGNAME DISK:[DIR.] In such a case, VMS requires that what follows the logical name begin with a directory, e.g. the file is "[SUB]FILE.EXT". Concatenation of path with name gives "LOGNAME:[SUB]FILE.EXT", which is acceptable. To refer to a file in the directory DISK:[DIR], one writes "LOGNAME:[000000]FILE.EXT", where 000000 is the magic name of a root directory. If, however, the logical name looks like a rooted name, but wasn't defined with "/translation=(concealed,terminal)", then VMS will not recognize it. [That is an easy mistake to make, and issuing a DCL "show logical LOGNAME" command will NOT reveal the error.] Similarly, if the logical name looks like a directory name, and the file begins with a directory name, VMS will not recognize that either, even though there is no ambiguity about what is meant. We therefore make the following reductions after an initial attempt fails. First, expand the logical name, skipping further processing if that fails. Then, reduce the concatenation as follows: [DIR.]FILE.EXT --> [DIR]FILE.EXT [DIR.][SUB]FILE.EXT --> [DIR.SUB]FILE.EXT [DIR][SUB]FILE.EXT --> [DIR.SUB]FILE.EXT If the logical name points to a chain of names, the standard VMS C run-time library getenv() will return only the first in the chain. Chained logical names were added in VMS version 4.0 without operating system support to retrieve all members of the chain. The only way I've been able to find the subsequent members is to spawn a process that runs a VMS DCL SHOW LOGICAL command, and then parse its output! Under ATARI TOS, PC DOS, and UNIX, environment variable substitution is supported as follows. If the initial lookup fails, the filename is checked for the presence of an initial tilde. If one is found, then if the next character is not alphanumeric or underscore (e.g. ~/foo.bar), the tilde is replaced by ${HOME}; otherwise (e.g. ~user/foo.bar), the tilde is stripped and the following name is looked up using getpwnam() to find the login directory of that user name, and that string is substituted for the ~name. Then, the filename is scanned for $NAME or ${NAME} sequences, where NAME conforms to the regular expression [A-Za-z_]+[A-Za-z0-9_]*, and environment variable substitution is performed for NAME. Finally, the lookup is tried again. If it is successful, the name[] string is replaced by the substituted name, so it can be later used to open the file. ***********************************************************************/ #include #include "xunistd.h" #include "xctype.h" #include "xpwd.h" /* for ~name lookup in envsub() */ #include "xstdbool.h" #include "xstdlib.h" #include "xstring.h" #include "ch.h" #include "yesorno.h" #if defined(HAVE_IO_H) #include /* for more function declarations */ #endif RCSID("$Id: fndfil.c,v 1.7 2014/04/03 18:04:55 beebe Exp beebe $") extern FILE *stdlog; extern YESorNO trace_file_opening; #ifdef DVI #include "typedefs.h" #include "hash.h" extern UNSIGN32 debug_code; extern HASH_TABLE *fsf_table; extern BOOLEAN g_dolog; /* allow log file creation */ extern FILE *g_logfp; /* log file pointer (for errors) */ extern FILE *stddbg; /* debug output file pointer */ extern char g_logname[]; /* name of log file, if created */ #endif /* DVI */ #if !defined(R_OK) #define R_OK 4 #endif #define IS_FILE_READABLE(n) is_file_readable(n) #define ISNAMEPREFIX(c) (Isalpha((int)(c)) || ((int)(c) == (int)'_')) #define ISNAMESUFFIX(c) (Isalnum((int)(c)) || ((int)(c) == (int)'_')) #ifdef MIN #undef MIN #endif /* MIN */ #define MIN(a,b) ((a) < (b) ? (a) : (b)) #if OS_VAXVMS #undef GETENV #define GETENV (char*)vms_getenv char *vms_getenv(char *name_); #endif /* OS_VAXVMS */ /* VMS 4.4 string.h incorrectly declares strspn as char* instead of size_t, but the return value is (correctly) an integer. VMS 5.5 string.h declares it correctly. */ #define STRSPN(s,t) (size_t)strspn(s,t) extern void dbglookup ARGS((const char*, const char*)); /*@null@*/ extern char *findfile ARGS((/*@null@*/ const char *pathlist_, /*@null@*/ const char *name_)); extern void warning ARGS((const char *msg_)); static const char *copyname ARGS((char *target_, const char *source_)); static bool is_file_readable ARGS((const char *filename)); /*@null@*/ static char *envsub ARGS((const char *filename_)); static bool is_file ARGS((char *filename_)); #ifdef TEST int main ARGS((void)); #endif /* TEST */ /*********************************************************************** Copy environment variable or username, and return updated pointer past end of copied name in source[]. ***********************************************************************/ static const char* #if defined(HAVE_STDC) copyname( register char *target, /* destination string */ register const char *source /* source string */ ) #else /* NOT defined(HAVE_STDC) */ copyname(target,source) register char *target; /* destination string */ register const char *source; /* source string */ #endif /* defined(HAVE_STDC) */ { if (ISNAMEPREFIX(*source)) { for (*target++ = *source++; ISNAMESUFFIX(*source); ) *target++ = *source++; /* copy name */ *target = '\0'; /* terminate name */ } return (source); } /*********************************************************************** Do tilde and environment variable in a private copy of filename, return (char*)NULL if no changes were made, and otherwise, return a pointer to the internal copy of the expanded filename. ***********************************************************************/ /*@null@*/ static char* #if defined(HAVE_STDC) envsub( const char *filename ) #else /* NOT defined(HAVE_STDC) */ envsub(filename) const char *filename; #endif /* defined(HAVE_STDC) */ { #if (OS_ATARI || OS_PCDOS || OS_UNIX) static char altname[MAXPATHLEN+1]; /* result storage */ register const char *p; register char *r; register const char *s; char tmpfname[MAXPATHLEN+1]; #if OS_UNIX && defined(HAVE_GETPWNAM) struct passwd *pw; /* handle tilde processing */ tmpfname[0] = '\0'; /* initialize tmpfname[] */ p = strchr(filename,'~'); if (p != (char*)NULL) /* handle tilde (once per filename) */ { (void)strncpy(tmpfname,filename,(size_t)(p - filename)); tmpfname[(size_t)(p - filename)] = '\0'; /* terminate copied string */ r = strchr(tmpfname,'\0'); /* remember start of name */ ++p; /* point past tilde */ if (ISNAMEPREFIX(*p)) /* expect ~name */ { p = copyname(r,p); /* p now points past ~name */ pw = getpwnam(r); /* get password structure */ if (pw == (struct passwd *)NULL) p--; /* restore p to point to tilde */ else (void)strcpy(r,pw->pw_dir); /* replace name by login directory */ } else /* expect ~/name */ (void)strcat(tmpfname,"${HOME}"); /* change to ${HOME}/name */ (void)strcat(tmpfname,p); /* copy rest of filename */ } else (void)strcpy(tmpfname,filename); /* copy of filename */ #else /* NOT OS_UNIX */ (void)strcpy(tmpfname,filename); /* copy of filename */ #endif /* OS_UNIX */ for (r = altname, *r = '\0', p = tmpfname; *p != '\0'; ) { /* handle environment variables */ if (*p == '$') /* expect $NAME or ${NAME} */ { p++; /* point past $ */ if (*p == '{') /* have ${NAME} */ { p = copyname(r,p+1); if (*p++ != '}') return ((char*)NULL); /* bail out -- no closing brace */ for (s = (const char *)getenv(r); (s != (char*)NULL) && (*s != '\0');) *r++ = *s++; /* copy environment variable value */ *r = '\0'; /* terminate altname[] */ } else if (ISNAMEPREFIX(*p)) /* have $NAME */ { p = copyname(r,p); for (s = (const char *)getenv(r); (s != (char*)NULL) && (*s != '\0');) *r++ = *s++; /* copy environment variable value */ *r = '\0'; /* terminate altname[] */ } else /* invalid $NAME */ *r++ = '$'; /* so just copy bare $ */ } else /* just copy character */ *r++ = *p++; } *r = '\0'; /* terminate altname[] */ #ifdef TEST (void)printf("envsub: ["); for (p = filename; *p; ++p) { putchar(*p); if (IN_SET(SEP_COMP,*p)) (void)printf("\n\t"); } (void)printf("] ->\n\t["); for (p = altname; *p; ++p) { putchar(*p); if (IN_SET(SEP_COMP,*p)) (void)printf("\n\t"); } (void)printf("]\n"); #endif /* TEST */ return ((altname[0] != '\0') ? altname : (char*)NULL); #else /* NOT (OS_ATARI || OS_PCDOS || OS_UNIX) */ return ((char*)NULL); /* no processing to be done */ #endif /* (OS_ATARI || OS_PCDOS || OS_UNIX) */ } static bool #if defined(HAVE_STDC) is_file_readable( const char *filename ) #else /* NOT defined(HAVE_STDC) */ is_file_readable(filename) const char *filename; #endif /* defined(HAVE_STDC) */ { /* return true if filename is readable, and false otherwise */ bool is_readable; is_readable = ((int)access((char*)filename,R_OK) == 0) ? true : false; if (trace_file_opening == YES) { (void)fprintf(stdlog,"%s lookup file [%s]%s\n", WARNING_PREFIX, filename, is_readable ? "" : ": FAILED"); } return (is_readable); } /*********************************************************************** Given a directory search path in pathlist[] and a file name in name[], search the path for an existing file. If one is found, return a pointer to an internal copy of its full name; otherwise, return (char*)NULL. ***********************************************************************/ /*@null@*/ char* #if defined(HAVE_STDC) findfile( /*@null@*/ const char *pathlist, /*@null@*/ const char *name ) #else /* NOT defined(HAVE_STDC) */ findfile(pathlist,name) /*@null@*/ const char *pathlist; /*@null@*/ const char *name; #endif /* defined(HAVE_STDC) */ { #define BADCACHEFMT "Invalid font cache entry: font %s is not accessible" static char fullname[MAXPATHLEN+1]; static char fullpath[MAXPATHLEN+1]; size_t k; size_t len; register const char *p; #ifdef DVI HASH_ENTRY *he; static char message[MAXPATHLEN+1+sizeof(BADCACHEFMT)]; if ((name == (const char*)NULL) || (*name == '\0')) return ((char*)NULL); if (fsf_table != (HASH_TABLE*)NULL) { he = hash_lookup(name, fsf_table); /* name found in filename cache? */ if ( (he != (HASH_ENTRY*)NULL) && (he->hash_key != (const char*)NULL) ) { /* yes, reconstruct the full filename */ (void)strcpy(fullname,(const char*)he->hash_data); k = strlen(fullname); if ( (k > 0) && !IN_SET(SEP_PATH, fullname[k-1]) ) fullname[k++] = SEP_PATH[0]; /* supply directory separator */ (void)strncpy(&fullname[k],name,(size_t)(MAXPATHLEN-k)); /* append name */ fullname[MAXPATHLEN] = '\0'; /* strncpy may not supply this */ dbglookup(fullname, "CACHED"); /*********************************************************** Originally, we returned the filename without an access check, but occasionally, this caused problems if the cache was out-of-date, so we now make the check, and issue a warning if the file is inaccessible, either because it does not exist at all, or lacks read permission. ***********************************************************/ if (IS_FILE_READABLE(fullname)) return ((char*)&fullname[0]); (void)sprintf(message,BADCACHEFMT,fullname); warning(message); } else dbglookup(name, "NOT CACHED"); } #endif /* DVI */ if ((name == (const char*)NULL) || (*name == '\0')) return ((char*)NULL); /******************************************************************* For user convenience, allow path lists to contain nested references to environment variables. We repeatedly expand the path list until there are no more changes in it, or a reasonable limit is reached (to prevent infinite recursion when a path mistakenly contains itself). *******************************************************************/ p = pathlist; if (pathlist != (char*)NULL) { /* Copy pathlist[] into fullpath[] cautiously. On the IBM PC, Turbo C 2.0 and 3.0 produce a MAXPATHLEN of 80, which is shorter than the longest search path that can be set at DOS level in an environment variable. If environment variables are set via initialization files, search paths may be even longer. We intentionally do NOT raise an error if path truncation occurs. */ (void)strncpy(fullpath,pathlist,sizeof(fullpath)); fullpath[sizeof(fullpath)-1] = '\0'; for (k = 0; k < 10; ++k) { p = envsub(fullpath); if ( (p == (char*)NULL) || STREQUAL(p,fullpath) ) break; /* no new substitutions were made */ else /* save new expansion */ (void)strcpy(fullpath,p); } p = fullpath; /* remember last expansion */ } if ((p == (char*)NULL) || (*p == '\0')) /* no path, try bare filename */ { (void)strncpy(fullname,name,MAXPATHLEN); fullname[MAXPATHLEN] = '\0'; /* in case strncpy() doesn't do it */ return (is_file(fullname) ? (char*)&fullname[0] : (char*)NULL); } while (*p != '\0') /* process pathlist */ { len = strcspn(p,SEP_COMP); /* get length before separator */ len = MIN(MAXPATHLEN-1,len); /* leave space for possible SEP_PATH */ (void)strncpy(fullname,p,len); /* set directory name */ k = len; if ( (k > 0) && !IN_SET(SEP_PATH, fullname[k - 1]) ) fullname[k++] = SEP_PATH[0]; /* supply directory separator */ (void)strncpy(&fullname[k],name,(size_t)(MAXPATHLEN-k)); /* append name */ fullname[MAXPATHLEN] = '\0'; /* strncpy may not supply this */ if (is_file(fullname)) return ((char*)&fullname[0]); #if OS_VAXVMS do /* single trip loop */ { char *logname; int n; if ((k > 0) && (fullname[k-1] == ']')) /* then not logical name */ break; /* here's a loop exit */ fullname[k] = '\0'; /* terminate logical name */ logname = GETENV(fullname); if (logname == (char*)NULL) /* then unknown logical name */ break; /* here's a loop exit */ (void)strcpy(fullname,logname); n = strlen(fullname); if ( (n >= 2) && (fullname[n-2] == '.') && (fullname[n-1] == ']') ) { /* have rooted name [dir.] */ if (name[0] == '[') /* have [dir.][sub]name */ (void)strcpy(&fullname[n-1],&name[1]); /* [dir.sub]name */ else /* have [dir.]name */ { fullname[n-2] = ']'; (void)strcpy(&fullname[n-1],&name[0]); /* [dir]name */ } } else if (fullname[n-1] == ']') { /* have normal name [dir] */ if (name[0] == '[') /* have [dir][sub]name */ { fullname[n-1] = '.'; (void)strcpy(&fullname[n],&name[1]); /* [dir.sub]name */ } else /* have [dir]name */ (void)strcpy(&fullname[n],&name[0]); /* [dir]name */ } else /* must be logical name component */ { if (fullname[n-1] != ':') fullname[n++] = ':'; (void)strcpy(&fullname[n],&name[0]); /* logname:name */ } if (is_file(fullname)) return ((char*)&fullname[0]); } while (0); #endif /* OS_VAXVMS */ p += len; /* point past first path */ if (*p != '\0') /* then not at end of path list */ { p++; /* point past separator */ p += STRSPN(p,SEP_COMP); /* skip over any extra separators */ } } return ((char*)NULL); /* no file found */ } /*********************************************************************** Return a non-zero result if a file named filename exists, and otherwise, return zero. If the first existence check fails, then we try tilde and environment variable substitutions, and if there were any, a second existence check is made. If this second one succeeds, we replace filename with the substituted name, since that will be needed later to open the file. ***********************************************************************/ static bool #if defined(HAVE_STDC) is_file( char *filename ) #else /* NOT defined(HAVE_STDC) */ is_file(filename) char *filename; #endif /* defined(HAVE_STDC) */ { bool exists; char *p; exists = IS_FILE_READABLE(filename); if (!exists) /* try environment variable substitution */ { p = envsub(filename); if (p != (char*)NULL) { exists = IS_FILE_READABLE(p); if (exists) (void)strcpy(filename,p); } } #ifdef DVI if (exists) dbglookup(filename, "OK"); else dbglookup(filename, "FAILED"); #endif /* DVI */ return (exists); } #ifdef TEST /*********************************************************************** Simple test program for findfile(). It prompts for a single directory search path, then loops reading test filenames, uses findfile to see if they exist in the search path, and prints the name of the matching file, if any. If tilde or environment variable substitutions are made, they are printed as well. ***********************************************************************/ int main(VOID_ARG) { char pathlist[MAXPATHLEN+1]; char name[MAXPATHLEN+1]; char *p; (void)printf("Enter file search path: "); (void)fgets(pathlist,MAXPATHLEN,stdin); p = strchr(pathlist,'\n'); if (p != (char*)NULL) *p = '\0'; /* kill terminal newline */ for (;;) { (void)printf("Enter file name: "); if (fgets(name,MAXPATHLEN,stdin) == (char*)NULL) break; /* here's the loop exit */ p = strchr(name,'\n'); if (p != (char*)NULL) *p = '\0'; /* kill terminal newline */ p = findfile(pathlist,name); if (p == (char*)NULL) (void)printf("\tNo such file\n"); else (void)printf("\tFile is [%s]\n",p); } exit(EXIT_SUCCESS); return (0); } #endif /* TEST */ bibclean-3.07/Makefile.in0000644000156700015670000017346114167071514014173 0ustar beebebeebe### ==================================================================== ### Makefile for BibTeX .bib file prettyprinter ### ### Current target list: (these include all GNU Project standard ### targets) ### ### all build bibclean ### bibclean executable for bibclean ### bibclean.h documentation strings for help() ### function ### bibclean.hlp VAX VMS help file (automatically ### converted from bibclean.txt) ### bibclean.html HTML version of formatted manual pages ### bibclean.i C preprocessor output from bibclean.c ### bibclean.jar Java Jar distribution archive ### bibclean.pdf Adobe Portable Document Format version ### of bibclean.man ### bibclean.ps PostScript version of bibclean.man ### bibclean.tar tar archive file for ftp distribution ### bibclean.txt nroff'ed bibclean.man manual page file ### bibclean.zip Info-zip archive file for ftp ### distribution ### bibclean.zoo zoo archive file for ftp distribution ### check same as test (see below) ### clean clean up all but executables and time ### stamps ### clobber clean up everything ### distclean remove everything make can rebuild at ### remote site ### docs make bibclean.txt, bibclean.hlp, and ### bibclean.ps ### install install executable and man pages ### install.time internal target for install ### install-exe install executable ### install-man install man pages ### install-ftp install .tar, .zip, and .zoo files in ### ftp tree ### install-ftp.time internal target for install-ftp ### lint check for code problems ### mostlyclean same as clean ### maintainer-clean for program author only: remove ### everything make can rebuild at ### author's site ### romtol build and run test program for romtol() ### TAGS GNU Emacs tags file ### test test bibclean on BibTeX and Scribe ### bibliographies ### test-bibtex test 1,2,3 bibclean on BibTeX ### bibliographies ### test-bibtex-1 test 1 bibclean on BibTeX bibliographies ### test-bibtex-2 test 2 bibclean on BibTeX bibliographies ### test-bibtex-3 test 3 ISBN and ISSN verification ### test-scribe test 1,2,3 bibclean on Scribe ### bibliographies ### test-scribe-1 test 1 bibclean on Scribe bibliographies ### test-scribe-2 test 2 bibclean on Scribe bibliographies ### test-scribe-3 test 3 bibclean on Scribe bibliographies ### test-version test extraction of version number ### uninstall remove files installed by "make install" ### uninstall-ftp remove installed files in anonymous ftp ### directory ### ### [28-Feb-2016] -- major update for bibclean 3.00 and later ### [28-Aug-2001] -- major update for bibclean 2.12 and later ### [01-Jul-1996] -- add targets bibclean.pdf and DISTILL macro, and ### update DIST-FILES list ### [03-May-1996] -- add targets match, romtol, test-match, and ### and test-romtol, and update DIST-FILES list for ### version 2.11.3 release ### [25-Apr-1996] -- add target for bibclean.html, with associated ### support Makefile variables ### [20-Sep-1995] -- revise to use GNU autoconf and configure ### [08-Mar-1995] -- Change TARGET to TARGETS to avoid conflict with ### built-in macro on Cray systems. Add -D_POSIX_SOURCE ### to dec-alpha-osf1-c++ CC definition to work around ### bug in C++ signal.h header file on OSF/1 3.x. ### [21-Nov-1994] -- add cray-el94 target ### [11-Nov-1994] -- add sun-sparc-solaris2-lcc and sun-sparc-sunos5-lcc ### targets ### [18-Oct-1994] -- add isbn.[co] to file lists ### [16-Oct-1994] -- add strist.[co] to file lists ### [04-Jun-1994] -- update for version 2.10 ### add lint target ### [31-Dec-1993] -- final polishing of Makefile for public release ### after TUGboat publication ### [24-Sep-1993] -- original version ### ==================================================================== ### -------------------------------------------------------------------- ### Start of system configuration section. BIBCLEANNAME = bibclean prefix = @prefix@ exec_prefix = ${prefix} bindir = ${exec_prefix}/bin srcdir = @srcdir@ datarootdir = @datarootdir@ datadir = @datadir@ bibcleandir = ${datadir}/${BIBCLEANNAME} initdir = ${bibcleandir}/${VERSION} ### This is needed only at the developer's site: FTPDIR = /u/ftp/pub/tex/bib CC = @CC@ CFLAGS = @CFLAGS@ ${OPT} CPPFLAGS = @CPPFLAGS@ DEFS = -DINITDIR='"${initdir}"' ${XDEFS} @DEFS@ LDFLAGS = @LDFLAGS@ ${OPT} LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ OPT = VPATH = @srcdir@ ### Where to install the manual pages. mandir = ${prefix}/man/man1 ### Extension (not including `.') for the installed manual page filenames. manext = 1 ### End of system configuration section. ### -------------------------------------------------------------------- AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AWK = @AWK@ BIBCLEAN = bibclean${EXEEXT} ### This option is normally empty, but is used by the developer ### to test whether new options affect output. BIBCLEANFLAGS = BIBISBN = bibisbn${EXEEXT} CHECK-BIBISBN = bibisbn1 bibisbn2 bibisbn3 bibisbn4 bibisbn5 bibisbn6 bibisbn7 BIBTEX = @BIBTEX@ CAT = @CAT@ ### The topt1* tests try all recognized options with a single leading dash, and ### the topt3* tests are their companions with two leading dashes. However, we ### intentionally EXCLUDE topt163 and topt363 because they hold -print-patterns ### options whose output is site-dependent. We have no tests for ### -trace-file-opening because that too is site-dependent, and also ### user-dependent. CHECK-BIBTEX = testbib1 testbib2 testbib3 testbib4 testbib5 testbib6 \ testbib7 testbib8 testcodn testisxn testopt1 testopt2 \ testopt3 testopt4 testopt5 testopt6 testopt7 testopt8 \ testopt9 testopta testoptb testoptc testoptd testopte \ testoptf testoptg testopth testopti testoptj testoptk \ testoptl testoptm testoptn testopto testoptp testoptq \ testoptr testopts testoptt testoptu testoptv testoptw \ topt101 topt102 topt103 topt104 topt105 topt106 topt107 \ topt108 topt109 topt110 topt111 topt112 topt113 topt114 \ topt115 topt116 topt117 topt118 topt119 topt120 topt121 \ topt122 topt123 topt124 topt125 topt126 topt127 topt128 \ topt129 topt130 topt131 topt132 topt133 topt134 topt135 \ topt136 topt137 topt138 topt139 topt140 topt141 topt142 \ topt143 topt144 topt145 topt146 topt147 topt148 topt149 \ topt150 topt151 topt152 topt153 topt154 topt155 topt156 \ topt157 topt158 topt159 topt160 topt161 topt162 topt164 \ topt165 topt166 topt167 topt168 topt169 topt170 topt171 \ topt301 topt302 topt303 topt304 topt305 topt306 topt307 \ topt308 topt309 topt310 topt311 topt312 topt313 topt314 \ topt315 topt316 topt317 topt318 topt319 topt320 topt321 \ topt322 topt323 topt324 topt325 topt326 topt327 topt328 \ topt329 topt330 topt331 topt332 topt333 topt334 topt335 \ topt336 topt337 topt338 topt339 topt340 topt341 topt342 \ topt343 topt344 topt345 topt346 topt347 topt348 topt349 \ topt350 topt351 topt352 topt353 topt354 topt355 topt356 \ topt357 topt358 topt359 topt360 topt361 topt362 topt364 \ topt365 topt366 topt367 topt368 topt369 topt370 topt371 \ topt372 CHECK-LATEX = testltx1.ltx CHECK-MATCH = match.in CHECK-ROMTOL = romtol.in CHECK-SCRIBE = testscr1.bib testscr2.bib testscr3.bib testscr4.bib ### This program is freely available at ftp://ftp.math.utah.edu/pub/checksum/ CHECKSUM = @CHECKSUM@ CHMOD = @CHMOD@ CMP = @CMP@ CP = @CP@ CPFLAGS = -p CUT = @CUT@ DATE = @DATE@ DIFF = @DIFF@ DIST-FILES = ChangeLog COPYING README Makefile.in bibclean.c bibclean.h \ bibclean.hlp bibclean.html bibclean.ini bibclean.isbn \ bibclean.key bibclean.man bibclean.pdf bibclean.ps \ bibclean.reg bibclean.txt build-all.sh ch.h chek.c \ config.hin configure configure.ac configure.sed custom.h \ delete.h do.c dbx-test.run fix.c fndfil.c isbn.c isbn.h \ isbn.tbl isbn-el-to-bibclean-isbn.awk keybrd.c keybrd.h \ match.c match.dat match.h option.c pattern.h rofvms.awk \ romtol.c romtol.dat strist.c strtol.c token.h toklst.h \ tstctype.c typedefs.h vaxvms.c vmswild.c xctype.h xerrno.h \ xlimits.h xpwd.h xstat.h xstdbool.h xstdio.h xstdlib.h \ xstring.h xtypes.h xunistd.h yesorno.h testscr2.bo2 \ testscr2.eo2 ${FILES-DOC} ${FILES-IBMPC} ${FILES-SAVE} \ ${FILES-TEST} test/plain.bst ${FILES-VMS} ${FILES-WINDOWS} DISTILL = @DISTILL@ DITROFF = @DITROFF@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ EXPR = @EXPR@ ### On UNIX systems, the FILES-xxx lists could be generated by `find xxx ### -type f | sort`, but explicit enumeration eases portability to other ### operating systems, and ensures that we do not accidentally include ### unwanted temporary files that might be present. FILES-DOC = doc/Makefile doc/bibclean.aux doc/bibclean.bbl \ doc/bibclean.bib doc/bibclean.blg doc/bibclean.dvi \ doc/bibclean.idw doc/bibclean.idx doc/bibclean.ilg \ doc/bibclean.ind doc/bibclean.log doc/bibclean.lot \ doc/bibclean.ltx doc/bibclean.pdf doc/bibclean.ps \ doc/bibclean.sok doc/bibclean.sty doc/bibclean.toc \ doc/is-plain.bst doc/ltugboat.sty doc/path.sty \ doc/texnames.sty doc/tugboat.cmn FILES-IBMPC = ibmpc/dos/README ibmpc/dos/msc5p1/bibclean.exe \ ibmpc/dos/msc5p1/config.h ibmpc/dos/msc5p1/ibmclean.bat \ ibmpc/dos/msc5p1/ibmtest.bat ibmpc/dos/msc5p1/msc51bld.bat \ ibmpc/dos/msc5p1/msc51pth.bat ibmpc/dos/msc6p0/bibclean.exe \ ibmpc/dos/msc6p0/bibclean.map ibmpc/dos/msc6p0/config.h \ ibmpc/dos/msc6p0/ibmclean.bat ibmpc/dos/msc6p0/ibmtest.bat \ ibmpc/dos/msc6p0/msc60bld.bat ibmpc/dos/msc6p0/msc60pth.bat \ ibmpc/dos/msc7p0/config.h ibmpc/dos/msc7p0/ibmclean.bat \ ibmpc/dos/msc7p0/ibmtest.bat ibmpc/dos/msc7p0/msc70bld.bat \ ibmpc/dos/msc7p0/msc70pth.bat ibmpc/dos/tcc2p0/bibclean.exe \ ibmpc/dos/tcc2p0/config.h ibmpc/dos/tcc2p0/ibmclean.bat \ ibmpc/dos/tcc2p0/ibmtest.bat ibmpc/dos/tcc2p0/tcc20bld.bat \ ibmpc/dos/tcc2p0/tcc20pth.bat ibmpc/dos/tcc3p0/bibclean.exe \ ibmpc/dos/tcc3p0/config.h ibmpc/dos/tcc3p0/ibmclean.bat \ ibmpc/dos/tcc3p0/ibmtest.bat ibmpc/dos/tcc3p0/tcc30bld.bat \ ibmpc/dos/tcc3p0/tcc30pth.bat ibmpc/dos/tpp3p0/bibclean.exe \ ibmpc/dos/tpp3p0/config.h ibmpc/dos/tpp3p0/ibmclean.bat \ ibmpc/dos/tpp3p0/ibmtest.bat ibmpc/dos/tpp3p0/tcc30pth.bat \ ibmpc/dos/tpp3p0/tpp30bld.bat \ ibmpc/dos/wat10/wcc/bibclean.exe \ ibmpc/dos/wat10/wcc/bibclean.map \ ibmpc/dos/wat10/wcc/config.h \ ibmpc/dos/wat10/wcc/ibmclean.bat \ ibmpc/dos/wat10/wcc/ibmtest.bat \ ibmpc/dos/wat10/wcc/watcpp.bat \ ibmpc/dos/wat10/wcc/watpath.bat \ ibmpc/dos/wat10/wcc/watwcc.bat \ ibmpc/dos/wat10/wcc386/bibclean.exe \ ibmpc/dos/wat10/wcc386/config.h \ ibmpc/dos/wat10/wcc386/dos4gw.doc \ ibmpc/dos/wat10/wcc386/dos4gw.exe \ ibmpc/dos/wat10/wcc386/ibmclean.bat \ ibmpc/dos/wat10/wcc386/ibmtest.bat \ ibmpc/dos/wat10/wcc386/wat10bld.bat \ ibmpc/dos/wat10/wcc386/watpath.bat \ ibmpc/dos/wat10/wpp386/bibclean.exe \ ibmpc/dos/wat10/wpp386/config.h \ ibmpc/dos/wat10/wpp386/dos4gw.doc \ ibmpc/dos/wat10/wpp386/dos4gw.exe \ ibmpc/dos/wat10/wpp386/ibmclean.bat \ ibmpc/dos/wat10/wpp386/ibmtest.bat \ ibmpc/dos/wat10/wpp386/w386cpp.bat \ ibmpc/dos/wat10/wpp386/watpath.bat ibmpc/linux/bibclean FILES-SAVE = save/Makefile save/config.h save/config.hin save/configure \ save/custom.h FILES-TEST = test/match.in test/okay/match.err test/okay/match.out \ test/okay/romtol.err test/okay/romtol.out \ test/okay/testbib1.err test/okay/testbib1.out \ test/okay/testbib2.err test/okay/testbib2.out \ test/okay/testbib3.err test/okay/testbib3.out \ test/okay/testbib4.err test/okay/testbib4.out \ test/okay/testbib5.err test/okay/testbib5.out \ test/okay/testbib6.err test/okay/testbib6.out \ test/okay/testbib7.err test/okay/testbib7.out \ test/okay/testbib8.err test/okay/testbib8.out \ test/okay/testcodn.err test/okay/testcodn.out \ test/okay/testisxn.err test/okay/testisxn.out \ test/okay/testltx1.bbl test/okay/testltx1.blg \ test/okay/testltx1.err test/okay/testltx1.out \ test/okay/testopt1.err test/okay/testopt1.out \ test/okay/testopt2.err test/okay/testopt2.out \ test/okay/testopt3.err test/okay/testopt3.out \ test/okay/testopt4.err test/okay/testopt4.out \ test/okay/testopt5.err test/okay/testopt5.out \ test/okay/testopt6.err test/okay/testopt6.out \ test/okay/testopt7.err test/okay/testopt7.out \ test/okay/testopt8.err test/okay/testopt8.out \ test/okay/testopt9.err test/okay/testopt9.out \ test/okay/testopta.err test/okay/testopta.out \ test/okay/testoptb.err test/okay/testoptb.out \ test/okay/testoptc.err test/okay/testoptc.out \ test/okay/testoptd.err test/okay/testoptd.out \ test/okay/testopte.err test/okay/testopte.out \ test/okay/testoptf.err test/okay/testoptf.out \ test/okay/testoptg.err test/okay/testoptg.out \ test/okay/testopth.err test/okay/testopth.out \ test/okay/testopti.err test/okay/testopti.out \ test/okay/testoptj.err test/okay/testoptj.out \ test/okay/testoptk.err test/okay/testoptk.out \ test/okay/testoptl.err test/okay/testoptl.out \ test/okay/testoptm.err test/okay/testoptm.out \ test/okay/testoptn.err test/okay/testoptn.out \ test/okay/testopto.err test/okay/testopto.out \ test/okay/testoptp.err test/okay/testoptp.out \ test/okay/testoptq.err test/okay/testoptq.out \ test/okay/testoptr.err test/okay/testoptr.out \ test/okay/testopts.err test/okay/testopts.out \ test/okay/testoptt.err test/okay/testoptt.out \ test/okay/testoptu.err test/okay/testoptu.out \ test/okay/testoptu.win test/okay/testoptv.err \ test/okay/testoptv.out test/okay/testoptw.err \ test/okay/testoptw.out test/okay/testoptx.err \ test/okay/testoptx.out test/okay/testscr1.bbl \ test/okay/testscr1.blg test/okay/testscr1.err \ test/okay/testscr1.out test/okay/testscr2.bbl \ test/okay/testscr2.blg test/okay/testscr2.err \ test/okay/testscr2.out test/okay/testscr3.bbl \ test/okay/testscr3.blg test/okay/testscr3.err \ test/okay/testscr3.out test/okay/testscr4.bbl \ test/okay/testscr4.blg test/okay/testscr4.err \ test/okay/testscr4.out test/okay/topt101.err \ test/okay/topt101.out test/okay/topt102.err \ test/okay/topt102.out test/okay/topt103.err \ test/okay/topt103.out test/okay/topt104.err \ test/okay/topt104.out test/okay/topt105.err \ test/okay/topt105.out test/okay/topt106.err \ test/okay/topt106.out test/okay/topt107.err \ test/okay/topt107.out test/okay/topt108.err \ test/okay/topt108.out test/okay/topt109.err \ test/okay/topt109.out test/okay/topt110.err \ test/okay/topt110.out test/okay/topt111.err \ test/okay/topt111.out test/okay/topt112.err \ test/okay/topt112.out test/okay/topt113.err \ test/okay/topt113.out test/okay/topt114.err \ test/okay/topt114.out test/okay/topt115.err \ test/okay/topt115.out test/okay/topt116.err \ test/okay/topt116.out test/okay/topt117.err \ test/okay/topt117.out test/okay/topt118.err \ test/okay/topt118.out test/okay/topt119.err \ test/okay/topt119.out test/okay/topt120.err \ test/okay/topt120.out test/okay/topt121.err \ test/okay/topt121.out test/okay/topt122.err \ test/okay/topt122.out test/okay/topt123.err \ test/okay/topt123.out test/okay/topt124.err \ test/okay/topt124.out test/okay/topt125.err \ test/okay/topt125.out test/okay/topt126.err \ test/okay/topt126.out test/okay/topt127.err \ test/okay/topt127.out test/okay/topt128.err \ test/okay/topt128.out test/okay/topt129.err \ test/okay/topt129.out test/okay/topt130.err \ test/okay/topt130.out test/okay/topt131.err \ test/okay/topt131.out test/okay/topt132.err \ test/okay/topt132.out test/okay/topt133.err \ test/okay/topt133.out test/okay/topt134.err \ test/okay/topt134.out test/okay/topt135.err \ test/okay/topt135.out test/okay/topt136.err \ test/okay/topt136.out test/okay/topt137.err \ test/okay/topt137.out test/okay/topt138.err \ test/okay/topt138.out test/okay/topt139.err \ test/okay/topt139.out test/okay/topt140.err \ test/okay/topt140.out test/okay/topt141.err \ test/okay/topt141.out test/okay/topt142.err \ test/okay/topt142.out test/okay/topt143.err \ test/okay/topt143.out test/okay/topt144.err \ test/okay/topt144.out test/okay/topt145.err \ test/okay/topt145.out test/okay/topt146.err \ test/okay/topt146.out test/okay/topt147.err \ test/okay/topt147.out test/okay/topt148.err \ test/okay/topt148.out test/okay/topt149.err \ test/okay/topt149.out test/okay/topt150.err \ test/okay/topt150.out test/okay/topt151.err \ test/okay/topt151.out test/okay/topt152.err \ test/okay/topt152.out test/okay/topt153.err \ test/okay/topt153.out test/okay/topt154.err \ test/okay/topt154.out test/okay/topt155.err \ test/okay/topt155.out test/okay/topt156.err \ test/okay/topt156.out test/okay/topt157.err \ test/okay/topt157.out test/okay/topt158.err \ test/okay/topt158.out test/okay/topt159.err \ test/okay/topt159.out test/okay/topt160.err \ test/okay/topt160.out test/okay/topt161.err \ test/okay/topt161.out test/okay/topt162.err \ test/okay/topt162.out test/okay/topt163.err \ test/okay/topt163.out test/okay/topt164.err \ test/okay/topt164.out test/okay/topt165.err \ test/okay/topt165.out test/okay/topt166.err \ test/okay/topt166.out test/okay/topt167.err \ test/okay/topt167.out test/okay/topt168.err \ test/okay/topt168.out test/okay/topt169.err \ test/okay/topt169.out test/okay/topt170.err \ test/okay/topt170.out test/okay/topt171.err \ test/okay/topt171.out test/okay/topt301.err \ test/okay/topt301.out test/okay/topt302.err \ test/okay/topt302.out test/okay/topt303.err \ test/okay/topt303.out test/okay/topt304.err \ test/okay/topt304.out test/okay/topt305.err \ test/okay/topt305.out test/okay/topt306.err \ test/okay/topt306.out test/okay/topt307.err \ test/okay/topt307.out test/okay/topt308.err \ test/okay/topt308.out test/okay/topt309.err \ test/okay/topt309.out test/okay/topt310.err \ test/okay/topt310.out test/okay/topt311.err \ test/okay/topt311.out test/okay/topt312.err \ test/okay/topt312.out test/okay/topt313.err \ test/okay/topt313.out test/okay/topt314.err \ test/okay/topt314.out test/okay/topt315.err \ test/okay/topt315.out test/okay/topt316.err \ test/okay/topt316.out test/okay/topt317.err \ test/okay/topt317.out test/okay/topt318.err \ test/okay/topt318.out test/okay/topt319.err \ test/okay/topt319.out test/okay/topt320.err \ test/okay/topt320.out test/okay/topt321.err \ test/okay/topt321.out test/okay/topt322.err \ test/okay/topt322.out test/okay/topt323.err \ test/okay/topt323.out test/okay/topt324.err \ test/okay/topt324.out test/okay/topt325.err \ test/okay/topt325.out test/okay/topt326.err \ test/okay/topt326.out test/okay/topt327.err \ test/okay/topt327.out test/okay/topt328.err \ test/okay/topt328.out test/okay/topt329.err \ test/okay/topt329.out test/okay/topt330.err \ test/okay/topt330.out test/okay/topt331.err \ test/okay/topt331.out test/okay/topt332.err \ test/okay/topt332.out test/okay/topt333.err \ test/okay/topt333.out test/okay/topt334.err \ test/okay/topt334.out test/okay/topt335.err \ test/okay/topt335.out test/okay/topt336.err \ test/okay/topt336.out test/okay/topt337.err \ test/okay/topt337.out test/okay/topt338.err \ test/okay/topt338.out test/okay/topt339.err \ test/okay/topt339.out test/okay/topt340.err \ test/okay/topt340.out test/okay/topt341.err \ test/okay/topt341.out test/okay/topt342.err \ test/okay/topt342.out test/okay/topt343.err \ test/okay/topt343.out test/okay/topt344.err \ test/okay/topt344.out test/okay/topt345.err \ test/okay/topt345.out test/okay/topt346.err \ test/okay/topt346.out test/okay/topt347.err \ test/okay/topt347.out test/okay/topt348.err \ test/okay/topt348.out test/okay/topt349.err \ test/okay/topt349.out test/okay/topt350.err \ test/okay/topt350.out test/okay/topt351.err \ test/okay/topt351.out test/okay/topt352.err \ test/okay/topt352.out test/okay/topt353.err \ test/okay/topt353.out test/okay/topt354.err \ test/okay/topt354.out test/okay/topt355.err \ test/okay/topt355.out test/okay/topt356.err \ test/okay/topt356.out test/okay/topt357.err \ test/okay/topt357.out test/okay/topt358.err \ test/okay/topt358.out test/okay/topt359.err \ test/okay/topt359.out test/okay/topt360.err \ test/okay/topt360.out test/okay/topt361.err \ test/okay/topt361.out test/okay/topt362.err \ test/okay/topt362.out test/okay/topt363.err \ test/okay/topt363.out test/okay/topt364.err \ test/okay/topt364.out test/okay/topt365.err \ test/okay/topt365.out test/okay/topt366.err \ test/okay/topt366.out test/okay/topt367.err \ test/okay/topt367.out test/okay/topt368.err \ test/okay/topt368.out test/okay/topt369.err \ test/okay/topt369.out test/okay/topt370.err \ test/okay/topt370.out test/okay/topt371.err \ test/okay/topt371.out test/okay/topt372.err \ test/okay/topt372.out test/okay/tstctype.out test/romtol.in \ test/testbib1.bib test/testbib1.opt test/testbib2.bib \ test/testbib2.opt test/testbib3.bib test/testbib3.opt \ test/testbib4.bib test/testbib4.opt test/testbib5.bib \ test/testbib5.opt test/testbib6.bib test/testbib6.opt \ test/testbib7.bib test/testbib7.opt test/testbib8.bib \ test/testbib8.opt test/testcodn.bib test/testcodn.opt \ test/testisxn.bib test/testisxn.opt test/testltx1.bin \ test/testltx1.ltx test/testltx1.opt test/testopt1.bib \ test/testopt1.opt test/testopt2.bib test/testopt2.opt \ test/testopt3.bib test/testopt3.opt test/testopt4.bib \ test/testopt4.opt test/testopt5.bib test/testopt5.opt \ test/testopt6.bib test/testopt6.opt test/testopt7.bib \ test/testopt7.opt test/testopt8.bib test/testopt8.opt \ test/testopt9.bib test/testopt9.opt test/testopta.bib \ test/testopta.opt test/testoptb.bib test/testoptb.opt \ test/testoptc.bib test/testoptc.opt test/testoptd.bib \ test/testoptd.opt test/testopte.bib test/testopte.opt \ test/testoptf.bib test/testoptf.opt test/testoptg.bib \ test/testoptg.opt test/testopth.bib test/testopth.opt \ test/testopti.bib test/testopti.opt test/testoptj.bib \ test/testoptj.opt test/testoptk.bib test/testoptk.opt \ test/testoptl.bib test/testoptl.opt test/testoptm.bib \ test/testoptm.opt test/testoptn.bib test/testoptn.opt \ test/testopto.bib test/testopto.opt test/testoptp.bib \ test/testoptp.opt test/testoptq.bib test/testoptq.opt \ test/testoptr.bib test/testoptr.opt test/testopts.bib \ test/testopts.opt test/testoptt.bib test/testoptt.opt \ test/testoptu.bib test/testoptu.opt test/testoptv.bib \ test/testoptv.opt test/testoptw.bib test/testoptw.opt \ test/testoptx.in test/testoptx.opt test/testscr1.bib \ test/testscr1.opt test/testscr2.bib test/testscr2.opt \ test/testscr3.bib test/testscr3.opt test/testscr4.bib \ test/testscr4.opt test/topt101.bib test/topt101.opt \ test/topt102.bib test/topt102.opt test/topt103.bib \ test/topt103.opt test/topt104.bib test/topt104.opt \ test/topt105.bib test/topt105.opt test/topt106.bib \ test/topt106.opt test/topt107.bib test/topt107.opt \ test/topt108.bib test/topt108.opt test/topt109.bib \ test/topt109.opt test/topt110.bib test/topt110.opt \ test/topt111.bib test/topt111.opt test/topt112.bib \ test/topt112.opt test/topt113.bib test/topt113.opt \ test/topt114.bib test/topt114.opt test/topt115.bib \ test/topt115.opt test/topt116.bib test/topt116.opt \ test/topt117.bib test/topt117.opt test/topt118.bib \ test/topt118.opt test/topt119.bib test/topt119.opt \ test/topt120.bib test/topt120.opt test/topt121.bib \ test/topt121.opt test/topt122.bib test/topt122.opt \ test/topt123.bib test/topt123.opt test/topt124.bib \ test/topt124.opt test/topt125.bib test/topt125.opt \ test/topt126.bib test/topt126.opt test/topt127.bib \ test/topt127.opt test/topt128.bib test/topt128.opt \ test/topt129.bib test/topt129.opt test/topt130.bib \ test/topt130.opt test/topt131.bib test/topt131.opt \ test/topt132.bib test/topt132.opt test/topt133.bib \ test/topt133.opt test/topt134.bib test/topt134.opt \ test/topt135.bib test/topt135.opt test/topt136.bib \ test/topt136.opt test/topt137.bib test/topt137.opt \ test/topt138.bib test/topt138.opt test/topt139.bib \ test/topt139.opt test/topt140.bib test/topt140.opt \ test/topt141.bib test/topt141.opt test/topt142.bib \ test/topt142.opt test/topt143.bib test/topt143.opt \ test/topt144.bib test/topt144.opt test/topt145.bib \ test/topt145.opt test/topt146.bib test/topt146.opt \ test/topt147.bib test/topt147.opt test/topt148.bib \ test/topt148.opt test/topt149.bib test/topt149.opt \ test/topt150.bib test/topt150.opt test/topt151.bib \ test/topt151.opt test/topt152.bib test/topt152.opt \ test/topt153.bib test/topt153.opt test/topt154.bib \ test/topt154.opt test/topt155.bib test/topt155.opt \ test/topt156.bib test/topt156.opt test/topt157.bib \ test/topt157.opt test/topt158.bib test/topt158.opt \ test/topt159.bib test/topt159.opt test/topt160.bib \ test/topt160.opt test/topt161.bib test/topt161.opt \ test/topt162.bib test/topt162.opt test/topt163.bib \ test/topt163.opt test/topt164.bib test/topt164.opt \ test/topt165.bib test/topt165.opt test/topt166.bib \ test/topt166.opt test/topt167.bib test/topt167.opt \ test/topt168.bib test/topt168.opt test/topt169.bib \ test/topt169.opt test/topt170.bib test/topt170.opt \ test/topt171.bib test/topt171.opt test/topt301.bib \ test/topt301.opt test/topt302.bib test/topt302.opt \ test/topt303.bib test/topt303.opt test/topt304.bib \ test/topt304.opt test/topt305.bib test/topt305.opt \ test/topt306.bib test/topt306.opt test/topt307.bib \ test/topt307.opt test/topt308.bib test/topt308.opt \ test/topt309.bib test/topt309.opt test/topt310.bib \ test/topt310.opt test/topt311.bib test/topt311.opt \ test/topt312.bib test/topt312.opt test/topt313.bib \ test/topt313.opt test/topt314.bib test/topt314.opt \ test/topt315.bib test/topt315.opt test/topt316.bib \ test/topt316.opt test/topt317.bib test/topt317.opt \ test/topt318.bib test/topt318.opt test/topt319.bib \ test/topt319.opt test/topt320.bib test/topt320.opt \ test/topt321.bib test/topt321.opt test/topt322.bib \ test/topt322.opt test/topt323.bib test/topt323.opt \ test/topt324.bib test/topt324.opt test/topt325.bib \ test/topt325.opt test/topt326.bib test/topt326.opt \ test/topt327.bib test/topt327.opt test/topt328.bib \ test/topt328.opt test/topt329.bib test/topt329.opt \ test/topt330.bib test/topt330.opt test/topt331.bib \ test/topt331.opt test/topt332.bib test/topt332.opt \ test/topt333.bib test/topt333.opt test/topt334.bib \ test/topt334.opt test/topt335.bib test/topt335.opt \ test/topt336.bib test/topt336.opt test/topt337.bib \ test/topt337.opt test/topt338.bib test/topt338.opt \ test/topt339.bib test/topt339.opt test/topt340.bib \ test/topt340.opt test/topt341.bib test/topt341.opt \ test/topt342.bib test/topt342.opt test/topt343.bib \ test/topt343.opt test/topt344.bib test/topt344.opt \ test/topt345.bib test/topt345.opt test/topt346.bib \ test/topt346.opt test/topt347.bib test/topt347.opt \ test/topt348.bib test/topt348.opt test/topt349.bib \ test/topt349.opt test/topt350.bib test/topt350.opt \ test/topt351.bib test/topt351.opt test/topt352.bib \ test/topt352.opt test/topt353.bib test/topt353.opt \ test/topt354.bib test/topt354.opt test/topt355.bib \ test/topt355.opt test/topt356.bib test/topt356.opt \ test/topt357.bib test/topt357.opt test/topt358.bib \ test/topt358.opt test/topt359.bib test/topt359.opt \ test/topt360.bib test/topt360.opt test/topt361.bib \ test/topt361.opt test/topt362.bib test/topt362.opt \ test/topt363.bib test/topt363.opt test/topt364.bib \ test/topt364.opt test/topt365.bib test/topt365.opt \ test/topt366.bib test/topt366.opt test/topt367.bib \ test/topt367.opt test/topt368.bib test/topt368.opt \ test/topt369.bib test/topt369.opt test/topt370.bib \ test/topt370.opt test/topt371.bib test/topt371.opt \ test/topt372.bib test/topt372.opt FILES-VMS = vms/config.h vms/alpha/bibclean.exe vms/alpha/recomp.com \ vms/alpha/vmsclean.com vms/alpha/vmsmake.com \ vms/alpha/vmstest.com vms/vax/README vms/vax/bibclean.exe \ vms/vax/bibclean.obj vms/vax/chek.obj vms/vax/config.h \ vms/vax/do.obj vms/vax/fix.obj vms/vax/fndfil.obj \ vms/vax/getoneheader.com vms/vax/getvmsheaders.com \ vms/vax/isbn.obj vms/vax/keybrd.obj vms/vax/match.obj \ vms/vax/option.obj vms/vax/recomp.com vms/vax/romtol.obj \ vms/vax/strist.obj vms/vax/vaxvms.obj vms/vax/vmsclean.com \ vms/vax/vmsmake.com vms/vax/vmstest.com vms/vax/vmswild.obj FILES-WINDOWS = win32/bibclean.exe FIXBLG = ${SED} -e "/^You've used/,/^write/d" -e "/^This is BibTeX/,/^Database file/d" GREP = @GREP@ GZIP = @GZIP@ ### Some systems define HOST or HOSTNAME, but others don't, so we ### generate it at compile time with the hostname utility. HOST = `hostname` ### This program is freely available at ftp://ftp.math.utah.edu/pub/sgml/sp-* HTMLNCHECK = @HTMLNCHECK@ ### This program is freely available at ftp://ftp.math.utah.edu/pub/sgml/htmlpty-x.y.* HTMLPRETTY = @HTMLPRETTY@ JAR = @JAR@ LATEX = @LATEX@ LN = @LN@ LS = @LS@ MAN2HTML = @MAN2HTML@ MATCH = match${EXEEXT} MKDIR = @MKDIR@ -p MV = @MV@ NROFF = @NROFF@ PROGRAMS = ${BIBCLEAN} ${BIBISBN} ${MATCH} ${ROMTOL} ${TSTCTYPE} RM = @RM@ -f ROMTOL = romtol${EXEEXT} SED = @SED@ SHELL = @SHELL@ SRC = bibclean.c chek.c do.c fix.c fndfil.c isbn.c \ keybrd.c match.c option.c romtol.c strist.c strtol.c STRIP = @STRIP@ ### Only the subdirectories with Makefiles are listed here SUBDIRS = doc TAR = @TAR@ TAGS-FILES = bibclean.c bibclean.h ch.h chek.c config.h custom.h \ delete.h do.c fix.c fndfil.c isbn.c isbn.h keybrd.c \ keybrd.h match.c match.h option.c pattern.h romtol.c \ strist.c strtol.c token.h toklst.h vaxvms.c vmswild.c \ xctype.h xerrno.h xlimits.h xpwd.h xstat.h xstdbool.h \ xstdio.h xstdlib.h xstring.h xtypes.h xunistd.h yesorno.h TEST = @TEST@ TESTBIBCLEAN = ${VM} ../${BIBCLEAN} ### For testing purposes, make sure we always have the same ### initialization files: TESTBIBCLEANFLAGS = -init-file ../bibclean.ini \ -ISBN-file ../bibclean.isbn \ -keyword-file ../bibclean.key TESTFLAGS = ${DEFS} ${CPPFLAGS} ${CFLAGS} -DTEST TESTMATCH = ${VM} ../${MATCH} TESTROMTOL = ${VM} ../${ROMTOL} TESTTSTCTYPE = ${VM} ../${TSTCTYPE} TMPDIR = /tmp TMPDIR = /var/tmp TOUCH = @TOUCH@ TR = @TR@ TSTCTYPE = tstctype${EXEEXT} UNZIP = @UNZIP@ VERSION = `${AWK} '/^[ \t]*version *= *"[0-9.]+", *$$/ \ { gsub(/[^0-9.]/,"",$$3); print $$3 }' bibclean.c` VERSION = @PACKAGE_VERSION@ WINE = @WINE@ ### Use the make-time option ### ### XDEFS="-Dname1=value1 -Dname2=value2 ..." ### ### to alter table sizes in bibclean from their defaults of: ### ### -DMAXPATHLEN= # longest "/path/to/some/file.ext" or "c:\path\to\some\file.ext" ### -DMAX_BUFFER=8192 # maximum length of output buffer (does NOT limit lengths of input lines) ### -DMAX_FIELD_LENGTH=12 # maximum field name length ### -DMAX_ISBN_RANGE=2560 # maximum number of ISBN ranges ### -DMAX_KEYWORD=200 # maximum number of field names subject to lettercase change ### -DMAX_LINE=10240 # maximum line length in initialization file ### -DMAX_PATTERN_NAMES=100 # maximum different pattern names ### -DMAX_TOKEN=32760 # maximum field value length ### -DMAX_WIDTH=72 # maximum output line length ### -DSTD_MAX_TOKEN=1000 # original BibTeX maximum field value length ### -DSTD_MAX_TOKEN=5000 # for TeX Live 2003--2011 ### -DSTD_MAX_TOKEN=20000 # for TeX Live 2012--2019 ### ### Possible local customizations: ### ### -DDOI_RAW_VALID # accept DOI = "10.xxxx" values ### -DBIBCLEAN_INI=\"BIBCLEANINI\" # environment variable name ### -DBIBCLEAN_ISBN=\"BIBCLEANISBN\" # environment variable name ### -DBIBCLEAN_KEY=\"BIBCLEANKEY\" # environment variable name ### -DINITDIR='"${initdir}"' ${XDEFS} @DEFS@ XDEFS = XSPLINTFLAGS = ZIP = @ZIP@ ZOO = @ZOO@ #======================================================================= # Syntax and security checker settings ANTIC = @ANTIC@ ANTICFLAGS = CPPCHECK = @CPPCHECK@ CPPCHECKFLAGS = -I. --enable=all --force --verbose FLAWFINDER = @FLAWFINDER@ FLAWFINDERFLAGS = ITS4 = @ITS4@ ITS4FLAGS = LINT = @LINT@ LINTFLAGS = -I. -b -c -h -x LINTFLAGS = -I. -errchk -h -x RATS = @RATS@ RATSFLAGS = SPLINT = @SPLINT@ SPLINTFLAGS = -I. \ -booltype _Bool \ -booltrue __true \ -boolfalse __false \ -bounds \ -initallelements \ +posixlib \ ${XSPLINTFLAGS} UNO = @UNO@ UNOFLAGS = -I. -w -D_Bool=int ## Set VM=wine for testing Windows build with CC=i686-pc-mingw32-gcc VM = wine VM = @VM@ ### ==================================================================== .SUFFIXES: .SUFFIXES: .o .i .c .bib-new .bib-old .bib .bib.bib-new: -${TESTBIBCLEAN} ${TESTBIBCLEANFLAGS} ${BIBCLEANFLAGS} <$< >$@ .c.i: ${CC} -E -I. -I${srcdir} ${DEFS} ${CPPFLAGS} ${CFLAGS} $< 2>&1 | \ grep -v '^[ ]*$$' >$@ .c.o: ${CC} -c -I. -I${srcdir} ${DEFS} ${CPPFLAGS} ${CFLAGS} $< ### ==================================================================== all: ${PROGRAMS} BIBCLEAN-OBJS = bibclean.o chek.o do.o fix.o fndfil.o isbn.o \ keybrd.o match.o option.o romtol.o strist.o \ ${LIBOBJS} ${BIBCLEAN}: ${BIBCLEAN-OBJS} ${CC} -o $@ ${CFLAGS} ${BIBCLEAN-OBJS} ${LDFLAGS} ${LIBS} bibclean.dvi: bibclean.texi cd ${srcdir}; texi2dvi bibclean.texi ### This target converts the option descriptions from the manual pages ### to C code for inclusion in bibclean.c. The first awk command ### augments the bibclean.man file in a pipe with some small changes ### after the .TH line (which sets page dimensions) to get longer ### unhyphenated ragged-right lines without page headers, and reduces ### the option description indentation. ### ### Here are the magic nroff incantations: ### ### .pl 100i set page length to 100in ### .nr LL 7.2i set LL register (page width) to 7.2in ### .nh no hyphenation ### .na no right-adjusting ### ### That output feeds into nroff for formatting, col for removal of ### underlining and escape sequences, expand for tab removal, sed to ### backslash all quotes, and a final awk step to select the lines ### between OPTIONS and ERROR headers for conversion to C code. bibclean.h: bibclean.man -test -f $@ && ${CHMOD} u+w $@ -${RM} $@ echo '/* WARNING: Do NOT edit this file. It was created automatically' \ >$@ \ echo ' with the command "make bibclean.h" by '$$USER@`hostname` \ >>$@ \ echo ' in '$$PWD' on '`date`' */' >>$@ echo >>$@ ${AWK} '{ if ($$0 ~ /^.TH/) \ printf("%s\n.pl 100i\n.nr LL 7.2i\n.nh\n.na",$$0); \ else if ($$0 ~ /^.TP .*remove-OPT-prefixes.*/) \ print ".TP 1in"; \ else \ print $$0}' < bibclean.man | \ ${NROFF} -man | col -b | expand | ${SED} -e 's/"/\\"/g' | \ ${SED} -e 's/\\n/|n/g' -e 's/\\"/|"/g' \ -e 's/\\/\\\\/g' -e 's/|n/\\n/g' -e 's/|"/\\"/g' | \ ${AWK} '/^OPTION/,/^ERROR/ {if ($$0 !~ /^[A-Z]/) \ printf("\t\"%s\\n\",\n",substr($$0,6))}' >>$@ echo ' (const char*)NULL,' >>$@ ${CHMOD} a-w $@ ### VAX VMS help file format from bibclean.txt bibclean.hlp: bibclean.txt rofvms.awk ${AWK} -f rofvms.awk bibclean.hlp bibclean.html: bibclean.man -${CHMOD} u+w $@ ${MAN2HTML} $< ${HTMLPRETTY} bibclean.html | ${CHECKSUM} >$@.tmp ${MV} $@.tmp $@ ${CHMOD} a-w $@ ${HTMLNCHECK} $@ bibclean.info: bibclean.texi cd ${srcdir}; makeinfo bibclean.texi bibclean.i: bibclean.c ch.h config.h custom.h delete.h isbn.h keybrd.h \ match.h pattern.h token.h toklst.h typedefs.h xctype.h \ xlimits.h xstdbool.h xstdio.h xstdlib.h xstring.h xtypes.h \ xunistd.h yesorno.h Makefile bibclean.jar: subdist ${DIST-FILES} -${RM} bibclean.jar bibclean.jar-lst ${JAR} cf bibclean.jar ${DIST-FILES} -${MKDIR} bibclean-${VERSION} cd bibclean-${VERSION}; ${JAR} xf ../bibclean.jar ${JAR} cf bibclean-${VERSION}.jar bibclean-${VERSION} -${RM} -rf bibclean-${VERSION} -${RM} bibclean.jar ${LN} bibclean-${VERSION}.jar bibclean.jar || \ ${CP} ${CPFLAGS} bibclean-${VERSION}.jar bibclean.jar bibclean.o: bibclean.c ch.h config.h custom.h delete.h isbn.h keybrd.h \ match.h pattern.h token.h toklst.h typedefs.h xctype.h \ xlimits.h xstdbool.h xstdio.h xstdlib.h xstring.h xtypes.h \ xunistd.h yesorno.h bibclean.pdf: bibclean.ps ${DISTILL} bibclean.ps bibclean.ps: bibclean.man ${DITROFF} -Tps -man $? >$@ bibclean.tar: subdist ${DIST-FILES} -${RM} bibclean.tar bibclean.tar-lst ${TAR} chf bibclean.tar ${DIST-FILES} -${MKDIR} bibclean-${VERSION} cd bibclean-${VERSION}; ${TAR} xf ../bibclean.tar ${TAR} cf bibclean-${VERSION}.tar bibclean-${VERSION} -${RM} -r bibclean-${VERSION} -${RM} bibclean.tar ${LN} bibclean-${VERSION}.tar bibclean.tar || \ ${CP} ${CPFLAGS} bibclean-${VERSION}.tar bibclean.tar bibclean.txt: bibclean.man ${NROFF} -man bibclean.man | col -b | expand >$@ bibclean.zip: subdist ${DIST-FILES} -${RM} bibclean*.zip -${RM} bibclean*.zip-lst ${ZIP} bibclean-${VERSION}.zip ${DIST-FILES} ${UNZIP} -v bibclean-${VERSION}.zip >bibclean-${VERSION}.zip-lst ${LN} bibclean-${VERSION}.zip bibclean.zip || \ ${CP} ${CPFLAGS} bibclean-${VERSION}.zip bibclean.zip bibclean.zoo: subdist ${DIST-FILES} -${RM} bibclean*.zoo -${RM} bibclean*.zoo-lst ${ZOO} a bibclean-${VERSION}.zoo ${DIST-FILES} ${ZOO} v bibclean-${VERSION}.zoo >bibclean-${VERSION}.zoo-lst ${LN} bibclean-${VERSION}.zoo bibclean.zoo || \ ${CP} ${CPFLAGS} bibclean-${VERSION}.zoo bibclean.zoo ${BIBISBN}: isbn.c ${CC} -DTEST -I. ${CFLAGS} isbn.c ${LDFLAGS} ${LIBS} -o $@ check: check-setup check-ctype check-match check-romtol check-bibisbn check-bibtex \ check-latex check-scribe check-antic: -${TEST} -n "${ANTIC}" && for f in ${SRC} ; do ${ANTIC} ${ANTICFLAGS} $$f ; done check-bibisbn: ${BIBISBN} @echo "==================== begin ${BIBISBN} test ====================" ; \ cd test ; \ nfail=0 ; \ npass=0 ; \ ntest=0 ; \ ntotal=`echo ${CHECK-BIBISBN} | wc -w` ; \ ntotal=`expr $$ntotal + $$ntotal` ; \ echo ; \ echo "These checks should produce no output other than their numbers and names," ; \ echo "followed by a test summary: no failures are expected anywhere." ; \ echo ; \ for f in ${CHECK-BIBISBN} ; \ do \ ntest=`${EXPR} $$ntest + 2` ; \ printf "[%2d / %d] %s " $$ntest $$ntotal $$f ; \ test -f $$f.in && ../${BIBISBN} < $$f.in > $$f.out 2> $$f.err ; \ test -f $$f.opt && ../${BIBISBN} `cat $$f.opt` < /dev/null > $$f.out 2> $$f.err ; \ ${CMP} -s okay/$$f.out $$f.out && ${RM} $$f.out ; \ ${CMP} -s okay/$$f.err $$f.err && ${RM} $$f.err ; \ test -f $$f.out && printf " FAIL " && nfail=`expr $$nfail + 1` ; \ test ! -f $$f.out && printf "PASS " && npass=`expr $$npass + 1` ; \ test -f $$f.err && printf " FAIL" && nfail=`expr $$nfail + 1` ; \ test ! -f $$f.err && printf "PASS" && npass=`expr $$npass + 1` ; \ echo ; \ done ; \ echo ; \ echo PASS: $$npass of $$ntest tests ; \ test $$nfail -ne 0 && echo FAIL: $$nfail of $$ntest tests ; \ echo ; \ test $$nfail -eq 0 && echo ALL TESTS PASSED! ; \ echo ; \ echo "===================== end ${BIBISBN} test =====================" ; \ echo check-bibtex: ${BIBCLEAN} @echo @echo "===================== begin BibTeX test ======================" @echo @echo This test takes from 25 to 250 seconds on current and vintage machines. @echo Test times that are much longer indicate a SERIOUS problem. @echo @-cd test ; \ echo ${CHECK-BIBTEX} | wc -w > total.dat ; \ echo "These checks should produce no output other than their numbers and names," ; \ echo "followed by a test summary: no failures are expected anywhere." ; \ echo ; \ nfail=0 ; \ npass=0 ; \ ntest=0 ; \ ntotal=`echo ${CHECK-BIBTEX} | wc -w` ; \ for b in ${CHECK-BIBTEX} ; \ do \ ntest=`${EXPR} $$ntest + 1` ; \ bibfile=$$b.bib ; \ optfile=$$b.opt ; \ options=`${CAT} $$optfile` ; \ printf "[%2d / %d] " $$ntest $$ntotal ; \ echo $$b `echo $$options | ${CUT} -c -70 ` ; \ ${TESTBIBCLEAN} ${TESTBIBCLEANFLAGS} ${BIBCLEANFLAGS} `${CAT} $$optfile` $$bibfile >$$b.out 2> $$b.ert ; \ ${SED} -e ` printf 's/\015$$//' ` $$b.ert > ${TMPDIR}/$$b.ert.$$$$ ; \ ${MV} ${TMPDIR}/$$b.ert.$$$$ $$b.ert ; \ ${SED} -e ` printf 's/\015$$//' ` $$b.out > ${TMPDIR}/$$b.out.$$$$ ; \ ${MV} ${TMPDIR}/$$b.out.$$$$ $$b.out ; \ ${GREP} -v '^Compiled by' < $$b.ert >$$b.err ; \ ${RM} $$b.ert ; \ ${DIFF} okay/$$b.err $$b.err ; \ ${CMP} -s okay/$$b.err $$b.err 2>/dev/null && ${RM} $$b.err ; \ ${DIFF} okay/$$b.out $$b.out ; \ ${CMP} -s okay/$$b.out $$b.out 2>/dev/null && ${RM} $$b.out ; \ if test -f $$b.err -o -f $$b.out ; \ then \ nfail=`${EXPR} $$nfail + 1` ; \ else \ npass=`${EXPR} $$npass + 1` ; \ fi ; \ done ; \ echo ; \ echo PASS: $$npass of $$ntest tests ; \ test $$nfail -ne 0 && echo FAIL: $$nfail of $$ntest tests ; \ echo ; \ test $$nfail -eq 0 && echo ALL TESTS PASSED! ; \ echo ; \ ${RM} fail.dat pass.dat total.dat @echo @echo "====================== end BibTeX test ========================" @echo check-cppcheck: -${TEST} -n "${CPPCHECK}" && for f in ${SRC} ; do ${CPPCHECK} ${CPPCHECKFLAGS} $$f ; done check-ctype: ${TSTCTYPE} @echo @echo "===================== begin ctype test ======================" @echo -@cd test ; \ echo "NB: A failure of this test is SERIOUS. It indicates that the C library" ; \ echo " isxxx() and toxxx() functions are behaving unconventionally," ; \ echo "and the result will likely be later failure of the BibTeX testbib1 test." ; \ echo "Among systems tested for this release, OpenBSD 3.2 is known to fail here." ; \ echo ; \ echo "The following checks should produce no output other than their names." ; \ echo ; \ echo tstctype ; \ LANG=C ${TESTTSTCTYPE} | ${SED} -e ` printf 's/\015$$//' ` > tstctype.out ; \ ${DIFF} okay/tstctype.out tstctype.out ; \ ${CMP} -s okay/tstctype.out tstctype.out 2>/dev/null && ${RM} tstctype.out @echo @echo "====================== end ctype test ========================" @echo check-flawfinder: -${TEST} -n "${FLAWFINDER}" && for f in ${SRC} ; do ${FLAWFINDER} ${FLAWFINDERFLAGS} $$f ; done check-its4: -${TEST} -n "${ITS4}" && for f in ${SRC} ; do ${ITS4} ${ITS4FLAGS} $$f ; done check-latex: @echo @echo "===================== begin LaTeX test =======================" @echo @if test \( "xx${LATEX}" = "xx" \) -o \( "xx${BIBTEX}" = "xx" \) ; \ then \ echo "$@ skipped: missing LaTeX and/or BibTeX" ; \ else \ cd test ; \ echo "The following checks should produce no output other than their names." ; \ echo ; \ for f in ${CHECK-LATEX} ; \ do \ b=`basename $$f .ltx` ; \ optfile=$$b.opt ; \ echo $$b `${CAT} $$optfile` ; \ ${TESTBIBCLEAN} ${TESTBIBCLEANFLAGS} ${BIBCLEANFLAGS} \ `${CAT} $$optfile` $$b.bin > $$b.out 2> $$b.err ; \ ${SED} -e ` printf 's/\015$$//' ` $$b.err > ${TMPDIR}/$$b.err.$$$$ ; \ ${MV} ${TMPDIR}/$$b.err.$$$$ $$b.err ; \ ${SED} -e ` printf 's/\015$$//' ` $$b.out > ${TMPDIR}/$$b.out.$$$$ ; \ ${MV} ${TMPDIR}/$$b.out.$$$$ $$b.out ; \ ${CP} ${CPFLAGS} $$b.out $$b.bib ; \ ${LATEX} $$b.ltx >/dev/null 2>/dev/null ; \ ${BIBTEX} $$b 1>/dev/null ; \ ${TEST} -f $$b.blg && ${FIXBLG} $$b.blg > $$b.tmp && ${MV} $$b.tmp $$b.blg ; \ ${RM} $$b.aux $$b.bib $$b.log ; \ ${DIFF} okay/$$b.bbl $$b.bbl ; \ ${CMP} -s okay/$$b.bbl $$b.bbl 2>/dev/null && ${RM} $$b.bbl ; \ ${DIFF} okay/$$b.blg $$b.blg ; \ ${CMP} -s okay/$$b.blg $$b.blg 2>/dev/null && ${RM} $$b.blg ; \ ${DIFF} okay/$$b.err $$b.err ; \ ${CMP} -s okay/$$b.err $$b.err 2>/dev/null && ${RM} $$b.err ; \ ${DIFF} okay/$$b.out $$b.out ; \ ${CMP} -s okay/$$b.out $$b.out 2>/dev/null && ${RM} $$b.out ; \ done ; \ fi @echo @echo "====================== end LaTeX test ========================" @echo check-lint: -${TEST} -n "${LINT}" && for f in ${SRC} ; do ${LINT} ${LINTFLAGS} $$f ; done check-match: ${MATCH} @echo @echo "===================== begin match test =======================" @echo @cd test ; \ echo "The following checks should produce no output other than their names." ; \ echo ; \ for f in ${CHECK-MATCH} ; \ do \ b=`basename $$f .in` ; \ echo $$b ; \ ${TESTMATCH} < $$f >$$b.out 2>$$b.err ; \ ${SED} -e ` printf 's/\015$$//' ` $$b.err > ${TMPDIR}/$$b.err.$$$$ ; \ ${MV} ${TMPDIR}/$$b.err.$$$$ $$b.err ; \ ${SED} -e ` printf 's/\015$$//' ` $$b.out > ${TMPDIR}/$$b.out.$$$$ ; \ ${MV} ${TMPDIR}/$$b.out.$$$$ $$b.out ; \ ${DIFF} okay/$$b.err $$b.err ; \ ${CMP} -s okay/$$b.err $$b.err 2>/dev/null && ${RM} $$b.err ; \ ${DIFF} okay/$$b.out $$b.out ; \ ${CMP} -s okay/$$b.out $$b.out 2>/dev/null && ${RM} $$b.out ; \ done @echo @echo "====================== end match test ========================" @echo check-rats: -${TEST} -n "${RATS}" && for f in ${SRC} ; do ${RATS} ${RATSFLAGS} $$f ; done check-romtol: ${ROMTOL} @echo @echo "===================== begin romtol test ======================" @echo @cd test ; \ echo "The following checks should produce no output other than their names." ; \ echo ; \ for f in ${CHECK-ROMTOL} ; \ do \ b=`basename $$f .in` ; \ echo $$b ; \ ${TESTROMTOL} < $$f >$$b.out 2>$$b.err ; \ ${SED} -e ` printf 's/\015$$//' ` $$b.err > ${TMPDIR}/$$b.err.$$$$ ; \ ${MV} ${TMPDIR}/$$b.err.$$$$ $$b.err ; \ ${SED} -e ` printf 's/\015$$//' ` $$b.out > ${TMPDIR}/$$b.out.$$$$ ; \ ${MV} ${TMPDIR}/$$b.out.$$$$ $$b.out ; \ ${DIFF} okay/$$b.err $$b.err ; \ ${CMP} -s okay/$$b.err $$b.err 2>/dev/null && ${RM} $$b.err ; \ ${DIFF} okay/$$b.out $$b.out ; \ ${CMP} -s okay/$$b.out $$b.out 2>/dev/null && ${RM} $$b.out ; \ done @echo @echo "====================== end romtol test =======================" @echo ### The peculiar step using tr to prepare the .aux files is needed to ### overcome inconsistencies in the handling of backslashes by the IBM ### RS/6000 shell. The documented behavior in the SunOS 4.1.1 manual ### pages is (emphasis mine): ### All characters enclosed between a pair of single quote marks ### (''), except a single quote, are quoted by the shell. BACKSLASH ### HAS NO SPECIAL MEANING INSIDE A PAIR OF SINGLE QUOTES. A single ### quote may be quoted inside a pair of double quote marks (for ### example, "'"). ### On SunOS, HP UX, IBM 3090 AIX, NeXT Mach, and SGI IRIX, the shells ### csh, sh, bash, and ksh agree with this. However, on IBM RS/6000 ### AIX 3.2, backslashes in single quotes are untouched by csh, but ### expanded by sh and ksh. This is clearly a bug, because the IBM AIX ### INFO system hypertext node on bsh/rsh says: ### All characters, except the enclosing single quotation marks, are ### taken literally, with any special meaning removed. ### check-scribe: ${BIBCLEAN} @echo @echo "===================== begin Scribe test ======================" @echo @if test "xx${BIBTEX}" = "xx" ; \ then \ echo "$@ skipped: missing BibTeX" ; \ else \ cd test ; \ echo "The following checks should produce no output other than their names." ; \ echo ; \ for f in ${CHECK-SCRIBE} ; \ do \ b=`basename $$f .bib` ; \ optfile=$$b.opt ; \ echo $$b `${CAT} $$optfile` ; \ ${TESTBIBCLEAN} ${TESTBIBCLEANFLAGS} ${BIBCLEANFLAGS} `${CAT} $$optfile` $$f >$$b.out 2>$$b.err ; \ ${SED} -e ` printf 's/\015$$//' ` $$b.err > ${TMPDIR}/$$b.err.$$$$ ; \ ${MV} ${TMPDIR}/$$b.err.$$$$ $$b.err ; \ ${SED} -e ` printf 's/\015$$//' ` $$b.out > ${TMPDIR}/$$b.out.$$$$ ; \ ${MV} ${TMPDIR}/$$b.out.$$$$ $$b.out ; \ echo 'Bbibstyle{plain}NBcitation{*}NBbibdata{'$$b'}' | \ ${TR} BN '\134\012' >$$b.aux ; \ ${BIBTEX} $$b 1>/dev/null ; \ ${TEST} -f $$b.blg && ${FIXBLG} $$b.blg > $$b.tmp && ${MV} $$b.tmp $$b.blg ; \ ${RM} $$b.aux ; \ ${DIFF} okay/$$b.bbl $$b.bbl ; \ ${CMP} -s okay/$$b.bbl $$b.bbl 2>/dev/null && ${RM} $$b.bbl ; \ ${DIFF} okay/$$b.blg $$b.blg ; \ ${CMP} -s okay/$$b.blg $$b.blg 2>/dev/null && ${RM} $$b.blg ; \ ${DIFF} okay/$$b.err $$b.err ; \ ${CMP} -s okay/$$b.err $$b.err 2>/dev/null && ${RM} $$b.err ; \ ${DIFF} okay/$$b.out $$b.out ; \ ${CMP} -s okay/$$b.out $$b.out 2>/dev/null && ${RM} $$b.out ; \ done ; \ fi @echo @echo "====================== end Scribe test ========================" @echo check-setup: ${BIBCLEAN} ${MATCH} ${ROMTOL} ${TSTCTYPE} check-splint: -${TEST} -n "${SPLINT}" && for f in ${SRC} ; do ${SPLINT} ${SPLINTFLAGS} $$f ; done check-syntax: check-antic check-cppcheck check-flawfinder check-its4 \ check-lint check-rats check-splint check-uno check-uno: -${TEST} -n "${UNO}" && ${UNO} ${UNOFLAGS} ${SRC} check-version: Makefile @echo "Version number is ""'"${VERSION}"'" clean: clean-test clean-dist -${RM} *.aux -${RM} *.bbl -${RM} *.blg -${RM} *.dvi -${RM} *.err -${RM} *.i -${RM} *.log -${RM} *.o -${RM} *~ -${RM} \#* -${RM} configure.tmp -${RM} core test/core -${RM} ${MATCH} match.lst -${RM} ${ROMTOL} romtol.lst -${RM} testcodn.bib -${RM} testisxn.bib -${RM} testscr2.bi2 testscr2.er2 -${RM} ${TSTCTYPE} # [08-Nov-1999] Suppress subdir make to preserve distribution files # -for d in ${SUBDIRS} ; do (cd $$d ; ${MAKE} clean ) ; done clean-dist: -${RM} bibclean.jar bibclean-?.??.jar -${RM} bibclean.jar-lst -${RM} bibclean.tar bibclean-?.??.tar -${RM} bibclean.tar-lst -${RM} bibclean-${VERSION}.tar -${RM} bibclean.zip bibclean-?.??.zip -${RM} bibclean.zip-lst bibclean-?.??.zip-lst -${RM} bibclean.zoo bibclean-?.??.zoo -${RM} bibclean.zoo-lst bibclean-?.??.zoo-lst clean-test: -${RM} test/*.aux test/*.bbl test/*.blg test/*.err test/*.ert \ test/*.log test/*.out test/*.tmp clobber: clean -${RM} ${PROGRAMS} -${RM} bibclean.hlp -${RM} bibclean.ps -${RM} bibclean.txt -${RM} install.time install-ftp.time # [08-Nov-1999] Suppress subdir make to preserve distribution files # -for d in ${SUBDIRS} ; do (cd $$d ; ${MAKE} clobber ) ; done dist: bibclean.jar bibclean.tar bibclean.zip bibclean.zoo distclean: clobber -${RM} config.cache config.h config.log config.status -${RM} -r autom4te.cache -${RM} bibclean*.jar-lst bibclean*.tar-lst bibclean*.zip-lst \ bibclean*.zoo-lst # [08-Nov-1999] Suppress subdir make to preserve distribution files # -for d in ${SUBDIRS} ; do (cd $$d ; ${MAKE} distclean ) ; done -${RM} Makefile docs: bibclean.txt bibclean.hlp bibclean.html bibclean.ps bibclean.pdf chek.i: chek.c config.h custom.h match.h token.h typedefs.h xctype.h \ xstat.h xstdio.h xstring.h yesorno.h Makefile chek.o: chek.c config.h custom.h match.h token.h typedefs.h xctype.h \ xstat.h xstdio.h xstring.h yesorno.h do.i: do.c ch.h config.h custom.h delete.h keybrd.h match.h \ pattern.h token.h toklst.h typedefs.h xctype.h xstdbool.h \ xstdio.h xstdlib.h xstring.h xunistd.h yesorno.h Makefile do.o: do.c ch.h config.h custom.h delete.h keybrd.h match.h \ pattern.h token.h toklst.h typedefs.h xctype.h xstdbool.h \ xstdio.h xstdlib.h xstring.h xunistd.h yesorno.h fix.i: fix.c config.h custom.h match.h token.h typedefs.h xctype.h \ xstring.h yesorno.h Makefile fix.o: fix.c config.h custom.h match.h token.h typedefs.h xctype.h \ xstring.h yesorno.h fndfil.i: fndfil.c config.h custom.h typedefs.h xctype.h xpwd.h \ xstdbool.h xstdio.h xstdlib.h xstring.h xunistd.h Makefile fndfil.o: fndfil.c config.h custom.h typedefs.h xctype.h xpwd.h \ xstdbool.h xstdio.h xstdlib.h xstring.h xunistd.h isbn.i: isbn.c ch.h config.h custom.h isbn.h isbn.tbl xctype.h \ xstdbool.h xstdio.h xstdlib.h xstring.h yesorno.h Makefile isbn.o: isbn.c ch.h config.h custom.h isbn.h isbn.tbl xctype.h \ xstdbool.h xstdio.h xstdlib.h xstring.h yesorno.h keybrd.i: ch.h config.h custom.h xstdio.h xstring.h xunistd.h \ yesorno.h Makefile keybrd.o: keybrd.c ch.h config.h custom.h xctype.h xstdio.h xstring.h \ xunistd.h yesorno.h ### Build a test program for match() ${MATCH}: match.c romtol.o -${RM} matchx.o ${CC} -I. -I${srcdir} ${TESTFLAGS} -o matchx.o -c match.c ${CC} -I. -I${srcdir} ${TESTFLAGS} -o $@ matchx.o romtol.o ${LDFLAGS} ${LIBS} -${RM} matchx.o match.i: match.c config.h custom.h match.h xctype.h xstdbool.h \ xstdio.h xstdlib.h xstring.h yesorno.h Makefile match.o: match.c config.h custom.h match.h xctype.h xstdbool.h \ xstdio.h xstdlib.h xstring.h yesorno.h mostlyclean: clean # [08-Nov-1999] Suppress subdir make to preserve distribution files # -for d in ${SUBDIRS} ; do (cd $$d ; ${MAKE} mostlyclean ) ; done option.i: option.c bibclean.h ch.h config.h custom.h isbn.h match.h \ typedefs.h xstdbool.h xstdio.h xstdlib.h xstring.h yesorno.h \ Makefile ### When HOST, USER, __DATE__, and __TIME__ are available, ### bibclean preserves them for its version output option.o: option.c bibclean.h ch.h config.h custom.h isbn.h match.h \ typedefs.h xstdbool.h xstdio.h xstdlib.h xstring.h yesorno.h ${CC} -I. -I${srcdir} ${CFLAGS} -c -DHOST=\"${HOST}\" -DUSER=\"${USER}\" option.c ### Build a test program for romtol() ${ROMTOL}: romtol.c -${RM} romtolx.o ${CC} -I. -I${srcdir} ${TESTFLAGS} -o romtolx.o -c romtol.c ${CC} -I. -I${srcdir} ${TESTFLAGS} -o $@ romtolx.o ${LDFLAGS} ${LIBS} -${RM} romtolx.o romtol.i: romtol.c config.h custom.h xctype.h xstring.h xstdbool.h \ xstdio.h xstdlib.h Makefile romtol.o: romtol.c config.h custom.h xctype.h xstring.h xstdbool.h \ xstdio.h xstdlib.h splint: splint.log splint.log: ${SRC} *.h Makefile -${SPLINT} ${SPLINTFLAGS} ${SRC} > $@ strist.i: strist.c config.h custom.h xctype.h xstdio.h xstring.h Makefile strist.o: strist.c config.h custom.h xctype.h xstdio.h xstring.h strtol.i: strtol.c config.h custom.h xctype.h xstdbool.h xstdio.h \ xstdlib.h xstring.h Makefile strtol.o: strtol.c config.h custom.h xctype.h xstdbool.h xstdio.h \ xstdlib.h xstring.h ### Subdirectory makes needed for distribution file creation subdist: -for d in ${SUBDIRS} ; do (cd $$d ; ${MAKE} ) ; done ${TSTCTYPE}: tstctype.c ${CC} ${CFLAGS} -o $@ $? ${LDFLAGS} ${LIBS} ### ==================================================================== ### Additional targets required by GNU Coding standards Makefile: Makefile.in config.status ./config.status config.status: configure ${srcdir}/configure --srcdir=${srcdir} --no-create --config-cache configure reconfigure: configure.ac configure.sed cd ${srcdir}; ${AUTOCONF} ; ${AUTOHEADER} ### Apply needed fixup for C++ with configure ${MV} configure configure.tmp ${SED} -f configure.sed configure -${RM} configure.tmp ${CHMOD} +x configure maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." -${CHMOD} u+w bibclean.html -${RM} bibclean.html -${RM} bibclean.pdf -${RM} TAGS -${RM} configure config.hin # [08-Nov-1999] Suppress subdir make to preserve distribution files # -for d in ${SUBDIRS} ; do (cd $$d ; ${MAKE} maintainer-clean ) ; done TAGS: Makefile ${TAGS-FILES} cd ${srcdir}; ${ETAGS} ${TAGS-FILES} ### ==================================================================== install: install.time install.time: install-exe install-ini install-man ${TOUCH} install.time install-exe: uninstall-exe install-bibclean install-bibisbn install-bibclean: ${BIBCLEAN} test -d ${DESTDIR}${bindir} || ${MKDIR} ${DESTDIR}${bindir} if ${TEST} -f ${DESTDIR}${bindir}/${BIBCLEAN} ; \ then \ ${MV} ${DESTDIR}${bindir}/${BIBCLEAN} \ ${DESTDIR}${bindir}/${BIBCLEAN}.old ; \ fi -${RM} ${DESTDIR}${bindir}/bibclean-${VERSION} ${CP} ${CPFLAGS} ${BIBCLEAN} ${DESTDIR}${bindir}/${BIBCLEAN} -${STRIP} ${DESTDIR}${bindir}/${BIBCLEAN} ${LN} ${DESTDIR}${bindir}/${BIBCLEAN} ${DESTDIR}${bindir}/bibclean-${VERSION}${EXEEXT} || \ ${CP} ${CPFLAGS} ${DESTDIR}${bindir}/${BIBCLEAN} ${DESTDIR}${bindir}/bibclean-${VERSION}${EXEEXT} ${CHMOD} 775 ${DESTDIR}${bindir}/${BIBCLEAN} $(MAKE) install-bibisbn: ${BIBISBN} test -d ${DESTDIR}${bindir} || ${MKDIR} ${DESTDIR}${bindir} if ${TEST} -f ${DESTDIR}${bindir}/${BIBISBN} ; \ then \ ${MV} ${DESTDIR}${bindir}/${BIBISBN} \ ${DESTDIR}${bindir}/${BIBISBN}.old ; \ fi -${RM} ${DESTDIR}${bindir}/bibisbn-${VERSION} ${CP} ${CPFLAGS} ${BIBISBN} ${DESTDIR}${bindir}/${BIBISBN} -${STRIP} ${DESTDIR}${bindir}/${BIBISBN} ${LN} ${DESTDIR}${bindir}/${BIBISBN} ${DESTDIR}${bindir}/bibisbn-${VERSION}${EXEEXT} || \ ${CP} ${CPFLAGS} ${DESTDIR}${bindir}/${BIBISBN} ${DESTDIR}${bindir}/bibisbn-${VERSION}${EXEEXT} ${CHMOD} 775 ${DESTDIR}${bindir}/${BIBISBN} ### Although it is generally considered bad form to install ### initialization files in the same location as executable files ### (mostly because they confuse directory listings), we make an ### exception for bibclean because (a) the files are, on UNIX, `hidden' ### (by their leading dot), (b) doing so avoids the need for yet ### another hard-coded configuration directory, or else another search path, ### and (c) search paths are more flexible than fixed configuration-file ### directories. install-ini: uninstall-ini # OLD: ${CP} bibclean.ini ${DESTDIR}${bindir}/.bibcleanrc # OLD: ${CHMOD} 664 ${DESTDIR}${bindir}/.bibcleanrc # OLD: ${CP} bibclean.key ${DESTDIR}${bindir}/.bibclean.key # OLD: ${CHMOD} 664 ${DESTDIR}${bindir}/.bibclean.key # OLD: ${CP} bibclean.isbn ${DESTDIR}${bindir}/.bibclean.isbn # OLD: ${CHMOD} 664 ${DESTDIR}${bindir}/.bibclean.isbn -${TEST} -d ${DESTDIR}${bibcleandir} || ${MKDIR} ${DESTDIR}${bibcleandir} -${TEST} -d ${DESTDIR}${initdir} || ${MKDIR} ${DESTDIR}${initdir} -${TEST} ! -d ${DESTDIR}${initdir} && echo ERROR: cannot create ${DESTDIR}${initdir} && exit 1 ${CP} ${CPFLAGS} bibclean.ini bibclean.key bibclean.isbn ${DESTDIR}${initdir}/ ${CHMOD} 664 ${DESTDIR}${initdir}/bibclean.* install-man: bibclean.man uninstall-man test -d ${DESTDIR}${mandir} || ${MKDIR} ${DESTDIR}${mandir} if ${TEST} -f ${DESTDIR}${mandir}/bibclean.${manext} ; \ then \ ${MV} ${DESTDIR}${mandir}/bibclean.${manext} \ ${DESTDIR}${mandir}/bibclean.old.${manext} ; \ fi ${CP} ${CPFLAGS} bibclean.man ${DESTDIR}${mandir}/bibclean.${manext} -${RM} ${DESTDIR}${mandir}/../cat${manext}/bibclean.${manext} -${RM} ${DESTDIR}${mandir}/bibclean-${VERSION}.${manext} ${LN} ${DESTDIR}${mandir}/bibclean.${manext} ${DESTDIR}${mandir}/bibclean-${VERSION}.${manext} || \ ${CP} ${CPFLAGS} ${DESTDIR}${mandir}/bibclean.${manext} ${DESTDIR}${mandir}/bibclean-${VERSION}.${manext} ${CHMOD} 664 ${DESTDIR}${mandir}/bibclean.${manext} install-ftp: uninstall-ftp install-ftp.time install-ftp.time: dist ${TAR} tvf bibclean-${VERSION}.tar >${FTPDIR}/bibclean-${VERSION}.tar-lst ${GZIP} ${FTPDIR}/bibclean-${VERSION}.tar.gz ${CP} ${CPFLAGS} bibclean-${VERSION}.jar ${FTPDIR} ${JAR} tvf bibclean-${VERSION}.jar \ 2>${FTPDIR}/bibclean-${VERSION}.jar-lst ${CP} ${CPFLAGS} bibclean-${VERSION}.zip ${FTPDIR} ${CP} ${CPFLAGS} bibclean-${VERSION}.zip-lst ${FTPDIR} ${CP} ${CPFLAGS} bibclean-${VERSION}.zoo ${FTPDIR} ${CP} ${CPFLAGS} bibclean-${VERSION}.zoo-lst ${FTPDIR} ${LS} -l ${FTPDIR}/bibclean* ${DATE} >install-ftp.time lint: ${LINT} ${LINTFLAGS} ${SRC} uninstall: uninstall-exe uninstall-ini uninstall-man -${RM} install.time uninstall-exe: -${RM} ${DESTDIR}${bindir}/${BIBCLEAN} ${DESTDIR}${bindir}/bibclean-${VERSION}${EXEEXT} -${RM} ${DESTDIR}${bindir}/${BIBISBN} ${DESTDIR}${bindir}/bibisbn-${VERSION}${EXEEXT} uninstall-ini: -${RM} ${DESTDIR}${initdir}/bibclean.ini \ ${DESTDIR}${initdir}/bibclean.isbn \ ${DESTDIR}${initdir}/bibclean.key uninstall-man: -${RM} ${DESTDIR}${mandir}/bibclean.${manext} \ ${DESTDIR}${mandir}/bibclean-${VERSION}.${manext} \ ${DESTDIR}${mandir}/../cat${manext}/bibclean.${manext} \ ${DESTDIR}${mandir}/../cat${manext}/bibclean-${VERSION}.${manext} uninstall-ftp: -${RM} ${FTPDIR}/bibclean-${VERSION}.tar -${RM} ${FTPDIR}/bibclean-${VERSION}.tar-lst -${RM} ${FTPDIR}/bibclean-${VERSION}.zip -${RM} ${FTPDIR}/bibclean-${VERSION}.zip-lst -${RM} ${FTPDIR}/bibclean-${VERSION}.zoo -${RM} ${FTPDIR}/bibclean-${VERSION}.zoo-lst -${RM} install-ftp.time ### Prevent GNU make v3 from overflowing arg limit on SysV. .NOEXPORT: bibclean-3.07/fix.c0000644000156700015670000020345114162100617013041 0ustar beebebeebe#include #include /* FOR DEBUGGING ONLY */ #include "xctype.h" #include "xstring.h" RCSID("$Id: fix.c,v 1.12 2017/06/09 14:46:57 beebe Exp beebe $") #include "yesorno.h" #include "token.h" #include "match.h" #include "typedefs.h" /* must come AFTER match.h */ #define SKIP_SPACE(p) while (Isspace((unsigned char)*p)) ++p extern YESorNO brace_math; /* NO: leave mixed-case math text untouched */ extern YESorNO brace_protect; /* NO: leave mixed-case title words untouched */ extern char current_value[]; /* string value */ extern YESorNO fix_accents; /* repair accent bracing? */ extern YESorNO fix_braces; /* normalize bracing? */ extern YESorNO fix_degrees; /* normalize author academic degrees? */ extern YESorNO fix_font_changes; /* brace {\em E. Coli}? */ extern YESorNO fix_initials; /* reformat A.U. Thor? */ extern YESorNO fix_math; /* reformat math mode? */ extern YESorNO fix_names; /* reformat Bach, P.D.Q? */ extern NAME_PAIR month_pair[]; extern YESorNO Scribe; /* Scribe format input */ extern YESorNO check_junior ARGS((const char *last_name_)); extern void check_length ARGS((size_t n_)); extern char shared_string[MAX_TOKEN_SIZE]; static void brace_font_changes ARGS((void)); static void check_math_words ARGS((const char *)); static void fix_accent_bracing ARGS((void)); static char *fix_author ARGS((char *author_)); static char *fix_author_degrees ARGS((char *author_)); static void fix_bracing ARGS((void)); void fix_math_spacing ARGS((void)); void fix_month ARGS((void)); void fix_namelist ARGS((void)); void fix_pages ARGS((void)); static char *fix_periods ARGS((char *author_)); void fix_title ARGS((void)); /*@null@*/ static const char *month_token ARGS((/*@null@*/ const char *s_, size_t *p_len_)); static void store_space(char *s_, size_t *pk_); static size_t squeeze_space ARGS((char *s_)); extern void warning ARGS((const char *msg_)); /* we need some common operations dozens of times, so hide them in clean statement macros */ #define COPY_1() STORE_CHAR(current_value[t++]) #define COPY_2() ( COPY_1(), COPY_1() ) #define COPY_3() ( COPY_1(), COPY_1(), COPY_1() ) #define DISCARD_OUTPUT_SPACE() while ((k > 0) && (s[k - 1] == ' ')) k-- #define DISCARD_CURRENT_VALUE_SPACE() while (Isspace(current_value[t])) t++ #define MAYBE_INSERT_OPEN_BRACE() if (need_brace == YES) STORE_CHAR('{') #define MAYBE_INSERT_CLOSE_BRACE() if (need_brace == YES) STORE_CHAR('}') #define PREV_CHAR() ((k >= 2) ? s[k - 2] : '\0') #define PROCESS_2() do \ { \ MAYBE_INSERT_OPEN_BRACE(); \ COPY_2(); \ MAYBE_INSERT_CLOSE_BRACE(); \ DISCARD_CURRENT_VALUE_SPACE(); \ } while (0) #define PROCESS_3() do \ { \ MAYBE_INSERT_OPEN_BRACE(); \ COPY_3(); \ MAYBE_INSERT_CLOSE_BRACE(); \ DISCARD_CURRENT_VALUE_SPACE(); \ } while (0) #define STORE_CHAR(c) s[k++] = (char)(c) #define STORE_NUL() s[k] = (char)'\0' #define STORE_SPACE() store_space(s, &k) #define THIS_CHAR() ((k >= 1) ? s[k - 1] : '\0') static void brace_font_changes(VOID) { /******************************************************************* ** If the user has coded a title string like ** ** "Signal-transducing {G} proteins in {\em Dictyostelium Discoideum}" ** ** or ** ** "Signal-transducing {G} proteins in {\em {D}ictyostelium {D}iscoideum}" ** ** BibTeX styles that downcase titles will downcase the name ** Dictyostelium Discoideum, even WITH the protecting braces around ** the D's. The solution offered by this function is to rewrite ** the title string as ** ** "Signal-transducing {G} proteins in {{\em Dictyostelium Discoideum}}" ** ** This action cannot be taken without forethought, because there ** are many cases where the downcasing inside font changes is ** consistent, so the default run-time option is -no-fix-font-changes. *******************************************************************/ int b_level; /* brace level */ size_t k; /* index into current_value[] */ size_t m; /* index into s[] */ YESorNO need_close_brace; char *p; /* pointer into current_value[] */ char *s = shared_string; /* memory-saving device */ for (b_level = 0, k = 0, m = 0, need_close_brace = NO; (current_value[k] != '\0') ; ++k, ++m) { switch (current_value[k]) { case '{': /* '}' for balance */ b_level++; if (b_level == 1) { p = ¤t_value[k+1]; SKIP_SPACE(p); if (*p == '{') /* '}' for balance */ break; /* already have extra brace level */ if ( (strncmp(p,"\\bf",3) == 0) || (strncmp(p,"\\em",3) == 0) || (strncmp(p,"\\it",3) == 0) || (strncmp(p,"\\rm",3) == 0) || (strncmp(p,"\\sf",3) == 0) || (strncmp(p,"\\sl",3) == 0) || (strncmp(p,"\\tt",3) == 0) ) { s[m++] = '{'; /* '}' for balance */ need_close_brace = YES; } } break; /* '{' for balance */ case '}': if ( (b_level == 1) && (need_close_brace == YES) ) { /* '{' for balance */ s[m++] = '}'; need_close_brace = NO; } b_level--; break; default: break; } s[m] = current_value[k]; } s[m] = '\0'; /* terminate collected string */ (void)strcpy(current_value, s); } static void check_math_words(const char * s) { /* ** Diagnose omitted backslashes in math mode, such as in "$sin x$, ** which should be "$\sin x$", and "$O(n log n)$" which should be ** "$O(n \log n)$". */ const char *math_words[] = { /* ** Math words (from plain.tex:1049, and LaTeX Users Guide and ** Reference Manual, 2nd edition, page 44, Tabel 3.9: Log-like ** Functions) that should only appear as macros (i.e., ** prefixed with a backslash). It is a common error to omit ** the backslash, especially in data copied from non-TeX files ** and Web pages, and easy for us to check words against this ** list. Of course, there are many other possible words that ** COULD be similarly in error, but this list at least catches ** the commonest ones. ** ** The insertion of spacing between consecutive letters in ** math mode in response to the --fix-math option may help to ** make them more evident to the user. */ "arccos", "arcsin", "arctan", "arg", "cos", "cosh", "cot", "coth", "csc", "deg", "det", "dim", "exp", "gcd", "hom", "inf", "ker", "lg", "lim", "liminf", "limsup", "ln", "log", "max", "min", "Pr", "sec", "sin", "sinh", "sup", "tan", "tanh", (const char *)NULL }; size_t k, n; for (k = 0; math_words[k] != (const char *)NULL; ++k) { n = strlen(math_words[k]); if ( (!Isalpha(s[n])) && (s[0] == math_words[k][0]) && (strncmp(s, math_words[k], n) == 0) ) { warning("Unbackslashed math word in math mode in value ``%v''"); break; } } } static void fix_accent_bracing(VOID) { /******************************************************************* ** Normalize accents in current_value[]: ** ** \'x -> {\'x} {\'x} -> {\'x} [unchanged] ** \'{x} -> {\'x} {\'{x}} -> {\'x} ** \H{x} -> {\H{x}} {\H{x}} -> {\H{x}} [unchanged] ** \H x -> {\H{x}} {\H x} -> {\H{x}} [unchanged] ** ** where x is any letter, apostrophe stands for all of the standard ** TeX accent special characters, and H stands for all of the ** alphabetically-named accents. Here are their expansions (see ** Table 3.1, Accents, on page 38 of the LaTeX User's Guide and ** Reference Manual, second edition) ** ** ' -> ` ' ^ " ~ = . ** H -> u v H t c d b [and r, the forgotten ring accent] ** ** We also process these macros that represent letters in extended ** Latin alphabets: ** ** \oe \OE \ae \AE \aa \AA \o \O \l \L \ss \i *******************************************************************/ char *s = shared_string; /* memory-saving device */ size_t k; /* index into s[] */ size_t t; /* index into current_value[] */ for (k = 0, t = 0; current_value[t] != '\0'; ) { if (current_value[t] == '\\') /* start of TeX control sequence or macro */ { YESorNO need_brace; if ( (k > 0) && (THIS_CHAR() != '{') ) /* have, e.g., " \'x " or " \'{x} " */ need_brace = YES; else need_brace = NO; switch (current_value[t + 1]) { case '`': case '\'': case '^': case '\"': case '~': case '=': case '.': MAYBE_INSERT_OPEN_BRACE(); COPY_2(); /* copy backslash and accent */ if ( ( current_value[t + 0] == '{') && Isalpha(current_value[t + 1]) && ( current_value[t + 2] == '}') ) { t++; /* discard open brace */ COPY_1(); /* copy letter */ t++; /* discard close brace */ } else if (current_value[t] == '\\') /* a TeX macro gets an accent! */ { COPY_1(); /* copy backslash */ if ( (current_value[t] == 'i') || (current_value[t] == 'j') ) { COPY_1(); /* copy dotless i or j */ DISCARD_CURRENT_VALUE_SPACE(); } else if (Isalpha(current_value[t])) /* control word, e.g., \alpha */ { while (Isalpha(current_value[t])) COPY_1(); DISCARD_CURRENT_VALUE_SPACE(); } else /* single-character control sequence */ COPY_1(); /* copy single nonletter */ } else COPY_1(); /* copy argument letter */ MAYBE_INSERT_CLOSE_BRACE(); break; case 'H': case 'b': case 'c': case 'd': case 'r': case 't': case 'u': case 'v': if (!Isalpha(current_value[t + 2])) /* have valid accent control word */ { MAYBE_INSERT_OPEN_BRACE(); COPY_2(); /* copy backslash and accent */ DISCARD_CURRENT_VALUE_SPACE(); if ( ( current_value[t + 0] == '{') && Isalpha(current_value[t + 1]) && ( current_value[t + 2] == '}') ) COPY_3(); /* copy open brace, letter, and close brace */ else if (current_value[t] == '{') { int brace_level; brace_level = 1; while (brace_level > 0) { COPY_1(); if (current_value[t] == '{') brace_level++; else if (current_value[t] == '}') brace_level--; } } else if (current_value[t] == '\\') /* a TeX macro gets an accent! */ { COPY_1(); /* copy backslash */ if ( (current_value[t] == 'i') && !Isalpha(current_value[t + 1]) ) /* \i */ { COPY_1(); /* copy i */ DISCARD_CURRENT_VALUE_SPACE(); } else if (Isalpha(current_value[t])) /* control word, e.g., \alpha */ { while (Isalpha(current_value[t])) COPY_1(); DISCARD_CURRENT_VALUE_SPACE(); } else /* single-character control sequence */ COPY_1(); /* copy single nonletter */ } else /* copy braced character */ { STORE_CHAR('{'); COPY_1(); /* copy argument character */ STORE_CHAR('}'); } MAYBE_INSERT_CLOSE_BRACE(); } else COPY_1(); /* copy backslash verbatim */ break; case 'A': /* expect \AA or \AE or \Alpha or ... */ if ( (current_value[t + 2] == 'A') && !Isalpha(current_value[t + 3]) ) PROCESS_3(); /* have \AA */ else if ( (current_value[t + 2] == 'E') && !Isalpha(current_value[t + 3]) ) PROCESS_3(); /* have \AE */ else COPY_1(); /* copy backslash verbatim */ break; case 'a': /* expect \aa or \ae or \alpha or ... */ if ( (current_value[t + 2] == 'a') && !Isalpha(current_value[t + 3]) ) PROCESS_3(); /* have \aa */ else if ( (current_value[t + 2] == 'e') && !Isalpha(current_value[t + 3]) ) PROCESS_3(); /* have \ae */ else COPY_1(); /* copy backslash verbatim */ break; case 'L': /* expect \L or \Lambda or ... */ if (!Isalpha(current_value[t + 2])) PROCESS_2(); /* have \L */ else COPY_1(); /* copy backslash verbatim */ break; case 'l': /* expect \l or \lambda or ... */ if (!Isalpha(current_value[t + 2])) PROCESS_2(); /* have \l */ else COPY_1(); /* copy backslash verbatim */ break; case 'O': /* expect \O or \OE or \Omega or ... */ if (!Isalpha(current_value[t + 2])) PROCESS_2(); /* have \O */ else if (current_value[t + 2] == 'E') PROCESS_3(); /* have \OE */ else COPY_1(); /* copy backslash verbatim */ break; case 'o': /* expect \o or \oe or \omega or ... */ if (!Isalpha(current_value[t + 2])) PROCESS_2(); /* have \o */ else if (current_value[t + 2] == 'e') PROCESS_3(); /* have \oe */ else COPY_1(); /* copy backslash verbatim */ break; case 's': /* expect \ss or \sigma or ... */ if ( (current_value[t + 2] == 's') && !Isalpha(current_value[t + 3]) ) PROCESS_3(); else COPY_1(); /* copy backslash verbatim */ break; default: COPY_1(); /* copy backslash verbatim */ break; } } else COPY_1(); /* copy ordinary character */ } STORE_NUL(); k = squeeze_space(s); check_length(k); (void)strcpy(current_value,s); } #if defined(HAVE_STDC) static char * /* normalize author names and return */ fix_author(char *author) /* new string from static space */ #else /* K&R style */ static char * fix_author(author) /* normalize author names and return */ char *author; /* new string from static space */ #endif { size_t a; /* index into author[] */ int b_level; /* brace level */ char *p; /* pointer into author[] */ char *pcomma; /* pointer to last unbraced comma in author[] */ static char s[MAX_TOKEN_SIZE]; /* returned to caller */ /* Convert "Smith, J.K." to "J. K. Smith" provided "," and "." are */ /* at brace level 0 */ if ( (fix_names == NO) || (author == (char *)NULL) ) return (author); /* Leave untouched entries like: */ /* author = "P. D. Q. Bach (113 Mozart Strasse, Vienna, Austria)" */ if (IN_SET(author, '(')) return (author); /******************************************************************* ** We now have a tricky job. Some names have additional parts, ** which BibTeX calls "von" and "Jr.". It permits them to be input ** as (see L. Lamport, ``LaTeX User's Guide and Reference Manual'', ** pp. 141--142) ** ** Brinch Hansen, Per OR Per {Brinch Hansen} ** Ford, Jr., Henry OR Henry {Ford, Jr.} ** {Steele Jr.}, Guy L. OR Guy L. {Steele Jr.} ** von Beethoven, Ludwig OR Ludwig von Beethoven ** {von Beethoven}, Ludwig OR Ludwig {von Beethoven} ** ** The last two lines are NOT equivalent; the first will be ** alphabetized under Beethoven, and the second under von. ** ** Other examples include names like ** ** Charles XII, King OR King Charles XII ** Ford, Sr., Henry OR Henry {Ford, Sr.} ** Vallee Poussin, C. L. X. J. de la OR ** C. L. X. J. de la Vallee Poussin ** van der Waerden, Bartel Leendert OR ** Bartel Leendert van der Waerden ** ** These transformations conform to the general patterns ** ** B, A --> A B ** B C, A --> A B C (von case) ** B C, A --> A {B C} (Brinch Hansen case) ** B, C, A --> A {B, C} (Jr. case) ** ** A, B, and C represent one or more space-separated words, or ** brace-delimited strings with arbitrary contents. ** ** Notice the conflict: the von case differs from Brinch Hansen in ** that braces may NOT be inserted when the name is reordered, ** because this changes the alphabetization. ** ** In order to deal with this ambiguity, we supply braces in the "B ** C, A" case ONLY when the C part matches something like Jr (see ** the juniors[] table above), or when it looks like a small number ** in Roman numerals. The latter case is uncommon, and we therefore ** don't bother to attempt to parse it to determine whether it is a ** valid number. ** ** The "B, C, A" case (multiple level-zero commas) is unambiguous, ** and can be converted to the form "A {B, C}". *******************************************************************/ for (a = 0, b_level = 0, pcomma = (char*)NULL; author[a] != '\0'; ++a) { /* convert "Smith, John" to "John Smith" */ switch (author[a]) { case '{': b_level++; break; case '}': b_level--; break; case ',': if (b_level == 0) pcomma = &author[a]; /* remember last unbraced comma */ break; default: break; } } if (pcomma == (char*)NULL) /* no commas, so nothing more to do */ return (author); *pcomma = '\0'; /* terminate "Smith" */ /* have "Smith, J.K." or "Smith, Jr., J.K." */ p = pcomma + 1; SKIP_SPACE(p); (void)strcpy(s,p); /* s <- "J.K." */ (void)strcat(s," "); /* s <- "J.K. " */ if (check_junior(author) == YES) { (void)strcat(s,"{"); (void)strcat(s,author); /* s <- "J.K. {Smith, Jr.}" */ (void)strcat(s,"}"); } else (void)strcat(s,author); /* s <- "J.K. Smith" */ return (strcpy(author,s)); } static void fix_bracing(VOID) { /******************************************************************* ** Here are some cases to consider for developing an algorithm for ** removal of unnecessary bracing, and moving closing braces to ** end of token: ** ** Strings with protecting outer braces: ** ** "{ ... {\em E. coli} ... }" ** |-----------| required for font scope ** ** "{ ... \cite{label} ... }" ** |-----| required for argument delimiting ** ** "{ ... ${\Delta}$ ... }" ** |------| removable (at level 1), but look like font change ** ** " ... $x_{1/2}$ ... " ** |---| required for argument delimiting ** ** "{ ... {ARITH '20} conference ... }" ** |---------| removable: at level 1 ** ** "{ ... \twoargs{one}{two} ... }" ** |---||---| required for argument delimiting ** ** "{Books about the {{\TeX}} typesetting system}" ** |------| removable ** |----| required for macro delimiting ** ** "{Breaking the f{}i, f{}l, ff{}i, and ff{}l ligatures}" ** || || || || not removable ** ** "{Breaking the {f}i, {f}l, f{f}i, and f{f}l ligatures}" ** |-| |-| |-| |-| not removable ** ** "{History of the {E}nglish language}" ** |-| removable: at level 1 ** ** "{History of the non{E}nglish languages}" ** |-| removable: at level 1 ** ** Here are the same examples, but without the outer protecting ** braces: ** ** " ... {\em E. coli} ... " ** |-----------| required for font scope: another level needed ** ** " ... \cite{label} ... " ** |-----| required for argument delimiting ** ** " ... ${\Delta}$ ... " ** |------| not removable: at level 0 ** ** " ... $x_{1/2}$ ... " ** |---| required for argument delimiting ** ** " ... {ARITH '20} conference ... " ** |---------| not removable: at level 0 ** ** " ... \twoargs{one}{two} ... " ** |---||---| required for argument delimiting ** ** "Books about the {{\TeX}} typesetting system" ** |------| removable ** |----| required for macro delimiting ** ** "Breaking the f{}i, f{}l, ff{}i, and ff{}l ligatures" ** || || || || not removable ** ** "Breaking the {f}i, {f}l, f{f}i, and f{f}l ligatures" ** |-| |-| |-| |-| not removable ** ** "History of the {E}nglish language" ** |-| not removable: at level 0 ** but redistributable to {English} ** ** "History of the non{E}nglish languages" ** |-| not removable: at level 0 ** but redistributable to {nonEnglish} ** ** The required algorithm seems to be: ** ** ==> braces are removable if at level 1 or higher, and not ** inside math mode, and not following a TeX macro name ** without intervening space ** ** ==> braces at any level can be moved to the ends of the ** current alphabetic token (except for the (rare and ** unlikely) ligature-breaking case) ** ** The ligature example shows that we cannot fix old-style ** bracing without occasionally breaking the user's intent! ** ** WRONG: " ... f{f}l ... " -> " ... ffl ... " ** ** WRONG: "Die {A}xiomatisierung der {W}ahrscheinlichkeitsrechnung" -> ** "Die Axiomatisierung der Wahrscheinlichkeitsrechnung" ** ** OKAY: "{Die {A}xiomatisierung der {W}ahrscheinlichkeitsrechnung}" -> ** "{Die Axiomatisierung der Wahrscheinlichkeitsrechnung}" ** ** Our simple parsing breaks with multiargument macros: our code ** does these reductions: ** ** OKAY: "{{\twoargs {One}{Two}}}" -> "{{\twoargs {One}{Two}}}" ** ** OKAY: "{{\twoargs {One}{Two}}}" -> "{{\twoargs {One}{Two}}}" ** WRONG: "{{\twoargs {One} {Two}}}" -> "{{\twoargs {One} Two}}" ** ** OKAY: "{\twoargs {One}{Two}}" -> "{\twoargs {One}{Two}}" ** WRONG: "{\twoargs {One} {Two}}" -> "{{\twoargs {One} Two}}" ** ** Because TeX macros can consume arbitrary numbers of arguments, ** and those arguments do not require braces or separators if they ** are single tokens (e.g., a, b, c, \alpha, \beta, \gamma, ...), ** we simply CANNOT guarantee always-correct behavior. ** Fortunately, most uses of macros in BibTeX titles are just font ** changes, or have zero arguments, or have single arguments ** (e.g., "{\em E. coli}", "{\TeX}: the program", and ** "\booktitle{The Dog}"). In most cases, we do the right thing, ** and provide the minimal number of braces. *******************************************************************/ char *s = shared_string; /* memory-saving device */ int b_level; /* brace level */ int f_level; /* font level */ int m_level; /* math-mode level */ size_t k; /* index into s[] */ size_t m; /* index into s[] */ size_t t; /* index into current_value[] */ YESorNO discarded_close_open_pair; /* YES if we just discarded "}{" in s[] */ YESorNO in_TeX_macro; /* YES if current nonblank token has backslash */ (void)memset(s, 0, 255); /* DEBUGGING ONLY! */ for (b_level = 0, f_level = 0, k = 0, m_level = 0, in_TeX_macro = NO, t = 0; current_value[t] != '\0'; ) { switch (current_value[t]) { case '\\': /* macro and following space */ COPY_1(); in_TeX_macro = YES; if (Isalpha(current_value[t])) { while (Isalpha(current_value[t])) COPY_1(); } else COPY_1(); /* ** We need to copy trailing space here to preserve the ** value of in_TeX_macro, which otherwise gets reset to NO ** at a space. */ while (Isspace(current_value[t])) COPY_1(); break; case ' ': COPY_1(); in_TeX_macro = NO; break; case '$': if (current_value[t + 1] == '$') COPY_2(); /* display math mode "...$$...$$..." */ else COPY_1(); /* normal math mode "...$...$..." */ if (m_level == 0) m_level = 1; /* enter normal or display math mode */ else m_level = 0; /* leave normal math mode */ break; case '{': /* ** BibTeX's normal handling of personal names in author/editor ** fields allows rearrangements such as these: ** ** "Arthur Baines Conway" -> "A. B. Conway" ** -> "Arthur B. Conway" ** -> "Conway, Arthur B." ** -> "Conway, A. B.", ** ** and the family name (here, "Conway") can be used to ** create an alphanumeric citation label, and a bibliography ** sort key. ** ** However, in Hungary and many Oriental countries, the ** family name appears first, and it is then desirable to ** prevent name reordering when the title is in the ** corresponding language. BibTeX's undocumented ** convention is that a braced space prevents name ** reordering, so we have author strings like these: ** ** "H{\'a}n{ }Th{\^e}\llap{\raise 0.5ex\hbox{\'{\relax}}}{ }Th{\'a}nh" ** "Kawasaki{ }Kimio" ** "Mao{ }Tse-Tung" ** "Neumann{ }Jan{\'o}s" ** "Park{ }Chung-hee" ** "{von{ }E{\"o}tv{\"o}s{ }Lor{\'a}nd}" ** ** We must therefore check for "{ }" and output it verbatim. */ if ( (current_value[t + 1] == ' ') && (current_value[t + 2] == '}') ) { COPY_3(); break; } b_level++; COPY_1(); /* Leave "{Z}{\"u}rich" untouched, but reduce "{A}{BC}" to "{ABC}" */ if ( (current_value[t] == '\\') || (current_value[t + 1] == '\\') ) in_TeX_macro = YES; if ( (k > 0) && (s[k - 2] == '}') && (in_TeX_macro == NO) && (m_level == 0) ) { k -= 2; /* discard (probably) unneeded "}{" */ s[k] = '\0'; /* FOR DEBUGGING ONLY */ discarded_close_open_pair = YES; } else discarded_close_open_pair = NO; if (current_value[t] == '\\') { f_level = b_level; in_TeX_macro = YES; } else if ( (discarded_close_open_pair == NO) && (in_TeX_macro == NO) && (m_level == 0) ) { /* ** Try to convert, e.g., "non{E}nglish" to "{nonE}nglish" (the ** close brace is moved later). ** ** We also convert "4.4{BSD}" to "{4.4BSD}" by including period ** (dot or full-stop) inside the braces. Such characters are ** common in software version numbers (e.g., "Web-2.0"). */ for (m = k - 2; (m > 0) && (Isalnum(s[m]) || (s[m] == '.')); --m) /* NO-OP */; if (m < (k - 2)) { /* move open brace from s[k] back to s[m + 1] */ (void)memmove(&s[m + 2], &s[m + 1], k - m); s[m + 1] = '{'; } } break; case '}': COPY_1(); b_level--; if (b_level < f_level) f_level = b_level; /* try to convert, e.g., "{nonE}nglish" to "{nonEnglish}" */ m = k - 1; /* index of final '}' in s[] */ if ( (in_TeX_macro == NO) && (m_level == 0) ) { while (Isalnum(current_value[t])) { /* we might move close brace multiple times */ while (Isalnum(current_value[t])) COPY_1(); if (m < (k - 1)) /* move close brace from s[m] to s[k - 1] */ { (void)memmove(&s[m], &s[m + 1], k - m); s[k - 1] = '}'; } } } assert(s[k - 1] == '}'); /* FOR DEBUGGING ONLY */ /* ** Try to reduce text like ** ** "{Advances in database technology, {EDBT '88}}" ** ** to ** ** "{Advances in database technology, EDBT '88}" ** ** However, preserve the font-change group in text like this: ** ** "{Advances in {\em E. coli\//} research}" ** ** and around macro argument like this: ** ** "{Einstein}'s {\booktitle{The meaning of relativity}}" ** */ if ( (in_TeX_macro == NO) && (b_level > 0) && (m_level == 0) ) { /* unbrace last braced group */ if (k > 2) { int last_level; last_level = b_level; for (m = k - 1; m > 0; --m) { if (s[m] == '{') { last_level--; if (last_level == b_level) break; } else if (s[m] == '}') last_level++; } assert(s[m] == '{'); /* FOR DEBUGGING ONLY */ if ( (s[m + 1] != '\\') && /* not a font-change group */ ((m > 0) && !Isalpha(s[m - 1])) && /* probably not macro argument */ (strnicmp("{ }", &s[m], 3) != 0) /* not special one-space group */ ) { (void)memmove(&s[m], &s[m + 1], k - m); k -= 2; /* because we discarded the surrounding braces */ s[k] = '\0'; /* FOR DEBUGGING ONLY */ } } } break; default: COPY_1(); break; } } STORE_NUL(); k = squeeze_space(s); check_length(k); (void)strcpy(current_value,s); if (b_level != 0) warning("Unbalanced brace(s) in value ``%v''"); } void fix_math_spacing(VOID) { /******************************************************************* ** TeX ignores whitespace inside math mode, so spacing changes ** there are harmless, and we exploit that fact to improve the ** readability of math in BibTeX abstract, annote, booktitle, ** note, remark, and title fields (the definitive list is in file ** do.c in the initialization of the fixes[] table). ** ** Also, we often prefer math mode groups to be surrounded by ** space, and if the group contains an uppercase letter, the ** entire group must be braced to protect against downcasing by ** some BibTeX styles, because that action changes the meaning of ** the mathematics, and also could make the TeX math markup ** invalid. ** ** There are some common cases, however, where we need to suppress ** such outer spacing: ** ** (1) superscripts before names (e.g., chemical isotope $^{13}$C) ** ** (2) superscripts and scripts in chemical compounds (e.g., ** Cr$_2$O$_3$) and reaction names (e.g., S$_N$2) ** ** (3) math at end of clause, phrase, or sentence: ** "If $a > b$, then ..." ** "Suppose $a > b$; then ..." ** "Here is the equation: $a = b$." ** "In the equations ``$a = b$'' and ``c = d$'', ..." ** ** The code in the loop body is somewhat simplified if we allow ** consecutive spaces; they are removed by squeeze_space() after ** the main loop has completed. ** ** In general, we add spaces immediately inside the delimiting ** dollar signs, and if they are not braced, around macros and ** letters. Here are some typical transformations: ** ** "${\rm SU}(2)$" -> "{$ {\rm SU}(2) $}" ** "$4d\sigma$" -> "$ 4 d \sigma $" ** "$Ax=b$" -> "{$ A x = b $}" ** "$abc=xyz$" -> "$ a b c = x y z $" ** "$\phi\chi\psi$" -> "$ \phi \chi \psi $" ** ** However, for single-character math mode, and single-character ** subscripts and superscripts, spacing is suppressed: ** ** "CH$_3$OH" -> unchanged ** "The {S$_N$2} reaction" -> unchanged ** *******************************************************************/ char *s = shared_string; /* memory-saving device */ int b_level; /* brace level */ int b_level_math; /* brace level at start of math mode */ int m_level; /* math level */ size_t k; /* index into s[] */ size_t math_start; /* index into s[] */ size_t t; /* index into current_value[] */ YESorNO is_unary_operator; /* unary (not binary) operator */ YESorNO just_left_math; /* just left math mode? */ YESorNO math_ties; /* unexpected ties in math mode? */ YESorNO suppress_math_space; /* YES: omit space around math contents */ YESorNO ucmath; /* uppercase letters in math mode? */ if (fix_accents == YES) fix_accent_bracing(); if (fix_braces == YES) fix_bracing(); if (fix_math == NO) return; just_left_math = NO; math_start = 0; math_ties = NO; suppress_math_space = NO; ucmath = NO; for (k = 0, b_level = 0, b_level_math = 0, m_level = 0, t = 0; current_value[t] != '\0'; ) { YESorNO need_space; /* YES if need space before pending token */ switch (current_value[t]) { case '\\': /* copy backslash and following character(s) */ if ( (m_level > 0) && Isupper(current_value[t + 1]) ) ucmath = YES; need_space = ((m_level > 0) && (k > 0) && !IN_SET("^_([{", THIS_CHAR())) ? YES : NO; if (m_level > 0) { if (need_space == YES) STORE_SPACE(); /* space before backslashed delimiters */ else if ( (t > 0) && Isalnum(current_value[t - 1]) ) STORE_SPACE(); /* space between letter and macro name */ } COPY_1(); /* copy the backslash */ if (Isalpha(current_value[t])) /* TeX control word */ { while (Isalpha(current_value[t])) COPY_1(); if ( (m_level > 0) && (need_space == NO) ) STORE_SPACE(); } else /* TeX control symbol */ { if (current_value[t] == '$') need_space = NO; COPY_1(); if ( (m_level > 0) && (need_space == NO) ) STORE_SPACE(); } if ( (m_level > 0) && (need_space == YES) ) STORE_SPACE(); /* space after backslashed delimiters */ break; case '$': if (current_value[t + 1] == '$') { /* display math mode "...$$...$$..." */ if (m_level > 0) { m_level--; /* leave display-math mode */ just_left_math = YES; STORE_SPACE(); /* always space before closing math delimiter */ } else { b_level_math = b_level; m_level++; /* enter display-math mode */ ucmath = NO; if ( (k > 0) && !IN_SET("`',.:;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", THIS_CHAR()) ) STORE_SPACE();/* space before math delimiter */ math_start = k; /* remember start of math mode */ } COPY_1(); /* copy first dollar */ } else if (m_level > 0) { /* leave normal math mode */ m_level--; just_left_math = YES; if (IN_SET("-)]", current_value[t + 1])) /* leave "$\tau$-particle", */ suppress_math_space = YES; /* "($x$)", and "[$y$]", unchanged */ if ((suppress_math_space == NO) && Isspace(s[math_start + 1])) STORE_SPACE(); /* symmetry: two outer spaces, or neither */ if ( (k >= 4) && (s[k - 4] == '$') && (s[k - 3] == ' ') && (s[k - 1] == ' ') ) { /* squeeze single-character math mode */ s[k - 3] = s[k - 2]; k -= 2; } else if ( (k >= 4) && (s[k - 4] == '$') && IN_SET("^_", s[k - 3]) && (s[k - 1] == ' ') ) /* squeeze sub/sup + single-character math mode */ k--; else if ( (k >= 3) && (s[k - 3] == '$') && (s[k - 1] == ' ') )/* squeeze single-character math mode */ k--; } else { /* enter normal math mode */ b_level_math = b_level; m_level++; math_start = k; /* remember start of math mode */ ucmath = NO; } COPY_1(); /* copy final open or close dollar */ if (m_level > 0) { /* suppress space for "xxx$_n" and "xxx${}_n$ (leading subscripts) and "xxx$^n" and "xxx${}^n$ (leading superscripts) */ if (IN_SET("^_", current_value[t])) suppress_math_space = YES; else if ( (current_value[t + 0] == '{') && (current_value[t + 1] == '}') && IN_SET("^_", current_value[t + 2]) ) suppress_math_space = YES; else if ( Isalnum(current_value[t]) && (current_value[t + 1] == '$') ) suppress_math_space = YES; /* keep $x$ and $3$D without extra spacing */ else STORE_SPACE(); /* always space after opening math delimiter */ } else if (!IN_SET("{}`)]}',.:;-ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", current_value[t])) STORE_SPACE(); /* space after math mode, unless punctuation or uppercase letter or digit follows */ if ( (brace_math == YES) && (just_left_math == YES) && (ucmath == YES) && (k > math_start) && (b_level == 0) ) { (void)memmove(&s[math_start + 1], &s[math_start], k - math_start); s[math_start] = '{'; if (!Isspace(s[k])) k++; STORE_CHAR('}'); math_start = 0; ucmath = NO; } just_left_math = NO; break; case '+': /* FALL THROUGH */ case '-': /* FALL THROUGH */ case '/': if (m_level > 0) { /* ** In math mode, +, -, and / may be binary operators, ** which should have surrounding space for better ** visibility, but + and - may also be unary ** operators, as in $x^{-n}$ and Cr${2+}$, in which ** case, surrounding space is undesirable. We can ** distinguish the two cases be looking at the ** characters output before and after the operator. */ if ( (k > 0) && !IN_SET("\\^_", THIS_CHAR()) ) { is_unary_operator = ( (THIS_CHAR() == '{') || (current_value[t + 1] == '}') ) ? YES : NO; if (is_unary_operator == NO) STORE_SPACE(); COPY_1(); if ( (is_unary_operator == NO) && (current_value[t] != '=') ) /* keep "+=", "-=", "/=", "==" together */ STORE_SPACE(); } else COPY_1(); } else COPY_1(); break; case '=': if (m_level > 0) { if ( (k > 0) && !IN_SET("\\+-/*:<>", THIS_CHAR()) ) { STORE_SPACE(); COPY_1(); if (current_value[t] != '=') /* keep "+=", "-=", "/=", "==" together */ STORE_SPACE(); } else { if (IN_SET("+-/*:<>", THIS_CHAR())) warning("Unusual compound assignment or equality-test " "operator in math mode value ``%v'' (e.g., perhaps replace <= by \\leq)"); COPY_1(); if (current_value[t] != '=') /* keep "==" together */ STORE_SPACE(); } } else COPY_1(); break; case '&': /* FALL THROUGH */ case ':': if (m_level > 0) { if ( (k > 0) && (THIS_CHAR() != '\\') ) { STORE_SPACE(); COPY_1(); if (current_value[t] != '=') /* keep ":=" together */ STORE_SPACE(); } else COPY_1(); } else COPY_1(); break; case '<': /* FALL THROUGH */ case '>': if (m_level > 0) { if ( (k > 0) && (THIS_CHAR() != '\\') ) { STORE_SPACE(); COPY_1(); if (!IN_SET("=<>", current_value[t])) STORE_SPACE(); } else COPY_1(); } else COPY_1(); break; case '{': if (PREV_CHAR() != '\\') b_level++; COPY_1(); if ( (m_level > 0) && (b_level == b_level_math) ) { /* ** Restricting the discarding of space to the brace ** level at entry is essential to preserve significant ** space in macros, such as $\phi \hbox{ and } \chi$. */ while (Isspace(current_value[t])) t++; /* discard space after open delimiter */ } break; case '}': if ( (m_level > 0) && (b_level == b_level_math) ) { /* ** Restricting the discarding of space to the brace ** level at entry is essential to preserve significant ** space in macros, such as $\phi \hbox{ and } \chi$. */ while (Isspace(current_value[t])) while ( (k > 0) && Isspace(THIS_CHAR()) ) k--; /* discard space before close delimiter */ } COPY_1(); if (PREV_CHAR() != '\\') b_level--; break; case '[': /* FALL THROUGH */ case '(': COPY_1(); if (m_level > 0) { while (Isspace(current_value[t])) t++; /* discard space after open delimiter */ } break; case ']': /* FALL THROUGH */ case ')': if (m_level > 0) { while ( (k > 0) && Isspace(THIS_CHAR()) ) k--; /* discard space before close delimiter */ } COPY_1(); break; case '_': /* FALL THROUGH */ case '^': if (m_level > 0) { while ((k > 0) && Isspace(THIS_CHAR())) k--; /* discard space before subscript and superscript */ COPY_1(); /* copy subscript/superscript operator */ while (Isspace(current_value[t])) t++; /* discard space after subscript and superscript */ if ( (current_value[t ] == '{') && (current_value[t + 1] != '\\') && (current_value[t + 2] == '}') ) { /* discard superfluous braces around single-character subscript and superscript */ t++; COPY_1(); t++; if (Isupper(THIS_CHAR())) ucmath = YES; } else if (IN_SET("+-*<>", current_value[t])) COPY_1(); } else if (current_value[t] == '_') { COPY_1(); warning("Subscript operator outside math mode in value ``%v''"); } else if (current_value[t] == '^') { COPY_1(); warning("Superscript operator outside math mode in value ``%v''"); } else /* NOT REACHED */ COPY_1(); break; case '~': if ( (m_level > 0) && (k > 0) && (THIS_CHAR() != '\\') ) math_ties = YES; COPY_1(); break; case ',': /* FALL THROUGH */ case ';': if (m_level > 0) DISCARD_OUTPUT_SPACE(); COPY_1(); if (m_level > 0) STORE_SPACE(); /* space after list separators */ break; case ' ': STORE_SPACE(); t++; break; default: if ( (m_level > 0) && Isupper(current_value[t]) ) ucmath = YES; if ((m_level > 0) && Isalpha(current_value[t])) { /* replace math "xyz" by "x y z" */ check_math_words(¤t_value[t]); COPY_1(); while (Isalpha(current_value[t])) { if (b_level == b_level_math) STORE_SPACE(); COPY_1(); } } else if ((m_level > 0) && Isdigit(current_value[t])) { /* copy numbers intact */ COPY_1(); while (Isdigit(current_value[t]) || (current_value[t] == '.')) COPY_1(); if ((t > 2) && (current_value[t - 2] == '$') && (current_value[t] == '$') ) /* NO-OP: e.g. "$3$D */; else if ( (current_value[t] != '$') && (b_level == b_level_math) ) STORE_SPACE(); } else COPY_1(); break; } } if ( (k > 1) && (THIS_CHAR() == '\"') && Isspace(PREV_CHAR()) ) { k--; while ( (k > 0) && Isspace(THIS_CHAR()) ) /* trim trailing space */ k--; STORE_CHAR('"'); } STORE_NUL(); k = squeeze_space(s); check_length(k); (void)strcpy(current_value,s); if (m_level != 0) warning("Unbalanced math-mode dollar(s) in value ``%v''"); if (math_ties == YES) warning("Unexpected TeX tie[s] (tilde[s]) in math mode ``%v''"); } void fix_month(VOID) /* convert full month names to macros*/ { /* for better style-file customization */ size_t k; /* index into month_pair[] and s[] */ size_t token_length; /* token length */ const char *p; /* pointer to current_value[] */ char *s = shared_string; /* memory-saving device */ const char *token; /* pointer into current_value[] */ for (p = current_value; (token = month_token(p,&token_length), token) != (const char*)NULL; p = (const char*)NULL) { if (token_length == 1) /* just copy single-char tokens */ *s++ = *token; else { for (k = 0; month_pair[k].old_name != (const char*)NULL; ++k) { if ( (strlen(month_pair[k].old_name) == token_length) && (strnicmp(month_pair[k].old_name,token,token_length) == 0) ) { /* change "January" to jan etc. */ (void)strcpy(s,"\" # "); if ( (s >= (shared_string + 1)) && (strncmp(s-1,"\"\" # ",5) == 0) ) { /* eliminate any concatenation with an empty string */ s--; *s = '\0'; /* need string terminator for strcat() */ } (void)strcat(s,month_pair[k].new_name); (void)strcat(s," # \""); s = strchr(s,'\0'); token_length = 0; /* so we don't copy twice at loop end */ break; /* exit loop after first substitution */ } } /* end for (k = 0, ...) */ (void)strncpy(s,token,token_length); /* no definition, just copy */ s += token_length; } if ( (s >= (shared_string + 5)) && (strncmp(s-5," # \"\"",5) == 0) ) s -= 5; /* eliminate any concatenation with an empty string */ } *s = '\0'; /* supply string terminator */ s = shared_string; if (strncmp(s,"\"\" # ",5) == 0) (void)strcpy(current_value,&s[5]); /* discard initial empty string */ else (void)strcpy(current_value,s); } void fix_namelist(VOID) /* normalize list of personal names */ { /* leaving it in global current_value[] */ size_t m; /* index of start of author in current_value[]*/ size_t n; /* length of current_value[], less 1 */ char namelist[MAX_TOKEN_SIZE]; /* working copy of current_value[] */ size_t v; /* loop index into current_value[] */ /* Convert "Smith, J.K. and Brown, P.M." to */ /* "J. K. Smith and P. M. Brown" */ /* We loop over names separated by " and ", and hand each off */ /* to fix_author() */ n = strlen(current_value) - 1; /* namelist = "\"...\"" */ if ( (current_value[0] != '"') || (current_value[n] != '"') ) /* sanity check */ return; /* not quoted string, may be macro */ if (fix_accents == YES) { fix_accent_bracing(); n = strlen(current_value) - 1; /* namelist = "\"...\"" */ } if (fix_braces == YES) { fix_bracing(); n = strlen(current_value) - 1; /* namelist = "\"...\"" */ } (void)strcpy(namelist,"\"");/* supply initial quotation mark */ current_value[n] = (char)'\0'; /* clobber final quotation mark */ for (v = 1, m = 1; v < n; ++v) /* start past initial quotation mark */ { if (strncmp(" and ",¤t_value[v],5) == 0) { current_value[v] = (char)'\0'; (void)strcat(namelist,fix_periods(fix_author(¤t_value[m]))); (void)strcat(namelist," and "); current_value[v] = (char)' '; v += 4; m = v + 1; } else if ( (Scribe == YES) && (current_value[v] == ';') ) { /* expand semicolons to " and " */ current_value[v] = (char)'\0'; (void)strcat(namelist,fix_periods(fix_author(¤t_value[m]))); (void)strcat(namelist," and "); current_value[v] = (char)' '; m = v + 1; } } (void)strcat(namelist,fix_periods(fix_author(¤t_value[m]))); /* handle last author */ (void)strcat(namelist,"\""); /* supply final quotation mark */ (void)strcpy(current_value,namelist); } void fix_pages(VOID) { size_t k; /* index into current_value[] */ size_t m; /* index into new_value[] */ char new_value[MAX_TOKEN_SIZE]; /* working copy of new_value[] */ char last_char; last_char = ' '; new_value[0] = '\0'; /* initialize to remove lint warning */ for (m = 0, k = 0; current_value[k] != '\0'; ++k) { /* squeeze out spaces around hyphens */ /* and convert hyphen runs to en-dashes */ if (current_value[k] == '-') { /* convert hyphens to en-dash */ for ( ; (m > 0) && Isspace(new_value[m-1]) ; ) --m; /* discard preceding spaces */ for ( ; current_value[k+1] == '-'; ) ++k; for ( ; Isspace(current_value[k+1]); ) ++k; /* discard following spaces */ new_value[m++] = (char)'-'; /* save an en-dash */ /* [04-Mar-1996] force en-dash between digit pairs, alpha pairs, and digit-alpha pairs, but not otherwise, so ``pages = "A-3-A-7"'' is converted to ``pages = "A-3--A-7"''. */ if ( (Isdigit(last_char) && Isdigit(current_value[k+1])) || (Isalpha(last_char) && Isalpha(current_value[k+1])) || (Isdigit(last_char) && Isalpha(current_value[k+1])) || (current_value[k+1] == '?') ) new_value[m++] = (char)'-'; } else { new_value[m++] = current_value[k]; if (!Isspace(current_value[k])) /* remember last non-blank non-hyphen char */ last_char = current_value[k]; } } new_value[m] = (char)'\0'; (void)strcpy(current_value,new_value); } #if defined(HAVE_STDC) static char * fix_author_degrees(char *author) #else /* K&R style */ static char * fix_author_degrees(author) char *author; #endif { int b_level; /* brace level */ size_t a; /* index in author[] */ size_t n; /* index in name[] */ char *name; /* synonym for output author, overwriting input */ /* with possibly shorter string */ if (fix_degrees == NO) return (author); /* ** Convert "J. J. {Thomson, M. A., F. R. S.}" to "J. J. {Thomson, M.A., F.R.S.}", ** "Frederick {Soddy, B. A. (Oxon.)}" to "Frederick {Soddy, B.A. (Oxon.)}", ** and "Otto {Hahn, Ph. D.}" to "Otto {Hahn, Ph.D.}". ** That is, at nonzero brace level only, discard spaces after ** a period following a letter, but preserve one space before an ** open parenthesis. The output overwrites the input, so the ** string length is never permitted to grow. */ for (b_level = 0, a = 0, n = 0, name = author; /* NO-OP (exit below) */ ; ++a, ++n) { name[n] = author[a]; /* copy character */ if (author[a] == '\0') break; /* here's the loop exit */ switch (author[a]) { case '{': b_level++; break; case '}': b_level--; break; case '.': if ( (b_level > 0) && (n > 0) && Isalpha(name[n - 1]) ) { int c; c = 0; while (Isspace(author[a + 1])) /* flush space after "[A-Z][.]" */ { a++; c++; } if (c > 0) { if (author[a + 1] == '(') name[++n] = ' '; else if ((n >= 2) && (name[n - 2] == 'S') && (name[n - 1] == 't') && (name[n] == '.')) name[++n] = ' '; /* preserve "St. " */ else if ((n >= 3) && (name[n - 3] == 'S') && (name[n - 2] == 't') && (name[n - 1] == 'a') && (name[n] == '.')) name[++n] = ' '; /* preserve "Sta. " */ else if ((n >= 3) && (name[n - 3] == 'S') && (name[n - 2] == 't') && (name[n - 1] == 'e') && (name[n] == '.')) name[++n] = ' '; /* preserve "Ste. " */ } } break; default: break; } } return (name); } #if defined(HAVE_STDC) static char * fix_periods(char *author) #else /* K&R style */ static char * fix_periods(author) char *author; #endif { int b_level; /* brace level */ size_t a; /* index in author[] */ size_t n; /* index in name[] */ char *name = shared_string; /* memory-saving device */ if (fix_initials == NO) return (fix_author_degrees(author)); /* Convert "J.K. Smith" to "J. K. Smith" if "." at brace level 0 */ for (b_level = 0, a = 0, n = 0; /* NO-OP (exit below) */ ; ++a, ++n) { name[n] = author[a]; /* copy character */ if (author[a] == '\0') break; /* here's the loop exit */ switch (author[a]) { case '{': b_level++; break; case '}': b_level--; break; case '.': if (b_level == 0) { if ( (a > 0) && Isupper(author[a-1]) && Isupper(author[a+1]) ) name[++n] = (char)' '; /* supply space between initials */ } break; default: break; } } return (fix_author_degrees(name)); } void fix_title(VOID) /* protect upper-case acronyms */ { YESorNO brace_token; /* YES: brace current token (uppercase content) */ int b_level; /* brace level */ int ignore_level; /* brace level whose protection is ignored */ size_t k; /* index into s[] */ size_t nc; /* number of printable characters in current token */ YESorNO brace_protect_local; /* local modifiable copy of global brace_protect */ YESorNO need_brace; /* YES: need wrapping braces */ YESorNO font_like; /* YES: in {\em font-like group} */ YESorNO in_macro_macro; /* YES: in macro name */ char *s = shared_string; /* memory-saving device */ size_t t; /* index into current_value[] */ size_t u; /* index into current_value[] */ static const char * accent_chars = "Hbcdrtuv`'^\"~="; if (current_value[0] != '\"') return; /* leave macros alone */ brace_protect_local = brace_protect; if (fix_accents == YES) fix_accent_bracing(); if (fix_braces == YES) fix_bracing(); if (fix_math == YES) fix_math_spacing(); (void)memset(s, 0, 255); /* DEBUGGING ONLY! */ for (b_level = 0, brace_token = NO, ignore_level = 0, k = 0, nc = 0, t = 0; current_value[t] != '\0'; ) { size_t i; /* offset in current_value[] */ int start_level; /* starting brace level */ switch (current_value[t]) { case ' ': /* FALL THROUGH */ case ',': /* FALL THROUGH */ case ':': /* FALL THROUGH */ case ';': COPY_1(); brace_token = NO; nc = 0; break; case '{': if ((t == 0) || (current_value[t - 1] != '\\')) b_level++; if ( (current_value[t + 1] == '\\') && (b_level == 1) ) { ignore_level = b_level; font_like = YES; } else font_like = NO; /* ** BibTeX uses braces to protect words from downcasing. ** However, it views a backslashed word beginning a braced ** group as a font change, and the braces then do NOT ** protect against downcasing, EXCEPT that the initial ** backslashed word IS protected. Thus, "{\TeX Book}" ** gets converted to "{\TeX book}", but "{{\TeX Book}}" is ** left intact. ** ** Scan over braced group, and supply extra surrounding ** braces if the group contains uppercase letters at ** brace-level 1. However, additional braces are not ** needed if the braced group contains only a single macro ** name, or there are no uppercase letters after the macro ** name, because BibTeX preserves letter case in the ** font-change-like macro. However, further bracing ** inside a font-change-like group does NOT protect ** against downcasing: outer braces are needed. ** ** Here are some examples where correction is not needed: ** ** "{\TeX}" -> unchanged ** "{\TeX book}" -> unchanged ** "{\H{o} is a long accent}" -> unchanged ** ** These examples need additional outer braces: ** ** "\TeX" -> "{\TeX}" ** "{\em Bose--Einstein}" -> "{{\em Bose--Einstein}}" ** "{\H{O} is a long accent}" -> "{{\H{O} is a long accent}" */ for (start_level = b_level, u = t + 1; current_value[u] != '\0'; ++u) { if ( (current_value[u - 1] != '\\') && (current_value[u] == '{') ) b_level++; else if ( (current_value[u - 1] != '\\') && (current_value[u] == '}') ) { b_level--; if (b_level < start_level) break; } else if (Isupper(current_value[u]) && (b_level == ignore_level) ) brace_token = YES; } if (current_value[u] == '\0') { u--; if (current_value[u] == '\"') u--; if (b_level != 0) warning("Unbalanced brace(s) in value ``%v''"); } if ( (b_level == 0) && (brace_token == YES) ) { size_t v; /* index into current_value[] */ /* Rescan the group to see whether extra braces are needed */ for (font_like = NO, in_macro_macro = YES, v = t + 2; v <= u; ++v) { if (!Isalpha(current_value[v])) in_macro_macro = NO; if ( (in_macro_macro == NO) && Isupper(current_value[v]) ) font_like = YES; } } if ( (b_level == 0) && (brace_token == YES) && (font_like == YES) ) STORE_CHAR('{'); while (t <= u) COPY_1(); if ( (b_level == 0) && (brace_token == YES) && (font_like == YES) ) STORE_CHAR('}'); if (b_level < ignore_level) ignore_level = 0; brace_token = NO; nc = 0; break; case '}': if ((t == 0) || (current_value[t - 1] != '\\')) { b_level--; ignore_level = 0; } COPY_1(); break; case '\\': if ( ( (b_level == 0) || (b_level == ignore_level) ) && Isupper(current_value[t + 1]) ) need_brace = YES; else need_brace = NO; if ( IN_SET(accent_chars, current_value[t + 1]) && !Isalpha(current_value[t + 2]) ) { if (need_brace == YES) STORE_CHAR('{'); COPY_2(); /* e.g., "\H" followed by "{o}" */ while ( Isspace(current_value[t]) && Isspace(current_value[t + 1]) ) t++; /* discard superfluous space */ if ( Isspace(current_value[t]) && Isalpha(current_value[t + 1]) ) { t++; /* discard space after accent macro */ STORE_CHAR('{'); /* and brace single letter to be accented */ COPY_1(); STORE_CHAR('}'); } else if (Isalpha(current_value[t - 1])) { if ( (current_value[t + 0] == '{') && Isalpha(current_value[t + 1]) && (current_value[t + 2] == '}') ) COPY_3(); } else /* non-letter accent */ { if ( (current_value[t + 0] == '{') && Isalpha(current_value[t + 1]) && (current_value[t + 2] == '}') && (need_brace == YES) ) { /* discard superfluous braces */ t++; COPY_1(); t++; } } if (need_brace == YES) STORE_CHAR('}'); } else if (current_value[t + 1] == '$') /* literal dollar */ COPY_2(); else if (Isupper(current_value[t + 1])) /* e.g., "\O", "\OE", "\AA", ... */ { COPY_1(); brace_token = YES; } else COPY_1(); break; case '$': /* ** Isolate the math mode text, checking it for uppercase ** letters, and then output the entire math text ** immediately, with outer braces if needed. ** ** As part of our cleanup operations, we collapse ** adjacent normal math modes into a single one: ** "$R$$^3$" -> "$R^3$" */ i = (current_value[t + 1] == '$') ? 1 : 0; ignore_level = 0; for (u = t + 1 + i; current_value[u] != '\0'; ++u) { if ( (current_value[u + 0] == '$') && (current_value[u + i] == '$') ) { u += i; /* point to final dollar */ if ( (i == 0) && (current_value[u + 1] == '$') ) u++; /* scan over adjacent math modes */ else break; } if ( (current_value[u - 1] != '\\') && (current_value[u] == '{') ) { b_level++; if ( (current_value[u + 1] == '\\') && (b_level == 1) ) ignore_level = b_level; } else if ( (current_value[u - 1] != '\\') && (current_value[u] == '}') ) { b_level--; ignore_level = 0; } if ( ((b_level == 0) || (b_level == ignore_level) ) && Isupper(current_value[u]) ) brace_token = YES; } if (current_value[u] == '$') { size_t k_start; k_start = k; if (brace_token == YES) STORE_CHAR('{'); COPY_1(); /* copy dollar */ if ( ( k >= 5) && (s[k - 5] != '$') && (s[k - 4] == '$') && (s[k - 3] == '}') && (s[k - 2] == '{') && (s[k - 1] == '$') && (s[k + 0] != '$') ) k -= 4; /* discard "$}{$" to join adjacent braced math groups */ while (t <= u) { if ( (i == 0) && ((t + 1) < u) && (current_value[t] == '$') && (current_value[t + 1] == '$') ) t += 2; /* discard embedded "$$" in adjacent normal math mode */ COPY_1(); } if (brace_token == YES) STORE_CHAR('}'); nc += (k - k_start); /* Do NOT reset brace_token = NO: see next line */ /* Do NOT reset nc = 0: it fouls up bracing in "Cr$_2$O$_3$" */ } else /* error: output remainder of field unprocessed */ { warning("Unclosed math mode in value ``%v''"); while (current_value[t] != '\0') COPY_1(); } break; default: if ( ( (b_level == 0) || (b_level == ignore_level) ) && Isupper(current_value[t])) { /* ** No bracing needed: ** "Three Men In A Boat" ** "A Treatise on Gnats" ** ** Bracing needed: ** "C Programming" -> "{C} Programming" ** "OaSiS: Oat-rich {Sicilian} Sandwiches" -> "{OaSis}: ..." ** "X11 Window System" -> "{X11} Window System" ** "XY Plotter Manual" -> "{XY} Plotter Manual" ** ** Bracing that must be supplied by a sensible human, ** because it cannot be done by a mindless computer ** program: ** ** "Bose--Einstein statistics" -> "{Bose--Einstein} statistics" ** "Spin-Polarized Photons" -> unchanged ** "Type A People" -> "{Type A} People" */ if ((t > 0) && (current_value[t - 1] == '-')) /* NO-OP */; /* ignore, e.g., "P" in "Spin-Polarized Photons" */ else if (nc > 1) /* uppercase inside word */ brace_token = YES; /* e.g, "aBc" */ else if (Isupper(current_value[t + 1])) brace_token = YES; /* "XY" -> "{XY}" */ else if (Isdigit(current_value[t + 1])) brace_token = YES; /* "X11" -> "{X11}" */ else if ( Isspace(current_value[t + 1]) || IN_SET("}\"", current_value[t + 1]) ) /* end of 1-char token */ { if (current_value[t] != 'A') brace_token = YES; /* "C Programming" -> "{C} Programming" */ } } COPY_1(); nc++; if (current_value[t] == '\0') brace_protect_local = NO; if ( (brace_token == YES) && (brace_protect_local == YES) && (b_level == 0) ) { /* Convert XWS to {XWS} and X11 to {X11} */ /* ** bibclean versions 2.15 and earlier braced partial words, e.g., ** ** "FORTRAN-to-C" -> "{FORTRAN}-to-{C}" ** "e-CON 2011" -> "e-{CON} 2011" ** "EXcelENt" -> "{EX}cel{EN}t" ** "ExCeLeNt" -> "ExCeLeNt" <-- unbraced ** ** with code like this: ** ** while (Isupper(current_value[t]) || Isdigit(current_value[t])) ** COPY_1(); ** ** bibclean versions 2.16 and later brace complete ** blank-separated tokens, e.g., ** ** "FORTRAN-to-C" -> "{FORTRAN-to-C}" ** "e-CON 2011" -> "{e-CON 2011}" ** "EXcelENt" -> "{EXcelENt}" ** "ExCeLeNt" -> "{ExCeLeNt}" ** ** but it takes considerably more code to supply that ** feature. */ if (k > 1) /* token starts inside string */ { size_t m; /* index into s[] */ for (m = k - 1; (m > 0) && !Isspace(s[m]) && !IN_SET("${})>]", s[m]); --m) /* NO-OP */; if (Isspace(s[m]) || (s[m] == '\"') || (m == 0) || IN_SET("${})>]", s[m])) { (void)memmove(&s[m + 2], &s[m + 1], k - m); s[m + 1] = '{'; k++; /* because we inserted a brace in s[] */ } else STORE_CHAR('{'); } else STORE_CHAR('{'); while (current_value[t] != '\0') { /* copy remaining token to next blank or end of math or end of string */ if (Isspace(current_value[t])) break; else if ( (current_value[t + 0] == '$') && (t > 0) && (current_value[t - 1] != '\\') ) break; else if ((current_value[t + 0] == '\"') && (current_value[t + 1] == '\0') ) break; else COPY_1(); } /* ** Conference title acronyms with a following optional ** apostrophe and year are common ("e-CON 2011" and ** "ARITH '20"), as are computer standards ("IEEE 754"), ** and programs and their versions ("GCC 4.8-20120401"). ** Thus, we include any following token of that form ** inside the braces. Token collection stops before ** selected punctuation, whitespace, or end of string. */ if ((current_value[t] != '\0') && Isspace(current_value[t]) && (Isdigit(current_value[t + 1]) || (current_value[t + 1] == '\''))) { COPY_1(); while ( (current_value[t] != '\0') && (current_value[t] != '$') && !Isspace(current_value[t]) && !IN_SET("\",;", current_value[t]) ) { if ( (current_value[t + 0] == '\\') && (current_value[t + 1] != '$') ) COPY_2(); else COPY_1(); } } if ( (k > 0) && IN_SET(".,:;", s[k - 1]) ) { /* move close brace before final punctuation */ char c; c = s[--k]; STORE_CHAR('}'); STORE_CHAR(c); } else STORE_CHAR('}'); brace_token = NO; nc = 0; } break; } } STORE_NUL(); check_length(k); (void)strcpy(current_value,s); if (STREQUAL(¤t_value[k - 2], ".\"")) warning("Final period/dot/fullstop is unexpected, and often wrong, in BibTeX title ``%v''"); if (stristr(current_value, "...") != (char *)NULL) warning("Literal ellipsis ... should probably be \\ldots{} in BibTeX title ``%v''"); if (fix_font_changes == YES) brace_font_changes(); } /*@null@*/ #if defined(HAVE_STDC) static const char * month_token(/*@null@*/ const char *s, size_t *p_len) #else /* K&R style */ static const char * month_token(s, p_len) /*@null@*/ const char *s; size_t *p_len; #endif { /******************************************************************* ** Return pointer to next token in s[], with its length in *p_len if ** s is NULL, the parsing continues from where it was last. A token ** is either a sequence of letters, possibly with a terminal period, ** or else a single character. Outside quoted strings, all ** characters are considered non-letters. This code is vaguely ** modelled on Standard C's strtok() function. *******************************************************************/ /******************************************************************* ** Bug fix for version 2.11.4 [09-May-1998]: Prior to this version, ** a value ** ** mar # "\slash" # apr ** ** would be incorrectly transformed ** ** month = mar # "\slash" # " # apr # " ** ** because in_quoted_string was incorrect for the remainder of ** the value. ** ** If the input value was changed to ** ** mar # "\slash " # apr ** ** then that space inside the quoted string preserved the ** correctness of in_quoted_string, and the output was correct. ** ** For version 2.11.4, the body of this function has been entirely ** rewritten to simplify the logic, and ensure its correctness. *******************************************************************/ static int b_level = 0; /* remembered across calls */ static YESorNO in_quoted_string = NO; /* remembered across calls */ static const char *next = (const char *)NULL; /* remembered across calls */ const char *token; /* pointer to returned token */ if (s != (const char*)NULL) /* do we have a new s[]? */ { next = s; /* yes, remember it */ b_level = 0; /* and reinitialize state */ in_quoted_string = NO; /* variables */ } *p_len = 0; if (next == (const char*)NULL) /* then improper initialization */ return (next); token = next; switch (*next) { case '"': if (b_level == 0) in_quoted_string = (in_quoted_string == YES) ? NO : YES; break; case '{': /* '}' for brace balance */ b_level++; break; /* '{' for brace balance */ case '}': b_level--; break; default: break; } #define ADVANCE ((*p_len)++, next++) if ( (in_quoted_string == YES) && Isalpha(*next) ) { /* collect possibly-dot-terminated alphabetic token */ while (Isalpha(*next)) ADVANCE; if (*next == '.') ADVANCE; } else if (*next != '\0') /* collect single-character token */ ADVANCE; #undef ADVANCE return ((*p_len == 0) ? (const char*)NULL : token); } #if defined(HAVE_STDC) static size_t squeeze_space(/*@null@*/ char *s) #else /* K&R style */ static size_t squeeze_space(s) /*@null@*/ char *s; #endif { /* squeeze superfluous space from s[], in place, and return new length */ size_t m; if (s == (char *)NULL) m = (size_t)0; else { size_t k; for (k = 0, m = 0; s[k] != '\0'; m++) { s[m] = s[k++]; if (Isspace(s[k - 1])) { while (Isspace(s[k])) /* discard consecutive spaces */ k++; } } s[m] = '\0'; } return (m); } #if defined(HAVE_STDC) void store_space(char *s, size_t *pk) #else /* K&R style */ void store_space(s, pk) char *s size_t *pk; #endif { /* remove any trailing space, then store a space */ while ( ((*pk) > 0) && Isspace(s[(*pk) - 1]) ) (*pk)--; s[(*pk)++] = ' '; } bibclean-3.07/bibclean.ps0000664000156700015670000031516114167071264014230 0ustar beebebeebe%!PS-Adobe-3.0 %%Creator: groff version 1.23.0.rc1 %%CreationDate: Mon Jan 10 10:53:56 2022 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic %%+ font Courier %%DocumentSuppliedResources: procset grops 1.23 0 %%Pages: 16 %%PageOrder: Ascend %%DocumentMedia: Default 612 792 0 () () %%Orientation: Portrait %%EndComments %%BeginDefaults %%PageMedia: Default %%EndDefaults %%BeginProlog %%BeginResource: procset grops 1.23 0 %!PS-Adobe-3.0 Resource-ProcSet /setpacking where{ pop currentpacking true setpacking }if /grops 120 dict dup begin /SC 32 def /A/show load def /B{0 SC 3 -1 roll widthshow}bind def /C{0 exch ashow}bind def /D{0 exch 0 SC 5 2 roll awidthshow}bind def /E{0 rmoveto show}bind def /F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def /G{0 rmoveto 0 exch ashow}bind def /H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def /I{0 exch rmoveto show}bind def /J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def /K{0 exch rmoveto 0 exch ashow}bind def /L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def /M{rmoveto show}bind def /N{rmoveto 0 SC 3 -1 roll widthshow}bind def /O{rmoveto 0 exch ashow}bind def /P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def /Q{moveto show}bind def /R{moveto 0 SC 3 -1 roll widthshow}bind def /S{moveto 0 exch ashow}bind def /T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def /SF{ findfont exch [exch dup 0 exch 0 exch neg 0 0]makefont dup setfont [exch/setfont cvx]cvx bind def }bind def /MF{ findfont [5 2 roll 0 3 1 roll neg 0 0]makefont dup setfont [exch/setfont cvx]cvx bind def }bind def /level0 0 def /RES 0 def /PL 0 def /LS 0 def /MANUAL{ statusdict begin/manualfeed true store end }bind def /PLG{ gsave newpath clippath pathbbox grestore exch pop add exch pop }bind def /BP{ /level0 save def 1 setlinecap 1 setlinejoin DEFS/BPhook known{DEFS begin BPhook end}if 72 RES div dup scale LS{ 90 rotate }{ 0 PL translate }ifelse 1 -1 scale }bind def /EP{ level0 restore showpage }def /DA{ newpath arcn stroke }bind def /SN{ transform .25 sub exch .25 sub exch round .25 add exch round .25 add exch itransform }bind def /DL{ SN moveto SN lineto stroke }bind def /DC{ newpath 0 360 arc closepath }bind def /TM matrix def /DE{ TM currentmatrix pop translate scale newpath 0 0 .5 0 360 arc closepath TM setmatrix }bind def /RC/rcurveto load def /RL/rlineto load def /ST/stroke load def /MT/moveto load def /CL/closepath load def /Fr{ setrgbcolor fill }bind def /setcmykcolor where{ pop /Fk{ setcmykcolor fill }bind def }if /Fg{ setgray fill }bind def /FL/fill load def /LW/setlinewidth load def /Cr/setrgbcolor load def /setcmykcolor where{ pop /Ck/setcmykcolor load def }if /Cg/setgray load def /RE{ findfont dup maxlength 1 index/FontName known not{1 add}if dict begin { 1 index/FID ne 2 index/UniqueID ne and {def}{pop pop}ifelse }forall /Encoding exch def dup/FontName exch def currentdict end definefont pop }bind def /DEFS 0 def /EBEGIN{ moveto DEFS begin }bind def /EEND/end load def /CNT 0 def /level1 0 def /PBEGIN{ /level1 save def translate div 3 1 roll div exch scale neg exch neg exch translate 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit []0 setdash /setstrokeadjust where{ pop false setstrokeadjust }if /setoverprint where{ pop false setoverprint }if newpath /CNT countdictstack def userdict begin /showpage{}def /setpagedevice{}def mark }bind def /PEND{ cleartomark countdictstack CNT sub{end}repeat level1 restore }bind def end def /setpacking where{ pop setpacking }if %%EndResource %%EndProlog %%BeginSetup %%BeginFeature: *PageSize Default << /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice %%EndFeature %%IncludeResource: font Times-Roman %%IncludeResource: font Times-Bold %%IncludeResource: font Times-Italic %%IncludeResource: font Courier grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron /scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent /ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen /period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon /semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O /P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex /underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y /z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft /guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl /endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut /dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash /quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen /brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft /logicalnot/minus/registered/macron/degree/plusminus/twosuperior /threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior /ordmasculine/guilsinglright/onequarter/onehalf/threequarters /questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE /Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn /germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla /egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis /eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash /ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def /Courier@0 ENC0/Courier RE/Times-Italic@0 ENC0/Times-Italic RE /Times-Bold@0 ENC0/Times-Bold RE/Times-Roman@0 ENC0/Times-Roman RE %%EndSetup %%Page: 1 1 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 113.46(BIBCLEAN\(1\) General)72 48 R (Commands Manual)2.5 E(BIBCLEAN\(1\))115.96 E/F1 10.95/Times-Bold@0 SF -.219(NA)72 84 S(ME).219 E F0 (bibclean \255 prettyprint and syntax check BibT)108 96 Q (eX and Scribe bibliograph)-.7 E 2.5(yd)-.05 G(ata base \214les)-2.5 E F1(SYNOPSIS)72 112.8 Q/F2 10/Times-Bold@0 SF(bibclean)108 124.8 Q F0([) 2.5 E F2(\255author)2.5 E F0 2.5(][)2.5 G F2(\255copyleft)A F0 2.5(][) 2.5 G F2(\255copyright)A F0 2.5(][)2.5 G F2(\255err)A(or)-.18 E(-log) -.37 E/F3 10/Times-Italic@0 SF(\214lename)2.5 E F0 2.5(][)2.5 G F2 (\255help)A F0 2.5(][)2.5 G F2('\255?')A F0(])5 E([)146.62 136.8 Q F2 (\255init-\214le)2.5 E F3(\214lename)2.5 E F0 2.5(][)2.5 G F2 (\255ISBN-\214le)A F3(\214lename)2.5 E F0 2.5(][)2.5 G F2A(eyw)-.1 E(ord-\214le)-.1 E F3(\214lename)2.5 E F0(])2.5 E([)146.62 148.8 Q F2 (\255max-width)2.5 E F3(nnn)2.5 E F0 2.5(][)2.5 G F2 (\255[no-]align-equals)A F0 2.5(][)2.5 G F2(\255[no-]brace-pr)A(otect) -.18 E F0 2.5(][)2.5 G F2(\255[no-]check-v)A(alues)-.1 E F0(])2.5 E([) 146.62 160.8 Q F2(\255[no-]deb)2.5 E(ug-match-failur)-.2 E(es)-.18 E F0 2.5(][)2.5 G F2(\255[no-]delete-empty-v)A(alues)-.1 E F0 2.5(][)2.5 G F2 (\255[no-]\214le-position)A F0(])2.5 E([)146.62 172.8 Q F2 (\255[no-]\214x-accents)2.5 E F0 2.5(][)2.5 G F2(\255[no-]\214x-braces)A F0 2.5(][)2.5 G F2(\255[no-]\214x-degr)A(ees)-.18 E F0 2.5(][)2.5 G F2 (\255[no-]\214x-f)A(ont-changes)-.25 E F0(])2.5 E([)146.62 184.8 Q F2 (\255[no-]\214x-initials)2.5 E F0 2.5(][)2.5 G F2(\255[no-]\214x-math)A F0 2.5(][)2.5 G F2(\255[no-]\214x-names)A F0 2.5(][)2.5 G F2 (\255[no-]German-style)A F0(])2.5 E([)146.62 196.8 Q F2(\255[no-]k)2.5 E (eep-linebr)-.1 E(eaks)-.18 E F0 2.5(][)2.5 G F2(\255[no-]k)A(eep-parbr) -.1 E(eaks)-.18 E F0 2.5(][)2.5 G F2(\255[no-]k)A(eep-pr)-.1 E (eamble-spaces)-.18 E F0(])2.5 E([)146.62 208.8 Q F2(\255[no-]k)2.5 E (eep-spaces)-.1 E F0 2.5(][)2.5 G F2(\255[no-]k)A(eep-string-spaces)-.1 E F0 2.5(][)2.5 G F2(\255[no-]parbr)A(eaks)-.18 E F0 2.5(][)2.5 G F2 (\255[no-]pr)A(ettyprint)-.18 E F0(])2.5 E([)146.62 220.8 Q F2 (\255[no-]print-ISBN-table)2.5 E F0 2.5(][)2.5 G F2(\255[no-]print-k)A (eyw)-.1 E(ord-table)-.1 E F0 2.5(][)2.5 G F2(\255[no-]print-patter)A (ns)-.15 E F0(])2.5 E([)146.62 232.8 Q F2(\255[no-]quiet)2.5 E F0 2.5 (][)2.5 G F2(\255[no-]r)A(ead-init-\214les)-.18 E F0 2.5(][)2.5 G F2 (\255[no-]r)A(emo)-.18 E -.1(ve)-.1 G(-OPT).1 E(-pr)-.92 E(e\214xes)-.18 E F0 2.5(][)2.5 G F2(\255[no-]scribe)A F0(])2.5 E([)146.62 244.8 Q F2 (\255[no-]trace-\214le-opening)2.5 E F0 2.5(][)2.5 G F2(\255[no-]war)A (nings)-.15 E F0 2.5(][)2.5 G F2(\255output-\214le)A F3(\214lename)2.5 E F0 2.5(][)2.5 G F2A(ersion)-.1 E F0(])2.5 E F3(out\214le)143.66 268.8 Q F0(All options can be abbre)108 285.6 Q(viated to a unique leading pre\214x.)-.25 E(An e)108 302.4 Q (xplicit \214le name of `)-.15 E(`\255')-.74 E 2.5('r)-.74 G(epresents \ standard input; it is assumed if no input \214les are speci\214ed.)-2.5 E .216(On V)108 319.2 R .216(AX VMS and IBM PC DOS, the leading `)-1.35 F(`\255')-.74 E 2.716('o)-.74 G 2.716(no)-2.716 G .216 (ption names may be replaced by a slash, `)-2.716 F(`/')-.74 E .216 ('; ho)-.74 F(w-)-.25 E -2.15 -.25(ev e)108 331.2 T .8 -.4(r, t).25 H (he `).4 E(`\255')-.74 E 2.5('o)-.74 G(ption pre\214x is al)-2.5 E -.1 (wa)-.1 G(ys recognized.).1 E F1(DESCRIPTION)72 348 Q F2(bibclean)108 360 Q F0 .523(prettyprints input B)3.022 F/F4 8/Times-Roman@0 SF(IB)A F0 (T)A(E)-1.667 2.4 M 3.023<588c>-1.25 -2.4 O .523(les to)-3.023 F F3 (stdout)3.363 E F0 3.023(,o).68 G 3.023(rt)-3.023 G 3.023(oau)-3.023 G (ser)-3.023 E .523(-speci\214ed \214le, and checks the brace balance)-.2 F .984(and bibliograph)108 372 R 3.484(ye)-.05 G .984 (ntry syntax as well.)-3.484 F .984 (It can be used to detect problems in B)5.984 F F4(IB)A F0(T)A(E)-1.667 2.4 M 3.484<588c>-1.25 -2.4 O .984(les that sometimes)-3.484 F 1.444 (confuse e)108 384 R -.15(ve)-.25 G 3.944(nB).15 G F4(IB)-3.944 E F0(T)A (E)-1.667 2.4 M 3.944(Xi)-1.25 -2.4 O 1.444(tself, and importantly) -3.944 F 3.944(,c)-.65 G 1.445 (an be used to normalize the appearance of collections of)-3.944 F(B)108 396 Q F4(IB)A F0(T)A(E)-1.667 2.4 M 2.5<588c>-1.25 -2.4 O(les.)-2.5 E (Here is a summary of the formatting actions:)108 412.8 Q<83>108 429.6 Q (B)121.5 429.6 Q F4(IB)A F0(T)A(E)-1.667 2.4 M 2.608(Xi)-1.25 -2.4 O .108(tems are formatted into a consistent structure with one)-2.608 F F3 .108(\214eld = "value")2.608 F F0 .107(pair per line, and the ini-)2.607 F(tial @ and trailing right brace in column 1.)121.5 441.6 Q<83>108 458.4 Q -.8(Ta)121.5 458.4 S .761(bs are e).8 F .761 (xpanded into blank strings; their use is discouraged because the)-.15 F 3.262(yi)-.15 G .762(nhibit portability)-3.262 F 3.262(,a)-.65 G .762 (nd can)-3.262 F(suf)121.5 470.4 Q(fer corruption in electronic mail.) -.25 E<83>108 487.2 Q(Long string v)121.5 487.2 Q (alues are split at a blank and continued onto the ne)-.25 E (xt line with leading indentation.)-.15 E<83>108 504 Q 2.5(As)121.5 504 S(ingle blank line separates adjacent bibliograph)-2.5 E 2.5(ye)-.05 G (ntries.)-2.5 E<83>108 520.8 Q -1.25 -.7(Te x)121.5 520.8 T 2.5(to).7 G (utside B)-2.5 E F4(IB)A F0(T)A(E)-1.667 2.4 M 2.5(Xe)-1.25 -2.4 O (ntries is passed through v)-2.5 E(erbatim.)-.15 E<83>108 537.6 Q (Outer parentheses around entries are con)121.5 537.6 Q -.15(ve)-.4 G (rted to braces.).15 E<83>108 554.4 Q 1.078(Personal names in)121.5 554.4 R F3(author)3.907 E F0(and)4.307 E F3(editor)3.767 E F0 1.077 (\214eld v)4.307 F 1.077(alues are normalized to the form `)-.25 F(`P) -.74 E 3.577(.D)-1.11 G 3.577(.Q)-3.577 G 6.077(.B)-3.577 G(ach')-6.077 E 1.077(', from)-.74 F -.74(``)121.5 566.4 S -1.11(P.).74 G(D.Q. Bach') 1.11 E 2.5('a)-.74 G(nd `)-2.5 E(`Bach, P)-.74 E(.D.Q.)-1.11 E -.74('') -.7 G(.).74 E<83>108 583.2 Q(Hyphen sequences in page numbers are con) 121.5 583.2 Q -.15(ve)-.4 G(rted to en-dashes.).15 E<83>108 600 Q (Month v)121.5 600 Q(alues are con)-.25 E -.15(ve)-.4 G (rted to standard B).15 E F4(IB)A F0(T)A(E)-1.667 2.4 M 2.5(Xs)-1.25 -2.4 O(tring abbre)-2.5 E(viations.)-.25 E<83>108 616.8 Q .907 (In titles, sequences of upper)121.5 616.8 R .907 (-case characters at brace le)-.2 F -.15(ve)-.25 G 3.408(lz).15 G .908 (ero are braced to protect them from being)-3.408 F(con)121.5 628.8 Q -.15(ve)-.4 G(rted to lo).15 E(wer)-.25 E (-case letters by some bibliograph)-.2 E 2.5(ys)-.05 G(tyles.)-2.5 E<83> 108 645.6 Q .98(CODEN, ISBN \(International Standard Book Number\) and \ ISSN \(International Standard Serial Num-)121.5 645.6 R 1.173 (ber\) entry v)121.5 657.6 R 1.173(alues are e)-.25 F 1.173 (xamined to v)-.15 F 1.173(erify the checksums of each listed number) -.15 F 3.673(,a)-.4 G 1.174(nd correct ISBN h)-3.673 F(y-)-.05 E (phenation is automatically supplied.)121.5 669.6 Q .534 (The standardized format of the output of)108 686.4 R F2(bibclean)3.034 E F0 -.1(fa)3.034 G .534 (cilitates the later application of simple \214lters, such as).1 F F2 (bibcheck)108 698.4 Q F0(\(1\),)A F2(bibdup)4.804 E F0(\(1\),)A F2 (bibextract)4.804 E F0(\(1\),)A F2(bibindex)4.804 E F0(\(1\),)A F2 (bibjoin)4.804 E F0(\(1\),)A F2(biblabel)4.804 E F0(\(1\),)A F2(biblook) 4.805 E F0(\(1\),)A F2(biborder)4.805 E F0(\(1\),)A F2(bibsort)108 710.4 Q F0(\(1\),)A F2(cite\214nd)2.559 E F0 .059(\(1\), and)B F2(citetags) 2.559 E F0 .058(\(1\), to process the te)B .058 (xt, and also is the one e)-.15 F .058(xpected by the GNU Emacs)-.15 F (B)108 722.4 Q F4(IB)A F0(T)A(E)-1.667 2.4 M 2.5(Xs)-1.25 -2.4 O (upport functions.)-2.5 E -1.11(Ve)72 768 S(rsion 3.05)1.11 E (18 May 2020)156.785 E(1)202.335 E 0 Cg EP %%Page: 2 2 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 113.46(BIBCLEAN\(1\) General)72 48 R (Commands Manual)2.5 E(BIBCLEAN\(1\))115.96 E/F1 10.95/Times-Bold@0 SF (OPTIONS)72 84 Q F0 1.028(Command-line switches may be abbre)108 96 R 1.029(viated to a unique leading pre\214x, and letter case is)-.25 F/F2 10/Times-Italic@0 SF(not)3.889 E F0(signi\214cant.)4.209 E .513 (All options are parsed before an)108 108 R 3.013(yi)-.15 G .513 (nput bibliograph)-3.013 F 3.013<798c>-.05 G .513 (les are read, no matter what their order on the com-)-3.013 F .611 (mand line.)108 120 R .612 (Options that correspond to a yes/no setting of a \215ag ha)5.611 F .912 -.15(ve a f)-.2 H .612(orm with a pre\214x "no-" to set the).15 F .799 (\215ag to)108 132 R F2(no)3.659 E F0 5.799(.F).18 G .799 (or such options, the last setting determines the \215ag v)-5.949 F .799 (alue used.)-.25 F .799(That is signi\214cant when op-)5.799 F (tions are also speci\214ed in initialization \214les \(see the)108 144 Q/F3 10/Times-Bold@0 SF(INITIALIZA)2.5 E(TION FILES)-.95 E F0 (manual section\).)2.5 E 1.027(The leading h)108 160.8 R 1.027(yphen th\ at distinguishes an option from a \214lename may be doubled, for compat\ ibility with)-.05 F(GNU and POSIX con)108 172.8 Q -.15(ve)-.4 G 2.5 (ntions. Thus,).15 F F3(\255author)2.5 E F0(and)2.5 E F3(\255\255author) 2.5 E F0(are equi)2.5 E -.25(va)-.25 G(lent.).25 E 1.62 -.8(To a)108 189.6 T -.2(vo).6 G .02(id confusion with options, if a \214lename be).2 F .019(gins with a h)-.15 F .019 (yphen, it must be disguised by a leading abso-)-.05 F(lute or relati) 108 201.6 Q .3 -.15(ve d)-.25 H(irectory path, e.g.,).15 E F2 (/tmp/-foo.bib)3.65 E F0(or)2.73 E F2(./-foo.bib)2.73 E F0(.).23 E F3 (\255author)108 218.4 Q F0 .793 (Display an author credit on the standard error unit,)234.46 218.4 R F2 (stderr)3.634 E F0 3.294(,a).73 G .794(nd then termi-)-3.294 F .31 (nate with a success return code.)234.46 230.4 R .31(Sometimes an e)5.31 F -.15(xe)-.15 G .31(cutable program is sepa-).15 F .162 (rated from its documentation and source code; this option pro)234.46 242.4 R .162(vides a w)-.15 F .162(ay to)-.1 F(reco)234.46 254.4 Q -.15 (ve)-.15 G 2.5(rf).15 G(rom that.)-2.5 E F3(\255copyleft)108 271.2 Q F0 1.127(Display cop)234.46 271.2 R 1.127 (yright information on the standard error unit,)-.1 F F2(stderr)3.967 E F0 3.627(,a).73 G 1.127(nd then)-3.627 F (terminate with a success return code.)234.46 283.2 Q F3(\255copyright) 108 300 Q F0 1.127(Display cop)234.46 300 R 1.127 (yright information on the standard error unit,)-.1 F F2(stderr)3.967 E F0 3.627(,a).73 G 1.127(nd then)-3.627 F (terminate with a success return code.)234.46 312 Q F3(\255err)108 328.8 Q(or)-.18 E(-log)-.37 E F2(\214lename)2.5 E F0(Redirect)234.46 328.8 Q F2(stderr)3.06 E F0 .219 (to the indicated \214le, which then contains all of the error and)3.45 F -.1(wa)234.46 340.8 S .434(rning messages.).1 F .434 (This option is pro)5.434 F .435(vided for those systems that ha)-.15 F .735 -.15(ve d)-.2 H(if-).15 E(\214culty redirecting)234.46 352.8 Q F2 (stderr)2.84 E F0(.).73 E F3(\255help)108 369.6 Q F0(or)2.5 E F3 2.5 E F0 .164(Display a help message on)234.46 369.6 R F2(stderr)3.003 E F0 2.663(,g).73 G -.25(iv)-2.663 G .163 (ing a usage description, similar to this).25 F(section of the manual p\ ages, and then terminate with a success return code.)234.46 381.6 Q F3 (\255ISBN-\214le)108 398.4 Q F2(\214lename)2.5 E F0(Pro)234.46 398.4 Q .718(vide an e)-.15 F .718(xplicit ISBN-range initialization \214le.) -.15 F .718(It is processed)5.718 F F2(after)3.548 E F0(an)3.948 E(y) -.15 E .336 (system-wide and job-wide ISBN initialization \214les found on the) 234.46 410.4 R F3 -.74(PA)2.836 G(TH)-.21 E F0(\(for)2.836 E -1.35(VA) 234.46 422.4 S 3.715(XV)1.35 G(MS,)-3.715 E F3(SYS$SYSTEM)3.715 E F0 3.716(\)a)C(nd)-3.716 E F3(BIBINPUTS)3.716 E F0 1.216 (search paths, respecti)3.716 F -.15(ve)-.25 G(ly).15 E(,)-.65 E .763 (and may o)234.46 434.4 R -.15(ve)-.15 G .763(rride them.).15 F .763 (The ISBN initialization \214le name can be changed)5.763 F .137 (at compile time, or at run time through a setting of the en)234.46 446.4 R .137(vironment v)-.4 F(ariable)-.25 E F3(BIBCLEANISBN)234.46 458.4 Q F0 6.333(,b)C 3.833(ut def)-6.533 F 3.833(aults to)-.1 F F2 (.bibclean.isbn)6.563 E F0 3.832(on UNIX, and)6.572 F F2(bib-)6.602 E (clean.isb)234.46 470.4 Q F0(else)3.357 E 3.127(where. F)-.25 F .627 (or further details, see the)-.15 F F3 .628(ISBN INITIALIZA)3.128 F (TION)-.95 E(FILES)234.46 482.4 Q F0(manual section.)2.5 E F3 (\255init-\214le)108 499.2 Q F2(\214lename)2.5 E F0(Pro)234.46 499.2 Q .348(vide an e)-.15 F .348(xplicit v)-.15 F .347 (alue pattern initialization \214le.)-.25 F .347(It is processed)5.347 F F2(after)3.177 E F0(an)3.577 E(y)-.15 E .583 (system-wide and job-wide initialization \214les found on the)234.46 511.2 R F3 -.74(PA)3.083 G(TH)-.21 E F0 .583(\(for V)3.083 F(AX)-1.35 E (VMS,)234.46 523.2 Q F3(SYS$SYSTEM)4.555 E F0 4.555(\)a)C(nd)-4.555 E F3 (BIBINPUTS)4.554 E F0 2.054(search paths, respecti)4.554 F -.15(ve)-.25 G(ly).15 E 4.554(,a)-.65 G(nd)-4.554 E .747(may o)234.46 535.2 R -.15 (ve)-.15 G .747(rride them.).15 F .747(It in turn may be o)5.747 F -.15 (ve)-.15 G .748(rridden by a subsequent \214le-spe-).15 F .684 (ci\214c initialization \214le.)234.46 547.2 R .684 (The initialization \214le name can be changed at com-)5.684 F .435 (pile time, or at run time through a setting of the en)234.46 559.2 R .436(vironment v)-.4 F(ariable)-.25 E F3(BIB-)2.936 E(CLEANINI)234.46 571.2 Q F0 2.896(,b)C .396(ut def)-3.096 F .396(aults to)-.1 F F2 (.bibcleanr)3.126 E(c)-.37 E F0 .396(on UNIX, and to)3.206 F F2 (bibclean.ini)3.166 E F0(else-)3.256 E 2.808(where. F)234.46 583.2 R .309(or further details, see the)-.15 F F3(INITIALIZA)2.809 E .309 (TION FILES)-.95 F F0 .309(manual sec-)2.809 F(tion.)234.46 595.2 Q F3 108 612 Q(eyw)-.1 E(ord-\214le)-.1 E F2(\214lename)2.5 E F0(Pro) 234.46 612 Q .205(vide an e)-.15 F .205(xplicit k)-.15 F -.15(ey)-.1 G -.1(wo).15 G .205(rd initialization \214le.).1 F .204(It is processed) 5.205 F F2(after)3.034 E F0(an)3.434 E 2.704(ys)-.15 G(ys-)-2.704 E .428 (tem-wide and job-wide k)234.46 624 R -.15(ey)-.1 G -.1(wo).15 G .428 (rd initialization \214les found on the).1 F F3 -.74(PA)2.928 G(TH)-.21 E F0(\(for)2.928 E -1.35(VA)234.46 636 S 3.716(XV)1.35 G(MS,)-3.716 E F3 (SYS$SYSTEM)3.716 E F0 3.716(\)a)C(nd)-3.716 E F3(BIBINPUTS)3.716 E F0 1.215(search paths, respecti)3.716 F -.15(ve)-.25 G(ly).15 E(,)-.65 E 3.235(and may o)234.46 648 R -.15(ve)-.15 G 3.235(rride them.).15 F 3.235(The k)8.235 F -.15(ey)-.1 G -.1(wo).15 G 3.235 (rd initialization \214le name can be).1 F .032 (changed at compile time, or at run time through a setting of the en) 234.46 660 R(vironment)-.4 E -.25(va)234.46 672 S(riable).25 E F3 (BIBCLEANKEY)2.671 E F0 2.671(,b)C .171(ut def)-2.871 F .171(aults to) -.1 F F2(.bibclean.k)2.901 E -.3(ey)-.1 G F0 .171(on UNIX, and)3.291 F F2(bib-)2.942 E(clean.k)234.46 684 Q -.3(ey)-.1 G F0(else)4.657 E 4.037 (where. F)-.25 F 1.536(or further details, see the)-.15 F F3(KEYW)4.036 E 1.536(ORD INITIAL-)-.1 F(IZA)234.46 696 Q(TION FILES)-.95 E F0 (manual section.)2.5 E F3(\255max-width)108 712.8 Q F2(nnn)2.5 E F3 (bibclean)234.46 712.8 Q F0 .578 (normally limits output line widths to 72 characters, and in the in-) 3.077 F 2.569(terests of consistenc)234.46 724.8 R 3.869 -.65(y, t)-.15 H 2.569(hat v).65 F 2.569(alue should not be changed.)-.25 F (Occasionally)7.568 E(,)-.65 E -1.11(Ve)72 768 S(rsion 3.05)1.11 E (18 May 2020)156.785 E(2)202.335 E 0 Cg EP %%Page: 3 3 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 113.46(BIBCLEAN\(1\) General)72 48 R (Commands Manual)2.5 E(BIBCLEAN\(1\))115.96 E .138 (special-purpose applications may require dif)234.46 84 R .139 (ferent maximum line widths, so)-.25 F .327(this option pro)234.46 96 R .327(vides that capability)-.15 F 5.327(.T)-.65 G .327(he number follo) -5.327 F .327(wing the option name)-.25 F .345 (can be speci\214ed in decimal, octal \(starting with 0\), or he)234.46 108 R .346(xadecimal \(starting)-.15 F 1.902(with 0x\).)234.46 120 R 4.402(Az)6.902 G 1.902(ero or ne)-4.402 F -.05(ga)-.15 G(ti).05 E 2.202 -.15(ve v)-.25 H 1.901(alue is interpreted to mean unlimited, so)-.1 F /F1 10/Times-Bold@0 SF(\255max-width)234.46 132 Q/F2 10/Times-Italic@0 SF(0)2.875 E F0 .375(can be used to ensure that each \214eld/v)2.875 F .376(alue pair appears on a)-.25 F(single line.)234.46 144 Q(When)234.46 160.8 Q F1(\255no-pr)3.868 E(ettyprint)-.18 E F0(requests)3.868 E F1 (bibclean)3.868 E F0 1.368(to act as a le)3.868 F 1.368(xical analyzer) -.15 F 3.868(,t)-.4 G(he)-3.868 E(def)234.46 172.8 Q (ault line width is unlimited, unless o)-.1 E -.15(ve)-.15 G (rridden by this option.).15 E(When)234.46 189.6 Q F1(bibclean)4.394 E F0 1.895(is prettyprinting, line wrapping is done only at a space.)4.394 F(Consequently)234.46 201.6 Q 2.763(,al)-.65 G .263 (ong non-blank character sequence may result in the output)-2.763 F -.15 (ex)234.46 213.6 S(ceeding the requested line width.).15 E(When)234.46 230.4 Q F1(bibclean)3.726 E F0 1.226(is le)3.726 F 1.226 (xing, line wrapping is done by inserting a backslash-)-.15 F(ne)234.46 242.4 Q .219(wline pair when the speci\214ed maximum is reached, so no \ line length e)-.25 F -.15(ve)-.25 G(r).15 E -.15(ex)234.46 254.4 S (ceeds the maximum.).15 E F1(\255[no-]align-equals)108 271.2 Q F0 -.4 (Wi)234.46 271.2 S .131(th the positi).4 F .431 -.15(ve f)-.25 H .132 (orm, align the equals sign in k).15 F -.15(ey)-.1 G(/v).15 E .132 (alue assignments at the)-.25 F .204 (same column, separated by a single space from the v)234.46 283.2 R .203 (alue string.)-.25 F(Otherwise,)5.203 E(the equals sign follo)234.46 295.2 Q(ws the k)-.25 E -.15(ey)-.1 G 2.5(,s)-.5 G (eparated by a single space.)-2.5 E(Def)5 E(ault:)-.1 E F2(no)2.86 E F0 (.).18 E F1(\255[no-]brace-pr)108 312 Q(otect)-.18 E F0 1.184 (Protect uppercase and mix)234.46 312 R 1.184(edcase w)-.15 F 1.184 (ords at brace-le)-.1 F -.15(ve)-.25 G 3.684(lz).15 G 1.184 (ero with braces to)-3.684 F(pre)234.46 324 Q -.15(ve)-.25 G(nt do).15 E (wncasing by some B)-.25 E/F3 8/Times-Roman@0 SF(IB)A F0(T)A(E)-1.667 2.4 M 2.5(Xs)-1.25 -2.4 O 2.5(tyles. Def)-2.5 F(ault:)-.1 E F2(yes)3.24 E F0(.).27 E F1(\255[no-]check-v)108 340.8 Q(alues)-.1 E F0 -.4(Wi) 234.46 340.8 S 1.157(th the positi).4 F 1.457 -.15(ve f)-.25 H 1.156 (orm, apply heuristic pattern matching to \214eld v).15 F 1.156 (alues in)-.25 F 1.629(order to detect possible errors \(e.g., `)234.46 352.8 R(`)-.74 E F2 1.629(year = "192")B F0 3.109 -.74('' i)D 1.629 (nstead of `).74 F(`)-.74 E F2 1.63(year =)B("1992")234.46 364.8 Q F0 -.74('')C(\), and issue w).74 E(arnings when une)-.1 E (xpected patterns are found.)-.15 E .155 (That checking is usually bene\214cial, b)234.46 381.6 R .155 (ut if it produces too man)-.2 F 2.655(yb)-.15 G .155(ogus w)-2.655 F (arn-)-.1 E 1.005(ings for a particular bibliograph)234.46 393.6 R 3.505 <798c>-.05 G 1.005(le, you can disable it with the ne)-3.505 F -.05(ga) -.15 G(ti).05 E -.15(ve)-.25 G(form of this option.)234.46 405.6 Q(Def)5 E(ault:)-.1 E F2(yes)3.24 E F0(.).27 E F1(\255[no-]deb)108 422.4 Q (ug-match-failur)-.2 E(es)-.18 E F0 -.4(Wi)234.46 422.4 S 1.466 (th the positi).4 F 1.766 -.15(ve f)-.25 H 1.466(orm, print out a w).15 F 1.465(arning when a v)-.1 F 1.465(alue pattern f)-.25 F 1.465(ails to) -.1 F(match a v)234.46 434.4 Q(alue string.)-.25 E .067 (That is helpful in deb)234.46 451.2 R .068(ugging ne)-.2 F 2.568(wp) -.25 G .068(atterns, b)-2.568 F .068(ut because the output can be v)-.2 F(o-)-.2 E .783(luminous, you should use this option only with small te\ st \214les, and initial-)234.46 463.2 R .451(ization \214les that elimi\ nate all patterns apart from the ones that you are test-)234.46 475.2 R 2.5(ing. Def)234.46 487.2 R(ault:)-.1 E F2(no)2.86 E F0(.).18 E F1 (\255[no-]delete-empty-v)108 504 Q(alues)-.1 E F0 -.4(Wi)234.46 504 S .083(th the positi).4 F .383 -.15(ve f)-.25 H .083(orm, remo).15 F .382 -.15(ve a)-.15 H .082(ll \214eld/v).15 F .082 (alue pairs for which the v)-.25 F .082(alue is an)-.25 F .724 (empty string.)234.46 516 R .724 (That is helpful in cleaning up bibliographies generated from)5.724 F (te)234.46 528 Q 1.882(xt editor templates. Compare this option with) -.15 F F1(\255[no-]r)4.381 E(emo)-.18 E -.1(ve)-.1 G(-OPT).1 E(-pr)-.92 E(e-)-.18 E(\214xes)234.46 540 Q F0(described belo)2.5 E 3.8 -.65(w. D) -.25 H(ef).65 E(ault:)-.1 E F2(no)2.86 E F0(.).18 E F1 (\255[no-]\214le-position)108 556.8 Q F0 -.4(Wi)234.46 556.8 S 1.435 (th the positi).4 F 1.735 -.15(ve f)-.25 H 1.435(orm, gi).15 F 1.735 -.15(ve d)-.25 H 1.435(etailed \214le position information in w).15 F (arning)-.1 E(and error messages.)234.46 568.8 Q(Def)5 E(ault:)-.1 E F2 (no)2.86 E F0(.).18 E F1(\255[no-]\214x-accents)108 585.6 Q F0 -.4(Wi) 234.46 585.6 S .791(th the positi).4 F 1.091 -.15(ve f)-.25 H .791 (orm, normalize T).15 F(E)-1.667 2.4 M 3.291(Xa)-1.25 -2.4 O .79 (ccents in annotes, authors, bookti-)-3.291 F (tles, editors, notes, remarks, and titles.)234.46 597.6 Q(Def)5 E (ault:)-.1 E F2(no)2.86 E F0(.).18 E F1(\255[no-]\214x-braces)108 614.4 Q F0 -.4(Wi)234.46 614.4 S 1.478(th the positi).4 F 1.779 -.15(ve f)-.25 H 1.479(orm, normalize bracing in annotes, authors, booktitles,).15 F 3.367(editors, notes, remarks, and titles, by remo)234.46 626.4 R 3.366 (ving unnecessary le)-.15 F -.15(ve)-.25 G 3.366(ls of).15 F 2.5 (braces. Def)234.46 638.4 R(ault:)-.1 E F2(no)2.86 E F0(.).18 E F1 (\255[no-]\214x-degr)108 655.2 Q(ees)-.18 E F0 -.4(Wi)234.46 655.2 S .918(th the positi).4 F 1.218 -.15(ve f)-.25 H .918(orm, remo).15 F 1.218 -.15(ve s)-.15 H .918 (paces in author/editor \214elds inside braces).15 F .462(after letter) 234.46 667.2 R .462(-ending periods.)-.2 F .462(That mak)5.462 F .462 (es reductions from)-.1 F F2 .962 -.25(J. J. {)2.962 H .462(Thomson, M.) .25 F .846(A., F)234.46 679.2 R 3.346(.R)-1.35 G 3.346(.S)-3.346 G(.}) -3.346 E F0(,)A F2 -1.77 -.55(Fr e)3.346 H(deric).55 E 3.346(k{)-.2 G (Soddy)-3.346 E 3.346(,B)-.55 G 3.346(.A)-3.346 G 3.346(.\()-3.346 G (Oxon.\)})-3.346 E F0 3.347(,a)C(nd)-3.347 E F2 -.25(Jo)3.347 G .847 (hn A. {Cable).25 F 3.347(,M)-.1 G 3.347(.A)-3.347 G(.,)-3.347 E 1.142 (M. Ed., Dipl. Deutsc)234.46 691.2 R 3.642(h\()-.15 G(Marb)-3.642 E(ur) -.2 E 1.142(g\), A. L. C. M.})-.37 F F0(to)3.641 E F1 1.541 -.2(J. J. {) 3.641 H 1.141(Thomson, M.A.,).2 F -1.1(F.)234.46 703.2 S(R.S.})1.1 E F0 (,)A F1(Fr)4.516 E 2.016(ederick {Soddy)-.18 F 4.516(,B)-.55 G 2.017 (.A. \(Oxon.\)})-4.516 F F0 4.517(,a)C(nd)-4.517 E F1 -.15(Jo)4.517 G 2.017(hn A. {Cable, M.A.,).15 F(M.Ed., Dipl.Deutsch \(Marb)234.46 715.2 Q(ur)-.2 E(g\), A.L.C.M.})-.1 E F0 2.5(,r)C(especti)-2.5 E -.15(ve)-.25 G(ly).15 E(.)-.65 E -1.11(Ve)72 768 S(rsion 3.05)1.11 E(18 May 2020) 156.785 E(3)202.335 E 0 Cg EP %%Page: 4 4 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 113.46(BIBCLEAN\(1\) General)72 48 R (Commands Manual)2.5 E(BIBCLEAN\(1\))115.96 E .458(In journals in the h\ umanities and history of science, as well as in some sci-)234.46 84 R 1.548(enti\214c journals until well into the 20th Century)234.46 96 R 4.048(,a)-.65 G 1.548(cademic, honorary)-4.048 F 4.048(,a)-.65 G(nd) -4.048 E 1.318(professional titles and de)234.46 108 R 1.318 (grees are commonly attached to personal names.)-.15 F(Ev)234.46 120 Q .498(en though modern publishing practice a)-.15 F -.2(vo)-.2 G .498 (ids such decorations, for accu-).2 F(rac)234.46 132 Q 1.308 -.65(y, b) -.15 H(ibliograph).65 E 2.508(ye)-.05 G .008 (ntries should preferably retain them.)-2.508 F .007(Journal typograph-) 5.007 F(ical practice generally follo)234.46 144 Q (ws the reductions described here.)-.25 E/F1 10/Times-Bold@0 SF (\255[no-]\214x-f)108 160.8 Q(ont-changes)-.25 E F0 -.4(Wi)234.46 160.8 S .01(th the positi).4 F .311 -.15(ve f)-.25 H .011 (orm, supply an additional brace le).15 F -.15(ve)-.25 G 2.511(la).15 G .011(round font changes)-2.511 F 3.369(in titles to protect ag)234.46 172.8 R 3.369(ainst do)-.05 F 3.369(wncasing by some B)-.25 F/F2 8 /Times-Roman@0 SF(IB)A F0(T)A(E)-1.667 2.4 M 5.868(Xs)-1.25 -2.4 O 5.868 (tyles. F)-5.868 F(ont)-.15 E(changes that already ha)234.46 184.8 Q .3 -.15(ve m)-.2 H(ore than one le).15 E -.15(ve)-.25 G 2.5(lo).15 G 2.5 (fb)-2.5 G(races are not modi\214ed.)-2.5 E -.15(Fo)234.46 201.6 S 4.338 (re).15 G 1.838(xample, if a title contains the Latin phrase)-4.488 F/F3 10/Times-Italic@0 SF 1.839({\\em Dictyostelium dis-)4.328 F(coideum}) 234.46 213.6 Q F0(or)5.269 E F3 2.769({\\em {D}ictyostelium discoideum}) 5.259 F F0 5.268(,t)C 2.768(hen do)-5.268 F 2.768(wncasing incor)-.25 F (-)-.2 E .334(rectly con)234.46 225.6 R -.15(ve)-.4 G .334 (rts the phrase to lo).15 F(wer)-.25 E .334(-case letters.)-.2 F .334 (Most B)5.334 F F2(IB)A F0(T)A(E)-1.667 2.4 M 2.835(Xu)-1.25 -2.4 O .335 (sers are sur)-2.835 F(-)-.2 E .87 (prised that bracing the initial letters does not pre)234.46 237.6 R -.15(ve)-.25 G .87(nt the do).15 F .87(wncase action.)-.25 F 1.715 (The correct coding is)234.46 249.6 R F3 1.715 ({{\\em Dictyostelium discoideum}})4.205 F F0 6.715(.H)C -.25(ow)-6.715 G -2.15 -.25(ev e).25 H 2.515 -.4(r, t).25 H(here).4 E 1.156 (are also le)234.46 261.6 R 1.156(gitimate cases where an e)-.15 F 1.155 (xtra le)-.15 F -.15(ve)-.25 G 3.655(lo).15 G 3.655(fb)-3.655 G 1.155 (racing wrongly protects)-3.655 F .124(from do)234.46 273.6 R 2.624 (wncasing. Consequently)-.25 F(,)-.65 E F1(bibclean)2.624 E F0 .124 (normally does)2.624 F F3(not)2.985 E F0 .125(supply an e)3.305 F(x-) -.15 E .188(tra le)234.46 285.6 R -.15(ve)-.25 G 2.688(lo).15 G 2.687 (fb)-2.688 G .187(races, b)-2.687 F .187(ut if you ha)-.2 F .487 -.15 (ve a b)-.2 H(ibliograph).15 E 2.687(yw)-.05 G .187(here the e)-2.687 F .187(xtra braces are)-.15 F (routinely missing, you can use this option to supply them.)234.46 297.6 Q .581(If you think that you need this option, it is)234.46 314.4 R F3 (str)3.422 E(ongly)-.45 E F0 .582(recommended that you)3.402 F(apply) 234.46 326.4 Q F1(bibclean)6.065 E F0 3.565(to your bibliograph)6.065 F 6.064<798c>-.05 G 3.564(le with and without)-6.064 F F16.064 E(ont-)-.25 E(changes)234.46 338.4 Q F0 3.473(,t)C .973 (hen compare the tw)-3.473 F 3.473(oo)-.1 G .973 (utput \214les to ensure that e)-3.473 F .974(xtra braces are)-.15 F .332(not being supplied in titles where the)234.46 350.4 R 2.832(ys)-.15 G .331(hould not be present.)-2.832 F -1.1(Yo)5.331 G 2.831(um)1.1 G .331(ust de-)-2.831 F .361(cide which of the tw)234.46 362.4 R 2.861(oo) -.1 G .362(utput \214les is the better choice, then repair the incor) -2.861 F(-)-.2 E(rect title bracing by hand.)234.46 374.4 Q .874 (Because font changes in titles are uncommon, e)234.46 391.2 R .873 (xcept for cases of the type)-.15 F 1.132(that this option is designed \ to correct, it should do more good than harm.)234.46 403.2 R(Def)234.46 415.2 Q(ault:)-.1 E F3(no)2.86 E F0(.).18 E F1(\255[no-]\214x-initials) 108 432 Q F0 -.4(Wi)234.46 432 S 1.271(th the positi).4 F 1.571 -.15 (ve f)-.25 H 1.271(orm, insert a space after a period follo).15 F 1.27 (wing author ini-)-.25 F 2.5(tials. Def)234.46 444 R(ault:)-.1 E F3(yes) 3.24 E F0(.).27 E F1(\255[no-]\214x-math)108 460.8 Q F0 -.4(Wi)234.46 460.8 S .115(th the positi).4 F .415 -.15(ve f)-.25 H .115(orm, impro) .15 F .415 -.15(ve r)-.15 H .115 (eadability of math mode in titles by insert-).15 F .796(ing spaces aro\ und operators, deleting other unnecessary space, and remo)234.46 472.8 R (v-)-.15 E (ing braces around single-character subscripts and superscripts.)234.46 484.8 Q(Def)5 E(ault:)-.1 E F3(no)2.86 E F0(.).18 E F1 (\255[no-]\214x-names)108 501.6 Q F0 -.4(Wi)234.46 501.6 S 1.991 (th the positi).4 F 2.292 -.15(ve f)-.25 H 1.992(orm, reorder).15 F F3 (author)4.822 E F0(and)5.222 E F3(editor)4.682 E F0 1.992 (name lists to remo)5.222 F -.15(ve)-.15 G .084(commas at brace le) 234.46 513.6 R -.15(ve)-.25 G 2.584(lz).15 G .083 (ero, placing \214rst names or initials before last names.)-2.584 F(Def) 234.46 525.6 Q(ault:)-.1 E F3(yes)3.24 E F0(.).27 E F1 (\255[no-]German-style)108 542.4 Q F0 -.4(Wi)234.46 542.4 S 1.418 (th the positi).4 F 1.718 -.15(ve f)-.25 H 1.418 (orm, interpret quote characters ["] inside).15 F F3(br)4.188 E(aced) -.15 E F0 -.25(va)4.688 G(lue).25 E 1.347(strings at brace le)234.46 554.4 R -.15(ve)-.25 G 3.847(l1a).15 G 1.347(ccording to the con)-3.847 F -.15(ve)-.4 G 1.346(ntions of the T).15 F(E)-1.667 2.4 M 3.846(Xs) -1.25 -2.4 O 1.346(tyle \214le)-3.846 F F3 -.1(ge)234.46 566.4 S (rman.sty).1 E F0 3.591(,w).32 G 1.091(hich o)-3.591 F -.15(ve)-.15 G 1.091(rloads quote to simplify input and representation of).15 F 1.424 (German umlaut accents, sharp-s \(es-zet\), lig)234.46 578.4 R 1.424 (ature separators, in)-.05 F 1.423(visible h)-.4 F(y-)-.05 E .087 (phens, raised/lo)234.46 590.4 R .087 (wered quotes, French guillemets, and discretionary h)-.25 F(yphens.) -.05 E .814(Recognized character combinations are braced to pre)234.46 602.4 R -.15(ve)-.25 G .814(nt B).15 F F2(IB)A F0(T)A(E)-1.667 2.4 M 3.314(Xf)-1.25 -2.4 O .814(rom in-)-3.314 F (terpreting the quote as a string delimiter)234.46 614.4 Q(.)-.55 E 1.515(Quoted strings recei)234.46 631.2 R 1.815 -.15(ve n)-.25 H 4.015 (os).15 G 1.515(pecial handling from this option, and because)-4.015 F .478(German nouns in titles must an)234.46 643.2 R(yw)-.15 E .477 (ay be protected from the do)-.1 F .477(wncasing op-)-.25 F .883 (eration of most B)234.46 655.2 R F2(IB)A F0(T)A(E)-1.667 2.4 M 3.384 (Xb)-1.25 -2.4 O(ibliograph)-3.384 E 3.384(ys)-.05 G .884 (tyles, German v)-3.384 F .884(alue strings that use)-.25 F 1.089(the o) 234.46 667.2 R -.15(ve)-.15 G 1.089(rloaded quote character can al).15 F -.1(wa)-.1 G 1.089(ys be entered in the form "{.).1 F 1.666(..)1.666 G (}",)-1.666 E(without the need to specify this option at all.)234.46 679.2 Q(Def)234.46 696 Q(ault:)-.1 E F3(no)2.86 E F0(.).18 E F1 (\255[no-]k)108 712.8 Q(eep-linebr)-.1 E(eaks)-.18 E F0(Normally)234.46 712.8 Q 3.064(,l)-.65 G .564(ine breaks inside v)-3.064 F .565 (alue strings are collapsed into a single space,)-.25 F .49 (so that long v)234.46 724.8 R .49(alue strings can later be brok)-.25 F .49(en to pro)-.1 F .49(vide lines of reasonable)-.15 F -1.11(Ve)72 768 S(rsion 3.05)1.11 E(18 May 2020)156.785 E(4)202.335 E 0 Cg EP %%Page: 5 5 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 113.46(BIBCLEAN\(1\) General)72 48 R (Commands Manual)2.5 E(BIBCLEAN\(1\))115.96 E(length.)234.46 84 Q -.4 (Wi)234.46 100.8 S .554(th the positi).4 F .854 -.15(ve f)-.25 H .554 (orm, linebreaks are preserv).15 F .555(ed in v)-.15 F .555 (alue strings.)-.25 F(If)5.555 E/F1 10/Times-Bold@0 SF(\255max-)3.055 E (width)234.46 112.8 Q F0 .234(is set to zero, this preserv)2.735 F .234 (es the original line breaks.)-.15 F(Spacing)5.234 E/F2 10 /Times-Italic@0 SF(outside)2.964 E F0 -.25(va)234.46 124.8 S 1.056 (lue strings remains under).25 F F1(bibclean)3.556 E F0 2.156 -.55('s c) D 1.056(ontrol, and is not af).55 F 1.057(fected by this)-.25 F(option.) 234.46 136.8 Q(Def)234.46 153.6 Q(ault:)-.1 E F2(no)2.86 E F0(.).18 E F1 (\255[no-]k)108 170.4 Q(eep-parbr)-.1 E(eaks)-.18 E F0 -.4(Wi)234.46 170.4 S 2.305(th the positi).4 F 2.605 -.15(ve f)-.25 H 2.305 (orm, preserv).15 F 4.804(ep)-.15 G 2.304 (aragraph breaks \(either formfeeds, or)-4.804 F .844 (lines containing only spaces\) in v)234.46 182.4 R .845(alue strings.) -.25 F(Normally)5.845 E 3.345(,p)-.65 G .845(aragraph breaks)-3.345 F .216(are collapsed into a single space.)234.46 194.4 R(Spacing)5.215 E F2(outside)2.945 E F0 -.25(va)2.895 G .215(lue strings remains un-).25 F (der)234.46 206.4 Q F1(bibclean)2.5 E F0 1.1 -.55('s c)D (ontrol, and is not af).55 E(fected by this option.)-.25 E(Def)5 E (ault:)-.1 E F2(no)2.86 E F0(.).18 E F1(\255[no-]k)108 223.2 Q(eep-pr) -.1 E(eamble-spaces)-.18 E F0 -.4(Wi)234.46 223.2 S .612(th the positi) .4 F .912 -.15(ve f)-.25 H .612(orm, preserv).15 F 3.112(ea)-.15 G .612 (ll whitespace in @Preamble{.)-3.112 F 1.666(..)1.666 G 3.112(}e)-1.666 G(ntries.)-3.112 E(Def)234.46 235.2 Q(ault:)-.1 E F2(no)2.86 E F0(.).18 E F1(\255[no-]k)108 252 Q(eep-spaces)-.1 E F0 -.4(Wi)234.46 252 S .297 (th the positi).4 F .597 -.15(ve f)-.25 H .297(orm, preserv).15 F 2.796 (ea)-.15 G .296(ll spaces in v)-2.796 F .296(alue strings.)-.25 F (Normally)5.296 E 2.796(,m)-.65 G(ul-)-2.796 E .921 (tiple spaces are collapsed into a single space.)234.46 264 R .922 (This option can be used to-)5.922 F 2.2(gether with)234.46 276 R F1 4.7 E(eep-linebr)-.1 E(eaks)-.18 E F0(,)A F14.7 E(eep-parbr) -.1 E(eaks)-.18 E F0 4.7(,a)C(nd)-4.7 E F1(\255max-width)4.7 E F2(0)4.7 E F0(to)4.7 E(preserv)234.46 288 Q 4.165(et)-.15 G 1.665(he form of v) -4.165 F 1.665(alue strings while still pro)-.25 F 1.666 (viding syntax and v)-.15 F(alue)-.25 E 3.349(checking. Spacing)234.46 300 R F2(outside)3.579 E F0 -.25(va)3.529 G .849 (lue strings remains under).25 F F1(bibclean)3.348 E F0 1.948 -.55('s c) D(ontrol,).55 E(and is not af)234.46 312 Q(fected by this option.)-.25 E (Def)5 E(ault:)-.1 E F2(no)2.86 E F0(.).18 E F1(\255[no-]k)108 328.8 Q (eep-string-spaces)-.1 E F0 -.4(Wi)234.46 328.8 S 2.092(th the positi).4 F 2.392 -.15(ve f)-.25 H 2.092(orm, preserv).15 F 4.592(ea)-.15 G 2.092 (ll whitespace in @String{.)-4.592 F 1.666(..)1.666 G 4.592(}e)-1.666 G (ntries.)-4.592 E(Def)234.46 340.8 Q(ault:)-.1 E F2(no)2.86 E F0(.).18 E F1(\255[no-]parbr)108 357.6 Q(eaks)-.18 E F0 -.4(Wi)234.46 357.6 S .319 (th the ne).4 F -.05(ga)-.15 G(ti).05 E .619 -.15(ve f)-.25 H .318 (orm, a paragraph break \(either a formfeed, or a line con-).15 F .299 (taining only spaces\) is not permitted in v)234.46 369.6 R .299 (alue strings, or between \214eld/v)-.25 F(alue)-.25 E 2.755 (pairs. That)234.46 381.6 R .254(may be useful to quickly trap runa) 2.755 F -.1(wa)-.15 G 2.754(ys).1 G .254(trings arising from mis-)-2.754 F(matched delimiters.)234.46 393.6 Q(Def)5 E(ault:)-.1 E F2(yes)3.24 E F0(.).27 E F1(\255[no-]pr)108 410.4 Q(ettyprint)-.18 E F0(Normally) 234.46 410.4 Q(,)-.65 E F1(bibclean)2.603 E F0 .103 (functions as a prettyprinter)2.603 F 5.103(.H)-.55 G -.25(ow)-5.103 G -2.15 -.25(ev e).25 H .904 -.4(r, w).25 H .104(ith the ne).4 F -.05(ga) -.15 G(ti).05 E -.15(ve)-.25 G .463 (form of this option, it acts as a le)234.46 422.4 R .463 (xical analyzer instead, producing a stream)-.15 F .881(of le)234.46 434.4 R .881(xical tok)-.15 F 3.381(ens. See)-.1 F(the)3.381 E F1 .881 (LEXICAL AN)3.381 F(AL)-.2 E(YSIS)-.92 E F0 .881(manual section for fur) 3.381 F(-)-.2 E(ther details.)234.46 446.4 Q(Def)5 E(ault:)-.1 E F2(yes) 3.24 E F0(.).27 E F1(\255[no-]print-ISBN-table)108 463.2 Q F0 -.4(Wi) 234.46 463.2 S .154(th the positi).4 F .454 -.15(ve f)-.25 H .154 (orm, print the ISBN-range table on).15 F F2(stderr)2.993 E F0 2.653(,t) .73 G .153(hen terminate)-2.653 F(with a success return code.)234.46 475.2 Q .922(That action is tak)234.46 492 R .923 (en after all command-line options are processed, and be-)-.1 F .784 (fore an)234.46 504 R 3.283(yi)-.15 G .783 (nput \214les are read \(other than those that are v)-3.283 F .783 (alues of command-)-.25 F(line options\).)234.46 516 Q 1.717(The format\ of the output ISBN-range table is acceptable for input as an)234.46 532.8 R .948(ISBN initialization \214le \(see the)234.46 544.8 R F1 .947 (ISBN INITIALIZA)3.447 F .947(TION FILES)-.95 F F0(manual)3.447 E 2.5 (section\). Def)234.46 556.8 R(ault:)-.1 E F2(no)2.86 E F0(.).18 E F1 (\255[no-]print-k)108 573.6 Q(eyw)-.1 E(ord-table)-.1 E F0 -.4(Wi)234.46 573.6 S .234(th the positi).4 F .534 -.15(ve f)-.25 H .234 (orm, print the k).15 F -.15(ey)-.1 G -.1(wo).15 G .235 (rd initialization table on).1 F F2(stderr)3.075 E F0 2.735(,t).73 G (hen)-2.735 E(terminate with a success return code.)234.46 585.6 Q .923 (That action is tak)234.46 602.4 R .923 (en after all command-line options are processed, and be-)-.1 F .783 (fore an)234.46 614.4 R 3.283(yi)-.15 G .783 (nput \214les are read \(other than those that are v)-3.283 F .783 (alues of command-)-.25 F(line options\).)234.46 626.4 Q .778 (The format of the output table is acceptable for input as a k)234.46 643.2 R -.15(ey)-.1 G -.1(wo).15 G .777(rd initial-).1 F .893 (ization \214le \(see the)234.46 655.2 R F1(KEYW)3.394 E .894 (ORD INITIALIZA)-.1 F .894(TION FILES)-.95 F F0 .894(manual sec-)3.394 F 2.5(tion\). Def)234.46 667.2 R(ault:)-.1 E F2(no)2.86 E F0(.).18 E F1 (\255[no-]print-patter)108 684 Q(ns)-.15 E F0 -.4(Wi)234.46 684 S .45 (th the positi).4 F .75 -.15(ve f)-.25 H .45(orm, print the v).15 F .45 (alue patterns read from initialization \214les)-.25 F .777(as the) 234.46 696 R 3.277(ya)-.15 G .777(re added to internal tables.)-3.277 F .778(Use this option to check ne)5.778 F(wly-added)-.25 E (patterns, or to see what patterns are being used.)234.46 708 Q -1.11 (Ve)72 768 S(rsion 3.05)1.11 E(18 May 2020)156.785 E(5)202.335 E 0 Cg EP %%Page: 6 6 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 113.46(BIBCLEAN\(1\) General)72 48 R (Commands Manual)2.5 E(BIBCLEAN\(1\))115.96 E(When)234.46 84 Q/F1 10 /Times-Bold@0 SF(bibclean)2.62 E F0 .12(is compiled with nati)2.62 F .42 -.15(ve p)-.25 H .12(attern-matching code \(the def).15 F(ault\),)-.1 E .661(those patterns are the ones that are used in checking v)234.46 96 R .662(alue strings for v)-.25 F(alid)-.25 E .604(syntax, and all of them\ are speci\214ed in initialization \214les, rather than hard-)234.46 108 R 1.79(coded into the program.)234.46 120 R -.15(Fo)6.79 G 4.29(rf).15 G 1.79(urther details, see the)-4.29 F F1(INITIALIZA)4.29 E(TION)-.95 E (FILES)234.46 132 Q F0(manual section.)2.5 E(Def)5 E(ault:)-.1 E/F2 10 /Times-Italic@0 SF(no)2.86 E F0(.).18 E F1(\255[no-]quiet)108 148.8 Q F0 .065(This option is the opposite of)234.46 148.8 R F1(\255[no-]war)2.565 E(ning)-.15 E F0 2.564(;i)C 2.564(te)-2.564 G .064(xists for user con) -2.714 F -.15(ve)-.4 G(nience,).15 E .771 (and for compatibility with other programs that use)234.46 160.8 R F1 3.271 E F0 .771(for quiet operation,)5.771 F(without w)234.46 172.8 Q(arning messages.)-.1 E F1(\255[no-]r)108 189.6 Q (ead-init-\214les)-.18 E F0 -.4(Wi)234.46 189.6 S .373(th the ne).4 F -.05(ga)-.15 G(ti).05 E .673 -.15(ve f)-.25 H .373 (orm, suppress loading of system-, user).15 F .373 (-, and \214le-speci\214c)-.2 F .478(initialization \214les.)234.46 201.6 R .479(Initializations then come)5.479 F F2(only)3.209 E F0 .479 (from those \214les e)3.299 F(xplicitly)-.15 E(gi)234.46 213.6 Q -.15 (ve)-.25 G 2.5(nb).15 G(y)-2.5 E F1(\255init-\214le)2.5 E F2(\214lename) 2.5 E F0 2.5(options. Def)2.5 F(ault:)-.1 E F2(yes)3.24 E F0(.).27 E F1 (\255[no-]r)108 230.4 Q(emo)-.18 E -.1(ve)-.1 G(-OPT).1 E(-pr)-.92 E (e\214xes)-.18 E F0 -.4(Wi)234.46 230.4 S 1.804(th the positi).4 F 2.104 -.15(ve f)-.25 H 1.804(orm, remo).15 F 2.104 -.15(ve t)-.15 H 1.804 (he `).15 F(`OPT')-.74 E 4.304('p)-.74 G 1.803 (re\214x from each \214eld name)-4.304 F .95(where the corresponding v) 234.46 242.4 R .95(alue is)-.25 F F2(not)3.81 E F0 .95(an empty string.) 4.13 F .95(The pre\214x `)5.95 F(`OPT')-.74 E(')-.74 E (must be entirely in upper)234.46 254.4 Q(-case to be recognized.)-.2 E .141(This option is for bibliographies generated with the help of the G\ NU Emacs)234.46 271.2 R(B)234.46 283.2 Q/F3 8/Times-Roman@0 SF(IB)A F0 (T)A(E)-1.667 2.4 M 5.163(Xe)-1.25 -2.4 O 2.663 (diting support, which generates templates with optional \214elds)-5.163 F .446(identi\214ed by the `)234.46 295.2 R(`OPT')-.74 E 2.946('p)-.74 G 2.946(re\214x. Although)-2.946 F .445(the function)2.945 F F2 .445 (M-x bibte)3.625 F(x-r)-.2 E(emo)-.37 E(ve-)-.1 E(OPT)234.46 307.2 Q F0 1.288(normally bound to the k)5.058 F -.15(ey)-.1 G(strok).15 E(es)-.1 E F2 1.288(C-c C-o)3.628 F F0 1.289(does the job, users often)3.968 F(for) 234.46 319.2 Q 1.029(get, with the result that B)-.18 F F3(IB)A F0(T)A (E)-1.667 2.4 M 3.529(Xd)-1.25 -2.4 O 1.029 (oes not recognize the \214eld name, and)-3.529 F 1.96(ignores the v) 234.46 331.2 R 1.96(alue string.)-.25 F 1.96(Compare this option with) 6.96 F F1(\255[no-]delete-empty-)4.46 E -.1(va)234.46 343.2 S(lues).1 E F0(described abo)2.5 E -.15(ve)-.15 G 5(.D).15 G(ef)-5 E(ault:)-.1 E F2 (no)2.86 E F0(.).18 E F1(\255[no-]scribe)108 360 Q F0 -.4(Wi)234.46 360 S .205(th the positi).4 F .505 -.15(ve f)-.25 H .204 (orm, accept input syntax conforming to the S).15 F F3(CRIBE)A F0(docu-) 2.704 E 1.128(ment system.)234.46 372 R 1.129(The output is con)6.128 F -.15(ve)-.4 G 1.129(rted to conform to B).15 F F3(IB)A F0(T)A(E)-1.667 2.4 M 3.629(Xs)-1.25 -2.4 O 3.629(yntax. See)-3.629 F(the)234.46 384 Q F1 .537(SCRIBE BIBLIOGRAPHY FORMA)3.037 F(T)-.95 E F0 .536 (manual section for further de-)3.036 F 2.5(tails. Def)234.46 396 R (ault:)-.1 E F2(no)2.86 E F0(.).18 E F1(\255[no-]trace-\214le-opening) 108 412.8 Q F0 -.4(Wi)234.46 412.8 S .314(th the positi).4 F .614 -.15 (ve f)-.25 H .314 (orm, record in the error log \214le the names of all \214les that).15 F F1(bibclean)234.46 424.8 Q F0 .887(attempts to open.)3.387 F .887 (Use this option to identify where initialization)5.887 F (\214les are located.)234.46 436.8 Q(Def)5 E(ault:)-.1 E F2(no)2.86 E F0 (.).18 E F1(\255[no-]war)108 453.6 Q(nings)-.15 E F0 -.4(Wi)234.46 453.6 S .969(th the positi).4 F 1.269 -.15(ve f)-.25 H .969(orm, allo).15 F 3.469(wa)-.25 G .969(ll w)-3.469 F .969(arning messages.)-.1 F .969 (The ne)5.969 F -.05(ga)-.15 G(ti).05 E 1.269 -.15(ve f)-.25 H .97 (orm is).15 F F2(not)234.82 465.6 Q F0 1.094 (recommended because it may mask problems that should be repaired.)4.274 F(Def)234.46 477.6 Q(ault:)-.1 E F2(yes)3.24 E F0(.).27 E F1 (\255output-\214le)108 494.4 Q F2(\214lename)2.5 E F0 .704 (Supply an alternate output \214le to replace)234.46 494.4 R F2(stdout) 3.544 E F0 5.704(.I).68 G 3.204(ft)-5.704 G .705 (he \214lename cannot be)-3.204 F 1.658(opened for output, e)234.46 506.4 R -.15(xe)-.15 G 1.658 (cution terminates immediately with a nonzero e).15 F(xit)-.15 E(code.) 234.46 518.4 Q F1108 535.2 Q(ersion)-.1 E F0 1.08 (Display the program v)234.46 535.2 R 1.08(ersion number on)-.15 F F2 (stderr)3.92 E F0 3.58(,a).73 G 1.08(nd then terminate with a)-3.58 F .686(success return code.)234.46 547.2 R .685 (That includes an indication of who compiled the pro-)5.686 F .094 (gram, the host name on which it w)234.46 559.2 R .094 (as compiled, the time of compilation, and)-.1 F 1.389 (the type of string-v)234.46 571.2 R 1.389 (alue matching code selected, when that information is)-.25 F -.2(av) 234.46 583.2 S(ailable to the compiler)-.05 E(.)-.55 E/F4 10.95 /Times-Bold@0 SF(ERR)72 600 Q(OR RECO)-.329 E(VER)-.548 E 2.738(YA)-.383 G(ND W)-2.738 E(ARNINGS)-1.314 E F0(When)108 612 Q F1(bibclean)2.807 E F0 .307(detects an error)2.807 F 2.807(,i)-.4 G 2.807(ti)-2.807 G .307 (ssues an error message to both)-2.807 F F2(stderr)3.147 E F0(and)3.538 E F2(stdout)3.148 E F0 5.308(.T).68 G .308(hat w)-5.308 F(ay)-.1 E 2.808 (,t)-.65 G .308(he user is)-2.808 F (clearly noti\214ed, and the output bibliograph)108 624 Q 2.5(ya)-.05 G (lso contains the message at the point of error)-2.5 E(.)-.55 E .896 (Error messages be)108 640.8 R .896(gin with a distincti)-.15 F 1.195 -.15(ve p)-.25 H .895(air of queries, ??, be).15 F .895 (ginning in column 1, follo)-.15 F .895(wed by the input)-.25 F .092 (\214le name and line number)108 652.8 R 5.092(.I)-.55 G 2.592(ft)-5.092 G(he)-2.592 E F1(\255\214le-position)2.592 E F0 .092(option w)2.592 F .092(as speci\214ed, the)-.1 F 2.593(ya)-.15 G .093 (lso contain the input and output)-2.593 F .335 (positions of the current \214le, entry)108 664.8 R 2.835(,a)-.65 G .335 (nd v)-2.835 F 2.835(alue. Each)-.25 F .335 (position includes the \214le byte number)2.835 F 2.834(,t)-.4 G .334 (he line number)-2.834 F(,)-.4 E .87(and the column number)108 676.8 R 5.87(.I)-.55 G 3.37(nt)-5.87 G .87(he e)-3.37 F -.15(ve)-.25 G .871 (nt of a runa).15 F -.1(wa)-.15 G 3.371(ys).1 G .871(tring ar)-3.371 F .871(gument, the entry and v)-.18 F .871(alue positions should)-.25 F .998(precisely pinpoint the erroneous bibliograph)108 688.8 R 3.498(ye) -.05 G(ntry)-3.498 E 3.498(,a)-.65 G .998 (nd the \214le positions indicate where it w)-3.498 F .997(as detected,) -.1 F(which may be rather later in the \214les.)108 700.8 Q -.8(Wa)108 717.6 S .794(rning messages identify possible problems, and are therefo\ re sent only to).8 F F2(stderr)3.634 E F0 3.294(,a).73 G .794(nd not to) -3.294 F F2(stdout)3.634 E F0 3.294(,s).68 G(o)-3.294 E(the)108 729.6 Q 2.808(yn)-.15 G -2.15 -.25(ev e)-2.808 H 2.808(ra).25 G .308 (ppear in the output \214le.)-2.808 F(The)5.308 E 2.808(ya)-.15 G .308 (re identi\214ed by a distincti)-2.808 F .608 -.15(ve p)-.25 H .307 (air of percents, %%, be).15 F .307(ginning in)-.15 F -1.11(Ve)72 768 S (rsion 3.05)1.11 E(18 May 2020)156.785 E(6)202.335 E 0 Cg EP %%Page: 7 7 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 113.46(BIBCLEAN\(1\) General)72 48 R (Commands Manual)2.5 E(BIBCLEAN\(1\))115.96 E .567 (column 1, and as with error messages, may be follo)108 84 R .567 (wed by \214le position messages if the)-.25 F/F1 10/Times-Bold@0 SF (\255\214le-position)3.067 E F0(op-)3.068 E(tion w)108 96 Q (as speci\214ed.)-.1 E -.15(Fo)108 112.8 S 3.228(rc).15 G(on)-3.228 E -.15(ve)-.4 G .728(nience, the \214rst line of each error and w).15 F .728(arning message sent to)-.1 F/F2 10/Times-Italic@0 SF(stderr)3.567 E F0 .727(is formatted according to)3.957 F .767(the e)108 124.8 R .767 (xpectations of the GNU Emacs)-.15 F F2(ne)3.627 E(xt-err)-.2 E(or)-.45 E F0 3.267(command. Y)3.997 F .767(ou can in)-1.1 F -.2(vo)-.4 G -.1(ke) .2 G F1(bibclean)3.368 E F0 .768(with the Emacs)3.268 F F2(M-x)3.948 E 2.135(compilebibclean \214lename)108 136.8 R 2.135 (.bib >\214lename)-.15 F(.ne)-.15 E(w)-.15 E F0 2.134 (command, then use the)4.945 F F2(ne)4.994 E(xt-err)-.2 E(or)-.45 E F0 2.134(command, nor)5.364 F(-)-.2 E(mally bound to)108 148.8 Q F2(C-x `) 2.34 E F0(\(that')2.77 E 2.5(sag)-.55 G(ra)-2.5 E -.15(ve)-.2 G 2.5(,o) .15 G 2.5(rb)-2.5 G(ack, accent\), to mo)-2.5 E .3 -.15(ve t)-.15 H 2.5 (ot).15 G(he location of the error in the input \214le.)-2.5 E .87 (If error messages are ignored, and left in the output bibliograph)108 165.6 R 3.37<798c>-.05 G .87(le, the)-3.37 F 3.37(yp)-.15 G .87 (recipitates an error when the)-3.37 F(bibliograph)108 177.6 Q 2.5(yi) -.05 G 2.5(sn)-2.5 G -.15(ex)-2.5 G 2.5(tp).15 G(rocessed with B)-2.5 E /F3 8/Times-Roman@0 SF(IB)A F0(T)A(E)-1.667 2.4 M(X.)-1.25 -2.4 M .27 (After issuing an error message,)108 194.4 R F1(bibclean)2.77 E F0 .27 (then resynchronizes its input by cop)2.77 F .27(ying it v)-.1 F .27 (erbatim to)-.15 F F2(stdout)3.11 E F0(un-)3.45 E .254(til a ne)108 206.4 R 2.754(wb)-.25 G(ibliograph)-2.754 E 2.754(ye)-.05 G .254(ntry i\ s recognized on a line in which the \214rst non-blank character is an a\ t-sign \(@\).)-2.754 F .091 (That ensures that nothing is lost from the input \214le\(s\), allo)108 218.4 R .091(wing corrections to be made in either the input or)-.25 F .575(the output \214les.)108 230.4 R(Ho)5.575 E(we)-.25 E -.15(ve)-.25 G 1.375 -.4(r, i).15 H(f).4 E F1(bibclean)3.075 E F0 .576(detects an inte\ rnal error in its data structures, it terminates abruptly)3.075 F .537(\ without further input or output processing; that kind of error should n\ e)108 242.4 R -.15(ve)-.25 G 3.037(rh).15 G .536 (appen, and if it does, it should)-3.037 F .545 (be reported immediately to the author of the program.)108 254.4 R .546 (Errors in initialization \214les, and running out of dy-)5.545 F (namic memory)108 266.4 Q 2.5(,a)-.65 G(lso immediately terminate)-2.5 E F1(bibclean)2.5 E F0(.)A/F4 10.95/Times-Bold@0 SF(SEARCH P)72 283.2 Q -1.04(AT)-.81 G(HS)1.04 E F0 -1.11(Ve)108 295.2 S .89(rsions of)1.11 F F1(bibclean)3.39 E F0 .89(before 3.00 found some of their initializatio\ n \214les in the same directory as the e)3.39 F -.15(xe)-.15 G(-).15 E .392(cutable program.)108 307.2 R .392 (That design choice means that those \214les can be copied an)5.392 F .393(ywhere in the \214le system, and)-.15 F .61 (still be found at run time.)108 319.2 R .61(Some softw)5.61 F .61 (are distrib)-.1 F .61(utions, ho)-.2 F(we)-.25 E -.15(ve)-.25 G 1.41 -.4(r, p).15 H .61(refer to follo).4 F 3.11(wt)-.25 G .61 (he model where initial-)-3.11 F 1.252(ization and other related \214le\ s are instead stored in a directory whose name is related to that of th\ e e)108 331.2 R -.15(xe)-.15 G(-).15 E .302(cutable by a con)108 343.2 R -.15(ve)-.4 G .302(ntional dif).15 F .301(ference in \214lepath.)-.25 F -.15(Fo)5.301 G 2.801(re).15 G .301 (xample, a program might be installed in)-2.951 F F2(/opt/bin)3.951 E F0 (and)3.041 E 6.953(its associated \214les in)108 355.2 R F2(/opt/shar) 10.603 E(e/lib/PR)-.37 E(OGRAMN)-.4 E(AME/)-.27 E F0(or)11.034 E F2 (/opt/shar)10.604 E(e/lib/PR)-.37 E(OGRAMN)-.4 E(AME/PR)-.27 E(O-)-.4 E (GRAMVERSION/)108 367.2 Q F0 6.098(.T)1.58 G 1.098 (he second form is preferable, because it permits multiple v)-6.098 F 1.098(ersions of the same pro-)-.15 F 1.156 (gram to be installed, as long as the e)108 379.2 R -.15(xe)-.15 G 1.157 (cutable program names carry a v).15 F 1.157(ersion suf)-.15 F 1.157 (\214x. Thus, a site might)-.25 F(ha)108 391.2 Q 1.473 -.15(ve i)-.2 H 1.173(nstalled programs named).15 F F2(bibclean-1.00)3.943 E F0(,).47 E F2(bibclean-2.00)3.943 E F0(,).47 E F2(bibclean-2.15)3.943 E F0 3.673 (,a).41 G(nd)-3.673 E F2(bibclean-3.00)3.943 E F0 3.673(,w).47 G 1.173 (ith the)-3.673 F -.15(ve)108 403.2 S(rsionless name).15 E F2(bibclean) 2.77 E F0(being a symbolic link to whiche)2.74 E -.15(ve)-.25 G 2.5(rv) .15 G(ersion is the desired local def)-2.65 E(ault.)-.1 E -.4(Wi)108 420 S .244(th most softw).4 F .244(are packages, the absolute path to the d\ irectory containing associated \214les is compiled into)-.1 F .088(the \ program, making it impossible to change the installation locations afte\ r the program has been b)108 432 R .088(uilt from)-.2 F(source code.)108 444 Q .274(Some packages, ho)108 460.8 R(we)-.25 E -.15(ve)-.25 G 1.074 -.4(r, i).15 H .274(nstead use the location of the e).4 F -.15(xe)-.15 G .274(cutable program to \214nd \214les by relati).15 F .575 -.15(ve p) -.25 H .275(ath at).15 F 4.868(runtime. In)108 472.8 R 2.368(the abo) 4.868 F 2.668 -.15(ve ex)-.15 H 2.368(ample, the program w).15 F 2.368 (ould determine its \214lesystem location at runtime, say)-.1 F F2 (/opt/bin)109.15 484.8 Q F0 5.43(,t).24 G 2.93 (hen \214nd its associated \214les relati)-5.43 F 3.23 -.15(ve t)-.25 H 5.43(ot).15 G 2.93(hat location in)-5.43 F F2(../shar)5.66 E(e/lib/PR) -.37 E(OGRAMN)-.4 E(AME/PR)-.27 E(O-)-.4 E(GRAMVERSION/)108 496.8 Q F0 (.)1.58 E 1.004(From v)108 513.6 R 1.003(ersion 3.00,)-.15 F F2 (bibclean)3.773 E F0 1.003 (uses that second approach, with an associated directory lik)3.743 F(e) -.1 E F2(../shar)3.733 E(e/lib/bib-)-.37 E(clean/3.00)108 525.6 Q F0 5.237(.T).47 G .237(hat allo)-5.237 F .237 (ws an installation directory tree to be distrib)-.25 F .238 (uted to other systems and unb)-.2 F(undled)-.2 E F2(any-)3.068 E(wher) 108 537.6 Q(e)-.37 E F0 .227 (in the \214le system, as long as the relati)2.907 F .527 -.15(ve p)-.25 H .227(aths are not changed.).15 F F2(bibclean)5.496 E F0 .226 (tests whether its compiled-)2.966 F .308(in library path is a director\ y on the local system, and if so, uses it.)108 549.6 R .309 (Otherwise, it replaces that path by a re-)5.309 F .741 (constructed one based on the location of the e)108 561.6 R -.15(xe)-.15 G .741(cutable program.).15 F .74 (If the reconstructed path for the library)5.741 F(directory does not e) 108 573.6 Q(xist, it uses a w)-.15 E 2.5(arning. In)-.1 F (either case, it continues normally)2.5 E(.)-.65 E -.4(Wi)108 590.4 S .222(th the old approach, initialization \214les on Unix systems were n\ amed with a leading period, making them).4 F .237 (`hidden' \214les for the)108 602.4 R F2(ls)2.827 E F0 2.737(command. W) 3.007 F .237(ith the ne)-.4 F 2.736(wp)-.25 G .236 (ractice, initialization \214les are no longer named as hidden)-2.736 F (\214les.)108 614.4 Q F4(INITIALIZA)72 631.2 Q(TION FILES)-1.04 E F1 (bibclean)108 643.2 Q F0 .53(can be compiled with one of three dif)3.03 F .53(ferent types of pattern matching; the choice is made by the)-.25 F (installer at compile time:)108 655.2 Q<83>144 672 Q(The original v) 157.5 672 Q(ersion uses e)-.15 E(xplicit hand-coded tests of v)-.15 E (alue-string syntax.)-.25 E<83>144 688.8 Q 2.179(The second v)157.5 688.8 R 2.179(ersion uses re)-.15 F(gular)-.15 E(-e)-.2 E 2.179 (xpression pattern-matching host library routines together)-.15 F (with re)157.5 700.8 Q(gular)-.15 E(-e)-.2 E (xpression patterns that come entirely from initialization \214les.)-.15 E<83>144 717.6 Q(The third v)157.5 717.6 Q(ersion uses special patterns\ that come entirely from initialization \214les.)-.15 E -1.11(Ve)72 768 S(rsion 3.05)1.11 E(18 May 2020)156.785 E(7)202.335 E 0 Cg EP %%Page: 8 8 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 113.46(BIBCLEAN\(1\) General)72 48 R (Commands Manual)2.5 E(BIBCLEAN\(1\))115.96 E 1.211 (The second and third v)108 84 R 1.211 (ersions are the ones of most interest here, because the)-.15 F 3.711 (ya)-.15 G(llo)-3.711 E 3.711(wt)-.25 G 1.212(he user to control)-3.711 F .433(what v)108 96 R .433(alues are considered acceptable.)-.25 F(Ho) 5.432 E(we)-.25 E -.15(ve)-.25 G 1.232 -.4(r, c).15 H .432 (ommand-line options can also be speci\214ed in initializa-).4 F (tion \214les, no matter which pattern matching choice w)108 108 Q (as selected.)-.1 E(When)108 124.8 Q/F1 10/Times-Bold@0 SF(bibclean) 3.131 E F0 .632(starts, it searches for initialization \214les, \214ndi\ ng the \214rst one in the system e)3.131 F -.15(xe)-.15 G .632 (cutable pro-).15 F .671(gram search path \(on UNIX and IBM PC DOS,)108 136.8 R F1 -.74(PA)3.171 G(TH)-.21 E F0 3.171(\)a)C .67 (nd the \214rst one in the)-3.171 F F1(BIBINPUTS)3.17 E F0 .67 (search path,)3.17 F .172(and processes them in turn.)108 148.8 R .172 (Then, when command-line ar)5.172 F .172(guments are processed, an)-.18 F 2.672(ya)-.15 G .173(dditional \214les speci-)-2.672 F .837(\214ed by) 108 160.8 R F1(\255init-\214le)3.337 E/F2 10/Times-Italic@0 SF (\214lename)3.337 E F0 .837(options are also processed.)3.337 F(Finally) 5.837 E 3.337(,i)-.65 G .837(mmediately before each)-3.337 F F2(named) 3.697 E F0(bibliogra-)4.106 E(ph)108 172.8 Q 3.161<798c>-.05 G .661(le \ is processed, an attempt is made to process an initialization \214le wi\ th the same name, b)-3.161 F .661(ut with the)-.2 F -.15(ex)108 184.8 S .767(tension changed to).15 F F2(.ini)3.497 E F0 5.767(.T).36 G .766 (he def)-5.767 F .766(ault e)-.1 F .766 (xtension can be changed by a setting of the en)-.15 F .766(vironment v) -.4 F(ariable)-.25 E F1(BIBCLEANEXT)108 196.8 Q F0 5.557(.T)C .558 (hat scheme permits system-wide, user)-5.557 F .558 (-wide, session-wide, and \214le-speci\214c initializa-)-.2 F (tion \214les to be supported.)108 208.8 Q(When input is tak)108 225.6 Q (en from)-.1 E F2(stdin)2.84 E F0 2.5(,t).24 G (here is no \214le-speci\214c initialization.)-2.5 E -.15(Fo)108 242.4 S 3.335(rp).15 G .835(recise control, the)-3.335 F F1(\255no-r)3.334 E (ead-init-\214les)-.18 E F0 .834 (option suppresses all initialization \214les e)3.334 F .834 (xcept those e)-.15 F(xplicitly)-.15 E(named by)108 254.4 Q F1 (\255init-\214le)2.5 E F2(\214lename)2.5 E F0(options, either on the co\ mmand line, or in requested initialization \214les.)2.5 E(Recursi)108 271.2 Q .837 -.15(ve exe)-.25 H .537 (cution of initialization \214les with nested).15 F F1(\255init-\214le) 3.037 E F0 .538(options is permitted; if the recursion is cir)3.037 F(-) -.2 E(cular)108 283.2 Q(,)-.4 E F1(bibclean)2.74 E F0 .24 (\214nally gets a non-f)2.74 F .239(atal initialization \214le open f) -.1 F .239(ailure after opening too man)-.1 F 2.739<798c>-.15 G 2.739 (les. That)-2.739 F(ter)2.739 E(-)-.2 E .361 (minates further initialization \214le processing.)108 295.2 R .361 (As the recursion unwinds, the \214les are all closed, then e)5.361 F -.15(xe)-.15 G(cu-).15 E(tion proceeds normally)108 307.2 Q(.)-.65 E .28 (An initialization \214le may contain empty lines, comments from percen\ t to end of line \(just lik)108 324 R 2.78(eT)-.1 G(E)-4.447 2.4 M .28 (X\), option)-1.25 -2.4 N .92 (switches, and \214eld/pattern or \214eld/pattern/message assignments.) 108 336 R .92(Leading and trailing spaces are ignored.)5.92 F (That is best illustrated by a short e)108 348 Q(xample:)-.15 E/F3 10 /Courier@0 SF 6(%T)108 364.8 S (his is a small bibclean initialization file)-6 E (-init-file /u/math/bib/.bibcleanrc)108 388.8 Q (%% departmental patterns)12 E(chapter = "\\"D\\"")108 412.8 Q(%% 23)102 E 12(pages =)108 436.8 R 78("\\"D--D\\"" %%)6 F(23--27)6 E 6(volume =) 108 460.8 R("\\"D \\\\an\\\\d D\\"")6 E(%% 11 and 12)42 E 18(year =)108 484.8 R(\\)6 E("\\"dddd, dddd, dddd\\"" \\)126 496.8 Q ("Multiple years specified.")126 508.8 Q(%% 1989, 1990, 1991)36 E 12 (-no-fix-names %%)108 532.8 R(do not modify author/editor lists)6 E F0 1.397(Long logical lines can be split into multiple ph)108 549.6 R 1.396 (ysical lines by breaking at a backslash-ne)-.05 F 1.396 (wline pair; the)-.25 F(backslash-ne)108 561.6 Q .75 (wline pair is discarded.)-.25 F .75 (That processing happens while characters are being read, before an)5.75 F(y)-.15 E(further interpretation of the input stream.)108 573.6 Q .063 (Each logical line must contain a complete option \(and its v)108 590.4 R .063(alue, if an)-.25 F .063(y\), or a complete \214eld/pattern pair) -.15 F 2.563(,o)-.4 G 2.563(ra)-2.563 G(\214eld/pattern/message triple.) 108 602.4 Q 1.283(Comments are stripped during the parsing of the \214e\ ld, pattern, and message v)108 619.2 R 3.784(alues. The)-.25 F 1.284 (comment start)3.784 F(symbol is not recognized inside quoted strings, \ so it can be freely used in such strings.)108 631.2 Q .484 (Comments on logical lines that were input as multiple ph)108 648 R .483 (ysical lines via the backslash-ne)-.05 F .483(wline con)-.25 F -.15(ve) -.4 G(ntion).15 E(must appear on the)108 660 Q F2(last)2.59 E F0(ph)3.18 E(ysical line; otherwise, the remaining ph)-.05 E (ysical lines become part of the comment.)-.05 E -.15(Pa)108 676.8 S .12 (ttern strings must be enclosed in quotation marks; within such strings\ , a backslash starts an escape mech-).15 F (anism that is commonly used in UNIX softw)108 688.8 Q 2.5(are. The)-.1 F(recognized escape sequences are:)2.5 E F1(\\a)144 705.6 Q F0 (alarm bell \(octal 007\))180 705.6 Q -1.11(Ve)72 768 S(rsion 3.05)1.11 E(18 May 2020)156.785 E(8)202.335 E 0 Cg EP %%Page: 9 9 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 113.46(BIBCLEAN\(1\) General)72 48 R (Commands Manual)2.5 E(BIBCLEAN\(1\))115.96 E/F1 10/Times-Bold@0 SF(\\b) 144 84 Q F0(backspace \(octal 010\))180 84 Q F1(\\f)144 100.8 Q F0 (formfeed \(octal 014\))180 100.8 Q F1(\\n)144 117.6 Q F0(ne)180 117.6 Q (wline \(octal 012\))-.25 E F1(\\r)144 134.4 Q F0 (carriage return \(octal 015\))180 134.4 Q F1(\\t)144 151.2 Q F0 (horizontal tab \(octal 011\))180 151.2 Q F1(\\v)144 168 Q F0 -.15(ve) 180 168 S(rtical tab \(octal 013\)).15 E F1(\\ooo)144 184.8 Q F0 (character number octal)180 184.8 Q/F2 10/Times-Italic@0 SF(ooo)2.73 E F0(\(e.g)2.68 E F1(\\012)2.5 E F0(is linefeed\).)2.5 E (Up to 3 octal digits may be used.)5 E F1(\\0xhh)144 201.6 Q F0 1.217 (character number he)180 201.6 R(xadecimal)-.15 E F2(hh)4.027 E F0 (\(e.g.,)3.997 E F1(\\0x0a)3.717 E F0 1.217(is linefeed\).)3.717 F F2 (xhh)6.987 E F0 1.217(may be in either letter)3.997 F 2.5(case. An)180 213.6 R 2.5(yn)-.15 G(umber of he)-2.5 E(xadecimal digits may be used.) -.15 E .346(Backslash follo)108 230.4 R .346(wed by an)-.25 F 2.847(yo) -.15 G .347(ther character produces just that character)-2.847 F 5.347 (.T)-.55 G .347(hus, \\% gets a literal percent into)-5.347 F 2.781(as) 108 242.4 S .281(tring \(pre)-2.781 F -.15(ve)-.25 G .281(nting its int\ erpretation as a comment\), \\" produces a quotation mark, and \\\\ pro\ duces a single).15 F(backslash.)108 254.4 Q .123(An ASCII NUL)108 271.2 R F2(\(\\0\))2.703 E F0 .123(in a string terminates it; that is a featu\ re of the C programming language in which)2.683 F F1(bib-)2.623 E(clean) 108 283.2 Q F0(is implemented.)2.5 E .519(Field/pattern pairs can be se\ parated by arbitrary space, and optionally)108 300 R 3.019(,e)-.65 G .518(ither an equals sign or colon func-)-3.019 F (tioning as an assignment operator)108 312 Q 5(.T)-.55 G(hus, the follo) -5 E(wing are equi)-.25 E -.25(va)-.25 G(lent:).25 E/F3 10/Courier@0 SF (pages="\\"D--D\\"")108 328.8 Q(pages:"\\"D--D\\"")108 340.8 Q (pages "\\"D--D\\"")108 352.8 Q(pages = "\\"D--D\\"")120 364.8 Q (pages : "\\"D--D\\"")120 376.8 Q 12(pages "\\"D--D\\"")108 388.8 R F0 .606(Each \214eld name can ha)108 405.6 R .906 -.15(ve a)-.2 H 3.106(na) .15 G .607(rbitrary number of patterns associated with it; ho)-3.106 F (we)-.25 E -.15(ve)-.25 G 1.407 -.4(r, t).15 H(he).4 E 3.107(ym)-.15 G .607(ust be speci-)-3.107 F (\214ed in separate \214eld/pattern assignments.)108 417.6 Q .408 (An empty pattern string causes pre)108 434.4 R .408 (viously-loaded patterns for that \214eld name to be for)-.25 F 2.908 (gotten. That)-.18 F(feature)2.908 E(permits an initialization \214le t\ o completely discard patterns from earlier initialization \214les.)108 446.4 Q -.15(Pa)108 463.2 S .025(tterns for v).15 F .025 (alue strings are represented in a tin)-.25 F 2.525(ys)-.15 G .025 (pecial-purpose language that is both con)-2.525 F -.15(ve)-.4 G .025 (nient and suit-).15 F .9(able for bibliograph)108 475.2 R 3.4(yv)-.05 G .9(alue-string syntax checking.)-3.65 F .899(While not as po)5.899 F .899(werful as the language of re)-.25 F(gular)-.15 E(-e)-.2 E(x-)-.15 E .108(pression patterns, its parsing can be portably implemented in less\ than 3% of the code in a widely-used re)108 487.2 R(g-)-.15 E(ular)108 499.2 Q(-e)-.2 E(xpression parser \(the GNU)-.15 E F1 -.18(re)2.5 G (gexp).18 E F0(package\).)2.5 E (The patterns are represented by the follo)108 516 Q (wing special characters:)-.25 E F1()144 532.8 Q F0 (one or more spaces)187.49 532.8 Q F1(a)144 549.6 Q F0 -.15(ex)187.49 549.6 S(actly one letter).15 E F1(A)144 566.4 Q F0(one or more letters) 187.49 566.4 Q F1(d)144 583.2 Q F0 -.15(ex)187.49 583.2 S (actly one digit).15 E F1(D)144 600 Q F0(one or more digits)187.49 600 Q F1(r)144 616.8 Q F0 -.15(ex)187.49 616.8 S(actly one Roman numeral).15 E F1(R)144 633.6 Q F0(one or more Roman numerals \(i.e. a Roman number\)) 187.49 633.6 Q F1(w)144 650.4 Q F0 -.15(ex)187.49 650.4 S(actly one w) .15 E(ord \(one or more letters and digits\))-.1 E F1(W)144 667.2 Q F0 (one or more space-separated w)187.49 667.2 Q(ords, be)-.1 E (ginning and ending with a w)-.15 E(ord)-.1 E F1(.)144 684 Q F0 .724 (one `special' character)187.49 684 R 3.224(,o)-.4 G .723 (ne of the characters )-3.224 F 1.666(!#\(\)*+,-./:;?[]~)1.666 G 3.223(,as)-1.666 G .723(ubset of)-3.223 F (punctuation characters that are typically used in string v)187.49 696 Q (alues)-.25 E F1(:)144 712.8 Q F0(one or more `special' characters) 187.49 712.8 Q -1.11(Ve)72 768 S(rsion 3.05)1.11 E(18 May 2020)156.785 E (9)202.335 E 0 Cg EP %%Page: 10 10 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 113.46(BIBCLEAN\(1\) General)72 48 R (Commands Manual)2.5 E(BIBCLEAN\(1\))115.96 E/F1 10/Times-Bold@0 SF(X) 144 84 Q F0(one or more `special'-separated w)187.49 84 Q(ords, be)-.1 E (ginning and ending with a w)-.15 E(ord)-.1 E F1(\\x)144 100.8 Q F0 -.15 (ex)187.49 100.8 S .04(actly one x \(x is an).15 F 2.54(yc)-.15 G .04 (haracter\), possibly with an escape sequence interpretation gi)-2.54 F -.15(ve)-.25 G(n).15 E(earlier)187.49 112.8 Q F1(x)144 129.6 Q F0 -.15 (ex)187.49 129.6 S 5.258(actly the character x \(x is an).15 F 5.257 (ything b)-.15 F 5.257(ut one of these pattern characters:)-.2 F 1.666 (aAdDrRwW.:<)187.49 141.6 S -.834(space> \\ \))-1.666 F(The)108 158.4 Q F1(X)3.774 E F0 1.274(pattern character is v)3.774 F 1.274(ery po)-.15 F 1.274(werful, b)-.25 F 1.275 (ut generally inadvisable, because it matches almost an)-.2 F(ything) -.15 E(lik)108 170.4 Q .213(ely to be found in a B)-.1 F/F2 8 /Times-Roman@0 SF(IB)A F0(T)A(E)-1.667 2.4 M 2.713(Xv)-1.25 -2.4 O .213 (alue string.)-2.963 F .213(The reason for pro)5.213 F .212 (viding pattern matching on the v)-.15 F .212(alue strings)-.25 F (is to unco)108 182.4 Q -.15(ve)-.15 G 2.5(rp).15 G (ossible errors, not mask them.)-2.5 E .796(There is no pro)108 199.2 R .796(vision for specifying ranges or repetitions of characters, b)-.15 F .797(ut that can usually be done with)-.2 F .067(separate patterns.)108 211.2 R .067(It is a good idea to accompan)5.067 F 2.567(yt)-.15 G .067 (he pattern with a comment sho)-2.567 F .067 (wing the kind of thing it is)-.25 F -.15(ex)108 223.2 S .034 (pected to match.).15 F .034 (Here is a portion of an initialization \214le gi)5.034 F .035 (ving a fe)-.25 F 2.535(wo)-.25 G 2.535(ft)-2.535 G .035 (he patterns used to match)-2.535 F/F3 10/Times-Italic@0 SF(num-)2.895 E (ber)108 235.2 Q F0 -.25(va)3.23 G(lue strings:).25 E/F4 10/Courier@0 SF 6(number =)108 252 R 48("\\"D\\"" %%)42 F(23)6 E 6(number =)108 264 R ("\\"A AD\\"")42 E(%% PN LPS5001)36 E 6(number =)108 276 R ("\\"A D\(D\)\\"")42 E(%% RJ 34\(49\))24 E 6(number =)108 288 R ("\\"A D\\"")42 E(%% XNSS 288811)42 E 6(number =)108 300 R ("\\"A D\\\\.D\\"")42 E(%% Version 3.20)18 E 6(number =)108 312 R 12 ("\\"A-A-D-D\\"" %%)42 F(UMIAC-TR-89-11)6 E 6(number =)108 324 R 24 ("\\"A-A-D\\"" %%)42 F(CS-TR-2189)6 E 6(number =)108 336 R ("\\"A-A-D\\\\.D\\"" %% CS-TR-21.7)42 E F0 -.15(Fo)108 352.8 S 3.549 (rab).15 G(ibliograph)-3.549 E 3.549(yt)-.05 G 1.049(hat contains only) -3.549 F F3(article)3.878 E F0 1.048 (entries, that list should probably be reduced to just the \214rst)3.728 F .086(pattern, so that an)108 364.8 R .086 (ything other than a digit string f)-.15 F .087 (ails the pattern-match test.)-.1 F .087(That is easily done by k)5.087 F(eeping)-.1 E(bibliograph)108 376.8 Q .317 (y-speci\214c patterns in a corresponding \214le with e)-.05 F(xtension) -.15 E F3(.ini)3.047 E F0 2.817(,b).36 G .317 (ecause that \214le is read automati-)-2.817 F(cally)108 388.8 Q(.)-.65 E -1.1(Yo)108 405.6 S 2.798(us)1.1 G .299(hould be sure to use empty pa\ ttern strings in the pattern \214le to discard patterns from earlier in\ itializa-)-2.798 F(tion \214les.)108 417.6 Q 1.32(The v)108 434.4 R 1.32 (alue strings passed to the pattern matcher contain surrounding quotes,\ so the patterns should also.)-.25 F(Ho)108 446.4 Q(we)-.25 E -.15(ve) -.25 G 1.5 -.4(r, y).15 H .7(ou could use a pattern speci\214cation lik) .4 F 3.201(e")-.1 G .701(\\"D" to match an initial digit string follo) -3.201 F .701(wed by an)-.25 F(y-)-.15 E .887(thing else; the omission \ of the \214nal quotation mark \\" in the pattern allo)108 458.4 R .887 (ws the match to succeed without)-.25 F(checking that the ne)108 470.4 Q (xt character in the v)-.15 E(alue string is a quotation mark.)-.25 E 1.057(Because the v)108 487.2 R 1.058 (alue strings are intended to be processed by T)-.25 F(E)-1.667 2.4 M 1.058(X, the pattern matching ignores braces, and)-1.25 -2.4 N(T)108 499.2 Q(E)-1.667 2.4 M 3.259(Xc)-1.25 -2.4 O .759 (ontrol sequences, together with an)-3.259 F 3.258(ys)-.15 G .758 (pace follo)-3.258 F .758(wing those control sequences.)-.25 F .758 (Spaces around braces)5.758 F 2.727(are preserv)108 511.2 R 5.227 (ed. That)-.15 F(con)5.228 E -.15(ve)-.4 G 2.728(ntion allo).15 F 2.728 (ws the pattern fragment)-.25 F F3(A-AD-D)6.238 E F0 2.728 (to match the v)5.508 F 2.728(alue string)-.25 F F3(TN-)5.138 E (K\\slash 27-70)108 523.2 Q F0 2.5(,b).47 G(ecause the v)-2.5 E (alue is implicitly collapsed to)-.25 E F3(TN-K27-70)2.41 E F0 (during the matching operation.)2.97 E F1(bibclean)108 540 Q F0 1.612 -.55('s n)D .512(ormal action when a string v).55 F .512(alue f)-.25 F .512(ails to match an)-.1 F 3.012(yo)-.15 G 3.012(ft)-3.012 G .511 (he corresponding patterns is to issue a)-3.012 F F3(warning)108.34 552 Q F0 .74(message something lik)3.46 F 3.24(et)-.1 G(his:)-3.24 E F3 ("Une)3.24 E .741(xpected value in `)-.2 F .741(`year = "192"')-1.11 F (')-1.11 E F0 5.741(.I)C 3.241(nm)-5.741 G .741(ost cases, that is suf) -3.241 F<8c2d>-.25 E 1.071(cient to alert the user to a problem.)108 564 R 1.071(In some cases, ho)6.071 F(we)-.25 E -.15(ve)-.25 G 1.87 -.4 (r, i).15 H 3.57(tm).4 G 1.07(ay be desirable to associate a dif)-3.57 F (ferent)-.25 E .908(message with a particular pattern.)108 576 R .909 (That can be done by supplying a message string follo)5.909 F .909 (wing the pattern)-.25 F 3.484(string. F)108 588 R .984(ormat items)-.15 F F3(%%)3.194 E F0 .984(\(single percent\),)3.554 F F3(%e)3.194 E F0 .984(\(entry name\),)3.664 F F3(%f)3.194 E F0 .984(\(\214eld name\),) 5.444 F F3(%k)3.194 E F0 .983(\(citation k)4.153 F -.15(ey)-.1 G .983 (\), and).15 F F3(%v)3.193 E F0(\(string v)108 600 Q(alue\) are a)-.25 E -.25(va)-.2 G(ilable to get current v).25 E(alues e)-.25 E (xpanded in the messages.)-.15 E(Here is an e)5 E(xample:)-.15 E F4 (chapter = "\\"D:D\\"" "Colon found in ``%f = %v''" %% 23:2)108 616.8 Q F0 1.936 -.8(To b)108 633.6 T 2.836(ec).8 G .337 (onsistent with other messages output by)-2.836 F F1(bibclean)2.837 E F0 2.837(,t)C .337(he message string should)-2.837 F F3(not)3.197 E F0 .337 (end with punctua-)3.517 F(tion.)108 645.6 Q(If you wish to mak)108 662.4 Q 2.5(et)-.1 G(he message an error)-2.5 E 2.5(,r)-.4 G (ather than just a w)-2.5 E(arning, be)-.1 E (gin it with a query \(?\), lik)-.15 E 2.5(et)-.1 G(his:)-2.5 E F4 (chapter = "\\"D:D\\"" "?Colon found in ``%f = %v''" %% 23:2)108 679.2 Q F0(The query is be included in the output message.)108 696 Q .571 (Escape sequences are supported in message strings, just as the)108 712.8 R 3.071(ya)-.15 G .57(re in pattern strings.)-3.071 F -1.1(Yo)5.57 G 3.07(uc)1.1 G .57(an use that to)-3.07 F(adv)108 724.8 Q(antage for f) -.25 E(anc)-.1 E 2.5(yt)-.15 G (hings, such as terminal display mode control.)-2.5 E(If you re)5 E (write the pre)-.25 E(vious e)-.25 E(xample as)-.15 E -1.11(Ve)72 768 S (rsion 3.05)1.11 E(18 May 2020)156.785 E(10)197.335 E 0 Cg EP %%Page: 11 11 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 113.46(BIBCLEAN\(1\) General)72 48 R (Commands Manual)2.5 E(BIBCLEAN\(1\))115.96 E/F1 10/Courier@0 SF (chapter = "\\"D:D\\"" \\)108 84 Q ("?\\033[7mColon found in ``%f = %v''\\033[0m" %% 23:2)168 96 Q F0 2.008 (the error message appears in in)108 112.8 R -.15(ve)-.4 G 2.009 (rse video on display screens that support ANSI terminal control se-).15 F 3.705(quences. Such)108 124.8 R 1.204 (practice is not normally recommended, because it may ha)3.705 F 1.504 -.15(ve u)-.2 H 1.204(ndesirable ef).15 F 1.204(fects on some)-.25 F (output de)108 136.8 Q 2.5(vices. Ne)-.25 F -.15(ve)-.25 G (rtheless, you may \214nd it useful for restricted applications.).15 E -.15(Fo)108 153.6 S 2.72(rs).15 G .22(ome types of bibliograph)-2.72 F 2.72<798c>-.05 G(elds,)-2.72 E/F2 10/Times-Bold@0 SF(bibclean)2.72 E F0 .22(contains special-purpose code to supplement or replace the)2.72 F (pattern matching:)108 165.6 Q<83>144 182.4 Q/F3 10/Times-Italic@0 SF (CODEN)157.34 182.4 Q F0(,)1.1 E F3(ISBN)4.104 E F0(and)4.624 E F3(ISSN) 4.104 E F0 1.024(\214eld v)4.624 F 1.024(alues are handled that w)-.25 F 1.024(ay because their v)-.1 F 1.023(alidation requires)-.25 F -.25(eva) 157.5 194.4 S .14(luation of checksums that cannot be e).25 F .14 (xpressed by simple patterns; no patterns are e)-.15 F -.15(ve)-.25 G 2.64(nu).15 G(sed)-2.64 E(in these three cases.)157.5 206.4 Q<83>144 223.2 Q(When)157.5 223.2 Q F2(bibclean)2.889 E F0 .388 (is compiled with pattern-matching code support,)2.889 F F3 -.15(ch) 2.888 G(apter).15 E F0(,).73 E F3(number)3.248 E F0(,).73 E F3(pa)4.138 E -.1(ge)-.1 G(s).1 E F0 2.888(,a).27 G(nd)-2.888 E F3(volume)157.79 235.2 Q F0 -.25(va)2.68 G(lues are check).25 E (ed only by pattern matching.)-.1 E<83>144 252 Q F3(month)157.88 252 Q F0 -.25(va)2.816 G .037(lues are \214rst check).25 F .037(ed ag)-.1 F .037(ainst the standard B)-.05 F/F4 8/Times-Roman@0 SF(IB)A F0(T)A(E) -1.667 2.4 M 2.537(Xm)-1.25 -2.4 O .037(onth abbre)-2.537 F .037 (viations, and only if no)-.25 F(match is found are patterns then used.) 157.5 264 Q<83>144 280.8 Q F3(year)158.24 280.8 Q F0 -.25(va)3.777 G .547(lues are \214rst check).25 F .546(ed ag)-.1 F .546 (ainst patterns, then if no match is found, the year numbers are)-.05 F (found and con)157.5 292.8 Q -.15(ve)-.4 G(rted to inte).15 E(ger v)-.15 E(alues for testing ag)-.25 E(ainst reasonable bounds.)-.05 E -1.11(Va) 108 309.6 S .728(lues for other \214elds are check)1.11 F .728 (ed only ag)-.1 F .728(ainst patterns.)-.05 F -1.1(Yo)5.728 G 3.228(uc) 1.1 G .728(an pro)-3.228 F .728(vide patterns for)-.15 F F3(any)3.559 E F0 .729(\214eld you lik)3.549 F(e,)-.1 E -2.15 -.25(ev e)108 321.6 T 3.344(no).25 G(nes)-3.344 E F2(bibclean)3.344 E F0 .844 (does not already kno)3.344 F 3.343(wa)-.25 G 3.343(bout. Ne)-3.343 F 3.343(wo)-.25 G .843(nes are simply added to an internal table that is) -3.343 F(searched for each string to be v)108 333.6 Q(alidated.)-.25 E .005(The special \214eld,)108 350.4 R F3 -.1(ke)2.506 G(y)-.2 E F0 2.506 (,r).32 G .006(epresents the bibliographic citation k)-2.506 F -.15(ey) -.1 G 5.006(.I)-.5 G 2.506(tc)-5.006 G .006(an be gi)-2.506 F -.15(ve) -.25 G 2.506(np).15 G .006(atterns, lik)-2.506 F 2.506(ea)-.1 G .306 -.15(ny o)-2.506 H .006(ther \214eld.).15 F .909(Here is an initializat\ ion \214le pattern assignment that matches an author name, a colon, a f\ our)108 362.4 R .908(-digit year)-.2 F 3.408(,a)-.4 G (colon, and an alphabetic string, in the BibNet Project style:)108 374.4 Q F1(key = "A:dddd:A")108 391.2 Q(%% Knuth:1986:TB)126 E F0 .789(Notice\ that no quotation marks are included in the pattern, because the citat\ ion k)108 408 R -.15(ey)-.1 G 3.29(sa).15 G .79(re not quoted.)-3.29 F -1.1(Yo)5.79 G(u)1.1 E .673 (can use such patterns to help enforce uniform naming con)108 420 R -.15 (ve)-.4 G .672(ntions for citation k).15 F -.15(ey)-.1 G .672 (s, which is increasingly).15 F(important as your bibliograph)108 432 Q 2.5(yd)-.05 G(ata base gro)-2.5 E(ws.)-.25 E/F5 10.95/Times-Bold@0 SF (ISBN INITIALIZA)72 448.8 Q(TION FILES)-1.04 E F2(bibclean)108 460.8 Q F0 1.376(contains a compiled-in table of ISBN ranges and country/langua\ ge settings that is suitable for)3.875 F(most applications.)108 472.8 Q (Ho)108 489.6 Q(we)-.25 E -.15(ve)-.25 G 1.665 -.4(r, I).15 H .865 (SBN data change yearly).4 F 3.365(,a)-.65 G 3.365(sn)-3.365 G 1.365 -.25(ew c)-3.365 H .865 (ountries adopt ISBNs, and as publishers are granted ne).25 F 2.165 -.65 (w, o)-.25 H(r).65 E(additional, ISBN pre\214x)108 501.6 Q(es.)-.15 E 1.96(Thus, from v)108 518.4 R 1.96(ersion 2.12,)-.15 F F2(bibclean)4.46 E F0 1.96 (supports reading of run-time ISBN initialization \214les found on the) 4.46 F F2 -.74(PA)108 530.4 S(TH)-.21 E F0 .164(\(for V)2.664 F .164 (AX VMS,)-1.35 F F2(SYS$SYSTEM)2.664 E F0 2.664(\)a)C(nd)-2.664 E F2 (BIBINPUTS)2.664 E F0 .163(search paths, and then an)2.664 F 2.663(ys) -.15 G .163(peci\214ed by)-2.663 F F2(\255ISBN-)2.663 E(\214le)108 542.4 Q F3(\214lename)2.5 E F0(options.)2.5 E .282(That feature mak)108 559.2 R .283(es it possible to incorporate ne)-.1 F 2.783(wI)-.25 G .283 (SBN data without ha)-2.783 F .283(ving to produce a ne)-.2 F(w)-.25 E F2(bibclean)2.783 E F0(re-)2.783 E(lease and reinstall the softw)108 571.2 Q(are at end-user sites.)-.1 E .081 (The format of an ISBN initialization \214le is similar to that of the) 108 588 R F2(bibclean)2.58 E F0 .08 (initialization \214les described in the)2.58 F .457 (preceding section: comments be)108 600 R .457(gin with percent and con\ tinue to end of line, blank and empty lines are ig-)-.15 F .019 (nored, backslash-ne)108 612 R .019 (wline joins adjacent lines, and otherwise, lines are e)-.25 F .018 (xpected to contain a required pair of)-.15 F .83 (ISBN country/language-publisher pre\214x)108 624 R .831 (es forming a non-decreasing range, optionally follo)-.15 F .831 (wed by one or)-.25 F .714(more w)108 636 R .714(ords of te)-.1 F .713 (xt that are treated as the country/language group v)-.15 F 3.213 (alue. The)-.25 F .713(latter v)3.213 F .713(alue plays no part in)-.25 F .765(ISBN v)108 648 R .765(alidation, b)-.25 F .766 (ut its presence is strongly recommended, in order to mak)-.2 F 3.266 (et)-.1 G .766(he ISBN table more under)-3.266 F(-)-.2 E (standable for humans.)108 660 Q(Here is a short e)108 676.8 Q(xample:) -.15 E F1(%% The Faeroes got ISBN assignments between 1993 and 1998)144 688.8 Q 48(99918-0 99918-3)144 700.8 R(Faeroes)48 E 42 (99918-40 99918-61)144 712.8 R 36(99918-900 99918-938)144 724.8 R F0 -1.11(Ve)72 768 S(rsion 3.05)1.11 E(18 May 2020)156.785 E(11)197.335 E 0 Cg EP %%Page: 12 12 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 113.46(BIBCLEAN\(1\) General)72 48 R (Commands Manual)2.5 E(BIBCLEAN\(1\))115.96 E .022(It is not necessary \ to repeat the country names on succeeding entries with the same initial\ number \(99918 in)108 84 R(that e)108 96 Q (xample\); that is handled internally)-.15 E(.)-.65 E .129 (Data from ISBN \214les normally augment the compiled-in data.)108 112.8 R(Ho)5.129 E(we)-.25 E -.15(ve)-.25 G .929 -.4(r, i).15 H 2.629(ft).4 G .129(he \214rst pre\214x be)-2.629 F .129(gins with a h)-.15 F(y-)-.05 E .907(phen, then)108 124.8 R/F1 10/Times-Bold@0 SF(bibclean)3.407 E F0 .906(deletes the \214rst entry in the table matching that \214rst pre\ \214x \(ignoring the leading h)3.407 F(y-)-.05 E(phen\):)108 136.8 Q/F2 10/Courier@0 SF(%% Latvia got ISBN ranges between 1993 and 1998)144 148.8 Q(%% so we remove the old placeholder, then add the)144 160.8 Q (%% new ranges.)144 172.8 Q 48(-9984-0 9984-9 This)144 184.8 R (one is no longer valid)6 E 48(9984-00 9984-20)144 208.8 R(Latvia)48 E 42(9984-500 9984-770)144 220.8 R 36(9984-9000 9984-9984)144 232.8 R/F3 10.95/Times-Bold@0 SF(KEYW)72 249.6 Q(ORD INITIALIZA)-.11 E(TION FILES) -1.04 E F1(bibclean)108 261.6 Q F0 .362 (contains a compiled-in table of k)2.862 F -.15(ey)-.1 G -.1(wo).15 G .363(rd mappings that is suitable for most applications.).1 F .363 (The de-)5.363 F -.1(fa)108 273.6 S 1.522 (ult settings merely adjust lettercase in certain k).1 F -.15(ey)-.1 G -.1(wo).15 G 1.522(rd names, so that, for e).1 F(xample,)-.15 E/F4 10 /Times-Italic@0 SF(isbn)4.032 E F0 1.521(is output as)4.262 F F4(ISBN) 108.58 285.6 Q F0(.)1.1 E .697(From v)108 302.4 R .697(ersion 2.12,)-.15 F F1(bibclean)3.197 E F0 .697(supports reading of run-time k)3.197 F -.15(ey)-.1 G -.1(wo).15 G .697(rd initialization \214les found on the) .1 F F1 -.74(PA)3.198 G(TH)-.21 E F0 .34(\(for V)108 314.4 R .34 (AX VMS,)-1.35 F F1(SYS$SYSTEM)2.84 E F0 2.84(\)a)C(nd)-2.84 E F1 (BIBINPUTS)2.84 E F0 .34(search paths, and then an)2.84 F 2.84(ys)-.15 G .34(peci\214ed by)-2.84 F F12.84 E(eyw)-.1 E(ord-\214le)-.1 E F4 (\214lename)108 326.4 Q F0(options.)2.5 E .011(That feature mak)108 343.2 R .012(es it possible to incorporate special spellings of ne)-.1 F 2.512(wk)-.25 G -.15(ey)-2.612 G -.1(wo).15 G .012(rds without ha).1 F .012(ving to produce a)-.2 F(ne)108 355.2 Q(w)-.25 E F1(bibclean)2.5 E F0(release and reinstall the softw)2.5 E(are at end-user sites.)-.1 E 1.3(The format of a k)108 372 R -.15(ey)-.1 G -.1(wo).15 G 1.299 (rd initialization \214le is similar to that of the other).1 F F1 (bibclean)3.799 E F0 1.299(initialization \214les de-)3.799 F 1.544 (scribed in the preceding sections: comments be)108 384 R 1.545 (gin with percent and continue to end of line, blank and)-.15 F .039 (empty lines are ignored, backslash-ne)108 396 R .039 (wline joins adjacent lines, and otherwise, lines are e)-.25 F .038 (xpected to contain)-.15 F 2.5(ar)108 408 S(equired pair of old and ne) -2.5 E 2.5(wk)-.25 G -.15(ey)-2.6 G -.1(wo).15 G(rd names.).1 E (Here is a short e)108 424.8 Q(xample:)-.15 E F2 (%% We want special handling of MathReviews keywords)144 436.8 Q 48 (mrclass MRclass)144 448.8 R 42(mrnumber MRnumber)144 460.8 R 30 (mrreviewer MRreviewer)144 472.8 R F0 1.295(Data from k)108 489.6 R -.15 (ey)-.1 G -.1(wo).15 G 1.295 (rds \214les normally augment the compiled-in data.).1 F(Ho)6.295 E(we) -.25 E -.15(ve)-.25 G 2.095 -.4(r, i).15 H 3.795(ft).4 G 1.295 (he \214rst k)-3.795 F -.15(ey)-.1 G -.1(wo).15 G 1.295(rd be).1 F(gins) -.15 E .046(with a h)108 501.6 R .046(yphen, then)-.05 F F1(bibclean) 2.546 E F0 .045(deletes the \214rst entry in the table matching that k) 2.546 F -.15(ey)-.1 G -.1(wo).15 G .045(rd \(ignoring the leading).1 F -.05(hy)108 513.6 S(phen\):).05 E F2 (%% Remove special handling of ISBN, ISSN, and LCCN values.)144 525.6 Q 60(-issn ISSN)144 537.6 R 60(-isbn ISBN)144 549.6 R 60(-lccn LCCN)144 561.6 R F0(Ev)108 573.6 Q(en though the second k)-.15 E -.15(ey)-.1 G -.1(wo).15 G (rd in each deletion pair is not used, it still must be speci\214ed.).1 E .132(Notice that this feature can be used to re)108 590.4 R .132 (gularize k)-.15 F -.15(ey)-.1 G -.1(wo).15 G .132(rd names, b).1 F .132 (ut use it with care, in order to a)-.2 F -.2(vo)-.2 G .132(id pro-).2 F (ducing duplicate k)108 602.4 Q .3 -.15(ey n)-.1 H(ames in output B).15 E/F5 8/Times-Roman@0 SF(IB)A F0(T)A(E)-1.667 2.4 M 2.5(Xe)-1.25 -2.4 O (ntries:)-2.5 E F2(%% Map variations of keywords into a common name:)144 614.4 Q 66(keys keywords)144 626.4 R 54(keywds keywords)144 638.4 R 48 (keyword keywords)144 650.4 R 54(keywrd keywords)144 662.4 R 48 (keywrds keywords)144 674.4 R 36(searchkey keywords)144 686.4 R F3 (LEXICAL AN)72 703.2 Q(AL)-.219 E(YSIS)-1.007 E F0(When)108 715.2 Q F1 (\255no-pr)2.69 E(ettyprint)-.18 E F0 .19(is speci\214ed,)2.69 F F1 (bibclean)2.69 E F0 .19(acts as a le)2.69 F .19 (xical analyzer instead of a prettyprinter)-.15 F 2.69(,p)-.4 G (roducing)-2.69 E(output in lines of the form)108 727.2 Q -1.11(Ve)72 768 S(rsion 3.05)1.11 E(18 May 2020)156.785 E(12)197.335 E 0 Cg EP %%Page: 13 13 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 113.46(BIBCLEAN\(1\) General)72 48 R (Commands Manual)2.5 E(BIBCLEAN\(1\))115.96 E("") -.25 E .637(Each output line contains a single complete tok)108 100.8 R .637(en, identi\214ed by a small inte)-.1 F .638 (ger number for use by a com-)-.15 F(puter program, a tok)108 112.8 Q (en type name for human readers, and a string v)-.1 E(alue in quotes.) -.25 E .751(Special characters in the tok)108 129.6 R .751(en v)-.1 F .751 (alue string are represented with ANSI/ISO Standard C escape sequences,) -.25 F (so all characters other than NUL are representable, and multi-line v) 108 141.6 Q(alues can be represented in a single line.)-.25 E .036 (Here are the tok)108 158.4 R .036(en numbers and tok)-.1 F .037 (en type names that can appear in the output when)-.1 F/F1 10 /Times-Bold@0 SF(\255pr)2.537 E(ettyprint)-.18 E F0 .037(is speci-)2.537 F(\214ed:)108 170.4 Q 7.5(0U)146.5 187.2 S(NKNO)-7.5 E(WN)-.35 E 7.5(1A) 146.5 199.2 S(BBREV)-7.5 E 7.5(2A)146.5 211.2 S(T)-8.61 E 7.5(3C)146.5 223.2 S(OMMA)-7.5 E 7.5(4C)146.5 235.2 S(OMMENT)-7.5 E 7.5(5E)146.5 247.2 S(NTR)-7.5 E(Y)-.65 E 7.5(6E)146.5 259.2 S -.1(QU)-7.5 G(ALS)-.3 E 7.5(7F)146.5 271.2 S(IELD)-7.5 E 7.5(8I)146.5 283.2 S(NCLUDE)-7.5 E 7.5 (9I)146.5 295.2 S(NLINE)-7.5 E 5(10 KEY)144 307.2 R 5(11 LBRA)144 319.2 R(CE)-.4 E 5(12 LITERAL)144 331.2 R 5(13 NEWLINE)144 343.2 R 5 (14 PREAMBLE)144 355.2 R 5(15 RBRA)144 367.2 R(CE)-.4 E 5(16 SHARP)144 379.2 R 5(17 SP)144 391.2 R -.4(AC)-.92 G(E).4 E 5(18 STRING)144 403.2 R 5(19 V)144 415.2 R(ALUE)-1.35 E .526 (Programs that parse such output should also be prepared for lines be) 108 432 R .526(ginning with the w)-.15 F .526(arning pre\214x, %%,)-.1 F (or the error pre\214x, ??, and for ANSI/ISO Standard C line-number dir\ ecti)108 444 Q -.15(ve)-.25 G 2.5(so).15 G 2.5(ft)-2.5 G(he form)-2.5 E 2.5(#l)144 456 S(ine 273 "te)-2.5 E(xbook1.bib")-.15 E(that record the \ line number and \214le name of the current input \214le.)108 468 Q 1.134 (If a)108 484.8 R F1(\255max-width)3.634 E/F2 10/Times-Italic@0 SF(nnn) 3.634 E F0 1.134(command-line option w)3.634 F 1.135 (as speci\214ed, long output lines are wrapped at a backslash-)-.1 F(ne) 108 496.8 Q .454(wline pair)-.25 F 2.954(,a)-.4 G .454(nd consequently) -2.954 F 2.954(,s)-.65 G(oftw)-2.954 E .453(are that processes the le) -.1 F .453(xical tok)-.15 F .453(en stream should be prepared to col-) -.1 F(lapse such wrapped lines back into single lines.)108 508.8 Q (As an e)108 525.6 Q(xample of the use of)-.15 E F1(\255no-pr)2.5 E (ettyprint)-.18 E F0 2.5(,t)C(he UNIX command pipeline)-2.5 E F1 (bibclean \255no-pr)144 537.6 Q(ettyprint)-.18 E F2(mylib)2.5 E(.bib)-.4 E F0 2.5(|\\)2.5 G F1(awk)154 549.6 Q F0('$2 == "KEY" {print $3}' | \\) 2.5 E F1(sed)154 561.6 Q F0(-e ')2.5 E(s/"//g' | \\)-.55 E F1(sort)154 573.6 Q F0 -.15(ex)108 585.6 S(tracts a sorted list of all citation k) .15 E -.15(ey)-.1 G 2.5(si).15 G 2.5(nt)-2.5 G(he \214le)-2.5 E F2 (mylib)2.88 E(.bib)-.4 E F0(.).23 E 3.022(Ac)108 602.4 S .522 (ertain amount of processing has been done on the tok)-3.022 F 3.023 (ens. In)-.1 F(particular)3.023 E 3.023(,d)-.4 G .523(elimiters equi) -3.023 F -.25(va)-.25 G .523(lent to braces).25 F(ha)108 614.4 Q .3 -.15 (ve b)-.2 H(een replaced by braces, and braced strings ha).15 E .3 -.15 (ve b)-.2 H(ecome quoted strings.).15 E .144(The LITERAL tok)108 631.2 R .144(en type is used for arbitrary te)-.1 F .144(xt that)-.15 F F1 (bibclean)2.644 E F0 .144(does not e)2.644 F .144(xamine further)-.15 F 2.644(,s)-.4 G .143(uch as the con-)-2.644 F(tents of a @Preamble{.)108 643.2 Q 1.666(..)1.666 G 2.5(}o)-1.666 G 2.5(ra@)-2.5 G -.834 (Comment{. . .}.)-2.5 F .383(The UNKNO)108 660 R .383(WN tok)-.35 F .383 (en type should ne)-.1 F -.15(ve)-.25 G 2.883(ra).15 G .383 (ppear in the output stream.)-2.883 F .384 (It is used internally to initialize to-)5.384 F -.1(ke)108 672 S 2.5 (nt).1 G(ype v)-2.5 E(ariables.)-.25 E/F3 10.95/Times-Bold@0 SF (SCRIBE BIBLIOGRAPHY FORMA)72 688.8 Q(T)-1.04 E F1(bibclean)108 700.8 Q F0 1.444 -.55('s s)D .344(upport for the S).55 F/F4 8/Times-Roman@0 SF (CRIBE)A F0(bibliograph)2.844 E 2.844(yf)-.05 G .344 (ormat is based on the syntax description in the S)-2.844 F F4(CRIBE)A F0(In-)2.843 E 1.831(troductory User')108 712.8 R 4.331(sM)-.55 G 1.831 (anual, 3rd Edition, May 1980.)-4.331 F(S)6.831 E F4(CRIBE)A F0 -.1(wa) 4.331 G 4.332(so).1 G 1.832(riginally de)-4.332 F -.15(ve)-.25 G 1.832 (loped by Brian Reid at).15 F(Carne)108 724.8 Q 1.42(gie-Mellon Uni)-.15 F -.15(ve)-.25 G(rsity).15 E 3.92(,a)-.65 G 1.42(nd w)-3.92 F 1.42 (as mark)-.1 F 1.42 (eted by Unilogic, Ltd., later renamed to Scribe Systems, and)-.1 F -1.11(Ve)72 768 S(rsion 3.05)1.11 E(18 May 2020)156.785 E(13)197.335 E 0 Cg EP %%Page: 14 14 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 113.46(BIBCLEAN\(1\) General)72 48 R (Commands Manual)2.5 E(BIBCLEAN\(1\))115.96 E(apparently no)108 84 Q 2.5 (wl)-.25 G(ong defunct.)-2.5 E .169(The B)108 100.8 R/F1 8/Times-Roman@0 SF(IB)A F0(T)A(E)-1.667 2.4 M 2.669(Xb)-1.25 -2.4 O(ibliograph)-2.669 E 2.669(yf)-.05 G .169(ormat w)-2.669 F .169 (as strongly in\215uenced by S)-.1 F F1(CRIBE)A F0 2.669(,a)C .169 (nd indeed, with care, it is possible to)-2.669 F 1.175 (share bibliograph)108 112.8 R 3.675<798c>-.05 G 1.175 (les between the tw)-3.675 F 3.675(os)-.1 G 3.675(ystems. Ne)-3.675 F -.15(ve)-.25 G 1.175(rtheless, there are some dif).15 F 1.174 (ferences, so here is a)-.25 F(summary of features of the S)108 124.8 Q F1(CRIBE)A F0(bibliograph)2.5 E 2.5<798c>-.05 G(le format:)-2.5 E(\(1\)) 108 141.6 Q (Letter case is not signi\214cant in \214eld names and entry names, b) 134.66 141.6 Q(ut case is preserv)-.2 E(ed in v)-.15 E(alue strings.) -.25 E(\(2\))108 158.4 Q .85(In \214eld/v)134.66 158.4 R .85 (alue pairs, the \214eld and v)-.25 F .85 (alue may be separated by one of three characters: =, /, or space.)-.25 F(Space may optionally surround these separators.)134.66 170.4 Q(\(3\)) 108 187.2 Q -1.11(Va)134.66 187.2 S(lue delimiters are an)1.11 E 2.5(yo) -.15 G 2.5(ft)-2.5 G(hese se)-2.5 E -.15(ve)-.25 G 2.5(np).15 G (airs: { })-2.5 E 2.5([] \(\) <> '' "" ``)7.5 G(\(4\))108 204 Q -1.11 (Va)134.66 204 S .664(lue delimiters may not be nested, e)1.11 F -.15 (ve)-.25 G 3.164(nt).15 G .664 (hough with the \214rst four delimiter pairs, nested balanced)-3.164 F (delimiters w)134.66 216 Q(ould be unambiguous.)-.1 E(\(5\))108 232.8 Q .8(Delimiters can be omitted around v)134.66 232.8 R .8 (alues that contain only letters, digits, sharp \(#\), ampersand \(&\),) -.25 F(period \(.\), and percent \(%\).)134.66 244.8 Q(\(6\))108 261.6 Q (Outside of delimited v)134.66 261.6 Q(alues, a literal at-sign \(@\) i\ s represented by doubled at-signs \(@@\).)-.25 E(\(7\))108 278.4 Q (Bibliograph)134.66 278.4 Q 2.842(ye)-.05 G .342(ntries be)-2.842 F .341 (gin with @name, as for B)-.15 F F1(IB)A F0(T)A(E)-1.667 2.4 M .341 (X, b)-1.25 -2.4 N .341(ut an)-.2 F 2.841(yo)-.15 G 2.841(ft)-2.841 G .341(he se)-2.841 F -.15(ve)-.25 G 2.841(nS).15 G F1(CRIBE)-2.841 E F0 -.25(va)2.841 G .341(lue delimiter).25 F .281 (pairs may be used to surround the v)134.66 290.4 R .282 (alues in \214eld/v)-.25 F .282(alue pairs.)-.25 F .282 (As in \(4\), nested delimiters are forbid-)5.282 F(den.)134.66 302.4 Q (\(8\))108 319.2 Q (Arbitrary space may separate entry names from the follo)134.66 319.2 Q (wing delimiters.)-.25 E(\(9\))108 336 Q .717 (@Comment is a special command whose delimited v)134.66 336 R .716 (alue is discarded.)-.25 F .716(As in \(4\), nested delimiters)5.716 F (are forbidden.)134.66 348 Q(\(10\))108 364.8 Q(The special form)134.66 364.8 Q(@Be)134.66 381.6 Q(gin{comment})-.15 E 1.666(...)137.16 393.6 S (@End{comment})134.66 405.6 Q .121(permits encapsulating arbitrary te) 134.66 422.4 R .122(xt containing an)-.15 F 2.622(yc)-.15 G .122 (haracters or delimiters, other than `)-2.622 F(`@End{com-)-.74 E (ment}')134.66 434.4 Q 3.249('. An)-.74 F 3.249(yo)-.15 G 3.249(ft) -3.249 G .749(he se)-3.249 F -.15(ve)-.25 G 3.249(nd).15 G .749 (elimiter pairs may be used around the w)-3.249 F .748(ord `)-.1 F (`comment')-.74 E 3.248('f)-.74 G(ollo)-3.248 E .748(wing the)-.25 F -.74(``)134.66 446.4 S(@Be).74 E(gin')-.15 E 3.908('o)-.74 G 3.908(r`) -3.908 G(`@End')-4.648 E 1.408('; the delimiters in the tw)-.74 F 3.909 (oc)-.1 G 1.409(ases need not be the same, and consequently)-3.909 F(,) -.65 E -.74(``)134.66 458.4 S(@Be).74 E(gin{comment}')-.15 E('/`)-.74 E (`@End{comment}')-.74 E 2.5('p)-.74 G(airs may)-2.5 E/F2 10 /Times-Italic@0 SF(not)2.86 E F0(be nested.)3.18 E(\(11\))108 475.2 Q (The)134.66 475.2 Q F2 -.1(ke)2.5 G(y)-.2 E F0 (\214eld is required in each bibliograph)2.82 E 2.5(ye)-.05 G(ntry)-2.5 E(.)-.65 E(\(12\))108 492 Q 2.572(Ab)134.66 492 S .072 (ackslashed quote in a string is assumed to be a T)-2.572 F(E)-1.667 2.4 M 2.571(Xa)-1.25 -2.4 O .071(ccent, and braced appropriately)-2.571 F 5.071(.W)-.65 G .071(hile such)-5.071 F .194 (accents do not conform to S)134.66 504 R F1(CRIBE)A F0 .194(syntax, S) 2.694 F F1(CRIBE)A F0 .194(-format bibliographies ha)B .494 -.15(ve b) -.2 H .194(een found that appear).15 F(to be intended for T)134.66 516 Q (E)-1.667 2.4 M 2.5(Xp)-1.25 -2.4 O(rocessing.)-2.5 E 1.465 (Because of that loose syntax,)108 532.8 R/F3 10/Times-Bold@0 SF (bibclean)3.965 E F0 2.565 -.55('s n)D 1.465 (ormal error detection heuristics are less ef).55 F(fecti)-.25 E -.15 (ve)-.25 G 3.965(,a).15 G 1.465(nd conse-)-3.965 F(quently)108 544.8 Q 2.5(,S)-.65 G F1(CRIBE)-2.5 E F0(mode input is not the def)2.5 E (ault; it must be e)-.1 E(xplicitly requested.)-.15 E/F4 10.95 /Times-Bold@0 SF(ENVIR)72 561.6 Q(ONMENT V)-.329 E(ARIABLES)-1.478 E F3 (BIBCLEANEXT)108 573.6 Q F0(File e)190.78 573.6 Q (xtension of bibliograph)-.15 E(y-speci\214c initialization \214les.) -.05 E(Def)5 E(ault:)-.1 E F2(.ini)2.73 E F0(.).36 E F3(BIBCLEANINI)108 590.4 Q F0 .456(Name of)190.78 590.4 R F3(bibclean)2.956 E F0 .457 (initialization \214les.)2.956 F(Def)5.457 E(ault:)-.1 E F2(.bibcleanr) 3.187 E(c)-.37 E F0(\(UNIX\),)3.267 E F2(bibclean.ini)3.227 E F0(\(non-) 3.317 E(UNIX\).)190.78 602.4 Q F3(BIBCLEANISBN)108 619.2 Q F0 2.623 (Name of)190.78 619.2 R F3(bibclean)5.123 E F0 2.622 (ISBN initialization \214les.)5.122 F(Def)7.622 E(ault:)-.1 E F2 (.bibclean.isbn)5.352 E F0(\(UNIX\),)5.362 E F2(bib-)5.392 E(clean.isb) 190.78 631.2 Q F0(\(non-UNIX\).)2.73 E F3(BIBCLEANKEY)108 648 Q F0 1.712 (Name of)190.78 648 R F3(bibclean)4.212 E F0 -.1(ke)4.212 G(yw)-.05 E 1.712(ord initialization \214les.)-.1 F(Def)6.712 E(ault:)-.1 E F2 (.bibclean.k)4.442 E -.3(ey)-.1 G F0(\(UNIX\),)4.833 E F2(bib-)4.483 E (clean.k)190.78 660 Q -.3(ey)-.1 G F0(\(non-UNIX\).)3.12 E F3(BIBINPUTS) 108 676.8 Q F0 .16(Search path for)190.78 676.8 R F3(bibclean)2.659 E F0 .159(and B)2.659 F F1(IB)A F0(T)A(E)-1.667 2.4 M 2.659(Xi)-1.25 -2.4 O .159(nput \214les.)-2.659 F .159(On UNIX, it is a colon-separated list) 5.159 F .363 (of directories that are searched in order from \214rst to last.)190.78 688.8 R .363(It is not an error for a speci-)5.363 F (\214ed directory to not e)190.78 700.8 Q(xist.)-.15 E .015(On other op\ erating systems, the directory names should be separated by whate)190.78 717.6 R -.15(ve)-.25 G 2.515(rc).15 G(har)-2.515 E(-)-.2 E 1.514(acter \ is used in system search path speci\214cations, such as a semicolon on \ IBM PC)190.78 729.6 R -1.11(Ve)72 768 S(rsion 3.05)1.11 E(18 May 2020) 156.785 E(14)197.335 E 0 Cg EP %%Page: 15 15 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 113.46(BIBCLEAN\(1\) General)72 48 R (Commands Manual)2.5 E(BIBCLEAN\(1\))115.96 E(DOS.)190.78 84 Q/F1 10 /Times-Bold@0 SF -.74(PA)108 100.8 S(TH)-.21 E F0 .945(On Atari T)190.78 100.8 R .944(OS, IBM PC DOS, IBM PC OS/2, Microsoft NT)-.18 F 3.444(,a) -.74 G .944(nd UNIX, search path)-3.444 F 1.344(for system e)190.78 112.8 R -.15(xe)-.15 G 1.344(cutable \214les.).15 F 1.344 (The system-wide)6.344 F F1(bibclean)3.844 E F0 1.344 (initialization \214le is searched)3.844 F(for in that path.)190.78 124.8 Q F1(SYS$SYSTEM)108 141.6 Q F0 .655(On V)190.78 141.6 R .655 (AX VMS, search path for system e)-1.35 F -.15(xe)-.15 G .655 (cutable \214les and the system-wide).15 F F1(bibclean)3.155 E F0 (initialization \214le.)190.78 153.6 Q/F2 10.95/Times-Bold@0 SF(FILES)72 170.4 Q/F3 10/Times-Italic@0 SF(*.bib)107.22 182.4 Q F0(B)170.5 182.4 Q /F4 8/Times-Roman@0 SF(IB)A F0(T)A(E)-1.667 2.4 M 2.5(Xa)-1.25 -2.4 O (nd S)-2.5 E F4(CRIBE)A F0(bibliograph)2.5 E 2.5(yd)-.05 G (ata base \214les.)-2.5 E F3(*.ini)107.22 199.2 Q F0 (File-speci\214c initialization \214les.)170.5 199.2 Q F3 (.bibclean.isbn)108.23 216 Q F0(UNIX system-wide and user)170.5 216 Q (-speci\214c ISBN initialization \214les.)-.2 E F3(.bibclean.k)108.23 232.8 Q -.3(ey)-.1 G F0(UNIX system-wide and user)170.5 232.8 Q (-speci\214c k)-.2 E -.15(ey)-.1 G -.1(wo).15 G (rd initialization \214les.).1 E F3(.bibcleanr)108.23 249.6 Q(c)-.37 E F0(UNIX system-wide and user)170.5 249.6 Q (-speci\214c initialization \214les.)-.2 E F3(bibclean.ini)108.27 266.4 Q F0(Non-UNIX system-wide and user)170.5 266.4 Q (-speci\214c initialization \214les.)-.2 E F3(bibclean.isb)108.27 283.2 Q F0(Non-UNIX system-wide and user)170.5 283.2 Q (-speci\214c ISBN initialization \214les.)-.2 E F3(bibclean.k)108.27 300 Q -.3(ey)-.1 G F0(Non-UNIX system-wide and user)170.5 300 Q (-speci\214c k)-.2 E -.15(ey)-.1 G -.1(wo).15 G (rd initialization \214les.).1 E F2(SEE ALSO)72 316.8 Q F1(bibcheck)108 328.8 Q F0(\(1\),)A F1(bibdup)4.202 E F0(\(1\),)A F1(bibextract)4.202 E F0(\(1\),)A F1(bibindex)4.202 E F0(\(1\),)A F1(bibjoin)4.202 E F0 (\(1\),)A F1(biblabel)4.203 E F0(\(1\),)A F1(biblex)4.203 E F0(\(1\),)A F1(biblook)4.203 E F0(\(1\),)A F1(bi-)4.203 E(border)108 340.8 Q F0 (\(1\),)A F1(bibparse)4.538 E F0(\(1\),)A F1(bibsear)4.538 E(ch)-.18 E F0(\(1\),)A F1(bibsort)4.538 E F0(\(1\),)A F1(bibtex)4.538 E F0(\(1\),)A F1(bib)4.537 E(unlex)-.2 E F0(\(1\),)A F1(cite\214nd)4.537 E F0(\(1\),)A F1(citesub)4.537 E F0(\(1\),)A F1(cite-)4.537 E(tags)108 352.8 Q F0 (\(1\),)A F1(latex)2.5 E F0(\(1\),)A F1(scribe)2.5 E F0(\(1\),)A F1(tex) 2.5 E F0(\(1\).)A F2 -.548(AU)72 369.6 S(THOR).548 E F0(Nelson H. F)108 381.6 Q 2.5(.B)-.8 G(eebe)-2.5 E(Uni)108 393.6 Q -.15(ve)-.25 G (rsity of Utah).15 E(Department of Mathematics, 110 LCB)108 405.6 Q (155 S 1400 E RM 233)108 417.6 Q(Salt Lak)108 429.6 Q 2.5(eC)-.1 G(ity) -2.5 E 2.5(,U)-.65 G 2.5(T8)-2.5 G(4112-0090)-2.5 E(USA)108 441.6 Q -.7 (Te)108 453.6 S(l: +1 801 581 5254).7 E -.74(FA)108 465.6 S (X: +1 801 581 4148).74 E(Email: beebe@math.utah.edu, beebe@acm.or)108 477.6 Q(g, beebe@computer)-.18 E(.or)-.55 E 2.5(g\()-.18 G(Internet\)) -2.5 E(URL: http://www)108 489.6 Q(.math.utah.edu/~beebe)-.65 E F2 (COPYRIGHT)72 506.4 Q/F5 10/Courier@0 SF(##############################\ ##########################################)108 518.4 Q(################\ ########################################################)108 530.4 Q(##\ ######################################################################) 108 542.4 Q 390(### ###)108 554.4 R 24(### bibclean:)108 566.4 R (prettyprint and syntax check BibTeX and Scribe)6 E(###)30 E 108 (### bibliography)108 578.4 R(data base files)6 E(###)114 E 390(### ###) 108 590.4 R 60(### Copyright)108 602.4 R (\(C\) 1990--2016 Nelson H. F. Beebe)6 E(###)72 E 390(### ###)108 614.4 R(### This program is covered by the GNU General Public License \(GPL\)\ , ###)108 626.4 Q(### version 2 or later, available as the file COPYING\ in the program ###)108 638.4 Q (### source distribution, and on the Internet at)108 650.4 Q(###)132 E 390(### ###)108 662.4 R 84(### ftp://ftp.gnu.org/gnu/GPL)108 674.4 R (###)156 E 390(### ###)108 686.4 R 84 (### http://www.gnu.org/copyleft/gpl.html ###)108 698.4 R 390(### ###) 108 710.4 R (### This program is free software; you can redistribute it and/or)108 722.4 Q(###)24 E F0 -1.11(Ve)72 768 S(rsion 3.05)1.11 E(18 May 2020) 156.785 E(15)197.335 E 0 Cg EP %%Page: 16 16 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 113.46(BIBCLEAN\(1\) General)72 48 R (Commands Manual)2.5 E(BIBCLEAN\(1\))115.96 E/F1 10/Courier@0 SF (### modify it under the terms of the GNU General Public License as)108 84 Q(###)18 E (### published by the Free Software Foundation; either version 2 of)108 96 Q(###)18 E(### the License, or \(at your option\) any later version.) 108 108 Q(###)84 E 390(### ###)108 120 R (### This program is distributed in the hope that it will be useful,)108 132 Q(###)12 E (### but WITHOUT ANY WARRANTY; without even the implied warranty of)108 144 Q(###)18 E(### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.) 108 156 Q(See the)12 E(###)24 E (### GNU General Public License for more details.)108 168 Q(###)126 E 390(### ###)108 180 R (### You should have received a copy of the GNU General Public)108 192 Q (###)48 E (### License along with this program; if not, write to the Free)108 204 Q(###)42 E (### Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,)108 216 Q(###)18 E(### MA 02111-1307 USA)108 228 Q(###)288 E(##############\ ##########################################################)108 240 Q(##\ ######################################################################) 108 252 Q(#############################################################\ ###########)108 264 Q F0 -1.11(Ve)72 768 S(rsion 3.05)1.11 E (18 May 2020)156.785 E(16)197.335 E 0 Cg EP %%Trailer end %%EOF bibclean-3.07/bibclean.key0000644000156700015670000000463313252335465014373 0ustar beebebeebe%% Document Object Identifier (Academic Press IDEAL library) doi DOI %% Zentralblatt f{\"u}r Mathematik classification zmclass ZMclass %% Zentralblatt f{\"u}r Mathematik number zmnumber ZMnumber %% Zentralblatt f{\"u}r Mathematik reviewer zmreviewer ZMreviewer %% [20-Jan-2001] tags that should normally be in uppercase optcoden OPTCODEN optissn OPTISSN optisbn OPTISBN optlccn OPTLCCN %% [27-Jan-2001] new tags in DBLP bibliographies converted from XML to BibTeX urlpublisher URLpublisher urlseries URLseries warning WARNING xmldata XMLdata %% [22-Feb-2001] ecmanumber ECMAnumber %% [09-Nov-2002] crclass CRclass crnumber CRnumber %% [11-Apr-2003] xxisbn xxISBN xxissn xxISSN xxlccn xxLCCN %% [27-Oct-2003] ean EAN %% [03-Jun-2005] isbn-13 ISBN-13 %% [20-Dec-2005] dewey DEWEY %% [28-Oct-2006] schilpp-number Schilpp-number whittaker-number Whittaker-number %% [20-May-2010] pacs PACS %% [14-Jul-2010] calaprice-number Calaprice-number %% [05-Feb-2011] mrtitle MRtitle mryear MRyear %% [31-May-2011] [for John Tukey's bibliography: cross references to Annals of Statistics publication data] asnumber ASnumber pmnumber PMnumber %% [03-Jun-2011] [for IEEE conference proceedings] book-url book-URL %% [14-Jun-2011] New linking ISSN (see http://www.issn.org/2-22637-What-is-an-ISSN-L.php) issn-l ISSN-L %% [27-Jun-2011] [for prng.bib] hdnumber HDnumber %% [14-Sep-2011] for SAO/NASA BibTeX entry conversions adsurl URL adsnote OPTadsnote %% [06-Oct-2011] for teller-edward.bib lsnumber LSnumber %% [17-Oct-2011] for born-max.bib ksnumber KSnumber %% [13-Jun-2012] for schroedinger-erwin.bib aclp-number ACLP-number %% [17-Jun-2012] for fermi-enrico.bib bc-number BC-number %% [23-Jun-2012] for fermi-enrico.bib cp-number CP-number %% [08-Jul-2012] for pauli-wolfgang.bib rep-number REP-number %% [24-Nov-2012] for many journals journal-url journal-URL %% [15-Dec-2012] for some conference series (e.g., Springer Lecture Notes in Computer Science) book-doi book-DOI series-url series-URL %% [24-May-2014] mrreviewer MRreviewer mrauthor MRauthor %% [28-May-2014] remap zbMATH key names to our conventional names zbl ZMnumber msc2010 MRnumber %% [13-Feb-2015] for recent IEEE journals abstract-url abstract-URL %% [21-Aug-2015] International Standard Music Number ismn ISMN %% [06-Feb-2018] ISI Web of Science data orcid-numbers ORCID-numbers %% [14-Mar-2018] SCOPUS data scopus-author-id SCOPUS-author-ID bibclean-3.07/bibclean.html0000444000156700015670000032457713661065607014563 0ustar beebebeebe BIBCLEAN 1 "18 May 2020" "Version 3.05"

BIBCLEAN 1 "18 May 2020" "Version 3.05"

Table of contents


NAME

bibclean - prettyprint and syntax check BibTeX and Scribe bibliography data base files


SYNOPSIS

bibclean [ -author ] [ -copyleft ] [ -copyright ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -ISBN-file filename ] [ -keyword-file filename ] [ -max-width nnn ] [ -[no-]align-equals ] [ -[no-]brace-protect ] [ -[no-]check-values ] [ -[no-]debug-match-failures ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-accents ] [ -[no-]fix-braces ] [ -[no-]fix-degrees ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-math ] [ -[no-]fix-names ] [ -[no-]German-style ] [ -[no-]keep-linebreaks ] [ -[no-]keep-parbreaks ] [ -[no-]keep-preamble-spaces ] [ -[no-]keep-spaces ] [ -[no-]keep-string-spaces ] [ -[no-]parbreaks ] [ -[no-]prettyprint ] [ -[no-]print-ISBN-table ] [ -[no-]print-keyword-table ] [ -[no-]print-patterns ] [ -[no-]quiet ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -output-file filename ] [ -version ] <infile or bibfile1 bibfile2 bibfile3 ... >outfile

All options can be abbreviated to a unique leading prefix.

An explicit file name of ``-'' represents standard input; it is assumed if no input files are specified.

On VAX VMS and IBM PC DOS, the leading ``-'' on option names may be replaced by a slash, ``/''; however, the ``-'' option prefix is always recognized.


DESCRIPTION

bibclean prettyprints input BibTeX files to stdout, or to a user-specified file, and checks the brace balance and bibliography entry syntax as well. It can be used to detect problems in BibTeX files that sometimes confuse even BibTeX itself, and importantly, can be used to normalize the appearance of collections of BibTeX files.

Here is a summary of the formatting actions:

  • BibTeX items are formatted into a consistent structure with one field = "value" pair per line, and the initial @ and trailing right brace in column 1.
  • Tabs are expanded into blank strings; their use is discouraged because they inhibit portability, and can suffer corruption in electronic mail.
  • Long string values are split at a blank and continued onto the next line with leading indentation.
  • A single blank line separates adjacent bibliography entries.
  • Text outside BibTeX entries is passed through verbatim.
  • Outer parentheses around entries are converted to braces.
  • Personal names in author and editor field values are normalized to the form ``P. D. Q. Bach'', from ``P.D.Q. Bach'' and ``Bach, P.D.Q.''.
  • Hyphen sequences in page numbers are converted to en-dashes.
  • Month values are converted to standard BibTeX string abbreviations.
  • In titles, sequences of upper-case characters at brace level zero are braced to protect them from being converted to lower-case letters by some bibliography styles.
  • CODEN, ISBN (International Standard Book Number) and ISSN (International Standard Serial Number) entry values are examined to verify the checksums of each listed number, and correct ISBN hyphenation is automatically supplied.
The standardized format of the output of bibclean facilitates the later application of simple filters, such as bibcheck (1), bibdup (1), bibextract (1), bibindex (1), bibjoin (1), biblabel (1), biblook (1), biborder (1), bibsort (1), citefind (1), and citetags (1), to process the text, and also is the one expected by the GNU Emacs BibTeX support functions.

OPTIONS

Command-line switches may be abbreviated to a unique leading prefix, and letter case is not significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag to no . For such options, the last setting determines the flag value used. That is significant when options are also specified in initialization files (see the INITIALIZATION FILES manual section).

The leading hyphen that distinguishes an option from a filename may be doubled, for compatibility with GNU and POSIX conventions. Thus, -author and --author are equivalent.

To avoid confusion with options, if a filename begins with a hyphen, it must be disguised by a leading absolute or relative directory path, e.g., /tmp/-foo.bib or ./-foo.bib.

-author
Display an author credit on the standard error unit, stderr, and then terminate with a success return code. Sometimes an executable program is separated from its documentation and source code; this option provides a way to recover from that.
-copyleft
Display copyright information on the standard error unit, stderr, and then terminate with a success return code.
-copyright
Display copyright information on the standard error unit, stderr, and then terminate with a success return code.
-error-log filename
Redirect stderr to the indicated file, which then contains all of the error and warning messages. This option is provided for those systems that have difficulty redirecting stderr.
-help or -?
Display a help message on stderr, giving a usage description, similar to this section of the manual pages, and then terminate with a success return code.
-ISBN-file filename
Provide an explicit ISBN-range initialization file. It is processed after any system-wide and job-wide ISBN initialization files found on the PATH (for VAX VMS, SYS$SYSTEM ) and BIBINPUTS search paths, respectively, and may override them. The ISBN initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANISBN, but defaults to .bibclean.isbn on UNIX, and bibclean.isb elsewhere. For further details, see the ISBN INITIALIZATION FILES manual section.
-init-file filename
Provide an explicit value pattern initialization file. It is processed after any system-wide and job-wide initialization files found on the PATH (for VAX VMS, SYS$SYSTEM ) and BIBINPUTS search paths, respectively, and may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANINI, but defaults to .bibcleanrc on UNIX, and to bibclean.ini elsewhere. For further details, see the INITIALIZATION FILES manual section.
-keyword-file filename
Provide an explicit keyword initialization file. It is processed after any system-wide and job-wide keyword initialization files found on the PATH (for VAX VMS, SYS$SYSTEM ) and BIBINPUTS search paths, respectively, and may override them. The keyword initialization file name can be changed at compile time, or at run time through a setting of the environment variable BIBCLEANKEY, but defaults to .bibclean.key on UNIX, and bibclean.key elsewhere. For further details, see the KEYWORD INITIALIZATION FILES manual section.
-max-width nnn
bibclean normally limits output line widths to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special-purpose applications may require different maximum line widths, so this option provides that capability. The number following the option name can be specified in decimal, octal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is interpreted to mean unlimited, so -max-width 0 can be used to ensure that each field/value pair appears on a single line.

When -no-prettyprint requests bibclean to act as a lexical analyzer, the default line width is unlimited, unless overridden by this option.

When bibclean is prettyprinting, line wrapping is done only at a space. Consequently, a long non-blank character sequence may result in the output exceeding the requested line width.

When bibclean is lexing, line wrapping is done by inserting a backslash-newline pair when the specified maximum is reached, so no line length ever exceeds the maximum.

-[no-]align-equals
With the positive form, align the equals sign in key/value assignments at the same column, separated by a single space from the value string. Otherwise, the equals sign follows the key, separated by a single space. Default: no.
-[no-]brace-protect
Protect uppercase and mixedcase words at brace-level zero with braces to prevent downcasing by some BibTeX styles. Default: yes.
-[no-]check-values
With the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g., `` year = "192" '' instead of `` year = "1992" ''), and issue warnings when unexpected patterns are found.

That checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can disable it with the negative form of this option. Default: yes.

-[no-]debug-match-failures
With the positive form, print out a warning when a value pattern fails to match a value string.

That is helpful in debugging new patterns, but because the output can be voluminous, you should use this option only with small test files, and initialization files that eliminate all patterns apart from the ones that you are testing. Default: no.

-[no-]delete-empty-values
With the positive form, remove all field/value pairs for which the value is an empty string. That is helpful in cleaning up bibliographies generated from text editor templates. Compare this option with -[no-]remove-OPT-prefixes described below. Default: no.
-[no-]file-position
With the positive form, give detailed file position information in warning and error messages. Default: no.
-[no-]fix-accents
With the positive form, normalize TeX accents in annotes, authors, booktitles, editors, notes, remarks, and titles. Default: no.
-[no-]fix-braces
With the positive form, normalize bracing in annotes, authors, booktitles, editors, notes, remarks, and titles, by removing unnecessary levels of braces. Default: no.
-[no-]fix-degrees
With the positive form, remove spaces in author/editor fields inside braces after letter-ending periods. That makes reductions from J. J. {Thomson, M. A., F. R. S.}, Frederick {Soddy, B. A. (Oxon.)}, and John A. {Cable, M. A., M. Ed., Dipl. Deutsch (Marburg), A. L. C. M.} to J. J. {Thomson, M.A., F.R.S.}, Frederick {Soddy, B.A. (Oxon.)}, and John A. {Cable, M.A., M.Ed., Dipl.Deutsch (Marburg), A.L.C.M.}, respectively.

In journals in the humanities and history of science, as well as in some scientific journals until well into the 20th Century, academic, honorary, and professional titles and degrees are commonly attached to personal names. Even though modern publishing practice avoids such decorations, for accuracy, bibliography entries should preferably retain them. Journal typographical practice generally follows the reductions described here.

-[no-]fix-font-changes
With the positive form, supply an additional brace level around font changes in titles to protect against downcasing by some BibTeX styles. Font changes that already have more than one level of braces are not modified.

For example, if a title contains the Latin phrase {\em Dictyostelium discoideum} or {\em {D}ictyostelium discoideum}, then downcasing incorrectly converts the phrase to lower-case letters. Most BibTeX users are surprised that bracing the initial letters does not prevent the downcase action. The correct coding is {{\em Dictyostelium discoideum}}. However, there are also legitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, bibclean normally does not supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this option to supply them.

If you think that you need this option, it is strongly recommended that you apply bibclean to your bibliography file with and without -fix-font-changes, then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You must decide which of the two output files is the better choice, then repair the incorrect title bracing by hand.

Because font changes in titles are uncommon, except for cases of the type that this option is designed to correct, it should do more good than harm. Default: no.

-[no-]fix-initials
With the positive form, insert a space after a period following author initials. Default: yes.
-[no-]fix-math
With the positive form, improve readability of math mode in titles by inserting spaces around operators, deleting other unnecessary space, and removing braces around single-character subscripts and superscripts. Default: no.
-[no-]fix-names
With the positive form, reorder author and editor name lists to remove commas at brace level zero, placing first names or initials before last names. Default: yes.
-[no-]German-style
With the positive form, interpret quote characters [ "] inside braced value strings at brace level 1 according to the conventions of the TeX style file german.sty, which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, invisible hyphens, raised/lowered quotes, French guillemets, and discretionary hyphens. Recognized character combinations are braced to prevent BibTeX from interpreting the quote as a string delimiter.

Quoted strings receive no special handling from this option, and because German nouns in titles must anyway be protected from the downcasing operation of most BibTeX bibliography styles, German value strings that use the overloaded quote character can always be entered in the form "{...}", without the need to specify this option at all.

Default: no.

-[no-]keep-linebreaks
Normally, line breaks inside value strings are collapsed into a single space, so that long value strings can later be broken to provide lines of reasonable length.

With the positive form, linebreaks are preserved in value strings. If -max-width is set to zero, this preserves the original line breaks. Spacing outside value strings remains under bibclean 's control, and is not affected by this option.

Default: no.

-[no-]keep-parbreaks
With the positive form, preserve paragraph breaks (either formfeeds, or lines containing only spaces) in value strings. Normally, paragraph breaks are collapsed into a single space. Spacing outside value strings remains under bibclean 's control, and is not affected by this option. Default: no.
-[no-]keep-preamble-spaces
With the positive form, preserve all whitespace in @Preamble{...} entries. Default: no.
-[no-]keep-spaces
With the positive form, preserve all spaces in value strings. Normally, multiple spaces are collapsed into a single space. This option can be used together with -keep-linebreaks, -keep-parbreaks, and -max-width 0 to preserve the form of value strings while still providing syntax and value checking. Spacing outside value strings remains under bibclean 's control, and is not affected by this option. Default: no.
-[no-]keep-string-spaces
With the positive form, preserve all whitespace in @String{...} entries. Default: no.
-[no-]parbreaks
With the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field/value pairs. That may be useful to quickly trap runaway strings arising from mismatched delimiters. Default: yes.
-[no-]prettyprint
Normally, bibclean functions as a prettyprinter. However, with the negative form of this option, it acts as a lexical analyzer instead, producing a stream of lexical tokens. See the LEXICAL ANALYSIS manual section for further details. Default: yes.
-[no-]print-ISBN-table
With the positive form, print the ISBN-range table on stderr, then terminate with a success return code.

That action is taken after all command-line options are processed, and before any input files are read (other than those that are values of command-line options).

The format of the output ISBN-range table is acceptable for input as an ISBN initialization file (see the ISBN INITIALIZATION FILES manual section). Default: no.

-[no-]print-keyword-table
With the positive form, print the keyword initialization table on stderr, then terminate with a success return code.

That action is taken after all command-line options are processed, and before any input files are read (other than those that are values of command-line options).

The format of the output table is acceptable for input as a keyword initialization file (see the KEYWORD INITIALIZATION FILES manual section). Default: no.

-[no-]print-patterns
With the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used.

When bibclean is compiled with native pattern-matching code (the default), those patterns are the ones that are used in checking value strings for valid syntax, and all of them are specified in initialization files, rather than hard-coded into the program. For further details, see the INITIALIZATION FILES manual section. Default: no.

-[no-]quiet
This option is the opposite of -[no-]warning ; it exists for user convenience, and for compatibility with other programs that use -q   for quiet operation, without warning messages.
-[no-]read-init-files
With the negative form, suppress loading of system-, user-, and file-specific initialization files. Initializations then come only from those files explicitly given by -init-file filename options. Default: yes.
-[no-]remove-OPT-prefixes
With the positive form, remove the ``OPT'' prefix from each field name where the corresponding value is not an empty string. The prefix ``OPT'' must be entirely in upper-case to be recognized.

This option is for bibliographies generated with the help of the GNU Emacs BibTeX editing support, which generates templates with optional fields identified by the ``OPT'' prefix. Although the function M-x normally bound to the keystrokes C-c does the job, users often forget, with the result that BibTeX does not recognize the field name, and ignores the value string. Compare this option with -[no-]delete-empty-values described above. Default: no.

-[no-]scribe
With the positive form, accept input syntax conforming to the Scribe document system. The output is converted to conform to BibTeX syntax. See the SCRIBE BIBLIOGRAPHY FORMAT manual section for further details. Default: no.
-[no-]trace-file-opening
With the positive form, record in the error log file the names of all files that bibclean attempts to open. Use this option to identify where initialization files are located. Default: no.
-[no-]warnings
With the positive form, allow all warning messages. The negative form is not recommended because it may mask problems that should be repaired. Default: yes .
-output-file filename
Supply an alternate output file to replace stdout . If the filename cannot be opened for output, execution terminates immediately with a nonzero exit code.
-version
Display the program version number on stderr, and then terminate with a success return code. That includes an indication of who compiled the program, the host name on which it was compiled, the time of compilation, and the type of string-value matching code selected, when that information is available to the compiler.

ERROR RECOVERY AND WARNINGS

When bibclean detects an error, it issues an error message to both stderr and stdout . That way, the user is clearly notified, and the output bibliography also contains the message at the point of error.

Error messages begin with a distinctive pair of queries, ??, beginning in column 1, followed by the input file name and line number. If the -file-position option was specified, they also contain the input and output positions of the current file, entry, and value. Each position includes the file byte number, the line number, and the column number. In the event of a runaway string argument, the entry and value positions should precisely pinpoint the erroneous bibliography entry, and the file positions indicate where it was detected, which may be rather later in the files.

Warning messages identify possible problems, and are therefore sent only to stderr, and not to stdout, so they never appear in the output file. They are identified by a distinctive pair of percents, %%, beginning in column 1, and as with error messages, may be followed by file position messages if the -file-position option was specified.

For convenience, the first line of each error and warning message sent to stderr is formatted according to the expectations of the GNU Emacs next-error command. You can invoke bibclean with the Emacs M-x compile<RET>bibclean filename.bib > filename.new command, then use the next-error command, normally bound to C-x ` (that's a grave, or back, accent), to move to the location of the error in the input file.

If error messages are ignored, and left in the output bibliography file, they precipitates an error when the bibliography is next processed with BibTeX.

After issuing an error message, bibclean then resynchronizes its input by copying it verbatim to stdout until a new bibliography entry is recognized on a line in which the first non-blank character is an at-sign (@). That ensures that nothing is lost from the input file(s), allowing corrections to be made in either the input or the output files. However, if bibclean detects an internal error in its data structures, it terminates abruptly without further input or output processing; that kind of error should never happen, and if it does, it should be reported immediately to the author of the program. Errors in initialization files, and running out of dynamic memory, also immediately terminate bibclean.


SEARCH PATHS

Versions of bibclean before 3.00 found some of their initialization files in the same directory as the executable program. That design choice means that those files can be copied anywhere in the file system, and still be found at run time. Some software distributions, however, prefer to follow the model where initialization and other related files are instead stored in a directory whose name is related to that of the executable by a conventional difference in filepath. For example, a program might be installed in /opt/bin and its associated files in /opt/share/lib/PROGRAMNAME/ or /opt/share/lib/PROGRAMNAME/PROGRAMVERSION/. The second form is preferable, because it permits multiple versions of the same program to be installed, as long as the executable program names carry a version suffix. Thus, a site might have installed programs named bibclean-1.00, bibclean-2.00, bibclean-2.15, and bibclean-3.00, with the versionless name bibclean being a symbolic link to whichever version is the desired local default.

With most software packages, the absolute path to the directory containing associated files is compiled into the program, making it impossible to change the installation locations after the program has been built from source code.

Some packages, however, instead use the location of the executable program to find files by relative path at runtime. In the above example, the program would determine its filesystem location at runtime, say /opt/bin, then find its associated files relative to that location in ../share/lib/PROGRAMNAME/PROGRAMVERSION/.

From version 3.00, bibclean uses that second approach, with an associated directory like ../share/lib/bibclean/3.00. That allows an installation directory tree to be distributed to other systems and unbundled anywhere in the file system, as long as the relative paths are not changed. bibclean tests whether its compiled-in library path is a directory on the local system, and if so, uses it. Otherwise, it replaces that path by a reconstructed one based on the location of the executable program. If the reconstructed path for the library directory does not exist, it uses a warning. In either case, it continues normally.

With the old approach, initialization files on Unix systems were named with a leading period, making them `hidden' files for the ls command. With the new practice, initialization files are no longer named as hidden files.


INITIALIZATION FILES

bibclean can be compiled with one of three different types of pattern matching; the choice is made by the installer at compile time:

  • The original version uses explicit hand-coded tests of value-string syntax.
  • The second version uses regular-expression pattern-matching host library routines together with regular-expression patterns that come entirely from initialization files.
  • The third version uses special patterns that come entirely from initialization files.

The second and third versions are the ones of most interest here, because they allow the user to control what values are considered acceptable. However, command-line options can also be specified in initialization files, no matter which pattern matching choice was selected.

When bibclean starts, it searches for initialization files, finding the first one in the system executable program search path (on UNIX and IBM PC DOS, PATH ) and the first one in the BIBINPUTS search path, and processes them in turn. Then, when command-line arguments are processed, any additional files specified by -init-file filename options are also processed. Finally, immediately before each named bibliography file is processed, an attempt is made to process an initialization file with the same name, but with the extension changed to .ini. The default extension can be changed by a setting of the environment variable BIBCLEANEXT . That scheme permits system-wide, user-wide, session-wide, and file-specific initialization files to be supported.

When input is taken from stdin, there is no file-specific initialization.

For precise control, the -no-read-init-files option suppresses all initialization files except those explicitly named by -init-file filename options, either on the command line, or in requested initialization files.

Recursive execution of initialization files with nested -init-file options is permitted; if the recursion is circular, bibclean finally gets a non-fatal initialization file open failure after opening too many files. That terminates further initialization file processing. As the recursion unwinds, the files are all closed, then execution proceeds normally.

An initialization file may contain empty lines, comments from percent to end of line (just like TeX), option switches, and field/pattern or field/pattern/message assignments. Leading and trailing spaces are ignored. That is best illustrated by a short example:

% This is a small bibclean initialization file

-init-file /u/math/bib/.bibcleanrc  %% departmental patterns

chapter = "\"D\""                 %% 23

pages   = "\"D--D\""              %% 23--27

volume  = "\"D \an\d D\""       %% 11 and 12

year    = \
   "\"dddd, dddd, dddd\"" \
   "Multiple years specified."      %% 1989, 1990, 1991

-no-fix-names   %% do not modify author/editor lists

Long logical lines can be split into multiple physical lines by breaking at a backslash-newline pair; the backslash-newline pair is discarded. That processing happens while characters are being read, before any further interpretation of the input stream.

Each logical line must contain a complete option (and its value, if any), or a complete field/pattern pair, or a field/pattern/message triple.

Comments are stripped during the parsing of the field, pattern, and message values. The comment start symbol is not recognized inside quoted strings, so it can be freely used in such strings.

Comments on logical lines that were input as multiple physical lines via the backslash-newline convention must appear on the last physical line; otherwise, the remaining physical lines become part of the comment.

Pattern strings must be enclosed in quotation marks; within such strings, a backslash starts an escape mechanism that is commonly used in UNIX software. The recognized escape sequences are:

\a
alarm bell (octal 007)
\b
backspace (octal 010)
\f
formfeed (octal 014)
\n
newline (octal 012)
\r
carriage return (octal 015)
\t
horizontal tab (octal 011)
\v
vertical tab (octal 013)
\ooo
character number octal ooo (e.g \012 is linefeed). Up to 3 octal digits may be used.
\0xhh
character number hexadecimal hh (e.g., \0x0a is linefeed). xhh may be in either letter case. Any number of hexadecimal digits may be used.

Backslash followed by any other character produces just that character. Thus, \% gets a literal percent into a string (preventing its interpretation as a comment), \" produces a quotation mark, and \ produces a single backslash.

An ASCII NUL (\0) in a string terminates it; that is a feature of the C programming language in which bibclean is implemented.

Field/pattern pairs can be separated by arbitrary space, and optionally, either an equals sign or colon functioning as an assignment operator. Thus, the following are equivalent:

pages="\"D--D\""
pages:"\"D--D\""
pages "\"D--D\""
  pages = "\"D--D\""
  pages : "\"D--D\""
pages   "\"D--D\""

Each field name can have an arbitrary number of patterns associated with it; however, they must be specified in separate field/pattern assignments.

An empty pattern string causes previously-loaded patterns for that field name to be forgotten. That feature permits an initialization file to completely discard patterns from earlier initialization files.

Patterns for value strings are represented in a tiny special-purpose language that is both convenient and suitable for bibliography value-string syntax checking. While not as powerful as the language of regular-expression patterns, its parsing can be portably implemented in less than 3% of the code in a widely-used regular-expression parser (the GNU regexp package).

The patterns are represented by the following special characters:

<space>
one or more spaces
a
exactly one letter
A
one or more letters
d
exactly one digit
D
one or more digits
r
exactly one Roman numeral
R
one or more Roman numerals (i.e. a Roman number)
w
exactly one word (one or more letters and digits)
W
one or more space-separated words, beginning and ending with a word
.
one `special' character, one of the characters < space>!#()*+,-./:;?[]~, a subset of punctuation characters that are typically used in string values
:
one or more `special' characters
X
one or more `special'-separated words, beginning and ending with a word
\x
exactly one x (x is any character), possibly with an escape sequence interpretation given earlier
x
exactly the character x (x is anything but one of these pattern characters: aAdDrRwW.:<space>\)

The X pattern character is very powerful, but generally inadvisable, because it matches almost anything likely to be found in a BibTeX value string. The reason for providing pattern matching on the value strings is to uncover possible errors, not mask them.

There is no provision for specifying ranges or repetitions of characters, but that can usually be done with separate patterns. It is a good idea to accompany the pattern with a comment showing the kind of thing it is expected to match. Here is a portion of an initialization file giving a few of the patterns used to match number value strings:

number  =       "\"D\""         %% 23
number  =       "\"A AD\""      %% PN LPS5001
number  =       "\"A D(D)\""    %% RJ 34(49)
number  =       "\"A D\""       %% XNSS 288811
number  =       "\"A D\.D\""   %% Version 3.20
number  =       "\"A-A-D-D\""   %% UMIAC-TR-89-11
number  =       "\"A-A-D\""     %% CS-TR-2189
number  =       "\"A-A-D\.D\"" %% CS-TR-21.7

For a bibliography that contains only article entries, that list should probably be reduced to just the first pattern, so that anything other than a digit string fails the pattern-match test. That is easily done by keeping bibliography-specific patterns in a corresponding file with extension .ini, because that file is read automatically.

You should be sure to use empty pattern strings in the pattern file to discard patterns from earlier initialization files.

The value strings passed to the pattern matcher contain surrounding quotes, so the patterns should also. However, you could use a pattern specification like "\"D " to match an initial digit string followed by anything else; the omission of the final quotation mark \" in the pattern allows the match to succeed without checking that the next character in the value string is a quotation mark.

Because the value strings are intended to be processed by TeX, the pattern matching ignores braces, and TeX control sequences, together with any space following those control sequences. Spaces around braces are preserved. That convention allows the pattern fragment A-AD-D to match the value string TN-K\slash 27-70 , because the value is implicitly collapsed to TN-K27-70 during the matching operation.

bibclean 's normal action when a string value fails to match any of the corresponding patterns is to issue a warning message something like this: "Unexpected value in ``year = "192"''. In most cases, that is sufficient to alert the user to a problem. In some cases, however, it may be desirable to associate a different message with a particular pattern. That can be done by supplying a message string following the pattern string. Format items %% (single percent), %e (entry name), %f (field name), %k (citation key), and %v (string value) are available to get current values expanded in the messages. Here is an example:

chapter = "\"D:D\"" "Colon found in ``%f = %v''" %% 23:2

To be consistent with other messages output by bibclean, the message string should not end with punctuation.

If you wish to make the message an error, rather than just a warning, begin it with a query (?), like this:

chapter = "\"D:D\"" "?Colon found in ``%f = %v''" %% 23:2

The query is be included in the output message.

Escape sequences are supported in message strings, just as they are in pattern strings. You can use that to advantage for fancy things, such as terminal display mode control. If you rewrite the previous example as

chapter = "\"D:D\"" \
          "?\033[7mColon found in ``%f = %v''\033[0m" %% 23:2

the error message appears in inverse video on display screens that support ANSI terminal control sequences. Such practice is not normally recommended, because it may have undesirable effects on some output devices. Nevertheless, you may find it useful for restricted applications.

For some types of bibliography fields, bibclean contains special-purpose code to supplement or replace the pattern matching:

  • CODEN, ISBN and ISSN field values are handled that way because their validation requires evaluation of checksums that cannot be expressed by simple patterns; no patterns are even used in these three cases.
  • When bibclean is compiled with pattern-matching code support, chapter, number, pages, and volume values are checked only by pattern matching.
  • month values are first checked against the standard BibTeX month abbreviations, and only if no match is found are patterns then used.
  • year values are first checked against patterns, then if no match is found, the year numbers are found and converted to integer values for testing against reasonable bounds.

Values for other fields are checked only against patterns. You can provide patterns for any field you like, even ones bibclean does not already know about. New ones are simply added to an internal table that is searched for each string to be validated.

The special field, key, represents the bibliographic citation key. It can be given patterns, like any other field. Here is an initialization file pattern assignment that matches an author name, a colon, a four-digit year, a colon, and an alphabetic string, in the BibNet Project style:

key = "A:dddd:A"                     %% Knuth:1986:TB

Notice that no quotation marks are included in the pattern, because the citation keys are not quoted. You can use such patterns to help enforce uniform naming conventions for citation keys, which is increasingly important as your bibliography data base grows.


ISBN INITIALIZATION FILES

bibclean contains a compiled-in table of ISBN ranges and country/language settings that is suitable for most applications.

However, ISBN data change yearly, as new countries adopt ISBNs, and as publishers are granted new, or additional, ISBN prefixes.

Thus, from version 2.12, bibclean supports reading of run-time ISBN initialization files found on the PATH (for VAX VMS, SYS$SYSTEM ) and BIBINPUTS search paths, and then any specified by -ISBN-file filename options.

That feature makes it possible to incorporate new ISBN data without having to produce a new bibclean release and reinstall the software at end-user sites.

The format of an ISBN initialization file is similar to that of the bibclean initialization files described in the preceding section: comments begin with percent and continue to end of line, blank and empty lines are ignored, backslash-newline joins adjacent lines, and otherwise, lines are expected to contain a required pair of ISBN country/language-publisher prefixes forming a non-decreasing range, optionally followed by one or more words of text that are treated as the country/language group value. The latter value plays no part in ISBN validation, but its presence is strongly recommended, in order to make the ISBN table more understandable for humans.

Here is a short example:

%% The Faeroes got ISBN assignments between 1993 and 1998
99918-0         99918-3        Faeroes
99918-40        99918-61
99918-900       99918-938
It is not necessary to repeat the country names on succeeding entries with the same initial number (99918 in that example); that is handled internally.

Data from ISBN files normally augment the compiled-in data. However, if the first prefix begins with a hyphen, then bibclean deletes the first entry in the table matching that first prefix (ignoring the leading hyphen):

%% Latvia got ISBN ranges between 1993 and 1998
%% so we remove the old placeholder, then add the
%% new ranges.
-9984-0         9984-9         This one is no longer valid

9984-00         9984-20        Latvia
9984-500        9984-770
9984-9000       9984-9984

KEYWORD INITIALIZATION FILES

bibclean contains a compiled-in table of keyword mappings that is suitable for most applications. The default settings merely adjust lettercase in certain keyword names, so that, for example, isbn is output as ISBN.

From version 2.12, bibclean supports reading of run-time keyword initialization files found on the PATH (for VAX VMS, SYS$SYSTEM ) and BIBINPUTS search paths, and then any specified by -keyword-file filename options.

That feature makes it possible to incorporate special spellings of new keywords without having to produce a new bibclean release and reinstall the software at end-user sites.

The format of a keyword initialization file is similar to that of the other bibclean initialization files described in the preceding sections: comments begin with percent and continue to end of line, blank and empty lines are ignored, backslash-newline joins adjacent lines, and otherwise, lines are expected to contain a required pair of old and new keyword names.

Here is a short example:

%% We want special handling of MathReviews keywords
mrclass         MRclass
mrnumber        MRnumber
mrreviewer      MRreviewer

Data from keywords files normally augment the compiled-in data. However, if the first keyword begins with a hyphen, then bibclean deletes the first entry in the table matching that keyword (ignoring the leading hyphen):

%% Remove special handling of ISBN, ISSN, and LCCN values.
-issn           ISSN
-isbn           ISBN
-lccn           LCCN
Even though the second keyword in each deletion pair is not used, it still must be specified.

Notice that this feature can be used to regularize keyword names, but use it with care, in order to avoid producing duplicate key names in output BibTeX entries:

%% Map variations of keywords into a common name:
keys            keywords
keywds          keywords
keyword         keywords
keywrd          keywords
keywrds         keywords
searchkey       keywords

LEXICAL ANALYSIS

When -no-prettyprint is specified, bibclean acts as a lexical analyzer instead of a prettyprinter, producing output in lines of the form

<token-number><tab><token-name><tab>"<token-value>"

Each output line contains a single complete token, identified by a small integer number for use by a computer program, a token type name for human readers, and a string value in quotes.

Special characters in the token value string are represented with ANSI/ISO Standard C escape sequences, so all characters other than NUL are representable, and multi-line values can be represented in a single line.

Here are the token numbers and token type names that can appear in the output when -prettyprint is specified:

 0   UNKNOWN
 1   ABBREV
 2   AT
 3   COMMA
 4   COMMENT
 5   ENTRY
 6   EQUALS
 7   FIELD
 8   INCLUDE
 9   INLINE
10   KEY
11   LBRACE
12   LITERAL
13   NEWLINE
14   PREAMBLE
15   RBRACE
16   SHARP
17   SPACE
18   STRING
19   VALUE

Programs that parse such output should also be prepared for lines beginning with the warning prefix, %%, or the error prefix, ??, and for ANSI/ISO Standard C line-number directives of the form

# line 273 "texbook1.bib"
that record the line number and file name of the current input file.

If a -max-width nnn command-line option was specified, long output lines are wrapped at a backslash-newline pair, and consequently, software that processes the lexical token stream should be prepared to collapse such wrapped lines back into single lines.

As an example of the use of -no-prettyprint , the UNIX command pipeline

bibclean -no-prettyprint mylib.bib | \
    awk '$2 == "KEY" {print $3}' | \
    sed -e 's/"//g' | \
    sort
extracts a sorted list of all citation keys in the file mylib.bib.

A certain amount of processing has been done on the tokens. In particular, delimiters equivalent to braces have been replaced by braces, and braced strings have become quoted strings.

The LITERAL token type is used for arbitrary text that bibclean does not examine further, such as the contents of a @Preamble{...} or a @Comment{...}.

The UNKNOWN token type should never appear in the output stream. It is used internally to initialize token type variables.


SCRIBE BIBLIOGRAPHY FORMAT

bibclean 's support for the Scribe bibliography format is based on the syntax description in the Scribe Introductory User's Manual, 3rd Edition, May 1980. Scribe was originally developed by Brian Reid at Carnegie-Mellon University, and was marketed by Unilogic, Ltd., later renamed to Scribe Systems, and apparently now long defunct.

The BibTeX bibliography format was strongly influenced by Scribe, and indeed, with care, it is possible to share bibliography files between the two systems. Nevertheless, there are some differences, so here is a summary of features of the Scribe bibliography file format:

(1)
Letter case is not significant in field names and entry names, but case is preserved in value strings.
(2)
In field/value pairs, the field and value may be separated by one of three characters: =, /, or space. Space may optionally surround these separators.
(3)
Value delimiters are any of these seven pairs: { } [ ] ( ) < > ' ' " " ` `
(4)
Value delimiters may not be nested, even though with the first four delimiter pairs, nested balanced delimiters would be unambiguous.
(5)
Delimiters can be omitted around values that contain only letters, digits, sharp (#), ampersand (&), period (.), and percent (%).
(6)
Outside of delimited values, a literal at-sign (@) is represented by doubled at-signs (@@).
(7)
Bibliography entries begin with @name, as for BibTeX, but any of the seven Scribe value delimiter pairs may be used to surround the values in field/value pairs. As in (4), nested delimiters are forbidden.
(8)
Arbitrary space may separate entry names from the following delimiters.
(9)
@Comment is a special command whose delimited value is discarded. As in (4), nested delimiters are forbidden.
(10)
The special form
@Begin{comment}
 ...
@End{comment}

permits encapsulating arbitrary text containing any characters or delimiters, other than ``@End{comment}''. Any of the seven delimiter pairs may be used around the word ``comment'' following the ``@Begin'' or ``@End''; the delimiters in the two cases need not be the same, and consequently, ``@Begin{comment}''/``@End{comment}'' pairs may not be nested.

(11)
The key field is required in each bibliography entry.
(12)
A backslashed quote in a string is assumed to be a TeX accent, and braced appropriately. While such accents do not conform to Scribe syntax, Scribe-format bibliographies have been found that appear to be intended for TeX processing.
Because of that loose syntax, bibclean 's normal error detection heuristics are less effective, and consequently, Scribe mode input is not the default; it must be explicitly requested.

ENVIRONMENT VARIABLES

BIBCLEANEXT
File extension of bibliography-specific initialization files. Default: .ini.
BIBCLEANINI
Name of bibclean initialization files. Default: .bibcleanrc (UNIX), bibclean.ini (non-UNIX).
BIBCLEANISBN
Name of bibclean ISBN initialization files. Default: .bibclean.isbn (UNIX), bibclean.isb (non-UNIX).
BIBCLEANKEY
Name of bibclean keyword initialization files. Default: .bibclean.key (UNIX), bibclean.key (non-UNIX).
BIBINPUTS
Search path for bibclean and BibTeX input files. On UNIX, it is a colon-separated list of directories that are searched in order from first to last. It is not an error for a specified directory to not exist.

On other operating systems, the directory names should be separated by whatever character is used in system search path specifications, such as a semicolon on IBM PC DOS.

PATH
On Atari TOS, IBM PC DOS, IBM PC OS/2, Microsoft NT, and UNIX, search path for system executable files. The system-wide bibclean initialization file is searched for in that path.
SYS$SYSTEM
On VAX VMS, search path for system executable files and the system-wide bibclean initialization file.

FILES

*.bib
BibTeX and Scribe bibliography data base files.
*.ini
File-specific initialization files.
.bibclean.isbn
UNIX system-wide and user-specific ISBN initialization files.
.bibclean.key
UNIX system-wide and user-specific keyword initialization files.
.bibcleanrc
UNIX system-wide and user-specific initialization files.
bibclean.ini
Non-UNIX system-wide and user-specific initialization files.
bibclean.isb
Non-UNIX system-wide and user-specific ISBN initialization files.
bibclean.key
Non-UNIX system-wide and user-specific keyword initialization files.

SEE ALSO

bibcheck (1), bibdup (1), bibextract (1), bibindex (1), bibjoin (1), biblabel (1), biblex (1), biblook (1), biborder (1), bibparse (1), bibsearch (1), bibsort (1), bibtex (1), bibunlex (1), citefind (1), citesub (1), citetags (1), latex (1), scribe (1), tex (1).


AUTHOR

Nelson H. F. Beebe
University of Utah
Department of Mathematics, 110 LCB
155 S 1400 E RM 233
Salt Lake City, UT 84112-0090
USA
Tel: +1 801 581 5254
FAX: +1 801 581 4148
Email: beebe@math.utah.edu, beebe@acm.org, beebe@computer.org (Internet)
URL: http://www.math.utah.edu/~beebe

COPYRIGHT

########################################################################
########################################################################
########################################################################
###                                                                  ###
###     bibclean: prettyprint and syntax check BibTeX and Scribe     ###
###                   bibliography data base files                   ###
###                                                                  ###
###           Copyright (C) 1990--2016 Nelson H. F. Beebe            ###
###                                                                  ###
### This program is covered by the GNU General Public License (GPL), ###
### version 2 or later, available as the file COPYING in the program ###
### source distribution, and on the Internet at                      ###
###                                                                  ###
###               ftp://ftp.gnu.org/gnu/GPL                          ###
###                                                                  ###
###               http://www.gnu.org/copyleft/gpl.html               ###
###                                                                  ###
### 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; either version 2 of   ###
### the License, or (at your option) any later version.              ###
###                                                                  ###
### 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.                     ###
###                                                                  ###
### You should have received a copy of the GNU General Public        ###
### License along with this program; if not, write to the Free       ###
### Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,   ###
### MA 02111-1307 USA                                                ###
########################################################################
########################################################################
########################################################################
bibclean-3.07/delete.h0000644000156700015670000000043506034271216013522 0ustar beebebeebe#ifndef DELETE_H_DEFINED_ #define DELETE_H_DEFINED_ #define DELETE_CHAR (INT_MAX - 1) /* magic value for out_c() */ #define DELETE_LINE (INT_MAX - 2) /* magic value for out_c() */ #define DELETE_WHITESPACE (INT_MAX - 3) /* magic value for out_c() */ #endif /* DELETE_H_DEFINED_ */ bibclean-3.07/bibclean.man0000644000156700015670000016573713660516737014401 0ustar beebebeebe.\"===================================================================== .\" @Troff-man-file{ .\" author = "Nelson H. F. Beebe", .\" version = "3.05", .\" date = "18 May 2020", .\" time = "08:38:23 MDT", .\" filename = "bibclean.man", .\" address = "University of Utah .\" Department of Mathematics, 110 LCB .\" 155 S 1400 E RM 233 .\" Salt Lake City, UT 84112-0090 .\" USA .\" telephone = "+1 801 581 5254", .\" FAX = "+1 801 581 4148", .\" URL = "http://www.math.utah.edu/~beebe", .\" checksum = "38620 2136 8746 60383", .\" email = "beebe@math.utah.edu, beebe@acm.org, .\" beebe@computer.org (Internet)", .\" codetable = "ISO/ASCII", .\" keywords = "bibliography, BibTeX, prettyprint", .\" license = "GNU General Public License, version 2 or .\" later", .\" supported = "yes", .\" docstring = "This file is the UNIX nroff/troff manual page .\" documentation for bibclean, a prettyprinter .\" and syntax checker for BibTeX bibliography .\" data base files. .\" .\" The checksum field above contains a CRC-16 .\" checksum as the first value, followed by the .\" equivalent of the standard UNIX wc (word .\" count) utility output of lines, words, and .\" characters. This is produced by Robert .\" Solovay's checksum utility.", .\" } .\"===================================================================== .\" .if t .ds Bi B\s-2IB\s+2T\\h'-0.1667m'\\v'0.20v'E\\v'-0.20v'\\h'-0.125m'X .if n .ds Bi BibTeX .\" .if t .ds Sc S\s-2CRIBE\s+2 .if n .ds Sc Scribe .\" .if t .ds Te T\\h'-0.1667m'\\v'0.20v'E\\v'-0.20v'\\h'-0.125m'X .if n .ds Te TeX .\" .\"===================================================================== .TH BIBCLEAN 1 "18 May 2020" "Version 3.05" .\"===================================================================== .SH NAME bibclean \- prettyprint and syntax check BibTeX and Scribe bibliography \ data base files .\"===================================================================== .SH SYNOPSIS .B bibclean [ .B \-author ] [ .B \-copyleft ] [ .B \-copyright ] .if n .ti +9n [ .BI \-error-log " filename" ] [ .B \-help ] [ .B '\-?' ] .if n .ti +9n .if t .ti +\w'\fBbibclean\fP\ 'u [ .BI \-init-file " filename" ] [ .BI \-ISBN-file " filename" ] .if n .ti +9n [ .BI \-keyword-file " filename" ] .if t .ti +\w'\fBbibclean\fP\ 'u [ .BI \-max-width " nnn" ] .if n .ti +9n [ .B \-[no-]align-equals ] [ .B \-[no-]brace-protect ] .if n .ti +9n [ .B \-[no-]check-values ] .if t .ti +\w'\fBbibclean\fP\ 'u [ .B \-[no-]debug-match-failures ] .if n .ti +9n [ .B \-[no-]delete-empty-values ] [ .B \-[no-]file-position ] .if t .ti +\w'\fBbibclean\fP\ 'u .if n .ti +9n [ .B \-[no-]fix-accents ] [ .B \-[no-]fix-braces ] .if n .ti +9n [ .B \-[no-]fix-degrees ] [ .B \-[no-]fix-font-changes ] .if n .ti +9n .if t .ti +\w'\fBbibclean\fP\ 'u [ .B \-[no-]fix-initials ] [ .B \-[no-]fix-math ] [ .B \-[no-]fix-names ] .if n .ti +9n [ .B \-[no-]German-style ] .if t .ti +\w'\fBbibclean\fP\ 'u [ .B \-[no-]keep-linebreaks ] .if n .ti +9n [ .B \-[no-]keep-parbreaks ] [ .B \-[no-]keep-preamble-spaces ] .if n .ti +9n .if t .ti +\w'\fBbibclean\fP\ 'u [ .B \-[no-]keep-spaces ] [ .B \-[no-]keep-string-spaces ] .if n .ti +9n [ .B \-[no-]parbreaks ] [ .B \-[no-]prettyprint ] .if n .ti +9n .if t .ti +\w'\fBbibclean\fP\ 'u [ .B \-[no-]print-ISBN-table ] [ .B \-[no-]print-keyword-table ] .if n .ti +9n [ .B \-[no-]print-patterns ] .if t .ti +\w'\fBbibclean\fP\ 'u [ .B \-[no-]quiet ] .if n .ti +9n [ .B \-[no-]read-init-files ] [ .B \-[no-]remove-OPT-prefixes ] .if n .ti +9n [ .B \-[no-]scribe ] .if t .ti +\w'\fBbibclean\fP\ 'u [ .B \-[no-]trace-file-opening ] .if n .ti +9n [ .B \-[no-]warnings ] [ .BI \-output-file " filename" ] [ .B \-version ] .if n .ti +9n .if t .ti +.5i .IR "outfile" .PP All options can be abbreviated to a unique leading prefix. .PP An explicit file name of ``\-'' represents standard input; it is assumed if no input files are specified. .PP On VAX VMS and IBM PC DOS, the leading ``\-'' on option names may be replaced by a slash, ``/''; however, the ``\-'' option prefix is always recognized. .\"===================================================================== .SH DESCRIPTION .B bibclean prettyprints input \*(Bi\& files to .IR stdout , or to a user-specified file, and checks the brace balance and bibliography entry syntax as well. It can be used to detect problems in \*(Bi\& files that sometimes confuse even \*(Bi\& itself, and importantly, can be used to normalize the appearance of collections of \*(Bi\& files. .PP Here is a summary of the formatting actions: .TP \w'\(bu'u+2n \(bu \*(Bi\& items are formatted into a consistent structure with one \fIfield = "value"\fP pair per line, and the initial @ and trailing right brace in column 1. .TP \(bu Tabs are expanded into blank strings; their use is discouraged because they inhibit portability, and can suffer corruption in electronic mail. .TP \(bu Long string values are split at a blank and continued onto the next line with leading indentation. .TP \(bu A single blank line separates adjacent bibliography entries. .TP \(bu Text outside \*(Bi\& entries is passed through verbatim. .TP \(bu Outer parentheses around entries are converted to braces. .TP \(bu Personal names in .I author and .I editor field values are normalized to the form ``P. D. Q. Bach'', from ``P.D.Q. Bach'' and ``Bach, P.D.Q.''. .TP \(bu Hyphen sequences in page numbers are converted to en-dashes. .TP \(bu Month values are converted to standard \*(Bi\& string abbreviations. .TP \(bu In titles, sequences of upper-case characters at brace level zero are braced to protect them from being converted to lower-case letters by some bibliography styles. .TP \(bu CODEN, ISBN (International Standard Book Number) and ISSN (International Standard Serial Number) entry values are examined to verify the checksums of each listed number, and correct ISBN hyphenation is automatically supplied. .PP The standardized format of the output of .B bibclean facilitates the later application of simple filters, such as .BR bibcheck (1), .BR bibdup (1), .BR bibextract (1), .BR bibindex (1), .BR bibjoin (1), .BR biblabel (1), .BR biblook (1), .BR biborder (1), .BR bibsort (1), .BR citefind (1), and .BR citetags (1), to process the text, and also is the one expected by the GNU Emacs \*(Bi\& support functions. .\"===================================================================== .SH OPTIONS Command-line switches may be abbreviated to a unique leading prefix, and letter case is .I not significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag to .IR no . For such options, the last setting determines the flag value used. That is significant when options are also specified in initialization files (see the .B "INITIALIZATION FILES" manual section). .PP The leading hyphen that distinguishes an option from a filename may be doubled, for compatibility with GNU and POSIX conventions. Thus, .B \-author and .B \-\-author are equivalent. .PP To avoid confusion with options, if a filename begins with a hyphen, it must be disguised by a leading absolute or relative directory path, e.g., .I /tmp/-foo.bib or .IR ./-foo.bib . .\"----------------------------------------------- .TP \w'\-[no-]remove-OPT-prefixes'u+3n .B \-author Display an author credit on the standard error unit, .IR stderr , and then terminate with a success return code. Sometimes an executable program is separated from its documentation and source code; this option provides a way to recover from that. .\"----------------------------------------------- .TP .B \-copyleft Display copyright information on the standard error unit, .IR stderr , and then terminate with a success return code. .\"----------------------------------------------- .TP .B \-copyright Display copyright information on the standard error unit, .IR stderr , and then terminate with a success return code. .\"----------------------------------------------- .TP .BI \-error-log " filename" Redirect .I stderr to the indicated file, which then contains all of the error and warning messages. This option is provided for those systems that have difficulty redirecting .IR stderr . .\"----------------------------------------------- .TP .BR \-help " or " \-? Display a help message on .IR stderr , giving a usage description, similar to this section of the manual pages, and then terminate with a success return code. .\"----------------------------------------------- .TP .BI \-ISBN-file " filename" Provide an explicit ISBN-range initialization file. It is processed .I after any system-wide and job-wide ISBN initialization files found on the .B PATH (for VAX VMS, .BR SYS$SYSTEM ) and .B BIBINPUTS search paths, respectively, and may override them. The ISBN initialization file name can be changed at compile time, or at run time through a setting of the environment variable .BR BIBCLEANISBN , but defaults to .I .bibclean.isbn on UNIX, and .I bibclean.isb elsewhere. For further details, see the .B "ISBN INITIALIZATION FILES" manual section. .\"----------------------------------------------- .TP .BI \-init-file " filename" Provide an explicit value pattern initialization file. It is processed .I after any system-wide and job-wide initialization files found on the .B PATH (for VAX VMS, .BR SYS$SYSTEM ) and .B BIBINPUTS search paths, respectively, and may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a setting of the environment variable .BR BIBCLEANINI , but defaults to .I .bibcleanrc on UNIX, and to .I bibclean.ini elsewhere. For further details, see the .B "INITIALIZATION FILES" manual section. .\"----------------------------------------------- .TP .BI \-keyword-file " filename" Provide an explicit keyword initialization file. It is processed .I after any system-wide and job-wide keyword initialization files found on the .B PATH (for VAX VMS, .BR SYS$SYSTEM ) and .B BIBINPUTS search paths, respectively, and may override them. The keyword initialization file name can be changed at compile time, or at run time through a setting of the environment variable .BR BIBCLEANKEY , but defaults to .I .bibclean.key on UNIX, and .I bibclean.key elsewhere. For further details, see the .B "KEYWORD INITIALIZATION FILES" manual section. .\"----------------------------------------------- .TP .BI \-max-width " nnn" .B bibclean normally limits output line widths to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special-purpose applications may require different maximum line widths, so this option provides that capability. The number following the option name can be specified in decimal, octal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is interpreted to mean unlimited, so .BI \-max-width " 0" can be used to ensure that each field/value pair appears on a single line. .IP When .B \-no-prettyprint requests .B bibclean to act as a lexical analyzer, the default line width is unlimited, unless overridden by this option. .IP When .B bibclean is prettyprinting, line wrapping is done only at a space. Consequently, a long non-blank character sequence may result in the output exceeding the requested line width. .IP When .B bibclean is lexing, line wrapping is done by inserting a backslash-newline pair when the specified maximum is reached, so no line length ever exceeds the maximum. .\"----------------------------------------------- .TP .B \-[no-]align-equals With the positive form, align the equals sign in key/value assignments at the same column, separated by a single space from the value string. Otherwise, the equals sign follows the key, separated by a single space. .RI "Default: " no . .\"----------------------------------------------- .TP .B \-[no-]brace-protect Protect uppercase and mixedcase words at brace-level zero with braces to prevent downcasing by some \*(Bi\& styles. .RI "Default: " yes . .\"----------------------------------------------- .TP .B \-[no-]check-values With the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g., ``\fIyear = "192"\fP'' instead of ``\fIyear = "1992"\fP''), and issue warnings when unexpected patterns are found. .IP That checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can disable it with the negative form of this option. .RI "Default: " yes . .\"----------------------------------------------- .TP .B \-[no-]debug-match-failures With the positive form, print out a warning when a value pattern fails to match a value string. .IP That is helpful in debugging new patterns, but because the output can be voluminous, you should use this option only with small test files, and initialization files that eliminate all patterns apart from the ones that you are testing. .RI "Default: " no . .\"----------------------------------------------- .TP .B \-[no-]delete-empty-values With the positive form, remove all field/value pairs for which the value is an empty string. That is helpful in cleaning up bibliographies generated from text editor templates. Compare this option with .B \-[no-]remove-OPT-prefixes described below. .RI "Default: " no . .\"----------------------------------------------- .TP .B \-[no-]file-position With the positive form, give detailed file position information in warning and error messages. .RI "Default: " no . .\"----------------------------------------------- .TP .B \-[no-]fix-accents With the positive form, normalize \*(Te\& accents in annotes, authors, booktitles, editors, notes, remarks, and titles. .RI "Default: " no . .\"----------------------------------------------- .TP .B \-[no-]fix-braces With the positive form, normalize bracing in annotes, authors, booktitles, editors, notes, remarks, and titles, by removing unnecessary levels of braces. .RI "Default: " no . .\"----------------------------------------------- .TP .B \-[no-]fix-degrees With the positive form, remove spaces in author/editor fields inside braces after letter-ending periods. That makes reductions from .IR "J. J. {Thomson, M. A., F. R. S.}" , .IR "Frederick {Soddy, B. A. (Oxon.)}" , and .I "John A. {Cable, M. A., M. Ed., Dipl. Deutsch (Marburg), A. L. C. M.}" to .BR "J. J. {Thomson, M.A., F.R.S.}" , .BR "Frederick {Soddy, B.A. (Oxon.)}" , and .BR "John A. {Cable, M.A., M.Ed., Dipl.Deutsch (Marburg), A.L.C.M.}" , respectively. .IP In journals in the humanities and history of science, as well as in some scientific journals until well into the 20th Century, academic, honorary, and professional titles and degrees are commonly attached to personal names. Even though modern publishing practice avoids such decorations, for accuracy, bibliography entries should preferably retain them. Journal typographical practice generally follows the reductions described here. .\"----------------------------------------------- .TP .B \-[no-]fix-font-changes With the positive form, supply an additional brace level around font changes in titles to protect against downcasing by some \*(Bi\& styles. Font changes that already have more than one level of braces are not modified. .IP For example, if a title contains the Latin phrase .I "{\eem Dictyostelium discoideum}" or .IR "{\eem {D}ictyostelium discoideum}" , then downcasing incorrectly converts the phrase to lower-case letters. Most \*(Bi\& users are surprised that bracing the initial letters does not prevent the downcase action. The correct coding is .IR "{{\eem Dictyostelium discoideum}}" . However, there are also legitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, .B bibclean normally does .I not supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this option to supply them. .IP If you think that you need this option, it is .I strongly recommended that you apply .B bibclean to your bibliography file with and without .BR \-fix-font-changes , then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You must decide which of the two output files is the better choice, then repair the incorrect title bracing by hand. .IP Because font changes in titles are uncommon, except for cases of the type that this option is designed to correct, it should do more good than harm. .RI "Default: " no . .\"----------------------------------------------- .TP .B \-[no-]fix-initials With the positive form, insert a space after a period following author initials. .RI "Default: " yes . .\"----------------------------------------------- .TP .B \-[no-]fix-math With the positive form, improve readability of math mode in titles by inserting spaces around operators, deleting other unnecessary space, and removing braces around single-character subscripts and superscripts. .RI "Default: " no . .\"----------------------------------------------- .TP .B \-[no-]fix-names With the positive form, reorder .I author and .I editor name lists to remove commas at brace level zero, placing first names or initials before last names. .RI "Default: " yes . .\"----------------------------------------------- .TP .B \-[no-]German-style With the positive form, interpret quote characters \&["] inside .I braced value strings at brace level 1 according to the conventions of the \*(Te\& style file .IR german.sty , which overloads quote to simplify input and representation of German umlaut accents, sharp-s (es-zet), ligature separators, invisible hyphens, raised/lowered quotes, French guillemets, and discretionary hyphens. Recognized character combinations are braced to prevent \*(Bi\& from interpreting the quote as a string delimiter. .IP Quoted strings receive no special handling from this option, and because German nouns in titles must anyway be protected from the downcasing operation of most \*(Bi\& bibliography styles, German value strings that use the overloaded quote character can always be entered in the form "{.\|.\|.}", without the need to specify this option at all. .IP .RI "Default: " no . .\"----------------------------------------------- .TP .B \-[no-]keep-linebreaks Normally, line breaks inside value strings are collapsed into a single space, so that long value strings can later be broken to provide lines of reasonable length. .IP With the positive form, linebreaks are preserved in value strings. If .B \-max-width is set to zero, this preserves the original line breaks. Spacing .I outside value strings remains under .BR bibclean 's control, and is not affected by this option. .IP .RI "Default: " no . .\"----------------------------------------------- .TP .B \-[no-]keep-parbreaks With the positive form, preserve paragraph breaks (either formfeeds, or lines containing only spaces) in value strings. Normally, paragraph breaks are collapsed into a single space. Spacing .I outside value strings remains under .BR bibclean 's control, and is not affected by this option. .RI "Default: " no . .\"----------------------------------------------- .TP .B \-[no-]keep-preamble-spaces With the positive form, preserve all whitespace in @Preamble{.\|.\|.} entries. .RI "Default: " no . .\"----------------------------------------------- .TP .B \-[no-]keep-spaces With the positive form, preserve all spaces in value strings. Normally, multiple spaces are collapsed into a single space. This option can be used together with .BR \-keep-linebreaks , .BR \-keep-parbreaks , and .BI \-max-width " 0" to preserve the form of value strings while still providing syntax and value checking. Spacing .I outside value strings remains under .BR bibclean 's control, and is not affected by this option. .RI "Default: " no . .\"----------------------------------------------- .TP .B \-[no-]keep-string-spaces With the positive form, preserve all whitespace in @String{.\|.\|.} entries. .RI "Default: " no . .\"----------------------------------------------- .TP .B \-[no-]parbreaks With the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field/value pairs. That may be useful to quickly trap runaway strings arising from mismatched delimiters. .RI "Default: " yes . .\"----------------------------------------------- .TP .B \-[no-]prettyprint Normally, .B bibclean functions as a prettyprinter. However, with the negative form of this option, it acts as a lexical analyzer instead, producing a stream of lexical tokens. See the .B "LEXICAL ANALYSIS" manual section for further details. .RI "Default: " yes . .\"----------------------------------------------- .TP .B \-[no-]print-ISBN-table With the positive form, print the ISBN-range table on .IR stderr , then terminate with a success return code. .IP That action is taken after all command-line options are processed, and before any input files are read (other than those that are values of command-line options). .IP The format of the output ISBN-range table is acceptable for input as an ISBN initialization file (see the .B "ISBN INITIALIZATION FILES" manual section). .RI "Default: " no . .\"----------------------------------------------- .TP .B \-[no-]print-keyword-table With the positive form, print the keyword initialization table on .IR stderr , then terminate with a success return code. .IP That action is taken after all command-line options are processed, and before any input files are read (other than those that are values of command-line options). .IP The format of the output table is acceptable for input as a keyword initialization file (see the .B "KEYWORD INITIALIZATION FILES" manual section). .RI "Default: " no . .\"----------------------------------------------- .TP .B \-[no-]print-patterns With the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used. .IP When .B bibclean is compiled with native pattern-matching code (the default), those patterns are the ones that are used in checking value strings for valid syntax, and all of them are specified in initialization files, rather than hard-coded into the program. For further details, see the .B "INITIALIZATION FILES" manual section. .RI "Default: " no . .\"----------------------------------------------- .TP .B \-[no-]quiet This option is the opposite of .BR \-[no-]warning "; " it exists for user convenience, and for compatibility with other programs that use .BR \-q "\ " for quiet operation, without warning messages. .\"----------------------------------------------- .TP .B \-[no-]read-init-files With the negative form, suppress loading of system-, user-, and file-specific initialization files. Initializations then come .I only from those files explicitly given by .BI \-init-file " filename" options. .RI "Default: " yes . .\"----------------------------------------------- .TP .B \-[no-]remove-OPT-prefixes With the positive form, remove the ``OPT'' prefix from each field name where the corresponding value is .I not an empty string. The prefix ``OPT'' must be entirely in upper-case to be recognized. .IP This option is for bibliographies generated with the help of the GNU Emacs \*(Bi\& editing support, which generates templates with optional fields identified by the ``OPT'' prefix. Although the function .I M-x bibtex-remove-OPT normally bound to the keystrokes .I C-c C-o does the job, users often forget, with the result that \*(Bi\& does not recognize the field name, and ignores the value string. Compare this option with .B \-[no-]delete-empty-values described above. .RI "Default: " no . .\"----------------------------------------------- .TP .B \-[no-]scribe With the positive form, accept input syntax conforming to the \*(Sc\& document system. The output is converted to conform to \*(Bi\& syntax. See the .B "SCRIBE BIBLIOGRAPHY FORMAT" manual section for further details. .RI "Default: " no . .\"----------------------------------------------- .TP .B \-[no-]trace-file-opening With the positive form, record in the error log file the names of all files that .B bibclean attempts to open. Use this option to identify where initialization files are located. .RI "Default: " no . .\"----------------------------------------------- .TP .B \-[no-]warnings With the positive form, allow all warning messages. The negative form is .I not recommended because it may mask problems that should be repaired. .RI "Default: " yes . .\"----------------------------------------------- .TP .BI \-output-file " filename" Supply an alternate output file to replace .IR stdout . If the filename cannot be opened for output, execution terminates immediately with a nonzero exit code. .\"----------------------------------------------- .TP .B \-version Display the program version number on .IR stderr , and then terminate with a success return code. That includes an indication of who compiled the program, the host name on which it was compiled, the time of compilation, and the type of string-value matching code selected, when that information is available to the compiler. .\"===================================================================== .SH "ERROR RECOVERY AND WARNINGS" When .B bibclean detects an error, it issues an error message to both .I stderr and .IR stdout . That way, the user is clearly notified, and the output bibliography also contains the message at the point of error. .PP Error messages begin with a distinctive pair of queries, ??, beginning in column 1, followed by the input file name and line number. If the .B \-file-position option was specified, they also contain the input and output positions of the current file, entry, and value. Each position includes the file byte number, the line number, and the column number. In the event of a runaway string argument, the entry and value positions should precisely pinpoint the erroneous bibliography entry, and the file positions indicate where it was detected, which may be rather later in the files. .PP Warning messages identify possible problems, and are therefore sent only to .IR stderr , and not to .IR stdout , so they never appear in the output file. They are identified by a distinctive pair of percents, %%, beginning in column 1, and as with error messages, may be followed by file position messages if the .B \-file-position option was specified. .PP For convenience, the first line of each error and warning message sent to .I stderr is formatted according to the expectations of the GNU Emacs .I next-error command. You can invoke .B bibclean with the Emacs .I "M-x compilebibclean filename.bib >filename.new" command, then use the .I next-error command, normally bound to .I "C-x `" (that's a grave, or back, accent), to move to the location of the error in the input file. .PP If error messages are ignored, and left in the output bibliography file, they precipitates an error when the bibliography is next processed with \*(Bi\&. .PP After issuing an error message, .B bibclean then resynchronizes its input by copying it verbatim to .I stdout until a new bibliography entry is recognized on a line in which the first non-blank character is an at-sign (@). That ensures that nothing is lost from the input file(s), allowing corrections to be made in either the input or the output files. However, if .B bibclean detects an internal error in its data structures, it terminates abruptly without further input or output processing; that kind of error should never happen, and if it does, it should be reported immediately to the author of the program. Errors in initialization files, and running out of dynamic memory, also immediately terminate .BR bibclean . .\"===================================================================== .SH "SEARCH PATHS" Versions of .B bibclean before 3.00 found some of their initialization files in the same directory as the executable program. That design choice means that those files can be copied anywhere in the file system, and still be found at run time. Some software distributions, however, prefer to follow the model where initialization and other related files are instead stored in a directory whose name is related to that of the executable by a conventional difference in filepath. For example, a program might be installed in .I /opt/bin and its associated files in .I /opt/share/lib/PROGRAMNAME/ or .IR /opt/share/lib/PROGRAMNAME/PROGRAMVERSION/ . The second form is preferable, because it permits multiple versions of the same program to be installed, as long as the executable program names carry a version suffix. Thus, a site might have installed programs named .IR bibclean-1.00 , .IR bibclean-2.00 , .IR bibclean-2.15 , and .IR bibclean-3.00 , with the versionless name .I bibclean being a symbolic link to whichever version is the desired local default. .PP With most software packages, the absolute path to the directory containing associated files is compiled into the program, making it impossible to change the installation locations after the program has been built from source code. .PP Some packages, however, instead use the location of the executable program to find files by relative path at runtime. In the above example, the program would determine its filesystem location at runtime, say .IR /opt/bin , then find its associated files relative to that location in .IR ../share/lib/PROGRAMNAME/PROGRAMVERSION/ . .PP From version 3.00, .I bibclean uses that second approach, with an associated directory like .IR ../share/lib/bibclean/3.00 . That allows an installation directory tree to be distributed to other systems and unbundled .I anywhere in the file system, as long as the relative paths are not changed. .I bibclean tests whether its compiled-in library path is a directory on the local system, and if so, uses it. Otherwise, it replaces that path by a reconstructed one based on the location of the executable program. If the reconstructed path for the library directory does not exist, it uses a warning. In either case, it continues normally. .PP With the old approach, initialization files on Unix systems were named with a leading period, making them `hidden' files for the .I ls command. With the new practice, initialization files are no longer named as hidden files. .\"===================================================================== .SH "INITIALIZATION FILES" .B bibclean can be compiled with one of three different types of pattern matching; the choice is made by the installer at compile time: .RS .TP \w'\(bu'u+2n \(bu The original version uses explicit hand-coded tests of value-string syntax. .TP \(bu The second version uses regular-expression pattern-matching host library routines together with regular-expression patterns that come entirely from initialization files. .TP \(bu The third version uses special patterns that come entirely from initialization files. .RE .PP The second and third versions are the ones of most interest here, because they allow the user to control what values are considered acceptable. However, command-line options can also be specified in initialization files, no matter which pattern matching choice was selected. .PP When .B bibclean starts, it searches for initialization files, finding the first one in the system executable program search path (on UNIX and IBM PC DOS, .BR PATH ) and the first one in the .B BIBINPUTS search path, and processes them in turn. Then, when command-line arguments are processed, any additional files specified by .BI \-init-file " filename" options are also processed. Finally, immediately before each .I named bibliography file is processed, an attempt is made to process an initialization file with the same name, but with the extension changed to .IR .ini . The default extension can be changed by a setting of the environment variable .BR BIBCLEANEXT . That scheme permits system-wide, user-wide, session-wide, and file-specific initialization files to be supported. .PP When input is taken from .IR stdin , there is no file-specific initialization. .PP For precise control, the .B \-no-read-init-files option suppresses all initialization files except those explicitly named by .BI \-init-file " filename" options, either on the command line, or in requested initialization files. .PP Recursive execution of initialization files with nested .B \-init-file options is permitted; if the recursion is circular, .B bibclean finally gets a non-fatal initialization file open failure after opening too many files. That terminates further initialization file processing. As the recursion unwinds, the files are all closed, then execution proceeds normally. .PP An initialization file may contain empty lines, comments from percent to end of line (just like \*(Te\&), option switches, and field/pattern or field/pattern/message assignments. Leading and trailing spaces are ignored. That is best illustrated by a short example: .PP .nf \fC % This is a small bibclean initialization file -init-file /u/math/bib/.bibcleanrc %% departmental patterns chapter = "\e"D\e"" %% 23 pages = "\e"D--D\e"" %% 23--27 volume = "\e"D \e\ean\e\ed D\e"" %% 11 and 12 year = \e "\e"dddd, dddd, dddd\e"" \e "Multiple years specified." %% 1989, 1990, 1991 -no-fix-names %% do not modify author/editor lists .fi \fP .PP Long logical lines can be split into multiple physical lines by breaking at a backslash-newline pair; the backslash-newline pair is discarded. That processing happens while characters are being read, before any further interpretation of the input stream. .PP Each logical line must contain a complete option (and its value, if any), or a complete field/pattern pair, or a field/pattern/message triple. .PP Comments are stripped during the parsing of the field, pattern, and message values. The comment start symbol is not recognized inside quoted strings, so it can be freely used in such strings. .PP Comments on logical lines that were input as multiple physical lines via the backslash-newline convention must appear on the .I last physical line; otherwise, the remaining physical lines become part of the comment. .PP Pattern strings must be enclosed in quotation marks; within such strings, a backslash starts an escape mechanism that is commonly used in UNIX software. The recognized escape sequences are: .RS .TP .B "\ea" alarm bell (octal 007) .TP .B "\eb" backspace (octal 010) .TP .B "\ef" formfeed (octal 014) .TP .B "\en" newline (octal 012) .TP .B "\er" carriage return (octal 015) .TP .B "\et" horizontal tab (octal 011) .TP .B "\ev" vertical tab (octal 013) .TP .B "\eooo" character number octal .I ooo (e.g .B "\e012" is linefeed). Up to 3 octal digits may be used. .TP .B "\e0xhh" character number hexadecimal .I hh (e.g., .B "\e0x0a" is linefeed). .I xhh may be in either letter case. Any number of hexadecimal digits may be used. .RE .PP Backslash followed by any other character produces just that character. Thus, \e% gets a literal percent into a string (preventing its interpretation as a comment), \e" produces a quotation mark, and \e\e produces a single backslash. .PP An ASCII NUL .I "(\e0)" in a string terminates it; that is a feature of the C programming language in which .B bibclean is implemented. .PP Field/pattern pairs can be separated by arbitrary space, and optionally, either an equals sign or colon functioning as an assignment operator. Thus, the following are equivalent: .PP .nf \fC pages="\e"D--D\e"" pages:"\e"D--D\e"" pages "\e"D--D\e"" pages = "\e"D--D\e"" pages : "\e"D--D\e"" pages "\e"D--D\e"" .fi \fP .PP Each field name can have an arbitrary number of patterns associated with it; however, they must be specified in separate field/pattern assignments. .PP An empty pattern string causes previously-loaded patterns for that field name to be forgotten. That feature permits an initialization file to completely discard patterns from earlier initialization files. .PP Patterns for value strings are represented in a tiny special-purpose language that is both convenient and suitable for bibliography value-string syntax checking. While not as powerful as the language of regular-expression patterns, its parsing can be portably implemented in less than 3% of the code in a widely-used regular-expression parser (the GNU .B regexp package). .PP The patterns are represented by the following special characters: .RS .TP \w''u+2n .B one or more spaces .TP .B a exactly one letter .TP .B A one or more letters .TP .B d exactly one digit .TP .B D one or more digits .TP .B r exactly one Roman numeral .TP .B R one or more Roman numerals (i.e. a Roman number) .TP .B w exactly one word (one or more letters and digits) .TP .B W one or more space-separated words, beginning and ending with a word .TP .B . one `special' character, one of the characters \|!\|#\|(\|)\|*\|+\|,\|-\|.\|/\|:\|;\|?\|[\|]\|~, a subset of punctuation characters that are typically used in string values .TP .B : one or more `special' characters .TP .B X one or more `special'-separated words, beginning and ending with a word .TP .B \ex exactly one x (x is any character), possibly with an escape sequence interpretation given earlier .TP .B x exactly the character x (x is anything but one of these pattern characters: a\|A\|d\|D\|r\|R\|w\|W\|.\|:\|\|\e\|) .RE .PP The .B X pattern character is very powerful, but generally inadvisable, because it matches almost anything likely to be found in a \*(Bi\& value string. The reason for providing pattern matching on the value strings is to uncover possible errors, not mask them. .PP There is no provision for specifying ranges or repetitions of characters, but that can usually be done with separate patterns. It is a good idea to accompany the pattern with a comment showing the kind of thing it is expected to match. Here is a portion of an initialization file giving a few of the patterns used to match .I number value strings: .PP .nf \fC number = "\e"D\e"" %% 23 number = "\e"A AD\e"" %% PN LPS5001 number = "\e"A D(D)\e"" %% RJ 34(49) number = "\e"A D\e"" %% XNSS 288811 number = "\e"A D\e\e.D\e"" %% Version 3.20 number = "\e"A-A-D-D\e"" %% UMIAC-TR-89-11 number = "\e"A-A-D\e"" %% CS-TR-2189 number = "\e"A-A-D\e\e.D\e"" %% CS-TR-21.7 .fi \fP .PP For a bibliography that contains only .I article entries, that list should probably be reduced to just the first pattern, so that anything other than a digit string fails the pattern-match test. That is easily done by keeping bibliography-specific patterns in a corresponding file with extension .IR .ini , because that file is read automatically. .PP You should be sure to use empty pattern strings in the pattern file to discard patterns from earlier initialization files. .PP The value strings passed to the pattern matcher contain surrounding quotes, so the patterns should also. However, you could use a pattern specification like "\e"D" to match an initial digit string followed by anything else; the omission of the final quotation mark \e" in the pattern allows the match to succeed without checking that the next character in the value string is a quotation mark. .PP Because the value strings are intended to be processed by \*(Te\&, the pattern matching ignores braces, and \*(Te\& control sequences, together with any space following those control sequences. Spaces around braces are preserved. That convention allows the pattern fragment .I A-AD-D to match the value string .IR TN-K\eslash\ 27-70 , because the value is implicitly collapsed to .I TN-K27-70 during the matching operation. .PP .BR bibclean 's normal action when a string value fails to match any of the corresponding patterns is to issue a .I warning message something like this: \fI"Unexpected value in ``year = "192"''\fP. In most cases, that is sufficient to alert the user to a problem. In some cases, however, it may be desirable to associate a different message with a particular pattern. That can be done by supplying a message string following the pattern string. Format items .I %% (single percent), .I %e (entry name), .I %f (field name), .I %k (citation key), and .I %v (string value) are available to get current values expanded in the messages. Here is an example: .PP .nf \fC chapter = "\e"D:D\e"" "Colon found in ``%f = %v''" %% 23:2 .fi \fP .PP To be consistent with other messages output by .BR bibclean , the message string should .I not end with punctuation. .PP If you wish to make the message an error, rather than just a warning, begin it with a query (?), like this: .PP .nf \fC chapter = "\e"D:D\e"" "?Colon found in ``%f = %v''" %% 23:2 .fi \fP .PP The query is be included in the output message. .PP Escape sequences are supported in message strings, just as they are in pattern strings. You can use that to advantage for fancy things, such as terminal display mode control. If you rewrite the previous example as .PP .nf \fC chapter = "\e"D:D\e"" \e "?\e033[7mColon found in ``%f = %v''\e033[0m" %% 23:2 .fi \fP .PP the error message appears in inverse video on display screens that support ANSI terminal control sequences. Such practice is not normally recommended, because it may have undesirable effects on some output devices. Nevertheless, you may find it useful for restricted applications. .PP For some types of bibliography fields, .B bibclean contains special-purpose code to supplement or replace the pattern matching: .RS .TP \w'\(bu'u+2n \(bu .IR CODEN , .I ISBN and .I ISSN field values are handled that way because their validation requires evaluation of checksums that cannot be expressed by simple patterns; no patterns are even used in these three cases. .TP \(bu When .B bibclean is compiled with pattern-matching code support, .IR chapter , .IR number , .IR pages , and .I volume values are checked only by pattern matching. .TP \(bu .I month values are first checked against the standard \*(Bi\& month abbreviations, and only if no match is found are patterns then used. .TP \(bu .I year values are first checked against patterns, then if no match is found, the year numbers are found and converted to integer values for testing against reasonable bounds. .RE .PP Values for other fields are checked only against patterns. You can provide patterns for .I any field you like, even ones .B bibclean does not already know about. New ones are simply added to an internal table that is searched for each string to be validated. .PP The special field, .IR key , represents the bibliographic citation key. It can be given patterns, like any other field. Here is an initialization file pattern assignment that matches an author name, a colon, a four-digit year, a colon, and an alphabetic string, in the BibNet Project style: .PP .nf \fC key = "A:dddd:A" %% Knuth:1986:TB .fi \fP .PP Notice that no quotation marks are included in the pattern, because the citation keys are not quoted. You can use such patterns to help enforce uniform naming conventions for citation keys, which is increasingly important as your bibliography data base grows. .\"===================================================================== .SH "ISBN INITIALIZATION FILES" .B bibclean contains a compiled-in table of ISBN ranges and country/language settings that is suitable for most applications. .PP However, ISBN data change yearly, as new countries adopt ISBNs, and as publishers are granted new, or additional, ISBN prefixes. .PP Thus, from version 2.12, .B bibclean supports reading of run-time ISBN initialization files found on the .B PATH (for VAX VMS, .BR SYS$SYSTEM ) and .B BIBINPUTS search paths, and then any specified by .BI \-ISBN-file " filename" options. .PP That feature makes it possible to incorporate new ISBN data without having to produce a new .B bibclean release and reinstall the software at end-user sites. .PP The format of an ISBN initialization file is similar to that of the .B bibclean initialization files described in the preceding section: comments begin with percent and continue to end of line, blank and empty lines are ignored, backslash-newline joins adjacent lines, and otherwise, lines are expected to contain a required pair of ISBN country/language-publisher prefixes forming a non-decreasing range, optionally followed by one or more words of text that are treated as the country/language group value. The latter value plays no part in ISBN validation, but its presence is strongly recommended, in order to make the ISBN table more understandable for humans. .PP Here is a short example: .RS .nf \fC %% The Faeroes got ISBN assignments between 1993 and 1998 99918-0 99918-3 Faeroes 99918-40 99918-61 99918-900 99918-938 .fi \fP .RE It is not necessary to repeat the country names on succeeding entries with the same initial number (99918 in that example); that is handled internally. .PP Data from ISBN files normally augment the compiled-in data. However, if the first prefix begins with a hyphen, then .B bibclean deletes the first entry in the table matching that first prefix (ignoring the leading hyphen): .RS .nf \fC %% Latvia got ISBN ranges between 1993 and 1998 %% so we remove the old placeholder, then add the %% new ranges. -9984-0 9984-9 This one is no longer valid \& 9984-00 9984-20 Latvia 9984-500 9984-770 9984-9000 9984-9984 .fi \fP .RE .\"===================================================================== .SH "KEYWORD INITIALIZATION FILES" .B bibclean contains a compiled-in table of keyword mappings that is suitable for most applications. The default settings merely adjust lettercase in certain keyword names, so that, for example, .I isbn is output as .IR ISBN . .PP From version 2.12, .B bibclean supports reading of run-time keyword initialization files found on the .B PATH (for VAX VMS, .BR SYS$SYSTEM ) and .B BIBINPUTS search paths, and then any specified by .BI \-keyword-file " filename" options. .PP That feature makes it possible to incorporate special spellings of new keywords without having to produce a new .B bibclean release and reinstall the software at end-user sites. .PP The format of a keyword initialization file is similar to that of the other .B bibclean initialization files described in the preceding sections: comments begin with percent and continue to end of line, blank and empty lines are ignored, backslash-newline joins adjacent lines, and otherwise, lines are expected to contain a required pair of old and new keyword names. .PP Here is a short example: .RS .nf \fC %% We want special handling of MathReviews keywords mrclass MRclass mrnumber MRnumber mrreviewer MRreviewer .fi \fP .RE .PP Data from keywords files normally augment the compiled-in data. However, if the first keyword begins with a hyphen, then .B bibclean deletes the first entry in the table matching that keyword (ignoring the leading hyphen): .RS .nf \fC %% Remove special handling of ISBN, ISSN, and LCCN values. -issn ISSN -isbn ISBN -lccn LCCN .fi \fP .RE Even though the second keyword in each deletion pair is not used, it still must be specified. .PP Notice that this feature can be used to regularize keyword names, but use it with care, in order to avoid producing duplicate key names in output \*(Bi\& entries: .RS .nf \fC %% Map variations of keywords into a common name: keys keywords keywds keywords keyword keywords keywrd keywords keywrds keywords searchkey keywords .fi \fP .RE .\"===================================================================== .SH "LEXICAL ANALYSIS" When .B \-no-prettyprint is specified, .B bibclean acts as a lexical analyzer instead of a prettyprinter, producing output in lines of the form .PP .RS .nf "" .fi .RE .PP Each output line contains a single complete token, identified by a small integer number for use by a computer program, a token type name for human readers, and a string value in quotes. .PP Special characters in the token value string are represented with ANSI/ISO Standard C escape sequences, so all characters other than NUL are representable, and multi-line values can be represented in a single line. .PP Here are the token numbers and token type names that can appear in the output when .B \-prettyprint is specified: .PP .RS .nf 0 UNKNOWN 1 ABBREV 2 AT 3 COMMA 4 COMMENT 5 ENTRY 6 EQUALS 7 FIELD 8 INCLUDE 9 INLINE 10 KEY 11 LBRACE 12 LITERAL 13 NEWLINE 14 PREAMBLE 15 RBRACE 16 SHARP 17 SPACE 18 STRING 19 VALUE .fi .RE .PP Programs that parse such output should also be prepared for lines beginning with the warning prefix, %%, or the error prefix, ??, and for ANSI/ISO Standard C line-number directives of the form .RS # line 273 "texbook1.bib" .RE that record the line number and file name of the current input file. .PP If a .BI \-max-width " nnn" command-line option was specified, long output lines are wrapped at a backslash-newline pair, and consequently, software that processes the lexical token stream should be prepared to collapse such wrapped lines back into single lines. .PP As an example of the use of .BR \-no-prettyprint , the UNIX command pipeline .RS .nf \fBbibclean \-no-prettyprint\fP \fImylib.bib\fP | \e \fBawk\fP '$2 == "KEY" {print $3}' | \e \fBsed\fP -e 's/"//g' | \e \fBsort\fP .fi .RE extracts a sorted list of all citation keys in the file .IR mylib.bib . .PP A certain amount of processing has been done on the tokens. In particular, delimiters equivalent to braces have been replaced by braces, and braced strings have become quoted strings. .PP The LITERAL token type is used for arbitrary text that .B bibclean does not examine further, such as the contents of a @Preamble{.\|.\|.} or a @Comment{.\|.\|.}. .PP The UNKNOWN token type should never appear in the output stream. It is used internally to initialize token type variables. .\"===================================================================== .SH "SCRIBE BIBLIOGRAPHY FORMAT" .BR bibclean 's support for the \*(Sc\& bibliography format is based on the syntax description in the \*(Sc\& Introductory User's Manual, 3rd Edition, May 1980. \*(Sc\& was originally developed by Brian Reid at Carnegie-Mellon University, and was marketed by Unilogic, Ltd., later renamed to Scribe Systems, and apparently now long defunct. .PP The \*(Bi\& bibliography format was strongly influenced by \*(Sc\&, and indeed, with care, it is possible to share bibliography files between the two systems. Nevertheless, there are some differences, so here is a summary of features of the \*(Sc\& bibliography file format: .TP \w'(10)'u+2n (1) Letter case is not significant in field names and entry names, but case is preserved in value strings. .TP (2) In field/value pairs, the field and value may be separated by one of three characters: =, /, or space. Space may optionally surround these separators. .TP (3) Value delimiters are any of these seven pairs: { } [ ] ( ) < > ' ' " " ` ` .TP (4) Value delimiters may not be nested, even though with the first four delimiter pairs, nested balanced delimiters would be unambiguous. .TP (5) Delimiters can be omitted around values that contain only letters, digits, sharp (#), ampersand (&), period (.), and percent (%). .TP (6) Outside of delimited values, a literal at-sign (@) is represented by doubled at-signs (@@). .TP (7) Bibliography entries begin with @name, as for \*(Bi\&, but any of the seven \*(Sc\& value delimiter pairs may be used to surround the values in field/value pairs. As in (4), nested delimiters are forbidden. .TP (8) Arbitrary space may separate entry names from the following delimiters. .TP (9) @Comment is a special command whose delimited value is discarded. As in (4), nested delimiters are forbidden. .TP (10) The special form .IP .nf @Begin{comment} .\|.\|. @End{comment} .fi .IP permits encapsulating arbitrary text containing any characters or delimiters, other than ``@End{comment}''. Any of the seven delimiter pairs may be used around the word ``comment'' following the ``@Begin'' or ``@End''; the delimiters in the two cases need not be the same, and consequently, ``@Begin{comment}''/``@End{comment}'' pairs may .I not be nested. .TP (11) The .I key field is required in each bibliography entry. .TP (12) A backslashed quote in a string is assumed to be a \*(Te\& accent, and braced appropriately. While such accents do not conform to \*(Sc\& syntax, \*(Sc\&-format bibliographies have been found that appear to be intended for \*(Te\& processing. .PP Because of that loose syntax, .BR bibclean 's normal error detection heuristics are less effective, and consequently, \*(Sc\& mode input is not the default; it must be explicitly requested. .\"===================================================================== .SH "ENVIRONMENT VARIABLES" .\"----------------------------------------------- .TP \w'BIBCLEANISBN'u+2n .B BIBCLEANEXT File extension of bibliography-specific initialization files. Default: .IR .ini . .\"----------------------------------------------- .TP .B BIBCLEANINI Name of .B bibclean initialization files. Default: .IR .bibcleanrc " (UNIX)," .IR bibclean.ini " (non-UNIX)." .\"----------------------------------------------- .TP .B BIBCLEANISBN Name of .B bibclean ISBN initialization files. Default: .IR .bibclean.isbn " (UNIX)," .IR bibclean.isb " (non-UNIX)." .\"----------------------------------------------- .TP .B BIBCLEANKEY Name of .B bibclean keyword initialization files. Default: .IR .bibclean.key " (UNIX)," .IR bibclean.key " (non-UNIX)." .\"----------------------------------------------- .TP .B BIBINPUTS Search path for .B bibclean and \*(Bi input files. On UNIX, it is a colon-separated list of directories that are searched in order from first to last. It is not an error for a specified directory to not exist. .IP On other operating systems, the directory names should be separated by whatever character is used in system search path specifications, such as a semicolon on IBM PC DOS. .\"----------------------------------------------- .TP .B PATH On Atari TOS, IBM PC DOS, IBM PC OS/2, Microsoft NT, and UNIX, search path for system executable files. The system-wide .B bibclean initialization file is searched for in that path. .\"----------------------------------------------- .TP .B SYS$SYSTEM On VAX VMS, search path for system executable files and the system-wide .B bibclean initialization file. .\"===================================================================== .SH FILES .\"----------------------------------------------- .TP \w'\fIbibclean.ini\fP'u+3n .I *.bib \*(Bi\& and \*(Sc\& bibliography data base files. .\"----------------------------------------------- .TP .I *.ini File-specific initialization files. .\"----------------------------------------------- .TP .I .bibclean.isbn UNIX system-wide and user-specific ISBN initialization files. .\"----------------------------------------------- .TP .I .bibclean.key UNIX system-wide and user-specific keyword initialization files. .\"----------------------------------------------- .TP .I .bibcleanrc UNIX system-wide and user-specific initialization files. .\"----------------------------------------------- .TP .I bibclean.ini Non-UNIX system-wide and user-specific initialization files. .\"----------------------------------------------- .TP .I bibclean.isb Non-UNIX system-wide and user-specific ISBN initialization files. .\"----------------------------------------------- .TP .I bibclean.key Non-UNIX system-wide and user-specific keyword initialization files. .\"===================================================================== .SH "SEE ALSO" .BR bibcheck (1), .BR bibdup (1), .BR bibextract (1), .BR bibindex (1), .BR bibjoin (1), .BR biblabel (1), .BR biblex (1), .BR biblook (1), .BR biborder (1), .BR bibparse (1), .BR bibsearch (1), .BR bibsort (1), .BR bibtex (1), .BR bibunlex (1), .BR citefind (1), .BR citesub (1), .BR citetags (1), .BR latex (1), .BR scribe (1), .BR tex (1). .\"===================================================================== .SH AUTHOR .nf Nelson H. F. Beebe University of Utah Department of Mathematics, 110 LCB 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA Tel: +1 801 581 5254 FAX: +1 801 581 4148 Email: beebe@math.utah.edu, beebe@acm.org, beebe@computer.org (Internet) URL: http://www.math.utah.edu/~beebe .fi .\"===================================================================== .SH COPYRIGHT .nf \fC######################################################################## ######################################################################## ######################################################################## ### ### ### bibclean: prettyprint and syntax check BibTeX and Scribe ### ### bibliography data base files ### ### ### ### Copyright (C) 1990--2016 Nelson H. F. Beebe ### ### ### ### This program is covered by the GNU General Public License (GPL), ### ### version 2 or later, available as the file COPYING in the program ### ### source distribution, and on the Internet at ### ### ### ### ftp://ftp.gnu.org/gnu/GPL ### ### ### ### http://www.gnu.org/copyleft/gpl.html ### ### ### ### 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; either version 2 of ### ### the License, or (at your option) any later version. ### ### ### ### 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. ### ### ### ### You should have received a copy of the GNU General Public ### ### License along with this program; if not, write to the Free ### ### Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, ### ### MA 02111-1307 USA ### ######################################################################## ######################################################################## ########################################################################\fP .fi .\"===================================================================== .\" This is for GNU Emacs file-specific customization: .\" Local Variables: .\" fill-column: 50 .\" End: bibclean-3.07/save/0000775000156700015670000000000014431412252013042 5ustar beebebeebebibclean-3.07/save/configure0000775000156700015670000076636414162072201014774 0ustar beebebeebe#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.71 for bibclean 3.07. # # Report bugs to >. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, # Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="as_nop=: if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else \$as_nop case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ) then : else \$as_nop exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 blah=\$(echo \$(echo blah)) test x\"\$blah\" = xblah || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null then : as_have_required=yes else $as_nop as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null then : else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$as_shell as_have_required=yes if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null then : break 2 fi fi done;; esac as_found=false done IFS=$as_save_IFS if $as_found then : else $as_nop if { test -f "$SHELL" || test -f "$SHELL.exe"; } && as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$SHELL as_have_required=yes fi fi if test "x$CONFIG_SHELL" != x then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno then : printf "%s\n" "$0: This script requires a shell more modern than all" printf "%s\n" "$0: the shells that I found on your system." if test ${ZSH_VERSION+y} ; then printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." else printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and Nelson H. F. Beebe $0: about your system, including any $0: error possibly output before this message. Then install $0: a modern shell, or manually run the script under such a $0: shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_nop # --------- # Do nothing but, unlike ":", preserve the value of $?. as_fn_nop () { return $? } as_nop=as_fn_nop # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else $as_nop as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_nop # --------- # Do nothing but, unlike ":", preserve the value of $?. as_fn_nop () { return $? } as_nop=as_fn_nop # as_fn_nop # --------- # Do nothing but, unlike ":", preserve the value of $?. as_fn_nop () { return $? } as_nop=as_fn_nop # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='bibclean' PACKAGE_TARNAME='bibclean' PACKAGE_VERSION='3.07' PACKAGE_STRING='bibclean 3.07' PACKAGE_BUGREPORT='Nelson H. F. Beebe ' PACKAGE_URL='' ac_unique_file="bibclean.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_STDIO_H # include #endif #ifdef HAVE_STDLIB_H # include #endif #ifdef HAVE_STRING_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_header_c_list= ac_subst_vars='LTLIBOBJS VM LIBOBJS CPP EGREP OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC ZOO ZIP WINE UNZIP UNO TR TOUCH TEST TAR STRIP SPLINT SED RM RATS NROFF MV MKDIR MAN2HTML LS LN LINT LATEX JAR ITS4 HTMLPRETTY HTMLNCHECK GZIP GREP FLAWFINDER EXPR ETAGS DITROFF DISTILL DIFF DATE CUT CPPCHECK CP CMP CHMOD CHECKSUM CAT BIBTEX AWK AUTOHEADER AUTOCONF ANTIC target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir runstatedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -runstatedir | --runstatedir | --runstatedi | --runstated \ | --runstate | --runstat | --runsta | --runst | --runs \ | --run | --ru | --r) ac_prev=runstatedir ;; -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ | --run=* | --ru=* | --r=*) runstatedir=$ac_optarg ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures bibclean 3.07 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/bibclean] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of bibclean 3.07:";; esac cat <<\_ACEOF Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to >. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for configure.gnu first; this name is used for a wrapper for # Metaconfig's "Configure" on case-insensitive file systems. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF bibclean configure 3.07 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest.beam if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_run LINENO # ---------------------- # Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that # executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: program exited with status $ac_status" >&5 printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$3=yes" else $as_nop eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err } then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext } then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. */ #include #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main (void) { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : eval "$3=yes" else $as_nop eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR # ------------------------------------------------------------------ # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR # accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR. ac_fn_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack as_decl_name=`echo $2|sed 's/ *(.*//'` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 printf %s "checking whether $as_decl_name is declared... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` eval ac_save_FLAGS=\$$6 as_fn_append $6 " $5" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { #ifndef $as_decl_name #ifdef __cplusplus (void) $as_decl_use; #else (void) $as_decl_name; #endif #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$3=yes" else $as_nop eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext eval $6=\$ac_save_FLAGS fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_check_decl ac_configure_args_raw= for ac_arg do case $ac_arg in *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append ac_configure_args_raw " '$ac_arg'" done case $ac_configure_args_raw in *$as_nl*) ac_safe_unquote= ;; *) ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. ac_unsafe_a="$ac_unsafe_z#~" ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; esac cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by bibclean $as_me 3.07, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac printf "%s\n" "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Sanitize IFS. IFS=" "" $as_nl" # Save into config.log some information that might help in debugging. { echo printf "%s\n" "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo printf "%s\n" "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then printf "%s\n" "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then printf "%s\n" "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && printf "%s\n" "$as_me: caught signal $ac_signal" printf "%s\n" "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h printf "%s\n" "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then ac_site_files="$CONFIG_SITE" elif test "x$prefix" != xNONE; then ac_site_files="$prefix/share/config.site $prefix/etc/config.site" else ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi for ac_site_file in $ac_site_files do case $ac_site_file in #( */*) : ;; #( *) : ac_site_file=./$ac_site_file ;; esac if test -f "$ac_site_file" && test -r "$ac_site_file"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 printf "%s\n" "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 printf "%s\n" "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Test code for whether the C compiler supports C89 (global declarations) ac_c_conftest_c89_globals=' /* Does the compiler advertise C89 conformance? Do not test the value of __STDC__, because some compilers set it to 0 while being otherwise adequately conformant. */ #if !defined __STDC__ # error "Compiler does not advertise C89 conformance" #endif #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ struct buf { int x; }; struct buf * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not \xHH hex character constants. These do not provoke an error unfortunately, instead are silently treated as an "x". The following induces an error, until -std is added to get proper ANSI mode. Curiously \x00 != x always comes out true, for an array size at least. It is necessary to write \x00 == 0 to get something that is true only with -std. */ int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) '\''x'\'' int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), int, int);' # Test code for whether the C compiler supports C89 (body of main). ac_c_conftest_c89_main=' ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); ' # Test code for whether the C compiler supports C99 (global declarations) ac_c_conftest_c99_globals=' // Does the compiler advertise C99 conformance? #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L # error "Compiler does not advertise C99 conformance" #endif #include extern int puts (const char *); extern int printf (const char *, ...); extern int dprintf (int, const char *, ...); extern void *malloc (size_t); // Check varargs macros. These examples are taken from C99 6.10.3.5. // dprintf is used instead of fprintf to avoid needing to declare // FILE and stderr. #define debug(...) dprintf (2, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK #error "your preprocessor is broken" #endif #if BIG_OK #else #error "your preprocessor is broken" #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) continue; return 0; } // Check varargs and va_copy. static bool test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str = ""; int number = 0; float fnumber = 0; while (*format) { switch (*format++) { case '\''s'\'': // string str = va_arg (args_copy, const char *); break; case '\''d'\'': // int number = va_arg (args_copy, int); break; case '\''f'\'': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); return *str && number && fnumber; } ' # Test code for whether the C compiler supports C99 (body of main). ac_c_conftest_c99_main=' // Check bool. _Bool success = false; success |= (argc != 0); // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[0] = argv[0][0]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' || dynamic_array[ni.number - 1] != 543); ' # Test code for whether the C compiler supports C11 (global declarations) ac_c_conftest_c11_globals=' // Does the compiler advertise C11 conformance? #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L # error "Compiler does not advertise C11 conformance" #endif // Check _Alignas. char _Alignas (double) aligned_as_double; char _Alignas (0) no_special_alignment; extern char aligned_as_int; char _Alignas (0) _Alignas (int) aligned_as_int; // Check _Alignof. enum { int_alignment = _Alignof (int), int_array_alignment = _Alignof (int[100]), char_alignment = _Alignof (char) }; _Static_assert (0 < -_Alignof (int), "_Alignof is signed"); // Check _Noreturn. int _Noreturn does_not_return (void) { for (;;) continue; } // Check _Static_assert. struct test_static_assert { int x; _Static_assert (sizeof (int) <= sizeof (long int), "_Static_assert does not work in struct"); long int y; }; // Check UTF-8 literals. #define u8 syntax error! char const utf8_literal[] = u8"happens to be ASCII" "another string"; // Check duplicate typedefs. typedef long *long_ptr; typedef long int *long_ptr; typedef long_ptr long_ptr; // Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. struct anonymous { union { struct { int i; int j; }; struct { int k; long int l; } w; }; int m; } v1; ' # Test code for whether the C compiler supports C11 (body of main). ac_c_conftest_c11_main=' _Static_assert ((offsetof (struct anonymous, i) == offsetof (struct anonymous, w.k)), "Anonymous union alignment botch"); v1.i = 2; v1.w.k = 5; ok |= v1.i != 5; ' # Test code for whether the C compiler supports C11 (complete). ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} ${ac_c_conftest_c99_globals} ${ac_c_conftest_c11_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} ${ac_c_conftest_c99_main} ${ac_c_conftest_c11_main} return ok; } " # Test code for whether the C compiler supports C99 (complete). ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} ${ac_c_conftest_c99_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} ${ac_c_conftest_c99_main} return ok; } " # Test code for whether the C compiler supports C89 (complete). ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} return ok; } " as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" as_fn_append ac_header_c_list " utime.h utime_h HAVE_UTIME_H" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu PACKAGE_DATE="26-Dec-2021" printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h printf "%s\n" "#define PACKAGE_DATE \"$PACKAGE_DATE\"" >>confdefs.h printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h ac_config_headers="$ac_config_headers config.h:config.hin" for ac_prog in antic do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ANTIC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ANTIC"; then ac_cv_prog_ANTIC="$ANTIC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ANTIC="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ANTIC=$ac_cv_prog_ANTIC if test -n "$ANTIC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ANTIC" >&5 printf "%s\n" "$ANTIC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ANTIC" && break done for ac_prog in autoconf do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AUTOCONF+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$AUTOCONF"; then ac_cv_prog_AUTOCONF="$AUTOCONF" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AUTOCONF="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AUTOCONF=$ac_cv_prog_AUTOCONF if test -n "$AUTOCONF"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AUTOCONF" >&5 printf "%s\n" "$AUTOCONF" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$AUTOCONF" && break done for ac_prog in autoheader do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AUTOHEADER+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$AUTOHEADER"; then ac_cv_prog_AUTOHEADER="$AUTOHEADER" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AUTOHEADER="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AUTOHEADER=$ac_cv_prog_AUTOHEADER if test -n "$AUTOHEADER"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AUTOHEADER" >&5 printf "%s\n" "$AUTOHEADER" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$AUTOHEADER" && break done for ac_prog in mawk nawk gawk bawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AWK+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 printf "%s\n" "$AWK" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$AWK" && break done for ac_prog in bibtex do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_BIBTEX+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$BIBTEX"; then ac_cv_prog_BIBTEX="$BIBTEX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_BIBTEX="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi BIBTEX=$ac_cv_prog_BIBTEX if test -n "$BIBTEX"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $BIBTEX" >&5 printf "%s\n" "$BIBTEX" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$BIBTEX" && break done for ac_prog in cat do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CAT+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CAT"; then ac_cv_prog_CAT="$CAT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CAT="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CAT=$ac_cv_prog_CAT if test -n "$CAT"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CAT" >&5 printf "%s\n" "$CAT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CAT" && break done for ac_prog in checksum do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CHECKSUM+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CHECKSUM"; then ac_cv_prog_CHECKSUM="$CHECKSUM" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CHECKSUM="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CHECKSUM=$ac_cv_prog_CHECKSUM if test -n "$CHECKSUM"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CHECKSUM" >&5 printf "%s\n" "$CHECKSUM" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CHECKSUM" && break done for ac_prog in chmod do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CHMOD+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CHMOD"; then ac_cv_prog_CHMOD="$CHMOD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CHMOD="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CHMOD=$ac_cv_prog_CHMOD if test -n "$CHMOD"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CHMOD" >&5 printf "%s\n" "$CHMOD" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CHMOD" && break done for ac_prog in cmp do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CMP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CMP"; then ac_cv_prog_CMP="$CMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CMP="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CMP=$ac_cv_prog_CMP if test -n "$CMP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CMP" >&5 printf "%s\n" "$CMP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CMP" && break done # Extract the first word of "scp", so it can be a program name with args. set dummy scp; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CP"; then ac_cv_prog_CP="$CP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CP="scp -p" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CP=$ac_cv_prog_CP if test -n "$CP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CP" >&5 printf "%s\n" "$CP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi # Extract the first word of "rcp", so it can be a program name with args. set dummy rcp; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CP"; then ac_cv_prog_CP="$CP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CP="rcp -p" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CP=$ac_cv_prog_CP if test -n "$CP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CP" >&5 printf "%s\n" "$CP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi # Extract the first word of "cp", so it can be a program name with args. set dummy cp; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CP"; then ac_cv_prog_CP="$CP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CP="cp" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CP=$ac_cv_prog_CP if test -n "$CP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CP" >&5 printf "%s\n" "$CP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi for ac_prog in cppcheck do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CPPCHECK+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CPPCHECK"; then ac_cv_prog_CPPCHECK="$CPPCHECK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CPPCHECK="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CPPCHECK=$ac_cv_prog_CPPCHECK if test -n "$CPPCHECK"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPPCHECK" >&5 printf "%s\n" "$CPPCHECK" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CPPCHECK" && break done for ac_prog in cut do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CUT+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CUT"; then ac_cv_prog_CUT="$CUT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CUT="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CUT=$ac_cv_prog_CUT if test -n "$CUT"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CUT" >&5 printf "%s\n" "$CUT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CUT" && break done for ac_prog in date do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DATE+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$DATE"; then ac_cv_prog_DATE="$DATE" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DATE="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DATE=$ac_cv_prog_DATE if test -n "$DATE"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DATE" >&5 printf "%s\n" "$DATE" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$DATE" && break done for ac_prog in diff do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DIFF+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$DIFF"; then ac_cv_prog_DIFF="$DIFF" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DIFF="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DIFF=$ac_cv_prog_DIFF if test -n "$DIFF"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DIFF" >&5 printf "%s\n" "$DIFF" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$DIFF" && break done for ac_prog in distill ps2pdf do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DISTILL+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$DISTILL"; then ac_cv_prog_DISTILL="$DISTILL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DISTILL="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DISTILL=$ac_cv_prog_DISTILL if test -n "$DISTILL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DISTILL" >&5 printf "%s\n" "$DISTILL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$DISTILL" && break done for ac_prog in ditroff groff do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DITROFF+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$DITROFF"; then ac_cv_prog_DITROFF="$DITROFF" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DITROFF="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DITROFF=$ac_cv_prog_DITROFF if test -n "$DITROFF"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DITROFF" >&5 printf "%s\n" "$DITROFF" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$DITROFF" && break done for ac_prog in etags do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ETAGS+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ETAGS"; then ac_cv_prog_ETAGS="$ETAGS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ETAGS="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ETAGS=$ac_cv_prog_ETAGS if test -n "$ETAGS"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ETAGS" >&5 printf "%s\n" "$ETAGS" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ETAGS" && break done for ac_prog in expr do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_EXPR+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$EXPR"; then ac_cv_prog_EXPR="$EXPR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_EXPR="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi EXPR=$ac_cv_prog_EXPR if test -n "$EXPR"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $EXPR" >&5 printf "%s\n" "$EXPR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$EXPR" && break done for ac_prog in flawfinder do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_FLAWFINDER+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$FLAWFINDER"; then ac_cv_prog_FLAWFINDER="$FLAWFINDER" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_FLAWFINDER="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi FLAWFINDER=$ac_cv_prog_FLAWFINDER if test -n "$FLAWFINDER"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FLAWFINDER" >&5 printf "%s\n" "$FLAWFINDER" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$FLAWFINDER" && break done for ac_prog in egrep grep do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_GREP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$GREP"; then ac_cv_prog_GREP="$GREP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_GREP="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi GREP=$ac_cv_prog_GREP if test -n "$GREP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GREP" >&5 printf "%s\n" "$GREP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$GREP" && break done for ac_prog in gzip compress do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_GZIP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$GZIP"; then ac_cv_prog_GZIP="$GZIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_GZIP="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi GZIP=$ac_cv_prog_GZIP if test -n "$GZIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GZIP" >&5 printf "%s\n" "$GZIP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$GZIP" && break done for ac_prog in html-ncheck echo do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_HTMLNCHECK+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$HTMLNCHECK"; then ac_cv_prog_HTMLNCHECK="$HTMLNCHECK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_HTMLNCHECK="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi HTMLNCHECK=$ac_cv_prog_HTMLNCHECK if test -n "$HTMLNCHECK"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $HTMLNCHECK" >&5 printf "%s\n" "$HTMLNCHECK" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$HTMLNCHECK" && break done for ac_prog in html-pretty echo do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_HTMLPRETTY+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$HTMLPRETTY"; then ac_cv_prog_HTMLPRETTY="$HTMLPRETTY" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_HTMLPRETTY="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi HTMLPRETTY=$ac_cv_prog_HTMLPRETTY if test -n "$HTMLPRETTY"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $HTMLPRETTY" >&5 printf "%s\n" "$HTMLPRETTY" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$HTMLPRETTY" && break done for ac_prog in its4 do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ITS4+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ITS4"; then ac_cv_prog_ITS4="$ITS4" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ITS4="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ITS4=$ac_cv_prog_ITS4 if test -n "$ITS4"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ITS4" >&5 printf "%s\n" "$ITS4" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ITS4" && break done for ac_prog in jar tar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_JAR+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$JAR"; then ac_cv_prog_JAR="$JAR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_JAR="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi JAR=$ac_cv_prog_JAR if test -n "$JAR"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $JAR" >&5 printf "%s\n" "$JAR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$JAR" && break done for ac_prog in latex2e latex do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_LATEX+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$LATEX"; then ac_cv_prog_LATEX="$LATEX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_LATEX="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LATEX=$ac_cv_prog_LATEX if test -n "$LATEX"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LATEX" >&5 printf "%s\n" "$LATEX" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$LATEX" && break done for ac_prog in lint do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_LINT+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$LINT"; then ac_cv_prog_LINT="$LINT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_LINT="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LINT=$ac_cv_prog_LINT if test -n "$LINT"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LINT" >&5 printf "%s\n" "$LINT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$LINT" && break done for ac_prog in ln do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_LN+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$LN"; then ac_cv_prog_LN="$LN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_LN="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LN=$ac_cv_prog_LN if test -n "$LN"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LN" >&5 printf "%s\n" "$LN" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$LN" && break done for ac_prog in ls do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_LS+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$LS"; then ac_cv_prog_LS="$LS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_LS="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LS=$ac_cv_prog_LS if test -n "$LS"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LS" >&5 printf "%s\n" "$LS" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$LS" && break done for ac_prog in man2html do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_MAN2HTML+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$MAN2HTML"; then ac_cv_prog_MAN2HTML="$MAN2HTML" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_MAN2HTML="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MAN2HTML=$ac_cv_prog_MAN2HTML if test -n "$MAN2HTML"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAN2HTML" >&5 printf "%s\n" "$MAN2HTML" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$MAN2HTML" && break done for ac_prog in mkdir do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_MKDIR+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$MKDIR"; then ac_cv_prog_MKDIR="$MKDIR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_MKDIR="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MKDIR=$ac_cv_prog_MKDIR if test -n "$MKDIR"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR" >&5 printf "%s\n" "$MKDIR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$MKDIR" && break done for ac_prog in mv do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_MV+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$MV"; then ac_cv_prog_MV="$MV" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_MV="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MV=$ac_cv_prog_MV if test -n "$MV"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MV" >&5 printf "%s\n" "$MV" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$MV" && break done for ac_prog in nroff do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_NROFF+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$NROFF"; then ac_cv_prog_NROFF="$NROFF" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_NROFF="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NROFF=$ac_cv_prog_NROFF if test -n "$NROFF"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NROFF" >&5 printf "%s\n" "$NROFF" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$NROFF" && break done for ac_prog in rats do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_RATS+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$RATS"; then ac_cv_prog_RATS="$RATS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_RATS="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RATS=$ac_cv_prog_RATS if test -n "$RATS"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RATS" >&5 printf "%s\n" "$RATS" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$RATS" && break done for ac_prog in rm do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_RM+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$RM"; then ac_cv_prog_RM="$RM" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_RM="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RM=$ac_cv_prog_RM if test -n "$RM"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RM" >&5 printf "%s\n" "$RM" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$RM" && break done for ac_prog in sed do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_SED+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$SED"; then ac_cv_prog_SED="$SED" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_SED="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi SED=$ac_cv_prog_SED if test -n "$SED"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SED" >&5 printf "%s\n" "$SED" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$SED" && break done for ac_prog in splint lclint do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_SPLINT+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$SPLINT"; then ac_cv_prog_SPLINT="$SPLINT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_SPLINT="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi SPLINT=$ac_cv_prog_SPLINT if test -n "$SPLINT"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SPLINT" >&5 printf "%s\n" "$SPLINT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$SPLINT" && break done # Extract the first word of "sh", so it can be a program name with args. set dummy sh; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_SHELL+y} then : printf %s "(cached) " >&6 else $as_nop case $SHELL in [\\/]* | ?:[\\/]*) ac_cv_path_SHELL="$SHELL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_SHELL="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi SHELL=$ac_cv_path_SHELL if test -n "$SHELL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SHELL" >&5 printf "%s\n" "$SHELL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi for ac_prog in strip do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_STRIP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 printf "%s\n" "$STRIP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$STRIP" && break done for ac_prog in gtar gnutar tar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_TAR+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$TAR"; then ac_cv_prog_TAR="$TAR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_TAR="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi TAR=$ac_cv_prog_TAR if test -n "$TAR"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $TAR" >&5 printf "%s\n" "$TAR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$TAR" && break done for ac_prog in test do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_TEST+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$TEST"; then ac_cv_prog_TEST="$TEST" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_TEST="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi TEST=$ac_cv_prog_TEST if test -n "$TEST"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $TEST" >&5 printf "%s\n" "$TEST" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$TEST" && break done for ac_prog in touch do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_TOUCH+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$TOUCH"; then ac_cv_prog_TOUCH="$TOUCH" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_TOUCH="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi TOUCH=$ac_cv_prog_TOUCH if test -n "$TOUCH"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $TOUCH" >&5 printf "%s\n" "$TOUCH" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$TOUCH" && break done for ac_prog in tr do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_TR+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$TR"; then ac_cv_prog_TR="$TR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_TR="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi TR=$ac_cv_prog_TR if test -n "$TR"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $TR" >&5 printf "%s\n" "$TR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$TR" && break done for ac_prog in uno do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_UNO+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$UNO"; then ac_cv_prog_UNO="$UNO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_UNO="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi UNO=$ac_cv_prog_UNO if test -n "$UNO"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $UNO" >&5 printf "%s\n" "$UNO" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$UNO" && break done for ac_prog in unzip do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_UNZIP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$UNZIP"; then ac_cv_prog_UNZIP="$UNZIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_UNZIP="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi UNZIP=$ac_cv_prog_UNZIP if test -n "$UNZIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $UNZIP" >&5 printf "%s\n" "$UNZIP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$UNZIP" && break done for ac_prog in wine do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_WINE+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$WINE"; then ac_cv_prog_WINE="$WINE" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_WINE="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi WINE=$ac_cv_prog_WINE if test -n "$WINE"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $WINE" >&5 printf "%s\n" "$WINE" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$WINE" && break done for ac_prog in zip false do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ZIP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ZIP"; then ac_cv_prog_ZIP="$ZIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ZIP="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ZIP=$ac_cv_prog_ZIP if test -n "$ZIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ZIP" >&5 printf "%s\n" "$ZIP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ZIP" && break done for ac_prog in zoo false do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ZOO+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ZOO"; then ac_cv_prog_ZOO="$ZOO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ZOO="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ZOO=$ac_cv_prog_ZOO if test -n "$ZOO"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ZOO" >&5 printf "%s\n" "$ZOO" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ZOO" && break done { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we have NeXT system" >&5 printf %s "checking whether we have NeXT system... " >&6; } if test -d /NextAdmin then CFLAGS=-posix { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. set dummy ${ac_tool_prefix}clang; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}clang" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "clang", so it can be a program name with args. set dummy clang; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="clang" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi fi test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion -version; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 printf %s "checking whether the C compiler works... " >&6; } ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else $as_nop ac_file='' fi if test -z "$ac_file" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 printf %s "checking for C compiler default output file name... " >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 printf "%s\n" "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 printf %s "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else $as_nop { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 printf "%s\n" "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 printf %s "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 printf "%s\n" "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 printf %s "checking for suffix of object files... " >&6; } if test ${ac_cv_objext+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 printf "%s\n" "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 printf %s "checking whether the compiler supports GNU C... " >&6; } if test ${ac_cv_c_compiler_gnu+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_compiler_gnu=yes else $as_nop ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } ac_compiler_gnu=$ac_cv_c_compiler_gnu if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+y} ac_save_CFLAGS=$CFLAGS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 printf %s "checking whether $CC accepts -g... " >&6; } if test ${ac_cv_prog_cc_g+y} then : printf %s "(cached) " >&6 else $as_nop ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes else $as_nop CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 printf "%s\n" "$ac_cv_prog_cc_g" >&6; } if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi ac_prog_cc_stdc=no if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 printf %s "checking for $CC option to enable C11 features... " >&6; } if test ${ac_cv_prog_cc_c11+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c11_program _ACEOF for ac_arg in '' -std=gnu11 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c11=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c11" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c11" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c11" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } CC="$CC $ac_cv_prog_cc_c11" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 ac_prog_cc_stdc=c11 fi fi if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 printf %s "checking for $CC option to enable C99 features... " >&6; } if test ${ac_cv_prog_cc_c99+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c99_program _ACEOF for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c99=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c99" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c99" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } CC="$CC $ac_cv_prog_cc_c99" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 ac_prog_cc_stdc=c99 fi fi if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 printf %s "checking for $CC option to enable C89 features... " >&6; } if test ${ac_cv_prog_cc_c89+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c89_program _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c89" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c89" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } CC="$CC $ac_cv_prog_cc_c89" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 ac_prog_cc_stdc=c89 fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need _ALL_SOURCE" >&5 printf %s "checking whether we need _ALL_SOURCE... " >&6; } all=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct winsize w; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop all=maybe fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext if test $all = maybe ; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _ALL_SOURCE #include #include struct winsize w; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h all=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test $all = maybe ; then all=no ; fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $all" >&5 printf "%s\n" "$all" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need _POSIX_SOURCE" >&5 printf %s "checking whether we need _POSIX_SOURCE... " >&6; } posix=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat buffer; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop posix=maybe fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext if test $posix = maybe ; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _POSIX_SOURCE #include #include struct stat buffer; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h posix=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test $posix = maybe ; then posix=no ; fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $posix" >&5 printf "%s\n" "$posix" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Standard C and C++ function declarations" >&5 printf %s "checking for Standard C and C++ function declarations... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ void foo(void){} int bar(int x, float y, char z){return 1;} int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } printf "%s\n" "#define HAVE_STDC 1" >>confdefs.h else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SunOS C++ free() argument type bug" >&5 printf %s "checking for SunOS C++ free() argument type bug... " >&6; } freebug=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { void *p; p = (void*)0; free(p) ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop freebug=maybe fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext if test $freebug = maybe ; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { void *p; p = (void*)0; free((char*)p) ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : printf "%s\n" "#define FREE_CAST_IS_CHAR_STAR 1" >>confdefs.h freebug=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test $freebug = maybe ; then freebug=no ; fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $freebug" >&5 printf "%s\n" "$freebug" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Standard C alert character" >&5 printf %s "checking for Standard C alert character... " >&6; } havealert=yes if test "$cross_compiling" = yes then : havealert=no else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main(){return((int)'\a'-007);} _ACEOF if ac_fn_c_try_run "$LINENO" then : havealert=yes printf "%s\n" "#define HAVE_ALERT_CHAR 1" >>confdefs.h else $as_nop havealert=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $havealert" >&5 printf "%s\n" "$havealert" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compatibility" >&5 printf %s "checking for compatibility... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } ac_cv_header_sys_param_h=no} fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # Autoupdate added the next two lines to ensure that your configure # script's behavior did not change. They are probably safe to remove. ac_header= ac_cache= for ac_item in $ac_header_c_list do if test $ac_cache; then ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then printf "%s\n" "#define $ac_item 1" >> confdefs.h fi ac_header= ac_cache= elif test $ac_header; then ac_cache=$ac_item else ac_header=$ac_item fi done if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes then : printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 printf %s "checking for grep that handles long lines and -e... " >&6; } if test ${ac_cv_path_GREP+y} then : printf %s "(cached) " >&6 else $as_nop if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in grep ggrep do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 printf %s 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" printf "%s\n" 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 printf "%s\n" "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 printf %s "checking for egrep... " >&6; } if test ${ac_cv_path_EGREP+y} then : printf %s "(cached) " >&6 else $as_nop if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in egrep do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 printf %s 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" printf "%s\n" 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 printf "%s\n" "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" ac_fn_c_check_header_compile "$LINENO" "conio.h" "ac_cv_header_conio_h" "$ac_includes_default" if test "x$ac_cv_header_conio_h" = xyes then : printf "%s\n" "#define HAVE_CONIO_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "ctype.h" "ac_cv_header_ctype_h" "$ac_includes_default" if test "x$ac_cv_header_ctype_h" = xyes then : printf "%s\n" "#define HAVE_CTYPE_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "descrip.h" "ac_cv_header_descrip_h" "$ac_includes_default" if test "x$ac_cv_header_descrip_h" = xyes then : printf "%s\n" "#define HAVE_DESCRIP_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "errno.h" "ac_cv_header_errno_h" "$ac_includes_default" if test "x$ac_cv_header_errno_h" = xyes then : printf "%s\n" "#define HAVE_ERRNO_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$ac_includes_default" if test "x$ac_cv_header_fcntl_h" = xyes then : printf "%s\n" "#define HAVE_FCNTL_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "io.h" "ac_cv_header_io_h" "$ac_includes_default" if test "x$ac_cv_header_io_h" = xyes then : printf "%s\n" "#define HAVE_IO_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "iodef.h" "ac_cv_header_iodef_h" "$ac_includes_default" if test "x$ac_cv_header_iodef_h" = xyes then : printf "%s\n" "#define HAVE_IODEF_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "jpidef.h" "ac_cv_header_jpidef_h" "$ac_includes_default" if test "x$ac_cv_header_jpidef_h" = xyes then : printf "%s\n" "#define HAVE_JPIDEF_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "libc.h" "ac_cv_header_libc_h" "$ac_includes_default" if test "x$ac_cv_header_libc_h" = xyes then : printf "%s\n" "#define HAVE_LIBC_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "limits.h" "ac_cv_header_limits_h" "$ac_includes_default" if test "x$ac_cv_header_limits_h" = xyes then : printf "%s\n" "#define HAVE_LIMITS_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "osfcn.h" "ac_cv_header_osfcn_h" "$ac_includes_default" if test "x$ac_cv_header_osfcn_h" = xyes then : printf "%s\n" "#define HAVE_OSFCN_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "pwd.h" "ac_cv_header_pwd_h" "$ac_includes_default" if test "x$ac_cv_header_pwd_h" = xyes then : printf "%s\n" "#define HAVE_PWD_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "regex.h" "ac_cv_header_regex_h" "$ac_includes_default" if test "x$ac_cv_header_regex_h" = xyes then : printf "%s\n" "#define HAVE_REGEX_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "regexp.h" "ac_cv_header_regexp_h" "$ac_includes_default" if test "x$ac_cv_header_regexp_h" = xyes then : printf "%s\n" "#define HAVE_REGEXP_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "rms.h" "ac_cv_header_rms_h" "$ac_includes_default" if test "x$ac_cv_header_rms_h" = xyes then : printf "%s\n" "#define HAVE_RMS_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "sgtty.h" "ac_cv_header_sgtty_h" "$ac_includes_default" if test "x$ac_cv_header_sgtty_h" = xyes then : printf "%s\n" "#define HAVE_SGTTY_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "ssdef.h" "ac_cv_header_ssdef_h" "$ac_includes_default" if test "x$ac_cv_header_ssdef_h" = xyes then : printf "%s\n" "#define HAVE_SSDEF_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "stat.h" "ac_cv_header_stat_h" "$ac_includes_default" if test "x$ac_cv_header_stat_h" = xyes then : printf "%s\n" "#define HAVE_STAT_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "stdbool.h" "ac_cv_header_stdbool_h" "$ac_includes_default" if test "x$ac_cv_header_stdbool_h" = xyes then : printf "%s\n" "#define HAVE_STDBOOL_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "stdio.h" "ac_cv_header_stdio_h" "$ac_includes_default" if test "x$ac_cv_header_stdio_h" = xyes then : printf "%s\n" "#define HAVE_STDIO_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes then : printf "%s\n" "#define HAVE_STDLIB_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "string.h" "ac_cv_header_string_h" "$ac_includes_default" if test "x$ac_cv_header_string_h" = xyes then : printf "%s\n" "#define HAVE_STRING_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "sys/ioctl.h" "ac_cv_header_sys_ioctl_h" "$ac_includes_default" if test "x$ac_cv_header_sys_ioctl_h" = xyes then : printf "%s\n" "#define HAVE_SYS_IOCTL_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default" if test "x$ac_cv_header_sys_param_h" = xyes then : printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "sys/stat.h" "ac_cv_header_sys_stat_h" "$ac_includes_default" if test "x$ac_cv_header_sys_stat_h" = xyes then : printf "%s\n" "#define HAVE_SYS_STAT_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default" if test "x$ac_cv_header_sys_types_h" = xyes then : printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "termio.h" "ac_cv_header_termio_h" "$ac_includes_default" if test "x$ac_cv_header_termio_h" = xyes then : printf "%s\n" "#define HAVE_TERMIO_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "termios.h" "ac_cv_header_termios_h" "$ac_includes_default" if test "x$ac_cv_header_termios_h" = xyes then : printf "%s\n" "#define HAVE_TERMIOS_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "time.h" "ac_cv_header_time_h" "$ac_includes_default" if test "x$ac_cv_header_time_h" = xyes then : printf "%s\n" "#define HAVE_TIME_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "tt2def.h" "ac_cv_header_tt2def_h" "$ac_includes_default" if test "x$ac_cv_header_tt2def_h" = xyes then : printf "%s\n" "#define HAVE_TT2DEF_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "ttdef.h" "ac_cv_header_ttdef_h" "$ac_includes_default" if test "x$ac_cv_header_ttdef_h" = xyes then : printf "%s\n" "#define HAVE_TTDEF_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "types.h" "ac_cv_header_types_h" "$ac_includes_default" if test "x$ac_cv_header_types_h" = xyes then : printf "%s\n" "#define HAVE_TYPES_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" if test "x$ac_cv_header_unistd_h" = xyes then : printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "unixio.h" "ac_cv_header_unixio_h" "$ac_includes_default" if test "x$ac_cv_header_unixio_h" = xyes then : printf "%s\n" "#define HAVE_UNIXIO_H 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 printf %s "checking for an ANSI C-conforming const... " >&6; } if test ${ac_cv_c_const+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { #ifndef __cplusplus /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* IBM XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this sort of thing. */ char tx; char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* IBM XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_c_const=yes else $as_nop ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 printf "%s\n" "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then printf "%s\n" "#define const /**/" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" if test "x$ac_cv_type_mode_t" = xyes then : else $as_nop printf "%s\n" "#define mode_t int" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes then : else $as_nop printf "%s\n" "#define size_t unsigned int" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 printf %s "checking whether struct tm is in sys/time.h or time.h... " >&6; } if test ${ac_cv_struct_tm+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main (void) { struct tm tm; int *p = &tm.tm_sec; return !p; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_struct_tm=time.h else $as_nop ac_cv_struct_tm=sys/time.h fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 printf "%s\n" "$ac_cv_struct_tm" >&6; } if test $ac_cv_struct_tm = sys/time.h; then printf "%s\n" "#define TM_IN_SYS_TIME 1" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "#include " if test "x$ac_cv_type__Bool" = xyes then : printf "%s\n" "#define HAVE__BOOL 1" >>confdefs.h fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 printf %s "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test ${ac_cv_prog_CPP+y} then : printf %s "(cached) " >&6 else $as_nop # Double quotes because $CC needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO" then : else $as_nop # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO" then : # Broken: success on invalid input. continue else $as_nop # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 printf "%s\n" "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO" then : else $as_nop # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO" then : # Broken: success on invalid input. continue else $as_nop # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : else $as_nop { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test $ac_cv_c_compiler_gnu = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5 printf %s "checking whether $CC needs -traditional... " >&6; } if test ${ac_cv_prog_gcc_traditional+y} then : printf %s "(cached) " >&6 else $as_nop ac_pattern="Autoconf.*'x'" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Autoconf TIOCGETP _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1 then : ac_cv_prog_gcc_traditional=yes else $as_nop ac_cv_prog_gcc_traditional=no fi rm -rf conftest* if test $ac_cv_prog_gcc_traditional = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Autoconf TCGETA _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1 then : ac_cv_prog_gcc_traditional=yes fi rm -rf conftest* fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gcc_traditional" >&5 printf "%s\n" "$ac_cv_prog_gcc_traditional" >&6; } if test $ac_cv_prog_gcc_traditional = yes; then CC="$CC -traditional" fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether utime accepts a null argument" >&5 printf %s "checking whether utime accepts a null argument... " >&6; } if test ${ac_cv_func_utime_null+y} then : printf %s "(cached) " >&6 else $as_nop rm -f conftest.data; >conftest.data # Sequent interprets utime(file, 0) to mean use start of epoch. Wrong. if test "$cross_compiling" = yes then : ac_cv_func_utime_null='guessing yes' else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default #ifdef HAVE_UTIME_H # include #endif int main (void) { struct stat s, t; return ! (stat ("conftest.data", &s) == 0 && utime ("conftest.data", 0) == 0 && stat ("conftest.data", &t) == 0 && t.st_mtime >= s.st_mtime && t.st_mtime - s.st_mtime < 120); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : ac_cv_func_utime_null=yes else $as_nop ac_cv_func_utime_null=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_utime_null" >&5 printf "%s\n" "$ac_cv_func_utime_null" >&6; } if test "x$ac_cv_func_utime_null" != xno; then ac_cv_func_utime_null=yes printf "%s\n" "#define HAVE_UTIME_NULL 1" >>confdefs.h fi rm -f conftest.data ac_fn_c_check_func "$LINENO" "strtol" "ac_cv_func_strtol" if test "x$ac_cv_func_strtol" = xyes then : printf "%s\n" "#define HAVE_STRTOL 1" >>confdefs.h else $as_nop case " $LIBOBJS " in *" strtol.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strtol.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "getcwd" "ac_cv_func_getcwd" if test "x$ac_cv_func_getcwd" = xyes then : printf "%s\n" "#define HAVE_GETCWD 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "getpwnam" "ac_cv_func_getpwnam" if test "x$ac_cv_func_getpwnam" = xyes then : printf "%s\n" "#define HAVE_GETPWNAM 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "getwd" "ac_cv_func_getwd" if test "x$ac_cv_func_getwd" = xyes then : printf "%s\n" "#define HAVE_GETWD 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "re_comp" "ac_cv_func_re_comp" if test "x$ac_cv_func_re_comp" = xyes then : printf "%s\n" "#define HAVE_RE_COMP 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "strcspn" "ac_cv_func_strcspn" if test "x$ac_cv_func_strcspn" = xyes then : printf "%s\n" "#define HAVE_STRCSPN 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "strdup" "ac_cv_func_strdup" if test "x$ac_cv_func_strdup" = xyes then : printf "%s\n" "#define HAVE_STRDUP 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "strspn" "ac_cv_func_strspn" if test "x$ac_cv_func_strspn" = xyes then : printf "%s\n" "#define HAVE_STRSPN 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "strstr" "ac_cv_func_strstr" if test "x$ac_cv_func_strstr" = xyes then : printf "%s\n" "#define HAVE_STRSTR 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "strtod" "ac_cv_func_strtod" if test "x$ac_cv_func_strtod" = xyes then : printf "%s\n" "#define HAVE_STRTOD 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "strtol" "ac_cv_func_strtol" if test "x$ac_cv_func_strtol" = xyes then : printf "%s\n" "#define HAVE_STRTOL 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } if test ${ac_cv_c_undeclared_builtin_options+y} then : printf %s "(cached) " >&6 else $as_nop ac_save_CFLAGS=$CFLAGS ac_cv_c_undeclared_builtin_options='cannot detect' for ac_arg in '' -fno-builtin; do CFLAGS="$ac_save_CFLAGS $ac_arg" # This test program should *not* compile successfully. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { (void) strchr; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop # This test program should compile successfully. # No library function is consistently available on # freestanding implementations, so test against a dummy # declaration. Include always-available headers on the # off chance that they somehow elicit warnings. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include extern void ac_decl (int, char *); int main (void) { (void) ac_decl (0, (char *) 0); (void) ac_decl; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : if test x"$ac_arg" = x then : ac_cv_c_undeclared_builtin_options='none needed' else $as_nop ac_cv_c_undeclared_builtin_options=$ac_arg fi break fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done CFLAGS=$ac_save_CFLAGS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5 printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; } case $ac_cv_c_undeclared_builtin_options in #( 'cannot detect') : { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot make $CC report undeclared builtins See \`config.log' for more details" "$LINENO" 5; } ;; #( 'none needed') : ac_c_undeclared_builtin_options='' ;; #( *) : ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;; esac ac_fn_check_decl "$LINENO" "fileno" "ac_cv_have_decl_fileno" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_fileno" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_FILENO $ac_have_decl" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for isatty" >&5 printf %s "checking for isatty... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined(HAVE_STDIO_H) #include #endif #if defined(HAVE_STDLIB_H) #include #endif #if defined(HAVE_UNISTD_H) #include #endif int main (void) { (void)isatty(1) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } printf "%s\n" "#define HAVE_ISATTY 1" >>confdefs.h else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ioctl prototype" >&5 printf %s "checking for ioctl prototype... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "ioctl[ ]*[(]" >/dev/null 2>&1 then : printf "%s\n" "#define HAVE_IOCTL_PROTOTYPE 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi rm -rf conftest* if test "$CC" = "lcc" then CFLAGS="`echo $CFLAGS | sed -e 's/-g //g' -e 's/ -g$//g' -e 's/^-g$//'`" fi ac_fn_c_check_header_compile "$LINENO" "sys/pledge.h" "ac_cv_header_sys_pledge_h" "$ac_includes_default" if test "x$ac_cv_header_sys_pledge_h" = xyes then : printf "%s\n" "#define HAVE_SYS_PLEDGE_H 1" >>confdefs.h fi test "x$ac_cv_exeext" = "x.exe" && VM='$(WINE)' # Old autoconf style: AC_CONFIG_FILES([Makefile]) cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else $as_nop as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by bibclean $as_me 3.07, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_headers="$ac_config_headers" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration headers: $config_headers Report bugs to >." _ACEOF ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ bibclean config.status 3.07 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" Copyright (C) 2021 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) printf "%s\n" "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX printf "%s\n" "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.hin" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :H $CONFIG_HEADERS " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 printf "%s\n" "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 printf "%s\n" "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi # New autoconf style: ac_config_files="$ac_config_files Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else $as_nop as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by bibclean $as_me 3.07, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Report bugs to >." _ACEOF ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ bibclean config.status 3.07 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" Copyright (C) 2021 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) printf "%s\n" "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX printf "%s\n" "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.hin" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 printf "%s\n" "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 printf "%s\n" "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi bibclean-3.07/save/Makefile0000664000156700015670000017317614162072214014522 0ustar beebebeebe### ==================================================================== ### Makefile for BibTeX .bib file prettyprinter ### ### Current target list: (these include all GNU Project standard ### targets) ### ### all build bibclean ### bibclean executable for bibclean ### bibclean.h documentation strings for help() ### function ### bibclean.hlp VAX VMS help file (automatically ### converted from bibclean.txt) ### bibclean.html HTML version of formatted manual pages ### bibclean.i C preprocessor output from bibclean.c ### bibclean.jar Java Jar distribution archive ### bibclean.pdf Adobe Portable Document Format version ### of bibclean.man ### bibclean.ps PostScript version of bibclean.man ### bibclean.tar tar archive file for ftp distribution ### bibclean.txt nroff'ed bibclean.man manual page file ### bibclean.zip Info-zip archive file for ftp ### distribution ### bibclean.zoo zoo archive file for ftp distribution ### check same as test (see below) ### clean clean up all but executables and time ### stamps ### clobber clean up everything ### distclean remove everything make can rebuild at ### remote site ### docs make bibclean.txt, bibclean.hlp, and ### bibclean.ps ### install install executable and man pages ### install.time internal target for install ### install-exe install executable ### install-man install man pages ### install-ftp install .tar, .zip, and .zoo files in ### ftp tree ### install-ftp.time internal target for install-ftp ### lint check for code problems ### mostlyclean same as clean ### maintainer-clean for program author only: remove ### everything make can rebuild at ### author's site ### romtol build and run test program for romtol() ### TAGS GNU Emacs tags file ### test test bibclean on BibTeX and Scribe ### bibliographies ### test-bibtex test 1,2,3 bibclean on BibTeX ### bibliographies ### test-bibtex-1 test 1 bibclean on BibTeX bibliographies ### test-bibtex-2 test 2 bibclean on BibTeX bibliographies ### test-bibtex-3 test 3 ISBN and ISSN verification ### test-scribe test 1,2,3 bibclean on Scribe ### bibliographies ### test-scribe-1 test 1 bibclean on Scribe bibliographies ### test-scribe-2 test 2 bibclean on Scribe bibliographies ### test-scribe-3 test 3 bibclean on Scribe bibliographies ### test-version test extraction of version number ### uninstall remove files installed by "make install" ### uninstall-ftp remove installed files in anonymous ftp ### directory ### ### [28-Feb-2016] -- major update for bibclean 3.00 and later ### [28-Aug-2001] -- major update for bibclean 2.12 and later ### [01-Jul-1996] -- add targets bibclean.pdf and DISTILL macro, and ### update DIST-FILES list ### [03-May-1996] -- add targets match, romtol, test-match, and ### and test-romtol, and update DIST-FILES list for ### version 2.11.3 release ### [25-Apr-1996] -- add target for bibclean.html, with associated ### support Makefile variables ### [20-Sep-1995] -- revise to use GNU autoconf and configure ### [08-Mar-1995] -- Change TARGET to TARGETS to avoid conflict with ### built-in macro on Cray systems. Add -D_POSIX_SOURCE ### to dec-alpha-osf1-c++ CC definition to work around ### bug in C++ signal.h header file on OSF/1 3.x. ### [21-Nov-1994] -- add cray-el94 target ### [11-Nov-1994] -- add sun-sparc-solaris2-lcc and sun-sparc-sunos5-lcc ### targets ### [18-Oct-1994] -- add isbn.[co] to file lists ### [16-Oct-1994] -- add strist.[co] to file lists ### [04-Jun-1994] -- update for version 2.10 ### add lint target ### [31-Dec-1993] -- final polishing of Makefile for public release ### after TUGboat publication ### [24-Sep-1993] -- original version ### ==================================================================== ### -------------------------------------------------------------------- ### Start of system configuration section. BIBCLEANNAME = bibclean prefix = /usr/uumath exec_prefix = ${prefix} bindir = ${exec_prefix}/bin srcdir = . datarootdir = ${prefix}/share datadir = ${datarootdir} bibcleandir = ${datadir}/${BIBCLEANNAME} initdir = ${bibcleandir}/${VERSION} ### This is needed only at the developer's site: FTPDIR = /u/ftp/pub/tex/bib CC = gcc CFLAGS = -I${prefix}/include ${OPT} CPPFLAGS = -I${prefix}/include DEFS = -DINITDIR='"${initdir}"' ${XDEFS} -DHAVE_CONFIG_H LDFLAGS = -L/usr/uumath/lib64 -Wl,-rpath,/usr/uumath/lib64 ${OPT} LIBOBJS = LIBS = OPT = ### Where to install the manual pages. mandir = ${prefix}/man/man1 ### Extension (not including `.') for the installed manual page filenames. manext = 1 ### End of system configuration section. ### -------------------------------------------------------------------- AUTOCONF = autoconf AUTOHEADER = autoheader AWK = mawk BIBCLEAN = bibclean${EXEEXT} ### This option is normally empty, but is used by the developer ### to test whether new options affect output. BIBCLEANFLAGS = BIBISBN = bibisbn${EXEEXT} CHECK-BIBISBN = bibisbn1 bibisbn2 bibisbn3 bibisbn4 bibisbn5 bibisbn6 bibisbn7 BIBTEX = bibtex CAT = cat ### The topt1* tests try all recognized options with a single leading dash, and ### the topt3* tests are their companions with two leading dashes. However, we ### intentionally EXCLUDE topt163 and topt363 because they hold -print-patterns ### options whose output is site-dependent. We have no tests for ### -trace-file-opening because that too is site-dependent, and also ### user-dependent. CHECK-BIBTEX = testbib1 testbib2 testbib3 testbib4 testbib5 testbib6 \ testbib7 testbib8 testcodn testisxn testopt1 testopt2 \ testopt3 testopt4 testopt5 testopt6 testopt7 testopt8 \ testopt9 testopta testoptb testoptc testoptd testopte \ testoptf testoptg testopth testopti testoptj testoptk \ testoptl testoptm testoptn testopto testoptp testoptq \ testoptr testopts testoptt testoptu testoptv testoptw \ topt101 topt102 topt103 topt104 topt105 topt106 topt107 \ topt108 topt109 topt110 topt111 topt112 topt113 topt114 \ topt115 topt116 topt117 topt118 topt119 topt120 topt121 \ topt122 topt123 topt124 topt125 topt126 topt127 topt128 \ topt129 topt130 topt131 topt132 topt133 topt134 topt135 \ topt136 topt137 topt138 topt139 topt140 topt141 topt142 \ topt143 topt144 topt145 topt146 topt147 topt148 topt149 \ topt150 topt151 topt152 topt153 topt154 topt155 topt156 \ topt157 topt158 topt159 topt160 topt161 topt162 topt164 \ topt165 topt166 topt167 topt168 topt169 topt170 topt171 \ topt301 topt302 topt303 topt304 topt305 topt306 topt307 \ topt308 topt309 topt310 topt311 topt312 topt313 topt314 \ topt315 topt316 topt317 topt318 topt319 topt320 topt321 \ topt322 topt323 topt324 topt325 topt326 topt327 topt328 \ topt329 topt330 topt331 topt332 topt333 topt334 topt335 \ topt336 topt337 topt338 topt339 topt340 topt341 topt342 \ topt343 topt344 topt345 topt346 topt347 topt348 topt349 \ topt350 topt351 topt352 topt353 topt354 topt355 topt356 \ topt357 topt358 topt359 topt360 topt361 topt362 topt364 \ topt365 topt366 topt367 topt368 topt369 topt370 topt371 \ topt372 CHECK-LATEX = testltx1.ltx CHECK-MATCH = match.in CHECK-ROMTOL = romtol.in CHECK-SCRIBE = testscr1.bib testscr2.bib testscr3.bib testscr4.bib ### This program is freely available at ftp://ftp.math.utah.edu/pub/checksum/ CHECKSUM = checksum CHMOD = chmod CMP = cmp CP = scp -p CPFLAGS = -p CUT = cut DATE = date DIFF = diff DIST-FILES = ChangeLog COPYING README Makefile.in bibclean.c bibclean.h \ bibclean.hlp bibclean.html bibclean.ini bibclean.isbn \ bibclean.key bibclean.man bibclean.pdf bibclean.ps \ bibclean.reg bibclean.txt build-all.sh ch.h chek.c \ config.hin configure configure.ac configure.sed custom.h \ delete.h do.c dbx-test.run fix.c fndfil.c isbn.c isbn.h \ isbn.tbl isbn-el-to-bibclean-isbn.awk keybrd.c keybrd.h \ match.c match.dat match.h option.c pattern.h rofvms.awk \ romtol.c romtol.dat strist.c strtol.c token.h toklst.h \ tstctype.c typedefs.h vaxvms.c vmswild.c xctype.h xerrno.h \ xlimits.h xpwd.h xstat.h xstdbool.h xstdio.h xstdlib.h \ xstring.h xtypes.h xunistd.h yesorno.h testscr2.bo2 \ testscr2.eo2 ${FILES-DOC} ${FILES-IBMPC} ${FILES-SAVE} \ ${FILES-TEST} test/plain.bst ${FILES-VMS} ${FILES-WINDOWS} DISTILL = ps2pdf DITROFF = groff ETAGS = etags EXEEXT = EXPR = expr ### On UNIX systems, the FILES-xxx lists could be generated by `find xxx ### -type f | sort`, but explicit enumeration eases portability to other ### operating systems, and ensures that we do not accidentally include ### unwanted temporary files that might be present. FILES-DOC = doc/Makefile doc/bibclean.aux doc/bibclean.bbl \ doc/bibclean.bib doc/bibclean.blg doc/bibclean.dvi \ doc/bibclean.idw doc/bibclean.idx doc/bibclean.ilg \ doc/bibclean.ind doc/bibclean.log doc/bibclean.lot \ doc/bibclean.ltx doc/bibclean.pdf doc/bibclean.ps \ doc/bibclean.sok doc/bibclean.sty doc/bibclean.toc \ doc/is-plain.bst doc/ltugboat.sty doc/path.sty \ doc/texnames.sty doc/tugboat.cmn FILES-IBMPC = ibmpc/dos/README ibmpc/dos/msc5p1/bibclean.exe \ ibmpc/dos/msc5p1/config.h ibmpc/dos/msc5p1/ibmclean.bat \ ibmpc/dos/msc5p1/ibmtest.bat ibmpc/dos/msc5p1/msc51bld.bat \ ibmpc/dos/msc5p1/msc51pth.bat ibmpc/dos/msc6p0/bibclean.exe \ ibmpc/dos/msc6p0/bibclean.map ibmpc/dos/msc6p0/config.h \ ibmpc/dos/msc6p0/ibmclean.bat ibmpc/dos/msc6p0/ibmtest.bat \ ibmpc/dos/msc6p0/msc60bld.bat ibmpc/dos/msc6p0/msc60pth.bat \ ibmpc/dos/msc7p0/config.h ibmpc/dos/msc7p0/ibmclean.bat \ ibmpc/dos/msc7p0/ibmtest.bat ibmpc/dos/msc7p0/msc70bld.bat \ ibmpc/dos/msc7p0/msc70pth.bat ibmpc/dos/tcc2p0/bibclean.exe \ ibmpc/dos/tcc2p0/config.h ibmpc/dos/tcc2p0/ibmclean.bat \ ibmpc/dos/tcc2p0/ibmtest.bat ibmpc/dos/tcc2p0/tcc20bld.bat \ ibmpc/dos/tcc2p0/tcc20pth.bat ibmpc/dos/tcc3p0/bibclean.exe \ ibmpc/dos/tcc3p0/config.h ibmpc/dos/tcc3p0/ibmclean.bat \ ibmpc/dos/tcc3p0/ibmtest.bat ibmpc/dos/tcc3p0/tcc30bld.bat \ ibmpc/dos/tcc3p0/tcc30pth.bat ibmpc/dos/tpp3p0/bibclean.exe \ ibmpc/dos/tpp3p0/config.h ibmpc/dos/tpp3p0/ibmclean.bat \ ibmpc/dos/tpp3p0/ibmtest.bat ibmpc/dos/tpp3p0/tcc30pth.bat \ ibmpc/dos/tpp3p0/tpp30bld.bat \ ibmpc/dos/wat10/wcc/bibclean.exe \ ibmpc/dos/wat10/wcc/bibclean.map \ ibmpc/dos/wat10/wcc/config.h \ ibmpc/dos/wat10/wcc/ibmclean.bat \ ibmpc/dos/wat10/wcc/ibmtest.bat \ ibmpc/dos/wat10/wcc/watcpp.bat \ ibmpc/dos/wat10/wcc/watpath.bat \ ibmpc/dos/wat10/wcc/watwcc.bat \ ibmpc/dos/wat10/wcc386/bibclean.exe \ ibmpc/dos/wat10/wcc386/config.h \ ibmpc/dos/wat10/wcc386/dos4gw.doc \ ibmpc/dos/wat10/wcc386/dos4gw.exe \ ibmpc/dos/wat10/wcc386/ibmclean.bat \ ibmpc/dos/wat10/wcc386/ibmtest.bat \ ibmpc/dos/wat10/wcc386/wat10bld.bat \ ibmpc/dos/wat10/wcc386/watpath.bat \ ibmpc/dos/wat10/wpp386/bibclean.exe \ ibmpc/dos/wat10/wpp386/config.h \ ibmpc/dos/wat10/wpp386/dos4gw.doc \ ibmpc/dos/wat10/wpp386/dos4gw.exe \ ibmpc/dos/wat10/wpp386/ibmclean.bat \ ibmpc/dos/wat10/wpp386/ibmtest.bat \ ibmpc/dos/wat10/wpp386/w386cpp.bat \ ibmpc/dos/wat10/wpp386/watpath.bat ibmpc/linux/bibclean FILES-SAVE = save/Makefile save/config.h save/config.hin save/configure \ save/custom.h FILES-TEST = test/match.in test/okay/match.err test/okay/match.out \ test/okay/romtol.err test/okay/romtol.out \ test/okay/testbib1.err test/okay/testbib1.out \ test/okay/testbib2.err test/okay/testbib2.out \ test/okay/testbib3.err test/okay/testbib3.out \ test/okay/testbib4.err test/okay/testbib4.out \ test/okay/testbib5.err test/okay/testbib5.out \ test/okay/testbib6.err test/okay/testbib6.out \ test/okay/testbib7.err test/okay/testbib7.out \ test/okay/testbib8.err test/okay/testbib8.out \ test/okay/testcodn.err test/okay/testcodn.out \ test/okay/testisxn.err test/okay/testisxn.out \ test/okay/testltx1.bbl test/okay/testltx1.blg \ test/okay/testltx1.err test/okay/testltx1.out \ test/okay/testopt1.err test/okay/testopt1.out \ test/okay/testopt2.err test/okay/testopt2.out \ test/okay/testopt3.err test/okay/testopt3.out \ test/okay/testopt4.err test/okay/testopt4.out \ test/okay/testopt5.err test/okay/testopt5.out \ test/okay/testopt6.err test/okay/testopt6.out \ test/okay/testopt7.err test/okay/testopt7.out \ test/okay/testopt8.err test/okay/testopt8.out \ test/okay/testopt9.err test/okay/testopt9.out \ test/okay/testopta.err test/okay/testopta.out \ test/okay/testoptb.err test/okay/testoptb.out \ test/okay/testoptc.err test/okay/testoptc.out \ test/okay/testoptd.err test/okay/testoptd.out \ test/okay/testopte.err test/okay/testopte.out \ test/okay/testoptf.err test/okay/testoptf.out \ test/okay/testoptg.err test/okay/testoptg.out \ test/okay/testopth.err test/okay/testopth.out \ test/okay/testopti.err test/okay/testopti.out \ test/okay/testoptj.err test/okay/testoptj.out \ test/okay/testoptk.err test/okay/testoptk.out \ test/okay/testoptl.err test/okay/testoptl.out \ test/okay/testoptm.err test/okay/testoptm.out \ test/okay/testoptn.err test/okay/testoptn.out \ test/okay/testopto.err test/okay/testopto.out \ test/okay/testoptp.err test/okay/testoptp.out \ test/okay/testoptq.err test/okay/testoptq.out \ test/okay/testoptr.err test/okay/testoptr.out \ test/okay/testopts.err test/okay/testopts.out \ test/okay/testoptt.err test/okay/testoptt.out \ test/okay/testoptu.err test/okay/testoptu.out \ test/okay/testoptu.win test/okay/testoptv.err \ test/okay/testoptv.out test/okay/testoptw.err \ test/okay/testoptw.out test/okay/testoptx.err \ test/okay/testoptx.out test/okay/testscr1.bbl \ test/okay/testscr1.blg test/okay/testscr1.err \ test/okay/testscr1.out test/okay/testscr2.bbl \ test/okay/testscr2.blg test/okay/testscr2.err \ test/okay/testscr2.out test/okay/testscr3.bbl \ test/okay/testscr3.blg test/okay/testscr3.err \ test/okay/testscr3.out test/okay/testscr4.bbl \ test/okay/testscr4.blg test/okay/testscr4.err \ test/okay/testscr4.out test/okay/topt101.err \ test/okay/topt101.out test/okay/topt102.err \ test/okay/topt102.out test/okay/topt103.err \ test/okay/topt103.out test/okay/topt104.err \ test/okay/topt104.out test/okay/topt105.err \ test/okay/topt105.out test/okay/topt106.err \ test/okay/topt106.out test/okay/topt107.err \ test/okay/topt107.out test/okay/topt108.err \ test/okay/topt108.out test/okay/topt109.err \ test/okay/topt109.out test/okay/topt110.err \ test/okay/topt110.out test/okay/topt111.err \ test/okay/topt111.out test/okay/topt112.err \ test/okay/topt112.out test/okay/topt113.err \ test/okay/topt113.out test/okay/topt114.err \ test/okay/topt114.out test/okay/topt115.err \ test/okay/topt115.out test/okay/topt116.err \ test/okay/topt116.out test/okay/topt117.err \ test/okay/topt117.out test/okay/topt118.err \ test/okay/topt118.out test/okay/topt119.err \ test/okay/topt119.out test/okay/topt120.err \ test/okay/topt120.out test/okay/topt121.err \ test/okay/topt121.out test/okay/topt122.err \ test/okay/topt122.out test/okay/topt123.err \ test/okay/topt123.out test/okay/topt124.err \ test/okay/topt124.out test/okay/topt125.err \ test/okay/topt125.out test/okay/topt126.err \ test/okay/topt126.out test/okay/topt127.err \ test/okay/topt127.out test/okay/topt128.err \ test/okay/topt128.out test/okay/topt129.err \ test/okay/topt129.out test/okay/topt130.err \ test/okay/topt130.out test/okay/topt131.err \ test/okay/topt131.out test/okay/topt132.err \ test/okay/topt132.out test/okay/topt133.err \ test/okay/topt133.out test/okay/topt134.err \ test/okay/topt134.out test/okay/topt135.err \ test/okay/topt135.out test/okay/topt136.err \ test/okay/topt136.out test/okay/topt137.err \ test/okay/topt137.out test/okay/topt138.err \ test/okay/topt138.out test/okay/topt139.err \ test/okay/topt139.out test/okay/topt140.err \ test/okay/topt140.out test/okay/topt141.err \ test/okay/topt141.out test/okay/topt142.err \ test/okay/topt142.out test/okay/topt143.err \ test/okay/topt143.out test/okay/topt144.err \ test/okay/topt144.out test/okay/topt145.err \ test/okay/topt145.out test/okay/topt146.err \ test/okay/topt146.out test/okay/topt147.err \ test/okay/topt147.out test/okay/topt148.err \ test/okay/topt148.out test/okay/topt149.err \ test/okay/topt149.out test/okay/topt150.err \ test/okay/topt150.out test/okay/topt151.err \ test/okay/topt151.out test/okay/topt152.err \ test/okay/topt152.out test/okay/topt153.err \ test/okay/topt153.out test/okay/topt154.err \ test/okay/topt154.out test/okay/topt155.err \ test/okay/topt155.out test/okay/topt156.err \ test/okay/topt156.out test/okay/topt157.err \ test/okay/topt157.out test/okay/topt158.err \ test/okay/topt158.out test/okay/topt159.err \ test/okay/topt159.out test/okay/topt160.err \ test/okay/topt160.out test/okay/topt161.err \ test/okay/topt161.out test/okay/topt162.err \ test/okay/topt162.out test/okay/topt163.err \ test/okay/topt163.out test/okay/topt164.err \ test/okay/topt164.out test/okay/topt165.err \ test/okay/topt165.out test/okay/topt166.err \ test/okay/topt166.out test/okay/topt167.err \ test/okay/topt167.out test/okay/topt168.err \ test/okay/topt168.out test/okay/topt169.err \ test/okay/topt169.out test/okay/topt170.err \ test/okay/topt170.out test/okay/topt171.err \ test/okay/topt171.out test/okay/topt301.err \ test/okay/topt301.out test/okay/topt302.err \ test/okay/topt302.out test/okay/topt303.err \ test/okay/topt303.out test/okay/topt304.err \ test/okay/topt304.out test/okay/topt305.err \ test/okay/topt305.out test/okay/topt306.err \ test/okay/topt306.out test/okay/topt307.err \ test/okay/topt307.out test/okay/topt308.err \ test/okay/topt308.out test/okay/topt309.err \ test/okay/topt309.out test/okay/topt310.err \ test/okay/topt310.out test/okay/topt311.err \ test/okay/topt311.out test/okay/topt312.err \ test/okay/topt312.out test/okay/topt313.err \ test/okay/topt313.out test/okay/topt314.err \ test/okay/topt314.out test/okay/topt315.err \ test/okay/topt315.out test/okay/topt316.err \ test/okay/topt316.out test/okay/topt317.err \ test/okay/topt317.out test/okay/topt318.err \ test/okay/topt318.out test/okay/topt319.err \ test/okay/topt319.out test/okay/topt320.err \ test/okay/topt320.out test/okay/topt321.err \ test/okay/topt321.out test/okay/topt322.err \ test/okay/topt322.out test/okay/topt323.err \ test/okay/topt323.out test/okay/topt324.err \ test/okay/topt324.out test/okay/topt325.err \ test/okay/topt325.out test/okay/topt326.err \ test/okay/topt326.out test/okay/topt327.err \ test/okay/topt327.out test/okay/topt328.err \ test/okay/topt328.out test/okay/topt329.err \ test/okay/topt329.out test/okay/topt330.err \ test/okay/topt330.out test/okay/topt331.err \ test/okay/topt331.out test/okay/topt332.err \ test/okay/topt332.out test/okay/topt333.err \ test/okay/topt333.out test/okay/topt334.err \ test/okay/topt334.out test/okay/topt335.err \ test/okay/topt335.out test/okay/topt336.err \ test/okay/topt336.out test/okay/topt337.err \ test/okay/topt337.out test/okay/topt338.err \ test/okay/topt338.out test/okay/topt339.err \ test/okay/topt339.out test/okay/topt340.err \ test/okay/topt340.out test/okay/topt341.err \ test/okay/topt341.out test/okay/topt342.err \ test/okay/topt342.out test/okay/topt343.err \ test/okay/topt343.out test/okay/topt344.err \ test/okay/topt344.out test/okay/topt345.err \ test/okay/topt345.out test/okay/topt346.err \ test/okay/topt346.out test/okay/topt347.err \ test/okay/topt347.out test/okay/topt348.err \ test/okay/topt348.out test/okay/topt349.err \ test/okay/topt349.out test/okay/topt350.err \ test/okay/topt350.out test/okay/topt351.err \ test/okay/topt351.out test/okay/topt352.err \ test/okay/topt352.out test/okay/topt353.err \ test/okay/topt353.out test/okay/topt354.err \ test/okay/topt354.out test/okay/topt355.err \ test/okay/topt355.out test/okay/topt356.err \ test/okay/topt356.out test/okay/topt357.err \ test/okay/topt357.out test/okay/topt358.err \ test/okay/topt358.out test/okay/topt359.err \ test/okay/topt359.out test/okay/topt360.err \ test/okay/topt360.out test/okay/topt361.err \ test/okay/topt361.out test/okay/topt362.err \ test/okay/topt362.out test/okay/topt363.err \ test/okay/topt363.out test/okay/topt364.err \ test/okay/topt364.out test/okay/topt365.err \ test/okay/topt365.out test/okay/topt366.err \ test/okay/topt366.out test/okay/topt367.err \ test/okay/topt367.out test/okay/topt368.err \ test/okay/topt368.out test/okay/topt369.err \ test/okay/topt369.out test/okay/topt370.err \ test/okay/topt370.out test/okay/topt371.err \ test/okay/topt371.out test/okay/tstctype.out test/romtol.in \ test/testbib1.bib test/testbib1.opt test/testbib2.bib \ test/testbib2.opt test/testbib3.bib test/testbib3.opt \ test/testbib4.bib test/testbib4.opt test/testbib5.bib \ test/testbib5.opt test/testbib6.bib test/testbib6.opt \ test/testbib7.bib test/testbib7.opt test/testbib8.bib \ test/testbib8.opt test/testcodn.bib test/testcodn.opt \ test/testisxn.bib test/testisxn.opt test/testltx1.bin \ test/testltx1.ltx test/testltx1.opt test/testopt1.bib \ test/testopt1.opt test/testopt2.bib test/testopt2.opt \ test/testopt3.bib test/testopt3.opt test/testopt4.bib \ test/testopt4.opt test/testopt5.bib test/testopt5.opt \ test/testopt6.bib test/testopt6.opt test/testopt7.bib \ test/testopt7.opt test/testopt8.bib test/testopt8.opt \ test/testopt9.bib test/testopt9.opt test/testopta.bib \ test/testopta.opt test/testoptb.bib test/testoptb.opt \ test/testoptc.bib test/testoptc.opt test/testoptd.bib \ test/testoptd.opt test/testopte.bib test/testopte.opt \ test/testoptf.bib test/testoptf.opt test/testoptg.bib \ test/testoptg.opt test/testopth.bib test/testopth.opt \ test/testopti.bib test/testopti.opt test/testoptj.bib \ test/testoptj.opt test/testoptk.bib test/testoptk.opt \ test/testoptl.bib test/testoptl.opt test/testoptm.bib \ test/testoptm.opt test/testoptn.bib test/testoptn.opt \ test/testopto.bib test/testopto.opt test/testoptp.bib \ test/testoptp.opt test/testoptq.bib test/testoptq.opt \ test/testoptr.bib test/testoptr.opt test/testopts.bib \ test/testopts.opt test/testoptt.bib test/testoptt.opt \ test/testoptu.bib test/testoptu.opt test/testoptv.bib \ test/testoptv.opt test/testoptw.bib test/testoptw.opt \ test/testoptx.in test/testoptx.opt test/testscr1.bib \ test/testscr1.opt test/testscr2.bib test/testscr2.opt \ test/testscr3.bib test/testscr3.opt test/testscr4.bib \ test/testscr4.opt test/topt101.bib test/topt101.opt \ test/topt102.bib test/topt102.opt test/topt103.bib \ test/topt103.opt test/topt104.bib test/topt104.opt \ test/topt105.bib test/topt105.opt test/topt106.bib \ test/topt106.opt test/topt107.bib test/topt107.opt \ test/topt108.bib test/topt108.opt test/topt109.bib \ test/topt109.opt test/topt110.bib test/topt110.opt \ test/topt111.bib test/topt111.opt test/topt112.bib \ test/topt112.opt test/topt113.bib test/topt113.opt \ test/topt114.bib test/topt114.opt test/topt115.bib \ test/topt115.opt test/topt116.bib test/topt116.opt \ test/topt117.bib test/topt117.opt test/topt118.bib \ test/topt118.opt test/topt119.bib test/topt119.opt \ test/topt120.bib test/topt120.opt test/topt121.bib \ test/topt121.opt test/topt122.bib test/topt122.opt \ test/topt123.bib test/topt123.opt test/topt124.bib \ test/topt124.opt test/topt125.bib test/topt125.opt \ test/topt126.bib test/topt126.opt test/topt127.bib \ test/topt127.opt test/topt128.bib test/topt128.opt \ test/topt129.bib test/topt129.opt test/topt130.bib \ test/topt130.opt test/topt131.bib test/topt131.opt \ test/topt132.bib test/topt132.opt test/topt133.bib \ test/topt133.opt test/topt134.bib test/topt134.opt \ test/topt135.bib test/topt135.opt test/topt136.bib \ test/topt136.opt test/topt137.bib test/topt137.opt \ test/topt138.bib test/topt138.opt test/topt139.bib \ test/topt139.opt test/topt140.bib test/topt140.opt \ test/topt141.bib test/topt141.opt test/topt142.bib \ test/topt142.opt test/topt143.bib test/topt143.opt \ test/topt144.bib test/topt144.opt test/topt145.bib \ test/topt145.opt test/topt146.bib test/topt146.opt \ test/topt147.bib test/topt147.opt test/topt148.bib \ test/topt148.opt test/topt149.bib test/topt149.opt \ test/topt150.bib test/topt150.opt test/topt151.bib \ test/topt151.opt test/topt152.bib test/topt152.opt \ test/topt153.bib test/topt153.opt test/topt154.bib \ test/topt154.opt test/topt155.bib test/topt155.opt \ test/topt156.bib test/topt156.opt test/topt157.bib \ test/topt157.opt test/topt158.bib test/topt158.opt \ test/topt159.bib test/topt159.opt test/topt160.bib \ test/topt160.opt test/topt161.bib test/topt161.opt \ test/topt162.bib test/topt162.opt test/topt163.bib \ test/topt163.opt test/topt164.bib test/topt164.opt \ test/topt165.bib test/topt165.opt test/topt166.bib \ test/topt166.opt test/topt167.bib test/topt167.opt \ test/topt168.bib test/topt168.opt test/topt169.bib \ test/topt169.opt test/topt170.bib test/topt170.opt \ test/topt171.bib test/topt171.opt test/topt301.bib \ test/topt301.opt test/topt302.bib test/topt302.opt \ test/topt303.bib test/topt303.opt test/topt304.bib \ test/topt304.opt test/topt305.bib test/topt305.opt \ test/topt306.bib test/topt306.opt test/topt307.bib \ test/topt307.opt test/topt308.bib test/topt308.opt \ test/topt309.bib test/topt309.opt test/topt310.bib \ test/topt310.opt test/topt311.bib test/topt311.opt \ test/topt312.bib test/topt312.opt test/topt313.bib \ test/topt313.opt test/topt314.bib test/topt314.opt \ test/topt315.bib test/topt315.opt test/topt316.bib \ test/topt316.opt test/topt317.bib test/topt317.opt \ test/topt318.bib test/topt318.opt test/topt319.bib \ test/topt319.opt test/topt320.bib test/topt320.opt \ test/topt321.bib test/topt321.opt test/topt322.bib \ test/topt322.opt test/topt323.bib test/topt323.opt \ test/topt324.bib test/topt324.opt test/topt325.bib \ test/topt325.opt test/topt326.bib test/topt326.opt \ test/topt327.bib test/topt327.opt test/topt328.bib \ test/topt328.opt test/topt329.bib test/topt329.opt \ test/topt330.bib test/topt330.opt test/topt331.bib \ test/topt331.opt test/topt332.bib test/topt332.opt \ test/topt333.bib test/topt333.opt test/topt334.bib \ test/topt334.opt test/topt335.bib test/topt335.opt \ test/topt336.bib test/topt336.opt test/topt337.bib \ test/topt337.opt test/topt338.bib test/topt338.opt \ test/topt339.bib test/topt339.opt test/topt340.bib \ test/topt340.opt test/topt341.bib test/topt341.opt \ test/topt342.bib test/topt342.opt test/topt343.bib \ test/topt343.opt test/topt344.bib test/topt344.opt \ test/topt345.bib test/topt345.opt test/topt346.bib \ test/topt346.opt test/topt347.bib test/topt347.opt \ test/topt348.bib test/topt348.opt test/topt349.bib \ test/topt349.opt test/topt350.bib test/topt350.opt \ test/topt351.bib test/topt351.opt test/topt352.bib \ test/topt352.opt test/topt353.bib test/topt353.opt \ test/topt354.bib test/topt354.opt test/topt355.bib \ test/topt355.opt test/topt356.bib test/topt356.opt \ test/topt357.bib test/topt357.opt test/topt358.bib \ test/topt358.opt test/topt359.bib test/topt359.opt \ test/topt360.bib test/topt360.opt test/topt361.bib \ test/topt361.opt test/topt362.bib test/topt362.opt \ test/topt363.bib test/topt363.opt test/topt364.bib \ test/topt364.opt test/topt365.bib test/topt365.opt \ test/topt366.bib test/topt366.opt test/topt367.bib \ test/topt367.opt test/topt368.bib test/topt368.opt \ test/topt369.bib test/topt369.opt test/topt370.bib \ test/topt370.opt test/topt371.bib test/topt371.opt FILES-VMS = vms/config.h vms/alpha/bibclean.exe vms/alpha/recomp.com \ vms/alpha/vmsclean.com vms/alpha/vmsmake.com \ vms/alpha/vmstest.com vms/vax/README vms/vax/bibclean.exe \ vms/vax/bibclean.obj vms/vax/chek.obj vms/vax/config.h \ vms/vax/do.obj vms/vax/fix.obj vms/vax/fndfil.obj \ vms/vax/getoneheader.com vms/vax/getvmsheaders.com \ vms/vax/isbn.obj vms/vax/keybrd.obj vms/vax/match.obj \ vms/vax/option.obj vms/vax/recomp.com vms/vax/romtol.obj \ vms/vax/strist.obj vms/vax/vaxvms.obj vms/vax/vmsclean.com \ vms/vax/vmsmake.com vms/vax/vmstest.com vms/vax/vmswild.obj FILES-WINDOWS = win32/bibclean.exe FIXBLG = ${SED} -e "/^You've used/,/^write/d" -e "/^This is BibTeX/,/^Database file/d" GREP = egrep GZIP = gzip ### Some systems define HOST or HOSTNAME, but others don't, so we ### generate it at compile time with the hostname utility. HOST = `hostname` ### This program is freely available at ftp://ftp.math.utah.edu/pub/sgml/sp-* HTMLNCHECK = echo ### This program is freely available at ftp://ftp.math.utah.edu/pub/sgml/htmlpty-x.y.* HTMLPRETTY = html-pretty JAR = jar LATEX = latex LN = ln LS = ls MAN2HTML = man2html MATCH = match${EXEEXT} MKDIR = mkdir -p MV = mv NROFF = nroff PROGRAMS = ${BIBCLEAN} ${BIBISBN} ${MATCH} ${ROMTOL} ${TSTCTYPE} RM = rm -f ROMTOL = romtol${EXEEXT} SED = sed SHELL = /bin/bash SRC = bibclean.c chek.c do.c fix.c fndfil.c isbn.c \ keybrd.c match.c option.c romtol.c strist.c strtol.c STRIP = strip ### Only the subdirectories with Makefiles are listed here SUBDIRS = doc TAR = gtar TAGS-FILES = bibclean.c bibclean.h ch.h chek.c config.h custom.h \ delete.h do.c fix.c fndfil.c isbn.c isbn.h keybrd.c \ keybrd.h match.c match.h option.c pattern.h romtol.c \ strist.c strtol.c token.h toklst.h vaxvms.c vmswild.c \ xctype.h xerrno.h xlimits.h xpwd.h xstat.h xstdbool.h \ xstdio.h xstdlib.h xstring.h xtypes.h xunistd.h yesorno.h TEST = test TESTBIBCLEAN = ${VM} ../${BIBCLEAN} ### For testing purposes, make sure we always have the same ### initialization files: TESTBIBCLEANFLAGS = -init-file ../bibclean.ini \ -ISBN-file ../bibclean.isbn \ -keyword-file ../bibclean.key TESTFLAGS = ${DEFS} ${CPPFLAGS} ${CFLAGS} -DTEST TESTMATCH = ${VM} ../${MATCH} TESTROMTOL = ${VM} ../${ROMTOL} TESTTSTCTYPE = ${VM} ../${TSTCTYPE} TMPDIR = /tmp TMPDIR = /var/tmp TOUCH = touch TR = tr TSTCTYPE = tstctype${EXEEXT} UNZIP = unzip VERSION = `${AWK} '/^[ \t]*version *= *"[0-9.]+", *$$/ \ { gsub(/[^0-9.]/,"",$$3); print $$3 }' bibclean.c` VERSION = 3.07 WINE = ### Use the make-time option ### ### XDEFS="-Dname1=value1 -Dname2=value2 ..." ### ### to alter table sizes in bibclean from their defaults of: ### ### -DMAXPATHLEN= # longest "/path/to/some/file.ext" or "c:\path\to\some\file.ext" ### -DMAX_BUFFER=8192 # maximum length of output buffer (does NOT limit lengths of input lines) ### -DMAX_FIELD_LENGTH=12 # maximum field name length ### -DMAX_ISBN_RANGE=2560 # maximum number of ISBN ranges ### -DMAX_KEYWORD=200 # maximum number of field names subject to lettercase change ### -DMAX_LINE=10240 # maximum line length in initialization file ### -DMAX_PATTERN_NAMES=100 # maximum different pattern names ### -DMAX_TOKEN=32760 # maximum field value length ### -DMAX_WIDTH=72 # maximum output line length ### -DSTD_MAX_TOKEN=1000 # original BibTeX maximum field value length ### -DSTD_MAX_TOKEN=5000 # for TeX Live 2003--2011 ### -DSTD_MAX_TOKEN=20000 # for TeX Live 2012--2019 ### ### Possible local customizations: ### ### -DDOI_RAW_VALID # accept DOI = "10.xxxx" values ### -DBIBCLEAN_INI=\"BIBCLEANINI\" # environment variable name ### -DBIBCLEAN_ISBN=\"BIBCLEANISBN\" # environment variable name ### -DBIBCLEAN_KEY=\"BIBCLEANKEY\" # environment variable name ### -DINITDIR='"${initdir}"' ${XDEFS} -DHAVE_CONFIG_H XDEFS = XSPLINTFLAGS = ZIP = zip ZOO = zoo #======================================================================= # Syntax and security checker settings ANTIC = antic ANTICFLAGS = CPPCHECK = cppcheck CPPCHECKFLAGS = -I. --enable=all --force --verbose FLAWFINDER = flawfinder FLAWFINDERFLAGS = ITS4 = its4 ITS4FLAGS = LINT = LINTFLAGS = -I. -b -c -h -x LINTFLAGS = -I. -errchk -h -x RATS = rats RATSFLAGS = SPLINT = splint SPLINTFLAGS = -I. \ -booltype _Bool \ -booltrue __true \ -boolfalse __false \ -bounds \ -initallelements \ +posixlib \ ${XSPLINTFLAGS} UNO = uno UNOFLAGS = -I. -w -D_Bool=int ## Set VM=wine for testing Windows build with CC=i686-pc-mingw32-gcc VM = wine VM = ### ==================================================================== .SUFFIXES: .SUFFIXES: .o .i .c .bib-new .bib-old .bib .bib.bib-new: -${TESTBIBCLEAN} ${TESTBIBCLEANFLAGS} ${BIBCLEANFLAGS} <$< >$@ .c.i: ${CC} -E -I. -I${srcdir} ${DEFS} ${CPPFLAGS} ${CFLAGS} $< 2>&1 | \ grep -v '^[ ]*$$' >$@ .c.o: ${CC} -c -I. -I${srcdir} ${DEFS} ${CPPFLAGS} ${CFLAGS} $< ### ==================================================================== all: ${PROGRAMS} BIBCLEAN-OBJS = bibclean.o chek.o do.o fix.o fndfil.o isbn.o \ keybrd.o match.o option.o romtol.o strist.o \ ${LIBOBJS} ${BIBCLEAN}: ${BIBCLEAN-OBJS} ${CC} -o $@ ${CFLAGS} ${BIBCLEAN-OBJS} ${LDFLAGS} ${LIBS} bibclean.dvi: bibclean.texi cd ${srcdir}; texi2dvi bibclean.texi ### This target converts the option descriptions from the manual pages ### to C code for inclusion in bibclean.c. The first awk command ### augments the bibclean.man file in a pipe with some small changes ### after the .TH line (which sets page dimensions) to get longer ### unhyphenated ragged-right lines without page headers, and reduces ### the option description indentation. ### ### Here are the magic nroff incantations: ### ### .pl 100i set page length to 100in ### .nr LL 7.2i set LL register (page width) to 7.2in ### .nh no hyphenation ### .na no right-adjusting ### ### That output feeds into nroff for formatting, col for removal of ### underlining and escape sequences, expand for tab removal, sed to ### backslash all quotes, and a final awk step to select the lines ### between OPTIONS and ERROR headers for conversion to C code. bibclean.h: bibclean.man -test -f $@ && ${CHMOD} u+w $@ -${RM} $@ echo '/* WARNING: Do NOT edit this file. It was created automatically' \ >$@ \ echo ' with the command "make bibclean.h" by '$$USER@`hostname` \ >>$@ \ echo ' in '$$PWD' on '`date`' */' >>$@ echo >>$@ ${AWK} '{ if ($$0 ~ /^.TH/) \ printf("%s\n.pl 100i\n.nr LL 7.2i\n.nh\n.na",$$0); \ else if ($$0 ~ /^.TP .*remove-OPT-prefixes.*/) \ print ".TP 1in"; \ else \ print $$0}' < bibclean.man | \ ${NROFF} -man | col -b | expand | ${SED} -e 's/"/\\"/g' | \ ${SED} -e 's/\\n/|n/g' -e 's/\\"/|"/g' \ -e 's/\\/\\\\/g' -e 's/|n/\\n/g' -e 's/|"/\\"/g' | \ ${AWK} '/^OPTION/,/^ERROR/ {if ($$0 !~ /^[A-Z]/) \ printf("\t\"%s\\n\",\n",substr($$0,6))}' >>$@ echo ' (const char*)NULL,' >>$@ ${CHMOD} a-w $@ ### VAX VMS help file format from bibclean.txt bibclean.hlp: bibclean.txt rofvms.awk ${AWK} -f rofvms.awk bibclean.hlp bibclean.html: bibclean.man -${CHMOD} u+w $@ ${MAN2HTML} $< ${HTMLPRETTY} bibclean.html | ${CHECKSUM} >$@.tmp ${MV} $@.tmp $@ ${CHMOD} a-w $@ ${HTMLNCHECK} $@ bibclean.info: bibclean.texi cd ${srcdir}; makeinfo bibclean.texi bibclean.i: bibclean.c ch.h config.h custom.h delete.h isbn.h keybrd.h \ match.h pattern.h token.h toklst.h typedefs.h xctype.h \ xlimits.h xstdbool.h xstdio.h xstdlib.h xstring.h xtypes.h \ xunistd.h yesorno.h Makefile bibclean.jar: subdist ${DIST-FILES} -${RM} bibclean.jar bibclean.jar-lst ${JAR} cf bibclean.jar ${DIST-FILES} -${MKDIR} bibclean-${VERSION} cd bibclean-${VERSION}; ${JAR} xf ../bibclean.jar ${JAR} cf bibclean-${VERSION}.jar bibclean-${VERSION} -${RM} -rf bibclean-${VERSION} -${RM} bibclean.jar ${LN} bibclean-${VERSION}.jar bibclean.jar || \ ${CP} ${CPFLAGS} bibclean-${VERSION}.jar bibclean.jar bibclean.o: bibclean.c ch.h config.h custom.h delete.h isbn.h keybrd.h \ match.h pattern.h token.h toklst.h typedefs.h xctype.h \ xlimits.h xstdbool.h xstdio.h xstdlib.h xstring.h xtypes.h \ xunistd.h yesorno.h bibclean.pdf: bibclean.ps ${DISTILL} bibclean.ps bibclean.ps: bibclean.man ${DITROFF} -Tps -man $? >$@ bibclean.tar: subdist ${DIST-FILES} -${RM} bibclean.tar bibclean.tar-lst ${TAR} chf bibclean.tar ${DIST-FILES} -${MKDIR} bibclean-${VERSION} cd bibclean-${VERSION}; ${TAR} xf ../bibclean.tar ${TAR} cf bibclean-${VERSION}.tar bibclean-${VERSION} -${RM} -r bibclean-${VERSION} -${RM} bibclean.tar ${LN} bibclean-${VERSION}.tar bibclean.tar || \ ${CP} ${CPFLAGS} bibclean-${VERSION}.tar bibclean.tar bibclean.txt: bibclean.man ${NROFF} -man bibclean.man | col -b | expand >$@ bibclean.zip: subdist ${DIST-FILES} -${RM} bibclean*.zip -${RM} bibclean*.zip-lst ${ZIP} bibclean-${VERSION}.zip ${DIST-FILES} ${UNZIP} -v bibclean-${VERSION}.zip >bibclean-${VERSION}.zip-lst ${LN} bibclean-${VERSION}.zip bibclean.zip || \ ${CP} ${CPFLAGS} bibclean-${VERSION}.zip bibclean.zip bibclean.zoo: subdist ${DIST-FILES} -${RM} bibclean*.zoo -${RM} bibclean*.zoo-lst ${ZOO} a bibclean-${VERSION}.zoo ${DIST-FILES} ${ZOO} v bibclean-${VERSION}.zoo >bibclean-${VERSION}.zoo-lst ${LN} bibclean-${VERSION}.zoo bibclean.zoo || \ ${CP} ${CPFLAGS} bibclean-${VERSION}.zoo bibclean.zoo ${BIBISBN}: isbn.c ${CC} -DTEST -I. ${CFLAGS} isbn.c ${LDFLAGS} ${LIBS} -o $@ check: check-setup check-ctype check-match check-romtol check-bibisbn check-bibtex \ check-latex check-scribe check-antic: -${TEST} -n "${ANTIC}" && for f in ${SRC} ; do ${ANTIC} ${ANTICFLAGS} $$f ; done check-bibisbn: ${BIBISBN} @echo "==================== begin ${BIBISBN} test ====================" ; \ cd test ; \ nfail=0 ; \ npass=0 ; \ ntest=0 ; \ ntotal=`echo ${CHECK-BIBISBN} | wc -w` ; \ ntotal=`expr $$ntotal + $$ntotal` ; \ echo ; \ echo "These checks should produce no output other than their numbers and names," ; \ echo "followed by a test summary: no failures are expected anywhere." ; \ echo ; \ for f in ${CHECK-BIBISBN} ; \ do \ ntest=`${EXPR} $$ntest + 2` ; \ printf "[%2d / %d] %s " $$ntest $$ntotal $$f ; \ test -f $$f.in && ../${BIBISBN} < $$f.in > $$f.out 2> $$f.err ; \ test -f $$f.opt && ../${BIBISBN} `cat $$f.opt` < /dev/null > $$f.out 2> $$f.err ; \ ${CMP} -s okay/$$f.out $$f.out && ${RM} $$f.out ; \ ${CMP} -s okay/$$f.err $$f.err && ${RM} $$f.err ; \ test -f $$f.out && printf " FAIL " && nfail=`expr $$nfail + 1` ; \ test ! -f $$f.out && printf "PASS " && npass=`expr $$npass + 1` ; \ test -f $$f.err && printf " FAIL" && nfail=`expr $$nfail + 1` ; \ test ! -f $$f.err && printf "PASS" && npass=`expr $$npass + 1` ; \ echo ; \ done ; \ echo ; \ echo PASS: $$npass of $$ntest tests ; \ test $$nfail -ne 0 && echo FAIL: $$nfail of $$ntest tests ; \ echo ; \ test $$nfail -eq 0 && echo ALL TESTS PASSED! ; \ echo ; \ echo "===================== end ${BIBISBN} test =====================" ; \ echo check-bibtex: ${BIBCLEAN} @echo @echo "===================== begin BibTeX test ======================" @echo @echo This test takes from 25 to 250 seconds on current and vintage machines. @echo Test times that are much longer indicate a SERIOUS problem. @echo @-cd test ; \ echo ${CHECK-BIBTEX} | wc -w > total.dat ; \ echo "These checks should produce no output other than their numbers and names," ; \ echo "followed by a test summary: no failures are expected anywhere." ; \ echo ; \ nfail=0 ; \ npass=0 ; \ ntest=0 ; \ ntotal=`echo ${CHECK-BIBTEX} | wc -w` ; \ for b in ${CHECK-BIBTEX} ; \ do \ ntest=`${EXPR} $$ntest + 1` ; \ bibfile=$$b.bib ; \ optfile=$$b.opt ; \ options=`${CAT} $$optfile` ; \ printf "[%2d / %d] " $$ntest $$ntotal ; \ echo $$b `echo $$options | ${CUT} -c -70 ` ; \ ${TESTBIBCLEAN} ${TESTBIBCLEANFLAGS} ${BIBCLEANFLAGS} `${CAT} $$optfile` $$bibfile >$$b.out 2> $$b.ert ; \ ${SED} -e ` printf 's/\015$$//' ` $$b.ert > ${TMPDIR}/$$b.ert.$$$$ ; \ ${MV} ${TMPDIR}/$$b.ert.$$$$ $$b.ert ; \ ${SED} -e ` printf 's/\015$$//' ` $$b.out > ${TMPDIR}/$$b.out.$$$$ ; \ ${MV} ${TMPDIR}/$$b.out.$$$$ $$b.out ; \ ${GREP} -v '^Compiled by' < $$b.ert >$$b.err ; \ ${RM} $$b.ert ; \ ${DIFF} okay/$$b.err $$b.err ; \ ${CMP} -s okay/$$b.err $$b.err 2>/dev/null && ${RM} $$b.err ; \ ${DIFF} okay/$$b.out $$b.out ; \ ${CMP} -s okay/$$b.out $$b.out 2>/dev/null && ${RM} $$b.out ; \ if test -f $$b.err -o -f $$b.out ; \ then \ nfail=`${EXPR} $$nfail + 1` ; \ else \ npass=`${EXPR} $$npass + 1` ; \ fi ; \ done ; \ echo ; \ echo PASS: $$npass of $$ntest tests ; \ test $$nfail -ne 0 && echo FAIL: $$nfail of $$ntest tests ; \ echo ; \ test $$nfail -eq 0 && echo ALL TESTS PASSED! ; \ echo ; \ ${RM} fail.dat pass.dat total.dat @echo @echo "====================== end BibTeX test ========================" @echo check-cppcheck: -${TEST} -n "${CPPCHECK}" && for f in ${SRC} ; do ${CPPCHECK} ${CPPCHECKFLAGS} $$f ; done check-ctype: ${TSTCTYPE} @echo @echo "===================== begin ctype test ======================" @echo -@cd test ; \ echo "NB: A failure of this test is SERIOUS. It indicates that the C library" ; \ echo " isxxx() and toxxx() functions are behaving unconventionally," ; \ echo "and the result will likely be later failure of the BibTeX testbib1 test." ; \ echo "Among systems tested for this release, OpenBSD 3.2 is known to fail here." ; \ echo ; \ echo "The following checks should produce no output other than their names." ; \ echo ; \ echo tstctype ; \ LANG=C ${TESTTSTCTYPE} | ${SED} -e ` printf 's/\015$$//' ` > tstctype.out ; \ ${DIFF} okay/tstctype.out tstctype.out ; \ ${CMP} -s okay/tstctype.out tstctype.out 2>/dev/null && ${RM} tstctype.out @echo @echo "====================== end ctype test ========================" @echo check-flawfinder: -${TEST} -n "${FLAWFINDER}" && for f in ${SRC} ; do ${FLAWFINDER} ${FLAWFINDERFLAGS} $$f ; done check-its4: -${TEST} -n "${ITS4}" && for f in ${SRC} ; do ${ITS4} ${ITS4FLAGS} $$f ; done check-latex: @echo @echo "===================== begin LaTeX test =======================" @echo @if test \( "xx${LATEX}" = "xx" \) -o \( "xx${BIBTEX}" = "xx" \) ; \ then \ echo "$@ skipped: missing LaTeX and/or BibTeX" ; \ else \ cd test ; \ echo "The following checks should produce no output other than their names." ; \ echo ; \ for f in ${CHECK-LATEX} ; \ do \ b=`basename $$f .ltx` ; \ optfile=$$b.opt ; \ echo $$b `${CAT} $$optfile` ; \ ${TESTBIBCLEAN} ${TESTBIBCLEANFLAGS} ${BIBCLEANFLAGS} \ `${CAT} $$optfile` $$b.bin > $$b.out 2> $$b.err ; \ ${SED} -e ` printf 's/\015$$//' ` $$b.err > ${TMPDIR}/$$b.err.$$$$ ; \ ${MV} ${TMPDIR}/$$b.err.$$$$ $$b.err ; \ ${SED} -e ` printf 's/\015$$//' ` $$b.out > ${TMPDIR}/$$b.out.$$$$ ; \ ${MV} ${TMPDIR}/$$b.out.$$$$ $$b.out ; \ ${CP} ${CPFLAGS} $$b.out $$b.bib ; \ ${LATEX} $$b.ltx >/dev/null 2>/dev/null ; \ ${BIBTEX} $$b 1>/dev/null ; \ ${TEST} -f $$b.blg && ${FIXBLG} $$b.blg > $$b.tmp && ${MV} $$b.tmp $$b.blg ; \ ${RM} $$b.aux $$b.bib $$b.log ; \ ${DIFF} okay/$$b.bbl $$b.bbl ; \ ${CMP} -s okay/$$b.bbl $$b.bbl 2>/dev/null && ${RM} $$b.bbl ; \ ${DIFF} okay/$$b.blg $$b.blg ; \ ${CMP} -s okay/$$b.blg $$b.blg 2>/dev/null && ${RM} $$b.blg ; \ ${DIFF} okay/$$b.err $$b.err ; \ ${CMP} -s okay/$$b.err $$b.err 2>/dev/null && ${RM} $$b.err ; \ ${DIFF} okay/$$b.out $$b.out ; \ ${CMP} -s okay/$$b.out $$b.out 2>/dev/null && ${RM} $$b.out ; \ done ; \ fi @echo @echo "====================== end LaTeX test ========================" @echo check-lint: -${TEST} -n "${LINT}" && for f in ${SRC} ; do ${LINT} ${LINTFLAGS} $$f ; done check-match: ${MATCH} @echo @echo "===================== begin match test =======================" @echo @cd test ; \ echo "The following checks should produce no output other than their names." ; \ echo ; \ for f in ${CHECK-MATCH} ; \ do \ b=`basename $$f .in` ; \ echo $$b ; \ ${TESTMATCH} < $$f >$$b.out 2>$$b.err ; \ ${SED} -e ` printf 's/\015$$//' ` $$b.err > ${TMPDIR}/$$b.err.$$$$ ; \ ${MV} ${TMPDIR}/$$b.err.$$$$ $$b.err ; \ ${SED} -e ` printf 's/\015$$//' ` $$b.out > ${TMPDIR}/$$b.out.$$$$ ; \ ${MV} ${TMPDIR}/$$b.out.$$$$ $$b.out ; \ ${DIFF} okay/$$b.err $$b.err ; \ ${CMP} -s okay/$$b.err $$b.err 2>/dev/null && ${RM} $$b.err ; \ ${DIFF} okay/$$b.out $$b.out ; \ ${CMP} -s okay/$$b.out $$b.out 2>/dev/null && ${RM} $$b.out ; \ done @echo @echo "====================== end match test ========================" @echo check-rats: -${TEST} -n "${RATS}" && for f in ${SRC} ; do ${RATS} ${RATSFLAGS} $$f ; done check-romtol: ${ROMTOL} @echo @echo "===================== begin romtol test ======================" @echo @cd test ; \ echo "The following checks should produce no output other than their names." ; \ echo ; \ for f in ${CHECK-ROMTOL} ; \ do \ b=`basename $$f .in` ; \ echo $$b ; \ ${TESTROMTOL} < $$f >$$b.out 2>$$b.err ; \ ${SED} -e ` printf 's/\015$$//' ` $$b.err > ${TMPDIR}/$$b.err.$$$$ ; \ ${MV} ${TMPDIR}/$$b.err.$$$$ $$b.err ; \ ${SED} -e ` printf 's/\015$$//' ` $$b.out > ${TMPDIR}/$$b.out.$$$$ ; \ ${MV} ${TMPDIR}/$$b.out.$$$$ $$b.out ; \ ${DIFF} okay/$$b.err $$b.err ; \ ${CMP} -s okay/$$b.err $$b.err 2>/dev/null && ${RM} $$b.err ; \ ${DIFF} okay/$$b.out $$b.out ; \ ${CMP} -s okay/$$b.out $$b.out 2>/dev/null && ${RM} $$b.out ; \ done @echo @echo "====================== end romtol test =======================" @echo ### The peculiar step using tr to prepare the .aux files is needed to ### overcome inconsistencies in the handling of backslashes by the IBM ### RS/6000 shell. The documented behavior in the SunOS 4.1.1 manual ### pages is (emphasis mine): ### All characters enclosed between a pair of single quote marks ### (''), except a single quote, are quoted by the shell. BACKSLASH ### HAS NO SPECIAL MEANING INSIDE A PAIR OF SINGLE QUOTES. A single ### quote may be quoted inside a pair of double quote marks (for ### example, "'"). ### On SunOS, HP UX, IBM 3090 AIX, NeXT Mach, and SGI IRIX, the shells ### csh, sh, bash, and ksh agree with this. However, on IBM RS/6000 ### AIX 3.2, backslashes in single quotes are untouched by csh, but ### expanded by sh and ksh. This is clearly a bug, because the IBM AIX ### INFO system hypertext node on bsh/rsh says: ### All characters, except the enclosing single quotation marks, are ### taken literally, with any special meaning removed. ### check-scribe: ${BIBCLEAN} @echo @echo "===================== begin Scribe test ======================" @echo @if test "xx${BIBTEX}" = "xx" ; \ then \ echo "$@ skipped: missing BibTeX" ; \ else \ cd test ; \ echo "The following checks should produce no output other than their names." ; \ echo ; \ for f in ${CHECK-SCRIBE} ; \ do \ b=`basename $$f .bib` ; \ optfile=$$b.opt ; \ echo $$b `${CAT} $$optfile` ; \ ${TESTBIBCLEAN} ${TESTBIBCLEANFLAGS} ${BIBCLEANFLAGS} `${CAT} $$optfile` $$f >$$b.out 2>$$b.err ; \ ${SED} -e ` printf 's/\015$$//' ` $$b.err > ${TMPDIR}/$$b.err.$$$$ ; \ ${MV} ${TMPDIR}/$$b.err.$$$$ $$b.err ; \ ${SED} -e ` printf 's/\015$$//' ` $$b.out > ${TMPDIR}/$$b.out.$$$$ ; \ ${MV} ${TMPDIR}/$$b.out.$$$$ $$b.out ; \ echo 'Bbibstyle{plain}NBcitation{*}NBbibdata{'$$b'}' | \ ${TR} BN '\134\012' >$$b.aux ; \ ${BIBTEX} $$b 1>/dev/null ; \ ${TEST} -f $$b.blg && ${FIXBLG} $$b.blg > $$b.tmp && ${MV} $$b.tmp $$b.blg ; \ ${RM} $$b.aux ; \ ${DIFF} okay/$$b.bbl $$b.bbl ; \ ${CMP} -s okay/$$b.bbl $$b.bbl 2>/dev/null && ${RM} $$b.bbl ; \ ${DIFF} okay/$$b.blg $$b.blg ; \ ${CMP} -s okay/$$b.blg $$b.blg 2>/dev/null && ${RM} $$b.blg ; \ ${DIFF} okay/$$b.err $$b.err ; \ ${CMP} -s okay/$$b.err $$b.err 2>/dev/null && ${RM} $$b.err ; \ ${DIFF} okay/$$b.out $$b.out ; \ ${CMP} -s okay/$$b.out $$b.out 2>/dev/null && ${RM} $$b.out ; \ done ; \ fi @echo @echo "====================== end Scribe test ========================" @echo check-setup: ${BIBCLEAN} ${MATCH} ${ROMTOL} ${TSTCTYPE} check-splint: -${TEST} -n "${SPLINT}" && for f in ${SRC} ; do ${SPLINT} ${SPLINTFLAGS} $$f ; done check-syntax: check-antic check-cppcheck check-flawfinder check-its4 \ check-lint check-rats check-splint check-uno check-uno: -${TEST} -n "${UNO}" && ${UNO} ${UNOFLAGS} ${SRC} check-version: Makefile @echo "Version number is ""'"${VERSION}"'" clean: clean-test clean-dist -${RM} *.aux -${RM} *.bbl -${RM} *.blg -${RM} *.dvi -${RM} *.err -${RM} *.i -${RM} *.log -${RM} *.o -${RM} *~ -${RM} \#* -${RM} configure.tmp -${RM} core test/core -${RM} ${MATCH} match.lst -${RM} ${ROMTOL} romtol.lst -${RM} testcodn.bib -${RM} testisxn.bib -${RM} testscr2.bi2 testscr2.er2 -${RM} ${TSTCTYPE} # [08-Nov-1999] Suppress subdir make to preserve distribution files # -for d in ${SUBDIRS} ; do (cd $$d ; ${MAKE} clean ) ; done clean-dist: -${RM} bibclean.jar bibclean-?.??.jar -${RM} bibclean.jar-lst -${RM} bibclean.tar bibclean-?.??.tar -${RM} bibclean.tar-lst -${RM} bibclean-${VERSION}.tar -${RM} bibclean.zip bibclean-?.??.zip -${RM} bibclean.zip-lst bibclean-?.??.zip-lst -${RM} bibclean.zoo bibclean-?.??.zoo -${RM} bibclean.zoo-lst bibclean-?.??.zoo-lst clean-test: -${RM} test/*.aux test/*.bbl test/*.blg test/*.err test/*.ert \ test/*.log test/*.out test/*.tmp clobber: clean -${RM} ${PROGRAMS} -${RM} bibclean.hlp -${RM} bibclean.ps -${RM} bibclean.txt -${RM} install.time install-ftp.time # [08-Nov-1999] Suppress subdir make to preserve distribution files # -for d in ${SUBDIRS} ; do (cd $$d ; ${MAKE} clobber ) ; done dist: bibclean.jar bibclean.tar bibclean.zip bibclean.zoo distclean: clobber -${RM} config.cache config.h config.log config.status -${RM} -r autom4te.cache -${RM} bibclean*.jar-lst bibclean*.tar-lst bibclean*.zip-lst \ bibclean*.zoo-lst # [08-Nov-1999] Suppress subdir make to preserve distribution files # -for d in ${SUBDIRS} ; do (cd $$d ; ${MAKE} distclean ) ; done -${RM} Makefile docs: bibclean.txt bibclean.hlp bibclean.html bibclean.ps bibclean.pdf chek.i: chek.c config.h custom.h match.h token.h typedefs.h xctype.h \ xstat.h xstdio.h xstring.h yesorno.h Makefile chek.o: chek.c config.h custom.h match.h token.h typedefs.h xctype.h \ xstat.h xstdio.h xstring.h yesorno.h do.i: do.c ch.h config.h custom.h delete.h keybrd.h match.h \ pattern.h token.h toklst.h typedefs.h xctype.h xstdbool.h \ xstdio.h xstdlib.h xstring.h xunistd.h yesorno.h Makefile do.o: do.c ch.h config.h custom.h delete.h keybrd.h match.h \ pattern.h token.h toklst.h typedefs.h xctype.h xstdbool.h \ xstdio.h xstdlib.h xstring.h xunistd.h yesorno.h fix.i: fix.c config.h custom.h match.h token.h typedefs.h xctype.h \ xstring.h yesorno.h Makefile fix.o: fix.c config.h custom.h match.h token.h typedefs.h xctype.h \ xstring.h yesorno.h fndfil.i: fndfil.c config.h custom.h typedefs.h xctype.h xpwd.h \ xstdbool.h xstdio.h xstdlib.h xstring.h xunistd.h Makefile fndfil.o: fndfil.c config.h custom.h typedefs.h xctype.h xpwd.h \ xstdbool.h xstdio.h xstdlib.h xstring.h xunistd.h isbn.i: isbn.c ch.h config.h custom.h isbn.h isbn.tbl xctype.h \ xstdbool.h xstdio.h xstdlib.h xstring.h yesorno.h Makefile isbn.o: isbn.c ch.h config.h custom.h isbn.h isbn.tbl xctype.h \ xstdbool.h xstdio.h xstdlib.h xstring.h yesorno.h keybrd.i: ch.h config.h custom.h xstdio.h xstring.h xunistd.h \ yesorno.h Makefile keybrd.o: keybrd.c ch.h config.h custom.h xctype.h xstdio.h xstring.h \ xunistd.h yesorno.h ### Build a test program for match() ${MATCH}: match.c romtol.o -${RM} matchx.o ${CC} -I. -I${srcdir} ${TESTFLAGS} -o matchx.o -c match.c ${CC} -I. -I${srcdir} ${TESTFLAGS} -o $@ matchx.o romtol.o ${LDFLAGS} ${LIBS} -${RM} matchx.o match.i: match.c config.h custom.h match.h xctype.h xstdbool.h \ xstdio.h xstdlib.h xstring.h yesorno.h Makefile match.o: match.c config.h custom.h match.h xctype.h xstdbool.h \ xstdio.h xstdlib.h xstring.h yesorno.h mostlyclean: clean # [08-Nov-1999] Suppress subdir make to preserve distribution files # -for d in ${SUBDIRS} ; do (cd $$d ; ${MAKE} mostlyclean ) ; done option.i: option.c bibclean.h ch.h config.h custom.h isbn.h match.h \ typedefs.h xstdbool.h xstdio.h xstdlib.h xstring.h yesorno.h \ Makefile ### When HOST, USER, __DATE__, and __TIME__ are available, ### bibclean preserves them for its version output option.o: option.c bibclean.h ch.h config.h custom.h isbn.h match.h \ typedefs.h xstdbool.h xstdio.h xstdlib.h xstring.h yesorno.h ${CC} -I. -I${srcdir} ${CFLAGS} -c -DHOST=\"${HOST}\" -DUSER=\"${USER}\" option.c ### Build a test program for romtol() ${ROMTOL}: romtol.c -${RM} romtolx.o ${CC} -I. -I${srcdir} ${TESTFLAGS} -o romtolx.o -c romtol.c ${CC} -I. -I${srcdir} ${TESTFLAGS} -o $@ romtolx.o ${LDFLAGS} ${LIBS} -${RM} romtolx.o romtol.i: romtol.c config.h custom.h xctype.h xstring.h xstdbool.h \ xstdio.h xstdlib.h Makefile romtol.o: romtol.c config.h custom.h xctype.h xstring.h xstdbool.h \ xstdio.h xstdlib.h splint: splint.log splint.log: ${SRC} *.h Makefile -${SPLINT} ${SPLINTFLAGS} ${SRC} > $@ strist.i: strist.c config.h custom.h xctype.h xstdio.h xstring.h Makefile strist.o: strist.c config.h custom.h xctype.h xstdio.h xstring.h strtol.i: strtol.c config.h custom.h xctype.h xstdbool.h xstdio.h \ xstdlib.h xstring.h Makefile strtol.o: strtol.c config.h custom.h xctype.h xstdbool.h xstdio.h \ xstdlib.h xstring.h ### Subdirectory makes needed for distribution file creation subdist: -for d in ${SUBDIRS} ; do (cd $$d ; ${MAKE} ) ; done ${TSTCTYPE}: tstctype.c ${CC} ${CFLAGS} -o $@ $? ${LDFLAGS} ${LIBS} ### ==================================================================== ### Additional targets required by GNU Coding standards Makefile: Makefile.in config.status ./config.status config.status: configure ${srcdir}/configure --srcdir=${srcdir} --no-create --config-cache configure reconfigure: configure.ac configure.sed cd ${srcdir}; ${AUTOCONF} ; ${AUTOHEADER} ### Apply needed fixup for C++ with configure ${MV} configure configure.tmp ${SED} -f configure.sed configure -${RM} configure.tmp ${CHMOD} +x configure maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." -${CHMOD} u+w bibclean.html -${RM} bibclean.html -${RM} bibclean.pdf -${RM} TAGS -${RM} configure config.hin # [08-Nov-1999] Suppress subdir make to preserve distribution files # -for d in ${SUBDIRS} ; do (cd $$d ; ${MAKE} maintainer-clean ) ; done TAGS: Makefile ${TAGS-FILES} cd ${srcdir}; ${ETAGS} ${TAGS-FILES} ### ==================================================================== install: install.time install.time: install-exe install-ini install-man ${TOUCH} install.time install-exe: uninstall-exe install-bibclean install-bibisbn install-bibclean: ${BIBCLEAN} test -d ${DESTDIR}${bindir} || ${MKDIR} ${DESTDIR}${bindir} if ${TEST} -f ${DESTDIR}${bindir}/${BIBCLEAN} ; \ then \ ${MV} ${DESTDIR}${bindir}/${BIBCLEAN} \ ${DESTDIR}${bindir}/${BIBCLEAN}.old ; \ fi -${RM} ${DESTDIR}${bindir}/bibclean-${VERSION} ${CP} ${CPFLAGS} ${BIBCLEAN} ${DESTDIR}${bindir}/${BIBCLEAN} -${STRIP} ${DESTDIR}${bindir}/${BIBCLEAN} ${LN} ${DESTDIR}${bindir}/${BIBCLEAN} ${DESTDIR}${bindir}/bibclean-${VERSION}${EXEEXT} || \ ${CP} ${CPFLAGS} ${DESTDIR}${bindir}/${BIBCLEAN} ${DESTDIR}${bindir}/bibclean-${VERSION}${EXEEXT} ${CHMOD} 775 ${DESTDIR}${bindir}/${BIBCLEAN} $(MAKE) install-bibisbn: ${BIBISBN} test -d ${DESTDIR}${bindir} || ${MKDIR} ${DESTDIR}${bindir} if ${TEST} -f ${DESTDIR}${bindir}/${BIBISBN} ; \ then \ ${MV} ${DESTDIR}${bindir}/${BIBISBN} \ ${DESTDIR}${bindir}/${BIBISBN}.old ; \ fi -${RM} ${DESTDIR}${bindir}/bibisbn-${VERSION} ${CP} ${CPFLAGS} ${BIBISBN} ${DESTDIR}${bindir}/${BIBISBN} -${STRIP} ${DESTDIR}${bindir}/${BIBISBN} ${LN} ${DESTDIR}${bindir}/${BIBISBN} ${DESTDIR}${bindir}/bibisbn-${VERSION}${EXEEXT} || \ ${CP} ${CPFLAGS} ${DESTDIR}${bindir}/${BIBISBN} ${DESTDIR}${bindir}/bibisbn-${VERSION}${EXEEXT} ${CHMOD} 775 ${DESTDIR}${bindir}/${BIBISBN} ### Although it is generally considered bad form to install ### initialization files in the same location as executable files ### (mostly because they confuse directory listings), we make an ### exception for bibclean because (a) the files are, on UNIX, `hidden' ### (by their leading dot), (b) doing so avoids the need for yet ### another hard-coded configuration directory, or else another search path, ### and (c) search paths are more flexible than fixed configuration-file ### directories. install-ini: uninstall-ini # OLD: ${CP} bibclean.ini ${DESTDIR}${bindir}/.bibcleanrc # OLD: ${CHMOD} 664 ${DESTDIR}${bindir}/.bibcleanrc # OLD: ${CP} bibclean.key ${DESTDIR}${bindir}/.bibclean.key # OLD: ${CHMOD} 664 ${DESTDIR}${bindir}/.bibclean.key # OLD: ${CP} bibclean.isbn ${DESTDIR}${bindir}/.bibclean.isbn # OLD: ${CHMOD} 664 ${DESTDIR}${bindir}/.bibclean.isbn -${TEST} -d ${DESTDIR}${bibcleandir} || ${MKDIR} ${DESTDIR}${bibcleandir} -${TEST} -d ${DESTDIR}${initdir} || ${MKDIR} ${DESTDIR}${initdir} -${TEST} ! -d ${DESTDIR}${initdir} && echo ERROR: cannot create ${DESTDIR}${initdir} && exit 1 ${CP} ${CPFLAGS} bibclean.ini bibclean.key bibclean.isbn ${DESTDIR}${initdir}/ ${CHMOD} 664 ${DESTDIR}${initdir}/bibclean.* install-man: bibclean.man uninstall-man test -d ${DESTDIR}${mandir} || ${MKDIR} ${DESTDIR}${mandir} if ${TEST} -f ${DESTDIR}${mandir}/bibclean.${manext} ; \ then \ ${MV} ${DESTDIR}${mandir}/bibclean.${manext} \ ${DESTDIR}${mandir}/bibclean.old.${manext} ; \ fi ${CP} ${CPFLAGS} bibclean.man ${DESTDIR}${mandir}/bibclean.${manext} -${RM} ${DESTDIR}${mandir}/../cat${manext}/bibclean.${manext} -${RM} ${DESTDIR}${mandir}/bibclean-${VERSION}.${manext} ${LN} ${DESTDIR}${mandir}/bibclean.${manext} ${DESTDIR}${mandir}/bibclean-${VERSION}.${manext} || \ ${CP} ${CPFLAGS} ${DESTDIR}${mandir}/bibclean.${manext} ${DESTDIR}${mandir}/bibclean-${VERSION}.${manext} ${CHMOD} 664 ${DESTDIR}${mandir}/bibclean.${manext} install-ftp: uninstall-ftp install-ftp.time install-ftp.time: dist ${TAR} tvf bibclean-${VERSION}.tar >${FTPDIR}/bibclean-${VERSION}.tar-lst ${GZIP} ${FTPDIR}/bibclean-${VERSION}.tar.gz ${CP} ${CPFLAGS} bibclean-${VERSION}.jar ${FTPDIR} ${JAR} tvf bibclean-${VERSION}.jar \ 2>${FTPDIR}/bibclean-${VERSION}.jar-lst ${CP} ${CPFLAGS} bibclean-${VERSION}.zip ${FTPDIR} ${CP} ${CPFLAGS} bibclean-${VERSION}.zip-lst ${FTPDIR} ${CP} ${CPFLAGS} bibclean-${VERSION}.zoo ${FTPDIR} ${CP} ${CPFLAGS} bibclean-${VERSION}.zoo-lst ${FTPDIR} ${LS} -l ${FTPDIR}/bibclean* ${DATE} >install-ftp.time lint: ${LINT} ${LINTFLAGS} ${SRC} uninstall: uninstall-exe uninstall-ini uninstall-man -${RM} install.time uninstall-exe: -${RM} ${DESTDIR}${bindir}/${BIBCLEAN} ${DESTDIR}${bindir}/bibclean-${VERSION}${EXEEXT} -${RM} ${DESTDIR}${bindir}/${BIBISBN} ${DESTDIR}${bindir}/bibisbn-${VERSION}${EXEEXT} uninstall-ini: -${RM} ${DESTDIR}${initdir}/bibclean.ini \ ${DESTDIR}${initdir}/bibclean.isbn \ ${DESTDIR}${initdir}/bibclean.key uninstall-man: -${RM} ${DESTDIR}${mandir}/bibclean.${manext} \ ${DESTDIR}${mandir}/bibclean-${VERSION}.${manext} \ ${DESTDIR}${mandir}/../cat${manext}/bibclean.${manext} \ ${DESTDIR}${mandir}/../cat${manext}/bibclean-${VERSION}.${manext} uninstall-ftp: -${RM} ${FTPDIR}/bibclean-${VERSION}.tar -${RM} ${FTPDIR}/bibclean-${VERSION}.tar-lst -${RM} ${FTPDIR}/bibclean-${VERSION}.zip -${RM} ${FTPDIR}/bibclean-${VERSION}.zip-lst -${RM} ${FTPDIR}/bibclean-${VERSION}.zoo -${RM} ${FTPDIR}/bibclean-${VERSION}.zoo-lst -${RM} install-ftp.time ### Prevent GNU make v3 from overflowing arg limit on SysV. .NOEXPORT: bibclean-3.07/save/custom.h0000644000156700015670000001036712111736163014535 0ustar beebebeebe#ifndef CUSTOM_H_DEFINED_ #define CUSTOM_H_DEFINED_ /*********************************************************************** This file is included by config.h, but is not part of that file because it must be protected from autoconf twiddling. Its purpose is to provide workarounds for limitations of autoconf. ***********************************************************************/ /* Make a preliminary sanity check on which pattern matching we will use */ #if defined(HAVE_REGEXP) #if defined(HAVE_RECOMP) || defined(HAVE_PATTERNS) || defined(HAVE_OLDCODE) ?? Define only one of HAVE_OLDCODE, HAVE_PATTERNS, HAVE_REGEXP, and HAVE_RECOMP #endif #endif #if defined(HAVE_RECOMP) #if defined(HAVE_REGEXP) || defined(HAVE_PATTERNS) || defined(HAVE_OLDCODE) ?? Define only one of HAVE_OLDCODE, HAVE_PATTERNS, HAVE_REGEXP, and HAVE_RECOMP #endif #endif #if defined(HAVE_PATTERNS) #if defined(HAVE_RECOMP) || defined(HAVE_REGEXP) || defined(HAVE_OLDCODE) ?? Define only one of HAVE_OLDCODE, HAVE_PATTERNS, HAVE_REGEXP, and HAVE_RECOMP #endif #endif #if defined(HAVE_OLDCODE) #if defined(HAVE_PATTERNS) || defined(HAVE_RECOMP) || defined(HAVE_REGEXP) ?? Define only one of HAVE_OLDCODE, HAVE_PATTERNS, HAVE_REGEXP, and HAVE_RECOMP #endif #endif #if !(defined(HAVE_REGEXP) || defined(HAVE_RECOMP)) #if !(defined(HAVE_PATTERNS) || defined(HAVE_OLDCODE)) #define HAVE_PATTERNS 1 #endif #endif /* Ensure that only ONE of HAVE_TERMIOS_H, HAVE_TERMIO_H, and HAVE_SGTTY_H is defined, with preference in that order */ #if defined(HAVE_TERMIOS_H) #undef HAVE_TERMIO_H #undef HAVE_SGTTY_H #else #if defined(HAVE_TERMIO_H) #undef HAVE_TERMIOS_H #undef HAVE_SGTTY_H #endif #endif /* defined(HAVE_TERMIOS_H) */ #if !defined(HAVE_TERMIOS_H) && !defined(HAVE_TERMIO_H) && !defined(HAVE_SGTTY_H) #if defined(sun) /* Sun acc compiler produces warnings from inclusion of , causing configure to conclude that it is not available */ #define HAVE_SGTTY_H 1 #endif #endif #if (defined(__LCC__) || defined(__cplusplus) || defined(c_plusplus)) /* lcc is a strictly Standard C conforming compiler. However, because of an lcc 3.4b header file bug on Sun Solaris 2.x, configure will conclude that STDC_HEADERS and HAVE_STDC should NOT be defined. We therefore override any choices made in config.h. If a C++ compiler is used, override possibly erroneous conclusions made by configure about header files and prototypes. */ #undef STDC_HEADERS #define STDC_HEADERS 1 #undef HAVE_STDC #define HAVE_STDC 1 #endif #undef ARGS #define ARGS(plist) plist #define RCSID(s) /*@unused@*/ static char rcsid[] = s; #undef VOID #define VOID void /* Although Microsoft C 6.0 and 7.0 define _MSC_VER, compiler versions 5.0 and 5.1 do not, so the only distinguishing symbol left is M_I86, which Watcom C unfortunately also defines, sigh... */ #if defined(M_I86) && !defined(__WATCOMC__) #define CONST /* bug workaround for IBM PC Microsoft C compilers */ #else #define CONST const #endif #include "xstdio.h" #if defined(_WIN32) #define OS_PCDOS 1 #define OS_UNIX 0 #define OS_VAXVMS 0 #elif defined(_VMS) #define OS_PCDOS 0 #define OS_UNIX 0 #define OS_VAXVMS 1 #else #define OS_PCDOS 0 #define OS_UNIX 1 #define OS_VAXVMS 0 #endif #if OS_PCDOS #define SEP_COMP " ;,|" /* separators between filename components */ #define SEP_PATH "\\" /* separators between directory path and filename */ #elif OS_UNIX #define SEP_COMP " ;:,|" /* separators between filename components */ #define SEP_PATH "/" /* separators between directory path and filename */ #elif OS_VAXVMS #define SEP_COMP " ;,|" /* separators between filename components */ #define SEP_PATH ":]" /* separators between directory path and filename */ /* first char is what we default to */ #endif #if defined(FREE_CAST_IS_CHAR_STAR) #define FREE(p) free((char*)(p)) #else #define FREE(p) free((void*)(p)) #endif #define IN_SET(set, c) (strchr((set), (int)(c)) != (char *)NULL) /*********************************************************************** Put any other local customizations here, when configure does not automatically generate the config.h settings that you want. Please report them back to the package author, , for inclusion in future releases. ***********************************************************************/ #endif /* CUSTOM_H_DEFINED_ */ bibclean-3.07/save/config.hin0000664000156700015670000001300014020765302015002 0ustar beebebeebe/* config.hin. Generated from configure.ac by autoheader. */ /* Define if free() is of type char*. */ #undef FREE_CAST_IS_CHAR_STAR /* Define if \a is recognized in C strings. */ #undef HAVE_ALERT_CHAR /* Define to 1 if you have the header file. */ #undef HAVE_CONIO_H /* Define to 1 if you have the header file. */ #undef HAVE_CTYPE_H /* Define to 1 if you have the declaration of `fileno', and to 0 if you don't. */ #undef HAVE_DECL_FILENO /* Define to 1 if you have the header file. */ #undef HAVE_DESCRIP_H /* Define to 1 if you have the header file. */ #undef HAVE_ERRNO_H /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the `getcwd' function. */ #undef HAVE_GETCWD /* Define to 1 if you have the `getpwnam' function. */ #undef HAVE_GETPWNAM /* Define to 1 if you have the `getwd' function. */ #undef HAVE_GETWD /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if the compiler can see an ioctl() prototype. */ #undef HAVE_IOCTL_PROTOTYPE /* Define to 1 if you have the header file. */ #undef HAVE_IODEF_H /* Define to 1 if you have the header file. */ #undef HAVE_IO_H /* Define if isatty() is available. */ #undef HAVE_ISATTY /* Define to 1 if you have the header file. */ #undef HAVE_JPIDEF_H /* Define to 1 if you have the header file. */ #undef HAVE_LIBC_H /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H /* Define to 1 if you have the header file. */ #undef HAVE_OSFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_PWD_H /* Define to 1 if you have the header file. */ #undef HAVE_REGEXP_H /* Define to 1 if you have the header file. */ #undef HAVE_REGEX_H /* Define to 1 if you have the `re_comp' function. */ #undef HAVE_RE_COMP /* Define to 1 if you have the header file. */ #undef HAVE_RMS_H /* Define to 1 if you have the header file. */ #undef HAVE_SGTTY_H /* Define to 1 if you have the header file. */ #undef HAVE_SSDEF_H /* Define to 1 if you have the header file. */ #undef HAVE_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDBOOL_H /* Define if Standard C and C++ function declarations are supported. */ #undef HAVE_STDC /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDIO_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strcspn' function. */ #undef HAVE_STRCSPN /* Define to 1 if you have the `strdup' function. */ #undef HAVE_STRDUP /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strspn' function. */ #undef HAVE_STRSPN /* Define to 1 if you have the `strstr' function. */ #undef HAVE_STRSTR /* Define to 1 if you have the `strtod' function. */ #undef HAVE_STRTOD /* Define to 1 if you have the `strtol' function. */ #undef HAVE_STRTOL /* Define to 1 if you have the header file. */ #undef HAVE_SYS_IOCTL_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PARAM_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PLEDGE_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_TERMIOS_H /* Define to 1 if you have the header file. */ #undef HAVE_TERMIO_H /* Define to 1 if you have the header file. */ #undef HAVE_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_TT2DEF_H /* Define to 1 if you have the header file. */ #undef HAVE_TTDEF_H /* Define to 1 if you have the header file. */ #undef HAVE_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the header file. */ #undef HAVE_UNIXIO_H /* Define to 1 if you have the header file. */ #undef HAVE_UTIME_H /* Define to 1 if `utime(file, NULL)' sets file's timestamp to the present. */ #undef HAVE_UTIME_NULL /* Define to 1 if the system has the type `_Bool'. */ #undef HAVE__BOOL /* Package bug-reporting address */ #undef PACKAGE_BUGREPORT /* Package date */ #undef PACKAGE_DATE /* Package name */ #undef PACKAGE_NAME /* Package string */ #undef PACKAGE_STRING /* Package tarname */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Package version */ #undef PACKAGE_VERSION /* Define to 1 if all of the C90 standard headers exist (not just the ones required in a freestanding environment). This macro is provided for backward compatibility; new code need not use it. */ #undef STDC_HEADERS /* Define to 1 if your declares `struct tm'. */ #undef TM_IN_SYS_TIME /* Define if needed to expose winsize in ioctl.h. */ #undef _ALL_SOURCE /* Define if needed with stat.h. */ #undef _POSIX_SOURCE /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `int' if does not define. */ #undef mode_t /* Define to `unsigned int' if does not define. */ #undef size_t #define SCREEN_LINES 24 #include bibclean-3.07/save/config.h0000664000156700015670000001365714162072123014474 0ustar beebebeebe/* config.h. Generated from config.hin by configure. */ /* config.hin. Generated from configure.ac by autoheader. */ /* Define if free() is of type char*. */ /* #undef FREE_CAST_IS_CHAR_STAR */ /* Define if \a is recognized in C strings. */ #define HAVE_ALERT_CHAR 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_CONIO_H */ /* Define to 1 if you have the header file. */ #define HAVE_CTYPE_H 1 /* Define to 1 if you have the declaration of `fileno', and to 0 if you don't. */ #define HAVE_DECL_FILENO 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_DESCRIP_H */ /* Define to 1 if you have the header file. */ #define HAVE_ERRNO_H 1 /* Define to 1 if you have the header file. */ #define HAVE_FCNTL_H 1 /* Define to 1 if you have the `getcwd' function. */ #define HAVE_GETCWD 1 /* Define to 1 if you have the `getpwnam' function. */ #define HAVE_GETPWNAM 1 /* Define to 1 if you have the `getwd' function. */ #define HAVE_GETWD 1 /* Define to 1 if you have the header file. */ #define HAVE_INTTYPES_H 1 /* Define if the compiler can see an ioctl() prototype. */ #define HAVE_IOCTL_PROTOTYPE 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_IODEF_H */ /* Define to 1 if you have the header file. */ /* #undef HAVE_IO_H */ /* Define if isatty() is available. */ #define HAVE_ISATTY 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_JPIDEF_H */ /* Define to 1 if you have the header file. */ /* #undef HAVE_LIBC_H */ /* Define to 1 if you have the header file. */ #define HAVE_LIMITS_H 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_OSFCN_H */ /* Define to 1 if you have the header file. */ #define HAVE_PWD_H 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_REGEXP_H */ /* Define to 1 if you have the header file. */ #define HAVE_REGEX_H 1 /* Define to 1 if you have the `re_comp' function. */ #define HAVE_RE_COMP 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_RMS_H */ /* Define to 1 if you have the header file. */ #define HAVE_SGTTY_H 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_SSDEF_H */ /* Define to 1 if you have the header file. */ /* #undef HAVE_STAT_H */ /* Define to 1 if you have the header file. */ #define HAVE_STDBOOL_H 1 /* Define if Standard C and C++ function declarations are supported. */ #define HAVE_STDC 1 /* Define to 1 if you have the header file. */ #define HAVE_STDINT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STDIO_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STDLIB_H 1 /* Define to 1 if you have the `strcspn' function. */ #define HAVE_STRCSPN 1 /* Define to 1 if you have the `strdup' function. */ #define HAVE_STRDUP 1 /* Define to 1 if you have the header file. */ #define HAVE_STRINGS_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STRING_H 1 /* Define to 1 if you have the `strspn' function. */ #define HAVE_STRSPN 1 /* Define to 1 if you have the `strstr' function. */ #define HAVE_STRSTR 1 /* Define to 1 if you have the `strtod' function. */ #define HAVE_STRTOD 1 /* Define to 1 if you have the `strtol' function. */ #define HAVE_STRTOL 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_IOCTL_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_PARAM_H 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_SYS_PLEDGE_H */ /* Define to 1 if you have the header file. */ #define HAVE_SYS_STAT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_TYPES_H 1 /* Define to 1 if you have the header file. */ #define HAVE_TERMIOS_H 1 /* Define to 1 if you have the header file. */ #define HAVE_TERMIO_H 1 /* Define to 1 if you have the header file. */ #define HAVE_TIME_H 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_TT2DEF_H */ /* Define to 1 if you have the header file. */ /* #undef HAVE_TTDEF_H */ /* Define to 1 if you have the header file. */ /* #undef HAVE_TYPES_H */ /* Define to 1 if you have the header file. */ #define HAVE_UNISTD_H 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_UNIXIO_H */ /* Define to 1 if you have the header file. */ #define HAVE_UTIME_H 1 /* Define to 1 if `utime(file, NULL)' sets file's timestamp to the present. */ #define HAVE_UTIME_NULL 1 /* Define to 1 if the system has the type `_Bool'. */ #define HAVE__BOOL 1 /* Package bug-reporting address */ #define PACKAGE_BUGREPORT "Nelson H. F. Beebe " /* Package date */ #define PACKAGE_DATE "26-Dec-2021" /* Package name */ #define PACKAGE_NAME "bibclean" /* Package string */ #define PACKAGE_STRING "bibclean 3.07" /* Package tarname */ #define PACKAGE_TARNAME "bibclean" /* Define to the home page for this package. */ #define PACKAGE_URL "" /* Package version */ #define PACKAGE_VERSION "3.07" /* Define to 1 if all of the C90 standard headers exist (not just the ones required in a freestanding environment). This macro is provided for backward compatibility; new code need not use it. */ #define STDC_HEADERS 1 /* Define to 1 if your declares `struct tm'. */ /* #undef TM_IN_SYS_TIME */ /* Define if needed to expose winsize in ioctl.h. */ /* #undef _ALL_SOURCE */ /* Define if needed with stat.h. */ /* #undef _POSIX_SOURCE */ /* Define to empty if `const' does not conform to ANSI C. */ /* #undef const */ /* Define to `int' if does not define. */ /* #undef mode_t */ /* Define to `unsigned int' if does not define. */ /* #undef size_t */ #define SCREEN_LINES 24 #include bibclean-3.07/match.h0000644000156700015670000000061007721506123013351 0ustar beebebeebe#ifndef MATCH_H_DEFINED_ #define MATCH_H_DEFINED_ typedef struct s_pattern { /*@null@*/ const char *pattern; /*@null@*/ const char *message; } MATCH_PATTERN; YESorNO match_pattern ARGS((const char *s_, const char *pattern_)); #define BIBTEX_HIDDEN_DELIMITER '\001' /* brackets inline comments in values */ /* to hide them from pattern matching */ #endif /* MATCH_H_DEFINED_ */ bibclean-3.07/xstdlib.h0000644000156700015670000000040206034343305013722 0ustar beebebeebe#ifndef XSTDLIB_H_DEFINED_ #define XSTDLIB_H_DEFINED_ #ifdef HAVE_STDLIB_H #include #else #endif #if !defined(EXIT_FAILURE) #define EXIT_FAILURE 1 #endif #if !defined(EXIT_SUCCESS) #define EXIT_SUCCESS 0 #endif #endif /* XSTDLIB_H_DEFINED_ */ bibclean-3.07/bibclean.pdf0000664000156700015670000017764314167071275014374 0ustar beebebeebe%PDF-1.1 % 2 0 obj << /Length 4762 /Filter /LZWDecode >> stream yp  `P` (4ByB,r$sKQ1 ƃhQ[$"0A'@G2# R- Fm0Hc2 6^l3B E%ҡ*FBapрr5`aV(0#speS H;zD0 @6FBMzitYi1͆ZȀQFS4 ɐ@s<'e1-PS (c9l yi7AQEC 0{qf9 L,"nȳ pP)"p( bHRAЋD6 h7D Pfb⠉ &@"fPPۆ:@9H!Qp!2,Q&LS, cx&uMTk.s5̦,2o\`&pBw K\o5b(b1L:pZV0UMxhbkDES;QĒ PKi3*퓱Ѡc8@)B@ߘ"Q5Mc1Jl{B5H é IkϨhs)H%3/MKg4:GG>.yi9%)Ȭ;`op ycx Ѹ4,f%ѬqVR(Â80fܥa37$SWIe!0'(0 LJnedQ*K)O0eOZ@ysR¢Ǝ43= HA:|j(FYc 9("O*u='5$.ךJhy zVJK%V[O$Wv5U__1 $ l4=upo 8V^n-v ZLd|k¸QHLqX'Y|nIjAd%1ܰ[c#fJL0> Jl;}.t*!)ev\Qz~? Z؍ʕK/ &uh7fUkm3iͩ|j,9|$X7gIު:+m 鰘gP"aÙTa}ÃZluWʔXBv3A6d[d :(]h0Xv2R@>a\Hjji4p ` N_SmC !-" {g:}w'نɛ lP hA i>@P lll?7fP PnGqr@JsGr_CwB䬧ic2qR00e*bpV+wB+@@ <)@xaOinÍJ0*+%`,#Q5Ha LԘV? QPcc hNz=Ŏ!'@Q= /2J<8 +1 TN{%?rMdE.?YE9-F%E4A.W_RWp}%rdG*b,cb@)cB;,<`*tH5 g/! xQ艧3$)#EdJ+M033 1q90% !{&6 8448. )# P=U| ktr4NK}^AV3W$0"g6BjpQ8 p &ā0w9Q%q9 5>F̬'BP2P;V;J>2'2^" AI=?Nn\G; ϔ )n*Q ]PSg5%^@)`8N>eBfJdo `VIÊԘ&Yncvb]pk\!̻ St|@]sF:wQuOûw^WPys~F墧xuQcF/g!^*`7cqTP~.-IiRFeq ) Z>SjGgB UX;}֕~6(烊;`2+G.ǐQ/"lsh!,s%1c39c梧IsR߃v,B(:ݑTmFX .6N|g|T*ix?6Ǧ{wVit)a:P }֣N#Pz8or7Z*<͔zI5eXwiE;,nT6]iX;1XV %|ب%I[=\U>JO2 -j{ mC)e5t8 nz>:` )bC ` Sc)i9p p8Q[}w\:H2Z W;9 :.9u rKE/T{zg@=L=U5tmf Mc_:6 +*ңr4On,!M{]N-o+m nGT|Ϟ8+NCPaP3DȃYx=ul?(Xfs˝2G 1"(`%Yc p"k(z ci6 ˭S-> /ExtGState << /GS1 7 0 R >> >> endobj 10 0 obj << /Length 4355 /Filter /LZWDecode >> stream yp  `P` (4ByB,r$sKQ1 ƃhQ[$"0A'@G2# R- Fm0Hc2 6^l3B E%ҡ*FBapрr5`aV(0#by@I'bC"qDK ZQt8eN*zɐZl4҄3c4eȀeLF#SQ& :"q: S bg8hxpkBӚr'>s9Pn1*PP7 ( pp(P9#;<ϐ:Xa\r-4jP `@77@20"+*j*xf&P؎ #`7`4J1$hR#0@@=X@;c܍/2N jZ. Uj+[`D!hkFd{3BN(8H{-_9>sΜ8/c8,20v[a!D9 l4:o5EUQQnbm4H+Ai+Aj ^ q1qJܖَwM:7/c-ձPxطTAY֡t)˩#0r ̶6p6<)8}.")ZE,s؋& 8 59c:4Ne9fG (2xK`0*p$K H +` $̞ߋڼ`gԊ>7(^ApʼnlM(`t4 N㽍$ǞӼ9C872݇a9*Ֆʤ#k77o8lCkDH~rp#«x$4(vc\Sf!Չ- ru5.jhIkfB!HX֯ 3EkS m B(L$3Ni8= *vB1JԳRA@oMc"LX `ZҬC dd1v8MI̋鉡-qCcbqe_+ŊAA8i%׸He {$$A@/8Zx.{ B7ta1^K0?]Ӄf΃C0*0I1^@ؙB u"`&d3ÝH3wڂmf:Ԇs[>TJY3iM4`âT3if a댌Q+9ǃLh p`F'K̽DsVs:a͆3tJ(tU* ( eX2I4py 浢P}:\ .{T_Ja9bP3CAfN{JiRt(S &v8Ѵp|YO!fA+-sգyq dEਗ਼tyԕXh8YhfaeFBʈ*EqkcS ̷Zyi20Ҙ/U 颦 |jLWKHSp#i:WjU ^LkdmHFܣt=Ҥ:cK n,:m6\^5P6wy%C"`r21hbfeΧv输q)qotθ+%H6X3d&S0Yj vC ~L H+!#xXз,SR(g7Gk s0BϩyoU3O ٲyaP !L!Z#MĞ\mм\&+ (<Y*|B//-KӷNMQy9-&9AiPO>1›m[4M%Sn h>^ZjZ%p <nP ^e #/B% (EDBDd̴@4f0@P ER)⤿Ğ  (PrI~.^}"\@ `H p o8MzJOB+ !(H- ' e@) \>aN $Ft9tdJ mĦFOHǠmWBF Zf`bdpkvloz4PTp+. +RF>{gm@yDC:fm@y*z)'W$H Khzb'"v'~o/J\lrDИKI ƊQߦE i \>"b@ +O$?+,P>4W@; ih0  pCfx8"a>F>: '%E"dφbo&op$1#dN [-⮄t8ޓk&`N&+.B>1FPß4R1uv> odрQU# fM1zм$L @#,*24R*o&Ȉ\cEkSE3̢i>+,;Cp!ՀB!TȤ)"tXrB: XIH%4J6oEK%T `&sj'm%AI$o &opRp(NqFh,#fj> /ExtGState << /GS1 7 0 R >> >> endobj 13 0 obj << /Length 4082 /Filter /LZWDecode >> stream yp  `P` (4ByB,r$sKQ1 ƃhQ[$"0A'@G2# R- Fm0Hc2 6^l3B E%ҡ*6 bh]4*#~TNg)M#eNaa:ME` 9N'SN@d45AI:+ImgiBt4łu fl `3 qG (74:1En1Q3 ӝ:E#oPpn C077 x69ͣ7 qp~2?uiѹK!%Ü#aRU3&ػJt1'v] GHDvoM5+:㘡YN8l $@m)i1(eFJs|bvk3Pl^4WXD| BM !@ҚgX.\a N\>\I2%)p:G rܔoQ=(6 et0͙aM>[r0*)κhx4or Ц*fNc 'p"KARw@Ñ2.K(-hm"z3-PzQ*f^1Bꄚ@D |'HRiehC>m a 3< \.rhFw5&? BЁ@oUHXI34+ whuaϙs2Vi2[XC-r+fd c@Ap4PJ$ yΣEޫ(=F^ IW@ " 2LA[$i`Dlm<_F#0L`=^H*"! 1Q]`$~YsWGC +> `D@y=.fuLlc1UVˬ36 `\ZyT!gZ 띭x0e7ϣ;apӠc&wc<!HP#Ztry(F醎 7m2y؊Zd Y(Ge5Pg>gBm ow'ꁧ?.C|=,h+ IB 3:5P5J *àj/9NKnPAC>^Ec0a9¦H"]|xW|^c `hC'PdK%THFLB pF2`cE <=n> u:UC2Aoo¬gNKk)dДMKF <pr j LviM  ȉNG&BU@Z <@ɏ+JƯxD-˪l¹Lv̟@L"0#R+B0"N';,8% 83ϊ¢eNmh|h胬""N)C"@N lz~d^@҄CD 0 @ n|OBeTe6`Ѿp~bԆO톔Ⱥg/tg 0 *lSZ R d ?$@B*4F0Hy &tf +dr`wFB ̫)gkHƤz Xl'y40$r1fW#O c"ܫNznLK.qTS×#`Phd$k m$4U $6ϪޯK⻩(]F.>jGLD?*N\b-H+aRer,/njسRv1.LrRi/2I=LSsF|ɴPb- `D/R[&d/mÂ. skO+&}P`b# Nd cC&O2rsdP!?9cR+U/ *J!r&-7&+K rt]),f/Ƣ]DS{F19.tQd rӦ*F"+M3̮FU'B%.9` #9`ʇRve%ℹKd q!Gd6,kEkV >28rbv*v&*wc`cvCe:lQT'^+fyy5]'=vz%+# .6$&Fkl6{(@nGn~&@ozHx#YB+R.j--rwvwqGr$ |=Em\d ulIuvFKBWzB*w#e`]y6`p"+EB5)E`u "?+o@E<H'+v> /ExtGState << /GS1 7 0 R >> >> endobj 16 0 obj << /Length 4151 /Filter /LZWDecode >> stream yp  `P` (4ByB,r$sKQ1 ƃhQ[$"0A'@G2# R- Fm0Hc2 6^l3B E%ҡ*6 bh]4*#k*Mpo:At4D`i:Lɓ6i9 #Ȁfz#q,es)ٹNul- Rl-FLDqIЗCeSv2ڡc42f>D) Ex @1# 6#p4 sV0i@J溁BTa״ck@64mʴ@3C,c3C6cZ0̴`ॸl~ɍ] ‡1p"ѰP`32A:CcP42<Ԧ m l܅/Q.Cxҭ#2p35m1B*h`*%Խ2KADP+UAP1 3lW # ]S;DsD(̥3k[̴ajK"S'=7%J}811$ M5c|7/=r2PT@ܔ@͕1 33t#&KC;Aj-h;Z3_!D:xrHn+T3OSIH+/b4-oMS.RW9FCkp9!FM24]1Na(RaYB gF<\7f9-Lg=.a|ZM_|7,܌ ,Ɨ_jN!ָr@!fH:" 0nl+5t%_P!Z$zbv}Pt0k.!LP"(ˡKB,) 0ԏ<`\W*`Q nCb9@4TamM54Ԁ_A[X(mDSl 0ol 00|OK f_kMʈD1x !sl .qhfLHI]ژq#,;pȄ4V | \ Do5&4hjC* \΃O·ײAY !]G ΀S*R#ECIuQ;̺cDj"cǹH0!d!d5  ȼ cC#_N}7mM\ j0F `G)ծ#`CiA~"=a9җ2i&-PkbP06Ci@3Pl^wOd&L;w$^[ya ^l=٬&'F@\~WF5&` ~*5^"ULee -Fҙc Ӝ?P%/U0YK@]G0(^7:Q*Ne 6B>lII-,ݪrB4FclqU|xmH%-DZHQ鲉6T3;CP^  ]j܎_2/8iՉҥ/@;M 턬9< 3Ef% euq6ž Ձp5#SwD"g #2\=Z:|*$2vUqeXgdh87#5Z ƌ ̱0T0ie(ATɂhEL 5JˀP\3NU:dӦxT]ڦi7e_8B xL4f1j( &8S7nr~Fnj*ZSҼ`;ܨ\Ϻ9jEȇ20czkP@sf[ciN7{\v0kfԧFM a2B,RNӚy@zzL'IfUyXRw$9*m򒁪K̯dOݴW:J1.A2@p`*ZhtSykvfeN:|{󳐱Q`FdAwvvbvKQ#2,ļj$_ XC| 9 '^ )1"[- eW^GUS\(m4Q'B`Ë1 Q%XaQ&rQz1ϥ/McLK/Xƛ,,ޥí6P񂢛4 œ5ç;²du+9L /e[Mʟ.D+x&3kSS u!9 æAt0#)]mQ[zш=$L3kh4` I'PX X2( ޅH":Cp+tfc"AR @Cu㶳OcI"F@ DZB2Zn蓬hVN0hl&ihVFjɎHP d r.$XP(^ج'B8j(b+p*,gPPAPHċj.t9kBbbfݰl rcz|d&F;`hdˊ !br hpƑ ,5p (f+Fpee@3J/n:pT)"@YMdHL4tCZreȲ" 0`0Ą4:YTcp@ʦt' ao)ClD t7J$KG]OlibN$`e NP `HFl`IXR42Cl GjSNq&"0hjBnPx;>dZJfm 1R'hY >Pi jqp7r5dm/m$rhDRnzJ1÷DlZW/ rq) 5 _;f2~%@z/:Gt7*l+z B pkdt(XhQ) 9C?BPalu5hJKRI%%nxrTM ؑm&&ت^?m( 3(fD) 8 Z}-pV hDRha fh0m m|EOTv@OZV?@,Υp3b3CLq) `@@Zb, \D?\dąlcgPӭ>;dI${%4pNtrg9 &m.s: u:PsRLcc< t@[m l@- fbR ~|?@hf@ b endstream endobj 17 0 obj << /ProcSet [/PDF /Text ] /Font << /F4 4 0 R /F6 5 0 R /F8 6 0 R >> /ExtGState << /GS1 7 0 R >> >> endobj 19 0 obj << /Length 3545 /Filter /LZWDecode >> stream yp  `P` (4ByB,r$sKQ1 ƃhQ[$"0A'@G2# R- Fm0Hc2 6^l3B E%ҡ*6 bh]4*Be$t4 %CT[0A1pj5&ӂh0 E@e =!SQQAf(Ycy, 4a5 +/eoKBo.c4ڬj D,{>uT-h52l98pڹ2)2c DA3;BѴTZS6Re|Fm6hh4^.0`4XN6:(C+H4)a|6׮7=Q9ĮUp16X1 +7;;)8sz R6b\F:~"`2 '[QVq˟ZUX<,/> I|{/3uL!2 4І|6;-7Pct*Hfc2Wy9'Jׅ3tNH"TW@α(V]|X780*kqo5¸+\Y۟l(]L/"eWADB`ivs[MF4hb0$pQdi2s*c,3ƀ5ujfD鳣t @F23Wq;e[{(5(aC> m!A*admUqG)65`\ rE|Z~wؽWD%Cg!:[&L|X|19A)k$d͔ʃ"C-3#Wm6᝞cENkBܧ0r_lvq8wOookr i j{K>gBwZAGqc `0띃#1(IVVVO̠2& 3SNWYe0U-OBbLPP91B`G1_ܤ2?Јh^|g !Cڧ%hz*|r0f$Y46!O#3};OQ>8"O5ZQnqaV;( 0xAp w)A8\&-/1Εz^ʡr;O`(}G e ~JPZ0~Lm X9'T'`͑̈`\$hZ 2Aڌ+= S aόʕ$R]S˶laEY Z) tћR3͋+F-1xHzMyY<"E))I+pB7(^#VMeLl`kf3 ]SdɂA.D!ŹմKpKYfY5YVFƜ!jի^dlemS8z4F˧:nJ6j%u"eƉJڣVXm:K7 و'hn8  6$SC- `sCxd3qmt |0fL)~qPRx)10f@P4w@,"| ` @(^p$ ` nȊH (a" ʜC:gƴP"&rzk `L (:h@dFxc} Q bpb9fPd @0LÊ qܴLKu f*20aUZ7 2C~̊BDp֋l S LU PU@o152`ZRe&#R9L6îl"iJ0&q]Q,)%$0q2G倦#KRGW'PDD/6qz9 uLC22qӱ ^ 2#{g'9Q$ qk#@W#J43-2$@DkG" 3"D$5jI?EPqU*s\n` 9smn*F:h1/U60 º+F5:/,7HNhC`@,e 38jP b endstream endobj 20 0 obj << /ProcSet [/PDF /Text ] /Font << /F4 4 0 R /F6 5 0 R /F8 6 0 R >> /ExtGState << /GS1 7 0 R >> >> endobj 22 0 obj << /Length 4456 /Filter /LZWDecode >> stream yp  `P` (4ByB,r$sKQ1 ƃhQ[$"0A'@G2# R- Fm0Hc2 6^l3B E%ҡ*6 bh]4*B)*i& _ƃB&#Yb|t28 p\0ŊiPc 9 i: )Ѩ,ӇK7 kCn37C( ڙl:QE;([xsAld xl1͠Pꎎ7%ޥ% BO(7 c[nJ:9D@7AR橣H. T`l<à< d,3@Ba8 .Ah2#p@Lr=8L.L!<9ɪcS0 kBGpb*p̓<7ʬ0@8CxΦ rP@ J9)d09N%7s2Œ4xűR2/pղP$H$"`-!HrbxYm]{M )?hEl/s^5d , n4/K" Z=πuYJ!FN,[Io 5E-rZj-h8H:[5Ƕ,ijb 36k˞Kx]qa 'G$ =_b{ jzC劆n.xb F>PR*n^kH2kh2oj{ƭ3mۀ<74%JC3AYn-[ᡀed j8^`ᆥTQv6hˎe 7@ێe2c3%Zib/|է^H2 -L 9Lxcsh`ݵʛhG F :m9R8Xs/:G@ړCu A3 Q#AjMppx NAӈcVd==YMx4}@Jlg? c' -t&ft=Ҹ`] _{P ̤RAQ)hKC-dT{si*a#2D-#cV)8Zrg#Կk8' 0\=:/g0 {@&[ &/(ʳE`ؙ|h &ֿD ]NwTO Qe P T9Hnb,Lͯ_\y41>Nb.FxqBO jBkzpyJIBrE8(vRAS00- Bf3폠 t (gMj& Qنw` ~);(p )0)+0E')^^_Iʱ6A"&XlL 9Q /K\"yHY߃joldWӌx:h&@X[:f#ɓzozgxJa-b$VQX +e<&,&%eLBZہ&,61+e('4Fh5 `ܻn0D+&XmG^ U9'&&bN2+Qu;$[b1E`C`a0F :@|}B7(< ^V=y>LqPNBgIDtǰ שP~xpf~hFGa $e?u#}\6F6XO|C' Ceb1/Rm c.R]RW9XXYk8a}i5- RRRsQQ^׀6-EPܡw2Zo}ݙ Zx(j.CM /TCXv!@&& ko LV0o1Jp@sPRI$V n6D$B4':9?af@IȤrhz T ȳ/Cc3ĜQJ TQL7Cx"OLG-. HHnlEф}d,L|c76r7dI*8- 7h傴VeTܰQ0KDNx#;c}%U<]B7 L4/|FHQnWѮyU;*SVJ\sȯ4yZiQ. ithoJЙpmS lQe-%f@ѢBKxL`UPQ ļn)P.UBv}CnB;Js^^"<{E'r2%q`DT8UFO2q/r2TJP)fTU~uu)D7  $FdSG vQd@ӱ?I >)[}3my4'1c ! cpTt#U:KDKOo:*(kqg DB:qwƢPf endstream endobj 23 0 obj << /ProcSet [/PDF /Text ] /Font << /F4 4 0 R /F6 5 0 R /F8 6 0 R >> /ExtGState << /GS1 7 0 R >> >> endobj 25 0 obj << /Length 4463 /Filter /LZWDecode >> stream yp  `P` (4ByB,r$sKQ1 ƃhQ[$"0A'@G2# R- Fm0Hc2 6^l3B E%ҡ(3MP an(1͇Si,VLAt4)g#y@m2f>!X< FQl7j"&bԗCXp7~;AhD00e`i&w#&~ 7CQy8GN!RT5thgg7!WAZ&l?!j`<l=(@;”c1/0hΊK(O2J9)d!;EB4#9<9c@6 *P@7(1,:ȫP* #(BѴãb.*2.\ᅭh/!n&oP"(JPJ:6̈ĎC$6/Db;Q#  c41 "7%Xp:s!ptR)M<m?AN\#Ī\)ꊦ,s:Q Jbro\aos1 m@! sUm,1_-cSsϏ lv4}ΫK| B(a؆$C0]ꕜ`Zidb] OQt+ ԑXìגb5Ɋiڎ[[ȃlUŜ(;p@7poyhpܵN{<*65#:˳v뻡hey꩚:fa̜(Lt/ Qc vC:k_r eRJ0:(@ ][VVkU ~%*4qAL&4w(K3$ ]8ti9p 0nxٽHѱDB@pq0JBm-H0 ?%Yb, D(p2R%=;G'#QY$tcz(Čh"3! d@Aʈ9NtgFBg&DHAFI,Ě0*({"㬳,t N.I@ TB *~`dX*N)!:~$Ug(JI0Q%D|P2.؛3,*j&Tk _h˫=`tpբ*j~8魇4B O 7$X[K{#ҦS97¤qSWaL+*S1jOp@EI:iZm)a(T p+DrKQstMmu9>DgR Yw]pkJ&M_E8l2kTD`5wUt22g2z(!dVIZ j5%1ʹ 7*"`3$਀myq`"9c)=+aO=2T&; 1 ˝,lT6؈ {i67r ȆƦ.$ڶE&s'!lо%Ӹ1D"rF8S'H!@H7!X6Pj BAje1HI0͢W ڤGGNEtYӬթCX^#!tw?NIC.[fIzc)ZzOc6`[ɂ*ҹafdd%p evVk7z1ƭzd؜ME.T k'zM c[J`dIC\9BN:\%@S**D(]RA906isݾU}\(fXXνK^`7S{fTx98˙z%߀e ya2i4Ω!QwM-&fwx#<$fn ϺTbW?zOޥ͟jǖஃGN)6%J8i  8PD< 4V{#vgcryiѷ(3jX %V)#TI*ц(DGM04 8l6q*B_Nȷ_Q8J'#7e h7Ϸ51Vm2STT~g&c#'Jh|ҁ ;z' N3 !%3/cRJ^RpN5 w%_<Q55$i+}Kci_#26\RQ8.LFHDtUΨ |HS2ґIj=D2+O"M(U/?͏&h_)]Ch7R`NF2,Qdn#kv>SiLFI4@;@aA'(IjAe ;'9XI'Mw(D}2b 368@Dl&5#4UwBh!3*|28BHo|6C92/;@P 22 Ǐ!1fG@J\ƆWH8X{ŽX>??)N\M"\qRaJܴa8 _o3Owt4b6mXî5_$$XK.unx3wew@ІXSnM$5#>WDLI../B7fВs0 ]<?NE/E_f,*j5:ڥ2eArT J+@Z1$2vF~J> 1u9eg7Gy `CuW WYMt p4rƝb ZRn0L#R3)K*g&5BA%`H:diD(LUkN3OyNS9LݓwCC%GJCH9W2y*C$7wH:sen8+]SUBpQf0r(b,cS]4*fnYB endstream endobj 26 0 obj << /ProcSet [/PDF /Text ] /Font << /F4 4 0 R /F6 5 0 R /F8 6 0 R >> /ExtGState << /GS1 7 0 R >> >> endobj 28 0 obj << /Length 3350 /Filter /LZWDecode >> stream yp  `P` (4ByB,r$sKQ1 ƃhQ[$"0A'@G2# R- Fm0Hc2 6^l3B E%ҡ(3MP FUPT4D3)ZVLrɝQE,i ',VW2 as: &/S4ue19A3"i)~NQp)yCx9K<[0_6kM:r:N26̘1c(: #2xjP$92 4¦9!D*@ACAhٴ;@7%ȍޱc4h2md7 #Ҧ#k*I`:A !9cs>CH43 k5c;4 SbPAcj2A"X(; HR#&JApn!(}1 #4$!hRl0`юdر |2\_'IL|!Kܸ+SZc`5=ŏ-68#:S8<2 ʢMgZMr e`S\M*JB ؚ @" IC !\0ab`"\  劊~Y +Pc==Y]8b؃lvg4=KЎr"p*MI9kMV6& 72%"/acEdo{ ^| 9CMrjc7Ahk,=ݾJK+Qt`:Mz Ksʅʌ# dm.yJR9 (Qiȍ㍻.7-kdm*3U.pr랧=/y]4p7MQGSoTj(`lg!{eU"K6<ʱOe@aڦY*uR#m/=ZplF^AF^QmT K4;fN6Dº듊o\h%$wӆE8OZA$ð@ ݆#Tbh]&U 2W0˘jk+!C3g5l[.Yddw Bb R tlc}g#d$nL1APb*eZƭoJ 1g K]uJAέkzOq*f1>4A4m8,>kaTRjIOچ[;H9)q27O 4GY)1'< f7 jI&7^gUU]Ö>?Q>#Rx(z:b^V!i ͩ( :[ .:lu 1 (4Ctd+Jwku]8uՔv_&TJIyp}1E%pڕ9A[R4SVw}6¨ShRLllQ}=O`Qa|"rh2ۗH+goEo87n^ʵ8b 6@^L3u{qBC8n*P,i3I-ju[+"oth1*շ) O߆Pu3@JSS1rKpV3ͪQmB-E NÜ wNFnGEb6i 5~IP 4xCb@`l` 0B6M.ɫ JO&dSb`XPvF0MT6-8>jR)"PM-BPC<~zZ@cz *Qa'o7$LA LH4 Pl*7mn6 >?hso62у2 6? ȸ8NW!H@鮞G`.̍XjR"%b9|xΩ$q4$h0G_⪂h4CPG& Zð>Ӊxۤ$m܊&H멎9&P*Co@hEBcA&Z` > /ExtGState << /GS1 7 0 R >> >> endobj 32 0 obj << /Length 2671 /Filter /LZWDecode >> stream yp  `P` (4ByB,r$sKQ1 ƃhQ[$"0A'@G2# R- Fm0Hc2 6^l3B E%ҡ*FBa`,-B (P\.%CUz`f$6&3Y2(FқQqx- `ـ× ڼt#^ D!XQAr6S&Q5MV2﮽fL߉7o )R5Aisqe]8l39Q.-lab &:\ӎ|7uݷ}ys]aXlӋl0c@@ `݃_ɬ玙Aq)&|8Cx:c*P5XCq4tԥ!UeɊE4BJB[`ÏWJ[N8)} l>c!TmSn;]Odv)2mJ4҄jp. *1AsDu 4[+'4\%9R 8UGYs 2I 'PE6E%,h؋13G,6šBn'&,OB慰:sBxo 0ĦK*yd;Q@8(i @hL7s.DJn@(!8AꍛCGHT5&ܛC(l χFLiD!LMg418^ Wx@ 465lY>x :%4APΆN;pd3P̐.px7IwL$8ת`Tݫ 7W{Bh: 1)7#cu$"!ЈAsQD\TRyjƙZOLI& C\J ҟ*ci(TGOCsոWT(ub1j7':PPLۂ IRsf[re4sdjFv8C(A%|Sa 0i%ʾh{u4 څ k<؀n kf6yҖi\κs.Jk4UһJY{zPmgDBJE C,ɔ2A> GVʆ AgV*K^ zyVp <Maf',d)Eci~||OB=D oVJA3UA] ~\mgH4B j3Ͽ+a1SvBBp&6Q Z д(9߾g֔췫ȦÀoXlxxhoc ƍAMTbok! wq!?#l▂i%vK . O4 X+qo*c+gpN&W ЇVγw2>n8> /ExtGState << /GS1 7 0 R >> >> endobj 35 0 obj << /Length 3928 /Filter /LZWDecode >> stream yp  `P` (4ByB,r$sKQ1 ƃhQ[$"0A'@G2# R- Fm0Hc2 6^l3B E%ҡ*FBa`,-B$6%CUz &#ABBy@mΙDc4Dәa A޻Sł5&w )&N6t4r6qFuaPnJe| (P\.1x.? e2Q`0ǀ< #6,6< 4 ~*z@-䢷c9cH9΃7(1-0@֎#1N48C(0K48AJ{|κ쇼+. 4o[=&pbTk0# 9 CS"50pZe8K.A+7ɯ C}2 !dr[4̆&r5A'*R@H9@X: QPΤjlH#  1˅4Hy EN@tTPcCNf A58' 4C0:SP0:!Ɉr<ܬ(tjk*JϪ0\@p>^gUA`ȘPQx98r6G#p778+,A"|cE +`mvA_PCD64JXΎm7J5._{.nx%0d}s{L ˚S#%3`#B_]L!o8(Q//e ނfw9NlO6M^lMA9 ZT7%E(xo62% $ǝACH"fiIQA4:#4AH# !At*8}ldN4Cb`PH}#:Q A-$☼aiE`N*aOȢ(c#Ǵ,H)2hTW 6Ԭwe'PPo^j=lR.[Qv8jI.ZY ^ ˰2=)DzDNT(%)vK1tO: <"E< AP &T1Nj h(#Cg(@y i;g A("e -#?t=bJU.TšКqFN aL qUBҊ=mJ.!D88+B GrT:gEa Љ_^BHA`* ZSj6iΞ-uJS(C v23!\D3к__,d+HT 7 Yi“ۑg*wj^F+HR^eʉ% f;GЄLӻB `܎ #j]*czXp p9W"ӐEF(Q|]aφ&3 9 Guq/84B{]Wfg2_e#u>+fybA"۾kiĒ1, A:O9#Jf`JSL9LF?{W_`]#/弽LCYH[e^6rJ2mu!_MOݜ"6A|b--N [ %w#($v͋6H:ê92İs(v@>ц=Vl0%RGI {1iX!h [lɬ#{gA+#^Akz7Vz#Db0Z/h|Ӓ3ojxVD^`tzlh|( ("OH;J d)C|@ .U^U~~~Ah&#8PeoESypu{E'J]w0ܿh[1IY>'@# *:|Ӯn,688q}wvB!׿^N:l9|>8v!JuZ_dM~IFȃs8`%F̺4wxSb9)~*%DL&#o<1ojp1C$`F@ ΄tJ:.BY5hG:>N4qEF$fEHdJ6i Gn[H^%x~dT)n6`\B*lnL. +ΒO;/@/߀ 貼.o/r)r )!Η"pF:/v/I&f^Q ŖB = 4:%nŚfnIpbyzEci (JcP@d x6EZ0[bZ q_1fkMr6 X4b~$\;&1ln/n KJ$K0 l+Ơ RPv K+C)$~1(q*`,hnlFB/O ED<+C)q#mN6q}q?hDvbc$(P7&a)}QDxD haĎXɪ@ڋ J*DԠdR+˱ f6/nf@f*ԹΰG=CzՑB4D&S33x3U;\3&+w n[AQuS_a,8n۲w"{lOacn;,@1%Ԙp1%I'QΠZ+ꎑz*uY_337gy| @6̏'Ìc8DPd5i`O2N֞WB {\X$[X{X#Y@Y9Y5ZUn[[,4V@@ꈵS_ǻic\+\]A>D<Tu8ePPRM53^U震M+q0ͮ0pB/$.G@K|6rqf,K;#'mhvhÐ\b>@@Fʢg`Ag ' 6O6G)0G>E(V9$.b؀P _/,d a< rfI endstream endobj 36 0 obj << /ProcSet [/PDF /Text ] /Font << /F2 30 0 R /F4 4 0 R /F6 5 0 R /F8 6 0 R >> /ExtGState << /GS1 7 0 R >> >> endobj 38 0 obj << /Length 3901 /Filter /LZWDecode >> stream yp  `P` (4ByB,r$sKQ1 ƃhQ[$"0A'@G2# R- Fm0Hc2 6^l3B E%ҡ*FBa`h- IaRl(1 ',@=tDɈB j_l(P"1lnm u ;CJfLja8U- (@2Yz tW>`. ٴh2)g#y@m2f?p2NR쮆B9#2 x@ل 9`<9 JP#2:(1ݩَ` j溥kF0b,2n#1!p@2P)J 8)4ɍP7 )d1Fj `@1 : DC PRc Q'+qcJ1 H3O(:D 9* S 8J3DJ!@B4 -"NCndOt89Ƴ20D#Kf94u]#+\T{E8EM8H[C:8 _WJYo.飰pjhJ%6 1 t./@r]t4\zVLbNv̌LNa"$ px*R#PFXw÷lK"W"#W)(XJz)Eb HqV ӓA}f렌cxEIne 5 n暆nL'}F@SPd]cHW3 ҊU<XS)Mg hYxO`,ɴЍYmMZNTG*e\)SUcp0/JLԥA[qMa1{z3fʹ8 =!앺y)EnsVIB]! w OAV\X M/(bE?nzRn@o^u`d= ӎ( *ih+"9V9ur#صu ^z "Xc#EYBו)JV+LT\̪0|ifRPZD0B{]JNeMYG !\h+7{!LO« rs @EOɉɷߘ!;_@dD4 BٲѴ*2~CF8f6 4֭ ʶ U R1rTj<2: (ƌ<U p6@9PC9&pӞ*p( l`AA;? v۫pk7f$pRLofc.R7;(SC8njTO͢w<`c / P.DWu} ` 26u860"RZR?(wVh(Ԧ)yR-13 ` ƸApd .Tpu"`: }T92킙rILh( e)MSNsnzЇ]c VKO||BB0\ l"'iͤ>AY7 =^+Z@x[LO +,C 6?%cpndlL (6DDL =NN(a笈FzNl=&JNm$"P&B4tD  *h@  "| f0G$"bB< VȾiw xİLgfzg媎6jnv.ƀPt0)rFcpF,>pށ--Y"&H޹[ :4 ‘T Vb *f.p ++1hnO5΀c΂{jV xڋD Pa,ZxSF/ECH -pf), \o DyxpܤN@=7$xdxиnsZh n'R̅iN% :ڱHCp`@넾}+v *BM ;%hb"УHޠP Xj)H`bpjn@b,(L "@$ 'B'6iHJ& ` `I2 1jyB G^ƶ"br &- cDE4eD CrW.PVJ6Ƃ,V'`5ei7/* k$t-N"Hbe"&ȸB0/ʬ1Hk-!ж GTQѓ;pzu9;@ /$rHAs[[@Pe0K ugZ|gpAQ]ds G$ NNS$Cl d =2+XD**T +tn>KFZnQ_ `A H|ǠT窺= pPBΝ:BXJDD7ue.E 1MiZOkTcf MjDf#Dlb§@eQi*He R+3a7ήNC D#fjʯ\<@PT)m0%LlQTdI'pW~XY PsYyp<@P^=eg#Myp{ô7TF捷șx7Hbq0@&j,BQY@,d0<#,^5|l endstream endobj 39 0 obj << /ProcSet [/PDF /Text ] /Font << /F2 30 0 R /F4 4 0 R /F6 5 0 R /F8 6 0 R >> /ExtGState << /GS1 7 0 R >> >> endobj 43 0 obj << /Length 3076 /Filter /LZWDecode >> stream yp  `P` (4ByB,r$sKQ1 ƃhQ[$"0A'@G2# R- Fm0Hc2 6^l3B E%ҡ(3MP (Rl($Aߊ̧3y e0⎆(o:qmɈ cLqAI՚v'sN3):LTsX-ao4QQA^p6h? 4VL&/T`,h9+00;`8+N6KAhj@A\&IҀʡDP9!s'd1*cḨAfTC83V<2 P84pp!hݷ[\PAHo"]NS(u[ N7`Ҍ8JcB;9đ4P7:JJJa!l*V>&ڳr82xx $4gHPY͠2?v_;U=،m{!4RYk5:p 9\ռ0bCeJ&yw3ue:`o`R`>ZR.SffFrgcj?.hDNTJ `TV dPotSd2i`QicOZ p6AOjXx@CdF5ί%f?/d4HENC1Ll @DGd 1C+±D7DBp xCF>4+GBP#K f" CK Z9J D*k1O~; #hèK*dͲhD$F#n^ >X־H"lmB+6CGŀ ↇ!a#c|e"iJIю;$/ l`hd$IRp"$p'NKE8M4 Ir0lf,`o,92ɮk?Dӆr6#f1SrpP ^X#2)!!"l#&f2-$('$rD+n#2J[$OC,[& $+@ɀPNj+pKH$7+ʢZl@&C p(&* kfaLhIeBPCH nd+"1olP4 d>r/L>L 8^7_GLQ%6|̃.NI2PKɕ "Ϊr_b 3qΘ f/ؙ endstream endobj 44 0 obj << /ProcSet [/PDF /Text ] /Font << /F2 30 0 R /F4 4 0 R /F6 5 0 R /F8 6 0 R >> /ExtGState << /GS1 7 0 R >> >> endobj 46 0 obj << /Length 2909 /Filter /LZWDecode >> stream yp  `P` (4ByB,r$sKQ1 ƃhQ[$"0A'@G2# R- Fm0Hc2 6^l3B E%ҡ(7E1tШDCySMSi>LY &(ě&.S$>`|ZvEӮtEsw`6f7H@o:J㡇(0|9ѫ;NWII &JI\ FS yvNua j X@ű07A9 k`!0x'[3k̺LAC0P:N@5Mc7] q7an0)cҦ#@¦ qQ(Ctrs$IS[D,!>8 $H'MoPCC,tY,C),CP94n$04 ¨@nH:pZ:d65E5;1;k20ڶ:U [?Fa:1HŐޱe3t0yMs]ZLD, †&IzpJ Įx BpjH=sK1JP9̣L,* MfƔܐt>: s0!/b%xRbRi;:")*Mܾ!b @a0gq8'oq[X*r!@i*"O9'I R@bxR- & }p0"' ''"Ϥ' qεSKn9"bXjbઞc(h*Z++'P`,sMD>bxL!bS )*[ p&ʣzA›zab_@o *CfM7.2(3d[PЁA Ԧw WG-J r@<7$ `w4: QPJitNKDȑH)?XG+!J.)1@ҏhiOAs1 O*%L7 . G,Ȑ 8sʀ@ 3G y&4#^&3mK* J0A 5;3IC>:R[U# L 0)CZJ8 2jV-P8FX f Ԍ( u) 'H58p=MG~d=!,; ;#;! `Bρ3PhBPnK$N T:+`ʀ9f դS:<4\rV`𜨔7";X4 *{GlF}ViOӥV V߻}U0ڬƩ!lԣUO;KpԤը \''d-p@'~5h >?@2RRm<ͼӾ K!U`^`Ƙg zL#^ p$Ǒf0;H0S= UӴeDr2733'"̳ P8\O2=@ko)PcIP&q:ped\tYNlO 5;q&Qxd:s;00RR 1=A(G1[x3ڤÜT9K% x:#TYޟv1&4F@UIԕ9j(F^*¡㊜ED>}B\cMRJgĭ,JqbF^z̲J.|lni~&`WB]0e1x+#'qKXZwX/!< ipXKb~l߮ qU4BQ@ƝͰ6eD_ABW*aXKҧiS~w W=y]{}|>cpzVqʨ*_V[;i LgcDG ?,.6-Z/1|m&rh#h2 dPv(Z @+;" = ʆ` F" dZc jC"3b\lfdAiڦ6r"@bK b endstream endobj 47 0 obj << /ProcSet [/PDF /Text ] /Font << /F4 4 0 R /F6 5 0 R /F8 6 0 R >> /ExtGState << /GS1 7 0 R >> >> endobj 49 0 obj << /Length 3964 /Filter /LZWDecode >> stream yp  `P` (4ByB,r$sKQ1 ƃhQ[$"0A'@G2# R- Fm0Hc2 6^l3B E%ҡ(3MP,*Mr )Lo7C)n1;[0Apb6AB ! JT" Bn L"HآwD1ar<mk#A[Fub/4M=Z0Ku>n l1 H3

מYߚ# cF3y J)I2D3J@6L'gh&a&+՜kPr` T @pn]0Cy^D4PP/,Dv6|y$R: pAep-Q,D2CZpXL6/[=Oj1 @f `jZA5/ UwR*G<5&h 6"֚"q.T]$Z|?tC `t#LGF A>G j'AJeǸ ryRg~R>" /1v+gl 3" ھͺ{<3d|ȥs^9AsEPs4U` ݹL9g%N^V'MF8dME"gC6guWQCRIPWSTV%.ؽ\1*o aeN*Twf/"7 QM&4m Gj|saeN80fĩҫ6l {:%u[c‹][_Jd} v`h:m͗ 87ҩ]iPNˈeOZpSB933ޗS~.,KtRY[Y %4dY5=WJmj]` R[#O"Ǫ1`:o=I4O\iyv6,Uqp߃,F id ʤ_³@=$E#JbB&ObCT9bj_yf!60 kXbdv`PPvόA&JRlE"mPLFTBe0 A6HЩ6pzuNhF*!COnQ>jc85bp@(@EpO s Ϫ :zLMmv䗤.2 а&!fp d/"'q1Q1*–DMT`4'[^{@\eY, Z"[̠٤/b0.n-4NK BpCN:4:aƵp"P-P"gP ޠNܢt8Z& $ nƃ1|1%:rQ+ f=' 2 *`GHB}! f'~ T1 \!czGo*`d@r8"N0%&槊"ƨ dL j@C \Z4Ca&Fd5/.KԮD]-DN/B`fǤB (UI'"w.B 3m5 ӫB/ &18`:cfјh3.o;6'h{B3S8rfY3: \@F$;& 5#Js+b2=m6t. 42s:Z=r-Ӛ ` P:Sb= denK?2_?.8eD ]KJ\@V%fV_#ժC&'dle겐-PVwwMd0g|fbk7h/s@f leeMΠLNM$> /ExtGState << /GS1 7 0 R >> >> endobj 52 0 obj << /Length 2782 /Filter /LZWDecode >> stream yp  `P` (4ByB,r$sKQ1 ƃhQ[$"0A'@G2# R- Fm0Hc2 6^l3B E%ҡ*^. јhT"ByL\)*i& +Ѐ[0A`7%ӂR2 sfK)2spt00S'd@ t:D.XA$Io9A;WSCApQY2 Ic9H4: 쇲*&7A \SDK9$SwBB~a yO2Pw  ҁxO{n͓8J`7VRRg B!/ØBz %B4P2YApbwFLp( W?0'0*$Pby{ =6|1;R$BR',7H]#iO6Ihq&#|MĈ| KI 2!DIlaoJFفS&Zi&ivޙ9 H&LtS /`[qlV9ZZ@S.:CX,Y[yeL8Z]wpԧÖJZ̬"L ؂`EReĸcROb`hkuF<+ J"8Eb 1%8'{ፒsPOZgNБpi P$(hˀ:%e ℀\0)M6rC-@uh1B PSADC =G]3bQ@ROf,h!Ή^!0!$ PaLGJAR:RNM=00H~T TX U%LP^MpW4S4S``:_wQgRkUߍo7NX" \ c ]t' eX8"lAG,m,w:TI x9Qx A3}:;]wR\R^2HfwH6iP[G YkECXPG^x_ G `_-| t×S/t0m[{(*a9^}g=a 0E!$)!mKITo޾S.m?r`08ˡ9"gNg}SR.Ea[~*# /(@(L `h Ѐ@$D*$OO\g1L\N@ @A.f–gH-h( )")y> /ExtGState << /GS1 7 0 R >> >> endobj 55 0 obj << /Length 898 /Filter /LZWDecode >> stream yp  `P` (4ByB,r$sKQ1 ƃhQ[$"0A'@G2# R- Fm0Hc2 6^l3B E%ҡ*FBa`h- IaRm8Dyf< 'AֵK \,(7998Gl4͍$0ぅO#eل[7o v2 Ypr2 zc!i7b.O6rg?AAO*NCmۅ(O0@E+N)Jdֵ 1]2 9ڡdO YܱeH1ÏT}F$1B9 ;:#@1u3E3Qtwc`1SUm^;p6=#<4rc'#7H,ˬm.ŹZEƭ<Ϭ$](PN H:lfH7LT`1Ft +)6qE/M4Uuo]W?vla*!!Ar2/jnl;om endstream endobj 56 0 obj << /ProcSet [/PDF /Text ] /Font << /F2 30 0 R /F8 6 0 R >> /ExtGState << /GS1 7 0 R >> >> endobj 57 0 obj << /Type /Halftone /HalftoneType 1 /HalftoneName (Default) /Frequency 60 /Angle 45 /SpotFunction /Round >> endobj 7 0 obj << /Type /ExtGState /SA false /OP false /HT /Default >> endobj 30 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /Encoding 58 0 R /BaseFont /Courier >> endobj 4 0 obj << /Type /Font /Subtype /Type1 /Name /F4 /Encoding 58 0 R /BaseFont /Times-Italic >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /Name /F6 /Encoding 58 0 R /BaseFont /Times-Bold >> endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F8 /Encoding 58 0 R /BaseFont /Times-Roman >> endobj 58 0 obj << /Type /Encoding /Differences [ 0/asciicircum/asciitilde/Scaron/Zcaron/scaron/zcaron/Ydieresis/trademark /quotesingle/Euro 94/circumflex 126/tilde 128/quotesinglbase/guillemotleft/guillemotright/bullet /florin/fraction/perthousand/dagger/daggerdbl/endash/emdash/ff /fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut /dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe /lslash/quotedblbase/OE/Lslash 164/currency 166/brokenbar 168/dieresis/copyright /ordfeminine/guilsinglleft/logicalnot/minus/registered/macron/degree/plusminus /twosuperior/threesuperior/acute/mu 183/periodcentered/cedilla/onesuperior/ordmasculine /guilsinglright/onequarter/onehalf/threequarters 192/Agrave/Aacute/Acircumflex/Atilde /Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis /Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute /Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex /Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde /adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis /igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute /ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex /udieresis/yacute/thorn/ydieresis ] >> endobj 1 0 obj << /Type /Page /Parent 8 0 R /Resources 3 0 R /Contents 2 0 R >> endobj 9 0 obj << /Type /Page /Parent 8 0 R /Resources 11 0 R /Contents 10 0 R >> endobj 12 0 obj << /Type /Page /Parent 8 0 R /Resources 14 0 R /Contents 13 0 R >> endobj 15 0 obj << /Type /Page /Parent 8 0 R /Resources 17 0 R /Contents 16 0 R >> endobj 18 0 obj << /Type /Page /Parent 8 0 R /Resources 20 0 R /Contents 19 0 R >> endobj 21 0 obj << /Type /Page /Parent 8 0 R /Resources 23 0 R /Contents 22 0 R >> endobj 24 0 obj << /Type /Page /Parent 8 0 R /Resources 26 0 R /Contents 25 0 R >> endobj 27 0 obj << /Type /Page /Parent 8 0 R /Resources 29 0 R /Contents 28 0 R >> endobj 31 0 obj << /Type /Page /Parent 8 0 R /Resources 33 0 R /Contents 32 0 R >> endobj 34 0 obj << /Type /Page /Parent 8 0 R /Resources 36 0 R /Contents 35 0 R >> endobj 37 0 obj << /Type /Page /Parent 41 0 R /Resources 39 0 R /Contents 38 0 R >> endobj 42 0 obj << /Type /Page /Parent 41 0 R /Resources 44 0 R /Contents 43 0 R >> endobj 45 0 obj << /Type /Page /Parent 41 0 R /Resources 47 0 R /Contents 46 0 R >> endobj 48 0 obj << /Type /Page /Parent 41 0 R /Resources 50 0 R /Contents 49 0 R >> endobj 51 0 obj << /Type /Page /Parent 41 0 R /Resources 53 0 R /Contents 52 0 R >> endobj 54 0 obj << /Type /Page /Parent 41 0 R /Resources 56 0 R /Contents 55 0 R >> endobj 8 0 obj << /Type /Pages /Kids [1 0 R 9 0 R 12 0 R 15 0 R 18 0 R 21 0 R 24 0 R 27 0 R 31 0 R 34 0 R] /Count 10 /Parent 40 0 R >> endobj 41 0 obj << /Type /Pages /Kids [37 0 R 42 0 R 45 0 R 48 0 R 51 0 R 54 0 R] /Count 6 /Parent 40 0 R >> endobj 40 0 obj << /Type /Pages /Kids [8 0 R 41 0 R ] /Count 16 /MediaBox [0 0 612 792] >> endobj 59 0 obj << /Type /Catalog /Pages 40 0 R >> endobj 60 0 obj << /CreationDate (D:191220110105405) /Producer (Acrobat Distiller Command 3.02b for Solaris 2.3 and later \(SPARC\)) /Creator (groff version 1.23.0.rc1) >> endobj xref 0 61 0000000000 65535 f 0000062179 00000 n 0000000016 00000 n 0000004849 00000 n 0000060645 00000 n 0000060745 00000 n 0000060843 00000 n 0000060478 00000 n 0000063509 00000 n 0000062259 00000 n 0000004963 00000 n 0000009390 00000 n 0000062341 00000 n 0000009505 00000 n 0000013659 00000 n 0000062424 00000 n 0000013774 00000 n 0000017997 00000 n 0000062507 00000 n 0000018112 00000 n 0000021729 00000 n 0000062590 00000 n 0000021844 00000 n 0000026372 00000 n 0000062673 00000 n 0000026487 00000 n 0000031022 00000 n 0000062756 00000 n 0000031137 00000 n 0000034559 00000 n 0000060549 00000 n 0000062839 00000 n 0000034685 00000 n 0000037428 00000 n 0000062922 00000 n 0000037554 00000 n 0000041554 00000 n 0000063005 00000 n 0000041680 00000 n 0000045653 00000 n 0000063753 00000 n 0000063644 00000 n 0000063089 00000 n 0000045779 00000 n 0000048927 00000 n 0000063173 00000 n 0000049053 00000 n 0000052034 00000 n 0000063257 00000 n 0000052149 00000 n 0000056185 00000 n 0000063341 00000 n 0000056300 00000 n 0000059154 00000 n 0000063425 00000 n 0000059280 00000 n 0000060249 00000 n 0000060355 00000 n 0000060942 00000 n 0000063844 00000 n 0000063895 00000 n trailer << /Size 61 /Root 59 0 R /Info 60 0 R /ID [<986ccc09e14975314b9a4ec90e8ae155><986ccc09e14975314b9a4ec90e8ae155>] >> startxref 64067 %%EOF

وPBK +m"&j"(mmmhKl} ibqD qdVՎD$ ̭BG22jx%,"f|"A)'#b0Jq\C8LE8.‹ EM>N$v(c.44cPE h .wA$>0k4DHWДZLDF KSp>KsFp10PF/JLPXg E픴/تP Rv!Ii4 'Nk$v(" ʇ(bxDgtL@L4doPyOQv/A KQPj 8oGt*U9bT'r( &'P$ ,@xFRnuVuGr IdvbV7!UZF/qL>Mq'<{"@)P)WԞb9r/LMO֮%cБ v1,B## tC>l3!8r7#mn J]`n`odάl BA➑`{KMgr}( e Bf4O o4{"0$ a= &QwEba<MT@Qx45C(y؋Ȩ;s|MiLE 6OUij/u{ԩ''OdiF2g'KE!F1N."r(fD UFLL7QG8K ȵܢAg/"Cd^rC9v" ,)Ioħ+Fe/HHClltCl]N::;vn>( 9 >)V$kxsmI%;W K9oC%w?w!@4'+r~ ӰLB\$ekA{ UHI,P&$ 4֙PhdY4aY'/ȶȽ(I-ad󊵁$^x)yY[wFQ*ZO=ut^^ "n3EapP. c88h2cp(9A !AM>7" apb.  Lv?g3IO7 KBP(` #@T"RiQ1be1qȠr0΂4f&2G#A(8N78e ܣ&Ha fcL CY98cg"jB4 /-H뷶sK+2Ԥ9Ւ=:ȆNbi!#MHM-/p; %Ft9͜31檳݉F4^(m x"_z,4"g H@oMm*Ed/n0mụ!|DucXtDIs"1gB83* D'N'#6»Pэi %-C܋<`bK :f?sl$c΁M]>2U*d: 5I2*% D2PPA|g$B^@qf:ÜVdP!`gP+=@&T/%]@T.dvRIH0_Hmhq@Q0sBX(RTB ~ҖSJ|Q t2.H2.jԌ_a93 eܥ.0iGh"/ft*o#٘ " q/BE,+R9-eFg7*NbuI}FB=9eYr\+:\t"NuXŸͥ;^3z/TTZ!嗿ASӐ\UeyWQ *5Z@܅Zyᅽ47ږaØeibH3"]]}ǎYubM.HPPr[ZD]Krz[m6S+ _&hJbm4"פ &vD\b)saPg~bW+њx] TBM#AHEO(! *.Gam"JCgGHnfvpҸ#9TEF .`pO&6n482" ̨0s彈&$s.d^"A˭$W"spcs?7/'"xX}2^$ sPҀ3aT*f  \YlsX4iy[ҝ-Q| -;"\YX3VoG5&6c| )Bo^.D[֧2_q'O+TKJyh7@1؇ 85Zܣ{A<Jͽ) P1$ k0:N5RQ"+92 Ȩx )$XB |p*@i(3A@ұ>i̙*[?p-dxΈBw;JZRTżp1 s,j)`c2Av @ h.A<8/F p2i c ' 06%p9p6җ17 lL?834$s.1c ta贗3=ҭq޷1+h*Z <gjd0nÝA:Ghȹ:p2 'k馈ňbWKD BwrgP?ȴ~+1 +اÓ22 .E\SjH&)HE5ӌK,I?(1> /ExtGState << /GS1 8 0 R >> >> endobj 60 0 obj << /Length 8216 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0(( Fhr7E!APR5 QLL*x.P;r\>K0dN8/I Dh3\*¤><#?E;I4-7IwS70Jx c.T :oSMIH,= QTFm °sC]Ո5]m-SQC$Dq,w/^!oʱT#b> @9z;!&:4==U$- -X86,>0 R>Q:6a@QKyP5\#F+Gd82®RZK M?pZwjnHrĶҔ{Z\'\'ZX{>=i͹}>nK2>⃧ *eoDXfH\I<9+k4H[eϴ S-nĽ yĴ Sz̐.#C>PKHSVQ#ꂮ&i{*_&O|S4r qWF(]J+9f )O[[DĢ޹OU-JZJ5`B(aӟ;u4 ѠoS2l(-Hxu ̕0K51Lô9 (j`eq^%ؐCay=Їps@/4RTk"R(6ALq1'IToη](cu(ܳOICKN%K&'fsQBNx@ 6!ze<3.\'yC9}N bb`90Le4̻ZMrH"pIXDz0no68ٜr`&U?D50DTUuBRPn*EoT oSA@6RPj$R kI*T9uYvLdhoa,Қ&5a26 mbpNB''`A!L$hpbaafdt07D Ѫʐx a:Cv!ObxrBM r6+8ʺJAiPFRab{od6Hx:cN]5 ֔'֧HuM!͂Zދy&z ̲75qyAymq,7)EJEMst҈+yj-Y$rTWZjbQfZp7.9Jy䜖]}9jTQaw›in 8`r>\f8EQ]J@U@f.wi\H D)|V Qdp;e՗KaV7]>cX4u-Ԥ-:H )Yc?:qh㺣Q*IC ?v؆DH5VхҺ.^}/4B߉!/LI,bL6@De eu&`dl)U!g&t i1 ڕfD1a%ӻ]QAWVKMZ:LN;4nfjUu Bq }Bl+<]D:V[}dHk/F wvY/CuAXi`hT IF7>}F$H8ϐ1RՄWIxmU%&׳tR6ѽϜ\G|1?^z_cڏq!te 6/ QG[Vv8y'dwz1#,7gt:iXN&bDMbض-qK\ %:GI y _Jl~frt.N-(cFOB.p-0 *GLb,j +4֧EҘ'ސ~ui%a  d\*ފ.U3&kNC~BQ8*, /H(=5'p.&Rh s,fJTޤP`8bx`c*B}*L,5"Ģr.jY>b,ˆ89,vO0 b*/#R'TRb$*B(ɢvQbAFQA;?ySsw p`1,'X0cʺN-hȌ`Pe o1q34hu-S8ICJ`gJ^+#JG͜:Dsyz0'*`kc ȥ4`7ST606HHc$){G,ʺh8Sp/|dO$JVPr(2Kni8}QmBȊ-%VH"y'@@"CS?833|p~ڢge,u-sm  lj#;4l 00(F3B>ʈ^.0H>3 ҺfP(\څs/.RU9@/)l/c?JiDe6D p JаoD0h` J sDb10:ffB61~$JBK$hjP ċL摍Tm#SR2 f6g R3Q' uP+1@ h>+&f /(\*G hZ{G4á?YU]j}B ":kb-:qc#Ff_)B4 MB-@:gTȵ*ڧC #_O/ E0, P&K*[D> Hʙ.0S_+O_kE A<`pOtGp*1u 5&9꼖bh&RgS<ŒshƢ1)neBY/ Y`0,*暴HĶs&.8E M1}6 hma="o D@NmT) an+uіꔋDŶ}76ebr-dp: 7I@QMRXH-4WTnO>SrE(3=e .7xf>16A6Eqli^:c`*Lk QwQĆs{b{, g`ƾEE{ Zi*H6ӿcޞMALVlZ(0)# Fv|Mf/BhtSq;4}Īb>e^9:mokzĪFt[\-sdZb2g]7\3oZ|jV@Q<=NpY#^ -\V]PE aPZCt<*XAQؔ.~2Cyg)({4pӈѪkcW(n,a@уDLuNdb؄&w*@P0&Ryc*E*ĤWt-𲦃Iv-rŒCH""n iL7k+ NQNQQfoL>Ԕ:$MPLLQLUM:qZ C7K#wy/GT ySنf =>s2)UGB֘<1AW:DKBHRarEWyQx0l6I & ~gMTRQI)IUk̘bUw(cBct[')͋`EJ?zeJOk- c~oiw%KhʍU0*SE4%cW1,^dh\1;'+ .v¤ӦhDi0J,!ckC 44g*kz,|mǛQw>DԦ~6 捍ǹ@QZM ԡ2EnCsӸ&-GPHN L6H蔽 ʁmnڇ!(9F52b +NP1RM9ס.j@uGyr?j])&BfXngCswPY-GחdZ:")`KķSW+BTlvOE5r׊ny8u<Ǻ0)h:(Us\ 5fQ<{YCmEN:FsCShHq+=qpE5 /FppC˼*; ^I{d}SQ{2SϭS/#^eHXzĆ-u<ʨXBGwõ.Y:ٰf3ǰ~`cM{7BK,^9峭lB9a9"cƙ.N.ʤfC=#iŎ92k: .#k"UhB">*۞cW@=CF A>s٨/AIV}OHjS^+^=) O赲Z4N9YfTU Q{c DƊH9/T[ʌͦ)G%t>2b5K֛@NC9uQّv$e/ iTiXNtX$:"@7;F `1ִ/ߥq[>n )#qpPu`⃙ 1AR8󐤺T%a@1 \6 C Y0 YY[ ?  PigCQA.jsFä)$o)FA6*N'C1|TPzuPh7e|NL9\cXHN5Pdbьh83աt#ia6Nq!f;ţܘ]_:B㦱HaV2]Pm)g7OQR(1qKQ(Ba S.0qr4`&PZ'\6؁`98+k cH3+ z0Jhj<*tg 8 NH@::quʴ<nCnrRópZ4iV-z0z1 KH7!z,|%R5B'ʀ#ĊU)k Q `3MĨ)DG(tĆHPæ*2uP(l41B&@X!MQj 455rR+*+㼉d&#LC/! F8o*B"Kƍ#&h7d)lAD6*bQ w"FpTC>*@K6ּe/h* w kr=s uHkk-j[Ǧ!Q9__H-`S瞆˅1'J: [|]KBn|ٍͪI%Ԏs 7&X٤N`OU <-~ jccYBv@]!s.L{,-%nA«6BU A97TiI?ulj;gN3pё6fm>膸I-3ɭJJO}z>؋ <%PBW+3j (u@ƪ۴N }hq%!PR 2pҌc`Q0;xhM$H ꁞIM9cxYO*|ILi0:KФr\*Ψs9B94簢BL x7T %Wy72猣F !&L]P7Д_Cit? $'0B EgJqLsid5`L:rf9:a Gưjj>fL&bAYkk4Ǻ{c@~yKl4F8'PW>dWxaBfQe]w:)nMͤNl/n8% a rܤݫyhL(n]DӞ]rS KY~M̦}/prxUoluziL 2k.. :fwuuhʿ:]$OJ^ [^^_ ?8 Cr !9C{,C)@UXV!N&{䯺D`JlGQb,Hw13gt@c}8=mH8~xìQ/j>*ߜ0i W/B'3#Ԇ)H>:I1 #Ѣ7+j\Y޿=)?0QZ+/q:e 0<U+x8s9 ސR4x4bB fcA" z2,kϡY%{2"kGI6G` 1B xү0:B0Ἤ88.ȴɓ 04jH0ໟ[&)9ãzڭ+ Ajhٙy>ʸBo17ZI*@婱yjx2&J (H0i&ŗ,rFS7å!$ 2: 1*"[;2¹/q谴0,y,GæS:(=5'83d x.4H 3 v/</0 endstream endobj 61 0 obj << /ProcSet [/PDF /Text ] /Font << /F3 4 0 R /F12 18 0 R /F15 5 0 R /F16 6 0 R /F17 7 0 R >> /ExtGState << /GS1 8 0 R >> >> endobj 63 0 obj << /Length 8488 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0((* Fᠠ)EqLn(1 Eo0)ᘠYRᰠH`e:mFH]J2c+ b) d(. +uшr3. qu%Nҍ-F!vh1JP!4̌6 ycM(RQL3y)k * SoclJ@e3V$ֆg#W >kk䬮L8k[r",J2dB0BNVo[6ko Ҩojhjw$;A@Zȭ"jڼM,=jƱ5\"̉4a ˬ<.t9*RXQq,$:PcR+]pB/4"/ ДĮjERKR01UUBά֨mpҋ*ss2'(O!weZjRڴ2B[s[Nw7Z, X."ZY-K%-=Ҥ0v>%KI<7@hTڙ]TUL2ʒH҅Uɴ9l󣱼"TjK"Y$ ԐsF-&ҲELɡ5uzqi'tği7h8%iGwE3Y0lGB^}٣`~c8&A Qk^,7簶{="=a!v@F@ng 3sp<С= "fQLiQlj< vi51Seb 1.Hn.- +!iv)Rz\XڶW9Wu-%(K A-yHP<$N\N^Pla,x1rƀ:va!$B I5"A~FOH}bmH. {4TPs7 > Z9}g*N eΟ:1mA|MݘG滤ChVt֢`5i %T1vh"7R!1Ć*i ݛNyR* ݦ'4gI4odzh/Cfi +x&X%#qA eS+z"*Sх-Ѻ>k0bt [Z_|Te] a3GEw\\i7bKNfwb Hxd+ |*bʢ 0wClr*|/s7ol1Nf[yZqZuZ9Mǐ1$9f ''x~mOG_t:bqKU}|oU}Lʎ5ʴ1ZB`؇pš:R#ԧ'I'bOb!O.&h\Rh<ZQ+0KOVFa+kIW色L`^i˨uŅԋ$jHRuh3Ajޱgs!ieuTқܩ)@nbpRV%\kt9|&p[D:p9h0k *0*4 =jN*`xjC@PxZ80L ܓ8_`P܊ΐ\&dJȼ,|) jF ګi2sd vWdp eU duPǾDv?B,S, &XAX-FRȰ 0ƊifEHB%l"v1 vB)mxD,f@8kDaCd W/Êr8Bm|0$OʆA|X lO' 'ΤC`d5ef(c4 $,/hHB@, $Xc HD/ `~!ex+bDQf!˂ƢH!m~L2Nn †0TX8+bp"JeKV,DM.0i0B`/"BexN-f._XW!8(/o(CzH c&GJvBmquq\ʊboObcDZW_Ǎ-jv@trLLG\!08$8qS.b 1M0mU5"S0Wb4P1 $&_{$&I6EV,5/f CzfJ NET"+#/f P+@+,X2NP -rW'NH#`>=v7ao >M>*O*/l<@2zJm9)crH#z3)K E/)C"i0YE0[B<`&t/΍\d /t-ij `&b9ZiA/Rl&ѐ|`nt*)~$@*)¦<~ @a- P"Q4&S2,/ Cr0`MG‹N ,Dzsh\߯$cUP=TZl̆u(/p6}lDX% #:T :zjrvɄ//ʱMBƩz  A.JCeR k7+5 @oeK_ԓ|#iglAD[2 m gB˵?:?  P)0 h0xc{_֜CpW}eR@| pGJSH4*"xdZCR׺8WÑ_k$YoŢσ1Zx-B9Ӿ/[41:qf&,4" q)[2uRË=zr_2{ 8$ 0~0[ vǭ5d-Kfd+n-IƷ<}&㶻OmƑ].8Z#uZdJi#)Zk_ꖗ(itUww~yʚ<}Zz.FYiX.4~%L}.T%."B^VB%Y2]i# "ʷgmJ}` Q)j4_"9ؾ&:~ g6kц?364U9B($q|ƫt]] y54p.r`e3bƒb4 'CI23j7Ž)Ns)1h!)H8 6 ԝ[/Apa |#3-`ؒϘ4:+$J?0b5sAh, 0|o k CXfKrꤪ 4kd2j%RbԪ3Ɍ3LPJ6LR ̓g=ƭ$ÒCb")IlLZ1ȃ\6kTĎ H,mq!%]R9l_yXץI{]7H9 xj0@'b(/B b,l*U,eZTBv]gɕZEHgf\*4+ G[A7]|SvShLqpqHվp(_wӪ)ʀP.bL/>RmR]L)Qv knnQ#hQ D60e oHd9ѳLd)\8s@ͩfK" " g;(߱x 6+0b71jL%9:̾9.e=-JOw%)y+d=PyÛGa-wfm%?tE7vr<˵3( m%--CpH S8EAcZQD)f!K"E58k|.H;L+e:3 h)t2 bb%.+X LbCBdCRsr HbA|zϼ' 32@<:2@‡ y P0+/!B)bSNIi8 , /8uT TD:xJ?B$a--IYˉ3G\4exO(Tف,Pt訸(-~P 5 8btCyCYb+퍥\RA03/> iz3 /3>HsQI ʝFS4FAh Ip]<Ds/KԽO5p%3WgbJ쪦47z W*UK(j;&Ǻ"8c7Dݻ`Rbj 7׹oW+K9u:%^]@fibOimIhf!L@hmR"yDX#eh0tʛqo0S &:_*Øh{R!j&00C iv_mf'YwM*\2ᵟKj}@y:m}q&T Po";ԙ­UƄI9C {'9ɍ4D"y @Sme$aý9u d-r`9`1`3ND hAi&k)WI:=Jڂ:P5S5)rޑ)g >h%fi-f _$9i>q3ӟbl ݸ:*Y<,xɂra 2gٴj$wC{;*~>{umyŶumTu)$=awJ5+f=ihf -7r % otþ}ьVdg /7~_8-ﻖPQoBzl+[_e 2#G,gzu GF&@kKhGU)x]SF.fGq\^ dDLcysCdcl1=TrעjJB*È䍹87*I;2)J1-Q1 B|.B99"q1 ;nT+!2x[h 2{ysC82DC= a6#/+/Ļx 20x#5EV3;s 3#(c"ь(<=b㵈2嵋GN16ˤa4s"#{aTdyC(*P endstream endobj 64 0 obj << /ProcSet [/PDF /Text ] /Font << /F3 4 0 R /F11 25 0 R /F12 18 0 R /F15 5 0 R /F16 6 0 R /F17 7 0 R >> /ExtGState << /GS1 8 0 R >> >> endobj 66 0 obj << /Length 5950 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0(( FBhr7E!APR5 QL(A?wdVx[w''2c+c1 3 {K oc cj,Z4`SX>mttȄN*,˪4/l{᦮ aNԌplϸhߎ5[=ugḾsw]ߔNKrǬ3;cL zRL U9UFqХ^D`Os4S (]5"Tb!zX4uX"|2uA:Ҟ] 8K~>EdFhM p|vrL 'PaT^9d`J6i~bW*4cRi\6kTƥC2,$[ ;u#w1ԻDH {y24K[6@ סu)8/IJ{N:#vCJ-`>H.R{ W/RI[? RIwAˈ@gdZȴكu OyU-2o0S/`eCY&tc d 3 e~ +ҋ ː.. qpH8BL1)4 awOQ3љ\aq@gbh`KBuԁpe(yD pj=LĂ1U(a7E=jDQIX("lݐQ,\⬊D>I< ʚصHEisʾ>Ug_ 'յWURƧT֦jj_+Zue5zjrXXB cD-LUevKMTfQۡ9auƤ@5مdY@Wֻ\텲R]{'QS6xrY%Gz+޹Fx} W+s+* ~S7.`yb-phTAg ds<0ā U'UbF@*O]ղ7b}T N27`e9JڒbY ;Kg;pqQ$Ozo*rW/5 ljqYݘP)H()^(27^ZCs9 >Wn@2 #{&pe7J@fmܪqຕ$z"% X $#uXi"qExfI䆿N98Ъ:PufF_RH^;Ü]vSMԣlwj`DdToHQ8!nԨw߅{If|bB4oZAf mC7D_cN^Zb^n1 L1VB1|g<"ttL8Z;\+`^*māSD`iFB?eN #c" Ԯc+`¨ɜ.1 + T+`= ,ľ ̜'0dbxAw^+qr(.nt7` F "v܀h0+[mg l6 мwj&j lkOq4>QaBJ8CAP,~i(f)jG\)~OUJp®ep~ PKE L&j? LBrBafVcjeq"`e`D Jr#7tfrB!)%TŹp5(F$K7)Narrh,mȴDHʥZ`0Z0Q(j/"E<ZE> FΗx ."1h4.B%?bRH--6)B22xExP]0 n2U5m6/6E+ P7d dd0@Ĉd\p )TH`hM|9#EA/ŒV%" ` f2 ʾfTNRVejVrYeoXq-"R$‹+f,1heQ4B+0+%JIE  +FOEid9KF/mt1,I Fn 72&,UTtd#E̘* =i/]ԩJJ"HO΢gK@0K(Mjp;0‹/KT5"kO/]tPs(nMwQKOE4=PZ wDm ČJo:F̙¸H:LG^SjJ?pb>oUH*ROPwĮUvCs3=W`WmK'QfԴu51Y1UWpOVQYpXCZU{Tq] ^՝Y}YE;IWd#^/j-IJ.ȽVU_UUNuDuECWƦh'Jɇ}X1h>HHnI -tVϓcCD, #WkfB4&CFL-6SgN*í3 (Qtm'c5욖x=rp[p #p1;H2iU5|D'tG:D'W6͏m#w얒0))ktVlWt$DN 7qQ9o{ ifau򱄠 b)yD*/ffEddD)X0p(.J *WrLwBh2. &w)O)"|AK {S14lhc2'u|Qt=Hz'\9 Qk ]Jm#nG](Waf$18T\hˑcUY!,BH0^~0.[ni, iQ9^9֚f+rб\/NcQxsnuιYgBOpVlyn;&̅rܳnrEKbFn+H?/cVηar ( +7/Ad:NBPF]yu_u:2gw\g&v?a `u42%(Nl̀3en DeR:m,т7^¶b-$X~lBYzџ1ôp3q7x $vJ<$(O 4(KRƖzN[a}g)uwu y; vݎ/_OEyb~;(#de'i #uX) GQdhȹ^?#Iw, &,`ڑI挠;RFܢMv&+"Ka{`۸ bFE.yN ؃d>^HsnǔES:䩠cn -6,eeýw#sNg|7FmuugĆ~))c"~{MJtc 0sЂ Q&Tη.c36d;AWA57QS+Q8/x:,_#@/2y+lQ6' w]j54 yvH [HJCk͇Uf1öB0ƣ|BIG4uxx Hh5e`]*%[{n2'&4構 y ~I'|~Bld8@ 2kcu4#ʡ&@t'jc=l($*E4WtPoB߁}ϼM"m@r˻p39[Jm\EW8HƎMo(/}#fķ ITbUʪm|GN*w,W"]=\l #$ > G;+8~+XZ+Oyߺ-@>PKtWXW?ubZL[Z.h 1cz@H:><E:>2lϚefhL]A0&)FcmSH4 m3em8'Ųd5erbe4w:>neF!ȻoX{Zqt }opڬۇl\4Ph2,(&8!C2-CG>KcK"?7`8ICBf1p0tz4Jr s\(J"2#d\ 3Jh(tM:9-/ E")0\S5/P0: 1/_i'b(/b@) pp;4eHRJ"SkdN3*~%4-7 * endstream endobj 67 0 obj << /ProcSet [/PDF /Text ] /Font << /F3 4 0 R /F12 18 0 R /F15 5 0 R /F16 6 0 R /F17 7 0 R >> /ExtGState << /GS1 8 0 R >> >> endobj 69 0 obj << /Length 7143 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0((* Fᠠ)EqLn(1 Eo0)ᘠYRᰠH`e:mFH]J2c+ b) d(. +uшr3. qu%Nҍ-F!viJ$m b:FDNB Ep(68#eZ3Wkt`PaEˍe9uz>&T#t/q*O~pP)*Wbv7jƜHCގcK . +aDp2#2K`ß@(6Aшጂc4:jjjx:#`PZjAa3=2'҅;Qھ+(, 0ŋ0wIlMK-'b(/*=, S(4i ֩*,tJ&ꪺ,l@W]; B fN%c>g(BVH2{/)pĴ^ZZu\8pȭB)Iq0 z)"Y{$2P z_I :49k2@jN++R1+YdXv 08lJrdx8~wQTL,&Dԁ'-QW u*Hi*,b B mJh/قUZ pA"rD8X,<=|}+^J)APjMQ .ֶ_g0dj%Ǣ&Hᾜf WB, ۳sEX\7GU^ZBa|s_)1)Rʋ"\iґrjֲcdIk[dK@O)LJƭw޴&\\TOKU|'7C"ٜO~*,?&BH"$4` U((pIab0l!c<1 ?5P&jӰI~!Жf=iv  ZϪ5 mBk,i5$Nsk-mtjvi|!ODN|7Øp 6u}u P冀mgնT¶6aqg@> .|nNt >+L>xΤ"A":m<7bt:K0֬8CH4< T>9㢦Zjr)*6X!&˓L=(+KB3GDThq+nJį0:dEo BV]B'GRJ* VJvM;QƧtGNt "*NsچPiL@p}r'TNgzʰ 96E$P$i-T('d@'i t;EUq-EԦ0rnbGVhu`#TbrAJ"JV&Vr#jYNz\^g~6*#HO I*Od S@:@ЫЖn 'E5` J*_`4bB Z&fή'ÄWcse>_4'8HZG] fe&fN:`+(̋'2P$ bpp `rNb.2#1}R]whcϝ-LC{2/A.NL0pY)@ʗ6ȑyĞ"G[(dQ J4U(|l}"(Um&4v貈oVrȭ8ǺEK CFrTѦLppzA.9JP-Hp#օpctƈ wpwRwJ7-GnP\2.(VVHUZ 7DwVr4,+IFwBD4zu g9 >m?O,k( j#joU4K :`lF2,R  R \6>h\ *Bn4w'kBkf;H/NoaIX֟cq{`{''>^JvBȏtʨG:Le >p8dWk Fg)0b0t)xk⽅U~EUjw&c5 _em z:',pvNJGtK)!b@^@] TR R@ǐ6,ޱؤ}8q$S&E7#֯hfY>ӓu) ?#τWS@ޟƑTLT7(L;FbBe ERs%Ռ[80.+B ˌִ cxC&s]@* o^)@X(BY2'/L^JWC ' ʿ&~ /@|p0(1Lܣ՘OF*v!`vԐt4X+YUvZg! .8úG'Yuzu@^vrd>܊;SB~sõ`@B#36B)FpPtÁAR]*Bшs"e*"pQ"1bi b<\4b10P1DC0(eD ,M)By,N/RT5O#q #A6 ¤Za7B"$)@Yxn2HR{LUK)\IXlx+5 [rAmb4KM7\21j(0ہAkEqS#qMsbɴb(6 wͨ9F{`PkyٸYP.i Fs;o*t&nؿ`5Xjd L !ja@-; #&o'c< .\܎c1oLAS~2(*I+- P1BqP0s`D2oZElU0QBB)/t-=~9C*o+Va@2Gԯb`@x%%MH2u=8zIΰ4T =Ø\0Aތ:5|1ԳV T)2j͓!Vc/3wF#h۔b7kc^[͔NB ꥢR!˼piPApʄ ȀcBdUeop0Kdi3 AI&sL0uIJlA7r'ö9.2U5<5Ao" #|ZgDu܌醮4IuDƫm{Y)dl-2?0vqǛ*k<0D> /ExtGState << /GS1 8 0 R >> >> endobj 72 0 obj << /Length 10004 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0(( Fhr7E!APR5 QLsO)r !ն*vIaEM@P;MU:vdqW3m73_09j$v :ԣ~9OV"#sMR+\asMDHҵK7@ڵ5Ǯ]#Ѽ32r#v)\kIJ+w0[- $ NlHErUF9I6b TɢSCf(mD&ШBљbs0,q(I,F LMB*TT/We{:0V\L\H^([NQbR`0tcZmvejhAW4]XRKt a3]xsӨ):\}ׯLmKĘ2tI/sD4iioyw#>l3d̙S<9sZ uaRPZvԳWMrmђ(s9A"~8+Ns:%2 SF8aQ&Xiòu֊@zOY՜i[Z4E#l@cҢy|9Vxc_!T7"^?ILIh %&I'w(* [Ik4RI &x%Vޯ>2W~1y J_Hpz@TAd'yk qS8b28'cSM \]{>"') MkD.A>Ď㏨t<)*6=@uϪSc)e#T"mNrE ++UEccR2½\␙ƳrD~'Ce('z'9eo8rM* `EuAcSOܩgJFNڄ:'V%I%nd-0ĺՏD-l"lJ\ddL-' .)Xgj?gLdsP+H?6f(1 Hr,Ω괂-dfqP'dԹ*r/AJ@whwr k f+! ҌnfaUjBrOg1J""]!NL)Zq@_=' [vHVrdjA 2<2:]bp¸φok@в'@܂ 0Y*' 4!`mmo"=0 -whd f=`*>VB'Q&(Q\jzJ_`n5#jQ:JQ&\lC5r⸤DS=fh0q^0"5 ;3h֣.mW_8GEd /$*VҦ,DD8Pc٣n.Χ0TǦT@:m1#n\=Ƣn8lh&φMċn*v ɭ*I8"%S H- $It C,ވ!F6-OKꑠ3Lb K'US%I(ԥ1s<-QKt N 2`G?LҞ|"f3>hErEI(:ګFir/R<1 srͮ)efCcS%+^Lk~ЦkC.( 4Uju4h.6P/crSPhB< [WhʧCzf>AFgxI%MO+ªƧ]&:^v:$OSS/(5VlDcEBu=lQX!cH: XCF`_LcCDH9Eu@)2%).g[SF]5^YbShƫ>! 'RDKH)/V@"Z ^GB\cCs]lVp{HK tcHOl%;Rm3g%O4tGZxO+g>/E-VSg"_$ڎR0Da9ds# ovګ1:Mu;Vuv\DVHW@;vWll z`pבvK`swbQ(CM010 ,8o}fLw&81>0.5(bܦ71I7r@\Tj" \LR 3**ONkmQŨHEWS Ìs13ETH/Hi[u3| @^R(&f.Q\ /,H+Պ$*r:<(Zv22)|:R" )hb)*02r)*0)5wJB܈P NNPmX@t*",n@0Sz#< +]qWÔ!]d+SLRʍL%Py4Br`LbWi8]ǿ+jIQmq&e k(' #Q: 3%QDKtMf4cF˞E)Nzg M>틬uby䵓+O-KfpE[ҴqJjzeaBwcg-n,08FqJ:Zë~Rj1+FDAw#/,rp$/ǝ6fDA8bA%E‚w#ryNG 93YrW[.Cc>',Ǜz9`F`+tv lE?WԚ$l | c& tE'#QI0[mM۴U ۧ3un;=LN=ҥ;4NE$^BlP-Fj"J8vbO [śUI̚xC\#M79;R7(Wvw]9DDVQ$*c< _6y#t>C+^6=TV~ UсYAʼnT\d0"&kt`Hn_&p:ܘYF<&-˃9y} SgkcsR5Toe Vv\zc$E#6AQ@EƂ.'nXtT(Yu^_k?U>I0{K̟rҢ:N Қ͒i"MqS0f7$( ;`rԹM*&+3w OOɎ$ +'). ك1,@ڴ3ȕ>7\5iyp8#->Y&%]+O% k*Q€@(Sq8fMu?\3haZHz6>191žTT VG>]8IVH*E%Uv @9vy5o. @U:UP;-CYaQ@B.e0w:0Bpv*^ =&hT5 ¥Ӯ*@f+ܤJl *Q4ap2! /p("ۨ 2A+b0#n a̋(Ҫ6 ʻ+Β Hl(B 7!P'p'#b@;E0k*X4 0Ѕ13pP7K̉C(rw-;Sx0m869mxiZZAiE1&ѣ 2:)Ѡp$tV2@7C(Ocܤ cHoh9-,)@1D@41:4,[\-Am2mڞ0I/?uc`G aA$ 0dj6;=bңuk\US O 7Ḷ@9iȺ˶̾ ڄ! їomgmD)/Z%5{yl\D*1Zb:^*T!@ pk&f$XN* w̟21Gs#92Lbb,WDs=?IFtnI BrLr9*r} ,aϧ:[@bņ`Uf%!Cx/4 KF̻]gMZͳ.6(AdÐk> QI|z@OPj,(M2ȣ#,h5 f du ȥ䒹eiL ʘm6ߐ:gl+Rg1h+ŴuP "K3B)*TD3sZu\p3!OtymSrRby`J[8BvV 9 u$XuBC Hu 9 LaHd' ,Gܰwhb @s1L0ЂzìW$DCE!2/e;aA@E!P5 f M+/)H):h 546D/PS82vuCxgAԀPNfB~SI"/e;(%) Pj!isƊYPB_l $lL`cME g}S23QuT0>yVB((I% mI^HE1l3'9=SS RG;7r,$9-Ep u8RՎ)d{wegLZN 7(P!D aeX@w *ڃZ.&4J,%4<'.pQJS!O!|{V T WJЬz4?d} Uzȥ bm}!cg=H3%+Nl[{lQ>_h!_0;T[u︥s\ Vj_P5MUvHr.mxE-ņL@he7ИrNR$ +tؕ'9 `d:GyfyC n=-B tNIF\Jyd1!EB͎b1ǜ2L'F۴Jz{(xNi*'nmFX((CZ'HOKb,[Xp.%T4`O[ K\Qx5'Iu,3D3S:՝|KSЗmל :7H>u Қ-%ys\4BHm= s"mO7b 5O9${8nf- uun$BAȔ*!W8:y~cBO+ f:—ea$X 0Cg::i:ˊ &:XcD1LL$%aUqV+fNM 729J]㸁CV,8EC(9yp A9 A?Y7:9$(I Jy{$sc0s30A@;&i պ9x.S:i#'8`<{؊ZK\G>Y,+ O  8R9EqA*Qߨ!>@5DH@=AX,EAA\,Kӎ@$4&`X#A20߿7p¦Dm ۘ Q?8Xɋ̏!<9@36*b6 @*d ᛋ`Xm:8m%^0lc([DKE#Дc K3,i$9Bw: 'BR:T{Aฌ :R:1I4ġIY(2PȻ, ;꿰)sV3f3,:HzsHLC۵:'™9 4)~!(:``+1^c QAx,057|-+741B ,p̤Gj&, ֛1H.pI' J,(3YA|RNK?J bԗ F$#%I S !ڨN(1F"-PH̋kKB'ː}V !Al<:(x # (qҮZq{A:3뺹ފBc˹2 bH5 ݜ9#1RYΉI*a3! yaiOA1B4D6JSK`, y9 ȲfG΋HKhuǜAE[#,R ȏKY&ZFU2tdk(`:`gnhB>"0Ȥfk4`A$?Qj Ϻbi QU#Sl-xW)d7> /ExtGState << /GS1 8 0 R >> >> endobj 76 0 obj << /Length 8572 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0((* Fᠠ)EqLn(1 Eo0)ᘠYRᰠH`e:mFH]J2c+ b) d(. +uшr3. qu%Nҍ-F!vh1KBTAcdIk< t*h] jQiS5+Pnuҽ ( x\AA/N] QȡpavUG2pG )R#+9.j<ڢ 괻(R$sK!ð5" !H`'-_n*6p~DPnaÎJJT3k+6B E!@/+$M0@9Lmj (Z½d"*'!)*0"p4c(Z$9t6 EАiǩm!@(k(ζP;r֩GNf(ns J&5XSb'lځˮJ蔰 4k R2+x7K)rH1iac?6 lX֊Sjts B˂UƼ k$U-1jKT*aad؝'HE@MFt0#4"Y7U:P6Zae0@SS(4;('YL>gRT0x6l0%G[ X!@v%W葵A ,D 6Scz/o YYZuz=DcB 9W@b5p׍Ȓ7sk}Bj:gZNs>iRn3ڠJԨvC^-%ug[^!A@lMQPX~<C6DɃYAdH](eH8SPWp(=-WfJΊ$hS-N 5 NP~JH@a:Y:؊)=.TFwjwlӎ8l~ՐHsk'y')~W d"@9©_ Jꋴ, ʖ0R ÀPrI By׷EKؓ7P fsf r 7QBp 2颫I|ҔlÅ<̴a rX9ו}Pi mΈHC:#x1pe]b)歲CWi* )a7bRJf %3 OAUڡۀ{|^釰eⵏ]4b1EbFꃒa)lقYa{XXoT,%,k eZJR (͙p=E **tNT57{M' beC;f['91,GJkI0G| $S9=H*#P4,b,Ev*A PeI $"r\mevάD (XsPVӵwE!S}v J5;ϸbZZ%GVl 7~# 8.EK8 c,UA9=^nRƫ05\Þ(})һ'.0s~,2Qέ0mKL,ewTr3dS=K\*VOLXnZ'T2XP-~v{EjZWCZ~: IJ'HI9iH>/,l0fXp,b/&Yb7 (&"b@N %fd:`˰ c090}4nbDTLU dN(?>L P{ ;,7Tj>479 l&/ d<  b>MU&ڟ xhQ<&ie#îU)ƚ  #@\v (MVK#,(@/2>BrN8p\n>. X#Jmz*V, z)^Pxz.$H.jJ/Jc)Dv'fa"(Z@:k(žc*CzC*@LOmXbbWGSf8U/B@b4(2MI -{1C3 PY@"" "Mh q03F:YP< ~-K)5Bn\it# L(# @U}*-<@ #vG8̹ ?l T8B bs֨CZClz#ҏ3%z rfqR:RÜF. EꆐH2MIꎿq d<ڤd'tOEe2Yo)N @ %YDcNJQJֳ B@ %R">d + `\+⊆4/f2IB=VvB>gn_U`K VRP3e }Ǖ2)6)DRŠud@ *i)9ŽhD/3/R)J lz%Sֶ,0xVDU\\=c]=0beHPcx0$1묣BtgDjZ5TK(_GSc,"?Z74B@{A#H9eIDLfU D =d㴤QFχG(YFc6 H(H HKD@IKFvBJԱj 4rєLTLF.ү3:)ڌ/*@QNL$+NԑUOlgvI {dv/-PMBPJSeԛxҐbbVOuk IIH6lB \ ńF8#r}v \]" (ʪ<Ü֕!pbs1w'TO{z(X{..E| vZ1߄()Esذz0\"<$3x-*k^1ߑzuwY>~׸/!|fa`q,gH\Əv@eh쯩u-@hn<+SXJ/Df,.LUY)E(+KlIQ0(-QĚ(NHwf[4-Q>!IqPflֹ@ CrjdDnId#rBUv ,U8xzZ +yDMza,֚xۋ+x{WW,y䏷ϓ6w$뇋RO,&R@U Z .5\0a{MP#pnbƒpA9w .Z1de$l&d Ӽ(z>SqW+E 2`%e0lCj @ºMG=TJJ{p(b^lM] ;u\\4w [1x+6D} 5%^FG8FL0ky6f26%*yQ $)0eͪBo-/ d3d!]T9قY8I <7lH)d0g/QZj)nba20JPNIu٬scNme+JB'hRNHϟIopTzU7I ׉ /L@ ?f0b`0α rWdwv\Ibg6s3u|8Ea!y䞝;S#Hl:U/c[仫Io} b 9yt-Y&Ql'Wg^1#<ҫ$;ib SP:)iP2WH3y7cDbz=^ 34͆BQzQيcÊHȣN @Fفݨ)Y۱B>^?)Yǣ iotwiy@IYs@s(>;t."t,7"쪲3 |-@m.bi9vƉMAR<|*k/xED-WIB(+IƐ<´U5p4 8F~ <⣯LʹfI cDIu:p(w]>|Xte7 PtO꣫(.=³R .ʋW$]5̶vAΓ21 qeu&GM^D}~)V6 ڶff/wH +EJz=g9)G VEYX,8}pJB_Qpx42B)FcapPaAƒq5 E!A ]A"9 CNR(AE 2FqAȠ)I$ƒIm aH\8 %ҡ(2 [ QP )s(PJ9FJP15s0*)M *Pg^H\4P0GI(֕ FḢ 91LiR EZ3cq_;+_E>Ǵ7P92@ J-խpZJPP,t0NE$1D451A#,+C1laɦ@XޮPLk`F]kr!hpkpJ3 )DQ$LQe=!pƍoZ+}H @g#m5<̜'2X*,t捤L πLEtMSd`2_=rE7 rRCPH,IRhs ؔ))U֕F-hxnmKv05'w{Ct=3 兾wWhdj2=o lg#@PhCǘrtQD!HS :&|5 Y&Z`a0@DJR6R(HBV KB@(&\=f`'243PARcw@s <&! 0),yq' s}Ŧ ^B(<" eH6(YtMNq4@А0eA4y Xq/ z[9hPc06 ZkP' Ӣ(] Bc`oȴ6l°l>9Rd`,s7g`a1R^DgSYĄ0bI4NDP=i#S:H{E5-M\ ě܉ QUqS7!̛ HsWHs(Α-& *A &L}ZF'WjT n-sy`?w*ZY׽_E@^@$ۃ 02w2=t)  (!pyR#h\JHA{`EОmJa7Ƅ3k2A(jIX -:B01$EݶŪ4bb] -毪zA.NXM 0b}:vCe-FgkQw4S$Cbddz|F@2Kmi0a3{/!I_&7R6 0ܘJNФ4l0/Bt@,]<Т13-=LT&CkԔ$kSG szf[626*l ؏CrN@ǭjSJ I* .#+sD5NA'G*o-ed0N:_b]biu@%e7@(A|"1 Jn 7U,XI hp[ҹi%ӏ[Bh,6}mKG hmOx" *1`-i>jz UC%d^D6ʿ[y`@塈4 CnFZ`Ȟ6)MqfXFXigs<&`y}kt//SSh2x3<_(mKzJO :Qg&zJ;^1 z.#& k.<(aG{.|\zzIuOz2%K<9@Ϸ[ ?"?93!ɥ;:#-h8\`4ȃ:?b x - << 9 Cÿ) > A< ̈>sIL2$"9T,#)0>,& 3:,+@R@cd5< 3”4«kC;9 )d @[ASRC1@ ;DB,1D[ >?SKlA9k@4LrɠM( _,F#*NS?i& <E4O{˧O> /ExtGState << /GS1 8 0 R >> >> endobj 84 0 obj << /Length 4676 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0(( F‘hr7E!APR5 QL?9΂ ͜Apk;I;4j(k ~;PJDRZ24PAbEܤ.P̭M1t%B*ԆBN[>Ep}0P 3qJ}6pKITM;@5Q EM,WY5<aVo[]Ǖ?P@iprz4r” k[ (7(aIHsgV4QapS\T6mMUnZ^<0L_W[>]xԨe@L] Y5LcVMvPuGIo6͗Y7FfdKv<:9'd5IO_#OoY= R$kfL>Fەmy-~;9dV 7,@;+R4"\7ޗ;qҨ:߂Ud`6P1c-B>#`C9.Ďlb /"+cݯ21}숬Sm jܴX]ݠ( C0r ";š bA)IV``_N6F\ñy㗤.]){0 ܺ쓋lmB9A:Z\;.)7u$ぉlp3YP sE S{$C\{11pQh -XབྷC T`dqqH>[Cv8>LtxFߤ'G 0c^@oq䐹@|!%ʷKZ(M]cnуKCe 0) |{s:ս .aQ)؇(*Crw) 48M. 28Ű:cFkO.? LQ8tc%tN*`rYAYX7c5%PBW*E<8V*f)pq8 vm4]rGƒm(#Q?. p{'qZ胹U%[zo A2<ƁUPA`Brٚ2}Ҩ=deܝ= H]U=#UgETȜŋؒJR֧_lˢ+"pS)Ň*Oߟ7tK>]L-l'@9gDӆDMZ8uGaxUT".>fC`sѠ/i'*HJq1r՗ rvJCVs7<-PkСv|jiufñ6X~L0MlQMFdTc$ {F@>KtAaN2 )υHO. >~=b>u5^@[OY+ӇK ilex pdeB G,90^5'KPfKLhrW%c޹ vcw=(`~SĒ S?MtB ^B*阂@PV{|.BޟG٢oGr^@ %6$B{⤚+ry P HJoxP\‡h? .̆$Ȝ.ԉOĨ^!)B;jh:b~fv*VH p0pK } Er\K:"D M dP` ` h)*n(1ޱq1P1& .,1EM/ %OGkÐv+| mb0:9P@T(hs82,!-#T Bo 19&" (̿,^.ߑb C`YO؅^\ \"ΰwE t$x-V|``Gnn ,nb{/-(qi&eN-l+pܐ% r9#І/@n!,O"23!,R ##Nl⺝R+;/@Q$#N**0vL{i}'-##T%35T4mw.4/'8TFڡo»PTƳUD1O {$p?/!)@kNHVąo N+hp$ҳ.e@|:4 4Yu#7c\R*|o~VI޵HBZsa*uH!,¥VV,p6I5"~`W'Q_d**t+> G@PdA$z7hi8nBT08CppB?u,p?c?d1 Ty7KT7R^Hqf)0M@b(=BC!rl#Mo2:ԓ#>OPLWvCw1؊1xOaEYZB~ge3-By.p)J .Lɞ-iLdX 0 ܻD*HB=/o jPwT3> 3$\K)ɨ/usਂus{.-M8F1<֥ak. fl $"q`hجm,]sHDv,98C`ߐjfh?3Vd=d؈^Tu%'3[be0Re2jVm O^Ϻʌp# 0מ۟L=Mxن+6m*J)X4zzEM<«Zkj`y!K޶,׸ׁv)kTCPx믬)hx;g9Y۹_!X `k睚^Qt"rQӊi:lQ5R3]6 `@}6!7n"0ṻZW;h8sz8D=&px?LZ |h"@ kP{t{zJ`pFq]&OzJ%t$kѨ_ b endstream endobj 85 0 obj << /ProcSet [/PDF /Text ] /Font << /F4 86 0 R /F5 78 0 R /F6 79 0 R /F7 80 0 R /F17 7 0 R >> /ExtGState << /GS1 8 0 R >> >> endobj 88 0 obj << /Length 4366 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0((* Fᠠ)EqLn(1 Eo0)ᘠYRᰠH`e:mFH]J2c+ b) d(. +uшr3. qu%Nҍ-F!viJ!m n|V+kqфr4E9ӀT̕- fh. 8_jPEadASeB +7D@2(2(8Z; #`2aH55{؆+h"h8䲎h;/0p ?;ơ;ʢ0 k ?U$JTͮWuNt׿iJ㝟.*4*JK Q`nSŸ54U:?ur;G ,")RBTK{3rMY5'f2\7A k̊h>0̞ң|5,^*Iq UF޳o(nI0+㔮dQw=vX{E 2cJ6&^ dTP`>q ֋U\cN*k(0p&(|XjcvF#ʰ4kVvҥ v58A*H,#6bgquıPhV3cc~ا˲T";)xUWH9c ɧE:WGWH20R$ =S2Q]i- 5 9sicJucE !pwBj`:!9xi)S8X+>mKfC! (4!.g tgW鵢4cOбh PIǴYqm%"`50a#QChύ& Z逥^3RT.vJv@a7"l$d?7Zk9 e"Wi $d1%#]; e@w6PR=) ÆrdAOI?sSEI+Kxo`[Q _('6JʑCO.bYWd5vfYi87PVU /:8r*)SN CrӡK'JZJ_ 0OJQr*&YQ O0 erUQͅ E"  :>3U;0 ؈C wGzZ_O07Q8QCa@⁣O7*B3늮d鍫9AFҕCa uԻMlzNp :$O&e8b  yO;rV,CfML $4%}ތȘ> Ƿ*Wp[[am~K8]6R}[%Iup)[`J* ~^O/?'+ d[(-yv^@PF / cC6'uU|j_#EnX9f0z ayy]q dC+Om0-GUexm`+ǡ byOvٽ&z:< 48HòYڼ!)? "zFػP梺-確4D$89u'3ZlR' '9xGxaM'T\(1Jp9M;\X<ÃHrZZ\j$L|`tƸ'Ifmv~)%-E7A㤧e"Q݃c~:(8*ybBqI.}4}̫u(HBa0"M ^rnhiQ9ICyO,BpIso7|gti54qU]t˿ZPMApah!Bk=9u#YU OsߏnpX/4OWH!_#I :Ll"\d(b.ȸiWF !U _ (2K 78Ï z'-FIf +J$, `i.dj߅tJ,}GΞGʀ~ @gpB9霗ky)\,nȬ BG#pIk,d:H `I#*h &;b+:`j:.B$M :*4>"8ܕqO 'yt%01<;]Uȗ@¦mօ&aD\ ,y 3*=/?o=f.LҿΤ&:@ NRe%O=%=|NԧRꯂ@ @^@`'n^*b,k(@:TKf\K+N0FrغhkW@,Rv& l#!/@J2.(bԱ.Nt1,s$?(RЊiL%op:˒& -s4:` @p{Ї:j7;0;|rTP@ Zd1Cz_S5N\Q(3@o{A:3t ?tZ ` ftԿ +W%#(7D< GC46I}Ҭwp:?9tXE17G}?nG?QCqx4HV8HTEHQ: C) ϳS)4S5 8ˏ;R4<W@̃&eź±~B >~;2.$pIbm_h^5 BߢNP;#Ų+NIt`Iz@ km KAIRtJ;W56̍Uss;:U`/3SWk'-`i>iUJJԵYV?W1K.?J[ZՐWqY&`:9Y5(* YB#KDE)")P<} mHF NM`d3R_F>D4\eN f|hd ~ 9: uf4[”RN&wURav^FHJ +3\3˜+eUTH̀gVJg {U L(G(t3)e{ʶvLe%k52$;*`eʡ_ZE]PfuL -4ru\(39ՙG/F)t+3iRFPJoAMguSrTQ.T:bOHbķ]Leu? L1##GcJW0/r[OX@W ל2SS{4~씂7]Fn !Tt Ģ 䬀 |seCYs#E/[UXbR_xאW|zk}LF23~X| tJSwzoHL{=_JG~wKW1Ʉx7Ytqyl xKҬ/wE5}i7$"cn0)c0(ActoBZt]9"Da sK? 2,8h$Hy`Od(dʵpsnDWfN<$(,t|QNY'Bi09;V ;&;OKn)7E``J(,ݨj׌*AW^d4Zj~-mJ K@1mMc2752l}nZM' f& t ` лgrkN;O(}t (C# (!1(4mB07ՖVPHRRLySA]1kxAա$)@a"@LSB1ZZ/azfo# endstream endobj 89 0 obj << /ProcSet [/PDF /Text ] /Font << /F3 4 0 R /F4 86 0 R /F6 79 0 R /F7 80 0 R /F17 7 0 R >> /ExtGState << /GS1 8 0 R >> >> endobj 91 0 obj << /Length 4850 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0(( Ghr7E!APR5 QLhCDP=0 r#xJ80+k)o`慼0q-Aq 2/](*e*UՅ7 S3ZmIS=Ob Wk.>qZ.7o)fE/P!ª0;P4,P5b!@݆$8nƈJf)!H짭G uijPAMBtPBeF®#gFR9: ZKL2gQ}בޣDV CR9 #40LJ~1 Ί`1(RT͵p3:\1#([@o.fy^SPhg-9VrhLԅ PZ<(n"7™޲G MQ8*R`q[S4gcezX, AaPu81++9|$+3+c/m Pb0s6Tpm^0C+ '8]PbI+Ku+6: !1WQ]+E'8 ךsDG2UnU8\e^aUB=) eb J T0 e"Q p`D:Y(c9DI?pܟ, GVYBG5ҏπ1/DcKG]b~ľbp-4 M8BRw%0EJLǫ'UJ=NEL  ,\;C]9 Ή4_&])iJSuxE}7' t11 `P: J#{A"VAMI&T b0A- D[YX cF^8tc,9.5M҆yJ E4AKbRa t&S|9ƌ`iEE :Br/ RŸC1.13?:"+∿$*Npw>)>UBUAJ*A0`۠റFb]a"c5(()W2G |8aPSF,ȵMzzj@6gZ `{@tf^";ZEf&ĵ;땐mϤpU 3ٶuKHr45+0 @кv +,J=x9ݧ߲Bz 1F}H MdI:&j*y1m#{\PR{''DžAjBYֹUc$̒h7ی|$h$9ro!tIT^h-6^/EKIR`4zEөKIL׿Dދp%.5)uPX?3D%9l#\OJ+[LO;H&݉<#Vh;*G˄뫣BefH6% O Լ,/(+v(АCD1%j1$"A 5Jn  -bP CF NB,"43&RPFP㬉%؜6T@| @Ԃ"E*{(I͞rpl=Jvx NEP= 2 , p%~wj І``(nt̄Vfzq(>Adp lXxhufgt0ƌ,&,E y-đ0QNjCE6b@InkKjl,`ƻkxFUPQ.Ə^m97G*Nf׏^PQo; g K (Wr,#>qhzph>p^hGmi-ﰉ=(9hf ]7ClnZ(iok@Ȃ:G`h[kpM0RFgD$Rmfbn1$P G xoe (.T&oƘRr$tx!*тPDDj.2I񒔱X?b&8(8Oz~ʢҿ+/eRS"MPnj*KOb"CR3K$PAqK' +bO)Edv VDzRԄE"F; Z(eB,.49 Zi' 3P0J挲.E΄N..2$L7 jp~:b}A/&bƒ>oA9xG#D Hdb @* .(fИ.Ih )"o|C2p`^ubSMH˪g8s3?#^ /C3oFO.*/4j'2X$Ē-3F NM/92i;$#TC%V1>I*.o//J:o4DA"H HfL/^/&iJ+Rn*iX4-kNzjHcFb֑RW"D5H}"p @Fl'61 R6. C54GTRfeT®M_2r/NZ&$-PC 5^#0jf0L[,tU%2O% 擔|E9=E Cc0)U⒄)p@ *AetW37X'Zj~ q1)6,S om%q:ԄW`wFzz{p4 U]@%_|| (@n!W VϘ|h}"Zfg82g3ق3> /ExtGState << /GS1 8 0 R >> >> endobj 95 0 obj << /Length 4445 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0((* Fᠠ)EqLn(1 Eo0)ᘠYRᰠH`e:mFH]J2c+ b) d(. +uшr3. qu%Nҍ-F!viJ! Z+mcqфr4E9L= Mir7MIPխ!QKk*\9=źzP3ju~>xAS~`'P7*K7!3!jz=Ò #cԏ+XZAQnO#xT,,6 SR/jQn8g'Ec (jA ,?, #4p2ӭ'R"tG/+N=ALS#]3!DeBMCs̶*q=CY77-P+Hm-/4^Dasry8[idNW9H-srEz=Ҹvk( a9Ⱦ4 U튇M[TbjS>y#(9 J;.qTEvexwC:%k!ۥe]#taG?}A{ c.7 3?1*=Mxz+g\{_7R†='uou xߚny32W ES \GVܕt ҵzE 8) b@H&\p1n ?Yt8'C#~ >wڜcN/CV^y}L]9tvD!:b}AW~ qAVbcqfe38]c)ňI 6k\fWoG+95럴.A$$D;^H9 #~?ę(jrYJ(cT^iǗ&#tFkȔ&$-'`p$K I: T&ZJ)!Ȥ`|^bK`jhi}0Ppn%7#yphHr>&YZa v*~IR;hWSHa$-}d%X%ٜ~RaQ\!xT%bhlD $LjT9Y"_N碉Ozt?݋1]9{C~[t0_s<3\M^l'2N@O PᲈhQ b(A/=z8g'pGkw-EAxFI+5A@ÞvWNHosA=~ȓR@u&jɳƟ|׎n~ . /*71l0 ^q`dpBp-Eb9J@Z H| p=qO p\QRџnƇHz:HB]OG?tEd[1O+&::d"[Q!P=pn12^ â!#".!"q&w!$ :LЮqPqpXj(np.L~Qq i: MhP/PtMy*_OnĄ$ϴAOR2+ S'("qZ^9àHJ()i ))Ó1آg@p"  1ܟd-r\ד)5 s@/e%]g/2=$5,`!W2SSk2 +58k&3rw82|,n{% 2(0)S6*r"k3DR0ߍрƏ:#LH1;l!;3?'35&NҦ.;|+\9:I2sI0#/EM,=,bAZkp"eS2bd হLJWn#RՔ"SƸ T?44 1x;7O O2T0Df*49K(z :_ G,i=M.L&_"%9.E/TYKhOPL;2ULtOE2 R`QMN0=n%LST4U*kL%U=+AN9M4z SVSSt#SuQoWͬrbjlhfl0aTkgi>0$zFYnUe- +^@D,L0bt}, :X Ec1LJX,*BƬ-[D, `_?r,7'cWU)eɠDJ7λ$> r sp*]-8 AI+ǂCm 1”r)WʼbWHn06qU5Dx@@*NZ)r4m`X jkG4JgiM.B5(",E ]g$ ]Fc$SVz1wQ7-@kgsIEBl/"~ψ ,M[jm}b*‡ŗF,GE}G[p2m` =ZPjttMNJC{Fu"8=e,"\$FB+cpvW'Q)mjwqSV|<FDA6B(H(FJĝwt3{כ/!Cݒ=jyD6ˆ$3&X7w6CZ~b:)H-w0'ࡒ$,t0^F3(-@nibY:< 5a7~`l/`6f4m)Ǐu㑺9W5 V@01dO5v #DI b endstream endobj 96 0 obj << /ProcSet [/PDF /Text ] /Font << /F3 4 0 R /F6 79 0 R /F7 80 0 R /F17 7 0 R >> /ExtGState << /GS1 8 0 R >> >> endobj 98 0 obj << /Length 4877 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0(( hr7E!APR5 QLbQOX?)p2i% B4Ò>IG&APKZ.0r=qpdw.nf.40s\m}E9[ccƺM0jVq5un x^S2;a|ե8 X3 UaXVSq@&9 aND_q3?H07wtSYV ~1qc*u-OxkQ\-{\&iPR1CJzڬ4`cF/nbDRCgV H~t^oIbS '\W:[x0)`C)czOsogP4W&RޜfDͷ5Nj(0 XOY!2E#R5EIPY^m} :FRXH ,AC ,34Pø HDK|Z#}}: qEeds-(wso)N/A%L5(7Zy $JEP ] "_T}VL8e B'X K+m2Tg13h`SR3-H$(y dɇr@ZQ,xolg.zYZ -[a`҅dđ̴%4o*m #p-caiYa@0(+ Έ4\:9% F AXd):')EN_M" l(H3G9Dz.x̚3253O=[zaXNTz>+jݕ9F-XD^j|NU<x4<BZT$BKA:M8F\c8.ͩTHtt&9Zm E˅M\NFdR 7,`0uC =m*,28g^Fs1S iS B`c'+d *#3Sakt!USX^` BxP 2 +:z䨯'F,DG]7Ltq~Gd{ A*PhBJ8hK,-_UT9@8[я0~ySĜ ԋilN\}mЊ'Qٲ( $V1!7f6 tϕ6qL1Ddfu$ugZ6Gnw߈BK*R LqCօOnȌTGɉH{-.E`N)ZmG . q 0E@ch9DDR +H "*Of 8XyZ0 Pn1,,гR )d*Mtn>+|@nul'0 jongJ ξFDԭcI-&P>Pfӈ2p>eFDdqθp^W$S"I4A' hRkЛpx`4%,Ug|_F ~`ʐ$ p#n$ bA. 2 .HBp`LJRME*CGTMo?$1r'xHiwbس#.=GBxNP4ǀG">T`lHHê~Mƹ.dDc.P^x`ʥ7%*P .#M+IʽiptCv%P 9խReƼZlE 2F6NqODD;8f03=l2l=gBxB1;5'UEV"#RRK+40; 3 \"BfD."qcKss L!""N[alI0c3e]+u>4ܭ;t>:%;?2aR'" [fQ25*TM %bl)#/&iNPx`^FzLdHL CF#dh+f(gvASc2xb&=SPgvsGBți4T t2a!%#t@ KR&@  `E 2EEgob`i?n"@nAL[bnŴX eWqF,9]8ѐÊWnOXėɆ}.nxKY8R63a  0UwX{sxY4锋P96A4 ?m8Y1xty!Y%sx_{x9 ߚK}xe׭Ő@` #}*y ;J~$y8#9YU فgZ[ OCn~i :u:웟` `Z3;8 nOl8g17mxyn0ρ+@ آ 8wlweP"B'lig=`aB i$wgu)""Ic$T1Kēaj#֧jb e Y7":6#`ȷgi9; 瀂z 1ߢY!>pj{ 8{(OiZґM/4csyt]te4RVנQ6F' )L(⏻O~߂;஼Epm/rUBu/&i1sHt> qB' Z kj<$)YpGBx6`#0Bp`h B V*f ꗖYYxWRyM:m)x&_ŝ7HzQ|5hB endstream endobj 99 0 obj << /ProcSet [/PDF /Text ] /Font << /F3 4 0 R /F4 86 0 R /F6 79 0 R /F7 80 0 R /F17 7 0 R >> /ExtGState << /GS1 8 0 R >> >> endobj 101 0 obj << /Length 3407 /Filter /LZWDecode >> stream yb7 DC0(r.bPA!f7#Ch**gy 3RĘ\0 G0((* Fᠠ)EqLn(1 Eo0)ᘠYRᰠH`e:mFH]J2c+ b) d(. +uшr3. qu%Nҍ-F!vh2J! Z+mcqфr4E9L=dRq|O&H"[ChcqR,T"sy{?{1`3pzF ?OaKT zۺڪm*S幮{(.`Rj¯p(/clb5ml؅Ol/YJv&\4E^QMW0]ԫxƳDQٴu3sݳX`vg*9rtW!FP 4U8YoمTM`)"-emݹS/}P^͟Lz dS`FN =҆ta^+cSG=[4u7?~ݕl'iR/(s;{3k4ݙ@vDQ:`)!  n4G3pwUz9Rݏn[/Z~a.kץ>&-zUoVBPs5_'D^c]/|:x[JťР]Z}.#t{1M%@)T 3ʁ a:d|_=ynX ,P+(;q۳EkψA:LӅ))m!pblOQP^d KLh{bv %r9AbA4dX9/=ȉNI]@(- 6J(n !3bF9͚cB]Du1tJ ehٸgJ՜Hhc,pRA((T}Rrq$JGا(TRmn+Q|Y*YdgH*2AC($ʎ{&$BT LSDZl@i6Ða7((P[%(cMx} I,O9q.,mn*aJDJi`PCo. )A$ WUjQR(fhpPc)󼴖ZHR">/ J Ğna.d)9Q_l;jZvh%Tt Jh:dC!qȕID+=Ffod&I( LŠjqv=(\ PqC+Θ$GF صЪP6M.0Eآ}/h<"L'1S`߁@k8Q7  @_aD2)$. 2 8$5/ۄG")Euؔ1u,s0knX2ny%+?7v~^EK .k2՞x4i)`yfľqZ] A@J/ibyZs!€$V\I2IE5]*jj%s9 V,s81howHգe=`l0*4[OVCR6SPȦ%900xb Ui3ŸK6&+Hkzo`xk_!#E q@k'AHi118:c(nۙm9++(|&@~SIv^bAF*xtqʙC0yh)}A3#ݻNy]vV˪=.Lpl"ч  me5UXZ33Py{}e *m;3WR]Woi#$%f? Eg"A )Xg;IuinHo$g +2D#9 TrsBV8FtWN1#և 'O΍9<(~CZV&|Yv˄b8L[I ,| hX6in˾)”Jx)I#⺺)` fdd@dժ|xB)Z,b)J%bɯA|hNV&.enȪnHv&h, Lҙl'ORN,LEQ1~)"> 1,\ĉԗPҙPT -@μZKQk{„ f`JP.)ENz'hDd둆= -PJ; (Ъ̕ pqf%XL! [+l1G*9 ̝.(IڇԡD"CR$K9 5#)$,]N^ )@*OH`f(lH1)@ ),b m,cӂ鸪)uqnC@1""<Y(@Y'nAkP[ *5C @k0,l̤_'%LP0b`/"Dv">-3809'$+(.PU5QZ4e o>`q'-I5z, -@(|I"QJx77jK#>+'0~Pnӂ9Nc#Q1dd);L9 =LNf?b8b BԧF  ,tL=3P͎.2B+Mj/B2),.>(kDvZ0LHFS! 6o0)S>/ "1Ш`l(\*ztRf(:dE6Q'1IJq4J m>?H ,lNWGb4ΜP:k >_2QN/JOUOO8Y<'}@<)yCBBU#F\SK-, @ xbkjrQ` b endstream endobj 102 0 obj << /ProcSet [/PDF /Text ] /Font << /F1 103 0 R /F3 4 0 R /F5 78 0 R /F6 79 0 R /F7 80 0 R /F17 7 0 R >> /ExtGState << /GS1 8 0 R >> >> endobj 104 0 obj << /Type /Halftone /HalftoneType 1 /HalftoneName (Default) /Frequency 60 /Angle 45 /SpotFunction /Round >> endobj 8 0 obj << /Type /ExtGState /SA false /OP false /HT /Default >> endobj 105 0 obj << /Type /FontDescriptor /Ascent 0 /CapHeight 681 /Descent 0 /Flags 68 /FontBBox [-61 -250 1150 750] /FontName /CMSL9 /ItalicAngle -9.46 /StemV 82 /FontFile 106 0 R >> endobj 106 0 obj << /Length 2958 /Length1 732 /Length2 2225 /Length3 0 >> stream %!FontType1-1.0: CMSL9 1 13 dict begin /FontName /CMSL9 def /FontType 1 def /FontBBox {-61 -250 1150 750} readonly def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /PaintType 0 def /FontInfo 12 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSL9) readonly def /FamilyName (Computer Modern) readonly def /ItalicAngle -9.46 def /isFixedPitch false def /Weight (Medium) def /BaseFontName (CMSL9) def end def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 71 /G put dup 84 /T put dup 85 /U put dup 97 /a put dup 98 /b put dup 111 /o put dup 116 /t put dup 255 /a put readonly def currentdict end currentfile eexec U{!2o{ joBUgz }ھ?Q1:]ihd0ĩa˹̿ƬwYI7u#th?E0mF]6I 'fa#(Նx" >E݂"'z?D)z&(cx CrVxv~xb?F?n`%$ϋgL[cc,|@~B 0_n|pn( _##";(|)`tQ^X2yo)ի23$D'lKrS9+>TB/UNP4RUiEGPXU8"-508 MzIm[hSnZpϐ.wLh Ɍ`&NyXZ||DPSܐ\dh.t$#:RV>dJFӎ˝XQL 1~WaS\/`&9Uzc}ם>x %MvF%Cݔґ9vY GM!z)l0-MtZM%HSUhz %7kBBVg%FaF8g4MْfC:TY7 ap~rЁ6Xa<8!NðiIHY#ʢJxYhix)>̀:wDT{g1 Y&:<9?Ceng{MGHDBm1x)/ݚ-Q!s8hCT gEچ􄿱 O|;>16PWIubصْ$P5B0w :MS5nusKcIthӦX@;SA;=\+- 9_(l"MˆU|eao1!TA܊/ ˲8ZE궟'ps|_8QbNN\z!f9ڤŬ,d#OD]2OJ79l$n.O#|!;mUxo:%-FXhl WiPì:8sVW(-p.ow)zk4qb)%HEGֳj>ĉjdL椁h κ?UK4OWj2(5d.UJ@]$%\7U!r+" ggH{ˮlMa "qzq:2Zj> | L^:xSqOڮi; #M$7d@p}wwtp[m62c) lx+3hT\4 |M"+tMf1Q ] hzWdooouVj`cpз~N93 TTfLs u(7.񡕦ƒSٳvkuFES氯+~.%RU0v9{:uWST{q.S$SCO=@sX1! Fɗ8PbB3Q2 Vkӝ28@`^۰t+P09 gN5=g94(KLO2 `aazzUm3iJxA 3G5g1}O@ Vmbo"ʌEt&5~^50p Ͻ@umǙg?&'Sax\٥F! `/2& Y{dN :#L vPFfUºGP;Gձ^hrT6Ҫ+ <(*l3~86G􆻪~[v>Cu,.]YKYj!$ت$..%'j)(D3)G_Q<䜉N,)IL(9 F*te{w@m9_հ6g׵ex{ևlS`܈Z3WC;P^e!d%*'EDj1FO2qIt_ۂû`A5$Wc endstream endobj 107 0 obj << /Type /FontDescriptor /Ascent 0 /CapHeight 0 /Descent 0 /Flags 68 /FontBBox [-29 -250 1075 750] /FontName /CCNIAP+CMMI9 /ItalicAngle -14.04 /StemV 74 /CharSet (/k) /FontFile 108 0 R >> endobj 108 0 obj << /Length 1984 /Length1 664 /Length2 1319 /Length3 0 >> stream %!FontType1-1.0: CCNIAP+CMMI9 1 13 dict begin /FontName /CCNIAP+CMMI9 def /FontType 1 def /FontBBox {-29 -250 1075 750} readonly def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /PaintType 0 def /FontInfo 12 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI9) readonly def /FamilyName (Computer Modern) readonly def /ItalicAngle -14.04 def /isFixedPitch false def /Weight (Medium) def /BaseFontName (CMMI9) def end def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 107 /k put dup 255 /a put readonly def currentdict end currentfile eexec 4]Pۀs?Dsz^6i^Ota / =鮮,0^"PR%7фIp|^h8)4-ԿR Je#2pH$^B5o/MQuنLe'ېwGg|ʌ No`UC21 0nf+gyop>&J U|DU$Lμq{(G|䯾 "Of"% p| -/ lcA ·DX>oI6kbRCT_UPT^ﷳ(D~1Px,X$I[!wY ,.䣞B4Ã؎@5vD{:2{\ :a-ްDD!ҕW!$w\SAW녉K;߽}|jc.s0Ý æ%\G`Jho%h%ӹ~sBF9oU-׶B(%WZxjYO; O 8s{3 C3R>2ߚYϳluW|jIQngfЩȫڳSkڃϥkdSe-X,-]Seތ@vwrn%R:+0ekQlZr`+Џs8ukd0pJ{}'/@oԝUpΰJd ?D"OE\t"MFG&;pv3`lA!1X·4lX6dhѳZ_ g rb65&,/m,  tᮃr<o:fU5lhBţ{׾ V .TYy*w XU`?im=n~p@" ֏|r;%L u9ZM3NN", j h|<?[c>v1v4nj-DBl!ޠfu|擷l0xG0<>D>7my}j:GlSy ɤ𒘖GgsM!r}YusQMn^E endstream endobj 109 0 obj << /Type /FontDescriptor /Ascent 0 /CapHeight 681 /Descent 0 /Flags 4 /FontBBox [13 -250 1077 750] /FontName /CMCSC10 /ItalicAngle 0 /StemV 72 /FontFile 110 0 R >> endobj 110 0 obj << /Length 5427 /Length1 971 /Length2 4455 /Length3 0 >> stream %!FontType1-1.0: CMCSC10 1 13 dict begin /FontName /CMCSC10 def /FontType 1 def /FontBBox {13 -250 1077 750} readonly def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /PaintType 0 def /FontInfo 12 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMCSC10) readonly def /FamilyName (Computer Modern) readonly def /ItalicAngle 0 def /isFixedPitch false def /Weight (Medium) def /BaseFontName (CMCSC10) def end def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 45 /hyphen put dup 47 /slash put dup 50 /two put dup 65 /A put dup 67 /C put dup 68 /D put dup 71 /G put dup 73 /I put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 88 /X put dup 98 /b put dup 99 /c put dup 101 /e put dup 105 /i put dup 114 /r put dup 255 /a put readonly def currentdict end currentfile eexec 8wu1?Y0A#[l՟[O >!(-ETBfH rkC,- g=ޠ)2-u(6?X^V_3B c %S$NBT)=FRmi^8l(!d'f[tg}Ǧۡ"0;d¾' Or5mX|L!!SX冮X~LJ%; :nnbtIΊXִ 'Rا9n!EQqދ)йAV#iyGӊB4Rs#M)*nV2fcHsZ!Ds*UPGdC>鞦b*5+w$p3u/"]!K PhYiߖ P2 7ZS/ft|CsaEll0I"?}df*v\p@y1LW!M=`[|&wFɤBl1sDG[NݙliUKŗ,+|Z[[]_)Ӷ$BP+7p!F䭟ڗ|$lO4 B6CS={tlrB-Bhv0L ky 8 h QOђb!@/"P%"?4MGͧ\aD5 &+ɳ 3L6bצRrxs+|O1n,=0IsښB6[EhVد $0/Okyc8׈UL5S W` l~m%,WIjq``&!Sq:LM )[/Uv4#+x詛@x/b9y;d='{@h3/bJZC萲.ȖZ}1]i:.l}y`L;lF>d߮ԦKUƗT7ͩX>^ FL1ɺVi[YA5+8W):>2Ɓ*UXrKdo.I&x惾z gRU0,]=e¯;'*FĐԇ $O1aDTY<%ґ:)ߌf9+{ވ2!dز@^ٮe$:V*:P``*G6:ӦYVÒz|I,eЮy4 i=w?>ϰZ8a E@vc`q.RhK8nlM_0d*蘪°ueF7d;ˇJTQHYD A| MX2m^;PKL@XOt!cpg.Z O0?<5adKUVݾs"e~U3]C2%&%@_U .?TE.n88ʗFMA}R~|>%[,yAtˬRdL ҂XqK@Ά]k;d'C%yERe4&z'O_QPt0Vd߬zn:f)5@=\[)3'"' 8LԳ06o+@( Rgoyn{ Ѽ_z!oa+x'^58{y}@eGU׭N{X+G\SxPH WJL'VV?x{?Lu5 6UcJT%?l4Ҭ-|\F/jΞJ%kj3d{cTķ Qs˃!6Z5\^7m,а8nnU@8Xruh}t]:–( …tE4"YΓ7{>uJOw#F0E ɊC\ ^TX;߻/ůLךf+ Hχpیl5jϏO@flaԲ]5u(}B%~ޢwP(=g5s ʷMLcx9uaAW[Myfr7->=iQ9q!\FAb'ş<3UAN eqM.VsJn!›u  ӷe5 #S~Kt'cBL&}qxw`~j`LZlRٶo] @$ Sv}y c*G*@,M&oZP<1$.7 0!$"lYNH!k_piGaSMFd~d\Plyް3O68O?=z Դo"33$jb endstream endobj 111 0 obj << /Type /FontDescriptor /Ascent 0 /CapHeight 0 /Descent 0 /Flags 68 /FontBBox [-35 -250 1148 750] /FontName /CMTI9 /ItalicAngle -14.04 /StemV 70 /FontFile 112 0 R >> endobj 112 0 obj << /Length 2506 /Length1 707 /Length2 1798 /Length3 0 >> stream %!FontType1-1.0: CMTI9 1 13 dict begin /FontName /CMTI9 def /FontType 1 def /FontBBox {-35 -250 1148 750} readonly def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /PaintType 0 def /FontInfo 12 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI9) readonly def /FamilyName (Computer Modern) readonly def /ItalicAngle -14.04 def /isFixedPitch false def /Weight (Medium) def /BaseFontName (CMTI9) def end def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 97 /a put dup 101 /e put dup 108 /l put dup 111 /o put dup 115 /s put dup 255 /a put readonly def currentdict end currentfile eexec YV-"ܕ{p䎕RM1 Bwnn4(T4O1S/1G(j7ON$Ni:6p㝘1;ttZҦd٢.(2ˠv-wi ( h) E jۡ,58;>1.)`jѩ !RhWDyN.yؓDZ7 \19"%tWb0NO g&~U6f8="=Ċ iDqE8>|UJHO|&W G@jO^O U UY"Hb+%ʑ/q=VGAI#$wӒ5!iT$+hΕ__0W{%R}J'#{K&vw9#A|#50ҞW*?5 @w gh~}&Z󿞞-~gvs#eϼOeiN\d AO+Bw]q^x<;,iŰ ~~։P)Ƿ:#j}ʍ<ܻ$۰"3l`]S5diؗS}P?ӻ4)=G|*MAblBw*e}iBdjM,-˔ n'XpXZGcէ}ψ&YNԃl*imZ+ p-/ ABO:9KCPKv[{.2ƙ=ŚcfquQ⻶dDAh3KYP;!9U8a?A¯hط ?IsGz,*=r| %0SID*(*1UsNQ6Fjv9?G{EV"Qt XNυūR[':\Wbi1 Y:T?(k(%{ybdq1210! [U1\>fX/ip[X 5AyA4z8D3,Zk(;DF"ڇĽB;D6fovȓ  SKs}`KC-. kTҒ^QL? E6n'BRd1<mj҃-vE\,ֻ>A/1)՜?Rs=vt𢺩`Hv.~,xQ UƆWcK$4(3mjW~NB[(I1ͷ|eC5D,B5;S2q%6o9#V͘##/`>9oRT[-#"3IhfqP8diڸ`|,~,k/R3&;4^܈X|o,22 ɦ@ 9?c,O" Ǹ|l^@fqJ1^ከO1nXFkL$DIsߞ5d/'HKsxN z0U1wW\5ݧfa!=RO0~{/t 'H:"Wx(%0nQt?gV-adʈ1lRte|ok0w33P% U4c1eWҎ.яacD=?#? endstream endobj 113 0 obj << /Type /FontDescriptor /Ascent 0 /CapHeight 0 /Descent 0 /Flags 68 /FontBBox [-30 -958 1146 777] /FontName /CMSY9 /ItalicAngle -14.035 /StemV 87 /FontFile 114 0 R >> endobj 114 0 obj << /Length 1843 /Length1 688 /Length2 1154 /Length3 0 >> stream %!FontType1-1.0: CMSY9 1 13 dict begin /FontName /CMSY9 def /FontType 1 def /FontBBox {-30 -958 1146 777} readonly def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /PaintType 0 def /FontInfo 12 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY9) readonly def /FamilyName (Computer Modern) readonly def /ItalicAngle -14.035 def /isFixedPitch false def /Weight (Medium) def /BaseFontName (CMSY9) def end def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 5 /diamondmath put dup 102 /braceleft put dup 103 /braceright put readonly def currentdict end currentfile eexec 0 +Ȣ SJI!ioK/W$hک3̘)1H0+?":30Xr> Ceŗ uxptXa|,k a;AzA{H@٣(Na1b'`b=j\U 4-xtX[DƏyHjh$ 5Մre?cX??[wfHt>{1+DZN]sÔDh3FBq0@X ͘sf݄whfBEJk~*`z&z;1-(Kx q~+ʷwcJ8)30AvS8T~)YQj,  6{I*eM(oq* -)n `}x` / Heug_⑊,t1SF/-Rਭn<6Yc$"Yd1ن}/c[?e6+2f:XT~+aATNe"o6P8˝\?͖z˃!x44["d\E N/N>!wY:Nh=p )'9}}`=6ӣ19 fjyˆZ3ϊb83dnXj+v"c)Y&gl3 / -: $倨bǾ~RJk6RG^omx~ΦX"e!*EZ|:8p9*;L_WH8I.q֋IE8JC$e"T2D93;z7Ѭ->mhwЯ.S[셏U 0IJ{oI~%FTAuOszbCW*`ђ' *Av>wy/eM^ S") _.á <6a;/=i7jߪ! c~v-6SIPA 0M`)_qSwܕe"T,> endobj 116 0 obj << /Length 14150 /Length1 1741 /Length2 12408 /Length3 0 >> stream %!FontType1-1.0: CMR9 1 13 dict begin /FontName /CMR9 def /FontType 1 def /FontBBox {-39 -250 1036 750} readonly def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /PaintType 0 def /FontInfo 12 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR9) readonly def /FamilyName (Computer Modern) readonly def /ItalicAngle 0 def /isFixedPitch false def /Weight (Medium) def /BaseFontName (CMR9) def end def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 11 /ff put dup 12 /fi put dup 13 /fl put dup 40 /parenleft put dup 41 /parenright put dup 43 /plus put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 63 /question put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 81 /Q put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 88 /X put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 123 /endash put readonly def currentdict end currentfile eexec a<fƾw^/)ꄕ1#8nDhDLPc VAc\z7ds]-^)egV8vg:G37GP+zcR*dÑ)1q[&RD+F" Kɼ*Z;?x"[Q1ј!Z±:8ĮU>/f^;-"[+cut\bvʺ("~uWPJ~1e@+`Eh$;5rl͔>aqsߜVE`%@L@w3$M/2Ӯ@˯EW:“&D@VF"yo3cDP|D" zĠm.%;oxXO}W{}U{)@`i83wdRkEV, Q!Rv N\yYS%|G{++  ԝM(VVԸm#ܥy@JV  0mD܍{vn9L-dmѰsW&:~I? ˒g?5a^on7gT:,ZL)"ՌdF7&Y [,4<-=^{Z^2 4}IX^Wx,'DhT4p7ݓ/^_cnT^jF!}H؄|% Uc\G"6mꏌ4ZKna={9AGC[\̅enòC, 2L%90;wtmCi55(SY~ղ 0gFO.`;Z*IA VwE)IU'{NŦk\HWlTL$U$s3?JHxN,uiC3Ͻ^OtSQm\F Aspn<$-|, ѠjMJAcˇ3h6DRdgɴ_'  /"HmO>=c¸lCeBEunwd ؞K*4HK /N$_oj (^0#1Q\NJME ~@q7G,M/*?ut 4D%eOtp$tldCZM[Ήse-iE1AKƈ_/tHIoZ5r[sOr@aŐ/Acӓ#0;.6Gla^~j׸)=pJX*4ݰɨ qY͗r;8|[H+lZ~xt'3gLn$Yb{=y,T@R6Tmyh\2d3 |-mcT1pfmj<){愎& A4ދS%Z C2`g6L靎XA{u8A8:90C/_6;GPg>'d{۽P@ %:H}/P̎gܨG1c:& rҐI,F=2$5sOMZ$񔽹B-Ur&Oݷ-KB 0A!Oa"O[nKz{ )U. ÑFN`ĕB(ÿSõ}smѓɷ!yQ1lI?Q{oQ)@_Xu%`AdDN!4qˁm&}W>^W2 ,mpm x! 4x/Brnkʂb%Ze54,T9HG 8ӇbN6W;}gG0ֱOQk)Km{sr\)|A;-@rޖ[ZtLvp_od0WNwۍD_܍TJvfG=VA~&SͿJ5Jnp-6:f0/s':AzFBf5rUUpƌO/>ҧ/; VVU%jD$i[(Uz)ɩ}Ƒ.o}~{R|>GhT|$C QΕ: N~i%*dm q'a@nx: 4"bB7ȅQ]TN/:j[X&BݔJ?K!hjl-%d|iZܽ##y \2_{x{PIcO+D@ vXݣq-X8_7+-3u bhujP},kpf!@! z1v0 rand! 1b.76mWWl|0ϛbUOu(^#,_W?@Dq6$ `8{Med)ipF$wg[C|:KAE@=1FCy6n{B|1gZ2bHԟnT ")NI,EBXr^ډʣ|,_TădiX')$&VfeLgv3rË?dnlM٫f*Mu+AXmݞ S_EH*YWalCEw 0YOR?(+xt:r1 __x~1[,yW+ ZC*i// /L ʱ(/I6cym4Vc0c/#q"`0LtіW7#z~7( Y.[g*6۟۸ ?4V1D5=oͱmZ?C>{RS Ra- -c" C ?!X :^uo58M 9-D"La/4ͨBAt>#ԫ 퐽5{(l։ؚ4-㐁 .Fnp>k%#V6+P6 (㑚Cȼ"K[]ƛ#߸j}87oJ^B˟+=(/]Q~lA ~n(=ԋTF _&S"L(L6uYdoF62Xa6uP.t=vgʮ&J\ziR~X6 /.Raċef LֿEA1ypk8bzؾy&л7alW-,A8L"bf u)eGy`6ɏ`'Jg,5K!& !<&?C#ӂ5ZJֵŁqV,uWMD&evJj%kS-RKڴNQ<~:S alFhFJ5Y}N=,p:{f6E&;,wnSobSҚQMʺ-+lVHimh\|X ybo hC8&l>Ν`o&IuN#P#CwF^lzaRu*Ft>B3@߻6U1SY?6lLAP]lZ(ߑIO0!L9>z'ߎM4@UH&sR9 i6/0ZW'zV<Sq . bK2򍷃-ڡbjм`D/Go1"# eLKN[WAV^D??N֔xWfënqj+ٗf<9!>P?#œ;!T[.^I*l6n͂ǁ] 1~f WLHZH;ct]U.80'(+eb;RHa&T~r04wD &R3dB4j?"kVϴi+L:9RBiZ-\fh>x@*k4.C׮C@?Z_n2P5֭"c  dmg<*䛉O? H+ެG.6kVmvԗ/.4޾-Ng 6koYKˀ]оނ UIyv7P 3Pq'y(}sN[H :]`^ uNeY\Z8vθp+a>fSҧc2-vtWvkwFoS+}@~c?mP\8WՑ,,P>ײZkqW R:%xM(c=}7M(:!C]hGi=s=Eڐ#@P|`X!gm e*+ŤhGgwY2( t[GYojg(_; YK~7koǎQ i1L%}7Ҙmc!~,n!+*,k^hAϣ‰í}gK Z9Lx28 OKa:uK~n8 "Pk? H h%3IJs7bbp83Bg 5T{ʼTBk[9h⟿Ys?=0@ ]x琂  dwNB=SWq:kR1[TyER.tmp@q( j/eday #݌[2\Ŷ=P,Թn(8YjK xuDPmog2 ^М:* Y4*hJ|1!&kYa-qH#6HnH]s0&I[x3$z؜`5m +o6Z8]۩^{z&H-;Y ׋\ĜؘfKmhUm^zHkDGI{(a_<_ǂ T\вi' S@z { +>}Ku{%#?)Y D2yNv?۾c=.wo2Sh"wïJLC"(FnP 'Ӳ:bNP)2# \szwlJꄖрQ#:^b.|:zԄ(RS7@InxhJǟRKL-&g~AhU[UsJY?j7G[ (=,:>z#_G2'6w̮TB<)¯Eڝe;^Ѓ{7H1}I :c_yPC#1QY\U> CƭΜVo 7^-6ݯg荮Ep͠t𜬏("\/{a_T12yPY‗>02DW'/ DMW-~ /s傃#js,-xK;GoWěRe܊0d$@u<ԗ YA"Dz|hv/܂Q|s 5T1jM[9IDu~5Hw:BR0z:2`Nckm(DZV夓ǧrxZ;4Cyw= 5UyA 5 ͭT=a4izrju?C$Z \ϓI鴕k*xZȱOuDW*ƭT͕8ZB_;NwKNfDaR ?GwWJϬkD3qÿ D]B%C6*PS=%"N,Ly%נ&RF[@~@<3la},,`2Y1S5>$Ԏ9d_; colE+)T?bwu 6 k0Q>,.b"i:T[M;͊HHV) *)[mo3Ǻao><ԃ*| u[њ&mlޟ34$ q\#F; ]48aVQ$3pSԃ>!pbiN3$:[O'(Qq:UNe#ooErNEȇ*v"Z$eUj5&KPMUk!HQ`sOc›?+3*x6 OE=d VeH`M U?#4{BHK_2c$;qC}ը=q&AdեLם *s).Z@ ג<N9XY [%]n靿jfٱzc0C7]4cj xW|g_ؼpxJ6W @&mZXf;2'bbJx-cz8>HZ,ǯԈ5^X$/yLA0k 89//eĝg9|( ;o_ o>2<:i3yD15$q;[3}[0iW~s1+!ЧXO+Shh2:|6EOԩ{zz^ +8NuK(2]<XFΘrA0Gy 1rAH1QL=?k_C; CWm1ko amMdʹUt.6=Np$C\[ x%,y 9eUuVMh "T]-KEԎ:OgyأR\,mv* TYQT&y˞Wd0ek J'dk6/ƺ0>^m5qW\! X(^!0+Lgܟ TBT{Fɻ5% f{1E*8qSXJF>5*&uuAR8OQ "F<6¯"5CR{ 42| lMҠ ԇ^2F -?4;NT_JEEGtΨ?/ËI<0 toyȐi8CRv{ZxniB\bWmI1K zeD="YE|kQi1P& aytO;;Op>CR*XrA~XzZ?c/u0YTN2 .sf߰]f{:]/{>>(װWd>z]A[X) Pph=cxtc{LTה؇+]A mP_ޒ u|`]"3"(bT[|rnO_VT DWqelW(X0pt6QxB`E}*g p2..ky豴]y"h1Pw:7\L?>F7"$z t݀׶z$7>!^=Y!_JyP~$zE~X|(S ӨӬy_}o3OG`Gv !\iQfMd7pgBȰrcZ8l"Y*@zP92bl[FBjM[VE '3S PV}e-VfXB xjQ5SKr &_@OtͮtPAq?fuȮ= BIFUn "EQյPk^`VSκrgl*msگ:#mJZP do3{ُѝB\hl0E|`݄C4P50QoruIQjZY<Q%Ԋ/TB U!h!İQpT{EA%28O#_bg#6M"tWds` T|!YkiHp_\*1AXBO?Ewׯ,""x|!d1%3ҟF#SAxSC5D ]򣚝7mtI@ӌa ~`\yM iKfFځeN|zՑ*H〛C.$ʅO9,rɕHJơfePoVX޲S˭_v~+b!-Oȶ  r-)[UyM/m#R)ٯp~Y0N%飤u,d\C'Wxr$INp3Ь瘌᧢Ԙz_:`()b.)^~2%WfnD+ſ!E:a|yK^YftLEo Ph$?[Gb 1y1\Fpr>#UggS V_  EǴMvoVUsP{'óËO|@;o̟@ s'A? š'pU|v3yś*-.og>"5ۡW -Pd FˈL : *7 FrtDP0ދ4. ` m-y|$ځdW ı~dEsơ?E* T =5b蚷%*H^ڍb6rM~bjN&NTD ż>خEZPt/]ɤc$5:KF:rŀe ~5Ob.i_Ueq~{BK endstream endobj 117 0 obj << /Type /FontDescriptor /Ascent 615 /CapHeight 615 /Descent -229 /Flags 4 /FontBBox [-6 -233 542 698] /FontName /CMTT9 /ItalicAngle 0 /StemV 74 /XHeight 434 /FontFile 118 0 R >> endobj 118 0 obj << /Length 12319 /Length1 1689 /Length2 10629 /Length3 0 >> stream %!FontType1-1.0: CMTT9 1 13 dict begin /FontName /CMTT9 def /FontType 1 def /FontBBox {-6 -233 542 698} readonly def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /PaintType 0 def /FontInfo 12 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT9) readonly def /FamilyName (Computer Modern) readonly def /ItalicAngle 0 def /isFixedPitch true def /Weight (Medium) def /BaseFontName (CMTT9) def end def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 34 /quotedbl put dup 35 /numbersign put dup 36 /dollar put dup 37 /percent put dup 40 /parenleft put dup 41 /parenright put dup 42 /asterisk put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 58 /colon put dup 63 /question put dup 64 /at put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 81 /Q put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 88 /X put dup 89 /Y put dup 92 /backslash put dup 95 /underscore put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 255 /a put readonly def currentdict end currentfile eexec իo[؀1,8mh 8z<;U1ѲM[< Nw| ՛3Lhzw(A` 55 FJ"lh70vLS[Zk.5Δ%mQ%"!iJyj^CESnvACq%OŲzAKsH3~Q5+ТhcxO<;h?c3&L!(QiZGE>e0jB9I/$C8{L"*Lk,pc]}-Yj-.Np'Vv.$R؟@}:G 3᪛rnGKr؀Nw.;k%l sЈsWYSAwHd5f%ͅw=*k*>t\HWz7/@|<b(AuҼZua O$,dTdyܾ*^'&c 7t dH:k?+%vn3ţl+1t9M9U^3XZiZaB4)d>/KKuY߮GTVqܮIv{>ZpwOWy`PiI׈iI~䥟,Wݷ:&!;L{u:˞n <@eϭkљPKqK${#ĶAoe#Û `rÇd -!o2lᭁ]9Rs&:qeFsdg{~D# Q, } ߍenmU!.PfwXI&ɑD(W\{e41alZAwHTx-iɗ037t)S-l2+ڂ?@/uux.]tːՓR#!:#!!VcE|s*D԰dI|00cI@#gLΎASmO3+=3L(h˯= C_5{L^ J:Qװ4 m1䎰F݁}q{Soe|R*LN!>& LɷnmlXS!. bOS 9)Vzg6(k:?E-RGl>Gvat;4 ,ɒhU`ԓu<_5b+DsntO]9Hb$'Ԯ^{Jg%ឆ̩P#зɇLmBi7xA4w;v--?XU,[Ee 5?<N[Wٵn>r"F{@FY*cLJi 7.V|꛷ C@|n p̤KqlYy-N[12F +#U'Sf?ZtlԚT]?k8~ "cxΒ]k~cseHѩ#AO 8! |Kϭe@ e,R ٔ&=\``U DNyqw!?۾Wӡ ?lM3:}q2POD/ߖ`cKðr=°b(NENq9 |.#_c.obu#Mԋ=̛w񑜕ab6OcnF4(vɔsxuYN:F# !޽/ybg8XoQ*1ς <ب^2mA,ivYym fjxTzG ^WmuttgeB u1\sF]mR\5@^>E&Ax)gΉ@}a'VNXU_(ҩY;k 70n"'44mѭ]C=FTdr?AzE Er0>dFfhg^f|&Gktku ҲKl#|z]5U^Xq"KhlnG<2bXW^Kp0rً bDW;; no9ՎѬ 00tQ{/trs% zϥGTg:2 eVdL!s#v 0^fkm0lkeיS&& yFxBAټ^xz%YQJG>Y }W},\YCa5  OS}]6%_kk5U٬Uؤ@uoj)3Eu.sg$MVwGowSӆ97Τg3N:/NN 3[ppVP 3{4\ kqsznև$j)VD E xÑ]5UZrE5G:,DJ%\tz39CG &ɛ7\Pz.KYwz-Ja([l3ILkwn1f0rkDŗ1yRZeGjʻ|lV18¤=ž~]MS22_feG=kFq3RDvZG!ҁa\ m4]ev6:9>iѮd5-qP lIw\F*OwBop8n@rDX '{S\{7@+Ғu_:[b} x}8sFBUqp0n|$? ;7cV:{GzZ\2[ N*ߑMtɗNRzqr"HYx{2 D O/ԓ\y7ӜQ7B,pvBcf"oצ%ya|.[c G[6I=8 'w 0t!žx[FNi:zߠj s齨j-佸N?݄?IM*|N F7l[7S%٦_9"A9YGzJ0N&+vi*l?:l \4z\$dGٖfCl{No</G6Xy~/; @€,Чov]`+&{%F%W7Fy⋖X=ৰ( iӘU>穙D(vs-((K{WO䴽vKfs9[)4Sj*`_`\%Sm-zXCƶ"98Ym]و}&($;'wàShnÕY [.Ddt(*Gz9V\s] FXTuoQٜ񄯉1gY|7"ʦ'#fQ-oڥ{ C[=)ЇD Q7 {bF=t|BOTctm!avsq1S>C sܤ/5$bo P7:^0e:l^^DA1V TI_g;;N"Q?s F{1PfIK]OB x q m;Y)}&2 ᆀoʺG]i~sOEs*+h2l݋&x4DUTN&A&~er=ꎥ8:Rw8o2z,PmM #cO\f}}}䅦?_QG;os h9h>!f&\1iVr9d&6$EH XS8w.h,wI+H݃Etx$Fi_j墟TR-1:L~%aiǔ":szwi(m=X:NWPX-"Wxy,IhHiFǧ$ASdWNMЦX̘w{ðۘİ -D8Hjpa?Ǟ tH!̛E6̓xNVhhEgix x*y &+xɹ%6Sh>+W2S_lJ9j A}tp+]vdvڇ&r_#|mCA&ANQ7Jx+ڽbk8U?sYyhQ-㋉^F:aǒK;g9R.1ji4|0qhǖ|ezqR¯0{ 2+kt<:ȯAb ݧ$O Ao@ɫ*Ba|!*7*ƨpto@HX9Vl8A1\"{P"g~׳qsO9q&eW{^^u)36a?j2J(0ٿԲhta.k>$< /M/rG-=g ?7C|@'| EâJ#AmQYiw_,&lQ_ "Y #6k8hfi"M)6{?ǣǰw;KCJo_<վ<9]h%]A]nJ+(X@5tQh7S┿YU- 6g[ln)$o" 7SGbI⹵O\\[?,­] ;0e|H ᔦ]"r;i,+fGP: rtMkkaN/7: "+|{X)kBzczK+ԿvɴжKO4ťmMAټi[*,8C*jQJ?#&H49byO;c-A)kQY7x, iJH&J9- N%9Do;K'&D^Ed( =WR zS T]-S?"gc YUlG  'dȋU2 G)Tu UPw~9  wA޲`E 6Q>E݉F8,VK\fN@Bd^3en3.U|Je(){q{`.&_7-[;w4pyEF!i&{v&`zŝ >(~[#BjdLi&{E"}a` WZ z4Z B[lx J01x Qfo +T0x= VcrOT\Det H*jJrpI`V˼,Y}Wv$IT4}38 ^,LQ.6ck<2O&Fy'T( j*UY֬ v{.$-*je c8<gm<[ E *Ҳ8q]{aᏄ3M̪Iû Tlz#i;a^a%$_* rDN`\vc`*|i{:;6S/i0Vt2MJyﯸ^\ʃrY<&/D=ظ5D}O V*o_NJTq!;){i"hC` CPz%Hڿ1/?qbԟNù>WB?s+7#"p&vp|U%MtYpua..ЅhHÊ!9n6+y߉xOdr2/;ʹ9@= qg@'{eEHl6OlܗqAD'5:Fg-IwM$ҷA[QY<:CWX%fI%Zhwwz8H> 3Q<'-Y-}ÉZ P<P'OyJ uJQKXB .t5bmf=gFjZh~> VոQxaGPnjB#!7r- *1fCՐf~]lG :ղ̓OmC>,, f΄1ys+e;h0NIZ2aKӋ>; k8Q9Wԯ6e79NM z)j7n- ИU*6^^WLMmm&]"ӌZvY*jZ/}=kӃ=NȽ&<7J#F͞uPLd׸ʑ]t9rw^ f%"mә*p Iݟ7Kq'Kz… [`zG`]8 hf*aKɘ Sl9SXކ_ǵ@\]҂/5gq&:탪^WpѬ "ND8hkϬ?JEɟ^K+c/n{&\֏Ρå(GG5IZ?ބ{Inn9t\ +ƣo{MpgLp'~,jCkY;]M;ՆR~5<9MtMg12JD #ŏS03)#xUW!BP^c:#f%0K0jՊa/>`Rg\\F ZV̐߱( c/ڹG.H2ĴWk(_bzFix8 ؋*;AwkJ&d@0މؗ沴+uBBaKVf@ y5L7rˑO"gJ Rĩ4XrߤC?̄{5b7Wu"j3s4B,=RE |/Vz3s%b>I tpr~PMjoo`QKW JJ$<PVA 0bs=|${ێ -r82 BxGmZ ; IX2Q6(W2alŻ?Jn2rhUrT)nV`Urvh,r] u\t R噀^e px"k0DFM#j a]a".+RG0W+ St{q^lꀝϣ`:8K%B.;e%;r6SYR{xrjIbҵX|bt<M&Ԛ=S/um8P56B7wHFN>S52VHPt%ȊKc-gb<ǤSJ`vI$'7|P[+Bzx/WϱT(޷|?McM/nߟO|ǒ}0-~y"zhcP2Mט|;7նe3 T tVY (H֟^u5wCfc5;;[U#kkc:1M. @#$ʚ59X3Uen\jꪰknne73]AM`d7mP3K=GF @ # ~4pө8DPpI*5PN.{3ػ ],JmIj^\ꕅ .pgpiغc:O<=11B_<#ĎRfP?Vk!7[\[n'7 ҦSS\Xcf x{^Ju?MZ"jf}gk~gg/S1PKėR;27˛zެ˟!b2"4ډ  } n!%lc`O:>E.t?bސRV+l>*tR4Ŵ% !'tw(Ny2L.p5]mO|{O 7dN`8e=v9&1X.*4#y "Lzqnf&lM-N*Kjaq=}uw6M '6WMe/A}wP)qD Slpo$#˔th+7 auiLPQ]CvOC=yBr`)8\[$sӼ%ɾ:jc_ſ@e^&#XU4v)!O]c6*>2R&g/E3yﲀJD6%%&9RM<]fIrwTzpEK"oE{~'> ` asT!R*{0q46|;E핬v% :̐Y7H=3x]v.RWR\,-L;57ڑρ L7˦KjxVAQ/KO2p{Rc*mp(xg.zs@$u N H~dν#4_-H<0TzFfl+G.QM0'8I/}P2a@/zCy°dVuXq(0 YT0ᓅ(G =CĨJFzM{ endstream endobj 119 0 obj << /Type /FontDescriptor /Ascent 0 /CapHeight 0 /Descent 0 /Flags 68 /FontBBox [-27 -250 1268 750] /FontName /CCNHJK+CMTI7 /ItalicAngle -14.04 /StemV 76 /CharSet (/A) /FontFile 120 0 R >> endobj 120 0 obj << /Length 1909 /Length1 661 /Length2 1247 /Length3 0 >> stream %!FontType1-1.0: CCNHJK+CMTI7 1 13 dict begin /FontName /CCNHJK+CMTI7 def /FontType 1 def /FontBBox {-27 -250 1268 750} readonly def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /PaintType 0 def /FontInfo 12 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI7) readonly def /FamilyName (Computer Modern) readonly def /ItalicAngle -14.04 def /isFixedPitch false def /Weight (Medium) def /BaseFontName (CMTI7) def end def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 65 /A put dup 255 /a put readonly def currentdict end currentfile eexec W"V+ް:DtU:'r;UV?sd:K`}F%\Rlo8SQ%T+/5 0,E^tҌEHxKD|K+NS% %N٧r2S_{݄{''AU/O$Du $ŠOL­9>Xz4!(w_.'.9sXRTw>A?ω'uQ &Sn EѽhjD?.)YrZu(rH|墿=YkHbp6I۬A}EKZVPu kwn+|.hSZ,o>MP ;lAh 4  A:܀z1D]l9Vp Я/ JU!c-\Kf5&y(sGtR#Y)\΃iM'Ȱu),u1W \,XA 7փpE^U"o'cf,`; k_CPέE/D`\=ϴ- ZAq/Iwi,D'dh<=L:VC>11咤#:Kcl8 ;}lgt%Ş p?;w~Ԭ!S*RF%sf.&!JՀy/tт&˗}2ҕI6R[NBk+:M+b9jX zLz5%!#ډ6uXcd\Hh RyTT0+D{FWFśY,oOڝˍ_o(Vt! hع<Z[R ^,A3URl6M#E`z8ؔZ+F+YGS9c7ygaq"&C?3\2Qk:[#Pe!-WR9 endstream endobj 121 0 obj << /Type /FontDescriptor /Ascent 0 /CapHeight 604 /Descent 0 /Flags 4 /FontBBox [0 -11 722 611] /FontName /LOGO10 /ItalicAngle 0 /StemV 66 /FontFile 122 0 R >> endobj 122 0 obj << /Length 2620 /Length1 763 /Length2 1856 /Length3 0 >> stream %!FontType1-1.0: LOGO10 1 13 dict begin /FontName /LOGO10 def /FontType 1 def /FontBBox {0 -11 722 611} readonly def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /PaintType 0 def /FontInfo 12 dict dup begin /version (001.002) readonly def /Notice (Copyright (c) Taco Hoekwater, 1998. All rights reserved.) readonly def /FullName (LOGO10) readonly def /FamilyName (LOGO10) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def /Weight (Medium) def /BaseFontName (LOGO10) def end def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 65 /A put dup 69 /E put dup 70 /F put dup 77 /M put dup 78 /N put dup 79 /O put dup 84 /T put dup 255 /a put readonly def currentdict end currentfile eexec 1[ymJv16*aMf=̨#Y3غIP޲õ7>H 2 4$'Iͻ$ˎ=ׁ{DAW9K v6r0(*;x=3H v׮mWtӴt0ol1.pWq*5E̡ؕ;vLᗆJw{3CplL\!6x-'k&C~5c_䐔=Z3۬GJoh#ܧ^AA0JNSGTN55UexJ}~J_ qbk-lY=Gt, f 0z)ttj&zSm5Md\e~tB/+#[mSiK _Gl{Jw J!FV18RiJom;*Gb$qscx9XR2Y'8xMϭ8` ;Ѹ`j)( fIhѫe٤>ֹv.P@:#s8v/9,n(Ƭ h@$%y5(=*:%DOl껶`xuVn eG\oTXIJ|\8Jm$e("Jn+s;tKh0c׬[qLG_\3kpu`}OaJ΋_pՙhv=Lty=(~LeNg6`T{I<' 7yk&}8cU`| IahPuhE iO]XOT޾;^9qVe{N ğ]| CH-dQ&2Or~-S|M,YUC1=qOƵVf Hu8A(UeIKvreNXr֥~fOjPW= eBUvN{fy[^!u65Ṇю4^.ygیz# v>4 %,;/anp_%ka\&RXMeZaA#9ɣ5H_pLG!Zт^R HJ@~UGS9J9gxmT]/mCŶY* 턕gS(M\} b)Z;!4SsO9 `NPر NB3!~$^xo;Bx:nJ.Mjf*gf6*&u,qYzi&*y~'1DڈM)L"!`^<*j8&9 xLWx[V>46AfeH[ib|[si5+uHsm [cuwE[B@b)EyI W(m`*o.L gW_h}t7ZuP[?엶&:1[ʂ!6wh C8I61ݷ_%3}=!-_`^Io7L\U9kɾIN> endobj 124 0 obj << /Length 1992 /Length1 668 /Length2 1323 /Length3 0 >> stream %!FontType1-1.0: CCNFOH+CMMI10 1 13 dict begin /FontName /CCNFOH+CMMI10 def /FontType 1 def /FontBBox {-32 -250 1048 750} readonly def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /PaintType 0 def /FontInfo 12 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI10) readonly def /FamilyName (Computer Modern) readonly def /ItalicAngle -14.04 def /isFixedPitch false def /Weight (Medium) def /BaseFontName (CMMI10) def end def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 107 /k put dup 255 /a put readonly def currentdict end currentfile eexec E]e1\OW-Kb̔Ѣu8rIݷ5H#I9gǣ]<ΣWUȖ_t_zn8B뻀l2<}7Ga{^gʲ%Ϗ< g.D[GÛTtffnBhȡ%>*Bsn J7acd1:=82sD@\TaB8Y}3`]RA=]߳%gEk@ъ,\} 7֙ _J[jE6E\OJ/$^N% Ub3_FF\Kcc},B. nn&_u!],Pm nӋeѢs"AbX^`<4q\djK%-EQÖϲbd.QLUԂ] CStqH)v%Hb8AMn.SÈ\'G(R_Co6e]l~[)1¹hud'˨u+ M ZKOH%ٶ4#t0 N񗯮tD? 5q26[)߂4|lNBS_Q&˲E.F@L w6oL 3TjqUha*z}Oݤ)H(.ehK)=LtNB (3$O#FxYʎꇺmn@VJ!(|\b~8('>sKc<"~%Hm]= _R#" 4cm(Bsuy(2) 4g;Rmsܐ]4L ~`ǰE8IbuށIvdrS-\zYTC|}?{5_"iּ/Fk̥O~wU")]"(64Wd[("8S=FR TnsH? endstream endobj 125 0 obj << /Type /FontDescriptor /Ascent 0 /CapHeight 0 /Descent 0 /Flags 68 /FontBBox [-29 -960 1116 775] /FontName /CMSY10 /ItalicAngle -14.035 /StemV 85 /FontFile 126 0 R >> endobj 126 0 obj << /Length 1740 /Length1 688 /Length2 1051 /Length3 0 >> stream %!FontType1-1.0: CMSY10 1 13 dict begin /FontName /CMSY10 def /FontType 1 def /FontBBox {-29 -960 1116 775} readonly def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /PaintType 0 def /FontInfo 12 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY10) readonly def /FamilyName (Computer Modern) readonly def /ItalicAngle -14.035 def /isFixedPitch false def /Weight (Medium) def /BaseFontName (CMSY10) def end def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 15 /bullet put dup 102 /braceleft put dup 103 /braceright put readonly def currentdict end currentfile eexec O}>ACΉ1ucÃyį;Pa#!w(^2Ra:Ϻ||:M1% -l!5z \GMT+J(8 (ڊmD5:if GɱJyg(*%p׏2z$Jҍ7GiBr hga|y=6_$8jk5Uuv-+9J.;]QE䏰۹i0kd\ElHsr= z~qꚀ$dJ D(ٯrңm׍28>HC*P0䪯w:{ep͗ywoxGR{UG;s@ `jx&?I֥䕾uA`m2fY+- xZ5nn抦4KmAc FeR8ΉqSJZk#D?r۸ zk _ƬКH{Ă hGa׸U r19;5kA-49HKW%Dj`2[8-N&kpdהPx%n(fT_A^eVۀʠȯDm[IJl˩b}|wgKuFa[ %D'4@53׾> mŎ-Ir .ZȪo:x l\z9ަ&3vk}㯌S 0Cݯv6# ZE 8g)g5ޝd7renRsnlQ_jšHb[ReC!Ŭ.-A]b(@P' [b@z4S1WN! </`:׫RDUem_~w1|B){)ӋMzFKoޟKaumPQ( endstream endobj 127 0 obj << /Type /FontDescriptor /Ascent 698 /CapHeight 681 /Descent -206 /Flags 70 /FontBBox [-163 -250 1146 969] /FontName /CMTI10 /ItalicAngle -14.04 /StemV 68 /XHeight 445 /FontFile 128 0 R >> endobj 128 0 obj << /Length 15114 /Length1 1587 /Length2 13526 /Length3 0 >> stream %!FontType1-1.0: CMTI10 1 13 dict begin /FontName /CMTI10 def /FontType 1 def /FontBBox {-163 -250 1146 969} readonly def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /PaintType 0 def /FontInfo 12 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI10) readonly def /FamilyName (Computer Modern) readonly def /ItalicAngle -14.04 def /isFixedPitch false def /Weight (Medium) def /BaseFontName (CMTI10) def end def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put dup 36 /sterling put dup 38 /ampersand put dup 39 /quoteright put dup 43 /plus put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 49 /one put dup 51 /three put dup 53 /five put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 71 /G put dup 73 /I put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 87 /W put dup 88 /X put dup 89 /Y put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 124 /emdash put readonly def currentdict end currentfile eexec S/3[S`^$!TƔFK) Ye6v\ LcYSS![ԪjN+^Zn/,/!߯zlp:ꓚz/k3 THZkgĉm^05x'^DطI%AЦ~k>=vq2abpFv(eC婬ͷn^Pk] ~tc MG%kb!L۲Q@;z6RM~׏|Rи"bF+9i઴ңߦє~!\ D(1|J oL"2cС74SId@E2phQpt))_ZBfu"i[dҙ& AQ$LUWsD79 ? 4eZ6}.0S PiW}-X+UuzAغ[2_(OyTKZJF͟Jr2hBޫ*mKAqL d$ԆeX| KhΤS>>H0QBX,C]O$*C@H~IYR@lsjL&j$TC dn]}q16m Ly8+&ekr$6ҕA䫞{)-(w-%}0C0(2K@}1Ϟ\۫R>6@'Y"j:s^Ř&0!aưxLKjbue\mfx&@HjR?,ve! &O]/&7.G !wU'$T&~TՃӣx~HM%# \KK$Ukڋhʉm-Bb gJ_,&k H{s0Cz$c1Ua+S0a{MSW=aHo țWSDŁ_$.t4.6m5Cؼ)G3C6Te"?,v-7Z1Os!T؍'i8`: 8V0d3 O|g_ޖBC{.m~)'߶l]9iJ+Y|PI} `s]_669k2w]2V ;`6U?Vþ"%u,f/rj:Ra _~r ̔:`ʁTv-z'imx[ق*O=WgMY&XWDT@mKt3fddnӖ ^xoY*lTcTCqޅ,N*(g/r~؄Ҝ#>.Eq]!-ݺnH&uiGlyhVyp/듭a9 2tPT Ya>7kb..7u>~C;?˽5+tsZ[n%XǁU~ڞ|u,đl-ЂDJ&d3vimf'\8,1EsRggrIw? VWhJJ(V! ų`&:$phѼmR"!B"̊ovQZSӎjZRR2aH 0orumչĹ!ɪrOd0BY(uo'ziٻ4ɷLLA`Ҥulbȟ{ S!!KOPg]pҡki=d3}9mU">R]Z6B,źOGvP8nRhNFS֬ s-*C ~lSO"Z Fonӈ-1*h 9Ws vJ(Нb 0DĻ*=Ś"+ΜW08}`#ߋ&23BExig x^f{Ӆ_<"dg#%^L$TSbs0xRG'5Rj!igx2H{W~"eGα-$ลiʤD $3Q+'' `*_؟1ou*㱝'i5Y]c#WVĎ,p ~$>|uoJzIP]ɔ‘z^f9W˹_)юoaɀ4\#< Dρ1V^j:F'dVdhơ`ْ6C+AܿY.aw#sTXٰ#Aque6L>MC˶ >q\NߨAVMU>.xXs&:/P'?Z!ab<ձQK݊j|ߝO<e`r)f6׺y `փ U5=ꏫ8g)4@n *1 &^RxTŶaƊM;f ֏!>O,C9&m˗F?zÐ2 Kgh^؃$`#0:$CR=2&V`($DRb5B.|n^ۅhk\WF7߳ҤE]YNC[&%)U%Ϛ0xnʫ-DUc 08+t0xP8Ue#sp|z7 ˥@Q+nt/,3o?sͫtIOZ`? UYCh_J\Ă.0lapa.hd_4c,Bd>g4ή!iw~~Ԝbhbj:Q 緵4&(2 DJEP]*[F9ݟeP( %wGǎ->.c(F3љ'r;7f\T)~`x m={ jn@(rf; PSoLMj}JqTi@!3N`)FIƝ_׃(7>uӝ`'l3 Bqwwk|\_2aw3}hf;쎱C|H"Zg;\m#}Gl%5C_ՃxQ4JFB ]?dn;(BsO*m7_d#LBզ@]п)Bד4QGMa1.VPdSTz[[i˰f:Q8 {\S9_ ׈>2VWٱ~R*pYHH՗;E҃3x6 ^F@l: ϧ7+ V0Lc)BF:CNԨ_i=Xf. :<|MVSjpLţ`˅Ģ"6 @J(`,duCJ|3}BBx+|)F,kQ.bS{DuN][BƐK`@90nFlHZefdś+d[C[:ٚ2o&}w?Մ9:4H뻍b4KQqحO4$dІEriu:UR-[:'汐0AZnncS DN-0П|@u6S)q/oCY^BJ !B2Ʊ8g=880mʞ%/*`kYmNM1٪Ciє̑Y)K#RukxY l3ے5tu7jjPq239S+Hat^0 RH۹p+CGjh_ϱwHP.82؎ A0JC⭘5лw9Q0!$K(xqdɠ3boD6E.62 zwkZW{Pge A 行E>I@ sαF#h_BLZ/ #;DqDt 3J,gCcR(7*FDؔj1OU)5~ߛt';4Tusp@\D#˦_[תhx~Yy%$\r?Gܱd|KQ`0\UǶx2-CyN*nМ1&`Mqgb_+0҂p*l]3FULvXOzQhȖ'N ÿf\yt4 j:k"H߹2e$<,A/Dgh`q! R'Ldq۞t "Z+^Ka!`!Kɿd^O T*AR=m:+NBdgk{ViJYD Z82]119xnN1xAjԥ"b7©u@"PefJTb y]Ժ@ ?QU.n;IH8C UX㬢_iIi>Hjm4pZ@)PFIXG52Ym ('Ԋ'q߾|pI/?1NhKB56;}a )HSϗ߽,V)- (e7=L,tن]H~E=T")>kM䵛2Ɋ\DvCp,E^Hme- 9#Ѱㄯ%2 ztpјv[D@A:8G-<4Asӡ[#)֙eK?Q05  nh@ Fϒ ^l űuŒmB+= >gVRy?B IiV_PV)s{>^s5N_wn<#hmw6~7fcDD9v3Lu-'f.Mp=2MtMLO~L|* BjZl ۲f/ID& nmz>]i/*0h2ɉKF&ڽuơN!=~O},Q&2xjǬ1$BS?X0AJƤ`"S(<2lpR3"_F뾊>iQ*|9ߥ÷o@):fS|h"3}2+%݃Al;?.^^'wF>Bfo!QY_#q'9*7h"̇hB8GN^8^]a70DL7MI4!M&aRͦkl-ɐPj h {=F##b.ṯd]FUG]? †6i*Z"f6YMD]>`_#_ykØ۪fJ_s-8l2#ʁc`$d}wvJ(0yZRePϭťeJ*дMODY%,1O6ֵr Z}[cY[[M XZylqXF z7&M#O/\j>8ШLD| 37Tg&C\DS_mJV `ͻn :ԭ2.$G@\hhڷ$[yϺ+Oi eJ^Ϡ2hЁ,P%#%Qڳ*@"0'/b.XE;vӸZƄs8Mr?odGc8}n~jbbL5, ٽytK8c'#%'Y7ai0"\_:k\J9U/ wCkڱLKLƿHtޭ![ieEkzd@U"S#' "x0iPB۪b\uaӿХķa#;v<&=7 Dj\1T^)ά0%ThJ3uJu} kY/lRe`s.A+_)_ؤf6dzi!D9lhV|W#ˑYFFhZHlve6 Cv"{^g;Bc/3oEI"|6 &H7RN: /cا[uY,ѪPtJBunri i*nSTcopFԪonӶC&t㠧ضCv^{G[-AKf4u-ߜP)hyb_3 $=|.2snxt=D.% a5`R/ [MD˶lymS5ZZ H0;[Mī(eS6b4YkZFyCYKp+dclb1xzwP>kv''!)JP"x<qU~;diW } ̞Z6<ƯR^.ʑjgJX_KK|}$ɲD@vT@[/rQe]Ha2 Q} :Gt49Hw}`m+d@*e"|CzJ X%-0km9\I'%PgcNbAu5خ: +Rljkt'zҶj1rV*7bjqS"WA[̚kdhp9A\-KT'D.Au32m޴`ϼWg,' 74Nũ:֟F]Mў?ȰKkT8%E#σވvlr GšW[I(Qb }g_C<\r/uv%jO)=ҌV5-V %O1ScK^D,jד/_F𻦥ržbȟC(7Vpj9Hv‹MxYĀJzHCV9t?p!3ޟ'yBW19]jÐ"s_Ofdv픊/;rTǹErebsՃ4.:FY0MBs`6UyH`]L6qOH&Z;d;r$O@\w&Q5L+(fكLljC,$/:J2v7ɝfu'j8U'2ӹ fA b&G k72a{<|bvSۖDy.imd_PE(vW :s֊9}y4؆±L ! MpbD+qh0 J-CDN""*5gl*E׏P̟ä8F a#\/yOldP![4z k$¥y| ӮW.[qUG>Dg1䰎Tu{[{e|ţS=:#_X^2aMS "PUlCc!՞%IsD m+F BF>>ߣ$:Q]U!v(?/Klwy~yTD9Z DZMx jnd~&~y98I-Y.n MˠDj R0+6{*:^Ⴝ~4305rZ㎫~c Z6[uebop"XSC HGӜvnw'W\O8KSK&զKVͷ6xNٜ;PO_ vǨ".)N-ma؁ޜh7us[i̧[C+y=)`u;p@.e-#@xŭbQ% ǭs}X;d6{m6WV^7Y|\X N\ L9T0F)}\(c}- ʅդ :M/KS6_`x,s _<~UWk$yr(–Idx5G"?$+dkh7h(raֹYG>-7ѩM|dyaѦoG=,.,7d0Q:̦,6=W4N}ɴMkz*w="ҽ' t|.Y=ĚlLĢ0vtqR\IT,j߸lϝ\4}[WCn@]wȽĬ)Am4GaONpp\/JEC2ý;?-e 0/IQ[.60Xr+KuUFl:s͐# 0|L?~wV1C~W7 /} t NFQNUy@MQ@lLY[]ZeP>QӗGyobɫ8$k`!R)?+kh`| 5~fgr.cG4*b ]Ii:f"-3@fvEb:'%fq-|_et27A[;3jQ{v Ndc]}op):!A[ n@kQ6=p[ J'wK _euBL'}k~`dX\]/܏`NLGB&_a+\,FHJ xa|3fbxmTk r'ylͫU4nAvoz4CXg$WV{#!{6ŅQЄ--Dgk_;j;tGzWg@tX2ӄn,|ބNVY~^JJYWP[ %.VSC>q;iGaH+SKA3.-e:s/_ ??> endobj 130 0 obj << /Length 2966 /Length1 736 /Length2 2229 /Length3 0 >> stream %!FontType1-1.0: CMSL10 1 13 dict begin /FontName /CMSL10 def /FontType 1 def /FontBBox {-62 -250 1123 750} readonly def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /PaintType 0 def /FontInfo 12 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSL10) readonly def /FamilyName (Computer Modern) readonly def /ItalicAngle -9.46 def /isFixedPitch false def /Weight (Medium) def /BaseFontName (CMSL10) def end def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 71 /G put dup 84 /T put dup 85 /U put dup 97 /a put dup 98 /b put dup 111 /o put dup 116 /t put dup 255 /a put readonly def currentdict end currentfile eexec G24}̺O] dQ%.NSfu-)89׶d k(yP~_t׫N-h{P$ >_thiŶ[oK {lMЙNjDkUzdD21 l 8"ʺ%пl(J= <0Z8ؾl:ȁ,2,%paNxr_eF): ~h/&f.М·Ad*Ap k_hֵMzȭQIzjrPXHU` <\ȹc."{C_-Z-w>$21oeuv_ I O[fq Ӵ1͐@0(Bf`☑  \S[h9K.Mj-4w?HaP6B$&Z, [BkK2r_G87'b"Y:R#q{CI>OWdrg}k N2W3 qUtVh\4Y@x\rw !1 "f4&yt7f1-vX#GsGo7)`M=Yu9k9a^l\K  Fg~aydy֚o2Cb*O1kTuSѷ8_~iДzyY퍑Xh526_B3ޅ5Џin!zRf 䔂҃\obZ[?,JQ򧫒T> endobj 132 0 obj << /Length 1891 /Length1 652 /Length2 1238 /Length3 0 >> stream %!FontType1-1.0: CCNDMH+CMR7 1 13 dict begin /FontName /CCNDMH+CMR7 def /FontType 1 def /FontBBox {-27 -250 1122 750} readonly def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /PaintType 0 def /FontInfo 12 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR7) readonly def /FamilyName (Computer Modern) readonly def /ItalicAngle 0 def /isFixedPitch false def /Weight (Medium) def /BaseFontName (CMR7) def end def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 65 /A put dup 255 /a put readonly def currentdict end currentfile eexec -UdO}s8* Dౢ& 57$J~&c_Pq0b(&7%ـp% wzmVxmd! [Z/PQgF?RKeO􊽍[\bY,j$\tiB+:X/_;c cܩʝ- LAg/RxwQfwJX%,mo{f;N ¶9wsIKȾLM䵱4hJ.l3L9ɔ}]'&#U Zu2rI ~b~ew)r_Nf\F˻e<dߗi`-RzH3ig"ek|`[:-{?ڥ<ze IsT1sz0s~J =(Oo(iJKي;,FjqCdɏ[Q|ph 6 x ۙż8e6m*mb_VЃT<Γ˯kT})"NIN̎=*.~}W zj&'s/3d UM|_}ލjщ[DS4yQ@怸Crvj$_lTD=7L>=> endobj 134 0 obj << /Length 16885 /Length1 2185 /Length2 14699 /Length3 0 >> stream %!FontType1-1.0: CMTT10 1 13 dict begin /FontName /CMTT10 def /FontType 1 def /FontBBox {-4 -235 731 800} readonly def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /PaintType 0 def /FontInfo 12 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT10) readonly def /FamilyName (Computer Modern) readonly def /ItalicAngle 0 def /isFixedPitch true def /Weight (Medium) def /BaseFontName (CMTT10) def end def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 32 /visiblespace put dup 33 /exclam put dup 34 /quotedbl put dup 35 /numbersign put dup 36 /dollar put dup 37 /percent put dup 38 /ampersand put dup 39 /quoteright put dup 40 /parenleft put dup 41 /parenright put dup 42 /asterisk put dup 43 /plus put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 59 /semicolon put dup 60 /less put dup 61 /equal put dup 62 /greater put dup 63 /question put dup 64 /at put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 81 /Q put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 88 /X put dup 89 /Y put dup 90 /Z put dup 91 /bracketleft put dup 92 /backslash put dup 93 /bracketright put dup 95 /underscore put dup 96 /quoteleft put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 123 /braceleft put dup 124 /bar put dup 125 /braceright put dup 126 /asciitilde put readonly def currentdict end currentfile eexec [isE￱y# z=${˃>]hSVON|y8Mg^RKpeetع:H[[K^}鱿JM>t |yhd1!^EY9]==mWZ ۤDtgDx!Bsߐ)r]_w'K7LԐ(JmXH6 GַzFv|gb$o]PF( vR&(]ݜ@E7밈THQ^:Ov;q5%hŇ{GdR '|*HNF|yK"D5hA4Zs0W8%u85Q j$U 1FYmqvS$V=Vt9E h|!H-Yc*|)ʧ'dm D:wmpWVJ.Q ];I!^I^gq#K8kG7GjJO0j4_M!5rXq~HiB͏z5vW{j$bf@KzlY1Wq9l#Oe2Z C[02D,W]z,?%V~}bOp(D1Όws1 knZ/BR1H̞yUZ4Mo!rg5XCt#t2Ze$VTrGuLn~XmKyzRېM(6)Ih`2$̆ 19"%_z_- Ǡ -3_|+ˮQe %~dP'J<:ʳЛ&uwZ"i6tST@%_TȓBukυXC  5ep (*GxzOp DxA_E}ػ=rb֣Q<`{5qa_e[@fJNVLfjhWIo=H?F 7W=wF[!.UQӇ!طzu]QD;#?Tڧ`E>^q k`[1ሬ㔓|YGZq'^/21s9`Nϛ`^-61Ŝ/ʉfbyz:(Q]o&xy5YL7% LczDshmclxγOSY+c^s@>e .DXC}osC44g r$|J!TGq<]kow[P=#qiRv|n+@z|WN;O6f3 󊜂*񧸣uHUPjb(07gBEnTA6٪y SQ${+R BU~*b/rU2w88~^T?Ng+J؉lLɧ.As@Zޠrfٹw_lЌ%!!'X. n2b+¤Ns@d3P t[ rOkO,+(^,${-Gzn)<[l$c>(U!԰5{Jx헌lF4yc臅~W֭Ņ nC]:w3~2كA&GI#漢53 !hrf rA]R;5HY'-GXBHɈ>jH[<@{Y[/j  _+TN1|&2EF/R AM=x4;a{Z wʈ$$ㅠ])´wb}X8D L9>4&4և/sa,>9{6'?vZ@$"0{%h݋؟WJO |s\g>B6¯9l{/-&>ȶٟ!,UhECJcK f~-guFf{ Ջa&b'1XR;eId mq棸j1KC3p&H2|w3eĨKQ:$2p[#jm:ځz/UIgvK8-RUJB+ܚr_,qb=k Q9nl>ܽxozZw6SVQcC -Ƥ3|3 bHo/jFe_-xW13\LKZ,q%R4 fhة"Vf^Os}vJr':hTRy= oߤa_L_J2GFɹԶ>|dZƴ4N3dn).4'ȩ%59tˋ{CJ}^t4Rn8#D]뺺`(٧{mlg'D2Yc\Gw* 'ۈSsy {J>2C$zzV/\{t&Ö<*Wq9*Y7C了1DEZ٣јtHH&W $:#R!r1  9.6,-lL/߼գb99=l$之q9^wAݧh M:?bUe_[ƚ*ڵAV:-m1[FC78 \P^9@1黥'"CWK|_8fVoƃF!Z~ PG)4Îv 9 ifF /S5|G|Rؒ.9<BZ.=Ch.]]H!Ш`Iq<5xqOAh1/WhrCH<^<򳐂e{w\O#ǖh_Q8G%0}uDcnڔilwzJwTJn$eGesTep/jD{n3Aٯz b n R>e %>z x8]*zҶ>\)i'1.^Xh؎$"U] C4f K6/h+?)9r8{"NCCw33{BwCJ|QkD,FisT)2 `#,dÌ/kx{}O`'Ը+#Ⓨ+ HըIa Jc‹x^h8ᷘ@D?'Dpv(Ʌkj RcD cVk8'TGDUZ@徆_k> b;1fT7s[1ÉЈx?7 Me7 RѮWDҌnэ yCRb9dG{7Y0Ϡpv9u~~k4t?Vf\Gu҈K8Hyc)ukc7X&d[qvgCX0 G@-2\65?}rLW~cL:UaGvX*[ڃ~/vz9+8E/3\;Rm ScAِƫ1;y3ρE =*,[@ ~aOWoۏBA69%EtdWw`#:sH MB-R)b2sָd >7kP% K:#$4ûǖk団_0hp}JZ]B#ˇ9$M^ԮiDMNOvތEק]]&І|cZ.jo-909#F K :3s]`_8N՚@4 k=3q WO?J4uU_R,.{; Kk9 YȀkid:uرj zIRt[%(|Hp mR-vr}C *04Cz ˪Z:(]>Yrж.ct xc3D<2j&FŏDM|5U{_"9>K`.R.Vt"~r6)6FP{Yh񂪳uce$2 wPK2SfῚ}LY/CY|ޠ ؊yr_ɰ/%7 R} ԅݣS!ke.%9, o0 W䨗".ֲJh;j׷eI1P tN"GGBA4-ЀlU9,Y:k+~yzN+^sR,(BO^T+|G]m , y WgP<I`/խv4W=Aܬi olQGomAy%;Q.Pv-U3 f@7:yj=,G=zo 22: QYv&>֓")$V}P^= hN?yyx\Wc  ݓ#:H /V((vH1?\%M19O&o9} 7R R\v Ob;f@ﱘ88ra*%\(U"#Ào+؀% Ʉ hs Ĩiwg2q(@@$|Itn`+8q "sjyELNF(nJ~79g'Gf7QI& &+f> w̛*0c}V/74 9)3nNnܹR]_?x/<<n-z^[qօ,.a~HeAmH6̽ bYM2;b0N;P>jޔҦ7T%*ˍͪ nSa|ID#Rsl-7߷0| ̙ maԑ>pko1W;(nK*+&ONi@BL(@Rg,dĂـ'F>-\{tiWaʂ+&tm Nա-%7olQCSRҹ/17j3);>P_V`/@colX9i^P?Wf+g+h蝕PǧfKw{٠ъpR \,+hLYgߺuR]"oTS/Xz?Hǚ@Kȑ*~MeM\&JօǗ?)Y@AO>459@Li3-*.tVG0)IAm, y-?ĵU_D ښOt~KDy&.fӝ⧤ư3ĺģBS|DI^dݲ~k 8hjnen d,;E-uɖiOS!U}.-D`nK f@f}#dʛ 4u*eq[yiwX۳r|N>`]?}(%qsWqD'i,c\Ozy^[wK&,D^x:4ӞTh@~,jY{`aJSA,eZeHZ?hmLfT9:v҅$O .6ަ9&N(/0IBzOn݁(ia 02/w1<핺喗yDgP(&>ᗊγN)TD)U6rRsd꫏O"[AV.F9Prϼ;BwAS4F6iISVC&_4TpLVƳGS<}\v 2` MŃ9{WQ! 5L|Ѯx { p^o߇sF}\\b̢APщM$ݥ!:0Z,Ey1g̡3 ~)\2F߲0/hzs V`!ZCN P幺.sX9a&吻˜I-wϔ(XnJY4PJB͕W&0U09.{!r.,BaѨ;mT@Lqr_r!oQ -#By/]Fvm D^}lL}[Neң`B2a,u KAw0Efpda?۲2>. Ѝ}$,բ?Z<r&nh+? ܗ8v,b$ JD=Kn./ƃu %:Ĕ>-7] ؍♯X>Q-[1`9Tpcu9u0!' ^,iQ@* Z 4ְLݗˀ║\ /" ۾m'\X BC-S#vKNҰ$ }F WmpLLF'vdgJ"p$v)"Gwf8>v3)n0G/۸LYs5b&*erphi8e 2HtOUVMѭ0 N#u}3b QF!y')tVK![›-cYwDyr<_ D)oDVO*Nf|6h2^a}sdX-_7vX=6 )Z_:֥|B5C+OyÚKIkPY!ȼ&Xg߁lؠ?~@eMpwҡX}oɃ hp)9^ݗ:4Z-1VL1מ[l -m qJ"CoTVݰ嬼@ROt  2D<̹M'ɣ xry/zB7jQy2f&iޒio(KE&EÂ߄~uKWkN`;0f_ 8MZ( V)GTn/,͝Uko#.L +x`2ap$ޣ[/6,*鐈ul>ͻ(l6OGْu{D+AӉ~6_Z-DfNcں+&Ƕmߒj5z: nw }`SO.wL +eAbUe h܋.k)$)\;Q_<1"?FH~gkI &5glp$!+ z55{j򥿥AK=:|s?7 w7D vmw?f.ihܐ2@ټ/Q%__ZL,-3;΄#7p#9f<\kƏp-}ۇg ?vUNk!4D8ry2Xy:@ASQT۠e DŽj;\Y}Ǫ ö`,?0)W-3@|jF7@HW ֣k!l5SȐmMڙ2Xw_VSE/ `p"E烝G:kn7@ھEnQ ]+pӐ`WsB gQ)$T͜KDRJJTO k..4a*h⑞)82!Jh" ۊntNSFq,zuTvjNDBM'.ca|)=/%c^ Uw'ed[ )ߟIƯyM C0|T ɜBdn7X[]dU-?;IO`'R?,m01n5qI *fT,TF]"BacYɩ#;wwB)$P&@ SgrDт5.E<14fL.X l6(Y2r!dw Bt xiXl;#Yo3+"jJM|(nWL^--]F!ƕ> oۿid۔lL6VEժv "ـWv yצcIx ^]YM<G><׵&/u[0lmQݯm5XƱBK Fu7ERp~ KS5^O zV:m܃{{\jjLOÞ!k` ?_TerwHP-Ɓ8ؼ 1EM?:ѾÕl$)Vb$:[ ncE a}Hy` . WA;HhR+ٓ/'Q_pROg%׏K*mva:% oE^2S%"q}D'Q Vab0խdO]w9D$xB/V)lJsg*ZژAbHd&)G i.>L>`v,i@t&1Ȣ&3fA13rXsRm@Iǁ[^YIG&GxDL$Hh _.i{&˒q+D@eeq i/Aֆy#߄9+.rބ (|گY t-~M''6s'ARU!#6l \CT!#_RDk$pRc0%DPc:΄!L$9z.}Ҩi3]Cp U1(ɧD2JK\s,uƍoOW4bmى`2/ 1Ԕti640_Őd^"7[s' T:t0Mg5G,ڼݾZFM \l drt* _X&*x·]TSXiȂU.戇8|WGwTōv `l,`BOWgqF{ ќwM=8 -"=g=E'"gjhq@HӇև(ɥ=]k.>5znu]/WM lWvW1 z5ɍJܒw:=¼TW1~$q]ʐ x+9=Csk0jԀuȤߴ?vF Ѧ=_鼉9'f:f5mW<8$:mCǧr\ L1\%c.d$NؤΗ}ĺ`3Մ,"̵ yʼљB164_/:ڵ30R˶W32VX1;@WૅϫƷ"(>&PUD'0cz >fie?+FK9?ALr5J}[tCu6:oFDfKWپkPw]2cE›LE4Dv6TE_>'GaCr}D%.Αy ^I (^*QCQF '#[}dKA-ev:Z?zGaz{6"5 SW#Pp"w?{Ed2rv7yKڃ%- Pu{9|59ЍG~^hx]3tV` <  ׏2"R锊䦋1pxXwO/>ڊ;hyМc=C²ΐ a=ӏ_V})/g3>g̬jɈxT7S1SSy!:kEJտL#%{ӓS=ԵxM%@1Ě{W^֚19]|W|]V8c oP7^{4%TaC5nYKL?Q>~x"_,KYU-*?[Y@RkpٚvѰUbQ0s:i|i}'kmG,'ܛ dS, >WmץSNBcQ?), nuoW 1Ap躐 m@*Z}&ă-n3 g&~FêZ*b UHI傀\dGR|m//}uP!YH8 Q!嚊cpɉ;gz jA(~)Gm ?Quί5F˾3ӲoE6_lyFu(iƘ"^u)9{ĦspXN+l00 ~Yt=*[{:AMJ.??M-7Զ_^zIkZ¨c2,WRdD]?Za;c(x$`^s%m|a+h1 >aK0`LCΐGjjrD+y+~WH) AMGJϸ Ok*VܿX FO|j/븘 "UփV G? _k]ΪwS~X nj̡j:wBಂ al3}Wx}AOFT>3W)玑Ave)N2-{egm'X+@HU'| `5B ZopJeUٜ\-EOWld4r5XfKas<4޶@1U2f̄AշHMҀVQQ5hxX<#e'0uLVecc57V+lM>C3b:oa8 &89h&ۇ[K{c\"{RwE 93⮾E^~ endstream endobj 135 0 obj << /Type /FontDescriptor /Ascent 698 /CapHeight 679 /Descent -202 /Flags 262150 /FontBBox [-301 -250 1164 946] /FontName /CMBX10 /ItalicAngle 0 /StemV 114 /XHeight 447 /FontFile 136 0 R >> endobj 136 0 obj << /Length 12409 /Length1 1491 /Length2 10917 /Length3 0 >> stream %!FontType1-1.0: CMBX10 1 13 dict begin /FontName /CMBX10 def /FontType 1 def /FontBBox {-301 -250 1164 946} readonly def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /PaintType 0 def /FontInfo 12 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMBX10) readonly def /FamilyName (Computer Modern) readonly def /ItalicAngle 0 def /isFixedPitch false def /Weight (Bold) def /BaseFontName (CMBX10) def end def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put dup 44 /comma put dup 45 /hyphen put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put readonly def currentdict end currentfile eexec LCRNVu]K ӃnSJy| ~&=)bݾP-^iꁭv(Y/WWV7,Gۥ ^po!3cpOv+H+.MOGk{:+ U0ӛUT+?VnW$4;9!ȪL񆰵1Al% yFKnyú:R#NJˁd۴JTEB;[!9ARlHXN~O-D4n3s_nxi4Ayg/bK˂oLVEGb^X+yˤb$}~֓wrt϶4<{<4\2gѾ;T}mKGg )M|2EHveeƎ-:}"FF>iT5l{z?(Ǔ6>9s{sQwVoENn?g,31=>)yѠ!q}"N8OcwβHLH߿aPn$jeVLV?vzA9_<⢛XYU* hN'mm4>Qht7nČO8I VE })"V8:7 s1OBKK$cGouC=؍NU;z(ɴ w!\OCŴ npUQu Hq8mNT>yfͬ'#ۭ*PJ103HqݛoШaLan@AO܄xkOSȥd!:mJ2_+Ћ4yRsD I0nc>g)JέqH{K{-}W-@cI]q& 2'X[0G$".^7=Ξ2@3uYBԟ׷p!rpl]c\e@3 MQh~twqq"3~ō)5 ěc_8A@%]<\쉶9D: c8T>"*ne;jFg)IO,G40^h!h0ֺ}&M7n#ߊhE@W4hi!'}ۀ@ywK&Ҩ?KiK[oMo,e $ΗEw,ڽ=:5+[Q'*cV#|I-=<[r26I쥩Pþ!;,KҷS5&dn%V{ȃ#w GvïEWϢ:V;J;EhjkHeЁgTO{5J$(UOfw߫2eb Ø;ːsz4eV7ըȬBY:Z7S)+`^7-e!&P5=ivtsH|e܅ћ[E hEԛUi3\RKLdɒ385FRõr^-`dK͍C]4+*$t3f 5gjSrRĨiy(9i4 H_=L閹|f$rAImhG ikB'٩Y5$њ44 r-9Od,∧ I)É䴺F:\3!Y q3lRQKд=@VX%o0sX[F1RC"ԓKTV`ӾE Cpƌey;??7]&A.^"2)t,'V7N 1#q2eV;zpH}3~~sUvϝtfSߨ߂*SSŦ?/w0 #ǠK.{m1^ %d&@^ӷof| tN?QƴiBL5e\%^=)npaa2ZjC J4O$+ uS~ԣʩ(p;&D(T–%f$~ A%`LHakkC902x%]'qSԎ=$E/^&[<Cvm˧T+aNL<.<ۢlį*.~FK q"Mz8[qIq1x,=dމz%l&n%St&$#z=/3m DGW&mAqVH $-Ix*[sa?PbHרfNwLE{p}-[T ظب rc$zvEPmэj,☜O}bY6$8izq.G49Sd~9gV@M<|۠kk?QrӍNt yyUuhuL׈-M{aPc#WޣRcYAկY&H_2z&L?fD9PS;ȺeS[V>ƓF]Pq^cS٣#NPQ`GJUH<eMJ*o5pXb3T>NI OwM10lA0Dh)ۜEV*T~2H|I57JI>.lwNK6B|=lDOsUq=NcI=#Gki8koNmotDϯoUmf2 f~-6{SypL>NSO @LYs칿ف~MZ/p/`e4-Za#n[E0/1絃q^UCu8ٖm{bh%gjyb1OĤ Y$ ٫& Ԗ¨?Y,H @4&N$jo %.RKM7dv(TuK67N4M{\,noOW12iꮵBXߵ ,xcCQ΃wHW] hբA+ifM~W߅YJPsuL݁q='XwYv%"7zKTzAҎD8mSHхFf)MRɖؗLFFXŭRO)g% bV_M#6k$UjY+X՜12(M@9/KzvB!L\ij ,CS v;"dl)$]+[(ݙi)<0U`L JPAc9fطӌ?y)^>0E-<.F3MQp|Zvq6u Y߇4Ⱥ ty/ KzAzt*tAoWW ƀWy]ʤJDge ${ Ib+pO6b0ڒ$i_c5YyX=㿬`{jNSvG|[a8wvF͆@ph>*v"e4oidvվYB#,Q٦O=K ,^/<} ϮY.B+Z∑qYQ* 0RNn$aVVoF Ǫsr8Q^hͷ2G[rIz[rivps4e1hMt'4kE XSU+2u2^[/{vYeOI{i󩒴kƭteЬ`np 8 #P9K[|H؏k@zrtư8E\ {,Ff{$g|[xi tB `\8u?]jsいqK3 cA-VgłZR8&9$EFq S>V'㌚/j۾rѤqMdUBq۩Rz ?^ItWV-~VRM@/1 m"NH(?Qr`1-;^?fCK,ۙWh&y +B8C~GVKAа7h +U@t>JWlbg8bE1OtZhN'0IW/3Y@5Ԕ/Qc8b ~L*R"}5\K/k2\{)2RUAzF[μn&wqp`bT$'zu<n:O%~UʈAr eMcyGF)ha6֮ҧdJjmKt\=W3@ҚG.JK'>9ɍ`U۹r_(+ݞ<^U){&mS~o? 3`1Q% jޘ aR-XEDLVًrgOWRr\J V.{'Gjb A}Τ* fZ>t歔\C9y׷ ղڧ(_o[pvCˎCBOQFݠƢYK$NAU4ܓ 4'YI-"vxJ:eqs(cram@9̝dY]MD' NKx:f`\AdOǮG04p9mgJ3;A:`i,k'c*c3UXQIQsa]˹mFx =)C%4[a{XGp0~Ombe}pOι>LWBp I֒;=v;j3'*G C8GHD(nrG.MTΞ??oH<.6+~RC!pomg{_=8 eXɱ7QNyX^Xnqxjq{ɃzoBF =v{/b8;T+tӻe_b^H%F>o&߽h[\uQNií7_nOHz17fJd)«1!,1'םT= xXXzX%8XẈsM/V Tf\"`f>e[@#N{fYhp\SDF?LM`/F#^:/,5;g8pr4 GJQiqKr۴f%up 2Z*2l6'=u0EKI6Wy`~ r@Z5dǣ!eWFݏ%5ѝ͂kgGڕ2&TDZ~~ʿYD+r8>d⨱ T0Gù ?dGjX~ %)UTL@GU6Z$VGvlY4tGS4K䶻I)?0;u퓋=F؍V^0[[sE>3Ԥ= #HD .|v څ-; .(|aGAZ)ȼM_~jVe(֍4;A|}F;Hª߉z4to nD=שhF#@Aw}Œ̍p;[evǰV5G&d[tE6sb!= sjgl6BFNRG! qi2) %+hE]FbXxa֧~D~ 춽)Z ؃OFi2rWncA<YnU%7>ު08mEᘌX-O<^dMهHyx3s$Pt$*X۩0QBC,S\bZDds;~wkY3~|-Av۝`" pUfu&#@oB^Ҷ<-xkȲя{ =MXo2Ɩ# 6V(,npzt. 0!7$"&CS(tvGp$[웍mE2ibŀ%Vp ?n%fDҳܠuq'EF(mJ$\l'|RixDl5 u"wٔM@Xu ƨDVHKA)16z<~nw\fp۵Jb-DJBri8UGgZOQѯ+E.viVғCDljb>6r&QY9- 0ĮZi+3], &|hbFyp}kI֙´@*WfWU{%DDsQ̅.S*@bC,4RYY*8;6Ow&xa4hrXW^2J 8;e{ wQ1]*pѮ 228ښKr AIF:Wfp8+p3ti j, k\]e:{|_~զ)l*Ii x2,j&1jrc(v44Izx18i]zzcp:쟦udiEd1;IT윖 Y9(2R0 f9% igVʜV o:4{bL"Z{ԫ ZѠq6Zw]3v OX"TxSd|drKg8ǒ?j7ٺTbѣ5Eqᩋ5o=7L_fJ`%5.EgM16:]s=:3b"%x$ 4 ~6Xăf+z Pmԃ:$9Il\!P(h:ͅr-}@m|2wap~0dbr]1~lea"XKzʒ1AVl? sp߆8O8$sG=>?) dʝP+!`Bg?B~>ydº?o6(f s"7`iׅ4b*+y<ظ nbӦb*e*0%A9Д"u'kg'.'"'?s}A5{;$Jc/ejYN< &cAFz}/3a^(oZU1N}Ԁms9!WeI!XEO_bweT;2iW`Ӊ9RM[H` 7x/HWu"vpⲞd+.)F+.8D3u\f0O/$GTuY&XrK:Dl_Pl+'+gՑ򶀪cmq(=] 4ZˠS"Յ)Np"֫Yn^(fS 6P4<ۆub=.U^US 0M&+܎!)ĜK8OuNʑ9I2 b(Cw=Ƣ=8z^(% ͥKs :vp排#B#R5i+( n(izyuPn59i0JW!Q]K7|9Hm}8m͎[J̀;At; Py e Јq(aʇ׆"иsc+2'tL!\ڻ701jԣP=p͜fbOXN7YYPx]xl\? }b $F׊}r0e'$ęAc綼:(%Ń^9K[ezvҢ-І X+@\e_TINS-º*לRus:#h]6=(*\t"_?Rfnq_r?Rsw!Cw×B`12 C@co%/ .(]8S' 7@ 5[gE۽|Vh`,cAfv odFy7=yYbQZޱ\;C endstream endobj 137 0 obj << /Type /FontDescriptor /Ascent 698 /CapHeight 681 /Descent -207 /Flags 6 /FontBBox [-251 -250 1009 969] /FontName /CMR10 /ItalicAngle 0 /StemV 69 /XHeight 434 /FontFile 138 0 R >> endobj 138 0 obj << /Length 17841 /Length1 2040 /Length2 15800 /Length3 0 >> stream %!FontType1-1.0: CMR10 1 13 dict begin /FontName /CMR10 def /FontType 1 def /FontBBox {-251 -250 1009 969} readonly def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /PaintType 0 def /FontInfo 12 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR10) readonly def /FamilyName (Computer Modern) readonly def /ItalicAngle 0 def /isFixedPitch false def /Weight (Medium) def /BaseFontName (CMR10) def end def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 11 /ff put dup 12 /fi put dup 13 /fl put dup 14 /ffi put dup 34 /quotedblright put dup 36 /dollar put dup 37 /percent put dup 38 /ampersand put dup 39 /quoteright put dup 40 /parenleft put dup 41 /parenright put dup 43 /plus put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 59 /semicolon put dup 63 /question put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 81 /Q put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 88 /X put dup 89 /Y put dup 90 /Z put dup 91 /bracketleft put dup 92 /quotedblleft put dup 93 /bracketright put dup 96 /quoteleft put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 123 /endash put dup 124 /emdash put readonly def currentdict end currentfile eexec I>&+GM4_cPMD_4J#Fr l}N;iv2[5?35(HCo{dmflײ\o_ )ZK{t%r|hÉv6/8:FH?7nb]S~st*1jB_wN)Nk'ܰ%zgfcvBf;_ g`0#Y|8DiDPikVݖM҆ &<=@UA@qbLpڙ 1}%tHRF@zmdશ(%˭2/}< WvI-TIU 줫ĺ}.vKn!ƊJf,ǙixkH!64J`Q^T&87=Bz~Rk:Zc\gx[2SiE*74vŪ ):y8&XP*y_ZڳGjT~E ;䈐b4ȖڻC~#PPt('u41_z_c_>h(n6ՕYR5!:J=:KD.r™;BctZW"_LSpz I.< &ܯql>??=A 2n76idyDUn PjpiXkxc`Dm{ƅ*.l gNuzN`hi >/grG_ OAzYΟG`<< ̕B{X*FZj`!-NdRמ8eSQԙ%̻BN]iKUf$"ċh'64ZJB9{lw;ɱ[{)ZT:؂G&5R Ԕ!/-Qv`hc;c!_BVr[#? SMFɢH7 v4̎QGD~h6M&ɞBtQLNm=GOR Vs _[O48!W:>&#wȳ>\~惧 PHsSKm:.gjyֱb mQIEĜ*EnJ֐(-8GQ|:.^kW__Y/I=vC&qflKܩQN=~ZO~ж@Hdtgn7 TLZR"9Yie0\Qj6鋽a OP#;.$ycODK5hryEJž?pB:]z ,wK ]$铜0ęmT\p^늨Xy"GH~/2:l^(P/!@61s(,l,w'AlQ(]\>M):i ynXF9z1§X{9}* '%MA@~ ydv'MǞyjuPPzfN$ߛ񪀻~ ?_L?t:,`.\S.rgrbn)ygubcHzf`HY^O`KJU-|6Ncnwq4?aDqcϠS^%9.DT ,P{>[9|9 Ck,>jH NHf}+du= _in(dE0.Ҧ EEUB. 'q]\~g<} 3EAw&j^[TemrHeq3 9ۮ>zPUгhĩdg@7jV=dɋ62+9sgByJt,+C4h߃:] XoV%&~종F6fb:B<|hXWj"Üu'r[J.D$-" 9IunQ*pz=ϸT=QH/,4kP%#*gE㼭#8%C aC32UhCELJGPTnZW~Բ_e'W9vS^Y$a|1ݵ\V3|Qmb++(Pi'j%-II(NӮp2e~FuuL|y8 4-U9)Q0cEʼnwԵ3 oXӵ2ef+g!D %핓x,c}WڡZ VEQ~,Y=}I9}d(Ѓp ;9ܒpH|)Kc r4 £ 9mP`};VjP}>242wb"QT2(1_8X|y /Ңm=wQK=4WY Gq R-/,rx@RuxQj:C1 AW+Kkq.TA8s7zy x/tX/F"s0I$aB .G} ǾxT|I~'>$Z(C5 7: g֫kL+.ڿ#سuJ4vIw`3p8>"4{>&q@6߱񨃏RZ:m\jp ˂үgő*Y>JrA8s{W^,˫MR|/.׆t%Yy!3jSg\[`Me[y2Hءukx6ϓO%Jm`+ɀ1Bްv".:_C8F=sMRzPdb넟Α9aP(J BEtO35i$pmq-HcYNKȝMHq?RmX!F/Nw=R3=SHqA ݯ޴=Q1ZQ9>_yT %-+z';d:.6S*'gggâl.Z@ ~˄iFf/KFQRY^bP՝Dh1cV``y+Q3RyASinh5kŲMS sFނ d)μ?bڒc7]5WVWuzӥ?/ +R$1HO{>O7[cyX#C#"E} XSeeNJL k"&-"F] OvU<&\2/P0'vJ&bt[]iGcyaedl}N"6,M"f DFŜþjZs󾠦,f$Boe{N1O幒Еs{'=Q"RDwsŃ:"x/%$~TRy9vFL,k,]n>s]6ﻏ+Z>*m$Af(qWjxcㅕ2HIǕ`>tl.+iYمcqPż/[Fl'cg-e+ڻHFJyt61"Bi?Ă.WIa wf,kd*<*mu"-vGxWUCtEIM;qZ!TW㠺Z@*+Tp2 ?~r4V<>840tDŽ?x3rt[[_ &ji%@=̨Ĝ4aw)̛33iaAhfu%.5uVIlb<3#B v˓+4=l~\ʿ0x5q 4]1ON H 3o2ßA"U^r_ j] 4*&>= 9+gW_ U̱ћ˨!#>RK+GNSs{;.м&FM6^bo@sk⁍\,͘?!2K`Onr݆} m| v.?MTl*OzT-bY*q/&EkhکSG.;lv󰗎 A;?YʐqMi{ ğ)[ j \qee%zϋaX8kxdoSuy5^(j^i`'j)$I6j&W2Ni3}Ǵ.fҢZ_q&j٩'l|v(*DޮɳT?XM ?@{kN8r* laLUWoKL & #PT F1 > laQؒ翓5M:s+8Z֤6}CMU.*3APhj!3H~h=^U (4R8y;Qb8#J]%!>:h{ ݱ`+QA!5tJObp8e9uIM{&3 GvN"̃(D_[a:*zSH>{&Ӗ)j| 7Ϋlv_g""fڐF,5%R{/\S5F}Z g0d~!M GNkF7Ud VwVVR+8O¸`е bZR9C4 rθ]ТwP3Ό^y5:(}R7q kXS}m*XjK[I&I9W0N+:Th9@mfxJ>zc? $#Da96œ!\S`t/s2 9^ D5XHʌIb`1ؽ;wƵ~3tUVy ,6F(1S<#kD.n9pTezRj '0\6| vR]9ccܤ}xqra@F!³3yY}A|0Pȣqm8݃swHl2)2H!g)PHITQ+B\Y}3A#ۋfpEAʩ2JYw`)|ҁz*1o2%bo= 0n9rٻdCSk(&y줫ІB=[1)}0BT}]j"71 XN3ґRV?5IkTiD^ 1WSa[plѕld<]Ke/{rbA`ژ1ވ" μ. s &>n|antTYT2Q )"׋[742# !nkXGq(BԴX27 BZtob,2.3AŪ]< }i"$k?! zYqR՟ h*9j7ϟ!p8d(42٘K}8Y])4#KR]{ل^V"KF_ph9Lfeaȹ +3xjxC8='H/1sA5Ve5`*\{Gj,\eʂKIC̲LTw>F7sIJQp,V&7${WwN@}~B0Odh/1}@>Jct`H'/xk:V)pt1GGRb\vDw\VI`e''>dP!Ѻ p^H@X2,Ae; ]gg1I/&Qz| zbf'~Tfi!{nr֋>[np\3paM)dr%v̴QΑXͬ:v oVbHL!'ܿ CY"3q?ZA[3v2AxpF9!}Ő!$$@vY\T!r_gc TpL˭$ķ(`AH\[V XPo&fb#2M L]WPMB6ʦ~Nf{z4gQ}Ky=, FJ羷տn`¶88'q!(Cw޸`s-c4H KD?C s$#bQx6- t[e2T~,c-jkFk0(mRO5$+QPZOZMtZ_j8x)F!,|'a*ajxBZ0(lB@_Cx;VbcF7%Zp_;P9ܝ4H[TC\Կl`# KF΁C5{#:|]uWLn8zm;E2i5|Ȓ/w׭C?o|LZugCR,llع? &M0l>Y<٭ifRjHJ\P/.qƶc1>-*A䬘N}'YBo;2+NÞAoi~@ !W}9-pC1 |<ʱf0?"0TI4Vb? ϊ_Z@ɰ]7Bie~F11`j,t/q2&n֏{{_,3Zbzm6[K&-*w#1;oک8T,F(?±Oka3PIH\{fa20e˼+K Nl5 hw_n\h[+x9@$Ĭ &w\6b8_ Aup/?/Kqk,ٓz?_1dDFaXP Iau yQY1/R1i뀶 O'=S5t]=w2;pFY˓Rh  nq@ʹ8[ymD/ 1 ZF5Ԗ1V4I|JxE6|ЦA|+~\Л@9u3"ڜ{JR+[SyGc 3ӄy2_'w~OU = Z 0.x*"ސd@qb`w̯i*W҈]fjubSyPw^] 5r&MB9_["3G"ㆻt#p:7 ʼFe۝z=29){rd.Z^FKmxyCnV߶,qv~f F_g]s%^"u纍ng9egE/^'N :^ncdٿ^nLV{/|;QEm١ňs?{~E |,!#.ȚņaܳZî74|׵%DUW"آz6lOM o^g(<}=AxVxkLDԞ 8Ħzhÿ3]ZA@֜|0?8/ibdtȗ4ksTzlػ}E2+Xߵ.HD>#ꋔ<2u5}v !dt51EO?8Ou7)*qgF4c]ciÉ[U-w: =#_Lw-C@: dˆgIkʟїTə^] ~|+9Ocîg$'?%ZCĚ nXQg6XR2vO 9_s [| ;$vq!{`J-C@joeMa߭m=dp囜?yLZ4d{Y"Fv%ȯ@F31=hRy47RFD+}:T.MVe ؆]%kBO&ʼnBN ]I0Q_&ovm86V|uX5Ҋa/( _ퟴ%rNg>I/F7%͎y(qWB\lI6kLPF,;h8z+h}jzZLyn"s$~{puzc Z8xL=IdۣGV&Tɭ1[uڼνbqex4y {޾ɋ^g*vvFg jzf2VSp}{th# ab{]1~Ib&nzWrM] :/Yмa+ILm$-'#,2yA=&E+EJg̱ވ5'bWJ@.>Z[b~:± MlЫƮ G}n7xA%Ӄbsx!ue4Wp$֎S?l"@W˝ q> gcvMuB[9ֿIQ˒j0x&oj>-LҪCK'%Q+ ZI<ƥtұAw0e]|ѭ/xD;?O!(zJ@t |ov.djtVSfh@~%<ǕXȮ(*c 9r__M̯f=2ExqjnjvƔ>`_\e[FaK@@f2=m"SXףb.lYR50Rgl@B4l̄!&_L7Z|%g ÷ֈ2o(?\min,C #hu*rx˒ ӿ<+Z#3i! WNv7b<ðݮ֡9\ENI;eqf.7!l+qA#"MxDЏGu.ƻy9Fyr!{I0(7,ڌG /|O4&.\ԅj2$Mhi}E߱(_#7PU@N_B╩8YqJF7$TMSl)Fh=#bc^=:RFw9;ҽ#Xp7VQC`dy`.VB"mU/'ze/(H}v)qWtߟd-6ES06>l%GzהYqHokQY{٪ʥԐZ+_$#R] qS-SCwzF {&“dtt }*7 }!$Y_8Mx,(XTS98k\xb= #]?z6O5w]JC8 -}YP'Q`x2'ƗDe* b&QPO7EE%ԯPϤ .oz4ej/%_3ۧZOp;FW?ARK/Xɧ p$œTⓕevݪOJIpov_ֵ +K.$.JH2x)k$m:ߑCj,)/%{rW'mWŐzvk]*ٗǓ%%8'btS =rs>=I,Mamm0갭lq*E9h3q~4k; 7P]3^'R4ݒ40+WY,6]W? ҃}z,#aL&9HqhQLtg҈WZykLtڴ! t">;ziTvr(9~3sz |)X$ؾeIVu]!FE|CPz{ج]^@;k%c*)hW6"᱔𥪷q.X/ w`>gvs#+<5ȳ$H}=N,یܦL/Nt$rKzNo o#bC8tCp(2-㈎ؐovQhN9T˗W0ɹ9-3'9\]"eI֘ybKk"vWҿvڲ="@eїQW7֦,]t2hHz%҄=*wN ϥ4HdydPT\~1Y-WDW{ijUWW&=:@: V}Y6*z7pd/t~<89`7E˂O&Rt;Xpܖ"'osrQX%*Ob^T +It~,guFU7Pwhrk/ "9{|' A JWDo;aᣑWtBbQ EڶCVxԅ??2.=1%V hh,b8_5'!.:CvϜ7}}D^}5Y=YkyLUTv}66휩VLɞIM ZOBBUJV[0/'ߓP5B3Ξp8' 6^W*:MYR((ӧeg sٿ}ݫ&xb56RGLOxљgC{ SPz"gs:fxg%xlvĄ&#+ `JP&$w`x _VuXk5< ꜠m03+b~RN٦㖒_60Js[Z.۸U7=U~'*=oתَ!Y\.}['kN*ʒ! Q$2#*QlUL2pEVJcOu( KIla.i/_ΜNS9o>BH~d5WAWo]#>n,)ͣbtxg1 ljѝLSs 'B&Sb隰hw'*6zP+|w>Hc߀E hŮV& 3njJbcPH507/BMr㤸=-4 +yOpaB @*:DêVj͝dU+wO< +TԄ$Ri1߅z7<`[\dOb3,p> endobj 93 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /FirstChar 107 /LastChar 107 /Widths [535 ] /Encoding 140 0 R /BaseFont /CCNIAP+CMMI9 /FontDescriptor 107 0 R >> endobj 4 0 obj << /Type /Font /Subtype /Type1 /Name /F3 /FirstChar 45 /LastChar 114 /Widths [378 378 553 378 378 553 378 378 378 378 378 378 378 378 378 378 378 378 378 378 814 378 786 829 378 378 851 378 406 378 378 683 989 814 844 742 378 378 611 786 814 814 378 814 378 378 378 378 378 378 378 378 378 580 591 378 558 378 378 378 302 378 378 378 378 378 378 378 378 602 ] /Encoding 141 0 R /BaseFont /CMCSC10 /FontDescriptor 109 0 R >> endobj 86 0 obj << /Type /Font /Subtype /Type1 /Name /F4 /FirstChar 97 /LastChar 115 /Widths [525 367 367 367 472 367 367 367 367 367 367 262 367 367 525 367 367 367 420 ] /Encoding 142 0 R /BaseFont /CMTI9 /FontDescriptor 111 0 R >> endobj 78 0 obj << /Type /Font /Subtype /Type1 /Name /F5 /FirstChar 5 /LastChar 103 /Widths [514 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 514 514 ] /Encoding 143 0 R /BaseFont /CMSY9 /FontDescriptor 113 0 R >> endobj 79 0 obj << /Type /Font /Subtype /Type1 /Name /F6 /FirstChar 11 /LastChar 123 /Widths [600 571 571 343 343 343 343 343 343 343 343 343 343 343 343 343 343 343 343 343 343 343 343 343 343 343 343 343 343 400 400 343 799 285 343 285 514 514 514 514 514 514 514 514 514 514 514 285 343 343 343 343 485 343 771 728 742 785 699 671 806 771 371 528 799 642 942 771 799 699 799 756 571 742 771 771 1056 771 343 343 343 343 343 343 343 343 514 571 457 571 457 314 514 571 285 314 542 285 856 571 514 571 542 402 405 400 571 542 742 542 542 457 514 ] /Encoding 144 0 R /BaseFont /CMR9 /FontDescriptor 115 0 R >> endobj 80 0 obj << /Type /Font /Subtype /Type1 /Name /F7 /FirstChar 34 /LastChar 121 /Widths [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] /Encoding 145 0 R /BaseFont /CMTT9 /FontDescriptor 117 0 R >> endobj 81 0 obj << /Type /Font /Subtype /Type1 /Name /F8 /FirstChar 65 /LastChar 65 /Widths [866 ] /Encoding 146 0 R /BaseFont /CCNHJK+CMTI7 /FontDescriptor 119 0 R >> endobj 74 0 obj << /Type /Font /Subtype /Type1 /Name /F9 /FirstChar 65 /LastChar 84 /Widths [667 333 333 333 622 622 333 333 333 333 333 333 800 667 667 333 333 333 333 578 ] /Encoding 147 0 R /BaseFont /LOGO10 /FontDescriptor 121 0 R >> endobj 49 0 obj << /Type /Font /Subtype /Type1 /Name /F10 /FirstChar 107 /LastChar 107 /Widths [521 ] /Encoding 140 0 R /BaseFont /CCNFOH+CMMI10 /FontDescriptor 123 0 R >> endobj 25 0 obj << /Type /Font /Subtype /Type1 /Name /F11 /FirstChar 15 /LastChar 103 /Widths [500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 500 ] /Encoding 148 0 R /BaseFont /CMSY10 /FontDescriptor 125 0 R >> endobj 18 0 obj << /Type /Font /Subtype /Type1 /Name /F12 /FirstChar 12 /LastChar 124 /Widths [562 358 358 358 358 358 358 358 358 358 358 358 358 358 358 358 358 358 358 358 358 358 358 358 769 358 767 307 358 358 358 767 307 358 307 511 358 511 358 511 358 511 358 358 511 511 307 358 358 358 358 358 358 743 704 716 755 678 358 774 358 386 358 769 627 897 743 767 678 358 729 562 716 743 358 999 743 743 358 358 358 358 358 358 358 511 460 460 511 460 307 460 511 307 307 460 256 818 562 511 511 460 422 409 332 537 460 664 464 486 409 358 1022 ] /Encoding 149 0 R /BaseFont /CMTI10 /FontDescriptor 127 0 R >> endobj 13 0 obj << /Type /Font /Subtype /Type1 /Name /F13 /FirstChar 71 /LastChar 116 /Widths [785 333 333 333 333 333 333 333 333 333 333 333 333 722 750 333 333 333 333 333 333 333 333 333 333 333 500 556 333 333 333 333 333 333 333 333 333 333 333 333 500 333 333 333 333 389 ] /Encoding 139 0 R /BaseFont /CMSL10 /FontDescriptor 129 0 R >> endobj 14 0 obj << /Type /Font /Subtype /Type1 /Name /F14 /FirstChar 65 /LastChar 65 /Widths [843 ] /Encoding 146 0 R /BaseFont /CCNDMH+CMR7 /FontDescriptor 131 0 R >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /Name /F15 /FirstChar 32 /LastChar 126 /Widths [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] /Encoding 150 0 R /BaseFont /CMTT10 /FontDescriptor 133 0 R >> endobj 6 0 obj << /Type /Font /Subtype /Type1 /Name /F16 /FirstChar 12 /LastChar 122 /Widths [639 383 383 383 383 383 383 383 383 383 383 383 383 383 383 383 383 383 383 383 383 383 383 383 383 383 383 383 383 383 383 383 319 383 383 383 575 575 575 575 575 575 575 575 575 575 383 383 383 383 383 383 383 869 818 831 882 756 724 904 900 436 383 901 692 1092 900 864 786 383 863 639 800 885 869 383 383 383 383 383 383 383 383 383 383 559 639 511 639 527 351 575 639 319 351 607 319 958 639 575 639 383 474 454 447 639 607 831 607 607 511 ] /Encoding 151 0 R /BaseFont /CMBX10 /FontDescriptor 135 0 R >> endobj 7 0 obj << /Type /Font /Subtype /Type1 /Name /F17 /FirstChar 11 /LastChar 124 /Widths [583 556 556 833 333 333 333 333 333 333 333 333 333 333 333 333 333 333 333 333 333 333 333 500 333 500 833 778 278 389 389 333 778 278 333 278 500 500 500 500 500 500 500 500 500 500 500 278 278 333 333 333 472 333 750 708 722 764 681 653 785 750 361 514 778 625 917 750 778 681 778 736 556 722 750 750 1028 750 750 611 278 500 278 333 333 278 500 556 444 556 444 306 500 556 278 306 528 278 833 556 500 556 528 392 394 389 556 528 722 528 528 444 500 1000 ] /Encoding 152 0 R /BaseFont /CMR10 /FontDescriptor 137 0 R >> endobj 139 0 obj << /Type /Encoding /Differences [] >> endobj 140 0 obj << /Type /Encoding /Differences [] >> endobj 141 0 obj << /Type /Encoding /Differences [] >> endobj 142 0 obj << /Type /Encoding /Differences [] >> endobj 143 0 obj << /Type /Encoding /Differences [] >> endobj 144 0 obj << /Type /Encoding /Differences [ 13/fl ] >> endobj 145 0 obj << /Type /Encoding /Differences [] >> endobj 146 0 obj << /Type /Encoding /Differences [] >> endobj 147 0 obj << /Type /Encoding /Differences [] >> endobj 148 0 obj << /Type /Encoding /Differences [] >> endobj 149 0 obj << /Type /Encoding /Differences [] >> endobj 150 0 obj << /Type /Encoding /Differences [] >> endobj 151 0 obj << /Type /Encoding /Differences [] >> endobj 152 0 obj << /Type /Encoding /Differences [ 13/fl ] >> endobj 1 0 obj << /Type /Page /Parent 9 0 R /Resources 3 0 R /Contents 2 0 R >> endobj 10 0 obj << /Type /Page /Parent 9 0 R /Resources 12 0 R /Contents 11 0 R >> endobj 15 0 obj << /Type /Page /Parent 9 0 R /Resources 17 0 R /Contents 16 0 R >> endobj 19 0 obj << /Type /Page /Parent 9 0 R /Resources 21 0 R /Contents 20 0 R >> endobj 22 0 obj << /Type /Page /Parent 9 0 R /Resources 24 0 R /Contents 23 0 R >> endobj 26 0 obj << /Type /Page /Parent 9 0 R /Resources 28 0 R /Contents 27 0 R >> endobj 29 0 obj << /Type /Page /Parent 9 0 R /Resources 31 0 R /Contents 30 0 R >> endobj 32 0 obj << /Type /Page /Parent 9 0 R /Resources 34 0 R /Contents 33 0 R >> endobj 35 0 obj << /Type /Page /Parent 9 0 R /Resources 37 0 R /Contents 36 0 R >> endobj 38 0 obj << /Type /Page /Parent 9 0 R /Resources 40 0 R /Contents 39 0 R >> endobj 41 0 obj << /Type /Page /Parent 45 0 R /Resources 43 0 R /Contents 42 0 R >> endobj 46 0 obj << /Type /Page /Parent 45 0 R /Resources 48 0 R /Contents 47 0 R >> endobj 50 0 obj << /Type /Page /Parent 45 0 R /Resources 52 0 R /Contents 51 0 R >> endobj 53 0 obj << /Type /Page /Parent 45 0 R /Resources 55 0 R /Contents 54 0 R >> endobj 56 0 obj << /Type /Page /Parent 45 0 R /Resources 58 0 R /Contents 57 0 R >> endobj 59 0 obj << /Type /Page /Parent 45 0 R /Resources 61 0 R /Contents 60 0 R >> endobj 62 0 obj << /Type /Page /Parent 45 0 R /Resources 64 0 R /Contents 63 0 R >> endobj 65 0 obj << /Type /Page /Parent 45 0 R /Resources 67 0 R /Contents 66 0 R >> endobj 68 0 obj << /Type /Page /Parent 45 0 R /Resources 70 0 R /Contents 69 0 R >> endobj 71 0 obj << /Type /Page /Parent 45 0 R /Resources 73 0 R /Contents 72 0 R >> endobj 75 0 obj << /Type /Page /Parent 82 0 R /Resources 77 0 R /Contents 76 0 R >> endobj 83 0 obj << /Type /Page /Parent 82 0 R /Resources 85 0 R /Contents 84 0 R >> endobj 87 0 obj << /Type /Page /Parent 82 0 R /Resources 89 0 R /Contents 88 0 R >> endobj 90 0 obj << /Type /Page /Parent 82 0 R /Resources 92 0 R /Contents 91 0 R >> endobj 94 0 obj << /Type /Page /Parent 82 0 R /Resources 96 0 R /Contents 95 0 R >> endobj 97 0 obj << /Type /Page /Parent 82 0 R /Resources 99 0 R /Contents 98 0 R >> endobj 100 0 obj << /Type /Page /Parent 82 0 R /Resources 102 0 R /Contents 101 0 R >> endobj 9 0 obj << /Type /Pages /Kids [1 0 R 10 0 R 15 0 R 19 0 R 22 0 R 26 0 R 29 0 R 32 0 R 35 0 R 38 0 R] /Count 10 /Parent 44 0 R >> endobj 45 0 obj << /Type /Pages /Kids [41 0 R 46 0 R 50 0 R 53 0 R 56 0 R 59 0 R 62 0 R 65 0 R 68 0 R 71 0 R] /Count 10 /Parent 44 0 R >> endobj 82 0 obj << /Type /Pages /Kids [75 0 R 83 0 R 87 0 R 90 0 R 94 0 R 97 0 R 100 0 R] /Count 7 /Parent 44 0 R >> endobj 44 0 obj << /Type /Pages /Kids [9 0 R 45 0 R 82 0 R ] /Count 27 /MediaBox [0 0 612 792] >> endobj 153 0 obj << /Type /Catalog /Pages 44 0 R >> endobj 154 0 obj << /CreationDate (D:191030823172809) /Producer (Acrobat Distiller Command 3.02b for Solaris 2.3 and later \(SPARC\)) /Creator (dvips 5.60.1 Copyright 1986, 1996 Radical Eye Software) /Title (bibclean.dvi) >> endobj xref 0 155 0000000000 65535 f 0000344861 00000 n 0000000016 00000 n 0000003353 00000 n 0000338061 00000 n 0000342300 00000 n 0000342844 00000 n 0000343454 00000 n 0000216040 00000 n 0000347119 00000 n 0000344941 00000 n 0000003488 00000 n 0000015004 00000 n 0000341786 00000 n 0000342132 00000 n 0000345024 00000 n 0000015156 00000 n 0000025401 00000 n 0000341166 00000 n 0000345107 00000 n 0000025541 00000 n 0000035577 00000 n 0000345190 00000 n 0000035706 00000 n 0000045662 00000 n 0000340817 00000 n 0000345273 00000 n 0000045814 00000 n 0000055746 00000 n 0000345356 00000 n 0000055886 00000 n 0000063994 00000 n 0000345439 00000 n 0000064119 00000 n 0000073556 00000 n 0000345522 00000 n 0000073705 00000 n 0000080370 00000 n 0000345605 00000 n 0000080510 00000 n 0000090516 00000 n 0000345688 00000 n 0000090656 00000 n 0000100967 00000 n 0000347510 00000 n 0000347255 00000 n 0000345772 00000 n 0000101131 00000 n 0000111990 00000 n 0000340645 00000 n 0000345856 00000 n 0000112154 00000 n 0000121701 00000 n 0000345940 00000 n 0000121841 00000 n 0000129438 00000 n 0000346024 00000 n 0000129578 00000 n 0000138181 00000 n 0000346108 00000 n 0000138321 00000 n 0000146609 00000 n 0000346192 00000 n 0000146749 00000 n 0000155309 00000 n 0000346276 00000 n 0000155461 00000 n 0000161483 00000 n 0000346360 00000 n 0000161623 00000 n 0000168838 00000 n 0000346444 00000 n 0000168978 00000 n 0000179055 00000 n 0000340406 00000 n 0000346528 00000 n 0000179206 00000 n 0000187850 00000 n 0000338739 00000 n 0000339106 00000 n 0000339723 00000 n 0000340238 00000 n 0000347393 00000 n 0000346612 00000 n 0000188024 00000 n 0000192772 00000 n 0000338504 00000 n 0000346696 00000 n 0000192912 00000 n 0000197350 00000 n 0000346780 00000 n 0000197489 00000 n 0000202411 00000 n 0000337891 00000 n 0000346864 00000 n 0000202551 00000 n 0000207068 00000 n 0000346948 00000 n 0000207196 00000 n 0000212145 00000 n 0000347032 00000 n 0000212284 00000 n 0000215764 00000 n 0000337546 00000 n 0000215916 00000 n 0000216111 00000 n 0000216296 00000 n 0000219346 00000 n 0000219551 00000 n 0000221627 00000 n 0000221808 00000 n 0000227327 00000 n 0000227511 00000 n 0000230109 00000 n 0000230294 00000 n 0000232229 00000 n 0000232426 00000 n 0000246671 00000 n 0000246867 00000 n 0000259281 00000 n 0000259486 00000 n 0000261487 00000 n 0000261664 00000 n 0000264376 00000 n 0000264582 00000 n 0000266666 00000 n 0000266852 00000 n 0000268684 00000 n 0000268890 00000 n 0000284099 00000 n 0000284285 00000 n 0000287343 00000 n 0000287541 00000 n 0000289524 00000 n 0000289721 00000 n 0000306701 00000 n 0000306907 00000 n 0000319411 00000 n 0000319610 00000 n 0000344077 00000 n 0000344132 00000 n 0000344187 00000 n 0000344242 00000 n 0000344297 00000 n 0000344352 00000 n 0000344414 00000 n 0000344469 00000 n 0000344524 00000 n 0000344579 00000 n 0000344634 00000 n 0000344689 00000 n 0000344744 00000 n 0000344799 00000 n 0000347608 00000 n 0000347660 00000 n trailer << /Size 155 /Root 153 0 R /Info 154 0 R /ID [<0d02536fda84df135ed151416efc630b><0d02536fda84df135ed151416efc630b>] >> startxref 347885 %%EOF bibclean-3.07/doc/bibclean.log0000644000156700015670000000423207721774205015127 0ustar beebebeebeThis is TeX, Version 3.1415 (C version 6.1) (format=lplain 94.6.21) 23 AUG 2003 17:28 **bibclean.ltx (bibclean.ltx LaTeX Version 2.09 <14 January 1991> (ltugboat.sty Document Style `ltugboat' v1.19 <16 November 93> (/usr/local/lib/tex/latex/article.sty Document Style `article' <16 Mar 88>. (/usr/local/lib/tex/latex/art10.sty) \c@part=\count79 \c@section=\count80 \c@subsection=\count81 \c@subsubsection=\count82 \c@paragraph=\count83 \c@subparagraph=\count84 \c@figure=\count85 \c@table=\count86 ) (tugboat.cmn File `TUGBOAT.CMN' v1.13f <15 Apr 1994> \normalparindent=\dimen99 \T@stBox=\box25 \TestBox=\box26 \T@stCount=\count87 \TestCount=\count88 \T@stDimen=\dimen100 \TestDimen=\dimen101 \hours=\count89 \minutes=\count90 \PreTitleDrop=\dimen102 \AboveTitleSkip=\skip41 \BelowTitleSkip=\skip42 \strulethickness=\dimen103 \stbaselineskip=\dimen104 \raggedskip=\dimen105 \raggedstretch=\dimen106 \raggedparfill=\skip43 \issueseqno=\count91 \TBremarkfile=\write3 \@altfilenames=\read0 \count@@=\count92 \signaturewidth=\dimen107 ) \sectitlefam=\fam11 \stfontheight=\dimen108 \authornumber=\count93 \pagewd=\dimen109 \trimwd=\dimen110 \trimlgt=\dimen111 \headmargin=\dimen112 ) (/usr/local/lib/tex/latex/makeidx.sty) (path.sty path.sty version 3.04 <25 Jul 1992> \c@tcode=\count94 \c@unter=\count95 ) (texnames.sty This is texnames.sty, Version 1.09 <16 March 1993> ) (bibclean.sty) \@indexfile=\write4 Writing index file bibclean.idx (bibclean.aux) (bibclean.toc) \tf@toc=\write5 (bibclean.lot) \tf@lot=\write6 [395 ] [396] [397] [398] [399] [400] [401] [402] [403] [404] [405] [406] [407] [408] [409] [410] [411] key_name may no longer need to allow for abbrevs [412] [413] (bibclean.bbl [414]) (bibclean.ind [415] [416] [417] [418] [419] [420]) [421] (bibclean.aux) ) Here is how much of TeX's memory you used: 622 strings out of 11984 5649 string characters out of 87273 49595 words of memory out of 262141 2515 multiletter control sequences out of 9500 21538 words of font info for 81 fonts, out of 100000 for 255 19 hyphenation exceptions out of 607 16i,10n,17p,228b,521s stack positions out of 300i,40n,60p,3000b,4000s Output written on bibclean.dvi (27 pages, 139968 bytes). bibclean-3.07/doc/path.sty0000644000156700015670000003356506364667561014405 0ustar beebebeebe%%% @texfile{ %%% author = "Philip Taylor", %%% version = "3.04", %%% date = "25 July 1992", %%% time = "17:07 EDT", %%% filename = "path.sty", %%% address = "The Computer Centre %%% RHBNC, University of London %%% Egham Hill %%% Egham, Surrey TW20 0EX, ENGLAND", %%% telephone = "Tel: +44 784 443172", %%% FAX = "Fax: +44 784 434348", %%% checksum = "06928 345 1934 14197", %%% email = "P.Taylor@Vax.Rhbnc.Ac.Uk (Internet)", %%% codetable = "ISO/ASCII", %%% keywords = "file name, filename, path name, pathname, %%% discretionary, discretionaries", %%% supported = "yes", %%% docstring = {Computer filenames, host names, and e-mail %%% addresses tend to be long strings that %%% cause line breaking problems for TeX. %%% Sometimes rather long strings are %%% encountered; here are two examples: %%% %%% Friesland%rz.informatik.uni-hamburg.dbp.de%germany.csnet@relay.cs.net %%% %%% mighty-mouse-gw.scrc.symbolics.com %%% %%% This file defines a macro, \path|...|, %%% similar to LaTeX's \verb|...| macro, that %%% sets the text in the typewriter font, %%% allowing hyphen-less line breaks at %%% punctuation characters. %%% %%% The default set of punctuation characters is %%% defined as %%% %%% \discretionaries |~!@$%^&*()_+`-=#{"}[]:;'<>,.?\/| %%% %%% However, you can change it as needed, for example: %%% %%% \discretionaries +@%!.+ %%% %%% would assign to it the set @ % ! . which %%% commonly occur in electronic mail addresses. %%% %%% The delimiter characters surrounding the %%% arguments to \discretionaries and \path %%% will normally be a punctuation character not %%% found in the argument, and not otherwise %%% significant to TeX. In particular, backslash %%% cannot be used as a delimiter. In the rare %%% event that this is required, set %%% %%% \specialpathdelimiterstrue %%% %%% This practice is not recommended, because TeX %%% then runs about four times slower while it is %%% typesetting \path\...\ requests. %%% \specialpathdelimitersfalse is the normal %%% setting. %%% %%% This file may be used in Plain TeX or AmSTeX by %%% %%% \input path.sty %%% %%% and in LaTeX by %%% %%% \documentstyle[...,path,...]{...} %%% %%% The checksum field above contains a CRC-16 %%% checksum as the first value, followed by the %%% equivalent of the standard UNIX wc (word %%% count) utility output of lines, words, and %%% characters. This is produced by Robert %%% Solovay's checksum utility.} %%% } % % ====================================================================== % % History of the \path macro % % An early prototype of this code which was developed by Nelson H. F. % Beebe used a recursive macro to peel off one % character at a time, then with a nest of \ifx statements, test for % each punctuation character, and if one is found, insert discretionary % linebreaks in the form of \- or \penalty0. While this usually works, % it is not entirely satisfactory, because the nested \ifx statements % are ugly, and the recursion can exhaust TeX's macro stack for % arguments longer than about 30 characters. % % A second version by NHFB built upon the ideas used by the LaTeX % \verb|...| macro; this was mostly successful, but was flawed by its % inability to handle at least the three characters ^ [ ], by loss of % use of @ for naming internal private macros, and by its inability to % allow the set of characters at which breaks are permissible. % % The problem was then passed off to Philip Taylor, who wrote this third % version which fully solves the problem. Phil therefore gets the % author credit in the file header above. [Gee, thanks ! ** Phil] % % Then Karl Berry made minor changes in July 1992. % % Revision history (reverse time order): % % 3.04 [22-Jul-1992] % (changes by karl@cs.umb.edu, with Phil's blessing): % 1) use \edef to avoid wasting a count register merely to save the % catcode of @. % % 2) Expand a macro \pathafterhook (if it's defined) once \path is % entirely finished, for the benefit of macros using \path. % % 3) % all blank lines and post-}'s, in the (highly unusual) case that % the file is being read in horizontal mode. Use only one %, not % three, so the comments can be easily removed automatically. % % 4) Remove the \endinput from the end of the file. What does it add? % % % 3.03 [03-Dec-1991] % Problem: A \path|...| entry in a LaTeX index is set with an % preceding blank line. % Solution: Add \leavevmode before \hbox{}; without it, an extra blank % line gets typeset before every invocation of \path in a % LaTeX theindex environment. % Diagnosis: To avoid hyphenation, the expansion of \path starts with % an \hbox{} (c.f. the TeXbook, p. 454); LaTeX indices are % basically set in vertical mode, with each index entry a % paragraph in its own right; when an \hbox {} is % encountered in vmode, it is typeset in vmode, and TeX % continues; the first real character is encountered, and % TeX enters unrestricted horizontal mode. The \hbox {} and % the first character are therefore on separate lines, % separated by \baselineskip. % % % 3.02 [23-Oct-1991 13:45:12] % First released version. % ====================================================================== % \immediate\write16{path.sty version 3.04 <25 Jul 1992>}% % % The use of `\path' as a temporary control sequence is a kludge, but % it's a reasonably simple way to accomplish making @ a letter (to % provide ``concealed'' control sequences) without overwriting something % (without an `@' in its name) that might already be defined. % \edef\path{\the\catcode`@}% \catcode`@ = 11 \let\@oldatcatcode = \path % % % and then declare two \count variables with concealed names % \newcount \c@tcode \newcount \c@unter % % % and a boolean variable with an open name, to specify the nature of % the delimiters which will be associated with the \path command % \newif \ifspecialpathdelimiters % % % We need to define control sequences which expand to both % active and passive spaces ... % \begingroup \catcode `\ = 10 \gdef \passivesp@ce { }% \catcode `\ = 13\relax% \gdef\activesp@ce{ }% \endgroup % % % \discretionaries will define a macro \discr@ti@n@ri@s which will % make every character between the first and final a % discretionary breakpoint. % \def \discretionaries % % start a group (ended in \discr@ti@naries ), % make every character (apart from space) active, % then transfer control to \discr@tionaries ... {\begingroup \c@tcodes = 13 \discr@tionaries }% % % % \discr@tionaries will receive as parameter the initial % which will delimit the set of discretionaries; this % will be active. % \def \discr@tionaries #1% % knowing the initial , define \discr@ti@naries with a % delimited parameter structure, the final delimiter being % the second instance of {\def \discr@ti@naries ##1#1% % \discr@ti@naries will receive as parameter the set of % characters which are to be made discretionaries; it ends the % group and then defines \discr@ti@n@ries, a tail-recursive % macro, which will quietly process each of the % discretionaries in turn ... {\endgroup \def \discr@ti@n@ries ####1% or % by checking to see if it has reached the end of the % list, i.e. comparing its parameter with the known final % ... {\if \noexpand ####1\noexpand #1% % if they match, there is no more to do ... \let \n@xt = \relax \else % otherwise the character becomes active and is % defined as a discretionary with the three texts % , thus suppressing true % hyphenation; the macro then prepares to process % the next character. \catcode `####1 = 13 \def ####1{\discretionary {\char `####1}{}{\char `####1}}% \let \n@xt = \discr@ti@n@ries \fi % here either tail recursion occurs, if there are more % characters to process, or tail recursion ceases if all % have been exhausted \n@xt }% % of course, none of this must take place during the \stress % {call} of \discretionaries; execution is deferred until % another macro such as \path calls the concealed action % macro \discr@ti@n@ri@s; we therefore define this macro to % have the desired effect. \def \discr@ti@n@ri@s {\discr@ti@n@ries ##1#1}% }% % and finally invoke \discr@ti@naries to process the set of % discretionary characters; it will take everything up to the % second instance of as its parameter (and therefore as the % set of characters to be processed). \discr@ti@naries }% % % % If desired, you can define \pathafterhook to be anything. % \let\pathafterhook = \relax % % % \path, which is the user interface to \p@th, first checks to see % whether \specialpathdelimiters is or ; if , it % needs to take special action to ensure that \stress {all} characters % (apart from ) are acceptable as delimiters; this is very % time-consuming, and should be avoided if at all possible. It also % defines \endp@th, to close the appropriate number of groups, and % finally transfers control to \p@th. % \def \path {\ifspecialpathdelimiters \begingroup \c@tcodes = 12 \def \endp@th {\endgroup \endgroup \pathafterhook}% \else \def \endp@th {\endgroup \pathafterhook}% \fi \p@th }% % % % \p@th, which has essentially the same syntax as \discretionaries, % expects to be followed by a , a , and a second instance % of ; it will typeset in the \tt font with hyphenation % inhibited --- breaks (but not true hyphenation) are allowed at any % or all of the special characters which have % previously been declared as \discretionaries. % \def \p@th #1% % it starts by opening a group (ended in \p@@th) ... % switches to \tt, and inhibits hyphenation; % allows breaks at \discretionaries; saves the % catcode of the initial , because if it has also been % declared within \discretionaries, the initial and final % won't match (which would be a disaster); \c@tcode is overloaded, % but there is no conflict that I can detect ... % invokes \discr@ti@n@ri@s to render active the set of special % characters which have previously been declared as % \discretionaries; each of these characters will expand to a real % \discretionary, with replacement texts ; and % re-instates the catcode of the initial . {\begingroup \tt \c@tcode = \catcode `#1 \discr@ti@n@ri@s \catcode `\ = \active \expandafter \edef \activesp@ce {\passivesp@ce \hbox {}}% \catcode `#1 = \c@tcode % it next defines an inner macro \p@@th with delimited parameter % structure, the final delimiter being the same as the initial % delimiter which it has itself received as #1. \def \p@@th ##1#1% % Within \p@@th, % permissible breakpoints are specified, % the path is typeset, % and the group(s) ended. {\leavevmode \hbox {}##1% \endp@th }% \p@@th }% % % % \c@tcodes expects to be followed by the r-h-s of a numeric assignment %optionally including the assignment operator; it saves the value of the %r-h-s in \c@tcode, and invokes \c@tc@des. % \def \c@tcodes {\afterassignment \c@tc@des \c@tcode}% % % % \c@tc@des uses the value saved in \c@tcode, and assigns it to the % \catcode of all characters with the single exception of , which % retains its normal catcode of 10; on exit, every single character % apart from will have the catcode which followed \c@tcodes. % The code is optimised to avoid unnecessary usage of save-stack space. % \def \c@tc@des {\c@unter = 0 \loop \ifnum \catcode \c@unter = \c@tcode \else \catcode \c@unter = \c@tcode \fi \ifnum \c@unter < 255 \advance \c@unter by 1 \repeat \catcode `\ = 10 }% % % % Restore the original catcode of commercial-at. \catcode `\@ = \@oldatcatcode % % % Define a default set of discretionary break characters to include all % punctuation characters except vertical bar. % \discretionaries |~!@$%^&*()_+`-=#{}[]:";'<>,.?\/|% bibclean-3.07/doc/Makefile0000644000156700015670000000654307721774161014335 0ustar beebebeebe#======================================================================= # Makefile for bibclean TUBboat article and GNU Emacs info documentation # [23-Aug-2003] -- add rules for bibclean.pdf and bibclean.ps, and # remove dependencies on .bbl and .ind files to prevent # unnecessary rebuilds # [03-May-1996] -- update style and macro files with latest versions, # update GNU standard targets, and update spelling # error checks to use style of TUG bibliography # collection # [31-Dec-1993] -- final polishing of Makefile for public release # after TUGboat publication # [04-May-1993] -- add bundle, SHAR, SHARFILES, and add quoting of @ # in index # [14-Jan-1993] #======================================================================= BIBTEX = bibtex CP = /bin/cp DETEX = detex DVIPS = dvips -Pcmr DVIPS = dvips-type1 DW = dw ISPELL = ispell LATEX = latex MAKEINDEX = makeindex MV = /bin/mv PS2PDF = ps2pdf PS2PDF = distill RM = /bin/rm -f SED = sed SHAR = shar -c -v SHARFILES = Makefile bibclean.aux bibclean.bbl bibclean.bib \ bibclean.idx bibclean.ind bibclean.lot bibclean.ltx \ bibclean.sok bibclean.sty bibclean.toc is-plain.bst SPELL = spell TEXINDEX = texindex ALL: bibclean.dvi bibclean.ps bibclean.pdf all: bibclean.ser dw bibclean.dvi bibclean.aux: if [ ! -f bibclean.aux ] ; then touch bibclean.aux ; fi bibclean.bbl: bibclean.bib bibclean.aux if [ ! -f bibclean.aux ] ; then touch bibclean.aux ; fi -$(BIBTEX) bibclean bibclean.dvi: bibclean.ltx bibclean.sty $(LATEX) bibclean.ltx $(MAKE) bibclean.bbl bibclean.ind $(LATEX) bibclean.ltx $(LATEX) bibclean.ltx bibclean.idx: if [ ! -f bibclean.idx ] ; then touch bibclean.idx ; fi bibclean.ind: bibclean.idx Makefile $(MV) bibclean.idx bibclean.idw $(SED) -e 's/{\\tt <}@/<@/' \ -e 's/{\\tt >}@/>@/' \ -e 's/{\\%\\%@{\\tt \\%\\%}}/{\\%\\%@{\\protect\\tt \\%\\%}}/' \ -e 's/@@{\\tt @}/"@@{\\tt "@}/' \ -e 's/{@@{\\tt @}}/{"@@{\\tt "@}}/' \ -e 's/\\{ */\\{/g' \ -e 's/\\} */\\}/g' \ bibclean.idx -$(MAKEINDEX) bibclean bibclean.pdf: bibclean.ps $(MV) bibclean.log bibclean.log.save $(PS2PDF) $? $(MV) bibclean.log.save bibclean.log bibclean.ps: bibclean.dvi $(DVIPS) -o $@ $? bibclean.ser: bibclean.ltx bibclean.sok if [ ! -f bibclean.sok ] ; then touch bibclean.sok ; fi @echo '==================== spelling exceptions ====================' $(DETEX) bibclean.ltx | $(SED) -e 's/[0-9,.:;]/ /g' | \ $(SPELL) +bibclean.sok >bibclean.ser $(DETEX) bibclean.ltx | $(SED) -e 's/[0-9,.:;]/ /g' | \ $(ISPELL) -l -p bibclean.sok | sort -u >>bibclean.ser cat bibclean.ser bundle: $(SHARFILES) $(SHAR) $(SHARFILES) >$@ clean mostlyclean: $(RM) *.blg $(RM) *.dvi* $(RM) *.idw $(RM) *.ilg $(RM) *.log $(RM) *.o $(RM) *.ser $(RM) *.tmp $(RM) *~ $(RM) \#* $(RM) core clobber distclean: clean $(RM) *.aux $(RM) *.bbl $(RM) *.idx $(RM) *.ind $(RM) *.lof $(RM) *.lot $(RM) *.toc # We strip \index{} entries first to avoid large numbers of bogus duplicate # word warnings. dw: @echo '==================== doubled words ====================' $(SED) -e 's/^ *\\index{.*$$//' bibclean.ltx | $(DETEX) | $(DW) maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." $(RM) bibclean.pdf $(RM) bibclean.ps spell: bibclean.ser bibclean-3.07/doc/bibclean.ilg0000644000156700015670000000060207721774204015115 0ustar beebebeebeThis is makeindex, portable version 2.13 (beta) [11-Apr-1994]. Scanning input file bibclean.idx.....done (1239 entries accepted, 0 rejected). Sorting entries..................done (14659 comparisons). Generating output file bibclean.ind....done (744 lines written, 0 warnings). Output written in bibclean.ind. Transcript written in bibclean.ilg. Dynamic memory allocated: 170204 bytes. bibclean-3.07/doc/bibclean.lot0000644000156700015670000000044607721774205015147 0ustar beebebeebe\contentsline {table}{\numberline {1}{\ignorespaces Sample \BIBCLEAN {} initialization file.}}{401} \contentsline {table}{\numberline {2}{\ignorespaces Escape sequences in quoted strings.}}{401} \contentsline {table}{\numberline {3}{\ignorespaces Initialization file pattern characters.}}{402} bibclean-3.07/doc/is-plain.bst0000644000156700015670000007555506130111463015113 0ustar beebebeebe%% ===================================================================== %% WARNING: Do NOT edit this file. It was produced automatically by %% Nelson H. F. Beebe %% from /a/sundown/export/home/0048/beebe/tex/bib/merge/xbtxbst.doc %% on Mon Apr 1 19:38:43 MST 1996 %% ===================================================================== %%%===================================================================== %%% @BibTeX-style-file{ %%% author = "Nelson H. F. Beebe", %%% version = "2.02", %%% date = "01 April 1996", %%% time = "19:38:29 MST", %%% filename = "is-plain.bst", %%% address = "Center for Scientific Computing %%% Department of Mathematics %%% University of Utah %%% Salt Lake City, UT 84112 %%% USA", %%% telephone = "+1 801 581 5254", %%% FAX = "+1 801 581 4148", %%% checksum = "25283 1666 3984 31597", %%% email = "beebe@math.utah.edu (Internet)", %%% codetable = "ISO/ASCII", %%% keywords = "BibTeX, style, bibliography", %%% supported = "yes", %%% docstring = "This file is a modification of the standard %%% BibTeX btxbst.doc file, or is a .bst file %%% derived from that modification. It contains %%% added support for ISBN and ISSN fields, as %%% well as for the PERIODICAL entry. The UNIX C %%% preprocessor can be used to extract the %%% extensions of the standard styles, as %%% follows: %%% %%% cpp -P -DPLAIN xbtxbst.doc is-plain.txt %%% cpp -P -DUNSRT xbtxbst.doc is-unsrt.txt %%% cpp -P -DALPHA xbtxbst.doc is-alpha.txt %%% cpp -P -DABBRV xbtxbst.doc is-abbrv.txt %%% %%% Add -D_ISBN for ISBN output, -D_ISSN for %%% ISSN output, -D_LCCN for LCCN output, %%% -D_PRICE for price output, and -D_BOOKPAGES %%% for book, techreport, manual, and thesis %%% pages output. %%% %%% Add -D_URL to get World-Wide Web Uniform %%% Resource Locator (URL) output. %%% %%% Add -D_NUMERIC_SUFFIXES to get numeric %%% label suffixes -1, -2, ..., -26, instead of %%% letters a, b, ..., z, so as to correctly %%% handle alpha-style bibliographies with more %%% than 26 entries for a single author in one %%% year. Change letter suffix code to switch %%% to numeric suffixes if more than 26 letters %%% are used, so that no matter which scheme is %%% selected, correct output will always be %%% obtained. %%% %%% If desired, a sed script can be used to %%% eliminate non-essential comments (this %%% reduces the file size by 2/3); a command %%% filter step like %%% sed -e '/^%$/d' -e '/^%[^%].*$/d' %%% will accomplish that job. %%% %%% The checksum field above contains a CRC-16 %%% checksum as the first value, followed by the %%% equivalent of the standard UNIX wc (word %%% count) utility output of lines, words, and %%% characters. This is produced by Robert %%% Solovay's checksum utility." %%% } %%% ==================================================================== %%% Revision history (reverse time order): %%% %%% 2.02 [01-Apr-1996] %%% Add day keyword support with new code in format.date function. %%% Oren Patashnik will include this new keyword in standard styles %%% in BibTeX 1.0. %%% %%% Add new function collapse.pagerange, and use it to collapse %%% page ranges with identical initial and final numbers to a %%% single number, so that bibliography files can distinguish %%% between one-page documents, and documents missing final page %%% numbers. %%% %%% 2.01 [25-Oct-1994] %%% Add URL output support. %%% %%% 2.00 [12-Oct-1994] %%% Add support for pages in theses and manuals, treating them %%% like Book and InBook pages. %%% %%% Correct ISSN support: a typo caused output of ISBN instead of %%% ISSN. %%% %%% Wherever ISBNs are output, also output an ISSN, if one %%% exists, and vice versa. The reason is that some periodicals %%% (e.g. The X Resource, published by O'Reilly and Associates) %%% have both ISSN and ISBN numbers, and can be purchased either %%% as journal subscriptions, or as single volumes. %%% %%% For InProceedings and Proceedings output, issue a warning for %%% a missing publisher: even though that field is optional, a %%% bibliographic reference without it is incomplete. %%% %%% Remove harmless, but unneeded, single horizontal space before %%% price output added with version 1.03. %%% %%% Change Proceedings and InProceedings to treat address values %%% as publisher addresses, as they are with every other document %%% type, rather than as conference addresses, which belong in %%% the title field (that is how major libraries, including OCLC %%% and Library of Congress, with nearly 60M holdings, represent %%% them). The need for this change has been discussed with %%% BibTeX's author, Oren Patashnik, and there is a good %%% possibility that BibTeX 1.0 will contain the change %%% implemented here. This is an INCOMPATIBLE change that will %%% produce different .bbl file formatting. However, the TUG and %%% BibNet bibliography projects have consistently used address %%% to me publisher/organization/institution address, and so %%% already conform to the new practice. %%% %%% 1.05 [30-May-1994] %%% Add NUMERIC_SUFFIXES support. %%% %%% Change all preprocessor statements to put else and endif %%% labels inside C-style comments to conform to 1989 ISO/ANSI C %%% Standard. %%% %%% 1.04 [11-Nov-1993] %%% Add underscore prefix to new processor symbols to prevent %%% substitution in comments %%% %%% 1.03 [11-Oct-1993] %%% Add support for LCCN (Library of Congress Catalog Number) %%% and price fields, and make ISBN, ISSN, LCCN, and price %%% selectable by preprocessor conditionals. %%% %%% 1.02 [12-Sep-1991] %%% Merge in Barbara N. Beeton's suggestion for hyphen-less %%% line breaks around volume(number):page. %%% %%% 1.01 [10-Sep-1991] %%% Update file comment header and use Solovay checksum program. %%% %%% 1.00 [17-Oct-1990] %%% Original version merging hand-edits of is-xxx.bst files into %%% this master file, xbtxbst.doc. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% BibTeX `plain' family %% version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09. %% Copyright (C) 1985, all rights reserved. %% Copying of this file is authorized only if either %% (1) you make absolutely no changes to your copy, including name, or %% (2) if you do make changes, you name it something other than %% btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. %% This restriction helps ensure that all standard styles are identical. %% The file btxbst.doc has the documentation for this style. ENTRY { address author booktitle chapter day edition editor howpublished institution isbn issn journal key lccn month note number organization pages price publisher school series title type URL volume year } {} { label } INTEGERS { output.state before.all mid.sentence after.sentence after.block } FUNCTION {init.state.consts} { #0 'before.all := #1 'mid.sentence := #2 'after.sentence := #3 'after.block := } STRINGS { b e new.pages original.t s t } FUNCTION {output.nonnull} { 's := output.state mid.sentence = { ", " * write$ } { output.state after.block = { add.period$ write$ newline$ "\newblock " write$ } { output.state before.all = 'write$ { add.period$ " " * write$ } if$ } if$ mid.sentence 'output.state := } if$ s } FUNCTION {output} { duplicate$ empty$ 'pop$ 'output.nonnull if$ } FUNCTION {output.check} { 't := duplicate$ empty$ { pop$ "empty " t * " in " * cite$ * warning$ } 'output.nonnull if$ } FUNCTION {output.bibitem} { newline$ "\bibitem{" write$ cite$ write$ "}" write$ newline$ "" before.all 'output.state := } FUNCTION {fin.entry} { add.period$ write$ newline$ } FUNCTION {new.block} { output.state before.all = 'skip$ { after.block 'output.state := } if$ } FUNCTION {new.sentence} { output.state after.block = 'skip$ { output.state before.all = 'skip$ { after.sentence 'output.state := } if$ } if$ } FUNCTION {not} { { #0 } { #1 } if$ } FUNCTION {and} { 'skip$ { pop$ #0 } if$ } FUNCTION {or} { { pop$ #1 } 'skip$ if$ } FUNCTION {new.block.checka} { empty$ 'skip$ 'new.block if$ } FUNCTION {new.block.checkb} { empty$ swap$ empty$ and 'skip$ 'new.block if$ } FUNCTION {new.sentence.checka} { empty$ 'skip$ 'new.sentence if$ } FUNCTION {new.sentence.checkb} { empty$ swap$ empty$ and 'skip$ 'new.sentence if$ } FUNCTION {field.or.null} { duplicate$ empty$ { pop$ "" } 'skip$ if$ } FUNCTION {emphasize} { duplicate$ empty$ { pop$ "" } { "{\em " swap$ * "}" * } if$ } INTEGERS { nameptr namesleft numnames } FUNCTION {format.names} { 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := nameptr #1 > { namesleft #1 > { ", " * t * } { numnames #2 > { "," * } 'skip$ if$ t "others" = { " et~al." * } { " and " * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } FUNCTION {format.authors} { author empty$ { "" } { author format.names } if$ } FUNCTION {format.editors} { editor empty$ { "" } { editor format.names editor num.names$ #1 > { ", editors" * } { ", editor" * } if$ } if$ } FUNCTION {format.isbn} { isbn empty$ { "" } { new.block "ISBN " isbn * } if$ } FUNCTION {format.issn} { issn empty$ { "" } { new.block "ISSN " issn * } if$ } FUNCTION {format.lccn} { lccn empty$ { "" } { new.block "LCCN " lccn * } if$ } FUNCTION {format.price} { price empty$ { "" } { new.block price } if$ } FUNCTION {format.url} { url empty$ { "" } { new.block "URL \path`" url * "`" *} if$ } FUNCTION {format.title} { title empty$ { "" } { title "t" change.case$ } if$ } FUNCTION {collapse.pagerange} { 't := % save input page range string t 'original.t := % save original page range "" 'b := % beginning page number "" 'e := % ending page number { t empty$ not } % while-loop Boolean condition { % while-loop body t #1 #2 substring$ "--" = % have we found the en-dash? { t #3 global.max$ substring$ 'e := % yes, save ending page number "" 't := % and set t to empty string to terminate loop } { b t #1 #1 substring$ * 'b := % no, just accumulate this character t #2 global.max$ substring$ 't := % and set t to the remaining string } if$ } while$ % on exit, t has ending page number string e b = % are beginning and ending numbers the same? { b } % yes, return the beginning page number string { original.t } % no, return the original page number string if$ } FUNCTION {n.dashify} { 't := "" { t empty$ not } { t #1 #1 substring$ "-" = { t #1 #2 substring$ "--" = not { "--" * t #2 global.max$ substring$ 't := } { { t #1 #1 substring$ "-" = } { "-" * t #2 global.max$ substring$ 't := } while$ } if$ } { t #1 #1 substring$ * t #2 global.max$ substring$ 't := } if$ } while$ } FUNCTION {format.date} { year empty$ { month empty$ { day empty$ { "" } { "there's a day but no month or year in " cite$ * warning$ } if$ } { "there's a month but no year in " cite$ * warning$ month day empty$ { } { " " * day * } if$ } if$ } { month empty$ { day empty$ { year } { "there's a day and year but no month in " cite$ * warning$ } if$ } { month " " * day empty$ { } { day * ", " * } if$ year * } if$ } if$ } FUNCTION {format.btitle} { title emphasize } FUNCTION {tie.or.space.connect} { duplicate$ text.length$ #3 < { "~" } { " " } if$ swap$ * * } FUNCTION {either.or.check} { empty$ 'pop$ { "can't use both " swap$ * " fields in " * cite$ * warning$ } if$ } FUNCTION {format.bvolume} { volume empty$ { "" } { "volume" volume tie.or.space.connect series empty$ 'skip$ { " of " * series emphasize * } if$ "volume and number" number either.or.check } if$ } FUNCTION {format.number.series} { volume empty$ { number empty$ { series field.or.null } { output.state mid.sentence = { "number" } { "Number" } if$ number tie.or.space.connect series empty$ { "there's a number but no series in " cite$ * warning$ } { " in " * series * } if$ } if$ } { "" } if$ } FUNCTION {format.edition} { edition empty$ { "" } { output.state mid.sentence = { edition "l" change.case$ " edition" * } { edition "t" change.case$ " edition" * } if$ } if$ } INTEGERS { multiresult } FUNCTION {multi.page.check} { 't := #0 'multiresult := { multiresult not t empty$ not and } { t #1 #1 substring$ duplicate$ "-" = swap$ duplicate$ "," = swap$ "+" = or or { #1 'multiresult := } { t #2 global.max$ substring$ 't := } if$ } while$ multiresult } FUNCTION {format.book.pages} { pages empty$ { "" } { new.block pages " pp." * } if$ } FUNCTION {format.pages} { pages empty$ { "" } { pages multi.page.check { pages collapse.pagerange 'new.pages := } { pages 'new.pages := } if$ new.pages multi.page.check { "pages" new.pages n.dashify tie.or.space.connect } { "page" new.pages tie.or.space.connect } if$ } if$ } FUNCTION {format.vol.num.pages} { volume field.or.null number empty$ 'skip$ { "\penalty0 (" number * ")" * * volume empty$ { "there's a number but no volume in " cite$ * warning$ } 'skip$ if$ } if$ pages empty$ 'skip$ { duplicate$ empty$ { pop$ format.pages } { ":\penalty0 " * pages collapse.pagerange n.dashify * } if$ } if$ } FUNCTION {format.chapter.pages} { chapter empty$ 'format.pages { type empty$ { "chapter" } { type "l" change.case$ } if$ chapter tie.or.space.connect pages empty$ 'skip$ { ", " * format.pages * } if$ } if$ } FUNCTION {format.in.ed.booktitle} { booktitle empty$ { "" } { editor empty$ { "In " booktitle emphasize * } { "In " format.editors * ", " * booktitle emphasize * } if$ } if$ } FUNCTION {empty.misc.check} { author empty$ title empty$ howpublished empty$ month empty$ year empty$ note empty$ and and and and and key empty$ not and { "all relevant fields are empty in " cite$ * warning$ } 'skip$ if$ } FUNCTION {format.thesis.type} { type empty$ 'skip$ { pop$ type "t" change.case$ } if$ } FUNCTION {format.tr.number} { type empty$ { "Technical Report" } 'type if$ number empty$ { "t" change.case$ } { number tie.or.space.connect } if$ } FUNCTION {format.article.crossref} { key empty$ { journal empty$ { "need key or journal for " cite$ * " to crossref " * crossref * warning$ "" } { "In {\em " journal * "\/}" * } if$ } { "In " key * } if$ " \cite{" * crossref * "}" * } FUNCTION {format.crossref.editor} { editor #1 "{vv~}{ll}" format.name$ editor num.names$ duplicate$ #2 > { pop$ " et~al." * } { #2 < 'skip$ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = { " et~al." * } { " and " * editor #2 "{vv~}{ll}" format.name$ * } if$ } if$ } if$ } FUNCTION {format.book.crossref} { volume empty$ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ "In " } { "Volume" volume tie.or.space.connect " of " * } if$ editor empty$ editor field.or.null author field.or.null = or { key empty$ { series empty$ { "need editor, key, or series for " cite$ * " to crossref " * crossref * warning$ "" * } { "{\em " * series * "\/}" * } if$ } { key * } if$ } { format.crossref.editor * } if$ " \cite{" * crossref * "}" * } FUNCTION {format.incoll.inproc.crossref} { editor empty$ editor field.or.null author field.or.null = or { key empty$ { booktitle empty$ { "need editor, key, or booktitle for " cite$ * " to crossref " * crossref * warning$ "" } { "In {\em " booktitle * "\/}" * } if$ } { "In " key * } if$ } { "In " format.crossref.editor * } if$ " \cite{" * crossref * "}" * } FUNCTION {article} { output.bibitem format.authors "author" output.check new.block format.title "title" output.check new.block crossref missing$ { journal emphasize "journal" output.check format.vol.num.pages output format.date "year" output.check } { format.article.crossref output.nonnull format.pages output } if$ format.url output new.block note output fin.entry } FUNCTION {book} { output.bibitem author empty$ { format.editors "author and editor" output.check } { format.authors output.nonnull crossref missing$ { "author and editor" editor either.or.check } 'skip$ if$ } if$ new.block format.btitle "title" output.check crossref missing$ { format.bvolume output new.block format.number.series output new.sentence publisher "publisher" output.check address output } { new.block format.book.crossref output.nonnull } if$ format.edition output format.date "year" output.check format.isbn output format.issn output format.book.pages output format.lccn output format.price output format.url output new.block note output fin.entry } FUNCTION {booklet} { output.bibitem format.authors output new.block format.title "title" output.check howpublished address new.block.checkb howpublished output address output format.date output format.isbn output format.issn output format.book.pages output format.lccn output format.price output format.url output new.block note output fin.entry } FUNCTION {inbook} { output.bibitem author empty$ { format.editors "author and editor" output.check } { format.authors output.nonnull crossref missing$ { "author and editor" editor either.or.check } 'skip$ if$ } if$ new.block format.btitle "title" output.check crossref missing$ { format.bvolume output format.chapter.pages "chapter and pages" output.check new.block format.number.series output new.sentence publisher "publisher" output.check address output } { format.chapter.pages "chapter and pages" output.check new.block format.book.crossref output.nonnull } if$ format.edition output format.date "year" output.check format.isbn output format.issn output format.lccn output format.price output format.url output new.block note output fin.entry } FUNCTION {incollection} { output.bibitem format.authors "author" output.check new.block format.title "title" output.check new.block crossref missing$ { format.in.ed.booktitle "booktitle" output.check format.bvolume output format.number.series output format.chapter.pages output new.sentence publisher "publisher" output.check address output format.edition output format.date "year" output.check } { format.incoll.inproc.crossref output.nonnull format.chapter.pages output } if$ format.isbn output format.issn output format.lccn output format.price output format.url output new.block note output fin.entry } FUNCTION {inproceedings} { output.bibitem format.authors "author" output.check new.block format.title "title" output.check new.block crossref missing$ { format.in.ed.booktitle "booktitle" output.check format.bvolume output format.number.series output format.pages output address empty$ { organization publisher new.sentence.checkb organization output publisher "publisher" output.check format.date "year" output.check } { new.sentence organization output publisher "publisher" output.check address output.nonnull format.date "year" output.check } if$ } { format.incoll.inproc.crossref output.nonnull format.pages output } if$ format.isbn output format.issn output format.lccn output format.price output format.url output new.block note output fin.entry } FUNCTION {conference} { inproceedings } FUNCTION {manual} { output.bibitem author empty$ { organization empty$ 'skip$ { organization output.nonnull address output } if$ } { format.authors output.nonnull } if$ new.block format.btitle "title" output.check author empty$ { organization empty$ { address new.block.checka address output } 'skip$ if$ } { organization address new.block.checkb organization output address output } if$ format.edition output format.date output format.book.pages output format.price output format.url output new.block note output fin.entry } FUNCTION {mastersthesis} { output.bibitem format.authors "author" output.check new.block format.title "title" output.check new.block "Master's thesis" format.thesis.type output.nonnull school "school" output.check address output format.date "year" output.check format.book.pages output format.url output new.block note output fin.entry } FUNCTION {misc} { output.bibitem format.authors output title howpublished new.block.checkb format.title output howpublished new.block.checka howpublished output format.date output format.isbn output format.issn output format.price output format.url output new.block note output fin.entry empty.misc.check } FUNCTION {phdthesis} { output.bibitem format.authors "author" output.check new.block format.btitle "title" output.check new.block "PhD thesis" format.thesis.type output.nonnull school "school" output.check address output format.date "year" output.check format.book.pages output format.url output new.block note output fin.entry } FUNCTION {periodical} { output.bibitem editor empty$ { organization output } { format.editors output.nonnull } if$ new.block title emphasize "title" output.check format.vol.num.pages output format.date output format.isbn output format.issn output format.price output format.url output new.sentence publisher output address output howpublished new.block.checka howpublished output new.block note output fin.entry } FUNCTION {proceedings} { output.bibitem editor empty$ { organization output } { format.editors output.nonnull } if$ new.block format.btitle "title" output.check format.bvolume output format.number.series output address empty$ { editor empty$ { publisher new.sentence.checka } { organization publisher new.sentence.checkb organization output } if$ publisher "publisher" output.check %%% <- new check for missing format.date "year" output.check } { new.sentence editor empty$ 'skip$ { organization output } if$ publisher "publisher" output.check address output.nonnull format.date "year" output.check } if$ format.isbn output format.issn output format.lccn output format.price output format.url output new.block note output fin.entry } FUNCTION {techreport} { output.bibitem format.authors "author" output.check new.block format.title "title" output.check new.block format.tr.number output.nonnull institution "institution" output.check address output format.date "year" output.check format.book.pages output format.price output format.url output new.block note output fin.entry } FUNCTION {unpublished} { output.bibitem format.authors "author" output.check new.block format.title "title" output.check new.block note "note" output.check format.date output format.url output fin.entry } FUNCTION {default.type} { misc } MACRO {jan} {"January"} MACRO {feb} {"February"} MACRO {mar} {"March"} MACRO {apr} {"April"} MACRO {may} {"May"} MACRO {jun} {"June"} MACRO {jul} {"July"} MACRO {aug} {"August"} MACRO {sep} {"September"} MACRO {oct} {"October"} MACRO {nov} {"November"} MACRO {dec} {"December"} MACRO {acmcs} {"ACM Computing Surveys"} MACRO {acta} {"Acta Informatica"} MACRO {cacm} {"Communications of the ACM"} MACRO {ibmjrd} {"IBM Journal of Research and Development"} MACRO {ibmsj} {"IBM Systems Journal"} MACRO {ieeese} {"IEEE Transactions on Software Engineering"} MACRO {ieeetc} {"IEEE Transactions on Computers"} MACRO {ieeetcad} {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} MACRO {ipl} {"Information Processing Letters"} MACRO {jacm} {"Journal of the ACM"} MACRO {jcss} {"Journal of Computer and System Sciences"} MACRO {scp} {"Science of Computer Programming"} MACRO {sicomp} {"SIAM Journal on Computing"} MACRO {tocs} {"ACM Transactions on Computer Systems"} MACRO {tods} {"ACM Transactions on Database Systems"} MACRO {tog} {"ACM Transactions on Graphics"} MACRO {toms} {"ACM Transactions on Mathematical Software"} MACRO {toois} {"ACM Transactions on Office Information Systems"} MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} MACRO {tcs} {"Theoretical Computer Science"} READ FUNCTION {sortify} { purify$ "l" change.case$ } INTEGERS { len } FUNCTION {chop.word} { 's := 'len := s #1 len substring$ = { s len #1 + global.max$ substring$ } 's if$ } FUNCTION {sort.format.names} { 's := #1 'nameptr := "" s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { nameptr #1 > { " " * } 'skip$ if$ s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := nameptr numnames = t "others" = and { "et al" * } { t sortify * } if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } FUNCTION {sort.format.title} { 't := "A " #2 "An " #3 "The " #4 t chop.word chop.word chop.word sortify #1 global.max$ substring$ } FUNCTION {author.sort} { author empty$ { key empty$ { "to sort, need author or key in " cite$ * warning$ "" } { key sortify } if$ } { author sort.format.names } if$ } FUNCTION {author.editor.sort} { author empty$ { editor empty$ { key empty$ { "to sort, need author, editor, or key in " cite$ * warning$ "" } { key sortify } if$ } { editor sort.format.names } if$ } { author sort.format.names } if$ } FUNCTION {author.organization.sort} { author empty$ { organization empty$ { key empty$ { "to sort, need author, organization, or key in " cite$ * warning$ "" } { key sortify } if$ } { "The " #4 organization chop.word sortify } if$ } { author sort.format.names } if$ } FUNCTION {editor.organization.sort} { editor empty$ { organization empty$ { key empty$ { "to sort, need editor, organization, or key in " cite$ * warning$ "" } { key sortify } if$ } { "The " #4 organization chop.word sortify } if$ } { editor sort.format.names } if$ } FUNCTION {presort} { type$ "book" = type$ "inbook" = or 'author.editor.sort { type$ "proceedings" = 'editor.organization.sort { type$ "manual" = 'author.organization.sort 'author.sort if$ } if$ } if$ " " * year field.or.null sortify * " " * title field.or.null sort.format.title * #1 entry.max$ substring$ 'sort.key$ := } ITERATE {presort} SORT STRINGS { longest.label } INTEGERS { number.label longest.label.width } FUNCTION {initialize.longest.label} { "" 'longest.label := #1 'number.label := #0 'longest.label.width := } FUNCTION {longest.label.pass} { number.label int.to.str$ 'label := number.label #1 + 'number.label := label width$ longest.label.width > { label 'longest.label := label width$ 'longest.label.width := } 'skip$ if$ } EXECUTE {initialize.longest.label} ITERATE {longest.label.pass} FUNCTION {begin.bib} { preamble$ empty$ 'skip$ { preamble$ write$ newline$ } if$ "\begin{thebibliography}{" longest.label * "}" * write$ newline$ } EXECUTE {begin.bib} EXECUTE {init.state.consts} ITERATE {call.type$} FUNCTION {end.bib} { newline$ "\end{thebibliography}" write$ newline$ } EXECUTE {end.bib} bibclean-3.07/doc/bibclean.idw0000644000156700015670000015542107721774203015136 0ustar beebebeebe\indexentry{Scribe@{\sc Scribe}}{395} \indexentry{bibclean@{\tt bibclean}}{395} \indexentry{Lamport, Leslie}{395} \indexentry{citation!key}{395} \indexentry{string!substitution}{395} \indexentry{Lamport, Leslie}{396} \indexentry{control sequence!bibliographystyle@{\tt \char 92\relax bibliographystyle}}{396} \indexentry{bibliographystyle@{\tt \char 92\relax bibliographystyle}}{396} \indexentry{citation!style}{396} \indexentry{bibliography!style}{396} \indexentry{control sequence!bibliography@{\tt \char 92\relax bibliography}}{396} \indexentry{bibliography@{\tt \char 92\relax bibliography}}{396} \indexentry{auxiliary file}{396} \indexentry{bibliography!file}{396} \indexentry{file!bibliography}{396} \indexentry{bibliography!style}{396} \indexentry{style!bibliography}{396} \indexentry{control sequence!cite@{\tt \char 92\relax cite}}{396} \indexentry{cite@{\tt \char 92\relax cite}}{396} \indexentry{control sequence!bibliography@{\tt \char 92\relax bibliography}}{396} \indexentry{bibliography@{\tt \char 92\relax bibliography}}{396} \indexentry{control sequence!cite@{\tt \char 92\relax cite}}{396} \indexentry{cite@{\tt \char 92\relax cite}}{396} \indexentry{GNU!Emacs}{396} \indexentry{Emacs}{396} \indexentry{Cameron, Debra}{396} \indexentry{Rosenblatt, Bill}{396} \indexentry{template!editor}{396} \indexentry{pop-up menu}{396} \indexentry{menu!pop-up}{396} \indexentry{UNIX@{\sc UNIX}}{396} \indexentry{VAX@{\sc VAX}}{396} \indexentry{VMS@{\sc VMS}}{396} \indexentry{PC-DOS@{\sc PC-DOS}}{396} \indexentry{SGML@{\sc SGML}}{396} \indexentry{Bryan, Martin}{396} \indexentry{van Herwijnen, Eric}{396} \indexentry{Herwijnen, Eric van}{396} \indexentry{TUG bibliography collection}{396} \indexentry{TUGboat@{\protect\TUB{}}}{396} \indexentry{TUG Resource Directory}{396} \indexentry{Beebe, Nelson H. F.}{396} \indexentry{bibclean@{\tt bibclean}}{396} \indexentry{UNIX@{\sc UNIX}}{397} \indexentry{lexical analysis}{397} \indexentry{token}{397} \indexentry{parsing}{397} \indexentry{code generation}{397} \indexentry{interpretation of code}{397} \indexentry{front end}{397} \indexentry{back end}{397} \indexentry{Free Software Foundation}{397} \indexentry{C++}{397} \indexentry{Objective C}{397} \indexentry{bibclean@{\tt bibclean}}{397} \indexentry{lexical analyzer}{397} \indexentry{prettyprinter}{397} \indexentry{bibclean@{\tt bibclean}}{397} \indexentry{bibliography!file}{397} \indexentry{file!bibliography}{397} \indexentry{VAX@{\sc VAX}}{397} \indexentry{VMS@{\sc VMS}}{397} \indexentry{PC-DOS@{\sc PC-DOS}}{397} \indexentry{author@{\tt -author}}{397} \indexentry{option!author@{\tt -author}}{397} \indexentry{standard error unit}{397} \indexentry{stderr@{\tt stderr}}{397} \indexentry{file!stderr@{\tt stderr}}{397} \indexentry{error-log filename@{\tt -error-log filename}}{397} \indexentry{option!error-log filename@{\tt -error-log filename}}{397} \indexentry{stderr@{\tt stderr}}{397} \indexentry{file!stderr@{\tt stderr}}{397} \indexentry{message!redirecting}{397} \indexentry{error!message!redirecting}{397} \indexentry{warning message!redirecting}{397} \indexentry{stderr@{\tt stderr}}{397} \indexentry{file!stderr@{\tt stderr}}{397} \indexentry{help {\prm or} -?@{\tt -help {\prm or} -?}}{397} \indexentry{option!help {\prm or} -?@{\tt -help {\prm or} -?}}{397} \indexentry{message!help}{397} \indexentry{stderr@{\tt stderr}}{397} \indexentry{file!stderr@{\tt stderr}}{397} \indexentry{init-file filename@{\tt -init-file filename}}{397} \indexentry{option!init-file filename@{\tt -init-file filename}}{397} \indexentry{initialization file}{397} \indexentry{file!initialization}{397} \indexentry{PATH@{\tt PATH}}{397} \indexentry{file!PATH@{\tt PATH}}{397} \indexentry{VAX@{\sc VAX}}{397} \indexentry{VMS@{\sc VMS}}{397} \indexentry{SYS\pdollar SYSTEM@{\tt SYS\pdollar SYSTEM}}{397} \indexentry{file!SYS\pdollar SYSTEM@{\tt SYS\pdollar SYSTEM}}{397} \indexentry{BIBINPUTS@{\tt BIBINPUTS}}{397} \indexentry{file!BIBINPUTS@{\tt BIBINPUTS}}{397} \indexentry{environment variable}{397} \indexentry{BIBCLEANINI@{\tt BIBCLEANINI}}{397} \indexentry{file!BIBCLEANINI@{\tt BIBCLEANINI}}{397} \indexentry{.bibcleanrc@{\tt .bibcleanrc}}{397} \indexentry{file!.bibcleanrc@{\tt .bibcleanrc}}{397} \indexentry{UNIX@{\sc UNIX}}{397} \indexentry{bibclean.ini@{\tt bibclean.ini}}{397} \indexentry{file!bibclean.ini@{\tt bibclean.ini}}{397} \indexentry{max-width nnn@{\tt -max-width nnn}}{397} \indexentry{option!max-width nnn@{\tt -max-width nnn}}{397} \indexentry{bibclean@{\tt bibclean}}{397} \indexentry{line!width limit}{397} \indexentry{decimal}{397} \indexentry{octal}{397} \indexentry{hexadecimal}{397} \indexentry{max-width 0@{\tt -max-width 0}}{397} \indexentry{option!max-width 0@{\tt -max-width 0}}{397} \indexentry{no-prettyprint@{\tt -no-prettyprint}}{397} \indexentry{option!no-prettyprint@{\tt -no-prettyprint}}{397} \indexentry{bibclean@{\tt bibclean}}{397} \indexentry{bibclean@{\tt bibclean}}{398} \indexentry{wrapping!of long lines}{398} \indexentry{line!wrapping}{398} \indexentry{Knuth, Donald E.}{398} \indexentry{bibclean@{\tt bibclean}}{398} \indexentry{bibclean@{\tt bibclean}}{398} \indexentry{backslash-newline}{398} \indexentry{check-values@{\tt -check-values}}{398} \indexentry{option!check-values@{\tt -check-values}}{398} \indexentry{no-check-values@{\tt -no-check-values}}{398} \indexentry{option!no-check-values@{\tt -no-check-values}}{398} \indexentry{warning message!disabling}{398} \indexentry{delete-empty-values@{\tt -delete-empty-values}}{398} \indexentry{option!delete-empty-values@{\tt -delete-empty-values}}{398} \indexentry{no-delete-empty-values@{\tt -no-delete-empty-values}}{398} \indexentry{option!no-delete-empty-values@{\tt -no-delete-empty-values}}{398} \indexentry{empty!values!deleting}{398} \indexentry{remove-OPT-prefixes@{\tt -remove-OPT-prefixes}}{398} \indexentry{option!remove-OPT-prefixes@{\tt -remove-OPT-prefixes}}{398} \indexentry{no-remove-OPT-prefixes@{\tt -no-remove-OPT-prefixes}}{398} \indexentry{option!no-remove-OPT-prefixes@{\tt -no-remove-OPT-prefixes}}{398} \indexentry{file-position@{\tt -file-position}}{398} \indexentry{option!file-position@{\tt -file-position}}{398} \indexentry{no-file-position@{\tt -no-file-position}}{398} \indexentry{option!no-file-position@{\tt -no-file-position}}{398} \indexentry{fix-font-changes@{\tt -fix-font-changes}}{398} \indexentry{option!fix-font-changes@{\tt -fix-font-changes}}{398} \indexentry{no-fix-font-changes@{\tt -no-fix-font-changes}}{398} \indexentry{option!no-fix-font-changes@{\tt -no-fix-font-changes}}{398} \indexentry{font changes!fixing}{398} \indexentry{bibclean@{\tt bibclean}}{398} \indexentry{bibclean@{\tt bibclean}}{398} \indexentry{fix-font-changes@{\tt -fix-font-changes}}{398} \indexentry{option!fix-font-changes@{\tt -fix-font-changes}}{398} \indexentry{fix-initials@{\tt -fix-initials}}{398} \indexentry{option!fix-initials@{\tt -fix-initials}}{398} \indexentry{no-fix-initials@{\tt -no-fix-initials}}{398} \indexentry{option!no-fix-initials@{\tt -no-fix-initials}}{398} \indexentry{author name!period after initials}{398} \indexentry{editor name!period after initials}{398} \indexentry{fix-names@{\tt -fix-names}}{398} \indexentry{option!fix-names@{\tt -fix-names}}{398} \indexentry{no-fix-names@{\tt -no-fix-names}}{398} \indexentry{option!no-fix-names@{\tt -no-fix-names}}{398} \indexentry{author name!reordering}{398} \indexentry{editor name!reordering}{398} \indexentry{par-breaks@{\tt -par-breaks}}{398} \indexentry{option!par-breaks@{\tt -par-breaks}}{398} \indexentry{no-par-breaks@{\tt -no-par-breaks}}{398} \indexentry{option!no-par-breaks@{\tt -no-par-breaks}}{398} \indexentry{runaway string argument}{398} \indexentry{string!runaway}{398} \indexentry{mismatched delimiters}{398} \indexentry{delimiters!mismatched}{398} \indexentry{prettyprint@{\tt -prettyprint}}{398} \indexentry{option!prettyprint@{\tt -prettyprint}}{398} \indexentry{no-prettyprint@{\tt -no-prettyprint}}{398} \indexentry{option!no-prettyprint@{\tt -no-prettyprint}}{398} \indexentry{bibclean@{\tt bibclean}}{398} \indexentry{prettyprinter}{398} \indexentry{lexical analyzer}{398} \indexentry{print-patterns@{\tt -print-patterns}}{398} \indexentry{option!print-patterns@{\tt -print-patterns}}{398} \indexentry{no-print-patterns@{\tt -no-print-patterns}}{398} \indexentry{option!no-print-patterns@{\tt -no-print-patterns}}{398} \indexentry{initialization file!patterns in}{398} \indexentry{file!initialization!patterns in}{398} \indexentry{bibclean@{\tt bibclean}}{398} \indexentry{read-init-files@{\tt -read-init-files}}{398} \indexentry{option!read-init-files@{\tt -read-init-files}}{398} \indexentry{no-read-init-files@{\tt -no-read-init-files}}{398} \indexentry{option!no-read-init-files@{\tt -no-read-init-files}}{398} \indexentry{initialization file}{398} \indexentry{file!initialization}{398} \indexentry{init-file filename@{\tt -init-file filename}}{398} \indexentry{option!init-file filename@{\tt -init-file filename}}{398} \indexentry{remove-OPT-prefixes@{\tt -remove-OPT-prefixes}}{399} \indexentry{option!remove-OPT-prefixes@{\tt -remove-OPT-prefixes}}{399} \indexentry{no-remove-OPT-prefixes@{\tt -no-remove-OPT-prefixes}}{399} \indexentry{option!no-remove-OPT-prefixes@{\tt -no-remove-OPT-prefixes}}{399} \indexentry{OPT- prefix@{\tt OPT-} prefix!removing}{399} \indexentry{GNU!Emacs}{399} \indexentry{Emacs}{399} \indexentry{delete-empty-values@{\tt -delete-empty-values}}{399} \indexentry{option!delete-empty-values@{\tt -delete-empty-values}}{399} \indexentry{no-delete-empty-values@{\tt -no-delete-empty-values}}{399} \indexentry{option!no-delete-empty-values@{\tt -no-delete-empty-values}}{399} \indexentry{scribe@{\tt -scribe}}{399} \indexentry{option!scribe@{\tt -scribe}}{399} \indexentry{no-scribe@{\tt -no-scribe}}{399} \indexentry{option!no-scribe@{\tt -no-scribe}}{399} \indexentry{Scribe@{\sc Scribe}}{399} \indexentry{trace-file-opening@{\tt -trace-file-opening}}{399} \indexentry{option!trace-file-opening@{\tt -trace-file-opening}}{399} \indexentry{no-trace-file-opening@{\tt -no-trace-file-opening}}{399} \indexentry{option!no-trace-file-opening@{\tt -no-trace-file-opening}}{399} \indexentry{error!log file}{399} \indexentry{file!error log}{399} \indexentry{bibclean@{\tt bibclean}}{399} \indexentry{initialization file!locating}{399} \indexentry{file!initialization!locating}{399} \indexentry{warnings@{\tt -warnings}}{399} \indexentry{option!warnings@{\tt -warnings}}{399} \indexentry{no-warnings@{\tt -no-warnings}}{399} \indexentry{option!no-warnings@{\tt -no-warnings}}{399} \indexentry{warning message!disabling}{399} \indexentry{message!disabling warning}{399} \indexentry{version@{\tt -version}}{399} \indexentry{option!version@{\tt -version}}{399} \indexentry{program!version}{399} \indexentry{version!of program}{399} \indexentry{stderr@{\tt stderr}}{399} \indexentry{file!stderr@{\tt stderr}}{399} \indexentry{prettyprinting}{399} \indexentry{bibclean@{\tt bibclean}}{399} \indexentry{Scribe@{\sc Scribe}}{399} \indexentry{bibclean@{\tt bibclean}}{399} \indexentry{file-position@{\tt -file-position}}{399} \indexentry{option!file-position@{\tt -file-position}}{399} \indexentry{bibclean@{\tt bibclean}}{399} \indexentry{fix-font-changes@{\tt -fix-font-changes}}{399} \indexentry{option!fix-font-changes@{\tt -fix-font-changes}}{399} \indexentry{no-par-breaks@{\tt -no-par-breaks}}{399} \indexentry{option!no-par-breaks@{\tt -no-par-breaks}}{399} \indexentry{ISBN (International Standard Book Number)}{399} \indexentry{ISSN (International Standard Serial Number)}{399} \indexentry{TUG bibliography collection}{399} \indexentry{fix-names@{\tt -fix-names}}{400} \indexentry{option!fix-names@{\tt -fix-names}}{400} \indexentry{Bach, P. D. Q.}{400} \indexentry{Schickele, Peter}{400} \indexentry{fix-initials@{\tt -fix-initials}}{400} \indexentry{option!fix-initials@{\tt -fix-initials}}{400} \indexentry{check-values@{\tt -check-values}}{400} \indexentry{option!check-values@{\tt -check-values}}{400} \indexentry{check-values@{\tt -check-values}}{400} \indexentry{option!check-values@{\tt -check-values}}{400} \indexentry{trace-file-opening@{\tt -trace-file-opening}}{400} \indexentry{option!trace-file-opening@{\tt -trace-file-opening}}{400} \indexentry{bibclean@{\tt bibclean}}{400} \indexentry{@@{\tt @}}{400} \indexentry{@@{\tt @}}{400} \indexentry{bibclean@{\tt bibclean}}{400} \indexentry{bibclean@{\tt bibclean}}{400} \indexentry{pattern matching}{400} \indexentry{regular expression!pattern matching}{400} \indexentry{pattern matching!regular expression}{400} \indexentry{initialization file}{400} \indexentry{file!initialization}{400} \indexentry{bibclean@{\tt bibclean}}{400} \indexentry{initialization file}{400} \indexentry{file!initialization}{400} \indexentry{program!search path}{400} \indexentry{search path}{400} \indexentry{UNIX@{\sc UNIX}}{400} \indexentry{PC-DOS@{\sc PC-DOS}}{400} \indexentry{PATH@{\tt PATH}}{400} \indexentry{file!PATH@{\tt PATH}}{400} \indexentry{BIBINPUTS@{\tt BIBINPUTS}}{400} \indexentry{file!BIBINPUTS@{\tt BIBINPUTS}}{400} \indexentry{options}{400} \indexentry{init-file filename@{\tt -init-file filename}}{400} \indexentry{option!init-file filename@{\tt -init-file filename}}{400} \indexentry{.ini@{\tt .ini}}{400} \indexentry{file!.ini@{\tt .ini}}{400} \indexentry{BIBCLEANEXT@{\tt BIBCLEANEXT}}{400} \indexentry{file!BIBCLEANEXT@{\tt BIBCLEANEXT}}{400} \indexentry{stdin@{\tt stdin}}{400} \indexentry{file!stdin@{\tt stdin}}{400} \indexentry{no-init-files@{\tt -no-init-files}}{400} \indexentry{option!no-init-files@{\tt -no-init-files}}{400} \indexentry{init-file filename@{\tt -init-file filename}}{400} \indexentry{option!init-file filename@{\tt -init-file filename}}{400} \indexentry{initialization file!nested}{400} \indexentry{file!initialization!nested}{400} \indexentry{init-file filename@{\tt -init-file filename}}{400} \indexentry{option!init-file filename@{\tt -init-file filename}}{400} \indexentry{bibclean@{\tt bibclean}}{400} \indexentry{recursion}{400} \indexentry{backslash-newline}{400} \indexentry{backslash-newline}{400} \indexentry{bibclean@{\tt bibclean}}{401} \indexentry{initialization file!sample}{401} \indexentry{file!sample initialization}{401} \indexentry{UNIX@{\sc UNIX}}{401} \indexentry{escape sequence}{401} \indexentry{\char 34@{\tt \char 92\relax \char 34}}{401} \indexentry{\char 92@{\tt \char 92\relax \char 92}}{401} \indexentry{escape sequence!table}{401} \indexentry{a@{\tt \char 92\relax a}}{401} \indexentry{b@{\tt \char 92\relax b}}{401} \indexentry{f@{\tt \char 92\relax f}}{401} \indexentry{n@{\tt \char 92\relax n}}{401} \indexentry{r@{\tt \char 92\relax r}}{401} \indexentry{t@{\tt \char 92\relax t}}{401} \indexentry{v@{\tt \char 92\relax v}}{401} \indexentry{ooo@{\tt \char 92\relax ooo}}{401} \indexentry{012@{\tt \char 92\relax 012}}{401} \indexentry{0xhh@{\tt \char 92\relax 0xhh}}{401} \indexentry{0x0a@{\tt \char 92\relax 0x0a}}{401} \indexentry{NUL (0)!in string}{401} \indexentry{0@{\tt \char 92\relax 0}}{401} \indexentry{bibclean@{\tt bibclean}}{401} \indexentry{GNU!regexp package@{\tt regexp} package}{401} \indexentry{regexp@{\tt regexp}}{401} \indexentry{file!regexp@{\tt regexp}}{401} \indexentry{X@{\tt X}}{401} \indexentry{number@{\tt number}}{401} \indexentry{initialization file!pattern characters}{402} \indexentry{file!initialization!pattern characters}{402} \indexentry{a@{\tt a}}{402} \indexentry{A@{\tt A}}{402} \indexentry{d@{\tt d}}{402} \indexentry{D@{\tt D}}{402} \indexentry{r@{\tt r}}{402} \indexentry{R@{\tt R}}{402} \indexentry{w@{\tt w}}{402} \indexentry{W@{\tt W}}{402} \indexentry{.@{\tt .}}{402} \indexentry{:@{\tt :}}{402} \indexentry{X@{\tt X}}{402} \indexentry{x@{\tt \char 92\relax x}}{402} \indexentry{x@{\tt x}}{402} \indexentry{x@{\tt x}}{402} \indexentry{x@{\tt x}}{402} \indexentry{x@{\tt x}}{402} \indexentry{x@{\tt x}}{402} \indexentry{bibliography-specific pattern}{402} \indexentry{pattern!bibliography-specific}{402} \indexentry{.ini@{\tt .ini}}{402} \indexentry{file!.ini@{\tt .ini}}{402} \indexentry{empty!pattern}{402} \indexentry{pattern!empty}{402} \indexentry{quote!in pattern}{402} \indexentry{pattern!quotes in}{402} \indexentry{\char 34@{\tt \char 92\relax \char 34}}{402} \indexentry{pattern matching!brace ignored in}{402} \indexentry{brace!ignored in pattern matching}{402} \indexentry{brace!space around}{402} \indexentry{bibclean@{\tt bibclean}}{402} \indexentry{pattern!changing warning message}{402} \indexentry{warning message!changing}{402} \indexentry{format!item}{402} \indexentry{\%\%@{\tt \%\%}}{402} \indexentry{format!item!\%\%@{\tt \%\%}}{402} \indexentry{\%e@{\tt \%e}}{402} \indexentry{format!item!\%e@{\tt \%e}}{402} \indexentry{\%f@{\tt \%f}}{402} \indexentry{format!item!\%f@{\tt \%f}}{402} \indexentry{\%k@{\tt \%k}}{402} \indexentry{format!item!\%k@{\tt \%k}}{402} \indexentry{\%v@{\tt \%v}}{402} \indexentry{format!item!\%v@{\tt \%v}}{402} \indexentry{bibclean@{\tt bibclean}}{402} \indexentry{query (?)!in messages}{402} \indexentry{?}{402} \indexentry{escape sequence!in message text}{402} \indexentry{bibclean@{\tt bibclean}}{402} \indexentry{ISBN@{\tt ISBN}}{402} \indexentry{ISSN@{\tt ISSN}}{402} \indexentry{checksum!in ISBN and ISSN@in {\tt ISBN} and {\tt ISSN}}{402} \indexentry{bibclean@{\tt bibclean}}{402} \indexentry{chapter@{\tt chapter}}{402} \indexentry{number@{\tt number}}{402} \indexentry{pages@{\tt pages}}{402} \indexentry{volume@{\tt volume}}{402} \indexentry{month@{\tt month}}{402} \indexentry{year@{\tt year}}{403} \indexentry{bibclean@{\tt bibclean}}{403} \indexentry{key@{\tt key}}{403} \indexentry{citation!key}{403} \indexentry{no-prettyprint@{\tt -no-prettyprint}}{403} \indexentry{option!no-prettyprint@{\tt -no-prettyprint}}{403} \indexentry{bibclean@{\tt bibclean}}{403} \indexentry{lexical analyzer}{403} \indexentry{prettyprinter}{403} \indexentry{backslash-newline}{403} \indexentry{TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{403} \indexentry{terminal!TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{403} \indexentry{TOKEN_AT@{\tt TOKEN_AT}}{403} \indexentry{terminal!TOKEN_AT@{\tt TOKEN_AT}}{403} \indexentry{TOKEN_COMMA@{\tt TOKEN_COMMA}}{403} \indexentry{terminal!TOKEN_COMMA@{\tt TOKEN_COMMA}}{403} \indexentry{TOKEN_ENTRY@{\tt TOKEN_ENTRY}}{403} \indexentry{terminal!TOKEN_ENTRY@{\tt TOKEN_ENTRY}}{403} \indexentry{TOKEN_EQUALS@{\tt TOKEN_EQUALS}}{403} \indexentry{terminal!TOKEN_EQUALS@{\tt TOKEN_EQUALS}}{403} \indexentry{TOKEN_FIELD@{\tt TOKEN_FIELD}}{403} \indexentry{terminal!TOKEN_FIELD@{\tt TOKEN_FIELD}}{403} \indexentry{TOKEN_KEY@{\tt TOKEN_KEY}}{403} \indexentry{terminal!TOKEN_KEY@{\tt TOKEN_KEY}}{403} \indexentry{TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{403} \indexentry{terminal!TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{403} \indexentry{TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{403} \indexentry{terminal!TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{403} \indexentry{TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{403} \indexentry{terminal!TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{403} \indexentry{TOKEN_STRING@{\tt TOKEN_STRING}}{403} \indexentry{terminal!TOKEN_STRING@{\tt TOKEN_STRING}}{403} \indexentry{TOKEN_VALUE@{\tt TOKEN_VALUE}}{403} \indexentry{terminal!TOKEN_VALUE@{\tt TOKEN_VALUE}}{403} \indexentry{Lamport, Leslie}{403} \indexentry{token!type}{403} \indexentry{token!string}{403} \indexentry{sharp@sharp ({\tt\char35})}{403} \indexentry{preprocessor}{403} \indexentry{line!number directive}{403} \indexentry{ANSI/ISO Standard C@ANSI\slash ISO Standard C}{403} \indexentry{token!type}{403} \indexentry{bibclean@{\tt bibclean}}{403} \indexentry{ANSI/ISO Standard C@ANSI\slash ISO Standard C}{403} \indexentry{escape sequence}{403} \indexentry{max-width nnn@{\tt -max-width nnn}}{404} \indexentry{option!max-width nnn@{\tt -max-width nnn}}{404} \indexentry{wrapping!of long lines}{404} \indexentry{line!wrapping}{404} \indexentry{backslash-newline}{404} \indexentry{UNIX@{\sc UNIX}}{404} \indexentry{pipeline}{404} \indexentry{nawk@{\tt nawk}}{404} \indexentry{Aho, Alfred V.}{404} \indexentry{Kernighan, Brian W.}{404} \indexentry{Weinberger, Peter J.}{404} \indexentry{bibclean@{\tt bibclean}}{404} \indexentry{UNIX@{\sc UNIX}}{404} \indexentry{tr@{\tt tr}}{404} \indexentry{file!tr@{\tt tr}}{404} \indexentry{bibclean@{\tt bibclean}}{404} \indexentry{file!bibclean@{\tt bibclean}}{404} \indexentry{bibdup.awk@{\tt bibdup.awk}}{404} \indexentry{file!bibdup.awk@{\tt bibdup.awk}}{404} \indexentry{nawk@{\tt nawk}}{404} \indexentry{file!nawk@{\tt nawk}}{404} \indexentry{tr@{\tt tr}}{404} \indexentry{file!tr@{\tt tr}}{404} \indexentry{bibdup@{\tt bibdup}}{404} \indexentry{file!bibdup@{\tt bibdup}}{404} \indexentry{bibclean@{\tt bibclean}}{404} \indexentry{Scribe@{\sc Scribe}}{404} \indexentry{bibclean@{\tt bibclean}}{404} \indexentry{Scribe@{\sc Scribe}}{404} \indexentry{portability}{404} \indexentry{testing}{404} \indexentry{bibclean@{\tt bibclean}}{404} \indexentry{ANSI/ISO Standard C@ANSI\slash ISO Standard C}{404} \indexentry{UNIX@{\sc UNIX}}{404} \indexentry{VAX@{\sc VAX}}{404} \indexentry{VMS@{\sc VMS}}{404} \indexentry{PC-DOS@{\sc PC-DOS}}{404} \indexentry{OS/2@{\sc OS/2}}{404} \indexentry{Atari}{404} \indexentry{TOS@{\sc TOS}}{404} \indexentry{UNIX@{\sc UNIX}}{404} \indexentry{ANSI/ISO Standard C@ANSI\slash ISO Standard C}{404} \indexentry{Pascal}{404} \indexentry{Knuth, Donald E.}{404} \indexentry{WEB@{\tt WEB}}{404} \indexentry{string!pool}{404} \indexentry{Kernighan, Brian W.}{404} \indexentry{Ritchie, Dennis M.}{404} \indexentry{Kahn, Philippe}{404} \indexentry{Borland International}{404} \indexentry{Feuer, Alan~R.}{404} \indexentry{Koenig, Andrew}{404} \indexentry{Harbison, Samuel P.}{404} \indexentry{Steele Jr., Guy L.}{404} \indexentry{Jaeschke, Rex}{404} \indexentry{Lapin, J. E.}{404} \indexentry{Plauger, P. J.}{404} \indexentry{Rabinowitz, Henry}{404} \indexentry{Schaap, Chaim}{404} \indexentry{Rochkind, Marc J.}{404} \indexentry{Stevens, W. Richard}{404} \indexentry{C++}{404} \indexentry{Ellis, Margaret A.}{404} \indexentry{Stroustrup, Bjarne}{404} \indexentry{object-oriented programming}{404} \indexentry{bibclean@{\tt bibclean}}{404} \indexentry{Objective C}{404} \indexentry{bibclean@{\tt bibclean}}{404} \indexentry{class library}{404} \indexentry{dump!post-mortem}{405} \indexentry{post-mortem dump}{405} \indexentry{core dump}{405} \indexentry{Scribe@{\sc Scribe}}{405} \indexentry{Scribe@{\sc Scribe}}{405} \indexentry{Reid, Brian}{405} \indexentry{GNU!Emacs}{405} \indexentry{Emacs}{405} \indexentry{GNU!texinfo@\protect\TeX{}info}{405} \indexentry{texinfo@\protect\TeX{}info}{405} \indexentry{Scribe@{\sc Scribe}}{405} \indexentry{Scribe@{\sc Scribe}}{405} \indexentry{Scribe@{\sc Scribe}}{405} \indexentry{delimiters!in scribe@in \protect\SCRIBE{}}{405} \indexentry{at-sign}{405} \indexentry{\char 64@{\tt \char 64}}{405} \indexentry{\char 64\char 64@{\tt \char 64\char 64}}{405} \indexentry{\char 64name@{\tt \char 64name}}{405} \indexentry{Scribe@{\sc Scribe}}{405} \indexentry{\char 64Comment@{\tt \char 64Comment}}{405} \indexentry{\char 64End\penalty 0\{ comment\} @{\tt \char 64End\penalty 0\{ comment\} }}{405} \indexentry{comment@{\tt comment}}{405} \indexentry{\char 64Begin@{\tt \char 64Begin}}{405} \indexentry{\char 64End@{\tt \char 64End}}{405} \indexentry{\char 64Begin\penalty 0\{ comment\} @{\tt \char 64Begin\penalty 0\{ comment\} }}{405} \indexentry{\char 64End\penalty 0\{ comment\} @{\tt \char 64End\penalty 0\{ comment\} }}{405} \indexentry{key@{\tt key}}{405} \indexentry{backslash-quote}{405} \indexentry{escape sequence}{405} \indexentry{Scribe@{\sc Scribe}}{405} \indexentry{Scribe@{\sc Scribe}}{405} \indexentry{bibclean@{\tt bibclean}}{405} \indexentry{Scribe@{\sc Scribe}}{405} \indexentry{\char 64Comment\penalty 0\{ ...\} @{\tt \char 64Comment\penalty 0\{ ...\} }}{405} \indexentry{\char 64String@{\tt \char 64String}}{405} \indexentry{\char 64Comment\penalty 0\{ ...\} @{\tt \char 64Comment\penalty 0\{ ...\} }}{405} \indexentry{\char 64Preamble\penalty 0\{ ...\} @{\tt \char 64Preamble\penalty 0\{ ...\} }}{405} \indexentry{grammar}{405} \indexentry{LL(0) grammar}{405} \indexentry{grammar!LL(0)}{405} \indexentry{Aho, Alfred V.}{405} \indexentry{Sethi, Ravi}{405} \indexentry{Ullman, Jeffrey D.}{405} \indexentry{LL(1)!grammar}{405} \indexentry{grammar!LL(1)}{405} \indexentry{UNIX@{\sc UNIX}}{406} \indexentry{lex@{\tt lex}}{406} \indexentry{Lesk, Michael E.}{406} \indexentry{Schmidt, Eric}{406} \indexentry{yacc@{\tt yacc}}{406} \indexentry{Johnson, Steven C.}{406} \indexentry{Levine, John R.}{406} \indexentry{Mason, Tony}{406} \indexentry{Brown, Doug}{406} \indexentry{Schreiner, Axel T.}{406} \indexentry{Friedman, Jr., H. George}{406} \indexentry{Free Software Foundation}{406} \indexentry{flex@{\tt flex}}{406} \indexentry{bison@{\tt bison}}{406} \indexentry{yacc@{\tt yacc}}{406} \indexentry{bison@{\tt bison}}{406} \indexentry{LALR(1)!parser}{406} \indexentry{parser!LALR(1)}{406} \indexentry{LR($k$) grammar}{406} \indexentry{grammar!LR($k$)}{406} \indexentry{Knuth, Donald E.}{406} \indexentry{LL(1)!grammar}{406} \indexentry{grammar!LL(1)}{406} \indexentry{LALR(1)!grammar}{406} \indexentry{grammar!LALR(1)}{406} \indexentry{comment!syntax}{406} \indexentry{Scribe@{\sc Scribe}}{406} \indexentry{\char 64Comment\penalty 0\{ ...\} @{\tt \char 64Comment\penalty 0\{ ...\} }}{406} \indexentry{\char 64Comment\penalty 0\{ ...\} @{\tt \char 64Comment\penalty 0\{ ...\} }}{406} \indexentry{WEB@{\tt WEB}}{406} \indexentry{\char 64Comment\penalty 0\{ ...\} @{\tt \char 64Comment\penalty 0\{ ...\} }}{406} \indexentry{UNIX@{\sc UNIX}}{406} \indexentry{bib@{\tt bib}}{406} \indexentry{refer@{\tt refer}}{406} \indexentry{Lamport, Leslie}{406} \indexentry{ISO10646M character set}{406} \indexentry{period!in citation key}{406} \indexentry{apostrophe!in citation key}{406} \indexentry{error!reporting}{406} \indexentry{line!number}{406} \indexentry{runaway string argument}{406} \indexentry{string!runaway}{406} \indexentry{buffer overflow}{406} \indexentry{overflow of string buffer}{406} \indexentry{\char 64@{\tt \char 64}}{406} \indexentry{file!inclusion}{406} \indexentry{control sequence!bibliography@{\tt \char 92\relax bibliography}}{406} \indexentry{bibliography@{\tt \char 92\relax bibliography}}{406} \indexentry{\char 64String\penalty 0\{ ...\} @{\tt \char 64String\penalty 0\{ ...\} }}{406} \indexentry{Scribe@{\sc Scribe}}{406} \indexentry{grammar!lexical}{407} \indexentry{lexical grammar}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{flex@{\tt flex}}{407} \indexentry{grammar!size of}{407} \indexentry{biblex@{\tt biblex}}{407} \indexentry{bibclean@{\tt bibclean}}{407} \indexentry{no-prettyprint@{\tt -no-prettyprint}}{407} \indexentry{option!no-prettyprint@{\tt -no-prettyprint}}{407} \indexentry{bibclean@{\tt bibclean}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{literate programming}{407} \indexentry{WEB@{\tt WEB}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{yacc@{\tt yacc}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{\%\%@{\protect\tt \%\%}}{407} \indexentry{\%(@{\protect\tt \%\{\iffalse "}\fi}}{407} \indexentry{\%)@{\protect\tt \iffalse "{\fi \%\}}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{macro definition!lex@{\tt lex}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{regular expression!syntax of}{407} \indexentry{period!in regular expression}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{macro use!lex@{\tt lex}}{407} \indexentry{N@{\tt N}}{407} \indexentry{macro!N@{\tt N}}{407} \indexentry{O@{\tt O}}{407} \indexentry{macro!O@{\tt O}}{407} \indexentry{Scribe@{\sc Scribe}}{407} \indexentry{W@{\tt W}}{407} \indexentry{macro!W@{\tt W}}{407} \indexentry{horizontal space character}{407} \indexentry{formfeed}{407} \indexentry{f@{\tt \char 92\relax f}}{407} \indexentry{vertical!tab}{407} \indexentry{v@{\tt \char 92\relax v}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{v@{\tt \char 92\relax v}}{407} \indexentry{013@{\tt \char 92\relax 013}}{407} \indexentry{carriage return}{407} \indexentry{r@{\tt \char 92\relax r}}{407} \indexentry{UNIX@{\sc UNIX}}{407} \indexentry{Apple Macintosh}{407} \indexentry{Macintosh!Apple}{407} \indexentry{ANSI/ISO Standard C@ANSI\slash ISO Standard C}{407} \indexentry{S@{\tt S}}{407} \indexentry{macro!S@{\tt S}}{407} \indexentry{format!of grammar rules}{407} \indexentry{grammar!format of rules}{407} \indexentry{lex@{\tt lex}}{408} \indexentry{wrapping!of long lines}{408} \indexentry{line!wrapping}{408} \indexentry{backslash-newline}{408} \indexentry{\char 64@{\tt \char 64}}{408} \indexentry{TOKEN_AT@{\tt TOKEN_AT}}{408} \indexentry{terminal!TOKEN_AT@{\tt TOKEN_AT}}{408} \indexentry{RETURN@{\tt RETURN}}{408} \indexentry{macro!RETURN@{\tt RETURN}}{408} \indexentry{out_token@{\tt out_token()}}{408} \indexentry{function!out_token@{\tt out_token()}}{408} \indexentry{TOKEN_AT@{\tt TOKEN_AT}}{408} \indexentry{terminal!TOKEN_AT@{\tt TOKEN_AT}}{408} \indexentry{return@{\tt return}}{408} \indexentry{RETURN@{\tt RETURN}}{408} \indexentry{macro!RETURN@{\tt RETURN}}{408} \indexentry{yacc@{\tt yacc}}{408} \indexentry{bison@{\tt bison}}{408} \indexentry{bibclean@{\tt bibclean}}{408} \indexentry{Comment@{\tt Comment}}{408} \indexentry{Include@{\tt Include}}{408} \indexentry{Preamble@{\tt Preamble}}{408} \indexentry{String@{\tt String}}{408} \indexentry{RETURN@{\tt RETURN}}{408} \indexentry{macro!RETURN@{\tt RETURN}}{408} \indexentry{last_token@{\tt last_token}}{408} \indexentry{variable!last_token@{\tt last_token}}{408} \indexentry{out_token@{\tt out_token()}}{408} \indexentry{function!out_token@{\tt out_token()}}{408} \indexentry{TOKEN_AT@{\tt TOKEN_AT}}{408} \indexentry{terminal!TOKEN_AT@{\tt TOKEN_AT}}{408} \indexentry{TOKEN_COMMENT@{\tt TOKEN_COMMENT}}{408} \indexentry{terminal!TOKEN_COMMENT@{\tt TOKEN_COMMENT}}{408} \indexentry{TOKEN_INCLUDE@{\tt TOKEN_INCLUDE}}{408} \indexentry{terminal!TOKEN_INCLUDE@{\tt TOKEN_INCLUDE}}{408} \indexentry{TOKEN_PREAMBLE@{\tt TOKEN_PREAMBLE}}{408} \indexentry{terminal!TOKEN_PREAMBLE@{\tt TOKEN_PREAMBLE}}{408} \indexentry{TOKEN_STRING@{\tt TOKEN_STRING}}{408} \indexentry{terminal!TOKEN_STRING@{\tt TOKEN_STRING}}{408} \indexentry{lex@{\tt lex}}{408} \indexentry{N@{\tt N}}{408} \indexentry{macro!N@{\tt N}}{408} \indexentry{abbreviation}{408} \indexentry{entry!name}{408} \indexentry{field name}{408} \indexentry{key name}{408} \indexentry{RETURN@{\tt RETURN}}{408} \indexentry{macro!RETURN@{\tt RETURN}}{408} \indexentry{last_object@{\tt last_object}}{408} \indexentry{variable!last_object@{\tt last_object}}{408} \indexentry{last_token@{\tt last_token}}{408} \indexentry{variable!last_token@{\tt last_token}}{408} \indexentry{out_token@{\tt out_token()}}{408} \indexentry{function!out_token@{\tt out_token()}}{408} \indexentry{TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{408} \indexentry{terminal!TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{408} \indexentry{TOKEN_COMMA@{\tt TOKEN_COMMA}}{408} \indexentry{terminal!TOKEN_COMMA@{\tt TOKEN_COMMA}}{408} \indexentry{TOKEN_ENTRY@{\tt TOKEN_ENTRY}}{408} \indexentry{terminal!TOKEN_ENTRY@{\tt TOKEN_ENTRY}}{408} \indexentry{TOKEN_FIELD@{\tt TOKEN_FIELD}}{408} \indexentry{terminal!TOKEN_FIELD@{\tt TOKEN_FIELD}}{408} \indexentry{TOKEN_KEY@{\tt TOKEN_KEY}}{408} \indexentry{terminal!TOKEN_KEY@{\tt TOKEN_KEY}}{408} \indexentry{TOKEN_STRING@{\tt TOKEN_STRING}}{408} \indexentry{terminal!TOKEN_STRING@{\tt TOKEN_STRING}}{408} \indexentry{digit string}{408} \indexentry{RETURN@{\tt RETURN}}{408} \indexentry{macro!RETURN@{\tt RETURN}}{408} \indexentry{out_protected_string@{\tt out_protected_string()}}{408} \indexentry{function!out_protected_string@{\tt out_protected_string()}}{408} \indexentry{TOKEN_VALUE@{\tt TOKEN_VALUE}}{408} \indexentry{terminal!TOKEN_VALUE@{\tt TOKEN_VALUE}}{408} \indexentry{in-line comment}{408} \indexentry{comment!in-line}{408} \indexentry{RETURN@{\tt RETURN}}{408} \indexentry{macro!RETURN@{\tt RETURN}}{408} \indexentry{out_token@{\tt out_token()}}{408} \indexentry{function!out_token@{\tt out_token()}}{408} \indexentry{TOKEN_INLINE@{\tt TOKEN_INLINE}}{408} \indexentry{terminal!TOKEN_INLINE@{\tt TOKEN_INLINE}}{408} \indexentry{sharp@sharp ({\tt\char35})}{408} \indexentry{string!concatenation operator}{408} \indexentry{operator!string concatenation}{408} \indexentry{RETURN@{\tt RETURN}}{409} \indexentry{macro!RETURN@{\tt RETURN}}{409} \indexentry{out_token@{\tt out_token()}}{409} \indexentry{function!out_token@{\tt out_token()}}{409} \indexentry{TOKEN_SHARP@{\tt TOKEN_SHARP}}{409} \indexentry{terminal!TOKEN_SHARP@{\tt TOKEN_SHARP}}{409} \indexentry{delimited string}{409} \indexentry{RETURN@{\tt RETURN}}{409} \indexentry{macro!RETURN@{\tt RETURN}}{409} \indexentry{out_string@{\tt out_string()}}{409} \indexentry{function!out_string@{\tt out_string()}}{409} \indexentry{out_string@{\tt out_string()}}{409} \indexentry{function!out_string@{\tt out_string()}}{409} \indexentry{embedded quote}{409} \indexentry{quote!embedded}{409} \indexentry{escape sequence}{409} \indexentry{brace}{409} \indexentry{RETURN@{\tt RETURN}}{409} \indexentry{macro!RETURN@{\tt RETURN}}{409} \indexentry{out_rbrace@{\tt out_rbrace()}}{409} \indexentry{function!out_rbrace@{\tt out_rbrace()}}{409} \indexentry{out_lbrace@{\tt out_lbrace()}}{409} \indexentry{function!out_lbrace@{\tt out_lbrace()}}{409} \indexentry{TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{409} \indexentry{terminal!TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{409} \indexentry{TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{409} \indexentry{terminal!TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{409} \indexentry{TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{409} \indexentry{terminal!TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{409} \indexentry{TOKEN_STRING@{\tt TOKEN_STRING}}{409} \indexentry{terminal!TOKEN_STRING@{\tt TOKEN_STRING}}{409} \indexentry{TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{409} \indexentry{terminal!TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{409} \indexentry{Comment@{\tt Comment}}{409} \indexentry{Include@{\tt Include}}{409} \indexentry{parenthesis}{409} \indexentry{brace}{409} \indexentry{TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{409} \indexentry{terminal!TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{409} \indexentry{out_rparen@{\tt out_rparen()}}{409} \indexentry{function!out_rparen@{\tt out_rparen()}}{409} \indexentry{out_lparen@{\tt out_lparen()}}{409} \indexentry{function!out_lparen@{\tt out_lparen()}}{409} \indexentry{Scribe@{\sc Scribe}}{409} \indexentry{assignment!operator}{409} \indexentry{operator!assignment}{409} \indexentry{assignment!separator}{409} \indexentry{separator!assignment}{409} \indexentry{RETURN@{\tt RETURN}}{409} \indexentry{macro!RETURN@{\tt RETURN}}{409} \indexentry{out_token@{\tt out_token()}}{409} \indexentry{function!out_token@{\tt out_token()}}{409} \indexentry{TOKEN_COMMA@{\tt TOKEN_COMMA}}{409} \indexentry{terminal!TOKEN_COMMA@{\tt TOKEN_COMMA}}{409} \indexentry{TOKEN_EQUALS@{\tt TOKEN_EQUALS}}{409} \indexentry{terminal!TOKEN_EQUALS@{\tt TOKEN_EQUALS}}{409} \indexentry{newline}{409} \indexentry{RETURN@{\tt RETURN}}{409} \indexentry{macro!RETURN@{\tt RETURN}}{409} \indexentry{out_token@{\tt out_token()}}{409} \indexentry{function!out_token@{\tt out_token()}}{409} \indexentry{TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{409} \indexentry{terminal!TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{409} \indexentry{horizontal space character}{409} \indexentry{newline}{409} \indexentry{RETURN@{\tt RETURN}}{409} \indexentry{macro!RETURN@{\tt RETURN}}{409} \indexentry{out_token@{\tt out_token()}}{409} \indexentry{function!out_token@{\tt out_token()}}{409} \indexentry{TOKEN_SPACE@{\tt TOKEN_SPACE}}{409} \indexentry{terminal!TOKEN_SPACE@{\tt TOKEN_SPACE}}{409} \indexentry{unclassifiable token}{409} \indexentry{token!unclassifiable}{409} \indexentry{period!in regular expression}{409} \indexentry{newline}{409} \indexentry{RETURN@{\tt RETURN}}{409} \indexentry{macro!RETURN@{\tt RETURN}}{409} \indexentry{out_token@{\tt out_token()}}{409} \indexentry{function!out_token@{\tt out_token()}}{409} \indexentry{TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{409} \indexentry{terminal!TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{409} \indexentry{lex@{\tt lex}}{409} \indexentry{TOKEN_VALUE@{\tt TOKEN_VALUE}}{409} \indexentry{terminal!TOKEN_VALUE@{\tt TOKEN_VALUE}}{409} \indexentry{\char 34@{\tt \char 92\relax \char 34}}{409} \indexentry{accent control sequence}{409} \indexentry{lex@{\tt lex}}{409} \indexentry{NUL (0)!in string}{409} \indexentry{0@{\tt \char 92\relax 0}}{409} \indexentry{lex@{\tt lex}}{409} \indexentry{8-bit clean}{409} \indexentry{X/Open Consortium}{409} \indexentry{UNIX@{\sc UNIX}}{409} \indexentry{grammar!parsing}{410} \indexentry{parsing grammar}{410} \indexentry{yacc@{\tt yacc}}{410} \indexentry{lex@{\tt lex}}{410} \indexentry{yacc@{\tt yacc}}{410} \indexentry{yacc@{\tt yacc}}{410} \indexentry{bison@{\tt bison}}{410} \indexentry{grammar!size of}{410} \indexentry{space}{410} \indexentry{in-line comment}{410} \indexentry{comment!in-line}{410} \indexentry{bibparse@{\tt bibparse}}{410} \indexentry{bibclean@{\tt bibclean}}{410} \indexentry{no-prettyprint@{\tt -no-prettyprint}}{410} \indexentry{option!no-prettyprint@{\tt -no-prettyprint}}{410} \indexentry{biblex@{\tt biblex}}{410} \indexentry{yacc@{\tt yacc}}{410} \indexentry{literate programming}{410} \indexentry{yacc@{\tt yacc}}{410} \indexentry{\%\%@{\protect\tt \%\%}}{410} \indexentry{\%(@{\protect\tt \%\{\iffalse "}\fi}}{410} \indexentry{\%)@{\protect\tt \iffalse "{\fi \%\}}}{410} \indexentry{yacc@{\tt yacc}}{410} \indexentry{yacc@{\tt yacc}}{410} \indexentry{format!of grammar rules}{410} \indexentry{grammar!format of rules}{410} \indexentry{colon}{410} \indexentry{vertical!bar}{410} \indexentry{semicolon}{410} \indexentry{non-terminal}{410} \indexentry{terminal}{410} \indexentry{yacc@{\tt yacc}}{410} \indexentry{grammar!formatting conventions}{410} \indexentry{semicolon}{410} \indexentry{\%token@{\tt \%token}}{410} \indexentry{bibclean@{\tt bibclean}}{410} \indexentry{RETURN@{\tt RETURN}}{410} \indexentry{macro!RETURN@{\tt RETURN}}{410} \indexentry{TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{410} \indexentry{terminal!TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{410} \indexentry{TOKEN_AT@{\tt TOKEN_AT}}{410} \indexentry{terminal!TOKEN_AT@{\tt TOKEN_AT}}{410} \indexentry{TOKEN_COMMA@{\tt TOKEN_COMMA}}{410} \indexentry{terminal!TOKEN_COMMA@{\tt TOKEN_COMMA}}{410} \indexentry{TOKEN_COMMENT@{\tt TOKEN_COMMENT}}{410} \indexentry{terminal!TOKEN_COMMENT@{\tt TOKEN_COMMENT}}{410} \indexentry{TOKEN_ENTRY@{\tt TOKEN_ENTRY}}{410} \indexentry{terminal!TOKEN_ENTRY@{\tt TOKEN_ENTRY}}{410} \indexentry{TOKEN_EQUALS@{\tt TOKEN_EQUALS}}{410} \indexentry{terminal!TOKEN_EQUALS@{\tt TOKEN_EQUALS}}{410} \indexentry{TOKEN_FIELD@{\tt TOKEN_FIELD}}{410} \indexentry{terminal!TOKEN_FIELD@{\tt TOKEN_FIELD}}{410} \indexentry{TOKEN_INCLUDE@{\tt TOKEN_INCLUDE}}{410} \indexentry{terminal!TOKEN_INCLUDE@{\tt TOKEN_INCLUDE}}{410} \indexentry{TOKEN_INLINE@{\tt TOKEN_INLINE}}{410} \indexentry{terminal!TOKEN_INLINE@{\tt TOKEN_INLINE}}{410} \indexentry{TOKEN_KEY@{\tt TOKEN_KEY}}{410} \indexentry{terminal!TOKEN_KEY@{\tt TOKEN_KEY}}{410} \indexentry{TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{410} \indexentry{terminal!TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{410} \indexentry{TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{410} \indexentry{terminal!TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{410} \indexentry{TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{410} \indexentry{terminal!TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{410} \indexentry{TOKEN_PREAMBLE@{\tt TOKEN_PREAMBLE}}{410} \indexentry{terminal!TOKEN_PREAMBLE@{\tt TOKEN_PREAMBLE}}{410} \indexentry{TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{410} \indexentry{terminal!TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{410} \indexentry{TOKEN_SHARP@{\tt TOKEN_SHARP}}{410} \indexentry{terminal!TOKEN_SHARP@{\tt TOKEN_SHARP}}{410} \indexentry{TOKEN_SPACE@{\tt TOKEN_SPACE}}{410} \indexentry{terminal!TOKEN_SPACE@{\tt TOKEN_SPACE}}{410} \indexentry{TOKEN_STRING@{\tt TOKEN_STRING}}{410} \indexentry{terminal!TOKEN_STRING@{\tt TOKEN_STRING}}{410} \indexentry{TOKEN_VALUE@{\tt TOKEN_VALUE}}{410} \indexentry{terminal!TOKEN_VALUE@{\tt TOKEN_VALUE}}{410} \indexentry{precedence declaration}{410} \indexentry{\%nonassoc@{\tt \%nonassoc}}{410} \indexentry{nonassoc@{\tt \%nonassoc}}{410} \indexentry{assignment!operator!associativity of}{410} \indexentry{associativity}{410} \indexentry{TOKEN_EQUALS@{\tt TOKEN_EQUALS}}{410} \indexentry{terminal!TOKEN_EQUALS@{\tt TOKEN_EQUALS}}{410} \indexentry{\%left@{\tt \%left}}{410} \indexentry{left@{\tt \%left}}{410} \indexentry{space!associativity of}{410} \indexentry{in-line comment!associativity of}{410} \indexentry{comment!in-line!associativity of}{410} \indexentry{newline!associativity of}{410} \indexentry{TOKEN_INLINE@{\tt TOKEN_INLINE}}{410} \indexentry{terminal!TOKEN_INLINE@{\tt TOKEN_INLINE}}{410} \indexentry{TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{410} \indexentry{terminal!TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{410} \indexentry{TOKEN_SPACE@{\tt TOKEN_SPACE}}{410} \indexentry{terminal!TOKEN_SPACE@{\tt TOKEN_SPACE}}{410} \indexentry{\%left@{\tt \%left}}{411} \indexentry{left@{\tt \%left}}{411} \indexentry{string!concatenation operator}{411} \indexentry{operator!string concatenation}{411} \indexentry{space!precedence of}{411} \indexentry{in-line comment!precedence of}{411} \indexentry{comment!in-line!precedence of}{411} \indexentry{TOKEN_SHARP@{\tt TOKEN_SHARP}}{411} \indexentry{terminal!TOKEN_SHARP@{\tt TOKEN_SHARP}}{411} \indexentry{bibtex_file@{\tt bibtex_file} rule}{411} \indexentry{non-terminal!bibtex_file@{\tt bibtex_file}}{411} \indexentry{object_list@{\tt object_list} rule}{411} \indexentry{non-terminal!object_list@{\tt object_list}}{411} \indexentry{opt_space@{\tt opt_space} rule}{411} \indexentry{non-terminal!opt_space@{\tt opt_space}}{411} \indexentry{list!of objects}{411} \indexentry{object!list}{411} \indexentry{opt_space@{\tt opt_space} rule}{411} \indexentry{non-terminal!opt_space@{\tt opt_space}}{411} \indexentry{object@{\tt object} rule}{411} \indexentry{non-terminal!object@{\tt object}}{411} \indexentry{object_list@{\tt object_list} rule}{411} \indexentry{non-terminal!object_list@{\tt object_list}}{411} \indexentry{LL(1)!parser}{411} \indexentry{parser!LL(1)}{411} \indexentry{left-recursive rule}{411} \indexentry{Aho, Alfred V.}{411} \indexentry{Sethi, Ravi}{411} \indexentry{Ullman, Jeffrey D.}{411} \indexentry{object}{411} \indexentry{\char 64name\{ ...\} @{\tt \char 64name\{ ...\} }}{411} \indexentry{\char 64@{\tt \char 64}}{411} \indexentry{name@{\tt name}}{411} \indexentry{at_object@{\tt at_object} rule}{411} \indexentry{non-terminal!at_object@{\tt at_object}}{411} \indexentry{opt_space@{\tt opt_space} rule}{411} \indexentry{non-terminal!opt_space@{\tt opt_space}}{411} \indexentry{TOKEN_AT@{\tt TOKEN_AT}}{411} \indexentry{terminal!TOKEN_AT@{\tt TOKEN_AT}}{411} \indexentry{object@{\tt object} rule}{411} \indexentry{non-terminal!object@{\tt object}}{411} \indexentry{space!between tokens}{411} \indexentry{\char 64@{\tt \char 64}}{411} \indexentry{name@{\tt name}}{411} \indexentry{\char 64name@{\tt \char 64name}}{411} \indexentry{Scribe@{\sc Scribe}}{411} \indexentry{name@{\tt name}}{411} \indexentry{\char 64@{\tt \char 64}}{411} \indexentry{at_object@{\tt at_object} rule}{411} \indexentry{non-terminal!at_object@{\tt at_object}}{411} \indexentry{TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{411} \indexentry{terminal!TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{411} \indexentry{error@{\tt error} rule}{411} \indexentry{non-terminal!error@{\tt error}}{411} \indexentry{string@{\tt string} rule}{411} \indexentry{non-terminal!string@{\tt string}}{411} \indexentry{preamble@{\tt preamble} rule}{411} \indexentry{non-terminal!preamble@{\tt preamble}}{411} \indexentry{include@{\tt include} rule}{411} \indexentry{non-terminal!include@{\tt include}}{411} \indexentry{entry@{\tt entry} rule}{411} \indexentry{non-terminal!entry@{\tt entry}}{411} \indexentry{comment@{\tt comment} rule}{411} \indexentry{non-terminal!comment@{\tt comment}}{411} \indexentry{at_object@{\tt at_object} rule}{411} \indexentry{non-terminal!at_object@{\tt at_object}}{411} \indexentry{Comment@{\tt Comment}}{411} \indexentry{Include@{\tt Include}}{411} \indexentry{Preamble@{\tt Preamble}}{411} \indexentry{String@{\tt String}}{411} \indexentry{Article@{\tt Article}}{411} \indexentry{Book@{\tt Book}}{411} \indexentry{error@{\tt error} rule}{411} \indexentry{non-terminal!error@{\tt error}}{411} \indexentry{yacc@{\tt yacc}}{411} \indexentry{bison@{\tt bison}}{411} \indexentry{at_object@{\tt at_object} rule}{411} \indexentry{non-terminal!at_object@{\tt at_object}}{411} \indexentry{error!message}{411} \indexentry{message!error}{411} \indexentry{error!recovery}{411} \indexentry{recovery!from error}{411} \indexentry{assignment!rule!error recovery in}{411} \indexentry{comment!entry}{411} \indexentry{\char 64Comment\penalty 0\{ ...\} @{\tt \char 64Comment\penalty 0\{ ...\} }}{411} \indexentry{TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{412} \indexentry{terminal!TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{412} \indexentry{opt_space@{\tt opt_space} rule}{412} \indexentry{non-terminal!opt_space@{\tt opt_space}}{412} \indexentry{TOKEN_COMMENT@{\tt TOKEN_COMMENT}}{412} \indexentry{terminal!TOKEN_COMMENT@{\tt TOKEN_COMMENT}}{412} \indexentry{comment@{\tt comment} rule}{412} \indexentry{non-terminal!comment@{\tt comment}}{412} \indexentry{bibliography!entry}{412} \indexentry{citation!key}{412} \indexentry{comma}{412} \indexentry{list!of assignments}{412} \indexentry{assignment!list}{412} \indexentry{trailing context}{412} \indexentry{entry_head@{\tt entry_head} rule}{412} \indexentry{non-terminal!entry_head@{\tt entry_head}}{412} \indexentry{key_name@{\tt key_name} rule}{412} \indexentry{non-terminal!key_name@{\tt key_name}}{412} \indexentry{TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{412} \indexentry{terminal!TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{412} \indexentry{TOKEN_ENTRY@{\tt TOKEN_ENTRY}}{412} \indexentry{terminal!TOKEN_ENTRY@{\tt TOKEN_ENTRY}}{412} \indexentry{TOKEN_COMMA@{\tt TOKEN_COMMA}}{412} \indexentry{terminal!TOKEN_COMMA@{\tt TOKEN_COMMA}}{412} \indexentry{TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{412} \indexentry{terminal!TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{412} \indexentry{opt_space@{\tt opt_space} rule}{412} \indexentry{non-terminal!opt_space@{\tt opt_space}}{412} \indexentry{assignment_list@{\tt assignment_list} rule}{412} \indexentry{non-terminal!assignment_list@{\tt assignment_list}}{412} \indexentry{entry_head@{\tt entry_head} rule}{412} \indexentry{non-terminal!entry_head@{\tt entry_head}}{412} \indexentry{entry@{\tt entry} rule}{412} \indexentry{non-terminal!entry@{\tt entry}}{412} \indexentry{opt_space@{\tt opt_space}}{412} \indexentry{assignment_list@{\tt assignment_list}}{412} \indexentry{LALR(1)!grammar}{412} \indexentry{grammar!LALR(1)}{412} \indexentry{yacc@{\tt yacc}}{412} \indexentry{bison@{\tt bison}}{412} \indexentry{key name}{412} \indexentry{newline}{412} \indexentry{in-line comment}{412} \indexentry{comment!in-line}{412} \indexentry{citation!key!problems in recognizing}{412} \indexentry{trailing context}{412} \indexentry{TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{412} \indexentry{terminal!TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{412} \indexentry{TOKEN_KEY@{\tt TOKEN_KEY}}{412} \indexentry{terminal!TOKEN_KEY@{\tt TOKEN_KEY}}{412} \indexentry{key_name@{\tt key_name} rule}{412} \indexentry{non-terminal!key_name@{\tt key_name}}{412} \indexentry{file!inclusion}{412} \indexentry{Include@{\tt Include}}{412} \indexentry{TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{412} \indexentry{terminal!TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{412} \indexentry{opt_space@{\tt opt_space} rule}{412} \indexentry{non-terminal!opt_space@{\tt opt_space}}{412} \indexentry{TOKEN_INCLUDE@{\tt TOKEN_INCLUDE}}{412} \indexentry{terminal!TOKEN_INCLUDE@{\tt TOKEN_INCLUDE}}{412} \indexentry{include@{\tt include} rule}{412} \indexentry{non-terminal!include@{\tt include}}{412} \indexentry{file!name!syntax of}{412} \indexentry{file!name!space in}{412} \indexentry{bibclean@{\tt bibclean}}{412} \indexentry{Preamble@{\tt Preamble}}{412} \indexentry{.bbl@{\tt .bbl}}{412} \indexentry{file!.bbl@{\tt .bbl}}{412} \indexentry{TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{412} \indexentry{terminal!TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{412} \indexentry{TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{412} \indexentry{terminal!TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{412} \indexentry{value@{\tt value} rule}{412} \indexentry{non-terminal!value@{\tt value}}{412} \indexentry{opt_space@{\tt opt_space} rule}{412} \indexentry{non-terminal!opt_space@{\tt opt_space}}{412} \indexentry{TOKEN_PREAMBLE@{\tt TOKEN_PREAMBLE}}{412} \indexentry{terminal!TOKEN_PREAMBLE@{\tt TOKEN_PREAMBLE}}{412} \indexentry{preamble@{\tt preamble} rule}{412} \indexentry{non-terminal!preamble@{\tt preamble}}{412} \indexentry{String@{\tt String}}{412} \indexentry{TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{412} \indexentry{terminal!TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{412} \indexentry{assignment@{\tt assignment} rule}{412} \indexentry{non-terminal!assignment@{\tt assignment}}{412} \indexentry{opt_space@{\tt opt_space} rule}{412} \indexentry{non-terminal!opt_space@{\tt opt_space}}{412} \indexentry{TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{412} \indexentry{terminal!TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{412} \indexentry{opt_space@{\tt opt_space} rule}{412} \indexentry{non-terminal!opt_space@{\tt opt_space}}{412} \indexentry{TOKEN_STRING@{\tt TOKEN_STRING}}{412} \indexentry{terminal!TOKEN_STRING@{\tt TOKEN_STRING}}{412} \indexentry{string@{\tt string} rule}{412} \indexentry{non-terminal!string@{\tt string}}{412} \indexentry{value}{412} \indexentry{string!concatenation operator}{412} \indexentry{operator!string concatenation}{412} \indexentry{simple_value@{\tt simple_value} rule}{412} \indexentry{non-terminal!simple_value@{\tt simple_value}}{412} \indexentry{TOKEN_SHARP@{\tt TOKEN_SHARP}}{412} \indexentry{terminal!TOKEN_SHARP@{\tt TOKEN_SHARP}}{412} \indexentry{opt_space@{\tt opt_space} rule}{412} \indexentry{non-terminal!opt_space@{\tt opt_space}}{412} \indexentry{simple_value@{\tt simple_value} rule}{412} \indexentry{non-terminal!simple_value@{\tt simple_value}}{412} \indexentry{value@{\tt value} rule}{412} \indexentry{non-terminal!value@{\tt value}}{412} \indexentry{simple value}{413} \indexentry{delimited string}{413} \indexentry{TOKEN_VALUE@{\tt TOKEN_VALUE}}{413} \indexentry{terminal!TOKEN_VALUE@{\tt TOKEN_VALUE}}{413} \indexentry{abbreviation}{413} \indexentry{TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{413} \indexentry{terminal!TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{413} \indexentry{TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{413} \indexentry{terminal!TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{413} \indexentry{TOKEN_VALUE@{\tt TOKEN_VALUE}}{413} \indexentry{terminal!TOKEN_VALUE@{\tt TOKEN_VALUE}}{413} \indexentry{simple_value@{\tt simple_value} rule}{413} \indexentry{non-terminal!simple_value@{\tt simple_value}}{413} \indexentry{comma!optional after assignment}{413} \indexentry{entry@{\tt entry} rule}{413} \indexentry{non-terminal!entry@{\tt entry}}{413} \indexentry{TOKEN_COMMA@{\tt TOKEN_COMMA}}{413} \indexentry{terminal!TOKEN_COMMA@{\tt TOKEN_COMMA}}{413} \indexentry{opt_space@{\tt opt_space} rule}{413} \indexentry{non-terminal!opt_space@{\tt opt_space}}{413} \indexentry{assignment_list@{\tt assignment_list} rule}{413} \indexentry{non-terminal!assignment_list@{\tt assignment_list}}{413} \indexentry{assignment@{\tt assignment} rule}{413} \indexentry{non-terminal!assignment@{\tt assignment}}{413} \indexentry{assignment_list@{\tt assignment_list} rule}{413} \indexentry{non-terminal!assignment_list@{\tt assignment_list}}{413} \indexentry{assignment}{413} \indexentry{assignment!operator}{413} \indexentry{operator!assignment}{413} \indexentry{value@{\tt value} rule}{413} \indexentry{non-terminal!value@{\tt value}}{413} \indexentry{TOKEN_EQUALS@{\tt TOKEN_EQUALS}}{413} \indexentry{terminal!TOKEN_EQUALS@{\tt TOKEN_EQUALS}}{413} \indexentry{opt_space@{\tt opt_space} rule}{413} \indexentry{non-terminal!opt_space@{\tt opt_space}}{413} \indexentry{assignment_lhs@{\tt assignment_lhs} rule}{413} \indexentry{non-terminal!assignment_lhs@{\tt assignment_lhs}}{413} \indexentry{assignment@{\tt assignment} rule}{413} \indexentry{non-terminal!assignment@{\tt assignment}}{413} \indexentry{assignment_list@{\tt assignment_list}}{413} \indexentry{field name}{413} \indexentry{author@{\tt author}}{413} \indexentry{title@{\tt title}}{413} \indexentry{abbreviation}{413} \indexentry{TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{413} \indexentry{terminal!TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{413} \indexentry{TOKEN_FIELD@{\tt TOKEN_FIELD}}{413} \indexentry{terminal!TOKEN_FIELD@{\tt TOKEN_FIELD}}{413} \indexentry{assignment_lhs@{\tt assignment_lhs} rule}{413} \indexentry{non-terminal!assignment_lhs@{\tt assignment_lhs}}{413} \indexentry{empty!string}{413} \indexentry{/*...*/@{\tt /*...*/}}{413} \indexentry{space@{\tt space} rule}{413} \indexentry{non-terminal!space@{\tt space}}{413} \indexentry{/* empty */@{\tt /* empty */} rule}{413} \indexentry{non-terminal!/* empty */@{\tt /* empty */}}{413} \indexentry{opt_space@{\tt opt_space} rule}{413} \indexentry{non-terminal!opt_space@{\tt opt_space}}{413} \indexentry{space}{413} \indexentry{single_space@{\tt single_space} rule}{413} \indexentry{non-terminal!single_space@{\tt single_space}}{413} \indexentry{space@{\tt space} rule}{413} \indexentry{non-terminal!space@{\tt space}}{413} \indexentry{single space}{413} \indexentry{space}{413} \indexentry{in-line comment}{413} \indexentry{comment!in-line}{413} \indexentry{newline}{413} \indexentry{TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{413} \indexentry{terminal!TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{413} \indexentry{TOKEN_INLINE@{\tt TOKEN_INLINE}}{413} \indexentry{terminal!TOKEN_INLINE@{\tt TOKEN_INLINE}}{413} \indexentry{TOKEN_SPACE@{\tt TOKEN_SPACE}}{413} \indexentry{terminal!TOKEN_SPACE@{\tt TOKEN_SPACE}}{413} \indexentry{single_space@{\tt single_space} rule}{413} \indexentry{non-terminal!single_space@{\tt single_space}}{413} \indexentry{TOKEN_SPACE@{\tt TOKEN_SPACE}}{413} \indexentry{terminal!TOKEN_SPACE@{\tt TOKEN_SPACE}}{413} \indexentry{TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{413} \indexentry{terminal!TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{413} \indexentry{mismatched delimiters}{413} \indexentry{delimiters!mismatched}{413} \indexentry{yacc@{\tt yacc}}{413} \indexentry{yacc@{\tt yacc}}{413} \indexentry{TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{414} \indexentry{terminal!TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{414} \indexentry{TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{414} \indexentry{terminal!TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{414} \indexentry{TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{414} \indexentry{terminal!TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{414} \indexentry{trailing context}{414} \indexentry{source code}{414} \indexentry{documentation}{414} \indexentry{bibclean@{\tt bibclean}}{414} \indexentry{bibclean@{\tt bibclean}}{414} \indexentry{lex@{\tt lex}}{414} \indexentry{flex@{\tt flex}}{414} \indexentry{yacc@{\tt yacc}}{414} \indexentry{bison@{\tt bison}}{414} \indexentry{anonymous ftp@anonymous {\tt ftp}}{414} \indexentry{ftp@{\tt ftp}}{414} \indexentry{ftp.math.utah.edu@{\tt ftp.math.utah.edu}}{414} \indexentry{file!ftp.math.utah.edu@{\tt ftp.math.utah.edu}}{414} \indexentry{pub/tex/bib@{\tt pub/tex/bib}}{414} \indexentry{file!pub/tex/bib@{\tt pub/tex/bib}}{414} \indexentry{Internet archive hosts}{414} \indexentry{archive hosts!Internet}{414} \indexentry{bibclean@{\tt bibclean}}{414} \indexentry{ftp@{\tt ftp}}{414} \indexentry{electronic mail server}{414} \indexentry{tuglib\char 64math.utah.edu@{\tt tuglib\char 64math.utah.edu}}{414} \indexentry{file!tuglib\char 64math.utah.edu@{\tt tuglib\char 64math.utah.edu}}{414} \indexentry{send@{\tt send}}{414} \indexentry{help@{\tt help}}{414} \indexentry{bibclean@{\tt bibclean}}{414} \indexentry{testing}{414} \indexentry{trip@{\tt trip}}{414} \indexentry{trap@{\tt trap}}{414} \indexentry{command-line options|see{options}}{415} \indexentry{concatenation|see{string}}{415} \indexentry{editor|see{Emacs}}{415} \indexentry{lexer|see{lexical analyzer}}{415} \indexentry{macro|seealso{control sequence}}{415} \indexentry{run-time options|see{options}}{415} \indexentry{text editor|see{Emacs}}{415} \indexentry{token|see{terminal}}{415} \indexentry{Scribe@{\sc Scribe}}{417} bibclean-3.07/doc/ltugboat.sty0000644000156700015670000005675305722745571015271 0ustar beebebeebe%% @latexfile{ %% filename="ltugboat.sty", %% version="1.19", %% date="16-Nov-1993", %% filetype="LaTeX macros for TUGboat", %% copyright="Copyright (C) TeX Users Group. %% Copying of this file is authorized only if either: %% (1) you make absolutely no changes to your copy, OR %% (2) if you do make changes, you first rename it to some %% other name.", %% author="TeX Users Group", %% address="TeX Users Group, %% P. O. Box 869, %% Santa Barbara, CA 93102, %% USA", %% telephone="805-963-1338", %% email="Internet: TUGboat@Math.AMS.org", %% codetable="ISO/ASCII", %% checksumtype="line count", %% checksum="718", %% keywords="tex users group, tugboat, latex", %% abstract="This file contains the LaTeX-based macros %% for preparation of TUGboat, the Communications %% of the TeX Users Group." %% } %% ********************************************************* %% %% Use of this file also requires the following files: %% ARTICLE.STY %% ART10.STY %% TUGBOAT.CMN (version 1.08+) %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\thistubstyle{latex} \def\fileversion{v1.19} \def\filedate{16 November 93} % Change history at bottom of file % ***** LTUGBOAT.STY ***** % % % Incorporates ideas and elements from these TUGboat authors: % Adrian Clark % Frank Mittelbach % Rainer Sch\"opf % Stop here if this file has been read already \ifx\tugstyloaded@\thistubstyle \tugstyinit \endinput\else\let\tugstyloaded@\thistubstyle\fi \typeout{Document Style `ltugboat' \fileversion \space\space <\filedate>} % ********************************************************************** % % Load macros required by this style, but only if it wasn't done already \ifx\c@section\undefined \input article.sty \fi % Macros common to ltugboat.sty and tugboat.sty \input tugboat.cmn % *********************************************************************** % % Fonts % install additional fonts as appropriate for plain/old LaTeX or NFSS: % provide definition of \tensl if NFSS is loaded \ifx\selectfont\undefined % old LaTeX \font\sevbf=cmbx7 \font \svtnsfb=cmssbx10 scaled \magstep3 % for section titles; % \font \twlsfb=cmssbx10 scaled \magstep1 % definition of \LaTeX \newfam\sectitlefam % requires a family \textfont\sectitlefam=\svtnsfb \scriptfont\sectitlefam=\twlsfb \def\sectitlefont{\fam\sectitlefam\svtnsfb\baselineskip\stbaselineskip} % \font\egtsl=cmsl8 \font\tenuit=cmu10 % for Editor's Note % % redo definition of 10pt from latex (lfonts), to install \sevbf as % \*scriptfont of \bffam and \egtsl in \slfam % \*scriptfont of \bffam for 9pt \toks0=\expandafter{\xpt\scriptfont\bffam\sevbf \scriptscriptfont\bffam\sevbf \scriptfont\slfam\egtsl \scriptscriptfont\slfam\egtsl} \xdef\xpt{\the\toks0} \toks0=\expandafter{\ixpt\scriptfont\bffam\sevbf \scriptscriptfont\bffam\sevbf} \xdef\ixpt{\the\toks0} \else % NFSS in effect % for section titles; include explicit definition of \La (for \LaTeX) \def\sectitlefont{\def\La{\leavevmode L\raise.42ex \hbox{\fontsize{12}{12pt}\selectfont\kern-.4em A}}% \fontfamily{cmss}\fontseries{bx}\fontshape{n}% \fontsize{17}{\stbaselineskip}\selectfont} \def\tensl{\fontfamily{cmr}\fontseries{m}\fontshape{sl}\fontsize{10}{12pt}% \selectfont} \def\tubfont{\shape{sl}\selectfont} \def\tenuit{\fontfamily{cmr}\fontseries{m}\fontshape{u}\fontsize{10}{12pt}% \selectfont} \fi % *********************************************************************** % % normal TUGboat dimensions, glue values, penalties \@twosidetrue % for odd/even asymmetry in running heads \twocolumn % two columns \sloppy % make those columns justify %\flushbottom % but ensure they line up \columnsep 1.5pc % space between columns \columnwidth 18.75pc % width of each column \parindent \normalparindent % paragraph indent \parskip 0pt % no inter-paragraph space \leftmargini 2em % unchanged \leftmarginv .5em % unchanged \leftmarginvi .5em % unchanged \oddsidemargin 0pt % was 42pt \evensidemargin 0pt % was 84pt \topmargin -2.5pc % was 0pt \headheight 12pt % height of running head, unchanged \headsep 20pt % distance between header and text \marginparwidth 48pt % don't use marginal notes \marginparsep 10pt % in TUGboat \textheight 54pc % height of text on page \textwidth 39pc % total width of a page \partopsep=\z@ \topsep=3pt plus1pt minus1pt \parsep=3pt plus 1pt minus 1pt \itemsep=\parsep \def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt \abovedisplayskip=3pt plus 3pt minus 1pt \belowdisplayskip=\abovedisplayskip \abovedisplayshortskip=\z@ plus3pt \belowdisplayshortskip=1pt plus3pt minus1pt} \def\small{\@setsize\small{11pt}\ixpt\@ixpt \abovedisplayskip=2.5pt plus2.5pt minus1pt\belowdisplayskip=\abovedisplayskip \abovedisplayshortskip=\z@ plus2pt \belowdisplayshortskip=1pt plus2pt minus1pt} \def\SMC{\small} \def\footnotesize{\@setsize\footnotesize{12pt}\xpt\@xpt \abovedisplayskip=3pt plus 3pt minus 1pt \belowdisplayskip=\abovedisplayskip \abovedisplayshortskip=\z@ plus3pt \belowdisplayshortskip=1pt plus3pt minus1pt} % *********************************************************************** % % Lists \def\@listi{\leftmargin\leftmargini\parsep=1pt plus 1pt minus 1pt \itemsep=\parsep \listparindent=1em } \def\@listii{\leftmargin\leftmarginii \labelwidth=\leftmarginii \advance\labelwidth-\labelsep \topsep=2pt plus 1pt minus 1pt \parsep=1pt plus 1pt minus 1pt \itemsep=\parsep \listparindent=1em } \def\@listiii{\leftmargin=\leftmarginiii \labelwidth=\leftmarginiii \advance\labelwidth-\labelsep \topsep=1pt plus 1pt minus 1pt \parsep=\z@ \itemsep=\topsep \listparindent=1em } % *********************************************************************** % % Titles, authors, addresses, signatures \setbox\T@stBox=\hbox{\sectitlefont O} \newdimen\stfontheight \stfontheight=\ht\T@stBox \def \sectitle#1{\SecTitletrue \def\s@ctitle{#1}} \newcount\authornumber \authornumber=0 \def\author#1{% \global\advance\authornumber\@ne \expandafter\def\csname theauthor\number\authornumber\endcsname {\ignorespaces#1\unskip}% \expandafter\let\csname theaddress\number\authornumber\endcsname\relax \expandafter\let\csname thenetaddress\number\authornumber\endcsname\relax } \def\address#1{% \expandafter\def\csname theaddress\number\authornumber\endcsname {\ignorespaces#1\unskip}} \def\network#1{\def\@network{#1: }} \def\netaddress{% \begingroup \let\@network\relax \@ifnextchar[{\@netaddress}{\@netaddress[]}% } {\makeactive\@ \gdef\netaddrat{\makeactive\@\def@{\char"40\discretionary{}{}{}}} \makeactive\% \gdef\netaddrpercent{\makeactive\%\def%{\char"25\discretionary{}{}{}}} } \def\@netaddress[#1]{#1\@sanitize\makespace\ \makeactive\@\makeactive\%% \@@netaddress} \def\@@netaddress#1{% \toks@{#1}% \ifx\@network\relax \def\@@network{}% \else \def\@@network{\@network}\fi \expandafter\xdef\csname thenetaddress\number\authornumber\endcsname {{\noexpand\rm\@@network}% {\noexpand\netaddrat\noexpand\netaddrpercent\noexpand\net \ignorespaces\the\toks@\unskip}}% \endgroup } \def\net{\tt} % Overrides to default author and signature formats \def\authorlist#1{\def\@author{#1}} \def\@author{\@defaultauthorlist} \def\maketitle{\par \ifdim\PreTitleDrop > 0pt \loop \ifdim \PreTitleDrop > \textheight \vbox{}\vfil\eject \advance\PreTitleDrop by -\textheight \repeat \vbox to \PreTitleDrop{} \global\PreTitleDrop=0pt \fi \begingroup \setcounter{footnote}{0} \def\thefootnote{\fnsymbol{footnote}} % \def\@makefnmark{\hbox to 0pt{$^{\@thefnmark}$\hss}} \@maketitle \@thanks \endgroup \setcounter{footnote}{0} % \let\maketitle\relax % \let\@maketitle\relax \gdef\@thanks{}%\gdef\@author{}\gdef\@title{}% %\let\thanks\relax } \newif\ifWideSecTitle \def\@maketitle{\ifSecTitle \global\SecTitlefalse \T@stDimen=\hsize \ifWideSecTitle \hsize=\textwidth \global\WideSecTitlefalse \fi \@sectitle{\s@ctitle}% \hsize=\T@stDimen \else \vskip\AboveTitleSkip \kern\topskip \hrule height\z@ depth\z@ width 10pt \kern-\topskip \kern-\strulethickness \hrule height\strulethickness depth\z@ \kern\medskipamount \nobreak \fi {\nohyphens \interlinepenalty\@M \setbox0= \hbox{\let\thanks\@gobble \let\\=\quad \let\and=\quad \ignorespaces\@author}% {\noindent\bf\raggedright\ignorespaces\@title\endgraf}% \ifdim \wd0 < 5pt % omit if author is null \else \nobreak \vskip 4pt % 4pt + \BelowTitleSkip = \baselineskip {\leftskip=\normalparindent \raggedright \def\and{\unskip\\}% \noindent\@author\endgraf}% \fi \nobreak \vskip\BelowTitleSkip }} \def\dedication{\bgroup\raggedright\let\MF=\slMF\noindent\it\ignorespaces} \def\enddedication{\endgraf\egroup\medskip} \def\abstract{ \section*{Abstract} } \def\endabstract{} \def\longabstract{ \section*{Abstract} \bgroup\small} \def\endlongabstract{\endgraf\egroup \vspace{.25\baselineskip} \begin{center} {$--*--$} \end{center} \vspace{.5\baselineskip}} % Redefine style of section headings to look more like TUGboat. % Start with definitions from art10.sty . (Only \section correct so far.) % % \vskip 8pt \vskip\parskip before; \vskip 4pt after % Negative beforeskip suppresses following parindent. \def\section{\@startsection {section}{1}{\z@}{-8pt}{4pt}% {\normalsize\bf\raggedright\hyphenpenalty=\@M}} \def\subsection{\@startsection{subsection}{2}{\z@}{-8pt}{4pt}% {\normalsize\bf\raggedright\hyphenpenalty=\@M}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-8pt}{4pt}% {\normalsize\bf\raggedright\hyphenpenalty=\@M}} \def\paragraph{\@startsection % {paragraph}{4}{\z@}{3.25ex plus 1ex minus .2ex}{-1em}{\normalsize\bf}} {paragraph}{4}{\z@}{2.5ex plus 1ex}{-1em}{\normalsize\bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent}{2.5ex plus 1ex}{-1em}{\normalsize\bf}} % Modify \appendix from art10.sty, to add ``Appendix'' % 1 May 89 Mittelach comments that we need to put ``Appendix'' % somewhere other than \thesection if \tableofcontents is used. %\def\appendix{\par % \setcounter{section}{0} % \setcounter{subsection}{0} % \def\thesection{Appendix \Alph{section}}} \def \EdNote{{\tenuit Editor's note:\enspace }} % *********************************************************************** % % Tables of contents % The original versions of the table of contents entries justify long % headings, which gives spaced out text which looks awful. We change % this to typeset headings \raggedright instead. We also use lightface % rather than bold, and decrease the skip between entries, since % TUGboat contents lists usually don't go to levels below \section. % % Modifications mainly by Nelson Beebe, with indentation to make macros % more readable. % \l@section{TOC-ENTRY}{PAGE-NUMBER} \def\l@section#1#2{% \addpenalty{\@secpenalty}% \addvspace{.1em plus 1pt}% \@tempdima 1.5em \begingroup \parindent \z@ \rightskip \z@ % article style makes \rightskip > 0 \parfillskip \z@ \advance\leftskip\@tempdima% indent text by width of \numberline \hskip -\leftskip % move left for section number on first line \raggedright % NEW: no flushright text in tocs #1% toc-entry text \unskip % NEW: discard intervening space \nobreak \hfill % was \hfil, but need stronger version \nobreak \hbox to \@pnumwidth {\hss #2}% page number \par \endgroup } %% OLD: \def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} \def\l@figure{\@dottedtocline{1}{0em}{1.5em}} \let\l@table=\l@figure % %% Increase \@pnumwidth by 0.45em (4.5pt) to avoid overfull box %% from bad default setting. %% OLD: \def\@pnumwidth{1.55em} \def\@pnumwidth{2em} % %% Modification of \@dottedtocline from latex.tex to produce ragged right %% entries instead of very spaced out entries. \def\@dottedtocline#1#2#3#4#5{% \ifnum #1>\c@tocdepth \else \vskip \z@ plus .2pt {% \leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent #2\relax \@afterindenttrue \interlinepenalty\@M \leavevmode \@tempdima #3\relax % tempdima := NUMWIDTH \advance\leftskip \@tempdima % leftskip := INDENT + NUMWIDTH \hbox{}% \hskip -\leftskip {% \raggedright #4 \unskip \nobreak \hfill \nobreak \hbox to\@pnumwidth{\hfil\rm #5}% \par }% \par }% \fi } % *********************************************************************** % % Footnotes \long\def\@makefntext#1{\parindent 1em\noindent\hbox to 2em{}% \llap{\@makefnmark}\null$\mskip5mu$#1} % \llap{$^{\@thefnmark}\,$}#1} % *********************************************************************** % % Figures \def\fnum@figure{{\bf Figure \thefigure}} % *********************************************************************** % % Quotes \def\quote{\list{}{\rightmargin.5\leftmargin}\item[]} % From Dominik Wujastyk's font article. First paragraph of a quotation % will not be indented, and right margin is decreased for narrow columns. \renewcommand{\quotation}{\list{}{\listparindent 1.5em \rightmargin.5\leftmargin\parsep 0pt plus 1pt}\item[]} % *********************************************************************** % % Bibliography % Changes made only to accomodate local file naming conventions \def\bibliography#1{% \if@filesw\immediate\write\@auxout{\string\bibdata{\@tubfilename{#1}}}\fi \@input{\jobname.bbl}} \def\bibliographystyle#1{\if@filesw\immediate\write\@auxout {\string\bibstyle{\@tubfilename{#1}}}\fi} % Replace \sloppy by something not quite as sloppy \def\thebibliography#1{\section*{References\@mkboth {REFERENCES}{REFERENCES}}\list {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth \advance\leftmargin\labelsep \usecounter{enumi}} \def\newblock{\hskip .11em plus .33em minus .07em} % \sloppy \tolerance 8000 \hfuzz .5\p@ \vfuzz .5\p@ \clubpenalty4000\widowpenalty4000 \sfcode`\.=1000\relax} %\def\sloppy{\tolerance 10000 \hfuzz .5\p@ \vfuzz .5\p@} % *********************************************************************** % % Signature % Moved to TUGboat.com % *********************************************************************** % % \document, \enddocument % changed \input to \@@input; either use the new functionality or be real \def\enddocument{\@checkend{document}\clearpage\begingroup \if@filesw \immediate\closeout\@mainaux \def\global\@namedef##1##2{}\def\newlabel{\@testdef r}% \def\bibcite{\@testdef b}\@tempswafalse \makeatletter\@@input \jobname.aux \if@tempswa \@warning{Label(s) may have changed. Rerun to get cross-references right}\fi\fi\endgroup\deadcycles\z@\@@end} % *********************************************************************** % % Running heads, output routine \def \rtitlex{\def\tubfont{\normalsize\rm}\TUB, \volx } \def\PrelimDraftfooter{% \dlap{\kern\textheight\kern3pc \rlap{\hbox to \pagewd{\midrtitle\hfil\midrtitle}} }} % registration marks; these are temporarily inserted in the running head \def\MakeRegistrationMarks{} \def\UseTrimMarks{% \def\MakeRegistrationMarks{% \ulap{\rlap{% \vbox{\dlap{\vbox to\trimlgt{\vfil\botregister}}% \topregister\vskip \headmargin \vskip 10pt}}}}% } \def\@oddhead{\MakeRegistrationMarks\PrelimDraftfooter \normalsize\csname normalshape\endcsname\rm \rtitlex\qquad\midrtitle \hfil \thepage} \def\@evenhead{\MakeRegistrationMarks\PrelimDraftfooter \normalsize\csname normalshape\endcsname\rm \thepage\hfil\midrtitle\qquad\rtitlex} \def\@oddfoot{} \def\@evenfoot{} \def\ps@headings{} \pagestyle{headings} % Modified to alter \brokenpenalty across columns \def\@outputdblcol{\if@firstcolumn \global\@firstcolumnfalse \global\setbox\@leftcolumn\box\@outputbox \global\brokenpenalty10000 \else \global\@firstcolumntrue \global\brokenpenalty100 \setbox\@outputbox\vbox{\hbox to\textwidth{\hbox to\columnwidth {\box\@leftcolumn \hss}\hfil \vrule width\columnseprule\hfil \hbox to\columnwidth{\box\@outputbox \hss}}}\@combinedblfloats \@outputpage \begingroup \@dblfloatplacement \@startdblcolumn \@whilesw\if@fcolmade \fi{\@outputpage\@startdblcolumn}\endgroup \fi} % *********************************************************************** % % Macros for Mittelbach's self-documenting style \def\SelfDocumenting{% \setlength\textwidth{31pc} \onecolumn \parindent 0pt \parskip 2pt plus 1pt minus 1pt \oddsidemargin 8pc \evensidemargin 8pc \marginparwidth 8pc \toks@\expandafter{\@oddhead}% \xdef\@oddhead{\hss\hbox to \pagewd{\the\toks@}}% \toks@\expandafter{\@evenhead}% \xdef\@evenhead{\hss\hbox to \pagewd{\the\toks@}}% \def\ps@titlepage{}% } \def\ps@titlepage{} % *********************************************************************** % % MISCELLANEOUS defs for compatibility with tugboat.sty \newif\ifFirstPar \FirstParfalse \newdimen\pagewd \pagewd=39pc \newdimen\trimwd \trimwd=\pagewd \newdimen\trimlgt \trimlgt=11in \newdimen\headmargin \headmargin=3.5pc \def\smc{\sc} \def\ninepoint{\small} %************************************************************************* % % Start-up \setcounter{page}{1001} \PrelimDrafttrue \def\tugstyinit{% \everypar{\@nodocument}% \authornumber\z@ \let\@signature\@defaultsignature } \endinput % ********************************************************************** % % Change history % Version Date Changes ------- --------- --------------------------------------------------- 1.19 16 Nov 93 added new t-of-c definitions, based on modifications by Nelson Beebe; make text ragged right, lightface, and entries closer together than latex.tex default 1.18b 8 Nov 93 removed extraneous " from header 1.18a 29 May 93 changed \family to \fontfamily in defs of \tensl, \tenuit within \sectitlefont, define \La to get proper "A" 1.18 22 Mar 93 added \hyphenpenalty=10000 to (sub*)section headings added missing brace at end of \def\tensl for nfss added new environments \dedication and \longabstract 1.17 19 Feb 93 incorporated some font definitions by Rainer Schoepf to add flexibility when used under NFSS installed new TUG address and phone number in header reformatted change history, similar to tugboat.sty 1.16e 24 Dec 92 decreased skip above \paragraph, \subparagraph; removed shrink defined \ps@titlepage to get running heads on first page of docstyle articles 1.16d 19 Oct 92 added \SMC parallel to plain-based style 1.16c 10 Sep 92 added \raggedright in \subsubsection 1.16b 19 Jul 92 test for previous input of article.sty, and omit if done already, to permit use as style option 1.16a 29 Jun 92 embedded redefinitions of \xpt, \ixpt within code to distinguish between plain/old LaTeX and nfss 1.16 6 Jun 92 incorporated test for nfss, and if loaded, define \tensl 1.15 16 Mar 92 incorporated \sevbf into \*scriptfont of \bffam for \ixpt to improve appearance of LaTeX and other logos 1.14 8 Mar 92 added \input article.sty to make this an independent style added standard headers, prepared for archive installation 1.13 20 Nov 91 modified \@outputdblcol to reset \brokenpenalty to different values in first and second column added initialization macro (\tugstyinit) for multiple articles 1.12 7 Aug 91 modified \thebibliography to make it not quite so sloppy and avoid cases where all stretch is put into one line 1.11 10 Jun 91 added \ifWideSecTitle and modified \@maketitle to (partially) support it 1.10 13 Feb 91 added \egtsl and incorporated it into \*scriptfont of \slfam for \xpt to improve appearance of LaTeX and other logos 1.09 12 Dec 90 modified \@oddhead and \@evenhead to reset `shape' for new font selection scheme 1.08 25 Oct 90 modified \enddocument to use \@@input instead of \input; allows other uses of \input 1.07 18 Oct 90 set authors \raggedright set \marginparwidth in \SelfDocumenting removed stretch in space between footnotemark and footnotetext commented out definition of \@makefnmark in \maketitle changed \bibliography and \bibstyle to accomodate local file names (see also tugboat.sty for definition of \@tubfilename) 1.06 13 Oct 90 added \listparindent=1em to definitions of \@list... in order to distinguish paragraphs 1.05 1 Sep 90 made space a in definition of \@netaddress; this obviates error messages concerning \begin{document} 1.04 2 Mar 90 added \nobreak to \@maketitle to prevent pagebreaks after leading rule 1.03 25 Feb 90 added definition of \thistubstyle 1.02 12 Feb 90 modified definition of \@makefntext; now uses \@makefnmark (as one might expect) 1.01 6 Feb 90 removed "\font\manual=manfnt"; tugboat.com already sets \font\manual=logo10 adjusted definition of \netaddress to remove mis-timed \@sanitize-ation 1.00 29 Nov 89 changed \titlefont to \sectitlefont added setting of \baselineskip to definition of \sectitlefont changed \TUBparindent to \normalparindent (already in tugboat.com) removed additions of amcsc* fonts new definitions of \ragged... in tugboat.com include \nohyphens moved most of section title material to tugboat.com moved writing mechanism and multiple document handling to local .drv file redefined \author to be consistent with tugboat.sty added \address, \netaddress moved \signature stuff to tugboat.com made titles raggedright 0.53 20 Oct 89 Zeroed \@signature for multiple documents 0.52 19 Oct 89 Moved \rtitlex to tugboat.com 0.51 18 Oct 89 Disallowed hyphenations in \section and \subsection bibclean-3.07/doc/bibclean.bib0000644000156700015670000003017205472721751015103 0ustar beebebeebe%%% ==================================================================== %%% BibTeX-file{ %%% author = "Nelson H. F. Beebe", %%% version = "0.15", %%% date = "18 November 1993", %%% time = "09:31:34 MST", %%% filename = "bibclean.bib", %%% address = "Center for Scientific Computing %%% Department of Mathematics %%% University of Utah %%% Salt Lake City, UT 84112 %%% USA", %%% telephone = "+1 801 581 5254", %%% FAX = "+1 801 581 4148", %%% checksum = "56881 396 1419 12410", %%% email = "beebe at math.utah.edu (Internet)", %%% codetable = "ISO/ASCII", %%% keywords = "BibTeX, bibliography, prettyprint, syntax check, %%% BibTeX style", %%% supported = "yes", %%% docstring = "This file contains bibliographic references for %%% bibclean.ltx. %%% %%% The checksum field above contains a CRC-16 %%% checksum as the first value, followed by the %%% equivalent of the standard UNIX wc (word %%% count) utility output of lines, words, and %%% characters. This is produced by Robert %%% Solovay's checksum utility.", %%% } %%% ==================================================================== %% /u/sy/beebe/tex/bibclean/doc/bibclean.bib, Tue Jan 12 16:04:16 1993 %% Edit by Nelson H. F. Beebe %% Add final 4 missing ISBN values. %% /u/sy/beebe/tex/bibclean/doc/bibclean.bib, Sat Jan 2 15:47:26 1993 %% Edit by Nelson H. F. Beebe @String{j-IC = "Information and Control"} @String{pub-ANSI = "American National Standards Institute"} @String{pub-ANSI:adr = "1430 Broadway, New York, NY 10018, USA"} @String{pub-AW = "Ad{\-d}i{\-s}on-Wes{\-l}ey"} @String{pub-AW:adr = "Reading, MA, USA"} @String{pub-HAYDEN = "Hayden Books"} @String{pub-HAYDEN:adr = "4300 West 62nd Street, Indianapolis, IN 46268, USA"} @String{pub-HRW = "Holt, Reinhart, and Winston"} @String{pub-HRW:adr = "New York, NY, USA"} @String{pub-KLUWER = "Kluwer Academic Publishers Group"} @String{pub-KLUWER:adr = "Norwell, MA, USA"} @String{pub-OR = "O'Reilly \& {Associates, Inc.}"} @String{pub-OR:adr = "981 Chestnut Street, Newton, MA 02164, USA"} @String{pub-PH = "Pren{\-}tice-Hall"} @String{pub-PH:adr = "Englewood Cliffs, NJ 07632, USA"} @String{TUGboat = "TUGBoat"} @Book{Aho:APL87, nb = "the author order is AKW, but the key looks better as AWK", key = "AWK87", author = "Alfred V. Aho and Brian W. Kernighan and Peter J. Weinberger", title = "The {AWK} Programming Language", publisher = pub-AW, address = pub-AW:adr, year = "1988", ISBN = "0-201-07981-X", } @Book{Aho:CPT86, author = "Alfred V. Aho and Ravi Sethi and Jeffrey D. Ullman", title = "Compilers\emdash Prin\-ci\-ples, Techniques, and Tools", publisher = pub-AW, address = pub-AW:adr, year = "1986", ISBN = "0-201-10088-6", } @Manual{ANSI:c89, title = "American National Standard Programming Language C, {ANSI} X3.159-1989", organization = pub-ANSI, address = pub-ANSI:adr, year = "1989", month = dec # " 14", } @Article{Beebe:TB12S-2-176, author = "Nelson H. F. Beebe", title = "Publications about {\TeX} and typography", journal = TUGboat, year = "1991", volume = "Supplement to 12", number = "2", pages = "176--183", month = may, bibdate = "Wed Dec 16 12:12:20 1992", } @Article{Beebe:TB12S-2-183, author = "Nelson H. F. Beebe", title = "Publications prepared with {\TeX}", journal = TUGboat, year = "1991", volume = "Supplement to 12", number = "2", pages = "183--194", month = may, bibdate = "Wed Dec 16 12:12:20 1992", } @Book{Bryan:SAG88, author = "Martin Bryan", title = "{SGML}\emdash An Author's Guide to the Standard Generalized Markup Language", publisher = pub-AW, address = pub-AW:adr, year = "1988", ISBN = "0-201-17535-5", } @Book{Cameron:LGE91, author = "Debra Cameron and Bill Rosenblatt", title = "Learning {GNU} Emacs", publisher = pub-OR, address = pub-OR:adr, year = "1991", ISBN = "0-937175-84-6", } @Book{Ellis:ACR90, author = "Margaret A. Ellis and Bjarne Stroustrup", title = "The Annotated {C++} Reference Manual", publisher = pub-AW, year = "1990", address = pub-AW:adr, ISBN = "0-201-51459-1", } @Book{Feuer:CPB89, author = "Alan R. Feuer", title = "The {C} Puzzle Book", publisher = pub-PH, address = pub-PH:adr, year = "1989", edition = "Second", ISBN = "0-13-115502-4", bibdate = "Fri Jan 1 10:55:07 1993; Tue Jan 12 16:01:55 1993", } @Book{Harbison:CAR91, author = "Samuel P. Harbison and Guy L. {Steele Jr.}", title = "C\emdash A Reference Manual", publisher = pub-PH, address = pub-PH:adr, year = "1991", edition = "Third", ISBN = "0-13-110933-2", } @Book{Jaeschke:PCL89, author = "Rex Jaeschke", title = "Portability and the {C} Language", publisher = pub-HAYDEN, address = pub-HAYDEN:adr, year = "1989", ISBN = "0-672-48428-5", } @InCollection{Johnson:yacc, author = "Steven C. Johnson", title = "Yacc: Yet Another Compiler Compiler", booktitle = "{UNIX} Programmer's Manual", publisher = pub-HRW, address = pub-HRW:adr, year = "1979", volume = "2", pages = "353--387", note = "AT\&T Bell Laboratories Technical Report, July 31, 1978.", } @Book{Kernighan:CPL78, author = "Brian W. Kernighan and Dennis M. Ritchie", title = "The C Programming Language", publisher = pub-PH, address = pub-PH:adr, year = "1978", ISBN = "0-13-110163-3", } @Book{Kernighan:CPL88, author = "Brian W. Kernighan and Dennis M. Ritchie", title = "The C Programming Language", publisher = pub-PH, address = pub-PH:adr, year = "1988", edition = "Second", ISBN = "0-13-110362-8", } @Book{Knuth:ct-a, author = "Donald E. Knuth", title = "The {\TeX}book", publisher = pub-AW, address = pub-AW:adr, year = "1986", volume = "A", series = "Computers and Typesetting", ISBN = "0-201-13447-0", } @Article{Knuth:j-IC-8-6-607, author = "Donald E. Knuth", title = "On the Translation of Languages from Left to Right", journal = j-IC, year = "1965", volume = "8", number = "6", pages = "607--639", note = "This is the original paper on the theory of LR(k) parsing.", bibdate = "Sat Jan 9 10:03:10 1993", } @Book{Koenig:CTP89, author = "Andrew Koenig", title = "{C} Traps and Pitfalls", publisher = pub-AW, year = "1989", address = pub-AW:adr, ISBN = "0-201-17928-8", bibdate = "Fri Jan 1 10:59:22 1993; Tue Jan 12 16:02:36 1993", } @Book{Lamport:LDP85, author = "Leslie Lamport", title = "{\LaTeX}\emdash A Document Preparation System\emdash User's Guide and Reference Manual", publisher = pub-AW, address = pub-AW:adr, year = "1985", ISBN = "0-201-15790-X", } @Book{Lapin:PCU87, author = "J. E. Lapin", title = "Portable C and {UNIX} Programming", publisher = pub-PH, address = pub-PH:adr, year = "1987", ISBN = "0-13-686494-5", } @InCollection{Lesk:lex, author = "Michael E. Lesk and Eric Schmidt", title = "Lex\emdash A Lexical Analyzer Generator", booktitle = "{UNIX} Programmer's Manual", publisher = pub-HRW, address = pub-HRW:adr, year = "1979", volume = "2", pages = "388--400", note = "AT\&T Bell Laboratories Technical Report in 1975.", } @Book{Levine:LY92, author = "John R. Levine and Tony Mason and Doug Brown", title = "{\tt lex} \& {\tt yacc}", publisher = pub-OR, year = "1992", ISBN = "1-56592-000-7", address = pub-OR:adr, edition = "Second", pages = "400", price = "US\$29.95", libnote = "Not yet in my library.", bibdate = "Tue Jan 12 08:12:11 1993", } @Book{Mason:LY90, author = "Tony Mason and Doug Brown", title = "{\tt lex} \& {\tt yacc}", publisher = pub-OR, year = "1990", address = pub-OR:adr, ISBN = "0-937175-49-8", } @Book{Plauger:SCL92, author = "P. J. Plauger", title = "The {Standard C} Library", publisher = pub-PH, address = pub-PH:adr, year = "1992", ISBN = "0-13-838012-0", } @Book{Rabinowitz:PC90, author = "Henry Rabinowitz and Chaim Schaap", title = "Portable C", publisher = pub-PH, address = pub-PH:adr, year = "1990", ISBN = "0-13-685967-4", } @Manual{Reid:SUM80, title = "Scribe User's Manual", author = "Brian Reid", organization = "Carnegie-Mellon University", address = "Pittsburgh, PA, USA", edition = "Third", year = "1980", bibdate = "Fri Jan 1 12:06:12 1993", } @Book{Rochkind:AUP85, author = "Marc J. Rochkind", title = "Advanced {UNIX} Programming", publisher = pub-PH, address = pub-PH:adr, year = "1985", ISBN = "0-13-011818-4 (hardback), 0-13-011800-1 (paperback)", } @Book{Schoonover:GEU92, author = "Michael A. Schoonover and John S. Bowie and William R. Arnold", title = "{GNU} Emacs: {UNIX} Text Editing and Programming", publisher = pub-AW, year = "1992", address = pub-AW:adr, ISBN = "0-201-56345-2", LCCN = "QA76.76.T49S36", pages = "610", } @Book{Schreiner:ICC85, author = "Axel T. Schreiner and H. George {Friedman, Jr.}", title = "Introduction to Compiler Construction Under {UNIX}", publisher = pub-PH, address = pub-PH:adr, ISBN = "0-13-474396-2", pages = "224", year = "1985", bibdate = "Tue Jan 12 16:03:28 1993", } @Book{Stevens:UNP90, author = "W. Richard Stevens", title = "{UNIX} Network Programming", publisher = pub-PH, address = pub-PH:adr, year = "1990", ISBN = "0-13-949876-1", } @Book{Stroustrup:CPL91, author = "Bjarne Stroustrup", title = "The {C++} Programming Language", publisher = pub-AW, address = pub-AW:adr, edition = "Second", year = "1991", ISBN = "0-201-53992-6", email = "\path|bs@alice.uucp|", } @Book{vanHerwijnen:PS90, author = "Eric van Herwijnen", title = "Practical {SGML}", publisher = pub-KLUWER, address = pub-KLUWER:adr, year = "1990", ISBN = "0-7923-0635-X", pages = "xviii + 307", inprint = "yes", price = "\pounds24.90 (1990)", review = "in " # j-TEXLINE # " 10, p. 27 and \cite{Popperlier:NTG-92-1-135} and \cite{Popperlier:TB13-2-182}", acknowledgement = ack-mc # " and " # ack-fm, } @Book{xopen:XPG89-1, author = "{X/Open Company, Ltd.}", title = "X\slash Open Portability Guide, {XSI} Commands and Utilities", publisher = pub-PH, address = pub-PH:adr, year = "1989", volume = "1", ISBN = "0-13-685835-X", } bibclean-3.07/doc/bibclean.dvi0000644000156700015670000042130007721774205015127 0ustar beebebeebe; TeX output 2003.08.23:1728FK`y cmr10TUGbGoat,UUV*olume14(1993),No.4)395x Ǎ"V cmbx10Bibliograph9y9PrettyprintingandSyntax Chec9kingNelsonU>H.F.BeebGeCon9tents1In9troQductionX3952BN- cmcsc10NiDb32TU>ExX9needsimpro9vement: 3963Run-time9optionsh3974Prett9yprintingwU3995P9attern9matchingandinitialization les\#4006Lexical9analysisrxo4037P9ortabilityw54048NScribe9bibliograph9yformat8G4059Recommendations9forBNiDb32TU>ExXdesign 40510A9lexicalgrammarforBNiDb32TU>ExX,40711A9parsinggrammarforBNiDb32TU>ExX'f41012Soft9ware9av\railability[H414References414IndexEd415List9ofT ables1SampleU>sequencesinquotedstrings.'Gf4013InitializationU> lepatterncharacters.%4021?In9troQductionBNiDb32TU>ExX[18 ,|AppGendixAB]isaconvenienttoGolforsolving*thevexingissueofbibliographyformat-ting.UMTheKuseridenti es eldsofbibliographyen-triesRvia eld/vqaluepairsandprovidesauniqueci-tation.keyandadoGcumenttypGeforeachentry*.?SAsimple'stringsubstitutionfacilitymakesiteasytoreuseCfrequently-oGccurringstrings.%A4typicalexam-pleUUloGokslikethis:@String{pub-AW?=9"Ad{\-d}i{\-s}on-Wes{\-l}ey"}@Book{Lamport:LDP85, author?="LeslieLamport", title?=?"{\LaTeX}---ADocumentIPreparation?System---User's*F396)TUGbGoat,UUV*olume14(1993),No.4IGuide?andReferenceManual", publisher?=pub-AW, year?="1985", ISBN?="0-201-15790-X",}ThejTU>'ExX lecontainscitationsoftheform\cite{Lamport:LDP85},CtogetherGwitha\bibli-ographystyle commandtochoGoseacitationandbibliography7style,=anda\bibliographycommandto!spGecifywhichBNiDb32TU>ExX lesaretobeused.Q+TU>'ExXrecordsUUthisinformationinanauxiliary le.A`subsequentqBNiDb32TU>ExXjobstepreadsthisauxil-iary9 le,rextractstherequestedbibliographicentriesfromthespGeci edBNiDb32TU>ExX les, 5andoutputstheen-triesO8intoabibliography leformattedaccordingtothesbspGeci edstyle.&wSeveralsbdozensuchstylesarecur-rentlyavqailabletohelpcopGewiththebizarrevari-ationswinbibliographyformatsthatpublishershaveinvented.InasecondTU>'ExXstep,the\citecommandsarenot,correctlyexpandableuntilthe\bibliographycommand isproGcessedandthebibliography leout-putabyBNiDb32TU>ExXaisread.)However,datthatpGoint,dthedesired7&formofthecitationsis nallyknown,oandatatheendofthejob,anupGdatedauxiliary leiswritten.Am"thirdm\TU>'ExXstep nallyhasthenecessaryinfor-mationfromtheauxiliary leandthebibliography leztocorrectlytypGesetthe\citecommandsandtheUUbibliographyinthespGeci edstyle.With]theGNU]Emacstexteditor[7,27 ]],_pGow-erful}BNiDb32TU>ExXIeditingsuppGortmakesitsimpletogen-eratebibliographyentrydescriptionsviatemplatesthatVcanbGeinsertedwithacoupleofkeystrokes,VHoronworkstations,wselectedfromapGop-upmenu.;Thiseditor]isfreelyavqailableonNUNIX,NVUAX?VMS,andthelargermembGersoftheIBM߰PCfamilyunderNPC-DOS.The&ma8jorbGene tsofusingBNiDb32TU>ExXarethepo-tentialfordatareuse,theseparationofformandcontent)d(likethedescriptivemarkupofL q1ٓRcmr7AsTU>'ExXandNSGML[6,Ĩ31Ī]), |andĨthemanystylisticvqariantsofthe+typGesetbibliography*.cDuringthepreparationofthis[4article,\ascanofourMathematicsDepartmentworkstationj lesystemloGcatedabout14000TU>'ExX les,HEand{445BNiDb32TU>ExX les. :ThelattercontainedabGout64870000linesandalmost94000bibliographyentries.0{Theseq lesformavqaluableresourcethatau-thors?andresearcherscanusetotrackandpropGerlyciteUUliteratureintheirpublications.DuringmytermasTUGPresident,Iinitiatedaipro8jecttocollectBNiDb32TU>ExXZstylesandbibliographydatabase lesofmaterialrelatedtoTU>'ExXanditsuses,9andrelectronicdoGcumentproductionandty-pGography%Qingeneral.Thisdynamiccollectionalso coversEafewjournals,Hincludingmorethan1000en-tries forp0J cmsl10TUGbGoat7.A snapshotofpartofthecol-lectionQwaspublishedinthe1991TUGResourceDirectoryUU[4,5UV].OnebdrawbackofBNiDb32TU>ExX7isthaterrorsinabib-liographyB le,-|suchasunmatchedquotationmarksaroundMavqaluestring,PcansometimesbGehardtoloGcate,&because thecurrentversionoftheprogramraisesanerrorattheendofascanwheninternalta-blesdover owaftergobblingseveralthousandchar-actersofinput.WTheresultisthattheerrorloGcationis7completelybGogus,andactuallyliesmuch7earlierinOYthe le.oW*ecanhopGethatthisseriousde ciencywill-bGeremediedinthe nalversionofBNiDb32TU>ExX,1.0,which8isexpGectedtoappearwhentheL q1AsTU>'ExX3.0de-velopmentUUiscompleted.Another[drawbackisthatsuchbibliography les6arenormallypreparedbyhumantypists,oNandconsequently;thereareformattingvqariationsthatreduce7readability*,pandinconsistenciesthatpGersistintothe naltypGesetbibliography*.fSomeexamplesofExXu les,KIsetvouttowriteasoftwaretoGolGtodealwiththeseproblems.oThisprogramiscalledsQbibclean.˻Itisasyntaxchecker,pGortabil-ityveri er,Zandprettyprinter,Zandwasmadefreelyavqailable]in1991._Inthefallof1992,(afterconsider-ableexpGeriencewiththe rstversion,9Iembarkedona`~setofenhancementsthatproGducedma8jorversion2.0,,and!thepurpGoseofthispaperistodescribethenew version,andtowidelyadvertiseitsexistencetotheUUTU>'ExXcommunity*.2?BNiDb32TU>ExX9needsimpro9vementBNiDb32TU>ExX, likeTU>'EX,assumesthatitsinputispre-paredcorrectly*,DandworksbGestwhenthatisthecase. Bothlprogramsattempttorecoverlfromer-rors,butthatrecoverymaybGeunsuccessful,ander-rorssmaybGedetectedonlyafterlengthyproGcessing.In neithercaseistheoutputoftheseprogramssuit-able]forinputtothem.Thatis,_theirknowledgeofhowtheirinputstreamsaretobGeparsedisavqailableonly_tothem,aandcannotbGeappliedindependentlyandusedbyothersoftware.'ExX'sisextensible,makingitevenhardertogiveaprecisedescriptiontoUUtheuser.aFTUGbGoat,UUV*olume14(1993),No.4)397The[trendofcompilertechnologydevelopment ofthelasttwodecades,GlargelyonNUNIXsystems,hasbGeentoseparatethecompilationtaskintosev-eralUUsteps.Theg rstisgenerallycalled': cmti10lexic}'alanalysis,orlexing.ϝItbreakstheinputstreamupintoidenti -abletokensthatcanbGerepresentedbysmallintegerconstantsUUandconstantstrings.Thed secondstepiscalledp}'arsing,whichin-volvesmtheveri cationthatthetokensstreamingfromcthelexerconformtothegrammaticalrequire-mentsofthelanguage,thatis,thattheymakesense.AsPparsingproGceeds,Qanintermediaterepresen-tationispreparedthatissuitableforthethirdstep,namely*,UUc}'odegenerationorinterpretation.Thisdivisionintosubtasksdiminishesthecom-plexityofwritingacompiler,/reducesitsmemoryre-quirements,andimpGortantly*,partitionsthejobintotwoΠparts:d]alanguage-depGendent,butar}'chitecture-indep}'endent,^partconsistingoflexingandpars-ing,Gandalanguage-indepGendent,butar}'chitecture-dep}'endent,%partJwherecoGdeisgeneratedorinter-preted.ThisrmakesitpGossibletowriteafrontendforeachlanguage,Bandabackendforeacharchitec-ture,PandQbycombiningthem,Pobtaincompilersforalllanguagesandallarchitectures.Themostsuc-cessfulڨexampleofthisapproachatpresentisal-mostǯcertainlytheF*reeSoftwareǯFoundation'sGNUPro8jectOcompilers,whichsuppGortallcommoncom-puterFarchitectureswiththebackends,|andC,C++,andOb8jectiveCLwiththefrontends.}Additionalfront5endsforseveralotherpGopularlanguagesareinpreparation.WheneRalexerisavqailableasaseparateprogram,itsZoutputcanbGeconvenientlyZusedbyotherpro-gramsnewfileOneBormorebibliography lescanbGespeci ed;tif none*aregiven,2inputistakenfromthestandardinputUUstream.qAspGeci cexampleis:bibclean?-no-fix-namemybib.bib>mybib.newCommand-line?switchesmaybGeabbreviatedto aE.uniqueleadingpre x,$andlettercaseisnotsig-ni cant.All optionsareparsedbGeforeanyinputbibliography lesareread,$nomatterwhattheiror-derwKonthecommandline.תOptionsthatcorrespGondto~ayes/nosettingofa aghave~aformwithapre- xno-tosetthe agtono.F*orsuchoptions,thelastsettingdeterminesthe agvqalueused.Thisissigni cant#whenoptionsarealsospGeci edininitial-izationUU les(seeSection5).OnNVUAXVMSandIBMNPC-DOS,thelead-ingxhyphenonoptionnamesmaybGereplacedbyaslash;however,]the(\hyphenoptionpre xisalwaysrecognized.-author +DisplayP@anauthorcreditonthestandarderrorrunit,stderr. SometimesanexecutableprogramisseparatedfromitsdoGcumentationandsourcecoGde;thisoptionprovidesawaytorecoverUUfromthat.-error-log?filename_RedirectfBstderrtothein-dicated le,M!whichwillthencontainalloftheerrorandwarningmessages.,Thisoptionispro-videdWYforthosesystemsthathaveWYdicultyredi-rectingUUstderr.-help?or-?8b!Displayahelpmessageonstderr,givinguasamplecommandusage,Iandoptionde-scriptionsUUsimilartotheoneshere.-init-file?filenamee>Provideanexplicitvqaluepatternninitialization le.ItwillbGeprocessedafter\lanysystem-wideandjob-wideinitializa-tion[ lesfoundonthePATH[_(forNVUAXVMS,SYS$SYSTEM)Tand|BIBINPUTSsearchpaths,re-spGectively*,@andmayoverridethem.Itinturnmay?bGeoverriddenbyasubsequent le-spGeci cinitialization le.Theinitialization lenamecanbGechangedatcompiletime, PoratruntimethroughHGasettingoftheenvironmentHGvqariableBIBCLEANINI,|butdefaultsto.bibcleanrconNUNIX,andtobibclean.inielsewhere.wF*orfurtherUUdetails,seeSection5.-max-width?nnnIcNormally*,"bibcleanlimitsout-putlinewidthsto72characters,andintheinterests7ofconsistency*,pUthatvqalueshouldnotbGe'changed. actasalexicalanalyzer,:thedefaultline%OF398)TUGbGoat,UUV*olume14(1993),No.4widthisunlimited,UPunlessoverriddenbythis option. *Whenbibcleanisprettyprinting,)|linewrap-ping willbGedoneonlyataspace. Conse-quently*, !anextremelylongnon-blankcharac-tersequencemayresultintheoutputexceed-ingtotherequestedlinewidth.SuchsequencesarecextremelyunlikelytooGccur,atleastinEnglish-languagetext,sinceeventhe45-lettergiant#9[16 ,-?p.451]pneumonoultr}'amicroscopicsil-ic}'ovolcanoconiosiswill tinbibclean'sstan-dard272-characteroutputline,i-andsowill58-letterUUW*elshcitynames.Whenbibcleanislexing, linewrappingisdoneGbyinsertingabackslash-newlinepairwhenthespGeci edmaximumisreached,sonolinelengthUUwilleverexceedthemaximum. UV-[no-]check-valuest×WithDthepGositiveform,applyGheuristicpatternmatchingto eldvqal-ues inordertodetectpGossibleerrors(e.g.year=?"192"uinsteadofyear="1992"),~andissuewarningsUUwhenunexpGectedpatternsarefound.This:checkingisusuallybGene cial,t6butifitproGduces4toomanyboguswarningsforapar-ticularӤbibliography le,youcandisableitwiththeUUnegativeformofthisoption.qDefault:yes. UV-[no-]delete-empty-valuesWith/thepGositiveform,74remove/all eld/vqaluepairsforwhichthevqalue$Bisanemptystring. ލThisishelpfulincleaningupbibliographiesgeneratedfromtexteditortemplates._Comparethisoptionwith-[no-]remove-OPT-prefixes';describGedbelow.Default:qno.-[no-]file-positionv+WithDthepGositiveform,givedetailed lepGositioninformationinwarn-ingUUanderrormessages.qDefault:no.-[no-]fix-font-changes{VWith)thepGositiveform,supply6anadditionalbracelevelaroundfontchangesbZintitlestoprotectagainstdowncasingbyIsomeBNiDb32TU>ExX styles.NF*ontchangesthatal-readyhavemorethanonelevelofbracesarenotUUmoGdi ed. *F*orexample,1DifatitlecontainstheLatinphrase{\em?DictyosteliumDiscoideum}or{\em?{D}ictyostelium{D}iscoideum},G}thendowncasingwillincorrectlyconvertthephrasetoD]lower-caseletters.>MostBNiDb32TU>ExXCZusersaresurprisedthatbracingtheinitiallet-tersedoGesnotpreventethedowncaseaction.ThecorrectcoGdingis{{\em?DictyosteliumDiscoideum}}. 9However,cthereaarealsole-gitimatecaseswhereanextralevelofbrac-ingwronglyprotectsfromdowncasing.Con-sequently*,bibcleancwillnormallynotsupplyanextralevelofbraces,butifyouhaveabib- liographyZwheretheextrabracesareroutinelymissing,youV canusethisoptiontosupplythem. If>youthinkthatyouneedthisoption,Mitisstronglyrecommendedthatyouapplybib-clean+toyourbibliography lewithandwith-out-fix-font-changes,thencomparethetwooutputC lestoensurethatextrabracesarenotbGeingsuppliedintitleswheretheyshouldnotbGehpresent.[Y*ouwillhavetodecidewhichofthe1twooutput lesisthebGetterchoice,hthenrepairUUtheincorrecttitlebracingbyhand.Sincedfontchangesintitlesareuncommon,exceptforcasesofthetypGewhichthisoptioniszdesignedtocorrect,itshoulddomoregoGodthanUUharm.qDefault:no. ލ-[no-]fix-initials\|YWith*thepGositiveform,in-sert!aspaceafterapGeriod!followingauthorini-tials.qDefault:yes.-[no-]fix-namesJ?aWithZ{thepGositiveform,[reorderauthorandeditornameliststoremovecommasatLbracelevelzero,placing rstnamesorinitialsbGeforeUUlastnames.qDefault:yes.-[no-]par-breaks[Withthenegativeform,7Eaparagraphbreak(eitheraformfeed,oralinecontaining7onlyspaces)isnotpGermittedinvqaluestrings,orbGetween eld/valuepairs.0ThismayebGeusefultoquicklytraprunawaystringsarisingfrommismatcheddelimiters.Default:yes.-[no-]prettyprint_vNormally*, bibclean func-tions{Yasaprettyprinter.)However,with{Ytheneg-ativeȣformofthisoption,%vitactsasalexicalanalyzerzinstead,>proGducingastreamoflexicaltokens.{See"Section6forfurtherdetails.De-fault:qyes.-[no-]print-patternsjWithEthepGositiveform,printthevqaluepatternsreadfrominitialization lesastheyareaddedtointernaltables.GUsethisHoptiontocheckHnewly-addedpatterns,ortoUUseewhatpatternsarebGeingused. Whenbibcleaniscompiledwithnativepattern-matching)coGde(thedefault),thesepat-ternsaretheonesthatwillbGeusedincheckingvqalueostringsforvalidsyntax,.andallofthemare%spGeci edininitialization les,Yratherthanhard-coGded)intotheprogram.F*orfurtherde-tails,UUseeSection5.qDefault:no.-[no-]read-init-filesj1kWithhfthenegativeform,suppressjloadingofsystem-,vuser-,andj le-spGeci c+initialization les. HInitializationswillcomelonlyfromthose lesexplicitlygivenby-init-file?filenameUUoptions.qDefault:yes.?IFTUGbGoat,UUV*olume14(1993),No.4)399-[no-]remove-OPT-prefixesWith/thepGositive form,removeytheOPTy$pre xfromeach eldnamenwherethecorrespGondingvqalueisnotanemptystring.Thepre xOPTmustbGeentirelyinUUuppGer-casetoberecognized. This:Joptionisforbibliographiesgeneratedwithb\thehelpoftheGNUbXEmacsBNiDb32TU>ExXedit-ing=suppGort,uwhichgeneratestemplateswithop-tional7 eldsidenti edbytheOPTpre x.UmAl-thoughthefunctionM-x?bibtex-remove-OPTnormallybGoundtothekeystrokesC-c?C-odoesthe9job,usersoftenforget,withtheresultthatBNiDb32TU>ExXdoGesnotrecognizethe eldname,and}Rignoresthevqaluestring. Comparethisoptionfwith-[no-]delete-empty-valuesde-scribGedUUabove.qDefault:no.-[no-]scribeTWiththepGositiveform,Hfacceptinput)ysyntaxconformingtotheNScribedoGcu-mentbsystem.RTheoutputwillbGeconvertedtoconformRQtoBNiDb32TU>ExXRsyntax.hSeeSection8forfurtherUUdetails.qDefault:no.-[no-]trace-file-openingWithUthepGositiveform,4Crecordintheerrorlog lethenamesofallq leswhichbibcleanattemptstoopGen._UsethisZoptiontoidentifywhereinitialization lesareUUloGcated.qDefault:no.-[no-]warnings[.Withy5thepGositiveform,-allowall-warningmessages._ThenegativeformisnotrecommendedsinceitmaymaskproblemsthatshouldUUbGerepaired.qDefault:yes.-version2Display]jtheprogramversionnumbGeronstderr.This~kwillalsoincludeanindicationofwhocompiledtheprogram,Ethehostnameonwhich1itwascompiled,thetimeofcompilation,andYthetypGeofstring-vqaluematchingcoGdese-lected, whenvthatinformationisavqailabletothecompiler.4?Prett9yprintingAprettyprinterforanylanguagemustbGeabletodealwithmorethanjustthose lesthatstrictlycon-form;tothelanguagegrammar.$eF*orprogramminglanguages,6~most vcompilersimplementlanguageex-tensionsiwthatprettyprintersiwmustrecognizeandtrytodealwithgracefully*.bibcleanrecognizestwosuchUUinputlanguages:qBNiDb32TU>ExXandNScribe.Ideally*,OnaiprettyprintershouldbGeabletopro-ducesoutputeveninthepresenceofinputerrors,Qdis-playingPitinsuchawayastomaketheloGcationoftheVerrorsmoreevident.3bibcleanprovidesdetailederror'andwarningmessagestohelppinpGointerrors.WithZthe-file-positioncommand-lineoption,\ itwill0 agthebyte,7column,and0line,pGositionsofthestartnandendofthecurrenttokeninbGothinputand outputUU les.Here isasummaryoftheactionstakenbybib-cleanUUonitsinputstream.!", cmsy10Space#CbGetweenentriesisdiscarded,ֽandre-placedUUbyasingleblankline.Space8aroundstringconcatenationopGeratorsisstandardized.Leadingandtrailingspaceinvqaluestringsisdiscarded,2andIembGeddedmultiplespacesarecollapsedUUtoasinglespace.String9lengthsaretestedagainstthelimitinstandardiuBNiDb32TU>ExX,andwarningsissuedwhenthe% limitisexceeded.'Thestandardlimithasproven:tobGetoosmallinpractice,sandmanysitesUinstallenlargedversionsofBNiDb32TU>ExX.Per-hapsXBNiDb32TU>ExXversion1.0willusemorerealisticvqalues,X'or1eliminatestringlengthlimitsalto-gether.Outer)parenthesesinentriesarestandardizedtoUUbraces.BracedvqaluestringsarestandardizedtoquotedvqalueUUstrings.Field/vqalue>pairsareoutputonseparatelines,wrappinglonglinestonotexceedauser-de nableUUstandardwidthwheneverpGossible.AUtrailingUZcommaissuppliedafterthelast eld/vqalueoassignment.wThisisconvenientifassign-mentsUUarelaterreorderedduringediting.-fix-font-changes2providesforprotectingvqaluewstringtextinsidefontchangesfromdown-casing.Brace-level\mzerouppGer-caseacronymsintitlesareUUbracedtoprotectfromdowncasing.-no-par-breaksМprovidesawaytocheckforblank(linesinstringvqalues,P\whichmaybGein-dicativeUUofuncloseddelimitererrors.Umlautqaccents,\"x,insidevqaluestringsatbrace-level;zeroareconvertedto{\"x}.$rThishasbGeenfoundtobeacommonusererror.4BNiDb32-TU>ExX2requiresCembGeddedquotestobenestedin-sideUUbraces.Letter-caseusageinentryand eldnamesisstandardized,}soforexample,mastersthesisandUUMASTERSTHESISbGecomeMastersThesis.ISBNand9ISSN8checksumsarevqalidated.BNiDb32-TU>ExXstyleK lesthatrecognize eldnamesforthemg!areavqailableintheTUGfbibliographycol-lection, andthebibliographyforthisdoGcumentusesUUthem.YWF400)TUGbGoat,UUV*olume14(1993),No.4 NamemoGdi erslikeJr,QSr,etc.arerecognized andahandledby-fix-names,iandnamesareputintoastandardorder,sothatBach,?P.D.Q.bGecomesUUP.?D.Q.Bach. V Withx-fix-initials,uniformspacingissup-plied8afterbrace-levelzeroinitialsinpGersonalnames. Withd-check-values,Cgcitationkeyand eldvqaluesarematchedagainstpatternstocatchirregularitiesUUandpGossibleerrors. DatesLofthemonth,likeL"July?14",arecon-vertedtousemonthabbreviations,jul?#"?14". Page numbGerrangesareconvertedtouseen-dashes,UUinsteadofhyphensorem-dashes. With8-check-values,qyearnumbGersarecheckedagainstpatterns, thenifnomatchisfound,theyear>vqaluesarecheckedagainstreasonablelim-its. With:-trace-file-opening, s leopGenat-temptsrarelogged.tThishelpsinthediagnosisofDproblemssuchasmissing les,yorincorrect leUUpGermissions. OnElexingorparsingerrors,bibcleanattemptsto=resynchronizeby ushingtheinputuntilit ndseRthenextlinecontaininganinitial@char-acterGprecededbynothingotherthanoptionalwhiteUUspace. Whenan@characterbGeginsaline,anewbibli-ographyT2entryisassumedtohavestarted.qfThecurrentbracebalanceisthentestedtomakesurelditiszero.$"Al)non-zerobracelevelisstronglysuggestiveofanerror,Wsobibcleanissuesaner-rorUUmessage,andzerosthebracelevel. Atmend-of- le,sthebracelevelistested.Amnon-zero]bracelevelisverylikelyanerror,andoGc-casionsUUanerrormessage.5?P9attern9matchingandinitialization lesbibclean>9canbGecompiledwithoneofthreedi erenttypGesofpatternmatching;@thechoiceismadebytheinstallerUUatcompiletime:꫍ The(originalversionusesexplicithand-coGdedtestsUUofvqalue-stringsyntax. Thesecondversionusesregular-expressionpattern-matchinghostlibraryroutinestogetherwithUPregular-expressionpatternsthatcomeen-tirelyUUfrominitialization les. The[thirdversionusesspGecialpatternsthatcomeUUentirelyfrominitialization les.꫍ThesecondandthirdversionsaretheonesofW mostinteresthere,ybGecausetheyallowtheusertodcontrolwhatvqaluesareconsideredacceptable. However,vcommand-line'ExX),option»switches,and eld/patternor eld/pattern/message|massignments.Leadingandtrailingspaces'areignored.ThisisbGestillustratedbytheshorto.exampleinT*able1.SLonglogicallinescanbGesplitintomultiplephysicallinesbybreakingatabackslash-newline*pair;Gthebackslash-newlinepairisQdiscarded.]ThisproGcessinghappenswhilecharac-terso@arebGeingread,EbeforeanyfurtherinterpretationofUUtheinputstream.Each#logicallinemustcontainacompleteop-tionR(anditsvqalue,SVifany),oracomplete eld/pat-ternUUpair,ora eld/pattern/messagetriple.CommentswarestrippGedduringtheparsingofthe eld,pattern,andmessagevqalues.'Thecom-mentI!startsymbGolisnotrecognizedinsidequotedstrings,UUsoitcanbGefreelyusedinsuchstrings.CommentsVVonlogicallinesthatwereinputasmultiple physicallinesviathebackslash-newlinerFTUGbGoat,UUV*olume14(1993),No.4)401\荠~ffǍT*ableUU1:qSamplebibcleaninitialization le.%%?Startwithourdepartmentalpatterns -init-file?/u/math/bib/.bibcleanrc%%?Makesomesmalladditionschapter?="\"D\""9%%23pages=?"\"D--D\"")%%23--27volume =?"\"D\\an\\dD\""%%11and12year=?\"\"dddd,?dddd,dddd\""\"Multiple?yearsspecified."n?%%?1989,1990,1991-no-fix-names?%%donotmodifyI%%?author/editorlists;ffconvention=mustappGearonthelastphysicalline; otherwise, theremainingphysicallineswillbGecomepartUUofthecomment.PatternstringsmustbGeenclosedinquotationmarks;Hwithinsuchstrings,OabackslashstartsanescapGe=mechanismthatiscommonlyusedinNUNIXsoftware.3TheRrecognizedescapGesequencesaregivenin#T*able2.aJBackslashfollowedbyanyothercharac-teriproGducesjustthatcharacter.RxThus, 2\"iproducesaKquotationmark,xand\\proGducesasingleback-slash.ڰZ1 ffǍT*ableUU2:qEscapGesequencesinquotedstrings.bqǍd\a;ZalarmUUbGell(octal007)\b;ZbackspaceUU(oGctal010)\f;ZformfeedUU(oGctal014)\n;ZnewlineUU(oGctal012)\r;ZcarriageUUreturn(oGctal015)\t;ZhorizontalUUtab(oGctal011)\v;ZverticalUUtab(oGctal013)\ooo;ZcharacternumbGeroctalooo(e.g.;Z\012J+islinefeed).PHUpto3oGctal;ZdigitsUUmaybGeused.$\0xhh;ZcharacterV]numbGerhexadecimalhh;Z(e.g.}h\0x0aislinefeed).xhhmay;ZbGeqineitherlettercase.%Anynum-;ZbGer9ofhexadecimaldigitsmaybe;Zused.ZfffAnWASCIGIHNUL(\0)inastringwillterminateit;this|isafeatureoftheC|programminglanguageinUUwhichbibcleanisimplemented.Field/patternb[pairscanbGeseparatedbyarbi- traryKspace,Mandoptionally*,eitheranequalssignorcolonGfunctioningasanassignmentopGerator.mSThus,theUUfollowingareequivqalent:pages="\"D--D\""pages:"\"D--D\""pages?"\"D--D\""pages?="\"D--D\""pages?:"\"D--D\""pages"\"D--D\""Eachn eldnamecanhaveanarbitrarynumbGerofpatterns̚assoGciatedwithit;=however,lthey̚mustbGespGeci edUUinseparate eld/patternassignments.AnpVemptypatternstringcausespreviously-loadednpatternsforthat eldnametobGeforgot-ten. ThisۤfeaturepGermitsaninitialization letocompletelyddiscardpatternsfromearlierinitializa-tionUU les.PatternsforvqaluestringsarerepresentedinatinyspGecial-purposelanguagethatisbothconve-nientandsuitableforbibliographyvqalue-stringsyn-taxchecking.?WhilenotaspGowerfulasthelanguageof-regular-expressionpatterns,itsparsingcanbGepGortably implementedinlessthan3%ofthecodeinawidely-usedregular-expressionparser(theGNUregexpUUpackqage).ThexpatternsarerepresentedbythespGecialcharactersUUgiveninT*able3.The1X0patterncharacterisverypGowerful,gbutgenerallyHinadvisable,~Psinceitwillmatchalmostany-thingK4likelytobGefoundinaBNiDb32TU>ExXJvqaluestring.TheCreasonforprovidingpatternmatchingonthevqaluestringsistouncoverpGossibleerrors,*Knotmaskthem.TheredisnoprovisionforspGecifyingrangesorrepGetitionsofcharacters,butthiscanusuallybedonewithseparatepatterns.IItisagoGodideatoac-company~thepatternwithacommentshowingthekindyofthingitisexpGectedtomatch.3HereisapGortionIwofaninitialization legivingafewofthepatternsUUusedtomatchnumbervqaluestrings:number?="\"D\""/?%%23number?="\"AAD\""%%PNLPS5001number?="\"AD(D)\""%%RJ34(49)number?="\"AD\""$%%XNSS288811number?="\"AD\\.D\""%%Version3.20number?="\"A-A-D-D\""%%UMIAC-TR-89-11number?="\"A-A-D\""?%%CS-TR-2189number?="\"A-A-D\\.D\""%%CS-TR-21.7F*orabibliographythatcontainsonlyArticleen-tries,thisGlistshouldprobablybGereducedtojustthe^ rstpattern,]sothatanythingotherthanadigitstringfailsthepattern-matchtest.{;Thisiseasily|F402)TUGbGoat,UUV*olume14(1993),No.4Z ffǍ .T*ableUU3:qInitialization lepatterncharacters.qǍ]d 3zoneUUormorespaces a3zexactlyUUoneletterA3zoneUUormorelettersd3zexactlyUUonedigitD3zoneUUormoredigitsr3zexactlyUUoneRomannumeralR3zoneZ6ormoreRomannumerals(i.e.3zaUURomannumbGer)w3zexactlyoneword(oneormore3zlettersUUanddigits)W3zoneormorewords,separatedby3zspace,bGeginningandendingwith3zaUUword$.3zone`spGecial'character,oneofthe3zcharacters<3 !#()*+,-./:;?[]~,3za6subsetofpunctuationcharac-3ztersCuthataretypicallyusedin3zstringUUvqalues<:3zoneUUormore`spGecial'charactersX3zone[ormore`spGecial'-separated3zwords,bbGeginningP%andendingwith3zaUUword\x3zexactlyuonex(xisanycharacter),3zpGossiblyM6withanescapesequence3zinterpretationUUgivenearlierx3zexactly3zthecharacterx(xisany-3zthingbutoneofthesepattern3zcharacters:qaAdDrRwW.: \)fffdonebykeepingbibliography-spGeci cpatternsina correspGondingZ lewithextension.ini,sincethat leisreadautomatically*.UTYoushouldbGesuretouseempty\npatternstringsinthispattern letodiscardpatternsUUfromearlierinitialization les.The~vqaluestringspassedtothepatternmatchercontainMsurroundingquotes, sothepatternsshouldalso.OHowever,youIcoulduseapatternspGeci cationlike7"\"D"tomatchaninitialdigitstringfollowedbyanythingelse;Ctheomissionofthe nalquota-tionmark\"inthepatternallowsthematchtosucceed %withoutchecking %thatthenextcharacterintheUUvqaluestringisaquotationmark.BecausethevqaluestringsareintendedtobGeproGcessedbyTU>'ExX,:Othepatternmatchingignoresbraces,'andeTU>'ExXcontrolsequences,togetherwithany+spacefollowingthosecontrolsequences.cSpacesaroundbracesarepreserved.28Thisconventionallowsthe,patternfragmentA-AD-D,JtomatchthevqaluestringTN-K\slash?27-70,~bGecausethevqalueisim-plicitly_collapsedtoTN-K27-70duringthematchingopGeration.bibclean'snormalactionwhenastringvqalue fails_tomatchanyofthecorrespGondingpatternsistoissueawarningmessagesimilartothis:Unexpectedvalue?in``year="192"''.Inmostcases,thatisr]sucienttoalerttheusertoaproblem.Insomecases,however,it[maybGedesirabletoassociateadif-ferent messagewithaparticularpattern.ThiscanbGendonebysupplyingamessagestringfollowingthepatternԡstring.FF*ormatitems%%(singlepGercent),_%e(entry{/name),%f( eldname),%k(citationkey),and%v|o(stringvqalue)areavailabletogetcurrentvaluesexpandedUUinthemessages.qHereisanexample:chapter?="\"D:D\""\ ?"Colon?foundin``%f=%v''"%%23:2T*obGeconsistentwithothermessagesoutputbybibclean,0themessagestringshouldnotendwithpunctuation.IfZyouwishtomakethemessageanerror,Fratherthanjustawarning,bGeginitwithaquery(?),likethis:chapter?="\"D:D\""\"?Colon?foundin``%f=%v''"%%23:2The[querywillnot3bGeincludedintheoutputmes-sage.EscapGedsequencesaresupportedinmessagestrings,J"justGUastheyareinpatternstrings.mY*oucanuseythistoadvqantageforfancythings,|suchastermi-nalndisplaymoGdecontrol.$IfyourewritethepreviousexampleUUaschapter?="\"D:D\""\'"?\033[7mColon?found\in?``%f=%v''\033[0m"%%23:2theerrormessagewillappGearininversevideoondisplayjscreensthatsuppGortANSIjterminalcontrolsequences. Such$opracticeisnotnormallyrecom-mended,h2sinceitmayhaveundesirablee ectsonsome|outputdevices.^Nevertheless,Tyou|may nditusefulUUforrestrictedapplications.F*orsometypGesofbibliography elds,bibcleancontains[spGecial-purposecodetosupplementorre-placeUUthepatternmatching:ISBNandDISSN eldvqaluesarehandledthiswaybGecause theirvqalidationrequiresevaluationofchecksums>thatcannotbGeexpressedbysimplepatterns;nopatternsareevenusedinthesetwocases.WhenN:bibcleaniscompiledwithpattern-matching%coGdesupport, FWchapter,number,pages,andwvolumevqaluesarecheckedwonlybypatternUUmatching.monthLvqaluesare rstcheckedLagainstthestan-dard BNiDb32TU>ExXmonthnameabbreviations,andonlyB[ifnomatchisfoundarepatternsthenused.FTUGbGoat,UUV*olume14(1993),No.4)403 yearvqaluesare rstcheckedagainstpatterns, thenhifnomatchisfound,(theyearnumbGersare%foundandconverted%tointegervqaluesfortestingUUagainstreasonablebGounds.V*aluesL-forother eldsarecheckedL-onlyagainstpatterns. v|Y*oucanprovidepatternsforany eldyouolike,jevenonesbibcleandoGesnotalreadyknowabGout.7.Newonesaresimplyaddedtoaninternalta-bleUUthatissearchedforeachstringtobGevqalidated.ThegspGecial eld,key,representsgthebiblio-graphicMcitationkey*. ItcanbGegivenpatterns,KlikeanyXother eld.|jHereisaninitialization lepatternassignmentuthatwillmatchanauthorname,acolon,anUUalphabGeticstring,andatwo-digitUUyear:key?="A:Add"%%Knuth:TB86Noticelnthatnoquotationmarksareincludedinthepattern,ybGecauseDthecitationkeysarenotquoted.Y*ouocanusesuchpatternstohelpenforceuniformnaming~conventionsforcitationkeys,whichisin-creasinglyimpGortantasyourbibliographydatabasegrows.6?Lexical9analysisTheycommand-lineoption-no-prettyprintre-questsbibcleantofunctionasalexicalanalyzerinstead0zofasaprettyprinter.5Its0zoutputisthenastreamZ~oflines,eachofwhichcontainsonetoken.F*orthebibliographyentriesshowninSection1,chereiswhattheoutputloGokslike;1cthelonglineshavebGeen+wrappedbyabackslash-newlineto tinthesenarrowUUjournalcolumns:#?line1"stdin"2$AT"@"18STRING "String"11LBRACE "{"1$ABBREV "pub-AW"6$EQUALS "="#?line2"stdin"19VALUE"\"Ad{\\-d}i{\\-s}on-Wes{\\\-l}ey\""15RBRACE "}"#?line4"stdin"13NEWLINE?"\n"13NEWLINE?"\n"2$AT"@"5$ENTRY"Book"11LBRACE "{"10KEY?"Lamport:LDP85"3$COMMA","13NEWLINE?"\n"#?line5"stdin"7$FIELD"author"6$EQUALS "="19VALUE"\"Leslie?Lamport\"" 3$COMMA","13NEWLINE?"\n"#?line6"stdin"7$FIELD"title"6$EQUALS "="#?line8"stdin"19VALUE"\"{\\LaTeX}---{A}?Docume\nt?PreparationSystem---User'sGuideand\Reference?Manual\""3$COMMA","13NEWLINE?"\n"#?line9"stdin"7$FIELD"publisher"6$EQUALS "="1$ABBREV "pub-AW"3$COMMA","13NEWLINE?"\n"#?line10"stdin"7$FIELD"year"6$EQUALS "="19VALUE"\"1985\""3$COMMA","13NEWLINE?"\n"#?line11"stdin"7$FIELD"ISBN"6$EQUALS "="19VALUE"\"0-201-15790-X\""3$COMMA","13NEWLINE?"\n"#?line12"stdin"15RBRACE "}"#?line13"stdin"13NEWLINE?"\n"EachlinebGeginswithasmallintegertokentypGenumbGerfortheconvenienceofcomputerprograms,then\atokentypGenameforhumanreaders,'followedbyUUaquotedtokenstring.LinesYbGeginningwithasharp,#,areYANSI/ISOStandardCpreproGcessorline-numberdirectives[3,Section3.8.4]torecordtheinputlinenumbGerand leUUname.ThereM2arecurrently19tokentypGesde nedinthe`doGcumentationthataccompaniesbibclean. FBe-causeExXstylescande nenew eldnames,there=islittlepGointinthelexicalanalyzerofattempt-ingFtoclassify eldnamesmoreprecisely;CthatjobisUUleftforothersoftware.Insidequotedstrings,theANSI/ISOStandardCk[3,Sectionl)3.1.3.4]backslashescapGesequencesshownXinT*able2onpage401areusedtoencoGdenon-printable/echaracters.Inthisway*,eamulti-linestringvqaluecanbGerepresentedonasingleline.-9ThisisVconvenientforstring-searchingapplications.IftheF404)TUGbGoat,UUV*olume14(1993),No.4longRoutputlinesproveRaproblemonsomesystems, the_-max-width?nnncommand-lineoptioncanbGeused?3towraplinesataspGeci edcolumnnumber?3bytheUUinsertionofabackslash-newlinepair.AsasimpleexampleofhowthistokenstreammightUUbGeprocessed,theNUNIXcommandpipelinebibclean?-no-prettyprintmylib.bib|\awk?'$2=="KEY"{print$3}'|\sed?-e's/"//g'|\sortwillextractasortedlistofallcitationkeysinthe leUUmylib.bib.Asamorecomplexexample,considerloGcatingduplicatecabbreviationsandcitationkeysinalargecollection-ofbibliography les.ThisisadauntingtasksifitmustbGedonebyvisualscanningofthe les.ItBtoGokmelessthan10minutestowriteanddebugaA35-linenawk[1]program(15linesofcomments,߬20ofcoGde)thatprocessedthetokenstreamfrombib-cleanUUandprintedwarningsabGoutsuchduplicates.TheSproGcessingstepscanberepresentedbythesimpleUUNUNIXpipGelinebibclean?-no-prettyprintbibfiles|\tr?'[A-Z]''[a-z]'|\nawk?-fbibdup.awkwhichrismostconvenientlyencapsulatedinacom-mandscriptsothatitcanbGeinvokedmoresimplyasbibdup?*.bibtoUUproGduceoutputlikethis:Duplicate?stringabbreviation["pub-aw"]:)#?line1"ll.bib")#?line141"master.bib"Duplicate?key["lamport:ldp85"]:)#?line4"ll.bib")#?line4172"master.bib"...BNiDb32TU>ExX'sjgrammarissomewhathazy*,CsoitisnotCeasytopGerformalexicalanalysiswithoutsomecontextM!sensitivity*.bibcleanthereforeproGducesthelexicalntokenstreammerelyasanalternateoutputformat.,5Inparticular,]thismeansthatanyrequestedrun-timeformattingoptionswillhavebGeenappliedtothetokensb}'eforeytheyareoutputtothelexicaltokenstream._F*orexample,saNScribebibliography lecanbGeconvertedtoaBNiDb32TU>ExXtokenstreamsothatcsoftwarethatproGcessesbibclean'soutputneednotUUbGeNScribe-aware.7?P9ortabilitybibcleaniswritteninANSI/ISO=StandardC[3]withgreatcaretakentoproGducemaximumpGorta-bility*.iItX:hasbGeensuccessfullytestedwithmorethan 30di erentcompilersonallma8jorworkstation,Uandonemainframe,bNUNIXwsystems,plusNVUAXwVMS,NPC-DOS,UUNOS/2,andAtariNTOS.TheCprogramminglanguagehasbGecomethelanguagedofchoicetoGdayformostpGersonalcomputerand:)NUNIX9softwaredevelopment,randtheincreasingavqailabilityofCrimplementationsconformingtothe1989Standard[3]makesiteasiertowritecoGdethatwillcompileandrunwithoutmoGdi cationonawidevqarietyUUofsystems.C%edoGes%nothave%Pascal'sproblemswithchar-acter.3stringsanddynamicmemoryalloGcationthatforcedDonKnuthtoimplementtheWEBstringpGoolfeatureandtousecompile-timearrayalloGcationintheTU>'ExXsoftwaredevelopment.lrC'srichopGeratorsyntax,itspGowerfulrun-timelibrary*,andgenerallyexcellentX(opGerating-systeminterfaceshavemadeitwidely ^pGopular.Morethanamillioncopiesofthe rstgeditionofTheCPr}'ogrammingLanguage(.bGook[13 ]havebGeensold,)andthesecondedition[14 ]maydoUUevenbGetter.Nevertheless,C\has]someseriousproblems.PhilippGeKahn,thefounderofBorlandInterna-tional,hascalledCawrite-onlylanguage. TwobGooks havebGeenwrittenaboutitssyntacticalpe-culiarities[9,17 ],andoneofthemhasalreadyap-pGearedUUinasecondedition.TheonlywaytoovercometheseproblemsismeticulousAcareinprogramming,UandexpGeriencewith4asmanycompilersandcomputerarchitecturesaspGossible.hSeveralbookso ervqaluableadviceonCUUpGortability[10 ,11 UW,19,23,24,26,29].C++1[8,303]isanextensionofCtosuppGortob8ject-orientedprogramming,!andhasanenthusias-ticX]following.zANSI/ISOX\standardizatione ortsarein]Wprogress,sadlywhilethelanguageisstillevolving.F*romTthepGointofviewofaC@programmer,UtheadvqantageofC++overCfisitsmuchstrictercheck-ingoftypGeconversionsandintermoGduleinterfaces.bibcleanhasbGeencarefullywrittentobecompil-ableunderC++aswellasC,andtodate,nhasbGeentested[withmorethanadozenC++andOb8jectiveCUU(anotherCsupGerset)compilers.AllRoftheextrafeaturesoftheC++languagearestrictlyavoided,>DbGecauseusingthemwouldse-riously>9limitbibclean'spGortability*. ,rNotonlyisthesyntaxoftheC++languageunderevolution,but_theC++classlibrariesareforthemostpartc}'ompletelydependentontheparticularimplemen-tation.Microsoft'sD1020-pagedoGcumentationofitsC++classlibraryis10%largerthanthatofitsCrun-timeUUlibrary*.̉FTUGbGoat,UUV*olume14(1993),No.4)405Nevertheless,Istr}'ongly"recommenduse0ofC++ compilersY;inpreferencetoCXcompilers,soastocatchbugs&5atcompiletimethatwouldotherwisenotbGefoundmuntilpGost-mortemdumptime,orwhenthecoGdeUUisportedtoanewarchitecture.8?NScribe9bibliograph9yformatThe&dNScribedoGcumentformattingsystem[25 ]greatly$in uencedL q1AsTU>'ExXandBNiDb32TU>EX,aswellastheGNUUUEmacsTU>'ExXinfosystem.WithFcare,XitispGossibletosharebibliogra-phy lesbGetweenNScribeandBNiDb32TU>ExX.Neverthe-less,therearesomedi erences,sohereisasum-maryoffeaturesoftheNScribebibliography lefor-mat.W*erecordthembGecausetheyarediculttodetermine`fromthepublishedmanual,andbGecausereadersEmaysometimesacquire lesinthisformatwithoutUUhavingpriorexpGosuretoNScribe.ޜ81.Letterncaseisnotsigni cantin eldnamesandentrywnames,L>butcaseispreservedinvqaluestrings. 882.InR eld/vqaluepairs,S"the eldandvaluemaybGeseparated5byoneofthreecharacters:a=,< /,or5 (space).fSpace5mayoptionallysurroundtheseseparators.83.V*aluepdelimitersareanyofthesesevenpairs:{?},UU[],(),<>,'',"",and``.84.V*alueDAdelimitersmaynotbGenested,?eventhough;>withthe rstfourdelimiterpairs,nestedbalanceddelimiterswouldbGeunambigu-ous.85.DelimitersA+canbGeomittedaroundvqaluesthatcontain^onlyletters,+digits,sharp^(#),ampGer-sandUU(&),pGeriodUU(.),andpGercent(%).86.Outsideofdelimitedvqalues,Galiteralat-sign(@)isUUrepresentedbydoubledat-signs(@@).87.BibliographyentriesbGeginwith@name,^asforBNiDb32TU>ExX,#butanyofthesevenNScribevqaluede-limiterQpairsmaybGeusedtosurroundthevqaluesin eld/vqaluepairs.?Asin(4),ܽnesteddelimitersareUUforbidden.88.Arbitrary}spacemayseparateentrynamesfromtheUUfollowingdelimiters.89.@CommenthMisaspGecialcommandwhosedelim-itedvqalueisdiscarded.MAsin(4),enesteddelim-itersUUareforbidden.810.TheUUspGecialform8@Begin{comment}...@End{comment}pGermitsNencapsulatingarbitrarytextcontain-inganycharactersordelimiters,:Jotherthan@Endfcommentg. xAnycofthesevendelimiter pairsmaybGeusedaroundthewordcom-mentfollowingthe@Beginor@End;thede-limitersinthetwocasesneednotbGethesame,and"consequently*,@Beginfcommentg/@EndfcommentgUUpairsmaynotbGenested. ה811.The(key eldisrequiredineachbibliographyentry*.812.AbackslashedquoteinastringwillbGeas-sumed-tobGeaTU>'ExXaccent,andbracedappro-priately*.h While8 suchaccentsdonotconformtoNScribesyntax,rNScribe-formatbibliographieshavebGeenfoundthatappeartobeintendedforTU>'ExXUUproGcessing.kʍBecause]MofthisloGosesyntax,Kbibclean'snor-maleerrordetectionheuristicsarelesse ective,j)andconsequently*,NScribeImoGdeinputisnotthedefault;itUUmustbGeexplicitlyrequested.9?Recommendations9forBNiDb32TU>ExXdesignThedoGcumentationavqailableforBNiDb32TU>ExXnleavessev-eralpGointsabouttheinputsyntaxunclear,݁andIhad;toobtainanswerstothefollowingquestionsbyexpGeriment:Cananat-signoGccurinsidea@Commentf...g?No. הCanstringabbreviationnamesbGeusedontheright-handUUsideofstringde nitions?qY;es.CanUUtheargumentof@StringbGeempty?qNo.CanacitationkeybGeomittedinanentry?TNo.CanthelistofassignmentsinanentrybGeempty?qY;es.CanBa@Commentf...goGccurbetweenBarbitrarytokens?qNo.Arenewlinespreservedintheargumentofa@Preamblef...g?UWTheanswerisrelevqantiftheuserincludesTU>'ExXcommentsinthepreamblematerial.qNo.kʍIviewtheexpGerimentalanswerstothesequestionsaspurehappGenstance,HandcouldreasonablyargueforUUtheoppGositeanswerstotheonesobtained.GrammarTheimostimpGortantrecommendationthatIcanmakeIforthenextversionofBNiDb32TU>ExXIisthatitmusthave_arigorousgrammar,includingawell-de nedcommentUUsyntax.TheRgrammarcanalmostbGeofthesimpleclassLL(0)[2],i7requiringnoloGokqaheadduringparsing,andZone-characterloGokqaheadduringlexicalanalysis.However,#theu-presenceofthestringconcatenationopGeratorcomplicatesthingssucientlytorequireatUUleastanLL(1)grammar.ZF406)TUGbGoat,UUV*olume14(1993),No.4Suchgrammarsarestraightforwardtohandle witheeitherhand-coGdedparsers,horwithparsersau-tomatically;=generatedfromgrammar lesbycom-piler$tdevelopmenttoGolsliketheNUNIX$hlex[20 ]andyaccL[12 ,21 N,22,28]programs,"ortheF*reeSoftwareF*oundationUUequivqalents,flexandbison.yaccnandbisonimplementLALR(1)parsers;theacronymstandsfor\LoGok-Aheadatmost1to-kenzwithaLeft-to-Rightderivqation".,)Thesearesim-pler=thantheLR( b> cmmi10kP)grammarsintroGducedbynoneothervthantheauthorofTU>'ExXinthefundamentalpa-pGeronthetheoryofparsing[15 ].CANevertheless,theyareGsucientforabroadclassoflanguagegrammars,includingmostma8jorprogramminglanguages,andimpGortantly*,8they`qproducecompact,8ecient,fast,andreliableparsers.mLL(1)grammarsareaspGecialcaserofLALR(1)grammars,9andwewilllaterde nea@"BNiDb32TU>ExX@grammarinLALR(1)forminSection11.Commen9t9syntaxTheN4commentsyntaxshouldpreferablybGeidenticalto thatofTU>'ExX,sothatacommentrunsfrompGer-cent toend-of-line,andthenadditionallyOXgobblesallle}'adinghorizontalspaceonthenextline,upto,butnotS2including,itsend-of-line.This%BpGermitsbreak-ingdnoflonglineswithouthavingtodestroyinden-tationthatissonecessaryforreadability*.N1Percent-initiateddcommentsarealreadysuppGortedinBNiDb32TU>ExXstyle les,(thoughsuchcommentsendafterthe rstfollowingUUnewline.F*or?NScribecompatibility,*BNiDb32TU>ExXshouldalsosuppGorta@Commentf...gentrytypGe.PThiswillre-quirePadditionstoallY4BNiDb32TU>ExXPjstyle les,sincetheentry=typGesareknownthere,andnotintheBNiDb32-TU>ExX=coGde=itself.iBNiDb32TU>EX0.99c=alreadyknowsabGout@Commentf...g,buttheWEBcoGdesection\Processa0commentcommand"willhave0tobGeextendedtodealUUwiththegrammarchanges.ItbisimpGortantthatBNiDb32TU>ExXbnotdiscard@Com-mentf...gCentries,zbGecauseitwouldthennotbGepos-sible@towriteaBNiDb32TU>ExX@style lethatconvertedabibliographya letoanotherformatwithoutlossofinformation.One suchstylealreadyexiststocon-vertUUBNiDb32TU>ExX lestoNUNIXbib/referformat.Characters9innamesTheBcharactersthatcanappGearinkey*,~Pentry,~Pand eldSnamesmust+bGede nedbyenumeration,(ratherthan<9byexclusion,asiscurrentlydone[18 ,Sec-tionB.1.3].M|ThereasonisthatcharactersetsvqarybGetweencomputers,andthenew,andverymuchlarger,yISO10646McharactersetmaybGewidelyavqailableinthisdecade. YThesevariationsmakethehsetofadmissiblenamecharactersvqarybGetweensystems,vcompromisingExX`nbGeginstocollectatoken,itshouldrecordthecurrentlinenumbGer.eWhenanunclosedstringlatercausesinternalbu erover ow,itcouldrepGortjsomethinglikeString?bufferoverflowoninput?lines24--82&nthatwouldbGetterhelplocatethexo endingstringbygivingitsstartingandendinglineUUnumbGers.T*osimplifyerrorrecoveryinsuchcases,BNiDb32-TU>ExXHcouldH!additionallyrequirethatthe@characterthatzustartsanewentrymustbGethe rstnon-spacecharacterUUonaline.File9inclusionBNiDb32TU>ExX8sorely8>needsa leinclusionfacility*.WithBNiDb32TU>ExXΪ0.99c,-xthis featureisavqailableinacrudefashion߁bylistingseveral lesinthe\bibliographycommand.YHowever,thisyisnotsucientlygeneral,and9requiresunnecessaryknowledgeonthepartoftheUUuserofthebibliography*.TheauthorofaBNiDb32TU>ExX leshouldbGefreetorestructurePitintosub leswithoutrequiringmoGdi -cationstoalldoGcumentsthatuseit.FileinclusionisimpGortanttoallowsharingofcommonmaterial,suchUUas@Stringf...gde nitions.NScribeUUusestheform@Include{filename}QFTUGbGoat,UUV*olume14(1993),No.4)407and?FBNiDb32TU>ExX?AshouldtoGo.jmItmustbepossibletonest leinclusionstoareasonabledepth,%atleast velevels.10A9lexicalgrammarforBNiDb32TU>ExXT*otesttherecommendationsofSection9,Iwroteand|testedalexgrammarforBNiDb32TU>ExX.IttoGokjust22rulestoidentifythe19basictokentypGes.ThecompleteMlex lewasabGout510lineslong,JwithabGout]340linesofC4codemostlyconcernedwiththeinputeQandoutputofstrings,Rand120linesoffunctionand\vqariabledeclarations.WtAfterlexproGcessing,'thecompleteECprogramwasabGout1130lineslong;withflex,itis1700lineslong.Thisprogramisnamedbiblex,zdand?itsoutputiscompatiblewiththatofbibcleanIwiththe-no-prettyprintoption.mHow-ever,UUito ersnoneofbibclean'sotherservices.TheAlexgrammarispresentedinthissectioninXBthestyleofliterateprogramming,XwithgrammarrulesinterspGersedwithdescriptivetext.TheindexatRtheendofthisdoGcumentprovidesanessentialfeature ofaliterateprogram. !'T*omyknowledge,noWEBٺfacilityyetexistsforlexandyacc,sothisliterateUUprogrammustbGehandcrafted.File9structureAUUlex lehasthisgeneralstructure:definitions%%rules%%user?functionsCdeclarationsandde nitionscanbGeincludedinN7thedeclarationspartiftheyareenclosedin%{andq %}.'Suchtextiscopiedverbatimtotheout-putURcoGde le,UStogetherwithadditionallex-suppliedheaderUUcoGde.Running_lexonthis leproGducesaC_ lethatcanxbGecompiledandlinkedwithamainprogramfromgthelexlibrarytoproGduceaworkinglexicalanalyzer.Alternatively*,theusercanwriteacus-tomizedomainprogramwhichislinkedwiththelex-generatedUUcoGdetomakeafunctionallexer.Inthefollowingsubsections,s/wedescribGethecontentsofthede nitionsandrulesparts,)butomittheuserfunctions,$sincetheyarenotrelevqanttoun-derstandingUUthegrammar.Macro9de nitionsThe*lexgrammarbGeginswithmacrode nitions.lexmacrosaresinglelettersfollowedbyaregularexpressionUUthatde nesthem.Insregularexpressions,:squarebracketssdelimit setsoofcharacters,5hyphenoisusedforcharacterranges{@insidesets,ĺasteriskmeanszeroormoreoftheSprecedingpattern,#andplusmeansoneormore.A/pGeriodWrepresentsanycharacterotherthananew-line.lexZhmacronamesarebracedtorequestexpan-sionUUwhentheyareusedingrammarrules.The rstmacro,JN,representsthesetofchar-acters{pGermittedinBNiDb32TU>ExXhnamesofabbreviations,citationqkeys,xentries,andq elds.:IfthissetisevermoGdi ed,thisqistheonlyplacewherethatjobhastoUUbGedone.N[A-Za-z][---A-Za-z0-9:.+/']*It\isnotreasonabletomakethissetdi erfor these'Ofourdi erentuses,0bGecausethedi erencesareinsucient[todistinguishbGetweenthemlexically*.W*e'll-Rseelaterthatwehavetoexaminesurround-ingUUcontexttotellthemapart.Macro\yO\5representsthesetofopGendelimitersthatstartaBNiDb32TU>ExXentryargument.ZW*ecouldex-tendSthisgrammarforNScribebyaddingadditionalcharactersUUtotheset.O[({]MacroQWQWrepresentsasinglehorizontalspace character.W[?\f\r\t\013]Noticethatweincludeformfeed,\f,andverticaltab,\v,inzthesetofhorizontalspacecharacters,evenlnthoughtheyproGduceverticalmotiononanout-put\device.Thereasonisthatwewanttotreatthemjustn4likeblanks,nanddistinguishthemfromnewlines,whicharehandledseparately*.ZlexdoGesnotrecog-nizetheescapGesequence\v,sowehavetoreencoGdeitUUinoGctalas\013.CarriageHreturn,\r,isnotnormallyusedinNUNIXΰtext les,.butiscommoninsomeotherop-eratingsystems.sOntheAppleMacintosh,carriagereturnERisusedinsteadofnewlineasanend-of-linemarker.F*ortunately,lathisgwillbGetransparenttous,bGecauseYtheC languagerequires[3,YSection2.2.2]thatvtheimplementationmaphostlineterminatorsto)newlineoninput,^andnewlinebacktohostlineterminatorsonoutput,(sowewillneverseecarriagereturnsUUonthatsystem.TheJIlastmacro,LS,representsoptionalhorizon-talUUspace.S{W}*F ormat9ofgrammarrulesTheremainderofthegrammarconsistsofpairsofregular expressionpatternsandC RcoGdetoexecuteYF408)TUGbGoat,UUV*olume14(1993),No.4whengthepatternismatched.:lexusesa\maximal munch"strategyinmatchingthelongestpGossiblesequence|ptohandlethecasewheretwo|pruleshavecommonUUleadingpatterns.Inqthegrammar le,xthepairsareeachwrittenonWasingleline,X:butwewraplineshereto tinthenarrowjournalcolumns,withthebackslash-newlineconventionUUusedearlier.@9tok9enThe=S rstgrammarrulesaysthatan@charactershouldbGerecognizedasthetokennamedTOKEN_AT.[@]RETURN?(out_token(TOKEN_AT));Onasuccessfulmatch,&ytheoutputfunctionop- tionallyemitsthetoken,]thenreturnsitsargumentaslafunctionvqaluewhichthelexerinturnreturnstoUUtheparser.ThegCgbreturnstatementishiddeninsidetheRETURNmacro,bGecauseforyaccandbison,weneedtoxbiasbibclean'ssmallintegertokenvqaluestomoveUUthembGeyondtherangeofcharacterordinals.Comment,9Include,Preamble,andStringtok9ensThe>6nextfourrulesignorelettercaseinmatchingthewordsComment,$Include,Preamble,orString.Iftheyfollowan@character,/theyareidenti edasspGecialRtokens; otherwise,theyareregardedasstringabbreviationUUnames.[Cc][Oo][Mm][Mm][Ee][Nn][Tt]?\RETURN?((last_token==TOKEN_AT)?D?out_token(TOKEN_COMMENT)?:D?out_token(TOKEN_ABBREV));[Ii][Nn][Cc][Ll][Uu][Dd][Ee]/{S}{O}?\RETURN?((last_token==TOKEN_AT)?)out_token(TOKEN_INCLUDE)?:)out_token(TOKEN_ABBREV));[Pp][Rr][Ee][Aa][Mm][Bb][Ll][Ee]/{S}{O}?\RETURN?((last_token==TOKEN_AT)?)out_token(TOKEN_PREAMBLE)?:)out_token(TOKEN_ABBREV));[Ss][Tt][Rr][Ii][Nn][Gg]/{S}{O}?\RETURN?((last_token==TOKEN_AT)?)out_token(TOKEN_STRING)?:)out_token(TOKEN_ABBREV));Although{lexsuppGortsexaminationoftrail-ingcontextinordertoidentifytokensmorepre-cisely*,/the7presenceofarbitrarywhitespaceandin-lineI commentsinthisgrammarmakesitimpGossibleto#usethisfeature.1TheoutputroutinesremembGerthe3lastnon-space,*non-commenttokenseeninor- derztomakeuseofleadingcontexttoassistintokenidenti cation.Abbreviation,9en9try , eld,andkeytokensSeveral?tokentypGesarerecognizedbyamatchwiththemnamemacro,N.Sincethesamesetofcharac-tersncanoGccurinabbreviations,N4entrynames, eldnames,!-and#keynames,wehavetousetherecordofleading:contexttodistinguishbGetweenthevqariouspGossibilities.UU{N}?{if?(last_object==TOKEN_STRING),RETURN(out_token(TOKEN_ABBREV));switch?(last_token){case?TOKEN_COMMA:,RETURN(out_token(TOKEN_FIELD));case?TOKEN_LBRACE:,RETURN(out_token(TOKEN_KEY));case?TOKEN_AT:,RETURN(out_token(TOKEN_ENTRY));default:,RETURN(out_token(TOKEN_ABBREV));}}Instheeventsoferrorsintheinputstream,thisidenti cationQoftokentypGesmaybGeunreliable;RsucherrorswillbGedetectedlaterintheparsingprogram.Digit9stringA#"digitQnstringis#Wanundelimitedvqaluestring.Theoutput3functionwillsupplythemissingquotationmarkdelimiters,sothatallstringstakeastandardform.[0-9]+RETURN?(out_protected_string(\TOKEN_VALUE));UUIn-line9commen9ttokenApGercentinitiatesanin-lineVc}'ommentthatcon-tinues/totheendoflineandthenoverallleadinghorizontalUUspaceonthenextline.[%].*[\n]{S}?\RETURN?(out_token(TOKEN_INLINE));Becauseothispatternmarksthestartofanewtoken,theWHprevioustokenhasalreadybGeentermi-nated.:Thus,oankline-linecommentc}'annot^splitatoken.rThe9sameistrueforTU>'ExXmacros,qthoughnotUUforordinaryTU>'ExXtext.String9concatenationtok9enA1sharpJsignistheBNiDb32TU>ExXstring:c}'oncatenationop-er}'ator.0GFTUGbGoat,UUV*olume14(1993),No.4)409[#]RETURN?(out_token(TOKEN_SHARP));Delimited9stringtok9enAUUquotationmarkinitiatesadelimite}'dstring.["]RETURN?(out_string());TheocompletestringmustbGecollectedbytheC functionEZout_string()bGecauseregularexpressionscannotUUcountbalanceddelimiters.BNiDb32TU>ExX's;quotedstringsyntaxisalittleun-usual,inthatanembGeddedquoteisnotrepresentedby+doublequotes,4$asinF*ortran,orbyanescapGese-quence, asinC,butratherbyputtingthequotecharacterUUinbraces.Brace9tok9ensLeftandrightbr}'aces^arerecognizedassingletokens.[{]RETURN?(out_lbrace());[}]RETURN?(out_rbrace());TheZfoutputfunctionskeeptrackofthecurrent braceleveltodistinguishbGetweenouterbracesde-limitingaBNiDb32TU>ExXentry*,Iandinnerbracesdelimit-ingqastringvqalue,andreturnTOKEN_LBRACE,TO-KEN_LITERAL,TOKEN_RBRACE,orTOKEN_STRING,de-pGendingUUonprecedingcontext.TOKEN_LITERALP isPNusedfortheargumentofaCommentiandIncludeentries,mandcontainsthede-limitingUUbraces.P9arenthesis9tokensInordertosimplifytheparsergrammar,weremapouterUp}'arentheses( delimitingargumentsofBNiDb32TU>ExXentries~tobr}'aces.RHowever,9if~theparenthesesarenot precededbyavqalidentryname,9theyareout-putjinsteadassingle-charactertokensoftypGeTO-KEN_LITERAL.KTheycannotlegallyoGccurinthiscon-text,”butthaterrorwillbGedetectedduringthepars-ingstage.LIDuringlexicalanalysis, wedonotwanttoUUhaveanyerrorconditions.[(]RETURN?(out_lparen());[)]RETURN?(out_rparen());T*osuppGortNScribe,!wewouldneedtoaddpat- ternsUUforotherdelimitershere.Assignmen9t9andseparatortokensThe[lassignmentop}'eratornandassignmentseparatorareUUreturnedassingletokens.[=]RETURN?(out_token(TOKEN_EQUALS));[,]RETURN?(out_token(TOKEN_COMMA));Newline9tok9enAynewlineisreturnedasaseparatetokenbGecause weRwanttobGeabletopreservelinebGoundariessothat ltertoGolsthatmakeminimalperturbationsonUUtheinputstreamcanbGeconstructed.[\n]RETURN?(out_token(TOKEN_NEWLINE));Horizon9tal9spacetokenConsecutiveEhorizontalspacecharactersarere-turnedasasinglespacetoken,PforthesamereasonthatgnewlinesarerecognizedasdistincttokensbytheUUprecedingrule.{W}+RETURN?(out_token(TOKEN_SPACE));Unclassi able9tok9ensFinally*,wehaveacatch-allrule:anycharacternotrecognized2byoneoftheprecedingrulesisreturnedasaliteralsingle-charactertoken,randwillcausean5Perrorduringtheparsing.gTheregular-expressioncharacter>pGeriodmatchesanythingbutanewline,andUUwealreadyhavearulefornewline..RETURN?(out_token(TOKEN_LITERAL));Lexical9grammarsummaryW*e&nowhaveacompletelexicalgrammarsuitableforlexthatcancompletetokenizeanarbitraryin-putstreamcontaininganycharactervqalueswhat-ever.TheJassoGciatedC=codefunctionsnormalizeen-triesbychangingouterparenthesestobraces,@bracestringodelimiterstoquotes,;andundelimiteddigitstringsUUtoquotedstrings.AllstringtokensoftypGeTOKEN_VALUEoutputbythelexerwillcontainsurroundingquotes,andany{nestedquoteswillbGebraced,withpropercaretaken:tohandle\"accentcontrolsequencesprop-erly*.AlluRspGecialcharactersinsidethequotedstringswill>bGerepresentedbytheescapGesequencesgiveninT*able2onpage401.eThus,%evenwithabinaryinputnQstream,theoutputofthelexerwillcontainonlyUUprintablecharacters.ItzmustbGeobservedthatlexisnotcapableofhandling7Wall2568-bitcharacters.Inparticular,oittreatstanASCIGI&NUL(\0)tinastringasanend-of- le^condition.Olderversionsoflexarenot8-bitExXT*oK\completethejob,IKwroteayaccgrammarfor BNiDb32TU>ExX.F?Thiswasconsiderablymoreworkthanthelex**grammar,_`mostlyduetomyrelativeinexpGeri-encewithwritingLALR(1)grammars,andittoGokseveraldaystounderstandtheproGcesswellenoughto2eliminatethegrammaticalambiguitiesthatini-tiallyUUplaguedme.Thep nalcompleteyaccprogramisabGout270lines]long,J_andproGducesaparserof760(yacc)to1000I(bison)lines,excludingthelexer.CThegram-marYcontainsjust35rules.TT*enoftheserulescouldbGe#eliminatedifwearrangedforthelexertodis-card3spaceandin-linecomments,*butforapretty-printer/andotherBNiDb32TU>ExXtoGols,%theymustbGepre-served.Thisparsingprogramiscalledbibparse;itOcanbGeusedwiththeoutputofeitherbibclean-no-prettyprint,UUorbiblex.The1completeBNiDb32TU>ExX1grammarisgivenbGelow,expressedߠasyaccrules,3againinliterateprogram-mingistyle.#EItmustbGeaugmentedbyabGout180linesofUUCcoGdetoprovideaworkingparser.File9structureAUUyacc lehasthisgeneralstructure:declarations%%rules%%user?functionsCdeclarationsandde nitionscanbGeincludedinCthedeclarationspartiftheyareenclosedin%{and%}.R4SuchtextiscopiedverbatimtotheoutputcoGde le,B[togetherwithadditionalyacc-suppliedheadercoGde.RunningHyacconthis leproGducesaC% lethatcanbGecompiledandlinkedwiththelexicalanalyzercoGdeUUtoproduceaworkingparser.Inthefollowingsubsections,s/wedescribGethecontentsRaofthedeclarationsandrulesparts,ѣbutomit,othedeclarationC,ecoGdeandtheuserfunctions,sinceTMtheyarenotrelevqanttounderstandingthegrammar.F ormat9ofgrammarrulesThesgrammarruleswillbGepresentedintop-downorder,frommostgeneral,tomostparticular,sincethis>seemstobGethebestway>tounderstandtheover-allstructureofthegrammar,`andtoensurethatitdescribGesicurrentBNiDb32TU>ExXiusage,o'plusoursuggestedextensionsUUandclari cations.TheZcoloninagrammarruleshouldbGeread\is"orյ\proGduces",becausetheruleisalsoknownasapr}'oduction. .MAverticalbarseparatesalternatives, andޕcanbGeread\or". Aqsemicolonterminatestherule.Lower-caseclettersareusedfornon-terminals,whicharenamesofrulesintheparsergrammar.UppGer-case--lettersareusedforterminals,55whicharenamesUUoftokensrecognizedbythelexer.TheVuspacingshownisarbitrary*,ֽbutconven-tional| foryaccgrammars:4eachrulestartsanewline,~*withH_theright-handsideindentedfromthemar-gin,UUandthesemicolonoGccupiesaseparateline.T ok9en9declarationsThe!%tokendeclarationsmerelyprovidesymbGolicnames,ofortheintegertokentypGesreturnedbythelexer.Thevqaluesarearbitrary*,exceptthattheymustFexceed257,|andmustagreewiththede nitionsin'thelexercoGde.8W*esimplyincrementthetokentypGes;0outputfrombibcleanby1000,@kmatchingtheo setUUaddedintheRETURNmacrointhelexer.%token?TOKEN_ABBREV?1001%token?TOKEN_AT/?1002%token?TOKEN_COMMA1003%token?TOKEN_COMMENT1004%token?TOKEN_ENTRY1005%token?TOKEN_EQUALS?1006%token?TOKEN_FIELD1007%token?TOKEN_INCLUDE1008%token?TOKEN_INLINE?1009%token?TOKEN_KEY)1010%token?TOKEN_LBRACE?1011%token?TOKEN_LITERAL1012%token?TOKEN_NEWLINE1013%token?TOKEN_PREAMBLE1014%token?TOKEN_RBRACE?1015%token?TOKEN_SHARP1016%token?TOKEN_SPACE1017%token?TOKEN_STRING?1018%token?TOKEN_VALUE1019Precedence9declarationsThe%nonassocdeclarationmakestheassignmentopGeratorjnon-associative,Oosoinputoftheforma?=b?=cUUisillegal.%nonassoc?TOKEN_EQUALSThe rst%leftdeclarationmakesspace,Cin-line comment,andnewlinetokensleftassoGciative,andofequalUUprecedence.%left?TOKEN_SPACETOKEN_INLINE\TOKEN_NEWLINEXߠFTUGbGoat,UUV*olume14(1993),No.4)411TheS$second%leftdeclarationmakestheBNiDb32- TU>ExXstring,concatenationcharacter,"#,left,assoGcia-tive,andNofhigherprecedencethanspace,in-linecomment,UUandnewline.%left?TOKEN_SHARPTheseprecedencesettingsarecrucialforresolv- ingcon ictsinthisgrammarwhichariseinassign-mentsSwhentheparserhasseenanassignmentop-eratorUandavqalue. WithouttheopGeratorprece-dences,#itcannotdecidewhethertocompletetheassignment,cSor`toreadaheadloGokingforaconcate-nationUUopGerator.BNiDb32TU>ExX9 leThe=QbGeginningofthegrammarrulesisindicatedbyaUUpairofpGercentcharacters.%%Theo rstrulede neswhatwearegoingto parse,namely*,azBNiDb32TU>ExXf le.h5Theleft-handsideofthe rstruleisknownasthegrammar'sstartȐsym-b}'ol.bibtex_file:)opt_space|?opt_spaceobject_listopt_space;ThisarulesaysthataBNiDb32TU>ExX2 lecontainseitheroptionalspace,oroptionalspacefollowedbyalistofob8jectsfollowedbyoptionalspace.AThisde nitionpGermitsa letobeempty*,4orcontainonlyspacetokens,UUorhaveleadingandtrailingspace.Object9listsAVlistofobje}'cts) isVeitherasingleob8ject,Moralistofsuchob8jects,separatedbyoptionalspacefromanotherUUob8ject.object_list:)object|?object_listopt_spaceobject;F*orLL(1)parsers,"usuallyimplementedbyhand-coGded recursivedescentprograms,othiskindof]rleft-recursiverulemustbGerewrittenbystandardmethoGdsM[2,&pp.47{48,176{178]toavoidManin niteloGopintheparser.6XInthisrule,ưwewouldinsteadde- neewalistasanob8ject,iseparatedbyoptionalspacefromcanotherlist.However,forcLALR(1)parsers,left-recursiveWde nitionsarepreferable,bGecausetheyavoidUUparserstackover owwithlonglists.ObjectsAnobje}'ctsisoneoftheBNiDb32TU>ExX3@namef...gcon- structs.NoticeVqthatweallowoptionalspacebGetweentheUU@andthename.object:TOKEN_AT?opt_spaceat_object;InBthisgrammar,FCwewillconsistentlyallowop-tional$spacebGetween$any;pairofBNiDb32TU>ExX$Gtokens;spaceFisdescribGedmorepreciselybelow.Thiscon-ventioniseasytoremembGer,andeasytoimplementinUUthegrammarrules.WhileitwouldbGepossibletoincludethe@aspart3ofthename,jmaking@nameasinglelexicalto-ken,NbGothPBNiDb32TU>ExXandNScribepermitinterveningspace,\soTwecannotcollapsethetwointoasingletoken.En9try9typQesanderrorrecoveryHere7arethepGossibilitiesforthenamefollowingan@,UUwhichwecallanat_object.at_object:comment|?entry|?include|?preamble|?string|?errorTOKEN_RBRACE;Comment,YInclude,Preamble,andLZStringmustbGeSIhandledseparatelyfromothertypesofentries,likeArticleandBook,YbGecausetheirbracedargu-mentsUUhaveadi erentsyntax.The7rulewitherrorisaspGecialonesupportedby:2yaccandbison. ^Itsaysthatifanat_objectcannotKbGerecognizedatthecurrentstateoftheparse,then5theinputshouldbGediscardeduntilarightbraceisfound.4AnerrormessagewillbGeissuedwhenthishappGens, butrecoverywillbeattemptedfollowingthatrightbrace.N/Withoutthiserrorhan-dling,$any;inputerrorwillimmediatelyterminatetheUUparser,hardlyauser-friendlythingtodo.This]istheonlyplacewherewewillattempter-rorlrepair,$althoughwecouldcertainlydosoinotherrules,suchasintheassignmentrulebGelow.inThegoal6hereistopresentarigorouscompletegram-mar,OcwithoutMadditionalembGellishmentsMthatwouldcomplicateUUunderstanding.Commen9t9entryAABNiDb32TU>ExX@Commentf...giisspGecialinthattheonlyrequirement^ontheargumentisthatdelimitersbGebalanced.KThelexerreturnsthedelimitedargumentmɠF412)TUGbGoat,UUV*olume14(1993),No.4as@asingleliteralstring,includingthedelimiters, andUUstandardizesthedelimiterstobraces.comment:)TOKEN_COMMENT?opt_space>TOKEN_LITERAL;Bibliograph9y9entryA/BNiDb32TU>ExXbiblio}'graphypentry/isbracedtextcontain-ingacitationkey*,1acomma,andalistofassign-ments. (DTherulesprovideforanoptionalassign-mentlist,MWandforanoptionaltrailingcomma.T*oshortentherules,/weintroGduceasubsidiaryrule,entry_head,UUtorepresenttheircommonpre x.entry: entry_headIassignment_listITOKEN_RBRACE|?entry_headIassignment_listITOKEN_COMMA?opt_spaceITOKEN_RBRACE|?entry_headTOKEN_RBRACE;entry_head:)TOKEN_ENTRY?opt_spaceITOKEN_LBRACE?opt_spaceIkey_name?opt_spaceITOKEN_COMMA?opt_space;ThereMisnoopt_spaceitemfollowingassign-ment_listbbGecauseitisincludedinthede nitionofuthelatter.X'ThisinfelicityseemstobGenecessarytoobtainagrammarthatconformstotheLALR(1)requirementsUUofyaccandbison.Key9nameBecause^ofintervening^newlinesandin-linecom-ments,[thelexicalanalyzercannotalwayscorrectlyrecognizeacitation$key fromtrailingcontext.lItmight5insteaderroneouslyidentifythetokenasanabbreviation.8#W*egthereforeneedtoaccountforbGothpGossibilities:key_name:)TOKEN_KEY|?TOKEN_ABBREV;Include9en9tryTheIncludeentryisfollowedbya lenameen-closedUUinbalancedbraces.include:TOKEN_INCLUDE?opt_space 1TOKEN_LITERAL;BecauseQ lenamesareopGerating-systemdepen-dent,]the_onlyrestrictionsthatareplacedonthe lenameExXzshouldzdiscardthedelimitingbracesandsurroundingspaceintheTOKEN_LITERALtoiso-late7the lename.MItshouldsearchforthis leinitsstandard0inputpath,8;sothatthe lenameneednotcontainanabsolutedirectorypath.ThisfeatureisnotsuppGortedinBNiDb32TU>ExX0.99c, =butbibcleanandthe lexerandparserrecognizeitinanticipationofitsUUeventualincorpGoration.Preamble9en9tryThe'PreambleentryargumentisabracedBNiDb32TU>ExXstringvqalue./BNiDb32TU>ExXoutputstheargumentverba-tim,e'ExXUUtoproGcess.preamble:TOKEN_PREAMBLE?opt_space1TOKEN_LBRACE?opt_space1value?opt_space1TOKEN_RBRACE;String9en9tryTheTrStringentryargumentisabracedsingleas-signment.string:TOKEN_STRING?opt_space1TOKEN_LBRACE?opt_space1assignment?opt_space1TOKEN_RBRACE;V alue9stringABNiDb32TU>ExXvalueFisastring,whichmaybGeasimplevqalue,;orRalistofstringsseparatedbythestringconcatenationUUopGerator.value: simple_value|?valueopt_space1TOKEN_SHARP?opt_space1simple_value;ʠFTUGbGoat,UUV*olume14(1993),No.4)413Simple9v\raluesAXsimpleIxvalueisleitheradelimitedstring,returned by_thelexerasaTOKEN_VALUE,orastringabbrevi-ation,UUreturnedasaTOKEN_ABBREV.simple_value:)TOKEN_VALUE|?TOKEN_ABBREV;The2lexercandistinguishbGetween2thesetwo2be-causeJofthestringdelimiters.n8ItisuptotheparsersuppGort4ncodetoverifythatanabbreviationisactu-allyUUde nedbGeforeitisused.Assignmen9t9listThe{bGodyofmostBNiDb32TU>ExXVentriesconsistsofalistofEoneormoreassignments,؁separatedbycommas.Noticenthatthisde nitiondoGesnotprovideforanoptionalPtrailingcommaafterthelastassignment.W*eUUhandledthatabGoveUUintherulesforentry.assignment_list:)assignment|?assignment_list>TOKEN_COMMA?opt_space>assignment;Assignmen9tAnzassignmentRhasaleft-handsideseparatedfromaUUvqaluebytheassignmentopGerator,=.assignment:)assignment_lhs?opt_space>TOKEN_EQUALS?opt_spacevalue>opt_space;T*railing optionalspaceisincludedhere,andomittedibGeforethecommainassignment_list,inorderjtoallowtheLALR(1)parsertosuccessfullydistinguish bGetweenspacebGetweenavqalueandacomma,andspacebGetweenavqalueandastringcon-catenationUUopGerator.Myҧinitialversionofthisgrammardidnothavethisoptionalspaceitem,5andtheresultingparserprovedRunabletorecognizeinputinwhichaspaceseparatedXavqaluefromacommaorclosingbrace;ittoGokquiteabitofexperimentationtodeterminehowtorewritethegrammartoremovethisproblem.Theleft-handsideofanassignmentiseithera eld@name,Dlikeauthorortitle,orastringabbre-viationname.thThelexermustdistinguishbGetweenthetotwobyremembGeringthelastentrytypGeseen,bGecausetheyaremadeupofexactlythesamesetofpGossibleUUcharacters.assignment_lhs: TOKEN_FIELD|?TOKEN_ABBREV;Optional9spaceOptionalp spaceiseitheranemptystring,vhereindi-catedUUbythe/*...*/comment,orspace.opt_space:/*?empty*/|?space;SpaceSp}'ace^isXanimpGortantpartofthegrammar.yItisoneUUormoresinglespaces.space: single_space|?spacesingle_space;W*enincludespacehandlingtosuppGorttoolsthatproGcessMxBNiDb32TU>ExXMv lesandwishtopreservetheinputform.(XInynormalcompilerdesign,spaceisrecognizedbyBNthelexer,Fanddiscarded,sotheparserneverhasto>dealwithit,vKandthegrammarcanbGeconsiderablysimpler.Single9spaceThe" nalruleofthegrammarde nesasinglee9sp}'aceasaliteralspacecharacter,oranin-linecomment,orUUaliteralnewlinecharacter.single_space:TOKEN_SPACE|?TOKEN_INLINE|?TOKEN_NEWLINE;Althoughjwecouldarrangeforthelexertomerge3TOKEN_SPACE2andTOKEN_NEWLINEintoasin-gleFtoken,Bthiswouldinterferewithheuristicsusedbyaprettyprintertodetectemptylinesinsidestringvqalues,βwhichlarepGossiblyindicativeofmissingde-limiters.P9arsing9grammarsummaryW*eIhavenowcompletedayaccgrammarforBNiDb32-TU>ExX8thatYprovidesarigorousgrammaticalanalysisof_astreamoftokensrecognizedbythelexersinSectionsUU6and10.Notice"thatthereisnocharacter-stringproGcess-ingwhateverintheparser,bGecauseithasallbeendoneinthelexer.hParsingopGerationsjustmanipu-lateUUsmallintegervqalues.Inxthisversion,KnoactionshavebGeensuppliedasCcoGdefragmentsintheyaccgrammar.2[TheonlyF414)TUGbGoat,UUV*olume14(1993),No.4outputoftheparserwillbGethetokenstreamfrom the_lexer,"interspGersedbyerrormessageswhentheinputUUfailstomatchagrammarrule.ErrorrecoveryhasbGeenkeptsimple: ,inputis% ushedtothenextclosingbrace,whichispre-sumablydtheendofanentry*.BracesoftypGeTOKEN_LBRACEMandZTOKEN_RBRACEdonotoGccurex-ceptaroundapparententriesinthelexeroutput;otherbracesarereturnedastokensoftypGeTOKEN_LITERAL.No=RmorethanonetokenofloGokqaheadisrequiredbythisgrammar,LalthoughthelexeroftenloGokedseveralQcharactersaheadtoexaminetrailingcontextinordertodistinguishbGetweenotherwisesimilarto-kens.BNiDb32TU>ExXusers$shouldbGeabletoreadthisgram-maranddecidewhetheraquestionableBNiDb32TU>ExXcon-struct$islegalornot,withouthavingtoresorttosoftware1expGerimentsasI1didtoclarifyfuzzygram-maticalUUpGoints.12Soft9ware9av\railabilityTheGsourcecoGdeanddocumentationforbibcleanareQninthepublicgZdomain,sintheinterestsofthewidestavqailabilityandgreatestbGene ttotheTU>'ExXcommunity*. CommercialmvendorsofTU>'ExXwareareencouragedʫtoincludebibcleanwiththeirdistribu-tions.TheDdistributionalsoincludestheseparatecom-pletelexerandparsergrammarandcoGde,;whichcanbGeRFprocessedbylexorflex,andyaccorbison,respGectively*.The{HoutputCzcodefromthesetoolsisincludedsothatrecipientsneednothavetheminstalledtoactuallycompileandrunthelexerandparser.IfyouhaveInternetanonymousftpaccess, youcan§retrievethedistributioninavqarietyofarchiveformats٠fromthemachineftp.math.utah.eduinthe9directorypub/tex/bib. Ma8jorTU>'ExXInternetarchivephostsaroundtheworldwillalsohavebib-clean,"ybut?theauthor'ssitewillalways?havethemostup-to-dateversion. vIfyoulackftpcapabil-itybuthaveelectronicmailaccess,[amessagetotuglib@math.utah.eduUUwiththetexthelpsend?indexfromtex/bibwillUUgetyoustarted.Thebibcleandistributionincludesasubstan-tialN6collectionoftortureteststhatshouldbGerunatinstallationYtimetoverifycorrectness.AswiththeTU>'ExXtripandHo> logo10HMETAF9ONTtraptests,4thistestinghasprovedvqaluableinuncoveringproblemsbGeforetheUUcoGdeisinstalledforgeneraluse.References[1]'ExX'ExX._TUGBo}'at,MSupplementKto12(2):183{194,V*olume14(1993),No.4)w415[14]E.Lapin.'PortablejCjandUNIXPr}'ogram-402 .bbl,U>412.bibcleanrc,U>397.ini,U>400,402/*U>empty*/rule,413/*...*/,U>413:,U>402?,U>402@,U>400% cmsy9f,U>407,410%g,U>407,410%%,U>402,407,410%e,U>402%f,U>402%k,U>402%left,U>410,411%nonassoc,U>410%token,U>410%v,U>402\",U>401,402,409@,U>405,406,408,411@Begin,U>405@Beginfcommentg,U>405@Comment,U>405@Commentf...g,U>405,406,411@End,U>405@Endfcommentg,U>405@Preamblef...g,U>405@String,U>405@Stringf...g,U>406F416)wTUGbGoat,U>V*olume14(1993),No.4@@,U>405 @name,U>405,411@namef...g,U>411\\,U>401\0x0a,U>401\0xhh,U>4018-bitU>clean,409\0,U>401,409\012,U>401\013,U>407A,U>402\a,U>401a,U>402abbreviation,U>408,413accen9tU>controlsequence,409Aho,U>AlfredV.,404,405,411anon9ymousU>ftp,414ANSI/ISOU>StandardC,403,404,407apAostropheinU>citationk9ey:,406AppleU>Macin9tosh,407arc9hiveU>hostsIn9ternet,U>414Article,U>411assignmen9t,U>413list,U>412opAerator,U>409,413assoAciativit9yU>of,410ruleerrorU>reco9veryin,411separator,U>409assignmentU>rule,412,413assignment_lhsU>rule,413assignment_list,U>412,413assignment_listU>rule,412,413assoAciativit9y:,U>410at-sign,U>405at_objectU>rule,411A9tari,U>404-author,U>397author,U>413authorU>namepAeriodU>afterinitials,398reordering,U>398auxiliaryU> le,396\b,U>401Bac9h,U>P:.D.Q.,400bac9kU>end,397bac9kslash-newline,U>398,400,403,404,408bac9kslash-quote,U>405BeebAe,U>NelsonH.F.,396bib,U>406bibclean,U>395{405,407,408,410,412,414bibclean.ini,U>397BIBCLEANEXT,U>400BIBCLEANINI,U>397bibdup,U>404 bibdup.awk,U>404BIBINPUTS,U>397,400biblex,U>407,410bibliograph9yen9try:,U>412 le,U>396,397st9yle,U>396\bibliography,U>396,406bibliograph9y-spAeci cU>pattern,402\bibliographystyle,U>396bibparse,U>410bibtex_fileU>rule,411bison,U>406,408,410{412,414Book,U>411BorlandU>In9ternational,404brace,U>409ignoredU>inpatternmatc9hing,402spaceU>around,402Bro9wn,U>Doug,406Bry9an,U>Martin,396bu erU>o9ver ow,406C++,U>397,404Cameron,U>Debra,396carriageU>return,407chapter,U>402-check-values,U>398,400c9hecksuminU>ISBNandISSN,402citationk9ey:,U>395,403,412problemsU>inrecognizing,412st9yle,U>396\cite,U>396classU>library:,404coAdeU>generation,397colon,U>410comma,U>412optionalU>afterassignmen9t,413command-lineU>options,j cmti9seeIoptionsComment,U>408,409,411commen9ten9try:,U>411in-line,U>408,410,412,413assoAciativit9yU>of,410precedenceU>of,411syn9tax,U>406comment,U>405commentU>rule,411,412concatenation,U>seeIstringcon9trolU>sequence\bibliography,U>396,406\bibliographystyle,U>396\cite,U>396coreU>dump,405D,U>402d,U>402ϠFTUGbGoat,U>V*olume14(1993),No.4)w417decimal,U>397 -delete-empty-values,U>398,399delimitedU>string,409,413delimitersinU>O- cmcsc10OScribe,405mismatc9hed,U>398,413digitU>string,408doAcumen9tation,U>414dumppAost-mortem,U>405editor,U>seeIEmacseditorU>namepAeriodU>afterinitials,398reordering,U>398electronicU>mailserv9er,414Ellis,U>MargaretA.,404Emacs,U>396,399,405em9bAeddedU>quote,409empt9ypattern,U>402string,U>413v|raluesdeleting,U>398en9tryname,U>408entryU>rule,411{413entry_headU>rule,412en9vironmentU>v|rariable,397errorlogU> le,399message,U>411redirecting,U>397reco9very:,U>411repAorting,U>406errorU>rule,411-error-logU>filename,397escapAeU>sequence,401,403,405,409inU>messagetext,402table,U>401\f,U>401,407F:euer,U>AlanR.,404 eldU>name,408,413 le.bbl,U>412.bibcleanrc,U>397.ini,U>400,402bibclean,U>404bibclean.ini,U>397BIBCLEANEXT,U>400BIBCLEANINI,U>397bibdup,U>404bibdup.awk,U>404BIBINPUTS,U>397,400bibliograph9y:,U>396,397errorU>log,399ftp.math.utah.edu,U>414inclusion,U>406,412initialization,U>397,398,400 loAcating,U>399nested,U>400patternU>c9haracters,402patternsU>in,398namespaceU>in,412syn9taxU>of,412nawk,U>404PATH,U>397,400pub/tex/bib,U>414regexp,U>401sampleU>initialization,401stderr,U>397,399stdin,U>400SYS$SYSTEM,U>397tr,U>404tuglib@math.utah.edu,U>414-file-position,U>398,399-fix-font-changes,U>398,399-fix-initials,U>398,400-fix-names,U>398,400flex,U>406,407,414fon9tU>changes xing,U>398formatitem,U>402%%,U>402%e,U>402%f,U>402%k,U>402%v,U>402ofU>grammarrules,407,410formfeed,U>407F:reeU>Soft9wareF:oundation,397,406F:riedman,U>Jr.,H.George,406fron9tU>end,397ftp,U>414ftp.math.utah.edu,U>414functionout_lbrace(),U>409out_lparen(),U>409out_protected_string(),U>408out_rbrace(),U>409out_rparen(),U>409out_string(),U>409out_token(),U>408,409GNUEmacs,U>396,399,405regexpU>pac9k|rage,401TuAEXinfo,U>405grammar,U>405formatU>ofrules,407,410formattingU>con9ventions,410LALR(1),U>406,412lexical,U>407LL(0),U>405LL(1),U>405,406F418)wTUGbGoat,U>V*olume14(1993),No.4LR(5" cmmi9kC),U>406 parsing,U>410sizeU>of,407,410Harbison,U>Sam9uelP:.,404help,U>414-helpU>or-?,397Herwijnen,U>Ericv|ran,396hexadecimal,U>397horizon9talU>spacecharacter,407,409in-lineU>commen9t,408,410,412,413assoAciativit9yU>of,410precedenceU>of,411Include,U>408,409,411,412includeU>rule,411,412-init-fileU>filename,397,398,400initializationU> le,397,398,400loAcating,U>399nested,U>400patternU>c9haracters,402patternsU>in,398sample,U>401In9ternetU>archivehosts,414in9terpretationU>ofcoAde,397ISBN,U>402ISBNU>(In9ternationalStandardBoAokNumbAer),399ISO10646MU>c9haracterset,406ISSN,U>402ISSNU>(In9ternationalStandardSerialNumbAer),399Jaesc9hke,U>Rex,404Johnson,U>Stev9enC.,406Kahn,U>PhilippAe,404Kernighan,U>BrianW.,404key,U>403,405k9eyU>name,408,412key_nameU>rule,412Kn9uth,U>DonaldE.,398,404,406KoAenig,U>Andrew,404LALR(1)grammar,U>406,412parser,U>406LampAort,U>Leslie,395,396,403,406Lapin,U>J.E.,404last_object,U>408last_token,U>408%left,U>410,411left-recursiv9eU>rule,411Lesk,U>Mic9haelE.,406Levine,U>JohnR.,406lex,U>406{410,414lexer,U>seeIlexicalanalyzerlexicalU>analysis,397lexicalU>analyzer,397,398,403lexicalU>grammar,407linen9umbAer,U>406 n9umbAerU>directive,403widthU>limit,397wrapping,U>398,404,408listofU>assignmen9ts,412ofU>objects,411literateU>programming,407,410LL(0)U>grammar,405LL(1)grammar,U>405,406parser,U>411LR(kC)U>grammar,406Macin9toshApple,U>407macro,U>seealsoecon9trolsequenceN,U>407,408O,U>407RETURN,U>408{410S,U>407W,U>407macroU>de nitionlex,U>407macroU>uselex,U>407Mason,U>T:on9y,406-max-widthU>0,397-max-widthU>nnn,397,404men9upAop-up,U>396messagedisablingU>w9arning,399error,U>411help,U>397redirecting,U>397mismatc9hedU>delimiters,398,413month,U>402N,U>407,408\n,U>401name,U>411nawk,U>404newline,U>409,412,413assoAciativit9yU>of,410-no-check-values,U>398-no-delete-empty-values,U>398,399-no-file-position,U>398-no-fix-font-changes,U>398-no-fix-initials,U>398-no-fix-names,U>398-no-init-files,U>400-no-par-breaks,U>398,399-no-prettyprint,U>397,398,403,407,410-no-print-patterns,U>398-no-read-init-files,U>398-no-remove-OPT-prefixes,U>398,399-no-scribe,U>399-no-trace-file-opening,U>399ʠFTUGbGoat,U>V*olume14(1993),No.4)w419-no-warnings,U>399 non-terminal,U>410/*U>empty*/,413assignment,U>412,413assignment_lhs,U>413assignment_list,U>412,413at_object,U>411bibtex_file,U>411comment,U>411,412entry,U>411{413entry_head,U>412error,U>411include,U>411,412key_name,U>412object,U>411object_list,U>411opt_space,U>411{413preamble,U>411,412simple_value,U>412,413single_space,U>413space,U>413string,U>411,412value,U>412,413%nonassoc,U>410NULU>(0)inU>string,401,409number,U>401,402O,U>407object,U>411list,U>411objectU>rule,411object-orien9tedU>programming,404object_listU>rule,411Objectiv9eU>C,397,404oActal,U>397\ooo,U>401opAeratorassignmen9t,U>409,413stringU>concatenation,408,411,412OPT-U>pre xremo9ving,U>399opt_space,U>412opt_spaceU>rule,411{413option-author,U>397-check-values,U>398,400-delete-empty-values,U>398,399-error-logU>filename,397-file-position,U>398,399-fix-font-changes,U>398,399-fix-initials,U>398,400-fix-names,U>398,400-helpU>or-?,397-init-fileU>filename,397,398,400-max-widthU>0,397-max-widthU>nnn,397,404-no-check-values,U>398-no-delete-empty-values,U>398,399-no-file-position,U>398 -no-fix-font-changes,U>398-no-fix-initials,U>398-no-fix-names,U>398-no-init-files,U>400-no-par-breaks,U>398,399-no-prettyprint,U>397,398,403,407,410-no-print-patterns,U>398-no-read-init-files,U>398-no-remove-OPT-prefixes,U>398,399-no-scribe,U>399-no-trace-file-opening,U>399-no-warnings,U>399-par-breaks,U>398-prettyprint,U>398-print-patterns,U>398-read-init-files,U>398-remove-OPT-prefixes,U>398,399-scribe,U>399-trace-file-opening,U>399,400-version,U>399-warnings,U>399options,U>400OOS/2,U>404out_lbrace(),U>409out_lparen(),U>409out_protected_string(),U>408out_rbrace(),U>409out_rparen(),U>409out_string(),U>409out_token(),U>408,409o9ver owU>ofstringbu er,406pages,U>402-par-breaks,U>398paren9thesis,U>409parserLALR(1),U>406LL(1),U>411parsing,U>397parsingU>grammar,410P9ascal,U>404PATH,U>397,400patternbibliograph9y-spAeci c,U>402c9hangingU>warningmessage,402empt9y:,U>402quotesU>in,402patternU>matc9hing,400braceU>ignoredin,402regularU>expression,400OPC-DOS,U>396,397,400,404pAeriodinU>citationk9ey:,406inU>regularexpression,407,409pipAeline,U>404Plauger,U>P:.J.,404pAop-upU>men9u,396pAortabilit9y:,U>404_F420)wTUGbGoat,U>V*olume14(1993),No.4pAost-mortemU>dump,405 Preamble,U>408,411,412preambleU>rule,411,412precedenceU>declaration,410preproAcessor,U>403-prettyprint,U>398prett9yprinter,U>397,398,403prett9yprinting,U>399-print-patterns,U>398programsearc9hU>path,400v9ersion,U>399pub/tex/bib,U>414queryU>(?)inU>messages,402quoteem9bAedded,U>409inU>pattern,402R,U>402\r,U>401,407r,U>402Rabino9witz,U>Henry:,404-read-init-files,U>398reco9veryfromU>error,411recursion,U>400refer,U>406regexp,U>401regularU>expressionpatternU>matc9hing,400syn9taxU>of,407Reid,U>Brian,405-remove-OPT-prefixes,U>398,399RETURN,U>408{410return,U>408Ritc9hie,U>DennisM.,404RoAc9hkind,U>MarcJ.,404Rosen9blatt,U>Bill,396run-timeU>options,seeIoptionsruna9wayU>stringargumen9t,398,406S,U>407Sc9haap,U>Chaim,404Sc9hickele,U>Peter,400Sc9hmidt,U>Eric,406Sc9hreiner,U>AxelT.,406OScribe,U>395,399,404{407,409,411,417-scribe,U>399searc9hU>path,400semicolon,U>410send,U>414separatorassignmen9t,U>409Sethi,U>Ra9vi,405,411OSGML,U>396sharpU>(#),403,408simpleU>v|ralue,413simple_valueU>rule,412,413 singleU>space,413single_spaceU>rule,413sourceU>coAde,414space,U>410,413assoAciativit9yU>of,410bAet9weenU>tokens,411precedenceU>of,411spaceU>rule,413standardU>errorunit,397stderr,U>397,399stdin,U>400SteeleU>Jr.,GuyL.,404Stev9ens,U>W.Richard,404String,U>408,411,412stringconcatenationU>opAerator,408,411,412pAool,U>404runa9way:,U>398,406substitution,U>395stringU>rule,411,412Stroustrup,U>Bjarne,404st9ylebibliograph9y:,U>396SYS$SYSTEM,U>397\t,U>401templateeditor,U>396terminal,U>410TOKEN_ABBREV,U>403,408,410,412,413TOKEN_AT,U>403,408,410,411TOKEN_COMMA,U>403,408{410,412,413TOKEN_COMMENT,U>408,410,412TOKEN_ENTRY,U>403,408,410,412TOKEN_EQUALS,U>403,409,410,413TOKEN_FIELD,U>403,408,410,413TOKEN_INCLUDE,U>408,410,412TOKEN_INLINE,U>408,410,413TOKEN_KEY,U>403,408,410,412TOKEN_LBRACE,U>403,409,410,412,414TOKEN_LITERAL,U>409,410,412,414TOKEN_NEWLINE,U>403,409,410,413TOKEN_PREAMBLE,U>408,410,412TOKEN_RBRACE,U>403,409{412,414TOKEN_SHARP,U>409{412TOKEN_SPACE,U>409,410,413TOKEN_STRING,U>403,408{410,412TOKEN_VALUE,U>403,408{410,413testing,U>404,414TuAEXinfo,U>405textU>editor,seeIEmacstitle,U>413tok9en,U>397,seeIterminalstring,U>403t9ypAe,U>403unclassi able,U>409TOKEN_ABBREV,U>403,408,410,412,413TOKEN_AT,U>403,408,410,411 FTUGbGoat,UUV*olume14(1993),No.4)421TOKEN_COMMA,U>403,408{410,412,413 TOKEN_COMMENT,U>408,410,412TOKEN_ENTRY,U>403,408,410,412TOKEN_EQUALS,U>403,409,410,413TOKEN_FIELD,U>403,408,410,413TOKEN_INCLUDE,U>408,410,412TOKEN_INLINE,U>408,410,413TOKEN_KEY,U>403,408,410,412TOKEN_LBRACE,U>403,409,410,412,414TOKEN_LITERAL,U>409,410,412,414TOKEN_NEWLINE,U>403,409,410,413TOKEN_PREAMBLE,U>408,410,412TOKEN_RBRACE,U>403,409{412,414TOKEN_SHARP,U>409{412TOKEN_SPACE,U>409,410,413TOKEN_STRING,U>403,408{410,412TOKEN_VALUE,U>403,408{410,413OTOS,U>404tr,U>404-trace-file-opening,U>399,400trailingU>con9text,412,414trap,U>414trip,U>414TUGU>bibliograph9ycollection,396,399TUGU>ResourceDirectory:,396Pq[ cmsl9PTUGbAoat.,U>396tuglib@math.utah.edu,U>414Ullman,U>Je reyD.,405,411unclassi ableU>tok9en,409OUNIX,U>396,397,400,401,404,406,407,409\v,U>401,407v|ralue,U>412valueU>rule,412,413v|ranU>Herwijnen,Eric,396v|rariablelast_object,U>408last_token,U>408OV3AX,U>396,397,404v9ersionofU>program,399-version,U>399v9erticalbar,U>410tab,U>407OVMS,U>396,397,404volume,U>402W,U>402,407w,U>402w9arningU>messagec9hanging,U>402disabling,U>398,399redirecting,U>397-warnings,U>399WEB,U>404,406,407W:ein9bAerger,U>PeterJ.,404wrappingofU>longlines,398,404,408X,U>401,402 \x,U>402x,U>402X/OpAenU>Consortium,409yacc,U>406{408,410{414year,U>403m@:DNelson>H.F.BeebAeDCen9ter>forScienti cComputingDDepartmen9t>ofMathematicsDUniv9ersity>ofUtahDSalt>Lak9eCity:,UT84112DUSADT:el:+1>8015815254DFAX:>+18015814148DIn9ternet:beebe@math.utah.edu; Pq[ cmsl9O- cmcsc10N- cmcsc10Ho> logo10 cmmi10K`y cmr10ߤN cmtt9j cmti9 cmsy95" cmmi9o cmr9 t}\cmti7ٓRcmr7!bibclean-3.07/doc/bibclean.ltx0000644000156700015670000033242605511100675015153 0ustar beebebeebe% -*-latex-*- % Document name: /u/sy/beebe/tex/bibclean/doc/bibclean.ltx % Creator: Nelson H.F. Beebe % Creation Date: Tue Dec 15 22:38:15 1992 %%% ==================================================================== %%% @LaTeX-file{ %%% author = "Nelson H. F. Beebe", %%% version = "1.02", %%% date = "31 December 1993", %%% time = "12:46:45 MST", %%% filename = "bibclean.ltx", %%% address = "Center for Scientific Computing %%% Department of Mathematics %%% University of Utah %%% Salt Lake City, UT 84112 %%% USA", %%% telephone = "+1 801 581 5254", %%% FAX = "+1 801 581 4148", %%% checksum = "13962 3724 13766 111894", %%% email = "beebe@math.utah.edu (Internet)", %%% codetable = "ISO/ASCII", %%% keywords = "BibTeX, bibliography, prettyprint, syntax check", %%% supported = "yes", %%% abstract = "This document describes bibclean, a BibTeX %%% prettyprinter and syntax checker. It %%% proposes a rigorous grammar for BibTeX, and %%% provides a sample implementation of a lexical %%% analyzer and parser to demonstrate the %%% correctness and feasibility of the grammar.", %%% docstring = "This document introduces bibclean, a BibTeX %%% prettyprinter and syntax checker. It %%% describes the features provided by bibclean %%% for processing BibTeX files, and for %%% producing output that can be readily used by %%% other, simpler, programs. %%% %%% It argues that the current version of BibTeX %%% has an unsound grammatical foundation, and %%% that its user-friendliness could be improved %%% by better error checking, and by new %%% facilities. %%% %%% It then proposes a remedy in the form of a %%% rigorous grammar that can be used to generate %%% a lexical analyzer and parser for BibTeX %%% files, and provides a sample implementation %%% using the lex and yacc programs. %%% %%% The checksum field above contains a CRC-16 %%% checksum as the first value, followed by the %%% equivalent of the standard UNIX wc (word %%% count) utility output of lines, words, and %%% characters. This is produced by Robert %%% Solovay's checksum utility.", %%% } %%% ==================================================================== %%:===================================================================== %%: ** NOTE ** NOTE ** NOTE ** NOTE ** NOTE ** NOTE ** NOTE ** NOTE ** %%: This paper is available with the bibclean distribution by the kind %%: permission of the Editor of TUGboat, The Communications of the TeX %%: User's Group. The index in the published paper was set in 3-column %%: mode, but that style is not universally available in LaTeX %%: implementations; in this version, it is set in 2-column mode, giving %%: a few extra pages. At the time of publication, the most %%: recently-available ltugboat.sty and tugboat.cmn files (included in %%: the bibclean distribution) differ somewhat from those used to %%: typeset the journal, so the page breaking in this version differs %%: from the published article. This will be remedied as soon as %%: possible. %%: %%: Because the index requires some editing which can be automated under %%: the UNIX operating system, but not under some others, the bibclean %%: distribution includes all of the intermediate files, and the TeX DVI %%: file, so all that is needed to print the paper is a suitable DVI %%: driver program. Only standard TeX fonts are required. %%: %%: The proper bibliographic reference to the published paper is %%: %%: @String{TUGboat = "TUGBoat"} %%: %%: @Article{Beebe:TB14-4-395-419, %%: author = "Nelson H. F. Beebe", %%: title = "Bibliography Prettyprinting and Syntax Checking", %%: journal = TUGboat, %%: year = "1993", %%: volume = "14", %%: number = "4", %%: pages = "395--419", %%: note = dec, %%: bibdate = "Fri Dec 31 12:15:07 1993", %%: } %%:===================================================================== \documentstyle[makeidx,path,texnames,bibclean]{ltugboat} \setcounter{page}{395} % initial page number in TUGboat \PrelimDraftfalse \vol 14, 4. \issdate December, 1993. %================================================= \title{% Bibliography Prettyprinting and Syntax Checking } \author{% Nelson H. F. Beebe } \address{% Center for Scientific Computing\\ Department of Mathematics\\ University of Utah\\ Salt Lake City, UT 84112\\ USA\\ Tel: +1 801 581 5254\\ FAX: +1 801 581 4148 } \netaddress[\network{Internet}]{beebe@math.utah.edu} \makeindex %================================================= \begin{document} \mbox{}\newpage % force empty first column to match TUGboat copy \maketitle \tableofcontents \listoftables \bibliographystyle{is-plain} \section{Introduction}% \label{sec:intro} \BibTeX{} \cite[Appendix~B]{Lamport:LDP85}% \index{Lamport, Leslie} is a convenient tool for solving the vexing issue of bibliography formatting. The user identifies fields of bibliography entries via field\slash value pairs and provides a unique citation key% \index{citation!key} and a document type for each entry. A simple string substitution% \index{string!substitution} facility makes it easy to reuse frequently-occurring strings. A typical example looks like this: \begin{verbatim} @String{pub-AW = "Ad{\-d}i{\-s}on-Wes{\-l}ey"} @Book{Lamport:LDP85, author = "Leslie Lamport", title = "{\LaTeX}---A Document Preparation System---User's Guide and Reference Manual", publisher = pub-AW, year = "1985", ISBN = "0-201-15790-X", } \end{verbatim} The \TeX{} file contains citations of the form \verb=\cite{Lamport:LDP85}=,% \index{Lamport, Leslie} together with a \CS{bibliographystyle} command to choose a citation% \index{citation!style} and bibliography style,% \index{bibliography!style} and a \CS{bibliography} command to specify which \BibTeX{} files are to be used. \TeX{} records this information in an auxiliary file.% \index{auxiliary file} A subsequent \BibTeX{} job step reads this auxiliary file, extracts the requested bibliographic entries from the specified \BibTeX{} files, and outputs the entries into a bibliography file% \index{bibliography!file}% \index{file!bibliography} formatted according to the specified style. Several dozen such styles% \index{bibliography!style}% \index{style!bibliography} are currently available to help cope with the bizarre variations in bibliography formats that publishers have invented. In a second \TeX{} step, the \CS{cite} commands are not correctly expandable until the \CS{bibliography} command is processed and the bibliography file output by \BibTeX{} is read. However, at that point, the desired form of the citations is finally known, and at the end of the job, an updated auxiliary file is written. A third \TeX{} step finally has the necessary information from the auxiliary file and the bibliography file to correctly typeset the \CS{cite} commands and the bibliography in the specified style. With the GNU Emacs text editor% \index{GNU!Emacs}% \index{Emacs} \cite{Cameron:LGE91,% Schoonover:GEU92},% \index{Cameron, Debra}% \index{Rosenblatt, Bill} powerful \BibTeX{} editing support makes it simple to generate bibliography entry descriptions via templates% \index{template!editor} that can be inserted with a couple of keystrokes, or on workstations, selected from a pop-up menu.% \index{pop-up menu}% \index{menu!pop-up} This editor is freely available on \UNIX{}, \VAX{} \VMS{}, and the larger members of the IBM PC family under \PCDOS{}. The major benefits of using \BibTeX{} are the potential for data reuse, the separation of form and content (like the descriptive markup of \LaTeX{} and \SGML{}% \cite{Bryan:SAG88,% vanHerwijnen:PS90}),% \index{Bryan, Martin}% \index{van Herwijnen, Eric}% \index{Herwijnen, Eric van} and the many stylistic variants of the typeset bibliography. During the preparation of this article, a scan of our Mathematics Department workstation file system located about 14~000 \TeX{} files, and 445 \BibTeX{} files. The latter contained about 870~000 lines and almost 94~000 bibliography entries. These files form a valuable resource that authors and researchers can use to track and properly cite literature in their publications. During my term as TUG President, I initiated a project to collect% \index{TUG bibliography collection} \BibTeX{} styles and bibliography data base files of material related to \TeX{} and its uses, and electronic document production and typography in general. This dynamic collection also covers a few journals, including more than 1000 entries for \TUB{}.% \index{TUGboat@{\protect\TUB{}}} A snapshot of part of the collection was published in the 1991 TUG Resource Directory% \index{TUG Resource Directory} \cite{Beebe:TB12S-2-176,% Beebe:TB12S-2-183}.% \index{Beebe, Nelson H. F.} One drawback of \BibTeX{} is that errors in a bibliography file, such as unmatched quotation marks around a value string, can sometimes be hard to locate, because the current version of the program raises an error at the end of a scan when internal tables overflow after gobbling several thousand characters of input. The result is that the error location is completely bogus, and actually lies much earlier in the file. We can hope that this serious deficiency will be remedied in the final version of \BibTeX{}, 1.0, which is expected to appear when the \LaTeX{} 3.0 development is completed. Another drawback is that such bibliography files are normally prepared by human typists, and consequently there are formatting variations that reduce readability, and inconsistencies that persist into the final typeset bibliography. Some examples of such inconsistencies are variations in naming of publishers and journals, spacing around author and editor initials, and variations in letter case in titles. In addition, there are usually numerous typographical errors of omission, doubling, spelling, transcription, translation, and transposition. In the fall of 1990, faced with a growing collection of \BibTeX{} files, I set out to write a software tool to deal with these problems. This program is called \BIBCLEAN{}. It is a syntax checker, portability verifier, and prettyprinter, and was made freely available in 1991. In the fall of 1992, after considerable experience with the first version, I embarked on a set of enhancements that produced major version 2.0, and the purpose of this paper is to describe the new version, and to widely advertise its existence to the \TeX{} community. \section{\protect\BibTeX{} needs improvement} \BibTeX{}, like \TeX{}, assumes that its input is prepared correctly, and works best when that is the case. Both programs attempt to recover from errors, but that recovery may be unsuccessful, and errors may be detected only after lengthy processing. In neither case is the output of these programs suitable for input to them. That is, their knowledge of how their input streams are to be parsed is available only to them, and cannot be applied independently and used by other software. Both programs have a hazily-defined input syntax, and \TeX{}'s is extensible, making it even harder to give a precise description to the user. The trend of compiler technology development of the last two decades, largely on \UNIX{} systems, has been to separate the compilation task into several steps. The first is generally called {\em lexical analysis},% \index{lexical analysis} or lexing. It breaks the input stream up into identifiable tokens% \index{token} that can be represented by small integer constants and constant strings. The second step is called {\em parsing},% \index{parsing} which involves the verification that the tokens streaming from the lexer conform to the grammatical requirements of the language, that is, that they make sense. As parsing proceeds, an intermediate representation is prepared that is suitable for the third step, namely, {\em code generation\/}% \index{code generation} or {\em interpretation}.% \index{interpretation of code} This division into subtasks diminishes the complexity of writing a compiler, reduces its memory requirements, and importantly, partitions the job into two parts: a language-dependent, but {\em architecture-independent}, part consisting of lexing and parsing, and a language-independent, but {\em architecture-dependent}, part where code is generated or interpreted. This makes it possible to write a front end% \index{front end} for each language, and a back end% \index{back end} for each architecture, and by combining them, obtain compilers for all languages and all architectures. The most successful example of this approach at present is almost certainly the Free Software Foundation's% \index{Free Software Foundation} GNU Project compilers, which support all common computer architectures with the back ends, and C, C++,% \index{C++} and Objective C% \index{Objective C} with the front ends. Additional front ends for several other popular languages are in preparation. When a lexer is available as a separate program, its output can be conveniently used by other programs for tasks such as database lookup, floating-point precision conversion, language translation, linguistic analysis, portability verification, prettyprinting, and checking of grammar, syntax, and spelling. In response to a command-line request, \BIBCLEAN{} will function as a lexer% \index{lexical analyzer} instead of as a prettyprinter.% \index{prettyprinter} An example is given later in Section~\ref{sec:lexer}. \section{Run-time options} On several operating systems, \BIBCLEAN{} is run by a command of the form % \begin{verbatim} bibclean [options] bibfile(s) >newfile \end{verbatim} % One or more bibliography files% \index{bibliography!file}% \index{file!bibliography} can be specified; if none are given, input is taken from the standard input stream. A specific example is: % \begin{verbatim} bibclean -no-fix-name mybib.bib >mybib.new \end{verbatim} % Command-line switches may be abbreviated to a unique leading prefix, and letter case is not significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a {\em yes\slash no\/} setting of a flag have a form with a prefix \verb=no-= to set the flag to {\em no}. For such options, the last setting determines the flag value used. This is significant when options are also specified in initialization files (see Section~\ref{sec:init}). On \VAX{} \VMS{} and IBM \PCDOS{}, the leading hyphen on option names may be replaced by a slash; however, the hyphen option prefix is always recognized. \begin{description} \OPTIONITEM{author} Display an author credit on the standard error unit,% \index{standard error unit} \path=stderr=.% \PATHINDEX{stderr} Sometimes an executable program is separated from its documentation and source code; this option provides a way to recover from that. \OPTIONITEM{error-log filename} Redirect \path=stderr=% \PATHINDEX{stderr} to the indicated file, which will then contain all of the error and warning messages.% \index{message!redirecting}% \index{error!message!redirecting}% \index{warning message!redirecting} This option is provided for those systems that have difficulty redirecting \path=stderr=.% \PATHINDEX{stderr} \OPTIONITEM{help {\rm or} -?} Display a help message% \index{message!help} on \path=stderr=,% \PATHINDEX{stderr} giving a sample command usage, and option descriptions similar to the ones here. \OPTIONITEM{init-file filename} Provide an explicit value pattern initialization file.% \index{initialization file}% \index{file!initialization} It will be processed after any system-wide and job-wide initialization files found on the \path=PATH=% \PATHINDEX{PATH} (for \VAX{} \VMS{}, \path=SYS$SYSTEM=)% \PATHINDEX{SYS\$SYSTEM} and \path=BIBINPUTS=% \PATHINDEX{BIBINPUTS} search paths, respectively, and may override them. It in turn may be overridden by a subsequent file-specific initialization file. The initialization file name can be changed at compile time, or at run time through a setting of the environment variable% \index{environment variable} \path=BIBCLEANINI=,% \PATHINDEX{BIBCLEANINI} but defaults to \path=.bibcleanrc=% \PATHINDEX{.bibcleanrc} on \UNIX{}, and to \path=bibclean.ini=% \PATHINDEX{bibclean.ini} elsewhere. For further details, see Section~\ref{sec:init}. \OPTIONITEM{max-width nnn} Normally, \BIBCLEAN{} limits output line widths% \index{line!width limit} to 72 characters, and in the interests of consistency, that value should not be changed. Occasionally, special-purpose applications may require different maximum line widths, so this option provides that capability. The number following the option name can be specified in decimal,% \index{decimal} octal% \index{octal} (starting with 0), or hexadecimal% \index{hexadecimal} (starting with 0x). A zero or negative value is interpreted to mean unlimited, so \OPTION{max-width 0} can be used to ensure that each field/value pair appears on a single line. When \OPTION{no-prettyprint} requests \BIBCLEAN{} to act as a lexical analyzer, the default line width is unlimited, unless overridden by this option. When \BIBCLEAN{} is prettyprinting, line wrapping% \index{wrapping!of long lines}% \index{line!wrapping} will be done only at a space. Consequently, an extremely long non-blank character sequence may result in the output exceeding the requested line width. Such sequences are extremely unlikely to occur, at least in English-language text, since even the 45-letter giant \cite[p.~451]{Knuth:ct-a}% \index{Knuth, Donald E.} {\it pneu\-monoul\-tra\-mi\-cro\-scop\-ic% \-sil\-i\-co\-vol\-canoco\-nio\-sis} will fit in \BIBCLEAN{}'s standard 72-character output line, and so will 58-letter Welsh city names. When \BIBCLEAN{} is lexing, line wrapping is done by inserting a backslash-newline% \index{backslash-newline} pair when the specified maximum is reached, so no line length will ever exceed the maximum. \OPTIONITEM{[no-]check-values} With the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g.\ \path|year = "192"| instead of \path|year = "1992"|), and issue warnings when unexpected patterns are found. This checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can disable it with the negative form of this option.% \index{warning message!disabling} Default: {\em yes}. \OPTIONITEM{[no-]delete-empty-values} With the positive form, remove all field\slash value pairs for which the value is an empty string.% \index{empty!values!deleting} This is helpful in cleaning up bibliographies generated from text editor templates. Compare this option with \OPTION{[no-]remove-OPT-prefixes} described below. Default: {\em no}. \OPTIONITEM{[no-]file-position} With the positive form, give detailed file position information in warning and error messages. Default: {\em no}. \OPTIONITEM{[no-]fix-font-changes} With the positive form, supply an additional brace level around font changes% \index{font changes!fixing} in titles to protect against downcasing by some \BibTeX{} styles. Font changes that already have more than one level of braces are not modified. For example, if a title contains the Latin phrase {\tt \verb={\em= Dictyostelium Discoideum\verb=}=} or {\tt \verb={\em= \verb={D}=ictyostelium \verb={D}=iscoideum\verb=}=}, then downcasing will incorrectly convert the phrase to lower-case letters. Most \BibTeX{} users are surprised that bracing the initial letters does not prevent the downcase action. The correct coding is {\tt \verb={{\em= Dictyostelium Discoideum\verb=}}=}. However, there are also legitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, \BIBCLEAN{} will normally not supply an extra level of braces, but if you have a bibliography where the extra braces are routinely missing, you can use this option to supply them. If you think that you need this option, it is strongly recommended that you apply \BIBCLEAN{} to your bibliography file with and without \OPTION{fix-font-changes}, then compare the two output files to ensure that extra braces are not being supplied in titles where they should not be present. You will have to decide which of the two output files is the better choice, then repair the incorrect title bracing by hand. Since font changes in titles are uncommon, except for cases of the type which this option is designed to correct, it should do more good than harm. Default: {\em no}. \OPTIONITEM{[no-]fix-initials} With the positive form, insert a space after a period following author initials.% \index{author name!period after initials}% \index{editor name!period after initials} Default: {\em yes}. \OPTIONITEM{[no-]fix-names} With the positive form, reorder author and editor name lists% \index{author name!reordering}% \index{editor name!reordering} to remove commas at brace level zero, placing first names or initials before last names. Default: {\em yes}. \OPTIONITEM{[no-]par-breaks} With the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not permitted in value strings, or between field\slash value pairs. This may be useful to quickly trap runaway strings% \index{runaway string argument}% \index{string!runaway} arising from mismatched delimiters.% \index{mismatched delimiters}% \index{delimiters!mismatched} Default: {\em yes}. \OPTIONITEM{[no-]prettyprint} Normally, \BIBCLEAN{} functions as a prettyprinter.% \index{prettyprinter} However, with the negative form of this option, it acts as a lexical analyzer% \index{lexical analyzer} instead, producing a stream of lexical tokens. See Section~\ref{sec:lexer} for further details. Default: {\em yes}. \OPTIONITEM{[no-]print-patterns} With the positive form, print the value patterns read from initialization files% \index{initialization file!patterns in}% \index{file!initialization!patterns in} as they are added to internal tables. Use this option to check newly-added patterns, or to see what patterns are being used. When \BIBCLEAN{} is compiled with native pattern-matching code (the default), these patterns are the ones that will be used in checking value strings for valid syntax, and all of them are specified in initialization files, rather than hard-coded into the program. For further details, see Section~\ref{sec:init}. Default: {\em no}. \OPTIONITEM{[no-]read-init-files} With the negative form, suppress loading of system-, user-, and file-specific initialization files.% \index{initialization file}% \index{file!initialization} Initializations will come only from those files explicitly given by \OPTION{init-file filename} options. Default: {\em yes}. \OPTIONITEM{[no-]remove-OPT-prefixes} With the positive form, remove the \verb=OPT= prefix from each field name where the corresponding value is not an empty string.% \index{OPT- prefix@{\tt OPT-} prefix!removing} The prefix \verb=OPT= must be entirely in upper-case to be recognized. This option is for bibliographies generated with the help of the GNU Emacs% \index{GNU!Emacs}% \index{Emacs} \BibTeX{} editing support, which generates templates with optional fields identified by the \verb=OPT= prefix. Although the function \path=M-x bibtex-remove-OPT= normally bound to the keystrokes {\tt C-c C-o} does the job, users often forget, with the result that \BibTeX{} does not recognize the field name, and ignores the value string. Compare this option with \OPTION{[no-]delete-empty-values} described above. Default: {\em no}. \OPTIONITEM{[no-]scribe} With the positive form, accept input syntax conforming to the \SCRIBE{} document system. The output will be converted to conform to \BibTeX{} syntax. See Section~\ref{sec:scribe} for further details. Default: {\em no}. \OPTIONITEM{[no-]trace-file-opening} With the positive form, record in the error log file% \index{error!log file}% \index{file!error log} the names of all files which \BIBCLEAN{} attempts to open. Use this option to identify where initialization files% \index{initialization file!locating}% \index{file!initialization!locating} are located. Default: {\em no}. \OPTIONITEM{[no-]warnings} With the positive form, allow all warning messages.% \index{warning message!disabling}% \index{message!disabling warning} The negative form is not recommended since it may mask problems that should be repaired. Default: {\em yes}. \OPTIONITEM{version} Display the program version% \index{program!version} \index{version!of program} number on \path=stderr=.% \PATHINDEX{stderr} This will also include an indication of who compiled the program, the host name on which it was compiled, the time of compilation, and the type of string-value matching code selected, when that information is available to the compiler. \end{description} \section{Prettyprinting} \index{prettyprinting}% A prettyprinter for any language must be able to deal with more than just those files that strictly conform to the language grammar. For programming languages, most compilers implement language extensions that prettyprinters must recognize and try to deal with gracefully. \BIBCLEAN{} recognizes two such input languages: \BibTeX{} and \SCRIBE{}. Ideally, a prettyprinter should be able to produce output even in the presence of input errors, displaying it in such a way as to make the location of the errors more evident. \BIBCLEAN{} provides detailed error and warning messages to help pinpoint errors. With the \OPTION{file-position} command-line option, it will flag the byte, column, and line, positions of the start and end of the current token in both input and output files. Here is a summary of the actions taken by \BIBCLEAN{} on its input stream. \begin{itemize} \item Space between entries is discarded, and replaced by a single blank line. \item Space around string concatenation operators is standardized. \item Leading and trailing space in value strings is discarded, and embedded multiple spaces are collapsed to a single space. \item String lengths are tested against the limit in standard \BibTeX{}, and warnings issued when the limit is exceeded. The standard limit has proven to be too small in practice, and many sites install enlarged versions of \BibTeX{}. Perhaps \BibTeX{} version 1.0 will use more realistic values, or eliminate string length limits altogether. \item Outer parentheses in entries are standardized to braces. \item Braced value strings are standardized to quoted value strings. \item Field\slash value pairs are output on separate lines, wrapping long lines to not exceed a user-definable standard width whenever possible. \item A trailing comma is supplied after the last field\slash value assignment. This is convenient if assignments are later reordered during editing. \item \OPTION{fix-font-changes} provides for protecting value string text inside font changes from downcasing. \item Brace-level zero upper-case acronyms in titles are braced to protect from downcasing. \item \OPTION{no-par-breaks} provides a way to check for blank lines in string values, which may be indicative of unclosed delimiter errors. \item Umlaut accents, \verb=\"x=, inside value strings at brace-level zero are converted to \verb={\"x}=. This has been found to be a common user error. \BibTeX{} requires embedded quotes to be nested inside braces. \item Letter-case usage in entry and field names is standardized, so for example, \verb=mastersthesis= and \verb=MASTERSTHESIS= become \verb=MastersThesis=. \item ISBN% \index{ISBN (International Standard Book Number)}% and ISSN \index{ISSN (International Standard Serial Number)}% checksums are validated. \BibTeX{} style files that recognize field names for them are available in the TUG bibliography collection,% \index{TUG bibliography collection} and the bibliography for this document uses them. \item Name modifiers like Jr, Sr, etc.\ are recognized and handled by \OPTION{fix-names}, and names are put into a standard order, so that {\tt Bach, P.~D.~Q.} becomes {\tt P.~D.~Q.~Bach}.% \index{Bach, P. D. Q.}% \index{Schickele, Peter} \item With \OPTION{fix-initials}, uniform spacing is supplied after brace-level zero initials in personal names. \item With \OPTION{check-values}, citation key and field values are matched against patterns to catch irregularities and possible errors. \item Dates of the month, like {\tt "July 14"}, are converted to use month abbreviations, {\tt jul \# "~14"}. \item Page number ranges are converted to use en-dashes, instead of hyphens or em-dashes. \item With \OPTION{check-values}, year numbers are checked against patterns, then if no match is found, the year values are checked against reasonable limits. \item With \OPTION{trace-file-opening}, file open attempts are logged. This helps in the diagnosis of problems such as missing files, or incorrect file permissions. \item On lexing or parsing errors, \BIBCLEAN{} attempts to resynchronize by flushing the input until it finds the next line containing an initial \TT{@} character preceded by nothing other than optional white space. \item When an \TT{@} character begins a line, a new bibliography entry is assumed to have started. The current brace balance is then tested to make sure it is zero. A non-zero brace level is strongly suggestive of an error, so \BIBCLEAN{} issues an error message, and zeros the brace level. \item At end-of-file, the brace level is tested. A non-zero brace level is very likely an error, and occasions an error message. \end{itemize} \section{Pattern matching and initialization files}% \label{sec:init} \BIBCLEAN{} can be compiled with one of three different types of pattern matching;% \index{pattern matching} the choice is made by the installer at compile time: \begin{itemize} \item The original version uses explicit hand-coded tests of value-string syntax. \item The second version uses regular-expression pattern-matching% \index{regular expression!pattern matching}% \index{pattern matching!regular expression} host library routines together with regular-expression patterns that come entirely from initialization files. \item The third version uses special patterns that come entirely from initialization files. \end{itemize} The second and third versions are the ones of most interest here, because they allow the user to control what values are considered acceptable. However, command-line options can also be specified in initialization files,% \index{initialization file}% \index{file!initialization} no matter which pattern-matching choice was selected. When \BIBCLEAN{} starts, it searches for initialization files,% \index{initialization file}% \index{file!initialization} finding the first one in the system executable program search path% \index{program!search path}% \index{search path} (on \UNIX{} and IBM \PCDOS{}, \path=PATH=)% \PATHINDEX{PATH} and the first one in the \path=BIBINPUTS=% \PATHINDEX{BIBINPUTS} search path, and processes them in turn. Then, when command-line arguments% \index{options} are processed, any additional files specified by \OPTION{init-file filename} options are also processed. Finally, immediately before each named bibliography file is processed, an attempt is made to process an initialization file with the same name, but with the extension changed to \verb=.ini=.% \PATHINDEX{.ini} The default extension can be changed by a setting of the environment variable \path=BIBCLEANEXT=.% \PATHINDEX{BIBCLEANEXT} This scheme permits system-wide, user-wide, session-wide, and file-specific initialization files to be supported. When input is taken from \path=stdin=,% \PATHINDEX{stdin} there is no file-specific initialization. For precise control, the \OPTION{no-init-files} option suppresses all initialization files except those explicitly named by \OPTION{init-file filename} options, either on the command line, or in requested initialization files. Recursive execution of initialization files% \index{initialization file!nested}% \index{file!initialization!nested} with nested \OPTION{init-file filename} options is permitted; if the recursion is circular, \BIBCLEAN{} will finally get a non-fatal initialization file open failure after opening too many files. This terminates further initialization file processing. As the recursion% \index{recursion} unwinds, the files are all closed, then execution proceeds normally. An initialization file may contain empty lines, comments from percent to end of line (just like \TeX{}), option switches, and field\slash pattern or field\slash pattern\slash message assignments. Leading and trailing spaces are ignored. This is best illustrated by the short example in Table~\ref{tab:initfile}. % \begin{table}[tbh] \hrule \caption{Sample \protect\BIBCLEAN{} initialization file.}% \label{tab:initfile}% \index{initialization file!sample}% \index{file!sample initialization} \begin{verbatim} %% Start with our departmental patterns -init-file /u/math/bib/.bibcleanrc %% Make some small additions chapter = "\"D\"" %% 23 pages = "\"D--D\"" %% 23--27 volume = "\"D \\an\\d D\"" %% 11 and 12 year = \ "\"dddd, dddd, dddd\"" \ "Multiple years specified." %% 1989, 1990, 1991 -no-fix-names %% do not modify %% author/editor lists \end{verbatim} \hrule \end{table} % Long logical lines can be split into multiple physical lines by breaking at a backslash-newline% \index{backslash-newline} pair; the backslash-newline pair is discarded. This processing happens while characters are being read, before any further interpretation of the input stream. Each logical line must contain a complete option (and its value, if any), or a complete field\slash pattern pair, or a field\slash pattern\slash message triple. Comments are stripped during the parsing of the field, pattern, and message values. The comment start symbol is not recognized inside quoted strings, so it can be freely used in such strings. Comments on logical lines that were input as multiple physical lines via the backslash-newline% \index{backslash-newline} convention must appear on the last physical line; otherwise, the remaining physical lines will become part of the comment. Pattern strings must be enclosed in quotation marks; within such strings, a backslash starts an escape mechanism that is commonly used in \UNIX{} software. The recognized escape sequences% \index{escape sequence} are given in Table~\ref{tab:escape}. Backslash followed by any other character produces just that character. Thus, \ESCAPE{\char34} produces a quotation mark, and \ESCAPE{\char92} produces a single backslash. \begin{table}[tbh] \hrule \caption{Escape sequences in quoted strings.}% \index{escape sequence!table}% \label{tab:escape} \begin{center} \begin{tabular}{lp{2in}} \ESCAPE{a} & alarm bell (octal 007)\\ % \ESCAPE{b} & backspace (octal 010)\\ % \ESCAPE{f} & formfeed (octal 014)\\ % \ESCAPE{n} & newline (octal 012)\\ % \ESCAPE{r} & carriage return (octal 015)\\ % \ESCAPE{t} & horizontal tab (octal 011)\\ % \ESCAPE{v} & vertical tab (octal 013)\\ % \ESCAPE{ooo} & character number octal \verb=ooo= (e.g.\ \ESCAPE{012} is linefeed). Up to 3 octal digits may be used.\\ % \ESCAPE{0xhh} & character number hexadecimal \verb=hh= (e.g.\ \ESCAPE{0x0a} is linefeed). \verb=xhh= may be in either letter case. Any number of hexadecimal digits may be used. \end{tabular} \end{center} \hrule \end{table} An ASCII NUL% \index{NUL (0)!in string} (\ESCAPE{0}) in a string will terminate it; this is a feature of the C programming language in which \BIBCLEAN{} is implemented. Field\slash pattern pairs can be separated by arbitrary space, and optionally, either an equals sign or colon functioning as an assignment operator. Thus, the following are equivalent: % \begin{verbatim} pages="\"D--D\"" pages:"\"D--D\"" pages "\"D--D\"" pages = "\"D--D\"" pages : "\"D--D\"" pages "\"D--D\"" \end{verbatim} % Each field name can have an arbitrary number of patterns associated with it; however, they must be specified in separate field\slash pattern assignments. An empty pattern string causes previously-loaded patterns for that field name to be forgotten. This feature permits an initialization file to completely discard patterns from earlier initialization files. Patterns for value strings are represented in a tiny special-purpose language that is both convenient and suitable for bibliography value-string syntax checking. While not as powerful as the language of regular-expression patterns, its parsing can be portably implemented in less than 3\% of the code in a widely-used regular-expression parser (the GNU% \index{GNU!regexp package@{\tt regexp} package} \path=regexp=% \PATHINDEX{regexp} package). The patterns are represented by the special characters given in Table~\ref{tab:patterns}. \begin{table}[tbh] \hrule \caption{Initialization file pattern characters.}% \index{initialization file!pattern characters}% \index{file!initialization!pattern characters}% \label{tab:patterns} \begin{center} \begin{tabular}{lp{2in}} \verb*= = & one or more spaces\\ % \TT{a} & exactly one letter\\ % \TT{A} & one or more letters\\ % \TT{d} & exactly one digit\\ % \TT{D} & one or more digits\\ % \TT{r} & exactly one Roman numeral\\ % \TT{R} & one or more Roman numerals (i.e. a Roman number)\\ % \TT{w} & exactly one word (one or more letters and digits)\\ % \TT{W} & one or more words, separated by space, beginning and ending with a word\\ % \TT{.} & one `special' character, one of the characters \verb*= !#()*+,-./:;?[]~=, a subset of punctuation characters that are typically used in string values\\ % \TT{:} & one or more `special' characters\\ % \TT{X} & one or more `special'-separated words, beginning and ending with a word\\ % \ESCAPE{x} & exactly one \TT{x} (\TT{x} is any character), possibly with an escape sequence interpretation given earlier\\ % \TT{x} & exactly the character \TT{x} (\TT{x} is anything but one of these pattern characters: \verb*=aAdDrRwW.: \=) \end{tabular} \end{center} \hrule \end{table} The \TT{X} pattern character is very powerful, but generally inadvisable, since it will match almost anything likely to be found in a \BibTeX{} value string. The reason for providing pattern matching on the value strings is to uncover possible errors, not mask them. There is no provision for specifying ranges or repetitions of characters, but this can usually be done with separate patterns. It is a good idea to accompany the pattern with a comment showing the kind of thing it is expected to match. Here is a portion of an initialization file giving a few of the patterns used to match \TT{number} value strings: % \begin{verbatim} number = "\"D\"" %% 23 number = "\"A AD\"" %% PN LPS5001 number = "\"A D(D)\"" %% RJ 34(49) number = "\"A D\"" %% XNSS 288811 number = "\"A D\\.D\"" %% Version 3.20 number = "\"A-A-D-D\"" %% UMIAC-TR-89-11 number = "\"A-A-D\"" %% CS-TR-2189 number = "\"A-A-D\\.D\"" %% CS-TR-21.7 \end{verbatim} % For a bibliography that contains only \verb=Article= entries, this list should probably be reduced to just the first pattern, so that anything other than a digit string fails the pattern-match test. This is easily done by keeping bibliography-specific patterns% \index{bibliography-specific pattern}% \index{pattern!bibliography-specific} in a corresponding file with extension \verb=.ini=,% \PATHINDEX{.ini} since that file is read automatically. You should be sure to use empty pattern% \index{empty!pattern}% \index{pattern!empty} strings in this pattern file to discard patterns from earlier initialization files. The value strings passed to the pattern matcher contain surrounding quotes, so the patterns should also.% \index{quote!in pattern}% \index{pattern!quotes in} However, you could use a pattern specification like \verb="\"D"= to match an initial digit string followed by anything else; the omission of the final quotation mark \ESCAPE{\char34} in the pattern allows the match to succeed without checking that the next character in the value string is a quotation mark. Because the value strings are intended to be processed by \TeX, the pattern matching ignores braces,% \index{pattern matching!brace ignored in}% \index{brace!ignored in pattern matching} and \TeX{} control sequences, together with any space following those control sequences. Spaces around braces are preserved.% \index{brace!space around} This convention allows the pattern fragment \verb=A-AD-D= to match the value string \path=TN-K\slash 27-70=, because the value is implicitly collapsed to \path=TN-K27-70= during the matching operation. \BIBCLEAN{}'s normal action when a string value fails to match any of the corresponding patterns is to issue a warning message similar to this: {\tt Unexpected value in ``year = "192"''}. In most cases, that is sufficient to alert the user to a problem. In some cases, however, it may be desirable to associate a different message with a particular pattern.% \index{pattern!changing warning message}% \index{warning message!changing} This can be done by supplying a message string following the pattern string. Format items% \index{format!item} \FORMAT{\%} (single percent), \FORMAT{e} (entry name), \FORMAT{f} (field name), \FORMAT{k} (citation key), and \FORMAT{v} (string value) are available to get current values expanded in the messages. Here is an example: % \begin{verbatim} chapter = "\"D:D\"" \ "Colon found in ``%f = %v''" %% 23:2 \end{verbatim} % To be consistent with other messages output by \BIBCLEAN{}, the message string should not end with punctuation. If you wish to make the message an error, rather than just a warning, begin it with a query% \index{query (?)!in messages} (?),% \index{?} like this: % \begin{verbatim} chapter = "\"D:D\"" \ "?Colon found in ``%f = %v''" %% 23:2 \end{verbatim} % The query will {\em not\/} be included in the output message. Escape sequences% \index{escape sequence!in message text} are supported in message strings, just as they are in pattern strings. You can use this to advantage for fancy things, such as terminal display mode control. If you rewrite the previous example as % \begin{verbatim} chapter = "\"D:D\"" \ "?\033[7mColon found \ in ``%f = %v''\033[0m" %% 23:2 \end{verbatim} % the error message will appear in inverse video on display screens that support ANSI terminal control sequences. Such practice is not normally recommended, since it may have undesirable effects on some output devices. Nevertheless, you may find it useful for restricted applications. For some types of bibliography fields, \BIBCLEAN{} contains special-purpose code to supplement or replace the pattern matching: \begin{itemize} \item \TT{ISBN} and \TT{ISSN} field values are handled this way because their validation requires evaluation of checksums% \index{checksum!in ISBN and ISSN@in {\tt ISBN} and {\tt ISSN}} that cannot be expressed by simple patterns; no patterns are even used in these two cases. \item When \BIBCLEAN{} is compiled with pattern-matching code support, \TT{chapter}, \TT{number}, \TT{pages}, and \TT{volume} values are checked only by pattern matching. \item \TT{month} values are first checked against the standard \BibTeX{} month name abbreviations, and only if no match is found are patterns then used. \item \TT{year} values are first checked against patterns, then if no match is found, the year numbers are found and converted to integer values for testing against reasonable bounds. \end{itemize} Values for other fields are checked only against patterns. You can provide patterns for any field you like, even ones \BIBCLEAN{} does not already know about. New ones are simply added to an internal table that is searched for each string to be validated. The special field, \TT{key}, represents the bibliographic citation key.% \index{citation!key} It can be given patterns, like any other field. Here is an initialization file pattern assignment that will match an author name, a colon, an alphabetic string, and a two-digit year: % \begin{verbatim} key = "A:Add" %% Knuth:TB86 \end{verbatim} % Notice that no quotation marks are included in the pattern, because the citation keys are not quoted. You can use such patterns to help enforce uniform naming conventions for citation keys, which is increasingly important as your bibliography data base grows. \section{Lexical analysis}\label{sec:lexer} The command-line option \OPTION{no-prettyprint} requests \BIBCLEAN{} to function as a lexical analyzer% \index{lexical analyzer} instead of as a prettyprinter.% \index{prettyprinter} Its output is then a stream of lines, each of which contains one token. For the bibliography entries shown in Section~\ref{sec:intro}, here is what the output looks like; the long lines have been wrapped by a backslash-newline% \index{backslash-newline} to fit in these narrow journal columns: % \begin{verbatim} # line 1 "stdin" 2 AT "@" 18 STRING "String" 11 LBRACE "{" 1 ABBREV "pub-AW" 6 EQUALS "=" # line 2 "stdin" 19 VALUE "\"Ad{\\-d}i{\\-s}on-Wes{\ \\-l}ey\"" 15 RBRACE "}" # line 4 "stdin" 13 NEWLINE "\n" 13 NEWLINE "\n" 2 AT "@" 5 ENTRY "Book" 11 LBRACE "{" 10 KEY "Lamport:LDP85" 3 COMMA "," 13 NEWLINE "\n" # line 5 "stdin" 7 FIELD "author" 6 EQUALS "=" 19 VALUE "\"Leslie Lamport\"" 3 COMMA "," 13 NEWLINE "\n" # line 6 "stdin" 7 FIELD "title" 6 EQUALS "=" # line 8 "stdin" 19 VALUE "\"{\\LaTeX}---{A} Docume\ nt Preparation System---User's Guide and \ Reference Manual\"" 3 COMMA "," 13 NEWLINE "\n" # line 9 "stdin" 7 FIELD "publisher" 6 EQUALS "=" 1 ABBREV "pub-AW" 3 COMMA "," 13 NEWLINE "\n" # line 10 "stdin" 7 FIELD "year" 6 EQUALS "=" 19 VALUE "\"1985\"" 3 COMMA "," 13 NEWLINE "\n" # line 11 "stdin" 7 FIELD "ISBN" 6 EQUALS "=" 19 VALUE "\"0-201-15790-X\"" 3 COMMA "," 13 NEWLINE "\n" # line 12 "stdin" 15 RBRACE "}" # line 13 "stdin" 13 NEWLINE "\n" \end{verbatim} \TOKENINDEX{TOKEN_ABBREV}% \TOKENINDEX{TOKEN_AT}% \TOKENINDEX{TOKEN_COMMA}% \TOKENINDEX{TOKEN_ENTRY}% \TOKENINDEX{TOKEN_EQUALS}% \TOKENINDEX{TOKEN_FIELD}% \TOKENINDEX{TOKEN_KEY}% \TOKENINDEX{TOKEN_LBRACE}% \TOKENINDEX{TOKEN_NEWLINE}% \TOKENINDEX{TOKEN_RBRACE}% \TOKENINDEX{TOKEN_STRING}% \TOKENINDEX{TOKEN_VALUE}% \index{Lamport, Leslie}% % Each line begins with a small integer token type% \index{token!type} number for the convenience of computer programs, then a token type name for human readers, followed by a quoted token string.% \index{token!string} Lines beginning with a sharp,% \index{sharp@sharp ({\tt\char35})} \verb=#=, are ANSI\slash ISO Standard C preprocessor% \index{preprocessor} line-number directives% \index{line!number directive} \cite[Section~3.8.4]{ANSI:c89}% \index{ANSI/ISO Standard C@ANSI\slash ISO Standard C} to record the input line number and file name. There are currently 19 token types% \index{token!type} defined in the documentation that accompanies \BIBCLEAN{}. Because \BibTeX{} styles can define new field names, there is little point in the lexical analyzer of attempting to classify field names more precisely; that job is left for other software. Inside quoted strings, the ANSI\slash ISO Standard C \cite[Section~3.1.3.4]{ANSI:c89}% \index{ANSI/ISO Standard C@ANSI\slash ISO Standard C} backslash escape sequences% \index{escape sequence} shown in Table~\ref{tab:escape} on page~\pageref{tab:escape} are used to encode non-printable characters. In this way, a multi-line string value can be represented on a single line. This is convenient for string-searching applications. If the long output lines prove a problem on some systems, the \OPTION{max-width nnn} command-line option can be used to wrap lines% \index{wrapping!of long lines}% \index{line!wrapping} at a specified column number by the insertion of a backslash-newline% \index{backslash-newline} pair. As a simple example of how this token stream might be processed, the \UNIX{} command pipeline% \index{pipeline} % \begin{verbatim} bibclean -no-prettyprint mylib.bib | \ awk '$2 == "KEY" {print $3}' | \ sed -e 's/"//g' | \ sort \end{verbatim} will extract a sorted list of all citation keys in the file \path=mylib.bib=. As a more complex example, consider locating duplicate abbreviations and citation keys in a large collection of bibliography files. This is a daunting task if it must be done by visual scanning of the files. It took me less than 10 minutes to write and debug a 35-line \PROGRAM{nawk} \cite{Aho:APL87}% \index{Aho, Alfred V.}% \index{Kernighan, Brian W.}% \index{Weinberger, Peter J.} program (15 lines of comments, 20 of code) that processed the token stream from \BIBCLEAN{} and printed warnings about such duplicates. The processing steps can be represented by the simple \UNIX{} pipeline % \begin{verbatim} bibclean -no-prettyprint bibfiles | \ tr '[A-Z]' '[a-z]' | \ nawk -f bibdup.awk \end{verbatim} \PATHINDEX{tr}% \PATHINDEX{bibclean}% \PATHINDEX{bibdup.awk}% \PATHINDEX{nawk}% \PATHINDEX{tr}% % \noindent which is most conveniently encapsulated in a command script so that it can be invoked more simply as % \begin{verbatim} bibdup *.bib \end{verbatim} % \PATHINDEX{bibdup}% \noindent to produce output like this: % \begin{verbatim} Duplicate string abbreviation ["pub-aw"]: # line 1 "ll.bib" # line 141 "master.bib" Duplicate key ["lamport:ldp85"]: # line 4 "ll.bib" # line 4172 "master.bib" ... \end{verbatim} \BibTeX{}'s grammar is somewhat hazy, so it is not easy to perform a lexical analysis without some context sensitivity. \BIBCLEAN{} therefore produces the lexical token stream merely as an alternate output format. In particular, this means that any requested run-time formatting options will have been applied to the tokens {\em before\/} they are output to the lexical token stream. For example, a \SCRIBE{} bibliography file can be converted to a \BibTeX{} token stream so that software that processes \BIBCLEAN{}'s output need not be \SCRIBE{}-aware. \section{Portability} \index{portability}% \index{testing}% \BIBCLEAN{} is written in ANSI\slash ISO Standard C \cite{ANSI:c89}% \index{ANSI/ISO Standard C@ANSI\slash ISO Standard C} with great care taken to produce maximum portability. It has been successfully tested with more than 30 different compilers on all major workstation, and one mainframe, \UNIX{} systems, plus \VAX{} \VMS{}, \PCDOS{}, \OSTWO{}, and Atari% \index{Atari} \TOS{}. The C programming language has become the language of choice today for most personal computer and \UNIX{} software development, and the increasing availability of C implementations conforming to the 1989 Standard \cite{ANSI:c89}% \index{ANSI/ISO Standard C@ANSI\slash ISO Standard C} makes it easier to write code that will compile and run without modification on a wide variety of systems. C does not have Pascal's% \index{Pascal} problems with character strings and dynamic memory allocation that forced Don Knuth% \index{Knuth, Donald E.} to implement the \WEB{} string pool% \index{string!pool} feature and to use compile-time array allocation in the \TeX{} software development. C's rich operator syntax, its powerful run-time library, and generally excellent operating-system interfaces have made it widely popular. More than a million copies of the first edition of {\em The C Programming Language\/} book \cite{Kernighan:CPL78}% \index{Kernighan, Brian W.}% \index{Ritchie, Dennis M.} have been sold, and the second edition \cite{Kernighan:CPL88} may do even better. Nevertheless, C has some serious problems. Philippe Kahn,% \index{Kahn, Philippe} the founder of Borland International,% \index{Borland International} has called C a {\em write-only\/} language. Two books have been written about its syntactical peculiarities \cite{Feuer:CPB89,% Koenig:CTP89},% \index{Feuer, Alan~R.}% \index{Koenig, Andrew} and one of them has already appeared in a second edition. The only way to overcome these problems is meticulous care in programming, and experience with as many compilers and computer architectures as possible. Several books offer valuable advice on C portability \cite{Harbison:CAR91,% Jaeschke:PCL89,% Lapin:PCU87,% Plauger:SCL92,% Rabinowitz:PC90,% Rochkind:AUP85,% Stevens:UNP90}. \index{Harbison, Samuel P.}% \index{Steele Jr., Guy L.}% \index{Jaeschke, Rex}% \index{Lapin, J. E.}% \index{Plauger, P. J.}% \index{Rabinowitz, Henry}% \index{Schaap, Chaim}% \index{Rochkind, Marc J.}% \index{Stevens, W. Richard} C++% \index{C++} \cite{Ellis:ACR90,% Stroustrup:CPL91}% \index{Ellis, Margaret A.}% \index{Stroustrup, Bjarne} is an extension of C to support object-oriented programming,% \index{object-oriented programming} and has an enthusiastic following. ANSI\slash ISO standardization efforts are in progress, sadly while the language is still evolving. From the point of view of a C programmer, the advantage of C++ over C is its much stricter checking of type conversions and intermodule interfaces. \BIBCLEAN{} has been carefully written to be compilable under C++ as well as C, and to date, has been tested with more than a dozen C++ and Objective C% \index{Objective C} (another C superset) compilers. % DEC Alpha AXP OSF/1 % g++ (DECstation ULTRIX, NeXT, SGI, Sun) % HP BSD 4.3 % HP UX % IBM 3090 % IBM PS/2 % IBM RS/6000 % SGI % Sun % Turbo C++ All of the extra features of the C++ language are strictly avoided, because using them would seriously limit \BIBCLEAN{}'s portability. Not only is the syntax of the C++ language under evolution, but the C++ class libraries% \index{class library} are for the most part {\em completely dependent\/} on the particular implementation. Microsoft's 1020-page documentation of its C++ class library is 10\% larger than that of its C run-time library. Nevertheless, I {\em strongly recommend\/} use of C++ compilers in preference to C compilers, so as to catch bugs at compile time that would otherwise not be found until post-mortem dump% \index{dump!post-mortem}% \index{post-mortem dump}% \index{core dump} time, or when the code is ported to a new architecture. \section{\protect\SCRIBE{} bibliography format}% \label{sec:scribe} The \SCRIBE{} document formatting system \cite{Reid:SUM80}% \index{Reid, Brian} greatly influenced \LaTeX{} and \BibTeX{}, as well as the GNU Emacs% \index{GNU!Emacs}% \index{Emacs} \TeX{}info system.% \index{GNU!texinfo@\protect\TeX{}info}% \index{texinfo@\protect\TeX{}info} With care, it is possible to share bibliography files between \SCRIBE{} and \BibTeX{}. Nevertheless, there are some differences, so here is a summary of features of the \SCRIBE{} bibliography file format. We record them because they are difficult to determine from the published manual, and because readers may sometimes acquire files in this format without having prior exposure to \SCRIBE{}. \begin{enumerate} \item Letter case is not significant in field names and entry names, but case is preserved in value strings. \item In field\slash value pairs, the field and value may be separated by one of three characters: \verb|=|, \verb=/=, or \verb*= = (space). Space may optionally surround these separators. \item Value delimiters% \index{delimiters!in scribe@in \protect\SCRIBE{}} are any of these seven pairs: \verb={ }=, \verb=[ ]=, \verb=( )=, \verb=< >=, \verb=' '=, \verb=" "=, and \verb=` `=. \item\label{item:4} Value delimiters may not be nested, even though with the first four delimiter pairs, nested balanced delimiters would be unambiguous. \item Delimiters can be omitted around values that contain only letters, digits, sharp (\verb=#=), ampersand (\verb=&=), period (\verb=.=), and percent (\verb=%=). \item Outside of delimited values, a literal at-sign% \index{at-sign} (\TT{\char64}) is represented by doubled at-signs (\TT{\char64\char64}). \item Bibliography entries begin with \TT{\char64name}, as for \BibTeX{}, but any of the seven \SCRIBE{} value delimiter pairs may be used to surround the values in field\slash value pairs. As in (\ref{item:4}), nested delimiters are forbidden. \item Arbitrary space may separate entry names from the following delimiters. \item \TT{\char64Comment} is a special command whose delimited value is discarded. As in (\ref{item:4}), nested delimiters are forbidden. \item The special form % \begin{verbatim} @Begin{comment} ... @End{comment} \end{verbatim} % permits encapsulating arbitrary text containing any characters or delimiters, other than \TT{\char64End\optbreak\protect\{comment\protect\}}. Any of the seven delimiter pairs may be used around the word \TT{comment} following the \TT{\char64Begin} or \TT{\char64End}; the delimiters in the two cases need not be the same, and consequently, \TT{\char64Begin\optbreak\protect\{comment\protect\}}\slash \TT{\char64End\optbreak\protect\{comment\protect\}} pairs may not be nested. \item The \TT{key} field is required in each bibliography entry. \item A backslashed quote% \index{backslash-quote}% \index{escape sequence} in a string will be assumed to be a \TeX{} accent, and braced appropriately. While such accents do not conform to \SCRIBE{} syntax, \SCRIBE{}-format bibliographies have been found that appear to be intended for \TeX{} processing. \end{enumerate} Because of this loose syntax, \BIBCLEAN{}'s normal error detection heuristics are less effective, and consequently, \SCRIBE{} mode input is not the default; it must be explicitly requested. \section{Recommendations for \protect\BibTeX{} design}% \label{sec:recommendations} The documentation available for \BibTeX{} leaves several points about the input syntax unclear, and I had to obtain answers to the following questions by experiment: \begin{itemize} \item Can an at-sign occur inside a \TT{\char64Comment\optbreak\protect\{...\protect\}}? {\em No}. \item Can string abbreviation names be used on the right-hand side of string definitions? {\em Yes}. \item Can the argument of \TT{\char64String} be empty? {\em No}. \item Can a citation key be omitted in an entry? {\em No}. \item Can the list of assignments in an entry be empty? {\em Yes}. \item Can a \TT{\char64Comment\optbreak\protect\{...\protect\}} occur between arbitrary tokens? {\em No}. \item Are newlines preserved in the argument of a \TT{\char64Preamble\optbreak\protect\{...\protect\}}? The answer is relevant if the user includes \TeX{} comments in the preamble material. {\em No}. \end{itemize} I view the experimental answers to these questions as pure happenstance, and could reasonably argue for the opposite answers to the ones obtained. \subsection*{Grammar} \index{grammar}% The most important recommendation that I can make for the next version of \BibTeX{} is that it {\em must\/} have a rigorous grammar, including a well-defined comment syntax. The grammar can almost be of the simple class LL(0)% \index{LL(0) grammar}% \index{grammar!LL(0)} \cite{Aho:CPT86},% \index{Aho, Alfred V.}% \index{Sethi, Ravi}% \index{Ullman, Jeffrey D.} requiring no lookahead during parsing, and one-character lookahead during lexical analysis. However, the presence of the string concatenation operator complicates things sufficiently to require at least an LL(1) grammar.% \index{LL(1)!grammar}% \index{grammar!LL(1)} Such grammars are straightforward to handle with either hand-coded parsers, or with parsers automatically generated from grammar files by compiler development tools like the \UNIX{} \PROGRAM{lex} \cite{Lesk:lex}% \index{Lesk, Michael E.}% \index{Schmidt, Eric} and \PROGRAM{yacc} \cite{Johnson:yacc,% Levine:LY92,% Mason:LY90,% Schreiner:ICC85}% \index{Johnson, Steven C.}% \index{Levine, John R.}% \index{Mason, Tony}% \index{Brown, Doug}% \index{Schreiner, Axel T.}% \index{Friedman, Jr., H. George} programs, or the Free Software Foundation% \index{Free Software Foundation} equivalents, \PROGRAM{flex} and \PROGRAM{bison}.% \PROGRAM{yacc} and \PROGRAM{bison} implement LALR(1) parsers;% \index{LALR(1)!parser}% \index{parser!LALR(1)} the acronym stands for ``Look-Ahead at most 1 token with a Left-to-Right derivation''. These are simpler than the LR($k$) grammars% \index{LR($k$) grammar}% \index{grammar!LR($k$)} introduced by none other than the author of \TeX{} in the fundamental paper on the theory of parsing \cite{Knuth:j-IC-8-6-607}.% \index{Knuth, Donald E.} Nevertheless, they are sufficient for a broad class of language grammars, including most major programming languages, and importantly, they produce compact, efficient, fast, and reliable parsers. LL(1) grammars% \index{LL(1)!grammar}% \index{grammar!LL(1)} are a special case of LALR(1) grammars,% \index{LALR(1)!grammar}% \index{grammar!LALR(1)} and we will later define a \BibTeX{} grammar in LALR(1) form in Section~\ref{sec:yacc-grammar}. \subsection*{Comment syntax} The comment syntax% \index{comment!syntax} should preferably be identical to that of \TeX{}, so that a comment runs from percent to end-of-line, and then {\em additionally gobbles all leading horizontal space on the next line, up to, but not including, its end-of-line}. This permits breaking of long lines without having to destroy indentation that is so necessary for readability. Percent-initiated comments are already supported in \BibTeX{} style files, though such comments end after the first following newline. For \SCRIBE{} compatibility, \BibTeX{} should also support a \TT{\char64Comment\optbreak\protect\{...\protect\}} entry type. This will require additions to {\em all\/} \BibTeX{} style files, since the entry types are known there, and not in the \BibTeX{} code itself. \BibTeX{} 0.99c already knows about \TT{\char64Comment\optbreak\protect\{...\protect\}}, but the \WEB{} code section ``Process a \verb=comment= command'' will have to be extended to deal with the grammar changes. It is important that \BibTeX{} not discard \TT{\char64Comment\optbreak\protect\{...\protect\}} entries, because it would then not be possible to write a \BibTeX{} style file that converted a bibliography file to another format without loss of information. One such style already exists to convert \BibTeX{} files to \UNIX{} \PROGRAM{bib}\slash \PROGRAM{refer} format. \subsection*{Characters in names} The characters that can appear in key, entry, and field names {\em must\/} be defined by enumeration, rather than by exclusion, as is currently done \cite[Section~B.1.3]{Lamport:LDP85}.% \index{Lamport, Leslie} The reason is that character sets vary between computers, and the new, and very much larger, ISO10646M character set% \index{ISO10646M character set} may be widely available in this decade. These variations make the set of admissible name characters vary between systems, compromising portability. I strongly recommend following the conventions for identifiers in widely-used programming languages to define the grammar of key, entry, and field names. It seems to me that letters, digits, colon, hyphen, and possibly plus and slash, should be adequate, and names should be required to begin with a letter. `Letter' here should include {\em only\/} the 26 Roman letters `A' through `Z', because allowing letters from other alphabets opens a horrid can of worms that will seriously impact portability of bibliography files until the computer world has a single uniform character set. I tested this set of characters against 92~500 entries in local bibliography files, and found only a few keys that used other characters: the new ones were period% \index{period!in citation key} and apostrophe% \index{apostrophe!in citation key} (e.g.\ O'Malley:TB92). They might therefore be permitted as well, though I would prefer to omit them, and retrofit changes in a few citation keys. The characters permitted in citation keys should be the same as those in entry and field names, so as to avoid user confusion. \subsection*{Error reporting} \index{error!reporting}% When \BibTeX{} begins to collect a token, it should record the current line number.% \index{line!number} When an unclosed string% \index{runaway string argument}% \index{string!runaway} later causes internal buffer overflow,% \index{buffer overflow}% \index{overflow of string buffer} it could report something like {\tt String buffer overflow on input lines 24--82} that would better help locate the offending string by giving its starting and ending line numbers. To simplify error recovery in such cases, \BibTeX{} could additionally require that the \TT{\char64} character that starts a new entry must be the first non-space character on a line. \subsection*{File inclusion} \BibTeX{} sorely needs a file inclusion% \index{file!inclusion} facility. With \BibTeX{} 0.99c, this feature is available in a crude fashion by listing several files in the \CS{bibliography} command. However, this is not sufficiently general, and requires unnecessary knowledge on the part of the user of the bibliography. The author of a \BibTeX{} file should be free to restructure it into subfiles without requiring modifications to all documents that use it. File inclusion is important to allow sharing of common material, such as \TT{\char64String\optbreak\protect\{...\protect\}} definitions. \SCRIBE{} uses the form % \begin{verbatim} @Include{filename} \end{verbatim} % and \BibTeX{} should too. It must be possible to nest file inclusions to a reasonable depth, at least five levels. \section{A lexical grammar for \protect \BibTeX{}}% \label{sec:lex-grammar} \index{grammar!lexical}% \index{lexical grammar}% To test the recommendations of Section~\ref{sec:recommendations}, I wrote and tested a \PROGRAM{lex} grammar for \BibTeX{}. It took just 22 rules to identify the 19 basic token types. The complete \PROGRAM{lex} file was about 510 lines long, with about 340 lines of C code mostly concerned with the input and output of strings, and 120 lines of function and variable declarations. After \PROGRAM{lex} processing, the complete C program was about 1130 lines long; with \PROGRAM{flex}, it is 1700 lines long.% \index{grammar!size of} This program is named \PROGRAM{biblex}, and its output is compatible with that of \BIBCLEAN{} with the \OPTION{no-prettyprint} option. However, it offers none of \BIBCLEAN{}'s other services. The \PROGRAM{lex} grammar is presented in this section in the style of literate programming,% \index{literate programming} with grammar rules interspersed with descriptive text. The index at the end of this document provides an essential feature of a literate program. To my knowledge, no \WEB{} facility yet exists for \PROGRAM{lex} and \PROGRAM{yacc}, so this literate program must be handcrafted. \subsection*{File structure} A \PROGRAM{lex} file has this general structure: \begin{verbatim} definitions %% rules %% user functions \end{verbatim} \index{\%\%@{\protect\tt \%\%}} C declarations and definitions can be included in the declarations part if they are enclosed in \verb=%{=% \index{\%(@{\protect\tt \%\{\iffalse "}\fi}} and \verb=%}=.% \index{\%)@{\protect\tt \iffalse "{\fi \%\}}} Such text is copied verbatim to the output code file, together with additional \PROGRAM{lex}-supplied header code. Running \PROGRAM{lex} on this file produces a C file that can be compiled and linked with a main program from the \PROGRAM{lex} library to produce a working lexical analyzer. Alternatively, the user can write a customized main program which is linked with the \PROGRAM{lex}-generated code to make a functional lexer. In the following subsections, we describe the contents of the definitions and rules parts, but omit the user functions, since they are not relevant to understanding the grammar. \subsection*{Macro definitions} The \PROGRAM{lex} grammar begins with macro definitions.% \index{macro definition!lex@{\tt lex}} \PROGRAM{lex} macros are single letters followed by a regular expression that defines them. In regular expressions,% \index{regular expression!syntax of} square brackets delimit sets of characters, hyphen is used for character ranges inside sets, asterisk means zero or more of the preceding pattern, and plus means one or more. A period% \index{period!in regular expression} represents any character other than a newline. \PROGRAM{lex} macro names are braced% \index{macro use!lex@{\tt lex}} to request expansion when they are used in grammar rules. The first macro, \MACRO{N}, represents the set of characters permitted in \BibTeX{} names of abbreviations, citation keys, entries, and fields. If this set is ever modified, this is the {\em only\/} place where that job has to be done. \begin{verbatim} N [A-Za-z][---A-Za-z0-9:.+/']* \end{verbatim} \noindent It is not reasonable to make this set differ for these four different uses, because the differences are insufficient to distinguish between them lexically. We'll see later that we have to examine surrounding context to tell them apart. Macro \MACRO{O} represents the set of open delimiters that start a \BibTeX{} entry argument. We could extend this grammar for \SCRIBE{} by adding additional characters to the set. \begin{verbatim} O [({] \end{verbatim} Macro \MACRO{W} represents a single horizontal space character.% \index{horizontal space character} \begin{verbatim} W [ \f\r\t\013] \end{verbatim} \noindent Notice that we include formfeed,% \index{formfeed} \ESCAPE{f}, and vertical tab,% \index{vertical!tab} \ESCAPE{v}, in the set of horizontal space characters, even though they produce vertical motion on an output device. The reason is that we want to treat them just like blanks, and distinguish them from newlines, which are handled separately. \PROGRAM{lex} does not recognize the escape sequence \ESCAPE{v}, so we have to reencode it in octal as \ESCAPE{013}. Carriage return,% \index{carriage return} \ESCAPE{r}, is not normally used in \UNIX{} text files, but is common in some other operating systems. On the Apple Macintosh,% \index{Apple Macintosh}% \index{Macintosh!Apple} carriage return is used instead of newline as an end-of-line marker. Fortunately, this will be transparent to us, because the C language requires \cite[Section~2.2.2]{ANSI:c89}% \index{ANSI/ISO Standard C@ANSI\slash ISO Standard C} that the implementation map host line terminators to newline on input, and newline back to host line terminators on output, so we will never see carriage returns on that system. The last macro, \MACRO{S}, represents optional horizontal space. \begin{verbatim} S {W}* \end{verbatim} \subsection*{Format of grammar rules} \index{format!of grammar rules}% \index{grammar!format of rules}% The remainder of the grammar consists of pairs of regular expression patterns and C code to execute when the pattern is matched. \PROGRAM{lex} uses a ``maximal munch'' strategy in matching the longest possible sequence to handle the case where two rules have common leading patterns. In the grammar file, the pairs are each written on a single line, but we wrap lines% \index{wrapping!of long lines}% \index{line!wrapping} here to fit in the narrow journal columns, with the backslash-newline% \index{backslash-newline} convention used earlier. \subsection*{{\tt @} token} The first grammar rule says that an \TT{\char64} character should be recognized as the token named \TOKEN{TOKEN_AT}. \begin{verbatim} [@] RETURN (out_token(TOKEN_AT)); \end{verbatim} \MACROINDEX{RETURN}% \FUNCTIONINDEX{out_token}% \TOKENINDEX{TOKEN_AT}% On a successful match, the output function optionally emits the token, then returns its argument as a function value which the lexer in turn returns to the parser. The C \TT{return} statement is hidden inside the \MACRO{RETURN} macro, because for \PROGRAM{yacc} and \PROGRAM{bison}, we need to bias \BIBCLEAN{}'s small integer token values to move them beyond the range of character ordinals. \subsection*{{\tt Comment}, {\tt Include}, {\tt Preamble}, and {\tt String} tokens} The next four rules ignore letter case in matching the words \TT{Comment}, \TT{Include}, \TT{Preamble}, or \TT{String}. If they follow an \verb=@= character, they are identified as special tokens; otherwise, they are regarded as string abbreviation names. \begin{verbatim} [Cc][Oo][Mm][Mm][Ee][Nn][Tt] \ RETURN ((last_token == TOKEN_AT) ? out_token(TOKEN_COMMENT) : out_token(TOKEN_ABBREV)); [Ii][Nn][Cc][Ll][Uu][Dd][Ee]/{S}{O} \ RETURN ((last_token == TOKEN_AT) ? out_token(TOKEN_INCLUDE) : out_token(TOKEN_ABBREV)); [Pp][Rr][Ee][Aa][Mm][Bb][Ll][Ee]/{S}{O} \ RETURN ((last_token == TOKEN_AT) ? out_token(TOKEN_PREAMBLE) : out_token(TOKEN_ABBREV)); [Ss][Tt][Rr][Ii][Nn][Gg]/{S}{O} \ RETURN ((last_token == TOKEN_AT) ? out_token(TOKEN_STRING) : out_token(TOKEN_ABBREV)); \end{verbatim} \MACROINDEX{RETURN}% \VARIABLEINDEX{last_token}% \FUNCTIONINDEX{out_token}% \TOKENINDEX{TOKEN_AT}% \TOKENINDEX{TOKEN_COMMENT}% \TOKENINDEX{TOKEN_INCLUDE}% \TOKENINDEX{TOKEN_PREAMBLE}% \TOKENINDEX{TOKEN_STRING}% Although \PROGRAM{lex} supports examination of trailing context in order to identify tokens more precisely, the presence of arbitrary whitespace and in-line comments in this grammar makes it impossible to use this feature. The output routines remember the last non-space, non-comment token seen in order to make use of leading context to assist in token identification. \subsection*{Abbreviation, entry, field, and key tokens} Several token types are recognized by a match with the name macro, \MACRO{N}. Since the same set of characters can occur in abbreviations,% \index{abbreviation} entry names,% \index{entry!name} field names,% \index{field name} and key names, \index{key name} we have to use the record of leading context to distinguish between the various possibilities. \begin{verbatim} {N} { if (last_object == TOKEN_STRING) RETURN(out_token(TOKEN_ABBREV)); switch (last_token) { case TOKEN_COMMA: RETURN(out_token(TOKEN_FIELD)); case TOKEN_LBRACE: RETURN(out_token(TOKEN_KEY)); case TOKEN_AT: RETURN(out_token(TOKEN_ENTRY)); default: RETURN(out_token(TOKEN_ABBREV)); } } \end{verbatim} \MACROINDEX{RETURN}% \VARIABLEINDEX{last_object}% \VARIABLEINDEX{last_token}% \FUNCTIONINDEX{out_token}% \TOKENINDEX{TOKEN_ABBREV}% \TOKENINDEX{TOKEN_COMMA}% \TOKENINDEX{TOKEN_ENTRY}% \TOKENINDEX{TOKEN_FIELD}% \TOKENINDEX{TOKEN_KEY}% \TOKENINDEX{TOKEN_STRING}% In the event of errors in the input stream, this identification of token types may be unreliable; such errors will be detected later in the parsing program. \subsection*{Digit string} A {\em digit string\/}% \index{digit string} is an undelimited value string. The output function will supply the missing quotation mark delimiters, so that all strings take a standard form. \begin{verbatim} [0-9]+ RETURN (out_protected_string( \ TOKEN_VALUE)); \end{verbatim} \MACROINDEX{RETURN}% \FUNCTIONINDEX{out_protected_string}% \TOKENINDEX{TOKEN_VALUE}% \subsection*{In-line comment token} A percent initiates an {\em in-line comment\/}% \index{in-line comment}% \index{comment!in-line} that continues to the end of line and then over all leading horizontal space on the next line. \begin{verbatim} [%].*[\n]{S} \ RETURN (out_token(TOKEN_INLINE)); \end{verbatim} \MACROINDEX{RETURN}% \FUNCTIONINDEX{out_token}% \TOKENINDEX{TOKEN_INLINE}% Because this pattern marks the start of a new token, the previous token has already been terminated. Thus, an line-line comment {\em cannot\/} split a token. The same is true for \TeX{} macros, though not for ordinary \TeX{} text. \subsection*{String concatenation token} A sharp% \index{sharp@sharp ({\tt\char35})} sign is the \BibTeX{} {\em string concatenation operator}.% \index{string!concatenation operator}% \index{operator!string concatenation} \begin{verbatim} [#] RETURN (out_token(TOKEN_SHARP)); \end{verbatim} \MACROINDEX{RETURN}% \FUNCTIONINDEX{out_token}% \TOKENINDEX{TOKEN_SHARP}% \subsection*{Delimited string token} A quotation mark initiates a {\em delimited string}.% \index{delimited string} \begin{verbatim} ["] RETURN (out_string()); \end{verbatim} \MACROINDEX{RETURN}% \FUNCTIONINDEX{out_string}% The complete string must be collected by the C function \FUNCTION{out_string} because regular expressions cannot count balanced delimiters. \BibTeX{}'s quoted string syntax is a little unusual, in that an embedded quote% \index{embedded quote}% \index{quote!embedded} is not represented by double quotes, as in Fortran, or by an escape sequence,% \index{escape sequence} as in C, but rather by putting the quote character in braces. \subsection*{Brace tokens} Left and right {\em braces\/}% \index{brace} are recognized as single tokens. \begin{verbatim} [{] RETURN (out_lbrace()); [}] RETURN (out_rbrace()); \end{verbatim} \MACROINDEX{RETURN}% \FUNCTIONINDEX{out_rbrace}% \FUNCTIONINDEX{out_lbrace}% The output functions keep track of the current brace level to distinguish between outer braces delimiting a \BibTeX{} entry, and inner braces delimiting a string value, and return \TOKEN{TOKEN_LBRACE}, \TOKEN{TOKEN_LITERAL}, \TOKEN{TOKEN_RBRACE}, or \TOKEN{TOKEN_STRING}, depending on preceding context. \TOKEN{TOKEN_LITERAL} is used for the argument of a \TT{Comment} and \TT{Include} entries, and contains the delimiting braces. \subsection*{Parenthesis tokens} In order to simplify the parser grammar, we remap outer {\em parentheses\/}% \index{parenthesis} delimiting arguments of \BibTeX{} entries to {\em braces}.% \index{brace} However, if the parentheses are not preceded by a valid entry name, they are output instead as single-character tokens of type \TOKEN{TOKEN_LITERAL}. They cannot legally occur in this context, but that error will be detected during the parsing stage. During lexical analysis, we do not want to have any error conditions. \begin{verbatim} [(] RETURN (out_lparen()); [)] RETURN (out_rparen()); \end{verbatim} \FUNCTIONINDEX{out_rparen}% \FUNCTIONINDEX{out_lparen}% To support \SCRIBE{}, we would need to add patterns for other delimiters here. \subsection*{Assignment and separator tokens} The {\em assignment operator\/}% \index{assignment!operator} \index{operator!assignment} and {\em assignment separator\/}% \index{assignment!separator}% \index{separator!assignment} are returned as single tokens. \begin{verbatim} [=] RETURN (out_token(TOKEN_EQUALS)); [,] RETURN (out_token(TOKEN_COMMA)); \end{verbatim} \MACROINDEX{RETURN}% \FUNCTIONINDEX{out_token}% \TOKENINDEX{TOKEN_COMMA}% \TOKENINDEX{TOKEN_EQUALS}% \subsection*{Newline token} A {\em newline\/}% \index{newline} is returned as a separate token because we want to be able to preserve line boundaries so that filter tools that make minimal perturbations on the input stream can be constructed. \begin{verbatim} [\n] RETURN (out_token(TOKEN_NEWLINE)); \end{verbatim} \MACROINDEX{RETURN}% \FUNCTIONINDEX{out_token}% \TOKENINDEX{TOKEN_NEWLINE}% \subsection*{Horizontal space token} Consecutive horizontal space characters% \index{horizontal space character} are returned as a single space token, for the same reason that newlines% \index{newline} are recognized as distinct tokens by the preceding rule. \begin{verbatim} {W}+ RETURN (out_token(TOKEN_SPACE)); \end{verbatim} \MACROINDEX{RETURN}% \FUNCTIONINDEX{out_token}% \TOKENINDEX{TOKEN_SPACE}% \subsection*{Unclassifiable tokens} \index{unclassifiable token}% \index{token!unclassifiable}% Finally, we have a catch-all rule: any character not recognized by one of the preceding rules is returned as a literal single-character token, and will cause an error during the parsing. The regular-expression character period \index{period!in regular expression} matches anything but a newline,% \index{newline} and we already have a rule for newline. \begin{verbatim} . RETURN (out_token(TOKEN_LITERAL)); \end{verbatim} \MACROINDEX{RETURN}% \FUNCTIONINDEX{out_token}% \TOKENINDEX{TOKEN_LITERAL}% \subsection*{Lexical grammar summary} We now have a complete lexical grammar suitable for \PROGRAM{lex} that can complete tokenize an arbitrary input stream containing any character values whatever. The associated C code functions normalize entries by changing outer parentheses to braces, brace string delimiters to quotes, and undelimited digit strings to quoted strings. All string tokens of type \TOKEN{TOKEN_VALUE} output by the lexer will contain surrounding quotes, and any nested quotes will be braced, with proper care taken to handle \ESCAPE{\char34} accent control sequences% \index{accent control sequence} properly. All special characters inside the quoted strings will be represented by the escape sequences given in Table~\ref{tab:escape} on page~\pageref{tab:escape}. Thus, even with a binary input stream, the output of the lexer will contain only printable characters. It must be observed that \PROGRAM{lex} is not capable of handling all 256 8-bit characters. In particular, it treats an ASCII NUL% \index{NUL (0)!in string} (\ESCAPE{0}) in a string as an end-of-file condition. Older versions of \PROGRAM{lex} are not {\em 8-bit clean};% \index{8-bit clean} they will not reliably handle characters 128--255. This latter deficiency is being remedied by the X/Open Consortium% \index{X/Open Consortium} activities to internationalize and standard \UNIX{} applications \cite{xopen:XPG89-1}. \section{A parsing grammar for \protect\BibTeX{}}% \label{sec:yacc-grammar} \index{grammar!parsing}% \index{parsing grammar}% To complete the job, I wrote a \PROGRAM{yacc} grammar for \BibTeX{}. This was considerably more work than the \PROGRAM{lex} grammar, mostly due to my relative inexperience with writing LALR(1) grammars, and it took several days to understand the process well enough to eliminate the grammatical ambiguities that initially plagued me. The final complete \PROGRAM{yacc} program is about 270 lines long, and produces a parser of 760 (\PROGRAM{yacc}) to 1000 (\PROGRAM{bison}) lines, excluding the lexer. The grammar contains just 35 rules.% \index{grammar!size of} Ten of these rules could be eliminated if we arranged for the lexer to discard space% \index{space} and in-line comments,% \index{in-line comment}% \index{comment!in-line} but for a prettyprinter and other \BibTeX{} tools, they must be preserved. This parsing program is called \PROGRAM{bibparse}; it can be used with the output of either \BIBCLEAN{} \OPTION{no-prettyprint}, or \PROGRAM{biblex}. The complete \BibTeX{} grammar is given below, expressed as \PROGRAM{yacc} rules, again in literate programming% \index{literate programming} style. It must be augmented by about 180 lines of C code to provide a working parser. \subsection*{File structure} A \PROGRAM{yacc} file has this general structure: \begin{verbatim} declarations %% rules %% user functions \end{verbatim} \index{\%\%@{\protect\tt \%\%}} C declarations and definitions can be included in the declarations part if they are enclosed in \verb=%{=% \index{\%(@{\protect\tt \%\{\iffalse "}\fi}} and \verb=%}=.% \index{\%)@{\protect\tt \iffalse "{\fi \%\}}} Such text is copied verbatim to the output code file, together with additional \PROGRAM{yacc}-supplied header code. Running \PROGRAM{yacc} on this file produces a C file that can be compiled and linked with the lexical analyzer code to produce a working parser. In the following subsections, we describe the contents of the declarations and rules parts, but omit the declaration C code and the user functions, since they are not relevant to understanding the grammar. \subsection*{Format of grammar rules} \index{format!of grammar rules}% \index{grammar!format of rules}% The grammar rules will be presented in top-down order, from most general, to most particular, since this seems to be the best way to understand the overall structure of the grammar, and to ensure that it describes current \BibTeX{} usage, plus our suggested extensions and clarifications. The colon% \index{colon} in a grammar rule should be read ``is'' or ``produces'', because the rule is also known as a {\em production}. A vertical bar% \index{vertical!bar} separates alternatives, and can be read ``or''. A semicolon% \index{semicolon} terminates the rule. Lower-case letters are used for {\em non-terminals},% \index{non-terminal} which are names of rules in the parser grammar. Upper-case letters are used for {\em terminals},% \index{terminal} which are names of tokens recognized by the lexer. The spacing shown is arbitrary, but conventional for \PROGRAM{yacc} grammars:% \index{grammar!formatting conventions} each rule starts a new line, with the right-hand side indented from the margin, and the semicolon% \index{semicolon} occupies a separate line. \subsection*{Token declarations} The \TT{\%token} declarations merely provide symbolic names for the integer token types returned by the lexer. The values are arbitrary, except that they must exceed 257, and must agree with the definitions in the lexer code. We simply increment the token types output from \BIBCLEAN{} by 1000, matching the offset added in the \MACRO{RETURN} macro in the lexer. \begin{verbatim} %token TOKEN_ABBREV 1001 %token TOKEN_AT 1002 %token TOKEN_COMMA 1003 %token TOKEN_COMMENT 1004 %token TOKEN_ENTRY 1005 %token TOKEN_EQUALS 1006 %token TOKEN_FIELD 1007 %token TOKEN_INCLUDE 1008 %token TOKEN_INLINE 1009 %token TOKEN_KEY 1010 %token TOKEN_LBRACE 1011 %token TOKEN_LITERAL 1012 %token TOKEN_NEWLINE 1013 %token TOKEN_PREAMBLE 1014 %token TOKEN_RBRACE 1015 %token TOKEN_SHARP 1016 %token TOKEN_SPACE 1017 %token TOKEN_STRING 1018 %token TOKEN_VALUE 1019 \end{verbatim} \TOKENINDEX{TOKEN_ABBREV}% \TOKENINDEX{TOKEN_AT}% \TOKENINDEX{TOKEN_COMMA}% \TOKENINDEX{TOKEN_COMMENT}% \TOKENINDEX{TOKEN_ENTRY}% \TOKENINDEX{TOKEN_EQUALS}% \TOKENINDEX{TOKEN_FIELD}% \TOKENINDEX{TOKEN_INCLUDE}% \TOKENINDEX{TOKEN_INLINE}% \TOKENINDEX{TOKEN_KEY}% \TOKENINDEX{TOKEN_LBRACE}% \TOKENINDEX{TOKEN_LITERAL}% \TOKENINDEX{TOKEN_NEWLINE}% \TOKENINDEX{TOKEN_PREAMBLE}% \TOKENINDEX{TOKEN_RBRACE}% \TOKENINDEX{TOKEN_SHARP}% \TOKENINDEX{TOKEN_SPACE}% \TOKENINDEX{TOKEN_STRING}% \TOKENINDEX{TOKEN_VALUE}% \subsection*{Precedence declarations} \index{precedence declaration}% The \TT{\%nonassoc}% \index{nonassoc@{\tt \%nonassoc}} declaration makes the assignment operator% \index{assignment!operator!associativity of}% \index{associativity} non-associative, so input of the form {\tt a = b = c} is illegal. \begin{verbatim} %nonassoc TOKEN_EQUALS \end{verbatim} \TOKENINDEX{TOKEN_EQUALS}% The first \TT{\%left}% \index{left@{\tt \%left}} declaration makes space,% \index{space!associativity of} in-line comment,% \index{in-line comment!associativity of}% \index{comment!in-line!associativity of} and newline% \index{newline!associativity of} tokens left associative, and of equal precedence. \begin{verbatim} %left TOKEN_SPACE TOKEN_INLINE \ TOKEN_NEWLINE \end{verbatim} \TOKENINDEX{TOKEN_INLINE}% \TOKENINDEX{TOKEN_NEWLINE}% \TOKENINDEX{TOKEN_SPACE}% The second \TT{\%left}% \index{left@{\tt \%left}} declaration makes the \BibTeX{} string concatenation character,% \index{string!concatenation operator}% \index{operator!string concatenation} \verb=#=, left associative, and of higher precedence than space,% \index{space!precedence of} in-line comment,% \index{in-line comment!precedence of}% \index{comment!in-line!precedence of} and newline. \begin{verbatim} %left TOKEN_SHARP \end{verbatim} \TOKENINDEX{TOKEN_SHARP}% These precedence settings are crucial for resolving conflicts in this grammar which arise in assignments when the parser has seen an assignment operator and a value. Without the operator precedences, it cannot decide whether to complete the assignment, or to read ahead looking for a concatenation operator. \subsection*{\protect \BibTeX{} file} The beginning of the grammar rules is indicated by a pair of percent characters. \begin{verbatim} %% \end{verbatim} The first rule defines what we are going to parse, namely, a {\em \BibTeX{} file}. The left-hand side of the first rule is known as the grammar's {\em start symbol}. \begin{verbatim} bibtex_file: opt_space | opt_space object_list opt_space ; \end{verbatim} \RULEINDEX{bibtex_file}% \RULEINDEX{object_list}% \RULEINDEX{opt_space}% This rule says that a \BibTeX{} file contains either optional space, or optional space followed by a list of objects followed by optional space. This definition permits a file to be empty, or contain only space tokens, or have leading and trailing space. \subsection*{Object lists} A {\em list of objects\/}% \index{list!of objects}% \index{object!list} is either a single object, or a list of such objects, separated by optional space from another object. \begin{verbatim} object_list: object | object_list opt_space object ; \end{verbatim} \RULEINDEX{opt_space}% \RULEINDEX{object}% \RULEINDEX{object_list}% For LL(1)% \index{LL(1)!parser}% \index{parser!LL(1)} parsers, usually implemented by hand-coded recursive descent programs, this kind of left-recursive rule% \index{left-recursive rule} must be rewritten by standard methods \cite[pp.~47--48, 176--178]{Aho:CPT86}% \index{Aho, Alfred V.}% \index{Sethi, Ravi}% \index{Ullman, Jeffrey D.} to avoid an infinite loop in the parser. In this rule, we would instead define a list as an object, separated by optional space from another list. However, for LALR(1) parsers, left-recursive definitions are preferable, because they avoid parser stack overflow with long lists. \subsection*{Objects} An {\em object\/}% \index{object} is one of the \BibTeX{} \TT{\char64name\protect\{...\protect\}} constructs. Notice that we allow optional space between the \TT{\char64} and the \TT{name}. \begin{verbatim} object: TOKEN_AT opt_space at_object ; \end{verbatim} \RULEINDEX{at_object}% \RULEINDEX{opt_space}% \TOKENINDEX{TOKEN_AT}% \RULEINDEX{object}% In this grammar, we will consistently allow optional space% \index{space!between tokens} between {\em any\/} pair of \BibTeX{} tokens; space is described more precisely below. This convention is easy to remember, and easy to implement in the grammar rules. While it would be possible to include the \TT{\char64} as part of the \TT{name}, making \TT{\char64name} a single lexical token, both \BibTeX{} and \SCRIBE{} permit intervening space, so we cannot collapse the two into a single token. \subsection*{Entry types and error recovery} Here are the possibilities for the \TT{name} following an \TT{\char64}, which we call an \RULE{at_object}. \begin{verbatim} at_object: comment | entry | include | preamble | string | error TOKEN_RBRACE ; \end{verbatim} \TOKENINDEX{TOKEN_RBRACE}% \RULEINDEX{error}% \RULEINDEX{string}% \RULEINDEX{preamble}% \RULEINDEX{include}% \RULEINDEX{entry}% \RULEINDEX{comment}% \RULEINDEX{at_object}% \TT{Comment}, \TT{Include}, \TT{Preamble}, and \TT{String} must be handled separately from other types of entries, like \TT{Article} and \TT{Book}, because their braced arguments have a different syntax. The rule with \RULE{error} is a special one supported by \PROGRAM{yacc} and \PROGRAM{bison}. It says that if an \RULE{at_object} cannot be recognized at the current state of the parse, then the input should be discarded until a right brace is found. An error message% \index{error!message}% \index{message!error} will be issued when this happens, but recovery% \index{error!recovery}% \index{recovery!from error} will be attempted following that right brace. Without this error handling, any input error will immediately terminate the parser, hardly a user-friendly thing to do. This is the only place where we will attempt error repair, although we could certainly do so in other rules, such as in the assignment rule% \index{assignment!rule!error recovery in} below. The goal here is to present a rigorous complete grammar, without additional embellishments that would complicate understanding. \subsection*{Comment entry} \index{comment!entry}% A \BibTeX{} \TT{\char64Comment\optbreak\protect\{...\protect\}} is special in that the only requirement on the argument is that delimiters be balanced. The lexer returns the delimited argument as a single literal string, including the delimiters, and standardizes the delimiters to braces. \begin{verbatim} comment: TOKEN_COMMENT opt_space TOKEN_LITERAL ; \end{verbatim} \TOKENINDEX{TOKEN_LITERAL}% \RULEINDEX{opt_space}% \TOKENINDEX{TOKEN_COMMENT}% \RULEINDEX{comment}% \subsection*{Bibliography entry} A \BibTeX{} {\em bibliography entry}% \index{bibliography!entry} is braced text containing a citation key,% \index{citation!key} a comma,% \index{comma} and a list of assignments.% \index{list!of assignments}% \index{assignment!list} The rules provide for an optional assignment list, and for an optional trailing comma.% \index{trailing context} To shorten the rules, we introduce a subsidiary rule, \RULE{entry_head}, to represent their common prefix. \begin{verbatim} entry: entry_head assignment_list TOKEN_RBRACE | entry_head assignment_list TOKEN_COMMA opt_space TOKEN_RBRACE | entry_head TOKEN_RBRACE ; entry_head: TOKEN_ENTRY opt_space TOKEN_LBRACE opt_space key_name opt_space TOKEN_COMMA opt_space ; \end{verbatim} \RULEINDEX{key_name}% \TOKENINDEX{TOKEN_LBRACE}% \TOKENINDEX{TOKEN_ENTRY}% \TOKENINDEX{TOKEN_COMMA}% \TOKENINDEX{TOKEN_RBRACE}% \RULEINDEX{opt_space}% \RULEINDEX{assignment_list}% \RULEINDEX{entry_head}% \RULEINDEX{entry}% There is no \TT{opt_space} item following \TT{assignment_list} because it is included in the definition of the latter. This infelicity seems to be necessary to obtain a grammar that conforms to the LALR(1)% \index{LALR(1)!grammar}% \index{grammar!LALR(1)} requirements of \PROGRAM{yacc} and \PROGRAM{bison}. \subsection*{Key name} \index{key name}% Because of intervening newlines% \index{newline} and in-line comments,% \index{in-line comment}% \index{comment!in-line} the lexical analyzer cannot always correctly recognize a {\em citation key\/}% \index{citation!key!problems in recognizing} from trailing context.% \index{trailing context} It might instead erroneously identify the token as an abbreviation. We therefore need to account for both possibilities: \typeout{key_name may no longer need to allow for abbrevs}% \begin{verbatim} key_name: TOKEN_KEY | TOKEN_ABBREV ; \end{verbatim} \TOKENINDEX{TOKEN_ABBREV}% \TOKENINDEX{TOKEN_KEY}% \RULEINDEX{key_name}% \subsection*{{\protect\tt Include} entry} \index{file!inclusion}% The \TT{Include} entry is followed by a file name enclosed in balanced braces. \begin{verbatim} include: TOKEN_INCLUDE opt_space TOKEN_LITERAL ; \end{verbatim} \TOKENINDEX{TOKEN_LITERAL}% \RULEINDEX{opt_space}% \TOKENINDEX{TOKEN_INCLUDE}% \RULEINDEX{include}% Because file names% \index{file!name!syntax of} are operating-system dependent, the only restrictions that are placed on the file name are that it cannot contain unbalanced braces, and that it cannot contain leading or trailing space. However, the file name can have embedded space% \index{file!name!space in} if the operating system permits. \BibTeX{} should discard the delimiting braces and surrounding space in the \path=TOKEN_LITERAL= to isolate the file name. It should search for this file in its standard input path, so that the file name need not contain an absolute directory path. This feature is not supported in \BibTeX{} 0.99c, but \BIBCLEAN{} and the lexer and parser recognize it in anticipation of its eventual incorporation. \subsection*{{\protect\tt Preamble} entry} The \TT{Preamble} entry argument is a braced \BibTeX{} string value. \BibTeX{} outputs the argument verbatim, minus the outer delimiters, to the \verb=.bbl=% \PATHINDEX{.bbl} file for \TeX{} to process. \begin{verbatim} preamble: TOKEN_PREAMBLE opt_space TOKEN_LBRACE opt_space value opt_space TOKEN_RBRACE ; \end{verbatim} \TOKENINDEX{TOKEN_RBRACE}% \TOKENINDEX{TOKEN_LBRACE}% \RULEINDEX{value}% \RULEINDEX{opt_space}% \TOKENINDEX{TOKEN_PREAMBLE}% \RULEINDEX{preamble}% \subsection*{{\protect\tt String} entry} The \TT{String} entry argument is a braced single assignment. \begin{verbatim} string: TOKEN_STRING opt_space TOKEN_LBRACE opt_space assignment opt_space TOKEN_RBRACE ; \end{verbatim} \TOKENINDEX{TOKEN_RBRACE}% \RULEINDEX{assignment}% \RULEINDEX{opt_space}% \TOKENINDEX{TOKEN_LBRACE}% \RULEINDEX{opt_space}% \TOKENINDEX{TOKEN_STRING}% \RULEINDEX{string}% \subsection*{Value string} A \BibTeX{} {\em value\/}% \index{value} is a string, which may be a simple value, or a list of strings separated by the string concatenation operator.% \index{string!concatenation operator}% \index{operator!string concatenation} \begin{verbatim} value: simple_value | value opt_space TOKEN_SHARP opt_space simple_value ; \end{verbatim} \RULEINDEX{simple_value}% \TOKENINDEX{TOKEN_SHARP}% \RULEINDEX{opt_space}% \RULEINDEX{simple_value}% \RULEINDEX{value}% \subsection*{Simple values} A {\em simple value\/}% \index{simple value} is either a delimited string,% \index{delimited string} returned by the lexer as a \TOKEN{TOKEN_VALUE}, or a string abbreviation,% \index{abbreviation} returned as a \TOKEN{TOKEN_ABBREV}. \begin{verbatim} simple_value: TOKEN_VALUE | TOKEN_ABBREV ; \end{verbatim} \TOKENINDEX{TOKEN_ABBREV}% \TOKENINDEX{TOKEN_VALUE}% \RULEINDEX{simple_value}% The lexer can distinguish between these two because of the string delimiters. It is up to the parser support code to verify that an abbreviation is actually defined before it is used. \subsection*{Assignment list} The body of most \BibTeX{} entries consists of a list of one or more assignments, separated by commas. Notice that this definition does not provide for an optional trailing comma% \index{comma!optional after assignment} after the last assignment. We handled that above in the rules for \RULE{entry}. \begin{verbatim} assignment_list: assignment | assignment_list TOKEN_COMMA opt_space assignment ; \end{verbatim} \TOKENINDEX{TOKEN_COMMA}% \RULEINDEX{opt_space}% \RULEINDEX{assignment_list}% \RULEINDEX{assignment}% \RULEINDEX{assignment_list}% \subsection*{Assignment} An {\em assignment\/}% \index{assignment} has a left-hand side separated from a value by the assignment operator,% \index{assignment!operator} \index{operator!assignment} \verb|=|. \begin{verbatim} assignment: assignment_lhs opt_space TOKEN_EQUALS opt_space value opt_space ; \end{verbatim} \RULEINDEX{value}% \TOKENINDEX{TOKEN_EQUALS}% \RULEINDEX{opt_space}% \RULEINDEX{assignment_lhs}% \RULEINDEX{assignment}% Trailing optional space is included here, and omitted before the comma in \TT{assignment_list}, in order to allow the LALR(1) parser to successfully distinguish between space between a value and a comma, and space between a value and a string concatenation operator. My initial version of this grammar did not have this optional space item, and the resulting parser proved unable to recognize input in which a space separated a value from a comma or closing brace; it took quite a bit of experimentation to determine how to rewrite the grammar to remove this problem. The left-hand side of an assignment is either a field name,% \index{field name} like \TT{author} or \TT{title}, or a string abbreviation% \index{abbreviation} name. The lexer must distinguish between the two by remembering the last entry type seen, because they are made up of exactly the same set of possible characters. \begin{verbatim} assignment_lhs: TOKEN_FIELD | TOKEN_ABBREV ; \end{verbatim} \TOKENINDEX{TOKEN_ABBREV}% \TOKENINDEX{TOKEN_FIELD}% \RULEINDEX{assignment_lhs}% \subsection*{Optional space} Optional space is either an empty string,% \index{empty!string} here indicated by the \TT{/*...*/} comment, or space. \begin{verbatim} opt_space: /* empty */ | space ; \end{verbatim} \RULEINDEX{space}% \RULEINDEX{/* empty */}% \RULEINDEX{opt_space}% \subsection*{Space} {\em Space\/}% \index{space} is an important part of the grammar. It is one or more single spaces. \begin{verbatim} space: single_space | space single_space ; \end{verbatim} \RULEINDEX{single_space}% \RULEINDEX{space}% We include space handling to support tools that process \BibTeX{} files and wish to preserve the input form. In normal compiler design, space is recognized by the lexer, and discarded, so the parser never has to deal with it, and the grammar can be considerably simpler. \subsection*{Single space} The final rule of the grammar defines a {\em single space\/}% \index{single space} as a literal space% \index{space} character, or an in-line comment,% \index{in-line comment}% \index{comment!in-line} or a literal newline% \index{newline} character. \begin{verbatim} single_space: TOKEN_SPACE | TOKEN_INLINE | TOKEN_NEWLINE ; \end{verbatim} \TOKENINDEX{TOKEN_NEWLINE}% \TOKENINDEX{TOKEN_INLINE}% \TOKENINDEX{TOKEN_SPACE}% \RULEINDEX{single_space}% Although we could arrange for the lexer to merge \TOKEN{TOKEN_SPACE} and \TOKEN{TOKEN_NEWLINE} into a single token, this would interfere with heuristics used by a prettyprinter to detect empty lines inside string values, which are possibly indicative of missing delimiters.% \index{mismatched delimiters}% \index{delimiters!mismatched} \subsection*{Parsing grammar summary} We have now completed a \PROGRAM{yacc} grammar for \BibTeX{} that provides a rigorous grammatical analysis of a stream of tokens recognized by the lexers in Sections~\ref{sec:lexer} and~\ref{sec:lex-grammar}. Notice that there is no character-string processing whatever in the parser, because it has all been done in the lexer. Parsing operations just manipulate small integer values. In this version, no actions have been supplied as C code fragments in the \PROGRAM{yacc} grammar. The only output of the parser will be the token stream from the lexer, interspersed by error messages when the input fails to match a grammar rule. Error recovery has been kept simple: input is flushed to the next closing brace, which is presumably the end of an entry. Braces of type \path=TOKEN_LBRACE=% \TOKENINDEX{TOKEN_LBRACE} and \path=TOKEN_RBRACE=% \TOKENINDEX{TOKEN_RBRACE} do not occur except around apparent entries in the lexer output; other braces are returned as tokens of type \path=TOKEN_LITERAL=.% \TOKENINDEX{TOKEN_LITERAL} No more than one token of lookahead is required by this grammar, although the lexer often looked several characters ahead to examine trailing context% \index{trailing context} in order to distinguish between otherwise similar tokens. \BibTeX{} users should be able to read this grammar and decide whether a questionable \BibTeX{} construct is legal or not, without having to resort to software experiments as I did to clarify fuzzy grammatical points. \section{Software availability} The source code% \index{source code} and documentation% \index{documentation} for \BIBCLEAN{} are in the {\em public domain}, in the interests of the widest availability and greatest benefit to the \TeX{} community. Commercial vendors of \TeX{}ware are encouraged to include \BIBCLEAN{} with their distributions. The distribution also includes the separate complete lexer and parser grammar and code, which can be processed by \PROGRAM{lex} or \PROGRAM{flex}, and \PROGRAM{yacc} or \PROGRAM{bison}, respectively. The output C code from these tools is included so that recipients need not have them installed to actually compile and run the lexer and parser. If you have Internet anonymous% \index{anonymous ftp@anonymous {\tt ftp}} \PROGRAM{ftp} access, you can retrieve the distribution in a variety of archive formats from the machine \path=ftp.math.utah.edu=% \PATHINDEX{ftp.math.utah.edu} in the directory \path=pub/tex/bib=.% \PATHINDEX{pub/tex/bib} Major \TeX{} Internet archive hosts% \index{Internet archive hosts}% \index{archive hosts!Internet} around the world will also have \BIBCLEAN{}, but the author's site will always have the most up-to-date version. If you lack \PROGRAM{ftp} capability but have electronic mail% \index{electronic mail server} access, a message to \path=tuglib@math.utah.edu=% \PATHINDEX{tuglib\char64math.utah.edu} with the text % \begin{verbatim} help send index from tex/bib \end{verbatim} \TTINDEX{send}% \TTINDEX{help}% % will get you started. The \BIBCLEAN{} distribution includes a substantial collection of torture tests% \index{testing} that should be run at installation time to verify correctness. As with the \TeX{} \PROGRAM{trip} and \MF{} \PROGRAM{trap} tests, this testing has proved valuable in uncovering problems before the code is installed for general use. \bibliography{bibclean} \index{command-line options|see{options}}% \index{concatenation|see{string}}% \index{editor|see{Emacs}}% \index{lexer|see{lexical analyzer}}% \index{macro|seealso{control sequence}} \index{run-time options|see{options}}% \index{text editor|see{Emacs}}% \index{token|see{terminal}}% \printindex \makesignature \end{document} %%% This is for GNU Emacs file-specific customization: %%% Local Variables: %%% fill-column: 50 %%% abbrev-mode: t %%% eval: (define-abbrev LaTeX-mode-abbrev-table "bc" "\\BIBCLEAN{}" nil) %%% eval: (define-abbrev LaTeX-mode-abbrev-table "unix" "\\UNIX{}" nil) %%% eval: (define-abbrev LaTeX-mode-abbrev-table "scribe" "\\SCRIBE{}" nil) %%% eval: (local-set-key "_" (quote self-insert-command)) %%% eval: (modify-syntax-entry ?\_ "w") %%% eval: (setq LaTeX-index-start-with-newline t) %%% eval: (setq LaTeX-index-end-with-newline t) %%% eval: (setq LaTeX-index-macro nil) %%% End: bibclean-3.07/doc/bibclean.idx0000644000156700015670000015542107721774205015141 0ustar beebebeebe\indexentry{Scribe@{\sc Scribe}}{395} \indexentry{bibclean@{\tt bibclean}}{395} \indexentry{Lamport, Leslie}{395} \indexentry{citation!key}{395} \indexentry{string!substitution}{395} \indexentry{Lamport, Leslie}{396} \indexentry{control sequence!bibliographystyle@{\tt \char 92\relax bibliographystyle}}{396} \indexentry{bibliographystyle@{\tt \char 92\relax bibliographystyle}}{396} \indexentry{citation!style}{396} \indexentry{bibliography!style}{396} \indexentry{control sequence!bibliography@{\tt \char 92\relax bibliography}}{396} \indexentry{bibliography@{\tt \char 92\relax bibliography}}{396} \indexentry{auxiliary file}{396} \indexentry{bibliography!file}{396} \indexentry{file!bibliography}{396} \indexentry{bibliography!style}{396} \indexentry{style!bibliography}{396} \indexentry{control sequence!cite@{\tt \char 92\relax cite}}{396} \indexentry{cite@{\tt \char 92\relax cite}}{396} \indexentry{control sequence!bibliography@{\tt \char 92\relax bibliography}}{396} \indexentry{bibliography@{\tt \char 92\relax bibliography}}{396} \indexentry{control sequence!cite@{\tt \char 92\relax cite}}{396} \indexentry{cite@{\tt \char 92\relax cite}}{396} \indexentry{GNU!Emacs}{396} \indexentry{Emacs}{396} \indexentry{Cameron, Debra}{396} \indexentry{Rosenblatt, Bill}{396} \indexentry{template!editor}{396} \indexentry{pop-up menu}{396} \indexentry{menu!pop-up}{396} \indexentry{UNIX@{\sc UNIX}}{396} \indexentry{VAX@{\sc VAX}}{396} \indexentry{VMS@{\sc VMS}}{396} \indexentry{PC-DOS@{\sc PC-DOS}}{396} \indexentry{SGML@{\sc SGML}}{396} \indexentry{Bryan, Martin}{396} \indexentry{van Herwijnen, Eric}{396} \indexentry{Herwijnen, Eric van}{396} \indexentry{TUG bibliography collection}{396} \indexentry{TUGboat@{\protect\TUB{}}}{396} \indexentry{TUG Resource Directory}{396} \indexentry{Beebe, Nelson H. F.}{396} \indexentry{bibclean@{\tt bibclean}}{396} \indexentry{UNIX@{\sc UNIX}}{397} \indexentry{lexical analysis}{397} \indexentry{token}{397} \indexentry{parsing}{397} \indexentry{code generation}{397} \indexentry{interpretation of code}{397} \indexentry{front end}{397} \indexentry{back end}{397} \indexentry{Free Software Foundation}{397} \indexentry{C++}{397} \indexentry{Objective C}{397} \indexentry{bibclean@{\tt bibclean}}{397} \indexentry{lexical analyzer}{397} \indexentry{prettyprinter}{397} \indexentry{bibclean@{\tt bibclean}}{397} \indexentry{bibliography!file}{397} \indexentry{file!bibliography}{397} \indexentry{VAX@{\sc VAX}}{397} \indexentry{VMS@{\sc VMS}}{397} \indexentry{PC-DOS@{\sc PC-DOS}}{397} \indexentry{author@{\tt -author}}{397} \indexentry{option!author@{\tt -author}}{397} \indexentry{standard error unit}{397} \indexentry{stderr@{\tt stderr}}{397} \indexentry{file!stderr@{\tt stderr}}{397} \indexentry{error-log filename@{\tt -error-log filename}}{397} \indexentry{option!error-log filename@{\tt -error-log filename}}{397} \indexentry{stderr@{\tt stderr}}{397} \indexentry{file!stderr@{\tt stderr}}{397} \indexentry{message!redirecting}{397} \indexentry{error!message!redirecting}{397} \indexentry{warning message!redirecting}{397} \indexentry{stderr@{\tt stderr}}{397} \indexentry{file!stderr@{\tt stderr}}{397} \indexentry{help {\prm or} -?@{\tt -help {\prm or} -?}}{397} \indexentry{option!help {\prm or} -?@{\tt -help {\prm or} -?}}{397} \indexentry{message!help}{397} \indexentry{stderr@{\tt stderr}}{397} \indexentry{file!stderr@{\tt stderr}}{397} \indexentry{init-file filename@{\tt -init-file filename}}{397} \indexentry{option!init-file filename@{\tt -init-file filename}}{397} \indexentry{initialization file}{397} \indexentry{file!initialization}{397} \indexentry{PATH@{\tt PATH}}{397} \indexentry{file!PATH@{\tt PATH}}{397} \indexentry{VAX@{\sc VAX}}{397} \indexentry{VMS@{\sc VMS}}{397} \indexentry{SYS\pdollar SYSTEM@{\tt SYS\pdollar SYSTEM}}{397} \indexentry{file!SYS\pdollar SYSTEM@{\tt SYS\pdollar SYSTEM}}{397} \indexentry{BIBINPUTS@{\tt BIBINPUTS}}{397} \indexentry{file!BIBINPUTS@{\tt BIBINPUTS}}{397} \indexentry{environment variable}{397} \indexentry{BIBCLEANINI@{\tt BIBCLEANINI}}{397} \indexentry{file!BIBCLEANINI@{\tt BIBCLEANINI}}{397} \indexentry{.bibcleanrc@{\tt .bibcleanrc}}{397} \indexentry{file!.bibcleanrc@{\tt .bibcleanrc}}{397} \indexentry{UNIX@{\sc UNIX}}{397} \indexentry{bibclean.ini@{\tt bibclean.ini}}{397} \indexentry{file!bibclean.ini@{\tt bibclean.ini}}{397} \indexentry{max-width nnn@{\tt -max-width nnn}}{397} \indexentry{option!max-width nnn@{\tt -max-width nnn}}{397} \indexentry{bibclean@{\tt bibclean}}{397} \indexentry{line!width limit}{397} \indexentry{decimal}{397} \indexentry{octal}{397} \indexentry{hexadecimal}{397} \indexentry{max-width 0@{\tt -max-width 0}}{397} \indexentry{option!max-width 0@{\tt -max-width 0}}{397} \indexentry{no-prettyprint@{\tt -no-prettyprint}}{397} \indexentry{option!no-prettyprint@{\tt -no-prettyprint}}{397} \indexentry{bibclean@{\tt bibclean}}{397} \indexentry{bibclean@{\tt bibclean}}{398} \indexentry{wrapping!of long lines}{398} \indexentry{line!wrapping}{398} \indexentry{Knuth, Donald E.}{398} \indexentry{bibclean@{\tt bibclean}}{398} \indexentry{bibclean@{\tt bibclean}}{398} \indexentry{backslash-newline}{398} \indexentry{check-values@{\tt -check-values}}{398} \indexentry{option!check-values@{\tt -check-values}}{398} \indexentry{no-check-values@{\tt -no-check-values}}{398} \indexentry{option!no-check-values@{\tt -no-check-values}}{398} \indexentry{warning message!disabling}{398} \indexentry{delete-empty-values@{\tt -delete-empty-values}}{398} \indexentry{option!delete-empty-values@{\tt -delete-empty-values}}{398} \indexentry{no-delete-empty-values@{\tt -no-delete-empty-values}}{398} \indexentry{option!no-delete-empty-values@{\tt -no-delete-empty-values}}{398} \indexentry{empty!values!deleting}{398} \indexentry{remove-OPT-prefixes@{\tt -remove-OPT-prefixes}}{398} \indexentry{option!remove-OPT-prefixes@{\tt -remove-OPT-prefixes}}{398} \indexentry{no-remove-OPT-prefixes@{\tt -no-remove-OPT-prefixes}}{398} \indexentry{option!no-remove-OPT-prefixes@{\tt -no-remove-OPT-prefixes}}{398} \indexentry{file-position@{\tt -file-position}}{398} \indexentry{option!file-position@{\tt -file-position}}{398} \indexentry{no-file-position@{\tt -no-file-position}}{398} \indexentry{option!no-file-position@{\tt -no-file-position}}{398} \indexentry{fix-font-changes@{\tt -fix-font-changes}}{398} \indexentry{option!fix-font-changes@{\tt -fix-font-changes}}{398} \indexentry{no-fix-font-changes@{\tt -no-fix-font-changes}}{398} \indexentry{option!no-fix-font-changes@{\tt -no-fix-font-changes}}{398} \indexentry{font changes!fixing}{398} \indexentry{bibclean@{\tt bibclean}}{398} \indexentry{bibclean@{\tt bibclean}}{398} \indexentry{fix-font-changes@{\tt -fix-font-changes}}{398} \indexentry{option!fix-font-changes@{\tt -fix-font-changes}}{398} \indexentry{fix-initials@{\tt -fix-initials}}{398} \indexentry{option!fix-initials@{\tt -fix-initials}}{398} \indexentry{no-fix-initials@{\tt -no-fix-initials}}{398} \indexentry{option!no-fix-initials@{\tt -no-fix-initials}}{398} \indexentry{author name!period after initials}{398} \indexentry{editor name!period after initials}{398} \indexentry{fix-names@{\tt -fix-names}}{398} \indexentry{option!fix-names@{\tt -fix-names}}{398} \indexentry{no-fix-names@{\tt -no-fix-names}}{398} \indexentry{option!no-fix-names@{\tt -no-fix-names}}{398} \indexentry{author name!reordering}{398} \indexentry{editor name!reordering}{398} \indexentry{par-breaks@{\tt -par-breaks}}{398} \indexentry{option!par-breaks@{\tt -par-breaks}}{398} \indexentry{no-par-breaks@{\tt -no-par-breaks}}{398} \indexentry{option!no-par-breaks@{\tt -no-par-breaks}}{398} \indexentry{runaway string argument}{398} \indexentry{string!runaway}{398} \indexentry{mismatched delimiters}{398} \indexentry{delimiters!mismatched}{398} \indexentry{prettyprint@{\tt -prettyprint}}{398} \indexentry{option!prettyprint@{\tt -prettyprint}}{398} \indexentry{no-prettyprint@{\tt -no-prettyprint}}{398} \indexentry{option!no-prettyprint@{\tt -no-prettyprint}}{398} \indexentry{bibclean@{\tt bibclean}}{398} \indexentry{prettyprinter}{398} \indexentry{lexical analyzer}{398} \indexentry{print-patterns@{\tt -print-patterns}}{398} \indexentry{option!print-patterns@{\tt -print-patterns}}{398} \indexentry{no-print-patterns@{\tt -no-print-patterns}}{398} \indexentry{option!no-print-patterns@{\tt -no-print-patterns}}{398} \indexentry{initialization file!patterns in}{398} \indexentry{file!initialization!patterns in}{398} \indexentry{bibclean@{\tt bibclean}}{398} \indexentry{read-init-files@{\tt -read-init-files}}{398} \indexentry{option!read-init-files@{\tt -read-init-files}}{398} \indexentry{no-read-init-files@{\tt -no-read-init-files}}{398} \indexentry{option!no-read-init-files@{\tt -no-read-init-files}}{398} \indexentry{initialization file}{398} \indexentry{file!initialization}{398} \indexentry{init-file filename@{\tt -init-file filename}}{398} \indexentry{option!init-file filename@{\tt -init-file filename}}{398} \indexentry{remove-OPT-prefixes@{\tt -remove-OPT-prefixes}}{399} \indexentry{option!remove-OPT-prefixes@{\tt -remove-OPT-prefixes}}{399} \indexentry{no-remove-OPT-prefixes@{\tt -no-remove-OPT-prefixes}}{399} \indexentry{option!no-remove-OPT-prefixes@{\tt -no-remove-OPT-prefixes}}{399} \indexentry{OPT- prefix@{\tt OPT-} prefix!removing}{399} \indexentry{GNU!Emacs}{399} \indexentry{Emacs}{399} \indexentry{delete-empty-values@{\tt -delete-empty-values}}{399} \indexentry{option!delete-empty-values@{\tt -delete-empty-values}}{399} \indexentry{no-delete-empty-values@{\tt -no-delete-empty-values}}{399} \indexentry{option!no-delete-empty-values@{\tt -no-delete-empty-values}}{399} \indexentry{scribe@{\tt -scribe}}{399} \indexentry{option!scribe@{\tt -scribe}}{399} \indexentry{no-scribe@{\tt -no-scribe}}{399} \indexentry{option!no-scribe@{\tt -no-scribe}}{399} \indexentry{Scribe@{\sc Scribe}}{399} \indexentry{trace-file-opening@{\tt -trace-file-opening}}{399} \indexentry{option!trace-file-opening@{\tt -trace-file-opening}}{399} \indexentry{no-trace-file-opening@{\tt -no-trace-file-opening}}{399} \indexentry{option!no-trace-file-opening@{\tt -no-trace-file-opening}}{399} \indexentry{error!log file}{399} \indexentry{file!error log}{399} \indexentry{bibclean@{\tt bibclean}}{399} \indexentry{initialization file!locating}{399} \indexentry{file!initialization!locating}{399} \indexentry{warnings@{\tt -warnings}}{399} \indexentry{option!warnings@{\tt -warnings}}{399} \indexentry{no-warnings@{\tt -no-warnings}}{399} \indexentry{option!no-warnings@{\tt -no-warnings}}{399} \indexentry{warning message!disabling}{399} \indexentry{message!disabling warning}{399} \indexentry{version@{\tt -version}}{399} \indexentry{option!version@{\tt -version}}{399} \indexentry{program!version}{399} \indexentry{version!of program}{399} \indexentry{stderr@{\tt stderr}}{399} \indexentry{file!stderr@{\tt stderr}}{399} \indexentry{prettyprinting}{399} \indexentry{bibclean@{\tt bibclean}}{399} \indexentry{Scribe@{\sc Scribe}}{399} \indexentry{bibclean@{\tt bibclean}}{399} \indexentry{file-position@{\tt -file-position}}{399} \indexentry{option!file-position@{\tt -file-position}}{399} \indexentry{bibclean@{\tt bibclean}}{399} \indexentry{fix-font-changes@{\tt -fix-font-changes}}{399} \indexentry{option!fix-font-changes@{\tt -fix-font-changes}}{399} \indexentry{no-par-breaks@{\tt -no-par-breaks}}{399} \indexentry{option!no-par-breaks@{\tt -no-par-breaks}}{399} \indexentry{ISBN (International Standard Book Number)}{399} \indexentry{ISSN (International Standard Serial Number)}{399} \indexentry{TUG bibliography collection}{399} \indexentry{fix-names@{\tt -fix-names}}{400} \indexentry{option!fix-names@{\tt -fix-names}}{400} \indexentry{Bach, P. D. Q.}{400} \indexentry{Schickele, Peter}{400} \indexentry{fix-initials@{\tt -fix-initials}}{400} \indexentry{option!fix-initials@{\tt -fix-initials}}{400} \indexentry{check-values@{\tt -check-values}}{400} \indexentry{option!check-values@{\tt -check-values}}{400} \indexentry{check-values@{\tt -check-values}}{400} \indexentry{option!check-values@{\tt -check-values}}{400} \indexentry{trace-file-opening@{\tt -trace-file-opening}}{400} \indexentry{option!trace-file-opening@{\tt -trace-file-opening}}{400} \indexentry{bibclean@{\tt bibclean}}{400} \indexentry{@@{\tt @}}{400} \indexentry{@@{\tt @}}{400} \indexentry{bibclean@{\tt bibclean}}{400} \indexentry{bibclean@{\tt bibclean}}{400} \indexentry{pattern matching}{400} \indexentry{regular expression!pattern matching}{400} \indexentry{pattern matching!regular expression}{400} \indexentry{initialization file}{400} \indexentry{file!initialization}{400} \indexentry{bibclean@{\tt bibclean}}{400} \indexentry{initialization file}{400} \indexentry{file!initialization}{400} \indexentry{program!search path}{400} \indexentry{search path}{400} \indexentry{UNIX@{\sc UNIX}}{400} \indexentry{PC-DOS@{\sc PC-DOS}}{400} \indexentry{PATH@{\tt PATH}}{400} \indexentry{file!PATH@{\tt PATH}}{400} \indexentry{BIBINPUTS@{\tt BIBINPUTS}}{400} \indexentry{file!BIBINPUTS@{\tt BIBINPUTS}}{400} \indexentry{options}{400} \indexentry{init-file filename@{\tt -init-file filename}}{400} \indexentry{option!init-file filename@{\tt -init-file filename}}{400} \indexentry{.ini@{\tt .ini}}{400} \indexentry{file!.ini@{\tt .ini}}{400} \indexentry{BIBCLEANEXT@{\tt BIBCLEANEXT}}{400} \indexentry{file!BIBCLEANEXT@{\tt BIBCLEANEXT}}{400} \indexentry{stdin@{\tt stdin}}{400} \indexentry{file!stdin@{\tt stdin}}{400} \indexentry{no-init-files@{\tt -no-init-files}}{400} \indexentry{option!no-init-files@{\tt -no-init-files}}{400} \indexentry{init-file filename@{\tt -init-file filename}}{400} \indexentry{option!init-file filename@{\tt -init-file filename}}{400} \indexentry{initialization file!nested}{400} \indexentry{file!initialization!nested}{400} \indexentry{init-file filename@{\tt -init-file filename}}{400} \indexentry{option!init-file filename@{\tt -init-file filename}}{400} \indexentry{bibclean@{\tt bibclean}}{400} \indexentry{recursion}{400} \indexentry{backslash-newline}{400} \indexentry{backslash-newline}{400} \indexentry{bibclean@{\tt bibclean}}{401} \indexentry{initialization file!sample}{401} \indexentry{file!sample initialization}{401} \indexentry{UNIX@{\sc UNIX}}{401} \indexentry{escape sequence}{401} \indexentry{\char 34@{\tt \char 92\relax \char 34}}{401} \indexentry{\char 92@{\tt \char 92\relax \char 92}}{401} \indexentry{escape sequence!table}{401} \indexentry{a@{\tt \char 92\relax a}}{401} \indexentry{b@{\tt \char 92\relax b}}{401} \indexentry{f@{\tt \char 92\relax f}}{401} \indexentry{n@{\tt \char 92\relax n}}{401} \indexentry{r@{\tt \char 92\relax r}}{401} \indexentry{t@{\tt \char 92\relax t}}{401} \indexentry{v@{\tt \char 92\relax v}}{401} \indexentry{ooo@{\tt \char 92\relax ooo}}{401} \indexentry{012@{\tt \char 92\relax 012}}{401} \indexentry{0xhh@{\tt \char 92\relax 0xhh}}{401} \indexentry{0x0a@{\tt \char 92\relax 0x0a}}{401} \indexentry{NUL (0)!in string}{401} \indexentry{0@{\tt \char 92\relax 0}}{401} \indexentry{bibclean@{\tt bibclean}}{401} \indexentry{GNU!regexp package@{\tt regexp} package}{401} \indexentry{regexp@{\tt regexp}}{401} \indexentry{file!regexp@{\tt regexp}}{401} \indexentry{X@{\tt X}}{401} \indexentry{number@{\tt number}}{401} \indexentry{initialization file!pattern characters}{402} \indexentry{file!initialization!pattern characters}{402} \indexentry{a@{\tt a}}{402} \indexentry{A@{\tt A}}{402} \indexentry{d@{\tt d}}{402} \indexentry{D@{\tt D}}{402} \indexentry{r@{\tt r}}{402} \indexentry{R@{\tt R}}{402} \indexentry{w@{\tt w}}{402} \indexentry{W@{\tt W}}{402} \indexentry{.@{\tt .}}{402} \indexentry{:@{\tt :}}{402} \indexentry{X@{\tt X}}{402} \indexentry{x@{\tt \char 92\relax x}}{402} \indexentry{x@{\tt x}}{402} \indexentry{x@{\tt x}}{402} \indexentry{x@{\tt x}}{402} \indexentry{x@{\tt x}}{402} \indexentry{x@{\tt x}}{402} \indexentry{bibliography-specific pattern}{402} \indexentry{pattern!bibliography-specific}{402} \indexentry{.ini@{\tt .ini}}{402} \indexentry{file!.ini@{\tt .ini}}{402} \indexentry{empty!pattern}{402} \indexentry{pattern!empty}{402} \indexentry{quote!in pattern}{402} \indexentry{pattern!quotes in}{402} \indexentry{\char 34@{\tt \char 92\relax \char 34}}{402} \indexentry{pattern matching!brace ignored in}{402} \indexentry{brace!ignored in pattern matching}{402} \indexentry{brace!space around}{402} \indexentry{bibclean@{\tt bibclean}}{402} \indexentry{pattern!changing warning message}{402} \indexentry{warning message!changing}{402} \indexentry{format!item}{402} \indexentry{\%\%@{\tt \%\%}}{402} \indexentry{format!item!\%\%@{\tt \%\%}}{402} \indexentry{\%e@{\tt \%e}}{402} \indexentry{format!item!\%e@{\tt \%e}}{402} \indexentry{\%f@{\tt \%f}}{402} \indexentry{format!item!\%f@{\tt \%f}}{402} \indexentry{\%k@{\tt \%k}}{402} \indexentry{format!item!\%k@{\tt \%k}}{402} \indexentry{\%v@{\tt \%v}}{402} \indexentry{format!item!\%v@{\tt \%v}}{402} \indexentry{bibclean@{\tt bibclean}}{402} \indexentry{query (?)!in messages}{402} \indexentry{?}{402} \indexentry{escape sequence!in message text}{402} \indexentry{bibclean@{\tt bibclean}}{402} \indexentry{ISBN@{\tt ISBN}}{402} \indexentry{ISSN@{\tt ISSN}}{402} \indexentry{checksum!in ISBN and ISSN@in {\tt ISBN} and {\tt ISSN}}{402} \indexentry{bibclean@{\tt bibclean}}{402} \indexentry{chapter@{\tt chapter}}{402} \indexentry{number@{\tt number}}{402} \indexentry{pages@{\tt pages}}{402} \indexentry{volume@{\tt volume}}{402} \indexentry{month@{\tt month}}{402} \indexentry{year@{\tt year}}{403} \indexentry{bibclean@{\tt bibclean}}{403} \indexentry{key@{\tt key}}{403} \indexentry{citation!key}{403} \indexentry{no-prettyprint@{\tt -no-prettyprint}}{403} \indexentry{option!no-prettyprint@{\tt -no-prettyprint}}{403} \indexentry{bibclean@{\tt bibclean}}{403} \indexentry{lexical analyzer}{403} \indexentry{prettyprinter}{403} \indexentry{backslash-newline}{403} \indexentry{TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{403} \indexentry{terminal!TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{403} \indexentry{TOKEN_AT@{\tt TOKEN_AT}}{403} \indexentry{terminal!TOKEN_AT@{\tt TOKEN_AT}}{403} \indexentry{TOKEN_COMMA@{\tt TOKEN_COMMA}}{403} \indexentry{terminal!TOKEN_COMMA@{\tt TOKEN_COMMA}}{403} \indexentry{TOKEN_ENTRY@{\tt TOKEN_ENTRY}}{403} \indexentry{terminal!TOKEN_ENTRY@{\tt TOKEN_ENTRY}}{403} \indexentry{TOKEN_EQUALS@{\tt TOKEN_EQUALS}}{403} \indexentry{terminal!TOKEN_EQUALS@{\tt TOKEN_EQUALS}}{403} \indexentry{TOKEN_FIELD@{\tt TOKEN_FIELD}}{403} \indexentry{terminal!TOKEN_FIELD@{\tt TOKEN_FIELD}}{403} \indexentry{TOKEN_KEY@{\tt TOKEN_KEY}}{403} \indexentry{terminal!TOKEN_KEY@{\tt TOKEN_KEY}}{403} \indexentry{TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{403} \indexentry{terminal!TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{403} \indexentry{TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{403} \indexentry{terminal!TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{403} \indexentry{TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{403} \indexentry{terminal!TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{403} \indexentry{TOKEN_STRING@{\tt TOKEN_STRING}}{403} \indexentry{terminal!TOKEN_STRING@{\tt TOKEN_STRING}}{403} \indexentry{TOKEN_VALUE@{\tt TOKEN_VALUE}}{403} \indexentry{terminal!TOKEN_VALUE@{\tt TOKEN_VALUE}}{403} \indexentry{Lamport, Leslie}{403} \indexentry{token!type}{403} \indexentry{token!string}{403} \indexentry{sharp@sharp ({\tt\char35})}{403} \indexentry{preprocessor}{403} \indexentry{line!number directive}{403} \indexentry{ANSI/ISO Standard C@ANSI\slash ISO Standard C}{403} \indexentry{token!type}{403} \indexentry{bibclean@{\tt bibclean}}{403} \indexentry{ANSI/ISO Standard C@ANSI\slash ISO Standard C}{403} \indexentry{escape sequence}{403} \indexentry{max-width nnn@{\tt -max-width nnn}}{404} \indexentry{option!max-width nnn@{\tt -max-width nnn}}{404} \indexentry{wrapping!of long lines}{404} \indexentry{line!wrapping}{404} \indexentry{backslash-newline}{404} \indexentry{UNIX@{\sc UNIX}}{404} \indexentry{pipeline}{404} \indexentry{nawk@{\tt nawk}}{404} \indexentry{Aho, Alfred V.}{404} \indexentry{Kernighan, Brian W.}{404} \indexentry{Weinberger, Peter J.}{404} \indexentry{bibclean@{\tt bibclean}}{404} \indexentry{UNIX@{\sc UNIX}}{404} \indexentry{tr@{\tt tr}}{404} \indexentry{file!tr@{\tt tr}}{404} \indexentry{bibclean@{\tt bibclean}}{404} \indexentry{file!bibclean@{\tt bibclean}}{404} \indexentry{bibdup.awk@{\tt bibdup.awk}}{404} \indexentry{file!bibdup.awk@{\tt bibdup.awk}}{404} \indexentry{nawk@{\tt nawk}}{404} \indexentry{file!nawk@{\tt nawk}}{404} \indexentry{tr@{\tt tr}}{404} \indexentry{file!tr@{\tt tr}}{404} \indexentry{bibdup@{\tt bibdup}}{404} \indexentry{file!bibdup@{\tt bibdup}}{404} \indexentry{bibclean@{\tt bibclean}}{404} \indexentry{Scribe@{\sc Scribe}}{404} \indexentry{bibclean@{\tt bibclean}}{404} \indexentry{Scribe@{\sc Scribe}}{404} \indexentry{portability}{404} \indexentry{testing}{404} \indexentry{bibclean@{\tt bibclean}}{404} \indexentry{ANSI/ISO Standard C@ANSI\slash ISO Standard C}{404} \indexentry{UNIX@{\sc UNIX}}{404} \indexentry{VAX@{\sc VAX}}{404} \indexentry{VMS@{\sc VMS}}{404} \indexentry{PC-DOS@{\sc PC-DOS}}{404} \indexentry{OS/2@{\sc OS/2}}{404} \indexentry{Atari}{404} \indexentry{TOS@{\sc TOS}}{404} \indexentry{UNIX@{\sc UNIX}}{404} \indexentry{ANSI/ISO Standard C@ANSI\slash ISO Standard C}{404} \indexentry{Pascal}{404} \indexentry{Knuth, Donald E.}{404} \indexentry{WEB@{\tt WEB}}{404} \indexentry{string!pool}{404} \indexentry{Kernighan, Brian W.}{404} \indexentry{Ritchie, Dennis M.}{404} \indexentry{Kahn, Philippe}{404} \indexentry{Borland International}{404} \indexentry{Feuer, Alan~R.}{404} \indexentry{Koenig, Andrew}{404} \indexentry{Harbison, Samuel P.}{404} \indexentry{Steele Jr., Guy L.}{404} \indexentry{Jaeschke, Rex}{404} \indexentry{Lapin, J. E.}{404} \indexentry{Plauger, P. J.}{404} \indexentry{Rabinowitz, Henry}{404} \indexentry{Schaap, Chaim}{404} \indexentry{Rochkind, Marc J.}{404} \indexentry{Stevens, W. Richard}{404} \indexentry{C++}{404} \indexentry{Ellis, Margaret A.}{404} \indexentry{Stroustrup, Bjarne}{404} \indexentry{object-oriented programming}{404} \indexentry{bibclean@{\tt bibclean}}{404} \indexentry{Objective C}{404} \indexentry{bibclean@{\tt bibclean}}{404} \indexentry{class library}{404} \indexentry{dump!post-mortem}{405} \indexentry{post-mortem dump}{405} \indexentry{core dump}{405} \indexentry{Scribe@{\sc Scribe}}{405} \indexentry{Scribe@{\sc Scribe}}{405} \indexentry{Reid, Brian}{405} \indexentry{GNU!Emacs}{405} \indexentry{Emacs}{405} \indexentry{GNU!texinfo@\protect\TeX{}info}{405} \indexentry{texinfo@\protect\TeX{}info}{405} \indexentry{Scribe@{\sc Scribe}}{405} \indexentry{Scribe@{\sc Scribe}}{405} \indexentry{Scribe@{\sc Scribe}}{405} \indexentry{delimiters!in scribe@in \protect\SCRIBE{}}{405} \indexentry{at-sign}{405} \indexentry{\char 64@{\tt \char 64}}{405} \indexentry{\char 64\char 64@{\tt \char 64\char 64}}{405} \indexentry{\char 64name@{\tt \char 64name}}{405} \indexentry{Scribe@{\sc Scribe}}{405} \indexentry{\char 64Comment@{\tt \char 64Comment}}{405} \indexentry{\char 64End\penalty 0\{ comment\} @{\tt \char 64End\penalty 0\{ comment\} }}{405} \indexentry{comment@{\tt comment}}{405} \indexentry{\char 64Begin@{\tt \char 64Begin}}{405} \indexentry{\char 64End@{\tt \char 64End}}{405} \indexentry{\char 64Begin\penalty 0\{ comment\} @{\tt \char 64Begin\penalty 0\{ comment\} }}{405} \indexentry{\char 64End\penalty 0\{ comment\} @{\tt \char 64End\penalty 0\{ comment\} }}{405} \indexentry{key@{\tt key}}{405} \indexentry{backslash-quote}{405} \indexentry{escape sequence}{405} \indexentry{Scribe@{\sc Scribe}}{405} \indexentry{Scribe@{\sc Scribe}}{405} \indexentry{bibclean@{\tt bibclean}}{405} \indexentry{Scribe@{\sc Scribe}}{405} \indexentry{\char 64Comment\penalty 0\{ ...\} @{\tt \char 64Comment\penalty 0\{ ...\} }}{405} \indexentry{\char 64String@{\tt \char 64String}}{405} \indexentry{\char 64Comment\penalty 0\{ ...\} @{\tt \char 64Comment\penalty 0\{ ...\} }}{405} \indexentry{\char 64Preamble\penalty 0\{ ...\} @{\tt \char 64Preamble\penalty 0\{ ...\} }}{405} \indexentry{grammar}{405} \indexentry{LL(0) grammar}{405} \indexentry{grammar!LL(0)}{405} \indexentry{Aho, Alfred V.}{405} \indexentry{Sethi, Ravi}{405} \indexentry{Ullman, Jeffrey D.}{405} \indexentry{LL(1)!grammar}{405} \indexentry{grammar!LL(1)}{405} \indexentry{UNIX@{\sc UNIX}}{406} \indexentry{lex@{\tt lex}}{406} \indexentry{Lesk, Michael E.}{406} \indexentry{Schmidt, Eric}{406} \indexentry{yacc@{\tt yacc}}{406} \indexentry{Johnson, Steven C.}{406} \indexentry{Levine, John R.}{406} \indexentry{Mason, Tony}{406} \indexentry{Brown, Doug}{406} \indexentry{Schreiner, Axel T.}{406} \indexentry{Friedman, Jr., H. George}{406} \indexentry{Free Software Foundation}{406} \indexentry{flex@{\tt flex}}{406} \indexentry{bison@{\tt bison}}{406} \indexentry{yacc@{\tt yacc}}{406} \indexentry{bison@{\tt bison}}{406} \indexentry{LALR(1)!parser}{406} \indexentry{parser!LALR(1)}{406} \indexentry{LR($k$) grammar}{406} \indexentry{grammar!LR($k$)}{406} \indexentry{Knuth, Donald E.}{406} \indexentry{LL(1)!grammar}{406} \indexentry{grammar!LL(1)}{406} \indexentry{LALR(1)!grammar}{406} \indexentry{grammar!LALR(1)}{406} \indexentry{comment!syntax}{406} \indexentry{Scribe@{\sc Scribe}}{406} \indexentry{\char 64Comment\penalty 0\{ ...\} @{\tt \char 64Comment\penalty 0\{ ...\} }}{406} \indexentry{\char 64Comment\penalty 0\{ ...\} @{\tt \char 64Comment\penalty 0\{ ...\} }}{406} \indexentry{WEB@{\tt WEB}}{406} \indexentry{\char 64Comment\penalty 0\{ ...\} @{\tt \char 64Comment\penalty 0\{ ...\} }}{406} \indexentry{UNIX@{\sc UNIX}}{406} \indexentry{bib@{\tt bib}}{406} \indexentry{refer@{\tt refer}}{406} \indexentry{Lamport, Leslie}{406} \indexentry{ISO10646M character set}{406} \indexentry{period!in citation key}{406} \indexentry{apostrophe!in citation key}{406} \indexentry{error!reporting}{406} \indexentry{line!number}{406} \indexentry{runaway string argument}{406} \indexentry{string!runaway}{406} \indexentry{buffer overflow}{406} \indexentry{overflow of string buffer}{406} \indexentry{\char 64@{\tt \char 64}}{406} \indexentry{file!inclusion}{406} \indexentry{control sequence!bibliography@{\tt \char 92\relax bibliography}}{406} \indexentry{bibliography@{\tt \char 92\relax bibliography}}{406} \indexentry{\char 64String\penalty 0\{ ...\} @{\tt \char 64String\penalty 0\{ ...\} }}{406} \indexentry{Scribe@{\sc Scribe}}{406} \indexentry{grammar!lexical}{407} \indexentry{lexical grammar}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{flex@{\tt flex}}{407} \indexentry{grammar!size of}{407} \indexentry{biblex@{\tt biblex}}{407} \indexentry{bibclean@{\tt bibclean}}{407} \indexentry{no-prettyprint@{\tt -no-prettyprint}}{407} \indexentry{option!no-prettyprint@{\tt -no-prettyprint}}{407} \indexentry{bibclean@{\tt bibclean}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{literate programming}{407} \indexentry{WEB@{\tt WEB}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{yacc@{\tt yacc}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{\%\%@{\protect\tt \%\%}}{407} \indexentry{\%(@{\protect\tt \%\{\iffalse "}\fi}}{407} \indexentry{\%)@{\protect\tt \iffalse "{\fi \%\}}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{macro definition!lex@{\tt lex}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{regular expression!syntax of}{407} \indexentry{period!in regular expression}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{macro use!lex@{\tt lex}}{407} \indexentry{N@{\tt N}}{407} \indexentry{macro!N@{\tt N}}{407} \indexentry{O@{\tt O}}{407} \indexentry{macro!O@{\tt O}}{407} \indexentry{Scribe@{\sc Scribe}}{407} \indexentry{W@{\tt W}}{407} \indexentry{macro!W@{\tt W}}{407} \indexentry{horizontal space character}{407} \indexentry{formfeed}{407} \indexentry{f@{\tt \char 92\relax f}}{407} \indexentry{vertical!tab}{407} \indexentry{v@{\tt \char 92\relax v}}{407} \indexentry{lex@{\tt lex}}{407} \indexentry{v@{\tt \char 92\relax v}}{407} \indexentry{013@{\tt \char 92\relax 013}}{407} \indexentry{carriage return}{407} \indexentry{r@{\tt \char 92\relax r}}{407} \indexentry{UNIX@{\sc UNIX}}{407} \indexentry{Apple Macintosh}{407} \indexentry{Macintosh!Apple}{407} \indexentry{ANSI/ISO Standard C@ANSI\slash ISO Standard C}{407} \indexentry{S@{\tt S}}{407} \indexentry{macro!S@{\tt S}}{407} \indexentry{format!of grammar rules}{407} \indexentry{grammar!format of rules}{407} \indexentry{lex@{\tt lex}}{408} \indexentry{wrapping!of long lines}{408} \indexentry{line!wrapping}{408} \indexentry{backslash-newline}{408} \indexentry{\char 64@{\tt \char 64}}{408} \indexentry{TOKEN_AT@{\tt TOKEN_AT}}{408} \indexentry{terminal!TOKEN_AT@{\tt TOKEN_AT}}{408} \indexentry{RETURN@{\tt RETURN}}{408} \indexentry{macro!RETURN@{\tt RETURN}}{408} \indexentry{out_token@{\tt out_token()}}{408} \indexentry{function!out_token@{\tt out_token()}}{408} \indexentry{TOKEN_AT@{\tt TOKEN_AT}}{408} \indexentry{terminal!TOKEN_AT@{\tt TOKEN_AT}}{408} \indexentry{return@{\tt return}}{408} \indexentry{RETURN@{\tt RETURN}}{408} \indexentry{macro!RETURN@{\tt RETURN}}{408} \indexentry{yacc@{\tt yacc}}{408} \indexentry{bison@{\tt bison}}{408} \indexentry{bibclean@{\tt bibclean}}{408} \indexentry{Comment@{\tt Comment}}{408} \indexentry{Include@{\tt Include}}{408} \indexentry{Preamble@{\tt Preamble}}{408} \indexentry{String@{\tt String}}{408} \indexentry{RETURN@{\tt RETURN}}{408} \indexentry{macro!RETURN@{\tt RETURN}}{408} \indexentry{last_token@{\tt last_token}}{408} \indexentry{variable!last_token@{\tt last_token}}{408} \indexentry{out_token@{\tt out_token()}}{408} \indexentry{function!out_token@{\tt out_token()}}{408} \indexentry{TOKEN_AT@{\tt TOKEN_AT}}{408} \indexentry{terminal!TOKEN_AT@{\tt TOKEN_AT}}{408} \indexentry{TOKEN_COMMENT@{\tt TOKEN_COMMENT}}{408} \indexentry{terminal!TOKEN_COMMENT@{\tt TOKEN_COMMENT}}{408} \indexentry{TOKEN_INCLUDE@{\tt TOKEN_INCLUDE}}{408} \indexentry{terminal!TOKEN_INCLUDE@{\tt TOKEN_INCLUDE}}{408} \indexentry{TOKEN_PREAMBLE@{\tt TOKEN_PREAMBLE}}{408} \indexentry{terminal!TOKEN_PREAMBLE@{\tt TOKEN_PREAMBLE}}{408} \indexentry{TOKEN_STRING@{\tt TOKEN_STRING}}{408} \indexentry{terminal!TOKEN_STRING@{\tt TOKEN_STRING}}{408} \indexentry{lex@{\tt lex}}{408} \indexentry{N@{\tt N}}{408} \indexentry{macro!N@{\tt N}}{408} \indexentry{abbreviation}{408} \indexentry{entry!name}{408} \indexentry{field name}{408} \indexentry{key name}{408} \indexentry{RETURN@{\tt RETURN}}{408} \indexentry{macro!RETURN@{\tt RETURN}}{408} \indexentry{last_object@{\tt last_object}}{408} \indexentry{variable!last_object@{\tt last_object}}{408} \indexentry{last_token@{\tt last_token}}{408} \indexentry{variable!last_token@{\tt last_token}}{408} \indexentry{out_token@{\tt out_token()}}{408} \indexentry{function!out_token@{\tt out_token()}}{408} \indexentry{TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{408} \indexentry{terminal!TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{408} \indexentry{TOKEN_COMMA@{\tt TOKEN_COMMA}}{408} \indexentry{terminal!TOKEN_COMMA@{\tt TOKEN_COMMA}}{408} \indexentry{TOKEN_ENTRY@{\tt TOKEN_ENTRY}}{408} \indexentry{terminal!TOKEN_ENTRY@{\tt TOKEN_ENTRY}}{408} \indexentry{TOKEN_FIELD@{\tt TOKEN_FIELD}}{408} \indexentry{terminal!TOKEN_FIELD@{\tt TOKEN_FIELD}}{408} \indexentry{TOKEN_KEY@{\tt TOKEN_KEY}}{408} \indexentry{terminal!TOKEN_KEY@{\tt TOKEN_KEY}}{408} \indexentry{TOKEN_STRING@{\tt TOKEN_STRING}}{408} \indexentry{terminal!TOKEN_STRING@{\tt TOKEN_STRING}}{408} \indexentry{digit string}{408} \indexentry{RETURN@{\tt RETURN}}{408} \indexentry{macro!RETURN@{\tt RETURN}}{408} \indexentry{out_protected_string@{\tt out_protected_string()}}{408} \indexentry{function!out_protected_string@{\tt out_protected_string()}}{408} \indexentry{TOKEN_VALUE@{\tt TOKEN_VALUE}}{408} \indexentry{terminal!TOKEN_VALUE@{\tt TOKEN_VALUE}}{408} \indexentry{in-line comment}{408} \indexentry{comment!in-line}{408} \indexentry{RETURN@{\tt RETURN}}{408} \indexentry{macro!RETURN@{\tt RETURN}}{408} \indexentry{out_token@{\tt out_token()}}{408} \indexentry{function!out_token@{\tt out_token()}}{408} \indexentry{TOKEN_INLINE@{\tt TOKEN_INLINE}}{408} \indexentry{terminal!TOKEN_INLINE@{\tt TOKEN_INLINE}}{408} \indexentry{sharp@sharp ({\tt\char35})}{408} \indexentry{string!concatenation operator}{408} \indexentry{operator!string concatenation}{408} \indexentry{RETURN@{\tt RETURN}}{409} \indexentry{macro!RETURN@{\tt RETURN}}{409} \indexentry{out_token@{\tt out_token()}}{409} \indexentry{function!out_token@{\tt out_token()}}{409} \indexentry{TOKEN_SHARP@{\tt TOKEN_SHARP}}{409} \indexentry{terminal!TOKEN_SHARP@{\tt TOKEN_SHARP}}{409} \indexentry{delimited string}{409} \indexentry{RETURN@{\tt RETURN}}{409} \indexentry{macro!RETURN@{\tt RETURN}}{409} \indexentry{out_string@{\tt out_string()}}{409} \indexentry{function!out_string@{\tt out_string()}}{409} \indexentry{out_string@{\tt out_string()}}{409} \indexentry{function!out_string@{\tt out_string()}}{409} \indexentry{embedded quote}{409} \indexentry{quote!embedded}{409} \indexentry{escape sequence}{409} \indexentry{brace}{409} \indexentry{RETURN@{\tt RETURN}}{409} \indexentry{macro!RETURN@{\tt RETURN}}{409} \indexentry{out_rbrace@{\tt out_rbrace()}}{409} \indexentry{function!out_rbrace@{\tt out_rbrace()}}{409} \indexentry{out_lbrace@{\tt out_lbrace()}}{409} \indexentry{function!out_lbrace@{\tt out_lbrace()}}{409} \indexentry{TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{409} \indexentry{terminal!TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{409} \indexentry{TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{409} \indexentry{terminal!TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{409} \indexentry{TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{409} \indexentry{terminal!TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{409} \indexentry{TOKEN_STRING@{\tt TOKEN_STRING}}{409} \indexentry{terminal!TOKEN_STRING@{\tt TOKEN_STRING}}{409} \indexentry{TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{409} \indexentry{terminal!TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{409} \indexentry{Comment@{\tt Comment}}{409} \indexentry{Include@{\tt Include}}{409} \indexentry{parenthesis}{409} \indexentry{brace}{409} \indexentry{TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{409} \indexentry{terminal!TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{409} \indexentry{out_rparen@{\tt out_rparen()}}{409} \indexentry{function!out_rparen@{\tt out_rparen()}}{409} \indexentry{out_lparen@{\tt out_lparen()}}{409} \indexentry{function!out_lparen@{\tt out_lparen()}}{409} \indexentry{Scribe@{\sc Scribe}}{409} \indexentry{assignment!operator}{409} \indexentry{operator!assignment}{409} \indexentry{assignment!separator}{409} \indexentry{separator!assignment}{409} \indexentry{RETURN@{\tt RETURN}}{409} \indexentry{macro!RETURN@{\tt RETURN}}{409} \indexentry{out_token@{\tt out_token()}}{409} \indexentry{function!out_token@{\tt out_token()}}{409} \indexentry{TOKEN_COMMA@{\tt TOKEN_COMMA}}{409} \indexentry{terminal!TOKEN_COMMA@{\tt TOKEN_COMMA}}{409} \indexentry{TOKEN_EQUALS@{\tt TOKEN_EQUALS}}{409} \indexentry{terminal!TOKEN_EQUALS@{\tt TOKEN_EQUALS}}{409} \indexentry{newline}{409} \indexentry{RETURN@{\tt RETURN}}{409} \indexentry{macro!RETURN@{\tt RETURN}}{409} \indexentry{out_token@{\tt out_token()}}{409} \indexentry{function!out_token@{\tt out_token()}}{409} \indexentry{TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{409} \indexentry{terminal!TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{409} \indexentry{horizontal space character}{409} \indexentry{newline}{409} \indexentry{RETURN@{\tt RETURN}}{409} \indexentry{macro!RETURN@{\tt RETURN}}{409} \indexentry{out_token@{\tt out_token()}}{409} \indexentry{function!out_token@{\tt out_token()}}{409} \indexentry{TOKEN_SPACE@{\tt TOKEN_SPACE}}{409} \indexentry{terminal!TOKEN_SPACE@{\tt TOKEN_SPACE}}{409} \indexentry{unclassifiable token}{409} \indexentry{token!unclassifiable}{409} \indexentry{period!in regular expression}{409} \indexentry{newline}{409} \indexentry{RETURN@{\tt RETURN}}{409} \indexentry{macro!RETURN@{\tt RETURN}}{409} \indexentry{out_token@{\tt out_token()}}{409} \indexentry{function!out_token@{\tt out_token()}}{409} \indexentry{TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{409} \indexentry{terminal!TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{409} \indexentry{lex@{\tt lex}}{409} \indexentry{TOKEN_VALUE@{\tt TOKEN_VALUE}}{409} \indexentry{terminal!TOKEN_VALUE@{\tt TOKEN_VALUE}}{409} \indexentry{\char 34@{\tt \char 92\relax \char 34}}{409} \indexentry{accent control sequence}{409} \indexentry{lex@{\tt lex}}{409} \indexentry{NUL (0)!in string}{409} \indexentry{0@{\tt \char 92\relax 0}}{409} \indexentry{lex@{\tt lex}}{409} \indexentry{8-bit clean}{409} \indexentry{X/Open Consortium}{409} \indexentry{UNIX@{\sc UNIX}}{409} \indexentry{grammar!parsing}{410} \indexentry{parsing grammar}{410} \indexentry{yacc@{\tt yacc}}{410} \indexentry{lex@{\tt lex}}{410} \indexentry{yacc@{\tt yacc}}{410} \indexentry{yacc@{\tt yacc}}{410} \indexentry{bison@{\tt bison}}{410} \indexentry{grammar!size of}{410} \indexentry{space}{410} \indexentry{in-line comment}{410} \indexentry{comment!in-line}{410} \indexentry{bibparse@{\tt bibparse}}{410} \indexentry{bibclean@{\tt bibclean}}{410} \indexentry{no-prettyprint@{\tt -no-prettyprint}}{410} \indexentry{option!no-prettyprint@{\tt -no-prettyprint}}{410} \indexentry{biblex@{\tt biblex}}{410} \indexentry{yacc@{\tt yacc}}{410} \indexentry{literate programming}{410} \indexentry{yacc@{\tt yacc}}{410} \indexentry{\%\%@{\protect\tt \%\%}}{410} \indexentry{\%(@{\protect\tt \%\{\iffalse "}\fi}}{410} \indexentry{\%)@{\protect\tt \iffalse "{\fi \%\}}}{410} \indexentry{yacc@{\tt yacc}}{410} \indexentry{yacc@{\tt yacc}}{410} \indexentry{format!of grammar rules}{410} \indexentry{grammar!format of rules}{410} \indexentry{colon}{410} \indexentry{vertical!bar}{410} \indexentry{semicolon}{410} \indexentry{non-terminal}{410} \indexentry{terminal}{410} \indexentry{yacc@{\tt yacc}}{410} \indexentry{grammar!formatting conventions}{410} \indexentry{semicolon}{410} \indexentry{\%token@{\tt \%token}}{410} \indexentry{bibclean@{\tt bibclean}}{410} \indexentry{RETURN@{\tt RETURN}}{410} \indexentry{macro!RETURN@{\tt RETURN}}{410} \indexentry{TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{410} \indexentry{terminal!TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{410} \indexentry{TOKEN_AT@{\tt TOKEN_AT}}{410} \indexentry{terminal!TOKEN_AT@{\tt TOKEN_AT}}{410} \indexentry{TOKEN_COMMA@{\tt TOKEN_COMMA}}{410} \indexentry{terminal!TOKEN_COMMA@{\tt TOKEN_COMMA}}{410} \indexentry{TOKEN_COMMENT@{\tt TOKEN_COMMENT}}{410} \indexentry{terminal!TOKEN_COMMENT@{\tt TOKEN_COMMENT}}{410} \indexentry{TOKEN_ENTRY@{\tt TOKEN_ENTRY}}{410} \indexentry{terminal!TOKEN_ENTRY@{\tt TOKEN_ENTRY}}{410} \indexentry{TOKEN_EQUALS@{\tt TOKEN_EQUALS}}{410} \indexentry{terminal!TOKEN_EQUALS@{\tt TOKEN_EQUALS}}{410} \indexentry{TOKEN_FIELD@{\tt TOKEN_FIELD}}{410} \indexentry{terminal!TOKEN_FIELD@{\tt TOKEN_FIELD}}{410} \indexentry{TOKEN_INCLUDE@{\tt TOKEN_INCLUDE}}{410} \indexentry{terminal!TOKEN_INCLUDE@{\tt TOKEN_INCLUDE}}{410} \indexentry{TOKEN_INLINE@{\tt TOKEN_INLINE}}{410} \indexentry{terminal!TOKEN_INLINE@{\tt TOKEN_INLINE}}{410} \indexentry{TOKEN_KEY@{\tt TOKEN_KEY}}{410} \indexentry{terminal!TOKEN_KEY@{\tt TOKEN_KEY}}{410} \indexentry{TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{410} \indexentry{terminal!TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{410} \indexentry{TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{410} \indexentry{terminal!TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{410} \indexentry{TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{410} \indexentry{terminal!TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{410} \indexentry{TOKEN_PREAMBLE@{\tt TOKEN_PREAMBLE}}{410} \indexentry{terminal!TOKEN_PREAMBLE@{\tt TOKEN_PREAMBLE}}{410} \indexentry{TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{410} \indexentry{terminal!TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{410} \indexentry{TOKEN_SHARP@{\tt TOKEN_SHARP}}{410} \indexentry{terminal!TOKEN_SHARP@{\tt TOKEN_SHARP}}{410} \indexentry{TOKEN_SPACE@{\tt TOKEN_SPACE}}{410} \indexentry{terminal!TOKEN_SPACE@{\tt TOKEN_SPACE}}{410} \indexentry{TOKEN_STRING@{\tt TOKEN_STRING}}{410} \indexentry{terminal!TOKEN_STRING@{\tt TOKEN_STRING}}{410} \indexentry{TOKEN_VALUE@{\tt TOKEN_VALUE}}{410} \indexentry{terminal!TOKEN_VALUE@{\tt TOKEN_VALUE}}{410} \indexentry{precedence declaration}{410} \indexentry{\%nonassoc@{\tt \%nonassoc}}{410} \indexentry{nonassoc@{\tt \%nonassoc}}{410} \indexentry{assignment!operator!associativity of}{410} \indexentry{associativity}{410} \indexentry{TOKEN_EQUALS@{\tt TOKEN_EQUALS}}{410} \indexentry{terminal!TOKEN_EQUALS@{\tt TOKEN_EQUALS}}{410} \indexentry{\%left@{\tt \%left}}{410} \indexentry{left@{\tt \%left}}{410} \indexentry{space!associativity of}{410} \indexentry{in-line comment!associativity of}{410} \indexentry{comment!in-line!associativity of}{410} \indexentry{newline!associativity of}{410} \indexentry{TOKEN_INLINE@{\tt TOKEN_INLINE}}{410} \indexentry{terminal!TOKEN_INLINE@{\tt TOKEN_INLINE}}{410} \indexentry{TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{410} \indexentry{terminal!TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{410} \indexentry{TOKEN_SPACE@{\tt TOKEN_SPACE}}{410} \indexentry{terminal!TOKEN_SPACE@{\tt TOKEN_SPACE}}{410} \indexentry{\%left@{\tt \%left}}{411} \indexentry{left@{\tt \%left}}{411} \indexentry{string!concatenation operator}{411} \indexentry{operator!string concatenation}{411} \indexentry{space!precedence of}{411} \indexentry{in-line comment!precedence of}{411} \indexentry{comment!in-line!precedence of}{411} \indexentry{TOKEN_SHARP@{\tt TOKEN_SHARP}}{411} \indexentry{terminal!TOKEN_SHARP@{\tt TOKEN_SHARP}}{411} \indexentry{bibtex_file@{\tt bibtex_file} rule}{411} \indexentry{non-terminal!bibtex_file@{\tt bibtex_file}}{411} \indexentry{object_list@{\tt object_list} rule}{411} \indexentry{non-terminal!object_list@{\tt object_list}}{411} \indexentry{opt_space@{\tt opt_space} rule}{411} \indexentry{non-terminal!opt_space@{\tt opt_space}}{411} \indexentry{list!of objects}{411} \indexentry{object!list}{411} \indexentry{opt_space@{\tt opt_space} rule}{411} \indexentry{non-terminal!opt_space@{\tt opt_space}}{411} \indexentry{object@{\tt object} rule}{411} \indexentry{non-terminal!object@{\tt object}}{411} \indexentry{object_list@{\tt object_list} rule}{411} \indexentry{non-terminal!object_list@{\tt object_list}}{411} \indexentry{LL(1)!parser}{411} \indexentry{parser!LL(1)}{411} \indexentry{left-recursive rule}{411} \indexentry{Aho, Alfred V.}{411} \indexentry{Sethi, Ravi}{411} \indexentry{Ullman, Jeffrey D.}{411} \indexentry{object}{411} \indexentry{\char 64name\{ ...\} @{\tt \char 64name\{ ...\} }}{411} \indexentry{\char 64@{\tt \char 64}}{411} \indexentry{name@{\tt name}}{411} \indexentry{at_object@{\tt at_object} rule}{411} \indexentry{non-terminal!at_object@{\tt at_object}}{411} \indexentry{opt_space@{\tt opt_space} rule}{411} \indexentry{non-terminal!opt_space@{\tt opt_space}}{411} \indexentry{TOKEN_AT@{\tt TOKEN_AT}}{411} \indexentry{terminal!TOKEN_AT@{\tt TOKEN_AT}}{411} \indexentry{object@{\tt object} rule}{411} \indexentry{non-terminal!object@{\tt object}}{411} \indexentry{space!between tokens}{411} \indexentry{\char 64@{\tt \char 64}}{411} \indexentry{name@{\tt name}}{411} \indexentry{\char 64name@{\tt \char 64name}}{411} \indexentry{Scribe@{\sc Scribe}}{411} \indexentry{name@{\tt name}}{411} \indexentry{\char 64@{\tt \char 64}}{411} \indexentry{at_object@{\tt at_object} rule}{411} \indexentry{non-terminal!at_object@{\tt at_object}}{411} \indexentry{TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{411} \indexentry{terminal!TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{411} \indexentry{error@{\tt error} rule}{411} \indexentry{non-terminal!error@{\tt error}}{411} \indexentry{string@{\tt string} rule}{411} \indexentry{non-terminal!string@{\tt string}}{411} \indexentry{preamble@{\tt preamble} rule}{411} \indexentry{non-terminal!preamble@{\tt preamble}}{411} \indexentry{include@{\tt include} rule}{411} \indexentry{non-terminal!include@{\tt include}}{411} \indexentry{entry@{\tt entry} rule}{411} \indexentry{non-terminal!entry@{\tt entry}}{411} \indexentry{comment@{\tt comment} rule}{411} \indexentry{non-terminal!comment@{\tt comment}}{411} \indexentry{at_object@{\tt at_object} rule}{411} \indexentry{non-terminal!at_object@{\tt at_object}}{411} \indexentry{Comment@{\tt Comment}}{411} \indexentry{Include@{\tt Include}}{411} \indexentry{Preamble@{\tt Preamble}}{411} \indexentry{String@{\tt String}}{411} \indexentry{Article@{\tt Article}}{411} \indexentry{Book@{\tt Book}}{411} \indexentry{error@{\tt error} rule}{411} \indexentry{non-terminal!error@{\tt error}}{411} \indexentry{yacc@{\tt yacc}}{411} \indexentry{bison@{\tt bison}}{411} \indexentry{at_object@{\tt at_object} rule}{411} \indexentry{non-terminal!at_object@{\tt at_object}}{411} \indexentry{error!message}{411} \indexentry{message!error}{411} \indexentry{error!recovery}{411} \indexentry{recovery!from error}{411} \indexentry{assignment!rule!error recovery in}{411} \indexentry{comment!entry}{411} \indexentry{\char 64Comment\penalty 0\{ ...\} @{\tt \char 64Comment\penalty 0\{ ...\} }}{411} \indexentry{TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{412} \indexentry{terminal!TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{412} \indexentry{opt_space@{\tt opt_space} rule}{412} \indexentry{non-terminal!opt_space@{\tt opt_space}}{412} \indexentry{TOKEN_COMMENT@{\tt TOKEN_COMMENT}}{412} \indexentry{terminal!TOKEN_COMMENT@{\tt TOKEN_COMMENT}}{412} \indexentry{comment@{\tt comment} rule}{412} \indexentry{non-terminal!comment@{\tt comment}}{412} \indexentry{bibliography!entry}{412} \indexentry{citation!key}{412} \indexentry{comma}{412} \indexentry{list!of assignments}{412} \indexentry{assignment!list}{412} \indexentry{trailing context}{412} \indexentry{entry_head@{\tt entry_head} rule}{412} \indexentry{non-terminal!entry_head@{\tt entry_head}}{412} \indexentry{key_name@{\tt key_name} rule}{412} \indexentry{non-terminal!key_name@{\tt key_name}}{412} \indexentry{TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{412} \indexentry{terminal!TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{412} \indexentry{TOKEN_ENTRY@{\tt TOKEN_ENTRY}}{412} \indexentry{terminal!TOKEN_ENTRY@{\tt TOKEN_ENTRY}}{412} \indexentry{TOKEN_COMMA@{\tt TOKEN_COMMA}}{412} \indexentry{terminal!TOKEN_COMMA@{\tt TOKEN_COMMA}}{412} \indexentry{TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{412} \indexentry{terminal!TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{412} \indexentry{opt_space@{\tt opt_space} rule}{412} \indexentry{non-terminal!opt_space@{\tt opt_space}}{412} \indexentry{assignment_list@{\tt assignment_list} rule}{412} \indexentry{non-terminal!assignment_list@{\tt assignment_list}}{412} \indexentry{entry_head@{\tt entry_head} rule}{412} \indexentry{non-terminal!entry_head@{\tt entry_head}}{412} \indexentry{entry@{\tt entry} rule}{412} \indexentry{non-terminal!entry@{\tt entry}}{412} \indexentry{opt_space@{\tt opt_space}}{412} \indexentry{assignment_list@{\tt assignment_list}}{412} \indexentry{LALR(1)!grammar}{412} \indexentry{grammar!LALR(1)}{412} \indexentry{yacc@{\tt yacc}}{412} \indexentry{bison@{\tt bison}}{412} \indexentry{key name}{412} \indexentry{newline}{412} \indexentry{in-line comment}{412} \indexentry{comment!in-line}{412} \indexentry{citation!key!problems in recognizing}{412} \indexentry{trailing context}{412} \indexentry{TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{412} \indexentry{terminal!TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{412} \indexentry{TOKEN_KEY@{\tt TOKEN_KEY}}{412} \indexentry{terminal!TOKEN_KEY@{\tt TOKEN_KEY}}{412} \indexentry{key_name@{\tt key_name} rule}{412} \indexentry{non-terminal!key_name@{\tt key_name}}{412} \indexentry{file!inclusion}{412} \indexentry{Include@{\tt Include}}{412} \indexentry{TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{412} \indexentry{terminal!TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{412} \indexentry{opt_space@{\tt opt_space} rule}{412} \indexentry{non-terminal!opt_space@{\tt opt_space}}{412} \indexentry{TOKEN_INCLUDE@{\tt TOKEN_INCLUDE}}{412} \indexentry{terminal!TOKEN_INCLUDE@{\tt TOKEN_INCLUDE}}{412} \indexentry{include@{\tt include} rule}{412} \indexentry{non-terminal!include@{\tt include}}{412} \indexentry{file!name!syntax of}{412} \indexentry{file!name!space in}{412} \indexentry{bibclean@{\tt bibclean}}{412} \indexentry{Preamble@{\tt Preamble}}{412} \indexentry{.bbl@{\tt .bbl}}{412} \indexentry{file!.bbl@{\tt .bbl}}{412} \indexentry{TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{412} \indexentry{terminal!TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{412} \indexentry{TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{412} \indexentry{terminal!TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{412} \indexentry{value@{\tt value} rule}{412} \indexentry{non-terminal!value@{\tt value}}{412} \indexentry{opt_space@{\tt opt_space} rule}{412} \indexentry{non-terminal!opt_space@{\tt opt_space}}{412} \indexentry{TOKEN_PREAMBLE@{\tt TOKEN_PREAMBLE}}{412} \indexentry{terminal!TOKEN_PREAMBLE@{\tt TOKEN_PREAMBLE}}{412} \indexentry{preamble@{\tt preamble} rule}{412} \indexentry{non-terminal!preamble@{\tt preamble}}{412} \indexentry{String@{\tt String}}{412} \indexentry{TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{412} \indexentry{terminal!TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{412} \indexentry{assignment@{\tt assignment} rule}{412} \indexentry{non-terminal!assignment@{\tt assignment}}{412} \indexentry{opt_space@{\tt opt_space} rule}{412} \indexentry{non-terminal!opt_space@{\tt opt_space}}{412} \indexentry{TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{412} \indexentry{terminal!TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{412} \indexentry{opt_space@{\tt opt_space} rule}{412} \indexentry{non-terminal!opt_space@{\tt opt_space}}{412} \indexentry{TOKEN_STRING@{\tt TOKEN_STRING}}{412} \indexentry{terminal!TOKEN_STRING@{\tt TOKEN_STRING}}{412} \indexentry{string@{\tt string} rule}{412} \indexentry{non-terminal!string@{\tt string}}{412} \indexentry{value}{412} \indexentry{string!concatenation operator}{412} \indexentry{operator!string concatenation}{412} \indexentry{simple_value@{\tt simple_value} rule}{412} \indexentry{non-terminal!simple_value@{\tt simple_value}}{412} \indexentry{TOKEN_SHARP@{\tt TOKEN_SHARP}}{412} \indexentry{terminal!TOKEN_SHARP@{\tt TOKEN_SHARP}}{412} \indexentry{opt_space@{\tt opt_space} rule}{412} \indexentry{non-terminal!opt_space@{\tt opt_space}}{412} \indexentry{simple_value@{\tt simple_value} rule}{412} \indexentry{non-terminal!simple_value@{\tt simple_value}}{412} \indexentry{value@{\tt value} rule}{412} \indexentry{non-terminal!value@{\tt value}}{412} \indexentry{simple value}{413} \indexentry{delimited string}{413} \indexentry{TOKEN_VALUE@{\tt TOKEN_VALUE}}{413} \indexentry{terminal!TOKEN_VALUE@{\tt TOKEN_VALUE}}{413} \indexentry{abbreviation}{413} \indexentry{TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{413} \indexentry{terminal!TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{413} \indexentry{TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{413} \indexentry{terminal!TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{413} \indexentry{TOKEN_VALUE@{\tt TOKEN_VALUE}}{413} \indexentry{terminal!TOKEN_VALUE@{\tt TOKEN_VALUE}}{413} \indexentry{simple_value@{\tt simple_value} rule}{413} \indexentry{non-terminal!simple_value@{\tt simple_value}}{413} \indexentry{comma!optional after assignment}{413} \indexentry{entry@{\tt entry} rule}{413} \indexentry{non-terminal!entry@{\tt entry}}{413} \indexentry{TOKEN_COMMA@{\tt TOKEN_COMMA}}{413} \indexentry{terminal!TOKEN_COMMA@{\tt TOKEN_COMMA}}{413} \indexentry{opt_space@{\tt opt_space} rule}{413} \indexentry{non-terminal!opt_space@{\tt opt_space}}{413} \indexentry{assignment_list@{\tt assignment_list} rule}{413} \indexentry{non-terminal!assignment_list@{\tt assignment_list}}{413} \indexentry{assignment@{\tt assignment} rule}{413} \indexentry{non-terminal!assignment@{\tt assignment}}{413} \indexentry{assignment_list@{\tt assignment_list} rule}{413} \indexentry{non-terminal!assignment_list@{\tt assignment_list}}{413} \indexentry{assignment}{413} \indexentry{assignment!operator}{413} \indexentry{operator!assignment}{413} \indexentry{value@{\tt value} rule}{413} \indexentry{non-terminal!value@{\tt value}}{413} \indexentry{TOKEN_EQUALS@{\tt TOKEN_EQUALS}}{413} \indexentry{terminal!TOKEN_EQUALS@{\tt TOKEN_EQUALS}}{413} \indexentry{opt_space@{\tt opt_space} rule}{413} \indexentry{non-terminal!opt_space@{\tt opt_space}}{413} \indexentry{assignment_lhs@{\tt assignment_lhs} rule}{413} \indexentry{non-terminal!assignment_lhs@{\tt assignment_lhs}}{413} \indexentry{assignment@{\tt assignment} rule}{413} \indexentry{non-terminal!assignment@{\tt assignment}}{413} \indexentry{assignment_list@{\tt assignment_list}}{413} \indexentry{field name}{413} \indexentry{author@{\tt author}}{413} \indexentry{title@{\tt title}}{413} \indexentry{abbreviation}{413} \indexentry{TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{413} \indexentry{terminal!TOKEN_ABBREV@{\tt TOKEN_ABBREV}}{413} \indexentry{TOKEN_FIELD@{\tt TOKEN_FIELD}}{413} \indexentry{terminal!TOKEN_FIELD@{\tt TOKEN_FIELD}}{413} \indexentry{assignment_lhs@{\tt assignment_lhs} rule}{413} \indexentry{non-terminal!assignment_lhs@{\tt assignment_lhs}}{413} \indexentry{empty!string}{413} \indexentry{/*...*/@{\tt /*...*/}}{413} \indexentry{space@{\tt space} rule}{413} \indexentry{non-terminal!space@{\tt space}}{413} \indexentry{/* empty */@{\tt /* empty */} rule}{413} \indexentry{non-terminal!/* empty */@{\tt /* empty */}}{413} \indexentry{opt_space@{\tt opt_space} rule}{413} \indexentry{non-terminal!opt_space@{\tt opt_space}}{413} \indexentry{space}{413} \indexentry{single_space@{\tt single_space} rule}{413} \indexentry{non-terminal!single_space@{\tt single_space}}{413} \indexentry{space@{\tt space} rule}{413} \indexentry{non-terminal!space@{\tt space}}{413} \indexentry{single space}{413} \indexentry{space}{413} \indexentry{in-line comment}{413} \indexentry{comment!in-line}{413} \indexentry{newline}{413} \indexentry{TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{413} \indexentry{terminal!TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{413} \indexentry{TOKEN_INLINE@{\tt TOKEN_INLINE}}{413} \indexentry{terminal!TOKEN_INLINE@{\tt TOKEN_INLINE}}{413} \indexentry{TOKEN_SPACE@{\tt TOKEN_SPACE}}{413} \indexentry{terminal!TOKEN_SPACE@{\tt TOKEN_SPACE}}{413} \indexentry{single_space@{\tt single_space} rule}{413} \indexentry{non-terminal!single_space@{\tt single_space}}{413} \indexentry{TOKEN_SPACE@{\tt TOKEN_SPACE}}{413} \indexentry{terminal!TOKEN_SPACE@{\tt TOKEN_SPACE}}{413} \indexentry{TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{413} \indexentry{terminal!TOKEN_NEWLINE@{\tt TOKEN_NEWLINE}}{413} \indexentry{mismatched delimiters}{413} \indexentry{delimiters!mismatched}{413} \indexentry{yacc@{\tt yacc}}{413} \indexentry{yacc@{\tt yacc}}{413} \indexentry{TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{414} \indexentry{terminal!TOKEN_LBRACE@{\tt TOKEN_LBRACE}}{414} \indexentry{TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{414} \indexentry{terminal!TOKEN_RBRACE@{\tt TOKEN_RBRACE}}{414} \indexentry{TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{414} \indexentry{terminal!TOKEN_LITERAL@{\tt TOKEN_LITERAL}}{414} \indexentry{trailing context}{414} \indexentry{source code}{414} \indexentry{documentation}{414} \indexentry{bibclean@{\tt bibclean}}{414} \indexentry{bibclean@{\tt bibclean}}{414} \indexentry{lex@{\tt lex}}{414} \indexentry{flex@{\tt flex}}{414} \indexentry{yacc@{\tt yacc}}{414} \indexentry{bison@{\tt bison}}{414} \indexentry{anonymous ftp@anonymous {\tt ftp}}{414} \indexentry{ftp@{\tt ftp}}{414} \indexentry{ftp.math.utah.edu@{\tt ftp.math.utah.edu}}{414} \indexentry{file!ftp.math.utah.edu@{\tt ftp.math.utah.edu}}{414} \indexentry{pub/tex/bib@{\tt pub/tex/bib}}{414} \indexentry{file!pub/tex/bib@{\tt pub/tex/bib}}{414} \indexentry{Internet archive hosts}{414} \indexentry{archive hosts!Internet}{414} \indexentry{bibclean@{\tt bibclean}}{414} \indexentry{ftp@{\tt ftp}}{414} \indexentry{electronic mail server}{414} \indexentry{tuglib\char 64math.utah.edu@{\tt tuglib\char 64math.utah.edu}}{414} \indexentry{file!tuglib\char 64math.utah.edu@{\tt tuglib\char 64math.utah.edu}}{414} \indexentry{send@{\tt send}}{414} \indexentry{help@{\tt help}}{414} \indexentry{bibclean@{\tt bibclean}}{414} \indexentry{testing}{414} \indexentry{trip@{\tt trip}}{414} \indexentry{trap@{\tt trap}}{414} \indexentry{command-line options|see{options}}{415} \indexentry{concatenation|see{string}}{415} \indexentry{editor|see{Emacs}}{415} \indexentry{lexer|see{lexical analyzer}}{415} \indexentry{macro|seealso{control sequence}}{415} \indexentry{run-time options|see{options}}{415} \indexentry{text editor|see{Emacs}}{415} \indexentry{token|see{terminal}}{415} \indexentry{Scribe@{\sc Scribe}}{417} bibclean-3.07/doc/bibclean.aux0000644000156700015670000001005007721774205015136 0ustar beebebeebe\relax \bibstyle{is-plain} \citation{Lamport:LDP85} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {1}Introduction}{395}} \newlabel{sec:intro}{{1}{395}} \citation{Cameron:LGE91,Schoonover:GEU92} \citation{Bryan:SAG88,vanHerwijnen:PS90} \citation{Beebe:TB12S-2-176,Beebe:TB12S-2-183} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {2}\string\BibTeX\space {} needs improvement}{396}} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {3}Run-time options}{397}} \citation{Knuth:ct-a} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {4}Prettyprinting}{399}} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {5}Pattern matching and initialization files}{400}} \newlabel{sec:init}{{5}{400}} \@writefile{lot}{\string\contentsline\space {table}{\string\numberline\space {1}{\ignorespaces Sample \string\BIBCLEAN\space {} initialization file.}}{401}} \newlabel{tab:initfile}{{1}{401}} \@writefile{lot}{\string\contentsline\space {table}{\string\numberline\space {2}{\ignorespaces Escape sequences in quoted strings.}}{401}} \newlabel{tab:escape}{{2}{401}} \@writefile{lot}{\string\contentsline\space {table}{\string\numberline\space {3}{\ignorespaces Initialization file pattern characters.}}{402}} \newlabel{tab:patterns}{{3}{402}} \citation{ANSI:c89} \citation{ANSI:c89} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {6}Lexical analysis}{403}} \newlabel{sec:lexer}{{6}{403}} \citation{Aho:APL87} \citation{ANSI:c89} \citation{ANSI:c89} \citation{Kernighan:CPL78} \citation{Kernighan:CPL88} \citation{Feuer:CPB89,Koenig:CTP89} \citation{Harbison:CAR91,Jaeschke:PCL89,Lapin:PCU87,Plauger:SCL92,Rabinowitz:PC90,Rochkind:AUP85,Stevens:UNP90} \citation{Ellis:ACR90,Stroustrup:CPL91} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {7}Portability}{404}} \citation{Reid:SUM80} \citation{Aho:CPT86} \citation{Lesk:lex} \citation{Johnson:yacc,Levine:LY92,Mason:LY90,Schreiner:ICC85} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {8}\string\SCRIBE\space {} bibliography format}{405}} \newlabel{sec:scribe}{{8}{405}} \newlabel{item:4}{{4}{405}} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {9}Recommendations for \string\BibTeX\space {} design}{405}} \newlabel{sec:recommendations}{{9}{405}} \citation{Knuth:j-IC-8-6-607} \citation{Lamport:LDP85} \citation{ANSI:c89} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {10}A lexical grammar for \string\BibTeX\space {}}{407}} \newlabel{sec:lex-grammar}{{10}{407}} \citation{xopen:XPG89-1} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {11}A parsing grammar for \string\BibTeX\space {}}{410}} \newlabel{sec:yacc-grammar}{{11}{410}} \citation{Aho:CPT86} \bibdata{bibclean} \bibcite{Aho:APL87}{1} \bibcite{Aho:CPT86}{2} \bibcite{ANSI:c89}{3} \bibcite{Beebe:TB12S-2-176}{4} \bibcite{Beebe:TB12S-2-183}{5} \bibcite{Bryan:SAG88}{6} \bibcite{Cameron:LGE91}{7} \bibcite{Ellis:ACR90}{8} \bibcite{Feuer:CPB89}{9} \bibcite{Harbison:CAR91}{10} \bibcite{Jaeschke:PCL89}{11} \bibcite{Johnson:yacc}{12} \bibcite{Kernighan:CPL78}{13} \bibcite{Kernighan:CPL88}{14} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {12}Software availability}{414}} \@writefile{toc}{\string\contentsline\space {section}{\hbox to\@tempdima {\hfil }References}{414}} \bibcite{Knuth:j-IC-8-6-607}{15} \bibcite{Knuth:ct-a}{16} \bibcite{Koenig:CTP89}{17} \bibcite{Lamport:LDP85}{18} \bibcite{Lapin:PCU87}{19} \bibcite{Lesk:lex}{20} \bibcite{Levine:LY92}{21} \bibcite{Mason:LY90}{22} \bibcite{Plauger:SCL92}{23} \bibcite{Rabinowitz:PC90}{24} \bibcite{Reid:SUM80}{25} \bibcite{Rochkind:AUP85}{26} \bibcite{Schoonover:GEU92}{27} \bibcite{Schreiner:ICC85}{28} \bibcite{Stevens:UNP90}{29} \bibcite{Stroustrup:CPL91}{30} \bibcite{vanHerwijnen:PS90}{31} \bibcite{xopen:XPG89-1}{32} \@writefile{toc}{\string\contentsline\space {section}{\hbox to\@tempdima {\hfil }Index}{415}} bibclean-3.07/doc/bibclean.sok0000644000156700015670000000314306142424535015134 0ustar beebebeebeABBREV AW Aa Aho Atari Axel BIBCLEANEXT BIBCLEANINI BIBINPUTS Bb BibTeX Bjarne Borland C Cc Chaim D Dd Dictyostelium Discoideum Docume E ETURN Ee Emacs F FAX Feuer Gg H Harbison Herwijnen INLINE ISBN ISO ISSN Internet J Jaeschke Kernighan Knuth L LALR LBRACE LDP LL LR LaTeX Lamport Lapin Lesk Ll M Microsoft's Mm N NEWLINE NUL Newline Nn O O'Malley Oo P PC Pascal's Philippe Plauger Pp Prettyprinting Q R RBRACE Rabinowitz Ravi Redirect Rochkind Rosenblatt Rr S SGML SYS Schaap Schickele Schreiner Sethi Sr Ss Stroustrup T TB TUGboat Tel Tt UT Umlaut Unclassifiable Uu V VMS W Weinberger Wes X Z Za aAdDrRwW abbrev abbrevs aw awk b backslashed bbl beebe bibclean bibclean.ini bibcleanrc bibdup bibdup.awk bibfile bibfiles biblex bibliographystyle bibparse bibtex c canoco co compilable cro d daunting dddd dos downcase downcasing e edu ey f filespecific formfeed ftp ftp.math.utah.edu g gobbling handcrafted hazily i ic ictyostelium info ini init initially internationalize iscoideum jul k l lamport lbrace ldp lex lexer lexers lexing lhs linefeed ll ll.bib ll.out lparen ltugboat mColon makeidx makeidx,path,texnames makeidx,path,texnames,bibclean markup master.bib math.utah.edu monoul mybib mybib.bib mybib.new mylib mylib.bib nawk newfile newline newlines nio nnn nonassoc nt o ordinals os path,texnames pc pneu portably ported preprocessor prettyprint prettyprinter prettyprinters prettyprinting r rbrace reencode regexp remap resynchronize rparen s scop sed seealso sgml sil stderr stdin tex texinfo texnames tokenize tr tra tuglib typesets unclassifiable undelimited utah v vms vol whitespace workstation workstations x yacc z bibclean-3.07/doc/bibclean.ps0000644000156700015670000147463107721774206015010 0ustar beebebeebe%!PS-Adobe-2.0 %%Creator: dvips 5.60.1 Copyright 1986, 1996 Radical Eye Software %%Title: bibclean.dvi %%CreationDate: Sat Aug 23 17:28:05 2003 %%Pages: 27 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%DocumentFonts: CMR10 CMBX10 CMCSC10 CMTT10 CMR7 CMSL10 CMTI10 CMSY10 %%+ CMMI10 LOGO10 CMTI7 CMTT9 CMR9 CMSY9 CMTI9 CMMI9 CMSL9 %%EndComments %DVIPSCommandLine: /usr/local/bin/dvips -o bibclean.ps bibclean.dvi %DVIPSParameters: dpi=600, comments removed %DVIPSSource: TeX output 2003.08.23:1728 %%BeginProcSet: tex.pro /TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} forall round exch round exch]setmatrix}N /@landscape{/isls true N}B /@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ /nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ /sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ 128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]} if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict /eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V {}B /RV statusdict begin /product where{pop false[(Display)(NeXT) (LaserWriter 16/600)]{dup length product length le{dup length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false} ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false RMat{BDot} imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}B /d{ -3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w} B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end %%EndProcSet %%BeginProcSet: texps.pro TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2 index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics exch def dict begin Encoding{exch dup type /integertype ne{pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} ifelse}forall Metrics /Metrics currentdict end def[2 index currentdict end definefont 3 -1 roll makefont /setfont load]cvx def}def /ObliqueSlant{dup sin S cos div neg}B /SlantFont{4 index mul add}def /ExtendFont{3 -1 roll mul exch}def /ReEncodeFont{/Encoding exch def}def end %%EndProcSet %%BeginFont: CMSL9 %!PS-AdobeFont-1.1: CMSL9 1.0 %%CreationDate: 1991 Aug 20 16:41:23 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSL9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -9.46 def /isFixedPitch false def end readonly def /FontName /CMSL9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 71 /G put dup 84 /T put dup 85 /U put dup 97 /a put dup 98 /b put dup 111 /o put dup 116 /t put readonly def /FontBBox{-61 -250 1150 750}readonly def /UniqueID 5000797 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65 66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7 695aba81f0260cd5248b9e649cd800bcb325468c79ffacb9cd3036f2ed7bb65d c6f12e33dd6d45b61272314f98990d08c0f8274e999f4b46af4b5c5da923683c 960face50087915d2044d7211a18e0c22967ef89552662ba990e2dfb9267e09e 354f41e871e612a4d94de3c1b4c6c54c7a054fd7cc0696a89c7a397b1d624505 2e0c0ad0c5ce92a01bd0890730e2863ea92bbc1e036dbbd96c7f4f618a83417b 9d46dcc4c226c30353b46dcd3d7f12dcadcd658fb2fa858840c4a0b11ed519ee b77ad0fbfd18b449569ef3b18afcbd697d436ea1bc3234bd0aeec1aac6eaa487 043657562d0042f41fd9c42dd2b59f4aaef65a9ff83abcefd8f6df3748cf9dbb bda9e56e15ae7a6081894bb385baeeada06923f9c1948ca5076b83ca75d17844 83cf2522178ec7a96a495a21f9188c0c190651ae49eadfcb5a1574032e34137d 29bd1dfac2cc8b2f3e0b31491cb4faa1d861839f6ab105692e579a236a85a4a2 dec3274ee7e793af7946191bcb7cd853fd38dcc02266138af3ba0de0741ac0e7 4d83d57e5a522a7ed1ef9774b6b913e10081436d2f3beea6722d2e285ce94d15 8511306020455c85e6698dd9ce31711423e1f09e7178ea99f7b0aa452e1abaa2 263a474a7804c21b5687d42443e071736a6bb3ea787a0e632785b252d4f83484 1f630abb6a705ca58310a344acd2e9996f2c374c618758d9ebd68703cd1eced0 9b6d2c7de8158dc15d8330e5efd3bec45d193baf0c36c98e0d23ce267a2c99af 6b003f14b42e6ce4c82ee16010685c7eeca24d7c5794bf91fe7034b551077511 45c7cf84e39cc38f909251caf99c29dc463c1510c782fd92902761f7557fde57 7e5ba583cadc053198a401763b8d02c261407bda072acb6ae6c78a050419d8bd 2f5759012ee9f75c4829b206e6198d760f088c96c788037653e69cde13535f6e e9e7c58ac288e8dac50b19ff7b482ed2208089c1f68114d6d9e2655ccd3b757b 2572f313c96b6cb65d9dbad351afb3f5d93acf1c44a757dab9bcca8104b39234 12a4d22d15fbd5881e4cadc108c735865540cbdb5823b905ccf4891b68e0c598 2365de94459665da801316fffe1d4bd822524e6386cc5010a72a0db608ba791c ca8d256b725fea97ee47a0a2dc9e8446fa9bd351da8d40628eba0da0be568d0e 89f353f045ae0ed91f58fe83215f8f10b59bef6d02b2627735d537cc1ae7c8c7 358bc8bc61cc253461ec3006fdf0bc932ef82133eb70b79cf7817d052c86820a ba3c83da18b890f674e844cb0a7c0013924ce1e1bd4d2b17e82190a4511c02d6 b0fc7013e79023e4d94c346ec00ad4e65003c32ebd362d281f8665467ef94bc2 2a0b8df2374fe9caf19c0df463f075274d00a1875c38771c0a7365515ec4be50 a0aec30773df8029b8e0ebf139de237f20dec437a458ec46f11133b2e0a4bb9e bd02092f83ff5377390b38634e07abd77c84834b43dbb7a447b5394463816d54 5dccef1d2287df2fe6f341c54408a45055e59a8b26b7bfebed8b4166cd6195c5 c358351bb102a42a539dbe6570efa18f3b69aace9221e98765c53bbe097f8e45 c32ffe3a20b8a0d52855bfc307d95844fcd5359e66742375cd1f115ffbc6c37b d3e8eea34adc3f316738ae17fe8f06c125875e45f550befdf7659ac53f0af8a0 0ae2a6a4c1b6d1c58e6b07d38af9fbdfa5059d086ee6df2660aab0aff931bd84 a5947848f7c4a37935e38349b376c4854b78cb9faeb60faf8b316552447be660 aa50c82ca8f42f3298f6c79d74c7bb71ccf2de18dfb5ee4abc35999e53fa5bd8 374c14b80a6cfe91637d1fa6b059ce2ffed5dd6437ce5da04dfee0d4f1ceb449 458143ae565af92731a3c1916532e7624da800f3e40325f938af493f4ed8db69 9822ca2695756ab465d4d3001ad25b598c7caf204eb3693ad4773b302f860c0b b566c4a1e9d8ad0bbbdc1672bc3e99c613a254c93638e0df75e3017c2b566722 6bc8935f7ae3ae6b228dc6362ece0eb62f3de3a0da4ee0d6632b87e3e460ea30 14259f888c406d3df8a6b6136ac301c53e393a1597c2363fcda32f6685655e6e b89be68226f09b18f4716ed37e5eb99b1ba961d92def553a360510c959868a90 4686bc3c2cb065f6d7795f0098bf133bf2044d1826675ec2541cf7df98bae80a a80beda2ba4228dd66569c2996f1239f67220aa6de2b78fe3afd62fdd5ddb4c3 b157f52489314ebe049fd9bbafbc4b2a9079ca022fb83248d9a04a38d9154889 156c0d06a96b7184657ea769a78fdc6851f5356acd5e09799fce19c794d915ed b22a86a0ad93bb490f627c3e69b65b2478273c8d03e98fbb1bb6599121c938e8 5ec45389252a73035b2b2f1d9433c2f0a8d18fdebcb02cded4a446e1e0f8fefc 0bc781af2b576c0fcdeb59befdcef49af0353216e903a2aab988521c547e8c1a 5dcef865a3fc6e19719678372bdd73d58cf01583dddeeb62d5cd9f4b763336fb dc25179bf329b1e18babf280d3c99b4042178efb52eaccdd9610f4a3004f7495 176b4f167fa2ca213b380c8731282eeab50737333af5c1d1d7c3dc4c9beba2e9 b97a39abc9b95d5f2903dfc8a97d34986e1e99194a493925a7f8e89aed03640e 377cd61c8c984e89e741d35d57e5823e7f3d2ee6b5afd8f9781ed3a3e851d86e 0e4c0d58224e1d10b09fcc1c601a1002f5c4006abe254a13ad6d0019f6cc4e09 6fd5a0798ae4671af2308e69439066c535646eab1ed85d86f493278c7f3cb8c3 e7b80fbd95914d0694def1b563be327e23bfdc66371bcf645a1bdd208c0f0108 7eaf1fec1bbd7714dff4512aabaca28c3686ef233d87d807 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI9 %!PS-AdobeFont-1.1: CMMI9 1.100 %%CreationDate: 1996 Jul 23 07:53:55 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 107 /k put readonly def /FontBBox{-29 -250 1075 750}readonly def /UniqueID 5087384 def currentdict end currentfile eexec 80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98 74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730 48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f 15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427 bdd7da12534ba078ad3d780414930da4f8d58abefd45db119b10eb409dd89792 3c6e705479464a4b33ae3d31bfe98efe259f07f7950237bbaee4f7b64ffea83a 757fa717d50c3298392891bfd60e34a056b0d6021da3fd9b8b01bf78b0b23dc4 ea3b0605150d20b27ff9ea5f2524661019d982a2e47cd7c21ee5ca9ed9227821 f8d07119397de26838c11d7b35bcedc43e011626e300f8249ed846d7b5ccbd89 02550cda17ddf113df658fb13f8162681013766863784efac128e01ef997e1a4 30312afac8f3d948edecd7d5090ab5c864b91d7f6e80256f0e1fc99f1102b74c 61cc456e2e1bedf0e627d5f70f738f963a13666405c51ebf23ca077e97570a2f 1118536b92e585cf1dbd5fbf36a0a5d197538c05304e93a15f3c931168d91d42 483ef428b1a3f1b7e548fd1d23b80f5523c8b8bf450b02804fb689f915c86693 f7dfb1c43f681627c7f027021aa3a8179148f1819cd94b8890a9ac63dc1e8a68 f254b64f6f173c3d02e3ebc037da05074017c8b113e94f4e2d26b467ef9da07e afd7ea7c86e025af52c5ceeb835951e67e02a38daf1e9e698bd21996c1071e84 ff7fbe77f6ddf9d06fa92b16ecebcbe0370b5cd9d450d0f2906a105cadf93ed0 0abc7fcf2c996e7c15e452006e35390d99b9cfc59925f1444c20d9c3e1fc2910 32cf9fa9d580eac1bc956334da391b870a757c3bee6aa3e005b20988d8587876 3ced20c6edf2ac2b22890e37ff7aedeb0986d85ae05bc84339bf2116df48c5d1 cc888bb33d409b06dd70ffd0618b2080442aac439aeb39c20a87ad74ef10629c f1604db8611e8e4224c5b21ab0c7ebddc77fe9a283b3a8c6a2a9508f6836e3fc 3eae1366b4da4f44cb7a77fd81d278c17775d56cb28b70f18d894bfd1ec1827f fb16b0d4c1a4ce155da066810170fea53e0d24874d6789e0da2f64f071a7cdeb f1351de14505713dcf302be74df18ce3dcff19cd87c53d9f1e2b80eea9e65a78 8125f5e7156bcd02a8930f46b3ca93103342b6851b53ea10550ea8ee622c7b67 114e28a00abb2b0f6c31380f7ca53efbb8724102624442f750dc6ddfc7bc7cf9 b085aba43e151099aa66da7b6bef9a0c530e8ba36920b3d4f4044e75579f32be b5530d470356f2aed9003ab690381a0bdb7e9f8a7e6960d9807b3d2f108dabfa bc804b5f418bbe7058ad5f9139759c271436d82e34eb7dbd6e55ee8609ebdc76 3949c5f3e28c19794d33e7e4db617f1170f08539009d4d8e920666e08863c5d6 4ac7641836bb5a7748a2e99d8a6e12ddbbce34803be55dd9bcd097a478b5548a a122be13c1763b14b8c17c49074c2d426ea49f44996392ce995e31019913e500 d986c9e7a19377f1c4af767c0f436a580584924d135e3e7b2dcc10b4cf62ae24 7f3de22aa893b12bb10111194e3466049859333a44ad2d7d86ef6850d0d4996e 936389ea1849b01fccb7227ad446b67d062d96501a5f78ed7fff0a82ad86fca0 60ec2253d9889f 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMCSC10 %!PS-AdobeFont-1.1: CMCSC10 1.0 %%CreationDate: 1991 Aug 18 17:46:49 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMCSC10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMCSC10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 45 /hyphen put dup 47 /slash put dup 50 /two put dup 65 /A put dup 67 /C put dup 68 /D put dup 71 /G put dup 73 /I put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 88 /X put dup 98 /b put dup 99 /c put dup 101 /e put dup 105 /i put dup 114 /r put readonly def /FontBBox{14 -250 1077 750}readonly def /UniqueID 5000772 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65 66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7 695aba81f0260cd5248b9e649cd800bcb325468c79ffacb9cd3037a112066957 7889d67fff57549064b985d67ede2fb03272083723541051ebe936eff01a4ab3 cd845d565dfdf25d9ddd2792db17f52f894bea484480f06c832140fdd6c3af0e fef0584c6b78b5e2bbb9a752f10581fd1c48cb498a822afb18cddebba34695b9 b418010368fdfb7bf758d50f3af03360b81c776325c33c9c81130b1e1be840cf 68c71ffd091dccc0df7b507fe8953dc3836af0da08ff9ff3e9cf7288d9eb8baf ffac546a0fd987ae8e0bcf7b759f4408e13524f478de5896d816cb0ad2904271 cbec82a5ca50f0598502b434ecd94531b4a65181b5b3afcb650904b15157737a a4386f1a7f1252caf2adbd5c8162bf3b065c01ca471d520c884ebbe1b29f9549 134e285dea2fe158c15a08a744cdda00bb6c62158262e24702803d9e1dc1d3a3 1383085631154b077fc20488ee3aa03f47ed2766644330b94133f2f9389b99b8 96d3707d1c5bb227fd3bbdf3a6ff572bf07164107c7a1c0710a5c7cfb67282f9 c238100fa138b75c553d7cbef17e2292a320d3d86a6210e6e3a1e590b10dac6e 177094d5dd163db623d7b344478752f6f3d7d5b3fa92e6bc72dc6fc343d2f946 9153e3d14c5a6d6b1d9ca52947b789cb4cf6196a02973aff0b097333f8d615c0 a1726ab7e31c378eab77150faa28cce535afe3ae5798402ca51cbd18dedc2c43 5281d0781351df30f4d11761579676449ae4a47a10f677cdd31ca9120fc2606a 9025d3cc09d58856a9bbfb17669f706ff8c7efe37a3656c9b20609cccb58b309 0595ca5666833f2bbf884aac1cd632fce69b4e0ea2e0a25b9c4d471f0e322e09 4cefda321359fdbe0a82656d3ecaeb68b7e0c7e733d85066ed7474c22b67169a 1bf1bdf7dfd0ce0aaeef78ee393ce6ea65edc1fdcdf3f744f714005d8221a156 4e71adfe67b25c3906e422e49579c97bb45010af5e50ba60c1cf1edfc506c9f5 dd4554e57a82cc47fcdb79532f09d83f41e35b28dc39ffd350706548cd9d95f0 6904b7a179f610bda17feded4e00aa96bb6e856ed15bcf5a9dc8588b12551207 4b11294a95919bc58b17219a2a7d2aacdd9e2568da075554b16b8e0a35cf78e8 7f1c77fc17d487c9e10c458e9fff3d7568b8a46b7ab91ec31392a12916a9adf6 e3b8b1333f41fd8e09f386463e4b1bf8896c4bc30b5f0852f44e77971ee7b869 3741e6cef29f08cf542972533329238350ad634e85c0eca947c5716a430c2940 23068026ed016e984821e5e210e50825a72030f942671ec6cd07a71af7d06c80 e96c124fc86e7551b1a6ebbc259a979f111a26ec56baeeda05df3d4e4cb728bf b025a78d9610c45b86c485da4d53394736539c1b7e1ebb494b93d61e6bf8e81d bd8ab8671414e9c0d7df4a7dae929cd1465f312d6556af0e195d441a643b7653 d65f334bd0c39263161f46810983aa4deb2472abc014ca8c092f3279158715a9 c74e655510ec4f42d79d54ed1238d7f5d47846d640f548ff81825a9bc346e4b4 7dffdc4aed5aeafc939ded2003d37552d886da96a7fd9a8837efa6d1c2f8028e 3225410e1b8ced248c6649a6ad74bd5bdf23509a2bd3bad7a2e85d564f0f075a 41f6d0219857afff53b4eff3e582d68002f7456f83844f68704cd50ac0f53a8a 851d081093a74711b6fe928f1004f00761652844b0b09561035f63e4a4a1c022 ceded7d9a2b7ae2a983eed6bc6c9ecdfd09a82aadbb21af57193e89ddb094a7f 5607556f108f0168e47d41ef9457d1a2db83cf9f50d0912e39e901a123a56e83 825e10b96afe776c01d657bece65f6980ab8cdf8c58820bcaeb59c3c5ec6b0af 47be6c3aa537bfaa13d89dc22f2c94e3084a4b11155b956e802fde76ca6b182b 70304b43b9de78e09fc63396e37a239d948626c20b2799aad4b70915daf246db 2611795f2e15416d8c82837668c45d51a0ab6bc3056e1f500e074c0cf7c1af05 1a21ae9fdac06661e3c2bd00a880a750da724001f6bae15ca5bf981ac94cfd70 65502c775b6d36de4710013383e8166bcd92d22353f0991ff20445b30c8b42ed a16bd8bf4e4a5f42bb000964996491b15bef3e61fd815dc7bfadd53afee9cddf 6e9c292c871320272b92fa83b928756dbc05b4b25577d2edf52bf444ac3a4aaa bef19515164ec50a9e50bce335a491cb5d362e78e3c24f4c71d7319b1c5af7be 79dc754c72399469afa7e825563d17586d5e949a047bfc72173eb587d9ea9926 512fab716e8ecd6659192d480c3d81d9d195d49fde58243a821dba9414a1965e 816b8405124beca79b0c64cf990a83027a7446b46e52771be54b29cfdf950b2b 83450d7447b30112065d5dfe90d0b0ae877e539b40a12848344c919bd667515c 337fe5057627f50bacd5cbc6632a87648db819efa6acf87f4ba62256f8ef1115 26ffe33bc88b8e4b3d2287ffaef8be1baf812fe485a8f5b5b06852ebdc0e693d 7281b0b6ba9737173c41e8a209bb9cc57dac4f3c7f18c06ed6c782209c509f67 aa6012dc9ddf382ad82d56593a2af3f9899a380f67b21a4cb2e87ee8f1ee239e 7c165d2d39c1a3475988f7986492393363f66e55ade7d9a6f5b4133c04dd65ce ed1a6c896d6c3ace235b480c47074ccc16e969532b28740def4086f02e4d4fe3 2c91dd64df33b62e8e188d637d8010aa56f62ea7045474139260b0f88d7474ce 97ebbf79ae53f8d2b14da4bbf87237ee7d5dbe316bbcafe7b1058de7cf6791f8 36c5acc55ce9f5eb19cfc019a2177ea3601b30fac8cff5b4fa0e18c96b138f92 0b3a18e34c040bf3def9f5381b282dc09033d98c27a453ada348b069688ffe54 d985ac473fc881bffd71143a454202f381c19a9af6cdb405df263a90143c342f d10c5dd686008a46e9318843394779ad3b3c79ab357e82a636df255b64ddd167 30aa1fcca40a1e541bc9b6d55ca5037dd86f28b67cc6d7e552d866b0f9e0ec44 7f221bb8c0f8b560d80d6055ab42d49ad53db8637c70503e07c7fec917764884 b89dceda7275b027c180aa4e65280025733d1a58b3f3f4f678188aa9efc6c6d7 218aa49f5695d97117a0018bcda66b57ce57802e64d8785271fc16d011f97b4d f22955f8a23291b8c30473d4b5a9b6c48869ce3160ffa51d5d01bcdb6d237e75 63d3ffe5e045de72ecd89785bbc36db3e069d90ff26e4c47d0d0ad886a19a2e3 c46d699a8bc42b3c381e5191075249d37e94a78c94cf053f766ace14d06c0b2e 58a75ecfbfa9eecf78297eab51ff0892d65998e5b43accc60614e3b1ec0339eb 6595f2ff260f150df0290bc222abd7031370d4fad1972a467b96446d94f95163 3c3c60606a9d934f24f36b8a1f49f859a7d41397d97804c87fbfaf64dc0f3a1a bead08745cf56dd7364cfff34e69c24345793a5c1b8fa52ee06cf4fc6c2e8323 7497606895e146a23e4ac8acb06fc600bc396f63a4b4c31bbff5deec75e69abc fd7af5f721c82d1093838d64316a67a88069d375905538d9ab7045951a3123b1 09457dba100f2f5e44137920a7e196cd315323da425ef44539ce8ad15321101a c8daf23b09fb62fe7de3e354480e30fe7202c63fdf27a682d50323567adcd6b7 e59c6f254a77af612fd05c61e2316cb6807bc71c67c7a4d86792198f1936de4b 506f6aae4552fe8b8bd43ed23a426c27268d07ffda36b484ea17e8fa953b8b89 b96f72036ef30ab5d4523336fab5c9da167205d33d8fad6ce7039c792f471fc8 8dc6f567c7481dae15a75e693af056284c29f93ad98a589b253532689dd66bb2 2183bf6751a7ebcad8fc32fb8141d9e097c580f9fa4b7e7c85aa94eb37b5b947 82f13091756999fd05cf8376e08cb1c853c77bb8b89079aa0c3c167e4635fedc 622b51e361a7b99b69d0cec82bd0e93de9c8972bdf74ae6115796de1618ca513 4b9d3702a144707ddc54bf351afa4462b144fa1ee21094162d4c630d47c5e1de 70bf727136ae392f09d7668f0550ecd06ffeb2b4c8d02f69128444000c455e75 332f1cb8520e730e6836f542eb53287aaef5b494f30887e47dd471c761871dec 0ff283ed17e000d19bf1316c7e05b8e9175ed769e3d79c33bc56cf928da7bf0f b6485990e8ca7988b0c401a474fb9f4dd7c0cd517f309291db6b553513426422 986c660c3d43ea178ba604b3c29df89d229d236cf5124bebf0e86da8183acd74 2f4181f40224d0e8ca2b76ed79b4108ffb46d4165eccffb4b4f3db328de62503 c25149887c4273ff83f8226e7d87ee620320199788ce983a618a0d784c4e8887 be3d9754be0b7a09435b441b33dc6b8b03fbfb6a0bd86b156b6e10c3289a1dd9 9a85c610eb46dddce91ee2299d7a4c7f421ef7ec10932de9d46fece361eb7f27 f8dc2794acef5f337239829294942d40e0bc70a67b8147cb9922445fc8338431 fef63f5ee6b8b11f31afe4fc373d790f6b0b587a107ed6c20961b3c4162a9a48 9d9db1105b8ac14591bdf8b10d1ae112dd2718e43ac8dd6324bf5f48ad1f8edf c8e5771c4bd8368fd49c624169de5453a4a1ec19b5f826e084cec0075405bb47 420c7a7a546e2779b1157c2a5c07da78effbc123c79a70017fa090035c71b1df 910b1e9884d291dd28c01d7c4cdf62d7684ed2868256b98a74d3a5d0ae13bbe8 d882481dfa5b7451e497e1476abc417680e55255768a9323750655acbb945975 1d9c722fc80b044f272054bddc323fa73decf4af59075596a173a703c00aac78 9a59a05bae3fac63c03f464517e471faedbe904d0b0956cfffe58af2614f0cfc a95f3097964d9ceb3000f79923340138102abe8016993f65df1b6f99998973e7 431e17a6d0a1c676da2e49117764e9a2c13c1f28b715f8a0d38958d9a86e7f21 3755b525e47658ba8f336950d5c621e7ed1b4c64178a98112046a8cb945d8595 2c24c625d01538f5fe7630d3a664d3b1f34d97d95f382c76347fa1e792a59519 1da8b171eb69514b0e2adbb9f854535d267c9d28cb282e7f09e05c64456b7342 a933e569397ba8d7357b4ea424f7a15b10651bc55821d07e8fc8e51385bcfe62 e4415a139e0b81628618cecee5a34ad07311594ff53e37d59579cc0238ade97c 173c8d324fbcc3dc54125be20d5ff7cb4329ee84feb9571d120f5e1f09756bf5 f565f4a6b6877883c6ae4362d4768c495cc3d8a1094c60bada2096e7f5a0d497 f41d541f1eb118bd9f5bf69e67d1841f36ecf8505804dabfd477107a206d2a57 33581bde9bb62d4c386620edfb87ab7a40c1f232b23428e9c06f091b254ca4ab d2761d23afc1a2775ff7c53af1aff30addc37a0901ed9255dbcf80a0d638a6ee fa9dfef0f6932af74c1b0560e92e0d5268d4008d3221ae3df9c411ffd2f0cf1f d981a0755d68b99df94d2fef087571c5ce3e50cf988ed6103748c5004b3e4771 de2d4476e721924a195b97f41eba35a92fd15d773376c39c83ae52256825f3de 066d5e84d62e3b0742d29d8ab23fc088a0e6a8d80a43f51f773eee5fb229f929 eb199dfc19a0f78764dd6c5aeac6f229d51c450f9f9c1922513360146bc883cc dff5a00b0074f98f04d791c33182a1f69e8c7c1ba875a05f6628af52eda0a7d6 353d7421f610e06600c428c5268ea2b344bbe717899abc2de5581571d89c1fb9 7f9007cba42a8ba33687a444ac6ac53c7cac242badaab958cb3d47ad60833a25 5e5421faf77ba6d4751787e57c17c09e7fc43c8cdd4cc895fb074981e2218e57 3e092cd335dbfcc2f5c3775b9a9d6fa8ec5bd0844c55e9d5d95d321f515c8ac5 e35ff13127204e5911753294613f3dc2848da66392e2702192cbe780a9f6899f b9700c6e8c7f50a3c788af610c5f0716d8009edf4072380657d258718c37b1a1 6bf9678e3ed8d154717ce3299057a9ee4f21e55d39af2e05a2403c0e8a784ef4 c3a89910ed4d9653867e07bce6f66fa0c6997b621f622a6a6445e762d5be0e6f bccb3faf98d0f4f1cd8c896461269a653de7b40bb4c08eeab607c9f49ba2a0c3 ea8151af28f9c3c789537fa2daef5eaba2b3 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTI9 %!PS-AdobeFont-1.1: CMTI9 1.0 %%CreationDate: 1991 Aug 18 21:08:07 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMTI9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 97 /a put dup 101 /e put dup 108 /l put dup 111 /o put dup 115 /s put readonly def /FontBBox{-35 -250 1148 750}readonly def /UniqueID 5000827 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65 66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7 695aba81f0260cd5248b9e649cd800bcb325468c79ffacb9cd3036f2ed7bb65d cc883aff8d6350d6e8af1a9c1d2d7fcddc4c554c7e350f2420586f43e2124611 487cdb176d453854b51cb8f9100bf241899bbef87d57f1135e589813995c4d86 ce91db2b3757948f365186c2a4f32d845f659a8e95028f9c0168851997135c67 ce7654f2de4f22f51311aa78f440e5fc2c58f6df901fd071b2d53b2697bfcebc 43fe4508828b4756ebbe1f3e8512514162b3bb44493a65f11ab56deaf152fd01 bc8b642e6021af01998edc76b6a1929fbb9fa4fd1a430bfd4464b53f75075f66 c726fc037fc23cf09a178ffc60908f77d8ea9dea79c1e21fcb5a6a994e5a8e5c c6d6291891df7695db58a2dfcf3bc9a17888c29559ce8f37dd35c0ae35def3e8 daa6d8d574f457b0385efd1611c048b9ce76393fbfa006fd23d742cfe7016035 5fe95302b129a824c7794a9de47e463a7fdc42fd72b9da3fabc3e65d90258ac9 c1ecbd3654b103a488715f9e0e649b57146b786aa399c6ff39f362816306a1e0 ac83a4c83410030d740e15165683e843f69579ec1824c36935ed4705962f494c 401400303b590614e5daa8dc53fdda083fc854e535fcd575b38aa43d3d5c4a38 d56bafa926fb9e7fd69be1af2b502849500693dadd5f00b3185a8b18a0b64f28 9f33f5f1eceb14d6945a22d0def259076cb9b11d899318852053d98c379de350 8a8a7a3ae6c9a73e878f7cfaa856e64b993b13baa4ea8ad693b380171f4f04be 5464e1fde8190f963ad3dac489ca9154a9d35f479635781233c57eba78a4b34c 5b3f74db0cde46a05e26de79e8b958f6a99a3bbad79d0b461621fb80d7f5992b 3a4a42a45d55ac22fff1ca04d5e0b14713cddc23f7d69c6c672092d9c73ad09d 695c980358860b66d4de2ec7999edb7867488112893b8e6dd236bb116ab955cd dc3a47eef0ec994d5535bdc60171999b95a9ce5336c177d99c3b8853d782cbfe 5617e13e283fc7f75e1ce552e946afc8d8ec15e620e38f761ffac2694cdded31 e08346cfca3907fd62e5a29d51502b8ac726bf0dd0a9f3563b3cc494e2a1fe28 3f4e74d25127af605bd4630244590d651d5322745dbc0ba408a171fed2ef6e24 4ef0a3c9a642a8689a53359463132a2ddbd8c471322ce892a83441d253072e19 023eca62a09ae95d2976851791cb08fe21f2acf5c27396ed7a5bfcad05bf7eec 57684a0eba8ddb2752414bd63e2dd18bf2b25db57682588ee2c223d3fcf645af f9e612046a4fe6f9f0c2b66c452688547b8fcc8920e24adbf0d2d35fefce3b80 e406a2ad76c905c629a121e9d291166cc23741b924ce15d5f2bdee2c526dfcf0 a32a2a6c52853c773599062eb06b93de8d77e9452e5e89e561469a16442964e6 f4cf3453a369d2e98215577705ef8beb5aa747d59f813364cd4eaa7164714022 2f410ce503a9e33d83f84f6c70cba5057f496e694ac0e63e0ed439bb8ed1a22c b99f2d952da53fc797dd323dd7395d8328b96921b57365c1830564af98f90bf4 1bcd54eb3737e452a576ad8bf2ea103ca2f36e579c065cbd99240c133fe3a5a1 47211690aef204a64c4ae90a7fb5ffce44914077b88625e462292ae809d49552 03c98e00f992543570cfef0774043638f1a344d16c2043dc395446cbcfdb5c52 f223f65960f362f743f3a14701b61e0f7cb71d5224827bec8e9f1844b2e46fa5 f9a171c1e8675b7a15380bf9b0d9c438ed7c68614e4ea468069f016c87ee1b3e 911b247d01e7aef1aa85569523590303bd7f0824419c48bd09f5ca9d6218641e 4f600c88e4eaea7d624ba88aee470ce9407949c3457c9cbbabca5827acab6d94 c982666aa0abde6da7a55a662d0b1d5e2fab4f7caba61daf08cc41dd4b63d04f f2622d649572e98e2461a3e9109584fa079506a4edc6dd1501873a52d34fb547 6f05d4204bae87df676b1b962f06a8885793b649da0514463b950c69b9d8f1a5 64cf123e82bbee03f61813047c8bf73eeeabee5bdcc5407b35180b7935b442ec ba4b6a60bc7c58bba134e2eb26ee41a816d98b41ffb0f59714ea5aa7694296c8 a79cdb581b8765d59cb15ec94f8daf05018f4ac7500b33cc4a49d07ec337d33b cef757edc9f33442642397bf6c4d29e6017fa1e5f05b676b4a3202cb1bd6742d 986ec3a0b930d1e2497ba1257d8f7d049814c9e14ecbe16cc1a8d27bbd5d37d6 208eef1ac4 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSY9 %!PS-AdobeFont-1.1: CMSY9 1.0 %%CreationDate: 1991 Aug 15 07:22:27 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 5 /diamondmath put dup 102 /braceleft put dup 103 /braceright put readonly def /FontBBox{-30 -958 1146 777}readonly def /UniqueID 5000819 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bac8ced9b09a275ab231194ecf829352 05826f4e975dcecec72b2cf3a18899ccde1fd935d09d813b096cc6b83cdf4f23 b9a60db41f9976ac333263c908dcefcdbd4c8402ed00a36e7487634d089fd45a f4a38a56a4412c3b0baffaeb717bf0de9ffb7a8460bf475a6718b0c73c571145 d026957276530530a2fbefc6c8f67052788e6703bb5ee49533870bca1f113ad8 3750d597b842d8d96c423ba1273ddc63eb43f34fa90ea73a234af35fd9b24eb7 4f19626e9124df7acb92629cc87b2cf81c4a89b27447806db34393ddf0402958 e2daee0b4bf315f9aa0a2650d2e11ee289ffaec940d0af160fe7f29411c1c458 69d1ac3bcfe2ae4da72422549095f1fc9fec606289316f106e719a4ae2fd45ee 868fddf07a80e9a626bb43cdfdaa9dcd208b88fd99af20b27f9d6b5cda6a3fa8 8d5acfce8b5eebb38854378cecc3bfdac526514f1be9fb28ae628918ba942a3e 05b78c3aff808cf416a5ed01be280231b75a7aee0c66b0549713bef6b3cbc188 e625ba8776683e518d45caed940a7282a877ad8c4df101924a8a756f10fd73d9 689ee38283be85a22222555f525dd008d606ef168a5f995a7398cb6b5f78877a d4e5e0100511e45a8adbb82dbcb36e9c4a5b2b6ab93c7359c97d68aa3c839559 ef6082721774df07e7c55d506fc7862f3f8fbdb3b6554c24340c52a9fcfb5cb3 4c3afc6afe39b4687c98cd12cf48d47c86d359eb3990370808ecfb47f317a83f 639357d393e5df9a9ce9ba0508a242a802e131e609fbe3ccf8296d445ebb8692 41b7824facc52633e852461d1c1a2db911399d7f344f5708a06fa54d6e02adbd f9f5fb9d979dd7ed0580e419e8ef0d7b1afd834b714d701ecde87c51df54036b c197f3727b82ec64e476325dc36005f8301a477988cc17dd1d030827d28cd9fc ac722fadf8da8916a011fa1f3117ce40319186b835e664e37e9269ba17407c0f 65262d124af9c2374233647221b381443ce4156127f14733dee6079b8de61a97 5f450ef90181b079bed208f89ea5e9498cbc7449321bd3d12bdc681ab8efb271 e123af9d429590882f4fdc8e221153a09dfce67f16cf1778e6077b193ba54812 f6a3c06f82a03f25302cba0821bb5ed92aa50e20031c1f9925207c09d22e5604 daebb231649277c1f4e280034e3cfb15c4af100b1fbd65bfeb9425749ef37d39 db16826ad7909b6c4a59fe72c34d40bdc1c6bb3174cbe5dbc5e18a34571831e8 8dc520c12f292ab464085f6f22cf712aade44c40e7fa46433cd96e54b5378222 224df005032b8e876c98f643403a8acd5661d56794639d4f6d6013e162bb6b53 96180821c74165603d03edde51c1201b6fee466c97defcab642cfead6654d8fc 025918315572f7c6b3b36599a2556b2dbb5a4153b4e5f963e43610f385423d33 2d110507c7e7b3b56be96247e84103abf6c81fdfc6f3c492b0f51606f42bbfc7 9df54495c9dca2dfb186e9a93e6955a0d7cbd725d27d9de9 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR9 %!PS-AdobeFont-1.1: CMR9 1.0 %%CreationDate: 1991 Aug 20 16:39:59 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 11 /ff put dup 12 /fi put dup 13 /fl put dup 40 /parenleft put dup 41 /parenright put dup 43 /plus put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 63 /question put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 81 /Q put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 88 /X put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 123 /endash put readonly def /FontBBox{-39 -250 1036 750}readonly def /UniqueID 5000792 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b448685bdd20eb05d5e7c2126132e33a59a7170609 dcf4871a5d023c9ef57d3362d9f2d7a440bb69bf653364105f16f4d0f03582f9 aced3d05cc76489b16e3fa8a446094d30038b06ecceda269f2eab9d19a99c7f9 39f9548f206c5a457a19270b2b82c43b091dfc5573468eaa3e7a4a32f8042891 d85e4b180fcbcb3091d2800e54c87d84ce9cad6869b5aabbbe47f40c68799893 d22b765295e1e69e33aa048b7ed98ba480ceca91f3ebf8ef85fe9a3976909626 b95ac5940d53f9b02215d84a44837ba25ed15cce0d504f1d335065594f3bc824 5405407591cccb11cfd4645da60d960c0b93f187b0cf7b105543c0b70f89af5d 264b6c026e3ae646acf145950202ec73282111e3e601cf2bcde22ce3edf6db23 516481420f26552ff4472d749811f27768150450d0d0ebe3c79f999e99b5c0f2 2eaebb12d97782b1bd91b2a1f62a76412548ad53c0dd411d4a08c0f071c2c218 63d9adb75a4621803ecb84c2bb235b620b658984b2d8e0c4637e2811bc8f0d04 6c8935afc70141e1b2d9c23bdb251d304b3378faf8928bd09686aa0340fb0cb1 dc48c996ef91530ff078666fad227a3589f50b605267212d3a65ebc1019a8eec 9a0739a00279471a01e1505c17658c10030fae32f274fdc8c8774b0d5406c384 a1d17068dcb0c2575c562fdc5a2176609bad9a2c255e426a4325a4fc3053c7b3 2f35f7bbc9aa50135f30223360fa2fbf019294b2e1d1405e078341097090ddba 1561f22f8738fe105c0e3b84532bed145d51428c9cb1807e655408807dc69161 1109a98af82680d6dccc987cb312835dec4ea0645f47a15b6707d654ae54846b 3d3301d61150fdea8ae2da33e79976812c7764050a3e86a2a819ffd3c64c38ec 16b2d0bec3922847fde375ffdd82f8f8bcdfa39c53068da393b35277ba7af682 9e48b1607f22eeefd7d0eea93ba1e2fb9b5ecc6c6fe1075db980999f0be7a232 c0918c6b795e560e98140046cb852abb26e3743bafa44c4a4963b9696583db2b 45b8bbeb8f32249fe564bdc49e5f44427d94ea9a4dbefe190e36c4fcc04bf9a6 d6a18cec5f45d2ee960c0e980d26b60a02a6f0bf9d184d6d3db62db6f9c3e52e 8e5174d82ff437a00f9a803a6e3cc4b3ba9529e255b4f504bb6235db18629499 997da2fcfd6a82455aa5328e344fdf15ed9168f6c6b08880c7c6510440d4b730 3385c7aed6717d351d9ef3fc19f1a47d8f724fb86c68a80b779e7a908e799fdb ce25cd1c34646cfc1242325e317b3f066a7d7b89879e54dbd5c624d965a60386 cd9cbcc98154c75914b629a3165e1d3baa735398f437dc50f6225e15988ec9cf 223dbe93dd794c47a7777b3fa114e71c7182321936077825ce18bb6010687a48 fc442e338d8ae8ad49e87d1a9ef0f85f82862cc21d420e18bbcb26167ab1a8d9 63bb1d81628a8479cb757045e1fef50aaf6d418d180c10a0f44844ecd2794fa1 0feec9216fc72c670222ee000c1651ac036801d73b01fe0915530c1dcaa5c42a 5726d1a3d36f253cebe7241ff3367e29a83089fe74659baf760fc6e2e0f35045 ad8921fd883c8de82c88e3549fff3051febc83249c90276a3e2f2da0a051416c 4c936ba0409d5261b6b3ad4f34901079c12ec83203a6273e6c42fc5e9b1d6bcb d3b0c4b59682fb37025a0602adbd1fb539a756a50e113b4c469db9127c855bcb dcb94693b19572dc97b7439b6fb291628ebf446dc1957ecebd2e45a4f3f7381a d3de999491433189d8b135ef57a7d3aa6fce988c015a2b7171c3919cc30479c7 ad855c94601220dbe8b8e864d2c6f7e513f1e8fc900716fc98b310223a269266 07495823d5e20604ea7efba44b26176379310124cb4988644dd891aa3579e73b db30b0b6e8cf6edebfdd2edf66b83977f75754b54185a7f544948805bf99de33 cd8ff7cdbebcb5400022c90cb08d5ada5f13735c5ab9f567617df2835a2fbc18 d4070c08fb37505def471089d49c64976b1e4271caea4965ef9864b6de410636 4c532dd4971eb7053f5990356d537df722ed5aa98cc702bde414a3635466da27 913052204b1c08ac8d144eba82deb0468ed3a440e9fd73a1840beac46a60efee f4af4872208c2d51c113eb224e78b6bf05dc45e6cb1aa5569d9b6221a71a71f3 fb2be228f0cdb1205f579fa4fe9b5fb8247a8327190b9a2d98afb7b4ba52c4b2 ed15c97c8e0b9cf0fd4acd0ac371bfb820a8e901d6ee8737785d441cd49f0367 63d99f958f60aaf40d3506cc64542f1c45240f00738edd3f023bbd565be204f6 f0d7a113e7b530c303c6857387a07abb138a2038d220e143741a7c450efb4a14 20572c92b70ad58ed88030c8de5d9735540da1e29fce3e01585f07657d35d67b 530b0a405125b90295261f65203baa0aa71b876ee01a0bf77b38be71c3cb8470 5b8a6b41f7a74a6ceb2e888bbd885674baf6dd086e9a7015609d1b371a6a5728 e5ddc352d78421f4f3e49704e562a1701299b014ca7863432cbe0e0f4e8b3ebd 11f14f68273f11b4d062cd785c27faee5582ad785c802fff7fb0d593cd73eea3 6c8ea253b9095e459dfe8eced2ccd4df4bfbe1743ce38b1b5d457a6d89aa56a5 a8a585ddbfd5ac6d46697d01fae4abb41029c21bcc9cd1fddb342d4ea149c526 6f8587cf220e14c077303d25711255ad23600717b8470b0f6718bdd16c75d4f6 21e2cbb8d7380bb4e989971b57b7d5eb8f4375d2973251e000fc94ab84fc743c 27654b37baa8660a0ca14b4ae9cdc90c78d4369331addb382aa20e0d584aca30 30162378995384ef87c31534fa20c97e6c06f781e51881c9bf864e0c453e4639 75a149306af574aa1c8b841a66971471cc8ac7f4e9a99dbc5489172b185c5916 742d36b37212c98ffe8bac342210befc45f0fbb4b9b8dda99c21bd43b1a70af1 dc33027d161123694c6f14cafa5a57bbed457760dc98a67cfe500fd2822a7527 c75b8163083cf7e4c15778dfe2c5488893efc2be790e1d029b6f61af2bd34f2d 1a18a4f02e4875330abf67ad4773f550caf0eb0eda20c3bfe21034c0c1922690 95f7fbdf3090b0aec8737aac104ea7808936fb3fb7fb3002511be5ffad5880a2 0425235f02fab6c3c88a01c8249fc1382900226793c82bf2c720865b05a2bc83 1b91dce2dfe5546efce452392f7cff78d3cafe9af665e05a254ee104dba83149 d317bb47e71bc3fac4553b88780d71954c86a061e883a767d02b6161a1eb0051 af933e2c126c468a51395d278968f2a1bec1bb5f6826de1ea011e6574bcdba8b 228c68442020037363e33fc77ca1deef097d22ab22354609998d723001afd486 444794d1d7c5a921a3500a4d3ed8d9e7ce122163d96f864dab71d2b3c624a26b 5732d2b32d6c251b38b81df064486743c45a6051a0e7be679bcc1906de124735 1f8f4dcea22b2be1bf20167f1dd4d70620c16ba29961a08a7da7bc3c979b6ccf b013fa04046213b8bae28c4cdc8baef8b3d57c3aa68d62fb944e3d720d3310a6 b9da9475d34f1d79fd0632a174a1dca85a9b70386492d5410dacad8afccd1ed6 4d28fdf4228c19b9f9d817dadf4305436aec133f0c1afd95f5cf6fbeedbe14ff 257a1431bcb95b58e06d639a6351750d76b41ceb3c1a47f689b40ecde7dbb05e b0bd39b9e097a374878f6853a47a52eafa48629788c3d1503802cd2213e4c689 05479054a5168eb6bada2cb7e887a305e65c904190d8913b11996671a3784646 289728e5312d782636eb4b610368dc78c7e5401ecffdbda86c4d13832c11c062 d658288b103ccb198c47cd6eb75590d1e06e1eac6dc2a861452cc4a65b768eb8 3fbd0c97288e94b3a48653cafc8d7d7ea737ba52539faf4609fe4a20e07b171b a4185ad3719f24722c7849b8675501e844c6877fd9d50cbb3de4c5b308522ad5 5ee515b4c563db7965a3897619736366aaac8552282b3f47ccc74d25db022248 623e27b61486d8b4c3825b47c6f54e3bad420b5ac2cec0eac4824ac30d9450d7 3d64ed42fe085e49ebdf314f4bfd0d6a65cfd3f1796998570f4c069e13240ae7 1d96761af91750187ffc0ed96a0bfaf55cfff9980cae455a8aa524d032b82cc4 356221491af12595c394c6561b2090f3029f834169ce558bec7d8ef8918b853c 6ae145e28c810cac3f14a439e5d22da37f95d623312934c2afc49f6a755b6671 b74144fd2d4c508df739cbfc7b05f51a2c662b405127039c74508b9fe1f1cb9d aebc287bd42bd9406d9984fe68967eeab10b3a8c44b21de80459e00a4cd7f807 3bcc266a49a20e577f3a96ce54f953cc4fbbede6e399d669bf58c83d5d3703cb 3c9a1eaf6bb3a917d1f8e510ef3a147869118670c4369b6b56173eb6977dd010 7ffc88bcd4ea1127f25926abf4eedbbd8d0628d782c5d30f2a8f19e27ad58d8c 2dde238b3a49dd460a5d3ba1675899f7752223b10c24ead58c360a1561eb5885 1638f724c61932a547e13704f99e81b2e413dd44e76a7e457c443d1760d27a94 74fc92f1911c3e4f8485fbffda7ca633df373741821a44ae50a455545bebc7cb daaa858eb11f61f48a518a7d90669b98379cad2bfe7a6d271444c843b63e7fe3 031ed25fcbe9954bb3d2bc6264df5b8057d8ec6a23334ecc6486b005f3c720ca 56e7be5e379c7c71cee09dc9c712699e78ba26eee8b2878693663ad0642ea8b6 ecd623538be37ca7c865b189684bed55f1fc8575a8e26ea60682b1bf67e1f0e5 7a190f835c9ca4225289c1e755ff0e348c02b585cc5ef3fb0611c6087de55bda 625b9d9615937ee7e17644ac5d9d1f8d55c911ee328ba821e7f331911bbfbfcb ed492b24f417b99e9d14ee090b336af0bc8e6e1f78d75525b5343889ebca0344 b3af7334e1b2c8479260cce5d543ee3193cbac6db35dfd43b4ef4112fe278e2a 26d893ed677cad24d99f98ecf7d650e22e5af346a2a5e6282e87a235d13237e8 e824a70e2d434f02937d7e43fc57e8e17f4aac25187152cb57b41f0c2249aeda 4b0f09136a2cc08a52642ea94dfbb4c85281914c111d5fe1e38f7365ec6ef85e 6055589beb3214a3545a2137c6507e6de54207b24b4ffd0245a8323b77e53bc1 d0785bcec6ee270ece9844b45196ef6fec607f02940607cdd9bc9dab4a6d1a41 7fb814ae47933d5012249c20ba971bcba04b6fe5950b04145d13ec5203a1e6b1 49d1cc95d7c1c6e4dccf3511b925f89dd0b53ba804fcd2f94d5239185d7d9a8d 6c83b4cd80da3526ec6ff53cf42391f7cb640a3aa46bf72a90efef7bb29d9fe6 f53802448107a6fbaa9e3aa5748f123d3acb98aa413c0c1506260c48459d142e 112c1cd298b31c358425ae545b9bb8d6f3fb37ad9d8050c7efba21dfa71155ee d73ca50d40ff50bd8a54ad492eb124667a2d7410bd2bfaec4aabce9ac2d1397d 244e8b5797a4e73ee9f4aca76621c729a8958aa12fb801391d79b5ff67dd444f d3ab1fb720d9dfe85f11c562e61f31b93b08b88d6ae0a2ec7035f228a7554fce cf2fc7f3e5b327be991a95c607265b1a61a496ccbf967743288f421a998d8bc2 2804d81a4dbc01312523b5a3896165e0af99ac625c69d59c6994d9afa3704410 38c5318bc78c5f485996f234ae0cfa26add0dd6aed3ad6040912b4c6f5d8b863 6590a667a9b7129af20ba794d7902ee4f2f70250b75f1ec57cc672f3aa947b8d a5fd1fdabe61b4a7ba5c9b9e00292f60c9b85b5ee34639e8522b4a5084295791 409880afe21229e9c37c46d1dfbcc05c4a4200c90c913309d152dfea15e4e609 9796859ffeaa5cf16ad62a79728960d280d0e8f5ff6d42c0cdb109e66e8f671b 4c8321848221d08704ed1b35e70a7229702f82a7ac146e476ba89e1cfb0b82b6 1f41f0aad3424079d3e194616588227034853e0213607549958a74977d0155f0 34b5736e60f7d2b06a3fe5fafb8c2c75304ca9214d4cbf636f73c57e1a24bae5 c1aa0782e1831bb46995f43c80d191b6eb6470d2d3f29ac4a236548eca12ee64 2a569c878522cb3ddff63d3b2164842fe597374714165826c583627a24dfa350 8c27455428c7f084beecdb8b7e387f6f152c36a777793963f76bbe6df97ff813 4699689f996496cbf1c7f46ea190fb31eefc52cf50bdc08af27293847b1d72a7 bafa2264e1fa68f589821d4288b567a530599035f76377629971ed1f9eb3c738 157cbcceba6ba74eb38d1e67b82fbc22644c2843c589cff07df0d7423b2709dc 662fdcfc7803fc2a1f5c8802fe58ff51d0c1d5272eba90c5e16c642a595db19d 40e087c5650841b72e4ea4155da710ebeea9affa40320b98bb42d505ca86ad6f 0e3b5c08565770879313f0330595ba81ebd0943fc8bd7b4e8e2a3b956fb6deb1 25df0833d8ff762f118dc7b89e53e13d6c372e8319a2f839a58bc622c680fa15 161fbaa8cb6cffccf1a025c5b4f1feb9d2b828d8b85324729d1392f5089c54f0 37236cc9df131bbf4b2e0d408e15ad9f5c2bac3d3a48e316908106f4f6e81ad2 80d919705e51c431791d5a4658fa3ff5c9817b8b557af5845c75a75b4eae1cf1 0d68611d1dfecf5f7af210b186720cc57a931938661629f8b008c302594b9e34 57d679986b347e07a0d4b9f87514f840698ceddce8929c6b463a9e5d348fb873 92f76cfd2861c1968d37fa5c48ebd305921b7585aad8bb864d8a4699b1543073 ad7f1c6f86cfc1f71197ecdb5b3840581147758c123b2c70986bcde3eb6a4905 8d355e0f490609f728928aaaac00eaeb3b31ad5131d21a9b4209c48f76e38061 acb90810f00e0e43b82970f41c528157a064503aa952faf28ba71554d168b1f2 67d577c99995e9137e6f767a73c0b740867a1720898f09b52584d00d22182a64 17dbf088b990b945cd6b711504bb0f035cce732bedc8c30e2264823ff2d31f34 9f0a533e4280b6fd8728cf220aed41975cf85d892cc6867370da86f65f805ac3 e4edff6b07a5d34eaa75f61783195771837b4b8b2846c717f4feba21d07f6a91 5739b38d8a51b2351f324f4610b75b59a70d47ce7088c8fcd3b9c491cc0cb1ce e2bc1fef1d2abea441273d642daa61a93a03caa08acc86276250bbd891c77fb2 36594a459731754cab161385b479e9f7c3a54a57dc63669aaf0617108a2d9f3c d8bc26a15a5067e5bb169a3673b0efe810d8f443dbab81a9dd0f5c6042990091 3798d22180024da807ea7d5cb069ec4d5c96108827713a7a35aceac443a6599b db4a1bdef5f60f4b9ac064cae1cef3377794fadd0f38cf6741568623885fa9eb 01abb4fc2adef41fdf0ad79d0f1edf3af88b8b23ef8729b5fb4ef366a5a7b04d 16b910373c1346d80641df46d1523a592d4e5d80344b7bcf3f0bd5a480c4cbab 7d81c5b07222c27f5d78fb48e3bdab881eb326222dc6ae024c69100b5011c448 800f058649eb18c55d43a051e27c32905a5ba406ee98e6bcce17a21f9e4e3cd6 a82cf6e8a2dcb986eda4de4b19e77c879f68d511be087850c2e5549915549f6c 67dfce86bbcc9dc539ce9a66e8f2f778272b83d9d1bc55501c418571ace7ad9a b734b2e6245e9a6b6432f58fd51033984b9b3fffa66170e96fd9bf5541ea3478 26413dee1bd3e6c9fb6e73ebf73e3dce9e97905801b6e680a22498d40e351a98 7b6d0b348987cee3579e3611507085a407e2f892f45d1abee35ed5268e1a94ba efefe89d6e47e23edbf99a8318c99c420e3202e864500e8f9aa975638ebe5bb9 317b71cd709962cb820ef613202f024580605c1dfff50d16e3754adf3c205091 66eac1524f8b1af57130a0c43879293c3bcadb7a331cf6d39b68448a8bc38756 7735d90cb25e8f5e12de5c69e3e4231b0fa4d694501a9a9bedca4e9430612d6d 46ead35c2a8f994b54bfeebcb2c88fa7a3f231dcb8e2e7e3450ac507324c2f8d 5b644542e742c4f930efdc994a0e15c30bab8fc4b3d0a91d4a827b273994409e bb0f8d7b957b76a9c4f09909490ec5f1b28cff51eaa78519e455c128e3a7a03e 287c001303246b4651d9d7ff1b54c508d5aeb9b0825579ab78cb751fe75ccd07 33268b008cf08578ab14a3fde1b5f457f62cd40a4442829303d77e669d7c73c6 956807caa7c9cf780fa7863d93462520eacb4fe35611f1ee29a2c3c5fc6c6d74 ae9ba0a908d6dede3f968706832826063a53da70ed0aecaaf869f2bba0bb097b 1acc25e9d183890a66a3b73567cccbf728160623bd5bafb52168e5620d67f942 6a0603ec23acca3b57c5e9ed5a1443c90b6e793d2048aea2359f49cc6fc1ee77 3a0b857289ad00b7c65f6938dd1d8c8b06f934edb24e70e77dd6bc31fe490d77 87c67ea6fa9bea49c10d294181b6d4f78fef4b3139201f4fe09a8c3e9a6e0fb3 b00529267e63d76e1118f807aeb402cbdd6b9e4f98501fb42a30ff092848e4d4 41abaa8e7749ecd2a0d8d7b5dfb3d94c034f9905e372e89d858b34e3894a05ca 5bca740eefc5db924ff810e877039d961dd2fe1b0474a8a30aa34e68ad33f4f0 dd0b94d2d2abe7544e7779ee4c914bc5ee47e6927fc19544f454aba37f176400 89a237264b9f499f35f26cda40c617a6505c04bef7f14959d0bf6084dda7d1ad 9df7395db66fd3641eb42ccabdf6127d849a27893f2accebf8d1ee6374c4bf56 c5e17602e6fa2fee438861420cb53f6b542a976f7b2aebaa40dcdcafee51ec02 1dd3ed221606ebff253a133ff85a0fd32dfd20a56a69e6c8e4ebdfb3ba4dda9e 405d9d8521a3156f2e154995d20ffd107abc0f1ee03a342691038af3b2f0c8f3 d0ff248465c2f574036e7cc87283eb4ea75826caf9e505e8128fbecfaf1af86a dbbf32c62fcc31f9e45ca48d4a76085b7d1693c2070fd163b3f0d43fa528d624 cf1890ab31baf9b1ead22371bd35e28088e7e4e6f3efe68f0f251c66664764f6 85c44005f74fdb9c0dc51990a9d57be89a5dce44351fee3f923da09f7d80f9aa 816375a1832ec959cda8c69767655b60e82297b14673e0c3c893b7f5c4db3bb6 3ea8b229221857177a9e0676e64099deebea549c1855256ff1140d36947a53d5 25263022db9696de47ba993fa096ba8b3513de2d9310ab749c802120c8967765 d188e3119a74736b14e2ba58056c790d67293bc0a9dc5c6ab432a678fd00605d f4f7f8d501e09e37da77cd86ed909cd4a4df2ec8872a616165665c1de523a298 6fdbf95a6ffe0a7c0c0a1476969c4795003e28ba1638744f735110f8c19649c9 0d85c59ef4191ae3d8b114c41de0b647b233a86829645ec36d31ad64f44fec2d 477282fb43348a2d0eefb7e7cb57e36e81b54cfc6df227882e03af8992aee295 a4cdb0400e16ae0dcb5f62b555a8a09bd106fc0f9abdb5e574dd673debcc1764 951bde1f839156ab51e5e4d2529e9a642d6a5701a1ffe2d476e0ed597cd86860 781675800d9ea4573d0760accbd8625d41801c27c3489f5871653d5d9ed75df1 f031c88e8561710126c768eb21fdbd2d6cd8b8b4a03bd04eaa051781139415af 7985ff1b7dcb1a454f53b36fa2c71c4b3f9e528199158eb855dd3ee69ef0a08a 44d3560fd810d975f10e2b6f26787138edb9205c1fe2a0cdfb60874d1fc2728a 51f18ceecc6a4028bf5220eef444e6df49ed23340cb939b78d162bbda19ac250 94f56099a61dc5a0dca40904c3252c342548a5a7033e3ed929fd32cede685e32 ed2cafacf29e054f1292987394f732d12fc2bfd070deb66c5035ad217f196185 260e70487b0e8d7ec0ac0fad9ea39e22e8255ebb740c1c3a3b7102bfdf352253 8a85a3345abd91ce554bd5831bafe9090774fb799e85303dfb51174c102f4cb0 de1afaedcc91454578fa232da8c920064b0775fab03a82a32c7ba260955d9fa6 8a2836da7870cae3c6e21acb2a4cf42e3ec74f556972545b9d67e4aacf35ea4f 1f9830c025d8573de746ec22a61668097f4ba9ebca72f7c9b971930f24b74198 87acece730f1b8302a6ffcc9df2b0fef21e05e97bbcae27089d962fd50231226 2d11abecb42a7a0db08f7638f62699156cbc7c19b2d437f6a37266d77f8cfb24 13fb03288ca3b4a3bfe87af3843b4fea6b5938f5521e00df3f005001d6a43d09 607bad72c986fb497a3a2323310d6e1eeaaab38c7e3d2daaa0bc6f9da0421642 b0214f5a3519e4f9dbdd8bf3caa4d0e5a8cc7e71faad779a2f6cd5fb820afa86 a2eb4f3ab83d846679d44f5d3cd2f4cc443569a7959388f9d3dad96f4830741a b8ddce95c2b34e05142fc5952dd65ebaa490c3e6f51318fbbc319ec427dd9c31 bcce4845d9a922e3dea97d7101014e60a58a1fc4b3558e8f2fca0db1f7691c40 86d420ee580e0c0cc08af04f6c0eb28fd2658ba8aba7afb0bb16fd7d698643d6 d33a828b59a642b65ab9516fd74b30d7abb9b84b5f48bdc756fb679b48d9a78b 512646be31614faef918ca08f268eb41c26b263a202c18692a83f5b40436da6d 6dc5c240921269a79026dc20f9bfbfb4418c34a216d2572a077275c6ab02ba1d 11d269a08fbe56aad72eb89f5537f79c08a2d6634a51d6f7ad53c654359d270a ec71aebe9a6406408b41f437995af31a0056d3847d674754cd6186965f17c94e a4ba61ac010a0acc2dd2eb687986551b5e2efcd5ce49649ebaae76e7f87b3c8a d53781a69387b358e67d3dacb23942267ef0cd81a94f411c40a10aa756afaf32 2d84e737a2dd3023edb029bc59873573e1300a0d81b37e214f1d9f978673ed1a bd8df4c03f974ca46cd320b23dfc03ed54947a5aba2224f2cb9b384c7efd06b9 b892a3ec0d3268dd18e2fbdfd5cf9e60908de51c4d0fe54669983baa515ac4b3 001cf3bc460bcc074a38ae8c299a223386f28741b07316e663b61874b369c46e c8924cdeb9caa7d11d38969075509fb1a7bc06fbe0a7149102206dfc5fe18ec5 ae90609b5e40965d1b306150c8186e49b4bf7fd0f6add0b32baa50475f3c508d 5bced01c3d18a44cdf7f1cc2b1a782371f0838f7f860a1df80857187c5be26b7 3ea8bc9355eb5e3cecd98c8c3aa17cd37f9cbd0b1eba48387b6452efaa9e1771 088d1c9f87cfd3230aeeee3b66d9956b4b38b60522d687415c905c87b89be9f4 0917ed14a0bf35944669d9b82671c642ff4b7b7b5f68811775f735de90640144 b1fc715351d1f988e4014aa2f3ba2714430b7e01cee92cb576e3a7dd7d9407a2 beac83959750082156b4ef1399c23ca0cb0f8ba08f56696432df2510d30a7b74 efc877e93afe8c3796a8f6ed0f846462a28361154c6f4ad34db8cf99d24e0433 09821c8f95b85b1a2aa50532af423f062b80d401dbb88c14a0720a2c61f0a1cc d06826ae69d2f6d368ede0f28c6971dabb8120730e119cd07ab72b94a8930e01 7c4a795509baffa6cb7240043fe77e23f271ec490c8e997a7406b98d61d8dcb0 d20bd27679e46004d53cec0eeca0c41dda7d063b006576aac83aa4cb52ed3df0 5900328a71b6844587af68bff65784bb1375c12ee00823f5b9fee9041ac915e2 52d8e8b781dd14b140409f8eb274070bc5ac92ff988b2d54fdeca2398e6eabc2 50367c28839fa3021b70ce1d30671eb30a1e20cde3285eaed2d9f1d06709d97b c6b837799954384c70b7bd85c664d344bf41b08a82063c8b9094ec6870afa884 37902d0ab94f9717aa35a7e968a272b2d9c7c55bb9c9be08711ff7d229bd00f2 022ca7c9a03cb9065cb1baabf611f67b38f612aa71d2d12d267ef68cef73aee2 2d4ace8ea26a2d35ee4a403497c596501090ada71ebe4156ad1e677271d0a6c1 c10497aa813c001c0274a3dff20a826a287acb8572e8d0c2c4d80ff6dd0f5589 0ea0b12bb7bb469e50743aacfac06384030c77def499f050cc09fe18e5b87a9b b4069f6cbd3360fa3f8ad61a66949a2312b7110c83892b5dfb86f64fee5a7762 c0f28a5787cc9fb019ca403132bdad8d7d6b4aabbd55ae1be999165c4ae673bb 67f71206694953551d864a40e46af8d2b81d65e35c12e02a67b3cb64cecf9d52 e86bf9aaa9d1297cf54118fea89f32da22c8a6175a7c2d8b7636f5adec2fc026 12501937dc59af8bcb2d4e613dbf7606e20d28d70d77a417307abbfb3063ba65 1c803d1c7f39b2c938d07f85d9749581a02134ac75131a2c3996c2747920bdac 1785e3c44a2ab33a1df787a734c1fc5b28b9377111643f2f197924f957f90975 a1a8220d4b8c9a443af9254f8d4113db16e5f10e6b40bebbdba20a910391ccfb 9456bfb0c2bb7a91a2917cdd18e0c8a45b2cef19a3daad5a7b4449d5b8be3632 8ab5f8081cc0d8b4656ce65fca5d51866678ab2179681439d85cbca66892c470 00e6fa0cc860ba667575fa3b690a7a1865e2e3db9b1d1315e15a484206f319e7 944bf83ec78ed0bc346aa22406cf903dabb076653b415d909c8bc771215758d8 ff6b4cd00da51faa1660bbe5ac85b97c9ef874abe098a59b74e2ac33750e4b8a 0f31fbd22f3c3af2a8994a22ce4c9fe1c15930500a23e712032c856b665ee4d6 80c67a99d6a018e59d425144c2939eb4d492ba2955331acf87a377ad9f0cb32a d0cfb6b0d077c34791927fe2cfa7449e484bd1327f9e56c174df3c3a6d926f0c c0eb4fe97f67fd8370e427bb4533b2b1f3f839f18f4afc3d58d7958ddfad09df af3a6d4714980a7b88074d65e5fc4fa028b677cf9326da2a953727720bf525ef d2a6ee61bf70579adc5e5ddb7deafa34114cf15f011fecbec078af837c1e6f7b 6792a5eebb2a3bb083405f96415bf9245690834f90b5b759af2267fa95673ab7 056a5a319751adfb1df766e26f845e36a4c4f6e714524f62089735a1c0a3ac45 fc4a7dd1afa908bcd528c0b64389b12fd0c425975ce2b80e2b2e070248345878 d28be161efd58638621238b3c05de21b6383055361f70ae513a91ecb4bdfd89b 21694ebbdba8003563534ca0b0b0354adeb5c3d6c5eddbb0564e4c349a19cecb 305f3af0d29064ac1e225cb7aaf62264f601bbb018454b7772d2719bc27b412d 9180702be61e3a13fab5ca701801ebe6302974d68046464459d61faf010b9d28 f3f2ad35300b2535b7cd13dc89bbaea086fea468fba45f86e3c56fed645214e3 4d4be4df4807cabd977afb113048a90994d34b78f9cf0dcce0ee37a1a7bdc277 c3bbc502ae7600765fa5c6a4e7c7edfe4ba5d6008a59410ce76fa8c0075959e8 e4d0351bfe38521fe118e9855cb751ee2fd8c036e3566bfd2b3c024be9a0b3c3 e504ba4a3924befb2fdd6d174947b095ff676e716a99b3ebe78b9adb909562b2 4b5f3e578413731971f5ace75c220866058879b72cbad442039a27416d90dd03 0c75c1fc90e8475d68c151ea54d10a1aece55cff74d6ad3e0f7d8ab8d91781f0 499d23f25b3c18ae1b21ab847955b6913da2291d2227ab55a727b61067b4799b f4d408bfe492f34fbcbe118ecebdcdeb0c91371ee4edeb71485e16075048a8ec d0e440258465441610595129aa16a6c059ed22e5ee7d042923e80e14df05f4aa fb5784ec038761c34deb972c57a0d406700547f601cb805628a4c77a75f4713a c3bfb75d2fb36cb431f786f1979164ff7ae09632f220b8a7275282801f957a40 c26db701b6627f3e21d9c9f82139d5987e50366f0620810b6f6ad34ebbc8c8d3 c1345033cec76857e377b8a8a9dff5a31182295eb82220a9481738337e9421b6 b3920e1cde5c4e4647f6868c5c23b797e71bc9734f5e9ebe8c69fe7a0c717526 8dc35512a48bc1a8e5dc8b672476e9a7436b6cbbf6820157dcbf4987e13dd57f c241129fa4590a60eaaaef77cd3df5f6811d7f7644772c7cae1e48c5c7d04593 c971a5317d945100494b1bdad51649dd7f4dc55163860c261a0a1513f531c6ae 092d09b247371e244fe51b0c5dd0749985b4482d3067492c934bbbf021f2416d 27ef96c27f5867152e9b94d68e3f71fa97f246537f57474217be689f21c20ff3 b85cb1c4c18df6dc2cf914dbe348221af74f790667bde3937ce969faa69e6b9e 422826ec130b1b8ea739d2f747faa926efd7f6e510c8397dbbd60adc3682a633 1b9f2181c5f071e9bef33cead47f5c946ae0570ae5dfc2b6bd49f2e7e838cb05 baacafa7d42f95f830e99e2e9ac0ce6985869f53437137df477d3797c5d53248 e715311fafe65e9f2701781f63c33968478bce19fefb6b3271d4c298453ed6b6 65d92fcf6ad6d05f0f24298f71771e6591dd79c174425c67f4f46f91643caf61 cb00c9d6b75ab591aacbb03710c9d3f9522be93000608489a56db914822d0d0c 64b82a7639b290de15f8bd1ae18ac676daff6b40f98ff0fa853bf6afd93d3ff5 d0e5b24bdd7b38fbd1d681ef7070010906ea5e2196cd489960fb72eb8bb7360f b41fc78775d2d991cd75986b7f6afc817e9da49f734bfd8db71036ba47e6522b bc4b412d5dbe2b6a117753946a15b0324a754138bbec8a696134473861f5274d 5504b146f62391a31634be4d84c63b673a2bf87963685e0ff48ec2caa0773b76 b67351ec7d293b40dea90ed697a803ddf15c86e26c981c6e3dbaff53a4cd1b1d 2c90defaa30e7e0fe9fed89bb74e18a80317ca2116d0364454229ca7e813516e eaa2424dc11a87194dabbc08c7de7eb189533570a125b188d4b7048b00ae8d83 1e028e10dbd0438929f19b8014d0c539400b3a942211af6e7e77427e37ff2fde 297ad81e4243b9ff641c4c97713e2ccdfdc000438c7809b2104169069a969862 c30f7d0d5f379e61480b20235621946a46b78288284b18421b4986519eac223c 2568117da1837469ad8bbbf9577e69527e0ba2fd8dd28403aa8e9751e5e0be9c 332b0e4fc2cd537d32ea89368a24462258d5b6ef38197aeafc788a1ac42c9688 63b71a4b5f167fa1ef8695adfdaea215f14a52f342f68290aba879d16baf96b9 e1b36f79a31e33e696d787edd1bbe0f1650d1aaa6eadb8d6a0439dbe30fe5f62 b65bc836dcd78720a01819a2f578cc072c61f40ebfa94ec6779d242911704b1b 464747b39b2a88b2237e7d56595124ab043fa544c8edc009ef8a257e99f3e65e 19ec0c7db5cdf80a76a90a9b40654cd3312da682a902f05c1805c389c6b7640b 51c00f5e2dbefaac4dc2cd3fa04752b63e52c57c15cb7cd3d8b45f4e2cc20b77 6dc856b885f5fbe0049098c44222a4ffcff8309905ce471dfac58afc2ff858e8 91feca36a2dd1052bced25da59b5b170096a150709cedca17e6a81493fb1d392 7e94f77622ed695aa7678403af91fe5656ed96c39645f737bb79e1aa93725df1 fe79a1deae3b20654bd09e1555e8f5a76c473f447cbf29567bb37a3f7609cc7c 0ba435b9acc344e1bd0d19bdfdaa1f84a8778b2bd1ad0c478e4092b918761c81 b63d8aa415d6cfde1e5f73e9b0b26902f2e5488b69a8b8a5449d28464119897d 0176bdcbeaf5a5919a44aa5762b422fcbb4a9c1d9da79dd8ad7eef785f3cc936 68b6b22d96fe59774f1526e6e0561bddbe61dcc1c3fbecd934c7f600db2620fe 947ed887aaef193af7ce15e9a5df3b2fd7e2a5cb303e8bed79f5f6e70830df44 dbd03b3a0d9e8714a54c2beaefd90a4b9318bc9fd44be3e983df2196aa2be551 b1d8778c24fc59e6b2b79bd02a8e9836518f6b83b19e30ee79df43a27813cc72 cc7c5460394f12c14edfed7387a20aa06f1f586c73b1dfc261575591a654979d 8f2120a0d433dadecaf519c839b3564d3f08aeacfa53820c5730b31beea6f5a6 5c99eef39d4017bac5585e81a14e0ffc3bd92dde7a5bdc221b04ec5b5994fd84 68758cee59a4ed2d64093655dbe4a2e33818abe1914de57014b785b57a85001d 9418dc5338b02c7676a55cacf9ff9fb9a15e937c87a22821a6e75f6fd41a02e5 21631ebbf302c3ef8b144868d14a349c75d8f4fb1b3e1ea4c4f0436a3e044d0e 33c812141ba9af3a56381bb6b2ef0574543d07c7ab26f04afe9f1e2849380bed 7d617de580b0519b2b54f1ef39014a4fd8c51d8e4520810fa363773477961d0f 85864df95c179f28f7d4efc9bd2f629a11fb22f32e25e1f422f323dcfd937ba4 06f7ab6f019764e4458082287741ee70f77f40daa09e8f93e7d11f5aaad42b87 4c183b4555e9aa2427bb40bca2fd7d2c66a489bfbd0353d3705192d415baf5ea 061b0ee9de826e1a3f20f9a6a80608d1f58caeace9d47e8153f422e68d676a68 c8ed19a3ce4e9d5d90ff9d1cbe5961946bf864e1c9d42cdf79db868c4dc77a09 b4d3ef62976d5d6ec246ac341f2afa7d7b913b2fa9bc1645ebd6046cd96286ff 308879a79ccd2f06e4f48ee0af910811b75add7128b8e5ba6518459d9bc536d4 487b46af0078b789ea52b0fddf98829c25afa4505938ffbc616b312f51d3093b a6aca89f0b2341c7540ca8734f0671562d2d1490cdc19a1bc90a27340aa952ea 5bccce09d498c789773d6b0e1c0faaaed411ca3e1dd1d2631e45c19d4675aba2 9124cb3aff7c13f710aef614b77f7e8f7ac345fbd977fe5bdeb4b7dfca56a8c6 4eef51d8f47ce6018b763331a664e30de3a6f2f1cf9d5f6ef087b44becefa6fe ce90ff3a9b932b78524a60dcfb91a891d49160250e53467b5cbf89087575cd38 5d6acc08e949b2d512189196cd29ca52e2db90d84c2f5a28a0e1406e6b4c889d 35d6ca1131b0ddb37eb7eb3a018f8d3258de7756ed18458761556d1ef648a562 1879bbed47ba2dfe0ad6228ce7111caf7453b42aaaeb4bdd45028f7646d05555 6c0ad565367e67989aaf4ddbad2e5eb5f6f920c616bc9f422bbb81fd608c2c81 ede4876255945e642b507941e909956497d6bb16bc90f1b8821001b90898ca99 25c63a438dc37e8d45c025cbc14806c23334c3097e940de262bd162298fa153d ba239ab34ad11f6594e1128720b4dd2873f7e43ef887dc427679860d03e635c6 c6070dccc61f2acd4a91bf2bb9a7c2e17a2aebdb1ccf3e2b6a190793f550d0ef b71af22417accd8bada37bb2fdd76fae9113c90cb040f5f214e0598f0d32aa79 d836d6102f3237f1a8f46971190aac47d19b1c0d6039cc3b624b901b2576f1b6 a69bf7b7acf05a3eb409b0cd60e3ac9cea6a2cc66973753a6533db4c92538cd5 ddd8601ac099cef28b1ccc8e4f20d3e96fec000095fb1b9cc00ea51e51ae2ad9 20ab830b1451eddc8bda74f252836dc74d8ce095313ce0fb2d9614522e774db0 bd41329467fb44cd0421e68f25dad3f480619c8511f59e6c327700000bbea31e 933a0f54b796d71570b980c60a11bd1a0253541cc4119fbe41c9072af0f79526 d915f00123236297e9ecb39432b5da04b340daaf74d1185eaf372aea3fa1312a 99c3dfbd47cbf0c64daf49f3807a146b328bb43496473f043e4d7c68fb880207 4cac98994ffa052213a8ca8c282db618bea024f3b7aa2906637cdcddbb09f27a 1e6f2063812ebcbc33e7a44e62d96f6f9691eb53ca748904fdafa21dec4c2a33 99e4e1b660fa25f39c0d1e451eda753cde92536d9ec99cf7a0c4e3d20c9e23af f054c304834736b604fb22e21315b73978b163d6e5c890901b69f3dac48e48af 2cdd5e225fc2ac5f94445cf1b90caca41b83a57832a6b601549712501554ae92 b5b34f46d9eb282c9ad62620198ef7a3a4c515ffe3ff6a7d02aead53b4678b8c 6a51ba9eb966cddf7bc5873a 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTT9 %!PS-AdobeFont-1.1: CMTT9 1.0 %%CreationDate: 1991 Aug 20 16:46:24 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /CMTT9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 34 /quotedbl put dup 35 /numbersign put dup 36 /dollar put dup 37 /percent put dup 40 /parenleft put dup 41 /parenright put dup 42 /asterisk put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 58 /colon put dup 63 /question put dup 64 /at put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 81 /Q put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 88 /X put dup 89 /Y put dup 92 /backslash put dup 95 /underscore put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put readonly def /FontBBox{-6 -233 542 698}readonly def /UniqueID 5000831 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b4486be465959b1188f76df7824c135a7fb382c4e1 1b0ddfe856b6f34552ca48c24b57dd8448fac257c4d93fb122e1218fd36b99b2 d79dadb8a66613ef11039be77816a7a2d6781fe0d69cecc36232ae87a172afe0 95532a8c7ff40bdd4a5fcfb6ccfd8f73c572231734e0609c6743ee11010f6579 820b367c49069ac1d45760c0ce8dc1e67e2beb72be6d287910547e1b4bb52465 b75947d224998223275a2c340a1c14c04328cc2935c53ee2723f1de6357a291e 14863f6c1411477b3ea074052b30a4c1ef03ab324d678307e1cb02c7aaffa90b 73975378b9debcd3f6aab626a361be8068c60edd0b2be4a7bbf4efa21cc23607 bf7e2556c17b5923d7b0fc036d5fea743c55f2bbf72e8a61995bd63d7104a085 b8dd5a83d9077376a4ae8f0c048606bb9e84c640c52d0a95b35d48cfafd6ebe3 d6eb0ed88c1212818ca93e40614740a77c446b792d02945642014a5d55ba970e f97dcdd5b839f621a052d1085a1e668161d3ac0227c7867324ede883589b39e5 d152793009cb5a08eb6719a44dd01b6147e3436bdbb28215ce3d29a3b1dfc72b d942f8cb3376b4e12cff53a793d935346ceb2afc3428cd9313c671ec1911252c 19de341556999aaf7417aa5085daa35ee71353fdc2c7d83ec2dedaabb1b89b99 e4cb5282159cbfb45a286f8d6bf3abdedccbdcebaf6994b17f1be07d10f00cba 47f2fbf66c0cf524494c53786b0f88f5d96a18a086fbfd22b6cd3108ee918369 8b342fe978502afdebf98632d63bc149de9eab94230a55327fb96b72a85ef6b7 acde791164e8f856e95058b875b02a2262b85a2ff02fddaaffc3a476f7abdb58 f5b1df019a4ca14695cf1f238756b3ce61ffa44d543341b9c1a3b422ad6ad0be db2f2ef0ad1d60a8589decb250451260a0dfafca04c4435a350b80b75f198c1e ccddca12489fe22c127dbb5c933103e2f46297733cc49cde6cfa0487dc486421 16485ce28244ec583308254ebe9453ee18eb905e1bbc12020206ab0ea2c07972 ec414cfdee3c2ece47256e04cf9d0986f973bb5e514a7e5d3465167d3d5dae0c 5e740c26239a75d66d48fff4b91979ec616dc78391c486f33ef9f4550455888a 9c9ec9f22d4aa9b050a794244238699d1d3664815ee0d35765bf0337a0cafdcb 4ca84411f1f277ec0c2d30885a30431dd571219d16130d0d7a4dd88b3151c809 94c448779dab22271bf38ac7e7711408b38b17e703342e88a2025416afec8bee 94c0dd2a6753ac393918850c9539974f7c313a23d740e138611136616d81e143 78b03bbaf6890c3890b0076e59a1c19871e0edf965096453f91ec72bc20b4277 816aaddb698eef1238d574538b67a7ffa9e7449444d864d9f255eda1432618bf aba7472cae17306b8ba773e11b9df9bf50cca17dbdb32a8a5d9e8e937da31fd5 2d41e36e4637b2abfc97ea3f47b335107f9d9c6995ff4a0dc30a105fd1c1a202 e89d921ad9e44f15a410ac2e5b0cf674c93009e22610283d7f9dfef67c422387 919a958be87a4b75237ee7b1e8c781e300ef1d544eb2e054efbf8414f92a1af6 6b2c1cd1c046f2df4b4b79c02cea56ce6b4780347b4d8488a82811e0f5736db5 58eb4f40f60c1ba59c0e1391c88e7a6d4ecc9bad73cf6dce4125f881d3392d7d 731d713b5710ddee9fa41e4cf5a1859d81f22f563b58980a685cbce6712172e8 a0e5e9177082cf6e3727c970383584f5585b83775edfd2a80260d39835d0ee03 54843bac61b5019db8ae418859b7f48007f96db7591c5ed7ee7966f8439b8dc3 7446916255a67614f2e139ba03c197c9f324b5a85cfe3067a833187a08c8dfbc 3e51a846c5f53efc8b01d308f2174790f3558a4fa6afeb9121e8d0fd5222d0e1 87da337eed4e25830e66805a5ec8216ef45ab96309c0f77514d4327a4439eb40 95e62f4e3ce0f4fa2ea2a6302c69ebc9139582f702a8fe8b827f71a3f1c1e1cd 69b670a5350eafeb90accbbd50ce07f0f1bd2328e1d7b5a60dd0b1af1a04cb90 5919f133a7263d9d77835ca1b7773be39ffcc4577604008b3205e11e3c8dd8af 1800c9a25c46b227e3a617336ca0f6255b6da405b50093ae77334396f3715199 ace00fc6ae6eefdf280db6217ccf98bc204dc4c55b69f029a86fc28fbd45d32e ca55f6486e401d0f1500e7a7d94ec81639c8af9862fbfefe5898a772e08da4e0 c3f928cbab73ef0ddcfeee58ccb8dcce722a30100dde8fd0ebf2407d8145b5a2 ba577b831255a444891ce6aaa9836c831e6e86c219a6117d661e5007701a2292 e19349f4c315978cf4f362f4adefd8a1963be3baaef50c0dc28d6695eea23509 fa04e87d415732a377618cad9d8390c9eaccd908852cd278d988b24959f3c8de 51b2f8088a6abc7c7553abff29c3f8f31162a225965cc38d1f9acca4c0df35c9 2bcca86a5e76706b858e58181d93b0e0b44105dff15abaf9d8e9b5ce941b3f51 d11f962d6d6d9be964be6a72679042e684a9e18cab351e95ad932329b9f15471 8baa971c5d1093d464c5713eb2f28f40e479a74a4a2213a05fabab93918b6490 515fb5b9f115581d4c958b451d0b6fcef6c6698c8d085451ffdb8590bd7dd728 ff5e59042c5c035354b6b7cf6db16dcaca668f1b0df89b5b2d49f4a64ed005d2 1efad812a448edb0e485ac7f775e3f09f4054f75fa200557ef98bd808eba98fb 7c3c60da991b157f60f55e28d9222c2b7e8264a7abab15b690a6a33257237bd2 17a841792d120d6d4d8c832061a13fc5bc3c376073f436114baa21667009ecfc daad5bbd9e7b700338cfe12054fbfca55a3ae281f81ac1ac387bfad1c31a3cfa b64702d2a58830867528a996572ede707f322579745c88b63eaf16b8a914c8ff a5cc46b43e4194d1f856a474e69a12b655e0895b44807bae4854efa2e0c4c6f9 acd65bfed1d38ae7cd9fc2b0d701ead131716ee6224b8e679361c6ad1898e027 f71a5d27d2b5f88a0ac4c0123f3ed85d338e8a3910a5ca6b41f3d2cf31b60738 5fc2fd09f35215bf8cdc63a9e1698a2738b5fac8f68dee353f4ae4b106e5d84b 63ef1b809f4f1143012a847f63cce9951d9f8f87a3aa4aeb378495b0d0a73910 4c3541333310a393dd274c04d279af08c260442cb56283840d4c4fe9af05575a a1ef39711916e6e019b016bbc8e5dd0219da6a759a08b3077559d68accaa305d 418f20914e74acbb44e9f0df2a249241954a9bbc1c54a25ebb2001fd33ff97b7 9bcc78b93080ecafc8b0c5e675ea7d1f0740d2977f0ebe1a50e36e22477ce850 a4fa37380a3f82096a520278634dd752d72d057ca81aa88f5d91ee77bae16755 b0cf4a755f00d47b08e1f0295d702f49db998ba6a5e325adea359af1a3d7a579 332153a666f02478deacb7796155374625e5cd63562bcd1f4570fad7986d26c4 e90a54a9b5ed589baac9e86ccd2215dc283fc17b1cbff65b0ab844410ddb6941 724de213def4a5d8cff13d4656efdc0790158accb51ef5a36c5407fd1a950d47 de92ac234abe526a38ac8d41bb47df8629ad3f908a4ffa02d5ebcb8ab7f0a841 75a6324cae67dca294b0eb00c718f37268d6f43fe9ae3abea52fd9ee0f216596 52cdc38916af5a93e50381bac691fbd95d695eacdd9b4b8168dccbbadedf4c41 173d2dc571ffe09473d8ea3b38d39285368d45055a3aa61a02cacc8b478e70d2 0f32772a9b2c41c7e495a78e7481ce799f0251bc3c7803f0639c804a38b8ae9f 42606304fd8519a6ebd8812614030eff0e367065cbc4f60151618d68ab2245a8 b703a97835bc2a5b9c455b5d36765a1b15cfdb3e4310b2ee4a7394d21e32338e 337ec3998257bd233703d129d4342c73fdc141c794fde898267390121f5258e2 3ef67e549add4d4446b73507f1ef1e97748d1db8bc79b6c29f9e8ea24028095a ac8dcf0bdef9c860b2861a7b4781221e1e3d32a58d53424008ddd1b53b32b277 e9bf02b4caf7b9782b6a8d6f4a5a8dfd2dda9e09874ba03ade049991a9714fb2 308259bb8410b6e84f9f3b2ade14d326d961dc68be8b2b4fc584cda23b8ee4c3 1b80f89c26e11fa2941182298f302ce2d147ee8f08a2a0750d372b3c398dbf6b d1532a1d082c0d90138c6def6774c27d217789da7cb8cb54c66330d1548c5781 d889535eaa5e093d92d37213c5915554cf9f55e798593ddcc3892f952f45e704 a0da1a88d191d70dddca683ecc81b28c577967925aeb303aca574c09b10e984f 43eac273ef9b34fb6ffd3d03b36ab271680ecfdc7039930d18a49c9b9ef2369c 0bff4a85f6a1181271e4c3f249736252b3261c29ed119231ff88cbbfcaace6f8 a4b4d93a87d74c0bb71bac0bd41ba66527a727e407295c0b610f09eb373ff64b 49a107c898a0d31125a7c054a362fba0984b31db8bf53afd16f0ba8c18032212 bdb7f3753ff2f79462c53985871f15492b5f89a8c4be23d36adce15bfaca9571 cdee3ee15d26ea5ea310085eca282c52078110a044590f36defd3fb101f25a0a e00c45ed6a90ce6b99ac8b0f3f6d3a9c7c124795d15f53c03b225e056b336b65 3d09fda9a2926493830c55473f1549a3a886d7a67b6cad6ca27ff9a71c9bf8e2 11b924e5c1c1d49fe8580a45c145d37109689b90f80a3d4ebc87d01940b5e98b 8b4889f7c8a7c8e7554ea24096b8b98c03fa5016e14d3f39a7c1982bf3e33b96 fb442f4eb6664b1166c600a508e9945fb1c30bc3fa0aba51cc0a28b74d516125 a84c6d1df2ea7ddbfeaf093a1c3f07855c9c0fbda18e6b9869591cbc6e949a33 cfebd77c488e19faf0eef77a646940539fefa90c5983da73355965c8707d1cb7 3c6a9d2aab5dbc07ef401694969c3cea2e5b99a84ae63ce5f2c5fa6b0ab53121 b652ae98a98311d55df7fa84a14d2573dcec3265ba9acef405476fb60072aa08 a629bfbaefc57cb9cd8a6d7c72658a0f3319a00967ba1999007fed2649354c00 75c17c5b86f0dc21b9b45fafe2fd19e8a3f160c55f5010b6966fc01ad16e18af 93304f310af0815c3f34a743ced15ca393656fd67ced0183063c89fee51a5c71 b484e568ed34d0ae16baaeb66f25d57f39731a2851a6e97ef98ff74bb671cdf5 ac1ee7b4405552163a89b929eaaaf26c305be9a4fbb9329a31f6a33a2fc7e990 aca3c6dc32c27af6667444f7b90e4970bad1e15b6821b75d96f8fd27339d7308 c50eff81515eb5afe7effe085418f4f926e9797981220d69ac4bfb0e098f59ec 1bfdc51bcc55f95af09b1c584d0ecb42404e9d3f7fd908762b1795e4b30942dc 8c3288bb6669a4396645e4368ab43dc8552696f8121783d1eab80ecaac483016 f6eeeaa25ad852cbe479c7cd35eb4c6534139a674a459d12738a92eaccba18bf 00bdf3e9b241a722ac0e374c25c37d2c1efa10db82625a1a85a58d1b91735a79 bd2588c97c8db7d7f23ec96ecf4fee9dd4de7397fccbf499868456b442a65f31 874f9ed70551b4c867b3b112543766c30ea2b239492e94b0c2203b0441f8d976 3cf63eb6f92ecee5bcdf939a12133365ffcc8a791f507be562d6f7bafed897a3 67bfe69bdc38050ee662d2dd3080d26be4c5a581b97d2e0661521876e478de26 b13ecdda0db60175c321cf95cb24811ad24c17f8de361c23a3c33c65172b3089 646492af98c872fbd6673fe1fca0f8f0889d997e56f7d9d4b1d2f24b0ff818d3 b1da85e2393a1a76a5ef4eaf877e5a3c90bc62bf925c082e38f67b010109e484 23f6352b055c6e1ad160bc3d7f3c162a1e348faa54770a34938c4e9ec50d351a 9d2908c1bc94ea49dae9f229bf1de838ec0bc42f78004f2716c526e4ed5b69ca 5c3e44eef1fecf4182a384e2474ba998ed6d4d1233f43f661e87cb76e14fc4f9 cb7a9435d418fc336d11715610f3bcd51a64d57d4ff0fcea7426007ddf4dae96 57318e6f83063f94d74413c950e3bd429861000a80e37f1a92546a4c0fbb136f ebb94213ac79e34138f6b0b107faf3836354ab798b2942ec13dca66e1a531a66 1af14ff8db9b15b666004e53bb074e6a10e1284007a7e74728627b6854450f3e e367aa56bb9b53a6a65794d0bcf8710fb7b13a083bb0c5318a5fc773f05e3d0f 76336f4edcebeab8511f985eb80edb16581de3efbeb07fdfe10404b1e92d6b3a 6f87162f98dde96599da22f3cb8d1b0a7a530b682a57cb3a65c1cf12db381f76 1bae67a6cf51b409a61404c0ae8dcf77664e4ff95a4cc2260d9bf8c194be136f b68bf6944cd0551ed97818c7c4ed711fb7a0dccd49d3d7aa0d0d55d536ebef8a 46c19fa016e94644c53047bbe18ef24619fdab7b3b6fb3b2960ac7c758a12049 71ff726823ad0c5ba99722dccce2672d9c36a772393927498d50c0063260d489 629f97e9653d70137cc4823b30a8a49af1918c30e3eefa8701c3e573d5538d24 17e1cc891e7dd50eca22e985ac388b28fe547d867b134bde871fc4ab814184fe 575bc0675c6f74b9a34253044ea32e0f53326cd47eb31133759f948ac40168e6 a1c74337c13ee626a027e317feb98b06978daae1fb8a2c3b842789dc9d339874 5cd3f27e5c3076bec43cb4b47fc51d5d8a84da78b75188144930f89ede77eb17 b4981182554964695a459108afbd5a48c76139b8ff9a4948d18d79bbf3709ec3 84a3f95eb1ce56b01409c8502ba4eaf981ff2e184180855ecca01cfa077a660f d9ee87c941e14fe06c0b06c229b22abb378f126a3defd5401ed31c08dc6348d8 7eff3579eec1d42b422ea0521d2822ff1648dfdf38edcf0efcb31be73b8cbe40 186e9f0419886b2296ad937ab552879dbacd704ea697d762fc2d39d3c9f45d22 5accca15d46030ba8f01dc697e7a8dd44bc25458ebd27bb7b2847f0723fa3ce7 c18c4e38ddbfbdf7123f6c82dcd6dbac36b2587da86e653eebeb2838c1deef34 f613d590bc20db97471263108ce37e6ff367f5e4d45a4c9f3ca99a6024b2c54c 36549bacc7a372b9279924f29c4d9e19ac7e0095e91b17a24b07a4d3fd544b2c 0e6df7e03f4565e1e671efacfab4663abf2fd14f1ed7f265e48a551dc7c71d81 797ea22cba15ff7fe2b57eb206889ab3bf077c300ead09bbcdec9c31b18ec881 885fe43c1f93d9b38fd3b69ee6159245a5778dabef03c48f0abe6eac2867553c caed79716b1bf889315e8699625dfede588edc836ee2ae0abd448691737640b4 6c951155c7b0eb599c644ddc8d8600d004f74e3ff17d7a4c7fa4cb12caf5fcfe 4c761747f350af3fc8e1c0d26fede54ce7ef7367d8ae2ceb76e03fd4621945dc 934fe49ee21c4a3eeaf27603a672ea0ce6a54b4af0421298a56d21be02dfe3fd ebef0e443f871b226f5eb37757e92e84234c08f7ac689872afeb4736b73a3d1f 0fb6e3f1b40969b25d360ed7f74ac3dfb88b064aa26a4d990451f44422f64b42 45bdc9188915e7ff489a8b0ebb8c80c835c2453ede6181961f4b8f39657b7434 bebc1e0c3de7309af2bce78b3c2d272ac61c434b729827dc6413d5a4b3720b3c 79e72b99a1cae713acb556c73a33ffda24278e8dce3d9340c8dea2ef186fcd3b b32614daa98f185b14867c08555ee72af973b2a46e547b9b253c151c82503dae 37db641eb8aca2564fc8f4dede0b496eb1af95dfbdf5f17f00e856b82df047c3 3388e24ea09c602597d2f2a11ae4e3fa448fdf2f33be840d7c44281a3aa5589a a75f378432dc6bb0bc584e1651580efa44be395924aca6ff550f4fd0d6c115bf 315557609a6c7749100574753758023fff25551537d5cc74e719f507e6b5e979 3b0bf0446f00f8f1ffd08115c7303d10c93b33502e1f3cf779642c6eb1b6b0e8 3d843b27b7cbd61bed7df9f60b81942cec442ea1c9add0ab1098b324bda1fc24 cd660e25286c16de39f528c6a66e5d0b0d03fb1633f62dc522f5ed13d255835d 19f97de8e7800c72808214613962589f8c667eb8d71d7bef3d2f8d56ce860fed 730241057a0bb0f70ecc9206fcc534ab1f00f09b1e32dd81e7274d7e4207a7a5 96b0c09852f9befa7acb179b9af798b17ae36b385e987739f690f16f227e9869 a6988ee51b5fbf63d2f47a5b8cda7a27f34d3b292101b3fc26a6751126b07d04 1a4fcad9548d58ce690c15841514631b38ac70f2c54837a7405d2330d542a9c2 5312cc35aadb2392d2ddff7fe0d7c768baa4fd846f208c44d9183d3f4a8e819a 7cc3ad5cd716789779e741334cbfce3f095a9485bd8ce6d1b70f313a13def63f 1d23443b176fa6c758936241d8a32ef44f357f13ef50ac83c5ed31a37741821a dc24adfc997a1c057ca08cd1856da681649f8280200c50a7749468ea16b84228 624eb9a66789794a2def613a2fc570db2296885c1cc9fa5209747880b30f28e8 9986e3d00db694c6f6a96d5ee2ab24461611cfc612572488966525ab84c8a080 1ac36c510ec749531f9d95f2ccb7ec2f7e69c5aefff5be6dfae8de06e4b2ee44 56716ef6112482d3c5c641ff53ab94bf2641f1b912d7fcb70bf23461b7a7aa19 9c3f474df65b0a2c3cfbc79882af7f7c0ffea741c3d0b8a67e298b9a4c0a77e1 eed6e5007e9bd5e6a8d04621a5f29d3e73f1dc35bbaf5abfb75364b90a4625cf 7577c4d7ca41d4d819ac01091df8a696ddbb820b074a7f67db4db0d4f5c88e46 8a0cf196fc13e029c649af0022b5ffd2b8a82a78992f957bea54c4418289831f 07f6bf7f2f12f1579ab496a270e034934e91d4253da3dcb2a050f45885cf1d6f 89d09903f6a0619510db5fb9ae4871c3e6ca9bcdb0164cec46d5c63673e33d10 04e2747b7381cd2732c18c6fdacae5d69fbb24d322589857eea84ee7e3f1613a faae50194a39723403727d5d80381d76119d064967d9ff18515fd70a2490d629 b26a03374aeb7b1868c3ffa83119d0598b80ccd845b3ab9edb9f937f1218d32c a3c182d7edfe9352494006621c7db78fb566f4e6669dc824d35acd8d88dfd03f f3e52dbdaad9935105f64a64d242ed492073d5fcb0389927612176ef4bf936a8 d724d55da13c8c5ec86442e3bac3bbbe2467181ac73a6f15c2c594d0706c8bda 1c47b27fb362b88d43b49d6f69d5807b03a8f0c397a57b69afa19299fd12193d cdb95a6231cee9d1bcfcc7c3f1d46f295c90f66901bc90429341bb0ad37a5346 321e6b427ddd49fb441c54bdbba96fc8155e595908786a1b388ad3e3bf5b5078 d26b7798f9f70fc9d46d10cb33fc8001ad4529be169c0e5bd43d294c472714ee 6a733d396ffce430ca18faca5c00affd1d9c36769e38c4fbeb8e25ddd5665c6c 3ed13a7106d6880620abb10785fb70db7c337262dab3b15c1a79ce2d8f04d114 573be2d225d64926a679babe315003eec434e1f0687390a168b683a5ed91b4df 64121b15420fc794269555d86ca118350a9fce213caf8beda44bf3dde80b8270 c5e55bb220622bb8351d265d99be47ef781e562125a1b493131ad6aa2abd42da 6392be57c4c4b2101374a95062003ad7adb3a50b606481776e8d25e87a54af2b 48fc1ebc060a0cc22eb69ca1768836950260a84851cc458209632262ef41ca3c 3aa23f8547cbf18b94a0333d8fc13b6a8f35a698c9164e478986e18397f9334c 8433be9f8f728b5b2b87f65f7e9e15004f7368cc2a46a9701101c6f9cb954595 f6dff4151ff998b45b4e9d1ebb437a424285d8c59e272a643e31c0563ab4b89b 3434f09a3b93f16503a3a65b37b2c2e72f6a0f7100145ff3d1cb3d61a82bd897 2943d2f4b71853b70a2e5b66c81af7a89c6f2f3759c4a5d2ef946b9f1b81cbda f5a3eda99f8a99b0b7779040a59da6383052eded6584a468a8e4638cd8958b39 e280433e5c18f407c5a2a486bc918a8d3651d7541200925b6e59f207a325600d 4b6cf9c48706d61543cd00ca7e1f7642469779fd403e91405a5a9026c56d25f8 47ae56b898d785c74aa3efb5a2df9fb094a213b1cf9418d9e7410034ac1d6687 78170c4b72bd7f7932da4dea60c4688cf7faaa28bd0c83c2272c6fd01e251d6b 6243b3918b7eab66dc1d45fe88917a02a55f5ab86c828ed9019f048d24ed8308 8ef85f534cd366045d2eaa6fdb9741f093ca3ec2fb5c2fdd3b4553555e8577bd 8094bb1ccf371256a889d8669207afa4f9681139df50db8dc6ea1da09e85716c 0d5b2e341becb6e75549f1fba7e5f0efa70231b31ade904c3a40b137585559af 77371ac0f287d3d61a6cbe43ac6cf3822acf8e4340a03d9a894b915fc81f61b9 9a19d45332a8fa4769e33743d6247d40a5f719b818267b7323bd7b058d9d7f8d fd23c9acd713732444822308b20f86f046d2641da2727e43b92c66ac4d93e458 4def82e5d84e49faa04bcde7ca9f77e0a794d2a14f1d234195093feaced01381 b3fb49a0c5b7ffe5bddb8fcaab16ff0aa1dc00276a6e4f7639707c97469521f2 dd8611589cc6264dc976dae79d5a5f2bf90b4b98063b1386de65ef0baafa034f ffa0a6cc85dab49e6d44060a7ebf702f4253091c45f2807b5f3a35f81c3daecc 3a0dd40128de2844f221c19f8d60f629ef6759af2b1a5ff7254fef699b94e363 43f8b4309ebc27f3c830aac99a6c38eb3d0be326fd5d738ee56bf9e757cd4ac1 5cbafb90a75ff963db52d6e3cf634170bebc8423eb9d5f5fb036322ccc1a0c88 03c1fbee39eed95602a2236916d632f5498fe9430e039d4bc3a4ae3a8b580e8e 59bb0bb2d2059781dd8bc99ee2dbc7047ee34ece9f98b1d81b6dadf547260cce 845487d1de4dd7dbd9a9e8ef3c55e6e212d4de6dd4430e1a988fea594ea37525 7a0de15c065b6189b1064fcda5d734d5464d2cd13916b6a2a812240e1fddc465 8ed529c90a05943451236d78f239e8c6f5d038e9dd2ea327d32000a746f9aa16 8aa27408c5b3fe7284b80c0feba5c98cf961ca58b66116a9ae001b635a82c30b efc28d9b8dc2f9d70cfd0cc7eceba2a76c102c7d06f2d2ea7b51112213034cbc 36858a22d9ae9b72ead1685bc10d8db09efe772df366983c3d2a4cebb38c21b6 82ee29ab01b9c0e0903972bcabcea3c13c02473dbef3f99fc310aa38889b468b f81de6af24a3fce1299106b66977811ce708cf09efbe0d7a93e8a5ff0c8f9577 0251395d73143afa059a79e9b097e3d2bb0e0de52f1946a93be72fb39b96f4fa 74ef9832cde78730238985614067e8f31f32997a08b2aa3d087aa8d5fb875f9c 20f1f93f4268eb011b11b9bf91321c6c95a0f6641d66ecc0b7cf8f9a61b2515d 69a21575fb23b05be0bc9d888dbdb49541d8a14f76c88e820ed6fb9284ac4f24 59a46974dbe4664c520b088f35d1affd33adb64a596c3267c272d0ebb0a1d4e3 d76d027b5c838d0973e9efddac637c43d9b45183896e9cc3bfaadbd8bb642223 d8428e1dccd803e92f09eedcf2d818ccca10f9fd044e46bc748ad5fa04a45966 67520439a83b4a7511ba381beb652d61694360bc1a584f983f1261f09aaf6871 43d4180979e9cb8a40b8696721896730816a59ff9b494f1a985f42024ab30f5b 28cbddff59a7c7296c46b356b9c80fefdafc82cfc9c7ff44ca96ebd681965fd1 b06f8becbdc084cec4cae45ce78e6d4d1a8f6e1a7ee9481c05baeba726aa70a7 4519fe1b4996c968e74756e7b38da6a776b165a53998e6a9a9a6b283c4497303 785e1685c77160f5fa9476b8356db2e255c7982c197c4c045363ca0d462413fc 4b5431f50ff9f0674082c1d3b42157424740a70f81950ce9def72ae975f5da5b d19d0b05dfa3320fd401981869b3efb30d6c724cd6eccee7e379655290ac13f0 0da96225ea21b3a8c77f2e48bb72bbabe8506afca8b498ce444597ba93f0e9f4 20ebec898069f69736304cb7317ef198c86fa50b17692121b6ad5ba118d83d9a 7291bee44c8ea69fd617d9b1024fe309df54e6eb5226e2dc9823de4680dcad34 baf535565b0cc97e60f953ba76dc77857735eac0b13afd6200f30be97d4c974e 1997ee18c27b8ae6b795c17f9cec91d76246b0c1d633618cdf8b9636668a4ae2 c9f538e5f4acdb2d48709e187ec6dd58d33102a805c6270fc423cef76e952c02 e519fdd4f9ca90157f5c29fdb534c81d5ab2154075ee12bc3072b58f8afdbff9 e51d8b086a9d237aed45ed8683395122d87196027deb99c1b5d2aa619b7c6964 90be57401ba8762039e78acd2ed6df6dc3a73cdcf6ddc2a4912c90d1e6da491c 67bf1ddfdafcc0ddc529bbf6ce702369dfadbc727b7da64c3d9e937f4f397a96 091291df0204374c7f33fb891220cc5d8ebc99082909f304f6647a3d7e1ecfa6 463a5c9124bed3fa81901ac1d45741d9af60f8c2c15205e23ac14456c5b51540 0c80621f52e24dc7aeac24fceba2786d2dffd5fc5aedad053e632977dafc7588 dabbb88bb0527c363a6df82f4599adc564b9492e1d3f8a6c9f9c2f6959eeffdc 103aac0f2fe8023a5f2562cc3696216f6a316b7ce1da6347809f1668072c552f 0245fad08d12a3b8879ac84fc19dc925f3b95c23b0f8e64017f52107821f84a5 ec249755a60878bfb9cd5f9e608507b2d147c2d26cbd4460e3b8fc99d6333f73 25b83b5903c929ee3ed3bf36f410d4822a374deaed4d70e9d89351247a71eb92 f68b5f5b2f5f8e0fe5572c24d34c45c909c631a85f0d170397567483b69de33a 5e79b76dbd41b3a007d431ab9f59dd4969a99777181e1ad934d8c096f35526ba db16d5c5ab40ab6dfe3e186aa6a58645da9791beb4e920eb36a229b210f6d9d7 e9bd86675fd5de4223b387d4a9329b91f3c2b331ce068516c17fcfa06570cb32 33fabb288562964c540a12b770637b03e321eb113883af7c8f49fa28b9e1fc07 fab69556cc4834b7eb05140e8630fa37b2ddf7497dc284e60767f1780f9fccd0 38dab7057680b5a79f32db24704395d36bd738c37dc351901e73ed595358fc5b 6829ce29903beb90bcc6d787cce82bb83d82cb05efa326b6e060732b3f78755e 4e029e1bd5d3462d80f38f3e72cb6c6c4a327a3d24fb84872dee0265b47f3207 634fb2f22d3222bb9d37ac07b9f048fbc35560bd34ffc5c4b62ce6e21434dc49 1163e0aab7cce9607d75c0ccabfcea6ae498b1e35ce4f4fdebdb3f953b18640e fdc5d87d80d27b4cd28eefe72653a74fa21bde70402d98ea86c459b8eef45471 2045acf999346cf49e82b3cca2cc2e952cdd796832ae5dba5e30755be345b0cd a8d490d29935b75e7d3375be698686f7bb18a51b892097360bbcacf433b73469 cf5588215f9bc5755d9235951fa019f0cddf491ffa85251037e83394e20169eb 56c32e8643d16a77ae7763b2d7ffeb0bee92a376a3b230fbd76630fd02d12afa 8e1c99d75dc35935af3bee4a31713337ec98f4f6f1d24706148385ffb6236982 70d16528e378d16ddbbded7a38c93e6f4f324c57f38c982991b2b3a4053ce940 54b7a0756151bb1a08d44dc69048f8f42018de5c24d45a255f445362789d0e70 333145512a0678db4d7a77cc546186d744d50fb94e98028c1b12f9b278bd4607 c5517d53353c7f089fd101f3b77461c8b73ff463c6fc6616a2b2d681fb62027d 40c3ae05b033ccc475991656d667d21f0103f50e147220b26fab9fd4f5aa8a6f 4ac9ea44038468d18e171f0493e2bb4ca7a46e934f8e134b742367f81cba38cb da55e07adf4438b3b4c589f38493688ad27b54acd087a3be26cef3f7c8cfdb5c f312320483e61d154d576406d6bd5233826af55ef53287a9f292d19ba76488fa 8d067ca530ede9f708d964a4feb7d6fbaa53428ac9de5beec6f9fd2ec14b2742 8341172499e2da465b6cd687273ceb6ec4e21b653348356e8014ef01bf08a5e1 63c625171bcda31116677d9745c2273663be0967b2197305b0c5185f8ec03d0f 28dbeb92fede88158177c9c0aea2a3b5edd79a74d4bf2a3e2155bfff9950b01d ea43d672bf84ea2114bf1a5d580971da8ee45478e017ef1f152cc257f96675e8 36e2c85e92f98a67877c39c1a48dc8430208be73e6fb354ea13bc785606ca1c3 59a7720c8d6c71844510726719046cbadd35cc21e8a4baa77baf7de6820d854d a24445b6497a5bfee189c77962a294322a4aff6b54bd476bd062a32f0ac1cd93 ad29a2d129eb49cca07624039df1c46ef2924552c462cbc1ee2ad1df87f5e0ff 230bbffb36b43c11eea2a35242a385ae9efcfbc75463f354c013ea4fc5bc8d0a 6250e2af8667ce13b6ce4c877500454b00985b29c59871e549fd3e05dbccfc54 d2361fb8d0a9f649133a07bc3712d5c7ff7e6bc9015ea632321773ca8d2e6816 6288dddcdd5cc0daf02125eb51ad14f8f08b8bbeda4b2710ea5cb655e89cf857 5860a2765617a4aee0ccd71e487ca9cde08d5997074f5ae6c3f789e03cd8e922 a861beb458f1316e9677050139622b413093487548af07364596a398c3ce320d b7c741ddda6a3bd115d3033ad5df0493eab0d28fe5ca85218c5b48180dbbdfbb 451d1b2a4ed7520fe991131e347ac7e82f760094a25887829b05422cba831c23 f7afc54e072f6969f6d9b871b0bacb43ddeb7dff9da1e6581bae6eb4afc1216b 04acd09329257343501963a8880476659243be65f715e03a1f610df124daac65 6943f33ab7cb6f4c5153d336d36d8e2a5458cdfd9f1579ee783b977b43611184 57d5fe9e01bb42a2671171dfb6c1043ed0ae6919b8694dc3bc21f08750e804ea 2cef30c4134df790963aa57beffa825f8935af892c11e6f67fe61e100924728e 13dc066ab4f5efb3fda297a44b7232e394dfee00d9a0a51519ac5c37465d4687 9b21ef6c4feed1bc1ce8403017fddfc3472c8659f1f6dedc33ab372ed6c1bad9 4548300c56aab1cd93d536ca6263c476244c5b18b6a0b243f4e41c57074d96b3 813660cbfaa79206024651747ee6c6ef1311e8c1d45162dd70a304db57c40b03 45f9983533d4fbc3647dd8120405c45de0838fd7d96aabd8863647cd3b77484d f850ddebb68752c8ef8067ec0f30aeb3b442ea67a6fdff8e53f334cd01f663d6 065dc57c9ea99b38605152e2b3cdf22b6f41e99dd5c3a544817404dfc370cd00 11e9790dc02482b507008681569ed51f4b32f85a8196fe680362978965e47e18 e3b8d6 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTI7 %!PS-AdobeFont-1.1: CMTI7 1.0 %%CreationDate: 1991 Aug 18 21:07:18 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI7) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMTI7 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 65 /A put readonly def /FontBBox{-27 -250 1268 750}readonly def /UniqueID 5000825 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65 66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7 695aba81f0260cd5248b9e649cd80219794832af151fe9d5386d1ed91db54d1f 56dbec55d7c48ed295977e18f23fda49f00cbf6b37dbcbd34dd98770e780450f ab0bb54cb467b1038527da84f47b0cdff9561b343383c7cd96f818e10597fb39 4e91fc05dacdb7b418c8e6362ca4e803b563f227624bc4d8e0e1f76925affaeb 710c3b8220db48814ac08cc6a4d735d85316555bd4ab77a1098370dcb2bd272e fce72e2125b0a783a9b1fe202217eae8eb51e4ee2b9735b997af5b43174c58b4 07c1c7a4b7528d6ddbc7091f1fb8d4a731d78ec08e4c996301846cbeb5673597 69578272b49423899ffa88ed9e3fb5511c3e471150a3e257ba5656d21b8ed57c 4d1f6433eb9e04012c52e0fad62312eb2a88dbff69cde9d39d372dd7934fde7f 906a9c4828c1762dd4e1ae410026c58b56db7df324dad8fc3696323900480ff9 09c9f4b9acbf7d983b9429b25d317613beae8ea83b7626fa7b010aeda862d9d0 9b45c73d841e6d5e36bc8db0151d6dd635442552fa4d942210b738d3b6258846 28e541a7abb75c347ec149ecc27a148cea9cdf7f1e6842ec26e2b9fdac2bd6ae a7bb0a594e0298b7003b2b858a51d0da0ecdb9172942c16eec62c8b4352d64ac ee149e55cd6a72b0e80c67782b42c244b955a3885f87c6b7fa8d83a611e2e10d 5a6fce63f0a6cbeac3684f01f7cb60166a924849aa33626d97a1f7c7d323388b 666e15a2b4a21ee5542aef982c7c88902127b872f9405c9f3ddee6f09361efbb 93e28d89714b02c9263ff96cd423a693ae2834a8f26e926aaab01f70ad759640 dc6d18b0867d828a3c9a3a8758c2b3408100b416b920aee2155e70bcf5c76920 2d54ad46f5af53045e6040862d2cd51f0571f3d440aeb71635a5d3d55570cc88 adedcc06fad623e7a82cb94b42050eb9fb82b75f8308f11ed0f0a7dbdbfbeaae 45c912961d72a12d332bc50505f819434c841f98ca3fb09aa34ca191c15cd792 c9ffcaed6bb10d5573a2160c3479c26ef488fa8db4effba48d56bf59e5c27504 e666b770ae387ebf4b401edda401d83b692ad5212ce7567f6c05cf0783e9408d 498b7901cda05ec3491c6bba9b09250c898fae5d061f55abba770d6a1d2513a8 b088ecd9051086710f9db21be220656a335a74f296ca18d2314a3a15930e25c0 0d2bb1eddc486063878782f1ded485481983b5fa736b4f1e97834a9cd1c46157 1b1bd75da4791c5cdf8385f9e1ca5d22232ae7eede54acd919f736b2cb7d513d d140ccf9018f893177d771fc75bc764bf854d3ace479651f7c5a6e32f24821eb 2de59ebcff598195efeaafc07e78642c850768d09535843851f7b3a1901258db 3696090fe9d3c9c78f882ff8c0ed02096885a5038990ea688212f9f5d3de 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: LOGO10 %!PS-AdobeFont-1.0: LOGO10 001.000 %%CreationDate: Mon Mar 23 20:42:13 1998 %%VMusage: 120000 150000 11 dict begin /FontInfo 14 dict dup begin /version (001.002) readonly def /Notice (Copyright (c) Taco Hoekwater, 1998. All rights reserved.) readonly def /FullName (LOGO10) readonly def /FamilyName (LOGO10) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def /Weight (Medium) readonly def end readonly def /FontName /LOGO10 def /Encoding 256 array 0 1 255 {1 index exch /.notdef put } for dup 65 /A put dup 69 /E put dup 70 /F put dup 77 /M put dup 78 /N put dup 79 /O put dup 84 /T put readonly def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /FontBBox {0 -11 722 611} readonly def currentdict end currentfile eexec d9d66f633b846a989b9974b0179fc6cc445bcf7c3c3333173232e3fdbff43949 1db866c39088c203dc22fdc758584860ec7bb67fda28cc6208249060e18fab32 204779b5c03c0493bbbbc95cf02692cc4deaa8d2ea90b5c2e64374e92bcb8501 429b8fae4a76c0c6b76d6ff7cf9a7d5edfbca0e959541c59bd05b7de43d25d53 fc3dda6ef0c2743978a6d03e19cced4a11f2ea4bcc3110be8b8d9e2772361969 c19258efafdc276cb1ade9208a941a36d18f9fb1c33def76aa315ddb006ff6dd 021dcb16df22a06defef321c9a6ad3438c1ac51101b9f0b5a58131c9e1b7f3f7 99df425fb082bd1a4f860045983fed432a5ddff5f662ad5982e19bbbd9065c40 84a971ead143fd5c9b8356ee756ee868f10f3aebac1f6b156f1669dcf81236b2 7ad9d84124dc4763a119e727fa68443264a417174b48f87ce901ae946c181a57 14cc1aac16d2dd454f66a2b236c3b8956fcccd5f3e641424cd4e7c8a80669ede 38230cb6ebd34e8c695fbc0ac71c522b76b282e39bb9037b7db5e674fda46992 285c11c9368735a56de3c98cd2a9bd1844354114d388195b5085b35b72d505c1 cc6f1965ccdfaec9fd71efd275fe7f79f8af7aa8a74c652323c4d42534765583 319bf3c64213df59c7b564bf88ad7b5ba1680e560d903d7241469e52fe7755c3 37489ee62344b46c7111a3fd1892b2e9622f38d8e7d4c2b8db307129608a5c15 57e5a15c48d6f579e6e0d7e78694ce0f16dcc3c71bfe541ff2235d4a9ed6b30e d71bcae9a07f4f3ef87f4ba198bc1b16384aee950ad0c629cdf5a515c02916c6 3101816f86ab235e8311677b1c0cb9960cc95b7b2f417eff4b900033051a26f3 19723e7f3f1a822a0d6a8bd3e5d64103fce62418a13fe940b948290d3423e7e4 f90e877ff56688e40cc5fbce2150ce744155036b7aa544e9e8642bf1f64cb500 7fe0edb98c59f0a1d2bee89cfd1f9a393d0c473067f9eae3bbd6d534cd7d6f41 2272657febc48ee2affb799d56e70c72a5e9d273d7752ecc5ce29f2918e473d4 9b5dcb81ec6f568579ec441c243a19b1b18aa9f5031f38896470a92b47933300 33d0ae6f131b9aea54270c0e9012c6b763746fc02775669b71dda41c7aa161b5 3a5aaa7a2c22b676a72c3ae53a7d864f2c9ec71efcf46c2a89ac6e6a8e718f54 c872c3e81a5dc5452910be92a99c1a4f3b900c34193e943b535735fb2f12e8df 9c6ef0f015c8182aa16c7c6f70f8dfd34f445c2b084cfb7e1236d4bece72e753 deeccb6f3cc8d4aa4e789dda253295d56c8d9b962b4710c0b412a5c8810125e0 3f6eb91b253ec30d0958da5d766941686e6ad3586e219c55ec4e7684d780c81d 874c15b58caa746530c4726d6ae6f4b0901e4f122ee33b1d64c367933d64142d 28dabbff171817441498ed2307165e1a93b87a7552e51cbc4302d0ae8d0e3774 0c67c6dee8a7a64a06ceffb48cff55f2eda9689e5ce6961322c173d2890447c3 9a5b6c63bcb93632158942d708f75ad0aacac3a706416cc5fa2a21ebfc8fa286 27a4ed0ca2aa1c6d6319488f222817f9962b2c19c7803ee0fdcb4b4346ffff2f 450d67a5cad8d0594d0b430024cf0c3f91f76131e1de7e6e2a83329071eef997 0fe8aacffc2bd0632bbf73d29c7628049386ae63c126d39a7f2929c18219e6bf 23b67eec049e89d089d0ad33d04b11ac13efb9a827f1eb4e6033cf018a32a7ee 8b68d86d39541cff88a832e78d7b40cd0949b769df1bdb834016ca7102c7053b 2618a60625269fe4db70043aafd4e215f5e32dbeb65d5a949a5697aa3c971c76 72da5efbeff5d21c8a0cf1b0c2b6bd49f2c4afc6fc4e267e9713229f7b3a6843 06a693e28f339e1e57a463ae394ec6b538a3d19e05ef529f0a505815bb136b35 08fcde6d419de5f4de5fc52ac6a8200f6389b7b9b8a06cbca4db02fef2bceb28 9bb0be0072f0f2caed44ab2df1fd577cfe0014597757b047d0669c2f635c3836 eb6fccc09a03024ffc54995c100e6692e7d7d71ec18ca99a616bbd1008cc774c 016a38baae530c4ab6cee1ca5b242c2820065940e1b035586bf188793de6a995 893706efb0734faa3167562e6d4920eb0e0eb353a2de2252ed51d0739b69498c e8214f709546db4e0572563e1efe153cb6b9d76475c92f413c60d50439117d66 8fcb209bc513e7b6c20becac7f4d310e981429dee3e89bc1bfd0341e754adcce 2beda17e9e7a93f8f0e507769415d64a8a79d5ebb29b21bd4dd5741495a0bfeb 7682954e5d0e27b930313ce1ce4862345d2512fa5eec70e91347fd3a00ab249c 0565ccb946a25050a2963d46d4d585bc2a58ee5cb50e02b756ad81c232e7e537 589a91b6ac3224b274016008b3a36c555f2853ffe303afff65a8a26b88a0b76f 8f619f9f750f24419f6ba901d0fb8c0d374c95e2512c7cfa371f177843e56577 1b961ba3bda8527cdc799778a5314d5f8377749ab8fc03cf62f5e91c2a455f1e 1a63faeae8bf7960fa7622b9a31299717fbe954a0ae929995cfd43b7e0e65099 0bc477d8c8fc074c56613f03a279bce327f27d1afcf0d51938a016ae5c8f0542 7ed11dadf33cf59fca2e136378978fd7f4e03acf64e5fb2834f33424fee29540 a0c8e48d8a258509fd3747df5e1c74d4777adadaa697b59c6c4677315765ef94 c0dbd1e9553e1ab30ac0e98c5fd55273 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI10 %!PS-AdobeFont-1.1: CMMI10 1.100 %%CreationDate: 1996 Jul 23 07:53:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 107 /k put readonly def /FontBBox{-32 -250 1048 750}readonly def /UniqueID 5087385 def currentdict end currentfile eexec 80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98 74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730 48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f 15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427 bdd7da12534ba078ad3d780414930da4f8d58abefd45db119b10eb409dd89792 3c6e705479464a4b310b58348c4b42393988fef4925cf984423aaf65fea9f0e6 4629953bcf50b919d968d99bd185f83112b2759cc411764e9bde677f57c5ee5a c555448d5f81a16259ded1e11bf4119d53e8ab07a802df900d3a2d5ccc1c6876 d29c5e9effb7af3ef83400b0910c07873a8c56fa7b1eb1ba426043b00cc95dbe dc6e136cbbbcb3f67509964f9f281ebf81fe5b018122eaf66c4a838487e82e18 6e006093042848a903efb3469ab6b4049767aadb95c30408dfd58d8a10f4cb22 168decd9f3ee100f07b49aa44c92139b669cc312ba20192454eb2375be6284b0 26659d964b96ae82d4942e758027fcf23c25ed01115af27ce7f20efe2a822bb6 84004f20243a49c9e93301fc21b80815c033c3e2ba58ef53da2157d524b395f2 b37abca13bc6a2f42e824ab7e47106176b0d6db267fbb795ac7425582df2e3dc 55863468a9200742bd7b552c48f8cf58bc21343bd3b95abfa140f33f37c6f3f7 8b0d8a5154eb7c1f62ec598267f13e841a3e64172663935ac8b665d86540d316 ddece329c008049c5e74b27d59022c5515059bc3b89370b1bc6a169c888bb325 e0b74282d6f053a50da4024ed1e433271a32ab8c17d41c632b41cf9f3ecd5fe1 24daf7aea7ce8a63047b245822930d517df7baaafa69d2d17f7d93cebd45416d f3459365434123a76ccf883a4973bab19807e1f0c4bab03a45f7ed69ff2660ff 3963e4def11001eec4238c368a39d874fd30b3c14f4186ec7700fbce22abe468 eb32baf7b0164f8f21a9b5e706b91411faaa44467cb2180ab03de375c1ab93e9 76e11ab92fdd4a7280a6d1a8dc65c4c89d04c8ed6988045a2a3de9a4c7b1efd3 75b79ee3d49569213fcb818f6f1cf250f5e595c4b2cbcdd37e99d76bbc6603ae 8e6a02a54935838d6c587a0418def4668ad1c0410954f4eacd07d94bbc32af87 27e55977bc69cd520e103632c9e41de1628d6a671af562aa40ae63f17066c0bb 014ba5219e63ba5c3430a26487154d185e9656599fc5830ae70033f2389a1635 1b6cba00181b0fd3df5fea253026eee7cc9a093e79eac72c6032d97bfc01d6ee aab1cf93aab54ecea9cab23717b7a6dbf3e8f51f3015caffb701d44abd1b3430 67b37f3c839cc6d1a9c42ea693ec7d0e362b7a352ab60b50f506eff0bc8fe235 19264e9db20716628c2be9a3c12b54724f350f2725a8cce877d30457ce522e67 d070ff4f050a26b81f8c570750bca9b6a5fd4e3f2e966d059e20b1d710d8112b 4c3db400c4f014b5627c7227472d2f68afe0b6392d4078cca0506df518b50f55 b85d9dc3ec840f43176c0ff84f4cd43e09ad7187e5e8525442cf3661a5d1e712 0edbe358dd1d6680fe8ff207c3901a8829413041e3852ee1262f71da35f72b91 b0f6abc254468d2d9c6dc40128122f468ed14681c3284e87d2310d74f8d5e621 4ae8d9dc9442fb56dd31b4 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSY10 %!PS-AdobeFont-1.1: CMSY10 1.0 %%CreationDate: 1991 Aug 15 07:20:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 15 /bullet put dup 102 /braceleft put dup 103 /braceright put readonly def /FontBBox{-29 -960 1116 775}readonly def /UniqueID 5000820 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bac8ced9b09a275ab231194ecf829352 05826f4e975dcecec72b2cf3a18899ccde1fd935d09d813b096cc6b83cdf4f23 b9a60db41f9976ac333263c908dcefcdbd4c8402ed00a36e7487634d089fd45a f4a38a56a4412c3b0baffaeb717bf0de9ffb7a8460bf475a6718b0c73c571145 d026957276530530a2fbefc6c8f67052788e6703bb5ee49533870bca1f113ad8 3750d597b842d8d96c423ba1273ddd32f3a54a912a443fcd44f7c3a6fe3956b0 aa1e784aaec6fce08dae0c76da9d0a3eba57b98a6233d9e9f0c3f00fcc6b2c6a 9ba23af389e6dfff4efec3de05d6276c6be417703ce508377f25960ef4ed83b4 9b01b873f3a639ce00f356229b6477a081933fef3bb80e2b9dffa7f75567b1fa 4d739b772f8d674e567534c6c5bbf1cf615372be20b18472f7aa58be8c216dbd df81cc0a86b6d8318ca68fe22c8af13b54d7576fe4ca5a7af9005ea5cc4edb79 c0ab668e4fec4b7f5a9eb5f0e4c088cd818ecc4feb4b40ec8bd2981bf2336074 b64c43079a611075699b4d5902c9a10bde669900444dd85442023823952c0947 dcad6c3feff25e2a1f79b746a2bcceeb89424a466ec4bd086140023b3c2dd9d5 45bfec990f49ec858645542bc6364906c622486b02db35c71aa06869c9d8cde8 69a9bd19f414cfb897e83efa1a14428e0d744c17f00e39c4c299a8204af64286 f154592e5031387c96cd4bbbebd00bf07d4b0ba9ad964a01c8da7086140c0d3c c6ead6e95e39131218a9df380c1ca9a1eb2967df4d946d8287f4b015f148b7a9 ffc54ac678ecd3347b7d8a28f0ae69c172024bf66f9fb3561da441556589a7d2 ee711afac98a7a62c99136918ded5f38b4944160e32b9eb8f876de5624ce4f6b e2a4d9a53dc79f1d8a78a5b31d1af0d441b5511887ffc528eebf4f5e57dee365 7a3ef503b193fbb87ab2837b6353cfb335161ca2f31d88d7120d8c1a5122a5f5 4a51ad463c56e5316c65a5b1b1629c4b5877f497bb9cd8a16928b39c91220401 e2e3eae4b7480485e7fb8c83263cd5744100e101577257b014595194e53fd565 65472e6e17d8a974b87b4a81f2d5ef9c7a5fb62ac94050c5ab73f0acff4de58b 5e5b7df5076602ec9824c9467dd5d3fc176772066a1a3490416667718ee72dab 8311e735f2f5a245ccbcc543a306a37999d8b9651fafec406b691336da0dd13c 883396d50a0d46350f3cd97351897a871c6cd24ad74237ec1b37090c57c932fd 66d65f6f52eb6bd355f843d76e0411499a5b7a0c0e82168a515311924947854d 6e91c396b31a31f2595f0e27ccf2ec23de3560d31a0873b7a8b0c7c9215b5cd2 eac6182a6db8799e84c9a144a02db81629 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTI10 %!PS-AdobeFont-1.1: CMTI10 1.00B %%CreationDate: 1992 Feb 19 19:56:16 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMTI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put dup 36 /sterling put dup 38 /ampersand put dup 39 /quoteright put dup 43 /plus put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 49 /one put dup 51 /three put dup 53 /five put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 71 /G put dup 73 /I put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 87 /W put dup 88 /X put dup 89 /Y put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 124 /emdash put readonly def /FontBBox{-163 -250 1146 969}readonly def /UniqueID 5000828 def currentdict end currentfile eexec 8053514d28ec28da1630165fab262882d3ffd20326947b1065649b533eb5e9e3 a88a87fe987918a687950b26f647d6e08bf14d983ed1d4a8ca1e2da8d985f944 2eb916f5b6ed0697ac7c33e1e36a3bf460d34ce45f1631871097cb04f18e3889 4cf4ac1538eb19481311d24fe3be7beaa4a3730e8b4831fe59d6d9ce2e46116b 629c7ba2f9ce3ecba2f43bc162a5a077ca1b2882a42afdcec3f4b75b5d63e0bc 8e5dc95257766d8ea467ad9cbaf47be60f797580cced6884b3a68f70c91f4fdf 80fd00ed9139e7f480dc3a76af72ad9b434187730bdfaefe4cbfe5c7edcaaf24 9204fd703011932e5a3c27be468b7dab69daa18dbbb6335ab8ddfdc607961c7c 02582763fa069d43563ba17704029945cf42fcb19cf78c51df0ec4d851086d43 c1ab38e865ef36865fff3a08b01cbcb070ba4893f7482dc7819ad03d337e520e 7d8cd83bb8ac7aff4df36751f4f12aaaea2b6d7260c09a26e987c904003e0723 7dbcc4a8e4e85cd3259f40d3caf55c742cbb40ad0db1044c20a4f122a63f7b81 1d945bfa69662189ce4d089464d2ead9f6ed60b581b04114d5d45e97be27a576 35154e9b8464f2a0df18da855eb51b8f64d3054b0b2e84621f025a0776d16fed b988a43d2d64c32768dd106b9f541ae8e68ac0bb7399e16f4d4ba074b2152d0a 4e9b5bfc21bfa0d531e28165e518ffc054dd4ed0d74eca079d20e79670419f92 e03bcbfeecf3554d661596f6f29e12170804d15a250d917ffe7a8b6e8fa53047 1ed97ba56481589a65ca13619129f1e26affe6c22f0c38540f8ce37efb6e9e9b 60b51a5a9cb4454fd7c7f92f2f9437159687ab590f35b946a54491a7739c9269 e0f1fb48b129811c82edb3171cbd5105fe65906974db8a7da92f4f43dc7f6b36 6981146d86d23613a0b38d9d6191db9fea0172e982cb1cc50e382f69da1b377c 1be9407f88a2a761b56f398467a057f35d18c01cc377e006182c891ec80272e2 2e3a5c7123cd27eccdc87392a9fdf63bb40f02b7649cfc53ef933c6518744cb8 9cbbd437830ef5b1d58b00b67bbcf4426dc1e6ef583b0b4ad3aebd741e3ff0f7 29ae271f032019b1e7268043fd215be590f9cf24da14a90f1683afcba8006cef 5d5632c2481fbc1bd8224e8952debb7c4596a237e5505ac143180956ca1f603e ec70cdb4a33e1c4ca1744d7acb24f7319ab822372421fc0ca5c503dc3edb8c3f f4ceb6752d466e2efc73de76ab0ac71c6cd94e3c782a37a121f20f4d74348532 c9157baf080b0c7848b84e484bca5f694eddd8bc72ea63bd490e1c4d0ae8baa1 1267949562a7b0fe259e0de9603f31cdf400bb4d583a00ba6babb7ee5761b51b 31006169e0f6dd9db5d7d56284a0564bb191838bad5533296b85893c7072091a fbcdff5ddb509f8ed2f1f3a9eb576cedcab0660ac86256fa9be79a7f4a5b3550 9f52d48f0ff9bb4d5712e00539801393c60211e2f0e9b62353a786e407f761e7 2871dd7cf9d26485786d2be5c52fc51a3754304bc4d1def07b3e17cbe261659b 937bf1dce01bbb2d9449a8135449359496e19b2d1a69958e1f4503237ad07300 fd442db48aab64b4c0b7dcd1e7419fd00e20d6da255b5999aec232b1fb656ba2 d862e8704a0e6924ad4c92beff7f1ce5ef438058d0b78d29e3122cd9d225a389 ec55b1d7a4d048663d3cca3859d4ea0a644e5cca04c2d7bf98ed56ff3b6dc2d0 dc8e58b630d52961649ad9676e109fcc0e258a3ea5fe9d870ee2e6c76a9ae008 cf6af628fce68be1247e9e80d3d6b858a6c4792c214b987089fcaca9e8794dce e56f185bb42a195b90e5d3a8e9be82d4370f0658232fd70ba36e7559a72cd391 2c3ff7946f1cef4e9c504f3cf28e452c7a67757f9fec1e8564b63eda4e8e58f8 9ef8290255c81febd61f335c8d5a555879943e8e4c7d04104007e8b7be7ae697 ae0ddf3e44fe4c615469e69371fa82b0f5eb4bb2268631eb8ee43414db988e42 cf322d423a7387fb7411718ba8e7dde8e9b2b98e7c4de4f500e3df317428991a 4f29d6f483fccb4c82ae3a011a57724b44c61d49b300325405ad82947c46b8e5 784570a3060c7405a8d68445b68e00c4b52a913fefa629d4c1050b5fd011fd3d d20b6163c7418b2e4ddaeed825d6d9ea8fb301f71c3add93e0b300595db0d30a 505e4bfac70057f10d3cd97c5697bcb9dce2b261c6bf0b323a0783f095bfc6c3 f97a98ea87974789349af169b1ceaa401ef31027eee628aeb1aa85b801822996 1663b5a89672d8ef1cfaa0d701eac08b5d28c41c7057871e5fac20887b53c283 0a8a0ebbb99274ff3b009061696891f2f5536d33be8eff815c076375dc13f9cb 6ee88f6c2f5e1a401ebac3b7351543a3f74e67854e9ccb305250cbff0bfa2bc2 1203fae74da03596d5c5ae120f0b0b819a93e1d573fcf53a9b02152e299e32d3 c314641644c01af8e726dfca3d9f187b4b809660e14babe095c892532c513d21 1e80f4fb2fbf276f83b402696ef901dc77c29060c080fd1dafd46f669f01b4f8 ed0e40c4e2d8ad7a5ef2d7834c07d63f941686d729f2bac4c2e193b49da4a63b b37ed601c72be71be88ca43ac590dafaaf91371dc66b94b3db73c451679fcf31 c272d7cd5d1173b16fd3967df8bb3279655c8b74941d2ffc04937306e08f38cd 9fffa48cc9be2b1961130caa3bbee0e2627915a73ad10229f2ab026c9e0b253e 90b5ade05a54558303dccb1bedef0393dc9f149c25519e96b4b9db69d1aa6512 9bbbff0fb515020ad3dddc89b80392eb243f663cd96777fc24e192748079e658 115095098f322de12b05cd4900c98216cde570209f28b3c3061adce23077f5f5 c699afb61a41dadac51af67e77cf28494ac33c4efd4cce49134665af9d715507 d648356fea7e5f6b0e9a6a5f06bff96837ae967bf5be5f7af9526cbbe489e2f4 6190498d36b954c9ff7134771e2e859f657d7ee0c7e886d8ae6cc6fcfbe554bd 4924769da8420202ec66acec0abc6fc698f28a5e1f852a6a15b844eaf1c7fdda 6efb51a3f590f4a2995e2f215851a6f4e60b079dad04d3b76a73c8a94e78707f 68e494ffddfb5420aa67892cbe5c7625a6a744b251b01fb8a094fce814b7dec3 6af15535ddd54447c5446821d5b4879f12265b82f60c7f05555efe2add18a0dc 6f00be7a8a58cc1f8016d304bf0d0cdd304f3580b07ecb005ff908ff1d17c729 141fc0e87a48a7ef10616599fb26a3553d76cf45fa48ec616af1161538cf38ab 3a622c15420f58abb28eead4d14421dd0489e5f9773101583d48efc43957f7a9 cfeafd4a3c72be1cfe349a8ec29f8d889a31a464ce71baca53b91604730ee17b 0e1fd8070aa0f94be64d5d5c3fcf60b2f5af5e01484f356b7d2e9856f2cfee4b 28361c3458f70b135dba697410741f65c8ef93b32725926c300af0d5df4b1951 a6b95a94bb9ec61aa72b65b7490922939200695f68f99fcf0f9feb5246bf9370 3a5490c2f065898f6edc9c706218d2d24a64b9465c0511383efccd1a6234fdc5 0c0c660dc14e719fda28e4e4c6c220e92f1dde50399abda8b2718a328a2a57a7 27025e5b413a4977fd24c337c8b956e13899ed6d7289c0a37916dfff0f1ab936 3272a0746400d758c1a3354f2e36b3e937d7a2eed4ffdbd5b04487944b088a80 7b2461ca74b71b6cef4aee7f92fd1c14f80af15934a1d5645bc38a73cec08f75 e9b430789e422145439ce62e4488c5d386432a96d1b4ed9d1f9300f58aacc73e 11488f6f6dbf65d79d681a539fe82b41e3ee6189e7e284a78705e06007862d30 e3c342a4b3a3593b6aac3245b6f90ef45dc994890e98120b93606bf7017c4531 eb4c8e175a31a192da14981cce9085ce017f99a5455aca1cafafb83ec9909e2d 68835ca16c2ba558a558b874ccdbeb06b11d15a77f7293097e94263dc0cf9401 b118ed1c99262dbcddfb79adbd015eccc4c206d419ada26c7cc68e09536fe768 7d98462b6fe3f3cb3304cdfb2ea989801f16f6d701bcebceec5a72238c7e3f80 8abbc194fef3a2ead6d989ec885519bb7b93e1fdf686655181fa091089536dc5 f0e37b35cb9f486d822abd4f39b1716c7b6ae0698b2bc08f79c7cd8f580cc5d6 5e07a1ba0663a764f7ae33bda584e5167c0dc6d8fe3d562ce8c66084b3603980 e94402d9627a9474c7813916a93c786718d411f31453eac783257d767bd47651 4f7f592e511a488e1208d0313128894f73eea61aacdd0c1995d349ce5bfa0abc 5a9e22eb000726d4d32e7f4a9ba66d2507d12af81fdbf3d6aa1da10079a0e8d6 bdabb6ef07da7ca22762cf825877a55e4cf72ff6a75935baf02bb0759ad4fe10 8f61df159b9c22d0a826dcd350c1b4b7d50eaa772a15e1416e8fd00934b9bf71 1aab51207e77efa52a62ec24efc9b64cbc20d0856aacf6b687f68f5b0fffc446 ae664bc7542b180d12f9818d8c0064a542ea508e9a78068f8ed71f16d28b3217 847519b2c9837f6e815a06aa4e6ec17eab75afdc52b1e1ad05a3954590df55fe d7d4d1aaa05a4337bfd8a3c3b11487cd9661449303801593218c1acb5fdb4171 02943182b5ae6dfcc2434a630511118c2a7c0c2c52a6d0b5523c3f0ab74084c1 6ae1f5b4e723e9834b82af6903c57c8846ea81035f21b5ecd6c36e86459984bd 5adea1fbd04261e3be8ef662db22a921650d6513e12e2d7543f937fb5eaf9cd3 08656e64961c51cd11b3d033e7a14d010a8d026480dd5ed447019ba0e03e09e0 369edd785909997901b2cad7419283d5587025c7ae1bedb768a3be6b5ca931c9 47a21f7b01db05f78ce26d1215ba444f73231e2d226710b0dad2d7e375cbe617 33e112a7004e1ba07000c02b9eea0b4b49d1827f91d61f33fc30f6a35b771767 655fe3a62fee7550196fd1c4091dae1bf9f73111f6247a02720d27fc9df59092 e7270cd92c3597d8c3a9835d94cc455468277ffb548e5e003ff9430b2e7c425d 473ebb6f95009c5ff589b44f6717a23d4da2be93e9248e2b1a47651bc25de9d5 3d4bbe1b35c48e6bfd54728701fcdfad0da1dfe8dc0c93ebf12abaf9e54294d3 485721925ac2a5fb516f7df2fb826abfdb273b4a2291fb73e6c5e4bd81b39370 9934d148ea3acdc00b02b400cf44a49e3b2c934e050b541f06fe8e4442273d43 8b82564dde223a976f20ee3486dfad08b01fd6225545a9cda9c5630194297cd3 73c6364f434071c7221af9f1704b3e8f29bfb1aec9a419ca3b70598a8a0db4c5 77075dae567f2963a82d27e7eea833b28167c65b667331a4111a9190bb210946 f60d674d445e0bc2fa72c215cd479eb6f18ccbbb906c4b6dfbfbf9998a8a15d4 be2eb03d13d933a54cb3f170290a8526bba696bd2df2d6a2facafde7b54fe6ac 54cc9d05c562d5a851a1bb4010e6cfb448937eb724b5683a5c0420807b9a317e fe458eee63482a527c185e26618c68fab2561c657d3b9e474c50defa195bfafc f2bd93d8b95d5a4ba037f6c76f626d97c3d0be67c854dd822031f39e7a52f657 2599344a70dbcb70ee35dd76faa094743e6a89452583837d2a5157498cbc8e6d c7f717741ad3acf18a5804037ea5affe8f52bc83de5250c313d3ce801a7d9de5 22a8b960f082fcf1326109cf9f7d293f9315187a619ac12e470c69cdc199946c b10cbf53cfefac6e4a73d7affce0254cf4d3d566f4b1b75d5857a28b60467e31 be56a342b78fe0e6a48ec0ec8f4707fc38f1bacaa97649bdf0192f82b8c132b7 abaa4a26541cd8b6742485ee724e756fb9c457dbd3b0160fde62fb38959a129b 88c75070cad3ff7048537f5faf68d19f23adaab0b54580e62abc27092310840c c5d4ff2f2813e18250f79120e6e8442f9b3bfb585ef26d2d3947dd9fcc5eb2da ce7309747ffec578a4a874b60e416f1782033f66a8b3092e64636f519d8e8a1b 19615ce931159c9e548a30c51363127b65a7045f859bc54722f30f59451fd909 c3898623ab023cebfe27c741b969a16eaeeb460afa9bd7e9fc66b960341d6205 6798b23705e5b87fe63b4ab89ddda8bd358d6cfd1556a5aacb6802bfe1e1d9a9 cd6b9482f2407f403c94f179cc5815ae64d74dd558fedafe91c89d2d09da0d5a 963966fcd86d53f06c22b70861249a2df0a2ea4a33106cb8e1a1e20ce25db652 07814bbc1c02018a2af6273d85e3544c200ebffd9de7e3ce254effcd23f9f7e4 95ba2f8fce63764a18016823b9da3b483de11af45a42faeb15a33f6d510dfc4d 4de6c11be7b8543bf018258d2a4bb4c8c28f1bb9a51bd01587211702c5bb79d4 75afcc58b9377a4e522057dfc1c8d235e349bdb48913f4dc3c1f7c0e39720042 a05918a8430298d0825ae0519d49ae5404cd242f0d9ca5da9721871d8681682a 4a28d5f6c74aaf2ecf3ab489095e54f8166be8272635fcb326496547347ac712 a71435f6638d06b08c33beff87cd0aacf95b899eb877ede81fc84008dd6bccc0 550b67bd3295464ee750061cc294d60d69129509cb4da687a2e02b72c67e338c f46f226631241d117526f63d14dc9b41e6ef52ca8d710d76be7f02feca5732b5 2e51c5a78170eee29d0b4c1e95a066d71f2d3d73c371647f49b645c8a9b40322 56c9c1090753eb6fa745d98a27e91ab2d826aa4db06429a1ab07ee0793648a06 c6fe4e75db7a6f86a75e4648eb89a5e4c6836ab82316d6d8935e7f80d5c51c1e efb099949df2983b8d02d84754a91f941a14b5e0a4368de016f070a4dacf660e 2d9a80d53868730a4fa1f82f028f34ed6cff21c182eec1a41ba97a56d243744e 51dbe65a09129fb8555db8e41fd3c29b7bf57d090de9a81542958a1f6d44f51c 19401974672ca5f5a6e3b6b6637ed100e9282d9ff577b792cb3c477a5ff145f6 fbe3c0e50c7ff5cc838d03a9f233e776598ca5f650b005e0e0ea89e12c98321a f5d29ae7a2e135afb2ecae0ecaf6957caf2a900c9d76b5a9ff0e456fffbd5cae cd074f4e1ff524a4e633e7425d21452cf32a51ccb9fe583d86ef29ff88dc7dcc 06116913132b057895ba22615028ba59a08e1269c595afeba4ded030734d4850 01929754c78ef3f18e4d11364ceacdd65d886be140cbad0f010a8ab9da775d90 fc1c930115eeebf1f82b05cc4148b527c9d3bc83f94fd6c94c7f6e5c3899cd79 ad42f3bf1117272d15c06037418a66d0a43c595daacd12c5776486bdc629c4a8 726ad5858842ba656f2abd94527f29d81e00f2487f3c220286cf4a1cd9242bda 9cd7bf718ce4ebd4caa9640816c159ac7756b1d8fcf0b85a2a08959496882abc e843f564f01d96150e8ae0d79fd883e4e65efd483b37ead77740d631d13ae550 8c4391b8d9e1b89126514466b9b19be109e11a42d2f5a18275f04f169036f180 5c04770cd0a834862c6ce91cb5c7093da9c95ff9406658de491a2929bded715c 51565bb1d60044b9f483261a640e4724f7bf8b241f447db92f553998f79730ad 87764c9433b1ea4328e36dbee8e8973efd0a787c5fdf0930b2d959d78ca58dfb 2fbfff50622c515cf8e0c963dd1e2d6dc62cd1409a991be91a1974a152d569a9 211907784ca6c372602b7140d0e7d152d2ca52596ae321c9b873cbb695919720 74682e81fdb0c853e09bd2bcb5298be832d381c7e8822450dd6a91a4c14a0b5e 3ec6e906c006390e131f7aef0358ee8bb938d70f520fb4140965edd33bbe1a40 faaf9491ea518a8a65d9e5360f260cba6264375f36c616d27a66b7b8b30c069b 0c64f81babb09414c34e6edbfd2daf1ef18eb4d59bdabf2b3f8f02f04f9c307c d3b82fe08d5b8986c0301447ae8aa7647bb9c189bfae23145d07ad495aec158b ab321a6bf773a22db33e46769aeb0fe3b76d9735de924d1e588c560939b3ed97 686678c8c511a4c81e4b0d1b6ff966ff943fe947436a450766ae0619244e06e8 5a7cc725c2c6afe8738af3de242f2b963835dcf24cdb80c7b26fba77eff020d7 03da76e19feff8ed9d177831018148dbf3ecb50052bf673d020449c4d3e3b4c1 4bab9728e52abb82361cbd82e2c5bac07e74f1ba9245e1ada4c28a8c445bb352 ec2f892775f651ad4db91bfca7bbb938a199705825039bb725401ed418851d4b 7aecd84dbf3abd7c9ed56996a962ea5d34e903fa197653efecc7400438ba8a89 02d496988951995c21819953507386e9599d0c9a340c4977c7bdac7d2ba2e9d0 3e2f4ba3fb30b1eff03a916b1b56b6de5115a0aeea85ccba4f78c9a28036bd4a ababd771993054c2ca5c2eb45cfdca95d41e44fd74978b88e9bcca40ed6d0a00 aba379d98dcc1185bb5a92c3dfd0659fde49140b7c335a825af438f8db968e4b ca83802e4f9fac703c9a08a9e93b918bdb3f6f1f251753a9d33ec0b25a488867 62146f703aa9c9a2bb0afa8696b8d3c9e77ad1ed8b354ef91200e4998c98a9ed 1a7e3f68b4f38a6257e2e13c93c56b4c2137a54231badd682f86ef6cebb9cfd9 c2a7911ed545ab085c0337719b508ff507b4d59d860f200703ee7a6b3a9c1d40 c4d4187f53428dbdd62022131d9b4a87536a23e102f07bd176d085c6f83775b3 95470d669994e9fa78fc9a1070083407ca76ff87b0df425badf2409e5d2f2c4e f70fbbe4bae46d7e1982a4613fc3ade57319b75a2f4d164ecd2d70e56b164189 347881d061ae8e132a4826bb564c8d54e3ae9564a5aebe6a07926bd28e89fe99 3a16ae4ed90948a68dce6e89ef90b1cc9b1db866b0e9205d9e263a353676a2ca afbdb72929333cb564cc0f3758050923829ce530aeea127af8d9f39296562888 f206cdaa2740432bcc8c7bc654647a08dcfb180c7b92b1b2d1d87fc97c2f7af9 730536aed71da70183ece9ca9fe23ca9b162288e7dfa83e9e9f0c22c2a2cdc23 35664215e620e31db1cab7477be3d1eaf73eebe0ac6c7fdb3f697b86bd372050 f645959cc876edc7a2bf61a98609ed2b2b9fc5f48c5c2216c0db10d6d8546825 7e666e85e4be4625af6b0ea481d64cc8a224340f7173734432c19c37d0a2cc00 9c9df37c7cae45dbbe74ad349eca30bca0ea8aff9dddd79578d18160bbb25351 96ef99b0fe45944524ec37d54bc16fcbec9e5c56c8140ea10a6d9efd02420711 cb49b3d1ff03975fd99486101174eb606a77df2e1a98c1c79229c3523adb31c3 f1c4e2f896763089d2bdee9cd5bb74b1571c0db1f41bc66f8bde5d2f8c60e738 d0d875a728e1ba4e4a88f91bff7cf92884287b0edb80705e4d7f9e54b7cf430b 7b06e90f2a909d35afc488031a410057b9549eac762da4d1fefaf49e17b1a8f9 3a0a24fbee0010631f0cf9de29af390bc94057de5b6531e07a71c47dbb822a66 542f4f27e6e90e9b21fa71e2634aa832b995600b331b7093980a1d3f8403cc93 5af13ea448d543856ebf4f035282146d422fbc664d68a885ce3df9001f1a5250 34062dbe555bd4503648128e56ab5670906beae01c4898892073bc590abdfabb 93d571f1ca0061ed828017816c02ce36fc6cf5f2793538b72ceabe5e5a60de58 4b43ae71c2f40a6edc5b6aa5c4f9190bd53ee2c0f28e3ccc4760c4caec9ea40c 297251fe07b2944967796c9fdbac24351d46278e5a80bdc83587a04416989fea fcc1d043f6671683f253c69386d86a0021222a515d85e3672a240b19b7f5f102 77b1c3263c96c6ffcadabebe93a0786287f3a2def1a10b57d5af32e5cc83e0c7 90a53f026d526386dcfcb44387f2e28771ea3e3c61b1176de03dd27558d4a796 c0501337cbe3d6841c0b567e65e9dd39b7e3b5149a9b1f3fd4ce67ecb6a3c9f5 3117c208fcd37f577f905219786c7fa314b5c14d65434302229b9b68e25e86e5 a025f7cd39fc481c22fef39dd0c4d441bef4054f8e8dab00add36d27440a172e c9d8522a8e8e1fe293ba112bebd0dd1a0e783467c030d0edc15473c364106c81 34d18e1b442b8d7f97bf9c09210bda1dc7b10030e7e813db1c841241f1c02cd4 a64e01a553478c680b15fb72e6d2149d85dacc479f9df894b56864c6392f863c d779594dcf7c08528be71c8087bcfb90c04fc8f99ebb6df2ea213845752a6bd9 8b34bb7a8b2d842d92227e610b578dfbff95c2c47a9e1fb5edd9bea44879cecf b39ae54acf9633ded6e4b9bae532bcd06fc4a2d03a8191160e835359d6dc7ccb a6424a4d305cd8f685c53915d1cef48b3917f72ec2c0cc37dd1545e98d42ed9a 05d72ef25f9667813b5bb7e6432b3b79bd7a6ad28a2b6c4c23fb24293498cd38 da1f3e0f9bd9a7b35759f2acc3d114e79ec4dc5962ff971587aefc3761712ff8 baeef9ccb63763bf492420e164c0e5dfde045c12d6bd33f0e1a924bffa1efaf0 27c1454741593a69fbba36e128489d9c277c8c3e497d7c3fb45df1f2e329cdb9 20d03beb0cd37f2677bef3def30d93cbe5ee91902548210895a095612a06d53c 96a936c42b246452ecb6c2d622e846850ad26525e21774dcb1b0676d566dbbac c2ec0b4cce06e9d732aa6af034eeb4fd8dc4ce7752c4ea7a885506e123c29831 d89f3c0dcc7c53301022cb9fa71e284633e5285e473ce9821f62fcb35b588b3b 5df7015adb80b950ae91670ea814d63cddcd8291eb571867fb929ee33da152e0 a5df25a9edc83cdfa0b5ae03dbd30a7f0cd93df7072e4daae3c4af646f7651e7 8d2187d6c20e9944326c3d12e9ce4c48dda554dd0e4b8d31e3f5c0d4ca7fe35b 1f8c5e3ec7da5fdd138723b6164b90dac14e4c1c71dbbc59b995edc5c5c5914b 5d3854724f447c6237f01694d48542a0ac6f5e41a6bb07f427ab4c084a7f13ff 56ad16756f439b913aa307872d1e53e108d7fc58bf804e8b17c378988c6c19a6 1b4b47074dafd5382a3be391aa4e110bf61dc739684c1e3d13155b3d497be713 634430f1dfc4ead7d3590b482066fe7f278dbc3b139126c2b90d3db41b7d21c6 a492238b2e032a29fd72f0b9176cd40ed0c72ccb1958476b6753d233b0011a1b b4c3c492b3671ff0f655edcfaff62adff3aeb1c103bd0b16cc8af1fe7c409593 3e8c099031c1910fd622d44ec97c3f5761db3437c204fb54a72e1ba6605233bf 7dd87d7e3e2b747d3fa44f11385f993db7c4bce6cd4bb430b6089b251bfbf582 566c0ef1c54edc70f618419658b0984dab7b40dd7f455a7a33da67b5d7d9021a 04b1a4a1f68e190e9015228ca8a83076c50c0f4665297a952965aa9430e19e53 a276d34ee32654f99aef3947eca9ca761053dce649356779abd82b2b325f7a7a 318af9a5bfc925f209c7fe1f01f3c8fe21bb6c42d351fe6000a3e30835585a0f 5a2b8a88aa9221eb0a4cc5787d2dd897964029d594c6bf22093aba5890d914a4 3db20db153d8532641c3fa3347a7ae45911f8775deb4b47848a986f7e1304417 262adb83e99d6051f429bfbf7048498e9559bc412389a69b07b45744fc733aa6 7c76753bce11feed61c5789e326c51334d7e63e65ed77a6588cc879028c85cca 203dd13531cd61477fd2a777b8e5ca5a065862210c70156863320c1f51144fea d5fc278c7914eb354e07eb15659cec43991a6901f81c3250e177b6e43c4d734f 5120cfc6b38a53526a3f921f7dc1fc842cf3d9d9e5919987bb975dce87a0baf7 9d7fdeb6115896ea1d65230b18443a71b2236712496fc759c55268cbb08545f4 6fa49349bd0c251eba3bd72e5e3204e56a6b6fe18efbf8108953db3bacfcfb97 f97af94eb00e78e6910f4b2913aa123e8fbc0d56d2b4babe4f4f73cdfacc6c37 50269ae771a3619f31249ccbdc16d64a8bde284c0dc2b66bcaa1931c3689b95e c366d394013a5ba981d4730fc42f32b341358997ade371f003b1ae4a25818706 f403a0ba879405a365da6c3bd2a27c3cffcc89f5d65a4a2396dfd7f954ffa9ab ebf5166bcf510d25f811c628a9265613b58380f043431880756e0dcc456c78af f7fbedce58ff0e4812a06530e98af2c7abf873de6504c194b8c647d7131bb63d bf0dd0cfc75cc2e7ea63bee09cc946dd50d677458b311d75efa3dbd4539ca707 806aec2af786046f877c511faccb3d94132de2fdf777ba6a4e821c344bdbcda6 ebd16cc871336d01791b78c8170334fa6280435094c86e0b8d1fed599015ab8d c51b0dec37cfde9dd2d3226dac01a250e61986cdcf230b7220631a9e7fd78a96 e0cbd6388445d02b4b5caddced8a7fa9ab802ff30952dfe8a8e4e72d7201b841 97f34cd1b1c9e924c4250b025b92e63efdf96e724cceddafc0501bb7f06330be 710f4fb19c6217e11d08d6198a2bee583452240140a74d69b3da300a9ca18613 c6cf37ffa3e18986e0f489d7476d2bab0c2680e6e561a84e2316e66a09a97cf7 00e3e700a303cf8a679340339b766988b51011e7302ddab7204f0e3273d3e52e 455475bb7b932853813782eaad7bde39f9e7875505fa2779432e2302e02db3c7 ea7878d6f79adcddd42c73c6a3865a8acef88ff0d14eb716a25f67915b5fb7d5 77e8ac209fc7839e669796edcbadb426b7064eaabdbebca9aca38b9152cba0df 89efdcc6372ceb8dde02e42274a21b6d58a990e21421ad4468c748e63f58e5d2 66b5b25aefcceb815f06cd6b2263e21694aa17f6951734827327257c4b0934b6 0d5ccb8b7965f6fe765dd8380b95965f0afec2704b5039e0d2d253e037cedeb6 2ea03d867b764f7a1c5fcd50abc92c588c8bbc2e0985b3ffdc20c9edbb680c18 15dda583a21a7ce0579af95eac5445fe7f5ac02004d151ab128db5144c4af53b df868b4e3819e11893e089c62cdfdb20e9151cd65e3deed102cc2cf0e2ace447 8f0a6b6ead0445c2e6336626d7bcf618a78851ce68cca2e0d7359d881f70be5b a305eb5b585d12ec1c9f6d08042bdb1084410cfed92a6651ef049ecf93267b9a 1aa41ab353fbc55491a2bf4686738f185a55858c63a3bc250a6e2fa6685cac5e c631d6c465d038eeaa73349062a63f656854509a38f3271b43f5fe4420bdcc0f c13dc050070b8913a2aa5cd43c124c5fd802ec4714a4df51893ee0ae5635d385 b3f799656335ce0bd2673088147d4c5926a4d82e13f410d6e217770524e4a8ef 25dabb74c52852d1f546592919cd8d43b802494c68707f9fd467ef4027ba180a 6c57ca88d9e0512f235e55fc88eaa451ac225f720f8c511569f16858ec907088 df842ebea3f81f16b3aa949eab9ce22f25fc2328b903addc8511e23338d392df 6fb6c9535bd22dba2d3f382c40fd7c32dabb2f2506bb8529e613952367478d0f be6526533f5aa441cbf6f693ba19288963144ccb254afac1f4b3037a631b5eba bd626529f4afdf3435b3e87e7694137c8adf701ea04e19d351373d262c564562 7417894ed698c285798ed6f4ef70e54532a45c56feaac9a74a69d09ddf1de172 65f6ce193e04c2d09ef944246ef861641b32ea7dce988fad8d5274277b8dab5c 37be13be23df6aacd47a7e1c78afc85d1609710fa56426cdcc983f4f86ab7b92 401565c600b2f59405a7ea8e9c380a16a8901206f3972852c6fa40d29503118f e377c30041ede400424fba19714c029f9cdc813d8c617a13b2009772bd12ef8d 34316bb29cdf12fdbb0eed1a459837d3a1d24a1e3dbd0c1090b55f30cf4fdc4b d93e6f0cb68af506e7bad07260f182094b6567ad6223f0c221ab8c7ba7e79f35 6909ad39eb8e9f4c50c3317dc6c29b51ce494fc530f670c122086162a0fa900e 72291405497e1ef175d3e91be1cf4f4e143bc4c820d9003d92e8b885c84b4d15 6bf5db72a8316eec34ffd301b674635fdc6365df7b17eeb4f00bb31232c4875c 6a03ca2e7f05800fdb3213ccf935a6b96493b6e35f7b034dfd5003ee92d1d57e ae48e02b24b42f207f8a7ab78254045c916d67b86d5954ffc2e86f6c1404aca3 859cba493e864501f2400626ed903c381a9500ee616d7d955472425d7f23fa5e 533597cc000e2fa97135b9ef811a10f8489df1fb2a6284fd0ff5088c6cff99bb 323ab25b945fb9d00e32dc0e587ac098a7456389ed6e8d33ecb23883327d4495 06b220c58851377882bc44160ca7335607fbf1e395e0085967217183e4bc2ec1 cd734771a59e639d69c3dd7dc405688954dcbc7bcaeda8f75f764c6d1c10902f d4df7f324dc5a4d40304472045cc7f94186724d63b9b69e5dfd5b2f329531afc 7e6200d86e1f1fae94b5f9eec428ecb9d3423f2df8e017b79e8d901745027c7a f2fd13f6e9f54fee6e9c0733902f634b16d69d873e57f5429120ccac2da84a43 7934372805315e0712b1e3ec3c7d6f6e5d66ddae95e2efe4720abdda7492b59b 57f82f2426278164f4a7b89738b440243d8e071ee32039ed17e165f4fd65cfb5 17e7c3371a695c5915a51102ee2178c8d2411feb4c6d28176c46dc0a55d713ae b8c1d1359e4a7733a6d96bad798f8bb6638b89c8956308fcd3888a930aa8e08a 498e67f750cf549413402a7ad5871de5c1fd46a4fb102fa95022aeb2c0d00759 bc47c35106d78c48d860e1e603d0b54dfd4599bee7841a0f3489b2018572904b 9f9cc04852ae249d7de86cb5acfd347adb2413a4528723bebe999e495260939d efb35359209ab44ecc43c0268074758d1030448bc84991b91e304fa56bd607ce c84f0d598f23de84bd4b10ec40a84b42a1e4973457920c8e89c65dceb37e2f4f 9d11a7efa5cc01de704aee35efbf1007e4de9b0df0b4df6dcfd863bf139dd06f 3426e14d0f63fab2e8476a27ed2a4c4815d7f4d4fbb2fcfdb5cf95079e18a282 6b33cbd428c8147164c51b9d28fd1be4fb7ded652333d2bb7f3b276fb863b41d 2530f216bc0594015cd867fffe1ff48215145a15d8a3b03b00d541574e8d0d0e a033cca6b2046ab85dcbe1822712073ef2e72fae54fac264d473fe6099d1301a dfa7dbb90235ab382e437aef63c949c1e2899b35914b8131f795ca29d255d616 6364f8ea9a3619792589c5b8ff34722450c34e6540c75ce083086c4ca192d44b 501c225cb1a878d2957a3b3ff075949a4de6695f6a2ca9b07610470222f7cafd d9148f2465b1d318baa43c90518682bb35f80e9fc029af033f8414f688d999c7 8c9ac95549ebcb6005223d9987358ca6df0b97940eef4d15b226cc46d62b930b f38f4fedb4425486ece0dfee036e2c548965beba6fc929d9b503055b795a13d8 a72e1989abb78336455bac1fad13f1de91b18dbb31dff1b43e2007b0911bb60f 3b1407d66188b887d83f750fdbff110c81ed15542205d0e35b8dc2be1cc3f425 62ce252415814cbcb59d461030b0bc6be6e0f0e525c50d3ebbe4eb3cef6540d2 1dfac993457d143965294e328c464190d430718ea4586a795cf5a495f3b24615 fa77ca818f318c6ab70a82ada4cc53adffcd5a6099c06da43a680afe230762dd 93f4b0ce2ceaa7f8c1889b0cedbb40d6531f8bc89f69b934d946bf29f4b1d285 caef0dc228b6df185add83035335ccdfb19a26410896a9f7e832dd33b5c2ae29 bcfa0776511448f0fafe840dc9a85a4b5b8586296e3bca940b7540b68c4dd3cf a2fe17650ad6d3343fbbfbaaa9e420d16bc817ce7c112987d17bacff38cdaec0 d51636e7f55d25130dba2da781ac4eee8d2c67d87200b2d7a2dbec727ac82898 f2e320ce8a4a164c4a605fca65b615ba2a5d7ef098a8a14c98ae6eda88385c0b f93523fd1c18a87458d382add151e193d6651489532be614bb5ae1d52358e3fa 07b6f3f5bb5d56c199bb157c982a812282cbd07d8304d64e555267b71b74e428 2e55ed4b3bc4aebdcb25a3e36445be326827ec34a0b94d5f8a6e598d975a08be 72f17485676a5fea32dfb55c3f7660a9c60675978a2e285aa3e370d209912c97 60ad824b1c952b8e51d7cd85ba42d95c402c8b87e3d6b0ab28c04adbba3675ae 7ee82c787e5642bc748b0c7badf9bafbe35a1fdcbe06d05da1d3d785e0a0db41 4e50c239143080d2ebb05481b2f25aa020369e641bb50e4a994ff5023b102be9 405e75dc7a89c7a8b9b16fae71b7f1ad4b3e9909977c566918e008d71b14819d 409dcf4d85025153e6ca7cb36258bebbac50d3ea491474f54a20fe96294cfb4b 4d04c9f6ffbc56462647acf00fc776e04b62ac2f2639dce280931bf9b97f2d17 608e8b903459c263a9277041b5883691474d08943e35d3c8951b4075e1720518 d68a590254bd34c77847e7ecacf4bd4d8731f93063285c777004d6ca4e7a35c1 1073d425c6840c8e56bf3b8a55f3f3bce99cc584fbdaded31f5d7b6265b79deb eca514f86d3f346d1aa55c84ae7cc2ad1cb8a7c3b6fc1d59f1e6dfcdaae27a8d ddd718df1d1b667585cebed2dcbc0558228932b626d205842de26b7300bbc673 b973068c5a00cd1d84fce8df339816ff4e8b4613eb9eb3e9c5c60cf9f1fd6789 56bd5ecd4ad0094a61ef10f59ba99883003225d34eb88f06b5ec38e4f039a29f 52ae2be95dd1b42a8fbef9eea22249fdda59be4f2e3cc4e7470b9797a6374bd5 5b24360c5ae3ae14888f78d369761d472bc3f7c151a891f13821e9fab8ca96e1 9c8216c54a4b7d70c51fce3b74417082c80d546198ddb322112fafd27e644459 2bb157ea024290d98d993b2e9693af080a4027c19a2d716419b592425d63e5eb 361295c8583b1fde48456dd3a33f74502ad55f37bf66fe40703db2213cd4bd32 8472023f8c1a86efbeb2f8b2f77074dc3990930d1bd5cbdbdd4e04aa7c326b5d 917144e4c04f92a2acc758c858304b06da0559ec557bb458439097586eeed2c2 cbab8c3f6f986875811012a8ed435a556f8a63f0f7e44e0933045fff4c2555d8 ddd1bc03f258ffcca84843534b9147854a82bbf935ac805c2c2952ce5cb64650 5b0d03ae773cc0c143983ae24b67e487372ef67000017744dd015c3e0f888f39 0f6c811a6acfe0c88d375768f745984bd1a832ea34302e340bd916a3abe2cd8f 6484b9b56a5a3c9013b504d2b1b96644ca44293d8597127287caabf9ebef287f ac7a851d2f9f40ffa73c6c28e5b44c7c089451100b346997bbe70e3fac71cfa8 8e0093ac01a797f74393094409b73aaf1069993d03e6e141fc530414b40e8e74 d5ee50f191ae726698ec6eeebbecad1da1d093c0c01cbad6f35550a10272ffce 3cef154bc59c95909a1f5c77b5c26d8111fb91dc98a6be5ba16481762ab0dde3 60c50a14a71c0c83cf5e8f9f9f501bea02e9a6b6a27abf5f5fe317940ec3f57f 2e76d1739ba63c6aeee67485adc7fdb1f9178f1d10abfd71ddf9740d4e124fb4 528eb002e296602a67ab7b62724b7f0ecf7d4ae783e292d22c5d26d08956c36d b752d2182c0039e1cad8ac39ef23709f8d81c618b45ff9362ffbb30e22be7d33 5f049ebf3e8aa88718bcbb13c0d6cfabeeb468055282bc6a3d899745ef362e5f eff25308447b710d659927aa3709ccf369d87747a8351e87a28ceda8b380a5c5 941568bd12382044d8664c8471849f698729af8cf23ef17fd40c105647dda215 e5adafff3d975dff6d68deb50a3f2c38773b119161c40c09f7e13feb5de698be e0aa7b6783acaa78423a27e1349466600cbd7bb57cda9fb8874dd063154b2288 17a3c726c397ffd11dc6ff8cde43c4e4d576072782bb23c7823023b662b6c70f 40966e14ab785472acb33b2e2e6191d39b64b00e53822d968396311b3a21fc67 202625d9e9c6000374a7f7860d5c2dfce8cf428ba8cb963523fa624c0c497f55 8dc1e9c125e15e2cd99bfdc0d0686301abc9296b85c90b6f87bdee913d7e34ba 3eccc3ad111b02a5675c935d197927a9efb0ff9b82c5ffcd451af0db0393a710 690369074edf40ee9f69bbd1e2e2d137b31798499a9689d7ad6f6dccc658bca8 9b6cdc798d50218fecfa5fef406420b09bd8bd30849d5264c9c0b8996cf600c9 573252a19c6d419c97d2e2aae137f5bec2fac3beb101c8f0392a5ae107469235 2cd4c2e3845efc7b9c9b00fb06c2a8779e07b4f3e661d0e45351a5db420bf36d 691f17180976f8525bd68eb8dec055da30b473e58454c54ace5418e14eac9d27 fd211ace5820c37a64691e0a0efeaa1063e20762cd3b2bfa80c8c4de6f65ce34 84ec90affc7d03498f528840ca3e39a212dd4d62efd039eedc2f3c77079e7e3b 88606059effd94e4880e36e376dda40630c6e88a86f60a2e02b90e8b6f309a3d de393c8c912535de8235277bc7abcf1b9b1dbe139e9ae26c363982dc8dd3cbea 921e35f9da5e60d00e14356e462a5eb8125a02852c3bb8bf9e20ca22a462098b 7dc78462fe37bc0f2c946ba61b694a41a8ba2c7f0b6593926c568c9e0cb57375 8803df94baa175a100ff098e78aca957671142e6134a1a8906505093c6811367 841a891731ecdf501fee4536af701b91b0b88163dd28ef998d7e4ff9a970808b 8077c0fe530c5a0e62a685255016cb6798471c8d8d9f925db6eeecc4e0f7b68c 2ca8fb68205cdd53bc6713deae2a468a2a18d2c167d91c09279167f76078ca3a ff02061665b108aba5d0802701b1d9273fa7219444fff94584e32ec6fffe6878 12cfc58f83b5c13635590fd83d8560d8c5b571b9f7a581e75c3ff52ac6f2f533 12e0cbd6d17ced14c6969d250aa2e9011d602448bd8203e8fa892faba08bf36d 1860401f793e929ea21d92a0fb9ac4cfe15f968ab632f6cdef6ee2c410c83037 89be101d14e4acb733b065a960aa2a7973ad16171f2a4024ba3f0351115b02aa 7f890e2a9aedc7b7124b152b96b261a888336c633d9438a0c049e181c9963e69 d3f526926d83098ee68803339ca5417ef6b5ff833210b47aa5d33d229b0e043c 09d0d0e5e07b38862301496e0be9799b1c0e349b8c93541caa6828c2f909c6d9 e658f42a7e9491d7210cd672e7033a26b7d6e16dfd224af1ce93735ad46f3c5a d462bd4a35bd2e9a03132da6e55a6b9df4b819eb49cd6194d900d55ca2a90b37 a1322bbaf293d1d63f9a5adfe69f270f6d9d053d5910cda50acd4cf34a0ed009 a22aa4904ac8447b5a4e3c6322a75168fa1e77ad8959bfdc902bcad472701964 b34862da7a8287c712bf3d479432de0eb712fbfd20f1a1eca154690a8af7af86 b20730c1e8c9bc24f271598bef24344ab90a50552582b57a39227ef228ac283a bcaeef9c20d360a9a28f9d206102810a9005c44a062a9a994cd6e4f77c209c17 4863e58d68d338a618a47bf2f6ffdf9d3d541c520b8173fe0c09405e15c5b098 f74d9f9845269aec5089cf174fe661ade1cf850d7746209a011118c3eae3d42d b40e55384d5dbe8e39ea0c334fe973f893a90f953d233ab3036dc49be1cb81a6 cdf489dbd8306fc8e9c711d7e308f96273ee54cda6a5387770d868cc2a229648 c64d99c6662a9496f450b4bee15386e0feec596f1bc85695bf7943f98dcb4ef4 1b359fb3989c121fec93165afb043864d74fa542c1ec8334fab24dc523e7dbd4 79f64468271dea9661f1e049c784ec1d19cbbe89b6b0012a6ca5742c84c5565e 71df498da6ac94596f0bb8a66d71bbd30574fda6d4ea04fa7a 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSL10 %!PS-AdobeFont-1.1: CMSL10 1.0 %%CreationDate: 1991 Aug 20 16:40:20 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSL10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -9.46 def /isFixedPitch false def end readonly def /FontName /CMSL10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 71 /G put dup 84 /T put dup 85 /U put dup 97 /a put dup 98 /b put dup 111 /o put dup 116 /t put readonly def /FontBBox{-62 -250 1123 750}readonly def /UniqueID 5000798 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65 66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7 695aba81f0260cd5248b9e649cd800bcb325468c79ffacb9cd3036f2ed7bb65d c6f12e33dd6d45b61272314f98990d08c0f8274e999f4b46af4b5c5da923683c 960face50087915d2044d7211a18e0c22967ef89552662ba990e2dfb9267e09e 354f41e74d44bd80a2d905d2edd60d8829e820c6ab0fdf322964c1ecb6569818 a465d5266d3366d748b412446e602f0cc52f3cad2213ff6ad92c04f6ce8bba94 890fb44eadc41a0c42eda4fe9722e6d4b17a3f6d35cf755d0a1c90d0c2033b16 ba76c456137acee0112e35edfb7206a9cb18dd9274401c70c3039059a583940f 44cc19ffed32940fe8203292e103d2abcda173df85995aee98bf4a1f65ead55f b80bc0c737589fa10cf51999c634e05d80a7dffb61433bbdba17ea9a7b92f763 586105c8277d6a961d092617c64745450b7df4efa70884f6017d9b0331814cf7 02f1140425eb8bf4c269ec042fde895a7f625c4832c1a143a14abeb798e23b59 f88ebd1414a66520435a4c8f5dd7a548a7d6a2fa96f0995bc0fbcf91b1a1eb71 1026a99d2404b2103bb3626978385830a00a02b6aa820cf33785f7aa45e267e6 ebe7d737ded351c1d4e944733feb30a3e6f81c1a7b74ddc9148b46b02a525539 c54a7eb25dec18807557b6ea94c36db0c91121160f61bd37cff40bb2b11aceb7 5f146be38109daeb77803d8f580f9086bc460e5c96f764c1254e36feb77c48a4 419b9a9cb5ec916b73efcc4c5a698909d5c98ca014b7c8e2ebcde195f5ad44f5 75bd2dcebce29979618bee325c726f5d4967cf0e3f7d35058e04dbb7fbcf60f1 436fade30418ba3c7dde0b6aab803140e6aa7c9808ab4d3d31432f5d4cbc007d 32d7541ccb867f6ccba8bd18c3d18524a692ed2ad29db54d7ca84a618052d3af 3999354cd44c306a7b8a7e1c6fb384bc2bc9995be00f276122e9ff4b4270c353 12e6fa474f7a40259a1b8a8d020af6a4dae3ecc1260e64a8fcdebcfadfd1444b cecbb63365c04cb98d562b8a790468911a47dff19257832cdd2a3c98acf23fe4 6496c45daecf9b90562fb229909df70e5c7b90b03031d2b48cb8d68e28a4e3b6 a6a1da96f80653c4c606d910b1e355582d10c81041133ebd13be95cd862da292 41b328046e3a003cfbfa353574edb632b4bf5868b835e6fd535f88ba016a3193 67fe41593756f292d7e7c664b8cb9e95687c112c25a1620fb033975226b9851d bab8e29a28776baa6ec03a86ff2ad86d027bf582201d1a8839ec65bef0615d7a e589dfbecefae09554c93677a5f8530fe14219034dd8c4af1e79053bae017a46 adba2b4dfd69be5c89a1626385b953cfca3946cd79d49466614ed6e1ada9990e a6b83737824035aed75222785d96b8acd85eaf4c104bb4ad52d69b3bfdb57a28 a6c65eec84616f3d488b33e621fe0e7bbf24843c7d3e718b4a6fda0b6149bb1c c80b4268f810b82cfda9bad68e5c3fe1b448bf997796c50023ced3d52495b2be 5f8dbe40282813504cceb831721efa5d6be269068e2429698fa76c8f0005f2ec abed9c72f67e19bdca11213563e01ae8213d332de6b42dcbc19836e91ec441e6 530978e9b6eded3101a1e929495d5543fe0b8f037b4778d098cd51cb2f0a80ba 87e7da0c4437dc0eff9304eef98688da8896d375625f319c49a28d83bb6142ec d35c067cae951d234f53309bfba8fe2b4389b724ead8d39de752350d61238737 07cbedb12e7bac87150cec735525ce0c723e5fc8bd7f1759a132ab1e1ecd2b88 59c06a1d793eef857d9c13da4788f9044f6d823caa781aaf615388a4c06a26e8 7c8832015d162cbf25884592816b7b9d1c0d88f1317a11b1f6ccbe8a47063b43 ee087abc7ec1408e1ac636d6347f83b2bb727a0c25d5e6ad8a5d47a3bf768947 536e7ea3022f5f75dcb8a82ca66fdedceb5a6ad37c3acc440cb86166be771b01 bbae7e21b223dec7ba316117407f065afde99e21e6ac5976685b9bb70fe24ec2 998876bfc9c7cce680374fe3c5d918402a535cdaaeb0dd085653dcf7db4cdc2e 7b8467aa264140d218f988cd64fe8fd16461e969357c74265a9748058acf2467 5b2f5f76801a66f16e6f6dda49eaa8ce5555764aba6d4bc9e09962a65b3fe36f 866b75c0af6f2c1af784e9a92b254d137f0787e1906e7b6bbf10184d43cbbbaa de9b3a754de4bd7ff6e20d6900d209e694a8c13dca8c26a3a5515b90092b2413 13eca94a3c6375c19f19958b6477d2608da81c4c75416187eb4dc27d8f6506e0 0ca12ac7cdbc87876aa56b374390b52c8ea788501da0777b344e61e317ca9173 54a3f38162e4b41763ec6d2fcfd398665e0b39e907d9a9923a941e80e7b877d3 e8df813bb6f916e99a78055ef791211782257e2c8a11208c787fd08d641c6f5a 392b7e625ce739c738583e934d3cb68f799aabb2f8f2f374c1787a9915fc2d03 fbdd01784d4d72b275caab1352de89143b9b80f9d5f392e6de5304bcd5ef1fc4 fb1c0f96f6edfc9b4f4c2d81eff7b030c790de10856b1727248311af393e7196 3888bb04c352a4fca28cb7648b7f463085d0fbdbe177f0f21c8ca9a1d1ff384c a226cce41f39ad1117c4a0bbf37c16941d3fc5a8b8a959db0a319f9491b5fa43 45514b4c0d6ebe29136c1135ed33427eb2843634e51c9b6736788b96ad8874c2 9377b8214404b01cb922388ac316215b80bf5c4ba8b61057c22715dcbdcd91d3 bdce0e89fe006021ef0497c41406caee5ebe686d90ff465dc3c5237f53088dcd f7aa0835e2209446676b9feeb512d98e08e264155dedc4ae90deaf4c0e0f72b5 c912760569d8a0e4765148450b4fadff23fbd0ac5d9763475c2ba0731b 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR7 %!PS-AdobeFont-1.1: CMR7 1.0 %%CreationDate: 1991 Aug 20 16:39:21 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR7) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR7 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 65 /A put readonly def /FontBBox{-27 -250 1122 750}readonly def /UniqueID 5000790 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b448685940729e6e22f4be0e08c6505cba868f7950 93f556b64b808dd710eb936d3ac83e5783b5f7e56d363a59a026a5619a357d21 c4e77bea121eb24b09027d1aad93158edf912940e91cd2f17922b35885894644 7773730bb19af9e70453e1b78d5edc123b273a979891d6d5e624f4a388f3897e 13b045e34b4ee2f5e4fc5e996d3549640010c671de14d18b0b3cd300e57dac03 22e59bfbf7b29422230870f5897fcfaad4b50c7c1c58edcd119218163d6f6e56 25ccb882db7b6d09a1586508e8cb642a11c29a46915e4a96e282079cb21922c1 c2e360b487a45302fd22ec8c5fab63e54b5e844d4b17ca2fff37c69c366dd72a d02922c14c0932f65ed03e4219c117962edbad2dcdeaa9c10ce8af38a4ae52e2 b377245b0be19a77d6c936e7530cc4d0b78d0cc4a92698fa2870fa54f2d8503e 2d17b3d52fb2febb09f2b2af0c2a1892039ebe19a690098799a858e3d39631bd 6925a154d161df3918074ada6bd52baddd0adc3f07e2d9f15e27cbf7fe8b98c4 07205c811121fa91e059f2f99322fed63f359ac9da97aec383f067f23e5de331 51e80f0a88ab50fe8fdae4a5de93c1ae2fdca06150b37246140c0e87cb2325a6 0d2349162ae3ac93144eee1e665a1289105318fdfe86b6e76251cb25adc967d3 d0b97fe5e279e1161736ab22b4ca510b964342383a840defd38f96a7280e6ac1 34e48d740607ff2e7804164a16d47735864db847c97335e6d4215cb99911a1ec 015a3edaac1f28fedd56d2467130d07bae9416c15f0827d27c6c79f59054282a 418c12c157c91223a829947f47592f7cafd93ca182b25a73a9419127e3b12a9e 5167ac3963f2b019b338ac46d63880f94dda4b538835884d2a5538c85528d6bd 977f844d32b43b0e48caed5a4bdabcefe71695d69ca784dc64b133e0a1ad75f6 c55499b6157e9c9fe0a4115a15b5e4176db6cf9765971eb969d3961e96b6e9ca 3da47cec9a1ea658cd6e4edd480b7b24b9636d20b7939ad09cb75d4244aed6c7 90d90dc8c72c9b7fe5e6c7bede0de9c0c0e1b83b230c39c23102b5c626e916c1 ebf1d1aa62e7a59d22f50972bd1e8de0920560790147a7ec3137d55471ff62ec 63ec5eee7a7f03870aa3635680e16e4171fd59195342d21bb7245e35d57772bc b99f996ada39b9ed95f3f05ef6c8ddba6d50ceced71ae1d4e85fb001a723ee36 bd47c09a4d006e1b0f605f4b5e1429cd381d34413312aecd556819c567ae4c9d be6d6a89f028c8a903ccbf44eed96fea7c4318b3f1de237850692b69cb317759 392de46024a63c2f82af1d52d3d528e5fccac97bf1e95963c1f46ebd61dfe4d2 3e9a09d37304b7b8ad4d44263711a8641b43bde9ab 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTT10 %!PS-AdobeFont-1.1: CMTT10 1.00B %%CreationDate: 1992 Apr 26 10:42:42 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /CMTT10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 32 /visiblespace put dup 33 /exclam put dup 34 /quotedbl put dup 35 /numbersign put dup 36 /dollar put dup 37 /percent put dup 38 /ampersand put dup 39 /quoteright put dup 40 /parenleft put dup 41 /parenright put dup 42 /asterisk put dup 43 /plus put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 59 /semicolon put dup 60 /less put dup 61 /equal put dup 62 /greater put dup 63 /question put dup 64 /at put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 81 /Q put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 88 /X put dup 89 /Y put dup 90 /Z put dup 91 /bracketleft put dup 92 /backslash put dup 93 /bracketright put dup 95 /underscore put dup 96 /quoteleft put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 123 /braceleft put dup 124 /bar put dup 125 /braceright put dup 126 /asciitilde put readonly def /FontBBox{-4 -235 731 800}readonly def /UniqueID 5000832 def currentdict end currentfile eexec 8053514d28ec28da1630165fab262882d3fca78881823c5537fe6c3dda8ee5b8 97e17cb027f5c73fdbb56b0a7c25fc3512b55fe8f3acfbffcc7f4a382d8299cc 8fd37d3cea49dabdca92847af0560b404ef71134b0f3d99934fc9d0b4e602011 b9cfb856c23f958f3c5a2fbe0ef8587d1f5774879c324e51fcb22888b74f2415 50d7401eb990d4f3a7af635198422283cac1b6cd446ddbcbd915db9bff88844e 784c6bf7389803d9450b0c21756a017306462c563d51ecefaacd079732f12c29 315e4b9623a5752c6f1d8145869e120d910b2644887cea7e30b15676a92537c2 9d3aa80dc30082aba94b40990b82fb1a877e805e0c8c48f61e9f2edac05b944e e4d8084ec1d5cc517aaeec5b3ea379dd011eeb454cecab3ad2443c887c582789 72355673e503affe0394fc7db31de364e4f56c24033c7df2265c56445ec63a1d 5695a6041ea1b94407e1cdb7c5635603a4fd047e6edcaeb2d0da6c9e0e9396d5 1a4a58e8fdc1578730f992435560a6e2d3e3687703ee2f78f5896389ac8470bc 806169eb01762e89b6dc9adf857ead656620e2589aae722c37a2ed7a2941c360 b067ee34d8d5ca3bf68db725614d936bcb207781f4d4ec2ac67b13a5ad161f3f 059add7b5e3d904831e31c20c04546fae83ca93a35989e65c201756888f727b9 7e5313c9870ec96e4cec3901ea03a5c744754485e7d169bbc98bf872d0796e18 9d43b712950c3786257d8be06ab6080b9d9392313298327549a8a41c00a2cea3 690b4a333e45aa815a64facae1c2b44640860b8b8687afbefdbd5b4a541a7251 4ee7d3e0752af3e96a88c95d31fa16d34ba2f02fdb0088b165844f02611c734a dbcc2037bf741fdea7e8bcdc130c70c33772f777d8bcddf4611db99001ccff14 d7af2bb05defc3480bdab312a0eff2f375afb4e0df2f803c594b7c93f71ca4af 861ae1711932fef19bfe2f9b7adb69d68e5a70ea4d1a3d5bd85231b16993f65e fb37a0a823f0542f8c2340a073dc1be4a8347f9d3068a6435cd8278b0db1809e 8af9664c2c989b9f16873c009449b6284b85da4dee11c96a05ba83292f0edbd9 2cf674aad6ac1a5ff966ffc37e88a66048deed053565b55ef6bdb8c2f2f67832 f8939a32442ea54f13d003494d6350a2864b427a9126a9c26a031909fe53fa84 63b80c3ffd536c9a5dd29ceb03148dbc24c0033aec95c7fb4031f65dbd67a2d7 0e6b0a1bd772f5450fa1ddf2a6424fa2a5efcf7fcf2260372574d7050bbf7d9a c6340019109b8f57540141b0b96f948d83e0f470248390518a6e881ff4511933 1c274c98a1f8af8eaed5a700c5aa8785011be8b2a6cfdd0e35ddfa96332ccf95 f9ff25733ebed67bbfd4ab734fd429f2e389124ab79d94802f2ccd41741ef75f 566ad0184b43477ab5a074aaa7d5032d9e54a27050363bd1cc0fa3d7dd0c1330 618008fab04093d1b242b34a624b4fb22b90e1bf1f3e030052312cbd45e7437e b00f079e154138a510686c845e231d38f64b591b0a6871dbfd0a5f6eec3326a5 b6e559e4955e6ec14bd4c08907d10bd3337e77f3e95ab24c7ede5326b7470523 1664c3fb73ca3b1cd256101b8f0e3082bb42cbc707bccb31c18ffe2ba5248204 baaeaa4827364a0ac244a673cefe846f1eb7efbaf56df912429af20762a52538 567a6f6616a63610ebc1e5fb3edb58febc36f5a600f9929bdc94a9c86182b26a 1ad60da643e184d010e46412f6b79ac874437090ac9b9d5e9fd561a02434eaf3 86c73be33289afd12e360ce919a278321e3e9946abe3c4d85d59f4ae94766844 31798e97254186f3ef0012168483a500bf05e5a057a7a1d29ddc982648d248de 07c687e6ab29e6fe8f053df7056e12ef3208e8d962fee97bc5071cf2e8233eda b368271482d9da24ac4352ebbd41a4b481fac65eb8eb7ba55dd0d26911c7c8cc 71b478fb79d91cc76d15ccd1a72d8dc29ff2662369bbff20820a7807fc423d02 8f1d3c334cb38591059256cc1fbeef36cfd5b5a17392b7536ab2a6bd6cf81e38 ee1730897477ba75cef601ce69cb1bc8b773a8e0b7ad51e5d35233c37d6572fd 2db7afb1365ce6b1f140ceb1349d281e5aa1ea84d32b76d849510964b39c5ab6 394d06618352e8f259f2530db7d44591155cdc51fefd1b4f6f968b6ba40d3e16 097c3e76e17347fd9e18349a304f8f77f2c6b918b42d1a6b8884fd13987e816b c3741fa914dc6b1c8f33204f0f13a82c890dce71b9a2986ffaa2fb28c59d5a8d 62fd41a4b19e695ab289caa9cb1c34b7650956b99502c3e284c373b60dac7b84 9c618c42880609768ba86963ea71ca2bdc2cc8a0b7f9bd8b7852b76a59861038 39e2b19796aa6f6fd3e4a2af29e5cdf323eb9cbe993736e96348a8a338c492cf 853d6b6f881a37587fb147deffacb4cf54073f63f8659f53607f2b8109626c10 77cbd5aa31bf434388cd54cdd3f94d8309824e0870b0db78bddf177526df567d ab1766c9b0a10333d854977c21cc89d7215123a83ab5f2c7a30a61a3f41d5e20 551a03d2353f9e87f21c3715b178c2c9f23b4dae07d9390f304d787ba9d82101 52dde9b800937f4c33bea4da58fafac4699c77cc7bc8870e81d2f6b56e6d9ed3 bab304fe9e8961727d001009eddbbe01216f9db10620928faaaec47bc7a8d894 6af2fe4d785cc7fe88a00da7243117e4cb7b1e5c9882b6e19a0031454a7c7dc1 d8d00c5585d19e411ed5791fca27119334ec00f391fd7cd201acc3f554744e9d 7daa58e08f48e39937f00c890ac59b2857f8a039b411f49318f96f5cf87c5679 c43a77afa998e90bd532b3b84c2a4d050ca70a658e3bc53e7a3e8261f79aaef3 ccc8a6b249ce1bb7d9169423b67f97a8cd5c14d7b24cbe57eda191295a620768 c68a2982e4750f7c33bcbd145b0bff20a0a1043693d49cadd2df929ffdfcc8e8 7cdca071e9e95d98ba319d13cfadc52736b3535522d9a0988be6a72cc7cfbf14 3e56e7827998277a55452e6f49223b0eb0bff13de0ce7f0909c993903b24e946 3be9661e3482c191877d278b412ea7a7a7bf8ee9fcbf05de066167995d78d18b fdf4166b22e4a58467f46f13d9cd6763c89c73820b62701d18e0213b14cb9db0 460693c5cc69bde4649be007c46e52f3d74f5c05a08aa5dfe94c58a39490d7b0 f3c47c8e3758955b8e8b6b39857f1f619dd69d90d511cad5533bc2c60b0f243d a8f12d113a10558d994585ef2e4662b6744cf9f4f8fb235d0d7b4c203ba808f6 0be40b10b7129f2fb54e1a7a7960061ec1e1f00572483ee1ba05e606f0653d4a b29890c6c9ffb238d28b86cca4e84d81c75ae789bd7ceb470d069a3c20e9c5ae aa946a162774bdcc079319b230c777521c476f0c88f2a494654d636e001f2642 0e476137cfb2dd7ab39d1699452be197e9e372c635f2b1fa44042440519f7890 6bd17991ca0d03e91afe27f35ad44e84675cd2fd939a08cdd3b7ed6f84897a61 c28aefb41891af006b933c0ef30f89573bba1729f7debb41d74cb9169d3fcfcc 9e008ae866af8217a6c4ad1586e9a76f61b0ad3f4189622e06e83c0b96675d6c ae2f82b899a478d9f5f230a9a09bfbf459df7b172809763403e1b9fea35289d4 ef7c10766511775d7379d8f7c0f6b2192aaba7ae3d91ffd36db9c148d72c2bda aeceb4d5e06d2683e65fd41d38fa00d690ebf03cc81f3a43eb3c554146632784 aab8780dcd3aa57a11b292e432e936b645def829ca61599d0815e1acfad8bbd5 b6e661c6cd9073c136003f581cfca3eb451ccf675fe784c9a056891e51a322af 43d800048f7329c480c3c5f4601c41726c52fd18fc373e802066ed807aec0ea7 5e125d681c5222e4c47e48e4df3e390d3437a62c7a8f9ba17f7581d5e1864fea 19087f207b04c8eff703fa24d478caeae86f23e721a5e5d6eef19559ea150abf 8b4b91b2703a660982dcae74774b416b4aa90a3a270b46ced98f24042fa8a0a6 745099ba8ce33feecc5ec6df43fb8992126e1169b523548d5acc060e5a675fb2 97a5f940eebcd95220a1f9b64a5c21af9fb90e151498ade8d32d14027005d1d0 aec96fb32ae099e896cbf7521140cce36145471ccd36e83d1ec01f323348c0f8 7bbe0297f11ab235bad2e19ca4371429d4174389a9bbd5e3ad9752f204c844d3 e129a0cecbafa043d02ae1d98fba4e64984c7c38cc7bce8a612f64d0accbcf0b c09c6c3e6d784cd7f7a467ba7e07260e87f28da130380615faf42101e915a9d6 8880f01d09404fac9b4a56fb72dd0402b050dfb04d4f11f94e284cc55c7256bf c04a002e50e6cc91d9f8dbf90e1429e9e36a75e959745b3195439bff279293f7 8cf4ba8c94f1af40f4c17cce0e8b8c2d07c4c5d312e223196f0d4c6560a2fbf8 e384f617255db4585e706f08a5d06b31757bdf405536562f90313da68e7a630a 5d68ef9a334c5bc19f4da283e66ccfa158ee6fa6a3fc7a5abc4f18337bdef5b1 10af6eb5d63a86bf9544156e807aac80d73568027b3a4b139b43af29fc72b3f5 fd3eb25c32a59af1eddedd807264f3f493dc6adafec90e3a7cb57c16a711e00f 80c1a18abfc880d679cee6117cdcab6568fbb610708588f14295918fa4fa3bff 58dd6a2d7c65bb755757e9ff1f6cf63e283b8a32118a5bef1f27f01839e484fc 05de72dc148959f1e687ca35730eb1171c817b52d9585e8bfe7b437f9a62a461 bbec456b9e75290a0f8b469c638761ae515e9a34fa42c5957c59c14c8ab42813 289a95edc23d0643e8fbd5d6bb5fc3f86293f295546a1fee9334fca41fb43034 3ce4e89d1fa747f4fef52623b55709e353536dca8078e767eaf9324f686bfcc5 44d128aa33f12332bb27ad27c982e85f1de16aebf3ff5521a934cf79f7383b33 19c79276fe9b7db1bbbbc99108e73b91574b79a911a9f5f866fef44c667e6e61 dc964ffbf72c9c503ad5647d88f5216db8fc57ee9268db5c3525a6b8a8079b2f 3e0fe2367e4d17e3c922a448513c16743a455c46c35f9baa4344fcd74818ff4d c93dd308697363b62ae9328f6e7d30bc86f136485e660892ad9068d7c7984e5a 7f8793515350939a82469c7eba297b0ab2b412fe473acbaee64df2ccbfdf7a83 500768cc6213f44e337de5d14c837ae0c7246e21ed8328544f4b02a9315183da 8d3e39405f4a6fe85c837cc9df374cce9bd4d3ed1a9b4e3acf93ad2004fcfd5c 041278ac4e647c5369cb4832f877d07231ab4e6af4681f222228405e8b68a71b 643387cf93eb4a5bbec35c0d98b5cfc09d91b01b829dc807f5d54bd48b5c5937 ea1476baeda24de1befb3c84005679bd9aa2d8fdf78bd231f3f944d7ea305829 8e87f28e7b31eca31e470e6dfbb236cf0601fcd108b00728b2678cda4f3fbc1a c70ec71657eb075cd1fac2697f434fc52b3c160d5aef01844328bae40edaf7e7 6bb5b7887b1c2b1641cef2eff1ddcc5890d0ae42602821798e8311bf465470b5 7e93775c81e9da3d401fa80c3e96de1104da6ba8995e119f253ab449ba93e8e3 1947b6018c811aaf720d2e5cbb24a163da4ca70f913c9b855d5096bb3c1733b5 fafe2da83acb7937f82b4e111ca77bfbc68aa516e760e2981ea0548067834d0a f596d80176038d4047638d835af3a6e8f052a3e3ea919c1ed4ff411588a579e4 80e535d63d51b173fde40ecb4beff848ccdc879bcb2b48ee3a1cf7ff33e82d21 9587912a7cb2ee2c97a3a896740b54e16697078bcc49fc836cb6ec6e591756b0 08da5e89bbc2a5a4707b604f98173e3043fd8375072ce0f813877f2fff191623 4e5c29656bf6416bfba3d445597a785d223e20d66d056bd65115be41450db769 fd0ef7b494d9f0a1a71ec05946d6397bafc41ed5b1a5de6adffe0411a417d7f3 68bdf65f2f7ecee985152a6e2a80461e0ac6b01223d8a5914524628ccb91fbdc 1ec95e456997055927aa545de5f6cebf2c032ab4ade09eb42006f5c205bdf9ea 28f4b5be3cd165c4b0a8a0e0cff8599b7557ecf402eba2d78237835a3fa7f959 bda8def74bbc36d470955b30faeddb341105957d016b1f589b08ed590b1f909d 89f6d4e92ece11d422be99d818baa872269d09f5ba359713d7f409ade0f71c07 fcb62327bc154cb42151d0ae21a16dfbf5e0673e5459d869292c4543ed962ed6 db3aaff0c1c8403b0edc741adf1a822821d91942ac033222acf1152f5e347d3b 9dd8b6d6f4dbcc59381a9f97072faf46644ab90e2142da4b57fa6cc233b3e02b 4adbb55fc77f73649b1261bda24252cc9ef7a9775a68b4e4dd806dc50d3c3eaf c65b844bd9ae5d82a0b958ffb05492cc54c2d204fe9ef44e35e83f257c795948 a73f4c3bd73294101d8ffef54d740f71f2485de4722680df85b8e67d1b01418e a45a2946e2bf0cc5aef7a52a257f7f50070fcd57d6983f5de7a24eabdec7dc72 effc6cd959124d0231adda481a892f52fe33aac056404d7b7539e23590470f15 84c6eaa009cb27ff69c712310e41dc81786d8facf5b4b21a04b73ab2203ed9fd 850f6e285b9110aa2e9e0c93f365187c8a858edc81258b86e3f3f37d10f80994 8d3165370024eb65aa0a2f5fc247d3b86c8f82e7c8f001e5851379c32df2948c c199d3af5c132c00768a599a562163f193828c5577fb0650531457551939faa6 612bcee6fab5ed91c684f7b01b1d0c8ce85be4f647b7c6cbbf90745b859e3d23 407b3cffc6a049f9ebc6e268a3e5c4e88e9fef20eb8e83ee5d7aae8354e8c85f 2ef6a1e221b07c8b218208765902ec85f9eab5238bff0a1a86e65e35b9cbbd28 700802f8dcec3ab9111a7a533fd3f51d067bd42f950324a45a77ea3af897899f dd474a98edde6915bb172dcd271daa68f615bbcbabefaa1b44866c8436d1a154 4e570cb1835bdbae3728ab976b83987f1ebb6dbdd75c85823bb523834a17ecd4 23519f5d97bf102baafec0c2f351e3aca07128b22e6cae764f2c45295c838f55 b60bc27b08d1a735c1a6e4805c130b0640390a378c1cf697cc3ccaa3d4c18103 f4372189c895489fcbe2cdefc1ab79f870fca637fbe59c3a72edef518d9a97f3 8b4d2b95b4c3896196da92ee39adc3a124084352639ad610865c99f4145fa474 41568d6f00dcacd8d7d620ee84b669207d4aa50a1a043f0d383743ca9a5861de d18407888eeaf4afee8d0da50abdcde876866eabd04ed432f57f61819af311a7 0152242e2c20b7e43aba3b803d6e3d1d3e772684356c803d99829c81a0d360a4 62cb69aed5cefb3c5c9e900441486e470c00ab140ec96e28a8db32055edc06d6 7b6bbd055570599bf1309ea4c3fd71141f750922e26d1d7948ceeb6afc5b3c0e 943752f492c830ac0d77cdae0bc672187fae936ed8be6a45c9c05e6c0a3cd924 9719e75086a5ae99420173ab5630f2df5f80d4a404ff6aa974a558bbaa231e0a 3764bd233210d471926f7b15e16b3577ce23abe3f63cc66a97c6b57da8155fb7 d853a9e1e171aa86ae8481808cbc37e00f70f360b9eccea2818d7e85dc7d06dc 559bcb2134d4a5a360f90527ec06c7a19fa5bfea44452773061cf4e1057104bd 8f0e76d14ec0a5959665a5af134bcd6450afbf18f228bcb06bcd2862a4242e92 d2ac44dfe3b0257d1ab9a1fc9a4e8b2f2d0f0b9ae6ad0c6398db64ba6dfb55e8 f6468e1c5e353d058ceb23b96ca7a85d45f08d58b2684994db6871d3ba3211ae d47ec8c354444d2acd3faece9e85c607790cbe598f774778682470ee6248337c f47724249d7f9089bb0b523f603a8397ca6c03f60bc5250ba382eba1ed9ac325 6ab5cebf37f85c963fe5ca05fe5730f32457584619ddf2f3b3373c156fa5ced7 b76b4adcd1f13ba3fc29c9d3682d3f0734e5a2e8d16b71a0a5a8d456b4bc6b3d 4b8a831875ee55824976bfd5359ed2ea69ed751f8e33d75ae2065ebe85a4b594 208126b8fbeea44667fe605f3c55f5655f552ac4118e935b9f64580706fd47e7 e178902162141a2c43923d72c2ded05ffc4aacd2a7a2175f74628c0250c0b062 b31b9d257e8695d2c81aefb24ce7df0ba02f4f049ec85e960a87399ee45cefd2 504af93880e454690a09180e27198a914c4a4e0ef67f01383e2e99a0b5168687 acd2816f749347f32f79eac946d869dc9780740bff33885bdc52fc0cc67e45d5 1f81e1b9b7cc168a20f22f3cffdc6a49497f54164a2d87fe1e9456336b5a818a 23850d2327db961515bece7938b78b52179385a437aaceba53a7f1980a5674f3 f366c6e68888ae0b6c6ea5e78da07f2c7b3882bc8a0c18142a8380e720680d1d c56daf7247603ca26d735531498454e51f20de8ecd00efe546085b61e4ec03f8 242bf47359be272ce18027535e584caec7f353251fdf7c656a7e80bfec14c707 4935b7b74d261d28a86d20af9c1967fc78fb71400d4ac300984e273c6ebae3d9 e45a890fc6c4d86b651605f4166e70113171cf259c4a40b32419b22fce4c8b57 016469cfdbd4bc789cc88f7412fdfdf4bfc0249cbf6de3a1f2a130a5f2bfe6e9 35dae069ab22fe46480abcf67fe9e425c138fb8d839c0bb29eca5e607223eebf 86399153324fc8c96878f725c47aa6f56ec006bce3dd5901bf01b52d04e52ce8 e48082e5f242d413143ac49b1161e29827ee94023828b2563a6ccc2e6e1c37f3 1b0c9da00f3317c66874e2c726cf0ee8c5c1c468f0b2724985dd77ee0d6875ad fc2b97e93528b808484b7a78f45c8b42b4602be9e1e5b33aeecf727072fe4d34 26700d2e065090dfc03bf70e9a8fa2faac503f1d48b3d694ea9384b5d16a2556 286398dce898c647368e532042c906dfd7836f82df024405a5b12566de533706 f3f89a34678d3a89147a367a0fb91961bb2ad2e2757f8ee4ace51a29f7d2cb0d 8e0cee9b57cf5066b4e2fd417d4b82f6af49ee6d71df638eb765390c91b6799b 451c3d9d32ffce1373c698dc380b86c80b286e8bc829611ba11ff48f83d1c72e 6790be60759d4a8442f79e36d82b3baf0e662699e593e55e6d44b64d7967c5fa fb96b41fabfc56a7ee17ba90ddbafee952fbabcfba1f51c6ed556c8d5bb6dcff 5b245d9f8788b7d98c439bff2e35149983843e6835011f91a3b6837f79a48177 0e344e2ed7b86c04023c1c8859ced7464e42731df763852fcb6bcad4bac8c91a 034b9e3c84dd41ef2538ab29114564145268ed797953c70487bac61f9d887304 e8bd5fde5a7470468f46f69adecab1248aebcd3a0247bedc78ffdaaa6fd988e8 8f7fbc722c88fb9ecd20bc611e1afb0d3ebb89acd0fe28944cdca6029eb8b0ea c643950fb207a9fb539819261fd3c17be6bd3c8b9d27f4e2386cc4faeb200257 b4ecfc99ddb94a2dcfab0370f7642c2163cbb0b06f7c249cd4c41344b883afac f2d7c42ccf94b3da04ba0155625b6a674e0f73e5154bc3d5dfd9e717e09206d6 f4556ef556149d86a0a0533d85ce886d7b62173c3ae4cf3abb0e19c4dbbd8712 a0824ab9e4575c588798f967cfa8b089b55f003a6e44f6c83b970915c00fd862 8fd8b1997237944ef0264face3f0e30db3b30271fafccf98b98726493b62e3b2 57a35fd661f3db9c7989f8b62584e1dc836a16f7b4f13a48fd50e5e3775b5b2d d20a0de5d703d7eb012f1a76e2523afceb2ab955f945609ab937adbb3f234a73 33b1b54329076cb00c1de25e51f9534a3fa3a06801a3e635fc6eb90d67a99702 16abca1935aa3ac5c84e0f93a4cc7f6acd63d65aed86194a7d7b857de86b0833 089c3d943ed0a662ec8605373c4288c687fee3017f0e7f91d73fb513f2f882b9 05f1f6ced323a5fe44f9438eacbe99d18a104b4ca184af1e5e3ff169db23b6ca e6a201508558b2360a32ec245006ff8efbfe44233a45e23deb647e7da866328b d49e604dc26da0a95a5a5eedd91fa97f8db09edee92f1edcb02b7932db5b57cd a7870a87531675fbae849716c20936e1b663184b001eee59c1d67c8fe782833c 00f7b8883dddf747282433e78780d34acc4458b00950384eafcd5745ec69361b 2c941b48881a8296ac0112aa23a75baad1b43975df4d6e660149bf39ed2f028d 82c150c5d84f7eb429b0fbaf4b471a3685749780481de934bfad3239e44d4a40 98ceee5b02750b715a0c5ec5b3796064de936b78b1aa3df16d670a8a0dce1da5 5a58c3414b0f891f3818540e3b0317abf0f5397a0898f7c0cd5b4ce54af21683 a5b9ee9db5dea750bf3fbfcd068bc7d6776d1bc12ad56a0f36230a1436fb7c9d 74bdb17bddb2f43e959998b895e5501dd3400e997073ddde310cc62902989c99 d841465fd6650c188f4e30150c71c452c36e6e2b67139fe84ef5b1523898823f 94946e59d485643d1fde63b16407e4fd7696b449f038b358c2cf897f79455003 aa7544857624f96201485875e6770e6c13ae5472f5e49a35ea3243f9056dab1d 24212f93ffec7e27fc5d4e38a8ce557ddf6db2c5882aee5dc736fe9f07a0dc22 33fc7a9ea255d5bb086d43bb9ad65cf8c7caeedbf7c59c7a6aaf1a882ccade3e 0f65ffc198c20e1de297bf7f7f806c5f99b1f2cc06721035e565ada8aab13e9b 549d2ffae342db9be5b512471f2ae388e4009cdd34c4b8ad1d111ec822ed19af 5a2ed8333ff698b1cbf34a3d067445dc604b3a3fa5c0bbe38a062d7a2ad59fe7 b75f023f33ad9e1d8139a27a7e1170d20e4371dbcc3b72ffdf7dc0848762f721 e04713d2bcf7ee006f7908ffd10f2122bf153773772ac04ba2749a4aae5b5bba 6b92aa96b46df4cc5a81352aa9a25405fa5ebc24efb896fe5970b11c57734e90 7e4625256aca57c8f0795f1c3019e6f668c9643afd48cd98482bed88fe4f6466 143f6f6f35e34f9bbb738d42474675b39d21774110a706d6074bc9b6e7442bcb aab2bbb1814bc6081f417b9978280d6a2148ace4d1aa6e181d3a9af7b5f07cce a6433fdadd5b769292d9daea7dfa76821e26680ffab24856c3697a991316567d c02a59cf94eceb69fcbaf95c57092e891e05fe44eac6436b617896e967421303 3bb6bea6190d64288f36d6f3c065cbee6e7f5477381d3854415539a9f3487691 9db12d611c58d75bf00050e0003e481758bc94a0e9f55df4eb0168fb3a1b4994 db7704b36c17e4f09ae7859982cf5d397a522e5e2a4b24b75c461107bb3479c0 156d5f92188426d4d04d0849e1bfb84340824b56920c40b236451ad800083f5a 01934709b2382b092f876c82f3f1ba7e25c2742973f5fbf0a83c4518c67f5ae0 3ac9ef666d0e61807b71896c0a76f85a27d2b2ac653c077e3febfc9f7d0eb79a e6035b98a69a170bdc8ebd524a2e6dc6d3a82b95bfb1b3406b188fec34e88928 b54edce594bff22d0abeda692b0359c568a245e34a67083822319da9f691015d 8ed7ffa98749e9a1a4be8c410515cd697aaaeddfe76e34e8b59461893c526093 9d93993c8c8eaa499587be9bd5dcd24483c9fcce497dd751c7bdd749b50f3b4e 8f1a7d0a98b5b931c396d0e6efa8227232e6fec4ce9e42f7657dc9a84ea208cb 11d4c8ed4bd245f9ae503664df96abc1ffa14d2614649ba0c721082956102bbb ea6ca074a41d3a5d9040d0ede8fc1cacb8bd61643832ebea4dbeb13b0cfd504e 1f8b4049539a2cc53d8ed07558d24a53bb90b5998e1adc393f3b39b73f5cafd2 4a404e10ccbfa305b59412d2d638c7eb2f7088e3de247773573f9d5f917a3512 3691c864f5068f0faba4d886a6c50d60bd2d5945b8ce7eb70df2ea59a0f19a9e 38e6cb4c71a4a6744d9e883bd94e6e58fc62bdbe7c46df3b2247146f13adb005 e7c6fdb808409a5c40d11a35aab5d3b608d2c325502be51f8bf622553be4b4a5 2a8071265c1954c9bedba5127ce6cf55975e2470dcc67b515e199a00aa788049 31810d28082da97bc6a2dc214716b8b457ab0ae0a08abbf771b73eb544093366 1c80dad54259fd5bcddaefdd1acae9cfedac0e8e6331843fce476fd768d6111d c0c7bd34b96eca5ff00510dad143eeb25299c2b86ff3c0fd8d2b8d927ec37c39 0cd85288a210cae5daf05252678e3501e192a532f15f6fbe962afbaf1ba21370 339345bb566d7e4585ea9fbae9bcada7e52557d391adb66901ba4ae80ae0a87e d0df127f9ddd16efc7dd5557175c4e1b3a262c76923ce0c18b276d1af0e360c8 c621a8adb15b5af172e4dfe5b678c2025f79edc4588aa1d1e032f13c718f64d8 92279c949bf0023db1a2039db645bc333947a6320511ab8318c034adc2496f11 5733085071d0e5d569d3cae33ef35799402c6da3abe0ea97128bd75e87dfd528 a56efafb86c4501d49c7bd6ab7967be3223cad926870be99cfe1f19e060ea225 3c4cbfee3603f1453421aea0c84e8f9bb8ab6fdc5b7219621fd6af1ded3f032f 0438167c9eadd6c1e59e7333bad8cd4577dd21c32923de7f34f342c0c1fad3e1 abe9fac75d0671210c0db4f0f76a4c72f220dec51f43a66919bf3aaed81e7992 c0d124813d8bb498d53b7d3e766d887596dec578aaf891824a0e5be6ba995626 ccd5383ed78e92649462d500cf262677aafd0d59c235a00c29c0cf2c636633a9 3c5d948d8dc37f3124dfc118d0f6a8a14caeea9a423902e9f8e11e2b69e600e7 4627b033cff3ac3050ced6c4836de15d142543d249995a1c5f65453b7c0e0d92 7fd37f5859365d97fab4524760beb25d9bb6489262f27bb061d00bb27b77dc86 a2178f8d49544530d122ef6e9a24aaba0767ed6d8823d05994b2722ed244410b 64f7d10c6d29ca86eef77668161c0ac704be98b2cf6e254d897bd1d6ebca25b6 45e9a0782568ea5477cf923ffe3830fceb7cda60a00552d4b036147e7f674124 a5e6a0e0d81769faa2d25eb2b50d0d9234b9c3c7f258a2483af2ffb4038c0c8c b8c2014b60baba3b766ec771c67f3dbfd70d95f395a2a50b959b04198a371170 37f9245cf359e6fe61b4c2257ba2444db53a4865b77ee488d0f514beb1b270c3 9f0d2dbb9ddfaf6bb4acd30354029a5af68c8b78ec01985459e1987af377f08c 27f905b7584f870cd34b891c102b2fa8452e5a3e0d5bb9de3c05d24e6940aede 1314e89e7cf8390755f952ecee1add692e30ce8245a6726b4a4b3215e6b68010 d1261bfc5c926bec0a921f5ec100d529cbacb00362e92f74053f974d620d5c79 a31394e7db63821839d02cae28e3d29d9bb4eb07c6a5c7787000424fbaee9b46 22db7ca8affc2585aafabcc3561f810aea6a67af886a8e43ec4c1207a2f54e6f c2a9bb5eaffaa3dc2b832da060a9928b8cffb2a52b61efcb413c1fa5416d0780 15b0f9f76a85414c4e8a6583508346efff5200f98e461ff77bd01818f814fa3a f57fe9288e472c9162477a5d8904b94b45cae0fd5e1a207217c047bc5bb07f54 b80d60ca836942f5fc290b664ad48c9500a6ac3e4ff7600ea35954743f6ec75e 0b24eb0920fd985a457300ff975a8d5890235a4f4de49bd3970bf4c7dd8dd9b5 f0936eb654c8b15e1f14434a8f172b3a05fa7a4081c7b9ecd7c48398b5d6ce01 efff659ec1d91a6c63dc6283e842cd5cf5a43ac8af2fb9a7c7e7c885d57ad05c 975695d6b328e419beba92c876af2e030a5a07c92225120376137ca4506b851a e011203fd1fb83536c32b6efd155146f68fa0d7e49228eb97e685aa24f72e72e 9e3f54022484d5b4e8785f607c80e93aa64ab9e48c4262018e03fc7b594953ed 24bdefe8d48804b49b90bb2d661cea7fc77369a3d624f07c494307895e72633b 959f2bce4a762f781071051405d3d3c7102ea5b5a4dedd79863c89e92aadc11b ee84bf50b39cf25fa45cca88f998072e03ce3c22b1f934d166d7a9738f81309f e57f8afb61a128b15b4a8c26c2a8828b513e25979cd50c4cf9f828f3a9d5a48e 85d9476534980e0e78887af0de67090712dee865dd8dec866c7c35d732ac9fdb a5a156c7be943f1ae554b094bb724995830e6491354078b6da1e5c6a24c004cf 1e62876134b6bdca51889e3202c213383e48af03df521984d9d204bf71d322d3 31bbf108013d0b627f520a2e415dd20785e78625957370c85add38cca6802318 fa15276f625bc50698129f207aec6db715ac8c385a870480d7618dfd948feddf abe788476a64e6f06bd575868655f41678b4fe4cee607a141a42245dc0f118aa 17c4e341e86ab99005149dacf7adc0d04250858cbf8c9061aa57a3860c6c72e6 21b35216f768261106aa2ac5b1268185c7c150fc631e11462446090c28fc9a54 62df90c2b31cdc41041e1917c53bdfaf2f3f5efec129ce273c9e3e2e01e80188 a5440a5a8a4b7f9e3a95c60cfcd15aa0c776fdeda8e42a874567759b9c2d4fe7 e55c77b6ac87f6d197b7937bbe8ac436f83a5ef6b498f4ec5a1ca11349cd3ae7 2a2f1d5a63e3dcf6cedf5cbed2e5553bb71714473c9dfd3251a896f3ae1bbcb6 df1a20e30398e1039a66e60c729b09cce0aa02dd1f35ea650bfd5230238bff2b 6d8752748b7a872884a246d8bc1824ef9e0b080735e8b37bd57083e570fb1799 9e66f6e591d524e8597c134c3f6fc78d3c232c7f9df7d801c659a6324933ff05 08e3110f163d24337cb70a1307790bce7c4e7403dfecdbd035184b2f03865123 75f4eea52341a96fccc38d7f0c0264f0d15b726be7c527a7473d0764d252092b 432e2304c3322b836ff8c668f41447c5ff56f8ec78555721d210b8f446eb5673 ada76bdd26c7ecf780b6ceb24835cda229792ade777cf030c95d7c8efc8056ae 8abc32b0539f9415daea647eed6c33e6028b8624f49a08db117c4952e0c1a0dd f00ebbd0bfac0a14c37e32d14d9bfaead88421929ee18b3bb94dd20346254f15 1b36281a2652f681fad37b4dad3254a1b357605b4f2b2b23d8928d0dffef6a84 91eb52ee76bd38f387da119943319212070e3eef9f69ec1ce8db2a76d1b54a77 562e4f283f8c5ff276d1a80b5244282a97efb0d20552eda11b69f702a3dd0117 9b4acffd711f0e4e95999dd9110f09fe3d266444f45962b69e7821b2e5b4a40d d47769fac6c424f0d89f8c72c875478e323cc269dc8a0e3322c4f18890072988 06b5b567a5eecc46c0e78f0b70263ef9ef5490fb31af87beac079a2403e02e92 cc869f94d23507a97cf19ad510ee7d5105ad618c240ff73e082188ba8de618cc 99003e85728373683d92455ba6c68f55808695afa975219a4b88119a0932ad44 7a33bead9a48791abae91697a1d7ce6c0633eb3c0d83696b476531b0ba306e35 b5210c48863c4f6e787872b25e11103cd87ab8043e7e6e96ecb1e708932b440d 4c5470f0655b08ea8ad22cd8d142f3fa8b61796ce64aee5588ab70348d29c616 2448cb1bd0834d9449ca663ef03872a84898dd8437c1e5999f7e84dd53987761 4331ef4b0dfbbf128b71912ef1ba8c03c2bc03dcf666151737d83a6111b16bf2 6770b58ce15005ab7ef8467eb5d75583c0ed4430f02cf632e4f8e174c62f7715 fb9270561425011d733badebb968fee269aa02918c0a4de780987928fedcb6cd 9f5a7437f151c8cd38f64f4a240245a1a30480ffbff46a2a5bb008b0af19eda5 31d1035ecf1ddfaf9efa7737f117a7c02f41ac639ae1eb10ef803cf5d324143e 7deb496c4f1dc97ec361e224ed14c8eb716827afa5babfb5b0f49716ef25571c 9049de12357918f8dee8bb630fffeb4aec96cdd1c8b285d43cefce2dcd7f5f3e 7543d8bdab7f4d132e42f35dea34c0550eae7f8cbf17baea48e71dadec51a44e 972b7db9c0a324e2dbff22cd91cd4697764d2275668c174601558cc4b877c968 8991fdb0facf083f0617c01c2bbcf4c3ac59f83ee7664da6fdcf86eba6369756 1d25a24a6f9cfed1fbe4be6da213c68cd41ae4c9555edc55c92e8a1d28b24c5e 2945d463f04826747226c82f96f6631ee318cdf012aae3c4a217760393efb314 fd92628bb106404cd409f9b969417939102154711f0369506b4741f9e9eaff6a a4e54ca701efa5a5b9d7ac0900fd39c54c8d576a9d5d6296bbac8d1233dff974 53638d7ba0ca013c2cfadbc5e2430f631aa075732e724599d495832024ce9bb2 7d48bef9ee6171fba3c3866d04af0d0d24810c6d94f9b01447e80cfab880f056 5b33addae02acc0d442318b736494c8495187ec7fe5c7fb4afcfcd05991bd8fc 411f11989852a8f0253b23f44695369a82774af921bd11017316b111e0cd0889 fc1ce173b393b1b9083f824fcbb5ed76e16d3bec30408efe2c0125ba30c4bf83 1af3f5c5c4b35210358da3b7b409e92412da6653adc35e58967138ea1db95821 05fee0302aca5517153c5515ac21aba91e669165cd6fce46b698cc427ad2b81c ef37ebb33257b1b28e7d4050614948f071fc9b26964a1c3ab10aa31b02b79a20 35722d612b2fe50b5b74baac3c8402bd22f3dee16ded9e7ff64b2b7cc43cbdf6 6cc692aa07010406e6cfe404794a4dc3da504486ad4758d0e9c4c5f2e4bf528b 5c0029e6d75a8a43ec951d45a7f827694c30684dcec7caeed31680112d0633a8 e7a2da5b19d7adf270e64086df0995a47219ab24e7d54784ff58d8c3ab52db7c 5245ddc2335e39dc453566456f82ce64be6e9a97c89679478ae224c8b93066e5 7da7cf93e28365feba7e6f96861e9ee93e37c071d2be39af37843bfc8f43f291 82c9693b2dc630b458c46e327f11ad8f6fc7c814fa59ef74657f3878e6d9fc31 b887cca35a8db07158dec5291bf1e75f1638e627072d9ec47c356d41fcb3e6dc e410827173f7a3c34c5fbdea3a30f790d6464a0792413c34a76a4fc6812b7c99 251a8da7546afe7dddcfc50cb047bdd956e6d95f66ddd145ebb97dfc1ca84696 d1f504d0f42b8b9aebab04ad978dca158be81ca9d9168e78bbbd4a61cf75a413 0bef0ff3712072f25fd54f27fa415292253b8d29b63efea068ea3ebf940a64e6 128f9563dbcc922bb09529f7806adc5be5be69e38adc31520bb2b574c560e290 41aedc019b7c093078cc5b6d523894778360947d78039b7577ac2cfd5771b6f2 cbd87e11d3644ee430ab491f8df50ef83a5531ae98df7016c453014b7c9016a9 4f67c20997635c944b2421601ec9997145775bf4914d564ce99c0f2836d6cd2f 2ceed5957669cf0646317e822b259ca7a2faf16738b968dc350c13a67d3a8c20 ba8d8d2396aacf9f3f7ddaba77ef1f725825e23d0d8b9b352b589b02aadc4e01 1da142450a629d5cd4ea2aeeab0806f9891bd45fe1e065b1fdcd124f2b3e83bb 293e98cf73da334dae46a6a58c1ea8be94ec03f6e3a37d5f967d90d487ccf684 1e3c5efbefd34ec9538a8b0b242eb0f3fd76f5e9a95cf9cc86a277c54cd37d9e 9b123ca20c1745191c8e5ff99cbc5d365fbf01cec5138253546bdf6324e9ab1b f43d190c5007b4214a88f5d24cd49316b18ec11469972e25dda137cbfcedaae3 8d50852cd4b1a25a3f11cfed226fd592d4852b75ad076408c7dfa88b06343d46 95e25d01ec2521c5728c3f98100a01c9c721cd0f658e93db8bf9776957f9848a 83efd0a2bac38db7822edddb794c7ad1d2089518abb63a5da77aaa223547b36d 57a84a16c253e6f9762b5c7702c23483f8c94591ece45dbb413edbe3f8341fe0 d16ce4df6b0a173ca2c14cb68c2f735f4f7eb5168d1d39c8264d1b34bde7f756 8f1543ca546966552ae68ed0a5d5a89ecad6364f1e4d75b13c1db9fe943a8391 e7ca1e11ff17e217d950efd6178444ef3ce0ef728a2453124469c73da6a57817 78f1b7b7671b7b87ba765ca713252142b33778d3298c6a032a4f3ca61a06a80a a1593c4f7fce6f2ea944a3efe61c512383fa91fb9cddea97a2308d50c0dcb252 0f09ade02fda0dc8963dcba4d7b939b68c1936253053d11d66c365dd247ef481 0c5b1c0310cad93fd9ac20f1dd26450e91157091740ef773a8221f5a68422610 bbf0a3f8473eb0f129ae339e8aa6131350483ed80ee248228ca34e3555bbc3af 38fab40cb59f6463bbbd4e1b0a742be889c6660d841a92d5d0a528b722f3e6f8 49ccc7a7275d42eda1a5550a94302162d5a5bc7b6d4ff75c72811469b8b37014 b78465eccb95fb7cc547ffadb4ad0956b1dac13a641ea9c92f26b865168bfbcc 2a21a1efeb30eea6ef66b14c78ec433273761f806f7e9c2eea32c525bacef2f8 6e5f2924f46e3f3f09294e0a260a350fa0937cf7655bca24a19057a3528eeeaf 7e9caf3ea80c40f1fa97df3ebb8801940a3b7f5cc2f5fa8f5e88fd1957495887 508e7a514d868bccca741681f6faf1b2ae8aadccc5a4ec7f56f926567a80cf43 f94b4bbac5bebd427bfbdb740552235fb4cd86d272b9d7ba721eb566fbb05753 875630a9f612d9149b5e10687a6643de10cbf197900c833c16137bdf9d177ec5 ce29d5ed1cb06d5e405c8085e01f52416e739bd6688e0d9205c08b369bd8466f 956cfa51f4c318cf4a62916fe8cde84b791e76616bd502358c44a6b090c0d1d6 3310cd60b004f8c13db720f091b20435d53d7506a8d346d00f7859332f387487 918cd770bdee6d90d5d640fec948e47e65863bf99fca8647ee2bb43c86e125db e3287de70d64b6d0fa8d166ab038861641d86f9cb351faa8fe44906b3560c1ae 45eae799b54055e88c694f6aeaa24c05fa76b98c82a33724a5b6d68f645442ca acefe288ff26aca57029074ab93158da64faeeaf68816c789259ec5ced968175 68db37f9ba2a81267740c314032f00733a25e44ff4cf2599465a288bd3100a6a 544a8e3945f5252660b624a309d42eae5e914c028a9ab6ad762e3f3a15695216 c54678a58cd1dfda70ccd7034f35d8bf0515cb6bdc1f8d26fc5e481bb555120d bef0e0ae51d1a16bf2e3b86916492c2aec1977114d8827e489b3eaeb6b0b1179 73c53b7eb2123890acfd1b7058aa398e5166464cb5f41658ac85779abc84ad51 97bd6d9fe02d1ca32eb05486d9a27c01a532f8cf91122d8da8ca07e062464f10 4209a2128de41b0ac17658186b3a9880c50565005ba91b600f914643a0a5b56c 62c0d737063361e31611260610789bc3cf80fa2f3924ba084b4ad3dc58d2c79f 0ed408dc6df5ef1442c0669da586b3a65d7e235e5689a4cdc7e3b9953f20df1a 5580b814d9c01430c9c9762e854244697fd08421bd38458bdcc19247f84831b8 5c3af2b1a45016c07850679796fd7bcb0e6615ab86aa8d9db82295b56181dc37 05b3bc48d851d4237bc1e3ae75d319323292b4ba1ff3631af4a7b1a328818171 f4e178a5311a3aba293256c6297e854d0bafa98400717b03dff556f4090828a0 238fc7517c9353ae6c722c0843ca836eec13f555a7558f73f215fb23741be5b2 d7a17907aebdeef77bb2775ee11b48b665035d5feb5b7e02ebbaaa40599c12bd 105cc86cd0fdf7e4f609d56c4e9b60fa6db0b5942e55e693e0d52eaca381259a 140a767a79e9e517abf9d8c1092374eb83d6626c404926701aa43284eba43dd6 8d7c2d3fb6d304836978df55eb6f6995ff2f56e446bfdf9b08bfb403f12a22aa 9a039a72544a5f442e09306a92f19b1c822c4da392fdc602be4c28b3299d9568 bc82e84d3148d6097b2111d297688f828b78976a4737d57ac3a96d14dcaef3ea 91447caee793637fd5f98857e5f661c83140b763f4529ba6083a9629e108e948 9bb0565ddf7d45da018b3d27878bd2fb0925022e8aa88fb4430230507c7854ae bc4033b1e76d34833674403002691cf7f10f90a1cf63245c0055cb74d19e4602 7293d7d14b0d83d36ddca64c1837aae264d3a75c3849469b688e242bcc7cddda 3054641c0ca2b9b4270a6854c1523330fce6f114b4e6c8555c4ddf8f421521e6 f5f6864697d47b72bf91db1a636b7e2e262ac4334e0209e13359dfed8fd7a9d1 3c73e42b74ec968dd1cb8894030184fcc0a7422400d28fcebadb7ec6fd4fd624 ea2a48cea3e799282c745796884706a6c8c714023f4b9c4f49d172711b62b604 7445961d9d7e46502b4d351b81a181c79801cb51713389fde4317b0076c01fd9 0ec88cc08a56dc548fb92c89555b558b7aa93f4504729dc649a2e18832d62ae9 36e022b10fdd156175be35070b6c05abb32bd4dfb33c5b0bb6b535a941c07acf c8a08ff2b240b35b5d79b05543a6e373034ae658158681b6249a032281182952 5f2919712203f631992475040bc1a2edeba74e1001839ae7bd365ed84c8e0844 3035e1e86ba266df9c067619a5d927ea97b59c5cc9f2704f483ee2844d510139 b365b29d50e7c82470a0e029022fc1f8fa683860c52686897dd93df77e9d6ffd e86da4c643fb6c11f7afd9e36f22de34f6d20d4f162f5a31ba3a2696f4c9a3c5 3ef673b9f679deedbc11f38727bee8a46d419e838dc554c707563cb83a79632c 1dddfc5ddb1ec5756d45559087830299d7b4ecab14190452c4a2ed15f11253a6 b99b54358009a7979473c22d63781975057a7fe9d4370d331f073c3d81f87600 6968713ac30ccfe54412ba9dde1de908caee524f431e99d393e4735a13331b1d 54e9a0e1be5544d46eede1fb8814bb1e51d1d59b1dc0c7cc286c0ee289094525 e173899a1f6cd65ca3ab443ce254475c23146a56013753805b501a8135330f0b 842220665b64643b299bcb01b9422d2f1e5a3add8ea4f8cd2f02ef0c6cadf2eb 9cd9de33aa193d481dd2c8513b2206873f78117b4b548944794e96601b3837e1 d2245138a85313a0473801fc23ca55a0f5f409b5e037b32e82d29ee389c0bbc8 768381d2c174b9c7e0eb2c19a74dc7c33ce81d25ed584df614a269901843e7bc c0cfcdc8838144fa1b15fd1a3f30f14dfaaa01ce2ab063206518ef2a48c15642 dc6fba403a19b1ee4d0e3afd8937ac75e97172d07537b3c25f690b58521c1d2f 1dad8b3a507148b64358c951f213a43d081fef08ec1cf96b52449d715368510c 5a3ecdee7a3735f4160e66afeb27b37c6208deec67d3293dc6812a40dc212b7a de6d5835f7e21ab7266efefa7f437301a20b3e731593f4a1d5265530165f7cc5 1e92d5418ad7f2bac4a7e6c62f449685ec11f9a7708b1ac3a880c4e54772b5fb 47bc1fc431ad6569f867c8d2a749bdc6572405cdcc85bbdb53b397dfd74057fb 066207bec8f1a31f04c56256389da269b9611c9e63db98d7c078b1096563f736 faaec4ef5a861b8719ce7b043487878e995807f2ef3b5b2f928903d51d497790 771f8bb34cb010ad5499b6938878d34c3d1f0487fb90006f6939f8dffb388753 adf22e39522673d6a336036dbcbb664557bd1b408a7493a27b7e2374d3beff94 57a696218dc99375232ad4e22cd2241b0db5ceb16060d5d82296983b2d1f21b3 ad36e6c5e4c3ca92c5e26540bf345d3222b4e07b873a96afc9e01fd8e961552e 87cb9d12dc6e69cb93aa207fc857b4253c30e30b32bc9cb97af35b358177a545 bdb2b8923303438bad5fe0609961dcf5380b7272100a4c2c7aa6c0955f65c9e3 3cc422b37ac030fc7589a1a4dafe3a25cab61941bcc648c0675f17383b8576aa 8c5d7c5501142b1711f5f880c3b1273b8d7d020d5e1fb931841a3b215ccf3eaf 28085a83c0407d6ceb076e06db180c9d9323bb8dfdc64cf34b25c6740b5e2cf4 4b15a1ad4be9 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMBX10 %!PS-AdobeFont-1.1: CMBX10 1.00B %%CreationDate: 1992 Feb 19 19:54:06 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMBX10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMBX10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put dup 44 /comma put dup 45 /hyphen put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put readonly def /FontBBox{-301 -250 1164 946}readonly def /UniqueID 5000768 def currentdict end currentfile eexec 8053514d28ec28da1630165fab262882d3fca78881823c5537fe6c3dda8ee5b8 97e17cb027f5c73fdbb56b0a7c25fc3512b55fe8f3acfbffcc7f4a382d8299cc 8fd37d3cea49dabdca92847af0560b404ef71134b0f3d99934fc9d0b4e602011 b9cfb856c23f958f3c5a2fbe0ef8587d1f5774879c324e51fcb22888b74f2415 50d7401eb990d4f3a7af635198422283cac1b6cd446ddbcbd915db9bff88844e 784c6bf7389803d9450b0c21756a017306462c563d51ece66fcc9c831843ecae 1fefc1a232e2724f7baee428ae03aadb95c3035345c15e9922fe49e1f2cfc980 237316572dbc57064edac9b0db8913a5e2d45e97e19a91435ccf8adfc835b585 48e74b291446d689c7f2f8c4325e8356e974ae30c3e2977477baeaa33d141fb7 80f59351e84bfc88c87b3a4a1d25e168b9d134554f6a581378c7d2d6eca8ac09 045cc3a5e0ed86f147133f094029e3483bebc81cfde69942cf645ea20d0a2b64 5140ccc2f9cb4a3d969f4b0a79cd3329b440dfcff5285494406f3dd08d804c86 df191e57232f6f1f83df6430f214e03fa5412b1e13d83c60c52a698bc9a38159 19a64162af7b83a9468fae9507c6cb55ea80df8c696dfbc3296c663902d77e89 a181502627281181ac8624f65be9de5fb32f056cc7dd7cbc7366a91717b5892a 34ef6b441871c6993da3a81afc9bf70ff3842a21a29c0e49da1ccba37dd6b920 2702db510b8b1109acf4c27ee8d676bdbd16abe189f34a9b61532eb777457698 cee0561838eaab2d3939c5093afbb215bac433d1918c739b62566906bb2187f3 378521fb52e70c18886e1aa15f53a1f8a169528cf2ddd54c203613ff88e619f2 6c9c50c2c3b8b8c868a88afab1dc8472e7b6f3f992a161723a3c0904865a7c42 3281601eee91f35222c4a71f343739f102eb43145a47e4fac3bd666e4c114a90 5950618ecb1bdc29f90f6ebed1d8325fe6b52e14a8870e9b4bb088e585c71b91 493c12845a101937e3473ac5e9ae24f7c358f06d590d7618e1a1d5834d87621f e3f5432b655eebd4ca61a7b00dde0aa740796ce88a43d1c6952f8d2ca63d30b6 dcbadbb0dadf13150a442714675dbe51ff838f2e47ebe8cd44f1eac6ae5b6ceb 0b07af03f5d3896ff935a198aa635e337e367e1e128d15e31afe3ffca8245e41 a3e17011340e49d52fa1e322b435b4f7f2f49ae01f6a319f68d3d786c24be810 1e1c975a8feb5dd7e4922e00e3a08cacae5a945e1e8f8a20f1fe9534153307aa 5ac7424759743e08af90b9bcca7447375222a66934e1e47f97f8985b0c694a87 1ee7eea9e0d7928e555a83f7456ba5f235a1b5ef8bad622dea313825a43446bf 0b300d86f38133965120d1dc43eb1118d1fbb2112412711a576c4cbbe90ca05a 8865da40d9bca6bf94a9dee1596b6ce5af218492f0f13797305d5ce027a15f62 e97b1a96f52bfdb35d7fb3291fc270beede6eefa93e4979c0133bf56ae6ba3f1 5780cd62e482645875d638a9a3452665b2f8c9428faf9fa1530a7f486ddeb242 d6b88dee354fe924ab2f20bf5c8b3c55d4b01ee47fc61d6de927cf6b293311c8 25941c35ba0064d3467c5dfb92a474a142800f1e823aa6803f498d0a84509eca 0a647b5bc98d591c2e10895888f13aaceee95af56243c8df4131bdb1d7676296 7822c2b6f25b1f0471f995dfb9177fe3731671a4796ab1ef1ca8251aa4defb2c 1b6e6549e399009c8a83711ae45c4822eaf0f96d3d7b0799fe7ab9544f9992fc c34802a21f0adc9b53ea6cc4eff7caaecbcd465a1d2e8d121e4ed99eaa0ac035 3c1df112cad17ec8e1ab31f303a461112b806da6c08dc2f450aa787b0dbb5cf9 99b512a80563dd34aa240c096e8feed2046550079df84c12c44ca7c3e0de96fe caff1ec43798da864e7688865d3dea1d690e0261fa46e64a81b8cf0636396826 10b445d5a2f9f3831bc311e8d3dc51a9f6913cb12c553cfb252f812a95acc3d6 e2ac2c23f61650c42ddec2341376a8fe3ab8c19af465dd8c55f513a4d6efb72d ffe4d82e847b6ac6496a5ae7a4837b4031e56fc6f10fda33814c90d912649155 e7613cf7d2076f3ef6afaa6406ed2ddc54a686487c2944d33b4d9717219ece80 b7a2d037dfd39c50a87a216d2c24b08be11212b92cc8670eb6567bf7df3b1115 629711b41ed372956dc93858f859e66f13e40ced75810d2971f4c202a7b01fd5 d5c8c58329e5512f04c6576b96f20f522b84484ea73140ed68506ba5467f3603 c665252f60cc83868aa08eb1e54c80d2ce7ae883e6c903f54e228ce7caf97bb9 2292e339bfa699e20747c612f6959fa8d1f9d6a0676cb393a75860e50d01df05 4f538eefba15b299df0af505849062425134faf4184abddcd881541575923a05 4bb979c1d897bab7912a1a40e942ea931e53e3bcee550fc2fba8781e069dc04c c705c4cbee545e393188f02449b2b06cc57758c5f9aab27aa9ddde75b7b8b8d9 d8766a22dcac3b93444d53f79ba1043dbe4acdbabf60cf4fc8dd995e6e205049 845fb6ecb672aee6b3446c3094908a37ab11daaefaecad3babbace6d0d000fb3 3b8e47240f6f236a3beb58426e4b17d2f35f4ea36d828e673f29af844195fe59 91bd1b2283621d7d5b4f4af487676370fcfeda36895a8ccd288cf6705506d51a 10716d064f6b271825a12979b5ca8c2be32607a383576a736091d34d85dd9858 67cf24f7e72c093f4909259709687be0c1959fa6181dd539cb00df354f87a994 239cf6c69207e97434d1ae534981213c9fa21099cbb87129a0a7772a0451cad1 7af64262630f09d1507d968a43aa50044c6a0b87faf45ebc532dfbf4a2481415 5358948440e6194d354f72cc50d322f9bb63e4241d0686a77d52c06f2ecf56cd 5e9f2e4524a9f467d9f243b443837937859d48b05214d2f547c79fd74746e761 3c6af32c8ef748da3a97fc095ef8f2566b03d5dfafc69c4046ac3c291bda0920 227718d1a59f55705eda25a7961591997bcc84124f5ea982c5fc98393f1a25d8 e4e66429cfffd9f81debc11a58633923eea8d4f9db492cb5b05732daac47828e 831b0f3fb569e09c782e290965c9294aff7245218976956b37e6cf82ef73c1d9 874b54e2e669bd516aed250272dca9a53714548e13f923fd1c3239453c89b05c 7ecf68006a38a54201698a343116e8385e5881632163c09adf8007492e1c2ca9 c28fbd79c4a7460b68d98ec8ea614567eb603eac8060dd47c60de48f6670b365 5b1bd0c996530321040de80a211c8a6c3d6ffb7edf301e30095b2249942c7202 6f7cf45d692759d670339aebcb49a243c9f54e2031806d166c1727a5259ed0d1 c3b9c944a134875bdae0f168f2828afa82338fa09079dc36bf90d5ecbc8d2875 879b94469708000a6715418dc47c093bd58f5d05ced222b9d90ca0ae77f5c38e 2e0a5c76662a047a940109c3fe291936dd94be7bf07b9ab655aa54406a46ba9c 467e376abb926e10b8cea4fa87fa9c9c978355c8dc89053497df816f673fc39b e64db308fe5dffd1f96839cdb232befe63a8fbb25ee386b23fb458f8031f39d1 b24f6cdb708a99e3a0b5287dc7290c445f7d962a1d43c8dce0e6e79fe34dbd2d 1b9b22dfec3a64c77b43df407696c198eb100da697e851748c5e64229922ab8f a1beef1bad3e249262348d7c5b4dcbd40a33aec67c6145c01e4059c040d6c0ec 299234edc3a6cd1fe9983554760b0793d49b8a85fea5fa67f4844cd0bccbb239 be7608295d1dfebb511d2df7b0563d1333fdf901c047141f9162c47b9df8078d c32c5c60575eaf8213e0cd62fbeed59e3bb78f2d792ac992276f0cb03e1a6809 175685ed6498735ca89913308bc0cbb15bc2bd6fcde88aa9263c5dc6130d7704 af2fe935825298f1cfeda9f0136992821e44348b9d1e864e1b3e7eafe8609bde 430cd2876d8853eb82f5472e2a43a569be0b17a1765611efa919e88af7c64933 9cf66c7c88d4281775e99fa043c9c90477a7388b06f664b24555e650030ff606 32d96a6b44e4e1ec06bd048cfeb5d2d5d496171218cf34443832bc9332122cef 18799b040a72de330f48e34c55c8c122be4be0a28a5a510e6c908cb1e814a6ba 82b8a65d7e843814f9711f6e73ab3d409f1fd629f9051b84daa1f5331ad38040 b3bee669c3c03c94deb23e3ab910807e36a97052be8c513704a333971261afe9 39b17e9e2a52e6bce6fff58b21d33b05bb02905fcb5fcd2dea910acc83f3b3b2 ca75a636c43d2b509e47086c345d6e1640beb4bcfa1b015647598c6c83b18a97 063ab7b8c5b67ad9854ef01406f07816d566df3f1fb8fe968560b76659104f0f 95badc10bebf5d09ec63fd6b5fd51d5aea2dba3cbbd4712dba167aa63c5e1bb4 86f0b74dd1188df8ad2c672248c2d0462aefcf84bbd4404cde423a3010ab1282 d23abea5175d2157d8633e52df644f275ebad10cca3b569f3aa91b169ca74a93 d1f5112e8ef47e6f896ed28e31498b3c4df33c1e443c79173b166a8660642872 8885624d051e4b1755f66f6cd3c5f850f20fe95ae0c24c977fd185b7542ae444 a7de4b0947bbfd08c6861a87cf393e3f5bd8d72a8b1bc7e6423b9d03e93594ff 93ed7b2908fa4d91e25f455a291f22f7bb9eaf231fa893f84c58d872274f54bd b32e3556c73294e7a492733bddb52fa8d07e5bd2a536f320e592ef9734d4a18c a8c6d285e43f70b66905d0dccef3829d2ea844428973a16f2f2ae34ea6a22998 0a61524c6d2bf31990e6a806e837b8604c5c21f907452f3b500aaacb5bbf7bac ac24efe8281c2f737ed449978ac7218f2f604e2bac059d455bc9a3f489c74d8a f56bd79fc95938b22aa11a0d441146b12cd955fc3f8923de2b6abc8694376ef4 366f5e22863c74f307cdc08b6b8238c1107991d3f15c6b738523a1e68b9cb106 320af5a5bec5cd99f64801b84597bbe42ad7f52fb63a55d0d6b69516d85c28fc b5623dc497bbc5e30ed1b07a592c36dd1c1587b85f0be2309da9c5ee658b876b 6146a3b81b1bcdb0d3de053a6bf699cc527537afff76f8d3a38e12d30689da3f 28bd9ddf65aed0be6ba0f8b8ab54dd62ba555f60358622c70f34904ec1b236ba 97876990fafa2f2a90fe3dd979048be8b333268956a4679f49a7def6578ca38a 4988405e8a88f2d330b91238cba403d8288789023fcabaa4fea881246952e782 3209917d956ecd2fbce2e51626ae57efbaa0306a43d8b71bf81f093a83c750bb 98cf23903468d46ad3c73d40fbf0c297bee580a1fd4d4a163c1e479cf614ae3c 9c4735f46baef2a2d04f47f732fc8eb709d4d3bd1d70d2bea601d63f70c79a83 49426eed41e1ba03746b508892c0da3a75acb560c921b36be1677b63222392e4 a4b35cea7b4cc9b085cb70b5c19d985abc841b86dab345df2412b16b2042963f 2a5a88b20877b105b8cc4db3c505f9b3d8af119839f85c0a4f8836f226d0360e 51b43980578ad6ebabd324eedda2cb6de04b7134ca31f9ff94d7bcc151623330 51e8ae98bb0cd4d4393539a197aa7f6d4d8fcb1e4e60349933c3a9324f1db5dd 7d80351ffd474600b88d27c09fdf288c5c3651da450f9131b615612672dd3456 a781f630aa6c35d4135ea5eafa4780a8d5d31af34a442406d13b2fc6a767fda8 3bde4b2b215e3c3068a8579ae471ad849d56c099093234bdc2b1d061756eadf5 4ff3a9646e40bb89aa12c99d7d9827d7d2e5ed21665d2467d7c306af28bb36a1 8f8342e3c0f4b295e28670bf1c8f5eac4eb6e573a41f89e7ce0ce5165289ac74 90234e48dcbde4358c185261074ad67a7376ea2c390a84306a1dac8abf67f01f 2267f77bb5e0df1ebccbf73c5f0ced688556165ad250d7f7a556eea266a0c8f3 c4b00ea7805a63e1efeda92cbe3b82708363bfc335f66a08b2157f4788f6439b 09fc420c2bca080db5aba27a3762c88b9e591014ed4d74c71341cbc6e267c33b c59e6cbb62367c0555878f55d5365b95419b57c41b2b3a6cb11101026b344fd2 f5a12383abf0a786aec6bd4deac68dbcc99b3dbcc18c697b974ad8beac87f908 15a5dfdfc6245eaa370a979ccc0e2db9d9a5a86ddbbf99e2479fe8f6434496c6 4945c7de896091bf4bdf96b2b5c1be873b5c8488e23a474aec672243d7dafbce 3ca9343e156d25f650efb613c4a08b7f61b4259f70778ef0590e9efa2af5e30a 768eb3edc077dda6104f7d8f169abc1dc922ca7eeed634b23b8919cba2754203 288a9fe1e73a3ade71c41c531a7d6fffe0df2cd4f7248f17feefbd8dfd8667ec 9089b215cb5c3661a9a98b287ba3249810e11a57992367e5ef63d81ebb0b5c06 e28d6cf3b6d2f18f31b3e50f2ae704813368d785db9f82577baa4a4854bdc73f 92216a1e3d0d3d874702340da7a27ad84964bd377ea58994710c779b6b5896eb 740ef6476b2ae53b902e58cb087aeb0ff5acc32a05f123c598ce326360573c4c eaf009d125244bad98f6be0b22d14391b7359577fa36b48ffc265d969ad39cb0 b604dce4e22b19496a6ef27a0579218b5019e23c11d3bb5e45b72b1775713172 40ae2dce0a97885b0b41796cbffb806d5eb22001bca980b666293e0d2270c7e6 55be420d813628556fbf9ec759bf5b0389bb281ea534bbdf2c753877ab3b4069 eebcb2a42d62fdbba3247303897388c2c53403a06be61a1ee8daaf4b7b629a88 4a530a130d127ab63281aa600531f0ca7e0fd756deb8ab6963dfa9a48a59094a 1614303428844a6dd35a4ce7b0639c58ba4d261a4fcbc4f4335db4e6234d7f69 15d8844efb1d568a197f0adee7fb5abde338dd833023e2a5ae191f63ed615583 d118c5b09f84b2cb9b00e9ac4d1077a5b7104c16f56dfa2703ec26fb4bd791d5 5c1c9c3a62b035e48594be6832909df021db603f73ae009fd7a39c90feda2b55 a3340446be6294611d8ab6c147a48dcaf131ea83011ebc90ca9ba6f83ab1df0f 77839e978dc05f088b9882b2bebaa9c9778937e86067eb481f7d8ad0bc6f0137 394ab4087d7420ef83301cbe31d34542d17c2dddc3f9f3552da00740a26b326d 4f5d2e624ea1ab6a28e8891d969eae396340dc88aba69e01a16727ef1419e470 a049fd84175841ecb8a2266a56782286622abd4aa7ba601d25299bf923eea890 03391a03beaee555bd812206bb69d14f0b8308238dcd05f7488537bf86f69855 dfbc662f47e80600a36ef123bf411063a8557d6d941a3dafa73b511fc21f305d c5dc580044ddf99a09608c9775fc96bf3a6ed787aa965ccffe5e02be8b565f01 6fa9510fa898800851672daed8a444437d6ec3e5de60a3456b4da646194f7823 426b0861c596743637d95f5db4349b195fd7c28027ce16c0370a820a6ea08714 8918e78ed172be3bdffb42825a40dd7ef338d9c73c67b5842e62d584266ec473 b25b2ca6ec6437a76fa172584ec4c03a2b1eb35ad95ef2045f3a7f03dc3ed429 be7f5cfc965fda88d2fbea81d428cb7d4a00d1c3bd1bcbcfe3d7dd26b40d71e3 fc5a19e821b02f84515f8461fcd8e6457b351541c7d172ea093ca68313abb103 e3e98053b20c630a2581339f34dfd024f738f253380671f2dec2e447f4b65616 87ad6b9ca278e587bc5761d6a1287a83de43ec0cc8512c288c78e3eabbdfcf7a 032e34c0a1a03798f763c608d5c3f1fbc1a92515e4b9dfa6deabd7ef677592f0 9aeb48798139e28be551c19debfa56cffa43f35c20c8e12e753eb2123fe95762 03e1319f263cf31f33c6c6911711398ea6fe790a67732ed4bab452fca077fc2f 79339873ab4bc0b6cec8b818fcafc7322e968589460f27e91269a171271f7b5e 0fd8e8bc98570d62865b2fbe1260a9c410cf76f7014380debb877d5e085b7342 3c58071f24d445920b05e76d7a609e99b10ed70478489e278b1451a2cd6c434b 07c9ee05153d715fcb737bd88027773cfa5185e014e3021cb0379485960908d1 c8136fde3ec3b74dbec5aa9840ed04f736f9b0f83188bc7130a63937a89dd27c 1abb66c4a0a13319f9a278cb0ab9d807dae34ad76272c298d604b5412d8a1064 7b65b1c539f1697354f54beb0d5df9fd2e951b009ca659f09f4e61b56d1beceb 07f536408cc753de3c25fed8a39d7578cbd3a420a52872438807deb623b285e0 75e5297eb34cfff5a3d0f05a50302506104c27c7df3c73da4f2b5612bb01215e 7260ce33a58428d40f62a604d0b964dc8f6cf68804e5ffcc243b8a3913c8ca91 e8cee976ff5b3f654cf07c069443fb226ce44bc79e7fd114a25bdce6a079af11 8c2cbfbaed8679d54228ff3d50ed51ff586cf9775312d37ac152bfc0b4610a28 15a0062ffb824d79d539352d66c2f0bb4c883a429c493cb25f886a0d8a766ba0 2d666e1760d682593a1d8dd153437c9224499b7b5374c1fc7e3b2055bfcf552b a5643beafb3ca837fd7f8cc2c3628f9180fa6225117e0f6188106a86380c182a e7b0796f670cbfb9389211563f5824abd02ef056f16a4fa19e26aad931041b13 caa67e1cfd6fd331fcb08a89609aa6834a5a927457c0e1fae55d710ba15a4dc2 cff2f9ab5eec18c6d9680f82f41606c01398ff2ef83fbe055baeb9cf4167ce9e 089e567467e4deafea4d04953ff8f798a28b9bdff8db1e8ee0945b0b45efdd2e 2e21cc36948c001e5d1036b914b5d9f8703d96c626cf84d6a0dffca2a0c4f3f1 28f9d4a7daa4e886ce8ad4dafc8cc156b11fe2ff8948bada9948fe589c882c09 bdc2fb24c95696d199d77cf5f70961a698a369b20c6182e5aba451f6a5ad981d d80f6b69e5fa56b142c282eea23d08adf3591007b0f582e2050bd2b8b1ec5343 3f3d731e25c886f69c3cbd8511b6263ac904826f9ce30727229580ca39977902 b95461993e871721586c1b79ca39895357be422790aadac683c13f8f1143f0a4 93a90feb4657ecaabc78c7eec8ac3dcc1d54911437d1717b3222048704290e19 ee985e7cfe7019def1d39b1c1318b59366952bad0396b75f39427843daf3d0cf 5c424ae16cd4de3ad3a2dd85e80d1a39bbe73d92bbf4b39b1486a28b436ecf07 0180852f840a67c5374e7a23facd2d30003ea71c07c282a4b987ac600c0c4635 6eb3fd48fbd6c1079b58e860ff3983f804dc2b869af122a06fd65ba2107a40ef 76141b075e4d1d647f132a350df9a080a8969f03c2b53aa91a581d521c1ab338 273deb1fea2bc8522c56a17a18d3362276550c2b9b8a457b9d88336229a28001 e3c5b5b45d21d7c584f52a6a9722c223db8c933780c22913180ad1887403cb8a 3ff2e9447cd87d55ee5687e38d2901d212779c8a96018c1bf9e5314440d00030 48435159377dc61b296f9aef5257b9b0848763f6673b369eea2a86837542d98c cb770a217c73c41f766f92f591e48beb17d81bfffd4b6ac8781acf672197ca81 7d8d917d4e66279fdc3e1fa1db053bc86351a722d04a6514506c0f4dbeab4589 4bbe4f53ecad6c25a7ed29efa34ec7fbfec7730b06dc983fce64bc8084e82bfd c76df7742c7ac38c9a4110cb30d26c41969c3fa06e2ae5cd52383b5291ac769e 174124408fb5b25c37505aed33b9533e4b598ffc5a35e386506682ab774d4714 66771dd0321b2f185fc89a4078f592940a3f9f7743b635d3bab460b251c83efb 4148bd72bcb5e3981cde7e50df7d009bb194df30bf6ef638e5b4b55009c66bfd e7184dbc2eb6cd5f236d0e442b6c244bac5b4047d1369721a48d266d72d227a4 d9fd7f10d08c9f25f8d35a819762f9463efaf095fda1f502ce9ef79689974037 97dd37e66b70d1fd85eabe81bddc61ab7e678b15102a11c94530fb8ab4885483 99c40bac4f8890ee19196aa3dad21204ccde4cdb2910b70dc9b95724ef5e0047 69e052547def6835989a820e70e95c333ee62e8b33cf4a16913f96b7f4821beb 46e8e3869c6171d27d7200596a24f057311c3a8d8f0172539b2e77fd15d8c71b 6f77388883ac19bff11166328e37f6b9a78b34ba6f161df54aeb8c1b3b023aee 77f353e6c6af4ab4db25c8cf5c576bea05735b3f649f530f28d8c55981179570 c03f260047a2c3bfb21b630d149b56d74c7b7534b78b42a296c1123ff0b27895 54c857bf637a02db05f97a377c5ebad4d757e1c689a80784287dd4e2a1b5d68e 54f9915dce538772e73597e7f835ead4e0f58b60da5a7e15e61a888d2154f606 102b2c38d9c81623f2df9adadbec5c35e60bb4c9fde1b8e0719bea41a2717ce2 a416c2d27ffb031c4538fdb7927c3219176d59ac6be8c52a37c27e0331c11ff1 906221f7edeab13491f4eb7a6aff5c6f84c7ea3774d833b370f9b4e44478dee3 e06674ee848e6ead38649c5cc881f698cee8b5546382d141d451708f49600a2d 63a901df114e36488b59e56973635ef013511d1f10836cda3ad77db69999bc85 885ddfd04b567dafbe7ead7c9f96bbfcfc5b0e0007b3db6af9e750c710091f7c 04b3ed5cab8e1509ed19829a6978ff9ffbb15406b493054b3006ca4a4ab0bd10 da5fa221b88cddd3b02775a7f5875343d083ef6f969b9a214908bda58b0612cc 0ce85aba9ab777315b2d0bb1842a228e7803d4e6bdb4f0435e3594b36710fa9b 5dc1ca27dc0fa4d4f7157acfdc437ef5e323e91fe7177052efc4f0eb5d558a03 778874a172d14ec1df9c78c5c228e1d2d706ad6245401545659b969ec18cbf3e bfa9a57e7e61a4e5e3e3ffb523c56bca4d803c3c393e78419372dad60f6afa24 01a3472d251a558fe48f7ecb110ec15c3d7d1a59f873797ac528820bfd2227d3 724b5d407605579f5e25f6b697495c9d9ff8c9db3a7d5fd34c7592ff8ec2e060 d5bb6100487b2a67a36ce86d0c6eed74d2bf33448487ad36074c4b4d169c4eb9 d21af52cd8cc154a1ee251f3d0d485796ce2479e29dbfbd419d7cf5431665a06 ff121a0a2affa34c00f1a41d7b9771a3c3a7399f16171431d0a7308c1098926a f0abad698601297e5df5249e9840a14f25ec2d4b0ddf6a3c58aa698429f41b01 3595e65c0fb6df60fee111751dbc1f9a1205cacf616d152d99e58d82573556a9 5c08d47a4ac0e3becc4c084039f4956b2e936ae4646cbadc13c099367c6ff15d b21d4c0f2e46e068a26282be06fd5c935199381dbbcd4c4db432ea7c8e075961 f6162bafcada7668756a916fbd4f641839ba9dc15af433a9a7a521599db6bd38 0b56d8baa2b741edf8dd04d49f47644e9aa0c852897fe0374bdb908321b09dd2 3a86b156c0c2e52d8952da78cbb16976b004712863db2e01158b38d859b99905 954249c33fc3ffb9594e7b5238d9b24ee0ecda2a9a8dc31d2a7bbdadeb59dcec f8c4a98ad91327357c7d0482e4abb15ca289517942c6f16f66fadfb774780b86 b6c170524dc9495b62d1d6dde30511883a5860804f89fbc28d670c6540ca9133 925d995e579d1bb72f59243161bb5296e31a47c1d90cbfd77e098b6e613880c9 1ccc6b5619b2e4aef2575473f81b413e11c3f81682049abc47b5600d98f4454a 0b3f2cec3a09b5def0a20222443d724387e53aab8ff0a5c0b9cd1c522558b045 ca1fbb5615de4b74115646e82ed098490db903a0e7d818b1d7ee5f0892875711 dd6c896564f93ba78fba7ff938d19415aad070999aa4f774f14cbe8799e12239 862d463963a98e44e35a176daaa6b2f141d2207a783d285196ae5eb2fdfe688e 8a8b9f47bd599a8f4e40872aa926dab7f0a2e3092dbad0c29e2876d998bfdb2f 3846817b84e236b20e63a1bee2a010b9776e8ed608c247a6c7b5f671084161d3 f575edda286227000fbaecfb6db9e799d28ae46260e9e82d304b039e1e018a8f c29e889286a28e1f25ab6ea2efdc03c9a6d32de449bd626529f4afd0db902b0c 8eee85af87c0a09926e8891ba236e5209ce635ec3b19ca4768339eba04f0840b 7bd43e8d14ee41de36d753b1abef879626d65cccc815d82fd0a603a1d3cc7237 96171e1490d78f7a61023b87b7b57db2a01f1ec1a4a5af8417367423cbcbe63f bcb5a32e1af8c67f72a3868e033ef5d544e8bd55213da2e59bcd6db9dde6999f 43711d0ad79e385da4b29476b24c947d7b91db5b7c24757761e68d79e6bdc1b0 9c1451f4f800bb3f4db856776924f13c42f3a44c7cd2071953444d0792f2e11f 8ead279700b3c07e37ad89523d0a9d488787cd70eb1a29dd945237259951b41e 42a09a2b26be1854aa8749b0cd0428e41b3b246d8a012d8fc43491dd8176ae0c 65ab1daff34a5c095db50b4913204e62659c3871dd129b64c057ffa52ea24ac0 b76e7222568ce8beab1ba1e13de2e913149099a4502b115c0a7b06c8315dd583 20e03a0f470421d9094941d7c43187301e672f539bd477540d65131cfa350202 c39c7224d2abf5c691ee99797ce148fa16a894a2dde09817769e790154eae2c2 18dafbf154097b321e3183516401e1243497dcb8be0b08464112138fd35ccbbb b78779805793d90d7441991137c7aaedc81a5e1b65f5db56048f5977c6c7d8b1 4bc94058c1a0ccff21de82162c6e7492f22948d701f306730cc73aca8656c6b0 698cbaec5bc20f999ebbdef6e4953d6f81da4b16e8a27d44260d331680b917d3 2d7d15f995ef9b2206e9b8b0849d7dfd8c475a45be4015530aaa420a12fb77fc 36f2d5fbc54e718927328c048cacf5c2c0369b02d14d77324627742aede7f414 eef5fea301f30279ccf3d8290571275b0392509dbc44614d4c4e851676e4c016 7af70d7958af8952e992ee80cd5716224c38883ffbb5acdc91d3ea33afbd80f2 1322af249555bdfd547aaf06f27590fbf74dcda9812dfe2892b8cb6d21b6c941 86559b09f00abb703f3f44cb669f24f719981fd9814197009a7347e88467a30a ba1a0b24a1518cdc1cd45b10e3919eaa54b2a6791e86a7f3c3f6643260df3214 07f29a6495093ae79db3bc7fbea6d07929bb0cff81d835491d2f53a7e3b028c7 9088d8b0974003e0055ea8b4381abac85f46e5ab09273ed3cdf43660d7b8a408 29d58a6ee23747a26e785e3c48f3f954f35cd6f9c3b52bd96aa74b864ab70568 ff4a9cabffb3f02cbc5d14ec2b00ddf13aab47824bfc05d9984c6f1e022dfd1f f81278506108ea744cdde03be9392ab6b83c5ed7b26d5f52422bf5993c1779a8 d8eb7bca76e185401875035b80ccff9c953667b45b9a933f33fa2aa2a53de415 15bebe6ea19e27ed85faf35c9bb489df8b78fdeccaf3e9d818b3992098a5bb3c e5cc25451f77e435b1c5ded5eff40b9665136dd833137ff5ab081709469136eb 1a059a4e163e7c40955dc1460633e4ad5f2870224e94826c428bf417eb2a6c33 bae15bb15ab9d006bcd88dbd86197d4f016690ff58dace4a6d2ebb0fa4e725c5 7df19c757460d30827f0b68f073d285032afb2dd92c7b929a4bd2d10a4a892dc d6f8bb02986cb32cc88edfba4e107ea647ca7c89c740917786190869893ea68b c1aaa1bab8be1656bc8b3e42e16d262c2c163cea239d2b9169c1adabfa850fb1 7c3c1fdb9e9bd976370f7acb0327413bbb6d6ce2e12d569795b90b46cfcb01a6 bbcba0be5ba6ec76b2516fcb2add9b4dbd85aa0ca9611817357dd7f86da3bd11 af0b8060d21bcff49eb3aecfd9cbf03d45a7b6b60c2859a9e27e2f1ce627133d a183d49256456383323df140683053612e16778cffe55ca604707e9ac4c55948 6c1a7eb509dcd457cc4ea2380f7cc9f499684e8d5c670735daaa73445742134d afb88b9b6df0d806c1efa641e0d68d7e5439a79abf6faefcd9e0e986e8c2838a 1f97115c11394cac40fd34b9a1c4b0e665cf2b42c9a87c3eb94d85de97a2b41e ea10339bdcbfa15cca8ae9166447dd1ebd6a389cee0b3dac078cbb3df6f0e58f 1bf214ee2881dd5baf1497e7f500966632a27bdfe94d5d29c1c11bbcdbc5c412 ea50147b1393cd901ee4c584867042fe1617e45f49c18c87677d2581157964cb 10ec734fd6abd5f56a0bc0b12d983a453546502610c895277e0d1b2eb3913860 16198674226929a3234ea723d5248d4a761ebdbc309899b62d06c74dbeb9cf4e 6d6e3f685e09f45cb80baadc6f49feb896f00378057be2747d1fd9e95e252325 7644f9cef6ed583f66f3af7ac2ec4d775338ad6af508225292307ff89fde0fa7 5e3deb1c45a38ee49dadd8f68d09c74a6d81c37c4e72e4aefbb7e21eda5fe9b6 2a812f4f0aaf7a77f9887489cb0a78d7dccc99aeff04ed258ab0ecf23dedf8d1 acea5b0498ca22bc6aa2514d486ab6508a0e0401f0e71f2aee0e8684d8e47e59 8bdca4c9cc6d78d5bb159912f772cc89bb711ee75ff70ff3d04d75c5a0c310e1 dc1078c2d647aa9f3d589d70b68c169295aeb0efde69de509989506f1d97841a a3a10c13836a9655023bf792fa6a070d68c4a78805959c039d28f387458d3f0a 7a249d75f5b89c3beafc4b2d1b952fe606cf6298eeef76debd0404d646807bcb 04b868454c32a8dea3fa86fcb6014a6bc711aebba3d9fb77f850a8a027c85b53 c6b3bbd531c71cf76954466a3c30f90e5a76d0dfeb5daae3dadff255fd8e786e 151bc1ddd4045324c4f34aecb4c1b77b8ce9964464b912a851288bdaeb8d5bc0 6511e604826aab6fd7f40118332c59e96f237a26cb28f5559922b9c2e753c9b4 91f9473af4b04c3d3b639f78da796fb9731189980d024623f5d5ad15eee2d037 2abf7c5b6ab3d342738b3244eb406f5d250265b5087d13d85d1c0b606cba2b8e dbf84c5bbe1aa71e01fb7146ebcf814cff4f92aebebed7301547ab8dfac32d3b 4bcb696a5b0887a02264e1bec58a2cc5c4e29468c862298e59163b18d473a01a 70f73bf54d46f0d65399cab65e6724807ba307625f39ce16147fa899e9e02be3 f2f6f0b052c5327fd30e574fb5c11dae6f0c0bad265e0fc22d3212023a8feb8b 55e3ed0c165e10e857efba1984f860c20d4f60ff5adc4f5abc79cc46ef5f9334 6f3b03e7150b30a65e19a2af5078b1a0a5fd21e99a8a678aa8407ced766ef53a 026cd6fad1b13764968bb5cf474c5158ca7b2e7999e70a9c4d6f6e8c1298409e c7e5d20549b25323d254ec1e970a4a8a43f0146d828b16f26293189e665ee9dc 80808654b8f1a4d0edc72aec0035b992ddc059760d27fdb54278c9ede91b9980 9afd8c1010aa8e9dbe816d9bc2a4d228719c037e42578d34baa08e8b0a95ac0c 4cfe87cff33093d738caa600bc65eb22789fbdbd77e81069986965427a0e49df 820dd956e062def866870ffea4316fdf805a0845f4671de30f0c49dc2906e630 d5c66cbf6cc906aef1c542ad47bbbdd566eabc19f3a8b4cd7062c451d0fc54cb 328e75b33bd29db20e8dfbdba5ea70f04d2e71004024d50818a0a760d8ddb3b9 970fe7b95f5109896ecbecc4e2c20cd41e036e5fcf835dbfb134249be53d39da 479d29538f903e31acfefa0cf3b53a442ab952a45d33be9ac8e17ac29fa2a709 c84e21c4692f813d18ca3af184451acb48a13b22985076b962dc7d155a4bc774 5dbc7ded8f1461e02436737f8fb97d1a4deb4b87a61b1bcfe780fc80367b95a9 ee77e69aa5ea3aa5f805a3bd57e1a0cc3c423d437799aba35897ad490a917caf 0f8b8380708425193f85d51edaba3e9c13bc6a2dbd113d541d43151e849803e1 53d5dd431f2d8973384ee256c0f5419ed266d4df7243479d5f1111a202fd9867 53df0b0e2cbf46d606b2e8f50c2005cf99e4ab97e2dc9c7ea6f88fc4c42bd104 a40a93d73e39b2d7d99c8c6c41a642bf0dae481d59dec531adfe587e0090c3b2 c71bdd1b01321caf438255662324923e2e5e3598a5582ceaf25e9cb9d51470e2 fd1e0b9fffe10bd8af3afc10ecc5d435a51f5192714ce4b2b7aea8e91b063713 32fe8f28591407408764f2cb4b10da78978254789011f348ce 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR10 %!PS-AdobeFont-1.1: CMR10 1.00B %%CreationDate: 1992 Feb 19 19:54:52 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 11 /ff put dup 12 /fi put dup 13 /fl put dup 14 /ffi put dup 34 /quotedblright put dup 36 /dollar put dup 37 /percent put dup 38 /ampersand put dup 39 /quoteright put dup 40 /parenleft put dup 41 /parenright put dup 43 /plus put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 59 /semicolon put dup 63 /question put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 81 /Q put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 88 /X put dup 89 /Y put dup 90 /Z put dup 91 /bracketleft put dup 92 /quotedblleft put dup 93 /bracketright put dup 96 /quoteleft put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 123 /endash put dup 124 /emdash put readonly def /FontBBox{-251 -250 1009 969}readonly def /UniqueID 5000793 def currentdict end currentfile eexec 8053514d28ec28da1630165fab262882d3fca78881823c5537fe6c3dda8ee5b8 97e17cb027f5c73fdbb56b0a7c25fc3512b55fe8f3acfbffcc7f4a382d8299cc 8fd37d3cea49dabdca92847af0560b404ef71134b0f3d99934fc9d0b4e602011 b9cfb856c23f958f3c5a2fbe0ef8587d1f5774879c324e51fcb22888b74f2415 50d7401eb990d4f3a7af635198422283cac1b6cd446ddbcbd915db9bff88844e 784c6bf7389803d9450b0c21756a017306457c7e62c1d269f306bd3402e266de fc3b5e7d8a8d2f5bf0fe6ddd40d07391df4fad4a6018dce29a2b8f692b29f202 3a7c0e66de8ed85c14f1f8492167357f51a7e84cc5d92e0fee4d81cf7fbc8de5 2d2e7bb57142033993f9c08c315abade8dbc4a732e84e142d3bee51557910e12 cd8aa37c459a5e6b7f5269f59078aba3be4641a11ac48d0b625c8325b38ec08e 4c9e5e7fed976a5650d99d82114f449b9ca14c4ec957702295a39a93ef93f618 99b8ea06b092c3c1e503e6e436e0a9fa22576c8930ab3dc8c20f5d82b69cddf8 ff4dacfa9c54bed5a3aa3ea5b129fe96be632843b9b6bc91b615581a985db56b 1e01ca60ee69ca92cf5c0882ece62edad3e106d835348822400f0b66af658f2a e56ed08f8b0010571807009b73ab12a8cf14ca6c71f03c2a48c500f9d62266af 154a6375ff600d9bac3f05ce34142d6867a79581c533176bb2f3117336671e2e 44638a97167e2ea9644e31ea16c2ad2990ea33c54001e0c8156e6de8ab6a4d40 a7137ba275f39589fea2e2db8256adc103d6f9cc038037a47e8fd469c5f98a5e 3c15bd4ace40d340018b1cff7d1ed8abb0ac57b5b5a2c20a51957b96c453edb7 dae5affd91a46d938fe0a13363001d844ded4323f1ee6d30012aea19b024a552 315505535c85dc26bad31e09c50e6512802976d298c4e90d0044c362e6bf3ab3 62a454ee93de25ce54411090c29e9d75c80ce26a84404bd9de3aee0e3f921ac5 87f907572b8354a5c3165eea7e8b2ba4e333802132f760b41a900c698eb3d273 8bea0aaf7aae96a558f08b61aec7c7d65b2889bb7b99800cffee5ba19ac90fce 11437be1ddfcf0bca5670b543b9644a71c8726d0c1005abdb96f6e0cf7caaa31 95017ca81519151c2c0b04f81e717c0691b63a76e9b25329ce2625b711cb7bf9 9d23ec2bb5ec8aefb8c1a3b422ad617b3da4d49685fd44cc21a1fe5e1541163a b3e1594601d63c7e98801d7746474377ce93f81404f3570afbd5dbfe77578605 917ab96963987e6efc2d3f99fa56ecae6422579852567f90cc90e4ef6d6f71d1 858270205477e221018a375ca83c572b3f972c5181d18643cecb04909d84cf76 7174b3c0c8ec69bf1e9fdfbc0fc7ed97ec67d878ea4ddac8caa522fdc6932df7 21b81af837a206b79831709e9102adab82c39aeddb70d18a46adc49e94172be6 a1317bfcfe265b541dfbb7f7ed969ae5df2eb1e57f57c8aa000e1978a9ee6049 ff20a9d8aed0a93421abf229940afc026b13aae35a801bcb552e47b72874e542 bae70ad8b670659c12c10f25fdbfb8817cebb3fdb8c4ef261f0cafe861735038 6cab5a5d5fbe7fc2e7f81d44e1e079f1c371026a661e04796a114a527e73b5ce c0813d3f7f32e5a1af7fd01a9e2aed602fb6a4a8f154b982e49c22102683ad10 a85b114ce3689724b63246f186fa70e1160fa37d3177ee3ddf3e743f904945c6 c1d149f2b2d7922345a1b5b1e57465679de2124c2c8f4a13f72142fdac965ed7 70eee93be87f4148ab973d3ef34a9cd2b3766349e30a66b79ab23f914e409a9f ee265dbb5a0d05d858e3d03abcabbef825c60fb864c501116a04a5d9d4277305 76b49083fa61ea1f01dad1438ebbedc0bb83607f6abe152046c0b318c7e10878 872933ff1fabbe3c32d86ffc21871c2ce9983cb925eae808fa88802a1517f75c 6ac7c512a41a5f40d50f1feda934d227d878af8792f3296b68b1ae8807d01abc 194757444d27b99c3aaa462293b12714c65cf7b54d57ada08c124581dc47fb91 09267ccae927928e874380e20d97f5f98d56da4434b7acff5d06f792f470db52 8d3fd27697b7f085815ebb7a2f5a79e468101ec497a77f962dad0ad33c00e650 c8e1d5d472017db04c833d0483813b582b9f0d5bea764f3a214f5bca33703cf3 0d40648818172d8a3e9f8187871aa4b3e1abfe4027355d204cd871c018ee664f ab2ac5a45652017b31f3fec2c4a3a79495b531fc4783ef67bb859ef7c71a3b42 84511c42f20c2e58bb71bccc089943669fd8e8bd79b50d62f00e36c570c0ffe7 b567331b058af5cce7cf9b557bc45eb39b099fe558ba79c86d923cb9583a55c4 70a4a337540a763a479a77e57efdc591f25ff48fed423aa7350b354024392fc6 e3f1e27f25efd24f4756a3cc07a5c20985f8a51ba2d3f4f8738d33d55b93f487 cf66e9c98d6c66d52d57f66ed559a76f28f2c6b1084a9534ee4f2df880ad144e b424ac333630cfa4cef08328a1a6885dcb06e0f31bacd40947b84dde033f21f1 ece1c0c2c8028d0f35dd2fa385822cf8bd6edb606074d06c371f5faa77776846 d8279362d64ba5a74ca5f51c801f2de1a3ec5f6302931031b146a01122bbc4bc 547948241da5d9f8a4d9086dedd5229ec9afbefd9d51e584094c289362bf19b9 1657830751c9f1a289fb4203a9236955de2e28cafce0d72980787cccac2b8946 975e68e4a2d40785c3816af398e5a84980ebc5c981be1df8dbf9ce8594fa20ea 2546a253921b58ded6168d1299afd8a8e28ceb3cfe18443475d9b9f22465181e 1cc0118bed52c1442b7356ea8578790bd224f0e60f20b88b1ea045f7e1e94465 24041da5d034bbb71ae38c7f6153b8f7dc0169f9ea9a8f2c8ec9edaea3e089a8 aa0fabd7cf981d18df1c06f51709eebd26f876f6b639809e4d9204c7fe350c69 55c167cd3ac90e158096adc4cf92515dac9de1bb5ef8bbdcdf1a1792290697ef c4eb6d121ad52935083a6c94c45b4e8f04fa6a54b6985aeb5826719005424750 a4c8ef233cb2d8f6b353775165788b7314ba6f0f6c701d0c2cc1577d7567ce6a 4b51a4f80ef74d7c9fff3efb525c61f8b964b0673659a485f37e01516b61dc64 48f2830e5d73b90ecdcf7fe116ab73c5059b7c4c758c586f6ffa62948753f3b2 3525a3967a9ed065c6b1aedbc47b26e02f95fbfaa88093d53784064bf9310226 87145675c80dd2949e5f4e5ab2b91cb0c6e9239a564c991c14cece541e4bd7e7 d13cb2193fb39b38fb964b2cd0a35a7300f654fb027e88d025e54fe7dfaf95a5 ad4f0048ce97a9339cb4d76d281d1249a7e934dcf501cc22a61f7b76b973789a c9bd26fb4eafd1936d50230ad32080e2bc92dff2d4aa79dc27d94db6358a6ced 3ad86606e9a1489c2e4af0814533dc6f1c0d48c6fb926f517b7eab3036f94229 57379246eda5b62f020deff763fe1c9df0da5d7d2729cf7ded15b65f8e66fd5e 76fca241eb3dee937200e9ead6f32a250cf9f11c134dd5dbc498ded174eac3df eba9df15f4512bb76ffa597b1a84b77b3adafd716245546af9c2e585bf5332f8 3e59ba17a5bcc1df872cb39ef9760e2442b71a47db64bb0764fe583109c72d37 6e0c67be47f8109627e2165b17ea8bbe974da00ebd7274faadff5cc678eb9eb0 bae1916f04d4d1e15cfd812752278680c9bbcf957b769698fef3e79eb5530b2e e78e80a68ee62b544bd43e3779f035a4cb7c3dd0ec47a4b81643a11cb0ba3f62 ab40a46c0d2c6abf05b22f5e25d2ca00be5b3fcb4710a68c09fe9c711fbaef20 77d4138159220181dce1c23b6bd93f4cea45960cc952ff34237574a6edb1c10b 22ae6537644c459f9d97485e197ca0d589a00d2f035b58ac6d35eec5dbcbd8c3 cd7a8136527f92710522bca96634deca95b7e335cc64ca3e07c816a65e4ae643 ec23fb03b75a94b5010c18be480e53fcd58d79996f6858c11136ecefb526bca5 52f20277a963c16fea62997955b7ae828041ecfd5f63c7e68826a077e4cd9a60 84a5fbf5ceb69f0c93d26330451503faf0b03448aeaef528c2e9da8ff606474e a2c2a1edd92c39279cbc74907c4e4fad89df589060369fb2da43583625ac3340 68a206923182c75000566047b5a0d5fd731fbcf037d7d10f1406221cf23dfa50 e694bc83048029b04fb787e82e88a6ef44e50e9017dba03d89fd18cba967ad7e 83c6d42bb10cc007216a777d99d91be631e1488910d4bdcb54b63ea45bcaecb0 5e7f7e48dd2ec7ed24026ce29e57482858b47c66ef3df8b0061cabf29438a4a6 27b437b9827dbc3165101acce7a5bed62ddd73e316a406415d4dc67466e85ce7 2cbfb356293a8ef87f090f5c5f52bbefc330ff7632a36ede2a070e4365c8e683 af1806358fb930b43dc262300f87f9ad1cb34e0629edc95b291bdc57a4d038bd a040634a540b8cfa396c1253fc5bf7ae2b862797057365177012f22d96125001 2e67c98afc60dced22bf61d299c0dad78c246ec8a0001ed0913b0a2f8020a556 e32f36a524e9a885dd036c1a7f57db96d2286f51409c4023cb1d12f011e5b441 fde5ce3fada9a406d5f846e3e9521e37d0e3d41187dd08bb7562e0ebf12b0a4b 7931c1e860925817ff3008f6cb2ebd33b7ec5919bf5036fe40805dcdb4d541eb 752b0ea2bbab7b464f88a6416fc5842b0a72266e9909272424ef774ff76edb47 aac86440c09a86409e29bd108c58734fb9685dc5b17114b93a7af4455443bd9e 7fa8c9a952d6a916894d108c4d285101fd000859a198aa2d439deed7ebd3030a ee437fc73b7bad9c939bef0c0f160d03109efb37424428fb94e9a5bf995f6596 18a1703f293a40f0f3ed072e3f6272c5f6acde0b290b15f1f480b644c3023845 6d23703f806cdbc67a64d66dcdf34d42715fe12f913f61843d2355669dedf39d 5912104e34375f611824fd7cebf29a527c44ab73d12d8008fdb418018cf82488 2d34fe71292e54c1e29dbedca0f9a8eae43c118a5b2fef237f9fd44d95ec476f 98122c47c2ab864a0e950dc1e8c5fc323b88f342a1f5a33169f5e1c329cca6e2 4d8696f03d5cc23195fe40b2696c1c68b216bdeff4d782c51e0eba2f0964a430 1ca3a569a07e4d340c93569640d3fb27103fe71d667beb9e4018960242c46b25 d677ba4792125ee77f9dbfd3d3fb124c52e2dbda6c93b68f7f4df0126c12302e 480031f0311cf129910a6892dea11d2a14df9831bb2543ad389ec7f9e576b807 da121d67c6a41971778b3e2ab98798da6a118f066d98645f4d0fc53037f2480d 12030f43685c6db30545f4a6200df03237227849b1c457d4014cbd3521f4cda8 fa68d5820ec6af7de30073157488266fe29d7b4c5ff3e192640d6a4329721486 e90ac8b507b28e6fadd7ce6ebfe3354a69af84fca396b7f0da65272d386e4813 2f4b81ae63fabddf75b0472f579153927af54a290f4631edfdac71d4be807e60 a2c6f9a5493aae206b5d972825c6b184981dac32df6a02301ca0ecc8870bebcb 926b7f21fa74d0300851bd680492f26c491ac1eb4d86bf67a0577204359530ee 9365ae199d0dde91eaf1a8c20395075c7c4a8d16892648f13339cc1573d7b537 5c7973f44e6e3598c3b982d00b9a33a1314e931bb921083d150a48238ad8b746 9eb935b17949901acbb66f721ce220f50abafe94f8e6dbdbf8cf9c950f9d87ee 953f394ed87e77cf7f23ab9f301eb2d2730d8ffa09f889ba9daa3d7cfe150155 e4bf01ab7ffa13a1e1e1591fc24a317b62d21fc00325e19f22ee210b2fb98677 66171b76a5208d7022d72b54151ddf50ca3c1903bad7a9c6d043feb506156455 e47c219c6fcf0ac16c49292fe3cafbfbc5422035f118edf5e930925dad4a1412 ee8080b2bd2075f8a48f8d8dea3f63339eadfde9c41f8d9a6f64426d5af07f4a ab7ce5fcb0b22939c7f1b8b82b7a8b59b5b613fb8c69b3161ea9c302a0e8c726 de9151242aa0af7ce2be15f40daa259344aa8abcaf51d36824bf528566e8771a 0e9f050e0f6003ecf6dae17020535b12c30a3f089073e44c3779e9a6077128a7 63037f8a861bdb167258c0a97f0903b49b901833b505369431726d6201a48aa3 256555bf84b7ac273e86a50e6c6434c9b5a35718d11559a2112c07cdac9c2cea d7d57f36790c39ccaba187a7b3e82525656355480f5400caac0ad0fc0446a2cb 3658a35a8a796febf21649391367edfaad885c7fc18039a7aa8968c84950215d 8b880ae478c88f180117c093764fd287d9e4563d73fed2bc7b2534f52c45c623 0d8404dcc73279ac09e5e96ddad947c6c9eda291d864021a112d03db0fd5c2bd 89eab9682ca0a6334244e05372c64141ea4ffb2ed0c080cb565babf3cf595567 e1071c649320d66fc518d7380eeb87a8ebf85dc34121996554cfc8d868ec5a9b df7cfe5a4ebcc97e6a3803f07922193804b1d7cc79dc92616de29efc864c6c54 5287c6d8fdb9899db977a56099612d94bfcc854d92113ca56207b1bf2933f8f5 66e6888370066cc4f47a67055cffcd66a91fe900bf46519c0c69490bd4c74fe4 675d91632c2e095d5b8d5e8c9642a42a3633f2b5406ce0f1fb405b67b42ae7b5 d83da6095eea7b6a6a3fa75dd83e1d18a49f3a20365e44119809225a5dd614f7 a1ddefe40f8cd3b146403e79fcafde4c3a72e99e96e280cf7d8dd12bc7e46372 b97d2234d2ab56db7b1b8f108413d5e753912455a8357fca5fbb9c693c876a85 7c38b9636cb812ac9e7b7da175544cacc05ddac5a838609e973b4034c1c7ba9d 458924435960464b691ced637936a548cde18248cc2196080e7e9099caf8ff7e 5dfa6ad344a1de12b11584431ee4f1341f10de76ad2b366d37ee5bd7ae643dc2 036024d65682bd55f69cac7c5507fac1e31f28d9c33adc04e07bd54d840f79ae cf829ede650d5121817845d66c1e8f700937976c3cd51ff68932aad23849f9bb f4452bc330888a17491724e1ddf4f8a07b81d8c1aee7e0d839e3a8636352db32 78b236801f164e651e62622064c055c2cb30bd38ec462da0ccc76b5cd33bc350 6521c8814fa27246cd4dea007999a722d5551ae76d612bb27950da78746ff7d7 b8c5347377bfbb19adb0e91b996c5d8a24329c47686c60a5990c77481f053064 fbc5cd7e198c3d4c3855767140fcf48708f1c6322c9d41a9716c332359581cb1 323db58afbd780266dbea5d1c5cbc34d5a1c3ccb1d52551414d3847e151f2ef2 cdd5a8224454768bc0fc6cfad1ed76a757900353b2b5b2658dbb9a52787f122c f024824d18b806d1e4606acb0b3499fa5d3a2f9b0385e553388ca6f377a58795 97c46ac91a7ddf2f7e8dc71211231c0322c4c32a2781a49fb64a31f044515704 4305d21372a4bbf7fb2938e68aa2cfbd2a72625211504c86e056cf7d3c26d1f8 7f9f93fc9d8e9434b6b661a20625a7a478b546ca0db7a76313dee3e4f56723b2 5fff3c220288189d1d9e3d26465d97cf37e19a8e74a6d98837a5882344c680e6 3ffac818015036d86f048f78ed9b52731e2f0d813b9375fe65df2adbde29f119 5409e232d846854b7d7a840fab4584e8254551b267a1722c7ebca8a6f4aa719f b42419c65c5f0ce42dd548013239756667eda4e57983822d7fef03f537853447 c05039d18f09d1cae99c0e239f1e3d3064f5295a8829c968ae912ca06c8cf64f 606f3af416c1a448fc6aebd605ba197866675230f6688d7067b42c849fe2063e d8d3c1e76f04f1af438278760d6b2e020af2cd111ca593ec26b886e6b6051db3 1b07fd8abbe42359f06b3764f8be3b52ab7e0114a3526e660f2a6dbd7fea916f bba199d8d9815bdb7dafc6dceb9b57808a4451e1feef00ce93203e8e38b2b8d0 e1fd5e5b7b91a93e356f90220a2a78ef71b660812c9db51e64bd12940e5b9e95 9e3095818cfa70fcdd186bf11172f42c1f2d47b049d3b3662b31654f4f9d8f70 3506a8e8841c46659979e8568ecfb4023fd97bb001c8776bae4a5e7f245b4d7e 5c4d0b2d4610dd1d398603bde3afde9f9ee23718a1a195cb696f2ba9dd6defcc 804bcb2a58db4cec0c27876515c60da4775f1b76bf560002f3cc3920fe102ee7 b0a10e401bceb9a53d5c9c1e8b881a549c60329467012cb3594205abc4567c39 2a12587e6b432565eab82a8f51416c746342a0cef484d08c074fbd7295c59480 4e9ca2c6401614f0089630695469cdaaf58f4fc25f58f7f7a35feb149eb09d1e f76c606dcbdb9563ca6d2d24995a4237601e47558ba08c32481d778e9f3be664 d321b6fd6e215650df90248365e9b0aa7bad66ba84d06704d96aede43e9baa79 5e32af0bd9077a5794004a23f13ec43daef970062d67fabbebe7a169273639ee 5d6ed9852340341f4ac2fcc50fe400b02cca3d850e9fd849b87b1e6eb7aaab04 deb4dc2db011da1bb2001afd53824c06ac0f4a282e5cf4cb959cacb8a6362d91 d1b6342254a39b9bbfc7100582690b85e8098246bc385f68a21a92f11c1fc708 12e8b9cd0e81877b0f8048f755353b3fef5eba5626b325b18d42e8a5a932c851 b45cb436965be8fe93d7731e70e06d58cb2c73446dbdcec2a7a436a9ce2c4994 a2361c730a020a9269cf18b6acaae8b23a99597b7fea25bafa0903343ade4af5 10e4069bfdfb49a4dc97c8d0f72642fda0fb43f11fdd2fe56756df7f9ea41434 a1d9a9e104c08b0793c2be60e8c42b5a4efe4a015deb586cea7acaa55999c2c4 c2d16513abca1a848800b64feaa44004955b95ec0713f671a84f1b3c680f16a9 467deafe70c0a6e5830d89bb59c462bdb3d3ca08fa0a365e8290ff1f56d8e557 da3b60ce7fa87c1f4c4eb3bc07357faaa46b8bbd91a4c6002552b107c2d29089 1a966bd021e484eaed7a79261b90ee204118351a180118d81a5dbe214bf30595 cbd603ae3f1ac4d77576fee3c2523b3fb7db5cda8c6a591f1d06d2faecfe742f 2046a8b0fcfeb3fb70d2739a8385b8bce531255f4e5e06963beaa989ba70e2dc 2b0df69e80bf268208749f85af35743f86ea293e6018e71dfeb3a8648e2efadd 650af62d2f93e8076e919a9edb68b88938c58d06b9175382581039edb90be6b5 dfeeb935bdf1afccba1480e16daf6d8ca75ef7b4014463ad199ed0ba4e984273 53cbb68070293eca6289258c0caa812e862521a557dac2d849617b2026a5a1f5 a4f0e8e0c83034e8a153dc335c0d37590ec1b9045b6fce3049a567c0342501b3 e9b3662b48e2129d087c9bdf782b4e526ba83503c22419c60784872ff7da125c 8d1fc0202126a431261e27d21006b4af801ff4c83bd95e039aff3211f54185a5 20e9768f8a171c9b9db72b151362f4ac5ba06e27c8e179579951abedca2464b0 fdd65f10974f45bad2cd67b01deb6052bb9d25b40d964388c45e2ec41342a730 f5840397192aaed6fde38519048dcb701829d0412f45b8b3dcbc79e0e551ada9 c9e2bc93bc2227ceb940ee802c44e45ef40468423231a6cf3cc4774f818eff09 b38337f10a4f6cc953413e4db3fa8104dfc492e71a48b0ea36487cbb70f0d755 71d1d4e985466f197aaef9b3d1956de8079ee2b5d3bf2e89c6728359274e92e5 cfea0094740185c249f0c2fb1c18e01f22293ff30717fce58c74dcc1663ff261 16c85ee9d79e1c7616079aa59bcb7550a52a76500cd2620248cf45f76e4c70e1 b23637401f4737b43769c111864f347dcd7cdf6e127f9c996280e5121990c5a3 e5df142f8397586fe1794a308dcf1a9047af9a6fe2034d0a6c1fadb5ce6ae143 70b8d4674122acb632488c58c9540d240519dadf5c7295b59693d0ef29e5c7cc 140da24334176b74b797835695fd91ae17d344b682ad65de26f9bd377d072ee8 6ba9f36841c8e27ac65368414c0621f61d0e9fc11fbe55f9b1be56e67588f469 964281780120f6abcc3968940e81a31c8303811d9af70b2c4d5455c948cb6e60 36fbe5662f9b2b15a8f7c90fa7de8e67038f8acfc358549d4d1e9345b4efa083 0638271280110f61069a1c15f888480332772bcd9ff5197bb35727e47eb09a1e 9ad8f9267ea030999d89a4b196c2cc7ce93348760f66e8e2fc983b706e2d8ecf 6dca89b433f461af2f0b6121977d1d96aa97679091c87f3aeba33a83a413f029 850819b778cb07193955acafd2b21f8d8fc32eccc41305c01ef2bfbc3c8ef8ce bfabf83f358694347cb0a8279aef996cf5ab69b8b20877053f3854c8a12ea216 d06123a8f2afb8c79972bc52f3569ded6ca62f7760750fa9d3d4cb9932c22e16 9931be75bf86ca033efc9cd486ab59e90e7e7e0d37a88ed6af60fe0c4e1249ff 07b205e3f7db2a162b3f99114f0e61077c013daa3b5734543ba390bd82e03508 1bba9428bd01dc27763051be574906c01ac2312f7bd83f9878b271117036fee2 19f1d76ebf913ed59e56c136ae10dfc048587d9a7ab7bc6c37e042368205d52e c87cf1deda8221c06be01c6c6a01af6c3a6339ccfd6a083fc85d415c9fd29ff7 9f391fbe98795f1e64c4ab97b7eb30d8bc90287424089d82899c18be613b8966 b269b3a0cd652973e4b201bae4b9fa8f89e4654150ba6dd6a24b949278d173be d09b275238acb9bd168edef0bb48db530895e3229b666add4af445dac701497e f55aa29db86d9e7c757e9174acdbc721c497044d51ec207c4ea424c5cd8c87f2 2d280a0afe28cb8c31a310926661dba4089b7fa0b886eab3acd9161432d28d6d 482dc0720a36c8a4710be948ff1d7a7c680babb85a0927fad3215ff504af4473 42227b57b5c3949553fdcfab83894263ed6a5919c4377fff588d03611cdd996e 92c7ff9182b720e59e78cd62196bb8eec7227c5d24326645e99d41346c79c3e0 6235b67e27fb582d54ad33c96f1f5a75b4e29cc07333dd3b6b023d097a413eee 50be0fa3cb18c97fa39a6ede9007a3018e49ddb7d5e91a2cb1be3f3ed2dedce6 1abf1c633c2a3377e4e94a9f7bfbd0247e28114098c9ff221db23bcc30476e73 c19cb5dae56d220f017a8f1c4700f8092fd493f7def23a856298db4696ae9c54 f23b5d494041c1917d573c8382d5a33dc3e841c0a92d1240f1a4c32ead2986bb 622b0e1571be404ba2061545da2370a51f515db58beca32c1fd29ca13b37ed2a 53dd13dbf6214a59314ce83f1af98ff9372aaaf1a838ead9cead21b3b215f427 c26e66264d9079e5310b4b6c6ae4c3e7d8b36e67548e10f3ebdf6338a15cdae4 829fe55b2c8c6e729b4e4175c6a2292906aa5cdc2e6e0c1d5089a5b41023b06c 57d9d604e8ab2a506729c2c85fff8ecb92e277daa2b04bc85638194b9dbe41d9 551ad74efa287cfbea3be0653d171f23aef67d0669cedb6f4ebf1e2fb7d224b3 f5e67db9d05dad9041c143e4ba6ebcb9f25681dcd33e3cbf6681c138cc609312 da64f6d1238b65824783eb552ad61852f0a6cd8c396e116206069ccdb4d0305d 773c766a83e03a6f6fe2335491b23beecdde6bfee7741b615ca7337cef6f9ef3 4531ef0e7c3b638690adcfe839def604939872f02a837a4d460ea5a70b22f500 3cb976bb276e9bc72fad2bac755a927357bf0ac7dfb22647bec3554273c9ebe9 aea7c8ad38f7380cbf59a281b8d679ab210b36537574d8b06a92e2ffbe54ba64 714eabeb821ecb26c318ca980240068a74b2b1db32110221b7272339726ee51a bf6124bd1715c5ee1b7e586a14bdfe993e95c024b1057c948be49e18fa2f1efd 5abce23b1718242f0247af3215b1b5affd28680da159f673e92a34b6224afc30 f8c1d24ec5c0f827072ec49dc75a284897a4e4003ccc6c60f70cfd389290ec4e 79656ee2ce76cc8cf6fa1403359337dd9f07de33cbccbe809a01f7ed84a333ba e1fc830c854544fc5a8a41247e12530a223e5ace9ad3a1258887b5fc8ecde18f 6e747561a272eaeec0a5aec1daca4ec9047421c9d07e2c39a8da3a7fc5edcc86 d6bed74a44f2838cf256424d16fa01a7081f178f9bd966d0145db4647aedeacc f6c3ddfa0390fde918546172ae74a6cfe902a902628d39770583c051c813415c 3a00e5ecb90a78c3cbce5644a4712e5e70966b098bbd27febd34ea18fb87d571 49f4cfcafd76ecdaa37ba19bc6844b1c4020e9b2f29d3ebc8d2f64776ec345ad 4de2346bb134fba11d2c2bd0864180bbf409c640b470c35f64925494b7bc0ced 69a436eb7ebf34101655881ccab6fb5e1429b7c647dbfc6a645b18c0aacf5caf 5e2249b32f55e57de1d8068a8f586f08c0eb6af7b43cfb49728683b76a9c631a e0c69726d3810fe6422fd1269c9d01957ccf8ddb1c3947cded5746654275d384 15de859ce046ef831587fd58934ef9f9e3fa3ec74c954789cdabbe9e622950d0 87df358ada09b2340c7009a55785a127ef1f55f27c4f24bdd683ef61da876930 133a6f366dc9591c193c45bd536ee7f80dae5e1ede1e6250f83ef19b93b74ea1 d75b8e08bc8b992fc496ddbc30daaf3ed443c7fedf9a5402528a98e63236b927 a7e1e7b309d97355012ee02775f5142d774b3ecbb04f6d3331934d1b97202223 88190fa72e985366d456d3a56bbffa647c0c4d44a85597402e3ee8d6fa533c84 5980ec62ed2deabd1adc56aafe68379e315409000edb4a950fcded06dc8720b4 2d6624e94af9a9757f95c488b077fe624f747ffe3483303c65433ed400f21e35 d075147e41c1315c3dfb2f9158f97be5149497c5cc41c95446de1fb524fa1565 c2c3871e5b8f7776b9de3f70ad447f377558fbb2d23ca6746b1a2d979bbeb694 c967f6799dc9c3d146f3520900b675847a1f424615a37ff82222690b224b17ea 49d92c4dab05d8d6887a9063ce8be327b0930c404be4b2496383085a38a226ad 089d9001c849f193620bcc25b40ccc84771cb3c17b1b3d4668af155547978aca 7c2d26b2ad49d7161ac0e2999acf10198d8ddbeec3b1971b42206418e3cf0274 99fd16c8ee1857b08770fe82b5672390610e0b593129aeaf2ee9b03e94727b03 1d0e177d8efa07cedc1c56f7f1c80efb94a9f8c1548c20b03dfeaade974de027 9d977ae8efb3a421514175432ca07d5a15a66ff1687c0c1c399dc6ef28162eca 5e3a051f128c5fc9a8899e6a73c4224d9d115fca9a3000a0b0aff95a5e7a7fde 52ce77cc439e63dfb6f5909d339da235bca384042e095ea2ddc132f417375ba3 036d5fa15af7d49d64060e89c836ea038acb6b9404a835ffff9b6ed56373bd96 5bd3352c1d0cbef74200cd49d3e3e495482eaa2be65f42dc9f0afd50d2ec3bcf 03047c5f700b07ca2b7e36104b814670f47e2c03887c8b6db4c2a96573394f2c 846af39b96da8b8df93768d7b8844ae6937f57a1d7616878139b8b9066ac6207 dffff8f2df5b3c0c2fe84fbed2aea592f1415344c2b988c919cec53c17018b5b 3bba37dc3791c6f714d2dcb12f296cd842be52c2a3526d4bdb5526a8f60237af df07e6dcbdf5aba425f0cdfa393b0d638e454668bddc5fafe6dec37a14517596 e02a06ba03bd30309e6cbe7d8e2a549b0b614a0de69b096ea9acaef8250035ea a455a23508f3fd6f5f38132f1ff13c32cf886c748afaa869262422bc6362c157 f67d0ef576952fb44c77f37cf0c5dd0d67271c6dfb6ea56c1ae1389ac6df588f 31b0a8f9617e2d82ee4f57455bfa54c637307fd5d58419787320b71e400f2ab3 658dbb9a6a5a9153e9f18cc52dbc06c7a99e59d060fdd1ce81c127d9c2642b3c 1cf1de575366e9c9d34fd8215d4af30dbb95ae332122624be09db4044dfe7c3b 7f0e364763a96cf6ecb8ce6518375565bdae1974af0a4815e74e15e27db7080a 638c8595e7c85f4ec42f3e7646234ce89a734b77e3da40f4df68d2ca34a7c236 bf6ea4fa6016a4e116c7a9dffe15e1d851a607bdf4a79bc69950a2935b62892d 8e180a981373b00b99e816cd8df1d97daa3d61c6fe79a0061c7fccd860a36162 1b70cc25e063db944af388d0a5dd0813ee2f498767530b5752aa004ef4ab5397 eda7c76d2d249971d4ce51208845e337fa6abf98db3e028855d8acf123fe87dc e67184d1be1e29c8503c1ff126af5b5f4a9b470e9baa573c4cbeb12653f31549 74129d339f5bb4be78a0520f2a45aa3b2e7283d394b514e00cc34ea4f26727c7 cce5f362fb4fe58a3730326c01cc63b42f4b16dec193aaede56055dfbad3db7c 306fea3ceaab3c5de8bb5f10f47580b2781a6e7fd9c84a449786d8219976d269 b1d6892ad7b61e3677cd27f6ccf1a71a025a5aa0940938759de27f2399d7b10e e3ff3e87dbf737b618484f638eb073500c5e5efda98ed16d4083db14f50e72fb 04d6cda511877d69eaf7cee1d28f84b59d1e3508448bb8f296d6dd4c3eb77d3a 04980d38f6f5f8567ce9398ea5448923a3c61f27001630b5b8c2351f8e0f9045 f10391e05efa6dede673fc8bf04c8141cd0450ebf401e17b5eb7ef3a5a1534dc c23c3a380a075b34819259d57a5bc6527ea2820f7e4e4f7755c8ec4ca515b2db 1097b2428c6e97c59dd2eee829fd1cac3eead0116399e453af6f5124c9dba7a8 e7763856a4ba5a08d63ebd5772f6a8a41060b603827e90ef26ab854a04332708 bf18aae87fddeb301afb28aea40c0dcee1d96645b1a669e527ef4568df5e89ec b834b002fcfe0d3b17efd67bc6a393ccd5f96145e5a02a04b833487e4bcd8b68 b278a3e7576eb57a7e1a098debcd9bc4ac1864482f8970bf9b2c6239ca0be7e5 74166aa4ee9c6ed55a203f9e6099703c0eb7224987181db37a79850962beb8cc aee9af84ea57f371cec06b27e56def0d108921ad50bbd2d08c4327f35d9357b2 d04c52c1ca8f3cd6e692df67d30e4c29453ae9789bd6d2a48bef8054235c9bc0 4bdede15193ce071167cb1c065690237e4378c7c9d9a744d6dc9885b5e019a46 98f3945d6b7d47669349af5f5ea9c113b1d65bc4432dd6d0d6c67b460374c9df 47674c4389f1350925b92fc1e3f938d97dd51c3483f6ea43c36f655677fa3b59 4ec3cb3ff17b8f210ebd0e7ea63ee3277dec045dd6f6a2a391f5306d3e64d4c1 493b71f4f9aea09121ee0fe55b2ab72f9de90e06d5313b2f6caffe814db38c69 d86dc238e858598e9908115a04229225401a55c22937e0cadd33ae8a385c123f 414a5eb1a548610688826f879c08d3419d90b7960dfcea8a1c0f9efbdd6ba414 b6b47793a6feed6e9eef97f54490555e266728b5447e435a91c3a662fbf32b3c a78f58fab3f526e84de0375d8f042bb38223f86ed72bbadf91babe3e9705ba8e 1af1316735efdc3d33c887d949d3c558e1f636896e92575886816c9659e10655 a99af7022c05c8e9895896fa47b30acafc5f099f23133eb771ae17abc67af5b3 993f8fc5dca1999c0b209e45a7f66b45d4af3484cfb9acf65d7df9327537ba1a 0f36467410bfbefb0022b394bfb8a04c1fb712010246fe8048a52d299fe1193c e3181539fe8222e025542e969399aaa9d003e76d07a3ecd9ba82ac75903c3084 7583d2dd78092e82e6297fefa4c02940baba92c3b7025f97a6c01857e1cebcdf 942904bd16e377bb4781f204362186d42b4c5ece854e769e7b52c6eb4adafe7d 9bf52845c5e339e42e76fdf7f3f81de16750cffad98de62b3d866a5e6f73d4aa 562e2e854bebc123a990bf3aefe150e9af92448dad535d6c93f09b1951bb8885 e7c65efd454c39de12f8fb6bda8232a8fac6c0f38134034a13c43b6a04af1c98 c14c0912b477c42c37692f0d6848219982ceb5c801898be6ad97e14703261341 bb42c0b0e08bdce2591feba302f5997b78000b10a1eb3474f122905e76189dbc 414c53dd7daf5984a93efba6270def204c126fa77aa97d987f0640def28b38ae 0240fe51dd08adae26c1bdb1f40f2261688eabae51620ce87c75149afb8d6972 ebc2169645f8cade8b8fd86828d0fb3357e83d3a15ae9d8a0a752dccd7506d81 3e94e7114ee9ebf892d9d44deea5f5fb4873ce6c3dfb4c1c6036824924a532fd d5c39ba0177e52953442cd600b563f173283fba610fab6b33b3c9d56dcdee69d d8c6464d6f82f9e5f35cb2b7cd3dc19b38e1dce0bc5e4b57d32b15e843d04bec 541f54f70fb28215e76324bd731165d2aa3e21ddaa0032bce4d60d21748d9455 8988d65aaf3f0ea9f210e794546f7f067567d01f0b18aa6745f1b5efa95ee225 d33420f0203502f2b97f2f03a601f892e2cf7827e9e5fe461435a4b51d4ab308 dec73ae8b2306f9caefde18eab4fd265a5ee3da133810da797d33e5252c2505a 237a3a044a8aae2ed55b0bc553f1f259d38300a55f699c72c4df21c5519a3373 e863256bf8ec04b9f1b90d2fdb640e95effde8261aef6275c89b6869b783ce12 21c6b2a3956b46be8bca6a1bfdce47d2f2b2147e67b0161d41436c27cc29cb5e 2c82f149f41d47736f65625bfdfe7dd17b46c5313d5fec6e033334a6f97f7ceb 4f0f3c2200f693d3fa4cb7c118c8ba7574089f785c09d4182b0ee04da8a85b68 3e8f46b9b567957ef4b242f022646197a66a9eae31b991155b1755ae8b2ee4cf 42e854e85f76696b423c3d8dc96bb70114e03d404962b4a9e8270b8896f1b008 2f17bb4b7f06f396bf59cef5791894f77d14c2179ec613521752b5c7c88b1ddb 2eb6b5b970a3c88ffb9553c3ec0ec87da9174e03a0e6cddc0f6ce9960acf7223 e0d4e75e502e01a99768ca6b9db16cfa82ccf6478fa3963d3f4c2bc857fc3621 da6137dd4a6d8f40ade06d24dd24e7c23a5728f5a3d4ec37c940ed961e872bea e1c0afc3268b34bcb9d11e8670ace6b16fe2b768fce63f43326a5de48dce8919 4eb2a7059f11b9400e1ee06120b2d8948a9b798a3efe25ab4ba2d2f3665748a6 d2d2d6d33e622d176b66a49723c0a0a2eff3ca01eb207c52cbc3e00ea53d0e8d d3a70bfd58587fad2e05aec0813045492c364f4e24eee478c48f279d4637440e f8c0936e5d6fc1ace4a7395e3d9ddb75fa34df367f0a7d46791efbdbcfb5c859 c514371e95f3185f4e7422b607a27c43af4006d1ebde108886d7d959c14ded79 1b898431a15094df8103bee993728306cb7333e9f81e3505c621be46783ac01d 77461c93367b0ca01608eb5df9d8ff63747e0c1235c420f43a0f8c4e98dbd2ad 71a23acf1ed2fffaeb36c940f0b076c029c4bf870aa12b59fd01bd8cbea6729f 7c9431a921c2b540e179928db145402b973c18d1c4cc879e67213252d5c81595 2f2b9962c7e5733d46c6004e8f712208b71524e30459e3a79366f5c102f263a6 df86d0c57b159ca098d6a52487a7b07695ed21674fb5336647f4cb8d8b3345c2 b227a9ee8b48bcd72742670259a2e2c8081f6336acba7e94b116d5122552b189 ac03ca299a30eb5faae5bddc6101042ea86d5ae13e32434ed5f8658bc6d997f7 66fd4d685da419f25af79a931dfd2c2d1f7cad931a33e27be68ac7d9578de333 2f580822278de6f146b916d0bccd1e0595af6a45b75a6212ad1c06433f9af4eb 693ab7892fd01e8e8f6948bb8ec756fc799433cdbb1ad33ccd0f39fea41df168 1c49581f666934389792a074b5d79f46735f2ac5d7e5468a389c8c7d02147f0d 5b5211ff830e483b8208fe21f2acf41a61fdc27d32e813f1dc4bc24925862c3f 02b7883abaab3e596a237eaf17a027b6279ed623891edd8e4a1553e6736f8d96 a62382a1c0469f2f796622ea423b9e07b7ed6f8a8223dc7859fea6b6aa412941 90de54dabe689af5998f8c04a6b0f6983ee904d8cb3468072b617fcdbaed51d0 85e4fe4be7c43c7903afa74b85cafc3395c9ae5e5e7abdc8d8a01669bf727484 00ed30b15a66321d3ade97e6b962072d93c944dee5444b418400d871283fe74f 1c69c58e3c413e449267622e51e67f2958b7ce2c423793de7650a3818f991c52 34819b7b2252e95292f6b665f65f4e31bb2b8c03b6249774e2680042a7877c6f a4c16bdaade7972f4a68572d2a2a1964a7d1e44f3d49a3b4d3c48d9a09a76ee9 ae999c6b5b79757ce7e97510326142aed50cdfa1b1dd11455751c2804a69b310 2576219dd5a62e5ffe65ac222009e2b0291b09354d324da4a8dc074af33fefda 1508eba7bcbc2e8e44cbb9cf182cf487c2d88d61bf48105f2b6ea96b7ad95922 0ab5e2bed161954d4a17dddb788ae03791e02d65b33e6189be2c84bd0b25d6fa 867cd4403937bf500d32affe248e7d560b7d305312d472d2838f8ab663120b0a aace166231709cdf42ae5f8f6c3dc7b4a97430a5e604f9d516ea33e574be98a9 fd9c09cf60bd945adee11ebdd3bd1a2c90b6f5dd267b8eb731b0aa084e9fd619 225fd3e667de0313b08bdf017596a15e1646e614716d94f49da6a6f8762d79f2 dd753c137880698cdbbac57a10a45a6b6a2ddd5bb8984c34d5f989af7710d6bb 597764e99d4d51003efbc50eaaa19351f6905cbeba7b53ceb18515c63716fd2e da00431d40e6844096054f4cbf7c60c22162f326c3ed5750646056301a33d263 034aee21d9a862213cc271b50d30e2c74ac22cca9e9ad25f92c1777b298f0cda 4a0825482574a25549b462b44485127d8bcaf48c08292543ef3831e0f1fd5569 0b67b36decb9bc41c328147f55ba3b5bd5ba982c89a3ae926c5af737d9b1f237 94ce6542fa3f827b6c5e19c916bab4743c8c4fc640636152a4bd1fe37e77b7f0 a65e4890e62ccfd12fa4bdcd876c6498a11bfad03fd172c66159fcd6dbf99a41 4f85e2052fa2ba3464c98dd006045b065385b5445f5c43bf6dbe42e400296602 5382aebbea423d9d66cc4a6f754e7e473f9d50eab3e7325bd99d36f2135fde6a 31fd31a8714834a8e276ed5cef4ce6ff19e763f9c8cf279a575d0fc10987bd64 70c51a36e5495d7d09deee0501f724c26f31eb80e904f283818097f8a2aab3f8 44e0377039918b4aca0379c2902b83a5798104832f694d58c367c2fd707bda3b 645d2315de8c06c349da6881c1327e2b84a0ae90dd1307de1bd66d5c8a38a98a 4effce6378af19cba73436c7b277309ebfd88ee28cbb6bd372050b2cdaede0ef 017bfac6742ca2770a2631d1edd2a1eb3aa75dfca278bad790ee8ecb7db629ed 7c992f6ed5afef9de8cba5eb2b4b9e573b28fb58d134eef2a7b88f5be4cd6d3e 577587f8ca2b73ce44cce68f1c235bcb224eb59c1e61e5e7746d35deee11f891 186aa86a99806199ee8c2c5bf517b17fdecafcc4fe40114fbc5de7b7ed088055 4052df18dc90928c580b8fbdbbdec1fec4a38332405535cc3045fa280adee50c 8b56f195142d25b0ab202d2ab781ca92efd3c2238e7e6b73d0fb706cdd931590 865fa81e0f5b368c65f53d0f865ea386aee57a649431351fb480e3a531a4da45 ac60fbd7f2e5dc7053341e430296d65105e3bdbd9cb99d3387f78409c7ad5aee faf49bdf5351d9d01941f14d16ebcf8633c682d123771cd369145b25eb020a8c 56c70c43d7e6700377992367ccdb65ef22453c53b2fe07a0d025cf953809ced8 fc3230703c2da46389610d59586871679439ae58c0848a1ae5abf77e308b0771 1ea6a74269df22de41de6ac8f7cc5a948a0a62d1c9303129daaac7b72fac4898 c5c6b9a870dbe75610492f5f3121516efe9b3a1ae1e94c0e29a2a52256772fb6 7993eb152c40f65d1249755f335225abce8be0de8d033aa432ba13ae229039a2 169649d5ba4b28ee11ddfc08f91f86591911ba88611629dcdd5a081ea1bde8af 301f3ad0063f28c33c2c65c938283e876be91207e249aa3927576dcf539de2cb a8a2f14aec67560d754470e5358afc36cae477d9f9ea61b47b64d26c92437c80 ecd706c328c0d918bf2534664c6a074a0b43aad427cefc990b0bd7c77ebcf643 007d9c930f4aa7cc36dc681e70bca4e727fdefe6492f675d578816ba6092794d e8f8e0610867c0b9ec6780bf3d29fbbfe7699efbf7dfb0102a4c96a1117530c1 9064df685f4f1288279c1948e74e563bad0cef02499af1daa0cb95ea249db6ba f600a0aa0a53f0ec68bad5ad9b0d7471c4486f88ae2be029baeb32d72b2d613a f9dcdd874748ae30d08ccaf7176271f1bc14456e9554f37da5b85541178f9f92 89a89669cb4921d12772d07ab33174c84f574fc95c276f69d73cedab4077b26f 56911fc435e6d2514417dd8c4215cbfa620338044a4bcae0d45735331a9fc7f8 b80aa3ee14ac267ef0fc2d8a7506a377ab51876bd3ec78eb552c327f9c9c3a8d 1dc8a1b01428e99021aa3b9f01f57c4f60c192415af53fd497f406ed514598bb 175c7b21928a2c5fd265a3432f08dd80964dfe9b42565a3a38b9fe4b52fb31ba 9d5992c99c0d7a658aed561e9c50657dec64d416fb2f6326cd26181cd8b45ae1 a8886fe986a375c9798b94f11859754b2f420791f8350c1b810b741707409158 d4f83ce3cc0a74f4535ad6b68603d39e34c29f40a0e73553844cff55f0e336da 9f90f2353e626703f3a3af41ed6af2e513d2166779b4a955137664993fa25513 db29539ba31d966c2d2163a0ed3782990a47394f3fbbcde6775c1ec76b4daf49 a7e4726eb6dac796b089b14ec4a83b30fee477b7fb3aeb9a8f31defddd61a0ff f25967ad80c2851e55dc5c26c84514402225c409bcb0f0dc4738b1e3f7f2524e a2c5c4efb184f880670e9a65c90ff6b0d2594f33d43fe4fcef58ed7cedd73cf2 c410276a4d9d5f06ba155017d32e70ae2f93b552d0c0b8e0d8ab112d741b5413 3f91470ec3c28e4731d15b123a44ef63538c9fe837300562047d7b8585b4e006 93741737d1c5e8d6cef0ab12b65cdcc5bb5c766d9a6590c60aee88556d20b071 b2c9f6506518f13a9461a85ded9524440d0fbdce913030eaf79436cda3efeb67 fef77a259aecf445828938fce264788a928915351c643a092ace3857005fb645 01cc778764169a13013a4b99dd695618af53bc8c26eff31c724f301726756cd2 415f4f17b90755ec1d74512126a0f9d01da1962213cda30a59068586ce26d92b 1814130b4ff77a334d1d48d86b9542dac0c945141ed69b5ec940dcd5d9fa3d89 2fa4043fffadcbd1a0b51b4c704dcebda6f9aa43463c6707cba64db4e2949400 86062201b4b4a8fe9b0f300b4275ad0c4c92e26892b4077dedf2c6604383400c e1f8f4d63365a7217c1cf8349aad15faf7f21d09ebb3df67cfbbe251ba3121e6 98923e631233188fcfb16c121c5c23f8bdb4b0e5ad4d2389874413a00933dca8 b87b9db5c52f8c37509be0f56b50256c3c9182975c8e13c7b5da8e818ac6cad0 327d365610f1244ab3f7ebb2e32a0212f00748565aeea0be81c9a7fe11796f07 bef253c724269a4783a8d34ec3545d80dd8fdc466aada30ae86e6a1aea3288b2 dab999bdac8c6bb52ff41f4ef24bd2fdf4c4435e466ba6218a6b8e4597bac9c0 3817481adeb21a047cf34eb5ccf3fc45698034129ac197928c86d8c975f0e868 32df44d0e52f6e56ffc1b3066817f5fdbce03a8e449027aa122e2ac2a28748b3 e5d5114f01b4faca0ea7364fb93af7584f01016c2b6bb1278f9c8d8edfae9939 5c1d9c0048be9a38b283b22e0737cdb51d548c0860e0381d74cc932b279ab6d6 2e44448c83f49e670c927dcd73a81f51edb4698dd3d7e4554d5b9e411a0421b0 db1fa75bf94bf77ba0489dc9126bb21a975f6aa1aaeefea082186cac478d6267 e373ce65dee5add48dae4708a34e1fe4a01bf96a99374edee8f016c600bc3bee 6951699f0be054297270b8bbf0559cfe02bda0ad4a2a4dd0fda595c1336a664c 04bd5e64675b6495513fb8ab261a740792e95cb18d6d7994efd85b95c0c1aad4 0b61a84934958fc90d77435a5e7d542d08b8c7f9a7328f6bdcdd204a595fc5dd f3d4056f24aef7ae04c5ada0df13978758f1c31ee153164229fc748e725c87f2 f941077331ad83db1b81fc2c4423b15cb4638b1fefb8207e01c6643560ca9f51 aac52f6b1890a8877d8f19512d20f6765aa120f2b1d1811b87dfa928a6689664 61e5fa2aa74be5a154b6630cfae5d882c4d8a692acece141dd63dbfb471d746f 2c7d930b48e814f90b33d10fb9d58ed82a27d8fadb9d5d96436665974048c3af a992345fc5051ed83fff1b933f4aec562038fd62819d675e76c12cca1ee80995 44965e9d63b3a8d91042d071a2c41ccf9464b3f6a373d56fb166015be39553fe 7f6ea7b5642e5669f5a4480424f7a4fed8966f3ad5be261cca182b5f9a92793a f1f3d4da5709acb4b8771f8a6c467918fe9ffbdbef1a974c57fb948ab3da6e6e 3f4b58915f58b0ccddd27ffe171ee22fcd3615edc81af5fa5fe712040a8eba47 191e5a5566e5bab7be507f14ead70352bed34a443f48bc6919d3ecf5246ec5db 649bf01ff3c8fa8b29b415d91f28ff5190c5a37c11dfd4328d3d08921156101f f3615ad513f3b2356386c42fa07f0fd822104dd8f5a63c606684cb8f2d8a6bfe fc1997c2d1db6747a00a489c198b46f93582aa3e09b403ea2789e482e481d175 84953876214c32165be6ee197952becd780c414acbfacaa1a5712da00f7aba8e 62b1122ffe6853ae103e84818855c70c15782a6342d2602e715d553d9bbfc9c3 c5b8e0661ec0f4498530c965f33766e8be174412140fcd4b10ae787191c4cb7d c8dd3c9bc83b262c3467838b22dcd15be7fd2d9d3794c624e756bb2aaebfebb8 12923110957100dfa87c5af2eb8ea0cb342f3676f9d31251db19137448845b19 f349735c77b2b5e064b959abaeb2ff2f18ad6a2cab196f55ed610f3082885f20 96d0f093fe8959c3911b1e7f5753f7bb3582d78d936aea1b4b7bac78441ea8b3 dfe3c86fc5f394e60939430f2f59b8933958b2be27821d482b4da5cc5c9f3aa8 c2984e678a6ee78d032bbe5235290ba830a4be76b5a7ca1bb6721d62d59bd19b e63f5ed78f63e7780fd96521b150d542a9f00fdfe5ab596d59a3f988bd567334 01b48dffdaf4472db5ee161dd136457363b6879521e1ee84a05fe537719d6ca4 1432435eadd618487911e60bf38c549d02a0b1e5826238b5f9f617dae99d062f 2e5659faa8fac0a72749bc61fa266c06d9404ce6060780f553f35cae4dfc59aa 6afd3e3d495610b0a080 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont TeXDict begin 40258431 52099146 1000 600 600 (/a/suncore0/export/home/0073/sy/beebe/tex/bibclean/bibclean-2-14/doc/bibclean.dvi) @start /Fa 139[30 4[38 12[43 38 11[58 55 12[60 71[{}7 74.719795 /CMSL9 rf /Fb 148[40 107[{}1 74.719795 /CMMI9 rf /Fc 141[45 8[23 3[42 1[44 43 9[61 1[61 61 59 46 2[55 63 61 74 51 2[30 1[64 2[62 59 1[61 14[41 2[41 1[28 45[{}23 74.719795 /CMCSC10 rf /Fd 140[31 3[39 2[20 6[35 3[39 97[{}5 74.719795 /CMTI9 rf /Fe 152[38 38 96[38 5[{}3 74.719795 /CMSY9 rf /Ff 132[38 34 41 41 55 41 43 30 30 30 41 43 38 43 64 21 41 23 21 43 38 23 34 43 34 43 38 8[58 79 58 58 55 43 57 60 52 60 58 70 48 60 39 28 58 60 50 52 59 55 54 58 1[36 4[21 38 38 38 38 38 38 38 38 38 38 38 21 26 21 60 1[30 30 26[43 43 45 11[{}73 74.719795 /CMR9 rf /Fg 134[39 39 39 39 39 39 39 39 1[39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 1[39 2[39 2[39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 1[39 39 39 39 39 39 39 39 39 39 39 4[39 6[39 39 39 39 39 39 39 2[39 39 39 2[39 39 39 39 34[{}67 74.719795 /CMTT9 rf /Fh 190[50 65[{}1 58.115402 /CMTI7 rf /Fi 171[48 4[55 55 66 6[52 52 3[55 65[{}7 83.022003 /LOGO10 rf /Fj 148[43 107[{}1 83.022003 /CMMI10 rf /Fk 152[42 42 86[42 15[{}3 83.022003 /CMSY10 rf /Fl 131[85 1[34 40 39 55 38 45 28 34 35 38 42 42 47 68 21 38 25 25 42 38 25 38 42 38 38 42 7[62 62 83 1[62 59 47 61 1[56 64 62 74 52 64 1[32 1[64 1[56 63 59 58 62 6[25 42 42 2[42 1[42 1[42 1[42 25 30 25 64 3[25 64 1[64 23[47 12[{}62 83.022003 /CMTI10 rf /Fm 139[32 4[42 12[46 42 11[62 60 12[65 71[{}7 83.022003 /CMSL10 rf /Fn 190[49 65[{}1 58.115402 /CMR7 rf /Fo 129[44 44 44 44 44 44 44 44 44 44 44 44 44 1[44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 1[44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 32[{}93 83.022003 /CMTT10 rf /Fp 141[50 8[25 3[46 1[49 48 9[68 1[68 68 65 51 2[62 70 68 82 57 2[34 1[71 2[69 65 1[68 14[46 2[46 1[31 45[{}23 83.022003 /CMCSC10 rf /Fq 133[42 50 50 69 50 53 37 38 39 1[53 48 53 80 27 50 29 27 53 48 29 44 53 42 53 46 10[72 73 66 53 72 1[65 72 75 91 57 75 1[36 75 75 60 63 73 69 68 72 7[48 48 48 48 48 48 48 48 48 48 2[32 27 31[53 12[{}58 83.022003 /CMBX10 rf /Fr 131[83 42 37 44 44 60 44 46 32 33 33 44 46 42 46 69 23 44 25 23 46 42 25 37 46 37 46 42 23 2[23 42 23 51 62 62 85 62 62 60 46 61 65 57 65 62 76 52 65 43 30 62 65 54 57 63 60 59 62 1[39 3[23 23 42 42 42 42 42 42 42 42 42 42 42 23 28 23 65 1[32 32 23 65 69 42 1[42 19[69 46 46 48 11[{}87 83.022003 /CMR10 rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%EndSetup %%Page: 395 1 395 0 bop 0 -149 a Fr(TUGb)r(oat,)28 b(V)-7 b(olume)28 b(14)e(\(1993\),)h(No.)g(4)2471 b(395)p 2017 17 1868 5 v 2017 124 a Fq(Bibliograph)m(y)32 b(Prett)m(yprin)m(ting)h(and)f (Syn)m(tax)2017 224 y(Chec)m(king)2183 357 y Fr(Nelson)c(H.)g(F.)g (Beeb)r(e)2017 523 y Fq(Con)m(ten)m(ts)2017 705 y(1)77 b(In)m(tro)s(duction)1074 b(395)2017 888 y(2)77 b Fr(B)l Fp(i)n(b)-7 b Fr(T)2307 913 y(E)2353 888 y(X)32 b Fq(needs)f(impro)m(v) m(emen)m(t)486 b(396)2017 1071 y(3)77 b(Run-time)30 b(options)868 b(397)2017 1253 y(4)77 b(Prett)m(yprin)m(ting)997 b(399)2017 1436 y(5)77 b(P)m(attern)33 b(matc)m(hing)f(and)h(initialization)2142 1535 y(\014les)1438 b(400)2017 1718 y(6)77 b(Lexical)32 b(analysis)950 b(403)2017 1901 y(7)77 b(P)m(ortabilit)m(y)1150 b(404)2017 2083 y(8)77 b Fp(Scribe)32 b Fq(bibliograph)m(y)g(format)467 b(405)2017 2266 y(9)77 b(Recommendations)30 b(for)i Fr(B)l Fp(i)n(b)-7 b Fr(T)3250 2291 y(E)3296 2266 y(X)32 b Fq(design)89 b(405)2017 2449 y(10)29 b(A)j(lexical)f(grammar)h(for)h Fr(B)l Fp(i)n(b)-7 b Fr(T)3264 2474 y(E)3310 2449 y(X)370 b Fq(407)2017 2631 y(11)29 b(A)j(parsing)g(grammar)g(for)g Fr(B)l Fp(i)n(b)-7 b Fr(T)3305 2656 y(E)3351 2631 y(X)329 b Fq(410)2017 2814 y(12)29 b(Soft)m(w)m(are)k(a)m(v)-5 b(ailabilit)m(y)756 b(414)2142 2997 y(References)1151 b(414)2142 3179 y(Index)1364 b(415)2017 3345 y(List)32 b(of)g(T)-8 b(ables)2017 3478 y Fr(1)83 b(Sample)28 b Fo(bibclean)c Fr(initialization)j(\014le.)339 b(401)2017 3578 y(2)83 b(Escap)r(e)27 b(sequences)f(in)i(quoted)g(strings.)325 b(401)2017 3677 y(3)83 b(Initialization)27 b(\014le)h(pattern)f(c)n (haracters.)306 b(402)2017 3843 y Fq(1)96 b(In)m(tro)s(duction)2017 3976 y Fr(B)l Fp(i)n(b)-7 b Fr(T)2182 4001 y(E)2229 3976 y(X)38 b([18)o(,)k(App)r(endix)d(B])f(is)h(a)f(con)n(v)n(enien)n(t)f (to)r(ol)h(for)2017 4076 y(solving)50 b(the)i(v)n(exing)e(issue)h(of)g (bibliograph)n(y)e(format-)2017 4176 y(ting.)61 b(The)36 b(user)f(iden)n(ti\014es)h(\014elds)f(of)h(bibliograph)n(y)e(en-)2017 4275 y(tries)c(via)f(\014eld/v)-5 b(alue)30 b(pairs)f(and)h(pro)n (vides)e(a)i(unique)g(ci-)2017 4375 y(tation)j(k)n(ey)f(and)g(a)g(do)r (cumen)n(t)h(t)n(yp)r(e)g(for)f(eac)n(h)g(en)n(try)-7 b(.)51 b(A)2017 4474 y(simple)35 b(string)f(substitution)h(facilit)n(y) f(mak)n(es)f(it)i(easy)f(to)2017 4574 y(reuse)29 b(frequen)n(tly-o)r (ccurring)f(strings.)41 b(A)30 b(t)n(ypical)f(exam-)2017 4674 y(ple)f(lo)r(oks)f(lik)n(e)g(this:)2017 4798 y Fo(@String{pub-AW) 38 b(=)2497 4898 y("Ad{\\-d}i{\\-s}on)o(-W)o(es{)o(\\-)o(l}e)o(y")o(}) 2017 5097 y(@Book{Lamport:LDP)o(85,)2105 5197 y(author)j(=)174 b("Leslie)40 b(Lamport",)2105 5296 y(title)h(=)218 b("{\\LaTeX}---A)38 b(Document)2628 5396 y(Preparation)h(System---User's)p eop %%Page: 396 2 396 1 bop 0 -149 a Fr(396)2470 b(TUGb)r(oat,)28 b(V)-7 b(olume)27 b(14)g(\(1993\),)f(No.)i(4)610 100 y Fo(Guide)42 b(and)g(Reference)e(Manual",)87 199 y(publisher)g(=)j(pub-AW,)87 299 y(year)f(=)261 b("1985",)87 399 y(ISBN)42 b(=)261 b("0-201-15790-X",)0 498 y(})166 614 y Fr(The)49 b(T)404 632 y(E)450 614 y(X)g(\014le)f(con)n(tains)g(citations)g(of)h(the)f (form)0 714 y Fo(\\cite{Lamport:LD)o(P85)o(})p Fr(,)37 b(together)j(with)h(a)f Fo(\\bibli-)0 814 y(ographystyle)34 b Fr(command)k(to)h(c)n(ho)r(ose)e(a)i(citation)f(and)0 913 y(bibliograph)n(y)25 b(st)n(yle,)h(and)h(a)f Fo(\\bibliography)21 b Fr(command)0 1013 y(to)33 b(sp)r(ecify)g(whic)n(h)f(B)l Fp(i)n(b)-7 b Fr(T)794 1038 y(E)841 1013 y(X)33 b(\014les)f(are)g(to)h (b)r(e)g(used.)52 b(T)1759 1031 y(E)1806 1013 y(X)0 1112 y(records)26 b(this)i(information)f(in)h(an)f(auxiliary)f(\014le.)166 1212 y(A)g(subsequen)n(t)f(B)l Fp(i)n(b)-7 b Fr(T)842 1237 y(E)888 1212 y(X)26 b(job)f(step)h(reads)e(this)i(auxil-)0 1312 y(iary)c(\014le,)i(extracts)f(the)g(requested)g(bibliographic)f (en)n(tries)0 1411 y(from)j(the)h(sp)r(eci\014ed)g(B)l Fp(i)n(b)-7 b Fr(T)833 1436 y(E)879 1411 y(X)26 b(\014les,)f(and)h (outputs)f(the)h(en-)0 1511 y(tries)h(in)n(to)g(a)g(bibliograph)n(y)f (\014le)h(formatted)h(according)d(to)0 1611 y(the)c(sp)r(eci\014ed)f (st)n(yle.)34 b(Sev)n(eral)19 b(dozen)h(suc)n(h)g(st)n(yles)g(are)f (cur-)0 1710 y(ren)n(tly)32 b(a)n(v)-5 b(ailable)32 b(to)g(help)h(cop)r (e)g(with)g(the)g(bizarre)e(v)-5 b(ari-)0 1810 y(ations)28 b(in)h(bibliograph)n(y)e(formats)h(that)h(publishers)f(ha)n(v)n(e)0 1910 y(in)n(v)n(en)n(ted.)166 2009 y(In)c(a)f(second)g(T)641 2027 y(E)688 2009 y(X)h(step,)g(the)g Fo(\\cite)e Fr(commands)h(are)0 2109 y(not)35 b(correctly)e(expandable)g(un)n(til)i(the)g Fo(\\bibliography)0 2208 y Fr(command)23 b(is)g(pro)r(cessed)f(and)g (the)i(bibliograph)n(y)d(\014le)i(out-)0 2308 y(put)29 b(b)n(y)e(B)l Fp(i)n(b)-7 b Fr(T)433 2333 y(E)480 2308 y(X)28 b(is)g(read.)37 b(Ho)n(w)n(ev)n(er,)26 b(at)i(that)g(p)r(oin)n (t,)h(the)0 2408 y(desired)34 b(form)h(of)g(the)g(citations)g(is)f (\014nally)h(kno)n(wn,)h(and)0 2507 y(at)g(the)h(end)f(of)h(the)f(job,) j(an)d(up)r(dated)h(auxiliary)e(\014le)h(is)0 2607 y(written.)166 2707 y(A)20 b(third)h(T)495 2724 y(E)541 2707 y(X)f(step)h(\014nally)e (has)h(the)g(necessary)f(infor-)0 2806 y(mation)29 b(from)g(the)g (auxiliary)f(\014le)h(and)g(the)h(bibliograph)n(y)0 2906 y(\014le)37 b(to)g(correctly)f(t)n(yp)r(eset)h(the)h Fo(\\cite)d Fr(commands)h(and)0 3005 y(the)28 b(bibliograph)n(y)e(in)i (the)g(sp)r(eci\014ed)g(st)n(yle.)166 3105 y(With)h(the)f(GNU)h(Emacs)d (text)j(editor)e([7,)h(27)o(],)g(p)r(o)n(w-)0 3205 y(erful)21 b(B)l Fp(i)n(b)-7 b Fr(T)350 3230 y(E)396 3205 y(X)21 b(editing)g(supp)r(ort)g(mak)n(es)f(it)h(simple)g(to)g(gen-)0 3304 y(erate)30 b(bibliograph)n(y)g(en)n(try)h(descriptions)f(via)h (templates)0 3404 y(that)d(can)f(b)r(e)h(inserted)g(with)g(a)f(couple)g (of)h(k)n(eystrok)n(es,)d(or)0 3504 y(on)d(w)n(orkstations,)f(selected) i(from)f(a)f(p)r(op-up)i(men)n(u.)35 b(This)0 3603 y(editor)23 b(is)h(freely)f(a)n(v)-5 b(ailable)23 b(on)g Fp(UNIX)p Fr(,)f Fp(V)-10 b(AX)23 b(VMS)p Fr(,)g(and)0 3703 y(the)41 b(larger)d(mem)n(b)r(ers)i(of)h(the)f(IBM)h(PC)f(family)g(under)0 3802 y Fp(PC-DOS)p Fr(.)166 3902 y(The)24 b(ma)5 b(jor)22 b(b)r(ene\014ts)j(of)f(using)f(B)l Fp(i)n(b)-7 b Fr(T)1344 3927 y(E)1390 3902 y(X)24 b(are)f(the)h(p)r(o-)0 4002 y(ten)n(tial)38 b(for)f(data)h(reuse,)i(the)e(separation)f(of)h(form)f (and)0 4101 y(con)n(ten)n(t)d(\(lik)n(e)g(the)h(descriptiv)n(e)f (markup)g(of)g(L)1508 4086 y Fn(A)1545 4101 y Fr(T)1591 4119 y(E)1637 4101 y(X)h(and)0 4201 y Fp(SGML)p Fr([6)o(,)k(31)o(]\),)k (and)d(the)g(man)n(y)f(st)n(ylistic)g(v)-5 b(arian)n(ts)38 b(of)0 4301 y(the)27 b(t)n(yp)r(eset)f(bibliograph)n(y)-7 b(.)35 b(During)26 b(the)h(preparation)d(of)0 4400 y(this)k(article,)f (a)h(scan)f(of)h(our)f(Mathematics)g(Departmen)n(t)0 4500 y(w)n(orkstation)35 b(\014le)h(system)h(lo)r(cated)f(ab)r(out)h (14)e(000)g(T)1759 4518 y(E)1806 4500 y(X)0 4599 y(\014les,)44 b(and)c(445)f(B)l Fp(i)n(b)-7 b Fr(T)710 4624 y(E)756 4599 y(X)41 b(\014les.)76 b(The)41 b(latter)f(con)n(tained)0 4699 y(ab)r(out)27 b(870)e(000)g(lines)h(and)h(almost)f(94)g(000)f (bibliograph)n(y)0 4799 y(en)n(tries.)34 b(These)21 b(\014les)g(form)g (a)g(v)-5 b(aluable)21 b(resource)e(that)j(au-)0 4898 y(thors)k(and)h(researc)n(hers)d(can)i(use)h(to)g(trac)n(k)e(and)i (prop)r(erly)0 4998 y(cite)h(literature)f(in)h(their)f(publications.) 166 5098 y(During)i(m)n(y)h(term)f(as)g(TUG)h(Presiden)n(t,)f(I)h (initiated)0 5197 y(a)f(pro)5 b(ject)29 b(to)g(collect)h(B)l Fp(i)n(b)-7 b Fr(T)886 5222 y(E)932 5197 y(X)30 b(st)n(yles)e(and)i (bibliograph)n(y)0 5297 y(data)38 b(base)f(\014les)h(of)g(material)g (related)f(to)h(T)1461 5315 y(E)1507 5297 y(X)h(and)f(its)0 5396 y(uses,)i(and)e(electronic)g(do)r(cumen)n(t)g(pro)r(duction)g(and) g(t)n(y-)2017 100 y(p)r(ograph)n(y)33 b(in)i(general.)55 b(This)35 b(dynamic)f(collection)g(also)2017 199 y(co)n(v)n(ers)25 b(a)i(few)g(journals,)g(including)g(more)f(than)i(1000)d(en-)2017 299 y(tries)34 b(for)e Fm(TUGb)r(oat)r Fr(.)55 b(A)34 b(snapshot)f(of)g(part)g(of)g(the)h(col-)2017 399 y(lection)41 b(w)n(as)f(published)i(in)f(the)g(1991)e(TUG)j(Resource)2017 498 y(Directory)27 b([4,)g(5].)2183 598 y(One)22 b(dra)n(wbac)n(k)e(of) i(B)l Fp(i)n(b)-7 b Fr(T)2973 623 y(E)3020 598 y(X)22 b(is)g(that)g(errors)e(in)j(a)e(bib-)2017 697 y(liograph)n(y)32 b(\014le,)i(suc)n(h)f(as)g(unmatc)n(hed)g(quotation)g(marks)2017 797 y(around)40 b(a)h(v)-5 b(alue)40 b(string,)k(can)c(sometimes)g(b)r (e)i(hard)e(to)2017 897 y(lo)r(cate,)34 b(b)r(ecause)f(the)g(curren)n (t)g(v)n(ersion)e(of)i(the)h(program)2017 996 y(raises)22 b(an)g(error)f(at)i(the)g(end)g(of)f(a)h(scan)f(when)h(in)n(ternal)f (ta-)2017 1096 y(bles)33 b(o)n(v)n(er\015o)n(w)d(after)i(gobbling)g (sev)n(eral)f(thousand)h(c)n(har-)2017 1196 y(acters)24 b(of)h(input.)37 b(The)25 b(result)g(is)g(that)h(the)f(error)e(lo)r (cation)2017 1295 y(is)33 b(completely)g(b)r(ogus,)g(and)g(actually)f (lies)g(m)n(uc)n(h)h(earlier)2017 1395 y(in)28 b(the)g(\014le.)37 b(W)-7 b(e)28 b(can)f(hop)r(e)g(that)h(this)f(serious)g(de\014ciency) 2017 1494 y(will)g(b)r(e)g(remedied)f(in)g(the)h(\014nal)f(v)n(ersion)f (of)h(B)l Fp(i)n(b)-7 b Fr(T)3598 1519 y(E)3645 1494 y(X,)26 b(1.0,)2017 1594 y(whic)n(h)f(is)g(exp)r(ected)g(to)g(app)r (ear)e(when)i(the)h(L)3428 1579 y Fn(A)3464 1594 y Fr(T)3510 1612 y(E)3557 1594 y(X)f(3.0)f(de-)2017 1694 y(v)n(elopmen)n(t)j(is)h (completed.)2183 1793 y(Another)48 b(dra)n(wbac)n(k)e(is)i(that)g(suc)n (h)g(bibliograph)n(y)2017 1893 y(\014les)35 b(are)f(normally)g (prepared)g(b)n(y)g(h)n(uman)h(t)n(ypists,)i(and)2017 1993 y(consequen)n(tly)43 b(there)g(are)f(formatting)h(v)-5 b(ariations)42 b(that)2017 2092 y(reduce)35 b(readabilit)n(y)-7 b(,)36 b(and)e(inconsistencies)h(that)g(p)r(ersist)2017 2192 y(in)n(to)c(the)g(\014nal)g(t)n(yp)r(eset)g(bibliograph)n(y)-7 b(.)45 b(Some)31 b(examples)2017 2291 y(of)k(suc)n(h)g(inconsistencies) g(are)f(v)-5 b(ariations)33 b(in)j(naming)f(of)2017 2391 y(publishers)27 b(and)f(journals,)g(spacing)g(around)g(author)g(and) 2017 2491 y(editor)h(initials,)g(and)g(v)-5 b(ariations)25 b(in)j(letter)f(case)f(in)h(titles.)2017 2590 y(In)i(addition,)f(there) g(are)f(usually)g(n)n(umerous)g(t)n(yp)r(ograph-)2017 2690 y(ical)d(errors)f(of)h(omission,)g(doubling,)h(sp)r(elling,)g (transcrip-)2017 2790 y(tion,)j(translation,)f(and)g(transp)r(osition.) 2183 2889 y(In)g(the)h(fall)e(of)h(1990,)e(faced)i(with)g(a)g(gro)n (wing)d(collec-)2017 2989 y(tion)37 b(of)g(B)l Fp(i)n(b)-7 b Fr(T)2466 3014 y(E)2513 2989 y(X)37 b(\014les,)i(I)e(set)g(out)g(to)g (write)g(a)f(soft)n(w)n(are)2017 3088 y(to)r(ol)d(to)g(deal)g(with)h (these)f(problems.)52 b(This)34 b(program)d(is)2017 3188 y(called)37 b Fo(bibclean)p Fr(.)61 b(It)38 b(is)e(a)h(syn)n(tax)f(c)n (hec)n(k)n(er,)h(p)r(ortabil-)2017 3288 y(it)n(y)31 b(v)n(eri\014er,)f (and)g(prett)n(yprin)n(ter,)g(and)g(w)n(as)g(made)g(freely)2017 3387 y(a)n(v)-5 b(ailable)25 b(in)h(1991.)34 b(In)26 b(the)h(fall)e(of)h(1992,)e(after)i(consider-)2017 3487 y(able)c(exp)r(erience)g(with)g(the)h(\014rst)e(v)n(ersion,)h(I)g(em)n (bark)n(ed)f(on)2017 3587 y(a)28 b(set)g(of)g(enhancemen)n(ts)f(that)i (pro)r(duced)e(ma)5 b(jor)27 b(v)n(ersion)2017 3686 y(2.0,)f(and)g(the) g(purp)r(ose)f(of)h(this)g(pap)r(er)g(is)g(to)g(describ)r(e)f(the)2017 3786 y(new)g(v)n(ersion,)e(and)i(to)f(widely)g(adv)n(ertise)f(its)i (existence)f(to)2017 3885 y(the)k(T)2206 3903 y(E)2253 3885 y(X)g(comm)n(unit)n(y)-7 b(.)2017 4051 y Fq(2)96 b Fr(B)l Fp(i)n(b)-7 b Fr(T)2326 4076 y(E)2372 4051 y(X)32 b Fq(needs)f(impro)m(v)m(emen)m(t)2017 4184 y Fr(B)l Fp(i)n(b)-7 b Fr(T)2182 4209 y(E)2229 4184 y(X,)43 b(lik)n(e)f(T)2570 4202 y(E)2616 4184 y(X,)47 b(assumes)41 b(that)i(its)g(input)g(is)f (pre-)2017 4284 y(pared)e(correctly)-7 b(,)42 b(and)f(w)n(orks)e(b)r (est)h(when)h(that)g(is)f(the)2017 4384 y(case.)67 b(Both)37 b(programs)f(attempt)i(to)g(reco)n(v)n(er)d(from)i(er-)2017 4483 y(rors,)24 b(but)g(that)h(reco)n(v)n(ery)c(ma)n(y)j(b)r(e)g (unsuccessful,)h(and)f(er-)2017 4583 y(rors)j(ma)n(y)h(b)r(e)h (detected)g(only)g(after)f(length)n(y)g(pro)r(cessing.)2017 4682 y(In)d(neither)g(case)f(is)g(the)i(output)f(of)f(these)h(programs) e(suit-)2017 4782 y(able)29 b(for)g(input)h(to)f(them.)42 b(That)29 b(is,)h(their)f(kno)n(wledge)f(of)2017 4882 y(ho)n(w)22 b(their)h(input)h(streams)d(are)h(to)g(b)r(e)i(parsed)d(is) i(a)n(v)-5 b(ailable)2017 4981 y(only)28 b(to)g(them,)g(and)g(cannot)g (b)r(e)g(applied)g(indep)r(enden)n(tly)2017 5081 y(and)i(used)g(b)n(y)f (other)h(soft)n(w)n(are.)41 b(Both)30 b(programs)d(ha)n(v)n(e)i(a)2017 5181 y(hazily-de\014ned)22 b(input)g(syn)n(tax,)g(and)g(T)3241 5198 y(E)3287 5181 y(X's)g(is)f(extensible,)2017 5280 y(making)31 b(it)g(ev)n(en)g(harder)f(to)h(giv)n(e)f(a)h(precise)f (description)2017 5380 y(to)e(the)g(user.)p eop %%Page: 397 3 397 2 bop 0 -149 a Fr(TUGb)r(oat,)28 b(V)-7 b(olume)28 b(14)e(\(1993\),)h(No.)g(4)2471 b(397)166 100 y(The)29 b(trend)h(of)f(compiler)g(tec)n(hnology)f(dev)n(elopmen)n(t)0 199 y(of)k(the)g(last)g(t)n(w)n(o)f(decades,)h(largely)f(on)g Fp(UNIX)g Fr(systems,)0 299 y(has)e(b)r(een)g(to)g(separate)f(the)h (compilation)g(task)f(in)n(to)h(sev-)0 399 y(eral)e(steps.)166 498 y(The)k(\014rst)g(is)h(generally)d(called)i Fl(lexic)l(al)j (analysis)p Fr(,)g(or)0 598 y(lexing.)48 b(It)32 b(breaks)e(the)h (input)i(stream)d(up)i(in)n(to)f(iden)n(ti\014-)0 697 y(able)23 b(tok)n(ens)g(that)h(can)f(b)r(e)h(represen)n(ted)e(b)n(y)i (small)f(in)n(teger)0 797 y(constan)n(ts)k(and)g(constan)n(t)g (strings.)166 897 y(The)45 b(second)f(step)h(is)f(called)h Fl(p)l(arsing)p Fr(,)50 b(whic)n(h)44 b(in-)0 996 y(v)n(olv)n(es)h(the) i(v)n(eri\014cation)e(that)i(the)f(tok)n(ens)g(streaming)0 1096 y(from)28 b(the)g(lexer)f(conform)h(to)g(the)g(grammatical)e (require-)0 1196 y(men)n(ts)21 b(of)f(the)h(language,)g(that)g(is,)h (that)f(they)g(mak)n(e)f(sense.)166 1295 y(As)28 b(parsing)e(pro)r (ceeds,)g(an)i(in)n(termediate)f(represen-)0 1395 y(tation)d(is)h (prepared)e(that)i(is)f(suitable)g(for)g(the)h(third)g(step,)0 1494 y(namely)-7 b(,)27 b Fl(c)l(o)l(de)k(gener)l(ation)k Fr(or)26 b Fl(interpr)l(etation)p Fr(.)166 1594 y(This)e(division)f(in) n(to)g(subtasks)g(diminishes)h(the)g(com-)0 1694 y(plexit)n(y)e(of)f (writing)h(a)f(compiler,)h(reduces)f(its)h(memory)f(re-)0 1793 y(quiremen)n(ts,)j(and)g(imp)r(ortan)n(tly)-7 b(,)25 b(partitions)e(the)h(job)g(in)n(to)0 1893 y(t)n(w)n(o)31 b(parts:)44 b(a)31 b(language-dep)r(enden)n(t,)g(but)h Fl(ar)l(chite)l(ctur)l(e-)0 1993 y(indep)l(endent)p Fr(,)57 b(part)50 b(consisting)g(of)h(lexing)f(and)g(pars-)0 2092 y(ing,)35 b(and)f(a)f(language-indep)r(enden)n(t,)i(but)f Fl(ar)l(chite)l(ctur)l(e-)0 2192 y(dep)l(endent)p Fr(,)43 b(part)c(where)h(co)r(de)f(is)h(generated)e(or)h(in)n(ter-)0 2291 y(preted.)166 2391 y(This)30 b(mak)n(es)g(it)h(p)r(ossible)f(to)g (write)g(a)g(fron)n(t)g(end)h(for)0 2491 y(eac)n(h)40 b(language,)i(and)e(a)g(bac)n(k)f(end)i(for)f(eac)n(h)f(arc)n(hitec-)0 2590 y(ture,)33 b(and)e(b)n(y)h(com)n(bining)f(them,)i(obtain)f (compilers)f(for)0 2690 y(all)i(languages)f(and)i(all)f(arc)n (hitectures.)54 b(The)34 b(most)g(suc-)0 2790 y(cessful)40 b(example)g(of)g(this)h(approac)n(h)d(at)i(presen)n(t)g(is)g(al-)0 2889 y(most)23 b(certainly)f(the)h(F)-7 b(ree)23 b(Soft)n(w)n(are)f(F) -7 b(oundation's)22 b(GNU)0 2989 y(Pro)5 b(ject)28 b(compilers,)i(whic) n(h)f(supp)r(ort)h(all)f(common)h(com-)0 3088 y(puter)19 b(arc)n(hitectures)e(with)j(the)f(bac)n(k)f(ends,)i(and)f(C,)g(C++,)0 3188 y(and)39 b(Ob)5 b(jectiv)n(e)38 b(C)h(with)g(the)g(fron)n(t)f (ends.)71 b(Additional)0 3288 y(fron)n(t)23 b(ends)g(for)g(sev)n(eral)e (other)i(p)r(opular)f(languages)g(are)g(in)0 3387 y(preparation.)166 3487 y(When)e(a)g(lexer)f(is)h(a)n(v)-5 b(ailable)18 b(as)h(a)h(separate)e(program,)0 3587 y(its)36 b(output)h(can)f(b)r(e)g (con)n(v)n(enien)n(tly)f(used)h(b)n(y)g(other)f(pro-)0 3686 y(grams)f(for)g(tasks)h(suc)n(h)f(as)h(database)f(lo)r(okup,)i (\015oating-)0 3786 y(p)r(oin)n(t)21 b(precision)e(con)n(v)n(ersion,)h (language)f(translation,)i(lin-)0 3885 y(guistic)g(analysis,)g(p)r (ortabilit)n(y)g(v)n(eri\014cation,)g(prett)n(yprin)n(t-)0 3985 y(ing,)26 b(and)g(c)n(hec)n(king)f(of)h(grammar,)e(syn)n(tax,)h (and)h(sp)r(elling.)166 4085 y(In)39 b(resp)r(onse)f(to)h(a)f (command-line)h(request,)i Fo(bib-)0 4184 y(clean)22 b Fr(will)j(function)g(as)e(a)h(lexer)g(instead)g(of)g(as)g(a)g(prett)n (y-)0 4284 y(prin)n(ter.)36 b(An)28 b(example)f(is)h(giv)n(en)f(later)g (in)g(Section)h(6.)0 4450 y Fq(3)95 b(Run-time)31 b(options)0 4583 y Fr(On)25 b(sev)n(eral)f(op)r(erating)h(systems,)h Fo(bibclean)c Fr(is)k(run)f(b)n(y)g(a)0 4682 y(command)i(of)h(the)g (form)0 4807 y Fo(bibclean)40 b([options])g(bibfile\(s\))g(>newfile)0 4932 y Fr(One)35 b(or)f(more)h(bibliograph)n(y)e(\014les)j(can)e(b)r(e) i(sp)r(eci\014ed;)k(if)0 5031 y(none)g(are)f(giv)n(en,)j(input)f(is)f (tak)n(en)f(from)h(the)g(standard)0 5131 y(input)28 b(stream.)36 b(A)28 b(sp)r(eci\014c)g(example)f(is:)0 5255 y Fo(bibclean)40 b(-no-fix-name)f(mybib.bib)h(>mybib.new)2183 100 y Fr(Command-line)27 b(switc)n(hes)f(ma)n(y)g(b)r(e)i(abbreviated)e(to)2017 199 y(a)35 b(unique)h(leading)f(pre\014x,)i(and)e(letter)g(case)g(is)g (not)g(sig-)2017 299 y(ni\014can)n(t.)74 b(All)40 b(options)f(are)g (parsed)f(b)r(efore)i(an)n(y)f(input)2017 399 y(bibliograph)n(y)24 b(\014les)h(are)f(read,)g(no)h(matter)g(what)g(their)g(or-)2017 498 y(der)k(on)f(the)h(command)g(line.)40 b(Options)28 b(that)h(corresp)r(ond)2017 598 y(to)c(a)g Fl(yes/no)31 b Fr(setting)25 b(of)g(a)g(\015ag)f(ha)n(v)n(e)g(a)g(form)h(with)h(a)e (pre-)2017 697 y(\014x)31 b Fo(no-)f Fr(to)h(set)g(the)g(\015ag)g(to)g Fl(no)p Fr(.)47 b(F)-7 b(or)30 b(suc)n(h)h(options,)g(the)2017 797 y(last)g(setting)h(determines)f(the)g(\015ag)g(v)-5 b(alue)31 b(used.)47 b(This)32 b(is)2017 897 y(signi\014can)n(t)26 b(when)g(options)f(are)g(also)g(sp)r(eci\014ed)h(in)h(initial-)2017 996 y(ization)h(\014les)f(\(see)h(Section)f(5\).)2183 1096 y(On)34 b Fp(V)-10 b(AX)33 b(VMS)g Fr(and)h(IBM)g Fp(PC-DOS)p Fr(,)g(the)g(lead-)2017 1196 y(ing)e(h)n(yphen)f(on)g (option)g(names)g(ma)n(y)g(b)r(e)g(replaced)g(b)n(y)g(a)2017 1295 y(slash;)38 b(ho)n(w)n(ev)n(er,)c(the)h(h)n(yphen)f(option)g (pre\014x)g(is)g(alw)n(a)n(ys)2017 1395 y(recognized.)2017 1511 y Fo(-author)67 b Fr(Displa)n(y)27 b(an)g(author)f(credit)i(on)f (the)g(standard)2183 1611 y(error)35 b(unit,)40 b Fo(stderr)p Fr(.)63 b(Sometimes)36 b(an)h(executable)2183 1710 y(program)h(is)h (separated)g(from)g(its)h(do)r(cumen)n(tation)2183 1810 y(and)29 b(source)f(co)r(de;)i(this)f(option)g(pro)n(vides)e(a)i(w)n(a) n(y)f(to)2183 1910 y(reco)n(v)n(er)e(from)h(that.)2017 2009 y Fo(-error-log)40 b(filename)70 b Fr(Redirect)28 b Fo(stderr)e Fr(to)i(the)h(in-)2183 2109 y(dicated)34 b(\014le,)i(whic)n(h)e(will)h(then)f(con)n(tain)f(all)h(of)g(the)2183 2208 y(error)19 b(and)i(w)n(arning)f(messages.)32 b(This)21 b(option)g(is)g(pro-)2183 2308 y(vided)f(for)f(those)g(systems)g(that)g (ha)n(v)n(e)f(di\016cult)n(y)i(redi-)2183 2408 y(recting)27 b Fo(stderr)p Fr(.)2017 2507 y Fo(-help)42 b Fr(or)h Fo(-?)108 b Fr(Displa)n(y)33 b(a)f(help)g(message)g(on)g Fo(stderr)p Fr(,)2183 2607 y(giving)20 b(a)g(sample)g(command)g(usage,) h(and)f(option)g(de-)2183 2707 y(scriptions)27 b(similar)g(to)h(the)g (ones)e(here.)2017 2806 y Fo(-init-file)40 b(filename)117 b Fr(Pro)n(vide)32 b(an)i(explicit)g(v)-5 b(alue)2183 2906 y(pattern)34 b(initialization)g(\014le.)57 b(It)34 b(will)g(b)r(e)h(pro)r(cessed)2183 3005 y(after)h(an)n(y)g(system-wide) f(and)h(job-wide)g(initializa-)2183 3105 y(tion)h(\014les)f(found)g(on) g(the)g Fo(PATH)f Fr(\(for)h Fp(V)-10 b(AX)35 b(VMS)p Fr(,)2183 3205 y Fo(SYS$SYSTEM)p Fr(\))29 b(and)k Fo(BIBINPUTS)c Fr(searc)n(h)i(paths,)i(re-)2183 3304 y(sp)r(ectiv)n(ely)-7 b(,)36 b(and)d(ma)n(y)g(o)n(v)n(erride)f(them.)55 b(It)34 b(in)g(turn)2183 3404 y(ma)n(y)27 b(b)r(e)g(o)n(v)n(erridden)e(b)n(y)i (a)f(subsequen)n(t)h(\014le-sp)r(eci\014c)2183 3504 y(initialization)38 b(\014le.)66 b(The)38 b(initialization)f(\014le)h(name)2183 3603 y(can)26 b(b)r(e)f(c)n(hanged)g(at)g(compile)g(time,)i(or)d(at)i (run)f(time)2183 3703 y(through)35 b(a)g(setting)h(of)f(the)h(en)n (vironmen)n(t)f(v)-5 b(ariable)2183 3802 y Fo(BIBCLEANINI)p Fr(,)26 b(but)k(defaults)h(to)e Fo(.bibcleanrc)d Fr(on)2183 3902 y Fp(UNIX)p Fr(,)38 b(and)g(to)h Fo(bibclean.ini)34 b Fr(elsewhere.)69 b(F)-7 b(or)2183 4002 y(further)28 b(details,)f(see)h(Section)f(5.)2017 4101 y Fo(-max-width)40 b(nnn)106 b Fr(Normally)-7 b(,)32 b Fo(bibclean)d Fr(limits)k(out-)2183 4201 y(put)43 b(line)g(widths)f(to)h(72)e(c)n(haracters,)j(and)e(in)g (the)2183 4301 y(in)n(terests)35 b(of)g(consistency)-7 b(,)36 b(that)f(v)-5 b(alue)35 b(should)g(not)2183 4400 y(b)r(e)g(c)n(hanged.)55 b(Occasionally)-7 b(,)33 b(sp)r(ecial-purp)r (ose)g(ap-)2183 4500 y(plications)f(ma)n(y)g(require)f(di\013eren)n(t)i (maxim)n(um)f(line)2183 4599 y(widths,)e(so)f(this)g(option)g(pro)n (vides)f(that)h(capabilit)n(y)-7 b(.)2183 4699 y(The)31 b(n)n(um)n(b)r(er)f(follo)n(wing)f(the)h(option)g(name)g(can)g(b)r(e) 2183 4799 y(sp)r(eci\014ed)f(in)g(decimal,)g(o)r(ctal)f(\(starting)g (with)i(0\),)e(or)2183 4898 y(hexadecimal)f(\(starting)h(with)g(0x\).) 37 b(A)28 b(zero)e(or)h(neg-)2183 4998 y(ativ)n(e)e(v)-5 b(alue)24 b(is)h(in)n(terpreted)f(to)g(mean)h(unlimited,)h(so)2183 5098 y Fo(-max-width)40 b(0)27 b Fr(can)g(b)r(e)g(used)g(to)g(ensure)g (that)g(eac)n(h)2183 5197 y(\014eld/v)-5 b(alue)28 b(pair)f(app)r(ears) f(on)h(a)g(single)h(line.)2267 5297 y(When)36 b Fo(-no-prettyprint)30 b Fr(requests)35 b Fo(bibclean)2183 5396 y Fr(to)44 b(act)f(as)g(a)g (lexical)g(analyzer,)j(the)d(default)h(line)p eop %%Page: 398 4 398 3 bop 0 -149 a Fr(398)2470 b(TUGb)r(oat,)28 b(V)-7 b(olume)27 b(14)g(\(1993\),)f(No.)i(4)166 100 y(width)42 b(is)e(unlimited,)46 b(unless)40 b(o)n(v)n(erridden)f(b)n(y)i(this)166 199 y(option.)249 300 y(When)26 b Fo(bibclean)d Fr(is)j(prett)n(yprin)n (ting,)f(line)h(wrap-)166 400 y(ping)47 b(will)h(b)r(e)g(done)f(only)g (at)g(a)g(space.)95 b(Conse-)166 500 y(quen)n(tly)-7 b(,)42 b(an)c(extremely)h(long)f(non-blank)g(c)n(harac-)166 599 y(ter)33 b(sequence)g(ma)n(y)g(result)g(in)g(the)h(output)g (exceed-)166 699 y(ing)j(the)g(requested)f(line)h(width.)66 b(Suc)n(h)37 b(sequences)166 798 y(are)48 b(extremely)h(unlik)n(ely)f (to)h(o)r(ccur,)54 b(at)49 b(least)g(in)166 898 y(English-language)29 b(text,)34 b(since)d(ev)n(en)h(the)g(45-letter)166 998 y(gian)n(t)25 b([16)o(,)i(p.)f(451])f Fl(pneumonoultr)l(amicr)l(osc)l (opicsil-)166 1097 y(ic)l(ovolc)l(ano)l(c)l(oniosis)42 b Fr(will)c(\014t)h(in)f Fo(bibclean)p Fr('s)d(stan-)166 1197 y(dard)f(72-c)n(haracter)e(output)j(line,)i(and)d(so)g(will)h(58-) 166 1297 y(letter)28 b(W)-7 b(elsh)28 b(cit)n(y)f(names.)249 1398 y(When)40 b Fo(bibclean)c Fr(is)k(lexing,)i(line)e(wrapping)e(is) 166 1497 y(done)19 b(b)n(y)f(inserting)g(a)h(bac)n(kslash-newline)e (pair)h(when)166 1597 y(the)39 b(sp)r(eci\014ed)g(maxim)n(um)g(is)g (reac)n(hed,)h(so)e(no)h(line)166 1696 y(length)28 b(will)g(ev)n(er)e (exceed)h(the)h(maxim)n(um.)0 1799 y Fo(-[no-]check-valu)o(es)178 b Fr(With)43 b(the)f(p)r(ositiv)n(e)f(form,)166 1898 y(apply)d(heuristic)h(pattern)f(matc)n(hing)g(to)h(\014eld)g(v)-5 b(al-)166 1998 y(ues)26 b(in)g(order)e(to)i(detect)h(p)r(ossible)e (errors)f(\(e.g.)i Fo(year)166 2098 y(=)43 b("192")27 b Fr(instead)h(of)h Fo(year)42 b(=)h("1992")p Fr(\),)27 b(and)h(issue)166 2197 y(w)n(arnings)e(when)i(unexp)r(ected)g(patterns) f(are)g(found.)249 2298 y(This)35 b(c)n(hec)n(king)f(is)h(usually)f(b)r (ene\014cial,)j(but)f(if)g(it)166 2398 y(pro)r(duces)e(to)r(o)h(man)n (y)f(b)r(ogus)g(w)n(arnings)f(for)i(a)f(par-)166 2498 y(ticular)23 b(bibliograph)n(y)f(\014le,)i(y)n(ou)f(can)g(disable)g(it) h(with)166 2597 y(the)k(negativ)n(e)f(form)g(of)g(this)h(option.)37 b(Default:)g Fl(yes)p Fr(.)0 2700 y Fo(-[no-]delete-emp)o(ty-)o(va)o (lu)o(es)121 b Fr(With)35 b(the)g(p)r(ositiv)n(e)166 2799 y(form,)26 b(remo)n(v)n(e)f(all)h(\014eld/v)-5 b(alue)26 b(pairs)g(for)f(whic)n(h)i(the)166 2899 y(v)-5 b(alue)43 b(is)f(an)g(empt)n(y)h(string.)81 b(This)43 b(is)f(helpful)i(in)166 2998 y(cleaning)29 b(up)g(bibliographies)f(generated)g(from)h(text)166 3098 y(editor)j(templates.)53 b(Compare)32 b(this)h(option)g(with)g Fo(-)166 3198 y([no-]remove-OPT-)o(pre)o(fi)o(xes)j Fr(describ)r(ed)42 b(b)r(elo)n(w.)166 3297 y(Default:)c Fl(no)p Fr(.)0 3400 y Fo(-[no-]file-posit)o(ion)146 b Fr(With)39 b(the)f(p)r(ositiv)n(e)f (form,)166 3499 y(giv)n(e)29 b(detailed)h(\014le)h(p)r(osition)f (information)f(in)i(w)n(arn-)166 3599 y(ing)c(and)h(error)d(messages.) 36 b(Default:)h Fl(no)p Fr(.)0 3701 y Fo(-[no-]fix-font-c)o(han)o(ge)o (s)59 b Fr(With)24 b(the)g(p)r(ositiv)n(e)f(form,)166 3801 y(supply)43 b(an)g(additional)g(brace)f(lev)n(el)h(around)f(fon)n (t)166 3901 y(c)n(hanges)27 b(in)h(titles)g(to)g(protect)g(against)f (do)n(wncasing)166 4000 y(b)n(y)33 b(some)f(B)l Fp(i)n(b)-7 b Fr(T)665 4025 y(E)711 4000 y(X)33 b(st)n(yles.)52 b(F)-7 b(on)n(t)32 b(c)n(hanges)g(that)h(al-)166 4100 y(ready)k(ha)n(v)n(e)f (more)h(than)g(one)g(lev)n(el)g(of)h(braces)e(are)166 4200 y(not)28 b(mo)r(di\014ed.)249 4301 y(F)-7 b(or)46 b(example,)51 b(if)c(a)f(title)i(con)n(tains)d(the)i(Latin)166 4400 y(phrase)41 b Fo({\\em)h(Dictyostelium)c(Discoideum})g Fr(or)166 4500 y Fo({\\em)k({D}ictyostelium)37 b({D}iscoideum})p Fr(,)31 b(then)166 4599 y(do)n(wncasing)f(will)h(incorrectly)f(con)n(v) n(ert)g(the)i(phrase)166 4699 y(to)60 b(lo)n(w)n(er-case)e(letters.)134 b(Most)60 b(B)l Fp(i)n(b)-7 b Fr(T)1518 4724 y(E)1564 4699 y(X)61 b(users)166 4799 y(are)k(surprised)f(that)i(bracing)f(the)h (initial)g(let-)166 4898 y(ters)53 b(do)r(es)f(not)h(prev)n(en)n(t)g (the)g(do)n(wncase)f(action.)166 4998 y(The)47 b(correct)f(co)r(ding)g (is)h Fo({{\\em)41 b(Dictyostelium)166 5098 y(Discoideum}})p Fr(.)97 b(Ho)n(w)n(ev)n(er,)52 b(there)d(are)f(also)g(le-)166 5197 y(gitimate)e(cases)e(where)i(an)f(extra)g(lev)n(el)g(of)h(brac-) 166 5297 y(ing)39 b(wrongly)g(protects)f(from)i(do)n(wncasing.)71 b(Con-)166 5396 y(sequen)n(tly)-7 b(,)40 b Fo(bibclean)34 b Fr(will)j(normally)g(not)g(supply)2183 100 y(an)30 b(extra)f(lev)n(el)g(of)h(braces,)f(but)h(if)h(y)n(ou)e(ha)n(v)n(e)f(a) h(bib-)2183 199 y(liograph)n(y)h(where)g(the)i(extra)e(braces)g(are)g (routinely)2183 299 y(missing,)21 b(y)n(ou)e(can)f(use)i(this)f(option) g(to)g(supply)h(them.)2267 406 y(If)43 b(y)n(ou)g(think)h(that)g(y)n (ou)f(need)g(this)h(option,)j(it)2183 506 y(is)33 b(strongly)f (recommended)g(that)h(y)n(ou)f(apply)h Fo(bib-)2183 606 y(clean)28 b Fr(to)h(y)n(our)f(bibliograph)n(y)g(\014le)h(with)h(and)f (with-)2183 705 y(out)22 b Fo(-fix-font-chang)o(es)p Fr(,)16 b(then)22 b(compare)e(the)h(t)n(w)n(o)2183 805 y(output)28 b(\014les)f(to)g(ensure)f(that)i(extra)e(braces)f(are)i (not)2183 904 y(b)r(eing)33 b(supplied)g(in)g(titles)g(where)f(they)h (should)g(not)2183 1004 y(b)r(e)k(presen)n(t.)63 b(Y)-7 b(ou)37 b(will)g(ha)n(v)n(e)e(to)h(decide)h(whic)n(h)g(of)2183 1104 y(the)f(t)n(w)n(o)e(output)h(\014les)f(is)h(the)g(b)r(etter)g(c)n (hoice,)h(then)2183 1203 y(repair)27 b(the)h(incorrect)e(title)i (bracing)f(b)n(y)g(hand.)2267 1311 y(Since)37 b(fon)n(t)h(c)n(hanges)f (in)h(titles)g(are)f(uncommon,)2183 1410 y(except)e(for)e(cases)g(of)h (the)g(t)n(yp)r(e)h(whic)n(h)e(this)i(option)2183 1510 y(is)d(designed)g(to)f(correct,)h(it)g(should)g(do)f(more)g(go)r(o)r(d) 2183 1610 y(than)d(harm.)36 b(Default:)i Fl(no)p Fr(.)2017 1725 y Fo(-[no-]fix-initial)o(s)85 b Fr(With)31 b(the)g(p)r(ositiv)n(e) f(form,)h(in-)2183 1824 y(sert)26 b(a)f(space)h(after)f(a)h(p)r(erio)r (d)g(follo)n(wing)e(author)i(ini-)2183 1924 y(tials.)37 b(Default:)h Fl(yes)p Fr(.)2017 2039 y Fo(-[no-]fix-names)65 b Fr(With)28 b(the)h(p)r(ositiv)n(e)e(form,)g(reorder)2183 2139 y(author)22 b(and)g(editor)g(name)g(lists)h(to)f(remo)n(v)n(e)e (commas)2183 2238 y(at)f(brace)f(lev)n(el)h(zero,)h(placing)e(\014rst)h (names)f(or)h(initials)2183 2338 y(b)r(efore)28 b(last)f(names.)36 b(Default:)i Fl(yes)p Fr(.)2017 2453 y Fo(-[no-]par-breaks)166 b Fr(With)41 b(the)f(negativ)n(e)f(form,)k(a)2183 2553 y(paragraph)36 b(break)h(\(either)h(a)f(formfeed,)k(or)c(a)g(line)2183 2652 y(con)n(taining)51 b(only)g(spaces\))g(is)g(not)h(p)r(ermitted)g (in)2183 2752 y(v)-5 b(alue)22 b(strings,)f(or)g(b)r(et)n(w)n(een)g (\014eld/v)-5 b(alue)21 b(pairs.)34 b(This)2183 2852 y(ma)n(y)e(b)r(e)g(useful)g(to)g(quic)n(kly)f(trap)h(runa)n(w)n(a)n(y)d (strings)2183 2951 y(arising)38 b(from)h(mismatc)n(hed)h(delimiters.)72 b(Default:)2183 3051 y Fl(yes)p Fr(.)2017 3166 y Fo(-[no-]prettyprint) 156 b Fr(Normally)-7 b(,)41 b Fo(bibclean)35 b Fr(func-)2183 3266 y(tions)21 b(as)f(a)g(prett)n(yprin)n(ter.)33 b(Ho)n(w)n(ev)n(er,) 20 b(with)h(the)g(neg-)2183 3365 y(ativ)n(e)39 b(form)h(of)f(this)h (option,)j(it)d(acts)f(as)g(a)g(lexical)2183 3465 y(analyzer)28 b(instead,)h(pro)r(ducing)f(a)g(stream)g(of)h(lexical)2183 3564 y(tok)n(ens.)57 b(See)34 b(Section)g(6)g(for)g(further)g(details.) 56 b(De-)2183 3664 y(fault:)38 b Fl(yes)p Fr(.)2017 3779 y Fo(-[no-]print-patte)o(rns)114 b Fr(With)35 b(the)f(p)r(ositiv)n(e)g (form,)2183 3879 y(prin)n(t)23 b(the)h(v)-5 b(alue)23 b(patterns)g(read)f(from)h(initialization)2183 3978 y(\014les)33 b(as)f(they)h(are)f(added)g(to)h(in)n(ternal)f(tables.)52 b(Use)2183 4078 y(this)36 b(option)f(to)h(c)n(hec)n(k)e(newly-added)h (patterns,)i(or)2183 4178 y(to)28 b(see)f(what)h(patterns)f(are)f(b)r (eing)i(used.)2267 4285 y(When)59 b Fo(bibclean)c Fr(is)k(compiled)g (with)g(nativ)n(e)2183 4385 y(pattern-matc)n(hing)23 b(co)r(de)h(\(the)h(default\),)h(these)e(pat-)2183 4484 y(terns)i(are)f(the)h(ones)f(that)h(will)h(b)r(e)f(used)g(in)g(c)n(hec) n(king)2183 4584 y(v)-5 b(alue)34 b(strings)e(for)h(v)-5 b(alid)33 b(syn)n(tax,)h(and)f(all)g(of)g(them)2183 4684 y(are)h(sp)r(eci\014ed)g(in)h(initialization)f(\014les,)i(rather)d (than)2183 4783 y(hard-co)r(ded)h(in)n(to)g(the)h(program.)55 b(F)-7 b(or)34 b(further)h(de-)2183 4883 y(tails,)28 b(see)f(Section)h(5.)36 b(Default:)i Fl(no)p Fr(.)2017 4998 y Fo(-[no-]read-init-f)o(ile)o(s)68 b Fr(With)29 b(the)g(negativ)n(e)e(form,)2183 5098 y(suppress)48 b(loading)f(of)i (system-,)k(user-,)f(and)d(\014le-)2183 5197 y(sp)r(eci\014c)41 b(initialization)f(\014les.)75 b(Initializations)40 b(will)2183 5297 y(come)d(only)f(from)g(those)h(\014les)f(explicitly)h(giv)n(en)f (b)n(y)2183 5396 y Fo(-init-file)k(filename)24 b Fr(options.)37 b(Default:)g Fl(yes)p Fr(.)p eop %%Page: 399 5 399 4 bop 0 -149 a Fr(TUGb)r(oat,)28 b(V)-7 b(olume)28 b(14)e(\(1993\),)h(No.)g(4)2471 b(399)0 100 y Fo(-[no-]remove-OPT)o (-pr)o(ef)o(ix)o(es)121 b Fr(With)35 b(the)g(p)r(ositiv)n(e)166 199 y(form,)50 b(remo)n(v)n(e)43 b(the)j Fo(OPT)e Fr(pre\014x)h(from)g (eac)n(h)g(\014eld)166 299 y(name)32 b(where)f(the)i(corresp)r(onding)d (v)-5 b(alue)32 b(is)f(not)h(an)166 399 y(empt)n(y)f(string.)45 b(The)30 b(pre\014x)h Fo(OPT)e Fr(m)n(ust)i(b)r(e)g(en)n(tirely)166 498 y(in)d(upp)r(er-case)e(to)i(b)r(e)g(recognized.)249 606 y(This)43 b(option)g(is)h(for)e(bibliographies)g(generated)166 706 y(with)29 b(the)f(help)g(of)g(the)h(GNU)f(Emacs)f(B)l Fp(i)n(b)-7 b Fr(T)1565 731 y(E)1612 706 y(X)28 b(edit-)166 805 y(ing)18 b(supp)r(ort,)j(whic)n(h)d(generates)f(templates)i(with)g (op-)166 905 y(tional)38 b(\014elds)g(iden)n(ti\014ed)h(b)n(y)f(the)h Fo(OPT)e Fr(pre\014x.)69 b(Al-)166 1005 y(though)40 b(the)g(function)h Fo(M-x)h(bibtex-remove-OP)o(T)166 1104 y Fr(normally)20 b(b)r(ound)h(to)g(the)h(k)n(eystrok)n(es)c Fo(C-c)43 b(C-o)19 b Fr(do)r(es)166 1204 y(the)52 b(job,)58 b(users)51 b(often)g(forget,)57 b(with)52 b(the)g(result)166 1303 y(that)26 b(B)l Fp(i)n(b)-7 b Fr(T)509 1328 y(E)555 1303 y(X)26 b(do)r(es)g(not)f(recognize)f(the)i(\014eld)g(name,)166 1403 y(and)45 b(ignores)f(the)i(v)-5 b(alue)46 b(string.)89 b(Compare)45 b(this)166 1503 y(option)36 b(with)h Fo(-[no-]delete-empt) o(y-)o(va)o(lue)o(s)30 b Fr(de-)166 1602 y(scrib)r(ed)d(ab)r(o)n(v)n (e.)36 b(Default:)i Fl(no)p Fr(.)0 1719 y Fo(-[no-]scribe)170 b Fr(With)42 b(the)f(p)r(ositiv)n(e)f(form,)j(accept)166 1818 y(input)35 b(syn)n(tax)f(conforming)f(to)i(the)f Fp(Scribe)h Fr(do)r(cu-)166 1918 y(men)n(t)30 b(system.)44 b(The)30 b(output)h(will)f(b)r(e)h(con)n(v)n(erted)d(to)166 2017 y(conform)35 b(to)h(B)l Fp(i)n(b)-7 b Fr(T)770 2042 y(E)816 2017 y(X)36 b(syn)n(tax.)61 b(See)35 b(Section)h(8)g(for)166 2117 y(further)28 b(details.)36 b(Default:)i Fl(no)p Fr(.)0 2233 y Fo(-[no-]trace-file)o(-op)o(en)o(in)o(g)156 b Fr(With)40 b(the)f(p)r(ositiv)n(e)166 2333 y(form,)c(record)d(in)h (the)h(error)d(log)i(\014le)g(the)h(names)f(of)166 2433 y(all)26 b(\014les)f(whic)n(h)h Fo(bibclean)d Fr(attempts)j(to)g(op)r (en.)36 b(Use)166 2532 y(this)30 b(option)g(to)g(iden)n(tify)h(where)e (initialization)h(\014les)166 2632 y(are)d(lo)r(cated.)36 b(Default:)i Fl(no)p Fr(.)0 2748 y Fo(-[no-]warnings)141 b Fr(With)38 b(the)f(p)r(ositiv)n(e)g(form,)i(allo)n(w)166 2848 y(all)26 b(w)n(arning)e(messages.)34 b(The)26 b(negativ)n(e)f (form)g(is)h(not)166 2947 y(recommended)f(since)g(it)h(ma)n(y)e(mask)h (problems)g(that)166 3047 y(should)i(b)r(e)h(repaired.)36 b(Default:)i Fl(yes)p Fr(.)0 3163 y Fo(-version)68 b Fr(Displa)n(y)27 b(the)i(program)c(v)n(ersion)i(n)n(um)n(b)r(er)g(on) 166 3263 y Fo(stderr)p Fr(.)39 b(This)28 b(will)i(also)d(include)j(an)e (indication)h(of)166 3362 y(who)34 b(compiled)f(the)i(program,)e(the)h (host)g(name)f(on)166 3462 y(whic)n(h)24 b(it)g(w)n(as)f(compiled,)h (the)h(time)f(of)g(compilation,)166 3562 y(and)30 b(the)g(t)n(yp)r(e)g (of)f(string-v)-5 b(alue)29 b(matc)n(hing)g(co)r(de)h(se-)166 3661 y(lected,)22 b(when)f(that)f(information)g(is)g(a)n(v)-5 b(ailable)19 b(to)i(the)166 3761 y(compiler.)0 3927 y Fq(4)95 b(Prett)m(yprin)m(ting)0 4060 y Fr(A)38 b(prett)n(yprin)n(ter)f (for)h(an)n(y)f(language)g(m)n(ust)h(b)r(e)g(able)g(to)0 4159 y(deal)20 b(with)i(more)d(than)i(just)g(those)g(\014les)f(that)h (strictly)g(con-)0 4259 y(form)35 b(to)g(the)g(language)e(grammar.)58 b(F)-7 b(or)34 b(programming)0 4359 y(languages,)f(most)g(compilers)g (implemen)n(t)h(language)e(ex-)0 4458 y(tensions)c(that)g(prett)n (yprin)n(ters)f(m)n(ust)i(recognize)d(and)i(try)0 4558 y(to)40 b(deal)g(with)g(gracefully)-7 b(.)74 b Fo(bibclean)37 b Fr(recognizes)h(t)n(w)n(o)0 4658 y(suc)n(h)27 b(input)i(languages:)35 b(B)l Fp(i)n(b)-7 b Fr(T)985 4683 y(E)1031 4658 y(X)28 b(and)f Fp(Scribe)p Fr(.)166 4757 y(Ideally)-7 b(,)35 b(a)f(prett)n(yprin)n(ter)f(should)h(b)r(e)g(able)g(to)g(pro-)0 4857 y(duce)20 b(output)h(ev)n(en)f(in)g(the)h(presence)f(of)g(input)h (errors,)e(dis-)0 4956 y(pla)n(ying)29 b(it)h(in)h(suc)n(h)e(a)h(w)n(a) n(y)f(as)g(to)h(mak)n(e)f(the)i(lo)r(cation)e(of)0 5056 y(the)22 b(errors)d(more)i(eviden)n(t.)35 b Fo(bibclean)18 b Fr(pro)n(vides)i(detailed)0 5156 y(error)k(and)i(w)n(arning)f (messages)f(to)i(help)h(pinp)r(oin)n(t)f(errors.)0 5255 y(With)j(the)f Fo(-file-position)22 b Fr(command-line)27 b(option,)h(it)0 5355 y(will)f(\015ag)e(the)i(b)n(yte,)g(column,)f(and) g(line,)h(p)r(ositions)f(of)h(the)2017 100 y(start)22 b(and)h(end)g(of)f(the)h(curren)n(t)f(tok)n(en)g(in)h(b)r(oth)g(input)h (and)2017 199 y(output)29 b(\014les.)2183 299 y(Here)23 b(is)f(a)g(summary)g(of)h(the)g(actions)f(tak)n(en)g(b)n(y)g Fo(bib-)2017 399 y(clean)k Fr(on)h(its)h(input)h(stream.)2100 523 y Fk(\017)41 b Fr(Space)51 b(b)r(et)n(w)n(een)g(en)n(tries)f(is)h (discarded,)56 b(and)50 b(re-)2183 623 y(placed)28 b(b)n(y)f(a)g (single)g(blank)h(line.)2100 739 y Fk(\017)41 b Fr(Space)27 b(around)e(string)h(concatenation)g(op)r(erators)f(is)2183 839 y(standardized.)2100 955 y Fk(\017)41 b Fr(Leading)d(and)h (trailing)f(space)g(in)g(v)-5 b(alue)39 b(strings)f(is)2183 1054 y(discarded,)43 b(and)d(em)n(b)r(edded)g(m)n(ultiple)h(spaces)e (are)2183 1154 y(collapsed)27 b(to)h(a)f(single)g(space.)2100 1270 y Fk(\017)41 b Fr(String)f(lengths)g(are)f(tested)h(against)e(the) j(limit)f(in)2183 1370 y(standard)k(B)l Fp(i)n(b)-7 b Fr(T)2712 1395 y(E)2759 1370 y(X,)45 b(and)g(w)n(arnings)e(issued)h (when)2183 1469 y(the)35 b(limit)g(is)f(exceeded.)57 b(The)35 b(standard)e(limit)i(has)2183 1569 y(pro)n(v)n(en)f(to)h(b)r (e)g(to)r(o)g(small)g(in)g(practice,)h(and)f(man)n(y)2183 1669 y(sites)h(install)g(enlarged)f(v)n(ersions)f(of)i(B)l Fp(i)n(b)-7 b Fr(T)3567 1694 y(E)3613 1669 y(X.)36 b(P)n(er-)2183 1768 y(haps)28 b(B)l Fp(i)n(b)-7 b Fr(T)2543 1793 y(E)2589 1768 y(X)28 b(v)n(ersion)e(1.0)h(will)h(use)f(more)g(realistic)2183 1868 y(v)-5 b(alues,)44 b(or)d(eliminate)g(string)f(length)h(limits)g (alto-)2183 1968 y(gether.)2100 2084 y Fk(\017)g Fr(Outer)d(paren)n (theses)f(in)h(en)n(tries)f(are)h(standardized)2183 2183 y(to)28 b(braces.)2100 2300 y Fk(\017)41 b Fr(Braced)21 b(v)-5 b(alue)21 b(strings)f(are)g(standardized)h(to)g(quoted)2183 2399 y(v)-5 b(alue)28 b(strings.)2100 2516 y Fk(\017)41 b Fr(Field/v)-5 b(alue)31 b(pairs)f(are)g(output)h(on)g(separate)e (lines,)2183 2615 y(wrapping)57 b(long)g(lines)g(to)g(not)h(exceed)f(a) f(user-)2183 2715 y(de\014nable)28 b(standard)f(width)h(whenev)n(er)e (p)r(ossible.)2100 2831 y Fk(\017)41 b Fr(A)20 b(trailing)f(comma)f(is) h(supplied)h(after)f(the)h(last)f(\014eld/)2183 2931 y(v)-5 b(alue)31 b(assignmen)n(t.)44 b(This)30 b(is)h(con)n(v)n(enien)n (t)e(if)i(assign-)2183 3030 y(men)n(ts)d(are)f(later)g(reordered)e (during)i(editing.)2100 3147 y Fk(\017)41 b Fo(-fix-font-changes)57 b Fr(pro)n(vides)63 b(for)g(protecting)2183 3246 y(v)-5 b(alue)21 b(string)f(text)g(inside)h(fon)n(t)f(c)n(hanges)f(from)h(do)n (wn-)2183 3346 y(casing.)2100 3462 y Fk(\017)41 b Fr(Brace-lev)n(el)34 b(zero)h(upp)r(er-case)g(acron)n(yms)g(in)h(titles)2183 3562 y(are)27 b(braced)g(to)g(protect)g(from)h(do)n(wncasing.)2100 3678 y Fk(\017)41 b Fo(-no-par-breaks)35 b Fr(pro)n(vides)j(a)i(w)n(a)n (y)e(to)i(c)n(hec)n(k)f(for)2183 3778 y(blank)34 b(lines)g(in)h(string) e(v)-5 b(alues,)36 b(whic)n(h)e(ma)n(y)f(b)r(e)i(in-)2183 3877 y(dicativ)n(e)28 b(of)f(unclosed)g(delimiter)h(errors.)2100 3993 y Fk(\017)41 b Fr(Umlaut)46 b(accen)n(ts,)j Fo(\\"x)p Fr(,)f(inside)d(v)-5 b(alue)45 b(strings)g(at)2183 4093 y(brace-lev)n(el)34 b(zero)g(are)g(con)n(v)n(erted)f(to)i Fo({\\"x})p Fr(.)58 b(This)2183 4193 y(has)22 b(b)r(een)g(found)g(to)f (b)r(e)h(a)g(common)f(user)g(error.)33 b(B)l Fp(i)n(b)-7 b Fr(-)2183 4292 y(T)2229 4317 y(E)2276 4292 y(X)25 b(requires)f(em)n (b)r(edded)i(quotes)f(to)g(b)r(e)h(nested)g(in-)2183 4392 y(side)i(braces.)2100 4508 y Fk(\017)41 b Fr(Letter-case)e(usage)f (in)i(en)n(try)f(and)h(\014eld)f(names)h(is)2183 4608 y(standardized,)g(so)d(for)g(example,)j Fo(mastersthesis)2183 4707 y Fr(and)28 b Fo(MASTERSTHESIS)22 b Fr(b)r(ecome)28 b Fo(MastersThesis)p Fr(.)2100 4824 y Fk(\017)41 b Fr(ISBNand)35 b(ISSN)h(c)n(hec)n(ksums)e(are)g(v)-5 b(alidated.)59 b(B)l Fp(i)n(b)-7 b Fr(-)2183 4923 y(T)2229 4948 y(E)2276 4923 y(X)40 b(st)n(yle)f(\014les)h(that)g(recognize)e(\014eld)j(names)e (for)2183 5023 y(them)21 b(are)e(a)n(v)-5 b(ailable)18 b(in)j(the)f(TUG)g(bibliograph)n(y)e(col-)2183 5122 y(lection,)26 b(and)e(the)h(bibliograph)n(y)e(for)h(this)h(do)r(cumen)n(t)2183 5222 y(uses)j(them.)p eop %%Page: 400 6 400 5 bop 0 -149 a Fr(400)2470 b(TUGb)r(oat,)28 b(V)-7 b(olume)27 b(14)g(\(1993\),)f(No.)i(4)83 100 y Fk(\017)41 b Fr(Name)31 b(mo)r(di\014ers)f(lik)n(e)h(Jr,)g(Sr,)g(etc.)h(are)e (recognized)166 199 y(and)20 b(handled)f(b)n(y)h Fo(-fix-names)p Fr(,)d(and)j(names)f(are)f(put)166 299 y(in)n(to)25 b(a)g(standard)f (order,)g(so)g(that)i Fo(Bach,)41 b(P.)i(D.)g(Q.)166 399 y Fr(b)r(ecomes)27 b Fo(P.)43 b(D.)g(Q.)g(Bach)p Fr(.)83 513 y Fk(\017)e Fr(With)34 b Fo(-fix-initials)p Fr(,)28 b(uniform)33 b(spacing)f(is)g(sup-)166 613 y(plied)j(after)g (brace-lev)n(el)e(zero)h(initials)h(in)g(p)r(ersonal)166 713 y(names.)83 827 y Fk(\017)41 b Fr(With)48 b Fo(-check-values)p Fr(,)f(citation)g(k)n(ey)f(and)h(\014eld)166 927 y(v)-5 b(alues)40 b(are)f(matc)n(hed)g(against)g(patterns)h(to)g(catc)n(h)166 1027 y(irregularities)25 b(and)j(p)r(ossible)f(errors.)83 1142 y Fk(\017)41 b Fr(Dates)36 b(of)f(the)h(mon)n(th,)i(lik)n(e)d Fo("July)42 b(14")p Fr(,)36 b(are)f(con-)166 1241 y(v)n(erted)62 b(to)h(use)g(mon)n(th)h(abbreviations,)70 b Fo(jul)42 b(#)166 1341 y(")h(14")p Fr(.)83 1456 y Fk(\017)e Fr(P)n(age)36 b(n)n(um)n(b)r(er)h(ranges)f(are)g(con)n(v)n(erted)g(to)h(use)g(en-)166 1555 y(dashes,)27 b(instead)g(of)h(h)n(yphens)f(or)g(em-dashes.)83 1670 y Fk(\017)41 b Fr(With)19 b Fo(-check-values)p Fr(,)c(y)n(ear)i(n) n(um)n(b)r(ers)h(are)f(c)n(hec)n(k)n(ed)166 1770 y(against)24 b(patterns,)g(then)i(if)f(no)f(matc)n(h)h(is)f(found,)i(the)166 1869 y(y)n(ear)f(v)-5 b(alues)27 b(are)f(c)n(hec)n(k)n(ed)f(against)h (reasonable)f(lim-)166 1969 y(its.)83 2084 y Fk(\017)41 b Fr(With)69 b Fo(-trace-file-openi)o(ng)o Fr(,)k(\014le)68 b(op)r(en)h(at-)166 2183 y(tempts)31 b(are)e(logged.)44 b(This)31 b(helps)f(in)h(the)g(diagnosis)166 2283 y(of)k(problems)g (suc)n(h)g(as)g(missing)g(\014les,)i(or)d(incorrect)166 2383 y(\014le)28 b(p)r(ermissions.)83 2498 y Fk(\017)41 b Fr(On)22 b(lexing)g(or)f(parsing)g(errors,)h Fo(bibclean)d Fr(attempts)166 2597 y(to)34 b(resync)n(hronize)d(b)n(y)j(\015ushing)f (the)h(input)h(un)n(til)f(it)166 2697 y(\014nds)28 b(the)h(next)f(line) h(con)n(taining)e(an)g(initial)i Fo(@)f Fr(c)n(har-)166 2796 y(acter)j(preceded)f(b)n(y)h(nothing)h(other)e(than)i(optional)166 2896 y(white)c(space.)83 3011 y Fk(\017)41 b Fr(When)25 b(an)g Fo(@)g Fr(c)n(haracter)d(b)r(egins)j(a)g(line,)g(a)g(new)g (bibli-)166 3111 y(ograph)n(y)g(en)n(try)i(is)h(assumed)f(to)g(ha)n(v)n (e)g(started.)36 b(The)166 3210 y(curren)n(t)j(brace)f(balance)h(is)h (then)g(tested)f(to)h(mak)n(e)166 3310 y(sure)19 b(it)i(is)f(zero.)33 b(A)20 b(non-zero)f(brace)g(lev)n(el)g(is)h(strongly)166 3409 y(suggestiv)n(e)g(of)h(an)g(error,)f(so)h Fo(bibclean)c Fr(issues)k(an)g(er-)166 3509 y(ror)26 b(message,)g(and)i(zeros)e(the)i (brace)f(lev)n(el.)83 3624 y Fk(\017)41 b Fr(A)n(t)29 b(end-of-\014le,)f(the)h(brace)e(lev)n(el)h(is)g(tested.)40 b(A)29 b(non-)166 3724 y(zero)g(brace)f(lev)n(el)h(is)h(v)n(ery)e(lik)n (ely)i(an)f(error,)f(and)i(o)r(c-)166 3823 y(casions)c(an)i(error)d (message.)0 3989 y Fq(5)95 b(P)m(attern)33 b(matc)m(hing)f(and)h (initialization)d(\014les)0 4122 y Fo(bibclean)15 b Fr(can)j(b)r(e)h (compiled)g(with)g(one)f(of)h(three)f(di\013eren)n(t)0 4222 y(t)n(yp)r(es)k(of)f(pattern)h(matc)n(hing;)h(the)f(c)n(hoice)e (is)i(made)f(b)n(y)h(the)0 4321 y(installer)27 b(at)g(compile)h(time:) 83 4445 y Fk(\017)41 b Fr(The)f(original)f(v)n(ersion)f(uses)i (explicit)h(hand-co)r(ded)166 4545 y(tests)28 b(of)f(v)-5 b(alue-string)27 b(syn)n(tax.)83 4660 y Fk(\017)41 b Fr(The)65 b(second)g(v)n(ersion)f(uses)h(regular-expression)166 4759 y(pattern-matc)n(hing)20 b(host)h(library)f(routines)h(together) 166 4859 y(with)28 b(regular-expression)c(patterns)j(that)h(come)f(en-) 166 4958 y(tirely)g(from)h(initialization)f(\014les.)83 5073 y Fk(\017)41 b Fr(The)47 b(third)g(v)n(ersion)e(uses)h(sp)r(ecial) h(patterns)f(that)166 5173 y(come)27 b(en)n(tirely)g(from)g (initialization)h(\014les.)166 5297 y(The)48 b(second)f(and)g(third)h (v)n(ersions)e(are)h(the)h(ones)0 5396 y(of)36 b(most)g(in)n(terest)f (here,)j(b)r(ecause)d(they)i(allo)n(w)d(the)j(user)2017 100 y(to)42 b(con)n(trol)f(what)h(v)-5 b(alues)41 b(are)g(considered)g (acceptable.)2017 199 y(Ho)n(w)n(ev)n(er,)35 b(command-line)g(options)g (can)f(also)g(b)r(e)i(sp)r(eci-)2017 299 y(\014ed)31 b(in)g(initialization)f(\014les,)h(no)f(matter)g(whic)n(h)g(pattern-) 2017 399 y(matc)n(hing)e(c)n(hoice)e(w)n(as)h(selected.)2183 498 y(When)38 b Fo(bibclean)33 b Fr(starts,)38 b(it)g(searc)n(hes)c (for)j(initial-)2017 598 y(ization)32 b(\014les,)h(\014nding)f(the)g (\014rst)g(one)f(in)h(the)g(system)g(ex-)2017 697 y(ecutable)f(program) e(searc)n(h)h(path)h(\(on)g Fp(UNIX)f Fr(and)h(IBM)2017 797 y Fp(PC-DOS)p Fr(,)25 b Fo(PATH)p Fr(\))e(and)h(the)h(\014rst)f (one)h(in)f(the)h Fo(BIBINPUTS)2017 897 y Fr(searc)n(h)42 b(path,)k(and)d(pro)r(cesses)e(them)j(in)f(turn.)82 b(Then,)2017 996 y(when)37 b(command-line)g(argumen)n(ts)e(are)h(pro)r(cessed,)i(an) n(y)2017 1096 y(additional)d(\014les)h(sp)r(eci\014ed)f(b)n(y)g Fo(-init-file)40 b(filename)2017 1196 y Fr(options)k(are)g(also)g(pro)r (cessed.)86 b(Finally)-7 b(,)49 b(immediately)2017 1295 y(b)r(efore)44 b(eac)n(h)g(named)g(bibliograph)n(y)e(\014le)j(is)f(pro) r(cessed,)2017 1395 y(an)52 b(attempt)g(is)f(made)g(to)g(pro)r(cess)g (an)g(initialization)2017 1494 y(\014le)43 b(with)h(the)f(same)f(name,) 47 b(but)c(with)h(the)f(extension)2017 1594 y(c)n(hanged)h(to)h Fo(.ini)p Fr(.)88 b(The)45 b(default)h(extension)e(can)h(b)r(e)2017 1694 y(c)n(hanged)40 b(b)n(y)g(a)h(setting)f(of)h(the)g(en)n(vironmen)n (t)f(v)-5 b(ariable)2017 1793 y Fo(BIBCLEANEXT)p Fr(.)48 b(This)k(sc)n(heme)f(p)r(ermits)h(system-wide,)2017 1893 y(user-wide,)44 b(session-wide,)f(and)d(\014le-sp)r(eci\014c)h (initializa-)2017 1993 y(tion)28 b(\014les)g(to)f(b)r(e)h(supp)r (orted.)2183 2092 y(When)38 b(input)h(is)e(tak)n(en)g(from)g Fo(stdin)p Fr(,)g(there)h(is)f(no)2017 2192 y(\014le-sp)r(eci\014c)28 b(initialization.)2183 2291 y(F)-7 b(or)20 b(precise)g(con)n(trol,)h (the)g Fo(-no-init-files)15 b Fr(option)2017 2391 y(suppresses)24 b(all)g(initialization)h(\014les)g(except)f(those)h(explic-)2017 2491 y(itly)19 b(named)g(b)n(y)g Fo(-init-file)39 b(filename)16 b Fr(options,)k(either)2017 2590 y(on)31 b(the)g(command)g(line,)h(or)e (in)h(requested)g(initialization)2017 2690 y(\014les.)2183 2790 y(Recursiv)n(e)37 b(execution)g(of)g(initialization)g(\014les)g (with)2017 2889 y(nested)28 b Fo(-init-file)39 b(filename)24 b Fr(options)j(is)g(p)r(ermitted;)2017 2989 y(if)20 b(the)f(recursion)e (is)h(circular,)i Fo(bibclean)15 b Fr(will)k(\014nally)f(get)h(a)2017 3088 y(non-fatal)i(initialization)f(\014le)h(op)r(en)h(failure)e(after) h(op)r(ening)2017 3188 y(to)r(o)f(man)n(y)g(\014les.)34 b(This)21 b(terminates)f(further)g(initialization)2017 3288 y(\014le)34 b(pro)r(cessing.)51 b(As)33 b(the)g(recursion)f(un)n (winds,)i(the)g(\014les)2017 3387 y(are)27 b(all)g(closed,)g(then)h (execution)g(pro)r(ceeds)e(normally)-7 b(.)2183 3487 y(An)35 b(initialization)e(\014le)h(ma)n(y)f(con)n(tain)g(empt)n(y)g (lines,)2017 3587 y(commen)n(ts)47 b(from)g(p)r(ercen)n(t)g(to)g(end)g (of)g(line)g(\(just)h(lik)n(e)2017 3686 y(T)2063 3704 y(E)2110 3686 y(X\),)43 b(option)c(switc)n(hes,)j(and)d (\014eld/pattern)g(or)g(\014eld/)2017 3786 y(pattern/message)27 b(assignmen)n(ts.)40 b(Leading)28 b(and)g(trailing)2017 3885 y(spaces)34 b(are)f(ignored.)56 b(This)35 b(is)f(b)r(est)h (illustrated)f(b)n(y)g(the)2017 3985 y(short)28 b(example)g(in)h(T)-7 b(able)28 b(1.)39 b(Long)28 b(logical)f(lines)h(can)g(b)r(e)2017 4085 y(split)39 b(in)n(to)f(m)n(ultiple)g(ph)n(ysical)f(lines)i(b)n(y)e (breaking)g(at)h(a)2017 4184 y(bac)n(kslash-newline)f(pair;)43 b(the)c(bac)n(kslash-newline)d(pair)2017 4284 y(is)26 b(discarded.)35 b(This)26 b(pro)r(cessing)e(happ)r(ens)i(while)g(c)n (harac-)2017 4384 y(ters)20 b(are)f(b)r(eing)h(read,)h(b)r(efore)f(an)n (y)f(further)i(in)n(terpretation)2017 4483 y(of)28 b(the)g(input)g (stream.)2183 4583 y(Eac)n(h)34 b(logical)f(line)h(m)n(ust)g(con)n (tain)g(a)g(complete)g(op-)2017 4682 y(tion)28 b(\(and)g(its)f(v)-5 b(alue,)28 b(if)g(an)n(y\),)f(or)g(a)g(complete)g(\014eld/pat-)2017 4782 y(tern)h(pair,)f(or)g(a)g(\014eld/pattern/message)e(triple.)2183 4882 y(Commen)n(ts)38 b(are)e(stripp)r(ed)i(during)f(the)h(parsing)f (of)2017 4981 y(the)i(\014eld,)h(pattern,)h(and)c(message)g(v)-5 b(alues.)67 b(The)38 b(com-)2017 5081 y(men)n(t)e(start)f(sym)n(b)r(ol) g(is)h(not)f(recognized)f(inside)i(quoted)2017 5181 y(strings,)27 b(so)g(it)h(can)f(b)r(e)h(freely)g(used)f(in)h(suc)n(h)f(strings.)2183 5280 y(Commen)n(ts)36 b(on)g(logical)e(lines)i(that)g(w)n(ere)f(input)i (as)2017 5380 y(m)n(ultiple)51 b(ph)n(ysical)f(lines)g(via)g(the)g(bac) n(kslash-newline)p eop %%Page: 401 7 401 6 bop 0 -149 a Fr(TUGb)r(oat,)28 b(V)-7 b(olume)28 b(14)e(\(1993\),)h(No.)g(4)2471 b(401)p 0 20 1868 4 v 129 161 a(T)-7 b(able)27 b(1:)37 b(Sample)27 b Fo(bibclean)e Fr(initialization)i(\014le.)0 285 y Fo(\045\045)43 b(Start)e(with)h (our)h(departmental)38 b(patterns)0 385 y(-init-file)h (/u/math/bib/.bibc)o(lea)o(nr)o(c)0 584 y(\045\045)k(Make)f(some)g (small)f(additions)0 684 y(chapter)g(=)i("\\"D\\"")476 b(\045\045)43 b(23)0 883 y(pages)129 b(=)43 b("\\"D--D\\"")344 b(\045\045)43 b(23--27)0 1082 y(volume)85 b(=)43 b("\\"D)f(\\\\an\\\\d) e(D\\"")i(\045\045)h(11)g(and)f(12)0 1281 y(year)173 b(=)43 b(\\)131 1381 y("\\"dddd,)d(dddd,)i(dddd\\"")e(\\)131 1481 y("Multiple)g(years)h(specified.")915 1580 y(\045\045)i(1989,)f (1990,)f(1991)0 1780 y(-no-fix-names)d(\045\045)43 b(do)g(not)f(modify) 610 1879 y(\045\045)h(author/editor)38 b(lists)p 0 1914 V 0 2163 a Fr(con)n(v)n(en)n(tion)g(m)n(ust)i(app)r(ear)f(on)h(the)g (last)g(ph)n(ysical)f(line;)0 2263 y(otherwise,)29 b(the)g(remaining)f (ph)n(ysical)h(lines)g(will)g(b)r(ecome)0 2363 y(part)e(of)h(the)g (commen)n(t.)166 2462 y(P)n(attern)33 b(strings)g(m)n(ust)h(b)r(e)g (enclosed)g(in)g(quotation)0 2562 y(marks;)46 b(within)c(suc)n(h)e (strings,)j(a)d(bac)n(kslash)f(starts)h(an)0 2662 y(escap)r(e)26 b(mec)n(hanism)h(that)g(is)f(commonly)h(used)g(in)g Fp(UNIX)0 2761 y Fr(soft)n(w)n(are.)33 b(The)22 b(recognized)e(escap)r(e)h (sequences)f(are)h(giv)n(en)0 2861 y(in)26 b(T)-7 b(able)26 b(2.)36 b(Bac)n(kslash)24 b(follo)n(w)n(ed)h(b)n(y)h(an)n(y)f(other)g (c)n(harac-)0 2960 y(ter)f(pro)r(duces)g(just)h(that)g(c)n(haracter.)34 b(Th)n(us,)25 b Fo(\\")f Fr(pro)r(duces)0 3060 y(a)35 b(quotation)g(mark,)i(and)e Fo(\\\\)g Fr(pro)r(duces)g(a)g(single)g (bac)n(k-)0 3160 y(slash.)p 0 3263 V 123 3403 a(T)-7 b(able)27 b(2:)36 b(Escap)r(e)27 b(sequences)g(in)h(quoted)f(strings.) 175 3522 y Fo(\\a)230 b Fr(alarm)26 b(b)r(ell)i(\(o)r(ctal)g(007\))175 3622 y Fo(\\b)230 b Fr(bac)n(kspace)26 b(\(o)r(ctal)h(010\))175 3722 y Fo(\\f)230 b Fr(formfeed)27 b(\(o)r(ctal)h(014\))175 3821 y Fo(\\n)230 b Fr(newline)28 b(\(o)r(ctal)f(012\))175 3921 y Fo(\\r)230 b Fr(carriage)25 b(return)i(\(o)r(ctal)h(015\))175 4020 y Fo(\\t)230 b Fr(horizon)n(tal)26 b(tab)h(\(o)r(ctal)h(011\))175 4120 y Fo(\\v)230 b Fr(v)n(ertical)26 b(tab)i(\(o)r(ctal)f(013\))175 4220 y Fo(\\ooo)142 b Fr(c)n(haracter)29 b(n)n(um)n(b)r(er)i(o)r(ctal)g Fo(ooo)f Fr(\(e.g.)493 4319 y Fo(\\012)k Fr(is)h(linefeed\).)62 b(Up)36 b(to)f(3)g(o)r(ctal)493 4419 y(digits)27 b(ma)n(y)g(b)r(e)h (used.)175 4519 y Fo(\\0xhh)98 b Fr(c)n(haracter)17 b(n)n(um)n(b)r(er)i (hexadecimal)g Fo(hh)493 4618 y Fr(\(e.g.)29 b Fo(\\0x0a)d Fr(is)j(linefeed\).)42 b Fo(xhh)28 b Fr(ma)n(y)493 4718 y(b)r(e)20 b(in)h(either)f(letter)g(case.)34 b(An)n(y)20 b(n)n(um-)493 4817 y(b)r(er)26 b(of)h(hexadecimal)f(digits)g(ma)n(y)g (b)r(e)493 4917 y(used.)p 0 4975 V 166 5174 a(An)k(ASCI)r(I)g(NUL)g(\() p Fo(\\0)p Fr(\))f(in)h(a)f(string)g(will)g(terminate)0 5274 y(it;)h(this)f(is)g(a)f(feature)h(of)g(the)g(C)g(programming)e (language)0 5374 y(in)h(whic)n(h)f Fo(bibclean)e Fr(is)i(implemen)n (ted.)2183 100 y(Field/pattern)36 b(pairs)g(can)g(b)r(e)g(separated)g (b)n(y)g(arbi-)2017 199 y(trary)26 b(space,)h(and)g(optionally)-7 b(,)27 b(either)g(an)g(equals)g(sign)f(or)2017 299 y(colon)h (functioning)g(as)g(an)g(assignmen)n(t)f(op)r(erator.)35 b(Th)n(us,)2017 399 y(the)28 b(follo)n(wing)f(are)g(equiv)-5 b(alen)n(t:)2017 523 y Fo(pages="\\"D--D\\"")2017 623 y(pages:"\\"D--D\\"")2017 722 y(pages)42 b("\\"D--D\\"")2105 822 y(pages)f(=)i("\\"D--D\\"")2105 922 y(pages)e(:)i("\\"D--D\\"")2017 1021 y(pages)129 b("\\"D--D\\"")2017 1146 y Fr(Eac)n(h)37 b(\014eld)g(name)h(can)f(ha)n(v)n(e)f(an)h(arbitrary)e(n)n(um)n(b)r(er) j(of)2017 1245 y(patterns)31 b(asso)r(ciated)g(with)h(it;)h(ho)n(w)n (ev)n(er,)e(they)h(m)n(ust)f(b)r(e)2017 1345 y(sp)r(eci\014ed)d(in)g (separate)e(\014eld/pattern)h(assignmen)n(ts.)2183 1445 y(An)54 b(empt)n(y)g(pattern)f(string)g(causes)f(previously-)2017 1544 y(loaded)41 b(patterns)g(for)h(that)f(\014eld)h(name)g(to)f(b)r(e) h(forgot-)2017 1644 y(ten.)76 b(This)40 b(feature)g(p)r(ermits)g(an)g (initialization)g(\014le)h(to)2017 1743 y(completely)c(discard)e (patterns)h(from)g(earlier)f(initializa-)2017 1843 y(tion)28 b(\014les.)2183 1943 y(P)n(atterns)k(for)g(v)-5 b(alue)33 b(strings)f(are)g(represen)n(ted)g(in)h(a)2017 2042 y(tin)n(y)42 b(sp)r(ecial-purp)r(ose)e(language)f(that)i(is)h(b)r(oth)f(con)n(v)n (e-)2017 2142 y(nien)n(t)25 b(and)f(suitable)g(for)g(bibliograph)n(y)e (v)-5 b(alue-string)23 b(syn-)2017 2242 y(tax)g(c)n(hec)n(king.)34 b(While)23 b(not)g(as)f(p)r(o)n(w)n(erful)g(as)g(the)h(language)2017 2341 y(of)43 b(regular-expression)d(patterns,)46 b(its)d(parsing)f(can) g(b)r(e)2017 2441 y(p)r(ortably)23 b(implemen)n(ted)h(in)f(less)g(than) g(3\045)g(of)g(the)g(co)r(de)g(in)2017 2540 y(a)38 b(widely-used)f (regular-expression)e(parser)h(\(the)j(GNU)2017 2640 y Fo(regexp)26 b Fr(pac)n(k)-5 b(age\).)2183 2740 y(The)49 b(patterns)e(are)g(represen)n(ted)g(b)n(y)g(the)i(sp)r(ecial)2017 2839 y(c)n(haracters)26 b(giv)n(en)g(in)i(T)-7 b(able)28 b(3.)2183 2939 y(The)35 b Fo(X)g Fr(pattern)f(c)n(haracter)f(is)h(v)n (ery)g(p)r(o)n(w)n(erful,)i(but)2017 3039 y(generally)18 b(inadvisable,)i(since)e(it)i(will)f(matc)n(h)f(almost)h(an)n(y-)2017 3138 y(thing)36 b(lik)n(ely)f(to)h(b)r(e)g(found)g(in)f(a)h(B)l Fp(i)n(b)-7 b Fr(T)3288 3163 y(E)3334 3138 y(X)36 b(v)-5 b(alue)35 b(string.)2017 3238 y(The)h(reason)d(for)i(pro)n(viding)f (pattern)h(matc)n(hing)g(on)g(the)2017 3337 y(v)-5 b(alue)26 b(strings)f(is)h(to)g(unco)n(v)n(er)e(p)r(ossible)h(errors,)f(not)i (mask)2017 3437 y(them.)2183 3537 y(There)36 b(is)h(no)f(pro)n(vision)e (for)i(sp)r(ecifying)h(ranges)d(or)2017 3636 y(rep)r(etitions)43 b(of)f(c)n(haracters,)h(but)g(this)g(can)e(usually)h(b)r(e)2017 3736 y(done)24 b(with)g(separate)e(patterns.)35 b(It)25 b(is)e(a)g(go)r(o)r(d)g(idea)h(to)f(ac-)2017 3836 y(compan)n(y)31 b(the)i(pattern)f(with)h(a)e(commen)n(t)h(sho)n(wing)f(the)2017 3935 y(kind)41 b(of)f(thing)g(it)h(is)f(exp)r(ected)h(to)f(matc)n(h.)74 b(Here)40 b(is)g(a)2017 4035 y(p)r(ortion)35 b(of)h(an)f (initialization)g(\014le)h(giving)f(a)g(few)h(of)f(the)2017 4134 y(patterns)28 b(used)f(to)h(matc)n(h)f Fo(number)e Fr(v)-5 b(alue)28 b(strings:)2017 4259 y Fo(number)42 b(=)h("\\"D\\"")389 b(\045\045)43 b(23)2017 4359 y(number)f(=)h("\\"A)f (AD\\"")259 b(\045\045)43 b(PN)g(LPS5001)2017 4458 y(number)f(=)h ("\\"A)f(D\(D\)\\"")171 b(\045\045)43 b(RJ)g(34\(49\))2017 4558 y(number)f(=)h("\\"A)f(D\\"")303 b(\045\045)43 b(XNSS)f(288811) 2017 4658 y(number)g(=)h("\\"A)f(D\\\\.D\\"")127 b(\045\045)43 b(Version)e(3.20)2017 4757 y(number)h(=)h("\\"A-A-D-D\\"")125 b(\045\045)43 b(UMIAC-TR-89-11)2017 4857 y(number)f(=)h("\\"A-A-D\\"") 213 b(\045\045)43 b(CS-TR-2189)2017 4956 y(number)f(=)h ("\\"A-A-D\\\\.D\\"")37 b(\045\045)43 b(CS-TR-21.7)2017 5081 y Fr(F)-7 b(or)33 b(a)g(bibliograph)n(y)e(that)j(con)n(tains)e (only)g Fo(Article)f Fr(en-)2017 5181 y(tries,)41 b(this)d(list)h (should)f(probably)f(b)r(e)h(reduced)g(to)g(just)2017 5280 y(the)24 b(\014rst)f(pattern,)h(so)f(that)g(an)n(ything)g(other)f (than)i(a)e(digit)2017 5380 y(string)39 b(fails)f(the)h(pattern-matc)n (h)f(test.)71 b(This)39 b(is)f(easily)p eop %%Page: 402 8 402 7 bop 0 -149 a Fr(402)2470 b(TUGb)r(oat,)28 b(V)-7 b(olume)27 b(14)g(\(1993\),)f(No.)i(4)p 0 20 1868 4 v 114 161 a(T)-7 b(able)27 b(3:)36 b(Initialization)28 b(\014le)f(pattern)h(c)n(haracters.)241 280 y Fo( )142 b Fr(one)28 b(or)e(more)h(spaces)241 379 y Fo(a)142 b Fr(exactly)27 b(one)h(letter)241 479 y Fo(A)142 b Fr(one)28 b(or)e(more)h(letters)241 579 y Fo(d)142 b Fr(exactly)27 b(one)h(digit)241 678 y Fo(D)142 b Fr(one)28 b(or)e(more)h(digits)241 778 y Fo(r)142 b Fr(exactly)27 b(one)h(Roman)f(n)n(umeral)241 877 y Fo(R)142 b Fr(one)19 b(or)g(more)g(Roman)g(n)n(umerals)f(\(i.e.) 427 977 y(a)28 b(Roman)f(n)n(um)n(b)r(er\))241 1077 y Fo(w)142 b Fr(exactly)45 b(one)h(w)n(ord)e(\(one)i(or)e(more)427 1176 y(letters)28 b(and)f(digits\))241 1276 y Fo(W)142 b Fr(one)30 b(or)g(more)g(w)n(ords,)g(separated)f(b)n(y)427 1376 y(space,)24 b(b)r(eginning)f(and)h(ending)f(with)427 1475 y(a)28 b(w)n(ord)241 1575 y Fo(.)142 b Fr(one)24 b(`sp)r(ecial')g(c)n(haracter,)f(one)h(of)g(the)427 1674 y(c)n(haracters)66 b Fo( !#\(\)*+,-./:;?[]~)o Fr(,)427 1774 y(a)41 b(subset)h(of)f(punctuation)h(c)n(harac-)427 1874 y(ters)52 b(that)g(are)f(t)n(ypically)g(used)h(in)427 1973 y(string)27 b(v)-5 b(alues)241 2073 y Fo(:)142 b Fr(one)28 b(or)e(more)h(`sp)r(ecial')g(c)n(haracters)241 2173 y Fo(X)142 b Fr(one)53 b(or)e(more)h(`sp)r(ecial'-separated)427 2272 y(w)n(ords,)20 b(b)r(eginning)f(and)g(ending)g(with)427 2372 y(a)28 b(w)n(ord)241 2471 y Fo(\\x)98 b Fr(exactly)20 b(one)g Fo(x)g Fr(\()p Fo(x)g Fr(is)h(an)n(y)e(c)n(haracter\),)427 2571 y(p)r(ossibly)27 b(with)h(an)f(escap)r(e)g(sequence)427 2671 y(in)n(terpretation)g(giv)n(en)g(earlier)241 2770 y Fo(x)142 b Fr(exactly)26 b(the)h(c)n(haracter)e Fo(x)h Fr(\()p Fo(x)g Fr(is)h(an)n(y-)427 2870 y(thing)49 b(but)g(one)f(of)g (these)h(pattern)427 2970 y(c)n(haracters:)35 b Fo(aAdDrRwW.: \\)p Fr(\))p 0 3028 V 0 3277 a(done)c(b)n(y)f(k)n(eeping)g(bibliograph)n (y-sp)r(eci\014c)f(patterns)h(in)h(a)0 3376 y(corresp)r(onding)36 b(\014le)i(with)g(extension)f Fo(.ini)p Fr(,)i(since)f(that)0 3476 y(\014le)25 b(is)g(read)f(automatically)-7 b(.)35 b(Y)-7 b(ou)24 b(should)h(b)r(e)g(sure)g(to)f(use)0 3576 y(empt)n(y)k(pattern)g(strings)e(in)j(this)f(pattern)f(\014le)h(to)g (discard)0 3675 y(patterns)f(from)g(earlier)g(initialization)g (\014les.)166 3775 y(The)21 b(v)-5 b(alue)20 b(strings)g(passed)g(to)g (the)h(pattern)g(matc)n(her)0 3875 y(con)n(tain)30 b(surrounding)f (quotes,)j(so)e(the)h(patterns)f(should)0 3974 y(also.)35 b(Ho)n(w)n(ev)n(er,)23 b(y)n(ou)g(could)h(use)g(a)g(pattern)g(sp)r (eci\014cation)0 4074 y(lik)n(e)32 b Fo("\\"D")f Fr(to)h(matc)n(h)g(an) h(initial)g(digit)f(string)g(follo)n(w)n(ed)0 4173 y(b)n(y)38 b(an)n(ything)g(else;)43 b(the)c(omission)e(of)h(the)h(\014nal)f (quota-)0 4273 y(tion)j(mark)e Fo(\\")h Fr(in)h(the)g(pattern)g(allo)n (ws)e(the)i(matc)n(h)f(to)0 4373 y(succeed)25 b(without)g(c)n(hec)n (king)f(that)i(the)f(next)h(c)n(haracter)d(in)0 4472 y(the)28 b(v)-5 b(alue)27 b(string)g(is)h(a)f(quotation)g(mark.)166 4572 y(Because)40 b(the)h(v)-5 b(alue)41 b(strings)f(are)g(in)n(tended) i(to)f(b)r(e)0 4672 y(pro)r(cessed)46 b(b)n(y)g(T)572 4689 y(E)618 4672 y(X,)52 b(the)c(pattern)e(matc)n(hing)h(ignores)0 4771 y(braces,)42 b(and)d(T)512 4789 y(E)558 4771 y(X)h(con)n(trol)f (sequences,)j(together)d(with)0 4871 y(an)n(y)25 b(space)h(follo)n (wing)f(those)h(con)n(trol)f(sequences.)36 b(Spaces)0 4970 y(around)20 b(braces)h(are)f(preserv)n(ed.)33 b(This)22 b(con)n(v)n(en)n(tion)d(allo)n(ws)0 5070 y(the)43 b(pattern)g(fragmen)n (t)f Fo(A-AD-D)f Fr(to)h(matc)n(h)h(the)g(v)-5 b(alue)0 5170 y(string)29 b Fo(TN-K\\slash)40 b(27-70)p Fr(,)29 b(b)r(ecause)g(the)i(v)-5 b(alue)30 b(is)g(im-)0 5269 y(plicitly)23 b(collapsed)f(to)h Fo(TN-K27-70)c Fr(during)j(the)i(matc) n(hing)0 5369 y(op)r(eration.)2183 100 y Fo(bibclean)p Fr('s)30 b(normal)h(action)i(when)f(a)h(string)f(v)-5 b(alue)2017 199 y(fails)20 b(to)f(matc)n(h)h(an)n(y)f(of)g(the)h (corresp)r(onding)e(patterns)h(is)h(to)2017 299 y(issue)i(a)f(w)n (arning)f(message)g(similar)g(to)h(this:)35 b Fo(Unexpected)2017 399 y(value)42 b(in)h(``year)e(=)i("192"'')p Fr(.)k(In)32 b(most)g(cases,)g(that)2017 498 y(is)d(su\016cien)n(t)f(to)h(alert)f (the)h(user)f(to)g(a)g(problem.)39 b(In)29 b(some)2017 598 y(cases,)20 b(ho)n(w)n(ev)n(er,)g(it)f(ma)n(y)g(b)r(e)h(desirable)f (to)g(asso)r(ciate)f(a)h(dif-)2017 697 y(feren)n(t)31 b(message)f(with)h(a)g(particular)e(pattern.)47 b(This)31 b(can)2017 797 y(b)r(e)25 b(done)f(b)n(y)h(supplying)f(a)g(message)f (string)h(follo)n(wing)f(the)2017 897 y(pattern)h(string.)34 b(F)-7 b(ormat)23 b(items)h Fo(\045\045)f Fr(\(single)g(p)r(ercen)n (t\),)h Fo(\045e)2017 996 y Fr(\(en)n(try)d(name\),)h Fo(\045f)e Fr(\(\014eld)h(name\),)h Fo(\045k)d Fr(\(citation)i(k)n (ey\),)h(and)2017 1096 y Fo(\045v)29 b Fr(\(string)f(v)-5 b(alue\))29 b(are)f(a)n(v)-5 b(ailable)28 b(to)g(get)h(curren)n(t)f(v) -5 b(alues)2017 1196 y(expanded)28 b(in)g(the)g(messages.)35 b(Here)27 b(is)h(an)f(example:)2017 1312 y Fo(chapter)41 b(=)i("\\"D:D\\"")d(\\)2235 1411 y("Colon)h(found)h(in)h(``\045f)f(=)h (\045v''")e(\045\045)i(23:2)2183 1528 y Fr(T)-7 b(o)22 b(b)r(e)h(consisten)n(t)f(with)h(other)e(messages)g(output)i(b)n(y)2017 1627 y Fo(bibclean)p Fr(,)32 b(the)i(message)e(string)g(should)h(not)g (end)h(with)2017 1727 y(punctuation.)2183 1826 y(If)20 b(y)n(ou)f(wish)g(to)h(mak)n(e)e(the)i(message)e(an)h(error,)h(rather) 2017 1926 y(than)31 b(just)f(a)g(w)n(arning,)g(b)r(egin)g(it)g(with)h (a)f(query)f(\(?\),)j(lik)n(e)2017 2026 y(this:)2017 2142 y Fo(chapter)41 b(=)i("\\"D:D\\"")d(\\)2192 2242 y("?Colon)g(found)i(in)h(``\045f)f(=)h(\045v''")e(\045\045)i(23:2)2017 2358 y Fr(The)32 b(query)e(will)i Fl(not)39 b Fr(b)r(e)32 b(included)g(in)f(the)h(output)g(mes-)2017 2457 y(sage.)2183 2557 y(Escap)r(e)53 b(sequences)f(are)g(supp)r(orted)h(in)g(message) 2017 2657 y(strings,)27 b(just)h(as)e(they)h(are)g(in)g(pattern)g (strings.)36 b(Y)-7 b(ou)27 b(can)2017 2756 y(use)21 b(this)g(to)f(adv)-5 b(an)n(tage)19 b(for)h(fancy)g(things,)i(suc)n(h)e (as)g(termi-)2017 2856 y(nal)g(displa)n(y)g(mo)r(de)g(con)n(trol.)33 b(If)20 b(y)n(ou)g(rewrite)f(the)i(previous)2017 2956 y(example)28 b(as)2017 3072 y Fo(chapter)41 b(=)i("\\"D:D\\"")d(\\)2453 3171 y("?\\033[7mColon)e(found)k(\\)2017 3271 y(in)h(``\045f)f(=)h (\045v''\\033[0m")c(\045\045)k(23:2)2017 3387 y Fr(the)d(error)d (message)h(will)h(app)r(ear)f(in)i(in)n(v)n(erse)d(video)i(on)2017 3487 y(displa)n(y)28 b(screens)f(that)i(supp)r(ort)f(ANSI)h(terminal)f (con)n(trol)2017 3587 y(sequences.)82 b(Suc)n(h)42 b(practice)g(is)h (not)f(normally)g(recom-)2017 3686 y(mended,)k(since)41 b(it)h(ma)n(y)e(ha)n(v)n(e)h(undesirable)f(e\013ects)i(on)2017 3786 y(some)29 b(output)g(devices.)40 b(Nev)n(ertheless,)29 b(y)n(ou)f(ma)n(y)g(\014nd)h(it)2017 3885 y(useful)f(for)g(restricted)e (applications.)2183 3985 y(F)-7 b(or)22 b(some)f(t)n(yp)r(es)h(of)g (bibliograph)n(y)e(\014elds,)j Fo(bibclean)2017 4085 y Fr(con)n(tains)32 b(sp)r(ecial-purp)r(ose)f(co)r(de)h(to)g(supplemen) n(t)g(or)f(re-)2017 4184 y(place)d(the)g(pattern)f(matc)n(hing:)2100 4301 y Fk(\017)41 b Fo(ISBN)21 b Fr(and)h Fo(ISSN)e Fr(\014eld)i(v)-5 b(alues)22 b(are)f(handled)h(this)g(w)n(a)n(y)2183 4400 y(b)r(ecause)34 b(their)g(v)-5 b(alidation)34 b(requires)f(ev)-5 b(aluation)34 b(of)2183 4500 y(c)n(hec)n(ksums)29 b(that)h(cannot)g(b)r (e)g(expressed)f(b)n(y)g(simple)2183 4599 y(patterns;)23 b(no)e(patterns)g(are)g(ev)n(en)f(used)h(in)h(these)f(t)n(w)n(o)2183 4699 y(cases.)2100 4799 y Fk(\017)41 b Fr(When)62 b Fo(bibclean)57 b Fr(is)j(compiled)h(with)g(pattern-)2183 4898 y(matc)n(hing)67 b(co)r(de)g(supp)r(ort,)77 b Fo(chapter)p Fr(,)d Fo(number)p Fr(,)2183 4998 y Fo(pages)p Fr(,)30 b(and)h Fo(volume)d Fr(v)-5 b(alues)30 b(are)g(c)n(hec)n(k)n(ed)f(only)i(b)n(y)2183 5098 y(pattern)d(matc)n(hing.)2100 5197 y Fk(\017)41 b Fo(month)24 b Fr(v)-5 b(alues)25 b(are)f(\014rst)i(c)n(hec)n(k)n(ed)e (against)g(the)i(stan-)2183 5297 y(dard)38 b(B)l Fp(i)n(b)-7 b Fr(T)2553 5322 y(E)2599 5297 y(X)38 b(mon)n(th)f(name)h (abbreviations,)h(and)2183 5396 y(only)19 b(if)g(no)f(matc)n(h)h(is)f (found)h(are)f(patterns)g(then)h(used.)p eop %%Page: 403 9 403 8 bop 0 -149 a Fr(TUGb)r(oat,)28 b(V)-7 b(olume)28 b(14)e(\(1993\),)h(No.)g(4)2471 b(403)83 100 y Fk(\017)41 b Fo(year)31 b Fr(v)-5 b(alues)32 b(are)f(\014rst)h(c)n(hec)n(k)n(ed)f (against)g(patterns,)166 199 y(then)40 b(if)h(no)e(matc)n(h)g(is)h (found,)j(the)d(y)n(ear)f(n)n(um)n(b)r(ers)166 299 y(are)e(found)h(and) f(con)n(v)n(erted)f(to)i(in)n(teger)e(v)-5 b(alues)38 b(for)166 399 y(testing)28 b(against)e(reasonable)g(b)r(ounds.)166 523 y(V)-7 b(alues)27 b(for)g(other)g(\014elds)g(are)f(c)n(hec)n(k)n (ed)g(only)h(against)0 623 y(patterns.)78 b(Y)-7 b(ou)42 b(can)f(pro)n(vide)f(patterns)h(for)g(an)n(y)g(\014eld)0 722 y(y)n(ou)23 b(lik)n(e,)h(ev)n(en)f(ones)g Fo(bibclean)d Fr(do)r(es)j(not)h(already)e(kno)n(w)0 822 y(ab)r(out.)35 b(New)22 b(ones)f(are)g(simply)h(added)g(to)g(an)f(in)n(ternal)h(ta-)0 922 y(ble)28 b(that)g(is)f(searc)n(hed)f(for)h(eac)n(h)g(string)g(to)g (b)r(e)h(v)-5 b(alidated.)166 1021 y(The)45 b(sp)r(ecial)f(\014eld,)50 b Fo(key)p Fr(,)e(represen)n(ts)43 b(the)i(biblio-)0 1121 y(graphic)31 b(citation)h(k)n(ey)-7 b(.)49 b(It)33 b(can)e(b)r(e)i(giv)n(en)e(patterns,)h(lik)n(e)0 1220 y(an)n(y)27 b(other)g(\014eld.)38 b(Here)27 b(is)h(an)f(initialization) g(\014le)h(pattern)0 1320 y(assignmen)n(t)19 b(that)i(will)g(matc)n(h)f (an)g(author)f(name,)j(a)e(colon,)0 1420 y(an)27 b(alphab)r(etic)h (string,)f(and)g(a)g(t)n(w)n(o-digit)g(y)n(ear:)0 1544 y Fo(key)42 b(=)i("A:Add")127 b(\045\045)43 b(Knuth:TB86)0 1669 y Fr(Notice)28 b(that)h(no)f(quotation)g(marks)f(are)g(included)i (in)g(the)0 1768 y(pattern,)37 b(b)r(ecause)e(the)h(citation)f(k)n(eys) f(are)h(not)g(quoted.)0 1868 y(Y)-7 b(ou)32 b(can)g(use)g(suc)n(h)g (patterns)g(to)g(help)h(enforce)e(uniform)0 1968 y(naming)37 b(con)n(v)n(en)n(tions)e(for)i(citation)g(k)n(eys,)i(whic)n(h)e(is)g (in-)0 2067 y(creasingly)21 b(imp)r(ortan)n(t)i(as)f(y)n(our)g (bibliograph)n(y)f(data)i(base)0 2167 y(gro)n(ws.)0 2333 y Fq(6)95 b(Lexical)32 b(analysis)0 2466 y Fr(The)59 b(command-line)f(option)h Fo(-no-prettyprint)53 b Fr(re-)0 2565 y(quests)39 b Fo(bibclean)d Fr(to)k(function)g(as)f(a)g(lexical)g (analyzer)0 2665 y(instead)c(of)f(as)g(a)h(prett)n(yprin)n(ter.)57 b(Its)34 b(output)i(is)e(then)h(a)0 2765 y(stream)g(of)h(lines,)j(eac)n (h)c(of)h(whic)n(h)g(con)n(tains)f(one)h(tok)n(en.)0 2864 y(F)-7 b(or)20 b(the)h(bibliograph)n(y)e(en)n(tries)h(sho)n(wn)g (in)h(Section)g(1,)h(here)0 2964 y(is)38 b(what)g(the)g(output)g(lo)r (oks)f(lik)n(e;)43 b(the)38 b(long)f(lines)h(ha)n(v)n(e)0 3064 y(b)r(een)27 b(wrapp)r(ed)f(b)n(y)g(a)f(bac)n(kslash-newline)g(to) h(\014t)h(in)f(these)0 3163 y(narro)n(w)g(journal)g(columns:)0 3288 y Fo(#)43 b(line)f(1)h("stdin")0 3387 y(2)305 b(AT)260 b("@")0 3487 y(18)h(STRING)84 b("String")0 3587 y(11)261 b(LBRACE)84 b("{")0 3686 y(1)305 b(ABBREV)84 b("pub-AW")0 3786 y(6)305 b(EQUALS)84 b("=")0 3885 y(#)43 b(line)f(2)h("stdin")0 3985 y(19)261 b(VALUE)128 b("\\"Ad{\\\\-d}i{\\\\-s)o(}on)o(-W)o(es)o ({\\)0 4085 y(\\\\-l}ey\\"")0 4184 y(15)261 b(RBRACE)84 b("}")0 4284 y(#)43 b(line)f(4)h("stdin")0 4384 y(13)261 b(NEWLINE)40 b("\\n")0 4483 y(13)261 b(NEWLINE)40 b("\\n")0 4583 y(2)305 b(AT)260 b("@")0 4682 y(5)305 b(ENTRY)128 b("Book")0 4782 y(11)261 b(LBRACE)84 b("{")0 4882 y(10)261 b(KEY)216 b("Lamport:LDP85")0 4981 y(3)305 b(COMMA)128 b(",")0 5081 y(13)261 b(NEWLINE)40 b("\\n")0 5181 y(#)j(line)f(5)h ("stdin")0 5280 y(7)305 b(FIELD)128 b("author")0 5380 y(6)305 b(EQUALS)84 b("=")2017 100 y(19)261 b(VALUE)129 b("\\"Leslie)40 b(Lamport\\"")2017 199 y(3)305 b(COMMA)129 b(",")2017 299 y(13)261 b(NEWLINE)41 b("\\n")2017 399 y(#)j(line)e(6)h("stdin")2017 498 y(7)305 b(FIELD)129 b("title")2017 598 y(6)305 b(EQUALS)85 b("=")2017 697 y(#)44 b(line)e(8)h("stdin")2017 797 y(19)261 b(VALUE)129 b("\\"{\\\\LaTeX}---{)o(A})37 b(Docume\\)2017 897 y(nt)43 b(Preparation)c(System---User's)f(Guide)j(and)h(\\)2017 996 y(Reference)e(Manual\\"")2017 1096 y(3)305 b(COMMA)129 b(",")2017 1196 y(13)261 b(NEWLINE)41 b("\\n")2017 1295 y(#)j(line)e(9)h("stdin")2017 1395 y(7)305 b(FIELD)129 b("publisher")2017 1494 y(6)305 b(EQUALS)85 b("=")2017 1594 y(1)305 b(ABBREV)85 b("pub-AW")2017 1694 y(3)305 b(COMMA)129 b(",")2017 1793 y(13)261 b(NEWLINE)41 b("\\n")2017 1893 y(#)j(line)e(10)g("stdin")2017 1993 y(7)305 b(FIELD)129 b("year")2017 2092 y(6)305 b(EQUALS)85 b("=")2017 2192 y(19)261 b(VALUE)129 b("\\"1985\\"")2017 2291 y(3)305 b(COMMA)129 b(",")2017 2391 y(13)261 b(NEWLINE)41 b("\\n")2017 2491 y(#)j(line)e(11)g("stdin")2017 2590 y(7)305 b(FIELD)129 b("ISBN")2017 2690 y(6)305 b(EQUALS)85 b("=")2017 2790 y(19)261 b(VALUE)129 b("\\"0-201-15790-X)o(\\")o(")2017 2889 y(3)305 b(COMMA)129 b(",")2017 2989 y(13)261 b(NEWLINE)41 b("\\n")2017 3088 y(#)j(line)e(12)g("stdin")2017 3188 y(15)261 b(RBRACE)85 b("}")2017 3288 y(#)44 b(line)e(13)g("stdin")2017 3387 y(13)261 b(NEWLINE)41 b("\\n")2017 3504 y Fr(Eac)n(h)g(line)h(b)r (egins)f(with)i(a)e(small)g(in)n(teger)g(tok)n(en)g(t)n(yp)r(e)2017 3603 y(n)n(um)n(b)r(er)31 b(for)e(the)i(con)n(v)n(enience)e(of)i (computer)f(programs,)2017 3703 y(then)25 b(a)e(tok)n(en)h(t)n(yp)r(e)g (name)f(for)h(h)n(uman)g(readers,)f(follo)n(w)n(ed)2017 3802 y(b)n(y)28 b(a)f(quoted)g(tok)n(en)g(string.)2183 3902 y(Lines)e(b)r(eginning)f(with)h(a)f(sharp,)g Fo(#)p Fr(,)h(are)f(ANSI/ISO)2017 4002 y(Standard)32 b(C)h(prepro)r(cessor)d (line-n)n(um)n(b)r(er)i(directiv)n(es)g([3)o(,)2017 4101 y(Section)h(3.8.4])f(to)h(record)f(the)h(input)h(line)f(n)n(um)n(b)r (er)g(and)2017 4201 y(\014le)28 b(name.)2183 4301 y(There)36 b(are)e(curren)n(tly)h(19)g(tok)n(en)g(t)n(yp)r(es)g(de\014ned)h(in) 2017 4400 y(the)20 b(do)r(cumen)n(tation)g(that)g(accompanies)e Fo(bibclean)p Fr(.)31 b(Be-)2017 4500 y(cause)45 b(B)l Fp(i)n(b)-7 b Fr(T)2422 4525 y(E)2468 4500 y(X)46 b(st)n(yles)f(can)h (de\014ne)f(new)h(\014eld)g(names,)2017 4599 y(there)19 b(is)f(little)h(p)r(oin)n(t)g(in)g(the)g(lexical)f(analyzer)f(of)h (attempt-)2017 4699 y(ing)33 b(to)g(classify)f(\014eld)h(names)f(more)g (precisely;)i(that)f(job)2017 4799 y(is)28 b(left)g(for)f(other)g(soft) n(w)n(are.)2183 4898 y(Inside)i(quoted)g(strings,)g(the)g(ANSI/ISO)g (Standard)2017 4998 y(C)45 b([3,)k(Section)c(3.1.3.4])f(bac)n(kslash)f (escap)r(e)h(sequences)2017 5098 y(sho)n(wn)36 b(in)g(T)-7 b(able)36 b(2)f(on)h(page)f(401)g(are)g(used)h(to)g(enco)r(de)2017 5197 y(non-prin)n(table)e(c)n(haracters.)56 b(In)35 b(this)g(w)n(a)n(y) -7 b(,)35 b(a)f(m)n(ulti-line)2017 5297 y(string)21 b(v)-5 b(alue)20 b(can)h(b)r(e)g(represen)n(ted)f(on)h(a)f(single)h(line.)35 b(This)2017 5396 y(is)20 b(con)n(v)n(enien)n(t)e(for)h(string-searc)n (hing)d(applications.)33 b(If)20 b(the)p eop %%Page: 404 10 404 9 bop 0 -149 a Fr(404)2470 b(TUGb)r(oat,)28 b(V)-7 b(olume)27 b(14)g(\(1993\),)f(No.)i(4)0 100 y(long)d(output)h(lines)f (pro)n(v)n(e)f(a)h(problem)g(on)h(some)f(systems,)0 199 y(the)39 b Fo(-max-width)h(nnn)d Fr(command-line)i(option)f(can)h(b)r (e)0 299 y(used)27 b(to)g(wrap)f(lines)h(at)f(a)h(sp)r(eci\014ed)g (column)g(n)n(um)n(b)r(er)f(b)n(y)0 399 y(the)i(insertion)f(of)h(a)f (bac)n(kslash-newline)e(pair.)166 498 y(As)31 b(a)f(simple)h(example)g (of)f(ho)n(w)h(this)g(tok)n(en)f(stream)0 598 y(migh)n(t)e(b)r(e)g(pro) r(cessed,)e(the)i Fp(UNIX)e Fr(command)h(pip)r(eline)0 722 y Fo(bibclean)40 b(-no-prettyprint)e(mylib.bib)i(|)j(\\)174 822 y(awk)g('$2)f(==)h("KEY")e({print)g($3}')h(|)i(\\)174 922 y(sed)f(-e)f('s/"//g')f(|)i(\\)174 1021 y(sort)0 1146 y Fr(will)34 b(extract)f(a)g(sorted)g(list)h(of)f(all)h(citation)f (k)n(eys)g(in)h(the)0 1245 y(\014le)28 b Fo(mylib.bib)p Fr(.)166 1345 y(As)i(a)g(more)g(complex)g(example,)g(consider)g(lo)r (cating)0 1445 y(duplicate)e(abbreviations)f(and)h(citation)f(k)n(eys)h (in)g(a)f(large)0 1544 y(collection)34 b(of)h(bibliograph)n(y)d (\014les.)58 b(This)35 b(is)f(a)g(daun)n(ting)0 1644 y(task)20 b(if)g(it)h(m)n(ust)g(b)r(e)f(done)g(b)n(y)g(visual)g (scanning)f(of)h(the)h(\014les.)0 1743 y(It)27 b(to)r(ok)g(me)g(less)f (than)i(10)e(min)n(utes)h(to)g(write)f(and)h(debug)0 1843 y(a)22 b(35-line)g Fo(nawk)f Fr([1])i(program)e(\(15)h(lines)h(of) g(commen)n(ts,)g(20)0 1943 y(of)j(co)r(de\))g(that)g(pro)r(cessed)e (the)i(tok)n(en)f(stream)g(from)h Fo(bib-)0 2042 y(clean)g Fr(and)h(prin)n(ted)h(w)n(arnings)d(ab)r(out)j(suc)n(h)f(duplicates.) 166 2142 y(The)f(pro)r(cessing)e(steps)h(can)g(b)r(e)h(represen)n(ted)e (b)n(y)i(the)0 2242 y(simple)i Fp(UNIX)e Fr(pip)r(eline)0 2366 y Fo(bibclean)40 b(-no-prettyprint)e(bibfiles)i(|)j(\\)174 2466 y(tr)g('[A-Z]')e('[a-z]')f(|)k(\\)174 2565 y(nawk)e(-f)h (bibdup.awk)0 2690 y Fr(whic)n(h)32 b(is)g(most)g(con)n(v)n(enien)n (tly)e(encapsulated)i(in)g(a)g(com-)0 2790 y(mand)f(script)f(so)g(that) h(it)g(can)g(b)r(e)g(in)n(v)n(ok)n(ed)e(more)h(simply)0 2889 y(as)0 3014 y Fo(bibdup)41 b(*.bib)0 3138 y Fr(to)27 b(pro)r(duce)h(output)g(lik)n(e)f(this:)0 3263 y Fo(Duplicate)40 b(string)h(abbreviation)e(["pub-aw"]:)349 3362 y(#)k(line)f(1)h ("ll.bib")349 3462 y(#)g(line)f(141)g("master.bib")0 3562 y(Duplicate)e(key)i(["lamport:ldp85"])o(:)349 3661 y(#)h(line)f(4)h("ll.bib")349 3761 y(#)g(line)f(4172)g("master.bib")0 3861 y(...)166 3985 y Fr(B)l Fp(i)n(b)-7 b Fr(T)331 4010 y(E)377 3985 y(X's)37 b(grammar)e(is)h(somewhat)g(hazy)-7 b(,)38 b(so)e(it)h(is)0 4085 y(not)27 b(easy)f(to)h(p)r(erform)g(a)f (lexical)h(analysis)e(without)j(some)0 4184 y(con)n(text)19 b(sensitivit)n(y)-7 b(.)33 b Fo(bibclean)16 b Fr(therefore)i(pro)r (duces)h(the)0 4284 y(lexical)31 b(tok)n(en)h(stream)f(merely)g(as)h (an)f(alternate)h(output)0 4384 y(format.)i(In)21 b(particular,)g(this) g(means)g(that)g(an)n(y)f(requested)0 4483 y(run-time)30 b(formatting)g(options)f(will)i(ha)n(v)n(e)e(b)r(een)h(applied)0 4583 y(to)j(the)h(tok)n(ens)e Fl(b)l(efor)l(e)41 b Fr(they)34 b(are)e(output)i(to)f(the)h(lexical)0 4682 y(tok)n(en)c(stream.)43 b(F)-7 b(or)30 b(example,)g(a)g Fp(Scribe)h Fr(bibliograph)n(y)0 4782 y(\014le)i(can)g(b)r(e)g(con)n(v)n(erted)e(to)i(a)g(B)l Fp(i)n(b)-7 b Fr(T)1143 4807 y(E)1189 4782 y(X)33 b(tok)n(en)g(stream)f (so)0 4882 y(that)20 b(soft)n(w)n(are)e(that)i(pro)r(cesses)e Fo(bibclean)p Fr('s)f(output)j(need)0 4981 y(not)28 b(b)r(e)g Fp(Scribe)p Fr(-a)n(w)n(are.)0 5147 y Fq(7)95 b(P)m(ortabilit)m(y)0 5280 y Fo(bibclean)35 b Fr(is)j(written)h(in)f(ANSI/ISO)g(Standard)g(C) g([3])0 5380 y(with)33 b(great)f(care)f(tak)n(en)i(to)f(pro)r(duce)g (maxim)n(um)h(p)r(orta-)2017 100 y(bilit)n(y)-7 b(.)35 b(It)20 b(has)e(b)r(een)i(successfully)f(tested)h(with)g(more)e(than) 2017 199 y(30)24 b(di\013eren)n(t)g(compilers)g(on)g(all)g(ma)5 b(jor)23 b(w)n(orkstation,)g(and)2017 299 y(one)38 b(mainframe,)h Fp(UNIX)d Fr(systems,)k(plus)d Fp(V)-10 b(AX)37 b(VMS)p Fr(,)2017 399 y Fp(PC-DOS)p Fr(,)28 b Fp(OS/2)p Fr(,)f(and)h(A)n(tari)f Fp(TOS)p Fr(.)2183 498 y(The)32 b(C)g(programming)d(language)h(has)i(b) r(ecome)f(the)2017 598 y(language)19 b(of)g(c)n(hoice)g(to)r(da)n(y)g (for)h(most)f(p)r(ersonal)g(computer)2017 697 y(and)g Fp(UNIX)e Fr(soft)n(w)n(are)f(dev)n(elopmen)n(t,)k(and)e(the)h (increasing)2017 797 y(a)n(v)-5 b(ailabilit)n(y)25 b(of)g(C)h(implemen) n(tations)f(conforming)g(to)g(the)2017 897 y(1989)f(Standard)g([3])h (mak)n(es)f(it)i(easier)d(to)i(write)g(co)r(de)g(that)2017 996 y(will)e(compile)f(and)g(run)g(without)g(mo)r(di\014cation)g(on)g (a)f(wide)2017 1096 y(v)-5 b(ariet)n(y)27 b(of)h(systems.)2183 1196 y(C)35 b(do)r(es)f(not)g(ha)n(v)n(e)f(P)n(ascal's)g(problems)g (with)i(c)n(har-)2017 1295 y(acter)f(strings)g(and)g(dynamic)h(memory)f (allo)r(cation)f(that)2017 1395 y(forced)25 b(Don)g(Kn)n(uth)f(to)h (implemen)n(t)h(the)f Fo(WEB)e Fr(string)i(p)r(o)r(ol)2017 1494 y(feature)31 b(and)f(to)h(use)g(compile-time)f(arra)n(y)f(allo)r (cation)g(in)2017 1594 y(the)39 b(T)2217 1612 y(E)2264 1594 y(X)g(soft)n(w)n(are)d(dev)n(elopmen)n(t.)70 b(C's)38 b(ric)n(h)g(op)r(erator)2017 1694 y(syn)n(tax,)29 b(its)h(p)r(o)n(w)n (erful)f(run-time)g(library)-7 b(,)29 b(and)g(generally)2017 1793 y(excellen)n(t)36 b(op)r(erating-system)e(in)n(terfaces)h(ha)n(v)n (e)g(made)h(it)2017 1893 y(widely)e(p)r(opular.)54 b(More)32 b(than)i(a)f(million)h(copies)f(of)g(the)2017 1993 y(\014rst)28 b(edition)h(of)f Fl(The)j(C)g(Pr)l(o)l(gr)l(amming)g(L)l(anguage)k Fr(b)r(o)r(ok)2017 2092 y([13])24 b(ha)n(v)n(e)f(b)r(een)i(sold,)g(and) f(the)g(second)g(edition)h([14)o(])f(ma)n(y)2017 2192 y(do)k(ev)n(en)f(b)r(etter.)2183 2291 y(Nev)n(ertheless,)59 b(C)52 b(has)h(some)f(serious)f(problems.)2017 2391 y(Philipp)r(e)g (Kahn,)k(the)50 b(founder)g(of)g(Borland)f(In)n(terna-)2017 2491 y(tional,)d(has)c(called)g(C)g(a)g Fl(write-only)50 b Fr(language.)79 b(Tw)n(o)2017 2590 y(b)r(o)r(oks)37 b(ha)n(v)n(e)g(b)r(een)h(written)g(ab)r(out)f(its)h(syn)n(tactical)e(p) r(e-)2017 2690 y(culiarities)c([9)o(,)g(17)o(],)i(and)d(one)h(of)g (them)g(has)g(already)e(ap-)2017 2790 y(p)r(eared)d(in)h(a)g(second)f (edition.)2183 2889 y(The)41 b(only)g(w)n(a)n(y)e(to)i(o)n(v)n(ercome)e (these)i(problems)f(is)2017 2989 y(meticulous)48 b(care)e(in)i (programming,)j(and)c(exp)r(erience)2017 3088 y(with)26 b(as)f(man)n(y)g(compilers)f(and)h(computer)g(arc)n(hitectures)2017 3188 y(as)32 b(p)r(ossible.)50 b(Sev)n(eral)31 b(b)r(o)r(oks)h(o\013er) f(v)-5 b(aluable)32 b(advice)g(on)2017 3288 y(C)c(p)r(ortabilit)n(y)f ([10)o(,)h(11)o(,)g(19)o(,)f(23)o(,)h(24)o(,)g(26)o(,)g(29)o(].)2183 3387 y(C++)39 b([8,)g(30)o(])h(is)f(an)g(extension)g(of)h(C)f(to)h (supp)r(ort)2017 3487 y(ob)5 b(ject-orien)n(ted)21 b(programming,)h (and)g(has)g(an)g(en)n(th)n(usias-)2017 3587 y(tic)28 b(follo)n(wing.)37 b(ANSI/ISO)27 b(standardization)f(e\013orts)i(are) 2017 3686 y(in)20 b(progress,)f(sadly)g(while)h(the)g(language)e(is)h (still)h(ev)n(olving.)2183 3786 y(F)-7 b(rom)25 b(the)g(p)r(oin)n(t)h (of)f(view)f(of)h(a)g(C)g(programmer,)e(the)2017 3885 y(adv)-5 b(an)n(tage)23 b(of)h(C++)f(o)n(v)n(er)f(C)i(is)g(its)h(m)n (uc)n(h)e(stricter)h(c)n(hec)n(k-)2017 3985 y(ing)32 b(of)f(t)n(yp)r(e)h(con)n(v)n(ersions)d(and)i(in)n(termo)r(dule)g(in)n (terfaces.)2017 4085 y Fo(bibclean)f Fr(has)j(b)r(een)g(carefully)f (written)i(to)f(b)r(e)g(compil-)2017 4184 y(able)25 b(under)g(C++)f(as) g(w)n(ell)h(as)f(C,)h(and)g(to)f(date,)i(has)e(b)r(een)2017 4284 y(tested)29 b(with)f(more)f(than)h(a)f(dozen)h(C++)f(and)g(Ob)5 b(jectiv)n(e)2017 4384 y(C)28 b(\(another)f(C)h(sup)r(erset\))f (compilers.)2183 4483 y(All)32 b(of)f(the)h(extra)e(features)h(of)g (the)h(C++)e(language)2017 4583 y(are)j(strictly)g(a)n(v)n(oided,)h(b)r (ecause)f(using)h(them)g(w)n(ould)f(se-)2017 4682 y(riously)43 b(limit)h Fo(bibclean)p Fr('s)c(p)r(ortabilit)n(y)-7 b(.)84 b(Not)44 b(only)f(is)2017 4782 y(the)38 b(syn)n(tax)f(of)g(the)h (C++)e(language)g(under)h(ev)n(olution,)2017 4882 y(but)g(the)g(C++)e (class)h(libraries)e(are)i(for)f(the)i(most)f(part)2017 4981 y Fl(c)l(ompletely)41 b(dep)l(endent)47 b Fr(on)37 b(the)i(particular)d(implemen-)2017 5081 y(tation.)49 b(Microsoft's)31 b(1020-page)d(do)r(cumen)n(tation)k(of)f(its)2017 5181 y(C++)h(class)f(library)f(is)i(10\045)f(larger)f(than)i(that)g(of) g(its)g(C)2017 5280 y(run-time)c(library)-7 b(.)p eop %%Page: 405 11 405 10 bop 0 -149 a Fr(TUGb)r(oat,)28 b(V)-7 b(olume)28 b(14)e(\(1993\),)h(No.)g(4)2471 b(405)166 100 y(Nev)n(ertheless,)22 b(I)f Fl(str)l(ongly)j(r)l(e)l(c)l(ommend)30 b Fr(use)22 b(of)f(C++)0 199 y(compilers)e(in)g(preference)g(to)g(C)h(compilers,)g (so)f(as)f(to)i(catc)n(h)0 299 y(bugs)34 b(at)g(compile)g(time)h(that)g (w)n(ould)f(otherwise)f(not)i(b)r(e)0 399 y(found)i(un)n(til)g(p)r (ost-mortem)f(dump)h(time,)j(or)c(when)h(the)0 498 y(co)r(de)27 b(is)h(p)r(orted)f(to)h(a)f(new)h(arc)n(hitecture.)0 664 y Fq(8)95 b Fp(Scribe)32 b Fq(bibliograph)m(y)g(format)0 797 y Fr(The)68 b Fp(Scribe)g Fr(do)r(cumen)n(t)f(formatting)h(system)f ([25)o(])0 897 y(greatly)23 b(in\015uenced)j(L)693 882 y Fn(A)730 897 y Fr(T)776 915 y(E)822 897 y(X)f(and)g(B)l Fp(i)n(b)-7 b Fr(T)1233 922 y(E)1279 897 y(X,)25 b(as)f(w)n(ell)h(as)f (the)0 996 y(GNU)k(Emacs)f(T)528 1014 y(E)574 996 y(Xinfo)h(system.)166 1096 y(With)49 b(care,)i(it)d(is)g(p)r(ossible)f(to)g(share)g (bibliogra-)0 1196 y(ph)n(y)41 b(\014les)h(b)r(et)n(w)n(een)f Fp(Scribe)h Fr(and)g(B)l Fp(i)n(b)-7 b Fr(T)1342 1221 y(E)1388 1196 y(X.)42 b(Nev)n(erthe-)0 1295 y(less,)e(there)d(are)g (some)g(di\013erences,)j(so)c(here)i(is)f(a)g(sum-)0 1395 y(mary)23 b(of)h(features)g(of)g(the)g Fp(Scribe)g Fr(bibliograph)n(y)f(\014le)h(for-)0 1494 y(mat.)50 b(W)-7 b(e)33 b(record)e(them)h(b)r(ecause)g(they)g(are)f(di\016cult)i(to)0 1594 y(determine)c(from)g(the)h(published)f(man)n(ual,)g(and)g(b)r (ecause)0 1694 y(readers)j(ma)n(y)h(sometimes)g(acquire)g(\014les)h(in) g(this)g(format)0 1793 y(without)28 b(ha)n(ving)f(prior)f(exp)r(osure)h (to)g Fp(Scribe)p Fr(.)60 1917 y(1.)41 b(Letter)26 b(case)f(is)g(not)h (signi\014can)n(t)f(in)h(\014eld)g(names)f(and)166 2016 y(en)n(try)47 b(names,)52 b(but)47 b(case)g(is)g(preserv)n(ed)f(in)h(v) -5 b(alue)166 2116 y(strings.)60 2230 y(2.)41 b(In)28 b(\014eld/v)-5 b(alue)27 b(pairs,)f(the)i(\014eld)g(and)f(v)-5 b(alue)28 b(ma)n(y)f(b)r(e)166 2330 y(separated)e(b)n(y)i(one)f(of)g (three)h(c)n(haracters:)34 b Fo(=)p Fr(,)26 b Fo(/)p Fr(,)h(or)e Fo( )166 2429 y Fr(\(space\).)55 b(Space)33 b(ma)n(y)g(optionally)g(surround)f(these)166 2529 y(separators.)60 2643 y(3.)41 b(V)-7 b(alue)37 b(delimiters)g(are)e(an)n(y)h(of)h(these) g(sev)n(en)f(pairs:)166 2743 y Fo({)43 b(})p Fr(,)28 b Fo([)43 b(])p Fr(,)27 b Fo(\()43 b(\))p Fr(,)28 b Fo(<)43 b(>)p Fr(,)27 b Fo(')43 b(')p Fr(,)28 b Fo(")43 b(")p Fr(,)27 b(and)g Fo(`)44 b(`)p Fr(.)60 2857 y(4.)d(V)-7 b(alue)60 b(delimiters)g(ma)n(y)g(not)g(b)r(e)h(nested,)69 b(ev)n(en)166 2956 y(though)60 b(with)g(the)h(\014rst)e(four)h (delimiter)g(pairs,)166 3056 y(nested)22 b(balanced)g(delimiters)g(w)n (ould)g(b)r(e)h(unam)n(bigu-)166 3156 y(ous.)60 3270 y(5.)41 b(Delimiters)36 b(can)e(b)r(e)i(omitted)g(around)e(v)-5 b(alues)35 b(that)166 3369 y(con)n(tain)h(only)f(letters,)k(digits,)f (sharp)d(\()p Fo(#)p Fr(\),)k(amp)r(er-)166 3469 y(sand)27 b(\()p Fo(&)p Fr(\),)h(p)r(erio)r(d)g(\()p Fo(.)p Fr(\),)g(and)f(p)r (ercen)n(t)g(\()p Fo(\045)p Fr(\).)60 3583 y(6.)41 b(Outside)24 b(of)f(delimited)i(v)-5 b(alues,)24 b(a)f(literal)g(at-sign)g(\()p Fo(@)p Fr(\))166 3683 y(is)28 b(represen)n(ted)e(b)n(y)h(doubled)h (at-signs)e(\()p Fo(@@)p Fr(\).)60 3797 y(7.)41 b(Bibliograph)n(y)35 b(en)n(tries)i(b)r(egin)g(with)h Fo(@name)p Fr(,)g(as)f(for)166 3896 y(B)l Fp(i)n(b)-7 b Fr(T)331 3921 y(E)377 3896 y(X,)27 b(but)f(an)n(y)f(of)h(the)h(sev)n(en)e Fp(Scribe)h Fr(v)-5 b(alue)26 b(de-)166 3996 y(limiter)19 b(pairs)g(ma)n(y)f(b)r(e)i(used)f (to)g(surround)f(the)h(v)-5 b(alues)166 4096 y(in)23 b(\014eld/v)-5 b(alue)22 b(pairs.)35 b(As)22 b(in)h(\(4\),)h(nested)f (delimiters)166 4195 y(are)k(forbidden.)60 4309 y(8.)41 b(Arbitrary)19 b(space)h(ma)n(y)g(separate)f(en)n(try)h(names)g(from) 166 4409 y(the)28 b(follo)n(wing)f(delimiters.)60 4523 y(9.)41 b Fo(@Comment)33 b Fr(is)k(a)f(sp)r(ecial)g(command)g(whose)g (delim-)166 4623 y(ited)25 b(v)-5 b(alue)24 b(is)f(discarded.)35 b(As)24 b(in)h(\(4\),)g(nested)f(delim-)166 4722 y(iters)j(are)g (forbidden.)18 4836 y(10.)41 b(The)28 b(sp)r(ecial)f(form)166 4967 y Fo(@Begin{comment})166 5067 y(...)166 5166 y(@End{comment})166 5297 y Fr(p)r(ermits)42 b(encapsulating)g(arbitrary)e(text)i(con)n (tain-)166 5396 y(ing)47 b(an)n(y)f(c)n(haracters)e(or)i(delimiters,)52 b(other)46 b(than)2183 100 y Fo(@End)p Fk(f)p Fo(comment)p Fk(g)p Fr(.)83 b(An)n(y)45 b(of)f(the)h(sev)n(en)f(delimiter)2183 199 y(pairs)57 b(ma)n(y)g(b)r(e)i(used)e(around)g(the)h(w)n(ord)f Fo(com-)2183 299 y(ment)45 b Fr(follo)n(wing)g(the)h Fo(@Begin)d Fr(or)i Fo(@End)p Fr(;)54 b(the)46 b(de-)2183 399 y(limiters)56 b(in)h(the)f(t)n(w)n(o)f(cases)g(need)h(not)g(b)r(e)g (the)2183 498 y(same,)67 b(and)59 b(consequen)n(tly)-7 b(,)66 b Fo(@Begin)p Fk(f)p Fo(comment)p Fk(g)p Fr(/)2183 598 y Fo(@End)p Fk(f)p Fo(comment)p Fk(g)23 b Fr(pairs)j(ma)n(y)h(not)h (b)r(e)g(nested.)2036 704 y(11.)40 b(The)35 b Fo(key)e Fr(\014eld)i(is)f(required)g(in)h(eac)n(h)e(bibliograph)n(y)2183 804 y(en)n(try)-7 b(.)2036 911 y(12.)40 b(A)48 b(bac)n(kslashed)e (quote)h(in)g(a)g(string)f(will)i(b)r(e)f(as-)2183 1010 y(sumed)32 b(to)g(b)r(e)g(a)f(T)2788 1028 y(E)2834 1010 y(X)h(accen)n(t,)h(and)e(braced)g(appro-)2183 1110 y(priately)-7 b(.)36 b(While)28 b(suc)n(h)e(accen)n(ts)g(do)g(not)h(conform)f(to)2183 1209 y Fp(Scribe)43 b Fr(syn)n(tax,)h Fp(Scribe)p Fr(-format)d (bibliographies)2183 1309 y(ha)n(v)n(e)24 b(b)r(een)g(found)h(that)g (app)r(ear)e(to)h(b)r(e)h(in)n(tended)g(for)2183 1409 y(T)2229 1427 y(E)2276 1409 y(X)j(pro)r(cessing.)2183 1528 y(Because)36 b(of)g(this)g(lo)r(ose)f(syn)n(tax,)j Fo(bibclean)p Fr('s)33 b(nor-)2017 1628 y(mal)28 b(error)f(detection)h (heuristics)g(are)f(less)g(e\013ectiv)n(e,)i(and)2017 1728 y(consequen)n(tly)-7 b(,)24 b Fp(Scribe)f Fr(mo)r(de)g(input)h(is) f(not)g(the)h(default;)2017 1827 y(it)k(m)n(ust)g(b)r(e)g(explicitly)g (requested.)2017 1993 y Fq(9)96 b(Recommendations)29 b(for)k Fr(B)l Fp(i)n(b)-7 b Fr(T)3269 2018 y(E)3315 1993 y(X)32 b Fq(design)2017 2126 y Fr(The)25 b(do)r(cumen)n(tation)f (a)n(v)-5 b(ailable)23 b(for)h(B)l Fp(i)n(b)-7 b Fr(T)3376 2151 y(E)3423 2126 y(X)24 b(lea)n(v)n(es)f(sev-)2017 2226 y(eral)37 b(p)r(oin)n(ts)h(ab)r(out)g(the)g(input)g(syn)n(tax)f (unclear,)j(and)d(I)2017 2325 y(had)27 b(to)g(obtain)f(answ)n(ers)f(to) i(the)g(follo)n(wing)f(questions)g(b)n(y)2017 2425 y(exp)r(erimen)n(t:) 2100 2545 y Fk(\017)41 b Fr(Can)29 b(an)g(at-sign)f(o)r(ccur)g(inside)h (a)g Fo(@Comment)p Fk(f)p Fo(...)p Fk(g)p Fr(?)2183 2644 y Fl(No)p Fr(.)2100 2751 y Fk(\017)41 b Fr(Can)31 b(string)f (abbreviation)f(names)h(b)r(e)h(used)g(on)f(the)2183 2851 y(righ)n(t-hand)d(side)g(of)h(string)f(de\014nitions?)37 b Fl(Y)-6 b(es)p Fr(.)2100 2957 y Fk(\017)41 b Fr(Can)28 b(the)g(argumen)n(t)e(of)i Fo(@String)d Fr(b)r(e)j(empt)n(y?)37 b Fl(No)p Fr(.)2100 3064 y Fk(\017)k Fr(Can)25 b(a)f(citation)h(k)n(ey) f(b)r(e)h(omitted)g(in)g(an)g(en)n(try?)35 b Fl(No)p Fr(.)2100 3171 y Fk(\017)41 b Fr(Can)50 b(the)g(list)f(of)h(assignmen)n (ts)e(in)i(an)f(en)n(try)g(b)r(e)2183 3270 y(empt)n(y?)38 b Fl(Y)-6 b(es)p Fr(.)2100 3377 y Fk(\017)41 b Fr(Can)27 b(a)g Fo(@Comment)p Fk(f)p Fo(...)p Fk(g)21 b Fr(o)r(ccur)27 b(b)r(et)n(w)n(een)g(arbitrary)2183 3476 y(tok)n(ens?)37 b Fl(No)p Fr(.)2100 3583 y Fk(\017)k Fr(Are)g(newlines)g(preserv)n(ed)e (in)i(the)g(argumen)n(t)f(of)h(a)2183 3683 y Fo(@Preamble)p Fk(f)p Fo(...)p Fk(g)p Fr(?)31 b(The)25 b(answ)n(er)e(is)i(relev)-5 b(an)n(t)24 b(if)h(the)2183 3782 y(user)38 b(includes)h(T)2746 3800 y(E)2792 3782 y(X)g(commen)n(ts)f(in)h(the)f(pream)n(ble)2183 3882 y(material.)e Fl(No)p Fr(.)2017 4002 y(I)31 b(view)g(the)g(exp)r (erimen)n(tal)f(answ)n(ers)g(to)g(these)h(questions)2017 4101 y(as)j(pure)f(happ)r(enstance,)j(and)d(could)h(reasonably)e(argue) 2017 4201 y(for)c(the)f(opp)r(osite)h(answ)n(ers)e(to)h(the)h(ones)f (obtained.)2017 4367 y Fq(Grammar)2017 4500 y Fr(The)47 b(most)f(imp)r(ortan)n(t)g(recommendation)f(that)i(I)f(can)2017 4599 y(mak)n(e)27 b(for)g(the)g(next)h(v)n(ersion)d(of)i(B)l Fp(i)n(b)-7 b Fr(T)3230 4624 y(E)3277 4599 y(X)27 b(is)g(that)h(it)f Fl(must)2017 4699 y Fr(ha)n(v)n(e)35 b(a)h(rigorous)e(grammar,)j (including)f(a)g(w)n(ell-de\014ned)2017 4799 y(commen)n(t)28 b(syn)n(tax.)2183 4898 y(The)e(grammar)d(can)h(almost)h(b)r(e)g(of)g (the)g(simple)g(class)2017 4998 y(LL\(0\))42 b([2)o(],)j(requiring)40 b(no)i(lo)r(ok)-5 b(ahead)40 b(during)h(parsing,)2017 5098 y(and)23 b(one-c)n(haracter)e(lo)r(ok)-5 b(ahead)22 b(during)g(lexical)h(analysis.)2017 5197 y(Ho)n(w)n(ev)n(er,)38 b(the)f(presence)f(of)h(the)g(string)g(concatenation)2017 5297 y(op)r(erator)j(complicates)g(things)h(su\016cien)n(tly)g(to)g (require)2017 5396 y(at)28 b(least)f(an)g(LL\(1\))h(grammar.)p eop %%Page: 406 12 406 11 bop 0 -149 a Fr(406)2470 b(TUGb)r(oat,)28 b(V)-7 b(olume)27 b(14)g(\(1993\),)f(No.)i(4)166 100 y(Suc)n(h)37 b(grammars)e(are)i(straigh)n(tforw)n(ard)d(to)j(handle)0 199 y(with)29 b(either)f(hand-co)r(ded)f(parsers,)g(or)g(with)h (parsers)f(au-)0 299 y(tomatically)34 b(generated)g(from)h(grammar)e (\014les)i(b)n(y)g(com-)0 399 y(piler)26 b(dev)n(elopmen)n(t)f(to)r (ols)h(lik)n(e)f(the)i Fp(UNIX)d Fo(lex)h Fr([20)o(])h(and)0 498 y Fo(yacc)e Fr([12)o(,)i(21)o(,)f(22)o(,)h(28)o(])g(programs,)e(or) g(the)i(F)-7 b(ree)25 b(Soft)n(w)n(are)0 598 y(F)-7 b(oundation)27 b(equiv)-5 b(alen)n(ts,)27 b Fo(flex)g Fr(and)g Fo(bison)p Fr(.)166 697 y Fo(yacc)35 b Fr(and)i Fo(bison)d Fr(implemen)n(t)k (LALR\(1\))f(parsers;)0 797 y(the)30 b(acron)n(ym)e(stands)h(for)g (\\Lo)r(ok-Ahead)f(at)h(most)g(1)h(to-)0 897 y(k)n(en)20 b(with)i(a)e(Left-to-Righ)n(t)g(deriv)-5 b(ation".)34 b(These)20 b(are)g(sim-)0 996 y(pler)31 b(than)g(the)g(LR\()p Fj(k)s Fr(\))h(grammars)d(in)n(tro)r(duced)i(b)n(y)f(none)0 1096 y(other)20 b(than)g(the)h(author)f(of)g(T)926 1114 y(E)972 1096 y(X)h(in)f(the)h(fundamen)n(tal)g(pa-)0 1196 y(p)r(er)i(on)g(the)g(theory)g(of)g(parsing)e([15)o(].)36 b(Nev)n(ertheless,)23 b(they)0 1295 y(are)18 b(su\016cien)n(t)h(for)f (a)h(broad)e(class)h(of)h(language)e(grammars,)0 1395 y(including)31 b(most)f(ma)5 b(jor)29 b(programming)f(languages,)h(and) 0 1494 y(imp)r(ortan)n(tly)-7 b(,)38 b(they)f(pro)r(duce)e(compact,)j (e\016cien)n(t,)h(fast,)0 1594 y(and)30 b(reliable)g(parsers.)43 b(LL\(1\))30 b(grammars)e(are)h(a)h(sp)r(ecial)0 1694 y(case)24 b(of)h(LALR\(1\))g(grammars,)e(and)i(w)n(e)f(will)i(later)e (de\014ne)0 1793 y(a)i(B)l Fp(i)n(b)-7 b Fr(T)233 1818 y(E)280 1793 y(X)27 b(grammar)e(in)i(LALR\(1\))g(form)g(in)g(Section)g (11.)0 1959 y Fq(Commen)m(t)k(syn)m(tax)0 2092 y Fr(The)c(commen)n(t)h (syn)n(tax)e(should)h(preferably)g(b)r(e)g(iden)n(tical)0 2192 y(to)32 b(that)h(of)g(T)437 2210 y(E)483 2192 y(X,)h(so)e(that)h (a)g(commen)n(t)f(runs)g(from)g(p)r(er-)0 2291 y(cen)n(t)25 b(to)g(end-of-line,)h(and)f(then)g Fl(additional)t(ly)31 b(gobbles)e(al)t(l)0 2391 y(le)l(ading)j(horizontal)g(sp)l(ac)l(e)f(on) f(the)h(next)e(line,)i(up)g(to,)g(but)0 2491 y(not)36 b(including,)i(its)e(end-of-line)p Fr(.)59 b(This)34 b(p)r(ermits)g(break-)0 2590 y(ing)i(of)h(long)e(lines)i(without)f(ha)n (ving)g(to)g(destro)n(y)f(inden-)0 2690 y(tation)30 b(that)g(is)g(so)f (necessary)f(for)i(readabilit)n(y)-7 b(.)43 b(P)n(ercen)n(t-)0 2790 y(initiated)20 b(commen)n(ts)g(are)f(already)f(supp)r(orted)h(in)i (B)l Fp(i)n(b)-7 b Fr(T)1760 2815 y(E)1806 2790 y(X)0 2889 y(st)n(yle)25 b(\014les,)h(though)g(suc)n(h)f(commen)n(ts)h(end)g (after)f(the)h(\014rst)0 2989 y(follo)n(wing)h(newline.)166 3088 y(F)-7 b(or)33 b Fp(Scribe)g Fr(compatibilit)n(y)-7 b(,)35 b(B)l Fp(i)n(b)-7 b Fr(T)1319 3113 y(E)1365 3088 y(X)33 b(should)g(also)0 3188 y(supp)r(ort)d(a)f Fo(@Comment)p Fk(f)p Fo(...)p Fk(g)c Fr(en)n(try)k(t)n(yp)r(e.)45 b(This)30 b(will)g(re-)0 3288 y(quire)35 b(additions)h(to)f Fl(al)t(l)46 b Fr(B)l Fp(i)n(b)-7 b Fr(T)995 3313 y(E)1041 3288 y(X)36 b(st)n(yle)f(\014les,)j(since)e(the)0 3387 y(en)n(try)i(t)n(yp)r(es)g (are)f(kno)n(wn)h(there,)j(and)d(not)g(in)h(the)f(B)l Fp(i)n(b)-7 b Fr(-)0 3487 y(T)46 3512 y(E)92 3487 y(X)27 b(co)r(de)g(itself.)37 b(B)l Fp(i)n(b)-7 b Fr(T)770 3512 y(E)816 3487 y(X)28 b(0.99c)d(already)g(kno)n(ws)h(ab)r(out)0 3587 y Fo(@Comment)p Fk(f)p Fo(...)p Fk(g)p Fr(,)g(but)31 b(the)g Fo(WEB)f Fr(co)r(de)g(section)g(\\Pro)r(cess)0 3686 y(a)k Fo(comment)e Fr(command")i(will)h(ha)n(v)n(e)f(to)g(b)r(e)h (extended)g(to)0 3786 y(deal)27 b(with)h(the)g(grammar)e(c)n(hanges.) 166 3885 y(It)i(is)g(imp)r(ortan)n(t)g(that)g(B)l Fp(i)n(b)-7 b Fr(T)1078 3910 y(E)1125 3885 y(X)28 b(not)g(discard)f Fo(@Com-)0 3985 y(ment)p Fk(f)p Fo(...)p Fk(g)15 b Fr(en)n(tries,)20 b(b)r(ecause)e(it)h(w)n(ould)g(then)g(not)g(b)r(e)g(p)r(os-)0 4085 y(sible)35 b(to)g(write)g(a)g(B)l Fp(i)n(b)-7 b Fr(T)768 4110 y(E)814 4085 y(X)36 b(st)n(yle)f(\014le)g(that)h(con)n(v) n(erted)d(a)0 4184 y(bibliograph)n(y)f(\014le)i(to)g(another)f(format)h (without)g(loss)f(of)0 4284 y(information.)54 b(One)33 b(suc)n(h)g(st)n(yle)g(already)f(exists)h(to)h(con-)0 4384 y(v)n(ert)27 b(B)l Fp(i)n(b)-7 b Fr(T)336 4409 y(E)382 4384 y(X)28 b(\014les)g(to)f Fp(UNIX)f Fo(bib)p Fr(/)p Fo(refer)e Fr(format.)0 4550 y Fq(Characters)33 b(in)f(names)0 4682 y Fr(The)j(c)n(haracters)e(that)j(can)f(app)r(ear)f(in)i(k)n(ey)-7 b(,)36 b(en)n(try)-7 b(,)37 b(and)0 4782 y(\014eld)26 b(names)f Fl(must)33 b Fr(b)r(e)26 b(de\014ned)g(b)n(y)g(en)n (umeration,)f(rather)0 4882 y(than)44 b(b)n(y)f(exclusion,)j(as)d(is)g (curren)n(tly)g(done)g([18)o(,)k(Sec-)0 4981 y(tion)33 b(B.1.3].)51 b(The)33 b(reason)e(is)i(that)g(c)n(haracter)d(sets)j(v)-5 b(ary)0 5081 y(b)r(et)n(w)n(een)39 b(computers,)j(and)d(the)g(new,)j (and)d(v)n(ery)f(m)n(uc)n(h)0 5181 y(larger,)54 b(ISO10646M)47 b(c)n(haracter)h(set)i(ma)n(y)f(b)r(e)h(widely)0 5280 y(a)n(v)-5 b(ailable)45 b(in)i(this)g(decade.)94 b(These)47 b(v)-5 b(ariations)45 b(mak)n(e)0 5380 y(the)29 b(set)f(of)g (admissible)g(name)g(c)n(haracters)e(v)-5 b(ary)27 b(b)r(et)n(w)n(een) 2017 100 y(systems,)37 b(compromising)d(p)r(ortabilit)n(y)-7 b(.)59 b(I)35 b(strongly)e(rec-)2017 199 y(ommend)d(follo)n(wing)f(the) h(con)n(v)n(en)n(tions)e(for)h(iden)n(ti\014ers)g(in)2017 299 y(widely-used)42 b(programming)d(languages)h(to)h(de\014ne)h(the) 2017 399 y(grammar)35 b(of)h(k)n(ey)-7 b(,)38 b(en)n(try)-7 b(,)38 b(and)f(\014eld)f(names.)63 b(It)37 b(seems)2017 498 y(to)28 b(me)h(that)f(letters,)g(digits,)g(colon,)g(h)n(yphen,)g (and)g(p)r(ossi-)2017 598 y(bly)j(plus)f(and)g(slash,)h(should)f(b)r(e) h(adequate,)f(and)g(names)2017 697 y(should)k(b)r(e)g(required)e(to)i (b)r(egin)f(with)i(a)e(letter.)55 b(`Letter')2017 797 y(here)34 b(should)f(include)h Fl(only)42 b Fr(the)34 b(26)f(Roman)h(letters)f(`A')2017 897 y(through)c(`Z',)h(b)r(ecause)f (allo)n(wing)f(letters)i(from)f(other)g(al-)2017 996 y(phab)r(ets)35 b(op)r(ens)f(a)g(horrid)g(can)g(of)g(w)n(orms)g(that)g (will)h(se-)2017 1096 y(riously)27 b(impact)g(p)r(ortabilit)n(y)g(of)g (bibliograph)n(y)f(\014les)h(un)n(til)2017 1196 y(the)33 b(computer)f(w)n(orld)f(has)h(a)g(single)f(uniform)i(c)n(haracter)2017 1295 y(set.)2183 1395 y(I)40 b(tested)g(this)g(set)g(of)f(c)n (haracters)f(against)g(92)h(500)2017 1494 y(en)n(tries)30 b(in)g(lo)r(cal)g(bibliograph)n(y)f(\014les,)h(and)h(found)f(only)g(a) 2017 1594 y(few)k(k)n(eys)e(that)i(used)f(other)g(c)n(haracters:)45 b(the)34 b(new)f(ones)2017 1694 y(w)n(ere)h(p)r(erio)r(d)g(and)f(ap)r (ostrophe)g(\(e.g.)h(O'Malley:TB92\).)2017 1793 y(They)d(migh)n(t)f (therefore)g(b)r(e)h(p)r(ermitted)h(as)e(w)n(ell,)h(though)2017 1893 y(I)26 b(w)n(ould)f(prefer)f(to)i(omit)f(them,)i(and)e(retro\014t) f(c)n(hanges)g(in)2017 1993 y(a)k(few)g(citation)f(k)n(eys.)2183 2092 y(The)67 b(c)n(haracters)d(p)r(ermitted)j(in)g(citation)f(k)n(eys) 2017 2192 y(should)19 b(b)r(e)h(the)g(same)e(as)h(those)g(in)h(en)n (try)e(and)h(\014eld)h(names,)2017 2291 y(so)27 b(as)g(to)h(a)n(v)n (oid)e(user)h(confusion.)2017 2457 y Fq(Error)33 b(rep)s(orting)2017 2590 y Fr(When)k(B)l Fp(i)n(b)-7 b Fr(T)2433 2615 y(E)2479 2590 y(X)37 b(b)r(egins)f(to)g(collect)g(a)g(tok)n(en,)i(it)f(should) 2017 2690 y(record)29 b(the)i(curren)n(t)e(line)i(n)n(um)n(b)r(er.)44 b(When)31 b(an)f(unclosed)2017 2790 y(string)g(later)f(causes)f(in)n (ternal)i(bu\013er)g(o)n(v)n(er\015o)n(w,)d(it)k(could)2017 2889 y(rep)r(ort)20 b(something)f(lik)n(e)h Fo(String)41 b(buffer)g(overflow)f(on)2017 2989 y(input)i(lines)f(24--82)24 b Fr(that)i(w)n(ould)g(b)r(etter)h(help)f(lo)r(cate)2017 3088 y(the)21 b(o\013ending)g(string)e(b)n(y)i(giving)e(its)i(starting) e(and)i(ending)2017 3188 y(line)28 b(n)n(um)n(b)r(ers.)2183 3288 y(T)-7 b(o)38 b(simplify)g(error)d(reco)n(v)n(ery)g(in)j(suc)n(h)f (cases,)i(B)l Fp(i)n(b)-7 b Fr(-)2017 3387 y(T)2063 3412 y(E)2110 3387 y(X)27 b(could)g(additionally)g(require)f(that)h(the)h Fo(@)f Fr(c)n(haracter)2017 3487 y(that)j(starts)d(a)i(new)g(en)n(try)f (m)n(ust)h(b)r(e)g(the)g(\014rst)g(non-space)2017 3587 y(c)n(haracter)d(on)h(a)g(line.)2017 3753 y Fq(File)k(inclusion)2017 3885 y Fr(B)l Fp(i)n(b)-7 b Fr(T)2182 3910 y(E)2229 3885 y(X)35 b(sorely)f(needs)g(a)h(\014le)g(inclusion)g(facilit)n(y)-7 b(.)59 b(With)2017 3985 y(B)l Fp(i)n(b)-7 b Fr(T)2182 4010 y(E)2229 3985 y(X)40 b(0.99c,)h(this)g(feature)e(is)h(a)n(v)-5 b(ailable)38 b(in)i(a)g(crude)2017 4085 y(fashion)24 b(b)n(y)f(listing)h(sev)n(eral)e(\014les)i(in)g(the)g Fo(\\bibliography)2017 4184 y Fr(command.)40 b(Ho)n(w)n(ev)n(er,)28 b(this)h(is)f(not)h(su\016cien)n(tly)g(general,)2017 4284 y(and)j(requires)e(unnecessary)g(kno)n(wledge)g(on)i(the)f(part)h (of)2017 4384 y(the)c(user)f(of)h(the)g(bibliograph)n(y)-7 b(.)2183 4483 y(The)34 b(author)f(of)h(a)f(B)l Fp(i)n(b)-7 b Fr(T)2975 4508 y(E)3021 4483 y(X)35 b(\014le)e(should)h(b)r(e)g(free) g(to)2017 4583 y(restructure)24 b(it)h(in)n(to)f(sub\014les)g(without)h (requiring)e(mo)r(di\014-)2017 4682 y(cations)30 b(to)h(all)g(do)r (cumen)n(ts)f(that)h(use)g(it.)47 b(File)31 b(inclusion)2017 4782 y(is)i(imp)r(ortan)n(t)f(to)h(allo)n(w)e(sharing)h(of)g(common)g (material,)2017 4882 y(suc)n(h)c(as)f Fo(@String)p Fk(f)p Fo(...)p Fk(g)22 b Fr(de\014nitions.)2183 4981 y Fp(Scribe)29 b Fr(uses)e(the)h(form)2017 5106 y Fo(@Include{filename)o(})p eop %%Page: 407 13 407 12 bop 0 -149 a Fr(TUGb)r(oat,)28 b(V)-7 b(olume)28 b(14)e(\(1993\),)h(No.)g(4)2471 b(407)0 100 y(and)27 b(B)l Fp(i)n(b)-7 b Fr(T)326 125 y(E)372 100 y(X)27 b(should)g(to)r(o.) 36 b(It)27 b(m)n(ust)g(b)r(e)h(p)r(ossible)e(to)h(nest)0 199 y(\014le)40 b(inclusions)f(to)h(a)f(reasonable)e(depth,)44 b(at)39 b(least)g(\014v)n(e)0 299 y(lev)n(els.)0 465 y Fq(10)95 b(A)32 b(lexical)f(grammar)h(for)h Fr(B)l Fp(i)n(b)-7 b Fr(T)1313 490 y(E)1359 465 y(X)0 598 y(T)g(o)32 b(test)h(the)h(recommendations)d(of)i(Section)f(9,)i(I)f(wrote)0 697 y(and)c(tested)g(a)f Fo(lex)g Fr(grammar)f(for)h(B)l Fp(i)n(b)-7 b Fr(T)1289 722 y(E)1336 697 y(X.)29 b(It)g(to)r(ok)f(just) 0 797 y(22)33 b(rules)h(to)g(iden)n(tify)h(the)f(19)f(basic)h(tok)n(en) f(t)n(yp)r(es.)57 b(The)0 897 y(complete)42 b Fo(lex)g Fr(\014le)g(w)n(as)f(ab)r(out)i(510)e(lines)h(long,)k(with)0 996 y(ab)r(out)22 b(340)f(lines)i(of)f(C)g(co)r(de)g(mostly)g (concerned)g(with)h(the)0 1096 y(input)e(and)e(output)i(of)e(strings,)i (and)f(120)e(lines)i(of)f(function)0 1196 y(and)25 b(v)-5 b(ariable)24 b(declarations.)34 b(After)26 b Fo(lex)e Fr(pro)r(cessing,)g(the)0 1295 y(complete)d(C)h(program)d(w)n(as)i(ab)r (out)g(1130)e(lines)j(long;)h(with)0 1395 y Fo(flex)p Fr(,)30 b(it)h(is)g(1700)e(lines)h(long.)46 b(This)31 b(program)e(is)h(named)0 1494 y Fo(biblex)p Fr(,)35 b(and)g(its)g (output)h(is)f(compatible)g(with)h(that)f(of)0 1594 y Fo(bibclean)24 b Fr(with)k(the)f Fo(-no-prettyprint)21 b Fr(option.)37 b(Ho)n(w-)0 1694 y(ev)n(er,)27 b(it)h(o\013ers)e(none)i (of)f Fo(bibclean)p Fr('s)d(other)j(services.)166 1793 y(The)35 b Fo(lex)f Fr(grammar)g(is)h(presen)n(ted)f(in)i(this)f (section)0 1893 y(in)28 b(the)g(st)n(yle)f(of)h(literate)f (programming,)f(with)i(grammar)0 1993 y(rules)j(in)n(tersp)r(ersed)f (with)i(descriptiv)n(e)e(text.)49 b(The)31 b(index)0 2092 y(at)38 b(the)g(end)g(of)f(this)h(do)r(cumen)n(t)g(pro)n(vides)f (an)g(essen)n(tial)0 2192 y(feature)j(of)h(a)f(literate)g(program.)74 b(T)-7 b(o)40 b(m)n(y)g(kno)n(wledge,)0 2291 y(no)32 b Fo(WEB)e Fr(facilit)n(y)i(y)n(et)g(exists)f(for)h Fo(lex)e Fr(and)i Fo(yacc)p Fr(,)g(so)f(this)0 2391 y(literate)c(program)f(m)n (ust)h(b)r(e)h(handcrafted.)0 2557 y Fq(File)j(structure)0 2690 y Fr(A)d Fo(lex)e Fr(\014le)i(has)f(this)h(general)e(structure:)0 2814 y Fo(definitions)0 2914 y(\045\045)0 3014 y(rules)0 3113 y(\045\045)0 3213 y(user)42 b(functions)166 3337 y Fr(C)31 b(declarations)e(and)i(de\014nitions)g(can)f(b)r(e)i (included)0 3437 y(in)k(the)g(declarations)e(part)h(if)h(they)g(are)f (enclosed)g(in)h Fo(\045{)0 3537 y Fr(and)h Fo(\045})p Fr(.)63 b(Suc)n(h)37 b(text)g(is)g(copied)g(v)n(erbatim)f(to)g(the)h (out-)0 3636 y(put)28 b(co)r(de)g(\014le,)f(together)g(with)h (additional)f Fo(lex)p Fr(-supplied)0 3736 y(header)g(co)r(de.)166 3836 y(Running)h Fo(lex)f Fr(on)h(this)g(\014le)g(pro)r(duces)f(a)h(C)g (\014le)g(that)0 3935 y(can)37 b(b)r(e)g(compiled)g(and)g(link)n(ed)g (with)g(a)g(main)g(program)0 4035 y(from)f(the)h Fo(lex)e Fr(library)g(to)i(pro)r(duce)f(a)g(w)n(orking)f(lexical)0 4134 y(analyzer.)65 b(Alternativ)n(ely)-7 b(,)39 b(the)f(user)e(can)h (write)h(a)f(cus-)0 4234 y(tomized)22 b(main)h(program)d(whic)n(h)i(is) h(link)n(ed)f(with)h(the)g Fo(lex)p Fr(-)0 4334 y(generated)j(co)r(de)i (to)f(mak)n(e)g(a)g(functional)h(lexer.)166 4433 y(In)42 b(the)g(follo)n(wing)f(subsections,)j(w)n(e)d(describ)r(e)h(the)0 4533 y(con)n(ten)n(ts)25 b(of)h(the)g(de\014nitions)g(and)g(rules)f (parts,)h(but)g(omit)0 4633 y(the)d(user)f(functions,)i(since)f(they)f (are)g(not)h(relev)-5 b(an)n(t)22 b(to)g(un-)0 4732 y(derstanding)27 b(the)h(grammar.)0 4898 y Fq(Macro)k(de\014nitions)0 5031 y Fr(The)43 b Fo(lex)f Fr(grammar)e(b)r(egins)j(with)g(macro)f (de\014nitions.)0 5131 y Fo(lex)32 b Fr(macros)g(are)g(single)g (letters)h(follo)n(w)n(ed)f(b)n(y)h(a)g(regular)0 5230 y(expression)26 b(that)i(de\014nes)g(them.)2183 100 y(In)k(regular)e (expressions,)g(square)g(brac)n(k)n(ets)g(delimit)2017 199 y(sets)51 b(of)f(c)n(haracters,)55 b(h)n(yphen)50 b(is)h(used)f(for)h(c)n(haracter)2017 299 y(ranges)36 b(inside)h(sets,)j(asterisk)35 b(means)i(zero)f(or)g(more)h(of)2017 399 y(the)26 b(preceding)f(pattern,)h(and)g(plus)f(means)g(one)h(or)e (more.)2017 498 y(A)f(p)r(erio)r(d)g(represen)n(ts)d(an)n(y)i(c)n (haracter)e(other)i(than)h(a)f(new-)2017 598 y(line.)2183 697 y Fo(lex)27 b Fr(macro)g(names)g(are)g(braced)g(to)g(request)g (expan-)2017 797 y(sion)h(when)f(they)h(are)f(used)g(in)h(grammar)e (rules.)2183 897 y(The)35 b(\014rst)e(macro,)i Fo(N)p Fr(,)e(represen)n(ts)g(the)h(set)g(of)g(c)n(har-)2017 996 y(acters)24 b(p)r(ermitted)i(in)g(B)l Fp(i)n(b)-7 b Fr(T)2898 1021 y(E)2944 996 y(X)25 b(names)g(of)g(abbreviations,)2017 1096 y(citation)33 b(k)n(eys,)g(en)n(tries,)g(and)f(\014elds.)52 b(If)33 b(this)g(set)f(is)h(ev)n(er)2017 1196 y(mo)r(di\014ed,)h(this)e (is)f(the)i Fl(only)40 b Fr(place)31 b(where)g(that)h(job)g(has)2017 1295 y(to)c(b)r(e)g(done.)2017 1420 y Fo(N)174 b([A-Za-z][---A-Za-)o (z0-)o(9:)o(.+)o(/'])o(*)2183 1544 y Fr(It)34 b(is)f(not)g(reasonable)f (to)h(mak)n(e)f(this)h(set)h(di\013er)f(for)2017 1644 y(these)27 b(four)e(di\013eren)n(t)h(uses,)h(b)r(ecause)e(the)i (di\013erences)f(are)2017 1743 y(insu\016cien)n(t)45 b(to)f(distinguish)h(b)r(et)n(w)n(een)f(them)h(lexically)-7 b(.)2017 1843 y(W)g(e'll)36 b(see)e(later)g(that)h(w)n(e)f(ha)n(v)n(e)f (to)i(examine)f(surround-)2017 1943 y(ing)28 b(con)n(text)f(to)g(tell)h (them)h(apart.)2183 2042 y(Macro)35 b Fo(O)h Fr(represen)n(ts)f(the)h (set)g(of)g(op)r(en)h(delimiters)2017 2142 y(that)31 b(start)e(a)h(B)l Fp(i)n(b)-7 b Fr(T)2638 2167 y(E)2684 2142 y(X)31 b(en)n(try)e(argumen)n(t.)44 b(W)-7 b(e)30 b(could)g(ex-)2017 2242 y(tend)c(this)g(grammar)e(for)h Fp(Scribe)h Fr(b)n(y)f(adding)g(additional)2017 2341 y(c)n(haracters)h(to)h(the)h(set.)2017 2466 y Fo(O)174 b([\({])2183 2590 y Fr(Macro)43 b Fo(W)h Fr(represen)n(ts)f(a)g(single) h(horizon)n(tal)e(space)2017 2690 y(c)n(haracter.)2017 2814 y Fo(W)174 b([)44 b(\\f\\r\\t\\013])2017 2939 y Fr(Notice)c(that)f(w)n(e)g(include)h(formfeed,)i Fo(\\f)p Fr(,)g(and)d(v)n(ertical)2017 3039 y(tab,)j Fo(\\v)p Fr(,)e(in)f(the)g(set)g(of)f(horizon)n(tal)f(space)h(c)n(haracters,) 2017 3138 y(ev)n(en)20 b(though)g(they)g(pro)r(duce)g(v)n(ertical)f (motion)g(on)h(an)g(out-)2017 3238 y(put)h(device.)34 b(The)19 b(reason)f(is)i(that)f(w)n(e)h(w)n(an)n(t)e(to)i(treat)f(them) 2017 3337 y(just)i(lik)n(e)f(blanks,)h(and)f(distinguish)g(them)h(from) e(newlines,)2017 3437 y(whic)n(h)33 b(are)f(handled)h(separately)-7 b(.)51 b Fo(lex)32 b Fr(do)r(es)h(not)f(recog-)2017 3537 y(nize)26 b(the)f(escap)r(e)g(sequence)f Fo(\\v)p Fr(,)h(so)g(w)n(e)f (ha)n(v)n(e)g(to)h(reenco)r(de)2017 3636 y(it)j(in)g(o)r(ctal)g(as)e Fo(\\013)p Fr(.)2183 3736 y(Carriage)40 b(return,)46 b Fo(\\r)p Fr(,)g(is)c(not)h(normally)e(used)h(in)2017 3836 y Fp(UNIX)30 b Fr(text)i(\014les,)h(but)f(is)f(common)g(in)h(some) f(other)g(op-)2017 3935 y(erating)d(systems.)41 b(On)29 b(the)g(Apple)g(Macin)n(tosh,)g(carriage)2017 4035 y(return)35 b(is)h(used)f(instead)g(of)h(newline)f(as)g(an)g(end-of-line)2017 4134 y(mark)n(er.)i(F)-7 b(ortunately)g(,)28 b(this)h(will)f(b)r(e)h (transparen)n(t)d(to)i(us,)2017 4234 y(b)r(ecause)38 b(the)g(C)f(language)f(requires)g([3,)k(Section)e(2.2.2])2017 4334 y(that)30 b(the)g(implemen)n(tation)f(map)g(host)g(line)h (terminators)2017 4433 y(to)i(newline)h(on)e(input,)j(and)e(newline)g (bac)n(k)g(to)g(host)f(line)2017 4533 y(terminators)25 b(on)g(output,)i(so)e(w)n(e)h(will)g(nev)n(er)f(see)g(carriage)2017 4633 y(returns)i(on)h(that)g(system.)2183 4732 y(The)g(last)f(macro,)f Fo(S)p Fr(,)h(represen)n(ts)f(optional)g(horizon-)2017 4832 y(tal)i(space.)2017 4956 y Fo(S)174 b({W}*)2017 5122 y Fq(F)-8 b(ormat)33 b(of)e(grammar)h(rules)2017 5255 y Fr(The)h(remainder)f(of)g(the)i(grammar)c(consists)i(of)h(pairs) f(of)2017 5355 y(regular)h(expression)g(patterns)g(and)h(C)h(co)r(de)f (to)g(execute)p eop %%Page: 408 14 408 13 bop 0 -149 a Fr(408)2470 b(TUGb)r(oat,)28 b(V)-7 b(olume)27 b(14)g(\(1993\),)f(No.)i(4)0 100 y(when)g(the)h(pattern)f (is)g(matc)n(hed.)39 b Fo(lex)27 b Fr(uses)g(a)h(\\maximal)0 199 y(m)n(unc)n(h")39 b(strategy)e(in)j(matc)n(hing)e(the)i(longest)e (p)r(ossible)0 299 y(sequence)f(to)g(handle)g(the)g(case)g(where)f(t)n (w)n(o)h(rules)f(ha)n(v)n(e)0 399 y(common)27 b(leading)g(patterns.)166 498 y(In)i(the)g(grammar)d(\014le,)j(the)g(pairs)f(are)f(eac)n(h)h (written)0 598 y(on)f(a)h(single)f(line,)h(but)g(w)n(e)f(wrap)g(lines)h (here)f(to)h(\014t)g(in)g(the)0 697 y(narro)n(w)22 b(journal)i (columns,)h(with)f(the)h(bac)n(kslash-newline)0 797 y(con)n(v)n(en)n (tion)h(used)i(earlier.)0 963 y Fo(@)j Fq(tok)m(en)0 1096 y Fr(The)43 b(\014rst)h(grammar)d(rule)i(sa)n(ys)f(that)i(an)f Fo(@)g Fr(c)n(haracter)0 1196 y(should)24 b(b)r(e)g(recognized)f(as)g (the)i(tok)n(en)e(named)h Fo(TOKEN_AT)p Fr(.)0 1320 y Fo([@])173 b(RETURN)41 b(\(out_token\(TOKEN_)o(AT)o(\)\);)166 1445 y Fr(On)26 b(a)f(successful)g(matc)n(h,)h(the)g(output)g(function) h(op-)0 1544 y(tionally)i(emits)h(the)h(tok)n(en,)f(then)g(returns)f (its)h(argumen)n(t)0 1644 y(as)h(a)g(function)h(v)-5 b(alue)31 b(whic)n(h)h(the)g(lexer)e(in)i(turn)g(returns)0 1743 y(to)27 b(the)h(parser.)166 1843 y(The)37 b(C)f Fo(return)e Fr(statemen)n(t)j(is)f(hidden)h(inside)g(the)0 1943 y Fo(RETURN)19 b Fr(macro,)i(b)r(ecause)g(for)g Fo(yacc)e Fr(and)i Fo(bison)p Fr(,)g(w)n(e)g(need)0 2042 y(to)45 b(bias)g Fo(bibclean)p Fr('s)d(small)j(in)n(teger)f(tok)n(en)h (v)-5 b(alues)45 b(to)0 2142 y(mo)n(v)n(e)26 b(them)j(b)r(ey)n(ond)e (the)h(range)e(of)i(c)n(haracter)d(ordinals.)0 2308 y Fo(Comment)p Fq(,)j Fo(Include)p Fq(,)h Fo(Preamble)p Fq(,)f(and)k Fo(String)0 2408 y Fq(tok)m(ens)0 2540 y Fr(The)j(next)h(four)e(rules)h(ignore)f(letter)h(case)f(in)i(matc)n (hing)0 2640 y(the)26 b(w)n(ords)e Fo(Comment)p Fr(,)g Fo(Include)p Fr(,)f Fo(Preamble)p Fr(,)g(or)h Fo(String)p Fr(.)0 2740 y(If)31 b(they)f(follo)n(w)g(an)g Fo(@)f Fr(c)n(haracter,)g(they)i(are)e(iden)n(ti\014ed)i(as)0 2839 y(sp)r(ecial)19 b(tok)n(ens;)i(otherwise,)f(they)g(are)e(regarded) f(as)i(string)0 2939 y(abbreviation)26 b(names.)0 3064 y Fo([Cc][Oo][Mm][Mm])o([Ee)o(][)o(Nn)o(][T)o(t])37 b(\\)174 3163 y(RETURN)k(\(\(last_token)e(==)k(TOKEN_AT\))d(?)567 3263 y(out_token\(TOKEN)o(_CO)o(MM)o(ENT)o(\))d(:)567 3362 y(out_token\(TOKEN)o(_AB)o(BR)o(EV\))o(\);)0 3562 y([Ii][Nn][Cc][Ll])o([Uu)o(][)o(Dd)o(][E)o(e])o(/{S)o(}{)o(O})g(\\)174 3661 y(RETURN)k(\(\(last_token)e(==)k(TOKEN_AT\))d(?)349 3761 y(out_token\(TOKEN)o(_IN)o(CL)o(UDE)o(\))d(:)349 3861 y(out_token\(TOKEN)o(_AB)o(BR)o(EV\))o(\);)0 4060 y([Pp][Rr][Ee][Aa])o([Mm)o(][)o(Bb)o(][L)o(l])o([Ee)o(]/)o({S})o({O)o (})g(\\)174 4159 y(RETURN)k(\(\(last_token)e(==)k(TOKEN_AT\))d(?)349 4259 y(out_token\(TOKEN)o(_PR)o(EA)o(MBL)o(E\))d(:)349 4359 y(out_token\(TOKEN)o(_AB)o(BR)o(EV\))o(\);)0 4558 y([Ss][Tt][Rr][Ii])o([Nn)o(][)o(Gg)o(]/{)o(S})o({O})g(\\)174 4658 y(RETURN)k(\(\(last_token)e(==)k(TOKEN_AT\))d(?)349 4757 y(out_token\(TOKEN)o(_ST)o(RI)o(NG\))d(:)349 4857 y(out_token\(TOKEN)o(_AB)o(BR)o(EV\))o(\);)166 4981 y Fr(Although)46 b Fo(lex)e Fr(supp)r(orts)h(examination)f(of)i(trail-)0 5081 y(ing)41 b(con)n(text)f(in)i(order)d(to)i(iden)n(tify)g(tok)n(ens) g(more)f(pre-)0 5181 y(cisely)-7 b(,)32 b(the)f(presence)f(of)h (arbitrary)f(whitespace)g(and)h(in-)0 5280 y(line)c(commen)n(ts)g(in)h (this)f(grammar)e(mak)n(es)i(it)g(imp)r(ossible)0 5380 y(to)k(use)f(this)h(feature.)46 b(The)31 b(output)g(routines)f(remem)n (b)r(er)2017 100 y(the)k(last)e(non-space,)h(non-commen)n(t)f(tok)n(en) g(seen)h(in)g(or-)2017 199 y(der)24 b(to)h(mak)n(e)e(use)i(of)f (leading)g(con)n(text)g(to)g(assist)f(in)i(tok)n(en)2017 299 y(iden)n(ti\014cation.)2017 465 y Fq(Abbreviation,)32 b(en)m(try)-8 b(,)32 b(\014eld,)f(and)h(k)m(ey)h(tok)m(ens)2017 598 y Fr(Sev)n(eral)26 b(tok)n(en)g(t)n(yp)r(es)h(are)f(recognized)f(b) n(y)i(a)f(matc)n(h)h(with)2017 697 y(the)38 b(name)e(macro,)i Fo(N)p Fr(.)e(Since)h(the)g(same)f(set)h(of)g(c)n(harac-)2017 797 y(ters)d(can)g(o)r(ccur)f(in)h(abbreviations,)g(en)n(try)g(names,)h (\014eld)2017 897 y(names,)26 b(and)f(k)n(ey)g(names,)h(w)n(e)f(ha)n(v) n(e)f(to)h(use)h(the)g(record)e(of)2017 996 y(leading)35 b(con)n(text)f(to)h(distinguish)g(b)r(et)n(w)n(een)g(the)h(v)-5 b(arious)2017 1096 y(p)r(ossibilities.)2017 1215 y Fo({N})43 b({)2323 1315 y(if)f(\(last_object)d(==)k(TOKEN_STRING\))2497 1414 y(RETURN\(out_token)o(\(T)o(OKE)o(N_)o(ABB)o(RE)o(V\))o(\);)2323 1514 y(switch)e(\(last_token\))2323 1613 y({)2323 1713 y(case)g(TOKEN_COMMA:)2497 1813 y(RETURN\(out_token)o(\(T)o(OKE)o(N_)o (FIE)o(LD)o(\)\))o(;)2323 1912 y(case)g(TOKEN_LBRACE:)2497 2012 y(RETURN\(out_token)o(\(T)o(OKE)o(N_)o(KEY)o(\)\))o(;)2323 2112 y(case)g(TOKEN_AT:)2497 2211 y(RETURN\(out_token)o(\(T)o(OKE)o(N_) o(ENT)o(RY)o(\)\))o(;)2323 2311 y(default:)2497 2410 y(RETURN\(out_token)o(\(T)o(OKE)o(N_)o(ABB)o(RE)o(V\))o(\);)2323 2510 y(})2192 2610 y(})2183 2729 y Fr(In)30 b(the)f(ev)n(en)n(t)g(of)g (errors)e(in)i(the)h(input)f(stream,)g(this)2017 2828 y(iden)n(ti\014cation)23 b(of)g(tok)n(en)f(t)n(yp)r(es)h(ma)n(y)g(b)r (e)g(unreliable;)h(suc)n(h)2017 2928 y(errors)f(will)i(b)r(e)g (detected)g(later)f(in)h(the)g(parsing)e(program.)2017 3094 y Fq(Digit)31 b(string)2017 3227 y Fr(A)k Fl(digit)i(string)42 b Fr(is)34 b(an)g(undelimited)h(v)-5 b(alue)34 b(string.)56 b(The)2017 3326 y(output)39 b(function)f(will)g(supply)g(the)g(missing) f(quotation)2017 3426 y(mark)29 b(delimiters,)g(so)g(that)g(all)g (strings)f(tak)n(e)h(a)f(standard)2017 3526 y(form.)2017 3645 y Fo([0-9]+)172 b(RETURN)41 b(\(out_protected_st)o(rin)o(g\()c(\\) 2192 3744 y(TOKEN_VALUE\)\);)2017 3930 y Fq(In-line)31 b(commen)m(t)h(tok)m(en)2017 4063 y Fr(A)42 b(p)r(ercen)n(t)f (initiates)g(an)g Fl(in-line)h(c)l(omment)49 b Fr(that)41 b(con-)2017 4162 y(tin)n(ues)35 b(to)g(the)g(end)g(of)f(line)h(and)g (then)g(o)n(v)n(er)e(all)h(leading)2017 4262 y(horizon)n(tal)26 b(space)h(on)h(the)g(next)f(line.)2017 4381 y Fo([\045].*[\\n]{S})39 b(\\)2192 4480 y(RETURN)i(\(out_token\(TOKEN)o(_I)o(NLI)o(NE)o(\)\);) 2183 4599 y Fr(Because)31 b(this)h(pattern)f(marks)f(the)i(start)f(of)g (a)g(new)2017 4699 y(tok)n(en,)38 b(the)e(previous)f(tok)n(en)h(has)f (already)f(b)r(een)j(termi-)2017 4799 y(nated.)64 b(Th)n(us,)39 b(an)d(line-line)h(commen)n(t)g Fl(c)l(annot)44 b Fr(split)37 b(a)2017 4898 y(tok)n(en.)67 b(The)38 b(same)f(is)h(true)f(for)h(T)3168 4916 y(E)3214 4898 y(X)g(macros,)h(though)2017 4998 y(not)28 b(for)f(ordinary)f(T)2673 5016 y(E)2719 4998 y(X)i(text.)2017 5164 y Fq(String)k(concatenation)h(tok)m(en)2017 5297 y Fr(A)25 b(sharp)f(sign)g(is)g(the)h(B)l Fp(i)n(b)-7 b Fr(T)2881 5322 y(E)2927 5297 y(X)25 b Fl(string)i(c)l(onc)l (atenation)g(op-)2017 5396 y(er)l(ator)p Fr(.)p eop %%Page: 409 15 409 14 bop 0 -149 a Fr(TUGb)r(oat,)28 b(V)-7 b(olume)28 b(14)e(\(1993\),)h(No.)g(4)2471 b(409)0 100 y Fo([#])173 b(RETURN)41 b(\(out_token\(TOKEN_)o(SH)o(ARP)o(\)\))o(;)0 291 y Fq(Delimited)30 b(string)h(tok)m(en)0 423 y Fr(A)d(quotation)f (mark)g(initiates)g(a)g Fl(delimite)l(d)32 b(string)p Fr(.)0 548 y Fo(["])173 b(RETURN)41 b(\(out_string\(\)\);)166 672 y Fr(The)24 b(complete)f(string)g(m)n(ust)g(b)r(e)h(collected)f(b)n (y)g(the)h(C)0 772 y(function)k Fo(out_string\(\))22 b Fr(b)r(ecause)27 b(regular)e(expressions)0 872 y(cannot)i(coun)n(t)g (balanced)g(delimiters.)166 971 y(B)l Fp(i)n(b)-7 b Fr(T)331 996 y(E)377 971 y(X's)42 b(quoted)f(string)g(syn)n(tax)g(is)h(a)f (little)h(un-)0 1071 y(usual,)24 b(in)g(that)g(an)g(em)n(b)r(edded)g (quote)g(is)f(not)h(represen)n(ted)0 1171 y(b)n(y)i(double)g(quotes,)g (as)g(in)g(F)-7 b(ortran,)26 b(or)f(b)n(y)h(an)g(escap)r(e)g(se-)0 1270 y(quence,)42 b(as)c(in)h(C,)g(but)h(rather)e(b)n(y)g(putting)i (the)f(quote)0 1370 y(c)n(haracter)26 b(in)h(braces.)0 1536 y Fq(Brace)33 b(tok)m(ens)0 1669 y Fr(Left)22 b(and)e(righ)n(t)h Fl(br)l(ac)l(es)28 b Fr(are)20 b(recognized)g(as)g(single)h(tok)n(ens.) 0 1793 y Fo([{])173 b(RETURN)41 b(\(out_lbrace\(\)\);)0 1993 y([}])173 b(RETURN)41 b(\(out_rbrace\(\)\);)166 2117 y Fr(The)28 b(output)g(functions)g(k)n(eep)g(trac)n(k)e(of)i(the)g (curren)n(t)0 2217 y(brace)j(lev)n(el)h(to)g(distinguish)g(b)r(et)n(w)n (een)h(outer)e(braces)g(de-)0 2316 y(limiting)j(a)g(B)l Fp(i)n(b)-7 b Fr(T)556 2341 y(E)602 2316 y(X)34 b(en)n(try)-7 b(,)35 b(and)f(inner)g(braces)f(delimit-)0 2416 y(ing)k(a)f(string)g(v) -5 b(alue,)39 b(and)e(return)f Fo(TOKEN_LBRACE)p Fr(,)c Fo(TO-)0 2516 y(KEN_LITERAL)p Fr(,)18 b Fo(TOKEN_RBRACE)p Fr(,)f(or)k Fo(TOKEN_STRING)p Fr(,)c(de-)0 2615 y(p)r(ending)28 b(on)f(preceding)g(con)n(text.)166 2715 y Fo(TOKEN_LITERAL)j Fr(is)36 b(used)g(for)f(the)h(argumen)n(t)f(of)g(a)0 2814 y Fo(Comment)26 b Fr(and)j Fo(Include)e Fr(en)n(tries,)i(and)g (con)n(tains)f(the)h(de-)0 2914 y(limiting)f(braces.)0 3080 y Fq(P)m(aren)m(thesis)k(tok)m(ens)0 3213 y Fr(In)d(order)f(to)h (simplify)g(the)g(parser)f(grammar,)f(w)n(e)i(remap)0 3313 y(outer)35 b Fl(p)l(ar)l(entheses)44 b Fr(delimiting)36 b(argumen)n(ts)f(of)h(B)l Fp(i)n(b)-7 b Fr(T)1760 3338 y(E)1806 3313 y(X)0 3412 y(en)n(tries)37 b(to)g Fl(br)l(ac)l(es)p Fr(.)66 b(Ho)n(w)n(ev)n(er,)38 b(if)g(the)f(paren)n(theses)f(are)0 3512 y(not)e(preceded)f(b)n(y)g(a)g(v)-5 b(alid)33 b(en)n(try)g(name,)i (they)f(are)e(out-)0 3611 y(put)37 b(instead)g(as)f(single-c)n (haracter)d(tok)n(ens)j(of)g(t)n(yp)r(e)h Fo(TO-)0 3711 y(KEN_LITERAL)p Fr(.)17 b(They)k(cannot)g(legally)f(o)r(ccur)h(in)g (this)h(con-)0 3811 y(text,)h(but)g(that)e(error)f(will)i(b)r(e)g (detected)g(during)f(the)h(pars-)0 3910 y(ing)32 b(stage.)52 b(During)32 b(lexical)g(analysis,)h(w)n(e)g(do)f(not)h(w)n(an)n(t)0 4010 y(to)27 b(ha)n(v)n(e)g(an)n(y)g(error)e(conditions.)0 4134 y Fo([\(])173 b(RETURN)41 b(\(out_lparen\(\)\);)0 4334 y([\)])173 b(RETURN)41 b(\(out_rparen\(\)\);)166 4458 y Fr(T)-7 b(o)25 b(supp)r(ort)g Fp(Scribe)p Fr(,)i(w)n(e)e(w)n (ould)g(need)h(to)f(add)g(pat-)0 4558 y(terns)i(for)g(other)g (delimiters)h(here.)0 4724 y Fq(Assignmen)m(t)i(and)j(separator)f(tok)m (ens)0 4857 y Fr(The)c Fl(assignment)i(op)l(er)l(ator)38 b Fr(and)27 b Fl(assignment)j(sep)l(ar)l(ator)0 4956 y Fr(are)d(returned)g(as)g(single)g(tok)n(ens.)0 5081 y Fo([=])173 b(RETURN)41 b(\(out_token\(TOKEN_)o(EQ)o(UAL)o(S\))o(\);)0 5280 y([,])173 b(RETURN)41 b(\(out_token\(TOKEN_)o(CO)o(MMA)o(\)\))o(;) 2017 100 y Fq(Newline)31 b(tok)m(en)2017 232 y Fr(A)j Fl(new)t(line)40 b Fr(is)33 b(returned)f(as)g(a)h(separate)f(tok)n(en)g (b)r(ecause)2017 332 y(w)n(e)k(w)n(an)n(t)f(to)h(b)r(e)g(able)f(to)h (preserv)n(e)e(line)i(b)r(oundaries)f(so)2017 432 y(that)41 b(\014lter)f(to)r(ols)g(that)h(mak)n(e)f(minimal)g(p)r(erturbations) 2017 531 y(on)28 b(the)g(input)g(stream)f(can)g(b)r(e)h(constructed.) 2017 656 y Fo([\\n])173 b(RETURN)41 b(\(out_token\(TOKEN_)o(NE)o(WLI)o (NE)o(\)\))o(;)2017 847 y Fq(Horizon)m(tal)32 b(space)g(tok)m(en)2017 980 y Fr(Consecutiv)n(e)60 b(horizon)n(tal)f(space)g(c)n(haracters)f (are)h(re-)2017 1079 y(turned)30 b(as)f(a)g(single)g(space)g(tok)n(en,) g(for)g(the)h(same)f(reason)2017 1179 y(that)37 b(newlines)g(are)e (recognized)g(as)h(distinct)h(tok)n(ens)f(b)n(y)2017 1279 y(the)28 b(preceding)f(rule.)2017 1403 y Fo({W}+)173 b(RETURN)41 b(\(out_token\(TOKEN_)o(SP)o(ACE)o(\)\))o(;)2017 1594 y Fq(Unclassi\014able)32 b(tok)m(ens)2017 1727 y Fr(Finally)-7 b(,)30 b(w)n(e)f(ha)n(v)n(e)f(a)g(catc)n(h-all)g(rule:)40 b(an)n(y)28 b(c)n(haracter)g(not)2017 1826 y(recognized)d(b)n(y)i(one)f (of)g(the)h(preceding)f(rules)g(is)g(returned)2017 1926 y(as)41 b(a)h(literal)f(single-c)n(haracter)d(tok)n(en,)45 b(and)c(will)h(cause)2017 2026 y(an)27 b(error)d(during)i(the)h (parsing.)36 b(The)26 b(regular-expression)2017 2125 y(c)n(haracter)37 b(p)r(erio)r(d)h(matc)n(hes)f(an)n(ything)h(but)g(a)g (newline,)2017 2225 y(and)28 b(w)n(e)f(already)f(ha)n(v)n(e)h(a)g(rule) g(for)g(newline.)2017 2350 y Fo(.)174 b(RETURN)41 b (\(out_token\(TOKEN_)o(LIT)o(ER)o(AL\))o(\);)2017 2540 y Fq(Lexical)33 b(grammar)f(summary)2017 2673 y Fr(W)-7 b(e)35 b(no)n(w)f(ha)n(v)n(e)f(a)h(complete)g(lexical)g(grammar)f (suitable)2017 2773 y(for)c Fo(lex)f Fr(that)h(can)g(complete)g(tok)n (enize)f(an)h(arbitrary)e(in-)2017 2873 y(put)40 b(stream)d(con)n (taining)h(an)n(y)f(c)n(haracter)g(v)-5 b(alues)38 b(what-)2017 2972 y(ev)n(er.)2183 3072 y(The)30 b(asso)r(ciated)e(C)h(co)r(de)g (functions)h(normalize)e(en-)2017 3171 y(tries)d(b)n(y)g(c)n(hanging)f (outer)g(paren)n(theses)g(to)h(braces,)f(brace)2017 3271 y(string)40 b(delimiters)g(to)g(quotes,)j(and)d(undelimited)h(digit) 2017 3371 y(strings)27 b(to)h(quoted)f(strings.)2183 3470 y(All)35 b(string)e(tok)n(ens)g(of)h(t)n(yp)r(e)g Fo(TOKEN_VALUE)c Fr(output)2017 3570 y(b)n(y)39 b(the)g(lexer)e(will)i (con)n(tain)f(surrounding)f(quotes,)k(and)2017 3670 y(an)n(y)31 b(nested)g(quotes)f(will)i(b)r(e)f(braced,)g(with)h(prop)r(er)e(care) 2017 3769 y(tak)n(en)35 b(to)g(handle)g Fo(\\")f Fr(accen)n(t)g(con)n (trol)g(sequences)g(prop-)2017 3869 y(erly)-7 b(.)2183 3968 y(All)30 b(sp)r(ecial)e(c)n(haracters)e(inside)j(the)g(quoted)f (strings)2017 4068 y(will)38 b(b)r(e)h(represen)n(ted)d(b)n(y)i(the)g (escap)r(e)f(sequences)g(giv)n(en)2017 4168 y(in)d(T)-7 b(able)32 b(2)h(on)g(page)f(401.)52 b(Th)n(us,)34 b(ev)n(en)e(with)i(a) e(binary)2017 4267 y(input)38 b(stream,)g(the)f(output)h(of)e(the)h (lexer)f(will)h(con)n(tain)2017 4367 y(only)28 b(prin)n(table)f(c)n (haracters.)2183 4467 y(It)j(m)n(ust)g(b)r(e)f(observ)n(ed)f(that)h Fo(lex)g Fr(is)g(not)g(capable)g(of)2017 4566 y(handling)35 b(all)g(256)e(8-bit)i(c)n(haracters.)56 b(In)36 b(particular,)f(it)2017 4666 y(treats)i(an)g(ASCI)r(I)i(NUL)f(\()p Fo(\\0)p Fr(\))f(in)h(a)f (string)g(as)f(an)i(end-)2017 4765 y(of-\014le)e(condition.)63 b(Older)35 b(v)n(ersions)g(of)h Fo(lex)f Fr(are)g(not)h Fl(8-)2017 4865 y(bit)42 b(cle)l(an)p Fr(;)k(they)40 b(will)g(not)f(reliably)g(handle)h(c)n(haracters)2017 4965 y(128{255.)32 b(This)23 b(latter)g(de\014ciency)g(is)g(b)r(eing)g (remedied)g(b)n(y)2017 5064 y(the)28 b(X/Op)r(en)f(Consortium)g (activities)g(to)g(in)n(ternational-)2017 5164 y(ize)h(and)f(standard)g Fp(UNIX)f Fr(applications)h([32)o(].)p eop %%Page: 410 16 410 15 bop 0 -149 a Fr(410)2470 b(TUGb)r(oat,)28 b(V)-7 b(olume)27 b(14)g(\(1993\),)f(No.)i(4)0 100 y Fq(11)95 b(A)32 b(parsing)g(grammar)g(for)g Fr(B)l Fp(i)n(b)-7 b Fr(T)1354 125 y(E)1400 100 y(X)0 232 y(T)g(o)35 b(complete)h(the)g (job,)h(I)f(wrote)f(a)g Fo(yacc)f Fr(grammar)g(for)0 332 y(B)l Fp(i)n(b)-7 b Fr(T)165 357 y(E)211 332 y(X.)28 b(This)f(w)n(as)f(considerably)f(more)i(w)n(ork)e(than)j(the)0 432 y Fo(lex)33 b Fr(grammar,)i(mostly)f(due)h(to)f(m)n(y)g(relativ)n (e)g(inexp)r(eri-)0 531 y(ence)e(with)g(writing)f(LALR\(1\))h (grammars,)f(and)g(it)i(to)r(ok)0 631 y(sev)n(eral)27 b(da)n(ys)h(to)i(understand)e(the)i(pro)r(cess)e(w)n(ell)h(enough)0 731 y(to)35 b(eliminate)g(the)g(grammatical)e(am)n(biguities)h(that)h (ini-)0 830 y(tially)27 b(plagued)h(me.)166 930 y(The)i(\014nal)g (complete)g Fo(yacc)e Fr(program)g(is)i(ab)r(out)f(270)0 1029 y(lines)34 b(long,)h(and)f(pro)r(duces)f(a)g(parser)g(of)h(760)e (\()p Fo(yacc)p Fr(\))h(to)0 1129 y(1000)28 b(\()p Fo(bison)p Fr(\))g(lines,)j(excluding)e(the)i(lexer.)43 b(The)30 b(gram-)0 1229 y(mar)d(con)n(tains)g(just)h(35)f(rules.)37 b(T)-7 b(en)28 b(of)f(these)h(rules)f(could)0 1328 y(b)r(e)39 b(eliminated)h(if)f(w)n(e)g(arranged)d(for)j(the)g(lexer)g(to)f(dis-)0 1428 y(card)31 b(space)g(and)h(in-line)g(commen)n(ts,)g(but)h(for)e(a)h (prett)n(y-)0 1528 y(prin)n(ter)g(and)g(other)g(B)l Fp(i)n(b)-7 b Fr(T)833 1553 y(E)879 1528 y(X)33 b(to)r(ols,)g(they)g(m)n(ust)g(b)r (e)g(pre-)0 1627 y(serv)n(ed.)65 b(This)37 b(parsing)f(program)f(is)i (called)g Fo(bibparse)p Fr(;)0 1727 y(it)c(can)g(b)r(e)g(used)g(with)g (the)g(output)h(of)f(either)f Fo(bibclean)0 1826 y(-no-prettyprint)p Fr(,)22 b(or)k Fo(biblex)p Fr(.)166 1926 y(The)h(complete)f(B)l Fp(i)n(b)-7 b Fr(T)850 1951 y(E)896 1926 y(X)27 b(grammar)d(is)j(giv)n (en)e(b)r(elo)n(w,)0 2026 y(expressed)31 b(as)g Fo(yacc)g Fr(rules,)i(again)d(in)j(literate)e(program-)0 2125 y(ming)20 b(st)n(yle.)34 b(It)20 b(m)n(ust)g(b)r(e)h(augmen)n(ted)e(b)n(y)h(ab)r (out)g(180)e(lines)0 2225 y(of)28 b(C)f(co)r(de)h(to)f(pro)n(vide)f(a)i (w)n(orking)e(parser.)0 2391 y Fq(File)31 b(structure)0 2524 y Fr(A)d Fo(yacc)e Fr(\014le)i(has)f(this)h(general)e(structure:)0 2648 y Fo(declarations)0 2748 y(\045\045)0 2848 y(rules)0 2947 y(\045\045)0 3047 y(user)42 b(functions)166 3171 y Fr(C)31 b(declarations)e(and)i(de\014nitions)g(can)f(b)r(e)i (included)0 3271 y(in)19 b(the)g(declarations)e(part)h(if)i(they)f(are) e(enclosed)h(in)h Fo(\045{)f Fr(and)0 3371 y Fo(\045})p Fr(.)35 b(Suc)n(h)25 b(text)g(is)f(copied)g(v)n(erbatim)g(to)g(the)h (output)g(co)r(de)0 3470 y(\014le,)36 b(together)c(with)j(additional)e Fo(yacc)p Fr(-supplied)f(header)0 3570 y(co)r(de.)166 3670 y(Running)23 b Fo(yacc)f Fr(on)h(this)g(\014le)g(pro)r(duces)g(a)f (C)i(\014le)f(that)0 3769 y(can)f(b)r(e)g(compiled)g(and)g(link)n(ed)g (with)h(the)f(lexical)g(analyzer)0 3869 y(co)r(de)27 b(to)h(pro)r(duce)f(a)g(w)n(orking)f(parser.)166 3968 y(In)42 b(the)g(follo)n(wing)f(subsections,)j(w)n(e)d(describ)r(e)h (the)0 4068 y(con)n(ten)n(ts)h(of)i(the)f(declarations)e(and)i(rules)g (parts,)j(but)0 4168 y(omit)26 b(the)h(declaration)e(C)h(co)r(de)g(and) g(the)h(user)f(functions,)0 4267 y(since)44 b(they)g(are)g(not)g(relev) -5 b(an)n(t)43 b(to)h(understanding)g(the)0 4367 y(grammar.)0 4533 y Fq(F)-8 b(ormat)32 b(of)g(grammar)g(rules)0 4666 y Fr(The)37 b(grammar)e(rules)h(will)h(b)r(e)h(presen)n(ted)e(in)h (top-do)n(wn)0 4765 y(order,)31 b(from)h(most)f(general,)h(to)f(most)h (particular,)f(since)0 4865 y(this)19 b(seems)f(to)g(b)r(e)h(the)g(b)r (est)g(w)n(a)n(y)f(to)g(understand)g(the)h(o)n(v)n(er-)0 4965 y(all)30 b(structure)f(of)h(the)h(grammar,)e(and)h(to)g(ensure)f (that)i(it)0 5064 y(describ)r(es)d(curren)n(t)f(B)l Fp(i)n(b)-7 b Fr(T)809 5089 y(E)855 5064 y(X)29 b(usage,)e(plus)i(our)e(suggested)0 5164 y(extensions)g(and)g(clari\014cations.)166 5264 y(The)20 b(colon)e(in)i(a)f(grammar)e(rule)j(should)f(b)r(e)h(read)e (\\is")0 5363 y(or)31 b(\\pro)r(duces",)g(b)r(ecause)g(the)i(rule)e(is) h(also)e(kno)n(wn)h(as)g(a)2017 100 y Fl(pr)l(o)l(duction)p Fr(.)77 b(A)41 b(v)n(ertical)f(bar)g(separates)f(alternativ)n(es,)2017 199 y(and)32 b(can)g(b)r(e)g(read)g(\\or".)48 b(A)32 b(semicolon)f(terminates)h(the)2017 299 y(rule.)2183 399 y(Lo)n(w)n(er-case)i(letters)i(are)f(used)i(for)e Fl(non-terminals)p Fr(,)2017 498 y(whic)n(h)41 b(are)e(names)h(of)h (rules)f(in)h(the)g(parser)d(grammar.)2017 598 y(Upp)r(er-case)26 b(letters)g(are)f(used)h(for)g Fl(terminals)p Fr(,)h(whic)n(h)g(are) 2017 697 y(names)h(of)f(tok)n(ens)g(recognized)f(b)n(y)h(the)h(lexer.) 2183 797 y(The)45 b(spacing)e(sho)n(wn)h(is)g(arbitrary)-7 b(,)46 b(but)f(con)n(v)n(en-)2017 897 y(tional)37 b(for)g Fo(yacc)e Fr(grammars:)54 b(eac)n(h)37 b(rule)f(starts)h(a)f(new)2017 996 y(line,)21 b(with)f(the)f(righ)n(t-hand)f(side)g(inden)n(ted)i (from)e(the)i(mar-)2017 1096 y(gin,)28 b(and)f(the)h(semicolon)f(o)r (ccupies)g(a)g(separate)g(line.)2017 1262 y Fq(T)-8 b(ok)m(en)33 b(declarations)2017 1395 y Fr(The)41 b Fo(\045token)d Fr(declarations)h(merely)h(pro)n(vide)f(sym)n(b)r(olic)2017 1494 y(names)c(for)f(the)h(in)n(teger)e(tok)n(en)h(t)n(yp)r(es)h (returned)f(b)n(y)g(the)2017 1594 y(lexer.)72 b(The)39 b(v)-5 b(alues)39 b(are)g(arbitrary)-7 b(,)40 b(except)g(that)f(they) 2017 1694 y(m)n(ust)19 b(exceed)g(257,)g(and)g(m)n(ust)g(agree)e(with)i (the)g(de\014nitions)2017 1793 y(in)35 b(the)g(lexer)f(co)r(de.)57 b(W)-7 b(e)35 b(simply)f(incremen)n(t)g(the)h(tok)n(en)2017 1893 y(t)n(yp)r(es)27 b(output)g(from)g Fo(bibclean)c Fr(b)n(y)k(1000,)e(matc)n(hing)h(the)2017 1993 y(o\013set)i(added)f(in) h(the)g Fo(RETURN)d Fr(macro)i(in)h(the)g(lexer.)2017 2117 y Fo(\045token)42 b(TOKEN_ABBREV)213 b(1001)2017 2217 y(\045token)42 b(TOKEN_AT)389 b(1002)2017 2316 y(\045token)42 b(TOKEN_COMMA)257 b(1003)2017 2416 y(\045token)42 b(TOKEN_COMMENT)169 b(1004)2017 2516 y(\045token)42 b(TOKEN_ENTRY)257 b(1005)2017 2615 y(\045token)42 b(TOKEN_EQUALS)213 b(1006)2017 2715 y(\045token)42 b(TOKEN_FIELD)257 b(1007)2017 2814 y(\045token)42 b(TOKEN_INCLUDE)169 b(1008)2017 2914 y(\045token)42 b(TOKEN_INLINE)213 b(1009)2017 3014 y(\045token)42 b(TOKEN_KEY)345 b(1010)2017 3113 y(\045token)42 b(TOKEN_LBRACE)213 b(1011)2017 3213 y(\045token)42 b(TOKEN_LITERAL)169 b(1012)2017 3313 y(\045token)42 b(TOKEN_NEWLINE)169 b(1013)2017 3412 y(\045token)42 b(TOKEN_PREAMBLE) 125 b(1014)2017 3512 y(\045token)42 b(TOKEN_RBRACE)213 b(1015)2017 3611 y(\045token)42 b(TOKEN_SHARP)257 b(1016)2017 3711 y(\045token)42 b(TOKEN_SPACE)257 b(1017)2017 3811 y(\045token)42 b(TOKEN_STRING)213 b(1018)2017 3910 y(\045token)42 b(TOKEN_VALUE)257 b(1019)2017 4101 y Fq(Precedence)33 b(declarations)2017 4234 y Fr(The)39 b Fo(\045nonassoc)c Fr(declaration)j(mak)n(es)f(the)j(assignmen)n(t)2017 4334 y(op)r(erator)33 b(non-asso)r(ciativ)n(e,)g(so)h(input)g(of)g(the) h(form)f Fo(a)43 b(=)2017 4433 y(b)h(=)f(c)27 b Fr(is)h(illegal.)2017 4558 y Fo(\045nonassoc)40 b(TOKEN_EQUALS)2183 4682 y Fr(The)22 b(\014rst)f Fo(\045left)f Fr(declaration)g(mak)n(es)g(space,) i(in-line)2017 4782 y(commen)n(t,)h(and)e(newline)g(tok)n(ens)f(left)i (asso)r(ciativ)n(e,)f(and)g(of)2017 4882 y(equal)28 b(precedence.)2017 5006 y Fo(\045left)42 b(TOKEN_SPACE)d(TOKEN_INLINE)g(\\)2279 5106 y(TOKEN_NEWLINE)p eop %%Page: 411 17 411 16 bop 0 -149 a Fr(TUGb)r(oat,)28 b(V)-7 b(olume)28 b(14)e(\(1993\),)h(No.)g(4)2471 b(411)166 100 y(The)36 b(second)f Fo(\045left)f Fr(declaration)g(mak)n(es)h(the)h(B)l Fp(i)n(b)-7 b Fr(-)0 199 y(T)46 224 y(E)92 199 y(X)30 b(string)g(concatenation)e(c)n(haracter,)g Fo(#)p Fr(,)j(left)f(asso)r (cia-)0 299 y(tiv)n(e,)42 b(and)e(of)f(higher)g(precedence)g(than)g (space,)j(in-line)0 399 y(commen)n(t,)28 b(and)f(newline.)0 523 y Fo(\045left)42 b(TOKEN_SHARP)166 648 y Fr(These)21 b(precedence)h(settings)f(are)g(crucial)g(for)g(resolv-)0 747 y(ing)30 b(con\015icts)f(in)h(this)g(grammar)e(whic)n(h)i(arise)f (in)h(assign-)0 847 y(men)n(ts)h(when)h(the)f(parser)f(has)h(seen)g(an) f(assignmen)n(t)h(op-)0 946 y(erator)39 b(and)h(a)g(v)-5 b(alue.)76 b(Without)41 b(the)g(op)r(erator)e(prece-)0 1046 y(dences,)j(it)e(cannot)g(decide)f(whether)h(to)f(complete)h(the)0 1146 y(assignmen)n(t,)27 b(or)g(to)h(read)f(ahead)g(lo)r(oking)g(for)h (a)f(concate-)0 1245 y(nation)g(op)r(erator.)0 1411 y(B)l Fp(i)n(b)-7 b Fr(T)165 1436 y(E)211 1411 y(X)32 b Fq(\014le)0 1544 y Fr(The)27 b(b)r(eginning)g(of)f(the)i(grammar)c(rules)j(is)f (indicated)h(b)n(y)0 1644 y(a)g(pair)g(of)h(p)r(ercen)n(t)f(c)n (haracters.)0 1768 y Fo(\045\045)166 1893 y Fr(The)47 b(\014rst)g(rule)g(de\014nes)h(what)f(w)n(e)g(are)f(going)g(to)0 1993 y(parse,)30 b(namely)-7 b(,)31 b(a)e(B)l Fp(i)n(b)-7 b Fr(T)788 2018 y(E)835 1993 y(X)32 b Fl(\014le)p Fr(.)45 b(The)30 b(left-hand)h(side)f(of)0 2092 y(the)g(\014rst)f(rule)g(is)h (kno)n(wn)e(as)h(the)h(grammar's)d Fl(start)k(sym-)0 2192 y(b)l(ol)p Fr(.)0 2316 y Fo(bibtex_file:)349 2416 y(opt_space)262 2516 y(|)43 b(opt_space)d(object_list)f(opt_space)262 2615 y(;)166 2740 y Fr(This)22 b(rule)f(sa)n(ys)f(that)i(a)f(B)l Fp(i)n(b)-7 b Fr(T)1082 2765 y(E)1129 2740 y(X)22 b(\014le)g(con)n (tains)e(either)0 2839 y(optional)g(space,)i(or)e(optional)h(space)f (follo)n(w)n(ed)g(b)n(y)h(a)g(list)g(of)0 2939 y(ob)5 b(jects)32 b(follo)n(w)n(ed)g(b)n(y)g(optional)g(space.)51 b(This)33 b(de\014nition)0 3039 y(p)r(ermits)39 b(a)g(\014le)g(to)g(b)r (e)h(empt)n(y)-7 b(,)42 b(or)d(con)n(tain)f(only)h(space)0 3138 y(tok)n(ens,)27 b(or)g(ha)n(v)n(e)f(leading)h(and)g(trailing)g (space.)0 3304 y Fq(Ob)5 b(ject)32 b(lists)0 3437 y Fr(A)k Fl(list)i(of)g(obje)l(cts)44 b Fr(is)36 b(either)f(a)h(single)f(ob)5 b(ject,)38 b(or)d(a)h(list)0 3537 y(of)i(suc)n(h)g(ob)5 b(jects,)40 b(separated)d(b)n(y)h(optional)f(space)g(from)0 3636 y(another)27 b(ob)5 b(ject.)0 3761 y Fo(object_list:)349 3861 y(object)262 3960 y(|)43 b(object_list)c(opt_space)h(object)262 4060 y(;)166 4184 y Fr(F)-7 b(or)55 b(LL\(1\))g(parsers,)61 b(usually)55 b(implemen)n(ted)h(b)n(y)0 4284 y(hand-co)r(ded)41 b(recursiv)n(e)f(descen)n(t)h(programs,)i(this)f(kind)0 4384 y(of)28 b(left-recursiv)n(e)e(rule)i(m)n(ust)g(b)r(e)g(rewritten)f (b)n(y)h(standard)0 4483 y(metho)r(ds)e([2,)g(pp.)g(47{48,)e(176{178])e (to)k(a)n(v)n(oid)e(an)h(in\014nite)0 4583 y(lo)r(op)c(in)h(the)h (parser.)33 b(In)22 b(this)g(rule,)h(w)n(e)e(w)n(ould)h(instead)f(de-)0 4682 y(\014ne)28 b(a)g(list)g(as)g(an)g(ob)5 b(ject,)28 b(separated)f(b)n(y)g(optional)h(space)0 4782 y(from)36 b(another)f(list.)64 b(Ho)n(w)n(ev)n(er,)36 b(for)g(LALR\(1\))h (parsers,)0 4882 y(left-recursiv)n(e)18 b(de\014nitions)h(are)g (preferable,)h(b)r(ecause)f(they)0 4981 y(a)n(v)n(oid)26 b(parser)g(stac)n(k)h(o)n(v)n(er\015o)n(w)e(with)j(long)f(lists.)2017 100 y Fq(Ob)5 b(jects)2017 232 y Fr(An)42 b Fl(obje)l(ct)49 b Fr(is)41 b(one)f(of)g(the)i(B)l Fp(i)n(b)-7 b Fr(T)3112 257 y(E)3158 232 y(X)41 b Fo(@name)p Fk(f)p Fo(...)p Fk(g)36 b Fr(con-)2017 332 y(structs.)e(Notice)20 b(that)f(w)n(e)g (allo)n(w)f(optional)h(space)g(b)r(et)n(w)n(een)2017 432 y(the)28 b Fo(@)g Fr(and)f(the)h Fo(name)p Fr(.)2017 552 y Fo(object:)2366 652 y(TOKEN_AT)40 b(opt_space)g(at_object)2279 751 y(;)2183 872 y Fr(In)28 b(this)f(grammar,)e(w)n(e)i(will)g (consisten)n(tly)f(allo)n(w)g(op-)2017 971 y(tional)43 b(space)f(b)r(et)n(w)n(een)g Fl(any)51 b Fr(pair)42 b(of)g(B)l Fp(i)n(b)-7 b Fr(T)3480 996 y(E)3526 971 y(X)43 b(tok)n(ens;)2017 1071 y(space)32 b(is)f(describ)r(ed)h(more)f(precisely)g(b)r(elo)n(w.) 49 b(This)32 b(con-)2017 1171 y(v)n(en)n(tion)24 b(is)f(easy)g(to)h (remem)n(b)r(er,)g(and)f(easy)g(to)h(implemen)n(t)2017 1270 y(in)k(the)g(grammar)e(rules.)2183 1370 y(While)32 b(it)g(w)n(ould)f(b)r(e)h(p)r(ossible)f(to)g(include)g(the)h Fo(@)f Fr(as)2017 1469 y(part)g(of)f(the)i Fo(name)p Fr(,)e(making)g Fo(@name)e Fr(a)j(single)f(lexical)g(to-)2017 1569 y(k)n(en,)40 b(b)r(oth)e(B)l Fp(i)n(b)-7 b Fr(T)2576 1594 y(E)2623 1569 y(X)38 b(and)f Fp(Scribe)h Fr(p)r(ermit)h(in)n(terv) n(ening)2017 1669 y(space,)f(so)d(w)n(e)g(cannot)h(collapse)f(the)h(t)n (w)n(o)f(in)n(to)h(a)f(single)2017 1768 y(tok)n(en.)2017 1934 y Fq(En)m(try)e(t)m(yp)s(es)f(and)g(error)h(reco)m(v)m(ery)2017 2067 y Fr(Here)f(are)f(the)h(p)r(ossibilities)f(for)h(the)g Fo(name)e Fr(follo)n(wing)h(an)2017 2167 y Fo(@)p Fr(,)d(whic)n(h)f(w)n (e)h(call)f(an)g Fo(at_object)p Fr(.)2017 2287 y Fo(at_object:)2366 2387 y(comment)2279 2487 y(|)43 b(entry)2279 2586 y(|)g(include)2279 2686 y(|)g(preamble)2279 2785 y(|)g(string)2279 2885 y(|)g(error)f(TOKEN_RBRACE)2279 2985 y(;)2183 3105 y(Comment)p Fr(,)18 b Fo(Include)p Fr(,)g Fo(Preamble)p Fr(,)g(and)h Fo(String)d Fr(m)n(ust)2017 3205 y(b)r(e)37 b(handled)f(separately)e (from)h(other)h(t)n(yp)r(es)f(of)h(en)n(tries,)2017 3304 y(lik)n(e)c Fo(Article)e Fr(and)i Fo(Book)p Fr(,)g(b)r(ecause)f(their)i (braced)e(argu-)2017 3404 y(men)n(ts)d(ha)n(v)n(e)e(a)i(di\013eren)n(t) f(syn)n(tax.)2183 3504 y(The)g(rule)g(with)g Fo(error)d Fr(is)j(a)f(sp)r(ecial)g(one)h(supp)r(orted)2017 3603 y(b)n(y)35 b Fo(yacc)f Fr(and)g Fo(bison)p Fr(.)58 b(It)35 b(sa)n(ys)f(that)h(if)g(an)g Fo(at_object)2017 3703 y Fr(cannot)44 b(b)r(e)g(recognized)f(at)g(the)i(curren)n(t)e(state)g(of) h(the)2017 3802 y(parse,)d(then)e(the)g(input)g(should)f(b)r(e)h (discarded)f(un)n(til)h(a)2017 3902 y(righ)n(t)21 b(brace)g(is)h (found.)35 b(An)22 b(error)e(message)g(will)i(b)r(e)g(issued)2017 4002 y(when)31 b(this)f(happ)r(ens,)g(but)h(reco)n(v)n(ery)c(will)j(b)r (e)h(attempted)2017 4101 y(follo)n(wing)e(that)i(righ)n(t)e(brace.)43 b(Without)31 b(this)f(error)e(han-)2017 4201 y(dling,)43 b(an)n(y)c(input)h(error)e(will)i(immediately)g(terminate)2017 4301 y(the)28 b(parser,)e(hardly)h(a)g(user-friendly)g(thing)h(to)f (do.)2183 4400 y(This)c(is)g(the)g(only)g(place)f(where)g(w)n(e)h(will) g(attempt)g(er-)2017 4500 y(ror)c(repair,)h(although)g(w)n(e)f(could)h (certainly)g(do)f(so)h(in)g(other)2017 4599 y(rules,)41 b(suc)n(h)d(as)g(in)h(the)g(assignmen)n(t)f(rule)g(b)r(elo)n(w.)69 b(The)2017 4699 y(goal)38 b(here)g(is)g(to)g(presen)n(t)g(a)g(rigorous) f(complete)h(gram-)2017 4799 y(mar,)27 b(without)h(additional)f(em)n(b) r(ellishmen)n(ts)g(that)h(w)n(ould)2017 4898 y(complicate)g (understanding.)2017 5064 y Fq(Commen)m(t)j(en)m(try)2017 5197 y Fr(A)23 b(B)l Fp(i)n(b)-7 b Fr(T)2267 5222 y(E)2313 5197 y(X)23 b Fo(@Comment)p Fk(f)p Fo(...)p Fk(g)17 b Fr(is)23 b(sp)r(ecial)f(in)g(that)h(the)g(only)2017 5297 y(requiremen)n(t)33 b(on)h(the)g(argumen)n(t)f(is)h(that)g(delimiters)g (b)r(e)2017 5396 y(balanced.)h(The)24 b(lexer)f(returns)h(the)g (delimited)h(argumen)n(t)p eop %%Page: 412 18 412 17 bop 0 -149 a Fr(412)2470 b(TUGb)r(oat,)28 b(V)-7 b(olume)27 b(14)g(\(1993\),)f(No.)i(4)0 100 y(as)39 b(a)g(single)f (literal)h(string,)j(including)d(the)h(delimiters,)0 199 y(and)27 b(standardizes)g(the)h(delimiters)f(to)h(braces.)0 324 y Fo(comment:)349 423 y(TOKEN_COMMENT)38 b(opt_space)523 523 y(TOKEN_LITERAL)262 623 y(;)0 814 y Fq(Bibliograph)m(y)31 b(en)m(try)0 946 y Fr(A)c(B)l Fp(i)n(b)-7 b Fr(T)254 971 y(E)300 946 y(X)27 b Fl(biblio)l(gr)l(aphy)k(entry)c Fr(is)f(braced)f(text)i(con)n(tain-)0 1046 y(ing)37 b(a)g(citation)g(k) n(ey)-7 b(,)39 b(a)e(comma,)j(and)d(a)g(list)g(of)h(assign-)0 1146 y(men)n(ts.)76 b(The)41 b(rules)f(pro)n(vide)f(for)h(an)h (optional)f(assign-)0 1245 y(men)n(t)34 b(list,)i(and)e(for)g(an)f (optional)h(trailing)f(comma.)55 b(T)-7 b(o)0 1345 y(shorten)39 b(the)h(rules,)j(w)n(e)c(in)n(tro)r(duce)h(a)g(subsidiary)e(rule,)0 1445 y Fo(entry_head)p Fr(,)24 b(to)j(represen)n(t)f(their)i(common)f (pre\014x.)0 1569 y Fo(entry:)85 b(entry_head)610 1669 y(assignment_list)610 1768 y(TOKEN_RBRACE)262 1868 y(|)43 b(entry_head)610 1968 y(assignment_list)610 2067 y(TOKEN_COMMA)c (opt_space)610 2167 y(TOKEN_RBRACE)262 2267 y(|)k(entry_head)c (TOKEN_RBRACE)262 2366 y(;)0 2565 y(entry_head:)349 2665 y(TOKEN_ENTRY)g(opt_space)610 2765 y(TOKEN_LBRACE)g(opt_space)610 2864 y(key_name)h(opt_space)610 2964 y(TOKEN_COMMA)f(opt_space)262 3064 y(;)166 3188 y Fr(There)27 b(is)g(no)g Fo(opt_space)d Fr(item)k(follo)n(wing)e Fo(assign-)0 3288 y(ment_list)33 b Fr(b)r(ecause)j(it)g(is)h(included)f(in)h(the)g(de\014nition)0 3387 y(of)c(the)g(latter.)52 b(This)33 b(infelicit)n(y)g(seems)g(to)g (b)r(e)g(necessary)0 3487 y(to)24 b(obtain)g(a)g(grammar)e(that)i (conforms)f(to)h(the)h(LALR\(1\))0 3587 y(requiremen)n(ts)h(of)i Fo(yacc)e Fr(and)h Fo(bison)p Fr(.)0 3753 y Fq(Key)32 b(name)0 3885 y Fr(Because)43 b(of)i(in)n(terv)n(ening)e(newlines)i (and)f(in-line)h(com-)0 3985 y(men)n(ts,)31 b(the)h(lexical)e(analyzer) f(cannot)h(alw)n(a)n(ys)f(correctly)0 4085 y(recognize)38 b(a)h Fl(citation)i(key)47 b Fr(from)39 b(trailing)g(con)n(text.)72 b(It)0 4184 y(migh)n(t)34 b(instead)f(erroneously)e(iden)n(tify)j(the)g (tok)n(en)f(as)g(an)0 4284 y(abbreviation.)h(W)-7 b(e)22 b(therefore)f(need)h(to)g(accoun)n(t)f(for)h(b)r(oth)0 4384 y(p)r(ossibilities:)0 4508 y Fo(key_name:)349 4608 y(TOKEN_KEY)262 4707 y(|)43 b(TOKEN_ABBREV)262 4807 y(;)0 4998 y(Include)29 b Fq(en)m(try)0 5131 y Fr(The)38 b Fo(Include)d Fr(en)n(try)j(is)f(follo)n(w)n(ed)g(b)n(y)h(a)f(\014le)i (name)e(en-)0 5230 y(closed)27 b(in)h(balanced)f(braces.)0 5355 y Fo(include:)2366 100 y(TOKEN_INCLUDE)38 b(opt_space)2540 199 y(TOKEN_LITERAL)2279 299 y(;)2183 423 y Fr(Because)21 b(\014le)g(names)g(are)g(op)r(erating-system)e(dep)r(en-)2017 523 y(den)n(t,)25 b(the)e(only)g(restrictions)f(that)i(are)e(placed)h (on)g(the)g(\014le)2017 623 y(name)k(are)f(that)h(it)g(cannot)g(con)n (tain)f(un)n(balanced)g(braces,)2017 722 y(and)g(that)f(it)h(cannot)f (con)n(tain)g(leading)g(or)g(trailing)f(space.)2017 822 y(Ho)n(w)n(ev)n(er,)j(the)i(\014le)f(name)g(can)g(ha)n(v)n(e)g(em)n(b)r (edded)g(space)g(if)2017 922 y(the)g(op)r(erating)f(system)g(p)r (ermits.)2183 1021 y(B)l Fp(i)n(b)-7 b Fr(T)2348 1046 y(E)2395 1021 y(X)45 b(should)h(discard)e(the)i(delimiting)g(braces) 2017 1121 y(and)22 b(surrounding)f(space)h(in)g(the)h Fo(TOKEN_LITERAL)16 b Fr(to)22 b(iso-)2017 1220 y(late)i(the)h(\014le)f (name.)35 b(It)25 b(should)f(searc)n(h)e(for)i(this)g(\014le)g(in)g (its)2017 1320 y(standard)i(input)h(path,)g(so)f(that)g(the)h(\014le)g (name)f(need)h(not)2017 1420 y(con)n(tain)j(an)h(absolute)f(directory)f (path.)47 b(This)30 b(feature)h(is)2017 1519 y(not)i(supp)r(orted)f(in) h(B)l Fp(i)n(b)-7 b Fr(T)2832 1544 y(E)2878 1519 y(X)32 b(0.99c,)h(but)g Fo(bibclean)c Fr(and)2017 1619 y(the)34 b(lexer)f(and)g(parser)f(recognize)g(it)i(in)g(an)n(ticipation)f(of) 2017 1719 y(its)28 b(ev)n(en)n(tual)f(incorp)r(oration.)2017 1885 y Fo(Preamble)i Fq(en)m(try)2017 2017 y Fr(The)34 b Fo(Preamble)29 b Fr(en)n(try)k(argumen)n(t)f(is)h(a)g(braced)f(B)l Fp(i)n(b)-7 b Fr(T)3777 2042 y(E)3823 2017 y(X)2017 2117 y(string)32 b(v)-5 b(alue.)51 b(B)l Fp(i)n(b)-7 b Fr(T)2684 2142 y(E)2731 2117 y(X)32 b(outputs)h(the)g(argumen)n(t)e(v)n(erba-) 2017 2217 y(tim,)e(min)n(us)f(the)h(outer)e(delimiters,)h(to)g(the)g Fo(.bbl)f Fr(\014le)h(for)2017 2316 y(T)2063 2334 y(E)2110 2316 y(X)g(to)f(pro)r(cess.)2017 2441 y Fo(preamble:)2366 2540 y(TOKEN_PREAMBLE)38 b(opt_space)2540 2640 y(TOKEN_LBRACE)h (opt_space)2540 2740 y(value)j(opt_space)2540 2839 y(TOKEN_RBRACE)2279 2939 y(;)2017 3130 y(String)30 b Fq(en)m(try)2017 3263 y Fr(The)36 b Fo(String)e Fr(en)n(try)h(argumen)n(t)g(is)h(a)f(braced)g (single)g(as-)2017 3362 y(signmen)n(t.)2017 3487 y Fo(string:)2366 3587 y(TOKEN_STRING)k(opt_space)2540 3686 y(TOKEN_LBRACE)g(opt_space) 2540 3786 y(assignment)h(opt_space)2540 3885 y(TOKEN_RBRACE)2279 3985 y(;)2017 4176 y Fq(V)-8 b(alue)32 b(string)2017 4309 y Fr(A)e(B)l Fp(i)n(b)-7 b Fr(T)2274 4334 y(E)2320 4309 y(X)30 b Fl(value)36 b Fr(is)29 b(a)g(string,)f(whic)n(h)i(ma)n(y) e(b)r(e)i(a)e(simple)2017 4408 y(v)-5 b(alue,)44 b(or)39 b(a)h(list)g(of)g(strings)g(separated)f(b)n(y)h(the)g(string)2017 4508 y(concatenation)27 b(op)r(erator.)2017 4633 y Fo(value:)85 b(simple_value)2279 4732 y(|)43 b(value)f(opt_space)2540 4832 y(TOKEN_SHARP)e(opt_space)2540 4932 y(simple_value)2279 5031 y(;)p eop %%Page: 413 19 413 18 bop 0 -149 a Fr(TUGb)r(oat,)28 b(V)-7 b(olume)28 b(14)e(\(1993\),)h(No.)g(4)2471 b(413)0 100 y Fq(Simple)30 b(v)-5 b(alues)0 232 y Fr(A)25 b Fl(simple)k(value)j Fr(is)24 b(either)h(a)g(delimited)h(string,)f(returned)0 332 y(b)n(y)j(the)g(lexer)f(as)g(a)h Fo(TOKEN_VALUE)p Fr(,)23 b(or)k(a)h(string)f(abbrevi-)0 432 y(ation,)g(returned)g(as)g (a)h Fo(TOKEN_ABBREV)p Fr(.)0 556 y Fo(simple_value:)349 656 y(TOKEN_VALUE)262 756 y(|)43 b(TOKEN_ABBREV)262 855 y(;)166 980 y Fr(The)21 b(lexer)g(can)f(distinguish)h(b)r(et)n(w)n(een) h(these)f(t)n(w)n(o)f(b)r(e-)0 1079 y(cause)27 b(of)g(the)g(string)g (delimiters.)37 b(It)27 b(is)g(up)h(to)f(the)h(parser)0 1179 y(supp)r(ort)e(co)r(de)h(to)f(v)n(erify)g(that)h(an)f (abbreviation)f(is)i(actu-)0 1279 y(ally)g(de\014ned)h(b)r(efore)f(it)h (is)g(used.)0 1445 y Fq(Assignmen)m(t)i(list)0 1577 y Fr(The)i(b)r(o)r(dy)h(of)f(most)g(B)l Fp(i)n(b)-7 b Fr(T)862 1602 y(E)908 1577 y(X)33 b(en)n(tries)e(consists)h(of)g(a)g(list)0 1677 y(of)f(one)g(or)f(more)g(assignmen)n(ts,)g(separated)g(b)n(y)h (commas.)0 1777 y(Notice)j(that)g(this)h(de\014nition)f(do)r(es)g(not)g (pro)n(vide)f(for)g(an)0 1876 y(optional)i(trailing)g(comma)g(after)g (the)i(last)e(assignmen)n(t.)0 1976 y(W)-7 b(e)28 b(handled)g(that)g (ab)r(o)n(v)n(e)e(in)i(the)g(rules)f(for)g Fo(entry)p Fr(.)0 2100 y Fo(assignment_list:)349 2200 y(assignment)262 2300 y(|)43 b(assignment_list)523 2399 y(TOKEN_COMMA)c(opt_space)523 2499 y(assignment)262 2599 y(;)0 2790 y Fq(Assignmen)m(t)0 2922 y Fr(An)30 b Fl(assignment)38 b Fr(has)29 b(a)h(left-hand)g(side)g (separated)e(from)0 3022 y(a)f(v)-5 b(alue)28 b(b)n(y)f(the)h (assignmen)n(t)f(op)r(erator,)e Fo(=)p Fr(.)0 3147 y Fo(assignment:)349 3246 y(assignment_lhs)37 b(opt_space)523 3346 y(TOKEN_EQUALS)i(opt_space)h(value)523 3445 y(opt_space)262 3545 y(;)166 3670 y Fr(T)-7 b(railing)42 b(optional)f(space)h(is)g (included)h(here,)j(and)0 3769 y(omitted)30 b(b)r(efore)f(the)g(comma)g (in)g Fo(assignment_list)p Fr(,)24 b(in)0 3869 y(order)35 b(to)i(allo)n(w)e(the)i(LALR\(1\))g(parser)e(to)i(successfully)0 3968 y(distinguish)42 b(b)r(et)n(w)n(een)f(space)g(b)r(et)n(w)n(een)g (a)h(v)-5 b(alue)41 b(and)g(a)0 4068 y(comma,)23 b(and)f(space)f(b)r (et)n(w)n(een)h(a)g(v)-5 b(alue)22 b(and)g(a)g(string)g(con-)0 4168 y(catenation)27 b(op)r(erator.)166 4267 y(My)c(initial)h(v)n (ersion)e(of)h(this)h(grammar)d(did)j(not)f(ha)n(v)n(e)0 4367 y(this)39 b(optional)f(space)g(item,)k(and)c(the)i(resulting)e (parser)0 4467 y(pro)n(v)n(ed)32 b(unable)i(to)g(recognize)e(input)j (in)f(whic)n(h)f(a)h(space)0 4566 y(separated)h(a)g(v)-5 b(alue)36 b(from)g(a)f(comma)h(or)f(closing)g(brace;)0 4666 y(it)30 b(to)r(ok)f(quite)h(a)f(bit)h(of)g(exp)r(erimen)n(tation)f (to)g(determine)0 4765 y(ho)n(w)20 b(to)h(rewrite)g(the)g(grammar)e(to) i(remo)n(v)n(e)e(this)j(problem.)166 4865 y(The)29 b(left-hand)h(side)f (of)h(an)f(assignmen)n(t)f(is)h(either)g(a)0 4965 y(\014eld)e(name,)g (lik)n(e)g Fo(author)d Fr(or)i Fo(title)p Fr(,)f(or)h(a)h(string)f (abbre-)0 5064 y(viation)33 b(name.)53 b(The)33 b(lexer)g(m)n(ust)g (distinguish)g(b)r(et)n(w)n(een)0 5164 y(the)k(t)n(w)n(o)f(b)n(y)h (remem)n(b)r(ering)f(the)h(last)g(en)n(try)f(t)n(yp)r(e)h(seen,)0 5264 y(b)r(ecause)24 b(they)g(are)f(made)h(up)h(of)f(exactly)g(the)g (same)g(set)g(of)0 5363 y(p)r(ossible)j(c)n(haracters.)2017 100 y Fo(assignment_lhs:)2366 199 y(TOKEN_FIELD)2279 299 y(|)43 b(TOKEN_ABBREV)2279 399 y(;)2017 581 y Fq(Optional)31 b(space)2017 714 y Fr(Optional)d(space)g(is)g(either)h(an)f(empt)n(y)g (string,)g(here)g(indi-)2017 814 y(cated)g(b)n(y)f(the)h Fo(/*...*/)d Fr(commen)n(t,)i(or)g(space.)2017 930 y Fo(opt_space:)2366 1029 y(/*)43 b(empty)e(*/)2279 1129 y(|)i(space)2279 1229 y(;)2017 1411 y Fq(Space)2017 1544 y Fl(Sp)l(ac)l(e)g Fr(is)36 b(an)g(imp)r(ortan)n(t)f(part)h(of)g(the)g (grammar.)60 b(It)37 b(is)2017 1644 y(one)28 b(or)e(more)h(single)g (spaces.)2017 1760 y Fo(space:)85 b(single_space)2279 1860 y(|)43 b(space)f(single_space)2279 1959 y(;)2183 2076 y Fr(W)-7 b(e)21 b(include)f(space)g(handling)g(to)g(supp)r(ort)g (to)r(ols)f(that)2017 2175 y(pro)r(cess)27 b(B)l Fp(i)n(b)-7 b Fr(T)2472 2200 y(E)2518 2175 y(X)27 b(\014les)h(and)f(wish)g(to)g (preserv)n(e)f(the)i(input)2017 2275 y(form.)35 b(In)20 b(normal)g(compiler)f(design,)j(space)e(is)g(recognized)2017 2374 y(b)n(y)27 b(the)g(lexer,)g(and)g(discarded,)f(so)g(the)i(parser)d (nev)n(er)h(has)2017 2474 y(to)19 b(deal)f(with)h(it,)i(and)d(the)h (grammar)e(can)h(b)r(e)h(considerably)2017 2574 y(simpler.)2017 2740 y Fq(Single)31 b(space)2017 2873 y Fr(The)26 b(\014nal)g(rule)g (of)g(the)g(grammar)e(de\014nes)i(a)g Fl(single)i(sp)l(ac)l(e)2017 2972 y Fr(as)i(a)h(literal)f(space)g(c)n(haracter,)g(or)f(an)i(in-line) g(commen)n(t,)2017 3072 y(or)c(a)g(literal)g(newline)h(c)n(haracter.) 2017 3188 y Fo(single_space:)2366 3288 y(TOKEN_SPACE)2279 3387 y(|)43 b(TOKEN_INLINE)2279 3487 y(|)g(TOKEN_NEWLINE)2279 3587 y(;)2183 3703 y Fr(Although)49 b(w)n(e)f(could)h(arrange)d(for)i (the)h(lexer)f(to)2017 3802 y(merge)26 b Fo(TOKEN_SPACE)c Fr(and)k Fo(TOKEN_NEWLINE)c Fr(in)n(to)k(a)g(sin-)2017 3902 y(gle)33 b(tok)n(en,)g(this)g(w)n(ould)f(in)n(terfere)g(with)h (heuristics)g(used)2017 4002 y(b)n(y)21 b(a)g(prett)n(yprin)n(ter)f(to) i(detect)f(empt)n(y)h(lines)f(inside)g(string)2017 4101 y(v)-5 b(alues,)32 b(whic)n(h)e(are)g(p)r(ossibly)g(indicativ)n(e)h(of) f(missing)h(de-)2017 4201 y(limiters.)2017 4367 y Fq(P)m(arsing)i (grammar)f(summary)2017 4500 y Fr(W)-7 b(e)36 b(ha)n(v)n(e)f(no)n(w)g (completed)g(a)g Fo(yacc)f Fr(grammar)g(for)h(B)l Fp(i)n(b)-7 b Fr(-)2017 4599 y(T)2063 4624 y(E)2110 4599 y(X)32 b(that)g(pro)n (vides)e(a)h(rigorous)f(grammatical)g(analysis)2017 4699 y(of)40 b(a)g(stream)f(of)h(tok)n(ens)f(recognized)f(b)n(y)i(the)g (lexers)f(in)2017 4799 y(Sections)28 b(6)f(and)g(10.)2183 4898 y(Notice)22 b(that)f(there)h(is)f(no)g(c)n(haracter-string)d(pro)r (cess-)2017 4998 y(ing)32 b(whatev)n(er)f(in)h(the)g(parser,)f(b)r (ecause)h(it)g(has)g(all)f(b)r(een)2017 5098 y(done)g(in)g(the)g (lexer.)46 b(P)n(arsing)29 b(op)r(erations)g(just)j(manipu-)2017 5197 y(late)c(small)f(in)n(teger)g(v)-5 b(alues.)2183 5297 y(In)35 b(this)f(v)n(ersion,)g(no)g(actions)f(ha)n(v)n(e)g(b)r (een)h(supplied)2017 5396 y(as)21 b(C)h(co)r(de)f(fragmen)n(ts)f(in)i (the)g Fo(yacc)e Fr(grammar.)32 b(The)22 b(only)p eop %%Page: 414 20 414 19 bop 0 -149 a Fr(414)2470 b(TUGb)r(oat,)28 b(V)-7 b(olume)27 b(14)g(\(1993\),)f(No.)i(4)0 100 y(output)j(of)g(the)g (parser)e(will)i(b)r(e)g(the)g(tok)n(en)f(stream)g(from)0 199 y(the)j(lexer,)g(in)n(tersp)r(ersed)e(b)n(y)i(error)d(messages)h (when)i(the)0 299 y(input)28 b(fails)g(to)f(matc)n(h)h(a)f(grammar)e (rule.)166 399 y(Error)45 b(reco)n(v)n(ery)f(has)j(b)r(een)h(k)n(ept)f (simple:)76 b(input)0 498 y(is)37 b(\015ushed)h(to)f(the)h(next)f (closing)f(brace,)j(whic)n(h)f(is)f(pre-)0 598 y(sumably)54 b(the)g(end)h(of)f(an)f(en)n(try)-7 b(.)116 b(Braces)53 b(of)h(t)n(yp)r(e)0 697 y Fo(TOKEN_LBRACE)24 b Fr(and)29 b Fo(TOKEN_RBRACE)c Fr(do)k(not)g(o)r(ccur)g(ex-)0 797 y(cept)40 b(around)e(apparen)n(t)h(en)n(tries)g(in)h(the)g(lexer)e (output;)0 897 y(other)29 b(braces)g(are)f(returned)i(as)f(tok)n(ens)g (of)h(t)n(yp)r(e)f Fo(TOKEN_)0 996 y(LITERAL)p Fr(.)166 1096 y(No)18 b(more)g(than)h(one)f(tok)n(en)g(of)g(lo)r(ok)-5 b(ahead)18 b(is)g(required)0 1196 y(b)n(y)38 b(this)h(grammar,)h (although)d(the)i(lexer)f(often)h(lo)r(ok)n(ed)0 1295 y(sev)n(eral)22 b(c)n(haracters)f(ahead)h(to)i(examine)f(trailing)f (con)n(text)0 1395 y(in)h(order)f(to)h(distinguish)g(b)r(et)n(w)n(een)f (otherwise)g(similar)h(to-)0 1494 y(k)n(ens.)166 1594 y(B)l Fp(i)n(b)-7 b Fr(T)331 1619 y(E)377 1594 y(X)26 b(users)e(should)h(b)r(e)g(able)g(to)g(read)f(this)i(gram-)0 1694 y(mar)c(and)g(decide)g(whether)g(a)g(questionable)g(B)l Fp(i)n(b)-7 b Fr(T)1585 1719 y(E)1631 1694 y(X)23 b(con-)0 1793 y(struct)37 b(is)g(legal)g(or)f(not,)k(without)e(ha)n(ving)e(to)h (resort)f(to)0 1893 y(soft)n(w)n(are)25 b(exp)r(erimen)n(ts)h(as)g(I)g (did)h(to)f(clarify)g(fuzzy)h(gram-)0 1993 y(matical)g(p)r(oin)n(ts.)0 2159 y Fq(12)95 b(Soft)m(w)m(are)33 b(a)m(v)-5 b(ailabilit)m(y)0 2291 y Fr(The)35 b(source)g(co)r(de)g(and)g(do)r(cumen)n(tation)g(for)g Fo(bibclean)0 2391 y Fr(are)43 b(in)h(the)h Fl(public)h(domain)p Fr(,)j(in)c(the)f(in)n(terests)g(of)g(the)0 2491 y(widest)33 b(a)n(v)-5 b(ailabilit)n(y)31 b(and)i(greatest)e(b)r(ene\014t)j(to)e (the)h(T)1759 2509 y(E)1806 2491 y(X)0 2590 y(comm)n(unit)n(y)-7 b(.)75 b(Commercial)39 b(v)n(endors)f(of)j(T)1440 2608 y(E)1486 2590 y(Xw)n(are)e(are)0 2690 y(encouraged)21 b(to)i(include)h Fo(bibclean)c Fr(with)j(their)g(distribu-)0 2790 y(tions.)166 2889 y(The)c(distribution)g(also)e(includes)i(the)g (separate)f(com-)0 2989 y(plete)23 b(lexer)e(and)i(parser)d(grammar)h (and)h(co)r(de,)h(whic)n(h)f(can)0 3088 y(b)r(e)36 b(pro)r(cessed)f(b)n (y)g Fo(lex)g Fr(or)g Fo(flex)p Fr(,)h(and)g Fo(yacc)e Fr(or)h Fo(bison)p Fr(,)0 3188 y(resp)r(ectiv)n(ely)-7 b(.)65 b(The)37 b(output)h(C)f(co)r(de)g(from)f(these)i(to)r(ols)0 3288 y(is)g(included)g(so)f(that)h(recipien)n(ts)f(need)h(not)g(ha)n(v) n(e)f(them)0 3387 y(installed)30 b(to)h(actually)e(compile)h(and)h(run) f(the)h(lexer)e(and)0 3487 y(parser.)166 3587 y(If)23 b(y)n(ou)e(ha)n(v)n(e)g(In)n(ternet)h(anon)n(ymous)e Fo(ftp)h Fr(access,)h(y)n(ou)0 3686 y(can)31 b(retriev)n(e)f(the)h (distribution)g(in)h(a)e(v)-5 b(ariet)n(y)31 b(of)g(arc)n(hiv)n(e)0 3786 y(formats)39 b(from)h(the)h(mac)n(hine)f Fo(ftp.math.utah.e)o(du) 34 b Fr(in)0 3885 y(the)44 b(directory)e Fo(pub/tex/bib)p Fr(.)79 b(Ma)5 b(jor)42 b(T)1425 3903 y(E)1472 3885 y(X)h(In)n(ternet)0 3985 y(arc)n(hiv)n(e)29 b(hosts)i(around)f(the)i(w)n(orld)e(will)i (also)e(ha)n(v)n(e)g Fo(bib-)0 4085 y(clean)p Fr(,)41 b(but)f(the)g(author's)e(site)i(will)g(alw)n(a)n(ys)d(ha)n(v)n(e)i(the) 0 4184 y(most)e(up-to-date)g(v)n(ersion.)65 b(If)38 b(y)n(ou)f(lac)n(k) g Fo(ftp)f Fr(capabil-)0 4284 y(it)n(y)41 b(but)h(ha)n(v)n(e)d (electronic)i(mail)g(access,)i(a)e(message)e(to)0 4384 y Fo(tuglib@math.utah)o(.ed)o(u)21 b Fr(with)29 b(the)e(text)0 4508 y Fo(help)0 4608 y(send)42 b(index)f(from)h(tex/bib)0 4732 y Fr(will)28 b(get)f(y)n(ou)g(started.)166 4832 y(The)i Fo(bibclean)e Fr(distribution)i(includes)h(a)f(substan-)0 4932 y(tial)e(collection)g(of)g(torture)g(tests)g(that)h(should)f(b)r (e)h(run)f(at)0 5031 y(installation)j(time)h(to)g(v)n(erify)f (correctness.)44 b(As)31 b(with)g(the)0 5131 y(T)46 5149 y(E)92 5131 y(X)j Fo(trip)e Fr(and)h Fi(MET)n(AF)l(ONT)i Fo(trap)c Fr(tests,)k(this)f(testing)0 5230 y(has)f(pro)n(v)n(ed)e(v)-5 b(aluable)33 b(in)g(unco)n(v)n(ering)e(problems)h(b)r(efore)0 5330 y(the)c(co)r(de)f(is)h(installed)f(for)g(general)g(use.)2017 100 y Fq(References)2059 232 y Fr([1])41 b(Alfred)35 b(V.)h(Aho,)g(Brian)e(W.)i(Kernighan,)f(and)g(P)n(e-)2188 332 y(ter)45 b(J.)h(W)-7 b(ein)n(b)r(erger.)88 b Fl(The)48 b(A)-8 b(WK)45 b(Pr)l(o)l(gr)l(amming)2188 432 y(L)l(anguage)p Fr(.)129 b(Addison-W)-7 b(esley)g(,)66 b(Reading,)g(MA,)2188 531 y(USA,)28 b(1988.)35 b(ISBN)28 b(0-201-07981-X.)2059 646 y([2])41 b(Alfred)30 b(V.)h(Aho,)f(Ra)n(vi)f(Sethi,)i(and)f (Je\013rey)f(D.)h(Ull-)2188 746 y(man.)54 b Fl(Compilers|Principles,)40 b(T)-6 b(e)l(chniques,)38 b(and)2188 845 y(T)-6 b(o)l(ols)p Fr(.)83 b(Addison-W)-7 b(esley)g(,)46 b(Reading,)g(MA,)d(USA,)2188 945 y(1986.)35 b(ISBN)28 b(0-201-10088-6.)2059 1060 y([3])41 b(American)h(National)f(Standards)g(Institute,)46 b(1430)2188 1160 y(Broadw)n(a)n(y)-7 b(,)23 b(New)i(Y)-7 b(ork,)25 b(NY)h(10018,)d(USA.)34 b Fl(A)n(meri-)2188 1259 y(c)l(an)d(National)g (Standar)l(d)g(Pr)l(o)l(gr)l(amming)g(L)l(anguage)2188 1359 y(C,)g(ANSI)d(X3.159-1989)p Fr(,)k(Decem)n(b)r(er)27 b(14)g(1989.)2059 1474 y([4])41 b(Nelson)35 b(H.)h(F.)g(Beeb)r(e.)60 b(Publications)35 b(ab)r(out)g(T)3777 1492 y(E)3823 1474 y(X)2188 1573 y(and)c(t)n(yp)r(ograph)n(y)-7 b(.)47 b Fl(TUGBo)l(at)p Fr(,)34 b(Supplemen)n(t)e(to)f(12)2188 1673 y(\(2\):176{183,)25 b(Ma)n(y)h(1991.)2059 1788 y([5])41 b(Nelson)19 b(H.)h(F.)g(Beeb)r(e.)k(Publications)19 b(prepared)f(with) 2188 1887 y(T)2234 1905 y(E)2280 1887 y(X.)37 b Fl(TUGBo)l(at)p Fr(,)28 b(Supplemen)n(t)g(to)g(12\(2\):183{194,)2188 1987 y(Ma)n(y)f(1991.)2059 2102 y([6])41 b(Martin)49 b(Bry)n(an.)98 b Fl(SGML|A)n(n)49 b(A)n(uthor's)h(Guide)2188 2201 y(to)28 b(the)h(Standar)l(d)g(Gener)l(alize)l(d)g(Markup)h(L)l (anguage)p Fr(.)2188 2301 y(Addison-W)-7 b(esley)g(,)63 b(Reading,)g(MA,)57 b(USA,)g(1988.)2188 2401 y(ISBN)28 b(0-201-17535-5.)2059 2516 y([7])41 b(Debra)f(Cameron)f(and)i(Bill)f (Rosen)n(blatt.)75 b Fl(L)l(e)l(arn-)2188 2615 y(ing)34 b(GNU)g(Emacs)p Fr(.)52 b(O'Reilly)32 b(&)g(Asso)r(ciates,)g(Inc.,)2188 2715 y(981)21 b(Chestn)n(ut)i(Street,)g(Newton,)h(MA)f(02164,)e(USA,) 2188 2814 y(1991.)35 b(ISBN)28 b(0-937175-84-6.)2059 2929 y([8])41 b(Margaret)28 b(A.)i(Ellis)f(and)h(Bjarne)f(Stroustrup.) 42 b Fl(The)2188 3029 y(A)n(nnotate)l(d)37 b(C++)g(R)l(efer)l(enc)l(e)h (Manual)p Fr(.)63 b(Addison-)2188 3129 y(W)-7 b(esley)g(,)24 b(Reading,)g(MA,)f(USA,)h(1990.)k(ISBN)23 b(0-201-)2188 3228 y(51459-1.)2059 3343 y([9])41 b(Alan)32 b(R.)g(F)-7 b(euer.)48 b Fl(The)34 b(C)g(Puzzle)g(Bo)l(ok)p Fr(.)50 b(Prentice-)2188 3443 y(Hall,)25 b(Englew)n(o)r(o)r(d)e(Cli\013s,)j(NJ) e(07632,)f(USA,)i(second)2188 3542 y(edition,)j(1989.)35 b(ISBN)28 b(0-13-115502-4.)2017 3657 y([10])41 b(Sam)n(uel)26 b(P)-7 b(.)26 b(Harbison)f(and)i(Guy)f(L.)h(Steele)f(Jr.)34 b Fl(C|)2188 3757 y(A)24 b(R)l(efer)l(enc)l(e)g(Manual)p Fr(.)j(Prentice-Hall,)22 b(Englew)n(o)r(o)r(d)2188 3856 y(Cli\013s,)56 b(NJ)50 b(07632,)j(USA,)e(third)f(edition,)55 b(1991.)2188 3956 y(ISBN)28 b(0-13-110933-2.)2017 4071 y([11])41 b(Rex)27 b(Jaesc)n(hk)n(e.)33 b Fl(Portability)d(and)g(the)f (C)g(L)l(anguage)p Fr(.)2188 4170 y(Ha)n(yden)39 b(Bo)r(oks,)j(4300)c (W)-7 b(est)40 b(62nd)f(Street,)j(Indi-)2188 4270 y(anap)r(olis,)c(IN)f (46268,)g(USA,)g(1989.)62 b(ISBN)37 b(0-672-)2188 4370 y(48428-5.)2017 4485 y([12])k(Stev)n(en)e(C.)g(Johnson.)68 b(Y)-7 b(acc:)59 b(Y)-7 b(et)39 b(another)f(com-)2188 4584 y(piler)20 b(compiler.)k(In)c Fl(UNIX)i(Pr)l(o)l(gr)l(ammer's)i (Manual)p Fr(,)2188 4684 y(v)n(olume)33 b(2,)h(pages)e(353{387.)e (Holt,)k(Reinhart,)h(and)2188 4783 y(Winston,)j(New)d(Y)-7 b(ork,)37 b(NY,)f(USA,)g(1979.)59 b(A)-7 b(T&T)2188 4883 y(Bell)43 b(Lab)r(oratories)e(T)-7 b(ec)n(hnical)42 b(Rep)r(ort,)47 b(July)c(31,)2188 4983 y(1978.)2017 5098 y([13])e(Brian)f(W.)i (Kernighan)d(and)i(Dennis)h(M.)f(Ritc)n(hie.)2188 5197 y Fl(The)35 b(C)f(Pr)l(o)l(gr)l(amming)h(L)l(anguage)p Fr(.)51 b(Prentice-Hall,)2188 5297 y(Englew)n(o)r(o)r(d)26 b(Cli\013s,)i(NJ)g(07632,)e(USA,)i(1978.)35 b(ISBN)2188 5396 y(0-13-110163-3.)p eop %%Page: 415 21 415 20 bop 0 -149 a Fr(TUGb)r(oat,)28 b(V)-7 b(olume)28 b(14)e(\(1993\),)h(No.)g(4)2471 b(415)0 100 y([14])41 b(Brian)f(W.)h(Kernighan)f(and)h(Dennis)g(M.)h(Ritc)n(hie.)171 199 y Fl(The)35 b(C)f(Pr)l(o)l(gr)l(amming)g(L)l(anguage)p Fr(.)51 b(Prentice-Hall,)171 299 y(Englew)n(o)r(o)r(d)29 b(Cli\013s,)j(NJ)g(07632,)d(USA,)j(second)e(edi-)171 399 y(tion,)d(1988.)35 b(ISBN)28 b(0-13-110362-8.)0 515 y([15])41 b(Donald)35 b(E.)h(Kn)n(uth.)61 b(On)35 b(the)h(translation)f (of)h(lan-)171 614 y(guages)19 b(from)i(left)g(to)g(righ)n(t.)k Fl(Information)g(and)f(Con-)171 714 y(tr)l(ol)p Fr(,)42 b(8\(6\):607{639,)c(1965.)70 b(This)39 b(is)g(the)h(original)171 814 y(pap)r(er)27 b(on)g(the)h(theory)f(of)g(LR\(k\))i(parsing.)0 930 y([16])41 b(Donald)31 b(E.)h(Kn)n(uth.)49 b Fl(The)35 b(T)1100 948 y(E)1146 930 y(Xb)l(o)l(ok)p Fr(,)f(v)n(olume)d(A)h(of)171 1029 y Fl(Computers)40 b(and)h(T)-6 b(yp)l(esetting)p Fr(.)70 b(Addison-W)-7 b(esley)g(,)171 1129 y(Reading,)32 b(MA,)h(USA,)g(1986.)48 b(ISBN)32 b(0-201-13447-)171 1229 y(0.)0 1345 y([17])41 b(Andrew)34 b(Ko)r(enig.)55 b Fl(C)37 b(T)-6 b(r)l(aps)36 b(and)g(Pitfal)t(ls)p Fr(.)59 b(Addi-)171 1445 y(son-W)-7 b(esley)g(,)39 b(Reading,)g(MA,)f(USA,)g (1989.)64 b(ISBN)171 1544 y(0-201-17928-8.)0 1660 y([18])41 b(Leslie)d(Lamp)r(ort.)70 b Fl(L)852 1645 y Fh(A)889 1660 y Fl(T)934 1678 y(E)980 1660 y(X|A)39 b(Do)l(cument)g(Pr)l(ep)l (a-)171 1760 y(r)l(ation)55 b(System|User's)h(Guide)g(and)g(R)l(efer)l (enc)l(e)171 1860 y(Manual)p Fr(.)44 b(Addison-W)-7 b(esley)g(,)30 b(Reading,)g(MA,)g(USA,)171 1959 y(1985.)35 b(ISBN)27 b(0-201-15790-X.)0 2076 y([19])41 b(J.)35 b(E.)f(Lapin.)60 b Fl(Portable)38 b(C)f(and)g(UNIX)f(Pr)l(o)l(gr)l(am-)171 2175 y(ming)p Fr(.)112 b(Prentice-Hall,)58 b(Englew)n(o)r(o)r(d)52 b(Cli\013s,)59 b(NJ)171 2275 y(07632,)25 b(USA,)j(1987.)35 b(ISBN)28 b(0-13-686494-5.)0 2391 y([20])41 b(Mic)n(hael)21 b(E.)g(Lesk)g(and)g(Eric)f(Sc)n(hmidt.)28 b(Lex|a)20 b(lexi-)171 2491 y(cal)j(analyzer)g(generator.)29 b(In)24 b Fl(UNIX)i(Pr)l(o)l(gr)l(ammer's)171 2590 y(Manual)p Fr(,)33 b(v)n(olume)d(2,)i(pages)e(388{400.)e(Holt,)k(Rein-)171 2690 y(hart,)24 b(and)g(Winston,)h(New)g(Y)-7 b(ork,)24 b(NY,)h(USA,)g(1979.)171 2790 y(A)-7 b(T&T)39 b(Bell)g(Lab)r(oratories) d(T)-7 b(ec)n(hnical)39 b(Rep)r(ort)g(in)171 2889 y(1975.)0 3005 y([21])i(John)19 b(R.)i(Levine,)h(T)-7 b(on)n(y)19 b(Mason,)i(and)f(Doug)g(Bro)n(wn.)171 3105 y Fo(lex)33 b Fl(&)i Fo(yacc)p Fr(.)52 b(O'Reilly)34 b(&)f(Asso)r(ciates,)g(Inc.,)i (981)171 3205 y(Chestn)n(ut)21 b(Street,)h(Newton,)g(MA)f(02164,)e (USA,)j(sec-)171 3304 y(ond)f(edition,)j(1992.)h(ISBN)d(1-56592-000-7.) g(400)f(pp.)171 3404 y(US$29.95.)0 3520 y([22])41 b(T)-7 b(on)n(y)37 b(Mason)g(and)h(Doug)g(Bro)n(wn.)66 b Fo(lex)39 b Fl(&)g Fo(yacc)p Fr(.)171 3620 y(O'Reilly)60 b(&)h(Asso)r(ciates,)69 b(Inc.,)g(981)60 b(Chestn)n(ut)171 3719 y(Street,)32 b(Newton,)g(MA)g(02164,)d(USA,)j(1990.)46 b(ISBN)171 3819 y(0-937175-49-8.)0 3935 y([23])41 b(P)-7 b(.)30 b(J.)g(Plauger.)44 b Fl(The)34 b(Standar)l(d)e(C)h(Libr)l(ary)p Fr(.)47 b(Pren-)171 4035 y(tice-Hall,)h(Englew)n(o)r(o)r(d)42 b(Cli\013s,)49 b(NJ)44 b(07632,)h(USA,)171 4134 y(1992.)35 b(ISBN)27 b(0-13-838012-0.)0 4251 y([24])41 b(Henry)21 b(Rabino)n(witz)f(and)i(Chaim)f(Sc)n(haap.)26 b Fl(Portable)171 4350 y(C)p Fr(.)47 b(Prentice-Hall,)30 b(Englew)n(o)r(o)r(d)g (Cli\013s,)i(NJ)e(07632,)171 4450 y(USA,)e(1990.)35 b(ISBN)28 b(0-13-685967-4.)0 4566 y([25])41 b(Brian)33 b(Reid.)56 b Fl(Scrib)l(e)37 b(User's)f(Manual)p Fr(.)57 b(Carnegie-)171 4666 y(Mellon)28 b(Univ)n(ersit)n(y)-7 b(,)27 b(Pittsburgh,)h(P)-7 b(A,)28 b(USA,)h(third)171 4765 y(edition,)e(1980.)0 4882 y([26])41 b(Marc)32 b(J.)g(Ro)r(c)n(hkind.)53 b Fl(A)l(dvanc)l(e)l(d)35 b(UNIX)f(Pr)l(o)l(gr)l(am-)171 4981 y(ming)p Fr(.)112 b(Prentice-Hall,)58 b(Englew)n(o)r(o)r(d)52 b(Cli\013s,)59 b(NJ)171 5081 y(07632,)28 b(USA,)i(1985.)41 b(ISBN)30 b(0-13-011818-4)24 b(\(hard-)171 5181 y(bac)n(k\),)j (0-13-011800-1)22 b(\(pap)r(erbac)n(k\).)0 5297 y([27])41 b(Mic)n(hael)j(A.)h(Sc)n(ho)r(ono)n(v)n(er,)i(John)e(S.)g(Bo)n(wie,)j (and)171 5396 y(William)32 b(R.)f(Arnold.)49 b Fl(GNU)33 b(Emacs:)46 b(UNIX)33 b(T)-6 b(ext)2188 100 y(Editing)52 b(and)e(Pr)l(o)l(gr)l(amming)p Fr(.)105 b(Addison-W)-7 b(esley)g(,)2188 199 y(Reading,)22 b(MA,)h(USA,)f(1992.)j(ISBN)d (0-201-56345-2.)2188 299 y(610)k(pp.)37 b(LCCN)28 b(QA76.76.T49S36.) 2017 415 y([28])41 b(Axel)46 b(T.)g(Sc)n(hreiner)e(and)h(H.)i(George)d (F)-7 b(riedman,)2188 515 y(Jr.)33 b Fl(Intr)l(o)l(duction)28 b(to)g(Compiler)i(Construction)e(Un-)2188 614 y(der)f(UNIX)p Fr(.)i(Prentice-Hall,)24 b(Englew)n(o)r(o)r(d)e(Cli\013s,)i(NJ)2188 714 y(07632,)37 b(USA,)g(1985.)63 b(ISBN)37 b(0-13-474396-2.)58 b(224)2188 814 y(pp.)2017 930 y([29])41 b(W.)29 b(Ric)n(hard)f(Stev)n (ens.)39 b Fl(UNIX)30 b(Network)h(Pr)l(o)l(gr)l(am-)2188 1029 y(ming)p Fr(.)112 b(Prentice-Hall,)58 b(Englew)n(o)r(o)r(d)52 b(Cli\013s,)59 b(NJ)2188 1129 y(07632,)25 b(USA,)k(1990.)35 b(ISBN)28 b(0-13-949876-1.)2017 1245 y([30])41 b(Bjarne)46 b(Stroustrup.)93 b Fl(The)49 b(C++)e(Pr)l(o)l(gr)l(amming)2188 1345 y(L)l(anguage)p Fr(.)129 b(Addison-W)-7 b(esley)g(,)66 b(Reading,)g(MA,)2188 1445 y(USA,)29 b(second)e(edition,)h(1991.)35 b(ISBN)28 b(0-201-53992-)2188 1544 y(6.)2017 1660 y([31])41 b(Eric)30 b(v)-5 b(an)32 b(Herwijnen.)48 b Fl(Pr)l(actic)l(al)34 b(SGML)p Fr(.)49 b(Klu)n(w)n(er)2188 1760 y(Academic)59 b(Publishers)f(Group,)67 b(Norw)n(ell,)f(MA,)2188 1860 y(USA,)33 b(1990.)48 b(ISBN)33 b(0-7923-0635-X.)45 b(xviii)32 b(+)g(307)2188 1959 y(pp.)37 b Fl($)p Fr(24.90)26 b(\(1990\).)2017 2076 y([32])41 b(X/Op)r(en)52 b(Compan)n(y)-7 b(,)58 b(Ltd.)110 b Fl(X/Op)l(en)52 b(Portabil-)2188 2175 y(ity)41 b(Guide,)j(XSI)39 b(Commands)i(and)g(Utilities)p Fr(,)i(v)n(ol-)2188 2275 y(ume)h(1.)84 b(Prentice-Hall,)47 b(Englew)n(o)r(o)r(d)42 b(Cli\013s,)48 b(NJ)2188 2374 y(07632,)25 b(USA,)k(1989.)35 b(ISBN)28 b(0-13-685835-X.)2017 2565 y Fq(Index)2017 2690 y Fg(.)p Ff(,)h(402)2017 2781 y Fg(.bbl)p Ff(,)g(412)2017 2873 y Fg(.bibcleanrc)p Ff(,)i(397)2017 2964 y Fg(.ini)p Ff(,)e(400,)h(402)2017 3055 y Fg(/*)f(empty)f(*/)g Ff(rule,)h(413)2017 3147 y Fg(/*...*/)p Ff(,)h(413)2017 3238 y Fg(:)p Ff(,)f(402)2017 3329 y(?,)g(402)2017 3421 y Fg(@)p Ff(,)g(400)2017 3512 y Fg(\045)p Fe(f)p Ff(,)g(407,)g(410)2017 3603 y Fg(\045)p Fe(g)p Ff(,)g(407,)g(410)2017 3694 y Fg(\045\045)p Ff(,)g(402,)g(407,)g (410)2017 3786 y Fg(\045e)p Ff(,)g(402)2017 3877 y Fg(\045f)p Ff(,)g(402)2017 3968 y Fg(\045k)p Ff(,)g(402)2017 4060 y Fg(\045left)p Ff(,)h(410,)f(411)2017 4151 y Fg(\045nonassoc)p Ff(,)h(410)2017 4242 y Fg(\045token)p Ff(,)g(410)2017 4334 y Fg(\045v)p Ff(,)f(402)2017 4425 y Fg(\\")p Ff(,)g(401,)g(402,)g (409)2017 4516 y Fg(@)p Ff(,)g(405,)g(406,)g(408,)g(411)2017 4608 y Fg(@Begin)p Ff(,)h(405)2017 4699 y Fg(@Begin)p Fe(f)p Fg(comment)p Fe(g)p Ff(,)i(405)2017 4790 y Fg(@Comment)p Ff(,)e(405)2017 4882 y Fg(@Comment)p Fe(f)p Fg(...)p Fe(g)p Ff(,)i(405,)d(406,)g(411)2017 4973 y Fg(@End)p Ff(,)g(405)2017 5064 y Fg(@End)p Fe(f)p Fg(comment)p Fe(g)p Ff(,)j(405)2017 5156 y Fg(@Preamble)p Fe(f)p Fg(...)p Fe(g)p Ff(,)g(405)2017 5247 y Fg(@String)p Ff(,)e(405)2017 5338 y Fg(@String)p Fe(f)p Fg(...)p Fe(g)p Ff(,)i(406)p eop %%Page: 416 22 416 21 bop 0 -149 a Fr(416)2470 b(TUGb)r(oat,)28 b(V)-7 b(olume)27 b(14)g(\(1993\),)f(No.)i(4)0 100 y Fg(@@)p Ff(,)g(405)0 191 y Fg(@name)p Ff(,)h(405,)g(411)0 282 y Fg(@name)p Fe(f)p Fg(...)p Fe(g)p Ff(,)i(411)0 374 y Fg(\\\\)p Ff(,)d(401)0 465 y Fg(\\0x0a)p Ff(,)h(401)0 556 y Fg(\\0xhh)p Ff(,)g(401)0 648 y(8-bit)f(clean,)g(409)0 822 y Fg(\\0)p Ff(,)g(401,)i(409)0 913 y Fg(\\012)p Ff(,)f(401)0 1005 y Fg(\\013)p Ff(,)g(407)0 1179 y Fg(A)p Ff(,)f(402)0 1270 y Fg(\\a)p Ff(,)g(401)0 1362 y Fg(a)p Ff(,)g(402)0 1453 y(abbreviation,)g(408,)i(413)0 1544 y(accen)n(t)e(con)n(trol)g (sequence,)g(409)0 1636 y(Aho,)g(Alfred)g(V.,)f(404,)j(405,)f(411)0 1727 y(anon)n(ymous)f Fg(ftp)p Ff(,)g(414)0 1818 y(ANSI/ISO)e(Standard) h(C,)h(403,)h(404,)h(407)0 1910 y(ap)r(ostrophe)166 2001 y(in)e(citation)g(k)n(ey)-6 b(,)27 b(406)0 2092 y(Apple)g(Macin)n (tosh,)i(407)0 2183 y(arc)n(hiv)n(e)f(hosts)166 2275 y(In)n(ternet,)f(414)0 2366 y Fg(Article)p Ff(,)j(411)0 2457 y(assignmen)n(t,)f(413)166 2549 y(list,)g(412)166 2640 y(op)r(erator,)g(409,)g(413)249 2731 y(asso)r(ciativit)n(y)g(of,)g (410)166 2823 y(rule)249 2914 y(error)f(reco)n(v)n(ery)g(in,)g(411)166 3005 y(separator,)h(409)0 3097 y Fg(assignment)h Ff(rule,)e(412,)h(413) 0 3188 y Fg(assignment_lhs)i Ff(rule,)d(413)0 3279 y Fg(assignment_list)p Ff(,)j(412,)f(413)0 3371 y Fg(assignment_list)h Ff(rule,)d(412,)h(413)0 3462 y(asso)r(ciativit)n(y)-6 b(,)29 b(410)0 3553 y(at-sign,)g(405)0 3645 y Fg(at_object)h Ff(rule,)e(411)0 3736 y(A)n(tari,)g(404)0 3827 y Fg(-author)p Ff(,)i(397)0 3919 y Fg(author)p Ff(,)f(413)0 4010 y(author)f(name)166 4101 y(p)r(erio)r(d)g(after)h(initials,)g(398)166 4193 y(reordering,)g(398)0 4284 y(auxiliary)f(\014le,)g(396)0 4458 y Fg(\\b)p Ff(,)g(401)0 4550 y(Bac)n(h,)g(P)-6 b(.)28 b(D.)g(Q.,)g(400)0 4641 y(bac)n(k)f(end,)h(397)0 4732 y(bac)n(kslash-newline,)h(398,)g(400,)g(403,)h(404,)f(408)0 4824 y(bac)n(kslash-quote,)f(405)0 4915 y(Beeb)r(e,)h(Nelson)f(H.)f (F.,)i(396)0 5006 y Fg(bib)p Ff(,)g(406)0 5098 y Fg(bibclean)p Ff(,)h(395{405,)h(407,)e(408,)g(410,)g(412,)g(414)0 5189 y Fg(bibclean.ini)p Ff(,)i(397)0 5280 y Fg(BIBCLEANEXT)p Ff(,)g(400)0 5372 y Fg(BIBCLEANINI)p Ff(,)g(397)2017 100 y Fg(bibdup)p Ff(,)f(404)2017 191 y Fg(bibdup.awk)p Ff(,)h(404)2017 282 y Fg(BIBINPUTS)p Ff(,)f(397,)g(400)2017 374 y Fg(biblex)p Ff(,)g(407,)f(410)2017 465 y(bibliograph)n(y)2183 556 y(en)n(try)-6 b(,)27 b(412)2183 648 y(\014le,)i(396,)g(397)2183 739 y(st)n(yle,)g(396)2017 830 y Fg(\\bibliography)p Ff(,)i(396,)f(406)2017 922 y(bibliograph)n(y-sp)r(eci\014c)e(pattern,)g (402)2017 1013 y Fg(\\bibliographystyle)p Ff(,)33 b(396)2017 1104 y Fg(bibparse)p Ff(,)d(410)2017 1196 y Fg(bibtex_file)h Ff(rule,)d(411)2017 1287 y Fg(bison)p Ff(,)i(406,)f(408,)g(410{412,)i (414)2017 1378 y Fg(Book)p Ff(,)e(411)2017 1469 y(Borland)g(In)n (ternational,)f(404)2017 1561 y(brace,)h(409)2183 1652 y(ignored)g(in)e(pattern)h(matc)n(hing,)g(402)2183 1743 y(space)h(around,)f(402)2017 1835 y(Bro)n(wn,)h(Doug,)f(406)2017 1926 y(Bry)n(an,)g(Martin,)h(396)2017 2017 y(bu\013er)e(o)n(v)n (er\015o)n(w,)i(406)2017 2192 y(C++,)f(397,)i(404)2017 2283 y(Cameron,)g(Debra,)d(396)2017 2374 y(carriage)j(return,)d(407) 2017 2466 y Fg(chapter)p Ff(,)j(402)2017 2557 y Fg(-check-values)p Ff(,)h(398,)f(400)2017 2648 y(c)n(hec)n(ksum)2183 2740 y(in)e Fg(ISBN)h Ff(and)e Fg(ISSN)p Ff(,)i(402)2017 2831 y(citation)2183 2922 y(k)n(ey)-6 b(,)27 b(395,)i(403,)h(412)2267 3014 y(problems)e(in)f(recognizing,)j(412)2183 3105 y(st)n(yle,)f(396) 2017 3196 y Fg(\\cite)p Ff(,)h(396)2017 3288 y(class)g(library)-6 b(,)27 b(404)2017 3379 y(co)r(de)i(generation,)g(397)2017 3470 y(colon,)g(410)2017 3562 y(comma,)g(412)2183 3653 y(optional)g(after)g(assignmen)n(t,)g(413)2017 3744 y(command-line)f (options,)h Fd(se)l(e)34 b Ff(options)2017 3836 y Fg(Comment)p Ff(,)c(408,)f(409,)g(411)2017 3927 y(commen)n(t)2183 4018 y(en)n(try)-6 b(,)27 b(411)2183 4110 y(in-line,)i(408,)g(410,)g (412,)g(413)2267 4201 y(asso)r(ciativit)n(y)g(of,)g(410)2267 4292 y(precedence)e(of,)i(411)2183 4384 y(syn)n(tax,)f(406)2017 4475 y Fg(comment)p Ff(,)i(405)2017 4566 y Fg(comment)g Ff(rule,)e(411,)h(412)2017 4658 y(concatenation,)h Fd(se)l(e)k Ff(string)2017 4749 y(con)n(trol)29 b(sequence)2183 4840 y Fg(\\bibliography)p Ff(,)i(396,)f(406)2183 4932 y Fg (\\bibliographystyle)p Ff(,)j(396)2183 5023 y Fg(\\cite)p Ff(,)d(396)2017 5114 y(core)f(dump,)e(405)2017 5289 y Fg(D)p Ff(,)i(402)2017 5380 y Fg(d)p Ff(,)g(402)p eop %%Page: 417 23 417 22 bop 0 -149 a Fr(TUGb)r(oat,)28 b(V)-7 b(olume)28 b(14)e(\(1993\),)h(No.)g(4)2471 b(417)0 100 y Ff(decimal,)29 b(397)0 191 y Fg(-delete-empty-values)p Ff(,)k(398,)c(399)0 282 y(delimited)f(string,)h(409,)g(413)0 374 y(delimiters)166 465 y(in)f Fc(Scribe)p Ff(,)f(405)166 556 y(mismatc)n(hed,)h(398,)i (413)0 648 y(digit)e(string,)h(408)0 739 y(do)r(cumen)n(tation,)f(414)0 830 y(dump)166 922 y(p)r(ost-mortem,)g(405)0 1096 y(editor,)g Fd(se)l(e)35 b Ff(Emacs)0 1187 y(editor)28 b(name)166 1279 y(p)r(erio)r(d)g(after)h(initials,)g(398)166 1370 y(reordering,)g(398)0 1461 y(electronic)g(mail)g(serv)n(er,)f(414)0 1553 y(Ellis,)i(Margaret)f(A.,)f(404)0 1644 y(Emacs,)h(396,)g(399,)g (405)0 1735 y(em)n(b)r(edded)e(quote,)g(409)0 1826 y(empt)n(y)166 1918 y(pattern,)h(402)166 2009 y(string,)h(413)166 2100 y(v)l(alues)249 2192 y(deleting,)g(398)0 2283 y(en)n(try)166 2374 y(name,)f(408)0 2466 y Fg(entry)h Ff(rule,)f(411{413)0 2557 y Fg(entry_head)i Ff(rule,)e(412)0 2648 y(en)n(vironmen)n(t)f(v)l (ariable,)h(397)0 2740 y(error)166 2831 y(log)h(\014le,)f(399)166 2922 y(message,)i(411)249 3014 y(redirecting,)f(397)166 3105 y(reco)n(v)n(ery)-6 b(,)27 b(411)166 3196 y(rep)r(orting,)i(406)0 3288 y Fg(error)g Ff(rule,)f(411)0 3379 y Fg(-error-log)i(filename)p Ff(,)g(397)0 3470 y(escap)r(e)f(sequence,)e(401,)j(403,)f(405,)g(409) 166 3562 y(in)f(message)h(text,)e(402)166 3653 y(table,)h(401)0 3827 y Fg(\\f)p Ff(,)g(401,)i(407)0 3919 y(F)-6 b(euer,)28 b(Alan)f(R.,)h(404)0 4010 y(\014eld)f(name,)i(408,)g(413)0 4101 y(\014le)166 4193 y Fg(.bbl)p Ff(,)g(412)166 4284 y Fg(.bibcleanrc)p Ff(,)i(397)166 4375 y Fg(.ini)p Ff(,)e(400,)g(402) 166 4467 y Fg(bibclean)p Ff(,)h(404)166 4558 y Fg(bibclean.ini)p Ff(,)h(397)166 4649 y Fg(BIBCLEANEXT)p Ff(,)g(400)166 4741 y Fg(BIBCLEANINI)p Ff(,)g(397)166 4832 y Fg(bibdup)p Ff(,)e(404)166 4923 y Fg(bibdup.awk)p Ff(,)h(404)166 5015 y Fg(BIBINPUTS)p Ff(,)g(397,)f(400)166 5106 y(bibliograph)n(y)-6 b(,)28 b(396,)h(397)166 5197 y(error)f(log,)i(399)166 5289 y Fg(ftp.math.utah.edu)p Ff(,)i(414)166 5380 y(inclusion,)d(406,)g (412)2183 100 y(initialization,)i(397,)e(398,)g(400)2267 191 y(lo)r(cating,)g(399)2267 282 y(nested,)e(400)2267 374 y(pattern)g(c)n(haracters,)i(402)2267 465 y(patterns)e(in,)h(398) 2183 556 y(name)2267 648 y(space)g(in,)g(412)2267 739 y(syn)n(tax)e(of,)j(412)2183 830 y Fg(nawk)p Ff(,)g(404)2183 922 y Fg(PATH)p Ff(,)g(397,)h(400)2183 1013 y Fg(pub/tex/bib)p Ff(,)h(414)2183 1104 y Fg(regexp)p Ff(,)f(401)2183 1196 y(sample)f(initialization,)h(401)2183 1287 y Fg(stderr)p Ff(,)g(397,)f(399)2183 1378 y Fg(stdin)p Ff(,)h(400)2183 1469 y Fg(SYS$SYSTEM)p Ff(,)h(397)2183 1561 y Fg(tr)p Ff(,)e(404)2183 1652 y Fg(tuglib@math.utah.edu)p Ff(,)k(414)2017 1743 y Fg(-file-position)p Ff(,)f(398,)d(399)2017 1835 y Fg(-fix-font-changes)p Ff(,)j(398,)d(399)2017 1926 y Fg(-fix-initials)p Ff(,)i(398,)f(400)2017 2017 y Fg(-fix-names)p Ff(,)h(398,)e(400)2017 2109 y Fg(flex)p Ff(,)g(406,)h(407,)f(414)2017 2200 y(fon)n(t)f(c)n(hanges)2183 2291 y(\014xing,)g(398)2017 2383 y(format)2183 2474 y(item,)h(402)2267 2565 y Fg(\045\045)p Ff(,)f(402)2267 2657 y Fg(\045e)p Ff(,)g(402)2267 2748 y Fg(\045f)p Ff(,)g(402)2267 2839 y Fg(\045k)p Ff(,)g(402)2267 2931 y Fg(\045v)p Ff(,)g(402)2183 3022 y(of)h(grammar)g(rules,)f(407,)i (410)2017 3113 y(formfeed,)g(407)2017 3205 y(F)-6 b(ree)28 b(Soft)n(w)n(are)h(F)-6 b(oundation,)28 b(397,)h(406)2017 3296 y(F)-6 b(riedman,)28 b(Jr.,)h(H.)f(George,)h(406)2017 3387 y(fron)n(t)f(end,)g(397)2017 3479 y Fg(ftp)p Ff(,)h(414)2017 3570 y Fg(ftp.math.utah.edu)p Ff(,)j(414)2017 3661 y(function)2183 3753 y Fg(out_lbrace\(\))p Ff(,)f(409)2183 3844 y Fg(out_lparen\(\))p Ff(,)g(409)2183 3935 y Fg(out_protected_string\(\))p Ff(,)i(408)2183 4027 y Fg(out_rbrace\(\))p Ff(,)e(409)2183 4118 y Fg(out_rparen\(\))p Ff(,)g(409)2183 4209 y Fg(out_string\(\))p Ff(,)g(409)2183 4301 y Fg(out_token\(\))p Ff(,)g(408,)e(409)2017 4475 y(GNU)2183 4566 y(Emacs,)h(396,)f(399,)g(405)2183 4658 y Fg(regexp)h Ff(pac)n(k)l(age,)e(401)2183 4749 y(T)2225 4765 y(E)2269 4749 y(Xinfo,)g(405)2017 4840 y(grammar,)i(405)2183 4932 y(format)f(of)g(rules,)f(407,)i(410)2183 5023 y(formatting)g(con)n(v)n(en)n(tions,)d(410)2183 5114 y(LALR\(1\),)h(406,)h(412)2183 5205 y(lexical,)h(407)2183 5297 y(LL\(0\),)f(405)2183 5388 y(LL\(1\),)g(405,)g(406)p eop %%Page: 418 24 418 23 bop 0 -149 a Fr(418)2470 b(TUGb)r(oat,)28 b(V)-7 b(olume)27 b(14)g(\(1993\),)f(No.)i(4)166 100 y Ff(LR\()p Fb(k)r Ff(\),)f(406)166 191 y(parsing,)i(410)166 282 y(size)g(of,)f(407,)i(410)0 457 y(Harbison,)e(Sam)n(uel)g(P)-6 b(.,)28 b(404)0 548 y Fg(help)p Ff(,)h(414)0 639 y Fg(-help)g Ff(or)f Fg(-?)p Ff(,)g(397)0 731 y(Herwijnen,)h(Eric)f(v)l(an,)f(396)0 822 y(hexadecimal,)i(397)0 913 y(horizon)n(tal)g(space)f(c)n(haracter,) h(407,)g(409)0 1088 y(in-line)f(commen)n(t,)g(408,)h(410,)g(412,)g(413) 166 1179 y(asso)r(ciativit)n(y)g(of,)g(410)166 1270 y(precedence)f(of,) h(411)0 1362 y Fg(Include)p Ff(,)h(408,)f(409,)g(411,)g(412)0 1453 y Fg(include)g Ff(rule,)f(411,)i(412)0 1544 y Fg(-init-file)g (filename)p Ff(,)g(397,)f(398,)g(400)0 1636 y(initialization)h(\014le,) e(397,)h(398,)h(400)166 1727 y(lo)r(cating,)g(399)166 1818 y(nested,)e(400)166 1910 y(pattern)f(c)n(haracters,)i(402)166 2001 y(patterns)f(in,)g(398)166 2092 y(sample,)h(401)0 2183 y(In)n(ternet)e(arc)n(hiv)n(e)g(hosts,)i(414)0 2275 y(in)n(terpretation)f(of)h(co)r(de,)f(397)0 2366 y Fg(ISBN)p Ff(,)h(402)0 2457 y(ISBN)e(\(In)n(ternational)h(Standard)f(Bo)r(ok)h (Num)n(b)r(er\),)f(399)0 2549 y(ISO10646M)i(c)n(haracter)g(set,)f(406)0 2640 y Fg(ISSN)p Ff(,)h(402)0 2731 y(ISSN)d(\(In)n(ternational)i (Standard)f(Serial)i(Num)n(b)r(er\),)e(399)0 2906 y(Jaesc)n(hk)n(e,)i (Rex,)e(404)0 2997 y(Johnson,)i(Stev)n(en)d(C.,)j(406)0 3171 y(Kahn,)e(Philipp)r(e,)i(404)0 3263 y(Kernighan,)f(Brian)h(W.,)f (404)0 3354 y Fg(key)p Ff(,)h(403,)g(405)0 3445 y(k)n(ey)e(name,)h (408,)h(412)0 3537 y Fg(key_name)g Ff(rule,)g(412)0 3628 y(Kn)n(uth,)d(Donald)i(E.,)h(398,)g(404,)g(406)0 3719 y(Ko)r(enig,)g(Andrew,)e(404)0 3894 y(LALR\(1\))166 3985 y(grammar,)i(406,)h(412)166 4076 y(parser,)f(406)0 4168 y(Lamp)r(ort,)f(Leslie,)i(395,)f(396,)g(403,)g(406)0 4259 y(Lapin,)f(J.)h(E.,)f(404)0 4350 y Fg(last_object)p Ff(,)j(408)0 4442 y Fg(last_token)p Ff(,)f(408)0 4533 y Fg(\045left)p Ff(,)f(410,)g(411)0 4624 y(left-recursiv)n(e)f(rule,)g (411)0 4716 y(Lesk,)g(Mic)n(hael)h(E.,)g(406)0 4807 y(Levine,)f(John)g (R.,)g(406)0 4898 y Fg(lex)p Ff(,)h(406{410,)h(414)0 4990 y(lexer,)e Fd(se)l(e)35 b Ff(lexical)28 b(analyzer)0 5081 y(lexical)h(analysis,)g(397)0 5172 y(lexical)g(analyzer,)g(397,)g (398,)g(403)0 5264 y(lexical)g(grammar,)g(407)0 5355 y(line)2183 100 y(n)n(um)n(b)r(er,)f(406)2183 191 y(n)n(um)n(b)r(er)f (directiv)n(e,)h(403)2183 282 y(width)g(limit,)h(397)2183 374 y(wrapping,)g(398,)g(404,)g(408)2017 465 y(list)2183 556 y(of)g(assignmen)n(ts,)g(412)2183 648 y(of)g(ob)t(jects,)g(411)2017 739 y(literate)g(programming,)h(407,)f(410)2017 830 y(LL\(0\))f (grammar,)h(405)2017 922 y(LL\(1\))2183 1013 y(grammar,)h(405,)f(406) 2183 1104 y(parser,)g(411)2017 1196 y(LR\()p Fb(k)r Ff(\))f(grammar,)h (406)2017 1370 y(Macin)n(tosh)2183 1461 y(Apple,)f(407)2017 1553 y(macro,)h Fd(se)l(e)g(also)k Ff(con)n(trol)28 b(sequence)2183 1644 y Fg(N)p Ff(,)h(407,)g(408)2183 1735 y Fg(O)p Ff(,)g(407)2183 1826 y Fg(RETURN)p Ff(,)h(408{410)2183 1918 y Fg(S)p Ff(,)f(407)2183 2009 y Fg(W)p Ff(,)g(407)2017 2100 y(macro)g (de\014nition)2183 2192 y Fg(lex)p Ff(,)g(407)2017 2283 y(macro)g(use)2183 2374 y Fg(lex)p Ff(,)g(407)2017 2466 y(Mason,)h(T)-6 b(on)n(y)g(,)27 b(406)2017 2557 y Fg(-max-width)j(0)p Ff(,)f(397)2017 2648 y Fg(-max-width)h(nnn)p Ff(,)f(397,)g(404)2017 2740 y(men)n(u)2183 2831 y(p)r(op-up,)e(396)2017 2922 y(message)2183 3014 y(disabling)i(w)n(arning,)g(399)2183 3105 y(error,)g(411)2183 3196 y(help,)f(397)2183 3288 y(redirecting,)h(397)2017 3379 y(mismatc)n(hed)f(delimiters,)i(398,)f (413)2017 3470 y Fg(month)p Ff(,)h(402)2017 3645 y Fg(N)p Ff(,)f(407,)g(408)2017 3736 y Fg(\\n)p Ff(,)g(401)2017 3827 y Fg(name)p Ff(,)g(411)2017 3919 y Fg(nawk)p Ff(,)g(404)2017 4010 y(newline,)g(409,)g(412,)h(413)2183 4101 y(asso)r(ciativit)n(y)g (of,)f(410)2017 4193 y Fg(-no-check-values)p Ff(,)j(398)2017 4284 y Fg(-no-delete-empty-values)p Ff(,)i(398,)29 b(399)2017 4375 y Fg(-no-file-position)p Ff(,)j(398)2017 4467 y Fg(-no-fix-font-changes)p Ff(,)h(398)2017 4558 y Fg(-no-fix-initials)p Ff(,)f(398)2017 4649 y Fg(-no-fix-names)p Ff(,)f(398)2017 4741 y Fg(-no-init-files)p Ff(,)h(400)2017 4832 y Fg(-no-par-breaks)p Ff(,)g(398,)d(399)2017 4923 y Fg(-no-prettyprint)p Ff(,)j(397,)d(398,)g (403,)g(407,)h(410)2017 5015 y Fg(-no-print-patterns)p Ff(,)j(398)2017 5106 y Fg(-no-read-init-files)p Ff(,)g(398)2017 5197 y Fg(-no-remove-OPT-prefixes)p Ff(,)h(398,)29 b(399)2017 5289 y Fg(-no-scribe)p Ff(,)i(399)2017 5380 y Fg (-no-trace-file-opening)p Ff(,)i(399)p eop %%Page: 419 25 419 24 bop 0 -149 a Fr(TUGb)r(oat,)28 b(V)-7 b(olume)28 b(14)e(\(1993\),)h(No.)g(4)2471 b(419)0 100 y Fg(-no-warnings)p Ff(,)31 b(399)0 191 y(non-terminal,)d(410)166 282 y Fg(/*)g(empty)h(*/) p Ff(,)f(413)166 374 y Fg(assignment)p Ff(,)i(412,)g(413)166 465 y Fg(assignment_lhs)p Ff(,)h(413)166 556 y Fg(assignment_list)p Ff(,)g(412,)f(413)166 648 y Fg(at_object)p Ff(,)g(411)166 739 y Fg(bibtex_file)p Ff(,)h(411)166 830 y Fg(comment)p Ff(,)f(411,)f(412)166 922 y Fg(entry)p Ff(,)g(411{413)166 1013 y Fg(entry_head)p Ff(,)h(412)166 1104 y Fg(error)p Ff(,)f(411)166 1196 y Fg(include)p Ff(,)h(411,)f(412)166 1287 y Fg(key_name)p Ff(,)h(412)166 1378 y Fg(object)p Ff(,)f(411)166 1469 y Fg(object_list)p Ff(,)i(411)166 1561 y Fg(opt_space)p Ff(,)f(411{413)166 1652 y Fg(preamble)p Ff(,)g(411,)f(412)166 1743 y Fg(simple_value)p Ff(,)i(412,)e(413)166 1835 y Fg(single_space)p Ff(,)i(413)166 1926 y Fg(space)p Ff(,)e(413)166 2017 y Fg(string)p Ff(,)g(411,)h(412)166 2109 y Fg(value)p Ff(,)f(412,)g(413)0 2200 y Fg(\045nonassoc)p Ff(,)h(410)0 2291 y(NUL)d(\(0\))166 2383 y(in)h(string,)g(401,)h(409)0 2474 y Fg(number)p Ff(,)g(401,)h(402)0 2648 y Fg(O)p Ff(,)e(407)0 2740 y(ob)t(ject,)h(411)166 2831 y(list,)g(411)0 2922 y Fg(object)g Ff(rule,)f(411)0 3014 y(ob)t(ject-orien)n(ted)g (programming,)i(404)0 3105 y Fg(object_list)g Ff(rule,)e(411)0 3196 y(Ob)t(jectiv)n(e)g(C,)g(397,)i(404)0 3288 y(o)r(ctal,)f(397)0 3379 y Fg(\\ooo)p Ff(,)g(401)0 3470 y(op)r(erator)166 3562 y(assignmen)n(t,)g(409,)g(413)166 3653 y(string)f(concatenation,)h (408,)h(411,)f(412)0 3744 y Fg(OPT-)g Ff(pre\014x)166 3836 y(remo)n(ving,)f(399)0 3927 y Fg(opt_space)p Ff(,)i(412)0 4018 y Fg(opt_space)g Ff(rule,)e(411{413)0 4110 y(option)166 4201 y Fg(-author)p Ff(,)i(397)166 4292 y Fg(-check-values)p Ff(,)h(398,)e(400)166 4384 y Fg(-delete-empty-values)p Ff(,)k(398,)c(399)166 4475 y Fg(-error-log)h(filename)p Ff(,)g(397)166 4566 y Fg(-file-position)p Ff(,)h(398,)e(399)166 4658 y Fg(-fix-font-changes)p Ff(,)j(398,)d(399)166 4749 y Fg(-fix-initials)p Ff(,)i(398,)e(400)166 4840 y Fg(-fix-names)p Ff(,)h(398,)g(400)166 4932 y Fg(-help)f Ff(or)f Fg(-?)p Ff(,)g(397)166 5023 y Fg(-init-file)i(filename)p Ff(,)g(397,)f(398,)g (400)166 5114 y Fg(-max-width)h(0)p Ff(,)e(397)166 5205 y Fg(-max-width)i(nnn)p Ff(,)f(397,)g(404)166 5297 y Fg(-no-check-values)p Ff(,)j(398)166 5388 y Fg(-no-delete-empty-values) p Ff(,)h(398,)c(399)2183 100 y Fg(-no-file-position)p Ff(,)j(398)2183 191 y Fg(-no-fix-font-changes)p Ff(,)h(398)2183 282 y Fg(-no-fix-initials)p Ff(,)f(398)2183 374 y Fg(-no-fix-names)p Ff(,)f(398)2183 465 y Fg(-no-init-files)p Ff(,)h(400)2183 556 y Fg(-no-par-breaks)p Ff(,)g(398,)d(399)2183 648 y Fg(-no-prettyprint)p Ff(,)j(397,)d(398,)g(403,)g(407,)h(410)2183 739 y Fg(-no-print-patterns)p Ff(,)j(398)2183 830 y Fg (-no-read-init-files)p Ff(,)g(398)2183 922 y Fg (-no-remove-OPT-prefixes)p Ff(,)h(398,)29 b(399)2183 1013 y Fg(-no-scribe)p Ff(,)i(399)2183 1104 y Fg (-no-trace-file-opening)p Ff(,)i(399)2183 1196 y Fg(-no-warnings)p Ff(,)e(399)2183 1287 y Fg(-par-breaks)p Ff(,)g(398)2183 1378 y Fg(-prettyprint)p Ff(,)g(398)2183 1469 y Fg(-print-patterns)p Ff(,)h(398)2183 1561 y Fg(-read-init-files)p Ff(,)g(398)2183 1652 y Fg(-remove-OPT-prefixes)p Ff(,)h(398,)c(399)2183 1743 y Fg(-scribe)p Ff(,)h(399)2183 1835 y Fg(-trace-file-opening)p Ff(,)j(399,)c(400)2183 1926 y Fg(-version)p Ff(,)h(399)2183 2017 y Fg(-warnings)p Ff(,)h(399)2017 2109 y(options,)e(400)2017 2200 y Fc(OS/2)p Ff(,)g(404)2017 2291 y Fg(out_lbrace\(\))p Ff(,)i(409)2017 2383 y Fg(out_lparen\(\))p Ff(,)g(409)2017 2474 y Fg(out_protected_string\(\))p Ff(,)i(408)2017 2565 y Fg(out_rbrace\(\))p Ff(,)e(409)2017 2657 y Fg(out_rparen\(\))p Ff(,)g(409)2017 2748 y Fg(out_string\(\))p Ff(,)g(409)2017 2839 y Fg(out_token\(\))p Ff(,)g(408,)e(409)2017 2931 y(o)n(v)n(er\015o)n(w)f(of)h(string)f(bu\013er,)f(406)2017 3105 y Fg(pages)p Ff(,)j(402)2017 3196 y Fg(-par-breaks)p Ff(,)h(398)2017 3288 y(paren)n(thesis,)e(409)2017 3379 y(parser)2183 3470 y(LALR\(1\),)f(406)2183 3562 y(LL\(1\),)h(411)2017 3653 y(parsing,)g(397)2017 3744 y(parsing)g(grammar,)g(410)2017 3836 y(P)n(ascal,)h(404)2017 3927 y Fg(PATH)p Ff(,)f(397,)h(400)2017 4018 y(pattern)2183 4110 y(bibliograph)n(y-sp)r(eci\014c,)f(402)2183 4201 y(c)n(hanging)g(w)n(arning)f(message,)i(402)2183 4292 y(empt)n(y)-6 b(,)27 b(402)2183 4384 y(quotes)h(in,)g(402)2017 4475 y(pattern)g(matc)n(hing,)g(400)2183 4566 y(brace)h(ignored)f(in,)g (402)2183 4658 y(regular)h(expression,)g(400)2017 4749 y Fc(PC-DOS)p Ff(,)g(396,)g(397,)g(400,)g(404)2017 4840 y(p)r(erio)r(d)2183 4932 y(in)f(citation)h(k)n(ey)-6 b(,)26 b(406)2183 5023 y(in)i(regular)h(expression,)f(407,)i(409)2017 5114 y(pip)r(eline,)f(404)2017 5205 y(Plauger,)h(P)-6 b(.)28 b(J.,)g(404)2017 5297 y(p)r(op-up)f(men)n(u,)g(396)2017 5388 y(p)r(ortabilit)n(y)-6 b(,)28 b(404)p eop %%Page: 420 26 420 25 bop 0 -149 a Fr(420)2470 b(TUGb)r(oat,)28 b(V)-7 b(olume)27 b(14)g(\(1993\),)f(No.)i(4)0 100 y Ff(p)r(ost-mortem)g (dump,)f(405)0 191 y Fg(Preamble)p Ff(,)j(408,)f(411,)g(412)0 282 y Fg(preamble)g Ff(rule,)g(411,)g(412)0 374 y(precedence)f (declaration,)h(410)0 465 y(prepro)r(cessor,)g(403)0 556 y Fg(-prettyprint)p Ff(,)i(398)0 648 y(prett)n(yprin)n(ter,)c(397,) i(398,)g(403)0 739 y(prett)n(yprin)n(ting,)e(399)0 830 y Fg(-print-patterns)p Ff(,)k(398)0 922 y(program)166 1013 y(searc)n(h)d(path,)g(400)166 1104 y(v)n(ersion,)g(399)0 1196 y Fg(pub/tex/bib)p Ff(,)j(414)0 1370 y(query)c(\(?\))166 1461 y(in)h(messages,)i(402)0 1553 y(quote)166 1644 y(em)n(b)r(edded,)d (409)166 1735 y(in)h(pattern,)f(402)0 1910 y Fg(R)p Ff(,)h(402)0 2001 y Fg(\\r)p Ff(,)g(401,)i(407)0 2092 y Fg(r)p Ff(,)e(402)0 2183 y(Rabino)n(witz,)h(Henry)-6 b(,)26 b(404)0 2275 y Fg(-read-init-files)p Ff(,)32 b(398)0 2366 y(reco)n(v)n(ery)166 2457 y(from)d(error,)f(411)0 2549 y(recursion,)h(400)0 2640 y Fg(refer)p Ff(,)g(406)0 2731 y Fg(regexp)p Ff(,)g(401)0 2823 y(regular)g(expression)166 2914 y(pattern)e(matc)n(hing,)i(400)166 3005 y(syn)n(tax)e(of,)i(407)0 3097 y(Reid,)f(Brian,)h(405)0 3188 y Fg(-remove-OPT-prefixes)p Ff(,)k(398,)c(399)0 3279 y Fg(RETURN)p Ff(,)g(408{410)0 3371 y Fg(return)p Ff(,)g(408)0 3462 y(Ritc)n(hie,)f(Dennis)f(M.,)i(404)0 3553 y(Ro)r(c)n(hkind,)e(Marc)i(J.,)f(404)0 3645 y(Rosen)n(blatt,)g (Bill,)h(396)0 3736 y(run-time)e(options,)i Fd(se)l(e)34 b Ff(options)0 3827 y(runa)n(w)n(a)n(y)27 b(string)i(argumen)n(t,)f (398,)h(406)0 4002 y Fg(S)p Ff(,)f(407)0 4093 y(Sc)n(haap,)g(Chaim,)h (404)0 4184 y(Sc)n(hic)n(k)n(ele,)f(P)n(eter,)g(400)0 4276 y(Sc)n(hmidt,)f(Eric,)i(406)0 4367 y(Sc)n(hreiner,)f(Axel)f(T.,)i (406)0 4458 y Fc(Scribe)p Ff(,)e(395,)j(399,)f(404{407,)i(409,)e(411,)g (417)0 4550 y Fg(-scribe)p Ff(,)h(399)0 4641 y(searc)n(h)e(path,)g(400) 0 4732 y(semicolon,)i(410)0 4824 y Fg(send)p Ff(,)f(414)0 4915 y(separator)166 5006 y(assignmen)n(t,)g(409)0 5098 y(Sethi,)f(Ra)n(vi,)f(405,)j(411)0 5189 y Fc(SGML)p Ff(,)d(396)0 5280 y(sharp)h(\()p Fg(#)p Ff(\),)g(403,)h(408)0 5372 y(simple)f(v)l(alue,)g(413)2017 100 y Fg(simple_value)j Ff(rule,)d(412,)h(413)2017 191 y(single)g(space,)g(413)2017 282 y Fg(single_space)i Ff(rule,)d(413)2017 374 y(source)h(co)r(de,)f (414)2017 465 y(space,)h(410,)g(413)2183 556 y(asso)r(ciativit)n(y)h (of,)f(410)2183 648 y(b)r(et)n(w)n(een)f(tok)n(ens,)g(411)2183 739 y(precedence)g(of,)h(411)2017 830 y Fg(space)g Ff(rule,)f(413)2017 922 y(standard)g(error)g(unit,)g(397)2017 1013 y Fg(stderr)p Ff(,)i(397,)f(399)2017 1104 y Fg(stdin)p Ff(,)h(400)2017 1196 y(Steele)e(Jr.,)h(Guy)e(L.,)i(404)2017 1287 y(Stev)n(ens,)f(W.)g (Ric)n(hard,)f(404)2017 1378 y Fg(String)p Ff(,)j(408,)f(411,)g(412) 2017 1469 y(string)2183 1561 y(concatenation)g(op)r(erator,)g(408,)h (411,)f(412)2183 1652 y(p)r(o)r(ol,)h(404)2183 1743 y(runa)n(w)n(a)n(y) -6 b(,)28 b(398,)h(406)2183 1835 y(substitution,)f(395)2017 1926 y Fg(string)h Ff(rule,)g(411,)g(412)2017 2017 y(Stroustrup,)f (Bjarne,)h(404)2017 2109 y(st)n(yle)2183 2200 y(bibliograph)n(y)-6 b(,)28 b(396)2017 2291 y Fg(SYS$SYSTEM)p Ff(,)j(397)2017 2466 y Fg(\\t)p Ff(,)e(401)2017 2557 y(template)2183 2648 y(editor,)g(396)2017 2740 y(terminal,)g(410)2183 2831 y Fg(TOKEN_ABBREV)p Ff(,)i(403,)e(408,)h(410,)f(412,)g(413)2183 2922 y Fg(TOKEN_AT)p Ff(,)h(403,)f(408,)h(410,)f(411)2183 3014 y Fg(TOKEN_COMMA)p Ff(,)i(403,)e(408{410,)i(412,)e(413)2183 3105 y Fg(TOKEN_COMMENT)p Ff(,)i(408,)f(410,)f(412)2183 3196 y Fg(TOKEN_ENTRY)p Ff(,)i(403,)e(408,)g(410,)h(412)2183 3288 y Fg(TOKEN_EQUALS)p Ff(,)h(403,)e(409,)h(410,)f(413)2183 3379 y Fg(TOKEN_FIELD)p Ff(,)i(403,)e(408,)g(410,)h(413)2183 3470 y Fg(TOKEN_INCLUDE)p Ff(,)h(408,)f(410,)f(412)2183 3562 y Fg(TOKEN_INLINE)p Ff(,)i(408,)e(410,)h(413)2183 3653 y Fg(TOKEN_KEY)p Ff(,)h(403,)e(408,)g(410,)g(412)2183 3744 y Fg(TOKEN_LBRACE)p Ff(,)i(403,)e(409,)h(410,)f(412,)g(414)2183 3836 y Fg(TOKEN_LITERAL)p Ff(,)i(409,)f(410,)f(412,)g(414)2183 3927 y Fg(TOKEN_NEWLINE)p Ff(,)i(403,)f(409,)f(410,)g(413)2183 4018 y Fg(TOKEN_PREAMBLE)p Ff(,)j(408,)d(410,)g(412)2183 4110 y Fg(TOKEN_RBRACE)p Ff(,)i(403,)e(409{412,)i(414)2183 4201 y Fg(TOKEN_SHARP)p Ff(,)g(409{412)2183 4292 y Fg(TOKEN_SPACE)p Ff(,)g(409,)e(410,)g(413)2183 4384 y Fg(TOKEN_STRING)p Ff(,)i(403,)e(408{410,)i(412)2183 4475 y Fg(TOKEN_VALUE)p Ff(,)g(403,)e(408{410,)i(413)2017 4566 y(testing,)e(404,)g(414)2017 4658 y(T)2059 4674 y(E)2103 4658 y(Xinfo,)f(405)2017 4749 y(text)g(editor,)g Fd(se)l(e)34 b Ff(Emacs)2017 4840 y Fg(title)p Ff(,)c(413)2017 4932 y(tok)n(en,)e(397,)h Fd(se)l(e)34 b Ff(terminal)2183 5023 y(string,)29 b(403)2183 5114 y(t)n(yp)r(e,)f(403)2183 5205 y(unclassi\014able,)i(409)2017 5297 y Fg(TOKEN_ABBREV)p Ff(,)h(403,)e(408,)h(410,)f(412,)g(413)2017 5388 y Fg(TOKEN_AT)p Ff(,)h(403,)f(408,)h(410,)f(411)p eop %%Page: 421 27 421 26 bop 0 -149 a Fr(TUGb)r(oat,)28 b(V)-7 b(olume)28 b(14)e(\(1993\),)h(No.)g(4)2471 b(421)0 100 y Fg(TOKEN_COMMA)p Ff(,)31 b(403,)e(408{410,)h(412,)g(413)0 191 y Fg(TOKEN_COMMENT)p Ff(,)h(408,)e(410,)g(412)0 282 y Fg(TOKEN_ENTRY)p Ff(,)i(403,)e(408,)g (410,)g(412)0 374 y Fg(TOKEN_EQUALS)p Ff(,)i(403,)e(409,)g(410,)g(413)0 465 y Fg(TOKEN_FIELD)p Ff(,)i(403,)e(408,)g(410,)g(413)0 556 y Fg(TOKEN_INCLUDE)p Ff(,)i(408,)e(410,)g(412)0 648 y Fg(TOKEN_INLINE)p Ff(,)i(408,)e(410,)g(413)0 739 y Fg(TOKEN_KEY)p Ff(,)h(403,)f(408,)g(410,)h(412)0 830 y Fg(TOKEN_LBRACE)p Ff(,)h(403,)e(409,)g(410,)g(412,)h(414)0 922 y Fg(TOKEN_LITERAL)p Ff(,)h(409,)e(410,)g(412,)h(414)0 1013 y Fg(TOKEN_NEWLINE)p Ff(,)h(403,)e(409,)g(410,)h(413)0 1104 y Fg(TOKEN_PREAMBLE)p Ff(,)h(408,)e(410,)h(412)0 1196 y Fg(TOKEN_RBRACE)p Ff(,)h(403,)e(409{412,)i(414)0 1287 y Fg(TOKEN_SHARP)p Ff(,)g(409{412)0 1378 y Fg(TOKEN_SPACE)p Ff(,)g(409,)e(410,)g(413)0 1469 y Fg(TOKEN_STRING)p Ff(,)i(403,)e (408{410,)i(412)0 1561 y Fg(TOKEN_VALUE)p Ff(,)g(403,)e(408{410,)h(413) 0 1652 y Fc(TOS)p Ff(,)d(404)0 1743 y Fg(tr)p Ff(,)h(404)0 1835 y Fg(-trace-file-opening)p Ff(,)k(399,)e(400)0 1926 y(trailing)f(con)n(text,)f(412,)h(414)0 2017 y Fg(trap)p Ff(,)g(414)0 2109 y Fg(trip)p Ff(,)g(414)0 2200 y(TUG)f(bibliograph)n (y)g(collection,)i(396,)f(399)0 2291 y(TUG)f(Resource)g(Directory)-6 b(,)28 b(396)0 2383 y Fa(TUGb)r(oat)r Ff(,)g(396)0 2474 y Fg(tuglib@math.utah.edu)p Ff(,)33 b(414)0 2648 y(Ullman,)28 b(Je\013rey)g(D.,)g(405,)h(411)0 2740 y(unclassi\014able)g(tok)n(en,)e (409)0 2831 y Fc(UNIX)p Ff(,)h(396,)h(397,)g(400,)g(401,)h(404,)f(406,) g(407,)g(409)0 3005 y Fg(\\v)p Ff(,)f(401,)i(407)0 3097 y(v)l(alue,)e(412)0 3188 y Fg(value)h Ff(rule,)f(412,)h(413)0 3279 y(v)l(an)e(Herwijnen,)i(Eric,)f(396)0 3371 y(v)l(ariable)166 3462 y Fg(last_object)p Ff(,)j(408)166 3553 y Fg(last_token)p Ff(,)f(408)0 3645 y Fc(V)-9 b(AX)p Ff(,)28 b(396,)h(397,)g(404)0 3736 y(v)n(ersion)166 3827 y(of)g(program,)g(399)0 3919 y Fg(-version)p Ff(,)h(399)0 4010 y(v)n(ertical)166 4101 y(bar,)e(410)166 4193 y(tab,)g(407)0 4284 y Fc(VMS)p Ff(,)f(396,)j(397,)f(404)0 4375 y Fg(volume)p Ff(,)g(402)0 4550 y Fg(W)p Ff(,)f(402,)h(407)0 4641 y Fg(w)p Ff(,)f(402)0 4732 y(w)n(arning)g(message)166 4824 y(c)n(hanging,)h(402)166 4915 y(disabling,)g(398,)g(399)166 5006 y(redirecting,)g(397)0 5098 y Fg(-warnings)p Ff(,)h(399)0 5189 y Fg(WEB)p Ff(,)f(404,)g(406,)g (407)0 5280 y(W)-6 b(ein)n(b)r(erger,)28 b(P)n(eter)g(J.,)h(404)0 5372 y(wrapping)2183 100 y(of)g(long)f(lines,)h(398,)g(404,)h(408)2017 274 y Fg(X)p Ff(,)f(401,)g(402)2017 365 y Fg(\\x)p Ff(,)g(402)2017 457 y Fg(x)p Ff(,)g(402)2017 548 y(X/Op)r(en)e(Consortium,)j(409)2017 722 y Fg(yacc)p Ff(,)f(406{408,)i(410{414)2017 814 y Fg(year)p Ff(,)e(403)2613 990 y Fe(\005)39 b Ff(Nelson)26 b(H.)f(F.)i(Beeb)r(e)2690 1081 y(Cen)n(ter)f(for)g(Scien)n(ti\014c)g (Computing)2690 1173 y(Departmen)n(t)f(of)h(Mathematics)2690 1264 y(Univ)n(ersit)n(y)f(of)h(Utah)2690 1355 y(Salt)g(Lak)n(e)f(Cit)n (y)-6 b(,)26 b(UT)g(84112)2690 1447 y(USA)2690 1538 y(T)-6 b(el:)39 b(+1)26 b(801)h(581)f(5254)2690 1629 y(F)-9 b(AX:)26 b(+1)f(801)i(581)g(4148)2690 1721 y(In)n(ternet:)38 b Fg(beebe@math.utah.edu)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF bibclean-3.07/doc/bibclean.ind0000644000156700015670000005344007721774204015124 0ustar beebebeebe\begin{theindex} \item {\tt .}, 402 \item {\tt .bbl}, 412 \item {\tt .bibcleanrc}, 397 \item {\tt .ini}, 400, 402 \item {\tt /* empty */} rule, 413 \item {\tt /*...*/}, 413 \item {\tt :}, 402 \item ?, 402 \item {\tt @}, 400 \item {\protect\tt \%\{\iffalse }\fi}, 407, 410 \item {\protect\tt \iffalse {\fi \%\}}, 407, 410 \item {\protect\tt \%\%}, 402, 407, 410 \item {\tt \%e}, 402 \item {\tt \%f}, 402 \item {\tt \%k}, 402 \item {\tt \%left}, 410, 411 \item {\tt \%nonassoc}, 410 \item {\tt \%token}, 410 \item {\tt \%v}, 402 \item {\tt \char 92\relax \char 34}, 401, 402, 409 \item {\tt \char 64}, 405, 406, 408, 411 \item {\tt \char 64Begin}, 405 \item {\tt \char 64Begin\penalty 0\{comment\}}, 405 \item {\tt \char 64Comment}, 405 \item {\tt \char 64Comment\penalty 0\{...\}}, 405, 406, 411 \item {\tt \char 64End}, 405 \item {\tt \char 64End\penalty 0\{comment\}}, 405 \item {\tt \char 64Preamble\penalty 0\{...\}}, 405 \item {\tt \char 64String}, 405 \item {\tt \char 64String\penalty 0\{...\}}, 406 \item {\tt \char 64\char 64}, 405 \item {\tt \char 64name}, 405, 411 \item {\tt \char 64name\{...\}}, 411 \item {\tt \char 92\relax \char 92}, 401 \item {\tt \char 92\relax 0x0a}, 401 \item {\tt \char 92\relax 0xhh}, 401 \item 8-bit clean, 409 \indexspace \item {\tt \char 92\relax 0}, 401, 409 \item {\tt \char 92\relax 012}, 401 \item {\tt \char 92\relax 013}, 407 \indexspace \item {\tt A}, 402 \item {\tt \char 92\relax a}, 401 \item {\tt a}, 402 \item abbreviation, 408, 413 \item accent control sequence, 409 \item Aho, Alfred V., 404, 405, 411 \item anonymous {\tt ftp}, 414 \item ANSI\slash ISO Standard C, 403, 404, 407 \item apostrophe \subitem in citation key, 406 \item Apple Macintosh, 407 \item archive hosts \subitem Internet, 414 \item {\tt Article}, 411 \item assignment, 413 \subitem list, 412 \subitem operator, 409, 413 \subsubitem associativity of, 410 \subitem rule \subsubitem error recovery in, 411 \subitem separator, 409 \item {\tt assignment} rule, 412, 413 \item {\tt assignment_lhs} rule, 413 \item {\tt assignment_list}, 412, 413 \item {\tt assignment_list} rule, 412, 413 \item associativity, 410 \item at-sign, 405 \item {\tt at_object} rule, 411 \item Atari, 404 \item {\tt -author}, 397 \item {\tt author}, 413 \item author name \subitem period after initials, 398 \subitem reordering, 398 \item auxiliary file, 396 \indexspace \item {\tt \char 92\relax b}, 401 \item Bach, P. D. Q., 400 \item back end, 397 \item backslash-newline, 398, 400, 403, 404, 408 \item backslash-quote, 405 \item Beebe, Nelson H. F., 396 \item {\tt bib}, 406 \item {\tt bibclean}, 395--405, 407, 408, 410, 412, 414 \item {\tt bibclean.ini}, 397 \item {\tt BIBCLEANEXT}, 400 \item {\tt BIBCLEANINI}, 397 \item {\tt bibdup}, 404 \item {\tt bibdup.awk}, 404 \item {\tt BIBINPUTS}, 397, 400 \item {\tt biblex}, 407, 410 \item bibliography \subitem entry, 412 \subitem file, 396, 397 \subitem style, 396 \item {\tt \char 92\relax bibliography}, 396, 406 \item bibliography-specific pattern, 402 \item {\tt \char 92\relax bibliographystyle}, 396 \item {\tt bibparse}, 410 \item {\tt bibtex_file} rule, 411 \item {\tt bison}, 406, 408, 410--412, 414 \item {\tt Book}, 411 \item Borland International, 404 \item brace, 409 \subitem ignored in pattern matching, 402 \subitem space around, 402 \item Brown, Doug, 406 \item Bryan, Martin, 396 \item buffer overflow, 406 \indexspace \item C++, 397, 404 \item Cameron, Debra, 396 \item carriage return, 407 \item {\tt chapter}, 402 \item {\tt -check-values}, 398, 400 \item checksum \subitem in {\tt ISBN} and {\tt ISSN}, 402 \item citation \subitem key, 395, 403, 412 \subsubitem problems in recognizing, 412 \subitem style, 396 \item {\tt \char 92\relax cite}, 396 \item class library, 404 \item code generation, 397 \item colon, 410 \item comma, 412 \subitem optional after assignment, 413 \item command-line options, \see{options}{415} \item {\tt Comment}, 408, 409, 411 \item comment \subitem entry, 411 \subitem in-line, 408, 410, 412, 413 \subsubitem associativity of, 410 \subsubitem precedence of, 411 \subitem syntax, 406 \item {\tt comment}, 405 \item {\tt comment} rule, 411, 412 \item concatenation, \see{string}{415} \item control sequence \subitem {\tt \char 92\relax bibliography}, 396, 406 \subitem {\tt \char 92\relax bibliographystyle}, 396 \subitem {\tt \char 92\relax cite}, 396 \item core dump, 405 \indexspace \item {\tt D}, 402 \item {\tt d}, 402 \item decimal, 397 \item {\tt -delete-empty-values}, 398, 399 \item delimited string, 409, 413 \item delimiters \subitem in \protect\SCRIBE{}, 405 \subitem mismatched, 398, 413 \item digit string, 408 \item documentation, 414 \item dump \subitem post-mortem, 405 \indexspace \item editor, \see{Emacs}{415} \item editor name \subitem period after initials, 398 \subitem reordering, 398 \item electronic mail server, 414 \item Ellis, Margaret A., 404 \item Emacs, 396, 399, 405 \item embedded quote, 409 \item empty \subitem pattern, 402 \subitem string, 413 \subitem values \subsubitem deleting, 398 \item entry \subitem name, 408 \item {\tt entry} rule, 411--413 \item {\tt entry_head} rule, 412 \item environment variable, 397 \item error \subitem log file, 399 \subitem message, 411 \subsubitem redirecting, 397 \subitem recovery, 411 \subitem reporting, 406 \item {\tt error} rule, 411 \item {\tt -error-log filename}, 397 \item escape sequence, 401, 403, 405, 409 \subitem in message text, 402 \subitem table, 401 \indexspace \item {\tt \char 92\relax f}, 401, 407 \item Feuer, Alan~R., 404 \item field name, 408, 413 \item file \subitem {\tt .bbl}, 412 \subitem {\tt .bibcleanrc}, 397 \subitem {\tt .ini}, 400, 402 \subitem {\tt bibclean}, 404 \subitem {\tt bibclean.ini}, 397 \subitem {\tt BIBCLEANEXT}, 400 \subitem {\tt BIBCLEANINI}, 397 \subitem {\tt bibdup}, 404 \subitem {\tt bibdup.awk}, 404 \subitem {\tt BIBINPUTS}, 397, 400 \subitem bibliography, 396, 397 \subitem error log, 399 \subitem {\tt ftp.math.utah.edu}, 414 \subitem inclusion, 406, 412 \subitem initialization, 397, 398, 400 \subsubitem locating, 399 \subsubitem nested, 400 \subsubitem pattern characters, 402 \subsubitem patterns in, 398 \subitem name \subsubitem space in, 412 \subsubitem syntax of, 412 \subitem {\tt nawk}, 404 \subitem {\tt PATH}, 397, 400 \subitem {\tt pub/tex/bib}, 414 \subitem {\tt regexp}, 401 \subitem sample initialization, 401 \subitem {\tt stderr}, 397, 399 \subitem {\tt stdin}, 400 \subitem {\tt SYS\pdollar SYSTEM}, 397 \subitem {\tt tr}, 404 \subitem {\tt tuglib\char 64math.utah.edu}, 414 \item {\tt -file-position}, 398, 399 \item {\tt -fix-font-changes}, 398, 399 \item {\tt -fix-initials}, 398, 400 \item {\tt -fix-names}, 398, 400 \item {\tt flex}, 406, 407, 414 \item font changes \subitem fixing, 398 \item format \subitem item, 402 \subsubitem {\tt \%\%}, 402 \subsubitem {\tt \%e}, 402 \subsubitem {\tt \%f}, 402 \subsubitem {\tt \%k}, 402 \subsubitem {\tt \%v}, 402 \subitem of grammar rules, 407, 410 \item formfeed, 407 \item Free Software Foundation, 397, 406 \item Friedman, Jr., H. George, 406 \item front end, 397 \item {\tt ftp}, 414 \item {\tt ftp.math.utah.edu}, 414 \item function \subitem {\tt out_lbrace()}, 409 \subitem {\tt out_lparen()}, 409 \subitem {\tt out_protected_string()}, 408 \subitem {\tt out_rbrace()}, 409 \subitem {\tt out_rparen()}, 409 \subitem {\tt out_string()}, 409 \subitem {\tt out_token()}, 408, 409 \indexspace \item GNU \subitem Emacs, 396, 399, 405 \subitem {\tt regexp} package, 401 \subitem \protect\TeX{}info, 405 \item grammar, 405 \subitem format of rules, 407, 410 \subitem formatting conventions, 410 \subitem LALR(1), 406, 412 \subitem lexical, 407 \subitem LL(0), 405 \subitem LL(1), 405, 406 \subitem LR($k$), 406 \subitem parsing, 410 \subitem size of, 407, 410 \indexspace \item Harbison, Samuel P., 404 \item {\tt help}, 414 \item {\tt -help {\prm or} -?}, 397 \item Herwijnen, Eric van, 396 \item hexadecimal, 397 \item horizontal space character, 407, 409 \indexspace \item in-line comment, 408, 410, 412, 413 \subitem associativity of, 410 \subitem precedence of, 411 \item {\tt Include}, 408, 409, 411, 412 \item {\tt include} rule, 411, 412 \item {\tt -init-file filename}, 397, 398, 400 \item initialization file, 397, 398, 400 \subitem locating, 399 \subitem nested, 400 \subitem pattern characters, 402 \subitem patterns in, 398 \subitem sample, 401 \item Internet archive hosts, 414 \item interpretation of code, 397 \item {\tt ISBN}, 402 \item ISBN (International Standard Book Number), 399 \item ISO10646M character set, 406 \item {\tt ISSN}, 402 \item ISSN (International Standard Serial Number), 399 \indexspace \item Jaeschke, Rex, 404 \item Johnson, Steven C., 406 \indexspace \item Kahn, Philippe, 404 \item Kernighan, Brian W., 404 \item {\tt key}, 403, 405 \item key name, 408, 412 \item {\tt key_name} rule, 412 \item Knuth, Donald E., 398, 404, 406 \item Koenig, Andrew, 404 \indexspace \item LALR(1) \subitem grammar, 406, 412 \subitem parser, 406 \item Lamport, Leslie, 395, 396, 403, 406 \item Lapin, J. E., 404 \item {\tt last_object}, 408 \item {\tt last_token}, 408 \item {\tt \%left}, 410, 411 \item left-recursive rule, 411 \item Lesk, Michael E., 406 \item Levine, John R., 406 \item {\tt lex}, 406--410, 414 \item lexer, \see{lexical analyzer}{415} \item lexical analysis, 397 \item lexical analyzer, 397, 398, 403 \item lexical grammar, 407 \item line \subitem number, 406 \subitem number directive, 403 \subitem width limit, 397 \subitem wrapping, 398, 404, 408 \item list \subitem of assignments, 412 \subitem of objects, 411 \item literate programming, 407, 410 \item LL(0) grammar, 405 \item LL(1) \subitem grammar, 405, 406 \subitem parser, 411 \item LR($k$) grammar, 406 \indexspace \item Macintosh \subitem Apple, 407 \item macro, \seealso{control sequence}{415} \subitem {\tt N}, 407, 408 \subitem {\tt O}, 407 \subitem {\tt RETURN}, 408--410 \subitem {\tt S}, 407 \subitem {\tt W}, 407 \item macro definition \subitem {\tt lex}, 407 \item macro use \subitem {\tt lex}, 407 \item Mason, Tony, 406 \item {\tt -max-width 0}, 397 \item {\tt -max-width nnn}, 397, 404 \item menu \subitem pop-up, 396 \item message \subitem disabling warning, 399 \subitem error, 411 \subitem help, 397 \subitem redirecting, 397 \item mismatched delimiters, 398, 413 \item {\tt month}, 402 \indexspace \item {\tt N}, 407, 408 \item {\tt \char 92\relax n}, 401 \item {\tt name}, 411 \item {\tt nawk}, 404 \item newline, 409, 412, 413 \subitem associativity of, 410 \item {\tt -no-check-values}, 398 \item {\tt -no-delete-empty-values}, 398, 399 \item {\tt -no-file-position}, 398 \item {\tt -no-fix-font-changes}, 398 \item {\tt -no-fix-initials}, 398 \item {\tt -no-fix-names}, 398 \item {\tt -no-init-files}, 400 \item {\tt -no-par-breaks}, 398, 399 \item {\tt -no-prettyprint}, 397, 398, 403, 407, 410 \item {\tt -no-print-patterns}, 398 \item {\tt -no-read-init-files}, 398 \item {\tt -no-remove-OPT-prefixes}, 398, 399 \item {\tt -no-scribe}, 399 \item {\tt -no-trace-file-opening}, 399 \item {\tt -no-warnings}, 399 \item non-terminal, 410 \subitem {\tt /* empty */}, 413 \subitem {\tt assignment}, 412, 413 \subitem {\tt assignment_lhs}, 413 \subitem {\tt assignment_list}, 412, 413 \subitem {\tt at_object}, 411 \subitem {\tt bibtex_file}, 411 \subitem {\tt comment}, 411, 412 \subitem {\tt entry}, 411--413 \subitem {\tt entry_head}, 412 \subitem {\tt error}, 411 \subitem {\tt include}, 411, 412 \subitem {\tt key_name}, 412 \subitem {\tt object}, 411 \subitem {\tt object_list}, 411 \subitem {\tt opt_space}, 411--413 \subitem {\tt preamble}, 411, 412 \subitem {\tt simple_value}, 412, 413 \subitem {\tt single_space}, 413 \subitem {\tt space}, 413 \subitem {\tt string}, 411, 412 \subitem {\tt value}, 412, 413 \item {\tt \%nonassoc}, 410 \item NUL (0) \subitem in string, 401, 409 \item {\tt number}, 401, 402 \indexspace \item {\tt O}, 407 \item object, 411 \subitem list, 411 \item {\tt object} rule, 411 \item object-oriented programming, 404 \item {\tt object_list} rule, 411 \item Objective C, 397, 404 \item octal, 397 \item {\tt \char 92\relax ooo}, 401 \item operator \subitem assignment, 409, 413 \subitem string concatenation, 408, 411, 412 \item {\tt OPT-} prefix \subitem removing, 399 \item {\tt opt_space}, 412 \item {\tt opt_space} rule, 411--413 \item option \subitem {\tt -author}, 397 \subitem {\tt -check-values}, 398, 400 \subitem {\tt -delete-empty-values}, 398, 399 \subitem {\tt -error-log filename}, 397 \subitem {\tt -file-position}, 398, 399 \subitem {\tt -fix-font-changes}, 398, 399 \subitem {\tt -fix-initials}, 398, 400 \subitem {\tt -fix-names}, 398, 400 \subitem {\tt -help {\prm or} -?}, 397 \subitem {\tt -init-file filename}, 397, 398, 400 \subitem {\tt -max-width 0}, 397 \subitem {\tt -max-width nnn}, 397, 404 \subitem {\tt -no-check-values}, 398 \subitem {\tt -no-delete-empty-values}, 398, 399 \subitem {\tt -no-file-position}, 398 \subitem {\tt -no-fix-font-changes}, 398 \subitem {\tt -no-fix-initials}, 398 \subitem {\tt -no-fix-names}, 398 \subitem {\tt -no-init-files}, 400 \subitem {\tt -no-par-breaks}, 398, 399 \subitem {\tt -no-prettyprint}, 397, 398, 403, 407, 410 \subitem {\tt -no-print-patterns}, 398 \subitem {\tt -no-read-init-files}, 398 \subitem {\tt -no-remove-OPT-prefixes}, 398, 399 \subitem {\tt -no-scribe}, 399 \subitem {\tt -no-trace-file-opening}, 399 \subitem {\tt -no-warnings}, 399 \subitem {\tt -par-breaks}, 398 \subitem {\tt -prettyprint}, 398 \subitem {\tt -print-patterns}, 398 \subitem {\tt -read-init-files}, 398 \subitem {\tt -remove-OPT-prefixes}, 398, 399 \subitem {\tt -scribe}, 399 \subitem {\tt -trace-file-opening}, 399, 400 \subitem {\tt -version}, 399 \subitem {\tt -warnings}, 399 \item options, 400 \item {\sc OS/2}, 404 \item {\tt out_lbrace()}, 409 \item {\tt out_lparen()}, 409 \item {\tt out_protected_string()}, 408 \item {\tt out_rbrace()}, 409 \item {\tt out_rparen()}, 409 \item {\tt out_string()}, 409 \item {\tt out_token()}, 408, 409 \item overflow of string buffer, 406 \indexspace \item {\tt pages}, 402 \item {\tt -par-breaks}, 398 \item parenthesis, 409 \item parser \subitem LALR(1), 406 \subitem LL(1), 411 \item parsing, 397 \item parsing grammar, 410 \item Pascal, 404 \item {\tt PATH}, 397, 400 \item pattern \subitem bibliography-specific, 402 \subitem changing warning message, 402 \subitem empty, 402 \subitem quotes in, 402 \item pattern matching, 400 \subitem brace ignored in, 402 \subitem regular expression, 400 \item {\sc PC-DOS}, 396, 397, 400, 404 \item period \subitem in citation key, 406 \subitem in regular expression, 407, 409 \item pipeline, 404 \item Plauger, P. J., 404 \item pop-up menu, 396 \item portability, 404 \item post-mortem dump, 405 \item {\tt Preamble}, 408, 411, 412 \item {\tt preamble} rule, 411, 412 \item precedence declaration, 410 \item preprocessor, 403 \item {\tt -prettyprint}, 398 \item prettyprinter, 397, 398, 403 \item prettyprinting, 399 \item {\tt -print-patterns}, 398 \item program \subitem search path, 400 \subitem version, 399 \item {\tt pub/tex/bib}, 414 \indexspace \item query (?) \subitem in messages, 402 \item quote \subitem embedded, 409 \subitem in pattern, 402 \indexspace \item {\tt R}, 402 \item {\tt \char 92\relax r}, 401, 407 \item {\tt r}, 402 \item Rabinowitz, Henry, 404 \item {\tt -read-init-files}, 398 \item recovery \subitem from error, 411 \item recursion, 400 \item {\tt refer}, 406 \item {\tt regexp}, 401 \item regular expression \subitem pattern matching, 400 \subitem syntax of, 407 \item Reid, Brian, 405 \item {\tt -remove-OPT-prefixes}, 398, 399 \item {\tt RETURN}, 408--410 \item {\tt return}, 408 \item Ritchie, Dennis M., 404 \item Rochkind, Marc J., 404 \item Rosenblatt, Bill, 396 \item run-time options, \see{options}{415} \item runaway string argument, 398, 406 \indexspace \item {\tt S}, 407 \item Schaap, Chaim, 404 \item Schickele, Peter, 400 \item Schmidt, Eric, 406 \item Schreiner, Axel T., 406 \item {\sc Scribe}, 395, 399, 404--407, 409, 411, 417 \item {\tt -scribe}, 399 \item search path, 400 \item semicolon, 410 \item {\tt send}, 414 \item separator \subitem assignment, 409 \item Sethi, Ravi, 405, 411 \item {\sc SGML}, 396 \item sharp ({\tt\char35}), 403, 408 \item simple value, 413 \item {\tt simple_value} rule, 412, 413 \item single space, 413 \item {\tt single_space} rule, 413 \item source code, 414 \item space, 410, 413 \subitem associativity of, 410 \subitem between tokens, 411 \subitem precedence of, 411 \item {\tt space} rule, 413 \item standard error unit, 397 \item {\tt stderr}, 397, 399 \item {\tt stdin}, 400 \item Steele Jr., Guy L., 404 \item Stevens, W. Richard, 404 \item {\tt String}, 408, 411, 412 \item string \subitem concatenation operator, 408, 411, 412 \subitem pool, 404 \subitem runaway, 398, 406 \subitem substitution, 395 \item {\tt string} rule, 411, 412 \item Stroustrup, Bjarne, 404 \item style \subitem bibliography, 396 \item {\tt SYS\pdollar SYSTEM}, 397 \indexspace \item {\tt \char 92\relax t}, 401 \item template \subitem editor, 396 \item terminal, 410 \subitem {\tt TOKEN_ABBREV}, 403, 408, 410, 412, 413 \subitem {\tt TOKEN_AT}, 403, 408, 410, 411 \subitem {\tt TOKEN_COMMA}, 403, 408--410, 412, 413 \subitem {\tt TOKEN_COMMENT}, 408, 410, 412 \subitem {\tt TOKEN_ENTRY}, 403, 408, 410, 412 \subitem {\tt TOKEN_EQUALS}, 403, 409, 410, 413 \subitem {\tt TOKEN_FIELD}, 403, 408, 410, 413 \subitem {\tt TOKEN_INCLUDE}, 408, 410, 412 \subitem {\tt TOKEN_INLINE}, 408, 410, 413 \subitem {\tt TOKEN_KEY}, 403, 408, 410, 412 \subitem {\tt TOKEN_LBRACE}, 403, 409, 410, 412, 414 \subitem {\tt TOKEN_LITERAL}, 409, 410, 412, 414 \subitem {\tt TOKEN_NEWLINE}, 403, 409, 410, 413 \subitem {\tt TOKEN_PREAMBLE}, 408, 410, 412 \subitem {\tt TOKEN_RBRACE}, 403, 409--412, 414 \subitem {\tt TOKEN_SHARP}, 409--412 \subitem {\tt TOKEN_SPACE}, 409, 410, 413 \subitem {\tt TOKEN_STRING}, 403, 408--410, 412 \subitem {\tt TOKEN_VALUE}, 403, 408--410, 413 \item testing, 404, 414 \item \protect\TeX{}info, 405 \item text editor, \see{Emacs}{415} \item {\tt title}, 413 \item token, 397, \see{terminal}{415} \subitem string, 403 \subitem type, 403 \subitem unclassifiable, 409 \item {\tt TOKEN_ABBREV}, 403, 408, 410, 412, 413 \item {\tt TOKEN_AT}, 403, 408, 410, 411 \item {\tt TOKEN_COMMA}, 403, 408--410, 412, 413 \item {\tt TOKEN_COMMENT}, 408, 410, 412 \item {\tt TOKEN_ENTRY}, 403, 408, 410, 412 \item {\tt TOKEN_EQUALS}, 403, 409, 410, 413 \item {\tt TOKEN_FIELD}, 403, 408, 410, 413 \item {\tt TOKEN_INCLUDE}, 408, 410, 412 \item {\tt TOKEN_INLINE}, 408, 410, 413 \item {\tt TOKEN_KEY}, 403, 408, 410, 412 \item {\tt TOKEN_LBRACE}, 403, 409, 410, 412, 414 \item {\tt TOKEN_LITERAL}, 409, 410, 412, 414 \item {\tt TOKEN_NEWLINE}, 403, 409, 410, 413 \item {\tt TOKEN_PREAMBLE}, 408, 410, 412 \item {\tt TOKEN_RBRACE}, 403, 409--412, 414 \item {\tt TOKEN_SHARP}, 409--412 \item {\tt TOKEN_SPACE}, 409, 410, 413 \item {\tt TOKEN_STRING}, 403, 408--410, 412 \item {\tt TOKEN_VALUE}, 403, 408--410, 413 \item {\sc TOS}, 404 \item {\tt tr}, 404 \item {\tt -trace-file-opening}, 399, 400 \item trailing context, 412, 414 \item {\tt trap}, 414 \item {\tt trip}, 414 \item TUG bibliography collection, 396, 399 \item TUG Resource Directory, 396 \item {\protect\TUB{}}, 396 \item {\tt tuglib\char 64math.utah.edu}, 414 \indexspace \item Ullman, Jeffrey D., 405, 411 \item unclassifiable token, 409 \item {\sc UNIX}, 396, 397, 400, 401, 404, 406, 407, 409 \indexspace \item {\tt \char 92\relax v}, 401, 407 \item value, 412 \item {\tt value} rule, 412, 413 \item van Herwijnen, Eric, 396 \item variable \subitem {\tt last_object}, 408 \subitem {\tt last_token}, 408 \item {\sc VAX}, 396, 397, 404 \item version \subitem of program, 399 \item {\tt -version}, 399 \item vertical \subitem bar, 410 \subitem tab, 407 \item {\sc VMS}, 396, 397, 404 \item {\tt volume}, 402 \indexspace \item {\tt W}, 402, 407 \item {\tt w}, 402 \item warning message \subitem changing, 402 \subitem disabling, 398, 399 \subitem redirecting, 397 \item {\tt -warnings}, 399 \item {\tt WEB}, 404, 406, 407 \item Weinberger, Peter J., 404 \item wrapping \subitem of long lines, 398, 404, 408 \indexspace \item {\tt X}, 401, 402 \item {\tt \char 92\relax x}, 402 \item {\tt x}, 402 \item X/Open Consortium, 409 \indexspace \item {\tt yacc}, 406--408, 410--414 \item {\tt year}, 403 \end{theindex} bibclean-3.07/doc/bibclean.bbl0000644000156700015670000001571007721774203015106 0ustar beebebeebe\begin{thebibliography}{10} \bibitem{Aho:APL87} Alfred~V. Aho, Brian~W. Kernighan, and Peter~J. Weinberger. \newblock {\em The {AWK} Programming Language}. \newblock Ad{\-d}i{\-s}on-Wes{\-l}ey, Reading, MA, USA, 1988. \newblock ISBN 0-201-07981-X. \bibitem{Aho:CPT86} Alfred~V. Aho, Ravi Sethi, and Jeffrey~D. Ullman. \newblock {\em Compilers\emdash Prin\-ci\-ples, Techniques, and Tools}. \newblock Ad{\-d}i{\-s}on-Wes{\-l}ey, Reading, MA, USA, 1986. \newblock ISBN 0-201-10088-6. \bibitem{ANSI:c89} American National Standards Institute, 1430 Broadway, New York, NY 10018, USA. \newblock {\em American National Standard Programming Language C, {ANSI} X3.159-1989}, December 14 1989. \bibitem{Beebe:TB12S-2-176} Nelson H.~F. Beebe. \newblock Publications about {\TeX} and typography. \newblock {\em TUGBoat}, Supplement to 12\penalty0 (2):\penalty0 176--183, May 1991. \bibitem{Beebe:TB12S-2-183} Nelson H.~F. Beebe. \newblock Publications prepared with {\TeX}. \newblock {\em TUGBoat}, Supplement to 12\penalty0 (2):\penalty0 183--194, May 1991. \bibitem{Bryan:SAG88} Martin Bryan. \newblock {\em {SGML}\emdash An Author's Guide to the Standard Generalized Markup Language}. \newblock Ad{\-d}i{\-s}on-Wes{\-l}ey, Reading, MA, USA, 1988. \newblock ISBN 0-201-17535-5. \bibitem{Cameron:LGE91} Debra Cameron and Bill Rosenblatt. \newblock {\em Learning {GNU} Emacs}. \newblock O'Reilly \& {Associates, Inc.}, 981 Chestnut Street, Newton, MA 02164, USA, 1991. \newblock ISBN 0-937175-84-6. \bibitem{Ellis:ACR90} Margaret~A. Ellis and Bjarne Stroustrup. \newblock {\em The Annotated {C++} Reference Manual}. \newblock Ad{\-d}i{\-s}on-Wes{\-l}ey, Reading, MA, USA, 1990. \newblock ISBN 0-201-51459-1. \bibitem{Feuer:CPB89} Alan~R. Feuer. \newblock {\em The {C} Puzzle Book}. \newblock Pren{\-}tice-Hall, Englewood Cliffs, NJ 07632, USA, second edition, 1989. \newblock ISBN 0-13-115502-4. \bibitem{Harbison:CAR91} Samuel~P. Harbison and Guy~L. {Steele Jr.} \newblock {\em C\emdash A Reference Manual}. \newblock Pren{\-}tice-Hall, Englewood Cliffs, NJ 07632, USA, third edition, 1991. \newblock ISBN 0-13-110933-2. \bibitem{Jaeschke:PCL89} Rex Jaeschke. \newblock {\em Portability and the {C} Language}. \newblock Hayden Books, 4300 West 62nd Street, Indianapolis, IN 46268, USA, 1989. \newblock ISBN 0-672-48428-5. \bibitem{Johnson:yacc} Steven~C. Johnson. \newblock Yacc: Yet another compiler compiler. \newblock In {\em {UNIX} Programmer's Manual}, volume~2, pages 353--387. Holt, Reinhart, and Winston, New York, NY, USA, 1979. \newblock AT\&T Bell Laboratories Technical Report, July 31, 1978. \bibitem{Kernighan:CPL78} Brian~W. Kernighan and Dennis~M. Ritchie. \newblock {\em The C Programming Language}. \newblock Pren{\-}tice-Hall, Englewood Cliffs, NJ 07632, USA, 1978. \newblock ISBN 0-13-110163-3. \bibitem{Kernighan:CPL88} Brian~W. Kernighan and Dennis~M. Ritchie. \newblock {\em The C Programming Language}. \newblock Pren{\-}tice-Hall, Englewood Cliffs, NJ 07632, USA, second edition, 1988. \newblock ISBN 0-13-110362-8. \bibitem{Knuth:j-IC-8-6-607} Donald~E. Knuth. \newblock On the translation of languages from left to right. \newblock {\em Information and Control}, 8\penalty0 (6):\penalty0 607--639, 1965. \newblock This is the original paper on the theory of LR(k) parsing. \bibitem{Knuth:ct-a} Donald~E. Knuth. \newblock {\em The {\TeX}book}, volume~A of {\em Computers and Typesetting}. \newblock Ad{\-d}i{\-s}on-Wes{\-l}ey, Reading, MA, USA, 1986. \newblock ISBN 0-201-13447-0. \bibitem{Koenig:CTP89} Andrew Koenig. \newblock {\em {C} Traps and Pitfalls}. \newblock Ad{\-d}i{\-s}on-Wes{\-l}ey, Reading, MA, USA, 1989. \newblock ISBN 0-201-17928-8. \bibitem{Lamport:LDP85} Leslie Lamport. \newblock {\em {\LaTeX}\emdash A Document Preparation System\emdash User's Guide and Reference Manual}. \newblock Ad{\-d}i{\-s}on-Wes{\-l}ey, Reading, MA, USA, 1985. \newblock ISBN 0-201-15790-X. \bibitem{Lapin:PCU87} J.~E. Lapin. \newblock {\em Portable C and {UNIX} Programming}. \newblock Pren{\-}tice-Hall, Englewood Cliffs, NJ 07632, USA, 1987. \newblock ISBN 0-13-686494-5. \bibitem{Lesk:lex} Michael~E. Lesk and Eric Schmidt. \newblock Lex\emdash a lexical analyzer generator. \newblock In {\em {UNIX} Programmer's Manual}, volume~2, pages 388--400. Holt, Reinhart, and Winston, New York, NY, USA, 1979. \newblock AT\&T Bell Laboratories Technical Report in 1975. \bibitem{Levine:LY92} John~R. Levine, Tony Mason, and Doug Brown. \newblock {\em {\tt lex} \& {\tt yacc}}. \newblock O'Reilly \& {Associates, Inc.}, 981 Chestnut Street, Newton, MA 02164, USA, second edition, 1992. \newblock ISBN 1-56592-000-7. \newblock 400 pp. \newblock US\$29.95. \bibitem{Mason:LY90} Tony Mason and Doug Brown. \newblock {\em {\tt lex} \& {\tt yacc}}. \newblock O'Reilly \& {Associates, Inc.}, 981 Chestnut Street, Newton, MA 02164, USA, 1990. \newblock ISBN 0-937175-49-8. \bibitem{Plauger:SCL92} P.~J. Plauger. \newblock {\em The {Standard C} Library}. \newblock Pren{\-}tice-Hall, Englewood Cliffs, NJ 07632, USA, 1992. \newblock ISBN 0-13-838012-0. \bibitem{Rabinowitz:PC90} Henry Rabinowitz and Chaim Schaap. \newblock {\em Portable C}. \newblock Pren{\-}tice-Hall, Englewood Cliffs, NJ 07632, USA, 1990. \newblock ISBN 0-13-685967-4. \bibitem{Reid:SUM80} Brian Reid. \newblock {\em Scribe User's Manual}. \newblock Carnegie-Mellon University, Pittsburgh, PA, USA, third edition, 1980. \bibitem{Rochkind:AUP85} Marc~J. Rochkind. \newblock {\em Advanced {UNIX} Programming}. \newblock Pren{\-}tice-Hall, Englewood Cliffs, NJ 07632, USA, 1985. \newblock ISBN 0-13-011818-4 (hardback), 0-13-011800-1 (paperback). \bibitem{Schoonover:GEU92} Michael~A. Schoonover, John~S. Bowie, and William~R. Arnold. \newblock {\em {GNU} Emacs: {UNIX} Text Editing and Programming}. \newblock Ad{\-d}i{\-s}on-Wes{\-l}ey, Reading, MA, USA, 1992. \newblock ISBN 0-201-56345-2. \newblock 610 pp. \newblock LCCN QA76.76.T49S36. \bibitem{Schreiner:ICC85} Axel~T. Schreiner and H.~George {Friedman, Jr.} \newblock {\em Introduction to Compiler Construction Under {UNIX}}. \newblock Pren{\-}tice-Hall, Englewood Cliffs, NJ 07632, USA, 1985. \newblock ISBN 0-13-474396-2. \newblock 224 pp. \bibitem{Stevens:UNP90} W.~Richard Stevens. \newblock {\em {UNIX} Network Programming}. \newblock Pren{\-}tice-Hall, Englewood Cliffs, NJ 07632, USA, 1990. \newblock ISBN 0-13-949876-1. \bibitem{Stroustrup:CPL91} Bjarne Stroustrup. \newblock {\em The {C++} Programming Language}. \newblock Ad{\-d}i{\-s}on-Wes{\-l}ey, Reading, MA, USA, second edition, 1991. \newblock ISBN 0-201-53992-6. \bibitem{vanHerwijnen:PS90} Eric van Herwijnen. \newblock {\em Practical {SGML}}. \newblock Kluwer Academic Publishers Group, Norwell, MA, USA, 1990. \newblock ISBN 0-7923-0635-X. \newblock xviii + 307 pp. \newblock \pounds24.90 (1990). \bibitem{xopen:XPG89-1} {X/Open Company, Ltd.} \newblock {\em X\slash Open Portability Guide, {XSI} Commands and Utilities}, volume~1. \newblock Pren{\-}tice-Hall, Englewood Cliffs, NJ 07632, USA, 1989. \newblock ISBN 0-13-685835-X. \end{thebibliography} bibclean-3.07/doc/bibclean.toc0000644000156700015670000000172007721774205015132 0ustar beebebeebe\contentsline {section}{\numberline {1}Introduction}{395} \contentsline {section}{\numberline {2}\BibTeX {} needs improvement}{396} \contentsline {section}{\numberline {3}Run-time options}{397} \contentsline {section}{\numberline {4}Prettyprinting}{399} \contentsline {section}{\numberline {5}Pattern matching and initialization files}{400} \contentsline {section}{\numberline {6}Lexical analysis}{403} \contentsline {section}{\numberline {7}Portability}{404} \contentsline {section}{\numberline {8}\SCRIBE {} bibliography format}{405} \contentsline {section}{\numberline {9}Recommendations for \BibTeX {} design}{405} \contentsline {section}{\numberline {10}A lexical grammar for \BibTeX {}}{407} \contentsline {section}{\numberline {11}A parsing grammar for \BibTeX {}}{410} \contentsline {section}{\numberline {12}Software availability}{414} \contentsline {section}{\hbox to\@tempdima {\hfil }References}{414} \contentsline {section}{\hbox to\@tempdima {\hfil }Index}{415} bibclean-3.07/doc/bibclean.sty0000644000156700015670000003024305472524264015165 0ustar beebebeebe%%% ==================================================================== %%% @LaTeX-style-file{ %%% author = "Nelson H. F. Beebe", %%% version = "1.01", %%% date = "17 November 1993", %%% time = "15:40:32 MST", %%% filename = "bibclean.sty", %%% address = "Center for Scientific Computing %%% Department of Mathematics %%% University of Utah %%% Salt Lake City, UT 84112 %%% USA", %%% telephone = "+1 801 581 5254", %%% FAX = "+1 801 581 4148", %%% checksum = "24086 294 1121 12451", %%% email = "beebe@math.utah.edu (Internet)", %%% codetable = "ISO/ASCII", %%% keywords = "BibTeX, bibliography, prettyprint, syntax check, %%% LaTeX style", %%% supported = "yes", %%% docstring = "This file contains macros for bibclean.ltx, %%% plus modifications to style macros from %%% ltugboat.sty and latex.tex to repair %%% problems and add features. %%% %%% Some of these modifications should be %%% incorporated in a future revision of %%% ltugboat.sty. %%% %%% The checksum field above contains a CRC-16 %%% checksum as the first value, followed by the %%% equivalent of the standard UNIX wc (word %%% count) utility output of lines, words, and %%% characters. This is produced by Robert %%% Solovay's checksum utility.", %%% } %%% ==================================================================== \hyphenation{bib-li-og-ra-phy-style pretty-printer} %%====================================================================== %% Definitions of macros used in writing bibclean.ltx. %% %% NOTE TO THE EDITOR: %% Small cap names in macros are given in upper-case letters, because %% they look too small if entirely in lower-case. We change TUGboat's %% \UNIX to match the others. Several of these macros automatically %% generate index entries, and some get discretionary hyphens added. % \catcode`\_=11 % underscore is a letter in this document % \renewcommand{\BibTeX}{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em \-T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}% \newcommand{\BIBCLEAN}{{\tt bib\-clean}\index{bibclean@{\protect\tt bibclean}}} \newcommand{\CS}[1]{{\tt\char92\relax#1}% \index{control sequence!#1@{\protect\tt\char92\relax#1}}% \index{#1@{\protect\tt\char92\relax#1}}} \newcommand{\ESCAPE}[1]{{\tt\char92\relax#1}% \index{#1@{\protect\tt\char92\relax#1}}} \newcommand{\FORMAT}[1]{{\tt \%#1}% \index{\%#1@{\protect\tt \%#1}}% \index{format!item!\%#1@{\protect\tt \%#1}}% } \newcommand{\FUNCTION}[1]{{\tt #1()}% \index{#1@{\protect\tt #1()}}% \index{function!#1@{\protect\tt #1()}}% } \newcommand{\FUNCTIONINDEX}[1]{% \index{#1@{\protect\tt #1()}}% \index{function!#1@{\protect\tt #1()}}% } \newcommand{\MACRO}[1]{{\tt #1}\index{#1@{\protect\tt #1}}% \index{macro!#1@{\protect\tt #1}}} \newcommand{\MACROINDEX}[1]{\index{#1@{\protect\tt #1}}% \index{macro!#1@{\protect\tt #1}}} % Here is some fancy work. We want \OPTION{foobar} to generate a % foobar index entry, and \OPTION{[no-]foobar} to generate both % no-foobar and foobar entries. The TeX macro \gobbleno gobbles the % [no-] prefix (actually, all text up to a right bracket). The \if % tests inside \OPTION and \OPTIONITEM check for the cases of foobar % and [no-]foobar. \def\gobbleno#1]{} % gobble [no-] prefix \newcommand{\OPTION}[1]{{\tt -#1}% \def\@firstchar##1##2\end@firstchar{##1}% \if[\@firstchar#1\end@firstchar % ] for bracket balance \index{\gobbleno#1@{\protect\tt -\gobbleno#1}}% \index{option!\gobbleno#1@{\protect\tt -\gobbleno#1}}% \index{no-\gobbleno#1@{\protect\tt -no-\gobbleno#1}}% \index{option!no-\gobbleno#1@{\protect\tt -no-\gobbleno#1}}% \else \index{#1@{\protect\tt -#1}}% \index{option!#1@{\protect\tt -#1}}% \fi } \newcommand{\OPTIONITEM}[1]{\item[{\tt -#1}]% \hskip 0pt plus 12pt% for better line breaking \def\@firstchar##1##2\end@firstchar{##1}% \if[\@firstchar#1\end@firstchar % ] for bracket balance \index{\gobbleno#1@{\protect\tt -\gobbleno#1}}% \index{option!\gobbleno#1@{\protect\tt -\gobbleno#1}}% \index{no-\gobbleno#1@{\protect\tt -no-\gobbleno#1}}% \index{option!no-\gobbleno#1@{\protect\tt -no-\gobbleno#1}}% \else \index{#1@{\protect\tt -#1}}% \index{option!#1@{\protect\tt -#1}}% \fi } \newcommand{\OSTWO}{{\sc OS/2}\index{OS/2@{\protect\sc OS/2}}} \newcommand{\PATHINDEX}[1]{\index{#1@{\protect\tt #1}}% \index{file!#1@{\protect\tt #1}}} \newcommand{\PCDOS}{{\sc PC-DOS}\index{PC-DOS@{\protect\sc PC-DOS}}} \newcommand{\PROGRAM}[1]{{\tt #1}\index{#1@{\protect\tt #1}}} \newcommand{\RULE}[1]{{\tt #1}\index{#1@{\protect\tt #1} rule}% \index{non-terminal!#1@{\protect\tt #1}}} \newcommand{\RULEINDEX}[1]{\index{#1@{\protect\tt #1} rule}% \index{non-terminal!#1@{\protect\tt #1}}} \newcommand{\SCRIBE}{{\sc Scribe}\index{Scribe@{\protect\sc Scribe}}} \newcommand{\seealso}[2]{{\em see also\/} #1} % \SGML was added to tugboat.cmn 1.11c [29-Nov-1992], but we want % our private version to index the name as well as typeset it, so % we change \newcommand to \renewcommand. \renewcommand{\SGML}{{\sc SGML}\index{SGML@{\protect\sc SGML}}} \newcommand{\TOKEN}[1]{{\tt #1}\index{#1@{\protect\tt #1}}% \index{terminal!#1@{\protect\tt #1}}} \newcommand{\TOKENINDEX}[1]{\index{#1@{\protect\tt #1}}% \index{terminal!#1@{\protect\tt #1}}} \newcommand{\TOS}{{\sc TOS}\index{TOS@{\protect\sc TOS}}} \newcommand{\TT}[1]{{\tt #1}\index{#1@{\protect\tt #1}}} \newcommand{\TTINDEX}[1]{\index{#1@{\protect\tt #1}}} \renewcommand{\UNIX}{{\sc UNIX}\index{UNIX@{\protect\sc UNIX}}} \newcommand{\VARIABLE}[1]{{\tt #1}% \index{#1@{\protect\tt #1}}% \index{variable!#1@{\protect\tt #1}}% } \newcommand{\VARIABLEINDEX}[1]{% \index{#1@{\protect\tt #1}}% \index{variable!#1@{\protect\tt #1}}% } \renewcommand{\VAX}{{\sc VAX}\index{VAX@{\protect\sc VAX}}} \newcommand{\VMS}{{\sc VMS}\index{VMS@{\protect\sc VMS}}} \renewcommand{\WEB}{{\tt WEB}\index{WEB@{\protect\tt WEB}}} % %%====================================================================== %% Parameter adjustments to reduce the number of overfull and %% underfull boxes in the narrow TUGboat columns % \newcommand{\optbreak}{\penalty 0}% optional hyphenless line break point \emergencystretch = 1pt % a little bit of extra stretch helps \exhyphenpenalty = 25 % hyphenations are okay \hbadness = 3000 % be quiet unless badness exceeds this \hfuzz = 2pt % allow slightly overfull boxes \hyphenchar\nintt = `- % allow hyphenation in \tt font sizes \hyphenchar\tentt = `- \hyphenchar\elvtt = `- \hyphenchar\twltt = `- \hyphenpenalty = 25 % hyphenations are okay \tolerance = 2000 % extra white space is expected % %%====================================================================== %% Bug fixes. %% %% Repair some problems in latex.tex. %% %% LaTeX's default tolerance of 10000 in sloppy and sloppypar is %% unsatisfactory in two-column mode; \emergencystretch saves the day. %% %% OLD: \def\sloppy{\tolerance 10000 \hfuzz .5\p@ \vfuzz .5\p@} \renewcommand{\sloppy}{\emergencystretch=10pt \tolerance 9000 \hfuzz 0.5pt \vfuzz 0.5pt} % %%====================================================================== %% Bug fixes. %% %% Repair some problems in ltugboat.sty. I believe that these changes %% should be made permanently to ltugboat.sty. %% %% Revise ltugboat.sty's \l@section which typesets a section heading %% table of contents entry. The original version sets long headings %% flush right, which gives spaced out text which looks awful. We %% change it to typeset headings in \raggedright instead, and indent %% the macro to make it more readable. %% \l@section{TOC-ENTRY}{PAGE-NUMBER} \def\l@section#1#2% {% \addpenalty{\@secpenalty}% \addvspace{1.0em plus 1pt}% \@tempdima 1.5em \begingroup \parindent \z@ \rightskip \z@ % article style makes \rightskip > 0 \parfillskip \z@ \bf \leavevmode \advance\leftskip\@tempdima% indent text by width of \numberline \hskip -\leftskip % move left for section number on first line \raggedright % NEW: no flushright text in tocs #1% toc-entry text \unskip % NEW: discard intervening space \nobreak \hfill % was \hfil, but need stronger version \nobreak \hbox to \@pnumwidth {\hss #2}% page number \par \endgroup } % %% OLD: \def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} \def\l@figure{\@dottedtocline{1}{0em}{1.5em}} \let\l@table=\l@figure % %% Increase \@pnumwidth by 0.45em (4.5pt) to avoid overfull box %% from bad default setting. %% OLD: \def\@pnumwidth{1.55em} \def\@pnumwidth{2em} % %% Modification of \@dottedtocline from latex.tex to produce ragged right %% entries instead of very spaced out entries. \def\@dottedtocline#1#2#3#4#5{% \ifnum #1>\c@tocdepth \else \vskip \z@ plus .2pt {% \leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent #2\relax \@afterindenttrue \interlinepenalty\@M \leavevmode \@tempdima #3\relax % tempdima := NUMWIDTH \advance\leftskip \@tempdima % leftskip := INDENT + NUMWIDTH \hbox{}% \hskip -\leftskip {% \raggedright #4 \unskip \nobreak \hfill \nobreak \hbox to\@pnumwidth{\hfil\rm #5}% \par }% \par }% \fi } % %%====================================================================== %% Stylistic changes. %% %% Modifications to get toc entries for bibliography and index %% sections and to avoid loss of section headings in index. Both of %% these should be merged into ltugboat.sty. % \def\thebibliography#1{% \section*{References\@mkboth {REFERENCES}{REFERENCES}}\list {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth \advance\leftmargin\labelsep \usecounter{enumi}}% \def\newblock{\hskip .11em plus .33em minus .07em}% \tolerance 8000 \hfuzz .5\p@ \vfuzz .5\p@ \clubpenalty4000\widowpenalty4000 \addcontentsline{toc}{section}{\numberline {}References}% \sfcode`\.=1000\relax } % % Change \theindex to not fiddle page style, typeset in ragged right, % and use a \small font to shorten the article. For bibclean.ltx, % this only reduces the index size from 8 pages to 7 pages. A \tiny % font (5 pt) reduces it to 4, but standard LaTeX lacks \sc and \tt in % that size, and we need both of them. \renewcommand{\theindex}{% \section*{Index}% \@mkboth{INDEX}{INDEX}% %% OLD: \thispagestyle{plain} %leave pagestyle alone \parindent\z@ \parskip\z@ plus .3pt\relax\let\item\@idxitem \addcontentsline{toc}{section}{\numberline {}Index}% \raggedright % index entries are sometimes long \small % small font to compress index } % % Change \endtheindex to not do a page eject, so signature display can % fall on index page, and reset type size to \normalsize. \def\endtheindex{\if@restonecol\onecolumn\else\fi\par\normalsize} %======================================================================= \endinput bibclean-3.07/doc/texnames.sty0000644000156700015670000002775405351404567015266 0ustar beebebeebe% /u/sy/beebe/tex/texnames/texnames.sty, Sat Oct 26 11:19:21 1991 % Edit by Nelson H. F. Beebe %%% ==================================================================== %%% @TeX-style-file{ %%% author = "Nelson H. F. Beebe", %%% version = "1.09", %%% date = "16 March 1993", %%% time = "10:08:05 MST", %%% filename = "texnames.sty", %%% address = "Center for Scientific Computing %%% Department of Mathematics %%% South Physics Building %%% University of Utah %%% Salt Lake City, UT 84112 %%% USA %%% Tel: (801) 581-5254 %%% FAX: (801) 581-4148", %%% checksum = "15888 291 1374 12268", %%% email = "beebe@magna.math.utah.edu (Internet)", %%% codetable = "ISO/ASCII", %%% keywords = "TeX names", %%% supported = "yes", %%% docstring = "This style file for AmSTeX, LaTeX, and TeX %%% defines macros for the names of TeX %%% and METAFONT programs, in several %%% letter-case variants: %%% %%% \AMSTEX, \AMSTeX, \AmSTeX %%% \BIBTEX, \BIBTeX, \BibTeX %%% \LAMSTeX, \LAmSTeX %%% \LaTeX, \LATEX %%% \METAFONT, \MF %%% \SLITEX, \SLITeX, \SLiTeX, \SliTeX %%% %%% It will NOT redefine any macro that %%% already exists, so it can be included %%% harmlessly after other style files. %%% %%% In AmSTeX or Plain TeX, just do %%% %%% \input texnames.sty %%% %%% In LaTeX, do %%% %%% \documentstyle[...,texnames]{...} %%% %%% This file grew out of original work by %%% %%% Richard Furuta %%% Department of Computer Science %%% University of Maryland %%% College Park, MD 20742 %%% %%% furuta@mimsy.umd.edu %%% seismo!umcp-cs!furuta %%% %%% 22 October 1986, first release (1.00) %%% %%% 1 April 1987 (1.01): Modified by William %%% LeFebvre, Rice University to include %%% definitions for BibTeX and SLiTeX, as they %%% appear in the LaTeX Local User's Guide %%% template (the file latex/local.tex in %%% standard distributions) %%% %%% 26 October 1991 (1.02): Modified by %%% Nelson H. F. Beebe to %%% add several new macro names, and adapt for %%% use with Plain TeX and AmSTeX. %%% %%% 26 October 1991 (1.03): Add \LaTeX and %%% \LATEX %%% %%% 25 November 1991 (1.04): Add \LamSTeX %%% and \LAMSTeX %%% %%% 27 January 1991 (1.05 and 1.06): Add slanted %%% font support for \MF. Make several comment %%% changes. Add a couple of missing % at end %%% of line, and replace blank lines by empty %%% comments. %%% %%% 30 December 1992 (1.07): Use \TeX in %%% definitions of \BibTeX and \LaTeX. Remove %%% occurrences of \rm. Change \sc to use %%% \scriptfont instead of hardwiring cmcsc10. %%% Use \cal for \LAMSTeX. %%% %%% 1 March 1993 (1.08): Consolidate \ifx's onto %%% single lines for brevity. Add %%% \spacefactor1000 to definitions for \TeX and \MF. %%% %%% 16 March 1993 (1.09): Add \AmS, \AMS, \AmSLaTeX, %%% and \AMSLaTeX. %%% %%% The checksum field above contains a CRC-16 %%% checksum as the first value, followed by the %%% equivalent of the standard UNIX wc (word %%% count) utility output of lines, words, and %%% characters. This is produced by Robert %%% Solovay's checksum utility.", %%% %%% } %%% ==================================================================== % \immediate\write16{This is texnames.sty, Version 1.09 <16 March 1993>}% % % This has a chance of working in different styles and sizes, although % it's not perfect. If \sc actually selects a caps-and-small caps font, % we want to use lowercase letters (to get the small caps). But if \sc % selects a smaller point size, we want to use uppercase letters. % \uppercasesc is called on every letter we typeset in \sc, so both % forms can be accommodated. \ifx\sc\undefined \def\sc{% % If there is no \scriptfont for the current family, use a fixed % font. What more can we do? \expandafter\ifx\the\scriptfont\fam\nullfont \font\temp = cmr7 \temp \else \the\scriptfont\fam \fi \def\uppercasesc{\char\uccode`}% }% \fi \ifx\uppercasesc\undefined \let\uppercasesc = \relax \fi % % In the following, we first give the ``official'' definition, % then follow it with spelling variants. Alternate definitions % are discarded in favor of the official one. Each family is % separated by a line like the following one. % %======================================================================= % % Only change from plain.tex is the \spacefactor assignment (suggested % by Phil Taylor), so that \TeX at the end of a sentence isn't treated % as an abbreviation. % \def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX\spacefactor1000 }% % %======================================================================= % From the AMS tex/ams/amslatex/fontsel/nfssinst.tex file: \ifx\AmS\undefined \def\AmS{{\the\textfont2 A}\kern-.1667em\lower.5ex\hbox {\the\textfont2 M}\kern-.125em{\the\textfont2 S}} \fi \ifx\AMS\undefined \let\AMS=\AmS \fi \ifx\AmSLaTeX\undefined \def\AmSLaTeX{\AmS-\LaTeX} \fi \ifx\AMSLaTeX\undefined \let\AMSLaTeX=\AmSLaTeX \fi %======================================================================= % % Mike Spivak's amstex/amstex.tex 1.1d [26-Aug-1988] has % \def\AmSTeX{{\textfontii A}\kern-.1667em\lower.5ex\hbox % {\textfontii M}\kern-.125em{\textfontii S}-\TeX} % and 2.1 [05-Apr-1991] has an equivalent definition. % AmSTeX's \textfontii is exactly the same as \cal, which % all TeX variants understand. % \ifx\AmSTeX\undefined \def\AmSTeX{$\cal A$\kern-.1667em\lower.5ex\hbox{$\cal M$}% \kern-.125em$\cal S$-\TeX}% \fi % % Leslie Lamport's latex/tmanual.tex [10-Jul-1984] (an early % draft of the book) defines it in uppercase with the standard % definition. \ifx\AMSTEX\undefined \let\AMSTEX=\AmSTeX \fi % % Barbara Beeton's latex/deproc.sty [24-Apr-1986] and inputs/tugbot.sty % [11-Jan-1988] uses this spelling, but the definition % \leavevmode\hbox{$\cal A\kern-.2em\lower.376ex \hbox{$\cal % M$}\kern-.2em\cal S$-\TeX} \ifx\AMSTeX\undefined \let\AMSTeX=\AmSTeX \fi % %======================================================================= % % The definitions of \BibTeX and \SLiTeX in Leslie Lamport's % latex/local.tex lower the E by 0.7ex, while \TeX in plain.tex lowers % it by 0.5ex. Oren Patashnik's bibtex/btxdoc.tex and bibtex/btxhak.tex % [08-Feb-1988] and bibtex/bibtex.web 0.99c [xx-Feb-1988] use this same % name and definition, but Oren said using \TeX here is ok. (Curiously, % LaTeX itself does not define macros for any TeXware except LaTeX and % TeX!) \ifx\BibTeX\undefined \def\BibTeX{B{\sc \uppercasesc i\kern-.025em \uppercasesc b}\kern-.08em \TeX}% \fi % % Leslie Lamport uses this spelling in latex.tex, but not as a % macro. We include it for consistency with AMSTeX. \ifx\BIBTeX\undefined \let\BIBTeX=\BibTeX \fi % % Leslie Lamport's latex/slides.tex [05-Jun-1984], % latex/tmanual.tex [10-Jul-1984] (an early draft of the book), % and latex/lerrata.tex [23-Jul-1985] have this spelling, but the % definition BIB\kern-.1em\TeX. \ifx\BIBTEX\undefined \let\BIBTEX=\BibTeX \fi % %======================================================================= % % From tugboat.com 1.08 [24-Oct-1990]. \ifx\LAMSTeX\undefined \def\LAMSTeX{L\raise.42ex\hbox{\kern-.3em\the\scriptfont2 A}% \kern-.2em\lower.376ex\hbox{\the\textfont2 M}% \kern-.125em {\the\textfont2 S}-\TeX}% \fi % \ifx\LamSTeX\undefined \let\LamSTeX=\LAMSTeX \fi % % This variant seems likely to appear: \ifx\LAmSTeX\undefined \let\LAmSTeX=\LAMSTeX \fi % %======================================================================= % % The definition from latex.tex (LATEX VERSION 2.09 <14 January 1991>) % and bibtex.web 0.99c [xx-Feb-1988] lowers the E slightly more than % \TeX, but consistency seems more desirable. See comments at \BibTeX. % Different definitions are given by latex/deproc.sty [24-Apr-1986], % amstex/man.sty [15-Dec-1986] inputs/tugbot.sty [11-Jan-1988], and % latex/tugboat.com 1.08 [24-Oct-1990]. % \ifx\LaTeX\undefined \def\LaTeX{L\kern-.36em\raise.3ex\hbox{\sc \uppercasesc a}\kern-.15em\TeX}% \fi % % latex/slides.tex [05-Jun-1984] and latex/lerrata.tex [23-Jul-1985] % have this spelling, but different definitions \ifx\LATEX\undefined \let\LATEX=\LaTeX \fi % %======================================================================= % % Don Knuth's mf.web 2.7 [xx-Sep-1990] and Barbara Beeton's % latex/deproc.sty [24-Apr-1986] use an equivalent of this definition. % The font is variously named \logo, \manfnt, and \mf. plain.tex % preloads \manfnt. manfnt has the letters A, E, F, M, N, O, T in % various sizes plus extra symbols for Don Knuth's books Computers and % Typesetting, and Concrete Mathematics, while logo10 has only those % letters in one size. AmSTeX uses \logo in amsppt.sty and imappt.sty, % so we should avoid it, and tugboat.com uses \mf for {\smc Metafont}. % We therefore use \manfnt here, defining it if necessary. QUESTION: % should we use manfnt, or logo10? \ifx\MF\undefined \ifx\manfnt\undefined \font\manfnt=logo10 \fi \ifx\manfntsl\undefined \font\manfntsl=logosl10 \fi \def\MF{{\ifdim\fontdimen1\font>0pt \let\manfnt = \manfntsl \fi {\manfnt META}\-{\manfnt FONT}}\spacefactor1000 }% \fi % % I cannot find any `official' uses of this alternate, but it % seems likely that people will use it. \ifx\METAFONT\undefined \let\METAFONT=\MF \fi % %======================================================================= % % Leslie Lamport's latex/slides.tex [05-Jun-1984]. His % latex/lerrata.tex [23-Jul-1985] and latex/tmanual.tex % [10-Jul-1984] (an early draft of the book) define it as % SLI\TeX! The LaTeX User's Guide and Reference Manual (1986) % appears to use small caps, and possibly kerning, for Sli. % I need to ask Leslie to suggest a preferred definition. \ifx\SLITEX\undefined \def\SLITEX{S\kern-.065em L\kern-.18em\raise.32ex\hbox{i}\kern-.03em\TeX}% \fi % % latex/local.tex (sample Local Guide) [27-Oct-1988] uses % this name, but defines it as % {\rm S\kern-.06em{\sc l\kern-.035emi}\kern-.06em T\kern % -.1667em\lower.7ex\hbox{E}\kern-.125emX} % with an extra-low E, and kerned Sli in small caps. Is this % what the LaTeX User's Guide and Reference Manual (1986) used? \ifx\SLiTeX\undefined \let\SLiTeX=\SLITEX \fi % % latex/slitex.tex [08-Jun-1988] uses SliTeX in typeouts, % but not as a macro -- what a way to confuse the user. \ifx\SliTeX\undefined \let\SliTeX=\SLITEX \fi % % I cannot find a use of this one, but it seems a likely % candidate anyway, and is consistent with AMSTeX and BIBTeX. \ifx\SLITeX\undefined \let\SLITeX=\SLITEX \fi % \endinput %=========================[End of texnames.sty]========================= bibclean-3.07/doc/tugboat.cmn0000644000156700015670000007660706046735265015052 0ustar beebebeebe%% @latexfile{ %% filename="tugboat.cmn", %% version="1.13g", %% date="4-Nov-1995", %% filetype="common macros for TUGboat", %% copyright="Copyright (C) TeX Users Group. %% Copying of this file is authorized only if either: %% (1) you make absolutely no changes to your copy, OR %% (2) if you do make changes, you first rename it to some %% other name.", %% author="TeX Users Group", %% address="TeX Users Group, %% 1850 Union Street, \#1637, %% San Francisco, CA 94123, %% USA", %% telephone="415-982-8449", %% email="Internet: TUGboat@ams.org", %% codetable="ISO/ASCII", %% checksumtype="line count", %% checksum="997", %% keywords="tex users group, tugboat, common macros", %% abstract="This file contains macros common to both %% the PLAIN and LaTeX style files for TUGboat, %% the Communications of the TeX Users Group. %% Among other things, it contains supplementary %% definitions for abbreviations and logos that %% appear in TUGboat." %% } %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\fileversion{v1.13f} \def\filedate{15 Apr 1994} \message{File `TUGBOAT.CMN' \fileversion \space\space <\filedate>} % % ***** TUGBOAT.CMN ***** % % See the bottom of the file (after \endinput) for a list of % items defined. % % ************************************************************************* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % ***** helpful shorthand ***** % % The following allow for easier changes of category. These require that % the character be addressed as a control-sequence: e.g. \makeescape\/ will % make the / an escape character. \def\makeescape#1{\catcode`#1=0 } \def\makebgroup#1{\catcode`#1=1 } \def\makeegroup#1{\catcode`#1=2 } \def\makemath#1{\catcode`#1=3 } \def\makealign#1{\catcode`#1=4 } \def\makeeol#1{\catcode`#1=5 } \def\makeparm#1{\catcode`#1=6 } \def\makesup#1{\catcode`#1=7 } \def\makesub#1{\catcode`#1=8 } \def\makeignore#1{\catcode`#1=9 } \def\makespace#1{\catcode`#1=10 } \def\makeletter#1{\catcode`#1=11 } \def\makeother#1{\catcode`#1=12 } \def\makeactive#1{\catcode`#1=13 } \def\makecomment#1{\catcode`#1=14 } \def\makeatletter{\catcode`\@=11 } % included for historical reasons \chardef\other=12 \def\makeatother{\catcode`\@=\other} % alternative to localization \def\savecat#1{% \expandafter\xdef\csname\string#1savedcat\endcsname{\the\catcode`#1}} \def\restorecat#1{\catcode`#1=\csname\string#1savedcat\endcsname} \savecat\@ \makeletter\@ % used, as in PLAIN, in protected control sequences % for restoring meanings of global control sequences \def\SaveCS#1{% \def\scratch{\expandafter\let\csname saved@@#1\endcsname}% \expandafter\scratch\csname#1\endcsname} \def\RestoreCS#1{% \def\scratch{\expandafter\let\csname#1\endcsname}% \expandafter\scratch\csname saved@@#1\endcsname} % To distinguish between macro files loaded \def\plaintubstyle{plain} \def\latextubstyle{latex} \ifx\tugstyloaded@\undefined\let\tugstyloaded@\plaintubstyle\fi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % ***** abbreviations and logos ***** % \def\AllTeX{(\La)\TeX} \def\AMS{American Mathematical Society} \def\AmS{{\the\textfont2 A}\kern-.1667em\lower.5ex\hbox {\the\textfont2 M}\kern-.125em{\the\textfont2 S}} \def\AmSLaTeX{\AmS-\LaTeX} \def\AmSTeX{\AmS-\TeX} \def\aw{A\kern.1em-W} \def\AW{Addison\kern.1em-\penalty\z@\hskip\z@skip Wesley} \def\BibTeX{{\rm B\kern-.05em{\smc i\kern-.025emb}\kern-.08em\TeX}} \def\CandT{{\sl Computers \& Typesetting}} \def\CTAN{{\SMC CTAN}\spacefactor1000 } \def\DVItoVDU{DVIto\kern-.12em VDU} \def\ISBN{{\SMC ISBN} } \def\ISSN{{\SMC ISSN} } % Japanese TeX \def\JTeX{\leavevmode\hbox{\lower.5ex\hbox{J}\kern-.18em\TeX}} \def\JoT{{\sl The Joy of \TeX}} \def\LAMSTeX{L\raise.42ex\hbox{\kern-.3em\the\scriptfont2 A}% \kern-.2em\lower.376ex\hbox{\the\textfont2 M}\kern-.125em {\the\textfont2 S}-\TeX} % note -- \LaTeX definition is from LATEX.TEX 2.09 of 7 Jan 86, % adapted for additional flexibility in TUGboat %\def\LaTeX{\TestCount=\the\fam \leavevmode L\raise.42ex % \hbox{$\fam\TestCount\scriptstyle\kern-.3em A$}\kern-.15em\TeX} % note -- broken in two parts, to permit separate use of La, % as in (La)TeX \def\La{\TestCount=\the\fam \leavevmode L% \setbox\TestBox=\hbox{$\fam\TestCount\scriptstyle A$}% \kern-.5\wd\TestBox\raise.42ex\box\TestBox} \def\LaTeX{\La\kern-.15em\TeX} \def\LaTeXe{\LaTeX{}\kern.05em2$_{\textstyle\varepsilon}$} % for Robert McGaffey \def\Mc{\setbox\TestBox=\hbox{M}M\vbox to\ht\TestBox{\hbox{c}\vfil}} \font\manual=logo10 % font used for the METAFONT logo, etc. \def\MF{{\manual META}\-{\manual FONT}\spacefactor1000 } \def\MP{{\manual META}\-{\manual POST}\spacefactor1000 } \def\mf{{\smc Metafont}} \def\MFB{{\sl The \slMF book}} % multilingual (INRS) TeX \def\mtex{T\kern-.1667em\lower.5ex\hbox{\^E}\kern-.125emX\spacefactor1000 } \def\pcMF{\leavevmode\raise.5ex\hbox{p\kern-.3ptc}MF\spacefactor1000 } \def\PCTeX{PC\thinspace\TeX} \def\pcTeX{\leavevmode\raise.5ex\hbox{p\kern-.3ptc}\TeX} \def\Pas{Pascal} \def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC\spacefactor1000 } \def\PiCTeX{\PiC\kern-.11em\TeX} \def\plain{{\tt plain}} \def\POBox{P.\thinspace O.~Box } \def\POBoxTUG{\POBox\unskip~9506, Providence, RI~02940} \def\PS{{Post\-Script}} \def\SC{Steering Committee} \def\SGML{{\SMC SGML}\spacefactor1000 } \def\SliTeX{{\rm S\kern-.06em{\smc l\kern-.035emi}\kern-.06em\TeX}} \def\slMF{\MF} % Use \font\manualsl=logosl10 instead, if it's available, % for \def\slMF{{\manualsl META}\-{\manualsl FONT}\spacefactor1000 } % Atari ST (Klaus Guntermann) \def\stTeX{{\smc st\rm\kern-0.13em\TeX}} \def\TANGLE{{\tt TANGLE}\spacefactor1000 } \def\TB{{\sl The \TeX book}} \def\TP{{\sl \TeX\/}: {\sl The Program\/}} \def\TeX{T\kern-.1667em\lower.424ex\hbox{E}\kern-.125emX\spacefactor1000 } \def\TeXhax{\TeX hax} % Don Hosek \def\TeXMaG{\TeX M\kern-.1667em\lower.5ex\hbox{A}\kern-.2267emG% \spacefactor1000 } %\def\TeXtures{\TestCount=\the\fam % \TeX\-\hbox{$\fam\TestCount\scriptstyle TURES$}} \def\TeXtures{{\it Textures}} \let\Textures=\TeXtures \def\TeXXeT{\TeX-{}-\XeT} \def\ttn{{\sl TTN}\spacefactor1000 } \def\TTN{{\sl \TeX{} and TUG NEWS}\spacefactor1000 } \def\tubfont{\sl} % redefined in other situations \def\TUB{{\tubfont TUGboat\/}} \def\TUG{\TeX\ \UG} \def\UG{Users Group} \def\UNIX{{\SMC UNIX}\spacefactor1000 } \def\VAX{V\kern-.12em A\kern-.1em X\spacefactor1000 } \def\VorTeX{V\kern-2.7pt\lower.5ex\hbox{O\kern-1.4pt R}\kern-2.6pt\TeX} \def\XeT{X\kern-.125em\lower.424ex\hbox{E}\kern-.1667emT\spacefactor1000 } \def\WEB{{\tt WEB}\spacefactor1000 } \def\WEAVE{{\tt WEAVE}\spacefactor1000 } %******************************************************************** \newlinechar=`\^^J \normallineskiplimit=1pt \clubpenalty=10000 \widowpenalty=10000 \def\NoParIndent{\parindent=\z@} \newdimen\normalparindent \normalparindent=20pt % plain = 20pt \def\NormalParIndent{\global\parindent=\normalparindent} \NormalParIndent \def\BlackBoxes{\overfullrule=5pt } \def\NoBlackBoxes{\overfullrule=\z@ } \def\newline{\hskip\z@ plus \pagewd \break} \def\nohyphens{\hyphenpenalty\@M\exhyphenpenalty\@M} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % ***** utility registers and definitions ***** % % test registers for transient use; paired - internal/external \newbox\T@stBox \newbox\TestBox \newcount\T@stCount \newcount\TestCount \newdimen\T@stDimen \newdimen\TestDimen \newif\ifT@stIf \newif\ifTestIf % \cs existence test, stolen from TeXbook exercise 7.7 \def\ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax } % LaTeX conventions which are also useful here. \ifx\tugstyloaded@\plaintubstyle \let\@@input\input \def\iinput#1{\@@input#1 } \def\@inputcheck{\if\@nextchar\bgroup \expandafter\iinput\else\expandafter\@@input\fi} \def\input{\futurelet\@nextchar\@inputcheck} \fi % Smashes repeated from AMS-TeX; PLAIN implements only full \smash . \newif\iftop@ \newif\ifbot@ \def\topsmash{\top@true\bot@false\smash@} \def\botsmash{\top@false\bot@true\smash@} \def\smash{\top@true\bot@true\smash@} \def\smash@{\relax\ifmmode\def\next{\mathpalette\mathsm@sh}% \else\let\next\makesm@sh\fi \next } \def\finsm@sh{\iftop@\ht\z@\z@\fi\ifbot@\dp\z@\z@\fi\box\z@} % Vertical `laps'; cf. \llap and \rlap \long\def\ulap#1{\vbox to \z@{\vss#1}} \long\def\dlap#1{\vbox to \z@{#1\vss}} % And centered horizontal and vertical `laps' \def\xlap#1{\hbox to \z@{\hss#1\hss}} \long\def\ylap#1{\vbox to \z@{\vss#1\vss}} \long\def\zlap#1{\ylap{\xlap{#1}}} % Avoid unwanted vertical glue when making up pages. \def\basezero{\baselineskip\z@skip \lineskip\z@skip} % Empty rules for special occasions \def\nullhrule{\hrule height\z@ depth\z@ width\z@ } \def\nullvrule{\vrule height\z@ depth\z@ width\z@ } % Support ad-hoc strut construction. \def\makestrut[#1;#2]{\vrule height#1 depth#2 width\z@ } % Construct box for figure pasteup, etc. % height = #1, width = #2, rule thickness = #3 \def\drawoutlinebox[#1;#2;#3]{\T@stDimen=#3 \vbox to#1{\hrule height\T@stDimen depth\z@ \vss\hbox to#2{\vrule width\T@stDimen \hfil\makestrut[#1;\z@]% \vrule width\T@stDimen}\vss \hrule height\T@stDimen depth\z@}} % Today's date, to be printed on drafts. Based on TeXbook, p.406. \def\today{\number\day\space \ifcase\month\or Jan \or Feb \or Mar \or Apr \or May \or Jun \or Jul \or Aug \or Sep \or Oct \or Nov \or Dec \fi \number\year} % Current time; this may be system dependent! \newcount\hours \newcount\minutes \def\SetTime{\hours=\time \global\divide\hours by 60 \minutes=\hours \multiply\minutes by 60 \advance\minutes by-\time \global\multiply\minutes by-1 } \SetTime \def\now{\number\hours:\ifnum\minutes<10 0\fi\number\minutes} \def\Now{\today\ \now} \newif\ifPrelimDraft \PrelimDraftfalse \def\midrtitle{\ifPrelimDraft {{\tensl preliminary draft, \Now}}\fi} % Section heads. The following set of macros is used to set the large % TUGboat section heads (e.g. "General Delivery", "Fonts", etc.) \newdimen\PreTitleDrop \PreTitleDrop=\z@ \newskip\AboveTitleSkip \AboveTitleSkip=12pt \newskip\BelowTitleSkip \BelowTitleSkip=8pt \newdimen\strulethickness \strulethickness=.6pt \def\sthrule{\hrule height\strulethickness depth \z@ } \def\stvrule{\vrule width\strulethickness } \newdimen\stbaselineskip \stbaselineskip=18pt \def\@sectitle #1{% \par \SecTitletrue \penalty-1000 \secsep \vbox{ \sthrule \hbox{% \stvrule \vbox{ \advance\hsize by -2\strulethickness \raggedcenter \def\\{\unskip\break}% \sectitlefont \makestrut[2\stfontheight;\z@] #1\unskip \makestrut[\z@;\stfontheight]\endgraf }% \stvrule } \sthrule } \nobreak \vskip\baselineskip } % distance between articles which are run together \def\secsep{\vskip 5\baselineskip} \newif\ifSecTitle \SecTitlefalse % Registration marks \def\HorzR@gisterRule{\vrule height 0.2pt depth \z@ width 0.5in } \def\DownShortR@gisterRule{\vrule height 0.2pt depth 1pc width 0.2pt } \def\UpShortR@gisterRule{\vrule height 1pc depth \z@ width 0.2pt } % ``T'' marks centered on top and bottom edges of paper \def\ttopregister{\dlap{% \hbox to \trimwd{\HorzR@gisterRule \hfil \HorzR@gisterRule \HorzR@gisterRule \hfil \HorzR@gisterRule}% \hbox to \trimwd{\hfil \DownShortR@gisterRule \hfil}}} \def\tbotregister{\ulap{% \hbox to \trimwd{\hfil \UpShortR@gisterRule \hfil}% \hbox to \trimwd{\HorzR@gisterRule \hfil \HorzR@gisterRule \HorzR@gisterRule \hfil \HorzR@gisterRule}}} \def\topregister{\ttopregister} \def\botregister{\tbotregister} % PLAIN's definition of \raggedright doesn't permit any stretch, and % results in too many overfull boxes. We also turn off hyphenation. \newdimen\raggedskip \raggedskip=\z@ \newdimen\raggedstretch \raggedstretch=5em % ems of font set now (10pt) \newskip\raggedparfill \raggedparfill=\z@ plus 1fil \def\raggedspaces{\spaceskip=.3333em \relax \xspaceskip=.5em \relax } % Some applications may have to add stretch, in order to avoid % all overfull boxes. \def\raggedright{% \nohyphens \rightskip=\raggedskip plus\raggedstretch \raggedspaces \parfillskip=\raggedparfill } \def\raggedleft{% \nohyphens \leftskip=\raggedskip plus\raggedstretch \raggedspaces \parfillskip=\z@skip } \def\raggedcenter{% \nohyphens \leftskip=\raggedskip plus\raggedstretch \rightskip=\leftskip \raggedspaces \parindent=\z@ \parfillskip=\z@skip } \def\normalspaces{\spaceskip\z@skip \xspaceskip\z@skip } % Miscellaneous useful stuff \def\,{\relax\ifmmode\mskip\thinmuskip\else\thinspace\fi} %\def~{\penalty\@M \ } % tie -- this is PLAIN value; it is reset in AMS-TeX \def~{\unskip\nobreak\ \ignorespaces} % AMS-TeX value \def\newbox{\alloc@4\box\chardef\insc@unt} % remove \outer \def\boxcs#1{\box\csname#1\endcsname} \def\setboxcs#1{\setbox\csname#1\endcsname} \def\newboxcs#1{\expandafter\newbox\csname#1\endcsname} \def\gobble#1{} \def\vellipsis{% \leavevmode\kern0.5em \raise1pt\vbox{\baselineskip6pt\vskip7pt\hbox{.}\hbox{.}\hbox{.}} } \def\bull{\vrule height 1ex width .8ex depth -.2ex } % square bullet \def\cents{{\rm\raise.2ex\rlap{\kern.05em$\scriptstyle/$}c}} \def\Dag{\raise .6ex\hbox{$\scriptstyle\dagger$}} \def\careof{\leavevmode\hbox{\raise.75ex\hbox{c}\kern-.15em /\kern-.125em\smash{\lower.3ex\hbox{o}}} \ignorespaces} \def\sfrac#1/#2{\leavevmode\kern.1em \raise.5ex\hbox{\the\scriptfont\z@ #1}\kern-.1em /\kern-.15em\lower.25ex\hbox{\the\scriptfont\z@ #2}} \def\thinskip{\hskip 0.16667em\relax} \def\endash{--} \def\emdash{\endash-} \def\d@sh#1#2{\unskip#1\thinskip#2\thinskip\ignorespaces} \def\dash{\d@sh\nobreak\endash} \def\Dash{\d@sh\nobreak\emdash} \def\ldash{\d@sh\empty{\hbox{\endash}\nobreak}} \def\rdash{\d@sh\nobreak\endash} \def\Ldash{\d@sh\empty{\hbox{\emdash}\nobreak}} \def\Rdash{\d@sh\nobreak\emdash} % Hack to permit automatic hyphenation after an actual hyphen. \def\hyph{-\penalty\z@\hskip\z@skip } \def\slash{/\penalty\z@\hskip\z@skip } % "breakable" slash % Adapted from c.t.t posting by Donald Arseneau, 26 May 93. \def\nth#1{\TestCount=#1\relax \ifnum\TestCount <0 \multiply\TestCount by\m@ne \fi % subdue negatives \T@stCount=\TestCount \divide\T@stCount by 100 \multiply\T@stCount by 100 \advance\TestCount by-\T@stCount % n mod 100 \ifnum\TestCount >20 \T@stCount=\TestCount \divide\T@stCount by 10 \multiply\T@stCount by 10 \advance\TestCount by-\T@stCount % n mod 10 \fi \T@stCount=\the\fam\relax $\fam\T@stCount#1^{\fam\T@stCount \ifcase\TestCount th% 0th \or st% 1st \or nd% 2nd \or rd% 3rd \else th% nth \fi }$} % Format information on reviewed items for book review articles. \def\Review:#1{\ifx[#1\@Rev[% \else Book review:\enspace\sl #1% \fi } \def\@Rev[#1]{\ignorespaces#1\unskip:\enspace\ignorespaces\sl} \def\reviewitem{% \def\revauth##1{\def\therevauth{##1, }\ignorespaces}% \def\revtitle##1{\def\therevtitle{{\sl##1}. }\ignorespaces}% \def\revpubinfo##1{\def\therevpubinfo{##1.}\ignorespaces}% } \def\endreviewitem{{\noindent\interlinepenalty=10000 \therevauth\therevtitle\therevpubinfo\endgraf}% \vskip\medskipamount \ifx\tugstyloaded@\plaintubstyle \DeleteOptionalSpacesandPars{\noindent\ignorespaces}% \fi } \def\booktitle#1{{\sl #1\/}} % Dates and other items which identify the volume and issue % To use: \vol 5, 2. % \issdate October 1984. % \issueseqno=10 % For production, these are set in a separate file, TUGBOT.DATES, % which is issue-specific. \newcount\issueseqno \issueseqno=-1 \def\v@lx{\gdef\volx{Volume~\volno~(\volyr), No.~\issno}} \def\volyr{} \def\volno{} \def\vol #1,#2.{\gdef\volno{#1\unskip}% \gdef\issno{\ignorespaces#2\unskip}% \setbox\TestBox=\hbox{\volyr}% \ifdim \wd\TestBox > .2em \v@lx \fi } \def\issdate #1#2 #3.{\gdef\issdt{#1#2 #3}\gdef\volyr{#3}% \gdef\bigissdt{#1{\smc\uppercase{#2}} #3}% \setbox\TestBox=\hbox{\volno}% \ifdim \wd\TestBox > .2em \v@lx \fi } \vol 0, 0. % volume, issue. \issdate Thermidor, 2001. % month, year of publication \ifx\tugstyloaded@\plaintubstyle \def\tubissue#1(#2){\TUB~#1, no.~#2} \else \def\tubissue#1#2{\TUB~#1, no.~#2} \fi \def\xEdNote{{\tenuit Editor's note:\enspace }} % TUGboat conventions include the issue number in the file name. % Permit this to be incorporated into file names automatically. % If issue number = 11, \Input filnam will read tb11filnam.tex. \def\infil@{\jobname} \def\Input #1 {\ifnum\issueseqno<0 \def\infil@{#1}% \else \def\infil@{tb\number\issueseqno#1}\fi \edef\jobname{\infil@}\@readFLN \@@input \infil@\relax \ifRMKopen\immediate\closeout\TBremarkfile\RMKopenfalse\fi} \newif\ifRMKopen \RMKopenfalse \newwrite\TBremarkfile \def\TBremarkON#1{% \ifRMKopen\else\RMKopentrue\immediate\openout\TBremarkfile=\infil@.rmk \fi \toks@={#1}% \immediate\write\TBremarkfile{^^J\the\toks@}% \immediate\write16{^^JTBremark:: \the\toks@^^J}} \def\TBremarkOFF#1{} \let\TBremark=\TBremarkOFF % for marking locations in articles that pertain to remarks % in another file of editorial comments \def\TUBedit#1{} % for using different filenames in Providence than those supplied % by authors \def\TUBfilename#1#2{\expandafter\def\csname file@@#1\endcsname{#2}} \newread\@altfilenames \def\@readFLN{\immediate\openin\@altfilenames=\jobname.fln \ifeof\@altfilenames\let\@result\relax\else \def\@result{\@@input\jobname.fln }\fi \immediate\closein\@altfilenames \@result} \@readFLN \everyjob=\expandafter{\the\everyjob\@readFLN} % Following needs to work entirely in TeX's mouth \def\@tubfilename#1{\expandafter\ifx\csname file@@#1\endcsname\relax #1\else\csname file@@#1\endcsname\fi} \def\fileinput#1{\@@input\@tubfilename{#1} } % Write out (both to a file and to the log) the starting page number % of an article, to be used for cross references and in contents. % \pagexref is used for articles fully processed in the TUGboat run. % \PageXref is used for "extra" pages, where an item is submitted % as camera copy, and only running heads (at most) are run. \ifx\tugstyloaded@\plaintubstyle \def\pagexrefON#1{% \write-1{\def\expandafter\noexpand\csname#1\endcsname{\number\pageno}}% \write\ppoutfile{% \def\expandafter\noexpand\csname#1\endcsname{\number\pageno}}% } \def\PageXrefON#1{% \immediate\write-1{\def\expandafter \noexpand\csname#1\endcsname{\number\pageno}}% \immediate\write\ppoutfile{\def\expandafter \noexpand\csname#1\endcsname{\number\pageno}}} \else \def\pagexrefON#1{% \write-1{\def\expandafter\noexpand\csname#1\endcsname{\number\c@page}}% \write\ppoutfile{% \def\expandafter\noexpand\csname#1\endcsname{\number\c@page}}% } \def\PageXrefON#1{% \immediate\write-1{\def\expandafter \noexpand\csname#1\endcsname{\number\c@page}}% \immediate\write\ppoutfile{\def\expandafter \noexpand\csname#1\endcsname{\number\c@page}}} \fi \def\pagexrefOFF#1{} \let\pagexref=\pagexrefOFF \def\PageXrefOFF#1{} \let\PageXref=\PageXrefOFF \def\xreftoON#1{% \ifundefined{#1}% ???\TBremark{Need cross reference for #1.}% \else\csname#1\endcsname\fi} \def\xreftoOFF#1{???} \let\xrefto=\xreftoOFF \def\TBdriver#1{} % Authors, addresses, signatures \def\theauthor#1{\csname theauthor#1\endcsname} \def\theaddress#1{\csname theaddress#1\endcsname} \def\thenetaddress#1{\csname thenetaddress#1\endcsname} \newcount\count@@ \def\@defaultauthorlist{% % standard way of listing authors \count@=\authornumber \advance\count@ by -2 \count@@=0 \loop \ifnum\count@>0 \advance\count@@ by 1 \ignorespaces\csname theauthor\number\count@@\endcsname\unskip, \advance\count@ by -1 \repeat \count@=\authornumber \advance\count@ by -\count@@ \ifnum\authornumber>0 \ifnum\count@>1 \count@=\authornumber \advance\count@ by -1 \ignorespaces\csname theauthor\number\count@\endcsname\unskip\ and \fi \ignorespaces\csname theauthor\number\authornumber\endcsname\unskip \fi } \def\signature#1{\def\@signature{#1}} \def\@signature{\@defaultsignature} \def\@defaultsignature{% \count@=0 \loop \ifnum\count@<\authornumber \medskip \advance\count@ by \@ne \signaturemark \theauthor{\number\count@}\\ \leavevmode\theaddress{\number\count@}\\ \leavevmode\thenetaddress{\number\count@}\\ \repeat } \newdimen\signaturewidth \signaturewidth=12pc \def\makesignature{% \par \penalty9000 \vskip\medskipamount \rightline{% \vbox{\hsize\signaturewidth \ninepoint \raggedright \parindent \z@ \everypar={\hangindent 1pc } \parskip \z@skip \netaddrat \netaddrpercent \def\|{\unskip\hfil\break}% \def\\{\endgraf}% \def\net{\tt}% \def\phone{\rm Phone: } \rm \@signature}} } {\makeactive\@ \gdef\signatureat{\makeactive\@\def@{\char"40\discretionary{}{}{}}} \makeactive\% \gdef\signaturepercent{\makeactive\%\def%{\char"25\discretionary{}{}{}}} } \def\signaturemark{\leavevmode\llap{$\diamond$\enspace}} % some hyphenation exceptions: \hyphenation{Eijk-hout man-u-script man-u-scripts} \restorecat\@ \endinput % ************************************************************************* Contents and Notes ------------------ \makeescape, ..., \makecomment allow users to change category codes a little more easily. \savecat#1 and \restorecat#1 will save and restore the category of a given character. These are useful in cases where one doesn't wish to localize the settings and therefore be required to globally define or set things. \SaveCS#1 and \RestoreCS#1 save and restore `meanings' of control sequences. Again this is useful in cases where one doesn't want to localize or where global definitions clobber a control sequence which is needed later with its `old' definition. Abbreviations. Just a listing with indications of expansion where that may not be obvious. For full definitions, see real code above. \AllTeX (\La)\TeX \AMS American Mathematical Society \AmSTeX \aw A-W (abbreviation for Addison-Wesley) \AW Addison-Wesley \BibTeX \CandT Computers \& Typesetting \DVItoVDU DVItoVDU \ISBN ISBN \JTeX \JoT The Joy of \TeX \LaTeX \Mc M ``w/ raised c'' \MF METAFONT \mf Metafont (using small caps) \MFB The Metafont book \MP METAPOST \mtex multilingual TeX \pcMF pcMF \PCTeX \pcTeX \Pas Pascal \PiCTeX \plain plain (in typewriter font) \POBox P. O. Box \POBoxTUG TUG PO Box \PS PostScript \SC Steering Committee \SGML SGML \SliTeX \slMF Metafont (slanted) \stTeX TeX for the Atari ST \TANGLE \TB The \TeX book \TeX \TeXhax \TeXMaG \TeXtures \TeXXeT \TUB TUGboat \TUG TeX Users Group \UNIX \VAX \VorTeX \XeT \WEB \WEAVE \NoBlackBoxes turns off marginal rules marking overfull boxes \BlackBoxes turns them back on \newline horizontal glue plus a break \ifundefined#1 checks argument with \csname against \relax \topsmash smashes above baseline (from AMSTeX) \botsmash smashes below baseline (from AMSTeX) \smash smashes both (from plain) \ulap lap upwards \dlap lap downwards \xlap reference point at center horizontally; 0 width \ylap reference point at center vertically; 0 height, depth \zlap combination \xlap and \ylap \basezero to avoid insertion of baselineskip and lineskip glue \nullhrule empty \hrule \nullvrule empty \vrule \makestrut[#1;#2] ad hoc struts; #1=height, #2=depth \today today's date \SetTime converts \time to hours, minutes \now displays time in hours and minutes \Now shows current date and time \ifPrelimDraft flag to indicate status as preliminary draft \rtitlex TUGboat volume and number info for running head \midrtitle information for center of running head \HorzR@gisterRule pieces of registration marks ("trimmarks") \DownShortR@gisterRule \UpShortR@gisterRule \ttopregister top registration line with `T' in center \tbotregister bottom registration line with inverted `T' in center \topregister register actually used \botregister \raggedskip parameters used for ragged settings \raggedstretch \raggedparfill \raggedspaces \raggedright \raggedleft \raggedcenter \normalspaces \raggedbottom \bull square bullet \cents ``cents'' sign \Dag superscripted dagger \careof c/o \sfrac slashed fraction \dash en-dash surrounded by thinspaces; only breakable AFTER \Dash em-dash, as above \hyph permit automatic hyphenation after an actual hyphen \slash "breakable" slash \nth for obtaining "1^{st}", "2^{nd}", 3^{rd}, etc. \tubissue gets \TUB followed by volume and issue numbers \xEdNote Editor's Note: \Review: Review: (for title of book review article) \reviewitem begin data for item being reviewed \revauth with one argument, author(s) of item being reviewed \revtitle with one argument, title of ... \revpubinfo with one argument, other info pertaining to ... \endreviewitem end data for item being reviewed \booktitle with one argument, format book title in text \Input \input with some other bookkeeping for case where multiple articles are put together \TBremark reminder to TUGboat editorial staff \TBremarkON \TBremarkOFF \pagexref used to write out page numbers to screen and \pagexrefON external files \pagexrefOFF \PageXref \PageXrefON \PageXrefOFF \xrefto used for symbolic cross-reference to other pages \xreftoON in TUGboat \xreftoOFF \TBdriver marks code which only takes effect when articles are run together in a driver file \signatureat items for signatures \signaturepercent \signaturemark \signaturewidth % ************************************************************************* % Change history Version Date Changes ------- --------- --------------------------------------------------- 1.136 4 Nov 95 added \MP for METAPOST 1.13f 15 Apr 94 added \@Rev[...] to permit variable text for reviews 1.13e 14 Mar 94 revised definition of \La to use actual width of A added \LaTeXe definition 1.13d 5 Jan 94 added {} to \TeX-{}-\Xet 1.13c 11 Nov 93 removed extraneous " from header added \AmSLaTeX, \CTAN, \ISSN 1.13b 4 Nov 93 added \hyphenation{Eijk-hout} 1.13a 18 Aug 93 corrected \nth to produce ordinal in current font 1.13 27 May 93 upgraded \nth based on algorithm by Donald Arseneau in comp.text.tex, 26 May 93 1.12 19 Feb 93 added \spacefactor1000 to all replacement text that ends with a capital letter, so that if these items end a sentence, there will be a normal end-of-sentence space removed \hbox from definitions of \TeX, etc.; no longer needed changed definition of \TeXXeT to use \XeT rather than unique dimensions installed new TUG address and phone number in header reformatted change history, similar to tugboat.sty 1.11c 29 Nov 92 added macros to format book review and related items for review articles added \SGML changed def of \UNIX to use \SMC rather than \smc 1.11b 20 Oct 92 added font code for \ISBN font ("big small caps") added \Textures as the current form 1.11a 6 Jun 92 added \drawoutlinebox 1.11 15 Mar 92 added \ttn and \TTN 1.10 8 Mar 92 added \AllTeX changed file name from .COM to .CMN to avoid objection that .COM files have a special significance on DOS and other operating systems added standard headers, prepared for archive installation 1.09 5 May 91 inserted large penalty at top of \makesignature to inhibit break between article and signature 1.08 24 Oct 90 modified signature slightly (took \medskip out of box) fixed bug in previous rendition of \@readFLN 1.07 16 Oct 90 added \TUBedit to facilitate editorial marking added \iinput variant from LaTeX; \input redefined now as with LaTeX added mechanism for local file names in Providence (\TUBfilename, \fileinput, etc.) \tugstyload@ defaults to plain if it's not defined 1.06 3 Aug 90 added \leavevmode to \@defaultsignature so that \everypar is not executed inside a group dash routines modified and corrected (to suppress insertion of discretionary node after -- and ---; and to allow hyphenation of ensuing word) changed \lDash to \Ldash and \rDash to \Rdash 1.05 29 Mar 90 added \lDash and \rDash for `parenthetical' dashing added \TP for TeX: The Program added \relax after file input of \Input added \relax before \ifmmode of \, 1.04 28 Feb 90 modified pagexref macros to work in both plain and latex styles (this should NOT affect authors) 1.03 26 Feb 90 removed s and adjusted definition of \slMF 1.02 25 Feb 90 added definitions of \plaintubissue, \latextubissue added definition of \tubissue 1.01 19 Feb 90 added \signaturewidth to allow for modification added \nth to obtain 1^{st}, etc. bibclean-3.07/bibclean.h0000444000156700015670000005377013660517100014025 0ustar beebebeebe/* WARNING: Do NOT edit this file. It was created automatically echo with the command "make bibclean.h" by beebe@eta.math.utah.edu echo in /u/sy/beebe/tex/bibclean/bibclean-3.05 on Mon May 18 08:40:00 MDT 2020 */ " Command-line switches may be abbreviated to a unique leading prefix,\n", " and letter case is not significant. All options are parsed before any\n", " input bibliography files are read, no matter what their order on the\n", " command line. Options that correspond to a yes/no setting of a flag\n", " have a form with a prefix \"no-\" to set the flag to no. For such\n", " options, the last setting determines the flag value used. That is\n", " significant when options are also specified in initialization files\n", " (see the INITIALIZATION FILES manual section).\n", "\n", " The leading hyphen that distinguishes an option from a filename may be\n", " doubled, for compatibility with GNU and POSIX conventions. Thus,\n", " -author and --author are equivalent.\n", "\n", " To avoid confusion with options, if a filename begins with a hyphen, it\n", " must be disguised by a leading absolute or relative directory path,\n", " e.g., /tmp/-foo.bib or ./-foo.bib.\n", "\n", " -author Display an author credit on the standard error unit, stderr,\n", " and then terminate with a success return code. Sometimes an\n", " executable program is separated from its documentation and\n", " source code; this option provides a way to recover from that.\n", "\n", " -copyleft Display copyright information on the standard error unit,\n", " stderr, and then terminate with a success return code.\n", "\n", " -copyright\n", " Display copyright information on the standard error unit,\n", " stderr, and then terminate with a success return code.\n", "\n", " -error-log filename\n", " Redirect stderr to the indicated file, which then contains\n", " all of the error and warning messages. This option is\n", " provided for those systems that have difficulty redirecting\n", " stderr.\n", "\n", " -help or -?\n", " Display a help message on stderr, giving a usage description,\n", " similar to this section of the manual pages, and then\n", " terminate with a success return code.\n", "\n", " -ISBN-file filename\n", " Provide an explicit ISBN-range initialization file. It is\n", " processed after any system-wide and job-wide ISBN\n", " initialization files found on the PATH (for VAX VMS,\n", " SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may\n", " override them. The ISBN initialization file name can be\n", " changed at compile time, or at run time through a setting of\n", " the environment variable BIBCLEANISBN, but defaults to\n", " .bibclean.isbn on UNIX, and bibclean.isb elsewhere. For\n", " further details, see the ISBN INITIALIZATION FILES manual\n", " section.\n", "\n", " -init-file filename\n", " Provide an explicit value pattern initialization file. It is\n", " processed after any system-wide and job-wide initialization\n", " files found on the PATH (for VAX VMS, SYS$SYSTEM) and\n", " BIBINPUTS search paths, respectively, and may override them.\n", " It in turn may be overridden by a subsequent file-specific\n", " initialization file. The initialization file name can be\n", " changed at compile time, or at run time through a setting of\n", " the environment variable BIBCLEANINI, but defaults to\n", " .bibcleanrc on UNIX, and to bibclean.ini elsewhere. For\n", " further details, see the INITIALIZATION FILES manual section.\n", "\n", " -keyword-file filename\n", " Provide an explicit keyword initialization file. It is\n", " processed after any system-wide and job-wide keyword\n", " initialization files found on the PATH (for VAX VMS,\n", " SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may\n", " override them. The keyword initialization file name can be\n", " changed at compile time, or at run time through a setting of\n", " the environment variable BIBCLEANKEY, but defaults to\n", " .bibclean.key on UNIX, and bibclean.key elsewhere. For\n", " further details, see the KEYWORD INITIALIZATION FILES manual\n", " section.\n", "\n", " -max-width nnn\n", " bibclean normally limits output line widths to 72 characters,\n", " and in the interests of consistency, that value should not be\n", " changed. Occasionally, special-purpose applications may\n", " require different maximum line widths, so this option\n", " provides that capability. The number following the option\n", " name can be specified in decimal, octal (starting with 0), or\n", " hexadecimal (starting with 0x). A zero or negative value is\n", " interpreted to mean unlimited, so -max-width 0 can be used to\n", " ensure that each field/value pair appears on a single line.\n", "\n", " When -no-prettyprint requests bibclean to act as a lexical\n", " analyzer, the default line width is unlimited, unless\n", " overridden by this option.\n", "\n", " When bibclean is prettyprinting, line wrapping is done only\n", " at a space. Consequently, a long non-blank character sequence\n", " may result in the output exceeding the requested line width.\n", "\n", " When bibclean is lexing, line wrapping is done by inserting a\n", " backslash-newline pair when the specified maximum is reached,\n", " so no line length ever exceeds the maximum.\n", "\n", " -[no-]align-equals\n", " With the positive form, align the equals sign in key/value\n", " assignments at the same column, separated by a single space\n", " from the value string. Otherwise, the equals sign follows\n", " the key, separated by a single space. Default: no.\n", "\n", " -[no-]brace-protect\n", " Protect uppercase and mixedcase words at brace-level zero\n", " with braces to prevent downcasing by some BibTeX styles.\n", " Default: yes.\n", "\n", " -[no-]check-values\n", " With the positive form, apply heuristic pattern matching to\n", " field values in order to detect possible errors (e.g., ``year\n", " = \"192\"'' instead of ``year = \"1992\"''), and issue warnings\n", " when unexpected patterns are found.\n", "\n", " That checking is usually beneficial, but if it produces too\n", " many bogus warnings for a particular bibliography file, you\n", " can disable it with the negative form of this option.\n", " Default: yes.\n", "\n", " -[no-]debug-match-failures\n", " With the positive form, print out a warning when a value\n", " pattern fails to match a value string.\n", "\n", " That is helpful in debugging new patterns, but because the\n", " output can be voluminous, you should use this option only\n", " with small test files, and initialization files that\n", " eliminate all patterns apart from the ones that you are\n", " testing. Default: no.\n", "\n", " -[no-]delete-empty-values\n", " With the positive form, remove all field/value pairs for\n", " which the value is an empty string. That is helpful in\n", " cleaning up bibliographies generated from text editor\n", " templates. Compare this option with -[no-]remove-OPT-prefixes\n", " described below. Default: no.\n", "\n", " -[no-]file-position\n", " With the positive form, give detailed file position\n", " information in warning and error messages. Default: no.\n", "\n", " -[no-]fix-accents\n", " With the positive form, normalize TeX accents in annotes,\n", " authors, booktitles, editors, notes, remarks, and titles.\n", " Default: no.\n", "\n", " -[no-]fix-braces\n", " With the positive form, normalize bracing in annotes,\n", " authors, booktitles, editors, notes, remarks, and titles, by\n", " removing unnecessary levels of braces. Default: no.\n", "\n", " -[no-]fix-degrees\n", " With the positive form, remove spaces in author/editor fields\n", " inside braces after letter-ending periods. That makes\n", " reductions from J. J. {Thomson, M. A., F. R. S.}, Frederick\n", " {Soddy, B. A. (Oxon.)}, and John A. {Cable, M. A., M. Ed.,\n", " Dipl. Deutsch (Marburg), A. L. C. M.} to J. J. {Thomson,\n", " M.A., F.R.S.}, Frederick {Soddy, B.A. (Oxon.)}, and John A.\n", " {Cable, M.A., M.Ed., Dipl.Deutsch (Marburg), A.L.C.M.},\n", " respectively.\n", "\n", " In journals in the humanities and history of science, as well\n", " as in some scientific journals until well into the 20th\n", " Century, academic, honorary, and professional titles and\n", " degrees are commonly attached to personal names. Even though\n", " modern publishing practice avoids such decorations, for\n", " accuracy, bibliography entries should preferably retain them.\n", " Journal typographical practice generally follows the\n", " reductions described here.\n", "\n", " -[no-]fix-font-changes\n", " With the positive form, supply an additional brace level\n", " around font changes in titles to protect against downcasing\n", " by some BibTeX styles. Font changes that already have more\n", " than one level of braces are not modified.\n", "\n", " For example, if a title contains the Latin phrase {\\em\n", " Dictyostelium discoideum} or {\\em {D}ictyostelium\n", " discoideum}, then downcasing incorrectly converts the phrase\n", " to lower-case letters. Most BibTeX users are surprised that\n", " bracing the initial letters does not prevent the downcase\n", " action. The correct coding is {{\\em Dictyostelium\n", " discoideum}}. However, there are also legitimate cases where\n", " an extra level of bracing wrongly protects from downcasing.\n", " Consequently, bibclean normally does not supply an extra\n", " level of braces, but if you have a bibliography where the\n", " extra braces are routinely missing, you can use this option\n", " to supply them.\n", "\n", " If you think that you need this option, it is strongly\n", " recommended that you apply bibclean to your bibliography file\n", " with and without -fix-font-changes, then compare the two\n", " output files to ensure that extra braces are not being\n", " supplied in titles where they should not be present. You\n", " must decide which of the two output files is the better\n", " choice, then repair the incorrect title bracing by hand.\n", "\n", " Because font changes in titles are uncommon, except for cases\n", " of the type that this option is designed to correct, it\n", " should do more good than harm. Default: no.\n", "\n", " -[no-]fix-initials\n", " With the positive form, insert a space after a period\n", " following author initials. Default: yes.\n", "\n", " -[no-]fix-math\n", " With the positive form, improve readability of math mode in\n", " titles by inserting spaces around operators, deleting other\n", " unnecessary space, and removing braces around single-\n", " character subscripts and superscripts. Default: no.\n", "\n", " -[no-]fix-names\n", " With the positive form, reorder author and editor name lists\n", " to remove commas at brace level zero, placing first names or\n", " initials before last names. Default: yes.\n", "\n", " -[no-]German-style\n", " With the positive form, interpret quote characters [\"] inside\n", " braced value strings at brace level 1 according to the\n", " conventions of the TeX style file german.sty, which overloads\n", " quote to simplify input and representation of German umlaut\n", " accents, sharp-s (es-zet), ligature separators, invisible\n", " hyphens, raised/lowered quotes, French guillemets, and\n", " discretionary hyphens. Recognized character combinations are\n", " braced to prevent BibTeX from interpreting the quote as a\n", " string delimiter.\n", "\n", " Quoted strings receive no special handling from this option,\n", " and because German nouns in titles must anyway be protected\n", " from the downcasing operation of most BibTeX bibliography\n", " styles, German value strings that use the overloaded quote\n", " character can always be entered in the form \"{...}\", without\n", " the need to specify this option at all.\n", "\n", " Default: no.\n", "\n", " -[no-]keep-linebreaks\n", " Normally, line breaks inside value strings are collapsed into\n", " a single space, so that long value strings can later be\n", " broken to provide lines of reasonable length.\n", "\n", " With the positive form, linebreaks are preserved in value\n", " strings. If -max-width is set to zero, this preserves the\n", " original line breaks. Spacing outside value strings remains\n", " under bibclean's control, and is not affected by this option.\n", "\n", " Default: no.\n", "\n", " -[no-]keep-parbreaks\n", " With the positive form, preserve paragraph breaks (either\n", " formfeeds, or lines containing only spaces) in value strings.\n", " Normally, paragraph breaks are collapsed into a single space.\n", " Spacing outside value strings remains under bibclean's\n", " control, and is not affected by this option. Default: no.\n", "\n", " -[no-]keep-preamble-spaces\n", " With the positive form, preserve all whitespace in\n", " @Preamble{...} entries. Default: no.\n", "\n", " -[no-]keep-spaces\n", " With the positive form, preserve all spaces in value strings.\n", " Normally, multiple spaces are collapsed into a single space.\n", " This option can be used together with -keep-linebreaks,\n", " -keep-parbreaks, and -max-width 0 to preserve the form of\n", " value strings while still providing syntax and value\n", " checking. Spacing outside value strings remains under\n", " bibclean's control, and is not affected by this option.\n", " Default: no.\n", "\n", " -[no-]keep-string-spaces\n", " With the positive form, preserve all whitespace in\n", " @String{...} entries. Default: no.\n", "\n", " -[no-]parbreaks\n", " With the negative form, a paragraph break (either a formfeed,\n", " or a line containing only spaces) is not permitted in value\n", " strings, or between field/value pairs. That may be useful to\n", " quickly trap runaway strings arising from mismatched\n", " delimiters. Default: yes.\n", "\n", " -[no-]prettyprint\n", " Normally, bibclean functions as a prettyprinter. However,\n", " with the negative form of this option, it acts as a lexical\n", " analyzer instead, producing a stream of lexical tokens. See\n", " the LEXICAL ANALYSIS manual section for further details.\n", " Default: yes.\n", "\n", " -[no-]print-ISBN-table\n", " With the positive form, print the ISBN-range table on stderr,\n", " then terminate with a success return code.\n", "\n", " That action is taken after all command-line options are\n", " processed, and before any input files are read (other than\n", " those that are values of command-line options).\n", "\n", " The format of the output ISBN-range table is acceptable for\n", " input as an ISBN initialization file (see the ISBN\n", " INITIALIZATION FILES manual section). Default: no.\n", "\n", " -[no-]print-keyword-table\n", " With the positive form, print the keyword initialization\n", " table on stderr, then terminate with a success return code.\n", "\n", " That action is taken after all command-line options are\n", " processed, and before any input files are read (other than\n", " those that are values of command-line options).\n", "\n", " The format of the output table is acceptable for input as a\n", " keyword initialization file (see the KEYWORD INITIALIZATION\n", " FILES manual section). Default: no.\n", "\n", " -[no-]print-patterns\n", " With the positive form, print the value patterns read from\n", " initialization files as they are added to internal tables.\n", " Use this option to check newly-added patterns, or to see what\n", " patterns are being used.\n", "\n", " When bibclean is compiled with native pattern-matching code\n", " (the default), those patterns are the ones that are used in\n", " checking value strings for valid syntax, and all of them are\n", " specified in initialization files, rather than hard-coded\n", " into the program. For further details, see the\n", " INITIALIZATION FILES manual section. Default: no.\n", "\n", " -[no-]quiet\n", " This option is the opposite of -[no-]warning; it exists for\n", " user convenience, and for compatibility with other programs\n", " that use -q for quiet operation, without warning messages.\n", "\n", " -[no-]read-init-files\n", " With the negative form, suppress loading of system-, user-,\n", " and file-specific initialization files. Initializations then\n", " come only from those files explicitly given by -init-file\n", " filename options. Default: yes.\n", "\n", " -[no-]remove-OPT-prefixes\n", " With the positive form, remove the ``OPT'' prefix from each\n", " field name where the corresponding value is not an empty\n", " string. The prefix ``OPT'' must be entirely in upper-case to\n", " be recognized.\n", "\n", " This option is for bibliographies generated with the help of\n", " the GNU Emacs BibTeX editing support, which generates\n", " templates with optional fields identified by the ``OPT''\n", " prefix. Although the function M-x bibtex-remove-OPT normally\n", " bound to the keystrokes C-c C-o does the job, users often\n", " forget, with the result that BibTeX does not recognize the\n", " field name, and ignores the value string. Compare this\n", " option with -[no-]delete-empty-values described above.\n", " Default: no.\n", "\n", " -[no-]scribe\n", " With the positive form, accept input syntax conforming to the\n", " Scribe document system. The output is converted to conform\n", " to BibTeX syntax. See the SCRIBE BIBLIOGRAPHY FORMAT manual\n", " section for further details. Default: no.\n", "\n", " -[no-]trace-file-opening\n", " With the positive form, record in the error log file the\n", " names of all files that bibclean attempts to open. Use this\n", " option to identify where initialization files are located.\n", " Default: no.\n", "\n", " -[no-]warnings\n", " With the positive form, allow all warning messages. The\n", " negative form is not recommended because it may mask problems\n", " that should be repaired. Default: yes.\n", "\n", " -output-file filename\n", " Supply an alternate output file to replace stdout. If the\n", " filename cannot be opened for output, execution terminates\n", " immediately with a nonzero exit code.\n", "\n", " -version Display the program version number on stderr, and then\n", " terminate with a success return code. That includes an\n", " indication of who compiled the program, the host name on\n", " which it was compiled, the time of compilation, and the type\n", " of string-value matching code selected, when that information\n", " is available to the compiler.\n", "\n", (const char*)NULL, bibclean-3.07/configure.sed0000644000156700015670000000065407005341126014565 0ustar beebebeebes/^char \$ac_func();/#if defined(__cplusplus) || defined(c_plusplus)\ #include \ #include \ #else\ char \$ac_func();\ #endif/ s/^\$ac_func();/#if defined(__cplusplus) || defined(c_plusplus)\ void (*pfun)(void) = (void (*)(void))\$ac_func;\ #else\ \$ac_func();\ #endif/ s/exit *(/return (/ s/CFLAGS=" *-g */CFLAGS="/ s/CFLAGS=" *-O2 */CFLAGS="/ s/CXXFLAGS=" *-g */CXXFLAGS="/ s/CXXFLAGS=" *-O2 */CXXFLAGS="/ bibclean-3.07/configure.ac0000664000156700015670000002040514162071263014377 0ustar beebebeebednl Process this file with autoconf to produce a configure script. AC_INIT([bibclean],[3.07],[Nelson H. F. Beebe ]) PACKAGE_DATE="26-Dec-2021" AC_CONFIG_SRCDIR(bibclean.c) AH_TEMPLATE(PACKAGE_BUGREPORT, [Package bug-reporting address]) AH_TEMPLATE(PACKAGE_DATE, [Package date]) AH_TEMPLATE(PACKAGE_NAME, [Package name]) AH_TEMPLATE(PACKAGE_STRING, [Package string]) AH_TEMPLATE(PACKAGE_TARNAME, [Package tarname]) AH_TEMPLATE(PACKAGE_VERSION, [Package version]) AC_DEFINE_UNQUOTED(PACKAGE_BUGREPORT, "$PACKAGE_BUGREPORT") AC_DEFINE_UNQUOTED(PACKAGE_DATE, "$PACKAGE_DATE") AC_DEFINE_UNQUOTED(PACKAGE_NAME, "$PACKAGE_NAME") AC_DEFINE_UNQUOTED(PACKAGE_STRING, "$PACKAGE_STRING") AC_DEFINE_UNQUOTED(PACKAGE_TARNAME, "$PACKAGE_TARNAME") AC_DEFINE_UNQUOTED(PACKAGE_VERSION, "$PACKAGE_VERSION") AC_CONFIG_HEADERS([config.h:config.hin]) dnl Checks for support programs AC_CHECK_PROGS(ANTIC, antic) AC_CHECK_PROGS(AUTOCONF, autoconf) AC_CHECK_PROGS(AUTOHEADER, autoheader) AC_CHECK_PROGS(AWK, mawk nawk gawk bawk awk) AC_CHECK_PROGS(BIBTEX, bibtex) AC_CHECK_PROGS(CAT, cat) AC_CHECK_PROGS(CHECKSUM, checksum) AC_CHECK_PROGS(CHMOD, chmod) AC_CHECK_PROGS(CMP, cmp) dnl We want a copy command that has the -p (preserve time stamp) flag, dnl but older cp implementations lack it. scp and rcp always have it, dnl but some sites disable rcp when scp is installed, so we must use dnl scp if it is available. AC_CHECK_PROG(CP, scp,scp -p) AC_CHECK_PROG(CP, rcp,rcp -p) AC_CHECK_PROG(CP, cp,cp) AC_CHECK_PROGS(CPPCHECK, cppcheck) AC_CHECK_PROGS(CUT, cut) AC_CHECK_PROGS(DATE, date) AC_CHECK_PROGS(DIFF, diff) AC_CHECK_PROGS(DISTILL, distill ps2pdf) AC_CHECK_PROGS(DITROFF, ditroff groff) AC_CHECK_PROGS(ETAGS, etags) AC_CHECK_PROGS(EXPR, expr) AC_CHECK_PROGS(FLAWFINDER, flawfinder) AC_CHECK_PROGS(GREP, egrep grep) AC_CHECK_PROGS(GZIP, gzip compress) AC_CHECK_PROGS(HTMLNCHECK, [html-ncheck echo]) AC_CHECK_PROGS(HTMLPRETTY, [html-pretty echo]) AC_CHECK_PROGS(ITS4, its4) AC_CHECK_PROGS(JAR, jar tar) AC_CHECK_PROGS(LATEX, latex2e latex) AC_CHECK_PROGS(LINT, lint) AC_CHECK_PROGS(LN, ln) AC_CHECK_PROGS(LS, ls) AC_CHECK_PROGS(MAN2HTML, man2html) AC_CHECK_PROGS(MKDIR, mkdir) AC_CHECK_PROGS(MV, mv) AC_CHECK_PROGS(NROFF, nroff) AC_CHECK_PROGS(RATS, rats) AC_CHECK_PROGS(RM, rm) AC_CHECK_PROGS(SED, sed) AC_CHECK_PROGS(SPLINT, [splint lclint]) AC_PATH_PROG(SHELL, sh) AC_CHECK_PROGS(STRIP, strip) AC_CHECK_PROGS(TAR, gtar gnutar tar) AC_CHECK_PROGS(TEST, test) AC_CHECK_PROGS(TOUCH, touch) AC_CHECK_PROGS(TR, tr) AC_CHECK_PROGS(UNO, uno) AC_CHECK_PROGS(UNZIP, unzip) AC_CHECK_PROGS(WINE, wine) AC_CHECK_PROGS(ZIP, zip false) AC_CHECK_PROGS(ZOO, zoo false) dnl Checks for NeXT -posix AC_MSG_CHECKING(whether we have NeXT system, and so need -posix) if test -d /NextAdmin then CFLAGS=-posix AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi dnl Checks for compiler AC_PROG_CC dnl Checks for ALL (IBM RS/6000 c89 needs _ALL_SOURCE when ioctl.h is dnl used with winsize) AC_MSG_CHECKING(whether we need _ALL_SOURCE) all=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #include struct winsize w; ]], [[]])],[],[all=maybe]) if test $all = maybe ; then AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #define _ALL_SOURCE #include #include struct winsize w; ]], [[]])],[AC_DEFINE(_ALL_SOURCE) all=yes],[]) fi if test $all = maybe ; then all=no ; fi AC_MSG_RESULT($all) dnl Checks for POSIX (HP-UX c89 needs _POSIX_SOURCE when stat.h is used) AC_MSG_CHECKING(whether we need _POSIX_SOURCE) posix=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #include struct stat buffer; ]], [[]])],[],[posix=maybe]) if test $posix = maybe ; then AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #define _POSIX_SOURCE #include #include struct stat buffer; ]], [[]])],[AC_DEFINE(_POSIX_SOURCE) posix=yes],[]) fi if test $posix = maybe ; then posix=no ; fi AC_MSG_RESULT($posix) dnl Checks for Standard C and C++ function declarations. AC_MSG_CHECKING(for Standard C and C++ function declarations) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[void foo(void){} int bar(int x, float y, char z){return 1;}]], [[]])],[AC_MSG_RESULT(yes) AC_DEFINE(HAVE_STDC)],[AC_MSG_RESULT(no)]) dnl Checks for SunOS C++ free() argument type bug AC_MSG_CHECKING(for SunOS C++ free() argument type bug) freebug=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[void *p; p = (void*)0; free(p)]])],[],[freebug=maybe]) if test $freebug = maybe ; then AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[void *p; p = (void*)0; free((char*)p)]])],[AC_DEFINE(FREE_CAST_IS_CHAR_STAR) freebug=yes],[]) fi if test $freebug = maybe ; then freebug=no ; fi AC_MSG_RESULT($freebug) dnl Checks for Standard C alert character AC_MSG_CHECKING(for Standard C alert character) havealert=yes AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(){return((int)'\a'-007);}]])],[havealert=yes AC_DEFINE(HAVE_ALERT_CHAR)],[havealert=no],[havealert=no]) AC_MSG_RESULT($havealert) dnl Checks for programs. dnl Checks for libraries. dnl Checks for header file conflicts. For the lcc compiler on at dnl least Compaq/DEC Alpha OSF/1 4.0, conflicts with dnl , sigh... NB: This test must come BEFORE the dnl AC_CHECK_HEADERS() test below! AC_MSG_CHECKING(for compatibility) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include #include ]], [[]])],[AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no) ac_cv_header_sys_param_h=no}]) dnl Checks for header files. dnl m4_warn([obsolete], dnl [The preprocessor macro `STDC_HEADERS' is obsolete. dnl Except in unusual embedded environments, you can safely include all dnl ISO C90 headers unconditionally.])dnl # Autoupdate added the next two lines to ensure that your configure # script's behavior did not change. They are probably safe to remove. AC_CHECK_INCLUDES_DEFAULT AC_PROG_EGREP AC_CHECK_HEADERS(conio.h ctype.h descrip.h errno.h fcntl.h io.h \ iodef.h jpidef.h libc.h limits.h osfcn.h pwd.h regex.h regexp.h \ rms.h sgtty.h ssdef.h stat.h stdbool.h stdio.h stdlib.h string.h sys/ioctl.h \ sys/param.h sys/stat.h sys/types.h termio.h termios.h time.h \ tt2def.h ttdef.h types.h unistd.h unixio.h ) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_MODE_T AC_TYPE_SIZE_T AC_STRUCT_TM dnl Checks for bool and/or _Bool AC_CHECK_TYPES(_Bool,,,[#include ]) dnl Checks for library functions. AC_PROG_GCC_TRADITIONAL AC_FUNC_UTIME_NULL AC_REPLACE_FUNCS(strtol) AC_CHECK_FUNCS(getcwd getpwnam getwd re_comp strcspn strdup strspn strstr strtod strtol) AC_CHECK_DECLS([fileno]) dnl This does not work properly for C++: dnl AC_CHECK_FUNCS(isatty) AC_MSG_CHECKING(for isatty) AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #if defined(HAVE_STDIO_H) #include #endif #if defined(HAVE_STDLIB_H) #include #endif #if defined(HAVE_UNISTD_H) #include #endif ]], [[(void)isatty(1)]])],[AC_MSG_RESULT(yes) AC_DEFINE(HAVE_ISATTY)],[AC_MSG_RESULT(no)]) AC_MSG_CHECKING(for ioctl prototype) AC_EGREP_CPP([ioctl[ ]*[(]], [ #include #include ], [ AC_DEFINE(HAVE_IOCTL_PROTOTYPE) AC_MSG_RESULT(yes) ], [ AC_MSG_RESULT(no) ]) dnl Remove -g from CFLAGS if we are compiling with lcc because it dnl produces bad debug symbol tables on Sun Solaris 2.x. if test "$CC" = "lcc" then CFLAGS="`echo $CFLAGS | sed -e 's/-g //g' -e 's/ -g$//g' -e 's/^-g$//'`" fi AC_SUBST(VM) dnl Support for OpenBSD 5.9 and later pledge() call to guarantee dnl minimal privileges needed to run a program AC_CHECK_HEADERS(sys/pledge.h) test "x$ac_cv_exeext" = "x.exe" && VM='$(WINE)' AH_TEMPLATE(FREE_CAST_IS_CHAR_STAR,[Define if free() is of type char*.]) AH_TEMPLATE(HAVE_ALERT_CHAR,[Define if \a is recognized in C strings.]) AH_TEMPLATE(HAVE_IOCTL_PROTOTYPE,[Define if the compiler can see an ioctl() prototype.]) AH_TEMPLATE(HAVE_ISATTY,[Define if isatty() is available.]) AH_TEMPLATE(HAVE_STDC,[Define if Standard C and C++ function declarations are supported.]) AH_TEMPLATE(_ALL_SOURCE,[Define if needed to expose winsize in ioctl.h.]) AH_TEMPLATE(_POSIX_SOURCE,[Define if needed with stat.h.]) AH_BOTTOM([ #define SCREEN_LINES 24 #include ]) # Old autoconf style: AC_CONFIG_FILES([Makefile]) AC_OUTPUT # New autoconf style: AC_CONFIG_FILES(Makefile) AC_OUTPUT bibclean-3.07/vms/0000775000156700015670000000000014431412256012715 5ustar beebebeebebibclean-3.07/vms/alpha/0000775000156700015670000000000014431412256014002 5ustar beebebeebebibclean-3.07/vms/alpha/vmsmake.com0000644000156700015670000000357505455303531016156 0ustar beebebeebe$ !===================================================================== $ ! Command file to build bibclean on DEC Alpha OpenVMS 1.5 $ ! [07-Oct-1993] $ !===================================================================== $ CFLAGS :== "/DEBUG=ALL /NOOPTIMIZE /WARNING /STANDARD=PORTABLE" $ CFLAGS :== " /OPTIMIZE /WARNING /STANDARD=PORTABLE" $ ! We use /noshareable so the .exe file is independent of VMS release $ ! numbers $ LFLAGS := "/debug /noshareable" $ LFLAGS := "/noshareable" $ write sys$error "============================================================" $ write sys$error "Compiling bibclean.c: Expect 0 messages" $ cc 'CFLAGS' bibclean.c $ write sys$error "============================================================" $ write sys$error "Compiling fndfil.c: Expect 0 messages" $ cc 'CFLAGS' fndfil.c $ write sys$error "============================================================" $ write sys$error "Compiling match.c: Expect 0 messages" $ cc 'CFLAGS' match.c $ write sys$error "============================================================" $ write sys$error "Compiling romtol.c: Expect 0 messages" $ cc 'CFLAGS' romtol.c $ write sys$error "============================================================" $ write sys$error "Compiling vaxvms.c: Expect 0 messages" $ cc 'CFLAGS' vaxvms.c $ write sys$error "============================================================" $ write sys$error "Compiling vmswild.c: Expect 0 messages" $ ! NB: It is ESSENTIAL to have /standard=vaxc here, overriding $ ! /standard=portable $ cc 'CFLAGS' /standard=vaxc vmswild.c $ write sys$error "============================================================" $ write sys$error "Linking bibclean: Expect 3 %W messages about memchr(), memcmp(), and system()--ignore them" $ link /exe=bibclean.exe 'LFLAGS' - bibclean.obj, fndfil.obj, match.obj, romtol.obj, - vaxvms.obj, vmswild.obj, - sys$library:vaxcrtl.olb/lib bibclean-3.07/vms/alpha/vmsclean.com0000644000156700015670000000076305455303244016320 0ustar beebebeebe$ !===================================================================== $ ! Cleanup after a successful build and test, leaving only the $ ! sources, test files, and DEC Alpha OpenVMS executable. $ ! [08-Oct-1993] $ !===================================================================== $ purge *.* $ delete *.i.* $ delete *.obj.* $ delete test*.aux.* $ delete test*.bi2.* $ delete test*.bib.* $ delete test*.blg.* $ delete test*.dvi.* $ delete test*.er2.* $ delete test*.err.* $ delete test*.log.* bibclean-3.07/vms/alpha/recomp.com0000644000156700015670000000064305455303225015771 0ustar beebebeebe$ !============================================================ $ ! Compile a bibclean file on DEC Alpha OpenVMS. $ ! [08-Oct-1993] $ !============================================================ $ set verify $ set noon $ !============================================================ $ show time $ CFLAGS :== "/DEBUG=ALL /NOOPTIMIZE /WARNING /STANDARD=PORTABLE" $ show symbol CFLAGS $ cc 'CFLAGS' 'p1'.c $ set noverify bibclean-3.07/vms/alpha/bibclean.exe0000644000156700015670000030600005455304427016247 0ustar beebebeebeh(F;0@LF;BIBCLEANV1.0A10-62$> $N "$ I$ $J$( 8.  DECC$SHR_0014 LIBRTL_0014" LIBOTS_001@^6SYS$PUBLIC_VECTORS_001??H 'D?0@< x P2%s %s 00@CTYP| P0(0p %ld "# line @ `ءء\%03o" L0X0 0H 220@< Entry ] ] output [2 Current Value 0_P @'&Paccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc```cccc`cccccccccca0K0 . 20`` %%K30X@< 830c0 00e0 00 0pGP 0@< }h330f` xfxfxfxfxfhhhhhhhhhhhhhhhhhhxfhhhhf0@D@| E0EEEEHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGEHGHGHGHGDE0EEEEHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGHGEHGHGHGHGD0(@< ,340 h400 &"#%'(),={}0o` 5H54440P #00 0x0@| x&0@< 0P x50P 0@< 0P &""OPT=0'00 5 # 0HC0 hChChChChC D D D D D D D D D D D D D D D D D DhC D D D DC00 0hhp 550m@| (60 o0 0$` X6opt66603P 0770B0 H7{0K0 0*P 7708 P PreambleIncludeString 880@< P8@0I@ 800 0x6 "comment"BeginComment@Comment{8"Comment"end0X@ 8(9P90X0 9@ 0` P 90P| 990|? H0~X~~~~~ !0:0p G`:@(H0 :%s%.*s00 : FAILED:0 -? r(%=: 0x`  BIBINPUTSperror() says.ini1stdoutBIBCLEANEXT`'0ЂpDIN 0 stdinBIBCLEANINIbibclean.ini :SYS$SYSTEM-0`0 0 no-0  0x 00  0  0  0X  0  0ȏ  0  0  0 00  0  0  0X  0  080 w;(;0  0  0` 00Yp \it\em\bf\rm\tt\sl\sf0U  0X0M` &IVX&0PS` and "0Pp # "" # "" # # ""0@ P;0x  0  0P  0X@| 0H p 0` ?????????.0Pp 0 `             ???????????0   0Y0@CTYP &0(`CTYP (@':] ;,|&'p'&&8H,0N@00x0CTYP &p;*80ؼлh00@CTYP< (F<&0 0H@| 0 P) ;0x '@;F0P 0 P00 `0 0 USER0` 008@| & 0 0XP 00p0p0000 00 0@| 00@0CTYP @ $0@MTYP< P 08@MTYP| &0@MTYP .0 0(@| &'.][&0'ԆG0 P` `'$;; ʂ00 ...00@ ;< %s %s %s (%s). p08 LNM$FILE_DEV..P<0<<SYS$OUTP, `<'%s: No match. outinMeSYS$INPUK0(DIN w @SYS$ERROR<rUT:Internal error: too many output characters deleted output byte=%ld line=%ld column=%2ld input byte=%ld line=%ld column=%2ld File positions: input [%s "%s", line %ld: %s. %s%s "%s", line %ld: %s. Pushback buffer overflow: characters lostExpected closing brace or parenthesis in entry ``@%e{%k,''Non-zero brace level after @name{...} processed. Last key = ``%k''Expected comma after last field ``%f''Non-zero brace level after @name{...} processed. Last entry = ``@%e{%k,''String length exceeds standard BibTeX limit for ``%f'' entryExpected BibTeX value string for field ``%f''End-of-file in quoted stringEnd-of-file in braced stringBibTeX string too long for field ``%f''Unexpected paragraph break for field ``%f''Unexpected value in ``%f = %v''Value too long for field ``%f''Scribe string too long for field ``%f''Expected Scribe value string for field ``%f''Scribe number string too long for field ``%f''Expected "=" after field ``%f''Expected Scribe separator "=", "/", or " " for field ``%f''Entry field name too longNon-alphabetic character begins a field nameUnexpected citation key ``%k''Citation key too longExpected open brace or parenthesis. Last entry = ``@%e{%k,''Braced literal string too long for entry ``%e''@ begins line, but brace level is not zero after entry ``@%e{%k,''@entry_name too longNon-alphabetic character begins an entry nameExpected @name{...} after entry ``@%e{%k,''Expected Scribe open delimiter, one of { [ ( < ' " ` for field ``%f''Non-zero brace level at end-of-filefile=[%s] field=[%-12s] pattern=[%s] message[%s] file=[%s] field=[%-12s] pattern=[%s] file=[%s] field=[%-12s] existing patterns discarded Out of string memoryOut of memory for pattern table spaceOut of memory for pattern tables%s Out of memory for pattern name [%s] -- pattern ignored %s Bad line [%s] in initialization file [%s] More? f)orward b)ackward d)own e)nd q)uit r)efresh t)op u)p Unrecognized option switch: %s open file [%s]%s %s Ignoring open failure on file [%s] -- using stderr instead %s cannot open error log file [%s]Suspicious year in ``%f = %v'' !#()*+,-./:;?[]~%02d-%3s-19%02d %02d:%02d:%02d23-OCT-1907 12:34:56%s: Invalid file wildcard. Can't open "%s" as `std%s'. to Un*x-style file nameWarning: Can't reassignWildcards (%s) illegal in redirection%s. Invalid null %sput redirection%s. (`>', `>>', `>&', or `>>&') 2dUNKNOWNABBREVATCOMMACOMMENTENTRYEQUALSFIELDINCLUDEINLINEKEYLBRACELITERALNEWLINERBRACESHARPSPACESTRINGVALUEJanuaryjanfebMarchmarAprilaprMaymayJunejunJulyjulAugustaugsepOctoberoctnovdecJan.janFeb.febMar.marApr.aprJun.junJul.julAug.augSep.sepSept.sepOct.octNov.novDec.decJanjanFebfebMarmarApraprJunjunJuljulAugaugSepsepSeptsepOctoctNovnovDecdecchaptermonthnumberpagesvolumeyear{[(<'"`}])>'"`JrJr.SrSr.SJS.J.S. J.?authorhelpscribeversionInbookInBookisbnISBNissnISSNlccnLCCNTT: USA authorchapterISBNISSNmonthnumberpagesvolumeyearauthoreditormonthpagestitle on HPREAMBLEFebruarySeptemberNovemberDecembercheck-valuesdelete-empty-valueserror-logfile-positionfix-font-changesfix-initialsfix-namesinit-filemax-widthno-check-valuesno-delete-empty-valuesno-file-positionno-fix-font-changesno-fix-initialsno-fix-namesno-parbreaksno-prettyprintno-print-patternsno-read-init-filesno-remove-OPT-prefixesno-scribeno-trace-file-openingno-warningsparbreaksprettyprintprint-patternsread-init-filesremove-OPT-prefixestrace-file-openingwarningsDeathesisDEAthesisIncollectionInCollectionInproceedingsInProceedingsMastersthesisMastersThesisPhdthesisPhdThesisTechreportTechReportansi-standard-numberANSI-standard-numberieee-standard-numberIEEE-standard-numberiso-standard-numberISO-standard-numberno-print-patternsno-read-init-filesno-trace-file-openingprint-patternsread-init-filestrace-file-openingAuthor: Nelson H. F. Beebe Center for Scientific Computing Department of Mathematics University of Utah Salt Lake City, UT 84112 Tel: +1 801 581 5254 FAX: +1 801 581 4801 Email: Usage: [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]par-breaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile Command-line switches may be abbreviated to a unique leading to no. For such options, the last setting determines the flag -author Display an author credit on the standard error unit, from its documentation and source code; this option provides a way to recover from that. -error-log filename contain all of the error and warning messages. This redirecting stderr. -help or -? Display a help message on stderr, giving a usage -init-file filename initialization files found on the PATH (for VAX VMS, subsequent file-specific initialization file. The or at run time through a setting of the environment variable BIBCLEANINI, but defaults to .bibcleanrc on UNIX, and to bibclean.ini elsewhere. For further -max-width nnn bibclean normally limits output line widths to 72 value should not be changed. Occasionally, special- number following the option name can be specified in decimal, octal (starting with 0), or hexadecimal (starting with 0x). A zero or negative value is single line. When -no-prettyprint requests bibclean to act as a unless overridden by this option. done only at a space. Consequently, a long non-blank requested line width. When bibclean is lexing, line wrapping is done by the maximum. -[no-]check-values warnings when unexpected patterns are found. option. Default: yes. -[no-]delete-empty-values prefixes described below. Default: no. -[no-]file-position With the positive form, give detailed file position -[no-]fix-font-changes around font changes in titles to protect against downcasing by some BibTeX styles. Font changes that already have more than one level of braces are not modified. Dictyostelium Discoideum} or {\em {D}ictyostelium surprised that bracing the initial letters does not Dictyostelium Discoideum}}. However, there are also missing, you can use this option to supply them. two output files to ensure that extra braces are not being supplied in titles where they should not be title bracing by hand. cases of the type which this option is designed to -[no-]fix-initials following author initials. Default: yes. -[no-]fix-names names or initials before last names. Default: yes. -[no-]par-breaks With the negative form, a paragraph break (either a formfeed, or a line containing only spaces) is not This may be useful to quickly trap runaway strings arising from mismatched delimiters. Default: yes. -[no-]prettyprint Normally, bibclean functions as a prettyprinter. as a lexical analyzer instead, producing a stream of for further details. Default: yes. -[no-]print-patterns or to see what patterns are being used. no. -[no-]read-init-files With the negative form, suppress loading of system-, user-, and file-specific initialization files. Initializations will come only from those files explicitly given by -init-file filename options. Default: yes. -[no-]remove-OPT-prefixes upper-case to be recognized. prefix. Although the function M-x bibtex-remove-OPT Compare this option with -[no-]delete-empty-values described above. Default: no. -[no-]scribe -[no-]trace-file-opening located. Default: no. -[no-]warnings negative form is not recommended since it may mask problems that should be repaired. Default: yes. the host name on which it was compiled, the time of selected, when that information is available to the compiler. Usage: [ -author ] [ -error-log filename ] [ -help ] [ '-?' ] [ -init-file filename ] [ -max-width width ] [ -[no-]check-values ] [ -[no-]delete-empty-values ] [ -[no-]file-position ] [ -[no-]fix-font-changes ] [ -[no-]fix-initials ] [ -[no-]fix-names ] [ -[no-]par-breaks ] [ -[no-]prettyprint ] [ -[no-]print-patterns ] [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ] [ -[no-]scribe ] [ -[no-]trace-file-opening ] [ -[no-]warnings ] [ -version ] [ outfile bibclean Version 2.08 [24-Sep-1993]CompiledOct 8 199309:32:04 with native pattern matching (08@HPX`hpx (08@HPX`hpx(8HXprefix, and letter case is not significant. All options are parsed before any input bibliography files are read, no matter what their order on the command line. Options that correspond to a yes/no setting of a flag have a form with a prefix "no-" to set the flag value used. This is significant when options are also specified in initialization files (see the INITIALIZATION FILES manual section). stderr. Sometimes an executable program is separated Redirect stderr to the indicated file, which will then option is provided for those systems that have difficulty description, similar to this section of the manual pages. Provide an explicit value pattern initialization file. It will be processed after any system-wide and job-wide SYS$SYSTEM) and BIBINPUTS search paths, respectively, and may override them. It in turn may be overridden by a initialization file name can be changed at compile time, details, see the INITIALIZATION FILES manual section. characters, and in the interests of consistency, that purpose applications may require different maximum line widths, so this option provides that capability. The interpreted to mean unlimited, so -max-width 0 can be used to ensure that each field/value pair appears on a lexical analyzer, the default line width is unlimited, When bibclean is prettyprinting, line wrapping will be character sequence may result in the output exceeding the inserting a backslash-newline pair when the specified maximum is reached, so no line length will ever exceed With the positive form, apply heuristic pattern matching to field values in order to detect possible errors (e.g. ``year = "192"'' instead of ``year = "1992"''), and issue This checking is usually beneficial, but if it produces too many bogus warnings for a particular bibliography file, you can disable it with the negative form of this With the positive form, remove all field/value pairs for which the value is an empty string. This is helpful in cleaning up bibliographies generated from text editor templates. Compare this option with -[no-]remove-OPT- information in warning and error messages. Default: no. With the positive form, supply an additional brace level For example, if a title contains the Latin phrase {\em {D}iscoideum}, then downcasing will incorrectly convert the phrase to lower-case letters. Most BibTeX users are prevent the downcase action. The correct coding is {{\em legitimate cases where an extra level of bracing wrongly protects from downcasing. Consequently, bibclean will normally not supply an extra level of braces, but if you have a bibliography where the extra braces are routinely If you think that you need this option, it is strongly recommended that you apply bibclean to your bibliography file with and without -fix-font-changes, then compare the present. You will have to decide which of the two output files is the better choice, then repair the incorrect Since font changes in titles are uncommon, except for correct, it should do more good than harm. Default: no. With the positive form, insert a space after a period With the positive form, reorder author and editor name lists to remove commas at brace level zero, placing first permitted in value strings, or between field/value pairs. However, with the negative form of this option, it acts lexical tokens. See the LEXICAL ANALYSIS manual section With the positive form, print the value patterns read from initialization files as they are added to internal tables. Use this option to check newly-added patterns, When bibclean is compiled with native pattern-matching code (the default), these patterns are the ones that will be used in checking value strings for valid syntax, and all of them are specified in initialization files, rather than hard-coded into the program. For further details, see the INITIALIZATION FILES manual section. Default: With the positive form, remove the ``OPT'' prefix from each field name where the corresponding value is not an empty string. The prefix ``OPT'' must be entirely in This option is for bibliographies generated with the help of the GNU Emacs BibTeX editing support, which generates templates with optional fields identified by the ``OPT'' normally bound to the keystrokes C-c C-o does the job, users often forget, with the result that BibTeX does not recognize the field name, and ignores the value string. With the positive form, accept input syntax conforming to the Scribe document system. The output will be converted to conform to BibTeX syntax. See the SCRIBE BIBLIOGRAPHY FORMAT manual section for further details. Default: no. With the positive form, record in the error log file the names of all files which bibclean attempts to open. Use this option to identify where initialization files are With the positive form, allow all warning messages. The -version Display the program version number on stderr. This will also include an indication of who compiled the program, compilation, and the type of string-value matching code  (` x   hp  x   8 H X Expected Scribe close delimiter `%c' [8#%03o], but found `%c' [8#%03o] instead for field ``%%f''X    (  0 0p@p X0%8"xPX`   0 @ P 08hxX8@x08H`pX8X X08@P`HxPxXh x    X    ( h  %`%%% 8&& &`'X'(HX''0(x(()0pP))@)(*p**@X+H++0+ ,ph,,,@---.`... Xp8//H /0X00 001x11`(2P222(3 0p3H384@H44H0H4PH` 5h5X55@6(`667`777`hpHp8888x9X9990:x:0p:;P;;;(<p<<H=H==p       0 H Invalid checksum for ISSN %c%c%c%c-%c%c%c%c in ``%%f = %%v''Invalid checksum for ISBN %c-%c%c%c%c%c-%c%c%c-%c in ``%%f = %%v''ivxlcdm FTT:JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC$Id: vaxvms.c,v 1.7 1992/10/13 14:51:06 beebe Exp beebe $8F@FHFPFXF`FhFpFxFFFF00F G$Id: vmswild.c,v 1.6 1992/11/15 16:59:38 beebe Exp beebe $ (08@HPX`hpx#~^^ ~(08޴@HPGGG@BG=G""GgZk:#.C".G2JP JFC( G.c.JS cJtFCBG@ B4G(blZk#,,#H@ HDC'@G B4G(blZk#,",0@@0H@ HDC @?#"c.C.S qJRQJq>Q>G.## ./.JT JKW JFFCCGGRGBGbG4GlZk(. H.rHQ (JPJ3F(>F>G.0@.G0BQ@J8bT JTGFClZk H.qH(,P JA(HF1D>(<.g.JS gJtFCGH¦""pBB"@bGxbzZk4G&bB"XZk- , '.IF H.Q 'JD0A IrIPJ3F '>F>.".GJT JFCGC/G#/CKY #K:GCXC:@BfZk>#, ,0BC'HF HDC B?G -G,b#&,IG HA &HD,HAH'DC2*@@#"."#,f.JF.A 1H/.fJ0DCR FJ0BSF JX KGyJWJCGG?F>GB+G-/.-JH IECB6GG@BGfZk"GGGG,',HA 'H&DC@GG Gb#)@@GGGb#)@GGGb#)@G]] }(08ݤ@HP`#k#~^^ ~(08޴@GG=낤G ]G$.. $JP JFC G_G(b#)@G0@A@ !? B"(BG "G0b8yZkFGG]b# }_>GE@Gb#)@Gb4GBjZk¤@""(BB"(bG0byZk4G&bB"WZkb#Š$. K.rK"Q $JPJ3F$>F>G..V J>UJ> //Y K ?XK?] }G_ G]] }(08ݤ@P#kG#~^^~ (GGGP"B! GGxZkGGBxZk" B@1@pBGG=fZkG(b#Q%@GGpB5fZk("(b#J%@ b#@4Gb b#Lc @ӬG]]} (0#k#~^^~ (0GGGBG\xZkQ.G1,QJA 1H2DC@G_E%@GGGb#)@ % ?G_G]]} (0@#kGGG[@Zk4GG# ~0"P^"X^G`~hG#P.Gp.} 0,R@J .S`J.A1HB b'H>UJ,0"TJ@H("GJH  0,gJJJA0H1"'H>. 0 VJJ޶ .WJJ , "@HGH(jzZkGb#q@GX]`}P]hp#k# ~0"H^"P^TGX~`G#P.Gp.} 0,R@J .S`J.A1H(B 0b'H>UJ,0"TJ@HH"GJHgJ0,JJT1"A0H'H>. "VJGJ޶,zZkGb#3@GP]X}H]`p#k#~^^GG0b#""1"1@8Db#)@G]] #k`#4G~TGx^^~GG@="hb(B0b ,"@HHGj_Zk炧="0bTG(B . PJJ^_Zk =, "0H"D].D}"SJ%`AB@."J$F/F=#K' CXF @}/}K&H=.=J)G;B[FCGx]]}#k,D}"@ HDD].SJ3.Q 3J2F/.F=#T JFF/K?.W JF/]/Z ]K[GH=.=JI.P JFà#~^ ^(~08@޴HPGGG㢤G4G, % 4GHW8D B"""dZkGGG@,! @HH0@0wJ;<@9P@ k0@$" CuH. DTJF>@D@TGDOz@*/:@DOz@%XD`cH"CaD0BU.NzHRUJ DZFU>v$J!F1!Bs1BS3B3s@D`TG{F `G;@{F`"b#_4G0@@ , H?@D"b#_G] ](}08@ݤHP`#k#~^ ^(~08@޴HPGGG梤G4G, % 4GHY8D B" ""BdZkGGG@,! @HH0@0wJ=<@;P@0k0@$" CuH. DTJF>@D@P@TG{@+P@:@{@&GD cHbCpD10BR/3N{HZRK D[GR?vdJpF3pBtsBTtB4t@D TGF G!@F"b#X_4G0@@ , H?@D"b#K_G] ](}08@ݤHP`#k#? ~^BG8DD {#G(@G] #k#~^^~ (0޴8GGbHBc GvZkxDhႤGD/. DKP JFC @ _Gb#&@G0@A@ !?hGb#"H"y@8Db#(@G]]} (0ݤ8@#k#~^^GGb#8""1"]@8D0b#('@G]] #k#~^^~ (0޴8@GGGb#,,c #H@ HDC ¤G GGb#z&@G0@A@ !? &"b#(@(b# '@G]]} (0ݤ8@P#kG#~^^GGb#X""1" @8DPb#H'@G]] #k#~^^~ (0޴8GGC"#,G,GG2H@ HDC G_#.TG.G#J(b#P JFC&BG1{)@8D0@.#"#,@JA 1H0DC @,,c HE HDC@G]]} (0ݤ8@#kc.C.cJR CJSFCfBG."VJJF"Pb# @4GGGb#='@4GG#~^^GGb#x""1"_8Dpb#h('@G]] #k#~^ ^(~0GGb# "Gx_8Db# '@}#,#H p₧<GC.c"RSJGJ_F_F2B.R"TJJF .c JG] ](}0@#kB="bGTGtGvZk3? " @ @8 DF b#&@}G#~^^~޴>^GG"GG4G4GGGGP@',G"2H7  ',A H'H%D@%D/ `b#!"Ȱ)!"G_]! B`B(""GhbGGvZkG(b#&@Ӡ)"GHb#@H)"GHb#I@4GXb&PB"LSZkȠ G GJ*A0 A0@ @E@G]]}ݤ=]#k#G~^^~ (0GGbxB"G|Zkb#@ӀGDxB0%0ƥ "G8 DG|Zk6D0B%8 G ("b# @G(""TG@b#!@e`b# @ Gb#@X"b# @ b# @4Geb#o @G]]} (0@#kG#G~^^~ GG`B("GF|Zk0.b#VJ0>a@Gb#8_b#B @xb#R@GxdD G"b#-_b#7 @b#O@Gb#&_b#0 @xb#@@GxdD?GPb##@hb#4"@G]}] 0#kG#G~^^~ (0޴8@GG`b0B("G|Zk0 b##@GGBSaZk0"0#,tG8¤4GA6H8&'H8 X$D8D8 GG Gb#Z @GGGb#(!@ b#* @Hb#@GxDH G8F"b#F @G""4Gb#!@8D "b#: @G ""Gb#!@8D"b#. @G""4Gb# @ b# @Ӹb#@GGBaZk0#,0"&tG4GA6H8 G'HX$D8DG Gb# @GGb# @ b# @Hb#@GxDG b#`#@G]}] (0ݤ8@P#kG#~^^~ (0GGpb#@G# / `Ƅ pD8eD4G D21@BD88F "b#@G ""G b# @8"b#@b#0| @ GGhb# @8"b#@(b#q @4GLb#] @G]]} (0@#kG#G~^^~ (0GGP B("G2{Zk8b#H@(G# Ƅ c eD$_ ``08F "b#@ ""tGb#Z @`0$8 D "b#@J""Gb#N @EGeD35e@$!1 @$$$ 0 B$Gb#"@2``08F "b#^@G ""tGb#, @`0$8 D "b#Q@""Gb# @GG0b#@"b#D@0G0b#@"b#<@(b# @4GDb# @G]]} (0@#k#G~^^~ (0޴8@HGGbB"GzZkGb#@G"G0@8FGGb#<@ӠCD4G(!P@ XDF<0@0."Q0J'Jp F Hb#H @DXDܠ@&, A&H'HP D HBGPb4G'cZkæCXD?Dܠ@. PJJ0FGB4Gb cZkGȠ (8D&D6"@Kd@1H.0@'Jb#u2JTJF>h@GG Gb#@Ӱd@ .PJ>Gb# "@Ӥ: Gc BG&_ZkG&B_Zk0@" 8E4G`b#@LØ @0HF.J`b#sJRFJ"SFF>f".TJ>@ӀHb#5 @Xb#$" @7Ø @0HA.J`b#sJRAJ"SFA>a".TJ>l@PHb# @Xb#$ @B0""G^ZkGGB ""G^ZkG GB@""G^ZkTGGGGb#@Gb#O_G]]} (0ݤ8@HP#kG#~^^ ~(08޴@HPGGb  c 8DGGB("GyZk"GBGyZkGb#@GG! @ Gb#A@<? @y PD?FBQ.1"RQJGJp@F@@b#8 @GGPDD< @.! PJJ0FGB4Gb$bZkGG@!IP.b#'Hs0HRPJSFP>@GG! 0@ Gb#@ Gb#+!@@㠘,@H<8# G BG!8^ZkG!B^Zk0B#!  B("(bGtGtGoZkb""BGtGtGoZkCb#@Gb#_G@à5@5@D- HIIG / @0HG.JXb#sJRGJ"SFG>g".TJ>@@@b#3 @4G@Pb#@GP㳸b#M@Hà8DvP("BGG CxZkb#@G(à8ED!H=. }"'H"r=HQ=JXb#2F=> .TJ>U@@b#x @4G@ðPb#@㳏!@@@ D ,8F Gb#@Gb#@Gb#@/G""Gb#@)G8D,à8D Gb#t@Gb#q@Gb#n@Gb# @""Gb#@Gb#w @Gb#_@Ө"Xb#@0@b#@4G@Pb#@,4G 8E'@GFGGb#I@'1@?B("GGxZk"GGBxZkb#@G #D,8D Gb#/@Gb#,@Gb#)@""Gb#@GGb#@Ө"Xb#@ @b#@4G@Pb#o@,4G Ġ8E&@GGb# @&1@@5@5@DG//b#@H8E("BGG>xZk0 b#7@GGB]Zkà@5@5@DGXb#@ Gb#>@ G,8Dhb#_Øb#_@c5A5`@hD8EG]] }(08ݤ@HP`#k#~^^~ (0޴8@GGb#bc GA@88ƥ 8D8b#@8DGb#@G& D E8F8@FPF@GD8FFxb# @DD 8F"b#=@Št""Gb# @ŠmGGb#y@ŠfB"hC"GwZkb# @GxD GGDD@e4G0`Be4G7JtB&# b# @? @G& G%0B@2H.GJ8DvPJUJD3FF>`71B%?G@G.' qHPJb#F>G.GGRGJG>@G(xb#@@G%,Gb#A%H%<@&H$ H6H`HGDb#.PJ>G@xb#z@G]]} (0ݤ8@P#kGp#TG~ ^(^0~8@H޴PX`>h^p~xGGGx b#!@0bGc R 8""b# @GGK Q G y 0@GCQð QC" Qc. G(BG0bGSrJr>GtGGZkhBTGQTGpb"mZkGQ .QcUJ>.VJJF s"(BQcC3@0bCGtGGZk Q#, Q"A0H'H?@ ) ). )!Q)J'J"FC1DG&D GG`".肧TJJFFB."VJJFG.)! #WJJFFB7/"Y7K'K!G?I/i#Z[KGKEGEG@ G ] }!ChB"G`b#@ GG? G P."肧RPJGJ_F_FBr.R"SrJgJaFC` "C ."WJJFFB/"XKKG 4/"Y4K'K'G@X'Gd },; @HHD XD{# } ]r.R"SrJgJFFB.s"UJJF ݢ"C ݲ/"XKKGGB.#TJJF ]:/: Y!K'KX$G3 B" G`b#@ GG+ 肧0."Q0J'J?F?FBQ.1"RQJGJAF@ }s"C }."UJJFFB."VJJF /7#XKKXG.@;G9XBB" G"G`bmZk&"bB4GLZkG==!C B"G`b#]?@ B"G`b#9@TG CtG0E="Gb#_  G G B"G`b#'@GGG0b#f_GGGG0b#__XBG`b4G-@ZkG ](]0}8@HݤPX`=h]p}x#k#G~^^~ (0޴8@HGGbB"GuZkGb# @G"@@!F+ D_F<2Br.R"SrJgJaF `G"@Ad@5H /Jb#yJXKG ? @"G@@0@F D?FBQ.1"RQJGJAF_d@ !.Q!J !>Gpb#J@ӈ¤Ŧ 8D;G&,,&H@ HDC3 &"G !Gb#@#0@A@@ !?$Ø c"dB5H.J "xJWJb#F>#4/Y8K8?@ b#q@4G¤b#L [@ӬGGb#v_0b#( @<Ơ c 8DGb#@TGGHb#t@Gb#_G]]} (0ݤ8@HP#kG #~x^^~޴>^~GG4G0bc p# G"@. ƥ  .R PJP>Q0J0> " ..U J >TJ>@. .R PJP>Q0J0>. H.pHU JTJF>F>.,! A"P J>@H< . "a. HT J >SaJa>.tH ,P J>@H<a.!.S aJQ!JvFa>4F!>@c.ScJc>.VJ>!.PJ!>1#,A#H1#<%] b#@ӈb#@H8Db#@.TJ>.VJ>!/XK!?1C/ZCK1C?_@%5@5 @ D?b#@0b#_@8D(B `""GuYZkb#_^G(BP""GlYZkb#@Ӱb#;@@8DQb#@,%8 D b#$_@8DE@Gb#X_@8D=8G(Bp""GJYZkb#[@3b#@Ӱb#@@Š8Db#@Ӏb#_@Š8Db#@b#_@Š8Db#@8b#}_8DGb#@b#_Š@5@5@D~b#~@8b#l_8D@Š8Dub#u@Өb#_Hb# @GGb#@ ,8D"b#@ð""Gb#\@,Š8D""Gb#U@V峈b#@C.RCJC>.TJ>!.VJ!>1/XK1?`_Š@5@5@D>b#>@0b#:_@Š8D7 (B8""GXZkMGb#0@Ӹb#@@8Dab# @G%"AA!F xE@E`'1@ ,8F"b#>@G""tGb# @0@Gb#~@b# @"%GAAF,%8 F "b#$@G""Gb#@'1@,8E"b#@#G""Gb#@G(B0""GXZkGb# @G ""GXb# @z G_"b#E@)1 A?H"b#@b# @ G) G<(A0u/A>LGb# @ H.b#HPJqHF> @ H . = Hb#qHPJF> @ H . = H ]"qHPJ]!F>p"" }.GXb#SrJr>@b#O @ G`""GXb#@%Gb#j@Gb#g@Gb#c@0@ ,e 8`E`"b#@""tGb#t@G'1@Gb#@b#D @ GI!_,e 8`E`"b#@ӛG""Gb#\@ӕGGb#7@Ӑ(Bp""GWZkb#@ӈb#P@Ӹb#@@8DIb#%G@Ӏb#1_@e 8`E@b#@@b#_@8E9b#9@8b#'_8DGb#2@b#_Š@堦5@5@D(b#(@8b#_8D@E 8@E_b#@b#%@ŠG(8DD*I}-"GIK}Ia]Ib# aE}==.Q0J0>"0@Ӱ6(!: E  E@ 8E`Š&1@Ű,%8 D "b#@+G""Gb#@%GGb#]@ E킧 ?EEEGB09%"b_FG @I-)!JIIGI REFE]!GGlZk"b#@Gxb#@@b#@Hb# @ GGb#J@k! `,Š8D"b#@G""Gb#@,8E"b#@ӭG""Gb#@ӧG"b#@%?"b#@xb#Xw@Gx]]}ݤ=]}#k#~^^~ GGhb#V@G# 9 xoDGX"1"Q818 F ("b#@,(""tGb#j@'GeDX"4G! !0B8!8 D ("b#@(""tGb#T@GG`b#@0"b#x@ b#)@4GXbb#Lc @ӬG]]} 0#kG#~^^~ GGHb#@G"#,A0H'H15!@1w J$ <$@"Q@ kGPBG}iZkG"GG@.4GqHGPJ[CF>{.["tHGSrJtFr>".b#UJ>_G]]} 0#kG#~^^~ (0޴8GG_b#d@G"#,A0H'H15!@1w J <$@Q@kGhƄ G8FGb#@4GGb#@b#C@G ,EHH!5@!w H <@A@ k¤C"b#\\ 0B.PJJ?@(b#@GXD&?Ơ8D"b#@ӷG""Gb#@ӱGGb#'@Ӭb#\Š\ƥ 0@Ű.c PJJ@GB "hD"JqZkG(b#_@G$"!?H$G8D?FBQ.1"RQJGJAF-@XaD+`G"@ @/XK?4GGb#e@GG0@@!gH .(b#'Hr HQ J2F >0@G# DF<0@0."Q0J'J!F XaD_@.TJ>4GGb#>@Gb#@JG]]} (0ݤ8@#k#~^^ ~(08޴@HGGG0bb#h$hƄ c G= H@G' n GD8F0Fe _"@@GeB4H.JGwJVJb#F>"/XK?@GJXD@G!.b#Q!J!>@8D("b#@G9G(""G@b#@G2 H<HDD @. PJJFD?F1@Q.1"RQJGJAF@@Gy/[yKy?b#d@!H4G'H6Hq HF# GG@3H.gJ0BxuJWJF>b#@G' ?Ghb#/@@G,b#GH<@@}dG]] }(08ݤ@HP#kG#~^^ ~(08GG`b#\@G/ / GPbTGBbc }GHfZkGG GXb#@("b#@b# L@4Gb#8_T$@d@$, A$H'H\#c8`D` "b#@G ""tGb#R@G]] }(08@#kG#~^^~ GGb#B_(b4Gb#$c _(8D b#7_Xb#%_(#8 D b#/_b#__G]]} 0#kG#~^^~ (GGG"b#Ƅ 0@@G b#@ӸbG0"PB"BGcG8c bgZkP""b#@4GbBFdZk8""`b#9@P""`b#4@ ""`b#/@G`b#*@(""`b#%@P""b#@Әb#"I@G]}] (0#kG#~^^~ (0޴8@H>P^XGGG₤Ƅ GBG bGTG~eZkGG.GGGJGB".UJJ.VJJFFB."WJJFG.1"#TJJFFB4,"A4H'H!D?h袤B GuTZkH""0bGTG(BeZkGG , HH G_'.G"Q2J'J<$B3%B`X^`GG Gb# ` GGG!@GGW@=8 D G'. .'JTJu0JF>CG0 G..!JV JFC.Y?ABG yC eZk=DG b#]@ 0 AA?AA!?GB(""GSZk*GbTGB>dZkb ""GBTG8dZkbGGBTGJdZkGBG]GbtGdZk@GGGb# @G G?E/ G*DA CZEKE?PBG *@8"" "RZk".WJ>B0""bGGtGdZk$"GGGGBZSZkG] }](08ݤ@HP=X]`p#k#~^^ ~(08޴@HPGGb@Bc }GeZk"#,$1@A0H'HX$Dw d@z/Z#[zKgKXdGp` 0B(""G&SZkd@7@.4G4GPJ>L GBFBb "GGtGUdZk.g@b#PJ>G/_Gb#@bGGBTGcZkb ""GBTGcZk@ `BTR8@F#@H.h"RSJGJxGF@.g@Gb#UJ> _Gb#@bGGBTGcZkb ""GBTGcZk.GqH0@PJF>0@@_g@Gb#_Gb#@GbGTGBicZk(""bGTGBccZkG0BRZkG]] }(08ݤ@HP`#kG#;h㛦G~G^.! tGJwG2B".TJJFbC"C.UJGJCFFB."VJJFG 1@CC.UJGJCFFB."PJJF.1"UJJF0@B2@."PJJF2@.1"UJGJCFF5B."VJJF0@B2@."UJJFF5B."VJJFGCG.0Bx6JWJCF>.w0J0BVJF>GCuJ0.0CQ0J5F0>0@B2@.JC[0.Q0J0>="G!RZkG] #kH;⛧1x;1"GGkp.GpJ6Hv`Jp"FѶG,G@HHLGGB",@HH<@ 8u@<@.G0B+41B)(C&G.CWJJFF@/"XKK0G/s"XKGKCGGxB,#@HH0D 0 BGQBG.yxJWJF>0BB0 B,QB7/HsHY7K3G7?6/"Y6K'K?GkG#~^^~ (0޴8@H>P^X~`GGb,c # @HGHXDXGGG`@Q.QJ@@#" B"r.StJgJ4.4J?G@Pb#/XK?p_ GBGIQZk@"!8 D G.GG GJ# C " ,@HH/R"XK\KGGXB8.#Q8J'J0 F F Gェv@GW.@0B`@WJ.0CvTJWJF>Q.1"RQJ<GJ_F_F2B.R"TJJ0FF@G/vJ`@0BXKG?4.4JY?G0@B@xrJ.0 @0@WJF>IGG0B@rtJ4.!1 @0@Q4J2F4>=G0@8Dx@j!j."ェStJgJFFB.s"UJJFGK/k!k#Z[KGK_G_GB:,Z#A:H'H!D?."WJJxFSB0""bGtGtGaZk0b(""BGtGtGaZk(b ""BGtGtGaZk b8""BGtGtGaZkbP""BGtGtGaZkbH""BGtGtGaZkb@""BGtGtGaZk G0`A @tG+.r+H 4GQ+J2F+>G8D8 EF G0B@G/yJ GXKG?&1@J/@0@;,JKg@k[KA;H0A+D;<0.0J ?@BGh.GShJh>CPZkG]]} (0ݤ8@H=P]X}`p#k#G~^^~ (0޴8@GGG,GH qv@0,"A0H'H$DYG0BGB,"@HH1@1w J <@Q@PkGPBGGNbZk"@Bd @BBOZkGFPB%"G@bZk_"@Bf@ @BBOZkG8PB %"G2bZk_"@Bh@@@B&"OZkG)GPB0%"G"bZk_"@Bh@@@B&"OZkGGG@Q&Gr.tJ0@SrJtFr> G"@qG@&q7H.0@CPJF>0Bv@r.rJ@$$$. PJ>G]]} (0ݤ8@P#kG ¤G0B_"8btGGG`Zk &,A H <GG ¤G0B_"8btGGG`Zk &,A H <GG$0B 8bGG_"tG`Zk$, @H<G$0B 8bGG_"tG`Zk$, @H<G$0B 8bGG_"tG`Zk$, @H<G$0B 8bGG_"tG`Zk$Gf, CfHf<#~^^~ (GGb@@c 1@A@Cp!GG4G B(b0vZkG"$"0B 4Gc-XD 0B#pDF@P."RPJGJAF @# a0 B0Ba# 8D ABAF G A 0@B AxD#0 B#GD71BG]G]} (0#k#~^^~ (GGGG_b#_  @DF<0@0."Q0J'J!F bGb#@? 8b# H1_("GDT!0DH"#hC" B6?JG iZkBö8b# _G& 4GG4 G8E D?FBQ.1"RQJGJAF&@"@`XD0A"G@6HX/J0B{JZXK[GX?8b#_G& ?GG@TG.u2J0BTJGF>b#@G@,@H<Gb#@Gb#@'HG]] }(08ݤ@HP`#kG#~^^~ (0޴8@H>P^X~`GGXb#bc G_GH¤GbTGB GG^ZkGG %H"H6JrHG2FCb#.UJ> @ b#_4Gb#_GT HG(A@b#, !EHH_G'"? (I 4GTA D@4Gf8`FFXDgG B.WJJFFXb#h_GxD tGJ.*"sJ0 ARQJGSFQ>.xJ G@WJTGF>,a:K@HD<`J.tG*"sJRQJGSFQ> /tJ0 A GX K@G ?y/TG0 Ap9H[yK G@pGy?1H.0 A'J Gw3JVJ@F>G.yKPJF>6*.tG0 AsjKQ*J G@3F*>0 A7,TGpJ GA7H@0D7<,GjJ@H D<GDF<3Bs/s"[sKgKaG `@GA.vAKRAJVFA> G@7HT-JuJJTI UET=GG?F< G1Cy.9#SyJgJaF`b#G_Xb#_? 0 A G!AG "DKAQEX?G  ATG+.r+Hk"Q+J2F+>_".2ATJ>-@Gb# @(b#_ 4GFb#_GT'H!GGIB'H.HGvHUJb#F>".WJ> @b#_b#_TG%ֿHGXb#_GG]]} (0ݤ8@H=P]X}`p#kG#~^^~ (0޴8GG(b#bc Gp_#"G4G!?HGT$@#Pb#@G@!HP.0@'H(b#s0HRPJSFP>Y_GGPb#@? @@ D?Gb#@G@TG .r H`"Q J2F >._"@TJ>@Gb# @ӈb# @_4Gb#Lƥ *_ӬG HGG0@(b#_GG]]} (0ݤ8@#k#~^^~ GGb#>_b#_GGb#@G(b#@b#_Gb#8_G]G]G} 0#kG#~^^~ (0޴8@H>P^XGGb#0bc GL_G%  G0JÀ¤(F4f( 8@FrF`5H$#JG6JwJb#FD/ZYKY? @b#(_4G$b#_G#!?H#Ghb#i@"hC"GxBfZkxDGb#_G( GC G &8F0FQ _"2Al@EF|tB."UJJFGGxE0@E'1@G@8I,K 0 CaK@HD<GFF<0BQ.1"RQJGJAF@b#_ GG( ?Gb#j_ GG( ? @G).GGQ)J)>C_F@GB".VJJxF>0`B?G B2I.GJGuQJTJb#F>".VJ> @(b#G_ 4G$Fb#3_GGC*_ICAG)@1Ip.'Jb#t0JSpJtFp>."GUJ>x @ b#)_ 4G$Fb#_G HG#F 31`BXFO@8`FM`U-JUIGI KE.@ tG 1BCw1IQ.0@CRQJGWFQ>z/0 @u:K C[zK 0BuGz?).TGr HGQ)J@2F)>7,0CCGY/7H0C{9HZYK C[GY?).r H0BQ)J2F)>"tG GC{KY/TG0@A CZYKr H[GY?).G0B CQ)JyJ2F)> /0 @X KG ?GCiJ,0@C@H D<0B@Q.QJY_/" TGy]IXKBG?7- v@II I 6E =w/[wKw?b#_!b#@_PB="GJZkGG D _E< *A -J!H IIEg "æ4Gb#6JTBö_ GI!)@?E?D\ AA .J!P JJFG?"@/ G0@B@3'I.gJb#vrJUJF>e_ GI! @?E?D\ AA .J!P JJFGhb# @@ TG.q Ib#PJF>0@@.TJ>_ GGP/G'B3'I.gJGvrJUJb#F>".WJ> @ b#7_ 4G$Fb##_ G HG1XD Gb#_G G}G& 8 DF?"QA DF\SB.s"TJJFGGxD 0 AD)1 AG@7Hy/J 0C`J[yK`Gy?: 7@AXD%D6@0."Q0J'J+FI b#_G *!Q@A0 @@tG.0BuAJTJ@F>0/G0 BzJY0K@:G0?1,TG0BrHA1H@2D1<3H. 0`CgJUJpvJ@F>G;/zJY;K:G;?GDD< @,! EHHDb#_GG' ?Gb#_GG' ?@b#P.RPJP>G_ b#8_GGGG B2H.GJGuQJTJb#F>".VJ>@(b#_4G$b#o_GG#)?I#}G*@1Hp.'Jb#t0JSpJtFp>."GUJ>@ b#e_ 4G$&b#Q_G HG_pENb#N_ G GJ!G@Gb#@G @!G0A@*'I.GIb#qHIPJF>5_ GG Gb#@Ghb# @@G(-b#I(I(=_GG-G A%'I .Hb#qHP JF >J.*"GRQJQ>d@ b#_4G$b#_GGC*_ICX"b#S@b#0_4G$b#_GC*_ICG]]} (0ݤ8@H=P]X`#kGp#~^ ^(~08@޴HPX>`^h~pxGGG =G D."(삧RPJGJ_F_FB2.R"Q2J'J!F GD. $"RQJGJ_F_FB2.R"Q2J'J!F?G D."RPJGJ@ $.Q J'J$F GG,"GHHXD@, %"G@HHXDG.E"PJJ F %.  Q J'J X$F?E."RPJGJXDF@GG.G PJ>@, GHGH-("JQIGIKE@h-!" GKpIgI fA wH}tGGG.qH2!PJF>jGGTG.qH3!PJF>`GGG.qH2!PJF>VGG4G.qH3!PJF>LGGtG.qH2!PJF>BGh. (삧S`JgJFF@!.! Q!J'J0 F 4GxBbKZk(,"A0H'H?DGDGD GXB G`b-!="GGtG[Zk H-,Hp HA-H0D-<!GGtqIq.1!SqJtFq>GxUI.5!WJF>(/!(Ka? ,@ H <;G"hB"BGh"! }bZZk4Gb&xB"/yZk(G DBGbGTGXZkG$. d!Q+J'J $F@BGbTGXZk-$!H IIEG/- MI= GG] ](}08@ݤHPX=`]h}px#k#G~^^~ GGT8DGHDDB0,"A0H'H DC G@ D GuB0D G@ D GB0DG/HGDD\@B.R"PJJFCG(B8"0bTG3XZk@`DG]G]} 0#kG#G~tG^^ ~(08޴@HP>X^`~hGG"G="hb#z@0bG@"(B4GxZk@"0b4G(BxZkGP"b#9 @碤G¤Pb# #, %_ " `Gt%4Gg"`2!."J."UJJFF 8&")b#%"_0A A)!&8 D "(B4G0bxZkGGb#d_8D "(B4G0bxZkGGb#X_Ghb#_$ &$G 8 E $EG8""b#`%k_Ӆ4Gc GB""jFZk8" b#`%[_p""b# @GGB"8BGx"c@bOYZk"4GpbhBbZk[G! 8D"pb#@G""Gb#@8D`?"(B4G0bHxZk"0b4G(BBxZkG"b# @B GbGGTG\XZk'GBXZkGGBXZk @b0 @4GBJZk GG BGG}FZkbGGBTGAXZkGGBsFZkGGb#_GbB4G6KZkGb#_G@b4G8BZkZk )!0@c %Fk!BGb_E4GwZkƠG]]D }G(08ݤ@HP=X]`}hp#kGGGG BB 4@AC}@B- GGG.6 /"2@BJXKyJ"G?.!/JY!KvJ"6G!?"4, 7/4HY7Ku7H"5G7?}@B4,t"/4HXKy6HG?CSGGG.21@B.C UJJv"tJF>kGB2BC"1"<}@B, GG. /`"2@BJXKvJ"G?4,.4HVJx H"F> 4/".4KUJv3K"F>}@B/4"`.KS`JuKuF`>C GGG.21@B,C"UJH4"xHF>?kGP;GP[P{ۦDH2LSGGGGGL.JIG".PJJ x$"BGUZkG(4G@bG8BG|zoZk(4GbBRZk# 8Ua@F ,E d2Q@B rB`GŢTG 0Bb0B @%aVKx,4G@HDx<_#Q +<5a@! Ua@c$$ 0 @$$@xp.SpJgJdF`G51B41B@x/XKKG $91 C$JG d aC`G dBGE@HB`""B"XbGPbUZk&bB"4GLtZk@x.x! PJJXF$$11 B$$ d 1@31`B d41B(@x8/Y8K'KX!G Ed:1@CE;1`Cd@@x:.Q:J'JX!F? G 0B #gHgH@ydHx/0BXKGx?G]]} (0@#kG#~^^ ~(GGG`= D Gb#@ GBGGTZk}Gxb4GpBGGnZkG]] }(0#kG#~^^~ (GGb88c 5@# TGGb#_$1@8b#"@ c4G8"Gb#8`D`D1"Gh@G]]} (0#k#8@F~^^~ (0޴8@H>P^X~`hGGGG@?" G0BG\ZkGTGtGXG%G%G8%Ge4(XE EE EGlEEDE4GEEHE0EePee4GeTe@eD@GzZ#0@8"GGP)!G 0@K@_GGBdTZkbG4GxBGGGnZk TGbTGBRZk0A)!Q @E 0@ 0@Ak!BG(bG( G) GATZk4GGbGxBGGmZkG0b4G(B(QZkBGb(jZk  ? @@@ "0wJ<5!@P@HkG8BG@bGTGLpZkGB("(TZkb4GGxBGGGmZkG qAGG!A? G? 0AGGGGGGG!тAGG" @g"`4@PBGvõ @t'1@rĢ G_BGSZkbG4GxBGGGmZkKk! _G]]} (0ݤ8@H=P]X}`hp#k#~^^~ (GGG88DG(b#y@, DHHD?D@.! PJJF4GGD4GGG`b#2@G]]} (0#k#~H^P^X~`hpGGGGGb#e_ " .# . C.G,Jc.T J.AJ@ HBcJ "P JbFDFCCCGGUZkGGb#E_$#" .G#.C.,J$c.T J'.CJ@ HBqJbP J("FDFCCCGGUZkGGb#'_GP]X}H]`hp#k#~^^~ (0޴8GGG,HlG,"DHH!@!w H] <@[A@8kxhhƥ 8D#b# p"@`BE0`B zB@%8 D (b "4G_G0b ""GTG@4G8D:GGb# _&1@3, EHHD+Db#_x¤hƦh 8D%"b# `U@`B tB8F(b "4G_G0b ""GTGk@Ơ4G8D GGb#_%1@Db#_,c HG]]} (0ݤ8@#kG#~^^~ (0GGGGX8D4GGb#_H"Gb#_Gb#%{_Gb#8""w_G%b#s_G0""b#o_GGb#k_E" ""Gb#_GGb#b_(E"`""Gb#_GGb#Y_P""GGb#_G]]} (0@#kG#~(^0^8~@HP޴X`hGG$ ,GG@HHh@¤ & 0B% G@"b# _',!,0"" BG'H(b@ HtGDCGTZkGb#_8"b#_.b#-JH IEC_"b#_ B (bG0""GtGTZkGb#_4GHb#'_C@b#C_Hb#4G_TGHb#_-Ic, FHH#@#w`H?`<@=C@PkGHb# _ .Hb#PJJ_IGHb#_TGHb#_BGGHb#_GHb#_:GGHb#_GHb#_2GGHb#_TGHb#_*GGHb#_GHb#_"GGHb#_GHb#_GDFAh,!ChHgHrD`Hb#_ B (bD""GtGTZkGb#o_, HTGHb#_TGHb#_G(]0]8}@HPݤX`hp#kG#~^^~ (0޴8@GGbBc GGxQZk#,"GA0H'HX$D? c#C/Z[K|GK_G_GzC,{#@HHD07@4G" c#C/Z[K|GK_G_GzC,{#@HHD0BB p@z/Z#[zK\gKGG[C,{#@HHDp@0@# 0BGG_GB3QZkGG%@Q.RQJGJXDF/@7@".1"UJ<JFF5B."VJJF%1@7@e@8/#Y8K'K?G?GC.9#PJJF%@TG,e#s[K@HD<E.REJE> ƅ ƥ V 9%"Gb#_8D B0""G2~Zk4:%"Gb#}_b#&_(8Da8""PBGXbtGtGOZkYGBPZkw@TBGPZkW@O"b#_#"GBPZk? @G8_b#_Š8D Gb#_Gb#_Gb#_G@""Gb#R_%4Gà8 D&@ GGb#_&1@G,HG`BGhb4GTG OZkGGYC".tG4GGPJ>#.Q2J8F'JX$F4FGGb#P_G8D0"" BG}Zk"b#_4GŰRGGb#_BGkPZkGb#@_ hbG`B4GTGNZkGG`BGhbGTGNZkG',GA'H'<8FGb#_4GGb#_BGEPZkGb#_,g HG,# tG4G@H8DHGXDDGGb#_GGGb#_BG#PZkGb#_G]]} (0ݤ8@P#kG#~^^ ~(0GG]GG<8D(G#.C"Q2J'J G0"G@ / "G("GGA! GG "GG@ BbPZkG]] }(0@#k#~^^~ (0GGG@Ƥ@Ƅ " b#@9ØD@F0@< p G0B!1 @ .1"U@dTJuJF71B## XaD`@21@B@ 8aD`G51BxoD71BGoD`$0 C$G]]} (0@#k#G~TG^^~ (GGGBGbMZk GG B G.$"b#PJJ_ GG @?G]]} (0#kG#~^^ ~(GGC8BHOZk0b0@4G(BWAZkGG ""BB" bGbyOZk4G&0b(B"#nZk(BG=|ZkG] }](0#k#~^^~ (0GG .GGPJJiF0D< B1,1"A1H'HP D B4G(b@ZkGG,! EHH.$"0PJ<JF_F2Br.R"SrJgJP`F`4G B(bZkG,$ @HHD8.c #" PJJ1F0F\SB.s"TJJPF B4G(bZkGG,! EHH.$"0PJ<JF_F2Br.R"SrJgJP`F`4G B(bZkG,$ @HHD.#"0PJ<JF_F2Br.R"SrJgJP`F`4G B(bZkGG,c EHH.$ 0PJ<JF?F1@Q.1"RQJGJP@F@4G B(bZk, @HHG] @]} (0@#k#~^^~ (0޴8@GGGCGGF#.#JC ,H@G.C"PJ\JF?FQB,R"@HHPDGG(B4G0bLZkG.$ DPJ<JF?F1@Q.1"RQJGJP@F@G/(B4G0b4ZkGD @ @%1@Cc  #.#J d.dJ@G/ .c UJJ. VJJC C4GG]]} (0ݤ8@P#k#TG~^^ ~(GGG BG(bUZkP"`!8 D 0"xB("}GBuF@"bB"GNZkG]] }(0#k#~^^~ (0޴8@H>P^XGG#XGd8D("`b#_("0""8 B!b# 8DD$GG+_GbGGBGGGGMZk ""xb#_4GPbHBJZkG]]} (0ݤ8@H=P]X`#kG,GH<B@. R@JGJ_F_F2@,R"@HHD0 BB,HB0 BP."RPJGJQFkG#8 ;"~^tGG{#"_GC] #k#4G~^ ^(G#G 0B =  >8bZkhb# =_(bG4G B)lZkG ]](0#kGkGF<0@0."Q0J'J$Fk#G~^^~ (0޴8@H>PGGGGC."RPJGJ@GG_G]]} (0ݤ8@H=P`#kGGG G _"0BtG8bGGLZkG.@GPJ>G PBGG&zZkGGBzZk0B7#?GG ,#EHH\ ¤G0B_"8btG GGKZk&,Gb#A&H&<@ӆDGGG)@G/"yJXK"G?(GG A.VJJF# #/Y!K'Kx+G G(."rHQ0J2F0>#"GGGG GXF(,TGyJ 0 AA(H9D(< @GGB0BG B8b"2BGGtGVKZk,Gb#@H<6@1 -H II E).GG4Gb#Q)J)>@GBGGyZkG`B#LZk G) p?@."WJJFi@8/Y8K'K+Gc?#"-HIIx EQ@"#"GGG#G~TG^^ ~(0GG8BC@b,FZk@`GG G8BG@bTG!FZk@`G(ByZkG]G] }(0@#kGkGF<0@0."Q0J'J$Fk#"~^^~ (GGGb#7@G.JG#,"A0H'H1$@1w J <.@Q@XkD.d"RSJ|GJ_FrBs/s"[sKgKp`G`G.D#TJ\JFTC:,Z#A:H'Hp DC GGb#@G.D#cG;. ;H[.`;HQ ;JR[J3F;>@F[>G B$7H(bGCGtG*WZkG,4GBb.$.PJQ $J$>>G\Zk"5B, D,"D.HB DH$.R PJ@DC@ HsHQ0JTFP>3F0>c/ J.yJX KWJG?F>Gl#~^^~ GGG . , JA H1DCW G0B4G8br\Zk HGHG!" P r. R"SrJgJbF`"FB W..JV JFC7# "F4 I5.0Bu/ JrJQ 5J[uK3F5>rGu?GТF6/6"/V".1KX Kv.U JGC9# 2Kw2KSrJF>wFr>0.p/"0J[ pKqGCs1HQ.RQJSFQ> G BG(b4G3[Zkc#, C,C.#.#HB CHc CJQ #JAD2FCCG2QB@G]]} 0#k#~^^ ~(GG#bc  0B"8bGGGGLZkG0 D G B4G(b@Zk #G4GTGG@BGG GHb(LZkG0`D` BG(b4G@ZkG]] }(0#kGC ?F_,HD21@BC"?GkGkCGGa.,aJH@ @ `21@BC"! Gk/G4B Ck11@CkGC<}@B, GG ,t"."2@B HVJw4H F> ,. HWJt3H F>" ,". HWJs5H F>}@B , ". HVJw4HF>CGGGa.21@B.C"SaJJ4"`J`Fa>kGGG @`2@ @A C`}@B-GGGa. ."2@BaJVJwtJ! F>a..aJWJt`J! F>",".HWJsH! F>}@B,!".HVJwHF>CQ GGG`.21@B.C"S`JJ4"aJaF`>kGC2BB<}@B,GGa.","2@BaJ@HuwJ! D<",".HWJsH! F>,.HWJsH! F>}@B,!".HVJwHF>C GGG`.21@B.C"S`JJ4"aJaF`>kGC,}@B?F GGw J. a""VJ2@BF>.v!J"UJF>,a3J}@B@HD<,a4J@HD<C `Gt7J7,21@BC"A7H4D7<kG#~^^~ (0޴8@GGGGGG$ _ @ BG(bFGGtGeZk@&@G @G]]} (0ݤ8@P#kG  1 A. ! RAJGJBF@ kG1,A.HR AJ@FCG" k.0Ba. J`JU JSaJF>`Fa>7,W",w".2H@ H.U JDC! 3Hv3HTJF>F>1Q.,1"QJ@ HDCtJr.GSrJtFr>k#~^^~ (0޴8GG ,GGH&G.# G PJ<JF @!.! Q!J'JP F 8B4G@bHvZkG,# @HH H&.c HQ&JrH2F&>c.cJ.G(BTG0bTGVJ>CZkGG`BGb4GndZkGèBGb4GgdZkGG`.4GBbPJ>G\dZk&,TGpfHGA&H0D&<G]G]} (0ݤ8@#k#G~`H^G ^G(~08@޴HPGG (bG8(B0c 0bG#Gv J F#Gy[Zk?$4! GD8 (B"0bGGGGGGj[ZkݠG&HH@.PJ>%=1&J&J11 B1&J&J=@Q.1"RQJGJDF@G}3fJfJ@.VJ>`7JJ71B7JJ@/"XKKGG]8D ]D(}0G8@ݤHP`#k#0"~4G^ [G({cZkG] #kG#G~G^GPA G#iDZk`H4GG]#vJsZJF}/ GG[zKsGz?G.t`K}" A(aPJF>="~GGGwZk8DGG] 0#kG= D <5B1uB G]!!H 0#CkG]  0#kG] G0#k#G~4G^tG [({GZZkG] #k#4G~^([0{GQIZkG] #k`#G~Gx^G^~GGGB#(" LZk"GGBLZkbG4GBuZk ". " ," `.JA H@.`/tJ0D ,xR TJ.PB.1H[ qK /C /JBV JaGSFX"FbC>. K@.X KCJR @JGVFCGGGCC޶G0FZk(=)">}"8B?Dt D(=G)=.r0HQ0J2F0>4G>.uSJGTJF>4G,TCZk\=`H = pbhB(!6 K" G\= =.Gs!KGQ!J4G3F!>FԣF LݲLZk$c D G(B0b]ZkTG  @G8BwCZk`H ]#}"Gb""Bv@JyJ@F ]#.4GuSJ="TJ "F>"/XKG?TG$2IZk8DHBGPb4GKZkG0b(B\ZkG  GHBGPb4GKZkD `G0b(B\ZkG GGGx]]}#kGkGF<0@0."Q0J'J$Fk`#~(^0^8~@HP޴X`h>p^x~޵GGGGG #GGGb#@G G.c D(PJ!a,! JCaHgHpDFFO@hGF>`GTGPBXb GGiBZkG  GGPB GXbGGTG\BZkG  GPB GXbGTGTGPBZkG  GB GbGtGTG6AZkG .Q J >BGbGTG+AZkG .Q J >CGGb#@ GG* !1 @*G"GGb#@GH _E@䠺"!  GpBG(}!0GBZk ?$ } vH! ݢuHpv`J"BFFC0DFCCJyQJJrQJGrGCCCC_GC!Ksq@KaKuq@KPBDFCCC =C}$="Xb ="}]"tG&hZk G0E G@BHb[ZkGbG B[ZkGG0vJpAP.RPJP> GBb[Zk4G8b0B{Zk !GGGb#5@G G.01 @ GG GGb#'@ G.01 @?pBGBZk0@Hb#@GG`BoZkG_-' @NI<IE6@."WJJF îCG/ '#XKKG8@x-#KxIgI aEG-G".NI TJ>IGGb#@ G }G Gj$ GG p.E"SpJ.R"gJPJJpF`GGGFC|Ţ."WJJF%!GGGb"" DT:! DZ"xb!Pb#J!Z\~{@GGY-!LII ؇ERBGBGG]]G"".VJJF4G(b/`"K"[bK`G(b?-!LII ؄E4GAJ!A b"p"(b!\~Pb#C@ G G TGBbZk ""b#H@`""Mp"b#@D,vH 8EBGb4G {Zk \8\G+/h E!`b#>@b#@ G GGGGGb#9@Gb#@ GGG8""BtGEbjAZkGGb##@G '1@> G@BGHb4GsZk}GdG(]0]8}@HPݤX`h=p]x}ݥ#k#~^^ ~(08GGGGG"B4GbsZkG"4GBbCnGZkG##0 @F 1(B B0(@(bQ?@GTGsZkG4G"BbCTGZkGCG=GB@@"0BRBGG]] }(08@#k#G~G0^GA8G@Zk( vH(]pHCv@KAFpGC`KpQJCDC_GACaKpqJDC(},}G@Zk vH vQJ {H&vJ vH[GC`KzqJvFCCaKtG}FACC }@G$=r@Zk} vH](="rH Av`J}"F(aCݲ ]""GGIZkG0]8@#k#4G~^^~ GG(B0bbrZkG`8"4GHBPbCFZkG]G]} 0#k#TG~TG^^ ~(0GGGBGb~ZkGGC= #.Q#J#>0BG8b4G{_Zk= TGc.t#JScJtFc>G bG4G_GG]G] }(0@#kG#TG~TG^^ GGGHBPbGk~ZkPbGHBGTGd~Zk ""G(b#@G4GG] I] H0#k#TG~TG^^~ (0޴8GGGBGb@~ZkGG% Gb#_ G0BGZkGG0BZk @8b0 @4G0BqZkG4G@"PBXbC;FZk BGGcmZkhbGG`BTG~Zk 0BGZkGb#F_GG BRmZkGG,H$G."GPJܢJFB/"XKK0G4GPBXbpZk, @HH H. HPJqHF>E.EJ_@""Gb#S@GG ` B"$"mZk@""Gb#H@GGG]G]} (0ݤ8@#k#~ ^(^0~8@H޴PXGGGXB#GEZk# vHX" ]pH}=v@KbCpG H?FrQ JC`KpQ JRGDCCCFCAKpq`JCDaKrq`JC2FC]CG=C}TGD} @HBGPb?"TG@ZkG GGXBGZkG$ (b#!_G0b4G(B}qZkCİXB~Zk]"B ^b"="GGGGG[ZkG"C'D GxBtGh"bZkGCD CDG!vJ8 D B4GbxZk0DBGb4G^Zk'vH8DBGb4GuxZkG/ݠ&vHCC,GHHDG=0v Hv H01B0vJrJ2FC3v@JCC.]TJJFݢG(b#6vJCC /XK ?_GGHBGDlZkG0b4G(B qZk`""Gb#i@G@btG8BTG}ZkGG',A'H'<G8BG@bGTG}ZkG,FHHD' .PJ>XBGc~Zk vH=sHv JSFDC}@BGtGbJ}ZkGdHBC 1"lZkݠ'vHvH'@'vHvH6DCݲ0b#8vK0C_GGHBkZkG ](]0}8@HݤPX`#kGp#~8^@^H~PX`޴hpxGG]G }G#GݠGGQ.QJ@Gc 41BG.JG@BG" ]HbB~Zkc /0 @/GBGbTGTGd|Zk GTGBb]|Zkx""b#@ G@BGCH"Hb~ZkGBGbTGTGF|Zk-GbTGBOI==|Zk@""b#@⥀Em""@BGGPBXHb}ZkaG BG "}Zk vH0 "#0=rH bG¦v HC B2FFC@JuQ`JCFCFCJxqJFC04=}Zk vH(uQ`J(=rHyqJtG]v H B&2FC@J7vJFCCJ'GC"C(=B}G,t}Zk= vHb"sHBv J0="SFC}(]"}" G$GFZkGDG/vJ8EB4GbwZk BGGP}ZkATG(,qH0DA(H1D(<CGBG]GbtGVEZkG@BC" }Hbv}ZkG8b0BVZk4GbB\ZkG8]G@]H}PX`ݤhpx#kG#TG~^^~ (0޴8GGGG$. B(bQ J'Jy{ZkGGG+ G.$"PJJf"F.RSJGJF@G. " TJJ".VJJF/KGD#(b$."TGQ:J B'JN{ZkGGG?G_G]]} (0ݤ8@#kGTTd p Px`% p& ) `* . /118 8**I 0 p `@P@`@ %%%&& &0&@&&)*p****`+++p,,,----0.... /0/P/`//00 0P001@12+0,@-///12*+ +P-`-P.0 >@DECC$SHR@LIBRTL@LIBOTS@SYS$PUBLIC_VECTORSbibclean-3.07/vms/alpha/vmstest.com0000644000156700015670000001253405650356076016224 0ustar beebebeebe$ !===================================================================== $ ! Test bibclean on DEC Alpha OpenVMS 1.x. $ ! [16-Oct-1994] $ !===================================================================== $ ! $ ! Create a foreign command symbol for bibclean. You must edit $ ! this to suit your local configuration, because VMS has no $ ! way that I know of to get the full path name of the current $ ! directory. $ bibclean :== $public$disk:[beebe.tex.bibclean]bibclean.exe $ ! $ ! Some of the tests intentionally generate a failure return code. $ ! Prevent that from stopping this command file. $ set noon $ ! $ write sys$output "================== begin BibTeX test 1 ===================" $ define /user sys$error testbib1.err $ bibclean -init bibclean.ini testbib1.org >testbib1.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testbib1.bok testbib1.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testbib1.eok testbib1.err $ write sys$output "=================== end BibTeX test 1 ====================" $ ! $ write sys$output "================== begin BibTeX test 2 ===================" $ define /user sys$error testbib2.err $ bibclean -init bibclean.ini -no-check-values testbib2.org >testbib2.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testbib2.bok testbib2.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testbib2.eok testbib2.err $ write sys$output "=================== end BibTeX test 2 ====================" $ ! $ write sys$output "================== begin BibTeX test 3 ===================" $ define /user sys$error testbib3.err $ bibclean -init bibclean.ini -fix-font-change testbib3.org >testbib3.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testbib3.bok testbib3.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testbib3.eok testbib3.err $ write sys$output "=================== end BibTeX test 3 ====================" $ ! $ write sys$output "================== begin BibTeX test 4 ===================" $ define /user sys$error testbib4.err $ bibclean -init bibclean.ini -fix-font-change testbib4.org >testbib4.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testbib4.bok testbib4.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testbib4.eok testbib4.err $ write sys$output "=================== end BibTeX test 4 ====================" $ ! $ write sys$output "================== begin BibTeX test 5 ===================" $ define /user sys$error testbib5.err $ bibclean -init bibclean.ini -German-style testbib5.org >testbib5.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testbib5.bok testbib5.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testbib5.eok testbib5.err $ write sys$output "=================== end BibTeX test 5 ====================" $ ! $ write sys$output "================== begin BibTeX test 6 ===================" $ define /user sys$error testisxn.err $ bibclean -init bibclean.ini testisxn.org >testisxn.bib $ write sys$output "" $ diff testisxn.bok testisxn.bib $ write sys$output "" $ diff testisxn.eok testisxn.err $ write sys$output "=================== end BibTeX test 6 ===================" $ ! $ write sys$output "================== begin Scribe test 1 ===================" $ define /user sys$error testscr1.err $ bibclean -init bibclean.ini -scribe -no-check testscr1.org >testscr1.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testscr1.bok testscr1.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testscr1.eok testscr1.err $ write sys$output "=================== end Scribe test 1 ====================" $ ! $ write sys$output "================== begin Scribe test 2 ===================" $ define /user sys$error testscr2.err $ bibclean -init bibclean.ini -scribe -no-check testscr2.org >testscr2.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testscr2.bok testscr2.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testscr2.eok testscr2.err $ write sys$output "=================== end Scribe test 2 ====================" $ ! $ write sys$output "================== begin Scribe test 2a===================" $ define /user sys$error testscr2.er2 $ bibclean -init bibclean.ini -scribe -file-pos -no-check -no-par - testscr2.org >testscr2.bi2 $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testscr2.bo2 testscr2.bi2 $ write sys$output "" $ diff testscr2.eo2 testscr2.er2 $ write sys$output "=================== end Scribe test 2a====================" $ ! $ write sys$output "================== begin Scribe test 3 ===================" $ define /user sys$error testscr3.err $ bibclean -init bibclean.ini -scribe -no-check testscr3.org >testscr3.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testscr3.bok testscr3.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testscr3.eok testscr3.err $ write sys$output "=================== end Scribe test 3 ====================" $ ! bibclean-3.07/vms/vax/0000775000156700015670000000000014431412256013513 5ustar beebebeebebibclean-3.07/vms/vax/config.h0000644000156700015670000001246006142246616015137 0ustar beebebeebe/* config.h. Generated automatically by configure. */ /* WARNING: Do NOT edit the config.h file; instead, put any needed changes in custom.h, so that they can override assumptions made in the automatically-generated config.h file */ /* #undef STDC_HEADERS */ /* #undef _ALL_SOURCE */ /* #undef _POSIX_SOURCE */ #define HAVE_STDC 1 /* Define if you want old pattern-less string matching in .ini files */ /* #undef HAVE_OLDCODE */ /* Define if you want standard bibclean-specific pattern in .ini files */ #define HAVE_PATTERNS 1 /* Define if you want regular-expression patterns in .ini files using re_comp() */ /* #undef HAVE_RECOMP */ /* #undef HAVE_REGEXP */ #if !(defined(__cplusplus) || defined(c_plusplus)) /* Define to empty if the keyword does not work, but do nothing in */ /* C++ environment, because autoconf 2.4 gets the wrong answer from */ /* the AC_C_CONST test program under C++ compilation. */ #define const #endif /* Define if your free() requires (char*) cast instead of (void*) */ /* #undef FREE_CAST_IS_CHAR_STAR */ /* Define if your compiler recognizes \a as an alert (ASCII BEL) character */ #define HAVE_ALERT_CHAR 1 /* Library functions that we need */ /* #undef HAVE_GETCWD */ /* #undef HAVE_GETWD */ /* #undef HAVE_STRCSPN */ /* #undef HAVE_STRDUP */ /* #undef HAVE_STRSPN */ /* #undef HAVE_STRSTR */ /* #undef HAVE_STRTOD */ /* #undef HAVE_STRTOL */ /* Header files that we might need */ /* #undef HAVE_CONIO_H */ #define HAVE_CTYPE_H 1 #define HAVE_DESCRIP_H 1 #define HAVE_ERRNO_H 1 #define HAVE_FCNTL_H 1 #define HAVE_IODEF_H 1 /* #undef HAVE_IO_H */ #define HAVE_JPIDEF_H 1 #define HAVE_LIMITS_H 1 #define HAVE_MEMCHR 1 #define HAVE_MEMCPY 1 #define HAVE_MEMCMP 1 #define HAVE_MEMMOVE 1 #define HAVE_MEMSET 1 #define HAVE_OSFCN_H 1 /* #undef HAVE_PWD_H */ #define HAVE_REGEXP_H 1 #define HAVE_REGEX_H 1 #define HAVE_RMS_H 1 #define HAVE_SGTTY_H 1 #define HAVE_SSDEF_H 1 #define HAVE_STAT_H 1 #define HAVE_STDDEF_H 1 #define HAVE_STDIO_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 /* #undef HAVE_SYS_IOCTL_H */ /* #undef HAVE_SYS_PARAM_H */ /* #undef HAVE_SYS_STAT_H */ /* #undef HAVE_SYS_TYPES_H */ #define HAVE_TERMIOS_H 1 #define HAVE_TERMIO_H 1 #define HAVE_TIME_H 1 /* #undef HAVE_TT2DEF_H */ #define HAVE_TTDEF_H 1 /* #undef HAVE_TYPES_H */ #define HAVE_UNISTD_H 1 #define HAVE_UNIXIO_H 1 #define RCSID(s) static char rcsid[] = s; #define OS_VAXVMS 1 #define OS_UNIX 0 #define OS_PCDOS 0 #define OS_ATARI 0 #include /* NB: some systems have Standard C header files, but compilers that do not accept function prototypes (e.g. HP HP-UX 9.0.3 /bin/cc) */ #if defined(STDC_HEADERS) && (defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)) #define ARGS(plist) plist #define VOID void #else #define ARGS(plist) () #define VOID #endif #define SCREEN_LINES 24 /*********************************************************************** The limit on file name lengths is non-standard: -------- ------------- ------------------------------------------ Name Definition System -------- ------------- ------------------------------------------ FNMAX PCC-20 MAXPATH Turbo C 2.0, C and C++ 3.0, and TopSpeed C _MAX_PATH Microsoft C 5.0, 6.0, 7.0 and TopSpeed C MAXPATHLEN Sun OS (4.2BSD), 4.3BSD, Gould UTX/32, HPUX, KCC-20, AIX (RT, RS, PS/2, 370), HP/Apollo DomainOS, DEC Alpha (OSF/1) PATH_MAX SYS V (Silicon Graphics) PATH_MAX POSIX, DEC Alpha (OSF/1) FILENAME_MAX Intel RMX, NeXT Mach, Turbo C/C++ 3.0 -------- ------------- ------------------------------------------ ***********************************************************************/ #if defined(HAVE_SYS_PARAM_H) #include #endif #if defined(HAVE_LIMITS_H) #include #endif #if defined(HAVE_STDLIB_H) #include #endif #if defined(HAVE_UNIXIO_H) #include #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN FNMAX #endif #if !defined(MAXPATHLEN) && defined(MAXPATH) #define MAXPATHLEN MAXPATH #endif #if !defined(MAXPATHLEN) && defined(_MAX_PATH) #define MAXPATHLEN _MAX_PATH #endif #if !defined(MAXPATHLEN) && defined(PATH_MAX) #define MAXPATHLEN PATH_MAX #endif #if !defined(MAXPATHLEN) && defined(FILENAME_MAX) #define MAXPATHLEN FILENAME_MAX #endif #if !defined(MAXPATHLEN) && defined(FNMAX) #define MAXPATHLEN 1024 #endif #if OS_PCDOS #define SEP_COMP " ;,|" /* separators between filename components */ #define SEP_PATH "\\" /* separators between directory path and filename */ #endif #if OS_UNIX #define SEP_COMP " ;:,|" /* separators between filename components */ #define SEP_PATH "/" /* separators between directory path and filename */ #endif #if OS_VAXVMS #define SEP_COMP " ;,|" /* separators between filename components */ #define SEP_PATH ":]" /* separators between directory path and filename */ /* first char is what we default to */ #endif #if defined(__TURBOC__) /* #undef fileno */ #define fileno(f) ((f)->fd) #endif #include #if !defined(HAVE_IOCTL_PROTOTYPE) #if defined(__cplusplus) || defined(c_plusplus) /* system files should have: extern "C" {int ioctl ARGS((int, int, ...));} */ #else extern int ioctl ARGS((int, int, ...)); #endif #endif #if defined(FREE_CAST_IS_CHAR_STAR) #define FREE(p) free((char*)(p)) #else #define FREE(p) free((void*)(p)) #endif #define _AIX370 0 bibclean-3.07/vms/vax/getoneheader.com0000644000156700015670000000010306142227426016640 0ustar beebebeebe$ library /extract='p1' /output='p1'.h SYS$LIBRARY:DECC$RTLDEF.TLB bibclean-3.07/vms/vax/match.obj0000644000156700015670000002054506142246430015306 0ustar beebebeebeMATCHV1.0 2-MAY-1996 17:07DEC C V4.0-000R MATCH` match_patternnoname.3match_pattern1Tmatch_pattern2HP !#()*+,-./:;?[]~6P !#()*+,-./:;?[]~$P !#()*+,-./:;?[]~P !#()*+,-./:;?[]~P !#()*+,-./:;?[]~P$Id: match.c,v 1.1 1995/10/07 15:50:28 beebe Exp beebe $`P^PPϊP޼P`PP1W޼P`QQPP WFP?P1JDECC$GA___CTYPEQ޼P`PʏP@aPʏPP1uݬsP14DECC$GA___CTYPEQ޼P`PʏP@aPʏPP19DECC$GA___CTYPEQ޼P`PʏP@aPʏPP1ݬPDECC$GA___CTYPEQ޼P`PʏP@aPʏPP1DECC$GA___CTYPEQ޼P`PʏP@aPʏPP1ݬϳP1tDECC$GA___CTYPEQ޼P`PʏP@aPʏPP1yDECC$GA___CTYPEQ޼P`PʏP@aPʏPP1ݬSPDECC$GA___CTYPEQ޼P`PʏP@aPʏPP1޼P`PPISROMANP1ݬP1޼P`PPISROMANP1޼P`PPISROMANP%PݬϿP޼P`PPISROMANP1kPDECC$GA___CTYPEQ޼P`PʏP@aPʏPP1mDECC$GA___CTYPEQ޼P`PʏP@aPʏP noname.18 noname.21 noname.23 noname.24 noname.22@ noname.25| noname.26 noname.28 noname.29 noname.27 noname.30 noname.314 noname.33A noname.34V noname.32 noname.35 noname.37 noname.38 noname.36  noname.390 noname.41= noname.42a noname.40a noname.43amatch_pattern3 noname.44 noname.47 noname.48 noname.46 noname.50 noname.515 noname.49P1ݬGPDECC$GA___CTYPEQ޼P`PʏP@aPʏPP1DECC$GA___CTYPEQ޼P`PʏP@aPʏPP1DECC$GA___CTYPEQ޼P`PʏP@aPʏPP1ݬPDECC$GA___CTYPEQ޼P`PʏP@aPʏPPDECC$GA___CTYPEQ޼P`PʏP@aPʏPP1DECC$GA___CTYPEQ޼P`PʏP@aPʏPP1ݬGPDECC$GA___CTYPEQ޼P`PʏP@aPʏPPDECC$GA___CTYPEQ޼P`PʏP@aPʏPP4PݬPDECC$GA___CTYPEQ޼P`PʏP@5 noname.528 noname.45h noname.53 noname.55 noname.56 noname.54 noname.57match_pattern4 noname.58 noname.61 noname.62 noname.60D noname.64Q noname.65u noname.63aPʏPP1)1DECC$GA___CTYPEQ޼P`PʏP@aPʏPP1DECC$GA___CTYPEQ޼P`PʏP@aPʏPP1ݬgPDECC$GA___CTYPEQ޼P`PʏP@aPʏPP޼P`PP4 DECC$STRCHRP1P޼P`PP' DECC$STRCHRP)PݬP޼P`PP DECC$STRCHRPDECC$GA___CTYPEQ޼P`PʏP@aPʏPP2ݬϯPDECC$GA___CTYPEQ޼P`PʏP@aPʏPP1E1IDECC$GA___CTYPEQ޼P`PʏP@aPʏPP1Mu noname.66x noname.59 noname.67 noname.69 noname.70 noname.68$ noname.71L noname.72h noname.74u noname.75 noname.73 noname.76p noname.20@ noname.77noname.2 noname.78 noname.79 noname.19s pattern  next_s noname.82next_s5Lnext_s6DECC$GA___CTYPEQ޼P`PʏP@aPʏPP1ݬ'PDECC$GA___CTYPEQ޼P`PʏP@aPʏPP1޼P`PP DECC$STRCHRP 1P1޼P`PP DECC$STRCHRP 1P޼P`PP DECC$STRCHRP)PݬϋP޼P`PP DECC$STRCHRP3PPP޼P`Q޼P`PQP>Pݬ@R @ quot  remR @ quot  remRstat st_dev  st_ino*&Pst_mode`st_nlink st_uid st_gidst_rdev st_sizest_atimest_mtime0st_ctimeP st_fab_rfmX st_fab_rat` st_fab_fszh st_fab_mrsR  NO YESR s_pattern@pattern  message DECC$GA___CTYPEdecc$ga___ctype-)& rcsid*&998:`0.&PUBLIC$DISK:[NBEEBE.BIBCLEAN]MATCH.H;1<e(PUBLIC$DISK:[NBEEBE.BIBCLEAN]YESORNO.H;1=)j56ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1CTYPE;B'PUBLIC$DISK:[NBEEBE.BIBCLEAN]XCTYPE.H;1> )G6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STRING< iF(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XSTRING.H;1> 96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB< {(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XSTDLIB.H;1; 'PUBLIC$DISK:[NBEEBE.BIBCLEAN]CUSTOM.H;1<6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STAT=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO> 6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1UNIXIO>96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB> j6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1LIMITS=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO< (PUBLIC$DISK:[NBEEBE.BIBCLEAN]CONFIG.H;11:@o&PUBLIC$DISK:[NBEEBE.BIBCLEAN]MATCH.C;1 h \ |] &      |  d 7 0  u i       j     }  k    l  m  n DECC$GA___CTYPEISROMAN DECC$STRCHR ` MATCH_PATTERN $CODE9$DATAjJ~>`bibclean-3.07/vms/vax/bibclean.obj0000644000156700015670000011030406142246423015744 0ustar beebebeebeBIBCLEANV1.0 2-MAY-1996 17:02DEC C V4.0-000 FIELD_INDENTATION VALUE_INDENTATION  TYPE_NAME  ALIGN_EQUALS AT_LEVEL  BRACE_LEVEL  CHECK_VALUES CLOSE_CHAR CURRENT_ENTRY_NAME CURRENT_FIELD CURRENT_KEY CURRENT_VALUE DELETE_EMPTY_VALUES DISCARD_NEXT_COMMA EOFILE  FIX_INITIALS  FIX_NAMES FIX_FONT_CHANGESFPININITIALIZATION_FILE_NAME  IN_PREAMBLE  IN_STRING IN_VALUE  IS_PARBREAK KEEP_LINEBREAKS KEEP_PARBREAKS KEEP_PREAMBLE_SPACES  KEEP_SPACES KEEP_STRING_SPACES  MAX_WIDTH NON_WHITE_CHARS ! PARBREAKS " PRETTYPRINT #PRINT_PATTERNS$ PROGRAM_NAME % PATTERN_NAMES &READ_INITIALIZATION_FILES 'REMOVE_OPT_PREFIXES (RFLAG ) SCREEN_LINES *SCRIBE+ SHARED_STRINGP%%P%%P P%s%s "%s", line %ld: %s. P: FAILEDP%%P%s open file [%s]%s nPOut of string memoryDPPushback buffer overflow: characters lostPUnexpected paragraph break for field ``%f''P\%03oP CurrentP Value P Entry P] P] output [P File positions: input [P output byte=%ld line=%ld column=%2ld |P input byte=%ld line=%ld column=%2ldxP%ldvP sP" pP "hP# line fP@\PBIBINPUTSQPSYS$SYSTEMJPstdout<Pbibclean.ini0PBIBCLEANINI$PBIBCLEANINIP"#%'(),={}POut of memory for pattern tablesP??P%s %s P??P. P P??P P??P??P%s "%s", line %ld: %s. 5P4P.P)P&P%P%P%P%P% P%(PPyearPvolumePpagesPnumberPmonthPchapter"P!PPHPP PPP ,SHOW_FILE_POSITION-STDLOG .STDLOG_ON_STDOUT/ TOKEN_START0 THE_ENTRY1THE_FILE2 THE_VALUE 3TRACE_FILE_OPENING 4WARNINGS 5WRAPPINGDECC$GA___CTYPEDECC$GA_STDOUTDECC$GA_STDERR DECC$EXITCMD_LIN DO_PREARGSDO_OTHERDO_FILESDO_ARGSWARNINGPUT_BACKOUT_WITH_ERROR OUT_VERBATIM OUT_TOKEN OUT_STRING OUT_SPACESOUT_S OUT_NEWLINE OUT_FLUSHOUT_CGET_CHARFREE_PATTERN_TABLE_ENTRIESFATALERROR CHECK_INODES DO_INITFILEKBOPENKBCLOSEGET_SCREEN_LINESDO_MORE DECC$TOUPPER DECC$TOLOWERSTRNICMPSTRDUP DECC$MEMMOVE DECC$STRLEN DECC$STRCHR DECC$STRNCPY DECC$STRCPY DECC$GETENV DECC$EXIT DECC$MALLOC DECC$FREE DECC$FPUTS DECC$FPUTC DECC$FGETC DECC$DSPRINTF DECC$DFPRINTF DECC$FOPENRBIBCLEANapply_functionnoname.3apply_function1 &.8@HLX`hqx~PVALUEPSTRING~PSPACExPSHARPqPRBRACEhPPREAMBLE`PNEWLINEXPLITERALLPLBRACEHPKEY@PINLINE8PINCLUDE.PFIELD&PEQUALS PENTRYPCOMMENTPCOMMAPATPABBREVPUNKNOWNPPP$Id: bibclean.c,v 1.10 1996/04/26 01:15:13 beebe Exp beebe $P^ݬ DECC$STRLENPŭ Q޼PA`P`1ŭ QЬPAPѭ`Эŭ QЬPAP`ݭŭnoname.5*noname.6Mapply_function2hnoname.7lhnoname.9noname.2noname.8kn option  table Rbcolumn noname.11 bdelc bdelc3 bdelc4 noname.14 noname.15 noname.167 noname.13 noname.17Mbdelline  noname.20$ noname.217 noname.227 noname.197 noname.238 8bflushh noname.26h noname.27 noname.28 noname.25 Q޼PA`P`ݬSTRNICMPPŭ QЬPAP`P`%PPŭ Q޼PA`P`1wP^1\Ь P1QPՠ@7\\@\\@Р@\LD\\  С   \\ P^Rբ@&Т@\LC\\ բ@Т@\LC\\ ^RТ@\LDТ@խ-Э\LC\\ P\\խЭ\LC\\ խoЭ\LD\\ aЭ\LDDECC$GA_STDOUT\lD DECC$FPUTSDECC$GA_STDOUT\l  DECC$FPUTCЭ\LE DECC$STRLENP@ݢ@Э\LEDbflush5^ noname.29bflush6 noname.31 noname.30' noname.32k (blastcH noname.34P noname.35T noname.363 \bpeekc noname.38 noname.39 noname.40k offsetK bputc noname.42 bputc7 noname.43 noname.44 noname.45  noname.46c DECC$MEMMOVEբ@DECC$GA_STDOUT\lD DECC$FPUTS@DECC$GA_STDOUT\l DECC$FFLUSH^Pՠ@Р@\LC\\ЏPP^Q@PPPѭ@ЭP@DPP PЏPP ^1SRѢ@ nѬ P $PP$  PP PPТ@QQPP@AD^2W-XVH RRH OUT_FLUSH((1P ݬPݭݧ1nQh DECC$DFPRINTF]hϚhd  error noname.48p  msg  fatal? noname.50 msg 0 @format noname.53format8format9 noname.54 DECC$FFLUSHIDECC$GA_STDOUTRb07DECC$GA_STDOUTRb'DECC$GA_STDOUTRbݭDECC$GA_STDOUTRb DECC$GA_STDOUTRb DECC$GA_STDOUTRb OUT_FLUSH^ݬ- DECC$DFPRINTFݏ DECC$EXIT^ W V U TSЭR޼PB`RR1ЭP޼Q@aPP%1\PPЭP޼Q@aQQ%1Q%1Qe1QPPeP P?P1d DECC$STRLENPPP+ݏformat10ݬè  DECC$STRNCPYݐç0è PP1/PdЭP@è  DECC$STRCPYPP1Pe DECC$STRLENPPP+ݏݬè  DECC$STRNCPYݐç0è PP1PeЭP@è  DECC$STRCPYPP1Pf DECC$STRLENPPP+ݏݬè  DECC$STRNCPYݐç0è PP1WPfЭP@è  DECC$STRCPYPP1Pg DECC$STRLENPPP+ݏݬè  DECC$STRNCPYݐç0è PP1PgЭP@è  DECC$STRCPYPP<P noname.62 noname.65(  noname.66  noname.67  noname.64  noname.55(  noname.69H  noname.68H  noname.70d  noname.52|  noname.63k lenn msg C free_match_pattern free_match_pattern11  noname.72 free_match_pattern12  noname.73  noname.74 mp RC free_pattern_table free_pattern_table13  noname.76  noname.77 pt R!! free_pattern_table_entries# free_pattern_table_entries14  noname.81  noname.821  noname.80G  noname.83aW  noname.79W  noname.84k pt RۭQQPP%Aè (ݏݬè  DECC$STRNCPYϐç0è PP1VPѭ*ݏݬè  DECC$STRNCPYç0è PPWPЭRRPPЭP޼Q@aBè PPPЭP޼Q@aPP1 ЭRBè è RRPP^޼P`޼P` DECC$FREE޼P`ЬPՠЬPݠ DECC$FREEЬP^լݬFREE_PATTERN_TABLE_ENTRIESݬ DECC$FREEP^լaЬPѭ,P޼QЭPޱQ@agPPЬPѭ޼P`޼P` DECC$FREEЬPЬP^lX  free_tablest  noname.87t  free_tables15:  noname.88  noname.86  noname.89kl get_char  noname.91  noname.924  noname.93:  get_char16T  noname.95u  get_char17  noname.97  get_char18  noname.99  get_char19  noname.100  noname.98  noname.96  noname.94  noname.101  noname.103  noname.102  noname.104c'  get_linebreak0  noname.1070 get_linebreak20@ get_linebreak21@  noname.108H  noname.109P  noname.110\  noname.112,%RЭ\~Lb\lOЭ\~L\lCЭ\~Lb\l DECC$FREEЭ\~Lb\lЭ\~L\l\\Э\~Lb\l< ^1S UTRx x \\x x \L€  DECC$FGETCP\\ѭ 1ѭ \\У  eePDECC$GA___CTYPEP\ʏ\L`\ʏ\\У  \\ e\\e*ѭ У  \\\ PУ  \\ ѭ{ d\\dPѭ}d\\dЭP^GET_CHARPѭ1DECC$GA___CTYPEP\ʏ\L`\ʏ\  noname.113  noname.114  noname.106  noname.115  noname.116  noname.111c ns get_next_non_blank  noname.118 noname.1204 noname.1224get_next_non_blank22t noname.125tget_next_non_blank23get_next_non_blank24 noname.126 noname.129 noname.127 noname.132 noname.128B noname.131T\\dPѭ  ѭ  PjPbP\\GET_CHARPѭ!DECC$GA___CTYPEP\ʏ\L`\ʏ\\ݭPUT_BACKխ PP^STRGET_CHARP1&PGET_CHARP1GET_CHARP1dGET_CHARPѭ1DECC$GA___CTYPEP\ʏ\L`\ʏ\\1ѭ  ѭ $BPbc 1P\\%bc ЭkP\\P noname.133 noname.134 noname.124  noname.135 noname.136 noname.137 noname.123 noname.121 noname.119  noname.130c ff nlo( init_tablesT noname.140T init_tables25 noname.141| noname.142 noname.143 noname.139 noname.144kisidcharGET_CHARPѭ$DECC$GA___CTYPEP\ʏ\L`\ʏ\\1sѭխdPdЭPP^%Rѭd1Э\~Lb\l1Э\~Lb\lSTRDUPЭ\~Lb\Pl  DECC$MALLOCЭ\~L\PlЭ\~L\l ]FATALЭ\~L\޼\lЭ\~L\l\Э\~L\l\\\ѭdЭ\~Lb\l1b^*JDECC$GA___CTYPEQPʏP@aPʏPPѬ.Ѭ#Ѭ& Ѭ%ЭDPDECC$GA___CTYPEQPʏP@aPʏPPݬϝC noname.148L noname.146 noname.151 noname.152 noname.149 noname.153c main DECC$STRCHRPЭP^DECC$MAIN_ARGS1STR P^1STRݬ߬3CMD_LINP% DECC$GETENVP! DECC$GETENVP PPdDECC$GA_STDERRP`-޼P`$ CHECK_INODESPPcPPݬݬ DO_PREARGS& DECC$GETENVݭP DO_INITFILE&Ͼ DECC$GETENVݭP DO_INITFILEݬݬDO_ARGSd" ЏHdЏdݬݬ MAIN noname.156 noname.157% noname.158 noname.159 noname.160 noname.162 noname.163 noname.161 noname.165 noname.166$ noname.167( noname.168, noname.169< noname.170initfile  argc argv DMemmovef Memmove26 noname.174 noname.175 noname.173K noname.172 Memmove27 noname.178 noname.179 noname.1771 noname.176 noname.180t s  target source n Memset noname.183 noname.184 noname.182  noname.185t  target value n? (out_at< noname.187 @out_cout_c28DO_FILESeH  Џݭ DECC$EXITH  ЏPխ ݭ DECC$EXITP^ЬЬѭZ PѭPN PPP PPPլ ,PЭRRPPЭQQPPab RR լ 2լ ,PЭQQRRЭPPRR`a RR լ P^Ьլ ЭQQPPa PP լ ЬPP^4 OUT_STRINGP^1RЬPP'P 1P.PP 1 ϳ1H#1@k18ϋPDECC$GA___CTYPEQPʏP@aPʏ noname.189 noname.193 noname.192 noname.191 noname.197 noname.198 noname.196 noname.200out_c29out_c30 $ noname.201$ noname.202J noname.203J noname.199P noname.190e noname.204e noname.206j noname.207 noname.205 noname.194out_c31out_c32 noname.209+ noname.208P noname.195 noname.210 offsetc out_error noname.212 noname.213 noname.214 fpout Rs 0 out_flush% noname.216"(out_input_positionl noname.218 pair RPP1PZPDECC$GA___CTYPEQPʏP@aPʏPPݭ\PѬ<Ѭ 6Ѭ%  φ&PPݭ&PѬѬ 1PPѬ Ѭ FϹPѬ Ѭ  !GP"1Ѭ +QPQТ ݏ\ ݬP^DECC$GA_STDOUTPѬ`ݬOUT_Sݬݬ DECC$FPUTS^ݏOUT_CݏOUT_CP^6OUT_SЬPݠϾ%OUT_S޼P`OUT_SOUT_SPEp out_lines out_lines33 noname.222 noname.223 noname.221 noname.224 out_lines34 out_lines35 noname.226: noname.225 noname.227 out_lines36X noname.229o noname.232o noname.231| noname.233 noname.235 noname.234n noname.228 noname.236 noname.237 noname.230 noname.220 out_lines37 noname.240 noname.241 noname.239A noname.238 noname.242klines_on_screen nlines fpout R lines  pausing Rz out_newline noname.244^)RѬ 1#KBOPENЭP޼Q@aPPPЭP޼Q@aЭP޼Q@a:ݬЭP޼Q@a DECC$FPUTS ЭP޼Q@a DECC$STRCHRP PPbPѭP ЭP޼Q@arGET_SCREEN_LINESPbݬbPPݭݬDO_MOREPѭFѭ bPPPPխPѭ PP PPP1$KBCLOSEDPЭP޼Q@a0PݬЭP޼Q@a DECC$FPUTSPPЭP޼Q@aP^π  OUT_STRINGP^ݬf out_number( noname.246 number*&n%, out_position noname.248s*&;;: fpout  R msg  the_location  R~ out_s noname.251out_s38 out_s39L noname.256] noname.257 noname.259out_s40 noname.262 noname.263 noname.2610 noname.260 noname.258 noname.264 noname.250 noname.265s  DECC$DSPRINTFOUT_SP^ݬݬϕЬ Pݠ Ь PݠЬ Pݠ  DECC$DSPRINTFݬ`Ь Pݠ Ь Pݠ$Ь Pݠ DECC$DSPRINTFݬ+P<^5U1RTS޼P`PP1޼P`QQPPP P?P1e'PPf PQ PQPPd P޼P`PPOUT_Cv OUT_C OUT_Cc  OUT_SPACESQ OUT_Cc0 OUT_SPACESЬPPP PPPЬPPP ޼P`PPOUT_CPP޼P`PPA out_spaces out_spaces41 noname.269 noname.270 noname.268 noname.267 noname.271n-  out_status8 out_status42 noname.273 noname.274 fpout  R prefix  out_string noname.2764 noname.278L noname.280[ noname.281[ noname.279[ noname.277[ noname.282 type  R token l\ out_token noname.284 out_token431P^"լ OUT_CPPլP^R,1ݬݬϏ~ݬρP ݬs~ݬed ݬWnݬIݬݬ<0Pݬݬݬ28ݬ]ݬݬP "ݬ=^ ݬ OUT_VERBATIMGݬ OUT_VERBATIM("ݬOUT_SPݬݬ OUT_TOKEN ^/SR޼P`PP1P¨0cϘУ¨0ݬe OUT_CЬP@ noname.286 noname.288OUT_S OUT_C"OUT_C޼P`PP1P޼P`QQ1QPP,P P?PP\1,P\1 ݏ\OUT_C޼P`PPOUT_C1fPݏ\OUT_CݏbOUT_C1Eݏ\OUT_CݏfOUT_C1%ݏ\OUT_CݏnOUT_C1ݏ\OUT_CݏrOUT_C1ݏ\OUT_CݏtOUT_C1ݏ\OUT_CݏvOUT_C1ݏ\OUT_CݏnOUT_Cݏ\OUT_CݏnOUT_CjPDECC$GA___CTYPEQ޼P` out_token44P out_token45 noname.301 out_token46, noname.302 noname.300 noname.303 noname.287 noname.285 octal*& type  R token  DECC$FFLUSH APPLY_FUNCTION ERROR FATAL FREE_PATTERN_TABLE_ENTRIES <GET_CHAR GET_LINEBREAK GET_NEXT_NON_BLANK ISIDCHAR __MAIN MAIN D DECC$MEMMOVE  DECC$MEMSET (OUT_AT @OUT_C  OUT_FLUSH p OUT_LINES  OUT_NEWLINE <OUT_S  OUT_SPACES  OUT_STRING \ OUT_TOKEN out_verbatim noname.306out_verbatim47(out_verbatim48( noname.3074 noname.308L noname.3097` noname.310L` noname.311t noname.305t noname.312 token qxout_with_error noname.314s  msg !out_with_parbreak_error noname.316s put_back put_back49PʏP@aPʏhPP޼P`PPOUT_C-޼P`PʏPPT DECC$DSPRINTFOUT_SPPP޼P`PP1"OUT_C OUT_C^޼P`PP`޼P`PPP% OUT_C, OUT_C OUT_CP޼P`PPOUT_CPP޼P`PPP^ݬOUT_SݬERRORP^rݬOUT_WITH_ERRORP^1STRx jWARNING1x QQPPx ЬA€ PPDECC$GA___CTYPEQPʏP@aPʏPP noname.3182 noname.320H noname.321N put_back50` noname.323p noname.325y noname.326y noname.324y noname.322 noname.327 noname.329 noname.328 noname.319c resync noname.331 Strdup noname.333 noname.334p s O stricmp\ noname.338g noname.339 noname.341 noname.342 noname.343 stricmp51 PP Ѭ 4PѬ У PPPѬ  У  P PP Ѭ{ dPPdѬ}dPPdP^(DO_OTHER ^ݬ DECC$STRLENPP DECC$MALLOCPխ χFATALݬݭ DECC$STRCPYPP ^޼P`PP1VDECC$GA___CTYPEQ޼P`PʏP@aPʏPP޼P`PP DECC$TOUPPERP P޼P`PPDECC$GA___CTYPEQ޼P`PʏP@aPʏPP޼P`PP DECC$TOUPPERP P޼P`PPѭ1PPP noname.344  noname.347#  noname.348`  noname.350k  noname.351u  noname.345u  noname.336  noname.353  noname.354  noname.356! noname.357! noname.358 s1  s2  !strnicmpD! noname.361D! strnicmp52PP޼P`PP1DECC$GA___CTYPEQ޼P`PʏP@aPʏPP޼P`PP DECC$TOUPPERP ޼P`PPDECC$GA___CTYPEQ޼P`PʏP@aPʏPP޼P`PP DECC$TOUPPERP P޼P`PPѭ1GDECC$GA___CTYPEQ޼P`PʏP@aPʏPP޼P`PP DECC$TOUPPERP ޼P`PPDECC$GA___CTYPEQ޼P`PʏP@aPʏPP޼P`PP DECC$TOUPPERP P޼P`PPíPPP^լ 1(޼P`PP1޼P`PP1 PDECC$GA___CTYPEQ޼P`x! noname.363! noname.364! noname.366! noname.367" noname.368" noname.371" noname.370" noname.372M" noname.373M" noname.360\" noname.374x" noname.377" noname.378" noname.376" noname.379" noname.375" noname.369 c1 c2 s1  s2  n{ "tfopen" noname.383" noname.384" noname.381" noname.385 fp Rfilename  mode PʏP@aPʏPP޼P`PPP޼P`PP DECC$TOLOWERPˏPPDECC$GA___CTYPEQ޼P`PʏP@aPʏPP޼P`PP޼P`PP DECC$TOLOWERPˏPPѭЏ1Pѭ {PPPPP PP լ ޼P`PP޼P`PP1լ  42P޺P`PP޼P`PPЏ PP^ݬݬ DECC$FOPENP3<խPP PPPݭݬϺϠ- DECC$DFPRINTFЭP^2Wk#warning## warning53H# noname.389Q# noname.390t# noname.387# noname.391 msg # word_length# noname.394# word_length54# noname.395,# noname.396# noname.393$ noname.397$ noname.398$ noname.399ns $$ wrap_line:$ noname.401-XV4t OUT_FLUSH((1P . RR vRRݬPݧ1Vݭ0h DECC$DFPRINTFAhϓh DECC$FFLUSH^ЭP޼Q@aPPHPDECC$GA___CTYPERЭP޼Q@aPʏP@bRʏRRRRЭR޼PB`RRЭR޼PB`RR RRЭP^ OUT_NEWLINE OUT_SPACESP~z>zzzzzzzzzzzzzzzzzZPښv6P4   h8  $ #h  H =6  # - W  v\ 6 & k   7 = P2 x }$  jR 1 [ t X9  (2 8`n & "E ##RST ST STSTSTS_iobuf _cnt _ptr  @_base  `_flag h_file p_pad1 x_pad2R @R @ quot  remR @ quot  remRstat st_dev  st_ino*&Pst_mode`st_nlink st_uid st_gidst_rdev st_sizest_atimest_mtime0st_ctimeP st_fab_rfmX st_fab_rat` st_fab_fszh st_fab_mrsR keyboard_code KEYBOARD_EOFKEYBOARD_UNKNOWNKEYBOARD_AGAIN KEYBOARD_DOWN KEYBOARD_END KEYBOARD_HELP KEYBOARD_HOME KEYBOARD_PGDN KEYBOARD_PGUP KEYBOARD_QUIT KEYBOARD_SEARCH_BACKWARD KEYBOARD_SEARCH_FORWARD KEYBOARD_UP KEYBOARD_DOWN_PARAGRAPH KEYBOARD_UP_PARAGRAPHRSTS  NO YESRSTS s_pattern@pattern  message RSTS"s_option_function_entry` name  min_match@function R s_name_pair@old_name  new_name R s_positionfilename  byte_position@last_column_position`column_position line_numberR STSTS s_io_pair@ input T output TRSTSTSs_pattern_table`patterns T current_size@ maximum_sizeRs_pattern_names@ name  table TR ST STS token_list TOKEN_UNKNOWN TOKEN_ABBREVTOKEN_AT TOKEN_COMMA TOKEN_COMMENT TOKEN_ENTRY TOKEN_EQUALS TOKEN_FIELD TOKEN_INCLUDE TOKEN_INLINE TOKEN_KEY TOKEN_LBRACE TOKEN_LITERAL TOKEN_NEWLINETOKEN_PREAMBLE TOKEN_RBRACE TOKEN_SHARP TOKEN_SPACE TOKEN_STRING TOKEN_VALUEDECC$GA_STDERRdecc$ga_stderr TDECC$GA_STDOUTdecc$ga_stdout TDECC$GA___CTYPEdecc$ga___ctype-)&field_indentationvalue_indentation type_name3/P align_equals Tat_level brace_level check_values T  close_char current_entry_name*&  current_field*&  current_key*&  current_value*&delete_empty_values Tdiscard_next_comma T eofile T fix_initials T fix_names Tfix_font_changes T fpin Tinitialization_file_name  in_preamble T in_string Tin_value T is_parbreak Tkeep_linebreaks Tkeep_parbreaks Tkeep_preamble_spaces T keep_spaces Tkeep_string_spaces T max_width non_white_chars! parbreaks T" prettyprint T#print_patterns T$ program_name % pattern_names3/T dc &read_initialization_files T'remove_OPT_prefixes T (rflag T) screen_lines *Scribe T+ shared_string*&,show_file_position T -stdlog T.stdlog_on_stdout T/ token_start T0 the_entry T1the_file T2 the_value T3trace_file_opening T4warnings T5wrapping T rcsid*&==<@ buf_length Dbuf*&  H  error_countP  original_file Tx  n_pushback pushback_buffer*&(  newmsg*&0last_line_number;'PUBLIC$DISK:[NBEEBE.BIBCLEAN]TOKLST.H;1: &PUBLIC$DISK:[NBEEBE.BIBCLEAN]TOKEN.H;1<nx(PUBLIC$DISK:[NBEEBE.BIBCLEAN]PATTERN.H;1:`0.&PUBLIC$DISK:[NBEEBE.BIBCLEAN]MATCH.H;1<e(PUBLIC$DISK:[NBEEBE.BIBCLEAN]YESORNO.H;1; V'PUBLIC$DISK:[NBEEBE.BIBCLEAN]KEYBRD.H;1;"b,'PUBLIC$DISK:[NBEEBE.BIBCLEAN]DELETE.H;17D(#PUBLIC$DISK:[NBEEBE.BIBCLEAN]CH.H;1>i6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1UNISTD<c(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XUNISTD.H;1> j6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1LIMITS<ۼ(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XLIMITS.H;1=)j56ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1CTYPE;B'PUBLIC$DISK:[NBEEBE.BIBCLEAN]XCTYPE.H;1>)G6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STRING<iF(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XSTRING.H;1> 96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB< {(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XSTDLIB.H;1; c 'PUBLIC$DISK:[NBEEBE.BIBCLEAN]XTYPES.H;1= ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO; 'PUBLIC$DISK:[NBEEBE.BIBCLEAN]CUSTOM.H;1<6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STAT=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO> 6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1UNIXIO>96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB> j6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1LIMITS=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO< (PUBLIC$DISK:[NBEEBE.BIBCLEAN]CONFIG.H;11=gim)PUBLIC$DISK:[NBEEBE.BIBCLEAN]BIBCLEAN.C;1  \ |] &      |  d 7 0  u    |             }           қ A   +    3     n V  X @ 3   OUT_VERBATIM xOUT_WITH_ERROR OUT_WITH_PARBREAK_ERROR PUT_BACK STRDUP STRICMP !STRNICMP "TFOPEN #WARNINGDECC$MAIN_ARGS;$$CODE0$DATAFIELD_INDENTATIONVALUE_INDENTATIONP TYPE_NAME ALIGN_EQUALSAT_LEVEL BRACE_LEVEL CHECK_VALUES CLOSE_CHAR CURRENT_ENTRY_NAME  CURRENT_FIELD  CURRENT_KEY  CURRENT_VALUEDELETE_EMPTY_VALUESDISCARD_NEXT_COMMAEOFILE FIX_INITIALS FIX_NAMESFIX_FONT_CHANGES FPIN INITIALIZATION_FILE_NAME IN_PREAMBLE IN_STRINGIN_VALUE IS_PARBREAKKEEP_LINEBREAKSKEEP_PARBREAKSKEEP_PREAMBLE_SPACES KEEP_SPACESKEEP_STRING_SPACES MAX_WIDTHNON_WHITE_CHARS PARBREAKS PRETTYPRINTPRINT_PATTERNS  PROGRAM_NAME  PATTERN_NAMESREAD_INITIALIZATION_FILESREMOVE_OPT_PREFIXESRFLAG SCREEN_LINESSCRIBE  SHARED_STRINGSHOW_FILE_POSITION STDLOGSTDLOG_ON_STDOUT ( TOKEN_START ( THE_ENTRY (THE_FILE ( THE_VALUETRACE_FILE_OPENINGWARNINGSWRAPPINGxbibclean-3.07/vms/vax/do.obj0000644000156700015670000021611206142246426014616 0ustar beebebeebeDOV1.0 2-MAY-1996 17:03DEC C V4.0-000 Pfile=[%s] field=[%-12s] pattern=[%s] message[%s]  Pfile=[%s] field=[%-12s] pattern=[%s] [ P file=[%s] field=[%-12s] existing patterns discarded X P""T POPTP P""@*P0  FIX_NAMELIST7  FIX_NAMELIST>  FIX_MONTHD  FIX_PAGESJ  FIX_TITLEJ PtitleD Ppages> Pmonth7 Peditor0 Pauthor)P  CHECK_OTHER  CHECK_CHAPTER  CHECK_CODEN  CHECK_ISBN  CHECK_ISSN  CHECK_MONTH  CHECK_NUMBER  CHECK_PAGES$  CHECK_VOLUME+  CHECK_YEAR+ Pyear$ Pvolume Ppages Pnumber Pmonth PISSN PISBN PCODEN Pchapter Pauthor P{ P= P, P} P?? P%s Bad line [%s] in initialization file [%s]  PExpected BibTeX value string for field ``%f''X PScribe number string too long for field ``%f''0 PScribe string too long for field ``%f'' PExpected Scribe value string for field ``%f'' PEnd-of-file in quoted string PBibTeX string too long for field ``%f'' PBibTeX string too long for field ``%f''h PBibTeX string too long for field ``%f''E PEnd-of-file in braced string PUnexpected quote usage in German-style braced string PBibTeX string too long for field ``%f'' POut of memory for pattern table space P  P x PExpected Scribe separator "=", "/", or " " for field ``%f''. PExpected Scribe open delimiter, one of { [ ( < ' " ` for field ``%f''& PString PBegin PCommentHPExpected Scribe close delimiter `%c' [8#%03o], but found `%c' [8#%03o] instead for field ``%%f'' P"Comment" PendP@Comment{P"comment"PExpected open brace or parenthesis. Last entry = ``@%e{%k,''PNon-zero brace level at end-of-fileP??ZP%s Bad line [%s] in initialization file [%s] TP OP HP=: 2PCitation key too long0PrPBraced literal string too long for entry ``%e''PExpected open brace or parenthesis. Last entry = ``@%e{%k,''zP@ begins line, but brace level is not zero after entry ``@%e{%k,''lPperror() sayshP??@P %s Ignoring open failure on file [%s] >Pr8Pstdin6P-0Pstdin,POPT(PoptPNon-alphabetic character begins a field namePEntry field name too longP1FKPdx}'>ELbxPxxURNPxxurnPxxURLPxxurlPxxURIPxxuriPxxURIPxxuriPxxMRnumberPxxmrnumberPxxMRclassPxxmrclassPxxISSNxPxxissnbPxxISO-standard-numberLPxxiso-standard-numberEPxxISBN>Pxxisbn'PxxIEEE-standard-numberPxxieee-standard-numberPxxCODENPxxcodenPxxANSI-standard-numberPxxansi-standard-numberPURNPurnPURLPurlPURIPuriPMRnumberPmrnumberPMRclassPmrclassPLCCNPlccn}PISSNxPissndPISO-standard-numberPPiso-standard-numberKPISBNFPisbn1PIEEE-standard-numberPieee-standard-numberPCODENPcodenPANSI-standard-numberPansi-standard-numberP.iniPBIBCLEANEXTPBIBCLEANEXTPExpected "=" after field ``%f''PStringPPreamblePIncludepP@entry_name too longBPNon-alphabetic character begins an entry namePP ",77PTechReport,PTechreport"PPhdThesisPPhdthesis PMastersThesisPMastersthesisPInProceedingsPInproceedingsPInCollectionPIncollectionPInBookPInbookPDEAthesisPDeathesis}PExpected comma after last field ``%f''1PNon-zero brace level after @name{...} processed. Last entry = ``@%e{%k,''PExpected closing brace or parenthesis in entry ``@%e{%k,''PNon-zero brace level after @name{...} processed. Last key = ``%k''P P#P P # P#P#PStringPPreamblePInclude\PExpected @name{...} after entry ``@%e{%k,''P@ begins line, but brace level is not zero after entry ``@%e{%k,''PValue too long for field ``%f''P # POut of memory for pattern tablesP%%P%s Out of memory for pattern name [%s] -- pattern ignored HP{[(<'"`@P}])>'"`P $(048<DHPT\`lpx| (,048<@DHLPTX\`dhltx|PdecPDecPnovPNov|PoctxPOcttPseplPSepthPsepdPSep`Paug\PAugXPjulTPJulPPjunLPJunHPaprDPApr@Pmar<PMar8Pfeb4PFeb0Pjan,PJan(Pdec PDec.PnovPNov.PoctPOct.PsepPSept.PsepPSep.PaugPAug.PjulPJul.PjunPJun.PaprPApr.PmarPMar.PfebPFeb.PjanPJan.PdecPDecemberPnov|PNovemberxPoctpPOctoberlPsep`PSeptember\PaugTPAugustPPjulHPJuly  MONTH_PAIR  GERMAN_STYLEINITIALIZATION_FILE_NAMEWRAPPINGVALUE_INDENTATION THE_VALUETHE_FILE THE_ENTRY TOKEN_STARTSTDLOG SHARED_STRINGSCRIBERFLAGREMOVE_OPT_PREFIXESREAD_INITIALIZATION_FILESPRINT_PATTERNS PROGRAM_NAME PRETTYPRINT PATTERN_NAMES PARBREAKSNON_WHITE_CHARSKEEP_STRING_SPACES KEEP_SPACESKEEP_PREAMBLE_SPACESKEEP_PARBREAKSKEEP_LINEBREAKS IS_PARBREAKIN_VALUE IN_STRING IN_PREAMBLEFPINFIELD_INDENTATIONEOFILEDISCARD_NEXT_COMMADELETE_EMPTY_VALUES CURRENT_VALUE CURRENT_KEY CURRENT_FIELDCURRENT_ENTRY_NAME CLOSE_CHAR CHECK_VALUES BRACE_LEVELAT_LEVEL ALIGN_EQUALSDECC$GA___CTYPE DECC$GA_STDINWARNINGTFOPENPUT_BACKOUT_WITH_PARBREAK_ERROROUT_WITH_ERROR OUT_TOKEN OUT_STRING OUT_SPACESOUT_S OUT_NEWLINE OUT_FLUSHOUT_COUT_ATISOPTIONPREFIXISIDCHARGET_NEXT_NON_BLANK GET_LINEBREAKGET_CHARFREE_PATTERN_TABLE_ENTRIES FIX_TITLE FIX_PAGES FIX_NAMELIST FIX_MONTHFINDFILEFATALERROR DO_INITFILEDO_ARGS CHECK_YEAR CHECK_VOLUME CHECK_OTHER CHECK_PAGES CHECK_NUMBER CHECK_MONTH CHECK_ISSN CHECK_ISBN CHECK_CODEN CHECK_CHAPTER CHECK_KEYR DO add_one_pattern noname.2 add_one_pattern10 noname.4D noname.6D add_one_pattern2f add_one_pattern3 noname.8  noname.10  noname.11| noname.7DPjunVnoname.3gnoname.9m pt R fieldname  pattern message xh add_pattern noname.17 add_pattern4 add_pattern5# noname.18D noname.20 noname.16 add_pattern6  noname.211Iݬ STRDUPPQ޼SЬRТP޳R~@bRQbЬSУPPRR޼RbR~@RլЬbݬSTRDUPPbݬݬ ݬYD^ЭP~@ PATTERN_NAMESP``PݬЭP~@ PATTERN_NAMESP`STRICMPP&ݬ ݬݬЭP~@ PATTERN_NAMES3P`.1PPPЭP~@ PATTERN_NAMESP`ѭc!ݬϘSTDLOG DECC$DFPRINTF1PݬSTRDUPPQЭP~@ PATTERN_NAMESPQ`  DECC$MALLOCPQЭP~@ PATTERN_NAMES3PQ`ЭP~@ PATTERN_NAMES3P` u  add_pattern7a noname.23 noname.22 noname.19k fieldname pattern  message p append_value( noname.25( append_value81Y noname.26Y noname.27 n_cv n_ss FATALЭP~@ PATTERN_NAMES3P`P`ЭP~@ PATTERN_NAMES3P`PЭP~@ PATTERN_NAMES3P`Pݬ ݬݬЭP~@ PATTERN_NAMES3P`7ЭP~@ PATTERN_NAMES3P`ЭP~@ PATTERN_NAMES 3P` ^ CURRENT_VALUE DECC$STRLENPݬ DECC$STRLENPPPݬЭP@ CURRENT_VALUE DECC$STRCPY3P CURRENT_VALUEOUT_Sݬ CURRENT_VALUE DECC$STRCPYϫϞOUT_WITH_ERRORP<^((THE_FILE \do_at do_at9do_at10 noname.301 noname.29do_at11 noname.32 noname.31 noname.33cdo_BibTeX_entry TOKEN_STARTGET_CHARP((THE_FILE THE_ENTRYNON_WHITE_CHARS?ѭ@5AT_LEVELRRAT_LEVELOUT_AT BRACE_LEVEL^ERROR BRACE_LEVEL(PѭݭOUT_CvpOUT_WITH_ERROR^<YRFLAG EOFILE1K PRETTYPRINTݏOUT_C{RFLAG1P;CURRENT_ENTRY_NAME DECC$STRCMPP τ1#CURRENT_ENTRY_NAME DECC$STRCMPP 1 CURRENT_ENTRY_NAME noname.35 noname.364 noname.38H noname.39h noname.40 noname.42 noname.44do_BibTeX_entry12 noname.46 noname.47 noname.48 noname.49 noname.51do_BibTeX_entry134 noname.528 noname.53%= noname.54G noname.50T noname.55^ noname.45^ noname.43^ noname.41c noname.37pddo_BibTeX_valuex noname.57} noname.58} noname.59do_BibTeX_value_1 noname.62do_BibTeX_value_114 noname.63 noname.65 noname.66 noname.64a DECC$STRCMPP "1k PRETTYPRINTݏOUT_CRFLAG1P;JRFLAGvP#RFLAG^P  P0ϢRFLAG EOFILE-PϦ PRFLAGPϿ#^ PRETTYPRINT P<^((THE_FILE THE_VALUE CURRENT_VALUEC8P3rGET_CHARPѭ#s IN_PREAMBLEKEEP_PREAMBLE_SPACES,P IN_STRINGKEEP_STRING_SPACESϯ Pϣ noname.67. noname.61> noname.68c@do_BibTeX_value_2| noname.71 noname.72 noname.74do_BibTeX_value_215 noname.76  noname.77w7PGET_CHARPѭ#ݭPUT_BACK><^((THE_FILE THE_VALUEϊ7P CURRENT_VALUE DECC$STRCPY CURRENT_VALUERR" P CURRENT_VALUEݭ OUT_STRINGρGET_CHARPѭ#1 OUT_STRING OUT_STRING OUT_STRING:6P CURRENT_VALUE DECC$STRCPY CURRENT_VALUERR"P CURRENT_VALUEݭ OUT_STRINGGET_CHARPѭ#1uݭ# noname.787 noname.73B noname.79cDdo_close_braced noname.81ndo_close_brace16 noname.85 noname.863 noname.84do_close_brace17 noname.87 noname.83 noname.82c}do_comma noname.89 do_comma18 do_comma19   noname.92 noname.91 do_comma20/ noname.957 do_comma21L noname.97PUT_BACK^GET_CHARPѭ`^Pѭ CLOSE_CHAR6ѭ) BRACE_LEVEL\\ BRACE_LEVEL9 BRACE_LEVELOUT_WITH_ERRORݭOUT_CA;OUT_WITH_ERRORP<^((THE_FILE THE_VALUEGET_CHARPѭ1Pѭ,DISCARD_NEXT_COMMA }9 OUT_NEWLINE1Pѭ CLOSE_CHARvѭ) BRACE_LEVELRR BRACE_LEVEL BRACE_LEVEL9ѭ) BRACE_LEVELRR BRACE_LEVELݭPUT_BACKDISCARD_NEXT_COMMA 9_ do_comma22 k noname.984p noname.96p do_comma23 noname.99r noname.94 do_comma24 noname.100 noname.93 noname.90 noname.101c do_entry_name noname.104do_entry_name25. noname.105h noname.106 noname.108 noname.107 OUT_NEWLINEPݭOUT_CϱϫOUT_WITH_ERRORPݭOUT_COUT_WITH_ERRORDISCARD_NEXT_COMMA<^\((THE_FILE TOKEN_STARTGET_CHARPѭ1mݭISIDCHARP1[Pխ-DECC$GA___CTYPESRʏRBcRʏRR ERRORխ5DECC$GA___CTYPESRʏRBcRʏRRݭ DECC$TOUPPERP8Pխ0DECC$GA___CTYPESRʏRBcRʏRRݭ DECC$TOLOWERP PARBREAKS7 IS_PARBREAK.ЭRdo_entry_name26+ noname.109do_entry_name270 noname.111)BCURRENT_ENTRY_NAMERBCURRENT_ENTRY_NAMECURRENT_ENTRY_NAMEOUT_WITH_PARBREAK_ERROR1Pѭ2ЭRBCURRENT_ENTRY_NAMERBCURRENT_ENTRY_NAMEkCURRENT_ENTRY_NAMEOUT_WITH_ERROR1nPЭRBCURRENT_ENTRY_NAMERRGET_CHARPѭݭISIDCHARP1ЭRBCURRENT_ENTRY_NAMEѭ ݭPUT_BACKѭGЭR~BPRbCURRENT_ENTRY_NAME DECC$STRCMPPЭR~BTRbCURRENT_ENTRY_NAME% noname.112U noname.113U noname.103v noname.114 noname.116 noname.117 noname.118 noname.115 noname.119 noname.121< noname.123h noname.125y noname.126y noname.124y noname.122y noname.120 noname.110ckn DECC$STRCPYRRѭ PRETTYPRINTCURRENT_ENTRY_NAMEOUT_S1PϟCURRENT_ENTRY_NAME DECC$STRCMPPCURRENT_ENTRY_NAME OUT_TOKENkP{CURRENT_ENTRY_NAME DECC$STRCMPPCURRENT_ENTRY_NAME OUT_TOKEN?PXCURRENT_ENTRY_NAME DECC$STRCMPPCURRENT_ENTRY_NAME OUT_TOKENPCURRENT_ENTRY_NAME OUT_TOKENݭ CHECK_LENGTHP<^((THE_FILE THE_VALUE((THE_FILE do_equals noname.128 noname.130 do_equals28 noname.131 noname.129 noname.132cw do_escapes noname.134$ noname.137 TOKEN_STARTGET_CHARPѭ,ѭ= 7PݭOUT_CϿOUT_WITH_ERRORTHE_FILE 3VALUE_INDENTATIONRR OUT_SPACES^լ1PЬ޼P`PP1޼P`PP\1PP޼P`QQ01QPP0jP?PPa1XPaP PB?P1ЭQQPPa1PЭQQPPa1PЭQQPP a1PЭQQPP a1PЭQQPP a1PЭQQPP a1PЭQQPP a1PDECC$GA___CTYPEQЬPPʏP@aPʏPPЬP$ do_escapes297 do_escapes30 do_escapes31 noname.157 noname.158 noname.159) noname.155 noname.138 noname.160 noname.161 noname.136" noname.135 base endptr p s #$ do_fileinitL noname.163U noname.164g do_fileinit32 do_fileinit33D noname.166v noname.165 noname.167p  ext  bibfilename PP DECC$TOLOWERPPЬPPPѭxЭRRPPݭ߭ݬ DECC$STRTOLPbRRЭPPRR޼Rb`PPЭPPRR޼Rb`RR޼RbRR1 ^Ϛ DECC$GETENVPϖ DECC$GETENVP ϐPP.ݬ DECC$STRRCHRPvݬ DECC$STRLENPRݭ DECC$STRLENPRRR DECC$MALLOCPխDݬݭ DECC$STRCPY.ݭ DECC$STRRCHRݭP DECC$STRCPYݭ DO_INITFILEݭ DECC$FREEP<^\((do_field4 noname.1704 do_field34> do_field350p noname.171 noname.174 noname.173 noname.176 noname.177THE_FILE THE_VALUE((THE_FILE TOKEN_STARTGET_CHARPѭ1ݭISIDCHARP1Pѭ2ЭRB CURRENT_FIELDRB CURRENT_FIELDσ CURRENT_FIELDOUT_WITH_ERROR1v2խ-DECC$GA___CTYPESRʏRBcRʏRR _ERROR IN_STRING2DECC$GA___CTYPESRʏRBcRʏRRݭ DECC$TOLOWERPЭЭRB CURRENT_FIELDGET_CHARPRRѭݭISIDCHARP1ѭ ݭPUT_BACKЭRB noname.178 noname.179 noname.1693 noname.180J do_field36T noname.183T do_field37s do_field38 noname.184< noname.185 noname.182 do_field39 noname.186 noname.181 noname.187 noname.172ckndo_field_value_pair CURRENT_FIELD IN_STRING1ѭKЭR~B̈Rb CURRENT_FIELD DECC$STRCMPPЭR~B̌Rb CURRENT_FIELD DECC$STRCPYRRѭ CURRENT_FIELDz DECC$STRNCMPPk CURRENT_FIELD DECC$STRNCPYխϓ2ݭ CHECK_LENGTHP^REOFILE1RFLAGEOFILE CURRENT_FIELD\\|8 SCRIBE P;RFLAG EOFILE CPϫ SCRIBE ϑP noname.189& noname.191, noname.192H noname.193M noname.194_ noname.195h noname.196 noname.197 noname.198 noname.199 noname.200 noname.190do_files do_files40 noname.202 do_files41 noname.205 do_files42 do_files434 noname.206U do_files440 noname.208 do_files45 noname.210 noname.211F noname.209 noname.207 noname.212 noname.204 noname.203 noname.213 fp Rk argc argv RFLAG EOFILE  PPP ^ЬЬPՠ!iPPTHE_FILE DECC$GA_STDINP`&1PЭP޼Q@a19ЭP޼Q@a DECC$STRCMPP PPTHE_FILE DECC$GA_STDINP`1PЭP޼Q@aTFOPENPխ3ЭP޼Q@aSTDLOG DECC$DFPRINTF DECC$PERRORGѭ OUT_NEWLINEЭP޼Q@aTHE_FILEREAD_INITIALIZATION_FILES THE_FILEjݭAݭ DECC$FCLOSEPPЭP޼Q@a1<^8do_group  do_group46(  noname.216P  noname.219P  do_group47l  do_group48{  noname.220  noname.221  do_group49  noname.222  noname.223  noname.224  noname.225  noname.218  noname.215  do_group50(! noname.227 SHARED_STRINGRR PRETTYPRINT1ݏOUT_CπRFLAG1 ݏOUT_CGET_CHARPѭ1P BRACE_LEVEL" CLOSE_CHAR)ѭ CLOSE_CHAR BRACE_LEVELЏ}NON_WHITE_CHARSѭ@ ERROR BRACE_LEVEL"ѭ}ݏOUT_Cϩ-PݭOUT_C BRACE_LEVELPGET_CHARPѭ1\1<((THE_FILE TOKEN_STARTGET_CHARPѭ{Џ} CLOSE_CHARNPѭ() CLOSE_CHAR.! do_group51H! noname.229H! do_group52*t! noname.230t! noname.228! noname.232! do_group53! do_group54%! noname.233! noname.234" noname.235x" noname.236" noname.231;3" noname.2263" noname.217cs kL4" do_initfile\" noname.238|" noname.240" noname.242 BRACE_LEVELRR BRACE_LEVEL.PЭRݭ  OUT_TOKENVERROR1P{ѭ1PGET_CHARPѭ'ZERRORЭRBݭ  OUT_TOKENmPЭSSRRCѭ CLOSE_CHARѭ) BRACE_LEVELRR BRACE_LEVEL BRACE_LEVELѭ1{R}BЭRBݭ  OUT_TOKEN ^ݬݬFINDFILEPINITIALIZATION_FILE_NAMEINITIALIZATION_FILE_NAME1PINITIALIZATION_FILE_NAMETFOPENPխ1ݭ" do_initfile55" noname.244" noname.245" noname.243# noname.246 # noname.247u # noname.248# noname.241)# noname.239 fp Rp pathlist  name ,# do_key_name# noname.251# do_key_name56# do_key_name570# noname.252IPխ1PDECC$GA___CTYPEQPʏP@aPʏPP-PPPDECC$GA___CTYPEQPʏP@aPʏPP֘PPISOPTIONPREFIXP ݭc ݭ_ݭvPխ1vݭ DECC$FCLOSEP< ^((THE_FILE TOKEN_STARTGET_CHARPѭ1ѭ,1DECC$GA___CTYPESRʏRBcRʏRR1Pѭ2ЭRB CURRENT_KEYRB CURRENT_KEYρ CURRENT_KEYOUT_WITH_ERROR1PЭRB CURRENT_KEYGET_CHARPRRѭ# noname.254$ noname.255$ noname.250:$ noname.256J$ noname.257f$ noname.253ck;h$do_new_pattern$ noname.259$do_new_pattern58$ noname.262$ noname.263$ noname.265$ noname.266% noname.264-% noname.267-%do_new_pattern59*ѭ,$DECC$GA___CTYPESRʏRBcRʏRR1oЭRB CURRENT_KEYѭ ݭPUT_BACK CHECK_VALUES CHECK_KEY CURRENT_KEY  OUT_STRINGݭ CHECK_LENGTH^Ь߭ݭϐ'Pխ1խ1DECC$GA___CTYPEQPʏP@aPʏPPDECC$GA___CTYPEQPʏP@aPʏPP-PPPDECC$GA___CTYPEQPʏP@aPʏPPѭPP= PP:17PP= PP: PPDECC$GA___CTYPEQPʏP@aPʏ?% noname.269H% noname.270l% noname.272u% noname.273% noname.271%do_new_pattern60%do_new_pattern61% noname.277% noname.278& noname.276&do_new_pattern62$@& noname.279Q& noname.281Q&do_new_pattern63d& noname.282d& noname.280d& noname.275d& noname.2747d& noname.268d& noname.261& noname.260 field p  saw_space R value s .& do_newline& do_newline64PP-PPPDECC$GA___CTYPEQPʏP@aPʏPP֘PP"1Ϩ߭ݭ`&Pխ1DECC$GA___CTYPEQPʏP@aPʏPP-PPPDECC$GA___CTYPEQPʏP@aPʏPP֘PP")8߭ݭ%Pݭݭ/Z'PPP PP%ݭݭ2INITIALIZATION_FILE_NAMEݬSTDLOG DECC$DFPRINTFݏ DECC$EXITP^GET_CHARPѭ J BRACE_LEVEL OUT_NEWLINE6 IN_PREAMBLE& noname.285& noname.287& noname.289& noname.288& noname.286G& noname.284' noname.290' noname.291cl' do_one_file4' noname.2944' do_one_file65P' noname.295U' noname.296!U' noname.297]' noname.293f' do_one_file66~' noname.298' noname.299' noname.300 fp R' do_open_brace' noname.302'do_open_brace67' noname.305'do_open_brace68' noname.307KEEP_PREAMBLE_SPACES OUT_NEWLINE IN_STRINGKEEP_STRING_SPACES OUT_NEWLINE ݭPUT_BACK^ЬFPINTHE_FILE'EOFILEϷ&EOFILE,PDO_OTHERSCRIBEϟEOFILE PRETTYPRINTݏOUT_C OUT_C OUT_FLUSH BRACE_LEVEL ERRORP^GET_CHARPѭ`^Pѭ{Џ} CLOSE_CHAR(@ѭ() CLOSE_CHAR BRACE_LEVEL\\ BRACE_LEVEL(ݭ'do_open_brace69( noname.308( noname.306( noname.304( noname.303c}!(do_optional_inline_comment$( noname.310#$(do_optional_inline_comment70#(do_optional_inline_comment71( noname.320) noname.322) noname.321) noname.319) noname.324) noname.325) noname.323ns )do_optional_space$) noname.327OUT_CϦϟOUT_WITH_ERRORP ^POP\\PP r(P?P1ݭ DECC$STRLENPݭݭ\\ DECC$MEMMOVEِ\L\LݭGP IN_PREAMBLEKEEP_PREAMBLE_SPACESݭP IN_STRINGKEEP_STRING_SPACES ݭPP1P ^ROP\\PP r)P?PjP8\\8\\PUT_BACKNP8\\8\\PUT_BACK .PWRAPPINGWRAPPINGݭ  OUT_STRINGЭ$)do_optional_space72)do_optional_space73j) noname.336) noname.338) noname.339) noname.337 save_wrapping Rs )do_other4* noname.3424* do_other74G* do_other75X* noname.343b* do_other76!* noname.344* do_other77* noname.346* do_other78+ noname.349+ do_other79(0+ noname.350_4+ noname.348F+ noname.351F+ noname.347F+ noname.345WRAPPINGP15P^ SHARED_STRING\\WRAPPINGWRAPPINGGET_CHARPѭ1+ѭ@NON_WHITE_CHARSݭPUT_BACK1 Pѭ&Э\L\Lݭa&1Pѭ "Э\Lݭ@& OUT_NEWLINE1PDECC$GA___CTYPEP\ʏ\L`\ʏ\\cDECC$GA___CTYPEP\ʏ\L`\ʏ\\ЭPP\\@*PЭ\Lݭ%ЭPP\\@PЭPP\\@GET_CHARPѭ1Э\Lݭp%ЭF+ noname.352^+ noname.341x+ noname.353ck save_wrapping Rs |+ do_preamble+ noname.355+ do_preamble_2+ noname.357+ noname.358+ noname.360+ noname.359W+do_Scribe_block_comment ,do_Scribe_block_comment80 , noname.364., noname.365<, noname.363`, noname.367 `,do_Scribe_block_comment81 ,do_Scribe_block_comment82 ,do_Scribe_block_comment83 ,do_Scribe_block_comment84- noname.373 -do_Scribe_block_comment85- noname.3759- noname.372!- noname.376<- noname.378E- noname.379WRAPPINGP^ IN_PREAMBLE IN_PREAMBLE^z PRETTYPRINTݏOUT_CRFLAG%PKϒRFLAG P3Z^ϖPݭSTRICMPP1[խPݏOUT_C\\խϹOUT_SGET_CHARPѭ1 ѭ@1ѭ@-ѭ{1ЭPP{,Pb?P1GET_CHARPGET_CHARPGET_CHARP6STRICMPP;ϮPݭSTRICMPP i!xݭH- noname.377S- noname.380k- noname.366Vp- noname.362y- noname.381y- noname.374b_levelckp s*& |-do_Scribe_close_delimiter"-do_Scribe_close_delimiter86- noname.383- noname.385"-do_Scribe_close_delimiter87- noname.388- noname.387"-do_Scribe_close_delimiter88K&B& 7&%\\խώ# \\ݭOUT_CGET_CHARPѭ1 Pݭ%P^RGET_CHARP PARBREAKS IS_PARBREAKOUT_WITH_PARBREAK_ERROR1ѭ11ѭ CLOSE_CHARѭ) BRACE_LEVEL\\ BRACE_LEVELx 1ݭOUT_CDECC$GA___CTYPEP\ʏ\L`\ʏh\\Э?ˏ\\ݭˏ CLOSE_CHAR\\ CLOSE_CHARH DECC$DSPRINTFϧ(. noname.391,. noname.392~r. noname.389r. noname.386r. noname.384c ٓmsg*&aa`t.do_Scribe_comment. noname.394. noname.397.do_Scribe_comment89. noname.398.do_Scribe_comment90.do_Scribe_comment91. noname.401. noname.400. noname.399I. noname.402/ noname.403/ noname.396$/ noname.405)/ noname.4067/ noname.4041 noname.432>1 noname.431cp CURRENT_ENTRY_NAME DECC$STRCMPP ϔ1 PRETTYPRINTݏOUT_CϯRFLAG1P CLOSE_CHAR BRACE_LEVELRFLAG{rRFLAGfPϳ~P0ϣJRFLAG EOFILE5PσNPRFLAGPgЭ CLOSE_CHARϾϹ ^RGET_CHARPѭWUPݭH DECC$STRCHRPխ ݭOUT_COUT_WITH_ERRORPH\\\L@\\ CLOSE_CHARϊ<^\({@1do_Scribe_separatorh1 noname.435l1 noname.4361do_Scribe_separator96 msg*&1 noname.4371 noname.4391 noname.4411 noname.4421do_Scribe_separator971 noname.4441do_Scribe_separator981 noname.4451 noname.4431 noname.440 2 noname.438c saw_space R 2do_Scribe_valueE2 noname.447X2 noname.448]2 noname.449]2 noname.450R`2 do_single_arg(THE_FILE THE_VALUEլ8GET_CHARP PARBREAKS! IS_PARBREAKOUT_WITH_PARBREAK_ERRORlPѭHѭ=ѭ/ 5ѭݭPUT_BACKݭOUT_CϐχOUT_WITH_ERRORTHE_FILE 3VALUE_INDENTATIONRR OUT_SPACES<^((THE_FILE THE_VALUEnP CURRENT_VALUE DECC$STRCPYRFLAG EOFILE CURRENT_VALUEOUT_SPP^ PROGRAM_NAMEޭB߬ݬϕP1߬2 noname.4522 noname.4532 noname.454 temp_argv3/ temp_argcs \2do_space(3 noname.457(3 do_space9923 do_space100T3 noname.459l3 noname.4613 noname.4633 noname.4653 noname.4643 noname.4623 noname.460{3 noname.458ݬPխݭDO_ARGS<^ SHARED_STRINGRR((THE_FILE TOKEN_STARTGET_CHARPѭ1DECC$GA___CTYPESRʏRBcRʏRR1ѭ 1Pѭ{ЭRB PRETTYPRINTݭ OUT_TOKENV KEEP_SPACESݭOUT_S?P IN_PREAMBLEKEEP_PREAMBLE_SPACESݭOUT_S IN_STRINGKEEP_STRING_SPACES ݭOUT_SЭSSRRCGET_CHARPѭ*DECC$GA___CTYPESRʏ3 noname.4663 noname.4673 noname.456 4 noname.46884 noname.470X4 noname.472u4 noname.474u4 noname.473u4 noname.471u4 noname.4694 noname.475cs k4 do_string4 noname.4774 do_string_24 noname.4794 noname.4804do_string_21014 noname.4814 noname.4834 noname.4845 noname.485G5 noname.4865 noname.4825 noname.487i5 enlarge_tableRBcRʏRR ѭ 1*ЭRB PRETTYPRINTݭ OUT_TOKENV KEEP_SPACESݭOUT_S?P IN_PREAMBLEKEEP_PREAMBLE_SPACESݭOUT_S IN_STRINGKEEP_STRING_SPACES ݭOUT_SݭPUT_BACKP^ IN_STRING IN_STRING^r PRETTYPRINTݏOUT_CRFLAG7PCP$RFLAG'NRFLAGPP^ЬPՠݏ DECC$MALLOCPQ޼PQ`'ЬPPPP޼P`05 noname.489W5 noname.490k5 noname.491x5 noname.492 table  Rq|5flush_inter_entry_space5 noname.4945 noname.4965 noname.495c?5get_braced_string6 noname.4996get_braced_string1026get_braced_string103.L6 noname.500W6get_braced_string104@6 noname.5036get_braced_string1056 noname.505 DECC$REALLOCPQ޼PQ`޼P` ZFATALЬQPPP^ KEEP_SPACES.GET_NEXT_NON_BLANKPݭPUT_BACKѭ OUT_NEWLINE OUT_NEWLINE^R SHARED_STRING\\IN_VALUEGET_CHARP1P PARBREAKS< IS_PARBREAK3PUT_BACKOUT_WITH_PARBREAK_ERRORIN_VALUE1 1PE\L\LsOUT_WITH_ERRORIN_VALUE11n6get_braced_string1066 noname.5096 noname.5106 noname.5086 noname.5077 noname.512 7 noname.51487 noname.516C7get_braced_string107p7get_braced_string108"7 noname.5197get_braced_string1097 noname.520b7 noname.5187 noname.5177 noname.5157 noname.5137 noname.5117 noname.5067 noname.5217 noname.5227 noname.5238 noname.524l8 noname.5048 noname.5028 noname.5258 noname.498P8 noname.527P8get_braced_string110t8 noname.5288 noname.5308 noname.529P  ψ P1 !KEEP_LINEBREAKSKEEP_PARBREAKS 1DECC$GA___CTYPEP\ʏ\L`\ʏ\\ 1P{\\1P} \\m\bPP\\@GET_CHARP\$PP\\@ GET_LINEBREAKPPUT_BACKPP\\@MPDECC$GA___CTYPEP\ʏ\L`\ʏ\\GET_NEXT_NON_BLANKP GET_CHARP1\L8get_braced_string1118get_braced_string1129get_braced_string113H: noname.559L: noname.532L:get_braced_string114:get_braced_string115; noname.561\L\\11\L\\{\\"P\L\\} \\\L\\"11b1\L\\PP"Z9P r?PjPPP\\{@PP\\"@PP\\\\\L@PP\\}@MPP\\{@PP\\"@PP\\}@WARNING1_\L\\\1h\L\\{1P\L\\1=\L\\{1%\L\\}1 \L\\}1;get_braced_string116l< noname.563l<get_braced_string117>< noname.564< noname.562^< noname.560< noname.531< noname.565x\\\\PP\\{@QQ\\PP\\@AQQ\\PP\\@AQQ\\PP\\@AQQ\\PP\\@APP\\\L@PP\\}@1P\L݀\\\1\\PP\\{@PP\\\@PP\\"@PP\\\\\L@ЅPP\\}@?PP\\{@PP\\"@PP\\}@PP\\\L@\\< noname.566< noname.567< noname.5263= noname.568T= noname.501t*&b_levelckns \=get_digit_string= noname.571=get_digit_string118=get_digit_string1190= noname.572=get_digit_string120> noname.574Y\L\\1`"\"L\\L CHECK_LENGTH ERRORIN_VALUE DECC$STRCPYPPP^ SHARED_STRING\\ЭPP\\"@GET_CHARPѭ1DECC$GA___CTYPEP\ʏ\L`\ʏ\\1Pѭ2Э\L\LυݭOUT_WITH_ERRORސЭ1ЭPP\\@GET_CHARPѭ$DECC$GA___CTYPEP\ʏ\L`\ʏ\\1yݭPUT_BACKЭPP\\"@> noname.575G> noname.576G> noname.570> noname.573cks +>get_identifier_string> noname.579>get_identifier_string121>get_identifier_string122/? noname.580?get_identifier_string123? noname.582Y? noname.5836? noname.5846? noname.578\? noname.581cks d?get_inline_comment?get_inline_comment124? noname.588\Lݭ CHECK_LENGTHЭPP^ SHARED_STRING\\GET_CHARPѭ1ݭISIDCHARPsѭ2Э\L\LϩݭOUT_WITH_ERRORސЭ_ЭPP\\@GET_CHARPѭݭISIDCHARPݭPUT_BACKЭ\Lݭ CHECK_LENGTHЭP<^ SHARED_STRINGRRGET_CHARPSCRIBE1ѭ%1((THE_FILE TOKEN_START%GET_CHARPѭ1ѭ&?get_inline_comment125? noname.589?get_inline_comment126" @ noname.590/@ noname.5918@ noname.592U@ noname.593b@ noname.587k@ noname.586@ noname.594cknewliness #@get_line@ noname.597@ get_line127@ get_line128A noname.599A noname.6006A noname.598A noname.601XA noname.602=A noname.596dA noname.603mA noname.604pA noname.605 fp  RDECC$GA___CTYPESRʏRBcRʏRRqPѭ"ЭSSRR CݭPUT_BACK%Bѭ  RRѭ+ЭSSRRCGET_CHARPѭ1fЭRBݭPUT_BACKЭPP^R°PP´)°ݬ°)P´)PP´) DECC$FGETSPy ´) DECC$STRCHRP°)°):Ұ)°P°)P!°)P`PP\°)PP´)P+PP#Pݬ°)P´)PP´) DECC$FGETSP°PP޼P`P PʏPP P°PPP^xAget_optional_spaceAget_optional_space1299 B noname.615(B noname.616cs 0B get_parbreakTB noname.618pB noname.621B noname.623Bget_parbreak130B noname.626B noname.628B noname.629B noname.627@B noname.625B noname.630B noname.624B noname.622B noname.620B noname.619 SHARED_STRING\\GET_CHARPЭPP AP "?P*PЭ\-ݭPUT_BACK`PPݭPUT_BACKPЭP^IN_VALUEKEEP_LINEBREAKS 11P IN_PREAMBLEKEEP_PREAMBLE_SPACES |zP IN_STRINGKEEP_STRING_SPACES `^PIN_VALUEKKEEP_PARBREAKSB PUT_BACKGET_NEXT_NON_BLANKPPUT_BACK IS_PARBREAKKEEP_LINEBREAKS    PP^Bget_quoted_string,C noname.633,Cget_quoted_string131=Cget_quoted_string132)lC noname.634vCget_quoted_string1337C noname.637Cget_quoted_string134C noname.639Cget_quoted_string135C noname.643C noname.644C noname.642C noname.641D noname.646,D noname.648DD noname.650 SHARED_STRING\\IN_VALUEGET_CHARPѭ1 PARBREAKS8 IS_PARBREAK/ݭPUT_BACKݭOUT_WITH_PARBREAK_ERRORIN_VALUEŐЭ1~16Pѭ:Э\L\L)ݭOUT_WITH_ERRORIN_VALUE֐Э171ѭ uP1Pѭ "KEEP_LINEBREAKSKEEP_PARBREAKS P 1DECC$GA___CTYPEP\ʏ\L`\ʏ\\ 1ѭ{\\zPѭ}\\bPѭ\UЭPP\\@NDget_quoted_string136uDget_quoted_string137D noname.653Dget_quoted_string138D noname.654UD noname.652D noname.651D noname.649D noname.647D noname.645D noname.640D noname.655Dget_quoted_string139Dget_quoted_string140Dget_quoted_string141b^E noname.658w`E noname.657dE noname.659dE noname.656E noname.660E noname.661E noname.638E noname.636sE noname.662E noname.632E noname.663E noname.635b_levelcks GET_CHARPѭ\ЭPP\\@ GET_LINEBREAKPݭPUT_BACKխЭPP\\@ѭ"1ѭ1խ1\L\\\yGET_CHARPѭb\\ЭPP\\쐏{@ЭPP\\쐏\@ЭPP\\"@ЭPP\\@ЭPP\\쐏}@JPDECC$GA___CTYPEP\ʏ\L`\ʏ\\GET_NEXT_NON_BLANKP PGET_CHARPѭ1Э\Lݭ CHECK_LENGTHѭ ERRORIN_VALUEЭP(^RЏ"Eget_Scribe_delimited_string%.Fget_Scribe_delimited_string142)XF noname.665F noname.668F noname.669%Fget_Scribe_delimited_string143%Fget_Scribe_delimited_string144+F noname.670%Fget_Scribe_delimited_string145%Gget_Scribe_delimited_string146%-Gget_Scribe_delimited_string147'XG noname.673%XGget_Scribe_delimited_string148MG noname.674G noname.672%Gget_Scribe_delimited_string149/G noname.675 SHARED_STRING\\GET_CHARPݭH DECC$STRCHRPխ*Э\ϾݭOUT_WITH_ERRORߐЭ1EH\\\L@\\GET_NEXT_NON_BLANKPЭPP\\"@ѭ1ѭ\ ѭ1ѭ1 PARBREAKS4 IS_PARBREAK+Э\LݭPUT_BACKݭOUT_WITH_PARBREAK_ERRORΐЭ1ѭ"1\L\\\1ЭGET_CHARPѭ{+\{LЭ\\L\\Э\"LOP\{LЭ\\L\\Э\"L\\Э\G noname.671G noname.677 H noname.681H noname.684 H noname.685%H noname.6824H noname.679`H noname.687%jHget_Scribe_delimited_string150%Hget_Scribe_delimited_string151H noname.6916H noname.690H noname.692eH noname.689H noname.693H noname.688H noname.686H noname.678H noname.676I noname.694I noname.695gI noname.696CI noname.698PI noname.697PI noname.667L\\Э\}L0Э\{L\\Э\"L\\Э\}L1Pѭ IЭ\PL1ѭ :KEEP_LINEBREAKS PKEEP_PARBREAKS ЭحЭ\L1PDECC$GA___CTYPEP\ʏ\L`\ʏ\\ Э\ L~ѭ\jЭ\LGET_CHARPѭ\;\\Э\L GET_LINEBREAKPխ\\Э\LPݭPUT_BACK PЭ\LЭDECC$GA___CTYPEP\ʏ\L`\ʏ\\GET_NEXT_NON_BLANKPPGET_CHARP\%mIget_Scribe_delimited_string152I noname.699I noname.666c close_delimk last_cp s #Iget_Scribe_identifier_stringI noname.702&Iget_Scribe_identifier_string153 I noname.703'J noname.704'J noname.701&OJget_Scribe_identifier_string154lJ noname.705J noname.706cks \ѭѭ\ѭ ѭ1hЭ\"L\LѭϾݭOUT_WITH_ERRORЭݭ CHECK_LENGTHЭPP^ SHARED_STRING\\GET_CHARPЭPP\\"@ݭISIDCHARPDѭ:PЭ\L\\GET_CHARPݭISIDCHARP ѭݭPUT_BACKЭ\"L\LѭݭOUT_WITH_ERRORЭP\\ݭ CHECK_LENGTHЭP ^~GET_CHARPݭJget_Scribe_stringJ noname.708J noname.709J noname.710cOJget_simple_stringK noname.712)Kget_simple_string155"LK noname.715LK noname.714|K noname.716K noname.718K noname.720K noname.722Kget_simple_string156 L noname.723 L noname.721 L noname.719 L noname.717 L noname.713cs PUT_BACKݭISIDCHARP P PPP<^ SHARED_STRINGRRGET_NEXT_NON_BLANKPѭЭ15 PARBREAKS, IS_PARBREAK#ݭPUT_BACKݭOUT_WITH_PARBREAK_ERRORЭ1ݭPUT_BACK((THE_FILE TOKEN_STARTѭ{JP11DECC$GA___CTYPESRʏRBcRʏRRϺPdbPѭ"9POMDECC$GA___CTYPESRʏRBcRʏRRϢP PϓύOUT_WITH_ERRORЭ3L get_tokenDL noname.727ML noname.728nL noname.726nL noname.725L noname.729L get_token157L noname.730L get_token158L noname.734L get_token159L noname.735L noname.736L noname.737L noname.733L get_token160M noname.738M get_token1611AM noname.739DM noname.732DM get_token162pM noname.742pM noname.743M noname.744M noname.741M noname.745M noname.746M noname.747M noname.740M noname.731M noname.748t  token s  nextp  terminators P^ЬխKDECC$GA___CTYPEQPʏP@aPʏPP*PPDECC$GA___CTYPEQPʏP@aPʏPPխPP PP% 18PP"1PPЭPP:PP"1PP\ PPPPPP PP"ИPP"ЭQQPPaݭ2INITIALIZATION_FILE_NAMEݬľϑSTDLOG DECC$DFPRINTFݏ DECC$EXIT1ЭPPOPP%FPPݬ  DECC$STRCHRP0PPPPPP%PPݬ  DECC$STRCHRPИPP PM new_entry!N noname.750B$N new_io_pair@N noname.752 pair  RDN new_positionfN noname.754position  R#hNout_close_brace|N noname.756N out_commaN noname.758 save_wrapping  R,Nout_complex_valueN noname.761Nout_complex_value163Nout_complex_value164P%ЭQQPPa޼PЭ`ЭPPAT_LEVEL BRACE_LEVEL IS_PARBREAKNON_WHITE_CHARSRFLAGCURRENT_ENTRY_NAME CURRENT_FIELD CURRENT_KEY CURRENT_VALUEP^޼P`ЬPPЬPЬPЬP ЬP^v OUT_STRINGP^WRAPPINGWRAPPINGQ OUT_STRINGЭWRAPPING^ CURRENT_VALUE\\\\1ݭ DECC$STRCHRPխ=\\"PݭݭN noname.764N noname.765<O noname.7620O noname.7684O noname.769O noname.770O noname.771O noname.760O noname.766s p O out_equalsO out_equals165O noname.774P noname.776 OUT_STRINGݭ DECC$STRLENP CHECK_LENGTH1\\"ݭݭ OUT_STRINGݭ DECC$STRLENP CHECK_LENGTH\\ݭ DECC$STRCHRPխݭ DECC$STRCHRPݭ  OUT_STRINGݭ DECC$STRLENP CHECK_LENGTH\\\\1P^ PRETTYPRINT1 IN_PREAMBLEKEEP_PREAMBLE_SPACES =OUT_Ca IN_STRINGKEEP_STRING_SPACES=OUT_CBP OUT_C ALIGN_EQUALSP out_equals166DP noname.778@XP noname.777XP noname.775\P noname.773kP noname.779kP noname.780lP out_fieldzP out_field167P noname.783$P noname.782P noname.786P noname.787P noname.784P noname.788[Pout_open_braceP noname.790P out_otherP noname.792P out_other1680Q noname.794LQ noname.796ZQ noname.797ZQ noname.795^ZQ noname.793ZQ noname.798s THE_FILE 3VALUE_INDENTATION\\\ OUT_SPACES=OUT_C OUT_CPϋ OUT_TOKEN^ PRETTYPRINT& IN_STRINGFIELD_INDENTATION OUT_SPACES CURRENT_FIELDOUT_S& IN_STRING CURRENT_FIELDݭ OUT_TOKEN^  OUT_STRINGP^ PRETTYPRINTݬOUT_S_DECC$GA___CTYPEQ޼P`PʏP@aPʏPPݬ OUT_TOKEN*޼P`PP%ݬ  OUT_TOKENݬ  OUT_TOKEN^{\Q out_valueQ out_value169Q out_value170Q noname.802Q noname.801R/ IN_PREAMBLE1@ IN_STRING15@* CURRENT_FIELDAPPLY_FUNCTION CHECK_VALUES5Ϭ CURRENT_VALUE DECC$STRCMPP¸) CURRENT_FIELDAPPLY_FUNCTIONP CHECK_OTHERREMOVE_OPT_PREFIXES1l CURRENT_FIELD DECC$STRNCMPP1 CURRENT_FIELD DECC$STRLENPp CURRENT_VALUE DECC$STRLENP]ݏOUT_C CURRENT_FIELD DECC$STRLENPPP CURRENT_FIELD3 CURRENT_FIELD#R out_value171ZR noname.803R out_value172R noname.805R noname.8045R noname.800R noname.806bR prt_patternRprt_pattern173R noname.809S noname.8100S noname.812VS noname.813VS noname.811VS noname.808VS noname.814 fieldname pattern  message  DECC$MEMMOVE aTHE_FILE 3VALUE_INDENTATION\\ OUT_SPACES9DELETE_EMPTY_VALUES/ʹ CURRENT_VALUE DECC$STRCMPPݏOUT_CDISCARD_NEXT_COMMAP^PRINT_PATTERNS1լ ޼P`PP#ݬINITIALIZATION_FILE_NAMEjSTDLOG DECC$DFPRINTFUPլ 'ݬݬINITIALIZATION_FILE_NAMEuSTDLOG DECC$DFPRINTF)Pݬ ݬݬINITIALIZATION_FILE_NAMEpSTDLOG DECC$DFPRINTF^ݬXSput_back_string|S noname.817S noname.818S noname.816S noname.819p s CS trim_valueS trim_value174 T noname.823 T noname.824YT noname.825YT noname.822 DECC$STRCHRPPѭ!PPPPUT_BACKPPѭ ^ CURRENT_VALUE DECC$STRLENP CURRENT_VALUE\\"1DECC$GA___CTYPEP CURRENT_VALUE3\ʏ\L`\ʏ\\1ѭeDECC$GA___CTYPEPЭ\L CURRENT_VALUE\ʏ\L`\ʏ\\(  ?4  U@. A; [EoG< I&C Is L  pMn O S  T TR STSTSTSTS_iobuf _cnt _ptr  @_base  `_flag h_file p_pad1 x_pad2R @R @ quot  remR @ quot  remRstat st_dev  st_ino*&Pst_mode`st_nlink st_uid st_gidst_rdev st_sizest_atimest_mtime0st_ctimeP st_fab_rfmX st_fab_rat` st_fab_fszh st_fab_mrsR keyboard_code KEYBOARD_EOFKEYBOARD_UNKNOWNKEYBOARD_AGAIN KEYBOARD_DOWN KEYBOARD_END KEYBOARD_HELP KEYBOARD_HOME KEYBOARD_PGDN KEYBOARD_PGUP KEYBOARD_QUIT KEYBOARD_SEARCH_BACKWARD KEYBOARD_SEARCH_FORWARD KEYBOARD_UP KEYBOARD_DOWN_PARAGRAPH KEYBOARD_UP_PARAGRAPHR token_list TOKEN_UNKNOWN TOKEN_ABBREVTOKEN_AT TOKEN_COMMA TOKEN_COMMENT TOKEN_ENTRY TOKEN_EQUALS TOKEN_FIELD TOKEN_INCLUDE TOKEN_INLINE TOKEN_KEY TOKEN_LBRACE TOKEN_LITERAL TOKEN_NEWLINETOKEN_PREAMBLE TOKEN_RBRACE TOKEN_SHARP TOKEN_SPACE TOKEN_STRING TOKEN_VALUER STSTSTSTSTS  NO YESR s_pattern@pattern  message R s_name_pair@old_name  new_name R"s_option_function_entry` name  min_match@function R STS s_positionfilename  byte_position@last_column_position`column_position line_numberR STSTSs_pattern_table`patterns T current_size@ maximum_sizeRs_pattern_names@ name  table TR STS s_io_pair@ input T output T DECC$GA_STDIN decc$ga_stdin TDECC$GA___CTYPEdecc$ga___ctype-)& month_pair3/T(%$ ALIGN_EQUALS align_equals TAT_LEVELat_level BRACE_LEVEL brace_level CHECK_VALUES check_values T CLOSE_CHAR close_charCURRENT_ENTRY_NAMEcurrent_entry_name*& CURRENT_FIELD current_field*& CURRENT_KEY current_key*& CURRENT_VALUE current_value*&DELETE_EMPTY_VALUESdelete_empty_values TDISCARD_NEXT_COMMAdiscard_next_comma T EOFILEeofile TFIELD_INDENTATIONfield_indentation FPINfpin T IN_PREAMBLE in_preamble T IN_STRING in_string TIN_VALUEin_value T IS_PARBREAK is_parbreak TKEEP_LINEBREAKSkeep_linebreaks TKEEP_PARBREAKSkeep_parbreaks TKEEP_PREAMBLE_SPACESkeep_preamble_spaces T KEEP_SPACES keep_spaces TKEEP_STRING_SPACESkeep_string_spaces TNON_WHITE_CHARSnon_white_chars PARBREAKS parbreaks T PATTERN_NAMES pattern_names3/T PRETTYPRINT prettyprint T PROGRAM_NAME program_name PRINT_PATTERNSprint_patterns T READ_INITIALIZATION_FILESread_initialization_files TREMOVE_OPT_PREFIXESremove_OPT_prefixes T RFLAGrflag T SCRIBEScribe T SHARED_STRING shared_string*& STDLOGstdlog T TOKEN_START token_start T THE_ENTRY the_entry TTHE_FILEthe_file T THE_VALUE the_value TVALUE_INDENTATIONvalue_indentationWRAPPINGwrapping TINITIALIZATION_FILE_NAMEinitialization_file_name  German_style T rcsid*&6658 space_count@Scribe_close_delims*&HScribe_open_delims*&P entry_pair3/T8 field_pair3/T Hfmt*&aa` line*&((')p  )more  )checks3/T  @*fixes3/T H:`0.&PUBLIC$DISK:[NBEEBE.BIBCLEAN]MATCH.H;1<e(PUBLIC$DISK:[NBEEBE.BIBCLEAN]YESORNO.H;1;'PUBLIC$DISK:[NBEEBE.BIBCLEAN]TOKLST.H;1: &PUBLIC$DISK:[NBEEBE.BIBCLEAN]TOKEN.H;1<nx(PUBLIC$DISK:[NBEEBE.BIBCLEAN]PATTERN.H;1; V'PUBLIC$DISK:[NBEEBE.BIBCLEAN]KEYBRD.H;1;"b,'PUBLIC$DISK:[NBEEBE.BIBCLEAN]DELETE.H;17D(#PUBLIC$DISK:[NBEEBE.BIBCLEAN]CH.H;1>i6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1UNISTD<c(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XUNISTD.H;1>)G6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STRING<iF(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XSTRING.H;1> 96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB< {(PUBLIC$DISK:[NBEEBE.BIBCLEAN]XSTDLIB.H;1= )j56ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1CTYPE; B'PUBLIC$DISK:[NBEEBE.BIBCLEAN]XCTYPE.H;1; 'PUBLIC$DISK:[NBEEBE.BIBCLEAN]CUSTOM.H;1<6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STAT=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO> 6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1UNIXIO>96ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDLIB> j6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1LIMITS=ɘ6ɗ$SYS$COMMON:[SYSLIB]DECC$RTLDEF.TLB;1STDIO< (PUBLIC$DISK:[NBEEBE.BIBCLEAN]CONFIG.H;117`jk#PUBLIC$DISK:[NBEEBE.BIBCLEAN]DO.C;1  \ |] &      |  d 7 0  u                  }    A   +    3 o     3       CHECK_LENGTHAPPLY_FUNCTIONDO_OTHERSTRICMPSTRDUP DECC$MEMMOVE DECC$STRLEN DECC$STRRCHR DECC$STRCHR DECC$STRNCMP DECC$STRCMP DECC$STRNCPY DECC$STRCPY DECC$TOUPPER DECC$TOLOWER DECC$GETENV DECC$EXIT DECC$REALLOC DECC$MALLOC DECC$FREE DECC$STRTOL DECC$PERROR DECC$FGETS DECC$DSPRINTF DECC$DFPRINTF DECC$FCLOSE DO_FILES 4" DO_INITFILE )DO_OTHERjU$CODE*$DATA( MONTH_PAIR GERMAN_STYLE----------------,P8)PhHhhhh8(PƔHP<PPPPdPPPPPPPxPPPPPZPPPPPPPP bibclean-3.07/vms/vax/vmsclean.com0000644000156700015670000000075105304711152016020 0ustar beebebeebe$ !===================================================================== $ ! Cleanup after a successful build and test, leaving only the $ ! sources, test files, and VAX VMS executable. $ ! [15-Nov-1992] $ !===================================================================== $ purge *.* $ delete *.i.* $ delete *.obj.* $ delete test*.aux.* $ delete test*.bi2.* $ delete test*.bib.* $ delete test*.blg.* $ delete test*.dvi.* $ delete test*.er2.* $ delete test*.err.* $ delete test*.log.* bibclean-3.07/vms/vax/vmstest.com0000644000156700015670000001330306142146242015715 0ustar beebebeebe$ !===================================================================== $ ! Test bibclean on DEC VAX VMS 6.1. $ ! [02-May-1996] $ !===================================================================== $ ! $ ! Create a foreign command symbol for bibclean. You must edit $ ! this to suit your local configuration, because VMS has no $ ! way that I know of to get the full path name of the current $ ! directory. $ bibclean :== $public$disk:[nbeebe.bibclean]bibclean.exe $ ! $ ! Some of the tests intentionally generate a failure return code. $ ! Prevent that from stopping this command file. $ set noon $ ! $ write sys$output "================== begin BibTeX test 1 ===================" $ define /user sys$error testbib1.err $ bibclean -init bibclean.ini testbib1.org >testbib1.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testbib1.bok testbib1.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testbib1.eok testbib1.err $ write sys$output "=================== end BibTeX test 1 ====================" $ ! $ write sys$output "================== begin BibTeX test 2 ===================" $ define /user sys$error testbib2.err $ bibclean -init bibclean.ini -no-check-values testbib2.org >testbib2.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testbib2.bok testbib2.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testbib2.eok testbib2.err $ write sys$output "=================== end BibTeX test 2 ====================" $ ! $ write sys$output "================== begin BibTeX test 3 ===================" $ define /user sys$error testbib3.err $ bibclean -init bibclean.ini -fix-font-change testbib3.org >testbib3.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testbib3.bok testbib3.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testbib3.eok testbib3.err $ write sys$output "=================== end BibTeX test 3 ====================" $ ! $ write sys$output "================== begin BibTeX test 4 ===================" $ define /user sys$error testbib4.err $ bibclean -init bibclean.ini -fix-font-change testbib4.org >testbib4.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testbib4.bok testbib4.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testbib4.eok testbib4.err $ write sys$output "=================== end BibTeX test 4 ====================" $ ! $ write sys$output "================== begin BibTeX test 5 ===================" $ define /user sys$error testbib5.err $ bibclean -init bibclean.ini -German-style testbib5.org >testbib5.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testbib5.bok testbib5.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testbib5.eok testbib5.err $ write sys$output "=================== end BibTeX test 5 ====================" $ ! $ write sys$output "================== begin BibTeX test 6 ===================" $ define /user sys$error testisxn.err $ bibclean -init bibclean.ini testisxn.org >testisxn.bib $ write sys$output "" $ diff testisxn.bok testisxn.bib $ write sys$output "" $ diff testisxn.eok testisxn.err $ write sys$output "=================== end BibTeX test 6 ===================" $ ! $ write sys$output "================== begin BibTeX test 7 ===================" $ define /user sys$error testcodn.err $ bibclean -init bibclean.ini testcodn.org >testcodn.bib $ write sys$output "" $ diff testcodn.bok testcodn.bib $ write sys$output "" $ diff testcodn.eok testcodn.err $ write sys$output "=================== end BibTeX test 7 ===================" $ ! $ write sys$output "================== begin Scribe test 1 ===================" $ define /user sys$error testscr1.err $ bibclean -init bibclean.ini -scribe -no-check testscr1.org >testscr1.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testscr1.bok testscr1.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testscr1.eok testscr1.err $ write sys$output "=================== end Scribe test 1 ====================" $ ! $ write sys$output "================== begin Scribe test 2 ===================" $ define /user sys$error testscr2.err $ bibclean -init bibclean.ini -scribe -no-check testscr2.org >testscr2.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testscr2.bok testscr2.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testscr2.eok testscr2.err $ write sys$output "=================== end Scribe test 2 ====================" $ ! $ write sys$output "================== begin Scribe test 2a===================" $ define /user sys$error testscr2.er2 $ bibclean -init bibclean.ini -scribe -file-pos -no-check -no-par - testscr2.org >testscr2.bi2 $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testscr2.bo2 testscr2.bi2 $ write sys$output "" $ diff testscr2.eo2 testscr2.er2 $ write sys$output "=================== end Scribe test 2a====================" $ ! $ write sys$output "================== begin Scribe test 3 ===================" $ define /user sys$error testscr3.err $ bibclean -init bibclean.ini -scribe -no-check testscr3.org >testscr3.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testscr3.bok testscr3.bib $ write sys$output "" $ write sys$output "There should be no differences found:" $ diff testscr3.eok testscr3.err $ write sys$output "=================== end Scribe test 3 ====================" $ ! bibclean-3.07/vms/vax/recomp.com0000644000156700015670000000063505455302124015500 0ustar beebebeebe$ !============================================================ $ ! Compile the DVI driver code on VAX VMS. $ ! [08-Oct-1993] $ !============================================================ $ set verify $ set noon $ !============================================================ $ show time $ CFLAGS :== "/DEBUG=ALL /NOOPTIMIZE /WARNING /STANDARD=PORTABLE" $ show symbol CFLAGS $ cc 'CFLAGS' 'p1'.c $ set noverify bibclean-3.07/vms/vax/option.obj0000644000156700015670000007467106142246430015533 0ustar beebebeebeOPTIONV1.0 2-MAY-1996 17:07DEC C V4.0-000h>Pno-P=> >)>0><>>>H>f>f>P H>P with native pattern matching>>P17:07:20<>P 0>PMay 2 1996)>P on  >PCompiled>P =Pbibclean Version 2.11.3 [01-May-1996]P;P#;\;;;;,<Y<<<<*=h====P [ outfile =P [ -[no-]warnings ] [ -version ] h=P [ -[no-]scribe ] [ -[no-]trace-file-opening ] *=P [ -[no-]read-init-files ] [ -[no-]remove-OPT-prefixes ]