diff options
Diffstat (limited to 'src')
46 files changed, 1100 insertions, 1088 deletions
diff --git a/src/config.l b/src/config.l index 14db2c1..810287e 100644 --- a/src/config.l +++ b/src/config.l @@ -33,6 +33,8 @@ #include "config.h" #include "version.h" +#include "lang_cfg.h" + #undef Config_getString #undef Config_getInt #undef Config_getList @@ -969,12 +971,12 @@ void Config::check() dotImageFormat=dotImageFormat.stripWhiteSpace(); if (dotImageFormat.isEmpty()) { - dotImageFormat = "gif"; + dotImageFormat = "png"; } else if (dotImageFormat!="gif" && dotImageFormat!="png" && dotImageFormat!="jpg") { config_err("Invalid value for DOT_IMAGE_FORMAT: `%s'. Using the default.\n",dotImageFormat.data()); - dotImageFormat = "gif"; + dotImageFormat = "png"; } @@ -2265,13 +2267,13 @@ void Config::create() ce = addEnum( "DOT_IMAGE_FORMAT", "The DOT_IMAGE_FORMAT tag can be used to set the image format of the images \n" - "generated by dot. Possible values are gif, jpg, and png\n" - "If left blank gif will be used. \n", - "gif" + "generated by dot. Possible values are png, jpg, or gif\n" + "If left blank png will be used. \n", + "png" ); - ce->addValue("gif"); - ce->addValue("jpg"); ce->addValue("png"); + ce->addValue("jpg"); + ce->addValue("gif"); ce->addDependency("HAVE_DOT"); cs = addString( "DOT_PATH", diff --git a/src/diagram.cpp b/src/diagram.cpp index 80e5c1b..9df2bf5 100644 --- a/src/diagram.cpp +++ b/src/diagram.cpp @@ -1255,13 +1255,6 @@ void ClassDiagram::writeImage(QTextStream &t,const char *path, uint superRows=super->computeRows(); uint rows=baseRows+superRows-1; -// t << "<p>Class diagram for "; -// HtmlGenerator::docifyStatic(t,name); -// t << ".\n<p><center><img src=\"" -// << fileName << ".gif\" usemap=\"#" << name << "_map\"" -// << " border=\"0\"></center>" << endl -// << "<map name=\"" << name << "_map\"><p>" << endl; - uint lb,ls,xb,xs; base->computeExtremes(&lb,&xb); super->computeExtremes(&ls,&xs); @@ -1281,7 +1274,7 @@ void ClassDiagram::writeImage(QTextStream &t,const char *path, base->drawConnectors(t,&image,TRUE,TRUE,baseRows,superRows,cellWidth,cellHeight); super->drawConnectors(t,&image,FALSE,TRUE,baseRows,superRows,cellWidth,cellHeight); - image.save((QCString)path+"/"+fileName+".gif"); + image.save((QCString)path+"/"+fileName+".png"); if (generateMap) t << "</map>" << endl; } @@ -861,7 +861,7 @@ static void writeDotFile(const char *fileName, const char *captionText) /* ----------------------------------------------------------------- */ -static void checkArgName(const QCString &name) +static void checkArgName(const QCString &name,bool isParam) { hasParamCommand=TRUE; if (memberDef==0) return; // not a member @@ -871,31 +871,39 @@ static void checkArgName(const QCString &name) if (al==0) return; // no argument list if (!Config_getBool("WARN_IF_UNDOCUMENTED")) return; + //printf("name=%s\n",name.data()); static QRegExp re("[a-zA-Z0-9_]+"); int p=0,i=0,l; while ((i=re.match(name,p,&l))!=-1) { QCString aName=name.mid(i,l); + //printf("aName=%s\n",aName.data()); ArgumentListIterator ali(*al); Argument *a; + bool found=FALSE; for (ali.toFirst();(a=ali.current());++ali) { QCString argName = memberDef->isDefine() ? a->type : a->name; if (aName==argName) { - paramsFound.insert(name,(void *)(0x8)); - return; + //printf("adding `%s'\n",aName.data()); + paramsFound.insert(aName,(void *)(0x8)); + found=TRUE; + break; } } - //printf("member type=%d\n",memberDef->memberType()); - QCString scope=memberDef->getScopeString(); - if (!scope.isEmpty()) scope+="::"; else scope=""; - warn(memberDef->docFile(),memberDef->docLine(), - "Warning: argument `%s' of command @param " - "is not found in the argument list of %s%s%s", - aName.data(),scope.data(),memberDef->name().data(), - argListToString(al).data() - ); + if (!found && isParam) + { + //printf("member type=%d\n",memberDef->memberType()); + QCString scope=memberDef->getScopeString(); + if (!scope.isEmpty()) scope+="::"; else scope=""; + warn(memberDef->docFile(),memberDef->docLine(), + "Warning: argument `%s' of command @param " + "is not found in the argument list of %s%s%s", + aName.data(),scope.data(),memberDef->name().data(), + argListToString(al).data() + ); + } p=i+l; } } @@ -1749,7 +1757,14 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG}) <DocScan>"\\capt".* <DocParam>({DOCPARAM}{BN}*","{BN}*)*{DOCPARAM}{BSEP}* { QCString argName = substitute(yytext,"\"","").stripWhiteSpace(); - if (inParamBlock) checkArgName(argName); + if (inParamBlock) + { + checkArgName(argName,TRUE); + } + else if (inRetValBlock) + { + checkArgName(argName,FALSE); + } outDoc->startDescTableTitle(); scanDoc(argName); outDoc->endDescTableTitle(); @@ -2797,9 +2812,10 @@ void parseDoc(OutputDocInterface &od,const char *fileName,int startLine, argListToString(al).data()); for (ali.toFirst();(a=ali.current());++ali) { - if (!a->name.isEmpty() && paramsFound.find(a->name)==0) + QCString argName = memberDef->isDefine() ? a->type : a->name; + if (!argName.isEmpty() && paramsFound.find(argName)==0) { - warn_cont( " parameter %s\n",a->name.data()); + warn_cont( " parameter %s\n",argName.data()); } } } diff --git a/src/dot.cpp b/src/dot.cpp index 3c8360d..77faf6e 100644 --- a/src/dot.cpp +++ b/src/dot.cpp @@ -178,6 +178,39 @@ static bool isLeaf(ClassDef *cd) return TRUE; } +// since dot silently reproduces the input file when it does not +// support the PNG format, we need to check the result. +static void checkDotResult(const QCString &imgName) +{ + if (Config_getEnum("DOT_IMAGE_FORMAT")=="png") + { + QFile f(imgName); + if (f.open(IO_ReadOnly)) + { + char data[4]; + if (f.readBlock(data,4)==4) + { + if (!(data[1]=='P' && data[2]=='N' && data[3]=='G')) + { + err("Error! Image `%s' produced by dot is not a valid PNG!\n" + "You should either select a different format " + "(DOT_IMAGE_FORMAT in the config file) or install a more " + "recent version of graphviz (1.7+)\n",imgName.data() + ); + } + } + else + { + err("Error: Could not read image `%s' generated by dot!\n",imgName.data()); + } + } + else + { + err("Error: Could not open image `%s' generated by dot!\n",imgName.data()); + } + } +} + //-------------------------------------------------------------------- class DotNodeList : public QList<DotNode> @@ -719,6 +752,7 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) out << "</table>" << endl; return; } + checkDotResult(imgName); dotArgs.sprintf("-Timap \"%s\" -o \"%s\"",dotName.data(),mapName.data()); //printf("Running: dot -Timap %s -o %s\n",dotName.data(),mapName.data()); if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0) @@ -1300,14 +1334,16 @@ QCString DotClassGraph::writeGraph(QTextStream &out, { QCString dotArgs(4096); QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT"); - dotArgs.sprintf("-T%s \"%s.dot\" -o \"%s.%s\"", - imgExt.data(),baseName.data(),baseName.data(),imgExt.data()); + QCString imgName = baseName+"."+imgExt; + dotArgs.sprintf("-T%s \"%s.dot\" -o \"%s\"", + imgExt.data(),baseName.data(),imgName.data()); if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0) { err("Error: Problems running dot. Check your installation!\n"); QDir::setCurrent(oldDir); return baseName; } + checkDotResult(imgName); if (generateImageMap) { // run dot again to create an image map @@ -1529,14 +1565,16 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out, // run dot to create a bitmap image QCString dotArgs(4096); QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT"); - dotArgs.sprintf("-T%s \"%s.dot\" -o \"%s.%s\"", - imgExt.data(),baseName.data(),baseName.data(),imgExt.data()); + QCString imgName=baseName+"."+imgExt; + dotArgs.sprintf("-T%s \"%s.dot\" -o \"%s\"", + imgExt.data(),baseName.data(),imgName.data()); if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0) { err("Problems running dot. Check your installation!\n"); QDir::setCurrent(oldDir); return baseName; } + checkDotResult(imgName); if (generateImageMap) { @@ -1674,13 +1712,15 @@ void generateGraphLegend(const char *path) // run dot to generate the a bitmap image from the graph QCString dotArgs(4096); QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT"); - dotArgs.sprintf("-T%s graph_legend.dot -o graph_legend.%s",imgExt.data(),imgExt.data()); + QCString imgName = "graph_legend."+imgExt; + dotArgs.sprintf("-T%s graph_legend.dot -o %s",imgExt.data(),imgName.data()); if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0) { err("Problems running dot. Check your installation!\n"); QDir::setCurrent(oldDir); return; } + checkDotResult(imgName); QDir::setCurrent(oldDir); } @@ -1690,10 +1730,11 @@ void writeDotGraphFromFile(const char *inFile,const char *outFile, { QCString dotArgs(4096); QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT"); + QCString imgName = (QCString)outFile+"."+imgExt; if (format==BITMAP) { - dotArgs.sprintf("-T%s \"%s\" -o \"%s.%s\"",imgExt.data(), - inFile,outFile,imgExt.data()); + dotArgs.sprintf("-T%s \"%s\" -o \"%s\"",imgExt.data(), + inFile,imgName.data()); } else // format==EPS { @@ -1705,4 +1746,6 @@ void writeDotGraphFromFile(const char *inFile,const char *outFile, { err("Problems running dot. Check your installation!\n"); } + if (format==BITMAP) checkDotResult(imgName); } + diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 1168e25..1363348 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -2153,6 +2153,7 @@ static void transferFunctionDocumentation() matchArguments(mdef->argumentList(),mdec->argumentList()) ) /* match found */ { + /* FIX: Always match declaration and definition. FileDef *fdef = mdef->getFileDef(); FileDef *fdec = mdec->getFileDef(); @@ -2161,6 +2162,7 @@ static void transferFunctionDocumentation() fdef==fdec || (fdef!=0 && (!fdef->hasDocumentation() || !fdec->hasDocumentation())) ) + */ { //printf("Found member %s: definition in %s (doc=%d) and declation in %s (doc=%d)\n", // mn->memberName(), @@ -2221,6 +2223,90 @@ static void transferFunctionDocumentation() //---------------------------------------------------------------------- +static void transferFunctionReferences() +{ + MemberNameSDict::Iterator mnli(Doxygen::functionNameSDict); + MemberName *mn; + for (;(mn=mnli.current());++mnli) + { + MemberDef *md,*mdef=0,*mdec=0; + MemberNameIterator mni(*mn); + /* find a matching function declaration and definition for this function */ + for (;(md=mni.current());++mni) + { + if (md->isPrototype()) + mdec=md; + else if (md->isVariable() && md->isExternal()) + mdec=md; + + if (md->isFunction() && !md->isStatic() && !md->isPrototype()) + mdef=md; + else if (md->isVariable() && !md->isExternal() && !md->isStatic()) + mdef=md; + } + if (mdef && mdec && + matchArguments(mdef->argumentList(),mdec->argumentList()) + ) /* match found */ + { + MemberSDict *defDict = mdef->getReferencesMembers(); + MemberSDict *decDict = mdec->getReferencesMembers(); + if (defDict) + { + MemberSDict::Iterator msdi(*defDict); + MemberDef *rmd; + for (msdi.toFirst();(rmd=msdi.current());++msdi) + { + if (decDict==0 || decDict->find(rmd->name())==0) + { + mdec->addSourceReferences(rmd); + } + } + } + if (decDict) + { + MemberSDict::Iterator msdi(*decDict); + MemberDef *rmd; + for (msdi.toFirst();(rmd=msdi.current());++msdi) + { + if (defDict==0 || defDict->find(rmd->name())==0) + { + mdef->addSourceReferences(rmd); + } + } + } + + defDict = mdef->getReferencedByMembers(); + decDict = mdec->getReferencedByMembers(); + if (defDict) + { + MemberSDict::Iterator msdi(*defDict); + MemberDef *rmd; + for (msdi.toFirst();(rmd=msdi.current());++msdi) + { + if (decDict==0 || decDict->find(rmd->name())==0) + { + mdec->addSourceReferencedBy(rmd); + } + } + } + if (decDict) + { + MemberSDict::Iterator msdi(*decDict); + MemberDef *rmd; + for (msdi.toFirst();(rmd=msdi.current());++msdi) + { + if (defDict==0 || defDict->find(rmd->name())==0) + { + mdef->addSourceReferencedBy(rmd); + } + } + } + } + } +} + +//---------------------------------------------------------------------- + static void transferRelatedFunctionDocumentation() { // find match between function declaration and definition for @@ -4010,7 +4096,7 @@ static void findMember(Entry *root, warn_cont(" "); if (md->typeString()) { - warn_cont("%s",md->typeString()); + warn_cont("%s ",md->typeString()); } warn_cont("%s::%s%s\n", cd->name().data(), @@ -7198,6 +7284,7 @@ void generateOutput() msg("Generating file sources...\n"); generateFileSources(); + transferFunctionReferences(); msg("Generating file documentation...\n"); generateFileDocs(); diff --git a/src/doxygen.pro.in b/src/doxygen.pro.in index 8c5f42d..75ffd35 100644 --- a/src/doxygen.pro.in +++ b/src/doxygen.pro.in @@ -18,15 +18,15 @@ TEMPLATE = app.t CONFIG = console warn_on $extraopts HEADERS = doxygen.h SOURCES = main.cpp -unix:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools +unix:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lpng win32:INCLUDEPATH += . -win32-mingw:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -win32-msvc:LIBS += qtools.lib doxygen.lib doxycfg.lib shell32.lib +win32-mingw:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lpng +win32-msvc:LIBS += qtools.lib png.lib doxygen.lib doxycfg.lib shell32.lib win32-msvc:TMAKE_LFLAGS += /LIBPATH:..\lib -win32-borland:LIBS += qtools.lib doxygen.lib doxycfg.lib shell32.lib +win32-borland:LIBS += qtools.lib png.lib doxygen.lib doxycfg.lib shell32.lib win32-borland:TMAKE_LFLAGS += -L..\lib -L$(BCB)\lib\psdk win32:TMAKE_CXXFLAGS += -DQT_NODLL -INCLUDEPATH += ../qtools . +INCLUDEPATH += ../qtools ../libpng . DESTDIR = ../bin TARGET = doxygen unix:TARGETDEPS = ../lib/libdoxygen.a ../lib/libdoxycfg.a diff --git a/src/doxysearch.cpp b/src/doxysearch.cpp index 4ec3ae7..a521625 100644 --- a/src/doxysearch.cpp +++ b/src/doxysearch.cpp @@ -249,7 +249,7 @@ void printSearchPage(bool open=FALSE) " <tr>\n" " <td><input name=query size=44 wrap=virtual maxlength=1000 value=\"%s\">\n" " </td>\n" - " <td><input type=image src=\"%s/search.gif\" height=26 width=120 border=0 name=\"search\">\n" + " <td><input type=image src=\"%s/search.png\" height=26 width=120 border=0 name=\"search\">\n" " </td>\n" " </tr>\n", cgiBin, diff --git a/src/doxytag.l b/src/doxytag.l index 288c945..18d940e 100644 --- a/src/doxytag.l +++ b/src/doxytag.l @@ -594,9 +594,9 @@ int main(int argc,char **argv) if (fi.exists()) { QCString dir=convertToQCString(fi.dir().absPath()); - fi.setFile(dir+"/search.gif"); + fi.setFile(dir+"/search.png"); if (!fi.exists()) writeSearchButton(dir); - fi.setFile(dir+"/doxygen.gif"); + fi.setFile(dir+"/doxygen.png"); if (!fi.exists()) writeLogo(dir); fi.setFile(dir+"/search.cgi"); if (!fi.exists()) diff --git a/src/formula.cpp b/src/formula.cpp index 32e16ba..a9541c8 100644 --- a/src/formula.cpp +++ b/src/formula.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * + i * * * Copyright (C) 1997-2002 by Dimitri van Heesch. @@ -85,7 +85,7 @@ void FormulaList::generateBitmaps(const char *path) for (fli.toFirst();(formula=fli.current());++fli) { QCString resultName; - resultName.sprintf("form_%d.gif",formula->getId()); + resultName.sprintf("form_%d.png",formula->getId()); // only formulas for which no image exists are generated QFileInfo fi(resultName); if (!fi.exists()) @@ -116,7 +116,7 @@ void FormulaList::generateBitmaps(const char *path) for (;(pagePtr=pli.current());++pli,++pageIndex) { int pageNum=*pagePtr; - msg("Generating image form_%d.gif for formula\n",pageNum); + msg("Generating image form_%d.png for formula\n",pageNum); char dviArgs[4096]; QCString formBase; formBase.sprintf("_form%d",pageNum); @@ -297,9 +297,9 @@ void FormulaList::generateBitmaps(const char *path) dstImage.setPixel(x,y,QMIN(15,(c*15)/(16*10))); } } - // save the result as a gif + // save the result as a png QCString resultName; - resultName.sprintf("form_%d.gif",pageNum); + resultName.sprintf("form_%d.png",pageNum); // the option parameter 1 is used here as a temporary hack // to select the right color palette! dstImage.save(resultName,1); @@ -320,8 +320,8 @@ void FormulaList::generateBitmaps(const char *path) // remove the latex file itself if (!formulaError) thisDir.remove("_formulas.tex"); // write/update the formula repository so we know what text the - // generated gifs represent (we use this next time to avoid regeneration - // of the gifs, and to avoid forcing the user to delete all gifs in order + // generated pngs represent (we use this next time to avoid regeneration + // of the pngs, and to avoid forcing the user to delete all pngs in order // to let a browser refresh the images). f.setName("formula.repository"); if (f.open(IO_WriteOnly)) diff --git a/src/ftvhelp.cpp b/src/ftvhelp.cpp index 17fd9f7..e31a3fd 100644 --- a/src/ftvhelp.cpp +++ b/src/ftvhelp.cpp @@ -25,204 +25,287 @@ const char treeview_data[]= #include "treeview.h" ; -unsigned char ftv2blank_gif[] = { - 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x10, 0x00, 0x16, 0x00, 0xb3, 0x00, - 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x21, 0xf9, 0x04, 0x01, 0x00, 0x00, 0x0f, 0x00, 0x21, 0xfe, 0x1c, - 0x55, 0x6c, 0x65, 0x61, 0x64, 0x20, 0x47, 0x49, 0x46, 0x20, 0x53, 0x6d, - 0x61, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, 0x72, 0x20, 0x56, 0x65, 0x72, - 0x20, 0x32, 0x2e, 0x30, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, - 0x16, 0x00, 0x40, 0x04, 0x14, 0xf0, 0xc9, 0x49, 0xab, 0xbd, 0x38, 0xeb, - 0xcd, 0xbb, 0xff, 0x60, 0x28, 0x8e, 0x64, 0x69, 0x9e, 0x68, 0xaa, 0x3e, - 0x11, 0x00, 0x3b +unsigned char ftv2blank_png[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x16, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x96, 0xd6, 0x11, 0x47, 0x00, 0x00, 0x00, + 0x02, 0x74, 0x52, 0x4e, 0x53, 0x00, 0x01, 0x01, 0x94, 0xfd, 0xae, 0x00, + 0x00, 0x00, 0x16, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, + 0x61, 0x72, 0x65, 0x00, 0x67, 0x69, 0x66, 0x32, 0x70, 0x6e, 0x67, 0x20, + 0x32, 0x2e, 0x34, 0x2e, 0x32, 0xa3, 0x5e, 0x47, 0x0e, 0x00, 0x00, 0x00, + 0x25, 0x74, 0x45, 0x58, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x00, 0x55, 0x6c, 0x65, 0x61, 0x64, 0x20, 0x47, 0x49, 0x46, 0x20, 0x53, + 0x6d, 0x61, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, 0x72, 0x20, 0x56, 0x65, + 0x72, 0x20, 0x32, 0x2e, 0x30, 0x21, 0xf8, 0xd7, 0x5e, 0x53, 0x00, 0x00, + 0x00, 0x14, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x63, 0x38, 0xc0, 0x80, + 0x80, 0x1f, 0x30, 0xe0, 0x7f, 0x42, 0x90, 0x00, 0x02, 0x00, 0x78, 0x3c, + 0x32, 0xcb, 0x72, 0x8f, 0x7c, 0x12, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, + 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; -const unsigned int ftv2blank_gif_len = 135; - -unsigned char ftv2doc_gif[] = { - 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x18, 0x00, 0x16, 0x00, 0xa2, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, - 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x21, 0xf9, 0x04, 0x01, 0x00, 0x00, 0x06, 0x00, 0x2c, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x00, 0x16, 0x00, 0x00, 0x03, 0x55, 0x68, 0xba, 0xdc, - 0xfe, 0x30, 0xca, 0x49, 0x6b, 0x24, 0x38, 0x67, 0x6b, 0x88, 0xf8, 0x60, - 0x30, 0x10, 0x96, 0x17, 0x04, 0x02, 0x2a, 0x0c, 0x02, 0x49, 0x79, 0x20, - 0x58, 0xcc, 0xc5, 0x9b, 0x02, 0x38, 0x00, 0x0e, 0xf5, 0x04, 0xc7, 0x1f, - 0x51, 0x4f, 0x62, 0xca, 0xe1, 0x3e, 0xbc, 0x17, 0x4a, 0x15, 0x4b, 0xfa, - 0x3e, 0x46, 0xdd, 0x6a, 0x78, 0x09, 0x02, 0x85, 0x4a, 0x41, 0x14, 0x49, - 0x85, 0xfc, 0x42, 0x5c, 0xdb, 0x32, 0x86, 0xf5, 0x0d, 0xce, 0xe8, 0x74, - 0xf7, 0x41, 0x6b, 0xbb, 0x39, 0xf0, 0xb8, 0xdc, 0x92, 0x00, 0x00, 0x3b +unsigned int ftv2blank_png_len = 174; + +unsigned char ftv2doc_png[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x16, + 0x04, 0x03, 0x00, 0x00, 0x01, 0x5f, 0x54, 0x71, 0x2d, 0x00, 0x00, 0x00, + 0x15, 0x50, 0x4c, 0x54, 0x45, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, + 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xb3, 0xbd, 0xfb, 0xc8, 0x00, 0x00, 0x00, 0x01, 0x74, 0x52, + 0x4e, 0x53, 0x00, 0x40, 0xe6, 0xd8, 0x66, 0x00, 0x00, 0x00, 0x16, 0x74, + 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x00, + 0x67, 0x69, 0x66, 0x32, 0x70, 0x6e, 0x67, 0x20, 0x32, 0x2e, 0x34, 0x2e, + 0x32, 0xa3, 0x5e, 0x47, 0x0e, 0x00, 0x00, 0x00, 0x76, 0x49, 0x44, 0x41, + 0x54, 0x78, 0xda, 0x63, 0x60, 0x60, 0x60, 0x60, 0x63, 0x60, 0x60, 0x64, + 0x00, 0x01, 0x27, 0x30, 0x62, 0x71, 0x01, 0xe2, 0x24, 0x06, 0x38, 0x60, + 0x71, 0x00, 0xca, 0x27, 0x33, 0x30, 0x30, 0x01, 0x31, 0xa3, 0x32, 0x03, + 0x0a, 0x70, 0x54, 0x32, 0x01, 0x53, 0x69, 0x60, 0x71, 0x27, 0x08, 0x15, + 0x1a, 0x1a, 0xca, 0x80, 0x01, 0x5c, 0x5c, 0xc0, 0x94, 0xa2, 0x90, 0x02, + 0x88, 0x52, 0x4b, 0x52, 0x05, 0x53, 0x69, 0xc8, 0x94, 0x18, 0x84, 0x52, + 0x52, 0x12, 0xc5, 0x69, 0x0a, 0x36, 0xe0, 0xa4, 0xa4, 0xa4, 0x68, 0x82, + 0xc4, 0x51, 0x82, 0x6b, 0x04, 0x71, 0x14, 0x4d, 0x61, 0x4e, 0x55, 0x04, + 0xf2, 0x60, 0x1c, 0x27, 0x45, 0x24, 0x19, 0x90, 0x01, 0x70, 0x19, 0x67, + 0x63, 0x20, 0x30, 0xc5, 0x6f, 0x23, 0x00, 0xf5, 0xd0, 0x11, 0xe0, 0x55, + 0x83, 0x47, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, + 0x42, 0x60, 0x82 }; -const unsigned int ftv2doc_gif_len = 144; - -unsigned char ftv2folderclosed_gif[] = { - 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x18, 0x00, 0x16, 0x00, 0xa2, 0x00, - 0x00, 0x80, 0x00, 0x80, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0x80, 0x80, - 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x21, 0xf9, 0x04, 0x01, 0x00, 0x00, 0x05, 0x00, 0x2c, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x00, 0x16, 0x00, 0x00, 0x03, 0x4c, 0x58, 0xba, 0xdc, - 0xfe, 0x30, 0xca, 0x49, 0x2b, 0x25, 0xc4, 0x3a, 0x0c, 0x40, 0xd6, 0x05, - 0xd7, 0x75, 0xdf, 0x45, 0x8c, 0xa8, 0x77, 0x09, 0x69, 0x5a, 0x42, 0x27, - 0xdb, 0x8e, 0xef, 0xd6, 0xc9, 0xb3, 0x0a, 0x8f, 0x78, 0x8b, 0xed, 0x3c, - 0x1f, 0x61, 0x20, 0x39, 0x05, 0x49, 0xc3, 0x00, 0xb1, 0x88, 0x12, 0x60, - 0x06, 0x82, 0x80, 0xb3, 0x66, 0x23, 0x0d, 0xa4, 0xd2, 0xdf, 0x85, 0x84, - 0xd5, 0x5a, 0x4e, 0x43, 0x2f, 0x08, 0x43, 0x05, 0x99, 0xcf, 0xe8, 0x49, - 0x02, 0x00, 0x3b +unsigned int ftv2doc_png_len = 255; + +unsigned char ftv2folderclosed_png[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x16, + 0x04, 0x03, 0x00, 0x00, 0x01, 0x5f, 0x54, 0x71, 0x2d, 0x00, 0x00, 0x00, + 0x12, 0x50, 0x4c, 0x54, 0x45, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, + 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x42, + 0xee, 0x40, 0xe1, 0x00, 0x00, 0x00, 0x01, 0x74, 0x52, 0x4e, 0x53, 0x00, + 0x40, 0xe6, 0xd8, 0x66, 0x00, 0x00, 0x00, 0x16, 0x74, 0x45, 0x58, 0x74, + 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x00, 0x67, 0x69, 0x66, + 0x32, 0x70, 0x6e, 0x67, 0x20, 0x32, 0x2e, 0x34, 0x2e, 0x32, 0xa3, 0x5e, + 0x47, 0x0e, 0x00, 0x00, 0x00, 0x7d, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, + 0x8d, 0x8e, 0xc1, 0x0a, 0x84, 0x30, 0x10, 0x43, 0x23, 0x8c, 0x77, 0x0f, + 0xfb, 0x03, 0x42, 0xbd, 0x2b, 0xf8, 0x01, 0x65, 0x6d, 0xef, 0xa2, 0xcd, + 0xff, 0xff, 0x8a, 0x33, 0xad, 0xee, 0x5a, 0xf6, 0xb0, 0x06, 0xda, 0xf0, + 0x86, 0xa6, 0x13, 0x00, 0x88, 0x40, 0x03, 0x53, 0x02, 0x82, 0x9a, 0xd7, + 0x51, 0x42, 0x25, 0xae, 0x7a, 0x76, 0xa0, 0xed, 0xea, 0x79, 0x79, 0x17, + 0x49, 0x73, 0xe1, 0xf2, 0x32, 0x14, 0x8f, 0x5f, 0x49, 0xb9, 0xed, 0x23, + 0x60, 0x20, 0xcd, 0x36, 0x66, 0xe4, 0x40, 0x4b, 0xb4, 0xdb, 0xdb, 0xe5, + 0x16, 0xee, 0x16, 0x78, 0x20, 0xf9, 0x96, 0x15, 0x6d, 0xc2, 0x8b, 0xa2, + 0x6e, 0xf9, 0x50, 0x64, 0xa6, 0x70, 0xb6, 0x50, 0x0a, 0xd3, 0x78, 0x86, + 0x98, 0xa6, 0xde, 0x5d, 0x9d, 0x25, 0xcd, 0xfe, 0xdf, 0xc6, 0x03, 0xa0, + 0x13, 0x15, 0x98, 0x60, 0xbd, 0x81, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x49, + 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; -const unsigned int ftv2folderclosed_gif_len = 135; - -unsigned char ftv2folderopen_gif[] = { - 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x18, 0x00, 0x16, 0x00, 0xa2, 0x00, - 0x00, 0x80, 0x00, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, - 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x21, 0xf9, 0x04, 0x01, 0x00, 0x00, 0x06, 0x00, 0x2c, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x00, 0x16, 0x00, 0x00, 0x03, 0x5f, 0x68, 0xba, 0xdc, - 0xfe, 0x30, 0xca, 0x49, 0x2b, 0x24, 0xf6, 0x0e, 0x9c, 0x59, 0x01, 0xc2, - 0xc6, 0x10, 0x24, 0xf5, 0x09, 0x02, 0x47, 0xa2, 0x9c, 0x74, 0x86, 0x2b, - 0x1a, 0x10, 0x45, 0xe1, 0x82, 0x68, 0x31, 0x08, 0x01, 0x2b, 0x00, 0x36, - 0xc8, 0x4b, 0xa0, 0x43, 0xf1, 0x08, 0xbf, 0xe0, 0x63, 0x58, 0xec, 0xa5, - 0x92, 0x11, 0xe6, 0x4e, 0x86, 0x04, 0x46, 0x71, 0xc4, 0x9d, 0xb3, 0xaa, - 0x74, 0x7c, 0x70, 0x45, 0xd6, 0xce, 0x7a, 0x05, 0x15, 0x49, 0x53, 0xf2, - 0x95, 0x88, 0x36, 0x42, 0x27, 0x5f, 0x80, 0x7c, 0x2e, 0xef, 0x46, 0x6b, - 0xf8, 0xbc, 0xbd, 0xc3, 0xef, 0xfb, 0x1b, 0x09, 0x00, 0x3b +unsigned int ftv2folderclosed_png_len = 259; + +unsigned char ftv2folderopen_png[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x16, + 0x04, 0x03, 0x00, 0x00, 0x01, 0x5f, 0x54, 0x71, 0x2d, 0x00, 0x00, 0x00, + 0x15, 0x50, 0x4c, 0x54, 0x45, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, + 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, + 0x00, 0x80, 0x92, 0x32, 0x8c, 0xe5, 0x00, 0x00, 0x00, 0x01, 0x74, 0x52, + 0x4e, 0x53, 0x00, 0x40, 0xe6, 0xd8, 0x66, 0x00, 0x00, 0x00, 0x16, 0x74, + 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x00, + 0x67, 0x69, 0x66, 0x32, 0x70, 0x6e, 0x67, 0x20, 0x32, 0x2e, 0x34, 0x2e, + 0x32, 0xa3, 0x5e, 0x47, 0x0e, 0x00, 0x00, 0x00, 0x7c, 0x49, 0x44, 0x41, + 0x54, 0x78, 0xda, 0x85, 0x8d, 0x41, 0x0e, 0x82, 0x30, 0x10, 0x45, 0x5f, + 0x08, 0xf5, 0x1e, 0x2d, 0x53, 0xd6, 0xc6, 0x18, 0xd7, 0x8d, 0x18, 0xd7, + 0x06, 0xd2, 0x1e, 0xa0, 0xb1, 0xde, 0xff, 0x08, 0x3a, 0x20, 0x21, 0x10, + 0xa2, 0x6f, 0xf3, 0xfe, 0xff, 0x8b, 0x19, 0x80, 0x0a, 0x6a, 0x14, 0x81, + 0x3c, 0x06, 0x2a, 0x61, 0xc5, 0xd3, 0x43, 0x69, 0xc1, 0xb4, 0xab, 0xf9, + 0x70, 0xac, 0x83, 0xca, 0xbb, 0xfb, 0xa4, 0x8b, 0xae, 0x26, 0x46, 0xb6, + 0x4c, 0x0f, 0xe8, 0xc3, 0x18, 0xfa, 0xb3, 0x7d, 0xa8, 0x1a, 0xeb, 0x17, + 0xa5, 0x46, 0x54, 0x46, 0x4e, 0x2a, 0xe2, 0xce, 0x95, 0x3d, 0xba, 0xb0, + 0x64, 0x93, 0x85, 0x9b, 0x0b, 0x73, 0x71, 0x83, 0x75, 0xd7, 0xf2, 0xa7, + 0x90, 0xf2, 0x20, 0x9d, 0xfb, 0x16, 0xd2, 0xeb, 0x43, 0xf9, 0xfd, 0xf2, + 0x0d, 0xa4, 0x29, 0x14, 0xcb, 0xda, 0x47, 0xac, 0x44, 0x00, 0x00, 0x00, + 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; -const unsigned int ftv2folderopen_gif_len = 154; +unsigned int ftv2folderopen_png_len = 261; -unsigned char ftv2lastnode_gif[] = { - 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x10, 0x00, 0x16, 0x00, 0xb3, 0x00, - 0x00, 0x80, 0x80, 0x80, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, +unsigned char ftv2lastnode_png[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x16, + 0x04, 0x03, 0x00, 0x00, 0x01, 0x4c, 0x83, 0x31, 0xd9, 0x00, 0x00, 0x00, + 0x30, 0x50, 0x4c, 0x54, 0x45, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x21, 0xf9, 0x04, 0x01, 0x00, 0x00, 0x0f, 0x00, 0x21, 0xfe, 0x1c, + 0x00, 0x00, 0x80, 0x80, 0x80, 0x18, 0xd3, 0xa0, 0x90, 0x00, 0x00, 0x00, + 0x01, 0x74, 0x52, 0x4e, 0x53, 0x00, 0x40, 0xe6, 0xd8, 0x66, 0x00, 0x00, + 0x00, 0x16, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, + 0x72, 0x65, 0x00, 0x67, 0x69, 0x66, 0x32, 0x70, 0x6e, 0x67, 0x20, 0x32, + 0x2e, 0x34, 0x2e, 0x32, 0xa3, 0x5e, 0x47, 0x0e, 0x00, 0x00, 0x00, 0x26, + 0x74, 0x45, 0x58, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x55, 0x6c, 0x65, 0x61, 0x64, 0x20, 0x47, 0x49, 0x46, 0x20, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, 0x72, 0x20, 0x56, 0x65, 0x72, - 0x20, 0x32, 0x2e, 0x30, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, - 0x16, 0x00, 0x40, 0x04, 0x1b, 0xf0, 0xc9, 0x49, 0xab, 0xbd, 0x38, 0xeb, - 0xcd, 0xbb, 0xff, 0x60, 0x28, 0x72, 0xc0, 0x57, 0x7a, 0x67, 0x97, 0x92, - 0x4f, 0xe9, 0xb6, 0x63, 0x2c, 0xcf, 0x5e, 0x04, 0x00, 0x3b + 0x20, 0x32, 0x2e, 0x30, 0x69, 0x01, 0x6f, 0x3f, 0xcd, 0x06, 0x00, 0x00, + 0x00, 0x13, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x63, 0x60, 0x18, 0x30, + 0xc0, 0x4f, 0x0c, 0x03, 0x04, 0xc8, 0x33, 0x1e, 0x00, 0x24, 0xa7, 0x00, + 0x88, 0x10, 0xca, 0x33, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, + 0x44, 0xae, 0x42, 0x60, 0x82 }; -const unsigned int ftv2lastnode_gif_len = 142; - -unsigned char ftv2link_gif[] = { - 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x18, 0x00, 0x16, 0x00, 0xb3, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x00, 0xff, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xc0, - 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x21, 0xf9, 0x04, 0x01, 0x00, 0x00, 0x0f, 0x00, 0x21, 0xfe, 0x1c, +unsigned int ftv2lastnode_png_len = 233; + +unsigned char ftv2link_png[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x16, + 0x04, 0x03, 0x00, 0x00, 0x01, 0x5f, 0x54, 0x71, 0x2d, 0x00, 0x00, 0x00, + 0x30, 0x50, 0x4c, 0x54, 0x45, 0xff, 0xff, 0xff, 0x00, 0x80, 0x00, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0xff, 0x00, 0x80, 0x80, 0x80, + 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7e, 0x9b, 0x08, 0x00, 0x00, 0x00, + 0x01, 0x74, 0x52, 0x4e, 0x53, 0x00, 0x40, 0xe6, 0xd8, 0x66, 0x00, 0x00, + 0x00, 0x16, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, + 0x72, 0x65, 0x00, 0x67, 0x69, 0x66, 0x32, 0x70, 0x6e, 0x67, 0x20, 0x32, + 0x2e, 0x34, 0x2e, 0x32, 0xa3, 0x5e, 0x47, 0x0e, 0x00, 0x00, 0x00, 0x26, + 0x74, 0x45, 0x58, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x55, 0x6c, 0x65, 0x61, 0x64, 0x20, 0x47, 0x49, 0x46, 0x20, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, 0x72, 0x20, 0x56, 0x65, 0x72, - 0x20, 0x32, 0x2e, 0x30, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, - 0x16, 0x00, 0x00, 0x04, 0x77, 0xf0, 0xc9, 0x49, 0xab, 0xbd, 0x38, 0xeb, - 0x7d, 0x8d, 0xff, 0x20, 0x27, 0x19, 0x93, 0x50, 0x1e, 0x24, 0x47, 0x9a, - 0x12, 0x7b, 0x3c, 0xa9, 0x16, 0xb3, 0x8f, 0x00, 0xdc, 0xc0, 0xb6, 0x3e, - 0x47, 0xe1, 0xbf, 0x82, 0x43, 0x4e, 0x26, 0xe9, 0x19, 0x0a, 0x81, 0xc2, - 0x4b, 0xa8, 0xab, 0x29, 0x0b, 0x04, 0xa4, 0x21, 0x38, 0xcc, 0xa4, 0x0a, - 0xbc, 0xc0, 0x80, 0x30, 0xe0, 0x55, 0x31, 0x2b, 0xa5, 0x21, 0xc9, 0xa5, - 0xca, 0x40, 0x06, 0x40, 0x80, 0xdb, 0x65, 0x5a, 0x2b, 0x80, 0xc1, 0x00, - 0x70, 0x30, 0xbf, 0x1f, 0x37, 0xfc, 0xed, 0xe5, 0x25, 0x02, 0xd2, 0x78, - 0x34, 0x76, 0x60, 0x78, 0x13, 0x43, 0x2e, 0x5f, 0x16, 0x31, 0x12, 0x74, - 0x07, 0x8e, 0x8e, 0x89, 0x70, 0x38, 0x93, 0x94, 0x91, 0x22, 0x97, 0x98, - 0x99, 0x9a, 0x0f, 0x11, 0x00, 0x3b + 0x20, 0x32, 0x2e, 0x30, 0x19, 0x02, 0xd9, 0x09, 0xe5, 0x4a, 0x00, 0x00, + 0x00, 0x90, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x7d, 0x8c, 0xb1, 0x0a, + 0xc2, 0x30, 0x14, 0x45, 0x6f, 0x33, 0xb4, 0x63, 0x7e, 0xa1, 0x53, 0x57, + 0x8b, 0x7e, 0x80, 0x6e, 0xae, 0x16, 0x5a, 0xb2, 0xbe, 0x3a, 0x64, 0x35, + 0xb8, 0x64, 0xec, 0x2f, 0x07, 0x05, 0x1d, 0x9f, 0x79, 0x8d, 0x21, 0x50, + 0xd0, 0x03, 0xc9, 0xcd, 0xe1, 0xbe, 0x17, 0x00, 0xa8, 0x00, 0x82, 0xe0, + 0x81, 0x66, 0x7d, 0xc0, 0x9e, 0x51, 0x70, 0x40, 0x1d, 0xcf, 0xad, 0x07, + 0x18, 0x1b, 0x74, 0x90, 0xdb, 0x1c, 0x62, 0x0f, 0xe2, 0x20, 0xc1, 0xcc, + 0x61, 0x3b, 0x06, 0x6a, 0xbb, 0x14, 0x3b, 0xe9, 0x68, 0xba, 0xac, 0x51, + 0x9d, 0x24, 0xec, 0xdc, 0x4b, 0x68, 0xed, 0xd2, 0x5e, 0x1b, 0x7e, 0xfd, + 0x92, 0xa8, 0x6d, 0x84, 0xb2, 0x28, 0x28, 0x38, 0xca, 0xd2, 0x4c, 0x46, + 0x2d, 0x59, 0xcc, 0x38, 0x5c, 0x8b, 0xcc, 0xe3, 0xfe, 0x2b, 0x71, 0xfa, + 0x79, 0xbc, 0x67, 0x79, 0x85, 0x07, 0x54, 0x69, 0xde, 0xde, 0x2f, 0xf8, + 0xcf, 0x07, 0x71, 0x95, 0x2b, 0xa1, 0x10, 0x78, 0xd0, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; -const unsigned int ftv2link_gif_len = 234; +unsigned int ftv2link_png_len = 358; -unsigned char ftv2mlastnode_gif[] = { - 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x10, 0x00, 0x16, 0x00, 0xb3, 0x00, - 0x00, 0x80, 0x80, 0x80, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x21, 0xf9, 0x04, 0x01, 0x00, 0x00, 0x01, 0x00, 0x2c, 0x00, 0x00, - 0x00, 0x00, 0x10, 0x00, 0x16, 0x00, 0x00, 0x04, 0x2a, 0x30, 0xc8, 0x49, - 0xab, 0x95, 0xe0, 0xea, 0x7d, 0x33, 0xff, 0x15, 0x20, 0x8e, 0x63, 0x67, - 0x5a, 0x5e, 0x78, 0xaa, 0x68, 0x20, 0xbc, 0x6f, 0x90, 0xcd, 0x53, 0x4a, - 0xd9, 0xf5, 0x7a, 0xeb, 0x35, 0x49, 0x82, 0xc0, 0xa0, 0x70, 0x48, 0x2c, - 0x1a, 0x35, 0x11, 0x00, 0x3b +unsigned char ftv2mlastnode_png[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x16, + 0x02, 0x03, 0x00, 0x00, 0x01, 0xc3, 0xc3, 0xc4, 0x79, 0x00, 0x00, 0x00, + 0x09, 0x50, 0x4c, 0x54, 0x45, 0xff, 0xff, 0xff, 0x80, 0x80, 0x80, 0x00, + 0x00, 0x00, 0x3c, 0x5e, 0xbb, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x74, 0x52, + 0x4e, 0x53, 0x00, 0x40, 0xe6, 0xd8, 0x66, 0x00, 0x00, 0x00, 0x16, 0x74, + 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x00, + 0x67, 0x69, 0x66, 0x32, 0x70, 0x6e, 0x67, 0x20, 0x32, 0x2e, 0x34, 0x2e, + 0x32, 0xa3, 0x5e, 0x47, 0x0e, 0x00, 0x00, 0x00, 0x23, 0x49, 0x44, 0x41, + 0x54, 0x78, 0xda, 0x63, 0x60, 0x20, 0x0b, 0x08, 0x08, 0x20, 0x10, 0x0a, + 0x60, 0x84, 0x11, 0x8c, 0xa1, 0xa1, 0x20, 0x06, 0x90, 0xc9, 0xa8, 0xb5, + 0x50, 0x10, 0xca, 0x02, 0x89, 0x61, 0x01, 0x00, 0x6d, 0x17, 0x02, 0xba, + 0xc0, 0xdc, 0x69, 0xc8, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, + 0xae, 0x42, 0x60, 0x82 }; -const unsigned int ftv2mlastnode_gif_len = 125; +unsigned int ftv2mlastnode_png_len = 160; -unsigned char ftv2mnode_gif[] = { - 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x10, 0x00, 0x16, 0x00, 0xb3, 0x00, - 0x00, 0x80, 0x80, 0x80, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, +unsigned char ftv2mnode_png[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x16, + 0x04, 0x03, 0x00, 0x00, 0x01, 0x4c, 0x83, 0x31, 0xd9, 0x00, 0x00, 0x00, + 0x24, 0x50, 0x4c, 0x54, 0x45, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, - 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x21, 0xf9, 0x04, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x2c, 0x00, 0x00, - 0x00, 0x00, 0x10, 0x00, 0x16, 0x00, 0x00, 0x04, 0x2e, 0x70, 0xc9, 0x49, - 0xab, 0x95, 0xe0, 0xea, 0x7d, 0x33, 0xff, 0x15, 0x20, 0x8e, 0x63, 0x67, - 0x5a, 0x5e, 0x78, 0xaa, 0xe8, 0x22, 0xbc, 0xef, 0x92, 0xcd, 0x53, 0x4a, - 0xd9, 0xf5, 0x7a, 0xeb, 0x35, 0x49, 0x82, 0x40, 0x4c, 0x70, 0x28, 0x24, - 0x06, 0x71, 0xc6, 0x0d, 0x52, 0x12, 0x01, 0x00, 0x3b + 0x00, 0x00, 0x80, 0x80, 0x80, 0x53, 0xbe, 0x1e, 0x99, 0x00, 0x00, 0x00, + 0x01, 0x74, 0x52, 0x4e, 0x53, 0x00, 0x40, 0xe6, 0xd8, 0x66, 0x00, 0x00, + 0x00, 0x16, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, + 0x72, 0x65, 0x00, 0x67, 0x69, 0x66, 0x32, 0x70, 0x6e, 0x67, 0x20, 0x32, + 0x2e, 0x34, 0x2e, 0x32, 0xa3, 0x5e, 0x47, 0x0e, 0x00, 0x00, 0x00, 0x2a, + 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x63, 0x60, 0xa0, 0x2e, 0xe0, 0x06, + 0x42, 0x74, 0x02, 0xa7, 0x52, 0x54, 0x06, 0xf7, 0x6e, 0x20, 0x80, 0xf1, + 0xc1, 0x62, 0xdc, 0x4c, 0x4a, 0x4a, 0xdc, 0xdc, 0xdc, 0xc8, 0x22, 0x30, + 0x35, 0x98, 0xda, 0xd1, 0x19, 0x00, 0xb7, 0x79, 0x07, 0x27, 0xaa, 0xf7, + 0x96, 0x03, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, + 0x60, 0x82 }; -const unsigned int ftv2mnode_gif_len = 129; +unsigned int ftv2mnode_png_len = 194; -unsigned char ftv2node_gif[] = { - 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x10, 0x00, 0x16, 0x00, 0xb3, 0x00, - 0x00, 0x80, 0x80, 0x80, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, +unsigned char ftv2node_png[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x16, + 0x04, 0x03, 0x00, 0x00, 0x01, 0x4c, 0x83, 0x31, 0xd9, 0x00, 0x00, 0x00, + 0x30, 0x50, 0x4c, 0x54, 0x45, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x21, 0xf9, 0x04, 0x01, 0x00, 0x00, 0x0f, 0x00, 0x21, 0xfe, 0x1c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0x80, 0x18, 0xd3, 0xa0, 0x90, 0x00, 0x00, 0x00, + 0x01, 0x74, 0x52, 0x4e, 0x53, 0x00, 0x40, 0xe6, 0xd8, 0x66, 0x00, 0x00, + 0x00, 0x16, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, + 0x72, 0x65, 0x00, 0x67, 0x69, 0x66, 0x32, 0x70, 0x6e, 0x67, 0x20, 0x32, + 0x2e, 0x34, 0x2e, 0x32, 0xa3, 0x5e, 0x47, 0x0e, 0x00, 0x00, 0x00, 0x26, + 0x74, 0x45, 0x58, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x55, 0x6c, 0x65, 0x61, 0x64, 0x20, 0x47, 0x49, 0x46, 0x20, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, 0x72, 0x20, 0x56, 0x65, 0x72, - 0x20, 0x32, 0x2e, 0x30, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, - 0x16, 0x00, 0x40, 0x04, 0x20, 0xf0, 0xc9, 0x49, 0xab, 0xbd, 0x38, 0xeb, - 0xcd, 0xbb, 0xff, 0x60, 0x28, 0x72, 0xc0, 0x57, 0x7a, 0x67, 0x97, 0x92, - 0x4f, 0xe9, 0xb6, 0xd7, 0xba, 0xc9, 0x1a, 0x9d, 0xd9, 0x18, 0x1e, 0x63, - 0x11, 0x00, 0x3b + 0x20, 0x32, 0x2e, 0x30, 0x69, 0x01, 0x6f, 0x3f, 0xcd, 0x06, 0x00, 0x00, + 0x00, 0x15, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x63, 0x60, 0x18, 0x30, + 0xc0, 0x4f, 0x0c, 0x03, 0x04, 0x88, 0x56, 0x8c, 0xc2, 0x00, 0x00, 0x2e, + 0x52, 0x00, 0xe2, 0xfa, 0x45, 0x3a, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x49, + 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; -const unsigned int ftv2node_gif_len = 147; +unsigned int ftv2node_png_len = 235; -unsigned char ftv2plastnode_gif[] = { - 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x10, 0x00, 0x16, 0x00, 0xb3, 0x00, - 0x00, 0x80, 0x80, 0x80, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x21, 0xf9, 0x04, 0x01, 0x00, 0x00, 0x01, 0x00, 0x2c, 0x00, 0x00, - 0x00, 0x00, 0x10, 0x00, 0x16, 0x00, 0x00, 0x04, 0x2f, 0x30, 0xc8, 0x49, - 0xab, 0x95, 0xe0, 0xea, 0x7d, 0x33, 0xff, 0x15, 0x20, 0x8e, 0x63, 0x67, - 0x5a, 0x5e, 0x20, 0x4c, 0x29, 0x95, 0xae, 0x98, 0x29, 0xcc, 0x73, 0x90, - 0xdd, 0xec, 0x04, 0xdb, 0xa7, 0x9a, 0xa3, 0x3d, 0x17, 0x89, 0x04, 0x2a, - 0x1a, 0x8f, 0xc8, 0xa4, 0x72, 0xa9, 0x89, 0x00, 0x00, 0x3b +unsigned char ftv2plastnode_png[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x16, + 0x02, 0x03, 0x00, 0x00, 0x01, 0xc3, 0xc3, 0xc4, 0x79, 0x00, 0x00, 0x00, + 0x09, 0x50, 0x4c, 0x54, 0x45, 0xff, 0xff, 0xff, 0x80, 0x80, 0x80, 0x00, + 0x00, 0x00, 0x3c, 0x5e, 0xbb, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x74, 0x52, + 0x4e, 0x53, 0x00, 0x40, 0xe6, 0xd8, 0x66, 0x00, 0x00, 0x00, 0x16, 0x74, + 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x00, + 0x67, 0x69, 0x66, 0x32, 0x70, 0x6e, 0x67, 0x20, 0x32, 0x2e, 0x34, 0x2e, + 0x32, 0xa3, 0x5e, 0x47, 0x0e, 0x00, 0x00, 0x00, 0x28, 0x49, 0x44, 0x41, + 0x54, 0x78, 0xda, 0x63, 0x60, 0x20, 0x0b, 0x08, 0x08, 0x30, 0x08, 0x81, + 0x11, 0x90, 0x81, 0x02, 0x18, 0x61, 0x04, 0x63, 0x68, 0x28, 0x90, 0x60, + 0x02, 0x32, 0x19, 0xb5, 0x16, 0x0a, 0x42, 0x59, 0x20, 0x31, 0x2c, 0x00, + 0x00, 0x6e, 0xc1, 0x02, 0xc2, 0xe5, 0xed, 0x75, 0xa7, 0x00, 0x00, 0x00, + 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; -const unsigned int ftv2plastnode_gif_len = 130; +unsigned int ftv2plastnode_png_len = 165; -unsigned char ftv2pnode_gif[] = { - 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x10, 0x00, 0x16, 0x00, 0xb3, 0x00, - 0x00, 0x80, 0x80, 0x80, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, +unsigned char ftv2pnode_png[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x16, + 0x04, 0x03, 0x00, 0x00, 0x01, 0x4c, 0x83, 0x31, 0xd9, 0x00, 0x00, 0x00, + 0x24, 0x50, 0x4c, 0x54, 0x45, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, - 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x21, 0xf9, 0x04, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x2c, 0x00, 0x00, - 0x00, 0x00, 0x10, 0x00, 0x16, 0x00, 0x00, 0x04, 0x32, 0x70, 0xc9, 0x49, - 0xab, 0x95, 0xe0, 0xea, 0x7d, 0x33, 0xff, 0x15, 0x20, 0x8e, 0x63, 0x67, - 0x5a, 0xde, 0x22, 0x4c, 0x29, 0x95, 0xae, 0x98, 0x29, 0xcc, 0xf3, 0x92, - 0xdd, 0xec, 0x04, 0xdb, 0xa7, 0x9a, 0xa3, 0x3d, 0x17, 0x89, 0x04, 0x2a, - 0xc6, 0x8c, 0x48, 0x5e, 0xd2, 0xd8, 0x5a, 0x72, 0x9a, 0x93, 0x08, 0x00, - 0x3b + 0x00, 0x00, 0x80, 0x80, 0x80, 0x53, 0xbe, 0x1e, 0x99, 0x00, 0x00, 0x00, + 0x01, 0x74, 0x52, 0x4e, 0x53, 0x00, 0x40, 0xe6, 0xd8, 0x66, 0x00, 0x00, + 0x00, 0x16, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, + 0x72, 0x65, 0x00, 0x67, 0x69, 0x66, 0x32, 0x70, 0x6e, 0x67, 0x20, 0x32, + 0x2e, 0x34, 0x2e, 0x32, 0xa3, 0x5e, 0x47, 0x0e, 0x00, 0x00, 0x00, 0x30, + 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x63, 0x60, 0xa0, 0x2e, 0xe0, 0x06, + 0x42, 0x06, 0x6e, 0x26, 0x38, 0x01, 0xe2, 0xe2, 0x54, 0x8a, 0xca, 0xe0, + 0xde, 0x0d, 0x04, 0x10, 0x3e, 0x13, 0x44, 0x8c, 0x9b, 0x49, 0x49, 0x89, + 0x9b, 0x9b, 0x1b, 0x59, 0x04, 0xa6, 0x06, 0x53, 0x3b, 0x3a, 0x03, 0x00, + 0xba, 0x6b, 0x07, 0x2f, 0xaa, 0xcb, 0x1f, 0x6f, 0x00, 0x00, 0x00, 0x00, + 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; -const unsigned int ftv2pnode_gif_len = 133; +unsigned int ftv2pnode_png_len = 200; -unsigned char ftv2vertline_gif[] = { - 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x10, 0x00, 0x16, 0x00, 0xb3, 0x00, - 0x00, 0x80, 0x80, 0x80, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, +unsigned char ftv2vertline_png[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x16, + 0x04, 0x03, 0x00, 0x00, 0x01, 0x4c, 0x83, 0x31, 0xd9, 0x00, 0x00, 0x00, + 0x30, 0x50, 0x4c, 0x54, 0x45, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x21, 0xf9, 0x04, 0x01, 0x00, 0x00, 0x0f, 0x00, 0x21, 0xfe, 0x1c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0x80, 0x18, 0xd3, 0xa0, 0x90, 0x00, 0x00, 0x00, + 0x01, 0x74, 0x52, 0x4e, 0x53, 0x00, 0x40, 0xe6, 0xd8, 0x66, 0x00, 0x00, + 0x00, 0x16, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, + 0x72, 0x65, 0x00, 0x67, 0x69, 0x66, 0x32, 0x70, 0x6e, 0x67, 0x20, 0x32, + 0x2e, 0x34, 0x2e, 0x32, 0xa3, 0x5e, 0x47, 0x0e, 0x00, 0x00, 0x00, 0x26, + 0x74, 0x45, 0x58, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x55, 0x6c, 0x65, 0x61, 0x64, 0x20, 0x47, 0x49, 0x46, 0x20, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, 0x72, 0x20, 0x56, 0x65, 0x72, - 0x20, 0x32, 0x2e, 0x30, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, - 0x16, 0x00, 0x40, 0x04, 0x19, 0xf0, 0xc9, 0x49, 0xab, 0xbd, 0x38, 0xeb, - 0xcd, 0xbb, 0xff, 0x60, 0x28, 0x72, 0xc0, 0x57, 0x7a, 0x67, 0x97, 0x92, - 0x66, 0x8b, 0xba, 0x2a, 0x5c, 0x45, 0x00, 0x3b + 0x20, 0x32, 0x2e, 0x30, 0x69, 0x01, 0x6f, 0x3f, 0xcd, 0x06, 0x00, 0x00, + 0x00, 0x0f, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x63, 0x60, 0x18, 0x30, + 0xc0, 0x4f, 0x5b, 0x06, 0x00, 0x21, 0x14, 0x00, 0xa6, 0xe5, 0x3c, 0xe8, + 0x3a, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, + 0x82 }; -const unsigned int ftv2vertline_gif_len = 140; +unsigned int ftv2vertline_png_len = 229; + struct ImageInfo { @@ -231,18 +314,18 @@ struct ImageInfo unsigned int len; } image_info[] = { - { "ftv2blank.gif",ftv2blank_gif,ftv2blank_gif_len }, - { "ftv2doc.gif",ftv2doc_gif,ftv2doc_gif_len }, - { "ftv2folderclosed.gif",ftv2folderclosed_gif,ftv2folderclosed_gif_len }, - { "ftv2folderopen.gif",ftv2folderopen_gif,ftv2folderopen_gif_len }, - { "ftv2lastnode.gif",ftv2lastnode_gif,ftv2lastnode_gif_len }, - { "ftv2link.gif",ftv2link_gif,ftv2link_gif_len }, - { "ftv2mlastnode.gif",ftv2mlastnode_gif,ftv2mlastnode_gif_len }, - { "ftv2mnode.gif",ftv2mnode_gif,ftv2mnode_gif_len }, - { "ftv2node.gif",ftv2node_gif,ftv2node_gif_len }, - { "ftv2plastnode.gif",ftv2plastnode_gif,ftv2plastnode_gif_len }, - { "ftv2pnode.gif",ftv2pnode_gif,ftv2pnode_gif_len }, - { "ftv2vertline.gif",ftv2vertline_gif,ftv2vertline_gif_len }, + { "ftv2blank.png",ftv2blank_png,ftv2blank_png_len }, + { "ftv2doc.png",ftv2doc_png,ftv2doc_png_len }, + { "ftv2folderclosed.png",ftv2folderclosed_png,ftv2folderclosed_png_len }, + { "ftv2folderopen.png",ftv2folderopen_png,ftv2folderopen_png_len }, + { "ftv2lastnode.png",ftv2lastnode_png,ftv2lastnode_png_len }, + { "ftv2link.png",ftv2link_png,ftv2link_png_len }, + { "ftv2mlastnode.png",ftv2mlastnode_png,ftv2mlastnode_png_len }, + { "ftv2mnode.png",ftv2mnode_png,ftv2mnode_png_len }, + { "ftv2node.png",ftv2node_png,ftv2node_png_len }, + { "ftv2plastnode.png",ftv2plastnode_png,ftv2plastnode_png_len }, + { "ftv2pnode.png",ftv2pnode_png,ftv2pnode_png_len }, + { "ftv2vertline.png",ftv2vertline_png,ftv2vertline_png_len }, { 0,0,0 } }; diff --git a/src/gifenc.cpp b/src/gifenc.cpp deleted file mode 100644 index 6a06465..0000000 --- a/src/gifenc.cpp +++ /dev/null @@ -1,288 +0,0 @@ -/****************************************************************************** - * - * - * - * - * Copyright (C) 1997-2002 by Dimitri van Heesch. - * - * Permission to use, copy, modify, and distribute this software and its - * documentation under the terms of the GNU General Public License is hereby - * granted. No representations are made about the suitability of this software - * for any purpose. It is provided "as is" without express or implied warranty. - * See the GNU General Public License for more details. - * - * Documents produced by Doxygen are derivative works derived from the - * input used in their production; they are not affected by this license. - * - * The GIF compression code below is based on the file ppmtogif.c of the - * netpbm package. The original copyright message follows: - * - * --------------------------------------------------------------------------- - * - * Copyright (C) 1989 by Jef Poskanzer. - * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose and without fee is hereby granted, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. This software is provided "as is" without express or - * implied warranty. - * - * --------------------------------------------------------------------------- - * - * The Graphics Interchange Format(c) is the Copyright property of - * CompuServe Incorporated. GIF(sm) is a Service Mark property of - * CompuServe Incorporated. - */ - -#include "gifenc.h" - -static const unsigned int masks[] = { 0x0000, 0x0001, 0x0003, 0x0007, 0x000F, - 0x001F, 0x003F, 0x007F, 0x00FF, - 0x01FF, 0x03FF, 0x07FF, 0x0FFF, - 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF }; - -GifEncoder::GifEncoder(Byte *rawBytes,Color *p,int w,int h, Byte d, - int t) - : colorResolution(8),globalPaletteFlag(0x80),bits(12), - maxMaxCode(1<<bits) -{ - width = w; - height = h; - depth = d; - transIndex = t; - palette = p; - data = rawBytes; - dataPtr = data; -} - -GifEncoder::~GifEncoder() -{ -} - -void GifEncoder::writeGIF(QFile &fp) -{ - // Write the Magic header - fp.writeBlock( transIndex < 0 ? "GIF87a" : "GIF89a", 6 ); - - // Write the logical screen descriptor - putWord( width, fp ); - putWord( height, fp ); - Byte pack = globalPaletteFlag | ((colorResolution-1)<<4) | (depth-1); - putByte( pack, fp ); - putByte( 0, fp ); // the background color - putByte( 0, fp ); // no aspect ration defined - - // Write global color table - int i; for ( i=0 ; i< (1<<depth) ; i++) - { - putByte(palette[i].red, fp); - putByte(palette[i].green,fp); - putByte(palette[i].blue, fp); - } - - if ( transIndex >= 0) - { - // Write graphic control extension (needed for GIF transparancy) - putByte( 0x21, fp); // extension introducer - putByte( 0xf9, fp); // graphic control label - putByte( 4, fp); // block size - putByte( 1, fp); // announce transparacy value - putWord( 0, fp); // zero delay time - putByte( transIndex, fp); // write transparant index - putByte( 0, fp); // end block - } - - // Write the image descriptor - putByte( 0x2c, fp); // image separator - putWord( 0, fp); // image left position - putWord( 0, fp); // image top position - putWord( width, fp); // image width - putWord( height, fp); // image height - putByte( 0, fp); // no local color table, no interlacing - - // Write table based image data - Byte initCodeSize = depth<=1 ? 2 : depth; - putByte( initCodeSize, fp); // LZW Minimum Code Size - compress( initCodeSize+1, fp); - putByte( 0, fp); // end of blocks - - // Write GIF Trailer - putByte( 0x3b, fp); -} - -void GifEncoder::compress( int ibits, QFile &outfile ) -{ - int i; - int entry; - - initBits = ibits; - numPixels = width*height; - dataPtr = data; - clearFlag = FALSE; - nBits = initBits; - maxCode = (1<<nBits) -1; - ClearCode = (1 << (initBits - 1)); - EOFCode = ClearCode + 1; - freeEntry = ClearCode + 2; - aCount = 0; - curAccum = 0; - curBits = 0; - - entry = nextPixel(); - - int hshift = 0; - int fcode; - for ( fcode = hashTableSize; fcode < 65536L; fcode *= 2L ) ++hshift; - hshift = 8 - hshift; /* set hash code range bound */ - - clearHashTable(); /* clear hash table */ - - writeCode( ClearCode,outfile ); - - int c; - while ( (c = nextPixel()) != EOF ) - { - fcode = (c << bits) + entry; - i = (c << hshift) ^ entry; /* xor hashing */ - - bool found=FALSE; - if (htab[i]==fcode) - { - entry = codetab[i]; - found=TRUE; - } - else if (htab[i]>=0) - { - int disp = hashTableSize - i; - if (i==0) disp=1; - do - { - if ((i-=disp)<0) i+=hashTableSize; - if (htab[i]==fcode) - { - entry=codetab[i]; - found=TRUE; - } - } while (htab[i]>0 && !found); - } - if (!found) - { - writeCode( entry, outfile ); - entry = c; - if ( freeEntry < maxMaxCode ) - { - codetab[i] = freeEntry++; /* code -> hashtable */ - htab[i] = fcode; - } - else - { - clearHashTable(); - freeEntry = ClearCode + 2; - clearFlag = TRUE; - writeCode( ClearCode, outfile ); - } - } - } - writeCode( entry, outfile ); - writeCode( EOFCode, outfile ); -} - -void GifEncoder::putWord( Word w, QFile &fp ) -{ - fp.putch( w & 0xff ); - fp.putch( (w>>8) & 0xff ); -} - -void GifEncoder::putByte( Byte b, QFile &fp ) -{ - fp.putch( b ); -} - -void GifEncoder::writeCode( int code, QFile &outfile ) -{ - curAccum &= masks[ curBits ]; - - if ( curBits > 0 ) - { - curAccum |= (code << curBits); - } - else - { - curAccum = code; - } - - curBits += nBits; - - while( curBits >= 8 ) - { - writeChar( (Byte)(curAccum & 0xff),outfile ); - curAccum >>= 8; - curBits -= 8; - } - - /* - * If the next entry is going to be too big for the code size, - * then increase it, if possible. - */ - if ( freeEntry > maxCode || clearFlag ) - { - if( clearFlag ) - { - nBits = initBits; - maxCode = (1<<nBits)-1; - clearFlag = FALSE; - } - else - { - ++nBits; - if ( nBits == bits ) - maxCode = maxMaxCode; - else - maxCode = (1<<nBits)-1; - } - } - - if ( code == EOFCode ) - { - /* At EOF, write the rest of the buffer. */ - while( curBits > 0 ) - { - writeChar( (Byte)(curAccum & 0xff), outfile ); - curAccum >>= 8; - curBits -= 8; - } - - writePacket(outfile); - } -} - -/* - * Add a character to the end of the current packet, and if it is 254 - * characters, flush the packet to disk. - */ -void GifEncoder::writeChar( Byte c, QFile &fp ) -{ - accum[ aCount++ ] = c; - if( aCount >= 254 ) writePacket(fp); -} - -/* - * Flush the packet to disk, and reset the accumulator - */ -void GifEncoder::writePacket(QFile &fp) -{ - if ( aCount > 0 ) - { - fp.putch( aCount ); - fp.writeBlock( (const char *)accum, aCount ); - aCount = 0; - } -} - -void GifEncoder::clearHashTable() /* reset code table */ -{ - int *htab_p = htab; - int i; for (i=0;i<hashTableSize;i++) *htab_p++ = -1; -} - diff --git a/src/gifenc.h b/src/gifenc.h deleted file mode 100644 index cfeacae..0000000 --- a/src/gifenc.h +++ /dev/null @@ -1,90 +0,0 @@ -/****************************************************************************** - * - * - * - * - * Copyright (C) 1997-2002 by Dimitri van Heesch. - * - * Permission to use, copy, modify, and distribute this software and its - * documentation under the terms of the GNU General Public License is hereby - * granted. No representations are made about the suitability of this software - * for any purpose. It is provided "as is" without express or implied warranty. - * See the GNU General Public License for more details. - * - * Documents produced by Doxygen are derivative works derived from the - * input used in their production; they are not affected by this license. - * - */ - -#ifndef _GIFENC_H -#define _GIFENC_H -#include <qfile.h> - -typedef unsigned char Byte; -typedef unsigned short Word; - -struct Color -{ - Byte red; - Byte green; - Byte blue; -}; - -const int hashTableSize=5003; // size of the hash table - -class GifEncoder -{ - public: - GifEncoder(Byte *rawBytes,Color *p,int w,int h,Byte d,int t); - ~GifEncoder(); - void writeGIF(QFile &fp); - - protected: - void putWord( Word w, QFile &fp ); - void putByte( Byte b, QFile &fp ); - void compress(int csize, QFile &fp); - void writeCode(int code, QFile &fp); - void writeChar( Byte c, QFile &fp ); - void writePacket(QFile &fp); - int nextPixel() - { - if ( --numPixels < 0) return EOF; - return *dataPtr++; - } - void clearHashTable(); - - private: - const int colorResolution; // 8 bit for Red, Green and Blue; - const int globalPaletteFlag; - const int bits; - const int maxMaxCode; - - // image variables - int width; // image width - int height; // image height - Byte depth; // bits per CLUT entry - int transIndex; // index of the transparant color; -1 = none - Color *palette; // pointer to the color palette - int numPixels; // total number of pixel (i.e. width * height) - Byte *data; // pointer to the image data (one byte per pixel) - Byte *dataPtr; // pointer located at the current pixel. - - // compression variables - bool clearFlag; // clear hash table flag - int freeEntry; // first free entry in the hash table - unsigned int curAccum; // encoded bit accumulator - int curBits; // number of bits in curAccum - Byte accum[256]; // Buffer for a packet - int aCount; // Number of characters so far in this 'packet' - int nBits; // number of bits/code - int maxCode; // maximum code, given n_bits - int initBits; // initial number of bits - int EOFCode; // code for signaling the end of the file - int ClearCode; // the clear code for the decompressor - - // tables - int htab[hashTableSize]; // the hash table - Word codetab[hashTableSize]; // the code table -}; - -#endif diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp index 747902d..af01a96 100644 --- a/src/htmlgen.cpp +++ b/src/htmlgen.cpp @@ -184,7 +184,7 @@ void HtmlGenerator::writeFooterFile(QFile &file) t << "<hr><address><small>\n"; t << theTranslator->trGeneratedAt( "$datetime", "$projectname" ); t << " <a href=\"http://www.doxygen.org/index.html\">\n" - << "<img src=\"doxygen.gif\" alt=\"doxygen\" " + << "<img src=\"doxygen.png\" alt=\"doxygen\" " << "align=\"middle\" border=0 width=110 height=53>\n" << "</a> $doxygenversion " << theTranslator->trWrittenBy() << " <a href=\"mailto:dimitri@stack.nl\">Dimitri van Heesch</a>,\n" @@ -273,7 +273,7 @@ void HtmlGenerator::writeFooter(int part,bool external) { t << "src=\""; } - t << "doxygen.gif\" alt=\"doxygen\" " + t << "doxygen.png\" alt=\"doxygen\" " << "align=\"middle\" border=0 " << endl << "width=110 height=53></a>" << versionString <<" "; } @@ -649,7 +649,7 @@ void HtmlGenerator::endClassDiagram(ClassDiagram &d, const char *fileName,const char *name) { t << "\n<p><center><img src=\"" - << fileName << ".gif\" usemap=\"#" << name << "_map\"" + << fileName << ".png\" usemap=\"#" << name << "_map\"" << " border=\"0\"></center>" << endl << "<map name=\"" << name << "_map\">" << endl; @@ -679,7 +679,7 @@ void HtmlGenerator::writeFormula(const char *n,const char *text) t << "\"middle\""; // assume Windows users use IE or HtmlHelp which only // displays formulas nicely with align == "middle" #endif - t << " src=\"" << n << ".gif\">" << endl; + t << " src=\"" << n << ".png\">" << endl; if (text && text[0]=='\\') t << "</center><p>" << endl; } diff --git a/src/image.cpp b/src/image.cpp index ba66438..5806230 100644 --- a/src/image.cpp +++ b/src/image.cpp @@ -18,7 +18,7 @@ #include "qtbc.h" #include "image.h" -#include "gifenc.h" +#include "pngenc.h" #include <qglobal.h> const int charSetWidth=80; @@ -321,19 +321,11 @@ void Image::fillRect(int x,int y,int lwidth,int lheight,uchar colIndex,uint mask bool Image::save(const char *fileName,int mode) { - GifEncoder gifenc(data, - mode==0 ? palette : palette2, - width,height, - mode==0 ? 3 : 4, - 0); - QFile file(fileName); - if (file.open(IO_WriteOnly)) - { - gifenc.writeGIF(file); - return TRUE; - } - else - { - return FALSE; - } + PngEncoder enc(data, + mode==0 ? palette : palette2, + width,height, + mode==0 ? 3 : 4, + 0); + enc.write(fileName); + return TRUE; } diff --git a/src/libdoxygen.pro.in b/src/libdoxygen.pro.in index 430f865..2d4cf8d 100644 --- a/src/libdoxygen.pro.in +++ b/src/libdoxygen.pro.in @@ -35,7 +35,6 @@ HEADERS = bufstr.h \ filename.h \ formula.h \ ftvhelp.h \ - gifenc.h \ groupdef.h \ htmlgen.h \ htmlhelp.h \ @@ -56,6 +55,7 @@ HEADERS = bufstr.h \ outputlist.h \ packagedef.h \ page.h \ + pngenc.h \ pre.h \ qtbc.h \ reflist.h \ @@ -116,7 +116,6 @@ SOURCES = ce_lex.cpp \ filename.cpp \ formula.cpp \ ftvhelp.cpp \ - gifenc.cpp \ groupdef.cpp \ htmlgen.cpp \ htmlhelp.cpp \ @@ -136,6 +135,7 @@ SOURCES = ce_lex.cpp \ outputgen.cpp \ outputlist.cpp \ packagedef.cpp \ + pngenc.cpp \ pre.cpp \ reflist.cpp \ rtfgen.cpp \ @@ -151,6 +151,7 @@ SOURCES = ce_lex.cpp \ win32:TMAKE_CXXFLAGS += -DQT_NODLL win32-msvc:TMAKE_CXXFLAGS += -Zm200 INCLUDEPATH += ../qtools +INCLUDEPATH += ../libpng win32:INCLUDEPATH += . DESTDIR = ../lib TARGET = doxygen diff --git a/src/logos.cpp b/src/logos.cpp index 56ae8bd..2653019 100644 --- a/src/logos.cpp +++ b/src/logos.cpp @@ -21,389 +21,364 @@ #include <qfile.h> #include <qdir.h> - -//unsigned char null_data[] = { -// 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x01, 0x00, 0x01, 0x00, 0x80, 0xff, -// 0x00, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x21, 0xf9, 0x04, 0x01, 0x00, -// 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, -// 0x00, 0x02, 0x02, 0x44, 0x01, 0x00, 0x3b -//}; -//unsigned int null_len = 43; - -unsigned char logo_data[] = { - 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x6e, 0x00, 0x35, 0x00, 0xe7, 0x00, - 0x00, 0xff, 0xff, 0xe2, 0x9f, 0x20, 0x20, 0xb6, 0x25, 0x25, 0xff, 0xff, - 0xe0, 0xff, 0xff, 0xdc, 0xdf, 0xdf, 0xc6, 0xff, 0xcc, 0xcc, 0xdf, 0xb2, - 0xb2, 0xfe, 0xfc, 0xd3, 0xbf, 0xbf, 0xa9, 0xff, 0xff, 0xe3, 0xf8, 0xe6, - 0x93, 0xff, 0xff, 0xdb, 0xdf, 0xdf, 0xc0, 0xf5, 0xdc, 0x76, 0xdf, 0xdf, - 0xc4, 0xf8, 0xe6, 0x92, 0xde, 0xdc, 0xb9, 0xee, 0xc3, 0x2c, 0xfc, 0xf4, - 0xbd, 0xfc, 0xf4, 0xbc, 0xfd, 0xf8, 0xc9, 0xdf, 0xdf, 0xc5, 0xf3, 0xd6, - 0x64, 0xfb, 0xf0, 0xaf, 0xd5, 0xbb, 0x57, 0xf9, 0xeb, 0xa1, 0xf6, 0xe2, - 0x86, 0xd9, 0xc9, 0x81, 0xf7, 0xe1, 0x86, 0xbf, 0xbf, 0xa4, 0xff, 0xff, - 0xdf, 0xf4, 0xd6, 0x64, 0x3d, 0x36, 0x19, 0xfd, 0xf8, 0xc8, 0xfa, 0xef, - 0xaf, 0x20, 0x1f, 0x18, 0xf9, 0xeb, 0xa0, 0xfd, 0xf9, 0xc9, 0xdd, 0xd9, - 0xb0, 0xfc, 0xf5, 0xbc, 0xb2, 0x92, 0x21, 0xdc, 0xd5, 0xa4, 0xdf, 0xdf, - 0xc7, 0x3f, 0x3c, 0x2c, 0x1f, 0x1c, 0x0f, 0xb8, 0xa5, 0x58, 0xf7, 0xe2, - 0x85, 0xf5, 0xdc, 0x75, 0x20, 0x1f, 0x19, 0xff, 0xfe, 0xdb, 0xbf, 0xbf, - 0xaa, 0xf7, 0xe1, 0x85, 0xf9, 0xea, 0xa1, 0xd0, 0xab, 0x26, 0xf2, 0xd0, - 0x52, 0xff, 0xfc, 0xd3, 0xda, 0xce, 0x8d, 0x40, 0x3f, 0x35, 0xdc, 0xd5, - 0xa5, 0xf7, 0xe2, 0x86, 0xfa, 0xf0, 0xaf, 0x3e, 0x3b, 0x28, 0x40, 0x40, - 0x39, 0x40, 0x40, 0x37, 0xdb, 0xd2, 0x99, 0xbb, 0xb0, 0x78, 0xfb, 0xef, - 0xaf, 0xd6, 0xc0, 0x67, 0xfa, 0xeb, 0xa1, 0xdd, 0xda, 0xb0, 0xf6, 0xe1, - 0x86, 0x04, 0x04, 0x03, 0xfe, 0xfc, 0xd4, 0x5c, 0x51, 0x26, 0xba, 0xac, - 0x6e, 0xdf, 0xdf, 0xc3, 0xef, 0xc6, 0x34, 0xf0, 0xca, 0x42, 0xb9, 0xa9, - 0x64, 0xff, 0xfe, 0xdc, 0x1e, 0x1b, 0x0d, 0x1f, 0x1c, 0x11, 0x1f, 0x1d, - 0x14, 0xf5, 0xdd, 0x76, 0x5b, 0x51, 0x26, 0xdd, 0xda, 0xaf, 0xf9, 0xea, - 0xa0, 0x3f, 0x3d, 0x2f, 0xb5, 0x9c, 0x3d, 0xd6, 0xc1, 0x67, 0xdc, 0xd2, - 0x99, 0xfa, 0xeb, 0xa0, 0xd5, 0xbc, 0x57, 0xd9, 0xc9, 0x80, 0x3f, 0x3e, - 0x32, 0x3e, 0x3a, 0x25, 0xfe, 0xf8, 0xc8, 0xda, 0xce, 0x8c, 0x20, 0x20, - 0x1c, 0xf7, 0xe6, 0x93, 0xd7, 0xc6, 0x75, 0x3d, 0x37, 0x1e, 0xfb, 0xef, - 0xae, 0xfd, 0xf9, 0xc8, 0xbe, 0xbd, 0x9e, 0xbb, 0xb4, 0x83, 0xd7, 0xc5, - 0x75, 0x1f, 0x1d, 0x12, 0xdc, 0xd1, 0x98, 0x20, 0x20, 0x1b, 0x1f, 0x1e, - 0x16, 0x1f, 0x1b, 0x0d, 0xbf, 0xbf, 0xa5, 0x40, 0x40, 0x38, 0xdf, 0xdc, - 0xb9, 0xfc, 0xf5, 0xbd, 0xf4, 0xd6, 0x65, 0xfa, 0xea, 0xa1, 0xd8, 0xc9, - 0x81, 0xf0, 0xcb, 0x42, 0xdf, 0xde, 0xc0, 0x1e, 0x18, 0x06, 0xf6, 0xdc, - 0x75, 0xbf, 0xbf, 0xa8, 0xd8, 0xc6, 0x75, 0xd6, 0xc0, 0x66, 0xf7, 0xe6, - 0x92, 0xf1, 0xca, 0x42, 0xd2, 0xb2, 0x3a, 0xbe, 0xbe, 0x9e, 0x43, 0x40, - 0x2f, 0xd7, 0xc6, 0x74, 0xb8, 0xa6, 0x58, 0xbc, 0xb4, 0x83, 0xda, 0xcd, - 0x8d, 0xf4, 0xd7, 0x64, 0xbb, 0xb0, 0x79, 0xfe, 0xf9, 0xc9, 0x5e, 0x5a, - 0x42, 0xfa, 0xea, 0xa0, 0x60, 0x60, 0x55, 0x71, 0x17, 0x17, 0xbc, 0xb4, - 0x82, 0x88, 0x1c, 0x1c, 0xba, 0xac, 0x6d, 0xbd, 0xb7, 0x8e, 0xef, 0xc5, - 0x34, 0xd8, 0xc5, 0x75, 0xff, 0xff, 0xdd, 0xfb, 0xf0, 0xae, 0x44, 0x44, - 0x3a, 0xff, 0xff, 0xe1, 0xde, 0xdf, 0xc0, 0x10, 0x10, 0x0d, 0xf3, 0xd7, - 0x64, 0xd1, 0xad, 0x2d, 0xbd, 0xb8, 0x8d, 0xdf, 0xdf, 0xc2, 0xbf, 0x99, - 0x99, 0x3e, 0x39, 0x22, 0x5f, 0x5c, 0x47, 0xef, 0xc6, 0x35, 0xf6, 0xdc, - 0x76, 0xff, 0xff, 0xde, 0x61, 0x61, 0x54, 0x60, 0x60, 0x54, 0xfb, 0xf4, - 0xbc, 0x3e, 0x38, 0x22, 0x3f, 0x3b, 0x28, 0x20, 0x20, 0x1a, 0xdc, 0xd6, - 0xa4, 0x5f, 0x5e, 0x4c, 0xbb, 0xb3, 0x82, 0x5e, 0x58, 0x3c, 0x10, 0x0f, - 0x0b, 0xde, 0xd9, 0xb0, 0xe3, 0xd9, 0x9f, 0xd2, 0xb1, 0x3a, 0xbb, 0xb4, - 0x82, 0xcd, 0xc6, 0x99, 0xa0, 0x90, 0x4d, 0xe5, 0xe2, 0xb6, 0xb8, 0xa9, - 0x64, 0xdf, 0xdf, 0xc1, 0xda, 0xcd, 0x8c, 0xfa, 0xf0, 0xae, 0x08, 0x07, - 0x05, 0xfe, 0xf8, 0xc9, 0xfa, 0xef, 0xae, 0xbf, 0xbe, 0xa5, 0x62, 0x5c, - 0x3f, 0xf1, 0xd0, 0x52, 0x5e, 0x58, 0x3d, 0xbe, 0xba, 0x97, 0x8f, 0x8f, - 0x7f, 0x60, 0x5f, 0x50, 0x28, 0x26, 0x1d, 0xb9, 0xac, 0x6e, 0x71, 0x63, - 0x2e, 0xdb, 0xcd, 0x8d, 0xd8, 0xc5, 0x74, 0xfe, 0xfd, 0xd4, 0x98, 0x8f, - 0x63, 0x60, 0x5e, 0x4c, 0xc2, 0xb7, 0x7e, 0xf6, 0xe1, 0x85, 0xf6, 0xe2, - 0x85, 0x0f, 0x0d, 0x06, 0x42, 0x3e, 0x2b, 0xbe, 0xbb, 0x97, 0xdc, 0xd1, - 0x99, 0x3d, 0x34, 0x15, 0xbd, 0xb7, 0x8d, 0x98, 0x86, 0x3e, 0x99, 0x89, - 0x4a, 0xee, 0xc5, 0x34, 0x27, 0x25, 0x19, 0xe1, 0xd0, 0x84, 0x60, 0x60, - 0x52, 0x3e, 0x39, 0x21, 0x3e, 0x38, 0x21, 0x60, 0x5f, 0x4f, 0x44, 0x44, - 0x3b, 0xee, 0xc6, 0x35, 0x1e, 0x1a, 0x0a, 0xf6, 0xdd, 0x76, 0xdb, 0xd2, - 0x98, 0xb5, 0x9c, 0x3e, 0xdc, 0xd2, 0x98, 0x85, 0x6d, 0x19, 0x18, 0x17, - 0x10, 0xd0, 0xad, 0x2e, 0x93, 0x7c, 0x28, 0xee, 0xc6, 0x34, 0x3c, 0x34, - 0x15, 0xdd, 0xd9, 0xaf, 0xe3, 0xe3, 0xc7, 0x1f, 0x1f, 0x18, 0xbf, 0xbe, - 0xa4, 0xbf, 0xbd, 0x9e, 0x44, 0x43, 0x38, 0x30, 0x30, 0x29, 0xef, 0xc5, - 0x35, 0x48, 0x47, 0x3c, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x21, 0xf9, 0x04, 0x01, 0x00, 0x00, 0xff, 0x00, 0x2c, 0x00, 0x00, - 0x00, 0x00, 0x6e, 0x00, 0x35, 0x00, 0x00, 0x08, 0xfe, 0x00, 0xff, 0x09, - 0x1c, 0x48, 0xb0, 0xa0, 0xc1, 0x83, 0x08, 0x13, 0x2a, 0x5c, 0xc8, 0xb0, - 0xa1, 0xc3, 0x87, 0x10, 0x23, 0x4a, 0x9c, 0x48, 0xb1, 0xa2, 0xc5, 0x8b, - 0x18, 0x33, 0x56, 0xac, 0xc7, 0xb1, 0x63, 0x3d, 0x8d, 0x20, 0x43, 0x5a, - 0xac, 0x17, 0xa7, 0x81, 0xc9, 0x38, 0x1f, 0x45, 0xaa, 0x5c, 0xc9, 0xb0, - 0x5e, 0x03, 0x02, 0x30, 0x1b, 0xa4, 0x64, 0x49, 0xb3, 0xa6, 0x40, 0x97, - 0x30, 0x09, 0xc8, 0xb4, 0xc9, 0x93, 0x25, 0xce, 0x98, 0x33, 0x7b, 0x0a, - 0xcd, 0xf8, 0x53, 0x67, 0xd0, 0xa1, 0x48, 0x29, 0x16, 0xdd, 0x99, 0xb4, - 0xe9, 0xc4, 0xa5, 0x47, 0x9d, 0x4a, 0x5d, 0x08, 0x75, 0xaa, 0xd5, 0x96, - 0x0d, 0x2a, 0xc1, 0xc4, 0x15, 0xf5, 0xaa, 0xd7, 0x9b, 0x9e, 0x3e, 0x7c, - 0x20, 0xe5, 0xa9, 0xeb, 0xd7, 0xa4, 0x1e, 0x3b, 0x3e, 0x18, 0xc0, 0xf6, - 0x41, 0xca, 0xb4, 0x1e, 0x07, 0xc6, 0xbd, 0xd9, 0xf1, 0xdf, 0x5c, 0x82, - 0x77, 0xe1, 0xde, 0xb5, 0xab, 0x97, 0xae, 0x5e, 0x8e, 0x11, 0x39, 0x26, - 0x28, 0x60, 0xa1, 0x00, 0xe1, 0x02, 0x98, 0x00, 0x28, 0x2e, 0xf0, 0xb1, - 0xde, 0xe0, 0xc2, 0x86, 0x0b, 0xac, 0x98, 0xd1, 0x38, 0x81, 0x05, 0x0b, - 0x09, 0x2a, 0x17, 0x48, 0xd0, 0xa8, 0x5e, 0xa3, 0xc1, 0x99, 0xf1, 0x5a, - 0xde, 0xdc, 0x71, 0xb0, 0xe1, 0xc2, 0x90, 0x43, 0x0b, 0x3e, 0x7d, 0x3a, - 0xb3, 0xe3, 0xcb, 0x90, 0x51, 0x93, 0x7e, 0xe8, 0xb8, 0x80, 0x02, 0xc5, - 0xb8, 0x6f, 0x2b, 0x56, 0xb0, 0xa2, 0xde, 0x8f, 0x04, 0xb7, 0x83, 0xe3, - 0x9e, 0xfc, 0x63, 0x06, 0x80, 0xdb, 0x05, 0x7e, 0x8c, 0xf9, 0x51, 0xe0, - 0x78, 0xef, 0xc1, 0x00, 0x18, 0xcb, 0x35, 0xae, 0x80, 0xf7, 0xef, 0x15, - 0xbb, 0x75, 0x57, 0xe7, 0xcd, 0x71, 0x46, 0xf3, 0xe3, 0xda, 0x15, 0xfe, - 0x50, 0xc6, 0xae, 0x3b, 0x7b, 0xf5, 0xd0, 0x0d, 0xeb, 0x7d, 0xc7, 0xbd, - 0x9b, 0x3d, 0xe3, 0x04, 0xec, 0xe3, 0x2b, 0xce, 0xcc, 0x9e, 0xf3, 0x7a, - 0xc6, 0xd8, 0xe7, 0x37, 0x1e, 0x96, 0x1f, 0xc0, 0x0c, 0xe6, 0xf2, 0xd5, - 0xe7, 0x58, 0x79, 0x86, 0xb9, 0xa7, 0x5e, 0x80, 0x02, 0xb6, 0xc4, 0x07, - 0x5b, 0x03, 0x7c, 0x30, 0xc0, 0x03, 0x10, 0x36, 0xc8, 0xd6, 0x07, 0x6e, - 0x31, 0xc1, 0xe0, 0x00, 0x4c, 0x44, 0x28, 0x21, 0x13, 0xf5, 0x2c, 0xc8, - 0xe0, 0x5a, 0x6c, 0x31, 0x61, 0x4a, 0x3d, 0x33, 0x30, 0xc8, 0xa1, 0x5d, - 0x6b, 0x89, 0xf5, 0x80, 0x1c, 0x72, 0x80, 0xf8, 0x60, 0x3b, 0x29, 0x3e, - 0xc8, 0x91, 0x8b, 0x7c, 0xd4, 0x63, 0x0a, 0x88, 0x14, 0xd6, 0xe3, 0x62, - 0x88, 0x0c, 0x3a, 0xe8, 0x56, 0x4b, 0x79, 0x10, 0xc0, 0x80, 0x0c, 0x0c, - 0x78, 0x00, 0x84, 0x1b, 0x97, 0x78, 0xc0, 0xc0, 0x92, 0x0c, 0xc8, 0x04, - 0x13, 0x14, 0x45, 0x1e, 0x09, 0x84, 0x92, 0x50, 0xc8, 0x40, 0x80, 0x91, - 0x0d, 0x10, 0xc9, 0x24, 0x01, 0x32, 0x78, 0x30, 0x46, 0x3d, 0x72, 0xbc, - 0xb4, 0xe4, 0x3b, 0xf5, 0x78, 0x20, 0x83, 0x95, 0x04, 0xf8, 0x02, 0x44, - 0x1c, 0x0c, 0x10, 0x00, 0x85, 0x07, 0x97, 0xc8, 0xf3, 0x4d, 0x26, 0x42, - 0xca, 0x64, 0x26, 0x50, 0x65, 0x42, 0x21, 0x24, 0x03, 0x79, 0xd4, 0x93, - 0xc9, 0x92, 0x50, 0x7a, 0xb0, 0x4d, 0x03, 0x4c, 0x36, 0x69, 0x96, 0x5c, - 0x69, 0x20, 0xa0, 0x28, 0x02, 0x11, 0xe8, 0x50, 0x0f, 0x12, 0x9a, 0xc4, - 0x13, 0x01, 0x0e, 0x8a, 0x46, 0x50, 0x0f, 0x02, 0x49, 0x30, 0xea, 0x28, - 0x47, 0x3a, 0x44, 0xb0, 0xe8, 0x1c, 0xf5, 0x08, 0xa2, 0x28, 0xa5, 0x8a, - 0xa6, 0xb1, 0x69, 0x3d, 0x69, 0x64, 0xca, 0xa8, 0x37, 0x93, 0x2a, 0xa3, - 0xa9, 0x2a, 0xfe, 0x9e, 0x32, 0x4a, 0xcf, 0xa3, 0x6e, 0x48, 0x82, 0x03, - 0x0e, 0x96, 0x7a, 0x4a, 0x69, 0x04, 0xc4, 0x88, 0x8a, 0x29, 0xa3, 0xf0, - 0xd4, 0x13, 0x41, 0x12, 0x99, 0xce, 0xa1, 0x83, 0x2a, 0x73, 0x20, 0x40, - 0xaa, 0xa5, 0x54, 0x59, 0x51, 0x81, 0x08, 0x15, 0x98, 0x70, 0x42, 0x0c, - 0x1c, 0x21, 0x11, 0xc3, 0x09, 0xd1, 0x8a, 0x70, 0x42, 0x3d, 0xd0, 0x86, - 0x31, 0x6d, 0x47, 0x31, 0x58, 0xc1, 0x8b, 0x08, 0x22, 0xb0, 0x53, 0xcf, - 0x17, 0x27, 0x40, 0xab, 0x48, 0x05, 0xb0, 0x30, 0xe3, 0x11, 0xba, 0xd9, - 0x1a, 0x01, 0xad, 0x09, 0x68, 0x48, 0xc3, 0x91, 0xbc, 0x15, 0xd8, 0xc2, - 0x8a, 0x26, 0xf5, 0xc4, 0x20, 0x09, 0xb4, 0x96, 0x1a, 0x41, 0x6f, 0x05, - 0x15, 0x60, 0x6b, 0x82, 0x09, 0x61, 0x08, 0xf3, 0x05, 0x47, 0x06, 0xa3, - 0x61, 0x45, 0x0c, 0xd7, 0x22, 0x0c, 0xad, 0x11, 0x87, 0xde, 0x64, 0x05, - 0x0a, 0x28, 0x4c, 0x30, 0x81, 0x0a, 0x24, 0x74, 0xe4, 0xce, 0x0e, 0x13, - 0x50, 0x40, 0xc1, 0x0e, 0xf5, 0x50, 0xa0, 0xf1, 0x0e, 0x24, 0x20, 0xf1, - 0x28, 0x09, 0x2a, 0x88, 0x4c, 0xc1, 0x2a, 0xf5, 0x60, 0xb1, 0x83, 0xc9, - 0x28, 0xd0, 0x41, 0x81, 0x24, 0x1d, 0x73, 0x44, 0x82, 0x24, 0xa7, 0x4c, - 0x90, 0x31, 0xcd, 0xab, 0x60, 0xc1, 0x51, 0x27, 0x3e, 0x53, 0x40, 0x4b, - 0x28, 0xc5, 0xc8, 0x6c, 0x32, 0xc5, 0x2a, 0x64, 0x5c, 0xb3, 0xc9, 0x23, - 0x57, 0x13, 0x4a, 0xce, 0x2a, 0x84, 0x4c, 0x01, 0xc7, 0x2c, 0x53, 0x40, - 0x87, 0xc6, 0x2a, 0x54, 0x6c, 0x57, 0x27, 0x18, 0x60, 0xd0, 0x43, 0x0f, - 0x41, 0xb0, 0xd0, 0x11, 0x0b, 0x5b, 0x0c, 0xd1, 0x03, 0x06, 0x41, 0xd4, - 0x83, 0xc1, 0x08, 0x23, 0x6c, 0x31, 0xc8, 0x39, 0xbb, 0xbc, 0x32, 0xc8, - 0x16, 0x23, 0x0c, 0x81, 0xc1, 0xfe, 0x2c, 0x2c, 0xb4, 0x02, 0xb7, 0xde, - 0x67, 0xb0, 0x6d, 0xf6, 0xd9, 0xe5, 0x58, 0x82, 0x81, 0x25, 0x79, 0x63, - 0x60, 0xc8, 0xd9, 0x6a, 0x88, 0x3d, 0x42, 0x2c, 0x41, 0xb4, 0x01, 0x78, - 0xd7, 0x8f, 0x84, 0xad, 0x37, 0xdb, 0x86, 0x2c, 0xb2, 0x88, 0x1a, 0x6a, - 0x98, 0x3d, 0x4d, 0x2f, 0x23, 0xf4, 0x30, 0xce, 0x1b, 0x6f, 0xb4, 0xa1, - 0x4b, 0x0f, 0x67, 0x9c, 0xb1, 0x85, 0xd7, 0x76, 0x89, 0xc1, 0x48, 0x09, - 0x25, 0xd4, 0x20, 0x44, 0x2a, 0x53, 0xf8, 0x20, 0x84, 0x06, 0x57, 0x94, - 0x70, 0x45, 0x0e, 0xf5, 0x20, 0x53, 0x43, 0x0d, 0x1a, 0x34, 0xf3, 0x4b, - 0x36, 0xd1, 0x08, 0x51, 0x02, 0x17, 0x76, 0x20, 0x93, 0xca, 0xed, 0x45, - 0x70, 0x51, 0x82, 0x1d, 0x76, 0xe0, 0x2e, 0x84, 0x0f, 0x1d, 0x4d, 0x91, - 0x08, 0xf0, 0x5c, 0xd4, 0xb0, 0x7b, 0x5a, 0x3e, 0xe4, 0x50, 0x82, 0x06, - 0x25, 0x14, 0x21, 0xbe, 0x06, 0x1a, 0xac, 0xde, 0xbd, 0x06, 0x45, 0xd4, - 0x70, 0x88, 0x2b, 0xc1, 0x24, 0x92, 0x0b, 0xfa, 0x42, 0xd4, 0x93, 0xc3, - 0xeb, 0x1a, 0x1c, 0x32, 0xc5, 0x14, 0x62, 0x1c, 0x0f, 0x3c, 0xef, 0x2d, - 0x45, 0x02, 0xc1, 0x02, 0x0b, 0x20, 0xc3, 0x02, 0x38, 0xc0, 0x01, 0x2f, - 0x08, 0x10, 0x02, 0xff, 0xbb, 0x43, 0x3d, 0x96, 0x00, 0xc0, 0x05, 0xfc, - 0x41, 0x1b, 0x5e, 0xf0, 0x02, 0x02, 0xff, 0xb7, 0x04, 0x30, 0x20, 0xf0, - 0x0f, 0x03, 0xe4, 0x00, 0x00, 0x31, 0x58, 0xc1, 0x8e, 0x80, 0xc1, 0x0b, - 0x0b, 0xf8, 0x1f, 0x04, 0x96, 0x00, 0x97, 0x48, 0xdc, 0x21, 0x84, 0x22, - 0x04, 0x20, 0xef, 0xd8, 0xc0, 0x40, 0x11, 0xde, 0x41, 0x83, 0x64, 0x40, - 0x20, 0x07, 0xea, 0xa1, 0xc1, 0xff, 0x71, 0x80, 0x0d, 0x6c, 0xd0, 0x60, - 0x03, 0x67, 0x98, 0x9e, 0x27, 0x6c, 0x80, 0x07, 0xfe, 0x1b, 0x78, 0x01, - 0x0f, 0x3a, 0xc0, 0x03, 0x67, 0x74, 0xe0, 0x87, 0x34, 0x48, 0x46, 0x3d, - 0xaa, 0x70, 0x84, 0x23, 0xd2, 0xa0, 0x03, 0x47, 0x38, 0x82, 0x03, 0xa6, - 0xe8, 0x87, 0x2a, 0xf4, 0xe1, 0x89, 0x2f, 0x58, 0x03, 0x37, 0xba, 0x51, - 0x86, 0x17, 0xbc, 0xe0, 0x08, 0x1b, 0x78, 0x42, 0x3d, 0xa4, 0x30, 0xc6, - 0x35, 0x08, 0x91, 0x07, 0x6b, 0xf8, 0x0b, 0x2a, 0x9e, 0xd0, 0x07, 0x4a, - 0x3c, 0x31, 0x88, 0x33, 0xe4, 0xc8, 0x13, 0x9c, 0xd8, 0x01, 0x1a, 0xfc, - 0x30, 0x88, 0x65, 0xa8, 0x47, 0x1f, 0x8e, 0xf8, 0x0c, 0x42, 0x48, 0x41, - 0x0a, 0x84, 0x78, 0xc1, 0x06, 0x3a, 0xf0, 0x82, 0x3c, 0x3a, 0xa4, 0x1e, - 0x85, 0x70, 0x00, 0x0c, 0xa6, 0x28, 0x0e, 0x07, 0x8c, 0x62, 0x8a, 0x0e, - 0x20, 0x82, 0x0b, 0xea, 0x61, 0x06, 0x17, 0x68, 0x41, 0x91, 0x90, 0x9c, - 0xa2, 0x16, 0xaa, 0x00, 0x0d, 0x22, 0x60, 0xd2, 0x05, 0x2d, 0x68, 0x81, - 0x0b, 0xa6, 0x08, 0x03, 0x2d, 0xa4, 0xa3, 0x1e, 0x2d, 0x40, 0xa5, 0x27, - 0x61, 0x40, 0x85, 0x49, 0xfe, 0x85, 0x23, 0x95, 0x74, 0x00, 0x15, 0x1c, - 0xe0, 0x07, 0x8f, 0x14, 0xc2, 0x0f, 0x7b, 0xa0, 0xc2, 0x23, 0x1d, 0xb0, - 0x07, 0x49, 0xd6, 0x83, 0x08, 0x7b, 0x50, 0xa4, 0x16, 0x42, 0x79, 0x49, - 0x2a, 0x2c, 0x92, 0x08, 0xac, 0xbb, 0x89, 0x12, 0x52, 0x90, 0x01, 0x10, - 0x5c, 0x00, 0x11, 0xce, 0x04, 0x41, 0x06, 0x52, 0xa0, 0x84, 0x10, 0xc0, - 0x21, 0x0a, 0x21, 0xa8, 0x42, 0x17, 0x2e, 0xc0, 0xcd, 0x0b, 0x6c, 0x22, - 0x03, 0x55, 0x88, 0x02, 0x1c, 0x94, 0xd0, 0x05, 0x69, 0x2a, 0x21, 0x0a, - 0x51, 0xd0, 0xa6, 0x34, 0xd3, 0x11, 0x82, 0x7a, 0xc0, 0xa1, 0x1e, 0x21, - 0xc8, 0x40, 0x1d, 0x10, 0x91, 0x01, 0xbd, 0x84, 0xc0, 0x1a, 0xed, 0xfe, - 0xe4, 0x88, 0x12, 0x32, 0xc0, 0x4d, 0x22, 0x1c, 0xa3, 0x23, 0xd9, 0xec, - 0x42, 0x1d, 0xb8, 0x29, 0xcd, 0x8e, 0xf0, 0xd3, 0x9b, 0x19, 0x08, 0x41, - 0x3c, 0x2f, 0x50, 0x07, 0x67, 0xd6, 0xb3, 0x25, 0xf5, 0xf8, 0x84, 0x01, - 0x26, 0x4a, 0xd1, 0x8a, 0x1a, 0xe0, 0x00, 0x18, 0xcd, 0xa8, 0x45, 0x33, - 0xca, 0x51, 0x8a, 0x76, 0x74, 0xa2, 0x18, 0xfd, 0x44, 0x3d, 0xb2, 0x00, - 0x8c, 0x1b, 0xdc, 0x80, 0x1c, 0xf5, 0xc0, 0xe8, 0x45, 0x0f, 0x30, 0xd2, - 0x1b, 0x64, 0x61, 0x1d, 0xe1, 0xa0, 0x46, 0x16, 0x4c, 0x7a, 0x83, 0x7a, - 0x72, 0xf4, 0x00, 0x16, 0x5d, 0x29, 0x4e, 0x2b, 0xaa, 0x52, 0x9e, 0x7a, - 0xad, 0x1e, 0x8e, 0x08, 0x80, 0x00, 0x86, 0x4a, 0xd4, 0xa2, 0x1a, 0xf5, - 0xa8, 0x48, 0x4d, 0xea, 0x51, 0x03, 0x50, 0x8f, 0x40, 0xe0, 0x01, 0x0f, - 0x4e, 0xa8, 0x87, 0x51, 0x99, 0xea, 0x04, 0x40, 0x38, 0x21, 0x10, 0xb2, - 0x08, 0x84, 0x13, 0xa0, 0x0a, 0x88, 0x7a, 0x2a, 0xf5, 0xab, 0x4b, 0x85, - 0x04, 0x60, 0x12, 0xc2, 0x11, 0x48, 0x04, 0xe0, 0xac, 0x68, 0x4d, 0xab, - 0x5a, 0xd7, 0xca, 0xd6, 0xb6, 0xae, 0xb5, 0x1e, 0x9c, 0x10, 0x05, 0x36, - 0x26, 0x81, 0x8e, 0x7a, 0xbc, 0xb5, 0x09, 0xa2, 0x98, 0x47, 0x13, 0xf6, - 0x0a, 0x0e, 0x75, 0x4c, 0xa2, 0x09, 0x9c, 0xb0, 0xab, 0x5b, 0x07, 0xcb, - 0x56, 0x47, 0xfc, 0xf4, 0x95, 0x88, 0x4d, 0xac, 0x62, 0x39, 0x62, 0x03, - 0x09, 0x38, 0xd6, 0x1c, 0x7f, 0x49, 0x81, 0x63, 0x27, 0x3b, 0xd9, 0x14, - 0x2c, 0xf6, 0xb2, 0x7b, 0x39, 0x8b, 0x5d, 0x24, 0x2b, 0x01, 0x1b, 0x98, - 0xa5, 0x1e, 0x29, 0x68, 0xec, 0x64, 0x6d, 0x60, 0x59, 0xcd, 0xf2, 0x04, - 0xb4, 0xa4, 0x3d, 0x14, 0x47, 0x42, 0x9b, 0xda, 0x64, 0x9a, 0x16, 0x23, - 0x7a, 0x88, 0x2d, 0x2d, 0x44, 0xc7, 0xfa, 0xda, 0xda, 0xda, 0xf6, 0xb6, - 0xb8, 0xcd, 0xad, 0x6e, 0x77, 0xcb, 0xdb, 0xde, 0xfa, 0xf6, 0xb7, 0xc0, - 0x0d, 0xae, 0x70, 0x87, 0x4b, 0xdc, 0xe2, 0x1a, 0xf7, 0xb8, 0xc8, 0x4d, - 0xae, 0x72, 0x97, 0xcb, 0xdc, 0xe6, 0x3a, 0xf7, 0xb9, 0x53, 0x09, 0x08, - 0x00, 0x3b +unsigned char doxygen_png_data[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x35, + 0x08, 0x02, 0x00, 0x00, 0x00, 0x2f, 0x70, 0x49, 0x98, 0x00, 0x00, 0x00, + 0x06, 0x74, 0x52, 0x4e, 0x53, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x37, + 0x58, 0x1b, 0x7d, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, + 0xff, 0x00, 0xff, 0x00, 0xe2, 0xc3, 0xbb, 0xcb, 0x4a, 0x00, 0x00, 0x08, + 0x33, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0xed, 0x58, 0x6b, 0x6c, 0x54, + 0x55, 0x10, 0xde, 0xc4, 0x67, 0x34, 0x04, 0x34, 0x2a, 0x54, 0x4a, 0x77, + 0x31, 0x29, 0x62, 0x44, 0x25, 0xa6, 0x60, 0x2d, 0xed, 0xb6, 0xc1, 0x26, + 0xfa, 0xc3, 0x44, 0x25, 0x1a, 0x89, 0x34, 0xa5, 0xd1, 0x22, 0xbf, 0x30, + 0x21, 0x01, 0xa3, 0x89, 0xf1, 0x81, 0xb6, 0xf1, 0x07, 0xd5, 0xa4, 0xfc, + 0x90, 0x26, 0x46, 0x69, 0xd2, 0x1a, 0x45, 0xa5, 0x15, 0x51, 0xd0, 0x3e, + 0x56, 0x28, 0x5d, 0x2c, 0x8a, 0x01, 0x84, 0xd2, 0xc7, 0xb6, 0x97, 0x76, + 0x23, 0x3f, 0x4a, 0x42, 0x51, 0xa0, 0x4f, 0xe8, 0xf5, 0x3b, 0x33, 0xe7, + 0x9c, 0x3d, 0xdb, 0x6e, 0x77, 0xb7, 0xf5, 0x4a, 0xd1, 0xdc, 0xc9, 0xe4, + 0x66, 0x76, 0xce, 0x37, 0x33, 0xdf, 0x7c, 0xbb, 0x7b, 0x7b, 0xb7, 0x1e, + 0xdb, 0x35, 0x87, 0xcc, 0x33, 0xd3, 0x04, 0xfe, 0x3f, 0xe6, 0x4a, 0xe9, + 0x98, 0x4d, 0x59, 0x4a, 0x4f, 0x2c, 0x9b, 0xe9, 0x2d, 0xae, 0x09, 0x9b, + 0x8e, 0x94, 0x81, 0x40, 0xb5, 0x65, 0xfd, 0xc4, 0x8e, 0xd8, 0x95, 0x92, + 0x6d, 0x3a, 0x52, 0x42, 0x41, 0xdb, 0x0e, 0xb1, 0x23, 0x76, 0xa5, 0x64, + 0x73, 0xa5, 0x74, 0xcc, 0x5c, 0x29, 0x1d, 0x33, 0x57, 0x4a, 0xc7, 0xcc, + 0x95, 0xd2, 0x31, 0x73, 0xa5, 0x74, 0xcc, 0x5c, 0x29, 0x1d, 0xb3, 0x69, + 0x4b, 0xd9, 0xa5, 0xa4, 0xdc, 0xef, 0x4a, 0xc9, 0x36, 0x3d, 0x29, 0x0f, + 0xd8, 0xb6, 0x45, 0xde, 0x8d, 0xd8, 0x95, 0x92, 0x2d, 0x81, 0x0a, 0x31, + 0x7f, 0x26, 0x5a, 0xd6, 0x41, 0xdb, 0x3e, 0xcd, 0x8e, 0x58, 0x4b, 0xe9, + 0x99, 0xdc, 0x62, 0x36, 0x9c, 0x2c, 0x19, 0xff, 0x27, 0x69, 0xc2, 0x0e, + 0xf1, 0x7f, 0xd7, 0xc6, 0xc7, 0x78, 0x12, 0xd9, 0x74, 0xa4, 0xe4, 0xca, + 0x40, 0xe0, 0x0b, 0xcb, 0x0a, 0x5a, 0x56, 0x33, 0x5d, 0x65, 0x60, 0xdb, + 0x3d, 0xb6, 0xdd, 0xcb, 0x8e, 0x97, 0x7a, 0xff, 0x09, 0x60, 0xf6, 0x43, + 0x81, 0xc0, 0xce, 0x68, 0x0c, 0x00, 0xcd, 0x08, 0xc6, 0x15, 0xe2, 0x5a, + 0x54, 0xf4, 0x1c, 0x5e, 0xe2, 0xaa, 0x33, 0x13, 0x85, 0x50, 0x1d, 0xe4, + 0x69, 0x34, 0xcf, 0xa0, 0x41, 0x40, 0xd2, 0x30, 0x07, 0x45, 0x23, 0x23, + 0x4b, 0xe9, 0x56, 0x9a, 0xde, 0xb8, 0x95, 0xcd, 0x89, 0x53, 0x93, 0x52, + 0x8f, 0xb4, 0xed, 0xb0, 0x56, 0x4d, 0xb9, 0x99, 0x09, 0x43, 0x29, 0x80, + 0xf3, 0xf2, 0x1e, 0x05, 0x5e, 0x1d, 0x85, 0xc7, 0xc1, 0x58, 0x4d, 0xc2, + 0xec, 0xd4, 0x47, 0x68, 0x8e, 0x8c, 0xcf, 0x97, 0x8a, 0x2b, 0x0d, 0x8a, + 0x74, 0x53, 0xa3, 0x23, 0xef, 0x93, 0xc1, 0x4a, 0x77, 0x10, 0x60, 0x9e, + 0x8b, 0xc0, 0xe0, 0x16, 0x8e, 0x8e, 0x65, 0x4f, 0xae, 0x55, 0x83, 0x62, + 0x20, 0xf9, 0xfd, 0x56, 0xad, 0xc2, 0x13, 0x56, 0x0e, 0x2b, 0xd8, 0xa4, + 0x6a, 0x4e, 0x2a, 0xa5, 0x31, 0x35, 0x8e, 0x94, 0x72, 0x5b, 0xd2, 0xb1, + 0x37, 0xbe, 0x2b, 0x12, 0x51, 0x19, 0x7c, 0x00, 0xcd, 0x41, 0xdc, 0xcd, + 0x90, 0xa6, 0xd7, 0xfc, 0x4c, 0x7d, 0xf8, 0xe1, 0x5b, 0xd1, 0x47, 0x3b, + 0x8d, 0xb7, 0x21, 0xc1, 0x5c, 0xe3, 0x9d, 0x96, 0x83, 0xc6, 0x15, 0xaa, + 0xd1, 0xc1, 0xa4, 0x17, 0x49, 0x42, 0x4a, 0x1a, 0xfc, 0xb9, 0xbe, 0x1b, + 0xd2, 0x9f, 0x17, 0x71, 0x4f, 0x64, 0xd7, 0x19, 0x0e, 0xf8, 0x5e, 0x69, + 0x59, 0x4d, 0x06, 0x1e, 0xe0, 0x26, 0x03, 0xac, 0x3b, 0x34, 0x4d, 0xe8, + 0x7c, 0x3a, 0xfa, 0xb6, 0xdb, 0x54, 0x54, 0xf4, 0xac, 0xfa, 0xe8, 0x45, + 0x92, 0x5a, 0x4a, 0x63, 0xba, 0x98, 0x9b, 0x97, 0x97, 0x09, 0x1f, 0x77, + 0xe3, 0x0e, 0x87, 0x0f, 0x99, 0x24, 0x99, 0xde, 0xb8, 0xfb, 0x3b, 0x38, + 0xd0, 0x6d, 0xe4, 0x59, 0x93, 0xa1, 0x5a, 0xe4, 0xa0, 0x49, 0x8f, 0x09, + 0x4c, 0x94, 0x62, 0x0a, 0x52, 0x5a, 0xdd, 0xfc, 0xe4, 0xd8, 0x69, 0x8f, + 0x75, 0xe2, 0x1a, 0x08, 0x54, 0xe5, 0xe5, 0x3d, 0xe2, 0xf3, 0xcd, 0xcf, + 0xcf, 0xcf, 0x42, 0x2c, 0xf2, 0xca, 0xd5, 0x73, 0x25, 0x3d, 0x66, 0x8e, + 0x85, 0x4c, 0x30, 0xae, 0x12, 0x8c, 0xbc, 0xe8, 0x13, 0xe2, 0x23, 0xf1, + 0x2c, 0x35, 0xd6, 0x69, 0x36, 0xa1, 0x5a, 0x51, 0x88, 0xef, 0x3b, 0xdd, + 0x2e, 0x32, 0xd5, 0xa3, 0x2b, 0x4d, 0x6f, 0xac, 0x22, 0x7d, 0xab, 0x44, + 0x15, 0xf5, 0x11, 0xad, 0x1a, 0xab, 0xa9, 0x7f, 0xb5, 0x2a, 0x17, 0xcd, + 0x41, 0x6f, 0xe9, 0xd2, 0xfb, 0xf2, 0xf3, 0x57, 0x74, 0xab, 0x72, 0xa6, + 0x27, 0x6b, 0x8d, 0x07, 0x61, 0x95, 0x0c, 0xe9, 0x29, 0x58, 0x19, 0x49, + 0x2a, 0xec, 0x94, 0x9c, 0x69, 0x97, 0xa2, 0xa2, 0x55, 0x96, 0x4e, 0x46, + 0xad, 0x9c, 0x48, 0x4a, 0x80, 0x1a, 0x1b, 0x3e, 0x19, 0xbb, 0xfc, 0xbb, + 0xf6, 0xee, 0xd0, 0x0f, 0x79, 0xb9, 0xcb, 0x90, 0xbf, 0xfe, 0xfa, 0xeb, + 0xe6, 0xcc, 0x99, 0x95, 0xff, 0x58, 0x26, 0x32, 0xb6, 0x71, 0x8a, 0x23, + 0x8a, 0x4f, 0x98, 0x60, 0x36, 0xc4, 0xc8, 0xe8, 0x56, 0x16, 0x81, 0x1b, + 0x1b, 0x65, 0x7f, 0xdb, 0x98, 0x82, 0xa1, 0x66, 0x21, 0x71, 0x38, 0xa1, + 0x47, 0x14, 0xad, 0x7d, 0x4a, 0x0e, 0xbd, 0x12, 0x99, 0xe2, 0xf3, 0xdd, + 0xad, 0x9b, 0x23, 0x78, 0xe2, 0xf1, 0x6c, 0x26, 0x89, 0x77, 0xb1, 0x61, + 0xef, 0x07, 0x36, 0xf5, 0x67, 0x7a, 0x0c, 0xb3, 0x23, 0xdd, 0x9e, 0xd6, + 0x1c, 0x34, 0xed, 0x40, 0xc3, 0x27, 0x0a, 0x79, 0x82, 0x93, 0x96, 0x9a, + 0x62, 0x19, 0xe5, 0x7a, 0xe5, 0xa4, 0xa4, 0xec, 0xea, 0xa8, 0xb9, 0x32, + 0xd4, 0x72, 0x65, 0xe8, 0x67, 0x71, 0x1d, 0x6e, 0xe9, 0x6a, 0xaf, 0xf5, + 0x79, 0x53, 0x78, 0x43, 0x41, 0xd4, 0x9b, 0x82, 0x0c, 0x1f, 0x01, 0x83, + 0x18, 0x79, 0x06, 0x8f, 0xd1, 0x4b, 0x0d, 0x86, 0x09, 0x70, 0x47, 0xcd, + 0x98, 0xec, 0x86, 0xd3, 0x1a, 0x24, 0x73, 0xfd, 0x0f, 0x53, 0x07, 0x2a, + 0x11, 0x4d, 0x5a, 0xba, 0xdb, 0x6b, 0x8b, 0x0a, 0x9f, 0x34, 0x9f, 0x39, + 0x14, 0x46, 0x4d, 0xe9, 0xa8, 0xd5, 0x7c, 0xae, 0x0c, 0xff, 0xdc, 0x58, + 0xf7, 0x11, 0xc3, 0x74, 0xfe, 0x8f, 0xde, 0xef, 0xd7, 0x16, 0x3e, 0x89, + 0x77, 0x9a, 0x87, 0x42, 0x4a, 0xce, 0xf3, 0xda, 0x02, 0x46, 0x85, 0xb4, + 0x57, 0x4b, 0xa4, 0xf3, 0xb0, 0xe0, 0xdc, 0xf8, 0xe3, 0x47, 0x18, 0x27, + 0x1b, 0x46, 0x8e, 0x30, 0xb4, 0x06, 0xad, 0xe4, 0xbe, 0x84, 0xe4, 0x9e, + 0xe8, 0x36, 0x05, 0x29, 0x2f, 0x5f, 0xaa, 0x17, 0x7e, 0xb1, 0x01, 0x1e, + 0x3a, 0x59, 0xe5, 0xf3, 0xce, 0xd3, 0x4b, 0x7a, 0xbd, 0xf3, 0x42, 0x27, + 0xab, 0xe9, 0x08, 0x80, 0x7a, 0xc4, 0x48, 0x52, 0xcc, 0xe0, 0x6a, 0x80, + 0xa1, 0xb8, 0xd2, 0x1d, 0xe0, 0x2a, 0x46, 0x0a, 0x70, 0xab, 0xf8, 0xaa, + 0xe6, 0xe6, 0x3c, 0x44, 0x1d, 0xa8, 0x44, 0x0c, 0x12, 0xad, 0xb0, 0xbc, + 0x39, 0x05, 0x31, 0x32, 0xa3, 0x1a, 0x23, 0xc7, 0x89, 0x18, 0x4d, 0xd0, + 0x81, 0x61, 0x0d, 0xfb, 0xca, 0x14, 0xa0, 0xfe, 0x48, 0xb0, 0x62, 0x6d, + 0xc1, 0xe3, 0x8b, 0x17, 0x2d, 0x30, 0xfb, 0xf3, 0xda, 0x82, 0xc3, 0xa5, + 0xa8, 0x71, 0xdc, 0x10, 0xb0, 0x86, 0xbd, 0x65, 0xa8, 0xd2, 0xa3, 0x89, + 0xad, 0x5e, 0x4d, 0x2c, 0x1e, 0x59, 0x41, 0x14, 0x4a, 0x41, 0x92, 0x95, + 0x12, 0xfc, 0x46, 0xcf, 0xd7, 0xc0, 0x47, 0xc8, 0x3b, 0x8f, 0x57, 0xe4, + 0x66, 0x2f, 0x89, 0x7c, 0x5e, 0xb2, 0x97, 0x84, 0x8e, 0x57, 0x8c, 0xf6, + 0x8b, 0xa3, 0x51, 0x3a, 0x45, 0x52, 0x80, 0xfb, 0x85, 0xe3, 0xe8, 0xb1, + 0xbc, 0x87, 0xe6, 0xcd, 0x9d, 0x73, 0xf3, 0x4d, 0x37, 0xcc, 0x99, 0x7d, + 0x2b, 0x62, 0x64, 0x90, 0x07, 0x1e, 0x98, 0xba, 0x3d, 0x5b, 0x50, 0x5e, + 0xf7, 0xed, 0x16, 0x06, 0x73, 0x72, 0xb4, 0x7f, 0xd7, 0xe8, 0x84, 0x29, + 0x6a, 0xd0, 0xf6, 0xd1, 0xf3, 0xbb, 0x88, 0xcc, 0x2e, 0x8d, 0xaf, 0xdf, + 0xf3, 0xae, 0x89, 0xa9, 0xdb, 0xf3, 0xae, 0xa4, 0xda, 0x5f, 0x13, 0x6e, + 0xff, 0x14, 0x7d, 0x42, 0xc7, 0xb6, 0xeb, 0xce, 0xbc, 0x76, 0xfd, 0x9e, + 0x2d, 0xbc, 0x91, 0xcc, 0xd3, 0x38, 0xf4, 0x29, 0x7c, 0x61, 0x25, 0x1c, + 0x1d, 0xe0, 0x3c, 0x3d, 0x74, 0x0c, 0x6c, 0xc5, 0x2c, 0x5a, 0x7c, 0xbb, + 0x37, 0xed, 0x2e, 0x38, 0x1a, 0x8e, 0x80, 0x00, 0x53, 0x45, 0x4f, 0x5a, + 0x39, 0xd9, 0x3f, 0x3b, 0x1d, 0xbf, 0x6d, 0x1d, 0xe9, 0xdb, 0x31, 0x7c, + 0x96, 0xbc, 0xaf, 0xb2, 0xae, 0xf6, 0xb5, 0xdc, 0x15, 0x8b, 0xbd, 0x0b, + 0xee, 0xf0, 0xaf, 0x58, 0x8c, 0x78, 0xf8, 0x6c, 0xe5, 0x30, 0x9f, 0xf6, + 0xed, 0xe8, 0xf8, 0xad, 0x0c, 0xf8, 0xce, 0x23, 0x65, 0x80, 0x09, 0x3f, + 0x5b, 0x79, 0x60, 0xef, 0x9b, 0x2f, 0x16, 0xe4, 0xde, 0x9b, 0x9e, 0xb2, + 0xd2, 0x7f, 0x3f, 0x81, 0x77, 0x8c, 0xc0, 0xfb, 0x2a, 0x81, 0xc9, 0x55, + 0xe5, 0x23, 0xc2, 0x45, 0x07, 0xe4, 0x47, 0xa8, 0x0a, 0xad, 0x70, 0x84, + 0xfe, 0x91, 0x8f, 0xff, 0x82, 0x3b, 0xea, 0x6a, 0x5f, 0xe7, 0x9e, 0x23, + 0x44, 0x43, 0x8f, 0x33, 0x0d, 0x25, 0x48, 0x12, 0xd5, 0x4a, 0x9a, 0xc5, + 0xcd, 0xa9, 0xe7, 0xd9, 0x4a, 0x5e, 0x5b, 0x61, 0x28, 0xdf, 0x57, 0xd9, + 0x71, 0xa4, 0xac, 0x70, 0x75, 0x76, 0xe1, 0xea, 0x1c, 0xf4, 0xef, 0x38, + 0xb2, 0x95, 0xf3, 0x98, 0x4e, 0x8b, 0x97, 0xa9, 0xc5, 0x05, 0x0c, 0x1c, + 0xe0, 0x50, 0x83, 0xb7, 0x60, 0x32, 0xcc, 0x21, 0x59, 0x29, 0x7f, 0xfc, + 0x6a, 0xc3, 0xd0, 0x99, 0xf2, 0xa1, 0x33, 0xdb, 0xe0, 0x83, 0x74, 0x6d, + 0x6f, 0x79, 0x87, 0xfc, 0x6d, 0x7e, 0x49, 0xa7, 0x02, 0xd0, 0xd6, 0xf2, + 0x0e, 0xe1, 0x5f, 0x19, 0x92, 0x79, 0xe0, 0xcb, 0x7b, 0x8e, 0xbe, 0x07, + 0x24, 0x5c, 0xc1, 0x04, 0x12, 0x18, 0x7f, 0x56, 0x3a, 0xbf, 0x1c, 0xa4, + 0x0c, 0xf7, 0xd4, 0x55, 0x1a, 0x13, 0x91, 0x29, 0x2b, 0x9d, 0x9a, 0x6c, + 0x53, 0x64, 0xca, 0x01, 0x98, 0xf8, 0x63, 0x0e, 0x6c, 0xdb, 0x64, 0x9f, + 0x72, 0x8d, 0xe4, 0xb6, 0xbc, 0xb6, 0x77, 0xc1, 0xed, 0x8a, 0xa1, 0x3c, + 0x6d, 0x53, 0xa3, 0x07, 0x55, 0x55, 0x3b, 0x2d, 0xd2, 0x1e, 0xe9, 0x23, + 0xe8, 0xa1, 0x10, 0xae, 0x49, 0x0e, 0x29, 0x29, 0x92, 0x95, 0x92, 0xd5, + 0xfc, 0xe1, 0x8b, 0xe2, 0x81, 0xde, 0xd2, 0xc1, 0xde, 0x52, 0xba, 0x96, + 0x20, 0x18, 0xec, 0xa1, 0x97, 0x3d, 0x25, 0x08, 0xf8, 0x68, 0xb0, 0xa7, + 0xa4, 0xad, 0x79, 0x13, 0xc0, 0x6b, 0x9e, 0x59, 0x34, 0xd0, 0x53, 0x2a, + 0xf3, 0x0c, 0x20, 0xbf, 0x14, 0x7a, 0x95, 0xbd, 0xf5, 0xa7, 0x97, 0x81, + 0x69, 0x0b, 0x6e, 0xe6, 0x53, 0x34, 0x3c, 0xd5, 0xbc, 0xd9, 0xff, 0xe8, + 0x42, 0x7f, 0xe6, 0xc2, 0x53, 0x48, 0x8a, 0xfe, 0x25, 0x03, 0x54, 0x8e, + 0xb9, 0x62, 0xf9, 0xd4, 0xdb, 0xf8, 0x0a, 0x98, 0x9c, 0xde, 0x5b, 0x8a, + 0xd8, 0x33, 0x89, 0xf9, 0x33, 0xef, 0x41, 0x21, 0xfa, 0xb7, 0x35, 0xcb, + 0x11, 0x4c, 0x9b, 0xd7, 0x66, 0x03, 0xc0, 0x64, 0x88, 0xab, 0xb9, 0x20, + 0x68, 0x00, 0x43, 0x0c, 0x45, 0x66, 0x40, 0x64, 0x36, 0x81, 0x80, 0xe0, + 0x10, 0xdc, 0x24, 0xe8, 0x49, 0x05, 0x24, 0x32, 0x59, 0x29, 0x59, 0xcd, + 0x7d, 0x9f, 0xad, 0x26, 0x21, 0x36, 0xb3, 0x1c, 0x03, 0x5d, 0x74, 0x55, + 0xea, 0x90, 0x40, 0xeb, 0xf7, 0x55, 0xaf, 0x06, 0x32, 0xe7, 0x91, 0x34, + 0x04, 0xad, 0xfb, 0xd7, 0x9b, 0xf8, 0x08, 0x6c, 0xff, 0x7a, 0xe8, 0x38, + 0x7b, 0xd6, 0x8d, 0xc0, 0x6b, 0x00, 0xf0, 0xde, 0xd4, 0xd9, 0x70, 0x04, + 0x0a, 0xb9, 0x19, 0xc8, 0x6d, 0x6f, 0x2c, 0x26, 0x11, 0x67, 0xf3, 0x35, + 0x52, 0xd2, 0xf5, 0x2a, 0xcf, 0x8a, 0x6f, 0xcc, 0x44, 0x94, 0x74, 0xc9, + 0xb7, 0xd0, 0x3c, 0xc5, 0x46, 0xc8, 0x0c, 0x50, 0x37, 0xbd, 0x08, 0x5e, + 0xea, 0x45, 0x10, 0x0c, 0x48, 0xfe, 0x82, 0x0c, 0x33, 0x94, 0x7b, 0x75, + 0x49, 0xe6, 0xc0, 0x4c, 0x59, 0xca, 0x82, 0x67, 0x16, 0xed, 0x2e, 0x5f, + 0x78, 0xb2, 0xee, 0xf9, 0x8b, 0xad, 0xc5, 0x17, 0x5a, 0x8b, 0x2f, 0x9e, + 0x2a, 0x96, 0x41, 0x6b, 0x31, 0x92, 0x38, 0x02, 0x20, 0x67, 0x79, 0x8a, + 0x77, 0xfe, 0xac, 0xb4, 0xf9, 0xb3, 0x10, 0x40, 0xaf, 0x93, 0xf5, 0xcf, + 0x5f, 0x20, 0x8c, 0xf4, 0x53, 0x02, 0x89, 0x3c, 0x00, 0x80, 0x15, 0x10, + 0x80, 0xcb, 0x0b, 0x28, 0x09, 0x5f, 0x63, 0x24, 0xa1, 0x23, 0xfa, 0x08, + 0x11, 0xe7, 0x8b, 0xc7, 0x1a, 0xc4, 0x34, 0x7d, 0xdd, 0x45, 0xea, 0x13, + 0x5b, 0xbb, 0xe5, 0x29, 0xdb, 0x4b, 0xfd, 0x5c, 0xc5, 0x26, 0xa6, 0xd4, + 0x49, 0x1a, 0x58, 0x7b, 0xe3, 0x4b, 0x0f, 0x9a, 0x60, 0x35, 0x6e, 0xdd, + 0x05, 0x63, 0x17, 0x0d, 0xd0, 0x85, 0xcc, 0x1c, 0x78, 0xe6, 0x40, 0xc8, + 0x75, 0xbc, 0x3e, 0xe3, 0x93, 0xbd, 0x57, 0xc2, 0x02, 0x15, 0x15, 0xf6, + 0xaf, 0xbf, 0xc6, 0x77, 0x6b, 0xf7, 0xee, 0x71, 0x9e, 0x10, 0x60, 0x62, + 0xe2, 0x24, 0x31, 0x1d, 0x1c, 0xbe, 0xfb, 0x38, 0xe7, 0xcf, 0xa3, 0xab, + 0xfe, 0x22, 0xff, 0xee, 0x63, 0x3f, 0x32, 0x1a, 0xcc, 0x01, 0x63, 0xe8, + 0x34, 0x27, 0x3b, 0xe3, 0xce, 0xb4, 0xbb, 0x6f, 0xc9, 0xc9, 0xb8, 0x93, + 0x33, 0xec, 0xbc, 0x76, 0x7c, 0x92, 0x26, 0x93, 0x98, 0xf9, 0x89, 0xc9, + 0x64, 0x1f, 0x86, 0x36, 0xce, 0x9d, 0xfb, 0xa9, 0xcf, 0xf7, 0x7d, 0x7a, + 0xfa, 0x0c, 0x3a, 0x08, 0x80, 0xc9, 0xf1, 0xdd, 0x59, 0xe7, 0x7f, 0x59, + 0x29, 0xfc, 0xf0, 0x4a, 0xbc, 0x8c, 0x89, 0xc1, 0xd1, 0x9f, 0x87, 0x05, + 0x00, 0xe0, 0xe3, 0xdf, 0x64, 0x89, 0x92, 0xc3, 0xb2, 0x04, 0x79, 0x96, + 0xd2, 0x59, 0x62, 0xef, 0xa7, 0xa6, 0xf2, 0xa7, 0x2d, 0xb1, 0x94, 0x30, + 0xa0, 0x51, 0x33, 0x83, 0x0e, 0x0e, 0xc7, 0xbe, 0x7e, 0xa0, 0x3f, 0xb8, + 0xec, 0x5c, 0x73, 0x46, 0x7f, 0x73, 0xc6, 0xd1, 0xaf, 0xc5, 0x97, 0x34, + 0x26, 0xac, 0x3f, 0x98, 0x01, 0x58, 0x7f, 0xf3, 0x32, 0x0a, 0x84, 0x9f, + 0x43, 0x55, 0x50, 0x54, 0x21, 0x46, 0x93, 0x98, 0x85, 0xff, 0xd0, 0xf1, + 0x69, 0x4b, 0x2c, 0xa5, 0x9d, 0xc4, 0x7f, 0x92, 0xaf, 0x8e, 0x1d, 0xfd, + 0x72, 0xd1, 0xb9, 0xa6, 0x25, 0xec, 0x25, 0x1b, 0x52, 0x26, 0x83, 0xe1, + 0x96, 0xad, 0x61, 0xe3, 0x1c, 0x47, 0xff, 0x2a, 0xc3, 0x64, 0xff, 0xec, + 0xcc, 0xac, 0x99, 0x1a, 0x41, 0x53, 0x8f, 0xc7, 0x13, 0x1f, 0x69, 0xea, + 0xce, 0x25, 0xac, 0xe3, 0x55, 0xe5, 0x3c, 0xd3, 0xa2, 0x4d, 0xce, 0x4c, + 0x69, 0x94, 0x50, 0x14, 0xfd, 0xf1, 0x04, 0x58, 0xe3, 0xaf, 0xb2, 0x8e, + 0xf6, 0xb5, 0x2c, 0x25, 0x2c, 0x6d, 0xde, 0x8d, 0xec, 0x49, 0x6d, 0x32, + 0xf9, 0x57, 0xef, 0xea, 0xd8, 0x35, 0x2d, 0xe5, 0x7f, 0xcb, 0x5c, 0x29, + 0x1d, 0x33, 0x57, 0x4a, 0xc7, 0xcc, 0x95, 0xd2, 0x31, 0x73, 0xa5, 0x74, + 0xcc, 0x5c, 0x29, 0x1d, 0x33, 0x57, 0x4a, 0xc7, 0xcc, 0x95, 0xd2, 0x31, + 0x73, 0xa5, 0x74, 0xcc, 0x5c, 0x29, 0x1d, 0x33, 0x57, 0x4a, 0xc7, 0xcc, + 0x95, 0xd2, 0x31, 0x73, 0xa5, 0x74, 0xcc, 0x5c, 0x29, 0x1d, 0x33, 0x57, + 0x4a, 0xc7, 0xcc, 0x95, 0xd2, 0x31, 0x73, 0xa5, 0x74, 0xcc, 0xfe, 0x06, + 0xbe, 0x63, 0xe9, 0x2a, 0x3a, 0x4d, 0xca, 0xc2, 0x00, 0x00, 0x00, 0x43, + 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, + 0x00, 0x40, 0x28, 0x23, 0x29, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x61, + 0x67, 0x69, 0x63, 0x6b, 0x20, 0x34, 0x2e, 0x32, 0x2e, 0x37, 0x20, 0x39, + 0x39, 0x2f, 0x30, 0x37, 0x2f, 0x30, 0x31, 0x20, 0x63, 0x72, 0x69, 0x73, + 0x74, 0x79, 0x40, 0x6d, 0x79, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x65, 0x73, + 0x2e, 0x64, 0x75, 0x70, 0x6f, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6b, + 0x02, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x2a, 0x74, 0x45, 0x58, 0x74, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x00, 0x35, 0x34, 0x36, + 0x33, 0x61, 0x37, 0x38, 0x35, 0x62, 0x62, 0x31, 0x31, 0x64, 0x33, 0x36, + 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, 0x31, 0x63, 0x37, 0x37, 0x65, 0x62, + 0x65, 0x38, 0x31, 0x61, 0x62, 0x12, 0xbe, 0x63, 0xf7, 0x00, 0x00, 0x00, + 0x0f, 0x74, 0x45, 0x58, 0x74, 0x50, 0x61, 0x67, 0x65, 0x00, 0x31, 0x31, + 0x30, 0x78, 0x35, 0x33, 0x2b, 0x30, 0x2b, 0x30, 0xbb, 0x45, 0xd1, 0x42, + 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; -const unsigned int logo_len = 2378; +unsigned int doxygen_png_len = 2352; -unsigned char search_data[] = { - 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x78, 0x00, 0x1a, 0x00, 0xe7, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x01, 0x4c, 0x01, 0x01, 0x4c, 0x00, - 0x02, 0x4c, 0x01, 0x02, 0x4c, 0x02, 0x01, 0x63, 0x01, 0x02, 0x63, 0x02, - 0x02, 0x63, 0x01, 0x04, 0x63, 0x02, 0x04, 0x63, 0x04, 0x04, 0x63, 0x04, - 0x07, 0x72, 0x02, 0x04, 0x72, 0x04, 0x04, 0x72, 0x04, 0x07, 0x72, 0x07, - 0x07, 0x72, 0x04, 0x09, 0x72, 0x07, 0x09, 0x7d, 0x07, 0x09, 0x7d, 0x09, - 0x09, 0x7d, 0x09, 0x0d, 0x87, 0x09, 0x0d, 0x87, 0x09, 0x11, 0x87, 0x0d, - 0x11, 0x90, 0x0d, 0x11, 0x90, 0x0d, 0x15, 0x90, 0x11, 0x15, 0x9a, 0x11, - 0x15, 0x9a, 0x11, 0x1a, 0x9a, 0x15, 0x1a, 0xa2, 0x15, 0x1a, 0xa2, 0x15, - 0x20, 0xa2, 0x1a, 0x20, 0xa9, 0x1a, 0x20, 0xa9, 0x1a, 0x26, 0xa0, 0x20, - 0x28, 0xa0, 0x24, 0x28, 0xa7, 0x2f, 0x37, 0xa7, 0x32, 0x37, 0xb0, 0x20, - 0x26, 0xb0, 0x20, 0x2d, 0xb7, 0x26, 0x2d, 0xbd, 0x2d, 0x2d, 0xb7, 0x26, - 0x34, 0xb2, 0x29, 0x36, 0xb7, 0x2d, 0x34, 0xbd, 0x2d, 0x34, 0xb5, 0x32, - 0x3c, 0xad, 0x3e, 0x45, 0x8e, 0x43, 0x3b, 0xad, 0x41, 0x45, 0xbf, 0x43, - 0x4e, 0xb3, 0x4d, 0x53, 0xb3, 0x53, 0x4f, 0xb3, 0x50, 0x53, 0xba, 0x5e, - 0x62, 0xb8, 0x71, 0x5f, 0xc3, 0x34, 0x3b, 0xc9, 0x3b, 0x44, 0xc9, 0x3b, - 0x4d, 0xc9, 0x44, 0x4d, 0xcf, 0x44, 0x56, 0xcf, 0x4d, 0x56, 0xd5, 0x4d, - 0x5f, 0xd5, 0x56, 0x5f, 0xcc, 0x54, 0x61, 0xda, 0x56, 0x6b, 0xda, 0x5f, - 0x6b, 0xdf, 0x5f, 0x6b, 0xc0, 0x6b, 0x70, 0xc0, 0x6d, 0x70, 0xcd, 0x7f, - 0x6a, 0xc6, 0x7a, 0x7f, 0xc6, 0x7c, 0x7f, 0xd7, 0x64, 0x72, 0xd6, 0x66, - 0x72, 0xd7, 0x6f, 0x72, 0xd7, 0x6d, 0x79, 0xd6, 0x71, 0x71, 0xe5, 0x6b, - 0x75, 0xe5, 0x75, 0x75, 0xe9, 0x75, 0x8c, 0xcd, 0x81, 0x6e, 0xcd, 0x85, - 0x72, 0xcd, 0x88, 0x8d, 0xcd, 0x8a, 0x8d, 0xd3, 0x98, 0x9a, 0xd9, 0xa7, - 0xa9, 0xdc, 0xaa, 0xa0, 0xdf, 0xb6, 0xb7, 0xee, 0x80, 0x8c, 0xe5, 0x8b, - 0x92, 0xee, 0x8c, 0x9a, 0xf2, 0x8c, 0x9a, 0xea, 0x8c, 0xa0, 0xec, 0x99, - 0xa3, 0xf7, 0x9a, 0xb4, 0xe1, 0xac, 0xa3, 0xea, 0xae, 0xa0, 0xef, 0xae, - 0xb1, 0xe6, 0xb5, 0xac, 0xf7, 0xa6, 0xb4, 0xfc, 0xa6, 0xc1, 0xfa, 0xaf, - 0xc0, 0xf3, 0xc1, 0xb3, 0xf2, 0xd6, 0xac, 0xff, 0xff, 0xa3, 0xe6, 0xc4, - 0xc6, 0xec, 0xd2, 0xd0, 0xec, 0xd3, 0xd4, 0xf6, 0xcd, 0xc9, 0xfb, 0xc5, - 0xd1, 0xfb, 0xc9, 0xd4, 0xf2, 0xd6, 0xd3, 0xf7, 0xd3, 0xd2, 0xf5, 0xd0, - 0xd7, 0xf3, 0xdc, 0xdc, 0xf9, 0xd4, 0xd7, 0xfa, 0xd1, 0xd8, 0xfa, 0xd6, - 0xda, 0xf9, 0xda, 0xd5, 0xf9, 0xdf, 0xe1, 0xfc, 0xde, 0xe0, 0xff, 0xff, - 0xcb, 0xff, 0xff, 0xcc, 0xf2, 0xe2, 0xe2, 0xfa, 0xe5, 0xe8, 0xfe, 0xed, - 0xe9, 0xfe, 0xef, 0xf0, 0xf9, 0xf0, 0xf1, 0xfd, 0xf0, 0xf1, 0xff, 0xf4, - 0xf0, 0xff, 0xf6, 0xf2, 0xff, 0xf8, 0xf8, 0xff, 0xfa, 0xf8, 0xff, 0xfb, - 0xfa, 0xff, 0xfb, 0xfb, 0xff, 0xfd, 0xfa, 0xff, 0xfd, 0xfd, 0xff, 0xff, - 0xfd, 0xff, 0xff, 0xff, 0x00, 0xcc, 0x22, 0x00, 0xcc, 0x55, 0x00, 0xcc, - 0x99, 0x00, 0xcc, 0xcc, 0x00, 0xaa, 0xcc, 0x00, 0x66, 0xcc, 0x00, 0x33, - 0xcc, 0x00, 0x00, 0xcc, 0x11, 0x00, 0xcc, 0x44, 0x00, 0xcc, 0x55, 0x00, - 0xcc, 0x88, 0x00, 0xcc, 0xbb, 0x00, 0xcc, 0xcc, 0x00, 0xcc, 0xcc, 0x00, - 0xbb, 0xcc, 0x00, 0x88, 0xcc, 0x00, 0x66, 0xcc, 0x00, 0x44, 0xcc, 0x00, - 0x22, 0x99, 0x00, 0x00, 0x99, 0x11, 0x00, 0x99, 0x33, 0x00, 0x99, 0x44, - 0x00, 0x99, 0x66, 0x00, 0x99, 0x88, 0x00, 0x99, 0x99, 0x00, 0x88, 0x99, - 0x00, 0x66, 0x99, 0x00, 0x55, 0x99, 0x00, 0x33, 0x99, 0x00, 0x11, 0x99, - 0x00, 0x00, 0x99, 0x00, 0x00, 0x99, 0x11, 0x00, 0x99, 0x44, 0x00, 0x99, - 0x77, 0x00, 0x99, 0x99, 0x00, 0x77, 0x99, 0x00, 0x55, 0x99, 0x00, 0x22, - 0x99, 0x00, 0x00, 0x99, 0x11, 0x00, 0x99, 0x33, 0x00, 0x99, 0x44, 0x00, - 0x99, 0x66, 0x00, 0x99, 0x88, 0x00, 0x99, 0x99, 0x00, 0x99, 0x99, 0x00, - 0x88, 0x99, 0x00, 0x66, 0x99, 0x00, 0x55, 0x99, 0x00, 0x33, 0x99, 0x00, - 0x11, 0x66, 0x00, 0x00, 0x66, 0x11, 0x00, 0x66, 0x22, 0x00, 0x66, 0x33, - 0x00, 0x66, 0x44, 0x00, 0x66, 0x55, 0x00, 0x66, 0x66, 0x00, 0x55, 0x66, - 0x00, 0x44, 0x66, 0x00, 0x33, 0x66, 0x00, 0x22, 0x66, 0x00, 0x11, 0x66, - 0x00, 0x00, 0x66, 0x00, 0x00, 0x66, 0x11, 0x00, 0x66, 0x22, 0x00, 0x66, - 0x44, 0x00, 0x66, 0x66, 0x00, 0x55, 0x66, 0x00, 0x33, 0x66, 0x00, 0x11, - 0x66, 0x00, 0x00, 0x66, 0x11, 0x00, 0x66, 0x22, 0x00, 0x66, 0x33, 0x00, - 0x66, 0x44, 0x00, 0x66, 0x55, 0x00, 0x66, 0x66, 0x00, 0x66, 0x66, 0x00, - 0x55, 0x66, 0x00, 0x44, 0x66, 0x00, 0x33, 0x66, 0x00, 0x22, 0x66, 0x00, - 0x11, 0x33, 0x00, 0x00, 0x33, 0x00, 0x00, 0x33, 0x11, 0x00, 0x33, 0x11, - 0x00, 0x33, 0x22, 0x00, 0x33, 0x22, 0x00, 0x33, 0x33, 0x00, 0x33, 0x33, - 0x00, 0x22, 0x33, 0x00, 0x11, 0x33, 0x00, 0x11, 0x33, 0x00, 0x00, 0x33, - 0x00, 0x00, 0x33, 0x00, 0x00, 0x33, 0x00, 0x00, 0x33, 0x11, 0x00, 0x33, - 0x22, 0x00, 0x33, 0x33, 0x00, 0x22, 0x33, 0x00, 0x11, 0x33, 0x00, 0x00, - 0x33, 0x00, 0x00, 0x33, 0x00, 0x00, 0x33, 0x11, 0x00, 0x33, 0x11, 0x00, - 0x33, 0x22, 0x00, 0x33, 0x22, 0x00, 0x33, 0x33, 0x00, 0x33, 0x33, 0x00, - 0x22, 0x33, 0x00, 0x22, 0x33, 0x00, 0x11, 0x33, 0x00, 0x11, 0x33, 0x00, - 0x00, 0x21, 0xf9, 0x04, 0x09, 0x01, 0x00, 0x7c, 0x00, 0x2c, 0x00, 0x00, - 0x00, 0x00, 0x78, 0x00, 0x1a, 0x00, 0x00, 0x08, 0xff, 0x00, 0xf9, 0x08, - 0x1c, 0x48, 0xb0, 0xa0, 0xc1, 0x83, 0x08, 0x13, 0x2a, 0x5c, 0xc8, 0xb0, - 0xa1, 0xc3, 0x87, 0x08, 0xd3, 0xa0, 0x21, 0x43, 0xe6, 0xcb, 0x17, 0x22, - 0x42, 0x80, 0x68, 0xdc, 0xc8, 0xb1, 0xa3, 0xc7, 0x8f, 0x20, 0x43, 0x8a, - 0x1c, 0x49, 0x52, 0xa4, 0x8f, 0x1d, 0x2e, 0x50, 0x70, 0x90, 0x20, 0x01, - 0x07, 0x96, 0x34, 0x0c, 0x25, 0xa2, 0x59, 0x43, 0x73, 0xcc, 0x17, 0x33, - 0x5d, 0xb4, 0x68, 0xe1, 0xc2, 0xb3, 0xa7, 0xcf, 0x9f, 0x40, 0x83, 0x0a, - 0x1d, 0x4a, 0xb4, 0xa8, 0x51, 0xa1, 0x51, 0x9e, 0xf8, 0x70, 0x71, 0x02, - 0xc4, 0x06, 0x96, 0x37, 0xb0, 0x28, 0x9c, 0xc8, 0xa6, 0x8f, 0x9f, 0x3c, - 0x6e, 0xc6, 0x68, 0x11, 0xf2, 0xc3, 0x87, 0xd7, 0xaf, 0x60, 0xc3, 0x8a, - 0x1d, 0x4b, 0xb6, 0xac, 0xd9, 0xb3, 0x68, 0xcd, 0xf6, 0xe0, 0x91, 0x23, - 0x85, 0x08, 0x0f, 0x1b, 0x34, 0x48, 0x70, 0x50, 0x43, 0xea, 0x1e, 0x83, - 0x13, 0xf1, 0xf8, 0xa1, 0xb3, 0xe6, 0x8b, 0x93, 0x20, 0x30, 0x3e, 0x08, - 0x1e, 0x4c, 0xb8, 0xb0, 0xe1, 0xc3, 0x88, 0x13, 0x2b, 0x5e, 0xcc, 0xb8, - 0xf1, 0x60, 0x10, 0x70, 0x33, 0x5c, 0x90, 0xc0, 0xa0, 0x2e, 0x5e, 0x32, - 0x74, 0xfc, 0xac, 0xd9, 0xb2, 0x64, 0x06, 0x8b, 0x11, 0x20, 0x3a, 0x88, - 0x1e, 0xdd, 0x81, 0x84, 0x8d, 0xd3, 0x36, 0x48, 0xab, 0x5e, 0xcd, 0xba, - 0xb5, 0xeb, 0xd7, 0xac, 0x4d, 0xa0, 0x36, 0x01, 0xbb, 0x36, 0x07, 0x0d, - 0x18, 0x2a, 0xb0, 0xac, 0x41, 0x86, 0xa0, 0xc4, 0x3c, 0x7e, 0xd0, 0x38, - 0x81, 0x41, 0x22, 0x34, 0x6b, 0x23, 0x6d, 0x18, 0x29, 0x57, 0x1e, 0xc8, - 0x0a, 0xe9, 0x2b, 0xcb, 0xa3, 0x47, 0x97, 0xa1, 0x3a, 0x49, 0xf4, 0x35, - 0xab, 0xa1, 0x4b, 0x5f, 0xde, 0x27, 0x89, 0x6a, 0x12, 0x55, 0xfa, 0x48, - 0xff, 0xef, 0x43, 0x7d, 0xb4, 0x78, 0xe5, 0xce, 0x47, 0x6b, 0x67, 0xd4, - 0x86, 0xf4, 0xed, 0x0a, 0x13, 0x24, 0x20, 0xb8, 0x71, 0x97, 0x4f, 0x1a, - 0x32, 0x68, 0x34, 0x3b, 0x79, 0x61, 0x7c, 0x35, 0x89, 0xe4, 0xdb, 0x29, - 0x67, 0xc4, 0x68, 0x81, 0x04, 0xc8, 0x9d, 0x6a, 0x32, 0x14, 0xb8, 0x5c, - 0x7b, 0xaa, 0x29, 0x68, 0x20, 0x23, 0xa9, 0x89, 0x76, 0x83, 0x83, 0xd2, - 0x05, 0x42, 0x5b, 0x07, 0x32, 0x4c, 0x47, 0x9a, 0x83, 0xde, 0xb9, 0x97, - 0x01, 0x05, 0x12, 0x34, 0x80, 0x80, 0x13, 0x02, 0x89, 0xf1, 0xc5, 0x1b, - 0x77, 0x78, 0x01, 0x43, 0x7f, 0xab, 0xad, 0xb1, 0xdc, 0x15, 0x37, 0x58, - 0x11, 0x5d, 0x15, 0x12, 0x3e, 0x88, 0x9e, 0x6a, 0x00, 0x46, 0xa7, 0xda, - 0x0d, 0xd7, 0xad, 0x91, 0xa3, 0x72, 0x34, 0x76, 0x60, 0x84, 0x8d, 0x8c, - 0x74, 0x28, 0xa3, 0x72, 0x7d, 0x90, 0xc6, 0xe3, 0x72, 0x17, 0x92, 0xb6, - 0xc1, 0x64, 0x10, 0x34, 0x40, 0x82, 0x40, 0x5b, 0x6c, 0x71, 0xc6, 0x19, - 0x4b, 0xa0, 0xe0, 0xda, 0x90, 0xca, 0x31, 0xd8, 0x81, 0x8b, 0x40, 0x8a, - 0xb6, 0x9e, 0x97, 0xae, 0x1d, 0x29, 0x9d, 0x6a, 0xeb, 0x25, 0x59, 0xe3, - 0x72, 0x37, 0x74, 0xb0, 0xa4, 0x72, 0x59, 0x50, 0x97, 0xe0, 0x8b, 0xa2, - 0x9d, 0xc7, 0x48, 0x7a, 0x62, 0x2e, 0xc8, 0x1a, 0x07, 0x93, 0x3d, 0x20, - 0x22, 0x4c, 0x38, 0x00, 0xc1, 0xc5, 0x16, 0x33, 0xb0, 0xa8, 0x5a, 0x16, - 0xcb, 0x35, 0x77, 0x03, 0x09, 0x32, 0x34, 0x59, 0x5a, 0x74, 0x1d, 0xba, - 0x66, 0xc3, 0x72, 0x55, 0xe8, 0xb8, 0xe1, 0x72, 0x78, 0x56, 0xca, 0x5c, - 0x69, 0x0e, 0x5e, 0x41, 0x9a, 0x15, 0x6b, 0x58, 0x61, 0x84, 0x9c, 0x1a, - 0x12, 0xb8, 0x5c, 0xa4, 0xaa, 0x65, 0x30, 0x81, 0x9f, 0x06, 0x48, 0x25, - 0x83, 0x0e, 0x43, 0x00, 0xff, 0xc1, 0xc2, 0x6b, 0x88, 0x6e, 0x97, 0x45, - 0x84, 0xa2, 0x71, 0xd9, 0x25, 0x4d, 0xbc, 0x66, 0x41, 0x1a, 0x09, 0x0a, - 0xf6, 0x41, 0x82, 0xa5, 0x6b, 0x2a, 0x97, 0x84, 0x0d, 0x31, 0x46, 0xd7, - 0xa6, 0xa6, 0x8c, 0x04, 0x42, 0xc2, 0x6b, 0x66, 0xda, 0xe8, 0xa8, 0x93, - 0x14, 0x38, 0xd0, 0x40, 0xab, 0x7c, 0x68, 0xc0, 0x82, 0x0e, 0x39, 0x88, - 0xf0, 0xda, 0x9b, 0xdb, 0x79, 0x2a, 0x5a, 0xad, 0x06, 0x8a, 0x3b, 0xee, - 0x72, 0xa9, 0x11, 0xdb, 0xc1, 0x7a, 0x06, 0x0e, 0xd8, 0x81, 0x9d, 0x41, - 0xba, 0x66, 0xe7, 0x83, 0x64, 0xaa, 0xb6, 0x41, 0x05, 0xd6, 0x62, 0x7b, - 0x01, 0x08, 0x29, 0xa4, 0x60, 0xe8, 0x6a, 0x36, 0x80, 0xb9, 0x1d, 0x6d, - 0xc3, 0xda, 0xd8, 0xa6, 0x68, 0xd6, 0xdd, 0xd8, 0x81, 0xba, 0x14, 0x46, - 0xd7, 0xc7, 0x15, 0x17, 0x4e, 0xba, 0x5c, 0x79, 0xad, 0x65, 0x48, 0x64, - 0x91, 0xae, 0xdd, 0xeb, 0xc0, 0x02, 0xd8, 0x52, 0xa0, 0x01, 0x08, 0x21, - 0x78, 0xc0, 0x9a, 0xa1, 0x26, 0x24, 0x41, 0xae, 0x72, 0xa9, 0xe9, 0x0a, - 0x21, 0x6a, 0xa8, 0x8d, 0x36, 0xa7, 0x72, 0x37, 0x9c, 0x56, 0x2a, 0xb8, - 0x55, 0x08, 0x1c, 0x88, 0xbb, 0x1d, 0x30, 0x1b, 0x88, 0x6a, 0x46, 0x1c, - 0x2c, 0x9a, 0x99, 0x7d, 0x54, 0x21, 0x74, 0x15, 0x27, 0x4f, 0x4b, 0x9a, - 0x06, 0x13, 0x6c, 0x4c, 0x80, 0x54, 0x11, 0x5c, 0xa0, 0x81, 0x6b, 0x26, - 0x08, 0x9d, 0xc5, 0x1a, 0x14, 0x47, 0xfb, 0x2c, 0xb9, 0xbe, 0xba, 0xf6, - 0x63, 0x80, 0x11, 0x8e, 0xd9, 0x81, 0x09, 0xd1, 0xed, 0x2c, 0x9a, 0xc0, - 0xd8, 0x8d, 0x26, 0x71, 0x20, 0x41, 0xda, 0x89, 0xe7, 0xba, 0x7a, 0xb6, - 0xc6, 0x41, 0x06, 0x12, 0x28, 0x40, 0xc0, 0xd2, 0x7c, 0xd4, 0x40, 0x81, - 0xd3, 0x1c, 0x70, 0xa0, 0x1a, 0x08, 0x34, 0x28, 0xff, 0x3b, 0x1a, 0xb9, - 0x9e, 0x16, 0x2c, 0x60, 0x99, 0x17, 0x47, 0xc8, 0xa1, 0x68, 0x14, 0x46, - 0x68, 0x73, 0x79, 0x13, 0xb2, 0xd9, 0x81, 0xc4, 0xca, 0x51, 0xdc, 0xc1, - 0xe1, 0xad, 0x3d, 0xe9, 0x80, 0xdc, 0xc3, 0xc0, 0x84, 0x45, 0x04, 0x77, - 0x67, 0x90, 0x37, 0x69, 0x20, 0x40, 0xce, 0x5e, 0xcf, 0xe4, 0x0a, 0x2b, - 0x24, 0x91, 0xbe, 0x8a, 0xfe, 0x60, 0x6a, 0xe0, 0x5e, 0x28, 0x30, 0x23, - 0xee, 0x32, 0xab, 0xdc, 0x1a, 0x14, 0x8a, 0x9b, 0xa6, 0x92, 0xd1, 0x19, - 0x2d, 0x1a, 0x07, 0xf7, 0x36, 0x90, 0x00, 0x01, 0x38, 0xc0, 0x94, 0x46, - 0x0d, 0x11, 0x48, 0x50, 0x01, 0x06, 0x9f, 0x8f, 0x06, 0xc3, 0xbc, 0xd2, - 0xb5, 0x51, 0xde, 0xc9, 0x01, 0x1a, 0x01, 0xec, 0xa9, 0xa4, 0x89, 0x9e, - 0x9a, 0xd7, 0xa2, 0xc9, 0x1e, 0xa4, 0x09, 0x0d, 0x47, 0x87, 0xa7, 0x83, - 0xf1, 0xb2, 0xdd, 0x65, 0xc6, 0x17, 0x3c, 0x90, 0x40, 0x00, 0x31, 0x4c, - 0x31, 0x10, 0x16, 0x31, 0x14, 0x7f, 0xfc, 0x06, 0x79, 0xe7, 0x3d, 0xc2, - 0xcb, 0x61, 0x57, 0xf1, 0xec, 0xa3, 0x44, 0x92, 0x40, 0x6e, 0xd9, 0x66, - 0x47, 0x97, 0x1a, 0xe5, 0x8f, 0xbb, 0xce, 0x68, 0x1a, 0xd7, 0x3c, 0x5c, - 0xb5, 0x6e, 0x34, 0x82, 0xc3, 0xd8, 0x6a, 0x78, 0x77, 0x81, 0x08, 0x28, - 0xe0, 0x00, 0x01, 0xa8, 0x41, 0x7d, 0x04, 0xc2, 0x3e, 0xf7, 0x61, 0x00, - 0x03, 0x19, 0x80, 0x5f, 0xfc, 0x68, 0x80, 0x04, 0x2a, 0x50, 0x01, 0x09, - 0x34, 0x88, 0x9f, 0xfc, 0x68, 0x40, 0xc2, 0x12, 0x9a, 0x90, 0x06, 0x30, - 0x18, 0x81, 0x09, 0x47, 0x20, 0x42, 0x0e, 0xa8, 0xb0, 0x84, 0x23, 0x78, - 0x21, 0x09, 0x59, 0x38, 0xc2, 0x12, 0xc2, 0xa0, 0x85, 0x34, 0xf0, 0x20, - 0x15, 0x8a, 0x70, 0x43, 0x11, 0x96, 0xc0, 0x84, 0x22, 0x94, 0x21, 0x0d, - 0xb7, 0x68, 0x18, 0xbf, 0x0d, 0x6c, 0x00, 0x03, 0x16, 0x78, 0xc0, 0x03, - 0xd1, 0x67, 0x05, 0x83, 0x54, 0xd0, 0x01, 0x2c, 0xa9, 0x40, 0x05, 0x2e, - 0x70, 0x81, 0x0c, 0x58, 0xf1, 0x8a, 0x58, 0xcc, 0xa2, 0x16, 0xb7, 0xc8, - 0xc5, 0x2e, 0x7a, 0xf1, 0x8b, 0x60, 0x0c, 0xa3, 0x15, 0x31, 0x70, 0x81, - 0x0a, 0x3c, 0xe0, 0x72, 0x07, 0x10, 0x40, 0x30, 0xd4, 0x77, 0x10, 0xf6, - 0x0d, 0x23, 0x18, 0x0d, 0x70, 0xc0, 0x03, 0x1e, 0x10, 0x81, 0x3a, 0xda, - 0xf1, 0x8e, 0x78, 0xcc, 0xa3, 0x1e, 0xf7, 0xc8, 0xc7, 0x3e, 0xfa, 0xf1, - 0x8f, 0x80, 0xb4, 0xe3, 0x03, 0x16, 0xa0, 0x80, 0x04, 0x1c, 0x20, 0x8d, - 0xc2, 0xc0, 0x81, 0x42, 0xd2, 0xe0, 0xc6, 0x60, 0x1c, 0xc0, 0x90, 0x09, - 0x50, 0x80, 0x24, 0x27, 0x49, 0xc9, 0x4a, 0x5a, 0xf2, 0x92, 0x98, 0xcc, - 0xa4, 0x26, 0x37, 0xc9, 0xc9, 0x4e, 0x4a, 0xd2, 0x90, 0x06, 0x20, 0x80, - 0x30, 0x6a, 0x50, 0x85, 0x86, 0x30, 0xb2, 0x7d, 0x02, 0x48, 0xa5, 0x00, - 0x02, 0x10, 0x80, 0x01, 0xb0, 0xf2, 0x95, 0xb0, 0x8c, 0xa5, 0x2c, 0x67, - 0x49, 0xcb, 0x5a, 0xda, 0xf2, 0x96, 0xb8, 0xbc, 0x25, 0x01, 0x58, 0x39, - 0x8c, 0x18, 0x58, 0x01, 0x26, 0x10, 0x09, 0xa6, 0x30, 0x87, 0x49, 0xcc, - 0x62, 0x3a, 0x24, 0x20, 0x00, 0x3b +unsigned char search_png[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x1a, + 0x08, 0x03, 0x00, 0x00, 0x01, 0x3c, 0x81, 0x58, 0x27, 0x00, 0x00, 0x02, + 0x4c, 0x50, 0x4c, 0x54, 0x45, 0xff, 0xff, 0xcc, 0x4c, 0x00, 0x01, 0x4c, + 0x01, 0x01, 0x4c, 0x00, 0x02, 0x4c, 0x01, 0x02, 0x00, 0x00, 0x00, 0x63, + 0x01, 0x02, 0x63, 0x02, 0x02, 0x63, 0x01, 0x04, 0x63, 0x02, 0x04, 0x63, + 0x04, 0x04, 0x63, 0x04, 0x07, 0x72, 0x02, 0x04, 0x72, 0x04, 0x04, 0x72, + 0x04, 0x07, 0x72, 0x07, 0x07, 0x72, 0x04, 0x09, 0x72, 0x07, 0x09, 0x7d, + 0x07, 0x09, 0x7d, 0x09, 0x09, 0x7d, 0x09, 0x0d, 0x87, 0x09, 0x0d, 0x87, + 0x09, 0x11, 0x87, 0x0d, 0x11, 0x90, 0x0d, 0x11, 0x90, 0x0d, 0x15, 0x90, + 0x11, 0x15, 0x9a, 0x11, 0x15, 0x9a, 0x11, 0x1a, 0x9a, 0x15, 0x1a, 0xa2, + 0x15, 0x1a, 0xa2, 0x15, 0x20, 0xa2, 0x1a, 0x20, 0xa9, 0x1a, 0x20, 0xa9, + 0x1a, 0x26, 0xa0, 0x20, 0x28, 0xa0, 0x24, 0x28, 0xa7, 0x2f, 0x37, 0xa7, + 0x32, 0x37, 0xb0, 0x20, 0x26, 0xb0, 0x20, 0x2d, 0xb7, 0x26, 0x2d, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb2, 0x29, 0x36, 0x00, 0x00, 0x00, 0xbd, + 0x2d, 0x34, 0xb5, 0x32, 0x3c, 0xad, 0x3e, 0x45, 0x8e, 0x43, 0x3b, 0xad, + 0x41, 0x45, 0xbf, 0x43, 0x4e, 0xb3, 0x4d, 0x53, 0xb3, 0x53, 0x4f, 0xb3, + 0x50, 0x53, 0xba, 0x5e, 0x62, 0xb8, 0x71, 0x5f, 0xc3, 0x34, 0x3b, 0xc9, + 0x3b, 0x44, 0xc9, 0x3b, 0x4d, 0xc9, 0x44, 0x4d, 0xcf, 0x44, 0x56, 0xcf, + 0x4d, 0x56, 0xd5, 0x4d, 0x5f, 0xd5, 0x56, 0x5f, 0xcc, 0x54, 0x61, 0xda, + 0x56, 0x6b, 0xda, 0x5f, 0x6b, 0xdf, 0x5f, 0x6b, 0xc0, 0x6b, 0x70, 0xc0, + 0x6d, 0x70, 0x00, 0x00, 0x00, 0xc6, 0x7a, 0x7f, 0xc6, 0x7c, 0x7f, 0x00, + 0x00, 0x00, 0xd6, 0x66, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd6, + 0x71, 0x71, 0xe5, 0x6b, 0x75, 0x00, 0x00, 0x00, 0xe9, 0x75, 0x8c, 0x00, + 0x00, 0x00, 0xcd, 0x85, 0x72, 0xcd, 0x88, 0x8d, 0xcd, 0x8a, 0x8d, 0xd3, + 0x98, 0x9a, 0xd9, 0xa7, 0xa9, 0xdc, 0xaa, 0xa0, 0xdf, 0xb6, 0xb7, 0xee, + 0x80, 0x8c, 0xe5, 0x8b, 0x92, 0xee, 0x8c, 0x9a, 0xf2, 0x8c, 0x9a, 0xea, + 0x8c, 0xa0, 0xec, 0x99, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, + 0xae, 0xa0, 0xef, 0xae, 0xb1, 0xe6, 0xb5, 0xac, 0x00, 0x00, 0x00, 0xfc, + 0xa6, 0xc1, 0xfa, 0xaf, 0xc0, 0xf3, 0xc1, 0xb3, 0xf2, 0xd6, 0xac, 0x00, + 0x00, 0x00, 0xe6, 0xc4, 0xc6, 0xec, 0xd2, 0xd0, 0xec, 0xd3, 0xd4, 0xf6, + 0xcd, 0xc9, 0xfb, 0xc5, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3, 0xdc, 0xdc, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfa, 0xd6, 0xda, 0xf9, 0xda, 0xd5, 0xf9, 0xdf, 0xe1, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xcb, 0x00, 0x00, 0x00, 0xf2, 0xe2, 0xe2, 0xfa, + 0xe5, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0xf0, 0xf1, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x11, 0x00, 0x66, + 0x22, 0x00, 0x66, 0x33, 0x00, 0x9a, 0xa5, 0x67, 0x9f, 0x00, 0x00, 0x00, + 0x01, 0x74, 0x52, 0x4e, 0x53, 0x00, 0x40, 0xe6, 0xd8, 0x66, 0x00, 0x00, + 0x00, 0x16, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, + 0x72, 0x65, 0x00, 0x67, 0x69, 0x66, 0x32, 0x70, 0x6e, 0x67, 0x20, 0x32, + 0x2e, 0x34, 0x2e, 0x32, 0xa3, 0x5e, 0x47, 0x0e, 0x00, 0x00, 0x00, 0x04, + 0x67, 0x49, 0x46, 0x67, 0x02, 0x00, 0x00, 0x01, 0x41, 0x82, 0xfc, 0x50, + 0x00, 0x00, 0x04, 0x71, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0xc5, 0x55, + 0xff, 0x6f, 0xdb, 0x44, 0x14, 0xbf, 0x94, 0xa8, 0x69, 0x52, 0x92, 0x2c, + 0x6e, 0x83, 0x93, 0xd8, 0xd7, 0x86, 0xd5, 0x84, 0x55, 0xaa, 0x46, 0x92, + 0x25, 0x76, 0x37, 0xa0, 0x94, 0x01, 0xd1, 0xa2, 0x49, 0x9d, 0xd0, 0x6a, + 0xc7, 0x5e, 0x07, 0x95, 0x58, 0xc4, 0x12, 0x99, 0xc0, 0x2f, 0x93, 0x60, + 0x9a, 0x5c, 0xc9, 0xbf, 0xdf, 0x3f, 0xd5, 0xf5, 0x1f, 0xe3, 0xbd, 0x77, + 0x67, 0xc7, 0x65, 0xab, 0xa0, 0xa0, 0x8a, 0x27, 0xd9, 0xe7, 0x3b, 0xbf, + 0x77, 0x9f, 0xcf, 0xfb, 0x72, 0xef, 0x18, 0xfb, 0xab, 0x70, 0x2e, 0x84, + 0xa0, 0x97, 0x88, 0x04, 0x87, 0x39, 0x4e, 0x85, 0xcd, 0xa5, 0x30, 0x36, + 0xcf, 0x65, 0xc4, 0x7b, 0xc7, 0xfc, 0x77, 0x2e, 0x5c, 0xd0, 0xe7, 0x0b, + 0x2e, 0x3c, 0xce, 0x6f, 0xb1, 0x56, 0x9b, 0x5b, 0xb4, 0x19, 0x0a, 0x2f, + 0x31, 0xb6, 0x92, 0xb5, 0x07, 0x83, 0xd9, 0xab, 0xaf, 0xb7, 0xdf, 0x2f, + 0x6d, 0xdd, 0x67, 0xec, 0x3e, 0xe7, 0x0e, 0x12, 0xa0, 0x87, 0x4f, 0x84, + 0x18, 0x01, 0x39, 0x9c, 0x2e, 0x38, 0xaf, 0x30, 0xd6, 0x6b, 0x98, 0x83, + 0x47, 0xe6, 0x60, 0x30, 0xd8, 0x19, 0x98, 0xf4, 0x98, 0xe6, 0xb1, 0xf9, + 0x09, 0x8e, 0x46, 0xb5, 0xc7, 0xfe, 0x4e, 0xfe, 0x38, 0xbd, 0x02, 0x7a, + 0xdb, 0xf8, 0x90, 0xb1, 0xd3, 0x2e, 0x00, 0x39, 0x29, 0xb6, 0x08, 0xc1, + 0x33, 0x1c, 0xb9, 0xe8, 0x70, 0xdd, 0x62, 0x7b, 0xc4, 0x63, 0x12, 0xc0, + 0x52, 0x60, 0x2b, 0x2d, 0xae, 0xa2, 0x67, 0xac, 0xb2, 0x4d, 0x13, 0x8c, + 0x83, 0x49, 0xb2, 0x24, 0x62, 0x11, 0xc6, 0xe0, 0x49, 0x1f, 0x95, 0xf4, + 0x0b, 0xc6, 0xb4, 0x26, 0x30, 0x45, 0xe6, 0x03, 0x7c, 0xef, 0x00, 0xf7, + 0xe3, 0xae, 0x89, 0x4e, 0x98, 0x8d, 0x02, 0x72, 0xeb, 0xad, 0x7c, 0x90, + 0x7b, 0xaf, 0x5c, 0x48, 0xee, 0xf3, 0x59, 0xf8, 0xe2, 0xe7, 0x67, 0xcf, + 0xff, 0xb9, 0x7c, 0x7f, 0xf0, 0xa9, 0xa1, 0xf9, 0x64, 0xfa, 0x7a, 0xd6, + 0x6d, 0x63, 0x36, 0x17, 0x42, 0xc4, 0x1c, 0x83, 0x2a, 0x90, 0x18, 0x1f, + 0x23, 0x75, 0x39, 0x8d, 0xe0, 0xc3, 0x95, 0xab, 0xb8, 0x38, 0xc1, 0x70, + 0xb7, 0x36, 0xd6, 0xde, 0x30, 0x76, 0x78, 0x42, 0xa6, 0x81, 0x88, 0x1d, + 0xf8, 0x69, 0x91, 0x89, 0xf4, 0x51, 0xba, 0x4a, 0x4f, 0x2c, 0x26, 0x9c, + 0x87, 0x23, 0x9e, 0x6e, 0xc0, 0x79, 0xb3, 0xba, 0xca, 0x58, 0xeb, 0x63, + 0x55, 0x47, 0x63, 0x19, 0x54, 0x1b, 0x84, 0xf7, 0x61, 0xa4, 0xc0, 0x60, + 0x7c, 0x47, 0x00, 0x0b, 0x9c, 0x46, 0x9c, 0x7b, 0x22, 0x72, 0x61, 0xa1, + 0x83, 0xea, 0xad, 0x4a, 0x9e, 0xb1, 0xa1, 0xd6, 0x30, 0x39, 0x8f, 0x04, + 0x25, 0x3f, 0x20, 0xd2, 0xa3, 0x58, 0x8c, 0x11, 0xc0, 0x46, 0x82, 0xa0, + 0xcc, 0x3b, 0xb2, 0xce, 0x96, 0xa4, 0x21, 0x17, 0xd5, 0xdc, 0x53, 0x0a, + 0xe8, 0x79, 0xa5, 0x5a, 0xbb, 0x9e, 0xac, 0x17, 0x0b, 0x6f, 0xd9, 0x7f, + 0x97, 0x59, 0x18, 0x9e, 0xfe, 0x70, 0x9d, 0x54, 0x3d, 0xb9, 0xdb, 0xd6, + 0x1c, 0x69, 0x3b, 0x3d, 0x0b, 0x8f, 0xba, 0xdb, 0xd7, 0x93, 0xad, 0xa6, + 0x36, 0x24, 0xdc, 0xb3, 0x23, 0x0b, 0x23, 0x30, 0x82, 0x90, 0x78, 0x5c, + 0x9d, 0x42, 0x4a, 0x52, 0xa8, 0x32, 0x86, 0xd1, 0xb3, 0x22, 0x4a, 0x77, + 0x24, 0x55, 0x38, 0x37, 0xeb, 0x88, 0xfd, 0xd3, 0x6f, 0x3f, 0x52, 0x9e, + 0x43, 0x31, 0xf1, 0x60, 0xd5, 0x21, 0x6d, 0x8f, 0x4a, 0x46, 0xd0, 0x91, + 0x0c, 0xf1, 0x63, 0xa4, 0x36, 0x51, 0x6b, 0x18, 0x6d, 0xad, 0xcc, 0xd8, + 0xfe, 0xf3, 0x7b, 0xaa, 0x28, 0x3c, 0xab, 0x83, 0xc3, 0x98, 0xa6, 0x36, + 0x26, 0x98, 0x43, 0x71, 0x78, 0x98, 0x64, 0x2a, 0x1d, 0xcf, 0xeb, 0xf7, + 0xe5, 0x1a, 0xa9, 0x6c, 0x94, 0x7d, 0xd6, 0x7a, 0x70, 0x3b, 0xad, 0x28, + 0xd5, 0x88, 0xb0, 0x9a, 0xe4, 0x21, 0x4c, 0x9c, 0x88, 0x84, 0x4b, 0x4a, + 0x51, 0xea, 0x14, 0xe7, 0x75, 0x30, 0xde, 0x6c, 0x6f, 0xc1, 0x17, 0x30, + 0xef, 0x40, 0x81, 0xd8, 0x23, 0xaa, 0x30, 0xdc, 0xdd, 0xb1, 0xa5, 0x13, + 0x21, 0x16, 0x17, 0xe9, 0x3b, 0x38, 0xba, 0x6e, 0xa0, 0x8c, 0x37, 0xd6, + 0x7d, 0x36, 0xd4, 0xa1, 0xbe, 0xf8, 0x40, 0xd5, 0x0f, 0xd6, 0x22, 0xc7, + 0x32, 0x94, 0x08, 0x31, 0xb9, 0x69, 0x53, 0x49, 0xab, 0xfd, 0x12, 0xd6, + 0x46, 0x25, 0x3f, 0x67, 0xf3, 0x5a, 0x1d, 0xac, 0xbb, 0xea, 0x2c, 0x49, + 0x23, 0x72, 0xd1, 0x4e, 0x99, 0xbb, 0x60, 0x40, 0x51, 0x8c, 0x91, 0xbd, + 0x02, 0xd6, 0x8b, 0xd8, 0xa7, 0xfc, 0x5a, 0xbd, 0x61, 0x98, 0xe6, 0xa3, + 0x63, 0xe8, 0x06, 0x3b, 0xd8, 0x14, 0x06, 0x5d, 0x68, 0x0a, 0xf4, 0xbd, + 0x23, 0x3b, 0x44, 0x17, 0x5e, 0xc7, 0xdf, 0x99, 0xf8, 0x49, 0xcb, 0xf0, + 0x65, 0x7c, 0x54, 0x92, 0x1d, 0xd8, 0xbf, 0x28, 0x5f, 0xb7, 0xb4, 0xab, + 0xa5, 0xc2, 0xca, 0xbe, 0xaa, 0x4f, 0xbf, 0xb6, 0xb2, 0x92, 0xbb, 0x8e, + 0xe4, 0x73, 0xbd, 0x79, 0xb6, 0xc0, 0xe7, 0xb3, 0xe9, 0xf4, 0xf4, 0xf4, + 0xdb, 0x87, 0x87, 0x37, 0x24, 0x07, 0x9f, 0xdf, 0xbd, 0x63, 0x6a, 0xda, + 0xbe, 0x7f, 0x09, 0x75, 0x36, 0xfd, 0x25, 0x3a, 0x7b, 0xfd, 0xeb, 0x8b, + 0x67, 0x0f, 0xbf, 0x3a, 0xb8, 0x21, 0xf9, 0xf2, 0x8b, 0xfb, 0xbb, 0xb7, + 0xb7, 0x8c, 0x96, 0x56, 0x19, 0xfa, 0xec, 0x4d, 0x02, 0xfb, 0xea, 0x2c, + 0x3c, 0x79, 0x7c, 0x6f, 0x6f, 0xa7, 0xad, 0x9a, 0x99, 0x45, 0x6d, 0xec, + 0x5f, 0x4a, 0x07, 0x6c, 0x3b, 0x57, 0xfc, 0x33, 0x5b, 0x8d, 0xba, 0xa6, + 0x0d, 0xa7, 0x14, 0xe3, 0xe9, 0x0c, 0x5a, 0xc1, 0x67, 0x09, 0x26, 0xb7, + 0x16, 0xc9, 0xad, 0x4a, 0x75, 0x1a, 0xa7, 0x33, 0xea, 0xdd, 0x9c, 0xf7, + 0x63, 0xd9, 0x28, 0x49, 0x32, 0x7f, 0xe9, 0x2a, 0x77, 0xd2, 0x85, 0x18, + 0xb0, 0xfb, 0xaa, 0xff, 0x4b, 0x3d, 0x79, 0x56, 0xcd, 0xe6, 0xa6, 0x56, + 0x5e, 0x3b, 0x02, 0xe0, 0x93, 0x93, 0x97, 0x2f, 0x1f, 0xdf, 0x49, 0x39, + 0x8d, 0xd4, 0xae, 0x78, 0xfe, 0x5d, 0x79, 0x5b, 0x2c, 0xb2, 0x9c, 0x3d, + 0x91, 0x39, 0x92, 0x13, 0x45, 0x87, 0xda, 0x87, 0x23, 0x87, 0xa0, 0x2f, + 0xb9, 0x4d, 0xe4, 0xe9, 0xf5, 0x12, 0xbd, 0x64, 0x17, 0x53, 0xd7, 0xaa, + 0xe5, 0x35, 0xc8, 0x74, 0xff, 0xc1, 0x37, 0x87, 0x7b, 0xcb, 0x8d, 0x03, + 0xb5, 0x71, 0x60, 0x27, 0x34, 0xc4, 0x22, 0x44, 0x09, 0x28, 0x1c, 0xb0, + 0x65, 0x64, 0x25, 0xc0, 0x04, 0x34, 0xb6, 0x1d, 0x4f, 0xe2, 0xe2, 0x4d, + 0x16, 0x5b, 0xef, 0x72, 0x94, 0x92, 0x46, 0xdf, 0xd8, 0xac, 0x94, 0x57, + 0xe1, 0x86, 0xd4, 0xdb, 0xbb, 0xbb, 0xed, 0x8c, 0x4b, 0x76, 0xb8, 0x54, + 0xb5, 0x32, 0x86, 0x8e, 0xba, 0xc8, 0xbc, 0xf4, 0xfa, 0x5b, 0x06, 0x3a, + 0x9a, 0x74, 0xe8, 0xe8, 0xab, 0xc0, 0x4a, 0xe9, 0x5f, 0xc2, 0x1d, 0xa7, + 0xeb, 0x46, 0xbd, 0xb2, 0x8e, 0xc0, 0x35, 0xbd, 0xb5, 0xac, 0x0b, 0xe8, + 0x4d, 0x61, 0x3f, 0x21, 0x6b, 0x91, 0xfb, 0xc1, 0x72, 0xab, 0xc5, 0xe5, + 0x8c, 0xca, 0x00, 0xd2, 0xed, 0x17, 0xab, 0xe4, 0x84, 0xb2, 0xe5, 0x8a, + 0xd8, 0xbd, 0x22, 0xd0, 0x98, 0x64, 0xad, 0x94, 0xcf, 0xfb, 0xd8, 0x01, + 0x36, 0xf5, 0xa6, 0x89, 0xdd, 0x8f, 0xb7, 0x89, 0xf4, 0x62, 0xe4, 0x20, + 0x60, 0x64, 0xa9, 0x16, 0xaf, 0x42, 0x2f, 0x3d, 0xca, 0x00, 0x3b, 0x2a, + 0x80, 0xa1, 0xaa, 0x43, 0x97, 0xd6, 0xc3, 0x58, 0x35, 0xed, 0x24, 0xff, + 0xa9, 0x9e, 0xc2, 0x35, 0xea, 0xe5, 0x62, 0x7e, 0x1f, 0x4f, 0xb3, 0xdf, + 0xab, 0x69, 0xd4, 0xfa, 0xa0, 0xa9, 0xf5, 0x55, 0xf4, 0x62, 0xd7, 0xe2, + 0x97, 0x02, 0x2d, 0xac, 0x20, 0x71, 0x48, 0x32, 0xb0, 0xd3, 0x4a, 0xa5, + 0x69, 0x98, 0x29, 0xe9, 0x85, 0x9d, 0x85, 0xb3, 0xb2, 0x81, 0x36, 0x0d, + 0xbd, 0x56, 0x2a, 0xe4, 0x86, 0xea, 0x20, 0x03, 0x74, 0x45, 0xd3, 0xea, + 0x75, 0x5d, 0x6f, 0xde, 0xa4, 0x34, 0xf4, 0x7a, 0xb5, 0x02, 0xdd, 0xf6, + 0xfc, 0x69, 0xa6, 0x61, 0xfa, 0xbd, 0x8b, 0xf3, 0x42, 0xb1, 0x50, 0x2c, + 0xdd, 0xa4, 0x14, 0x0b, 0xab, 0xf9, 0xb7, 0x43, 0x97, 0xfd, 0xaf, 0xf2, + 0x27, 0x51, 0x22, 0xbd, 0xc0, 0xca, 0xc6, 0x8b, 0x9d, 0x00, 0x00, 0x00, + 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; -unsigned int search_len = 2010; +unsigned int search_png_len = 1857; unsigned char doxfont_data[] = { 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x80, 0x00, 0x03, 0x00, 0x70, @@ -3139,25 +3114,12 @@ unsigned char doxfont_data[] = { }; unsigned int doxfont_len = 32760; -//void writeNullImage(const char *dir) -//{ -// QCString fileName=(QCString)dir+"/null.gif"; -// QFile f(fileName); -// if (f.open(IO_WriteOnly)) -// f.writeBlock((char *)null_data,null_len); -// else -// { -// fprintf(stderr,"Warning: Cannot open file %s for writing\n",fileName.data()); -// } -// f.close(); -//} - void writeLogo(const char *dir) { - QCString fileName=(QCString)dir+"/doxygen.gif"; + QCString fileName=(QCString)dir+"/doxygen.png"; QFile f(fileName); if (f.open(IO_WriteOnly)) - f.writeBlock((char *)logo_data,logo_len); + f.writeBlock((char *)doxygen_png_data,doxygen_png_len); else { fprintf(stderr,"Warning: Cannot open file %s for writing\n",fileName.data()); @@ -3167,10 +3129,10 @@ void writeLogo(const char *dir) void writeSearchButton(const char *dir) { - QCString fileName=(QCString)dir+"/search.gif"; + QCString fileName=(QCString)dir+"/search.png"; QFile f(fileName); if (f.open(IO_WriteOnly)) - f.writeBlock((char *)search_data,search_len); + f.writeBlock((char *)search_png,search_png_len); else { fprintf(stderr,"Warning: Cannot open file %s for writing\n",fileName.data()); diff --git a/src/pngenc.cpp b/src/pngenc.cpp new file mode 100644 index 0000000..438b4b5 --- /dev/null +++ b/src/pngenc.cpp @@ -0,0 +1,157 @@ +/****************************************************************************** + * + * + * + * + * Copyright (C) 1997-2001 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + * --------------------------------------------------------------------------- + * + * The Portable Network Graphic format is an ISO Standard. + * Most of the code below was donated by Bernhard Ristow. + */ + +#ifndef png_jmpbuf +# define png_jmpbuf(png_ptr) ((png_ptr)->jmpbuf) +#endif + +#include <png.h> +#include <stdio.h> +#include <malloc.h> +#include "pngenc.h" +#include "message.h" + +static void user_error_fn(png_structp, png_const_charp error_msg) +{ + err("%s\n", error_msg); +} + +static void user_warning_fn(png_structp, png_const_charp warning_msg) +{ + err("%s\n", warning_msg); +} + +PngEncoder::PngEncoder(Byte *rawBytes, Color *p, int w, int h, Byte d, int t) : + data(rawBytes), palette(p), width(w), height(h), depth(d), transIndex(t) +{ + numPixels = w*h; + dataPtr = data; +} + +PngEncoder::~PngEncoder() +{ +} + +void PngEncoder::write(const char *name) +{ + FILE * file = NULL; + unsigned char ** rows = 0; + unsigned char * cmap = 0; + short numOfColors = (1<<depth); + short bit_depth = 4; + long i = 0; + long j = 0; + png_structp png_ptr; + png_infop info_ptr; + char user_error_ptr[] = "PngEncoder"; + png_colorp png_palette; + png_byte ti[1]; + + png_ptr = png_create_write_struct + ( PNG_LIBPNG_VER_STRING, (png_voidp)user_error_ptr, + user_error_fn, user_warning_fn); + if (!png_ptr) + { + err("Can not allocate writing structure!\n"); + return; + } + + info_ptr = png_create_info_struct(png_ptr); + if (!info_ptr) + { + png_destroy_write_struct(&png_ptr, (png_infopp)NULL); + err("Can not allocate writing structure!\n"); + return; + } + + if (setjmp(png_jmpbuf(png_ptr))) + { + png_destroy_write_struct(&png_ptr, &info_ptr); + return; + } + else + { + png_palette = (png_colorp) png_malloc(png_ptr, + PNG_MAX_PALETTE_LENGTH*sizeof(png_color)); + memset(png_palette,0,PNG_MAX_PALETTE_LENGTH*sizeof(png_color)); + for (i=0; i<numOfColors; i++) + { + png_palette[i].red = palette[i].red; + png_palette[i].green = palette[i].green; + png_palette[i].blue = palette[i].blue; + } + png_set_PLTE(png_ptr, info_ptr, png_palette, PNG_MAX_PALETTE_LENGTH); + png_set_IHDR( png_ptr, info_ptr, width, height, bit_depth, + PNG_COLOR_TYPE_PALETTE, PNG_INTERLACE_NONE, + PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE + ); + ti[0] = transIndex; + png_set_tRNS(png_ptr,info_ptr,ti,1,NULL); + rows = (unsigned char **) calloc(sizeof(unsigned char*),height); + rows[0] = (unsigned char *) calloc(sizeof(unsigned char),height*width); + for (i=1; i<height; i++) + { + rows[i] = rows[i-1] + width; + } + for (i=0, dataPtr=data; i<height; i++) + { + for (j=0; j<width; j++) + { + if (j%2) + { + rows[i][j/2] = ( rows[i][j/2] | *dataPtr ); + } + else + { + rows[i][j/2] = (*dataPtr) << 4; + } + dataPtr++; + } + } + png_set_rows(png_ptr,info_ptr,rows); + + file = fopen(name,"wb"); + png_init_io(png_ptr,file); + png_write_png(png_ptr,info_ptr,PNG_TRANSFORM_IDENTITY,NULL); + } + + png_destroy_write_struct(&png_ptr, &info_ptr); + + if (file) + { + fclose (file); + } + if (cmap) + { + free(cmap); + } + if (rows) + { + if (rows[0]) + { + free(rows[0]); + } + free(rows); + } + return; +} + diff --git a/src/pngenc.h b/src/pngenc.h new file mode 100644 index 0000000..598cf80 --- /dev/null +++ b/src/pngenc.h @@ -0,0 +1,54 @@ +/****************************************************************************** + * + * + * + * + * Copyright (C) 1997-2001 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ + +#ifndef _PNGENC_H +#define _PNGENC_H +#include <qfile.h> + +typedef unsigned char Byte; + +struct Color +{ + Byte red; + Byte green; + Byte blue; +}; + +class PngEncoder +{ + public: + PngEncoder(Byte *rawBytes,Color *p,int w,int h,Byte d,int t); + ~PngEncoder(); + void write(const char *fileName); + + protected: + + private: + // image variables + Byte *data; // pointer to the image data (one byte per pixel) + Color *palette; // pointer to the color palette + int width; // image width + int height; // image height + Byte depth; // bits per CLUT entry + int transIndex; // index of the transparant color; -1 = none + int numPixels; // total number of pixel (i.e. width * height) + Byte *dataPtr; // pointer located at the current pixel. + +}; + +#endif @@ -1578,8 +1578,8 @@ BN [ \t\r\n] g_defText+=yytext; g_defLitText+=yytext; } -<DefineText>"/*" { - outputChar('/');outputChar('*'); +<DefineText>"/*"|"/**<"|"/*!<" { + outputArray(yytext,yyleng); g_defText+=' '; g_defLitText+=' '; g_lastCContext=YY_START; diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp index d83711a..ac777d6 100644 --- a/src/rtfgen.cpp +++ b/src/rtfgen.cpp @@ -2152,14 +2152,14 @@ void RTFGenerator::endClassDiagram(ClassDiagram &d, { newParagraph(); - // create a gif file + // create a png file d.writeImage(t,dir,fileName,FALSE); // display the file t << "{" << endl; t << Rtf_Style_Reset << endl; t << "\\par\\pard \\qc {\\field\\flddirty {\\*\\fldinst INCLUDEPICTURE "; - t << fileName << ".gif"; + t << fileName << ".png"; t << " \\\\d \\\\*MERGEFORMAT}{\\fldrslt IMAGE}}\\par" << endl; t << "}" << endl; } diff --git a/src/scanner.l b/src/scanner.l index e3ca3da..e558eb1 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -434,7 +434,7 @@ static int yyread(char *buf,int max_size) %} CMD ("\\"|"@") -SECTIONCMD {CMD}("image"|"author"|"internal"|"version"|"date"|"deprecated"|"param"|"exception"|"return"[s]?|"retval"|"bug"|"warning"|"par"|"sa"|"see"|"pre"|"post"|"invariant"|"note"|"remark"[s]?|"todo"|"test"|"ingroup"|"latexonly"|"htmlonly"|"{"|"verbatim") +SECTIONCMD {CMD}("image"|"author"|"internal"|"version"|"date"|"deprecated"|"param"|"exception"|"return"[s]?|"retval"|"bug"|"warning"|"par"|"sa"|"see"|"pre"|"post"|"invariant"|"note"|"remark"[s]?|"todo"|"test"|"ingroup"|"latexonly"|"htmlonly"|"{"|"verbatim"|"dotfile") BN [ \t\n\r] BL [ \t\r]*"\n" B [ \t] diff --git a/src/translator_br.h b/src/translator_br.h index 42d5d93..4959f89 100644 --- a/src/translator_br.h +++ b/src/translator_br.h @@ -1009,7 +1009,7 @@ class TranslatorBrazilian: public Translator "Se a tag \\c MAX_DOT_GRAPH_HEIGHT no arquivo de configuração tem o valor" "200, o seguinte gráfo será gerado:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "As caixas no grafo acima tem as seguintes interpretações:\n" "<ul>\n" diff --git a/src/translator_cn.h b/src/translator_cn.h index eba9f12..e0131d8 100644 --- a/src/translator_cn.h +++ b/src/translator_cn.h @@ -951,7 +951,7 @@ class TranslatorChinese : public TranslatorAdapter_1_2_13 "\\endcode\n" "Èç¹ûÔÚÅäÖÃÎļþÖÐÖ¸¶¨ÁË"CN_SPC"MAX_DOT_GRAPH_HEIGHT"CN_SPC"µÄֵΪ200£¬" "ÔòDoxygen½«Éú³ÉÈçϵÄͼÐΣº" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "ÒÔÉÏͼÐÎÖеľØÐÎÓÐÈçϵĺ¬Ò壺\n" "<ul>\n" diff --git a/src/translator_cz.h b/src/translator_cz.h index 76b6919..e785da4 100644 --- a/src/translator_cz.h +++ b/src/translator_cz.h @@ -1208,7 +1208,7 @@ class TranslatorCzech : public TranslatorAdapter_1_2_13 "\\endcode\n" "Pokud je položka \\c MAX_DOT_GRAPH_HEIGHT konfiguraèního souboru " "nastavena na hodnotu 200, bude vygenerován následující graf:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "Bloky (tj. uzly) v uvedeném grafu mají následující význam:\n" "<ul>\n" diff --git a/src/translator_de.h b/src/translator_de.h index 7eaf6c0..3426f46 100644 --- a/src/translator_de.h +++ b/src/translator_de.h @@ -1082,7 +1082,7 @@ class TranslatorGerman : public Translator "\\endcode\n\n" "Setzen des Tags \\c MAX_DOT_GRAPH_HEIGHT in der Konfigurationsdatei " "auf 240 liefert den folgenden Graphen:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "Die Rechtecke in obigem Graphen bedeuten:\n" "<ul>\n" diff --git a/src/translator_dk.h b/src/translator_dk.h index 5f5b447..9e72516 100644 --- a/src/translator_dk.h +++ b/src/translator_dk.h @@ -1055,7 +1055,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 "\\endcode\n" "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " "is set to 200 this will result in the following graph:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "The boxes in the above graph have the following meaning:\n" "<ul>\n" diff --git a/src/translator_en.h b/src/translator_en.h index 7b986db..35ee638 100644 --- a/src/translator_en.h +++ b/src/translator_en.h @@ -1072,7 +1072,7 @@ class TranslatorEnglish : public Translator "\\endcode\n" "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " "is set to 240 this will result in the following graph:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "The boxes in the above graph have the following meaning:\n" "<ul>\n" diff --git a/src/translator_es.h b/src/translator_es.h index f5cec24..fa35a76 100644 --- a/src/translator_es.h +++ b/src/translator_es.h @@ -947,7 +947,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_2_7 "\\endcode\n" "Si la etiqueta \\c MAX_DOT_GRAPH_HEIGHT en el archivo de configuración " "tiene valor 200 resultará en el siguiente gráfico:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "Las cajas en el gráfico arriba tienen el significado que sigue:\n" "<ul>\n" diff --git a/src/translator_fr.h b/src/translator_fr.h index a85defd..3c6f5a3 100644 --- a/src/translator_fr.h +++ b/src/translator_fr.h @@ -939,7 +939,7 @@ class TranslatorFrench : public Translator "\\endcode\n" "Si la valeur 200 est attribuée au tag \\c MAX_DOT_GRAPH_HEIGHT " "du fichier de configuration, cela génèrera le graphe suivant:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "Les rectangles du graphe ci-dessus ont la signification suivante:\n" "<ul>\n" diff --git a/src/translator_gr.h b/src/translator_gr.h index 11befec..ce71bfd 100644 --- a/src/translator_gr.h +++ b/src/translator_gr.h @@ -1043,7 +1043,7 @@ class TranslatorGreek : public TranslatorAdapter_1_2_11 "\\endcode\n" "Áí ç åôéêÝôá \\c MAX_DOT_GRAPH_HEIGHT óôï áñ÷åßï ñõèìßóåùí " "ôåèåß óôï 200 èá Ý÷ïõìå óáí áðïôÝëåóìá ôï áêüëïõèï äéÜãñáììá:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "Ôá êïõôéÜ óôï ðáñáðÜíù äéÜãñáììá Ý÷ïõí ôçí áêüëïõèç óçìáóßá:\n" "<ul>\n" diff --git a/src/translator_hr.h b/src/translator_hr.h index 0783a5d..dbf26a7 100644 --- a/src/translator_hr.h +++ b/src/translator_hr.h @@ -760,7 +760,7 @@ class TranslatorCroatian : public Translator "\\endcode\n" "Ako je \\c MAX_DOT_GRAPH_HEIGHT tag u konfiguracijskoj datoteci " "postavljen na 200 gornje veze æe rezultirati grafikonom:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "Pravokutnici imaju slijedeæe znaèenje:\n" "<ul>\n" diff --git a/src/translator_hu.h b/src/translator_hu.h index 86895bd..d477b1e 100644 --- a/src/translator_hu.h +++ b/src/translator_hu.h @@ -936,7 +936,7 @@ class TranslatorHungarian : public TranslatorAdapter_1_2_1 "\\endcode\n" "Ha a konfigurációs fájl \\c MAX_DOT_GRAPH_HEIGHT elemének értékét " "200-ra állítjuk, az eredmény a következõ ábra lesz:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "Az ábrán levõ dobozok jelentése:\n" "<ul>\n" diff --git a/src/translator_it.h b/src/translator_it.h index 383b198..f3ed770 100644 --- a/src/translator_it.h +++ b/src/translator_it.h @@ -1060,7 +1060,7 @@ class TranslatorItalian : public Translator "\\endcode\n" "Se il tag \\c MAX_DOT_GRAPH_HEIGHT nel file di configurazione " "è impostato a 200 verrà prodotto il grafo seguente:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "I riquadri nel grafo qui sopra hanno il seguente significato:\n" "<ul>\n" diff --git a/src/translator_jp.h b/src/translator_jp.h index 1c17be8..f3f028b 100644 --- a/src/translator_jp.h +++ b/src/translator_jp.h @@ -1010,7 +1010,7 @@ class TranslatorJapanese : public Translator "\\endcode\n" "ÀßÄê¥Õ¥¡¥¤¥ëÃæ¤Ç¡¢¥¿¥° \\c MAX_DOT_GRAPH_HEIGHT ¤¬ 200 ¤Ë¥»¥Ã¥È¤µ¤ì¤¿" "¾ì¹ç¡¢¼¡¤Î¤è¤¦¤Ê¥°¥é¥Õ¤È¤Ê¤ê¤Þ¤¹¡£" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "¾å¤Î¥°¥é¥ÕÆâ¤Î¥Ü¥Ã¥¯¥¹¤Ë¤Ï¼¡¤Î¤è¤¦¤Ê°ÕÌ£¤¬¤¢¤ê¤Þ¤¹¡£\n" "<ul>\n" diff --git a/src/translator_kr.h b/src/translator_kr.h index 67951f7..98317d7 100644 --- a/src/translator_kr.h +++ b/src/translator_kr.h @@ -1010,7 +1010,7 @@ class TranslatorKorean : public TranslatorAdapter_1_2_13 "\\endcode\n" "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " "is set to 240 this will result in the following graph:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "The boxes in the above graph have the following meaning:\n" "<ul>\n" diff --git a/src/translator_nl.h b/src/translator_nl.h index f2348cb..147664c 100644 --- a/src/translator_nl.h +++ b/src/translator_nl.h @@ -685,7 +685,7 @@ class TranslatorDutch : public Translator "\\endcode\n" "Als de \\c MAX_DOT_GRAPH_HEIGHT tag in the configuratie file " "op 200 gezet is, zal het bestaande voorbeeld resulteren in de volgende graaf:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "De rechthoeken in the bovenstaande graaf hebben de volgende betekenis:\n" "<ul>\n" diff --git a/src/translator_no.h b/src/translator_no.h index a3bfa71..f888517 100644 --- a/src/translator_no.h +++ b/src/translator_no.h @@ -742,7 +742,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 "\\endcode\n" "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " "is set to 200 this will result in the following graph:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "The boxes in the above graph have the following meaning:\n" "<ul>\n" diff --git a/src/translator_pl.h b/src/translator_pl.h index cda5cd7..ba2fa49 100644 --- a/src/translator_pl.h +++ b/src/translator_pl.h @@ -938,7 +938,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_1 "\\endcode\n" "Je¶li znacznik \\c MAX_DOT_GRAPH_HEIGHT w pliku konfiguracji " "jest ustawiony na 200, odniesie to rezultat w nastêpuj±cym wykresie:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "Pude³ka w powy¿szym wykresie maj± nastêpuj±ce znaczenie:\n" "<ul>\n" diff --git a/src/translator_pt.h b/src/translator_pt.h index 8680caf..232eecb 100644 --- a/src/translator_pt.h +++ b/src/translator_pt.h @@ -1048,7 +1048,7 @@ class TranslatorPortuguese : public TranslatorAdapter_1_2_13 "\\endcode\n" "Se no ficheiro de configuração estiver a tag \\c MAX_DOT_GRAPH_HEIGHT " "com o valor de 200 então o seguinte grafo será gerado:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "As caixas no grafo anterior têm as seguintes interpretações:\n" "<ul>\n" diff --git a/src/translator_ro.h b/src/translator_ro.h index d53350b..818cda9 100644 --- a/src/translator_ro.h +++ b/src/translator_ro.h @@ -965,7 +965,7 @@ class TranslatorRomanian: public TranslatorAdapter_1_2_1 "\\endcode\n" "Dacã tagul \\c MAX_DOT_GRAPH_HEIGHT din fiºierul de configuraþie " "Este setat la 200 acesta este graful rezultat:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "Cãsuþele din partea de sus au urmãtoarea semnificaþie:\n" "<ul>\n" diff --git a/src/translator_ru.h b/src/translator_ru.h index 2e3e026..61b3fbc 100644 --- a/src/translator_ru.h +++ b/src/translator_ru.h @@ -1095,7 +1095,7 @@ class TranslatorRussian : public Translator "\\endcode\n" "åÓÌÉ \\c MAX_DOT_GRAPH_HEIGHT × ËÏÎÆÉÇÕÒÁÃÉÏÎÎÏÍ ÆÁÊÌÅ " "ÕÓÔÁÎÏ×ÌÅÎ × 240, ÐÏÌÕÞÉÔÓÑ ÓÌÅÄÕÀÝÉÊ ÇÒÁÆ:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "ðÒÑÍÏÕÇÏÌØÎÉËÉ × ÜÔÏÍ ÇÒÁÆÅ ÉÍÅÀÔ ÓÌÅÄÕÀÝÅÅ ÚÎÁÞÅÎÉÅ:\n" "<ul>\n" @@ -1371,7 +1371,7 @@ class TranslatorRussian : public Translator */ virtual QCString trReferences() { - return "ðÅÒÅËÒÅÓÔÎÙÅ ÓÓÙÌËÉ"; + return decode("ðÅÒÅËÒÅÓÔÎÙÅ ÓÓÙÌËÉ"); } ////////////////////////////////////////////////////////////////////////// @@ -1383,7 +1383,7 @@ class TranslatorRussian : public Translator */ virtual QCString trImplementedFromList(int numEntries) { - return "úÁÍÅÝÁÅÔ "+trWriteList(numEntries)+"."; + return decode("úÁÍÅÝÁÅÔ ")+trWriteList(numEntries)+"."; } /*! used in member documentation blocks to produce a list of @@ -1391,7 +1391,7 @@ class TranslatorRussian : public Translator */ virtual QCString trImplementedInList(int numEntries) { - return "úÁÍÅÝÁÅÔÓÑ × "+trWriteList(numEntries)+"."; + return decode("úÁÍÅÝÁÅÔÓÑ × ")+trWriteList(numEntries)+"."; } }; diff --git a/src/translator_si.h b/src/translator_si.h index cbc273d..0193266 100644 --- a/src/translator_si.h +++ b/src/translator_si.h @@ -694,7 +694,7 @@ class TranslatorSlovene : public TranslatorAdapter_1_2_13 "\\endcode\n" "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " "is set to 200 this will result in the following graph:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "The boxes in the above graph have the following meaning:\n" "<ul>\n" diff --git a/src/translator_sk.h b/src/translator_sk.h index 99f8ee2..6b5e949 100644 --- a/src/translator_sk.h +++ b/src/translator_sk.h @@ -1069,7 +1069,7 @@ class TranslatorSlovak : public TranslatorAdapter_1_2_13 "\\endcode\n" "Pokia¾ je položka \\c MAX_DOT_GRAPH_HEIGHT konfiguraèného súboru " "nastavená na hodnotu 200, bude vygenerovaný nasledujúci graf:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "Bloky (tj. uzly) v uvedenom grafe majú nasledujúci význam:\n" "<ul>\n" diff --git a/src/translator_ua.h b/src/translator_ua.h index b3238c7..58009ae 100644 --- a/src/translator_ua.h +++ b/src/translator_ua.h @@ -1060,7 +1060,7 @@ class TranslatorUkrainian : public TranslatorAdapter_1_2_11 "\\endcode\n" "ñËÝÏ \\c MAX_DOT_GRAPH_HEIGHT × ËÏÎƦÇÕÒÁæÊÎÏÍÕ ÆÁÊ̦ " "ÕÓÔÁÎÏ×ÌÅÎÅ ÎÁ 200, ÏÔÒÉÍÁ¤ÍÏ ÎÁÓÔÕÐÎÉÊ ÇÒÁÆ:" - "<p><center><img src=\"graph_legend.gif\"></center>\n" + "<p><center><img src=\"graph_legend.png\"></center>\n" "<p>\n" "ðÒÑÍÏËÕÔÎÉËÉ × ÃØÏÍÕ ÇÒÁƦ ÍÁÀÔØ ÎÁÓÔÕÐÎÉÊ ÚͦÓÔ:\n" "<ul>\n" diff --git a/src/treeview.h b/src/treeview.h index 722da0d..9cbcccd 100644 --- a/src/treeview.h +++ b/src/treeview.h @@ -31,7 +31,7 @@ " \n" " //dynamic data \n" " this.isOpen = true \n" -" this.iconSrc = \"ftv2folderopen.gif\" \n" +" this.iconSrc = \"ftv2folderopen.png\" \n" " this.children = new Array \n" " this.nChildren = 0 \n" " \n" @@ -81,10 +81,10 @@ " { \n" " if (folder.nodeImg) \n" " if (folder.isLastNode) \n" -" folder.nodeImg.src = \"ftv2mlastnode.gif\" \n" +" folder.nodeImg.src = \"ftv2mlastnode.png\" \n" " else \n" -" folder.nodeImg.src = \"ftv2mnode.gif\" \n" -" folder.iconImg.src = \"ftv2folderopen.gif\" \n" +" folder.nodeImg.src = \"ftv2mnode.png\" \n" +" folder.iconImg.src = \"ftv2folderopen.png\" \n" " for (i=0; i<folder.nChildren; i++) \n" " folder.children[i].display() \n" " } \n" @@ -92,10 +92,10 @@ " { \n" " if (folder.nodeImg) \n" " if (folder.isLastNode) \n" -" folder.nodeImg.src = \"ftv2plastnode.gif\" \n" +" folder.nodeImg.src = \"ftv2plastnode.png\" \n" " else \n" -" folder.nodeImg.src = \"ftv2pnode.gif\" \n" -" folder.iconImg.src = \"ftv2folderclosed.gif\" \n" +" folder.nodeImg.src = \"ftv2pnode.png\" \n" +" folder.iconImg.src = \"ftv2folderclosed.png\" \n" " for (i=0; i<folder.nChildren; i++) \n" " folder.children[i].hide() \n" " } \n" @@ -138,14 +138,14 @@ " if (level>0) \n" " if (lastNode) //the last 'brother' in the children array \n" " { \n" -" this.renderOb(leftSide + auxEv + \"<img name='nodeIcon\" + this.id + \"' src='ftv2mlastnode.gif' width=16 height=22 border=0></a>\") \n" -" leftSide = leftSide + \"<img src='ftv2blank.gif' width=16 height=22>\" \n" +" this.renderOb(leftSide + auxEv + \"<img name='nodeIcon\" + this.id + \"' src='ftv2mlastnode.png' width=16 height=22 border=0></a>\") \n" +" leftSide = leftSide + \"<img src='ftv2blank.png' width=16 height=22>\" \n" " this.isLastNode = 1 \n" " } \n" " else \n" " { \n" -" this.renderOb(leftSide + auxEv + \"<img name='nodeIcon\" + this.id + \"' src='ftv2mnode.gif' width=16 height=22 border=0></a>\") \n" -" leftSide = leftSide + \"<img src='ftv2vertline.gif' width=16 height=22>\" \n" +" this.renderOb(leftSide + auxEv + \"<img name='nodeIcon\" + this.id + \"' src='ftv2mnode.png' width=16 height=22 border=0></a>\") \n" +" leftSide = leftSide + \"<img src='ftv2vertline.png' width=16 height=22>\" \n" " this.isLastNode = 0 \n" " } \n" " else \n" @@ -274,7 +274,7 @@ " this.id = -1 //initialized in initalize() \n" " this.navObj = 0 //initialized in render() \n" " this.iconImg = 0 //initialized in render() \n" -" this.iconSrc = \"ftv2doc.gif\" \n" +" this.iconSrc = \"ftv2doc.png\" \n" " \n" " // methods \n" " this.initialize = initializeItem \n" @@ -305,13 +305,13 @@ " if (level>0) \n" " if (lastNode) //the last 'brother' in the children array \n" " { \n" -" this.renderOb(leftSide + \"<img src='ftv2lastnode.gif' width=16 height=22>\") \n" -" leftSide = leftSide + \"<img src='ftv2blank.gif' width=16 height=22>\" \n" +" this.renderOb(leftSide + \"<img src='ftv2lastnode.png' width=16 height=22>\") \n" +" leftSide = leftSide + \"<img src='ftv2blank.png' width=16 height=22>\" \n" " } \n" " else \n" " { \n" -" this.renderOb(leftSide + \"<img src='ftv2node.gif' width=16 height=22>\") \n" -" leftSide = leftSide + \"<img src='ftv2vertline.gif' width=16 height=22>\" \n" +" this.renderOb(leftSide + \"<img src='ftv2node.png' width=16 height=22>\") \n" +" leftSide = leftSide + \"<img src='ftv2vertline.png' width=16 height=22>\" \n" " } \n" " else \n" " this.renderOb(\"\") \n" diff --git a/src/treeview.js b/src/treeview.js index 240d654..6b5ef51 100644 --- a/src/treeview.js +++ b/src/treeview.js @@ -31,7 +31,7 @@ function Folder(folderDescription, tagName, hreference) //constructor //dynamic data this.isOpen = true - this.iconSrc = "ftv2folderopen.gif" + this.iconSrc = "ftv2folderopen.png" this.children = new Array this.nChildren = 0 @@ -81,10 +81,10 @@ function propagateChangesInState(folder) { if (folder.nodeImg) if (folder.isLastNode) - folder.nodeImg.src = "ftv2mlastnode.gif" + folder.nodeImg.src = "ftv2mlastnode.png" else - folder.nodeImg.src = "ftv2mnode.gif" - folder.iconImg.src = "ftv2folderopen.gif" + folder.nodeImg.src = "ftv2mnode.png" + folder.iconImg.src = "ftv2folderopen.png" for (i=0; i<folder.nChildren; i++) folder.children[i].display() } @@ -92,10 +92,10 @@ function propagateChangesInState(folder) { if (folder.nodeImg) if (folder.isLastNode) - folder.nodeImg.src = "ftv2plastnode.gif" + folder.nodeImg.src = "ftv2plastnode.png" else - folder.nodeImg.src = "ftv2pnode.gif" - folder.iconImg.src = "ftv2folderclosed.gif" + folder.nodeImg.src = "ftv2pnode.png" + folder.iconImg.src = "ftv2folderclosed.png" for (i=0; i<folder.nChildren; i++) folder.children[i].hide() } @@ -138,14 +138,14 @@ var nc if (level>0) if (lastNode) //the last 'brother' in the children array { - this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='ftv2mlastnode.gif' width=16 height=22 border=0></a>") - leftSide = leftSide + "<img src='ftv2blank.gif' width=16 height=22>" + this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='ftv2mlastnode.png' width=16 height=22 border=0></a>") + leftSide = leftSide + "<img src='ftv2blank.png' width=16 height=22>" this.isLastNode = 1 } else { - this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='ftv2mnode.gif' width=16 height=22 border=0></a>") - leftSide = leftSide + "<img src='ftv2vertline.gif' width=16 height=22>" + this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='ftv2mnode.png' width=16 height=22 border=0></a>") + leftSide = leftSide + "<img src='ftv2vertline.png' width=16 height=22>" this.isLastNode = 0 } else @@ -274,7 +274,7 @@ function Item(itemDescription, tagName, itemLink) // Constructor this.id = -1 //initialized in initalize() this.navObj = 0 //initialized in render() this.iconImg = 0 //initialized in render() - this.iconSrc = "ftv2doc.gif" + this.iconSrc = "ftv2doc.png" // methods this.initialize = initializeItem @@ -305,13 +305,13 @@ function initializeItem(level, lastNode, leftSide) if (level>0) if (lastNode) //the last 'brother' in the children array { - this.renderOb(leftSide + "<img src='ftv2lastnode.gif' width=16 height=22>") - leftSide = leftSide + "<img src='ftv2blank.gif' width=16 height=22>" + this.renderOb(leftSide + "<img src='ftv2lastnode.png' width=16 height=22>") + leftSide = leftSide + "<img src='ftv2blank.png' width=16 height=22>" } else { - this.renderOb(leftSide + "<img src='ftv2node.gif' width=16 height=22>") - leftSide = leftSide + "<img src='ftv2vertline.gif' width=16 height=22>" + this.renderOb(leftSide + "<img src='ftv2node.png' width=16 height=22>") + leftSide = leftSide + "<img src='ftv2vertline.png' width=16 height=22>" } else this.renderOb("") |