SIS
Symmetric Index Structures
|
00001 #include "bas/lml/base.h" 00002 00003 #define mSetCommandArguments( nArguments )\ 00004 {\ 00005 cmd->numberOfArguments = (nArguments);\ 00006 cmd->arguments = arguments;\ 00007 } 00008 00009 #ifdef __cplusplus 00010 # include <iostream> 00011 # include <fstream> 00012 # include <vector> 00013 # include <string> 00014 # include "lmu/cis/sis/adapter/ScdawgAdapter.hpp" 00015 # include "lmu/cis/sis/adapter/InenagaCDAWGAdapter.hpp" 00016 # include "lmu/cis/sis/adapter/VoidSequenceAdapter.hpp" 00017 # include "lmu/cis/sis/indexer/DocumentIndexingAutomatonFindResults.hpp" 00018 # include "lmu/cis/sis/indexer/DocumentIndexingAutomaton.hpp" 00019 #endif 00020 00021 using lmu::cis::sis::InenagaCDAWGAdapter; 00022 using lmu::cis::sis::SCDAWGAdapter; 00023 using lmu::cis::sis::DocumentIndexingAutomaton; 00024 00025 S32 main( S32 argc, S8* argv[] ){ 00026 Command * cmd; 00027 S64 start, end; 00028 U32 tmp; 00029 double t; 00030 00031 #ifndef __cplusplus 00032 mSetEndianness() 00033 cmd = CommandInit(); 00034 if( argc <= 1 ){ 00035 printf( "Please, choose a command:\n" ); 00036 printf( "1: reverse_and_sort\n" ); 00037 printf( "2: build_suffix_tree\n" ); 00038 printf( "3: generate_suffixes\n" ); 00039 printf( "4: compressed_automaton_lang\n" ); 00040 printf( "5: build_cdawg\n" ); 00041 printf( "6: compressed_automaton_stat\n" ); 00042 printf( "7: build_scdawg\n" ); 00043 printf( "8: scdawg_left_lang\n" ); 00044 printf( "9: compressed_automaton_gv\n" ); 00045 printf( "10: scdawg_stat\n" ); 00046 printf( "11: scdawg_gv\n" ); 00047 printf( "12: help\n" ); 00048 00049 scanf( "%u", &tmp ); cmd->cmd = tmp; {char tmp[128]; fgets( tmp, 128, stdin );} 00050 00051 switch( cmd->cmd ){ 00052 case CMD_REVERSE_AND_SORT: 00053 case CMD_GENERATE_SUFFIXES: 00054 { 00055 S8 fileNameInput[MAX_INPUT_STRING_SIZE]; 00056 S8 fileNameOutput[MAX_INPUT_STRING_SIZE]; 00057 S8 bitsPerSymbol[MAX_INPUT_STRING_SIZE]; 00058 S8 encoding[MAX_INPUT_STRING_SIZE]; 00059 S8 * arguments[4] = {fileNameInput, fileNameOutput, bitsPerSymbol, encoding}; 00060 00061 printf( "Please, enter the input file name:\n" ); 00062 mGETS( fileNameInput ); 00063 00064 printf( "Please, enter the output file name:\n" ); 00065 mGETS( fileNameOutput ); 00066 00067 printf( "Please, enter the number of bits per symbol:\n" ); 00068 mGETS( bitsPerSymbol ); 00069 00070 printf( "Please, enter the encoding (UTF-8 / PLAIN):\n" ); 00071 mGETS( encoding ); 00072 00073 mSetCommandArguments( 4 ) 00074 }; break; 00075 00076 case CMD_BUILD_SUFFIX_TREE: 00077 case CMD_BUILD_CDAWG: 00078 case CMD_BUILD_SCDAWG: 00079 { 00080 S8 fileNameInput[MAX_INPUT_STRING_SIZE]; 00081 S8 fileNameOutput[MAX_INPUT_STRING_SIZE]; 00082 S8 bitsPerSymbol[MAX_INPUT_STRING_SIZE]; 00083 S8 encoding[MAX_INPUT_STRING_SIZE]; 00084 S8 tarjanTable[MAX_INPUT_STRING_SIZE]; 00085 S8 * arguments[5] = {fileNameInput, fileNameOutput, bitsPerSymbol, encoding, tarjanTable}; 00086 00087 printf( "Please, enter the input file name:\n" ); 00088 mGETS( fileNameInput ); 00089 00090 printf( "Please, enter the output file name:\n" ); 00091 mGETS( fileNameOutput ); 00092 00093 printf( "Please, enter the number of bits per symbol:\n" ); 00094 mGETS( bitsPerSymbol ); 00095 00096 printf( "Please, enter the encoding (UTF-8 / PLAIN):\n" ); 00097 mGETS( encoding ); 00098 00099 printf( "Please, enter Tarjan table (y / n):\n" ); 00100 mGETS( tarjanTable ); 00101 00102 mSetCommandArguments( 5 ) 00103 } 00104 break; 00105 case CMD_COMPRESSED_AUTOMATON_LANG: 00106 case CMD_SCDAWG_LEFT_LANG: 00107 case CMD_COMPRESSED_AUTOMATON_GV: 00108 case CMD_SCDAWG_GV: 00109 { 00110 S8 fileNameInput[MAX_INPUT_STRING_SIZE]; 00111 S8 fileNameOutput[MAX_INPUT_STRING_SIZE]; 00112 S8 encoding[MAX_INPUT_STRING_SIZE]; 00113 S8 * arguments[3] = {fileNameInput, fileNameOutput, encoding}; 00114 00115 printf( "Please, enter the input file name:\n" ); 00116 mGETS( fileNameInput ); 00117 00118 printf( "Please, enter the output file name:\n" ); 00119 mGETS( fileNameOutput ); 00120 00121 printf( "Please, enter the encoding (UTF-8 / PLAIN):\n" ); 00122 mGETS( encoding ); 00123 00124 mSetCommandArguments( 3 ) 00125 } 00126 break; 00127 case CMD_COMPRESSED_AUTOMATON_STAT: 00128 case CMD_SCDAWG_STAT: 00129 { 00130 S8 fileNameInput[MAX_INPUT_STRING_SIZE]; 00131 S8 fileNameOutput[MAX_INPUT_STRING_SIZE]; 00132 S8 * arguments[2] = {fileNameInput, fileNameOutput}; 00133 00134 printf( "Please, enter the input file name:\n" ); 00135 mGETS( fileNameInput ); 00136 00137 printf( "Please, enter the output file name:\n" ); 00138 mGETS( fileNameOutput ); 00139 00140 mSetCommandArguments( 2 ) 00141 } 00142 break; 00143 00144 case CMD_HELP: { 00145 S8 msg[MAX_INPUT_STRING_SIZE]; 00146 S8 helpForCommand[MAX_INPUT_STRING_SIZE]; 00147 S8 * arguments[1] = {helpForCommand}; 00148 00149 sprintf( msg, "Here is help."); 00150 printf( "Please, enter the command you would like to get help for:\n" ); 00151 mGETS( helpForCommand ); 00152 mSetCommandArguments(1); 00153 } 00154 break; 00155 00156 default: 00157 { 00158 S8 msg[MAX_INPUT_STRING_SIZE]; 00159 sprintf( msg, "Unknown command: %llu", (U64)(cmd->cmd) ); 00160 Throw( msg ); 00161 } 00162 break; 00163 } 00164 } 00165 else{ 00166 CommandParse( cmd, argc, argv ); 00167 } 00168 start = clock(); 00169 CommandExecute( cmd ); 00170 end = clock(); 00171 t = ((double)(end - start)) / CLOCKS_PER_SEC; 00172 printf( "time = %.2f seconds\n", t ); 00173 CommandFree( cmd ); 00174 Verify(); 00175 00176 #else 00177 std::vector<std::string> documents = { 00178 "/Users/dbruder/MA/etc/doc1", 00179 "/Users/dbruder/MA/etc/doc2", 00180 "/Users/dbruder/MA/etc/doc3", 00181 "/Users/dbruder/MA/etc/doc4" 00182 // "/Users/dbruder/MA/etc/N/MAI_clean.txt", 00183 // "/Users/dbruder/MA/etc/N/M_clean.txt" 00184 // "/Users/dbruder/MA/etc/N/ZAI.txt" 00185 }; 00186 00187 // InenagaCDAWGAdapter scdawg; 00188 // SCDAWGAdapter scdawg; 00189 00190 // std::ifstream dict("/Users/dbruder/MA/etc/dict.txt"); 00191 // dict >> scdawg; // TODO!!! 00192 // scdawg.AddDictionary(dict); 00193 // scdawg.Close(); 00194 // scdawg.Write("/Users/dbruder/MA/var/dict.orig.bin"); 00195 00196 // cdawg.AddDocuments(documents); 00197 00198 // DocumentIndexingAutomaton< InenagaCDAWGAdapter > aut1; 00199 // // DocumentIndexingAutomaton< SCDAWGAdapter > aut2; 00200 // aut1.AddDocuments(documents); 00201 // // aut2.AddDocuments(documents); 00202 // aut1.SortTransitions(); 00203 // aut1.Close(); 00204 // // aut2.SortTransitions(); 00205 // // aut1.DumpGV("/Users/dbruder/MA/var/s71.dot"); 00206 // // aut2.DumpGV("/Users/dbruder/MA/var/s71.dot"); 00207 // // aut2.DumpGVRight("/Users/dbruder/MA/var/s71.dot"); 00208 // aut1.Write("/Users/dbruder/MA/var/s71.bin"); 00209 // return 0; 00210 00211 // DocumentIndexingAutomaton< InenagaCDAWGAdapter > aut(4); 00212 // SCDAWGAdapter adapter; 00213 // adapter.Read("/Users/dbruder/MA/var/s71.bin"); 00214 // return 0; 00215 DocumentIndexingAutomaton< SCDAWGAdapter > aut(1); 00216 // DocumentIndexingAutomaton< SCDAWGAdapter > aut; 00217 // SCDAWGAdapter aut; 00218 00219 // CompressedAutomatonAdapter aut(1); 00220 // std::cout << aut.printsymbolsize() << std::endl; 00221 00222 aut.AddDocuments(documents); 00223 aut.SortTransitions(); 00224 // aut.SortTransitions(); 00225 00226 // aut.Index(); 00227 00228 aut.DumpStat("/Users/dbruder/MA/var/s71.stat"); 00229 aut.DumpGV("/Users/dbruder/MA/var/s71.dot"); 00230 00231 // aut.Close(); 00232 // aut.Write("/Users/dbruder/MA/var/s71.bin"); 00233 00234 00235 auto results = aut.findall("anna"); 00236 std::cout << " Results empty? " << results.empty() << std::endl; 00237 00238 // for (auto map: results) 00239 // for (auto pos: map.second) 00240 // std::cout << "doc: " << map.first << " -> " << std::get<0>(pos) << " = " << std::get<1>(pos) << " = " << std::get<2>(pos) << std::endl; 00241 00242 // aut.Index(); 00243 00244 // cdawg.Shrink(); 00245 // cdawg.AddTarjanTable(); 00246 00247 // cdawg.Index(); 00248 00249 // DocumentIndexingAutomatonFindResults results; 00250 // auto results = cdawg.findall("anna"); 00251 // 00252 // std::cout << " Results empty? " << results.empty() << std::endl; 00253 // 00254 // for (auto map: results) 00255 // for (auto pos: map.second) 00256 // std::cout << "doc: " << map.first << " -> " << pos << std::endl; 00257 // 00258 // cdawg.DumpStat("var/s7.stat"); 00259 // cdawg.DumpGV("var/s7.dot"); 00260 // cdawg.Write("var/s7.bin"); 00261 00262 // cdawg.DumpGV("s7.dot", ENCODING_UTF8); 00263 // std::cout << cdawg << std::endl; 00264 // cdawg.DumpStat("s7.stat"); 00265 00266 00267 // cdawg.Delta("anna"); 00268 00269 00270 00271 // SCDAWGAdapter scdawg(std::ifstream("example/test.dict")); 00272 // scdawg.Close(); 00273 // scdawg.DumpGV("s8.dot"); 00274 // return 0; 00275 00276 // std::ifstream dict("example/dict.txt"); 00277 00278 // while (dict.good()) 00279 // dict >> scdawg; 00280 00281 // while (dict >> scdawg) 00282 // ; 00283 // dict >> scdawg; 00284 // scdawg.AddDictionary(dict); 00285 00286 00287 // for (auto d: documents) std::cout << "+++" << d << std::endl; 00288 00289 // std::cout << "Found moni " << cdawg.findall("moni") << " times" << std::endl; 00290 00291 // cdawg.Read("s7.bin"); 00292 // cdawg.DumpStat("s7.stat"); 00293 // cdawg.DumpGV("s7.dot"); 00294 // Fopen("var/s7.dot", "rb"); //test DFOPEN_FCLOSE_COUNT later. 00295 // Verify(); 00296 #endif 00297 return 0; 00298 } 00299 //dot my.gv -Tps -o"my.ps" -Kdot 00300 //diff -q 1.txt 2.txt 00301 00302 00303 00304 00305 00306 00307 00308 00309 00310 00311 // "/Users/dbruder/MA/etc/N/MAI.txt", 00312 // "/Users/dbruder/MA/etc/N/ZAI.txt", 00313 // "/Users/dbruder/MA/etc/N/M.txt" 00314 // "/Users/dbruder/MA/etc/N/print.1", 00315 // "/Users/dbruder/MA/etc/N/print.2", 00316 // "/Users/dbruder/MA/etc/N/print.3", 00317 // "/Users/dbruder/MA/etc/N/print.4", 00318 // "/Users/dbruder/MA/etc/N/print.5", 00319 // "/Users/dbruder/MA/etc/N/print.6", 00320 // "/Users/dbruder/MA/etc/N/print.7", 00321 // "/Users/dbruder/MA/etc/N/print.8", 00322 // "/Users/dbruder/MA/etc/N/print.9", 00323 // "/Users/dbruder/MA/etc/N/print.10", 00324 // "/Users/dbruder/MA/etc/N/print.11", 00325 // "/Users/dbruder/MA/etc/N/print.12", 00326 // "/Users/dbruder/MA/etc/N/print.13", 00327 // "/Users/dbruder/MA/etc/N/print.14", 00328 // "/Users/dbruder/MA/etc/N/print.15", 00329 // "/Users/dbruder/MA/etc/N/print.16", 00330 // "/Users/dbruder/MA/etc/N/print.17", 00331 // "/Users/dbruder/MA/etc/N/print.18", 00332 // "/Users/dbruder/MA/etc/N/print.19", 00333 // "/Users/dbruder/MA/etc/N/print.20", 00334 // "/Users/dbruder/MA/etc/N/print.21", 00335 // "/Users/dbruder/MA/etc/N/print.22", 00336 // "/Users/dbruder/MA/etc/N/print.23", 00337 // "/Users/dbruder/MA/etc/N/print.24", 00338 // "/Users/dbruder/MA/etc/N/print.25", 00339 // "/Users/dbruder/MA/etc/N/print.26", 00340 // "/Users/dbruder/MA/etc/N/print.27", 00341 // "/Users/dbruder/MA/etc/N/print.28", 00342 // "/Users/dbruder/MA/etc/N/print.29", 00343 // "/Users/dbruder/MA/etc/N/print.30", 00344 // "/Users/dbruder/MA/etc/N/print.31", 00345 // "/Users/dbruder/MA/etc/N/print.32", 00346 // "/Users/dbruder/MA/etc/N/print.33", 00347 // "/Users/dbruder/MA/etc/N/print.34", 00348 // "/Users/dbruder/MA/etc/N/print.35", 00349 // "/Users/dbruder/MA/etc/N/print.36", 00350 // "/Users/dbruder/MA/etc/N/print.37", 00351 // "/Users/dbruder/MA/etc/N/print.38", 00352 // "/Users/dbruder/MA/etc/N/print.39", 00353 // "/Users/dbruder/MA/etc/N/print.40", 00354 // "/Users/dbruder/MA/etc/N/print.41", 00355 // "/Users/dbruder/MA/etc/N/print.42", 00356 // "/Users/dbruder/MA/etc/N/print.43", 00357 // "/Users/dbruder/MA/etc/N/print.44", 00358 // "/Users/dbruder/MA/etc/N/print.45", 00359 // "/Users/dbruder/MA/etc/N/print.46", 00360 // "/Users/dbruder/MA/etc/N/print.47", 00361 // "/Users/dbruder/MA/etc/N/print.48", 00362 // "/Users/dbruder/MA/etc/N/print.49", 00363 // "/Users/dbruder/MA/etc/N/print.50", 00364 // "/Users/dbruder/MA/etc/N/print.51", 00365 // "/Users/dbruder/MA/etc/N/print.52", 00366 // "/Users/dbruder/MA/etc/N/print.53", 00367 // "/Users/dbruder/MA/etc/N/print.54", 00368 // "/Users/dbruder/MA/etc/N/print.55", 00369 // "/Users/dbruder/MA/etc/N/print.56", 00370 // "/Users/dbruder/MA/etc/N/print.57", 00371 // "/Users/dbruder/MA/etc/N/print.58", 00372 // "/Users/dbruder/MA/etc/N/print.59", 00373 // "/Users/dbruder/MA/etc/N/print.60", 00374 // "/Users/dbruder/MA/etc/N/print.61", 00375 // "/Users/dbruder/MA/etc/N/print.62", 00376 // "/Users/dbruder/MA/etc/N/print.63", 00377 // "/Users/dbruder/MA/etc/N/print.64", 00378 // "/Users/dbruder/MA/etc/N/print.65", 00379 // "/Users/dbruder/MA/etc/N/print.66", 00380 // "/Users/dbruder/MA/etc/N/print.67", 00381 // "/Users/dbruder/MA/etc/N/print.68", 00382 // "/Users/dbruder/MA/etc/N/print.69", 00383 // "/Users/dbruder/MA/etc/N/print.70", 00384 // "/Users/dbruder/MA/etc/N/print.71", 00385 // "/Users/dbruder/MA/etc/N/print.72", 00386 // "/Users/dbruder/MA/etc/N/print.73", 00387 // "/Users/dbruder/MA/etc/N/print.74", 00388 // "/Users/dbruder/MA/etc/N/print.75", 00389 // "/Users/dbruder/MA/etc/N/print.76", 00390 // "/Users/dbruder/MA/etc/N/print.77", 00391 // "/Users/dbruder/MA/etc/N/print.78", 00392 // "/Users/dbruder/MA/etc/N/print.79", 00393 // "/Users/dbruder/MA/etc/N/print.80", 00394 // "/Users/dbruder/MA/etc/N/print.81", 00395 // "/Users/dbruder/MA/etc/N/print.82", 00396 // "/Users/dbruder/MA/etc/N/print.83", 00397 // "/Users/dbruder/MA/etc/N/print.84", 00398 // "/Users/dbruder/MA/etc/N/print.85", 00399 // "/Users/dbruder/MA/etc/N/print.86", 00400 // "/Users/dbruder/MA/etc/N/print.87", 00401 // "/Users/dbruder/MA/etc/N/print.88", 00402 // "/Users/dbruder/MA/etc/N/print.89", 00403 // "/Users/dbruder/MA/etc/N/print.90", 00404 // "/Users/dbruder/MA/etc/N/print.91", 00405 // "/Users/dbruder/MA/etc/N/print.92", 00406 // "/Users/dbruder/MA/etc/N/print.93", 00407 // "/Users/dbruder/MA/etc/N/print.94", 00408 // "/Users/dbruder/MA/etc/N/print.95", 00409 // "/Users/dbruder/MA/etc/N/print.96", 00410 // "/Users/dbruder/MA/etc/N/print.97", 00411 // "/Users/dbruder/MA/etc/N/print.98", 00412 // "/Users/dbruder/MA/etc/N/print.99", 00413 // "/Users/dbruder/MA/etc/N/print.100", 00414 // "/Users/dbruder/MA/etc/N/print.101", 00415 // "/Users/dbruder/MA/etc/N/print.102", 00416 // "/Users/dbruder/MA/etc/N/print.103", 00417 // "/Users/dbruder/MA/etc/N/print.104", 00418 // "/Users/dbruder/MA/etc/N/print.105", 00419 // "/Users/dbruder/MA/etc/N/print.106", 00420 // "/Users/dbruder/MA/etc/N/print.107", 00421 // "/Users/dbruder/MA/etc/N/print.108", 00422 // "/Users/dbruder/MA/etc/N/print.109", 00423 // "/Users/dbruder/MA/etc/N/print.110", 00424 // "/Users/dbruder/MA/etc/N/print.111", 00425 // "/Users/dbruder/MA/etc/N/print.112", 00426 // "/Users/dbruder/MA/etc/N/print.113", 00427 // "/Users/dbruder/MA/etc/N/print.114", 00428 // "/Users/dbruder/MA/etc/N/print.115", 00429 // "/Users/dbruder/MA/etc/N/print.116", 00430 // "/Users/dbruder/MA/etc/N/print.117", 00431 // "/Users/dbruder/MA/etc/N/print.118", 00432 // "/Users/dbruder/MA/etc/N/print.119", 00433 // "/Users/dbruder/MA/etc/N/print.120", 00434 // "/Users/dbruder/MA/etc/N/print.121", 00435 // "/Users/dbruder/MA/etc/N/print.122", 00436 // "/Users/dbruder/MA/etc/N/print.123", 00437 // "/Users/dbruder/MA/etc/N/print.124", 00438 // "/Users/dbruder/MA/etc/N/print.125", 00439 // "/Users/dbruder/MA/etc/N/print.126", 00440 // "/Users/dbruder/MA/etc/N/print.127", 00441 // "/Users/dbruder/MA/etc/N/print.128", 00442 // "/Users/dbruder/MA/etc/N/print.129", 00443 // "/Users/dbruder/MA/etc/N/print.130", 00444 // "/Users/dbruder/MA/etc/N/print.131", 00445 // "/Users/dbruder/MA/etc/N/print.132", 00446 // "/Users/dbruder/MA/etc/N/print.133", 00447 // "/Users/dbruder/MA/etc/N/print.134", 00448 // "/Users/dbruder/MA/etc/N/print.135", 00449 // "/Users/dbruder/MA/etc/N/print.136", 00450 // "/Users/dbruder/MA/etc/N/print.137", 00451 // "/Users/dbruder/MA/etc/N/print.138", 00452 // "/Users/dbruder/MA/etc/N/print.139", 00453 // "/Users/dbruder/MA/etc/N/print.140", 00454 // "/Users/dbruder/MA/etc/N/print.141", 00455 // "/Users/dbruder/MA/etc/N/print.142", 00456 // "/Users/dbruder/MA/etc/N/print.143", 00457 // "/Users/dbruder/MA/etc/N/print.144", 00458 // "/Users/dbruder/MA/etc/N/print.145", 00459 // "/Users/dbruder/MA/etc/N/print.146", 00460 // "/Users/dbruder/MA/etc/N/print.147", 00461 // "/Users/dbruder/MA/etc/N/print.148", 00462 // "/Users/dbruder/MA/etc/N/print.149", 00463 // "/Users/dbruder/MA/etc/N/print.150", 00464 // "/Users/dbruder/MA/etc/N/print.151", 00465 // "/Users/dbruder/MA/etc/N/print.152", 00466 // "/Users/dbruder/MA/etc/N/print.153", 00467 // "/Users/dbruder/MA/etc/N/print.154", 00468 // "/Users/dbruder/MA/etc/N/print.155", 00469 // "/Users/dbruder/MA/etc/N/print.156", 00470 // "/Users/dbruder/MA/etc/N/print.157", 00471 // "/Users/dbruder/MA/etc/N/print.158", 00472 // "/Users/dbruder/MA/etc/N/print.159", 00473 // "/Users/dbruder/MA/etc/N/print.160", 00474 // "/Users/dbruder/MA/etc/N/print.161", 00475 // "/Users/dbruder/MA/etc/N/print.162", 00476 // "/Users/dbruder/MA/etc/N/print.163", 00477 // "/Users/dbruder/MA/etc/N/print.164", 00478 // "/Users/dbruder/MA/etc/N/print.165", 00479 // "/Users/dbruder/MA/etc/N/print.166", 00480 // "/Users/dbruder/MA/etc/N/print.167", 00481 // "/Users/dbruder/MA/etc/N/print.168", 00482 // "/Users/dbruder/MA/etc/N/print.169", 00483 // "/Users/dbruder/MA/etc/N/print.170", 00484 // "/Users/dbruder/MA/etc/N/print.171", 00485 // "/Users/dbruder/MA/etc/N/print.172", 00486 // "/Users/dbruder/MA/etc/N/print.173", 00487 // "/Users/dbruder/MA/etc/N/print.174", 00488 // "/Users/dbruder/MA/etc/N/print.175", 00489 // "/Users/dbruder/MA/etc/N/print.176", 00490 // "/Users/dbruder/MA/etc/N/print.177", 00491 // "/Users/dbruder/MA/etc/N/print.178", 00492 // "/Users/dbruder/MA/etc/N/print.179", 00493 // "/Users/dbruder/MA/etc/N/print.180", 00494 // "/Users/dbruder/MA/etc/N/print.181", 00495 // "/Users/dbruder/MA/etc/N/print.182", 00496 // "/Users/dbruder/MA/etc/N/print.183", 00497 // "/Users/dbruder/MA/etc/N/print.184", 00498 // "/Users/dbruder/MA/etc/N/print.185", 00499 // "/Users/dbruder/MA/etc/N/print.186", 00500 // "/Users/dbruder/MA/etc/N/print.187", 00501 // "/Users/dbruder/MA/etc/N/print.188", 00502 // "/Users/dbruder/MA/etc/N/print.189", 00503 // "/Users/dbruder/MA/etc/N/print.190", 00504 // "/Users/dbruder/MA/etc/N/print.191", 00505 // "/Users/dbruder/MA/etc/N/print.192", 00506 // "/Users/dbruder/MA/etc/N/print.193", 00507 // "/Users/dbruder/MA/etc/N/print.194", 00508 // "/Users/dbruder/MA/etc/N/print.195", 00509 // "/Users/dbruder/MA/etc/N/print.196", 00510 // "/Users/dbruder/MA/etc/N/print.197", 00511 // "/Users/dbruder/MA/etc/N/print.198", 00512 // "/Users/dbruder/MA/etc/N/print.199", 00513 // "/Users/dbruder/MA/etc/N/print.200", 00514 // "/Users/dbruder/MA/etc/N/print.201", 00515 // "/Users/dbruder/MA/etc/N/print.202", 00516 // "/Users/dbruder/MA/etc/N/print.203", 00517 // "/Users/dbruder/MA/etc/N/print.204", 00518 // "/Users/dbruder/MA/etc/N/print.205", 00519 // "/Users/dbruder/MA/etc/N/print.206", 00520 // "/Users/dbruder/MA/etc/N/print.207", 00521 // "/Users/dbruder/MA/etc/N/print.208", 00522 // "/Users/dbruder/MA/etc/N/print.209", 00523 // "/Users/dbruder/MA/etc/N/print.210", 00524 // "/Users/dbruder/MA/etc/N/print.211", 00525 // "/Users/dbruder/MA/etc/N/print.212", 00526 // "/Users/dbruder/MA/etc/N/print.213", 00527 // "/Users/dbruder/MA/etc/N/print.214", 00528 // "/Users/dbruder/MA/etc/N/print.215", 00529 // "/Users/dbruder/MA/etc/N/print.216", 00530 // "/Users/dbruder/MA/etc/N/print.217", 00531 // "/Users/dbruder/MA/etc/N/print.218", 00532 // "/Users/dbruder/MA/etc/N/print.219", 00533 // "/Users/dbruder/MA/etc/N/print.220", 00534 // "/Users/dbruder/MA/etc/N/print.221", 00535 // "/Users/dbruder/MA/etc/N/print.222", 00536 // "/Users/dbruder/MA/etc/N/print.223", 00537 // "/Users/dbruder/MA/etc/N/print.224", 00538 // "/Users/dbruder/MA/etc/N/print.225", 00539 // "/Users/dbruder/MA/etc/N/print.226", 00540 // "/Users/dbruder/MA/etc/N/print.227", 00541 // "/Users/dbruder/MA/etc/N/print.228", 00542 // "/Users/dbruder/MA/etc/N/print.229", 00543 // "/Users/dbruder/MA/etc/N/print.230", 00544 // "/Users/dbruder/MA/etc/N/print.231", 00545 // "/Users/dbruder/MA/etc/N/print.232", 00546 // "/Users/dbruder/MA/etc/N/print.233", 00547 // "/Users/dbruder/MA/etc/N/print.234", 00548 // "/Users/dbruder/MA/etc/N/print.235", 00549 // "/Users/dbruder/MA/etc/N/print.236", 00550 // "/Users/dbruder/MA/etc/N/print.237", 00551 // "/Users/dbruder/MA/etc/N/print.238", 00552 // "/Users/dbruder/MA/etc/N/print.239", 00553 // "/Users/dbruder/MA/etc/N/print.240", 00554 // "/Users/dbruder/MA/etc/N/print.241", 00555 // "/Users/dbruder/MA/etc/N/print.242", 00556 // "/Users/dbruder/MA/etc/N/print.243", 00557 // "/Users/dbruder/MA/etc/N/print.244", 00558 // "/Users/dbruder/MA/etc/N/print.245" 00559 // "/Users/dbruder/MA/etc/N/print.246" 00560 // "/Users/dbruder/MA/etc/N/print.247", 00561 // "/Users/dbruder/MA/etc/N/print.248"