00001
00002
00003
00004
00005
00006
00007
00008
00009 #include "./kmailIface.h"
00010
00011 #include <kdatastream.h>
00012 #include <qasciidict.h>
00013
00014
00015 static const int KMailIface_fhash = 37;
00016 static const char* const KMailIface_ftable[37][3] = {
00017 { "void", "checkMail()", "checkMail()" },
00018 { "QStringList", "accounts()", "accounts()" },
00019 { "void", "checkAccount(QString)", "checkAccount(QString account)" },
00020 { "void", "openReader()", "openReader()" },
00021 { "int", "openComposer(QString,QString,QString,QString,QString,int,KURL)", "openComposer(QString to,QString cc,QString bcc,QString subject,QString body,int hidden,KURL messageFile)" },
00022 { "int", "openComposer(QString,QString,QString,QString,QString,int,KURL,KURL)", "openComposer(QString to,QString cc,QString bcc,QString subject,QString body,int hidden,KURL messageFile,KURL attachURL)" },
00023 { "int", "openComposer(QString,QString,QString,QString,QString,int,KURL,KURL::List)", "openComposer(QString to,QString cc,QString bcc,QString subject,QString body,int hidden,KURL messageFile,KURL::List attachURLs)" },
00024 { "int", "openComposer(QString,QString,QString,QString,QString,int,QString,QCString,QCString,QCString,QCString,QCString,QString,QCString)", "openComposer(QString to,QString cc,QString bcc,QString subject,QString body,int hidden,QString attachName,QCString attachCte,QCString attachData,QCString attachType,QCString attachSubType,QCString attachParamAttr,QString attachParamValue,QCString attachContDisp)" },
00025 { "int", "openComposer(QString,QString,QString,QString,QString,int,QString,QCString,QCString,QCString,QCString,QCString,QString,QCString,QCString)", "openComposer(QString to,QString cc,QString bcc,QString subject,QString body,int hidden,QString attachName,QCString attachCte,QCString attachData,QCString attachType,QCString attachSubType,QCString attachParamAttr,QString attachParamValue,QCString attachContDisp,QCString attachCharset)" },
00026 { "DCOPRef", "openComposer(QString,QString,QString,QString,QString,bool)", "openComposer(QString to,QString cc,QString bcc,QString subject,QString body,bool hidden)" },
00027 { "int", "sendCertificate(QString,QByteArray)", "sendCertificate(QString to,QByteArray certData)" },
00028 { "void", "compactAllFolders()", "compactAllFolders()" },
00029 { "int", "dcopAddMessage(QString,QString,QString)", "dcopAddMessage(QString foldername,QString messagefile,QString MsgStatusFlags)" },
00030 { "int", "dcopAddMessage(QString,KURL,QString)", "dcopAddMessage(QString foldername,KURL messagefile,QString MsgStatusFlags)" },
00031 { "QStringList", "folderList()", "folderList()" },
00032 { "DCOPRef", "getFolder(QString)", "getFolder(QString vpath)" },
00033 { "void", "selectFolder(QString)", "selectFolder(QString folder)" },
00034 { "bool", "canQueryClose()", "canQueryClose()" },
00035 { "void", "setDefaultTransport(QString)", "setDefaultTransport(QString transport)" },
00036 { "int", "timeOfLastMessageCountChange()", "timeOfLastMessageCountChange()" },
00037 { "void", "pauseBackgroundJobs()", "pauseBackgroundJobs()" },
00038 { "void", "resumeBackgroundJobs()", "resumeBackgroundJobs()" },
00039 { "void", "stopNetworkJobs()", "stopNetworkJobs()" },
00040 { "void", "resumeNetworkJobs()", "resumeNetworkJobs()" },
00041 { "DCOPRef", "newMessage(QString,QString,QString,bool,bool,KURL,KURL)", "newMessage(QString to,QString cc,QString bcc,bool hidden,bool useFolderId,KURL messageFile,KURL attachURL)" },
00042 { "bool", "showMail(Q_UINT32,QString)", "showMail(Q_UINT32 serialNumber,QString messageId)" },
00043 { "bool", "handleCommandLine(bool)", "handleCommandLine(bool noArgsOpensReader)" },
00044 { "bool", "firstStart()", "firstStart()" },
00045 { "QString", "getFrom(Q_UINT32)", "getFrom(Q_UINT32 serialNumber)" },
00046 { "QString", "debugScheduler()", "debugScheduler()" },
00047 { "QString", "debugSernum(Q_UINT32)", "debugSernum(Q_UINT32 serialNumber)" },
00048 { "int", "dcopAddMessage_fastImport(QString,QString,QString)", "dcopAddMessage_fastImport(QString foldername,QString messagefile,QString MsgStatusFlags)" },
00049 { "int", "dcopAddMessage_fastImport(QString,KURL,QString)", "dcopAddMessage_fastImport(QString foldername,KURL messagefile,QString MsgStatusFlags)" },
00050 { "void", "dcopResetAddMessage()", "dcopResetAddMessage()" },
00051 { "void", "loadProfile(QString)", "loadProfile(QString path)" },
00052 { "void", "saveToProfile(QString)", "saveToProfile(QString path)" },
00053 { 0, 0, 0 }
00054 };
00055 static const int KMailIface_ftable_hiddens[36] = {
00056 0,
00057 0,
00058 0,
00059 0,
00060 0,
00061 0,
00062 0,
00063 0,
00064 0,
00065 0,
00066 0,
00067 0,
00068 0,
00069 0,
00070 0,
00071 0,
00072 0,
00073 0,
00074 0,
00075 0,
00076 0,
00077 0,
00078 0,
00079 0,
00080 1,
00081 1,
00082 1,
00083 1,
00084 1,
00085 1,
00086 1,
00087 1,
00088 1,
00089 1,
00090 1,
00091 1,
00092 };
00093
00094 bool KMailIface::process(const QCString &fun, const QByteArray &data, QCString& replyType, QByteArray &replyData)
00095 {
00096 static QAsciiDict<int>* fdict = 0;
00097 if ( !fdict ) {
00098 fdict = new QAsciiDict<int>( KMailIface_fhash, true, false );
00099 for ( int i = 0; KMailIface_ftable[i][1]; i++ )
00100 fdict->insert( KMailIface_ftable[i][1], new int( i ) );
00101 }
00102 int* fp = fdict->find( fun );
00103 switch ( fp?*fp:-1) {
00104 case 0: {
00105 replyType = KMailIface_ftable[0][0];
00106 checkMail( );
00107 } break;
00108 case 1: {
00109 replyType = KMailIface_ftable[1][0];
00110 QDataStream _replyStream( replyData, IO_WriteOnly );
00111 _replyStream << accounts( );
00112 } break;
00113 case 2: {
00114 QString arg0;
00115 QDataStream arg( data, IO_ReadOnly );
00116 if (arg.atEnd()) return false;
00117 arg >> arg0;
00118 replyType = KMailIface_ftable[2][0];
00119 checkAccount(arg0 );
00120 } break;
00121 case 3: {
00122 replyType = KMailIface_ftable[3][0];
00123 openReader( );
00124 } break;
00125 case 4: {
00126 QString arg0;
00127 QString arg1;
00128 QString arg2;
00129 QString arg3;
00130 QString arg4;
00131 int arg5;
00132 KURL arg6;
00133 QDataStream arg( data, IO_ReadOnly );
00134 if (arg.atEnd()) return false;
00135 arg >> arg0;
00136 if (arg.atEnd()) return false;
00137 arg >> arg1;
00138 if (arg.atEnd()) return false;
00139 arg >> arg2;
00140 if (arg.atEnd()) return false;
00141 arg >> arg3;
00142 if (arg.atEnd()) return false;
00143 arg >> arg4;
00144 if (arg.atEnd()) return false;
00145 arg >> arg5;
00146 if (arg.atEnd()) return false;
00147 arg >> arg6;
00148 replyType = KMailIface_ftable[4][0];
00149 QDataStream _replyStream( replyData, IO_WriteOnly );
00150 _replyStream << openComposer(arg0, arg1, arg2, arg3, arg4, arg5, arg6 );
00151 } break;
00152 case 5: {
00153 QString arg0;
00154 QString arg1;
00155 QString arg2;
00156 QString arg3;
00157 QString arg4;
00158 int arg5;
00159 KURL arg6;
00160 KURL arg7;
00161 QDataStream arg( data, IO_ReadOnly );
00162 if (arg.atEnd()) return false;
00163 arg >> arg0;
00164 if (arg.atEnd()) return false;
00165 arg >> arg1;
00166 if (arg.atEnd()) return false;
00167 arg >> arg2;
00168 if (arg.atEnd()) return false;
00169 arg >> arg3;
00170 if (arg.atEnd()) return false;
00171 arg >> arg4;
00172 if (arg.atEnd()) return false;
00173 arg >> arg5;
00174 if (arg.atEnd()) return false;
00175 arg >> arg6;
00176 if (arg.atEnd()) return false;
00177 arg >> arg7;
00178 replyType = KMailIface_ftable[5][0];
00179 QDataStream _replyStream( replyData, IO_WriteOnly );
00180 _replyStream << openComposer(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7 );
00181 } break;
00182 case 6: {
00183 QString arg0;
00184 QString arg1;
00185 QString arg2;
00186 QString arg3;
00187 QString arg4;
00188 int arg5;
00189 KURL arg6;
00190 KURL::List arg7;
00191 QDataStream arg( data, IO_ReadOnly );
00192 if (arg.atEnd()) return false;
00193 arg >> arg0;
00194 if (arg.atEnd()) return false;
00195 arg >> arg1;
00196 if (arg.atEnd()) return false;
00197 arg >> arg2;
00198 if (arg.atEnd()) return false;
00199 arg >> arg3;
00200 if (arg.atEnd()) return false;
00201 arg >> arg4;
00202 if (arg.atEnd()) return false;
00203 arg >> arg5;
00204 if (arg.atEnd()) return false;
00205 arg >> arg6;
00206 if (arg.atEnd()) return false;
00207 arg >> arg7;
00208 replyType = KMailIface_ftable[6][0];
00209 QDataStream _replyStream( replyData, IO_WriteOnly );
00210 _replyStream << openComposer(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7 );
00211 } break;
00212 case 7: {
00213 QString arg0;
00214 QString arg1;
00215 QString arg2;
00216 QString arg3;
00217 QString arg4;
00218 int arg5;
00219 QString arg6;
00220 QCString arg7;
00221 QCString arg8;
00222 QCString arg9;
00223 QCString arg10;
00224 QCString arg11;
00225 QString arg12;
00226 QCString arg13;
00227 QDataStream arg( data, IO_ReadOnly );
00228 if (arg.atEnd()) return false;
00229 arg >> arg0;
00230 if (arg.atEnd()) return false;
00231 arg >> arg1;
00232 if (arg.atEnd()) return false;
00233 arg >> arg2;
00234 if (arg.atEnd()) return false;
00235 arg >> arg3;
00236 if (arg.atEnd()) return false;
00237 arg >> arg4;
00238 if (arg.atEnd()) return false;
00239 arg >> arg5;
00240 if (arg.atEnd()) return false;
00241 arg >> arg6;
00242 if (arg.atEnd()) return false;
00243 arg >> arg7;
00244 if (arg.atEnd()) return false;
00245 arg >> arg8;
00246 if (arg.atEnd()) return false;
00247 arg >> arg9;
00248 if (arg.atEnd()) return false;
00249 arg >> arg10;
00250 if (arg.atEnd()) return false;
00251 arg >> arg11;
00252 if (arg.atEnd()) return false;
00253 arg >> arg12;
00254 if (arg.atEnd()) return false;
00255 arg >> arg13;
00256 replyType = KMailIface_ftable[7][0];
00257 QDataStream _replyStream( replyData, IO_WriteOnly );
00258 _replyStream << openComposer(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13 );
00259 } break;
00260 case 8: {
00261 QString arg0;
00262 QString arg1;
00263 QString arg2;
00264 QString arg3;
00265 QString arg4;
00266 int arg5;
00267 QString arg6;
00268 QCString arg7;
00269 QCString arg8;
00270 QCString arg9;
00271 QCString arg10;
00272 QCString arg11;
00273 QString arg12;
00274 QCString arg13;
00275 QCString arg14;
00276 QDataStream arg( data, IO_ReadOnly );
00277 if (arg.atEnd()) return false;
00278 arg >> arg0;
00279 if (arg.atEnd()) return false;
00280 arg >> arg1;
00281 if (arg.atEnd()) return false;
00282 arg >> arg2;
00283 if (arg.atEnd()) return false;
00284 arg >> arg3;
00285 if (arg.atEnd()) return false;
00286 arg >> arg4;
00287 if (arg.atEnd()) return false;
00288 arg >> arg5;
00289 if (arg.atEnd()) return false;
00290 arg >> arg6;
00291 if (arg.atEnd()) return false;
00292 arg >> arg7;
00293 if (arg.atEnd()) return false;
00294 arg >> arg8;
00295 if (arg.atEnd()) return false;
00296 arg >> arg9;
00297 if (arg.atEnd()) return false;
00298 arg >> arg10;
00299 if (arg.atEnd()) return false;
00300 arg >> arg11;
00301 if (arg.atEnd()) return false;
00302 arg >> arg12;
00303 if (arg.atEnd()) return false;
00304 arg >> arg13;
00305 if (arg.atEnd()) return false;
00306 arg >> arg14;
00307 replyType = KMailIface_ftable[8][0];
00308 QDataStream _replyStream( replyData, IO_WriteOnly );
00309 _replyStream << openComposer(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14 );
00310 } break;
00311 case 9: {
00312 QString arg0;
00313 QString arg1;
00314 QString arg2;
00315 QString arg3;
00316 QString arg4;
00317 bool arg5;
00318 QDataStream arg( data, IO_ReadOnly );
00319 if (arg.atEnd()) return false;
00320 arg >> arg0;
00321 if (arg.atEnd()) return false;
00322 arg >> arg1;
00323 if (arg.atEnd()) return false;
00324 arg >> arg2;
00325 if (arg.atEnd()) return false;
00326 arg >> arg3;
00327 if (arg.atEnd()) return false;
00328 arg >> arg4;
00329 if (arg.atEnd()) return false;
00330 arg >> arg5;
00331 replyType = KMailIface_ftable[9][0];
00332 QDataStream _replyStream( replyData, IO_WriteOnly );
00333 _replyStream << openComposer(arg0, arg1, arg2, arg3, arg4, arg5 );
00334 } break;
00335 case 10: {
00336 QString arg0;
00337 QByteArray arg1;
00338 QDataStream arg( data, IO_ReadOnly );
00339 if (arg.atEnd()) return false;
00340 arg >> arg0;
00341 if (arg.atEnd()) return false;
00342 arg >> arg1;
00343 replyType = KMailIface_ftable[10][0];
00344 QDataStream _replyStream( replyData, IO_WriteOnly );
00345 _replyStream << sendCertificate(arg0, arg1 );
00346 } break;
00347 case 11: {
00348 replyType = KMailIface_ftable[11][0];
00349 compactAllFolders( );
00350 } break;
00351 case 12: {
00352 QString arg0;
00353 QString arg1;
00354 QString arg2;
00355 QDataStream arg( data, IO_ReadOnly );
00356 if (arg.atEnd()) return false;
00357 arg >> arg0;
00358 if (arg.atEnd()) return false;
00359 arg >> arg1;
00360 if (arg.atEnd()) return false;
00361 arg >> arg2;
00362 replyType = KMailIface_ftable[12][0];
00363 QDataStream _replyStream( replyData, IO_WriteOnly );
00364 _replyStream << dcopAddMessage(arg0, arg1, arg2 );
00365 } break;
00366 case 13: {
00367 QString arg0;
00368 KURL arg1;
00369 QString arg2;
00370 QDataStream arg( data, IO_ReadOnly );
00371 if (arg.atEnd()) return false;
00372 arg >> arg0;
00373 if (arg.atEnd()) return false;
00374 arg >> arg1;
00375 if (arg.atEnd()) return false;
00376 arg >> arg2;
00377 replyType = KMailIface_ftable[13][0];
00378 QDataStream _replyStream( replyData, IO_WriteOnly );
00379 _replyStream << dcopAddMessage(arg0, arg1, arg2 );
00380 } break;
00381 case 14: {
00382 replyType = KMailIface_ftable[14][0];
00383 QDataStream _replyStream( replyData, IO_WriteOnly );
00384 _replyStream << folderList( );
00385 } break;
00386 case 15: {
00387 QString arg0;
00388 QDataStream arg( data, IO_ReadOnly );
00389 if (arg.atEnd()) return false;
00390 arg >> arg0;
00391 replyType = KMailIface_ftable[15][0];
00392 QDataStream _replyStream( replyData, IO_WriteOnly );
00393 _replyStream << getFolder(arg0 );
00394 } break;
00395 case 16: {
00396 QString arg0;
00397 QDataStream arg( data, IO_ReadOnly );
00398 if (arg.atEnd()) return false;
00399 arg >> arg0;
00400 replyType = KMailIface_ftable[16][0];
00401 selectFolder(arg0 );
00402 } break;
00403 case 17: {
00404 replyType = KMailIface_ftable[17][0];
00405 QDataStream _replyStream( replyData, IO_WriteOnly );
00406 _replyStream << canQueryClose( );
00407 } break;
00408 case 18: {
00409 QString arg0;
00410 QDataStream arg( data, IO_ReadOnly );
00411 if (arg.atEnd()) return false;
00412 arg >> arg0;
00413 replyType = KMailIface_ftable[18][0];
00414 setDefaultTransport(arg0 );
00415 } break;
00416 case 19: {
00417 replyType = KMailIface_ftable[19][0];
00418 QDataStream _replyStream( replyData, IO_WriteOnly );
00419 _replyStream << timeOfLastMessageCountChange( );
00420 } break;
00421 case 20: {
00422 replyType = KMailIface_ftable[20][0];
00423 pauseBackgroundJobs( );
00424 } break;
00425 case 21: {
00426 replyType = KMailIface_ftable[21][0];
00427 resumeBackgroundJobs( );
00428 } break;
00429 case 22: {
00430 replyType = KMailIface_ftable[22][0];
00431 stopNetworkJobs( );
00432 } break;
00433 case 23: {
00434 replyType = KMailIface_ftable[23][0];
00435 resumeNetworkJobs( );
00436 } break;
00437 case 24: {
00438 QString arg0;
00439 QString arg1;
00440 QString arg2;
00441 bool arg3;
00442 bool arg4;
00443 KURL arg5;
00444 KURL arg6;
00445 QDataStream arg( data, IO_ReadOnly );
00446 if (arg.atEnd()) return false;
00447 arg >> arg0;
00448 if (arg.atEnd()) return false;
00449 arg >> arg1;
00450 if (arg.atEnd()) return false;
00451 arg >> arg2;
00452 if (arg.atEnd()) return false;
00453 arg >> arg3;
00454 if (arg.atEnd()) return false;
00455 arg >> arg4;
00456 if (arg.atEnd()) return false;
00457 arg >> arg5;
00458 if (arg.atEnd()) return false;
00459 arg >> arg6;
00460 replyType = KMailIface_ftable[24][0];
00461 QDataStream _replyStream( replyData, IO_WriteOnly );
00462 _replyStream << newMessage(arg0, arg1, arg2, arg3, arg4, arg5, arg6 );
00463 } break;
00464 case 25: {
00465 Q_UINT32 arg0;
00466 QString arg1;
00467 QDataStream arg( data, IO_ReadOnly );
00468 if (arg.atEnd()) return false;
00469 arg >> arg0;
00470 if (arg.atEnd()) return false;
00471 arg >> arg1;
00472 replyType = KMailIface_ftable[25][0];
00473 QDataStream _replyStream( replyData, IO_WriteOnly );
00474 _replyStream << showMail(arg0, arg1 );
00475 } break;
00476 case 26: {
00477 bool arg0;
00478 QDataStream arg( data, IO_ReadOnly );
00479 if (arg.atEnd()) return false;
00480 arg >> arg0;
00481 replyType = KMailIface_ftable[26][0];
00482 QDataStream _replyStream( replyData, IO_WriteOnly );
00483 _replyStream << handleCommandLine(arg0 );
00484 } break;
00485 case 27: {
00486 replyType = KMailIface_ftable[27][0];
00487 QDataStream _replyStream( replyData, IO_WriteOnly );
00488 _replyStream << firstStart( );
00489 } break;
00490 case 28: {
00491 Q_UINT32 arg0;
00492 QDataStream arg( data, IO_ReadOnly );
00493 if (arg.atEnd()) return false;
00494 arg >> arg0;
00495 replyType = KMailIface_ftable[28][0];
00496 QDataStream _replyStream( replyData, IO_WriteOnly );
00497 _replyStream << getFrom(arg0 );
00498 } break;
00499 case 29: {
00500 replyType = KMailIface_ftable[29][0];
00501 QDataStream _replyStream( replyData, IO_WriteOnly );
00502 _replyStream << debugScheduler( );
00503 } break;
00504 case 30: {
00505 Q_UINT32 arg0;
00506 QDataStream arg( data, IO_ReadOnly );
00507 if (arg.atEnd()) return false;
00508 arg >> arg0;
00509 replyType = KMailIface_ftable[30][0];
00510 QDataStream _replyStream( replyData, IO_WriteOnly );
00511 _replyStream << debugSernum(arg0 );
00512 } break;
00513 case 31: {
00514 QString arg0;
00515 QString arg1;
00516 QString arg2;
00517 QDataStream arg( data, IO_ReadOnly );
00518 if (arg.atEnd()) return false;
00519 arg >> arg0;
00520 if (arg.atEnd()) return false;
00521 arg >> arg1;
00522 if (arg.atEnd()) return false;
00523 arg >> arg2;
00524 replyType = KMailIface_ftable[31][0];
00525 QDataStream _replyStream( replyData, IO_WriteOnly );
00526 _replyStream << dcopAddMessage_fastImport(arg0, arg1, arg2 );
00527 } break;
00528 case 32: {
00529 QString arg0;
00530 KURL arg1;
00531 QString arg2;
00532 QDataStream arg( data, IO_ReadOnly );
00533 if (arg.atEnd()) return false;
00534 arg >> arg0;
00535 if (arg.atEnd()) return false;
00536 arg >> arg1;
00537 if (arg.atEnd()) return false;
00538 arg >> arg2;
00539 replyType = KMailIface_ftable[32][0];
00540 QDataStream _replyStream( replyData, IO_WriteOnly );
00541 _replyStream << dcopAddMessage_fastImport(arg0, arg1, arg2 );
00542 } break;
00543 case 33: {
00544 replyType = KMailIface_ftable[33][0];
00545 dcopResetAddMessage( );
00546 } break;
00547 case 34: {
00548 QString arg0;
00549 QDataStream arg( data, IO_ReadOnly );
00550 if (arg.atEnd()) return false;
00551 arg >> arg0;
00552 replyType = KMailIface_ftable[34][0];
00553 loadProfile(arg0 );
00554 } break;
00555 case 35: {
00556 QString arg0;
00557 QDataStream arg( data, IO_ReadOnly );
00558 if (arg.atEnd()) return false;
00559 arg >> arg0;
00560 replyType = KMailIface_ftable[35][0];
00561 saveToProfile(arg0 );
00562 } break;
00563 default:
00564 return DCOPObject::process( fun, data, replyType, replyData );
00565 }
00566 return true;
00567 }
00568
00569 QCStringList KMailIface::interfaces()
00570 {
00571 QCStringList ifaces = DCOPObject::interfaces();
00572 ifaces += "KMailIface";
00573 return ifaces;
00574 }
00575
00576 QCStringList KMailIface::functions()
00577 {
00578 QCStringList funcs = DCOPObject::functions();
00579 for ( int i = 0; KMailIface_ftable[i][2]; i++ ) {
00580 if (KMailIface_ftable_hiddens[i])
00581 continue;
00582 QCString func = KMailIface_ftable[i][0];
00583 func += ' ';
00584 func += KMailIface_ftable[i][2];
00585 funcs << func;
00586 }
00587 return funcs;
00588 }
00589
00590 void KMailIface::unreadCountChanged()
00591 {
00592 QByteArray data;
00593 emitDCOPSignal( "unreadCountChanged()", data );
00594 }
00595
00596 void KMailIface::unreadCountChanged( const QString& arg0, int arg1 )
00597 {
00598 QByteArray data;
00599 QDataStream arg( data, IO_WriteOnly );
00600 arg << arg0;
00601 arg << arg1;
00602 emitDCOPSignal( "unreadCountChanged(QString,int)", data );
00603 }
00604
00605